Frank Cringle released a GPL’d Z80 CPU exerciser in 1994, and Ian Bartholomew released modified versions for the 8080 and 8085 in 2009. Since I don’t have CP/M running on my Sol-20 yet, I’ve modified the sources to assemble with the AS macro cross assembler (asl), and run on a “bare metal” Sol-20 (no CP/M), with output to the serial port. I haven’t actually run the modified version on the Sol yet, but have run it on the 8080 simulator I wrote last month.
The purpose of getting it running on the Sol-20 isn’t that I think there’s anything wrong with my Sol-20, but rather that the 8080 simulator doesn’t generate the same hashes, so I probably don’t have the condition code computations correct. Once I’ve verified that it works and produces the correct hashes on the Sol-20, I’ll further modify it to output the bytes being hashed into the CRC, and compare those with the simulator.
The first link above is broken, a new link is http://www.idb.me.uk/sunhillow/8080.html
Thanks Hans! I’ve updated the link.
I recently emulated an old computer system of mine, the Intecolor 3650. It was 8080 based and using your code as a starting point saved quite a bit of time. I haven’t found any errors in your code to date. Adding interrupt support was trivial as all one needs to do is set interrupt_enabled=0 and then call op_RST(INT*8) when an interrupt is to be triggered. Obviously one needs to check interrupt_enabled before allowing that and queuing the request if needed, but the basic support is already included.
Great 8080 emulator. Many, many thanks!!