zen80 update: improved tests

*** Apart from the already substantial unit tests, we now have two additional and rather stringent tests:***

  1. This test loads the ZX Spectrum 128 ROMs (0 and 1) and run that machine's initialisation process. Then it shows a statistical analysis of the instruction coverage that's been executed during rom initialisation. (total percentage of different opcodes executed for each instruction group)

  2. The second big test implements traps as barebones CP/M shims, loads ZEXDOC.COM and runs its extensive stress test (this can be long).

Work is ongoing to support ZEXALL.COM as well, an even more stringent version of zexdoc that also tests undocumented registers and quirks of the Z80, one of the hardest tests known. This will be next, after I'm certain that this passes all ZEXDOC tests without a hitch. So far so good!

#zen80 #emulator#ZXSpectrum#Speccy#Spectrum #golang #foss #z80

zen80 update: improved tests

*** Apart from the already substantial unit tests, we now have two additional and rather stringent tests:***

  1. This test loads the ZX Spectrum 128 ROMs (0 and 1) and run that machine's initialisation process. Then it shows a statistical analysis of the instruction coverage that's been executed during rom initialisation. (total percentage of different opcodes executed for each instruction group)

  2. The second big test implements traps as barebones CP/M shims, loads ZEXDOC.COM and runs its extensive stress test (this can be long).

Work is ongoing to support ZEXALL.COM as well, an even more stringent version of zexdoc that also tests undocumented registers and quirks of the Z80, one of the hardest tests known. This will be next, after I'm certain that this passes all ZEXDOC tests without a hitch. So far so good!

#zen80 #emulator#ZXSpectrum#Speccy#Spectrum #golang #foss #z80

zen80 emulator UPDATE:

Published a detailed implementation status report and instruction set coverage for our Z80 emulator in Go.

https://github.com/ha1tch/zen80/blob/main/COVERAGE.md

All documented Z80 instructions work correctly. Most undocumented features implemented, with some known gaps: IXH/IXL register access, simplified I/O flags, and a few edge cases in block instructions.

The emulator runs most Z80 software perfectly - it's only software relying on obscure undocumented behaviours that might have issues.
Full instruction-by-instruction breakdown now in the repo, with every opcode mapped to its implementation function and realistic status markers.

#z80 #emulation #retrocomputing #golang #zen80