This is an old revision of the document!
Interrupt Scheduler
The Interrupt Scheduler handles system timers and counters.
Interrupt Scheduler Routines
Interrupt Scheduler Routine Descriptions
ACTINT
ACTIVE INTERRUPTS
Calling Sequence: | SYSTEM ACTINT or SYSSUK ACTINT |
Arguments: | None |
Outputs: | None |
Function: | Sets IM=2, INLIN=200, sets I register + INFBK Calls TIMEX and TIMEY Enables interrupts |
Description: | Once ACTINT is called, it provides interrupt service completely automatically. It runs the seconds timer, the game timer, the music processor, and blackout timers, plus CT0, CT1, CT2, CT3. Timers function every 1/60th of a second. |
CTIMER
CUSTOM TIMER
Calling Sequence: | CALL CTIMER
|
Input: | HL = address of custom time base B = value to load into time base 1 to 0 transition C = counter mask as in DECCTS |
Notes: | None |
Description: | HL is loaded and decremented. If HL != 0, then a return is executed, otherwise, HL is loaded with B and DECCTS is called. Registers HL, DE, BC, and AF are undefined upon exit. |
Restrictions: | None |
DECCTS
DECREMENT COUNTERS/TIMERS
Calling Sequence: | SYSTEM DECCTS or SYSSUK DECCTS DB (mask) |
Arguments: | C = mask for which counters to decrement |
Outputs: | Sentry will notify the program |
Description: | Decrements counter if they are non-zero. If any counters go from 1 to 0, sentry is notified. |
STIMER
DECREMENT TIMERS
Calling Sequence: | PUSH AF PUSH BC PUSH DE PUSH HL CALL STIMER POP HL POP DE POP BC POP AF |
Input: | None |
Description: | STIMER keeps track of game time. If it hits 0, then GSBEND bit in the game status byte is set. |
Uses: | AF, BC, DE, HL |
Calls: | Music processor on note (duration) expiration |
Note: | Sets bit 7 of KEYSEX to 1 on every second |