| Routines

0038: THE 'MASKABLE INTERRUPT' ROUTINE

The real time clock is incremented and the keyboard scanned whenever a maskable interrupt occurs.
MASK_INT | 0038 | PUSH AF | Save the current values held in these registers.
| 0039 | PUSH HL
| 003A | LD HL,($5C78) | The lower two bytes of the frame counter (FRAMES) are incremented every 20 ms. (U.K.) The highest byte of the frame counter is only incremented when the value of the lower two bytes is zero.
| 003D | INC HL
| 003E | LD ($5C78),HL
| 0041 | LD A,H
| 0042 | OR L
| 0043 | JR NZ,KEY_INT
| 0045 | INC (IY+$40)
KEY_INT | 0048 | PUSH BC | Save the current values held in these registers.
| 0049 | PUSH DE
| 004A | CALL KEYBOARD | Now scan the keyboard.
| 004D | POP DE | Restore the values.
| 004E | POP BC
| 004F | POP HL
| 0050 | POP AF
| 0051 | EI | The maskable interrupt is enabled before returning.
| 0052 | RET