The special key <RESTORE> or Commodore computers as the C64/128 or VIC-20 an interrupt (NMI). On the VIC-20, the signal from the key is routed through one of the VIA interrupt chips to the CPU and thus can be blocked in the VIA; on the C64/C128 it is connected directly to the CPU and can't normally be blocked (you can block it indirectly by causing an NMI through the CIA 2 chip and then, in your NMI handler, keeping the CIA 2's interrupt ouput line in its active low state instead of resetting it back to its inactive high state; since the NMI signal is only detected on the falling edge, this effectively shuts out any further NMIs, including those caused by the RESTORE key ). By utilizing the NMI system interruption, interesting effects can be programmed.causes on
If all storage locations are in a normal state, the C64 is set back to its initial state again by pressing the combination machine language routines) and the -key fails.
The initial state is the classic bright blue/dark blue design with bright blue text colour , followed by an empty screen with the word READY. and the blinking cursor below it.
By changing the storage locations 792 and 793 (normal standard values: 71 and 254, corresponds to the address $FE47, The standard NMI routine in the KERNAL) can be redirected to another routine.
An example: With this one can trigger a reset by pressing the -key:
POKE 792,226: POKE 793,252
This corresponds to the address $FCE2, the RESET routine in the KERNAL.
Ignoring the-key is activated with
and deactivated again (and with this the original behaviour is restored) with
(provided that the content of the storage location 793 is unchanged).
This corresponds to a change to the KERNAL-address $FEC1, by which the NMI routine only consists of an RTI (and with this has no function any more).