The MCLZ8, is a Zilog Z80 emulator which can be used as a drop-in replacement for the original Z80. It uses a Teensy 4.1 microcontroller board which contains an 800 Mhz microcontroller and a small PCB to perform the voltage translation between the motherboard and the microcontroller.
It passes the exhaustive ZEXALL Z80 opcode test suite and is able to run a number of applications and games when plugged into a TRS-80.
The MCLZ8 seems to work quite well as a Z80 replacement in a TRS-80 Model III where it runs BASIC and is able to boot from the diskette drive. I have tried NEWDOS and a number of games and I will test more applications in the near future.
When the Z80 cycle-accuracy is disabled and portions of the motherboard RAM and ROM are emulated inside of the Teensy’s 800 Mhz internal RAM it appears to yield a more than 15X speed boost over the stock Z80 in the TRS-80 Model III.
I was also able to use the MCLZ8 to isolate a bad RAM chip on an Osborne-1 computer by adapting the code to simply read and write addresses until the bank and bit were located. The picture shows the replacement DRAM is an Apple branded device!
Ted Fried
Erick M.B. d. S.
land-boards.com
Jakub Hladik
Gary Hammond
I saw the source and found weird things: when dealing with (IX+nn) or (IY+nn), you're using an FECTH_OPCODE BIU operation (so setting M1 and REFRESH?) to get "nn". It shouldn't be this way (or the BIU operation name is misleading) as it should be a MEMORY_READ BIU operation. See https://floooh.github.io/2021/12/06/z80-instruction-timing.html#dd-and-fd-prefixes (also be aware the timings are counted as half-cycles so 3 T-states show 6 half cycles for memory read operation).