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