Description
Projects/MCLZ8/Code/Standard_Z80/MCLZ8.ino
Line 847 in ea66a81
The memory access to the byte for displacement jump (or not) is taken one T-state too early compared to a genuine Z80. For Z80 machines which are very sensitive to /WAIT pattern (e.g: AMSTRAD CPC), it may alter the whole timing and so the behavior of the CPC program counting very much about the cycle accuracy regarding the memory access.
That extra T-state at the end of M1 M-cycle is due to an internal "dec b". In mode 0, the MEMORY READ M-cycle for memory access to displacement byte should happen 5 CLK cycles after M1 M-cycle, not the usual 4 CLK cycles.
See DJNZ: https://www.manualsdir.com/manuals/753749/zilog-z08470.html?page=287
It is not the only instruction to have extra T-states inserted in the middle of the whole instruction T-states.