Modified 8080 exerciser to run on “bare metal” Sol-20

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.

This entry was posted in RetroChallenge. Bookmark the permalink.

3 Responses to Modified 8080 exerciser to run on “bare metal” Sol-20

  1. Hans PUFAL says:

    The first link above is broken, a new link is http://www.idb.me.uk/sunhillow/8080.html

  2. Eric says:

    Thanks Hans! I’ve updated the link.

  3. Jeff Brown says:

    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!!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>