![]() |
Routines |
| Prev: 95D2 | Up: Map | Next: 9635 |
|
Used by the routine at AliasInterruptRedirect.
|
||||
| InterruptRoutine | 95ED | PUSH AF | Stash AF, BC, DE, HL and IX on the stack. | |
| 95EE | PUSH BC | |||
| 95EF | PUSH DE | |||
| 95F0 | PUSH HL | |||
| 95F1 | PUSH IX | |||
| 95F3 | CALL $CBF7 | Call CBF7. | ||
| 95F6 | LD A,($9B2B) | Jump to GetControls if *9B2B is not zero. | ||
| 95F9 | AND A | |||
| 95FA | JR Z,GetControls | |||
| 95FC | LD HL,$9AB5 | HL=9AB5. | ||
| 95FF | DEC (HL) | Decrease *HL by one. | ||
| 9600 | JR NZ,GetControls | Jump to GetControls if *HL is not zero. | ||
| 9602 | LD (HL),$32 | Write "2" to *HL. | ||
|
Handle the units digit of AroundTheClock_Timer.
|
||||
| 9604 | LD HL,$A38D | HL=A38D (2nd digit of AroundTheClock_Timer). | ||
| 9607 | DEC (HL) | Decrease *HL by one. | ||
|
Has A38D just ticked down from a "0"?
|
||||
| 9608 | LD A,(HL) | Jump to InterruptDrivenTimer if *HL is not equal to 2F ("0" minus one). | ||
| 9609 | CP $2F | |||
| 960B | JR NZ,InterruptDrivenTimer | |||
|
Replace the unit digit with a "9".
|
||||
| 960D | LD (HL),$39 | Write "9" to *HL. | ||
|
Handle the tens digit of AroundTheClock_Timer.
|
||||
| 960F | LD HL,$A38C | HL=AroundTheClock_Timer. | ||
| 9612 | DEC (HL) | Decrease *HL by one. | ||
|
Has AroundTheClock_Timer just ticked down from a "0"?
|
||||
| 9613 | LD A,(HL) | Jump to InterruptDrivenTimer if *L is not equal to 2F ("0" minus one). | ||
| 9614 | CP $2F | |||
| 9616 | JR NZ,InterruptDrivenTimer | |||
|
This signifies that the time is now up!
|
||||
| 9618 | LD A,$01 | Write 01 to *9B2A. | ||
| 961A | LD ($9B2A),A | |||
| 961D | DEC A | Write 00 to *9B2B. | ||
| 961E | LD ($9B2B),A | |||
| 9621 | JR GetControls | Jump to GetControls. | ||
|
Print the "Around The Clock" timer.
|
||||
| InterruptDrivenTimer | 9623 | CALL Messaging_AroundTheClock_Timer | Call Messaging_AroundTheClock_Timer. | |
| GetControls | 9626 | CALL InterruptDrivenControls | Call InterruptDrivenControls. | |
| 9629 | LD ($F821),A | Write A to *ControlByte. | ||
| 962C | POP IX | Restore IX, HL, DE, BC and AF from the stack. | ||
| 962E | POP HL | |||
| 962F | POP DE | |||
| 9630 | POP BC | |||
| 9631 | POP AF | |||
| 9632 | EI | Enable interrupts. | ||
| 9633 | RETI | Return from the interrupt routine. | ||
| Prev: 95D2 | Up: Map | Next: 9635 |