MDFS::Software.Z80.Exerciser.Spectrum | Search |
ZEXALL.COM
file for CPM systems. I then
created a modified version to run on the Spectrum. The changes made are:
The following files are supplied here:
zexall.src | zexdoc.src | 42K | ZEXALL and ZEXDOC source for Spectrum. |
zexall | zexdoc | 8K | ZEXALL and ZEXDOC binaries, load=&8000, exec=&8000. |
zexall.sna | zexdoc.sna | 48K | Standard Spectrum snapshot file. |
zexall.z80 | zexdoc.z80 | 8K | Z80 Spectrum snapshot file. |
zexall.tap | zexdoc.tap | 8K | Spectrum Tapefile. LOAD "" will start zexall or zexdoc. |
ZEXALL and ZEXDOC test the Z80 CPU implementation against a set of empirical results. That is, it compares the excution against results found from running ZEXALL on an actual hardware Z80. ZEXALL is not intended to diagnose implementation errors, it just compares the execution against a known baseline.
A test that passes will be displayed as:
<adc,sbc> hl,<bc,de,hl,sp>...OK
A test that fails will be displayed as:
<adc,sbc> hl,<bc,de,hl,sp>...
ERR:xxxxxxxx expected:xxxxxxxx
There are 68 tests, each of which take about 3 to 4 minutes, so the whole program can take over four and a half hours! It will be useful if you can get your system to make a screen snapshot every five minutes or so or spool the output, for later perusal.
Another point to bear in mind is that if any of the instructions that make
up the test code aren't implemented correctly, then the testing will give
incorrect results. For instance, if RRCA
actually does
RLCA
, then the calculation of the instruction CRCs will fail.
Hardware | Speculator | Z80Em | MZXSpeccy | Spec128 |
Z80/WinZ80 | Z80Tube | MyZ80 | Z80mu |