-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the am9511 wiki!
June 26, 2021, all functions are tested with the exception of MUUD (multiply double upper).
June 27, am9511 is feature complete. Integrated into zxcc, and working with MBASIC.
July 7, integrate with RunCPM
July 11, multiple chip support
July 14, SMUL SMUU DMUL DMUU correction to match chip results. Some testing added for this. (thanks Wayne Hortensius!) More testing for DMUL DMUU needed. Add same tests as for SMUL/SMUU
July 17, fix FLTS - had problem with planeta.com that is been added as a test case. (thanks Phillip Stevens)
August 11 - added to z80pack (Thanks TheHighNibble, Udo Monk), rc2014 (Thanks EtchedPixels) emulators, along with APU.REL. Benchmark tests and paper added (to APU).
This is the first project in which I am exposing my development process, and using github for version control. The reason for this is that I lost my Thinkpad T440 on June 11, 2021, to a SSD failure. I then restored my work to my backup laptop, and continued. I decided to use github as a "backup of the backup" -- better, as a part of the development process.
am9511 is an emulator for the AMD AM9511 chip, suitable for inclusion into system emulators like z80pack, RunCPM and zxcc. Eventually, I want the emulator on my Altair-Duino.
The target is full functionality, with accurate integer behavior, and acceptable float behavior. Acceptable means that the float results of the standard C library are allowed, but ranges are limited to the AM9511 device. Note that the stack use of the emulator is not the same as the actual chip, either. Advanced functions on the chip used additional stack storage locations. The emulator does not. Later, will can be added to "smash" those stack locations (to allow the emulator to be more easily used as a AM9511 development assist).
Test suites will allow the comparison of the actual chip in running hardware to the emulator.
The AM9511 is chosen as the initial target, as opposed to the AM9512 (which is an "easier" target). The AM9511 supports hardware 16 bit and 32 bit integer arithmetic, which the 8080 and Z80 lack (the Z180 does have integer multiply). As the Altair used the 8080 (and, sometimes, Z80 if upgraded) chip, this appears to be the "correct" target as the AM9511 would offer the 8080 and Z80 user the integer arithmetic the process lacked, and 32 bit floats.
There is a floating point format conversion part (floatcnv) that can be "repurposed" to allow the use of the AM9511 chip with Microsoft FORTRAN-80, MBASIC, HI-TECH C, and Borland TURBO Modula2 and Pascal. There have been libraries published and sold for FORTRAN-80 that do this, but they appear "lost to history". floatcnv.c supports Microsoft 32 bit floating format, and the FORTRAN-80 manual has all functions described. Walter Cirsovius had dis-assembled Microsoft MBASIC 5.21, and Turbo Pascal 3. We can use his work to patch these software packages. Note that Borland 6 byte float format is not supported by floatcnv (yet), and that will need to be added. Mark Williams XYBASIC has been compiled for AM9511 and run against the emulator.
Also, PASCAL MT+ supports the AM9511.
To get in contact with me -- my email address is fred_weigel@hotmail.com