Interface type: NMI activator
Compatible wih: Spectrum 48k, +48K
This interface is divided into 2 parts:
A switch and two 74LS132 gates which activate the NMI signal.
Several gates (74LS266, 74LS20, 74LS132) that detect when the Z-80 wants to read the positions 0x006D y 0x006E of the ROM. When the circuit is activated, the Q1 transistor is ON and It forces a "0" in "D1" and "D5" signals of the data bus.
How does it work?
Pressing NMI button, the Spectrum jumps to "0x006D" position. In the Spectrum 48K original ROM, "0x006D" and "0x006E" positions have "32" and "01" (JR NZ,0070) that make Spectrum return without executing any code. With this interface, the Z-80 read "00" and "00" (NOP) going to the next instruction
This instruction is JP (HL). HL contains the value of the system variable NMIADDR that is the address where jump if you press the NMI program.
The software that came with this interface, will surely poke the NMIADDR variable with the value of program start address. In this way, pressing the NMI button, will jump in the Spectrum memory location where the NMI software is.