Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
hardware:interrupts [2016/06/11 21:56] ex_writer [Automatic Interrupts (ACTINT)] |
hardware:interrupts [2016/06/11 22:17] (current) ex_writer [Automatic Interrupts (ACTINT)] |
||
---|---|---|---|
Line 114: | Line 114: | ||
===== Automatic Interrupts (ACTINT) ===== | ===== Automatic Interrupts (ACTINT) ===== | ||
- | <WRAP todo>To be written...</WRAP> | + | <WRAP todo>Test and clarify</WRAP> |
The Bally Arcade system ROM provides an "automatic" interrupt service via the [[system routines:interrupt scheduler#ACTINT]] system routine. | The Bally Arcade system ROM provides an "automatic" interrupt service via the [[system routines:interrupt scheduler#ACTINT]] system routine. | ||
Line 121: | Line 121: | ||
<code z80> | <code z80> | ||
+ | MACTIN: | ||
DI ; MAKE SURE INTERRUPT IS DISABLED | DI ; MAKE SURE INTERRUPT IS DISABLED | ||
PUSH AF | PUSH AF | ||
Line 144: | Line 145: | ||
</code> | </code> | ||
+ | ACTIN does the following: | ||
+ | * Sets Z80 interrupt mode 2 (IM2) | ||
+ | * Sets I register and INFBK to vector to ITAB on interrupt (which calls MACTIN) | ||
+ | * Sets INLIN to $C8 (i.e., line 100) | ||
+ | * Calls TIMEZ (updates game timer, blackout timer, and music processor) | ||
+ | * Calls TIMEY (decrements counter-timers CT0–CT3) | ||
===== Screen Interrupt Examples ===== | ===== Screen Interrupt Examples ===== | ||