Prev: 38354 Up: Map Next: 38453
38381: Interrupt Routine
Used by the routine at AliasInterruptRedirect.
InterruptRoutine 38381 PUSH AF Stash AF, BC, DE, HL and IX on the stack.
38382 PUSH BC
38383 PUSH DE
38384 PUSH HL
38385 PUSH IX
38387 CALL 52215 Call 52215.
38390 LD A,(39723) Jump to GetControls if *39723 is not zero.
38393 AND A
38394 JR Z,GetControls
38396 LD HL,39605 HL=39605.
38399 DEC (HL) Decrease *HL by one.
38400 JR NZ,GetControls Jump to GetControls if *HL is not zero.
38402 LD (HL),50 Write "2" to *HL.
Handle the units digit of AroundTheClock_Timer.
38404 LD HL,41869 HL=41869 (2nd digit of AroundTheClock_Timer).
38407 DEC (HL) Decrease *HL by one.
Has 41869 just ticked down from a "0"?
38408 LD A,(HL) Jump to InterruptDrivenTimer if *HL is not equal to 47 ("0" minus one).
38409 CP 47
38411 JR NZ,InterruptDrivenTimer
Replace the unit digit with a "9".
38413 LD (HL),57 Write "9" to *HL.
Handle the tens digit of AroundTheClock_Timer.
38415 LD HL,41868 HL=AroundTheClock_Timer.
38418 DEC (HL) Decrease *HL by one.
Has AroundTheClock_Timer just ticked down from a "0"?
38419 LD A,(HL) Jump to InterruptDrivenTimer if *L is not equal to 47 ("0" minus one).
38420 CP 47
38422 JR NZ,InterruptDrivenTimer
This signifies that the time is now up!
38424 LD A,1 Write 1 to *39722.
38426 LD (39722),A
38429 DEC A Write 0 to *39723.
38430 LD (39723),A
38433 JR GetControls Jump to GetControls.
Print the "Around The Clock" timer.
InterruptDrivenTimer 38435 CALL Messaging_AroundTheClock_Timer Call Messaging_AroundTheClock_Timer.
GetControls 38438 CALL InterruptDrivenControls Call InterruptDrivenControls.
38441 LD (63521),A Write A to *ControlByte.
38444 POP IX Restore IX, HL, DE, BC and AF from the stack.
38446 POP HL
38447 POP DE
38448 POP BC
38449 POP AF
38450 EI Enable interrupts.
38451 RETI Return from the interrupt routine.
Prev: 38354 Up: Map Next: 38453