Chase H.Q. | Routines |
Prev: EE38 | Up: Map | Next: EE5E |
Used by the routine at diamond_zoom_in_mask.
See http://www.breakintoprogram.co.uk/hardware/computers/zx-spectrum/interrupts
|
||||
setup_interrupts | EE40 | DI | Disable interrupts | |
EE41 | LD HL,$FD00 | Address of interrupt vector table | ||
EE44 | LD A,H | Interrupt vector table high byte | ||
Point the 128 interrupt vector table words at $FD00 to $FEFE.
|
||||
EE45 | LD B,$00 | 256 iterations | ||
EE47 | LD C,$FE | C = $FE | ||
si_fill | EE49 | LD (HL),C | *HL++ = $FE | |
EE4A | INC HL | |||
EE4B | DJNZ si_fill | Loop | ||
Now store an additional byte since the IVT needs to be 257 bytes long.
|
||||
EE4D | LD (HL),C | Store final $FE | ||
EE4E | LD I,A | Set interrupt vector table base to $FD00 | ||
EE50 | IM 2 | Set interrupt mode 2 | ||
Set $FEFE to be "JP $EF19".
|
||||
EE52 | LD A,$C3 | $FEFE = Opcode for JP | ||
EE54 | LD ($FEFE),A | |||
EE57 | LD HL,$EF19 | $FEFF = interrupt_entry | ||
EE5A | LD ($FEFF),HL | |||
EE5D | RET | Return |
Prev: EE38 | Up: Map | Next: EE5E |