Supersoft Diagnostics II is a program to test 8080 and Z80 CPUs, as mentioned in this answer, and questions here and here. As well as sources mentioned in those posts, the program binary and a partially annotated disassembly can be found in this GitLab repo.

While using this to test my 8080 CPU simulator, I've noticed some odd behaviour in relation to the half-carry flag output of the dec/DCR opcodes. It appears to me that this program generates an error when following the behaviour documented by Intel in all documentation I've found for the 8080. Now it wouldn't be the first time Intel 8080 documentation has been wrong, but typically later documentation corrects the errors. In this case, the all of Intel's 8080 and 8085 documentation that I've seen has been consistent.

I don't have an 8080 system to test on, so I'm asking here: What is the output of this program on a real 8080 CPU? I'm asking for this to be run on an actual 8080, not a similar CPU such as an 8085, and certainly not on a simulator. (Though I would be interested to see, additionally, what the output of a gate-level simulation is.) Also please note how long the program took to run, and the approximate speed of your CPU.

An actual Intel CPU is preferred, but since 8080s from most second sources (NEC, National Semiconductor, etc.) appear to be identical in behaviour, they should also be fine for this test. The one exception is AMD, which is known to have different flag behaviour for the AND instructions and will cause the Supersoft diagnostics to fail.

If you have an 8080 system but do not have CP/M, the program will run fine if you emulate BDOS calls 2 and 9, as described here, and terminate the run when the program jumps to location $0000.

There are some examples of the program output in this VCFed forum thread, though currently only for 8085 and Z80 systems.


You must log in to answer this question.

Browse other questions tagged .