NMI sticky (SNMI) is not correctly implemented. Currently, NMI signal should be active until FNMI is activated, but FNMI is internal signal and cannot be analyzed by external modules. Moreover, one-clock NMI signals may be ignored. Fix is simple: just replace condition (SNMI & !FNMI) by ((NMI|SNMI) & !FNMI) and add SNMI <= 0; to the if body.
No NMI acknowledge. Regarding to Zilog Z80 specification NMI acknowledge cycle is looks like generic memory read, so MREQ should be activated on first NMI processing stage.
NextZ80 jumps to address 0x00 instead of 0x66 after NMI accepting. I cannot understand why it happens.
bsa commented almost 5 years ago
After some investigation I found, invalid address issue in in the simulator. It incorrectly works with case when input may contain undefined values.