Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
hardware:interrupts [2016/06/11 21:49]
ex_writer [Screen Interrupts]
hardware:interrupts [2016/06/11 21:56]
ex_writer [Automatic Interrupts (ACTINT)]
Line 48: Line 48:
  
   * Enable screen interrupts and set its mode in INMOD ($E)   * Enable screen interrupts and set its mode in INMOD ($E)
-  * Designate the target interrupt scanline in INLIN ($F)*** +  * Designate the target interrupt scanline in INLIN ($F)+++ 
   * Set the interrupt handler address... ​   * Set the interrupt handler address... ​
     * low byte in INFBK ($D)     * low byte in INFBK ($D)
Line 55: Line 55:
   * Enable interrupts with the EI opcode   * Enable interrupts with the EI opcode
  
-***<wrap alert>​necessary only with multiple interrupts? screen interrupts seem to function fine when only </​wrap>​++++<wrap alert>​necessary only with multiple interrupts? screen interrupts seem to function fine when INLIN isn't set </​wrap>​
 === Interrupt Enable and Mode (INMOD) === === Interrupt Enable and Mode (INMOD) ===
  
Line 115: Line 115:
  
 <WRAP todo>To be written...</​WRAP>​ <WRAP todo>To be written...</​WRAP>​
 +
 +The Bally Arcade system ROM provides an "​automatic"​ interrupt service via the [[system routines:​interrupt scheduler#​ACTINT]] system routine.
 +
 +In the system ROM source, ACTINT is listed as follows:
 +
 +<code z80>
 +        DI                      ; MAKE SURE INTERRUPT IS DISABLED
 +        PUSH    AF
 +        PUSH    BC
 +        PUSH    DE
 +        PUSH    HL
 +        IM      2
 +        LD      A,ITAB SHR 8
 +        LD      I,A
 +        LD      A,$C8
 +        OUT     ​(INLIN),​A
 +        LD      A,ITAB & 0FFH
 +        OUT     ​(INFBK),​A
 +        CALL    TIMEZ           ; UPDATE TIMEOUT,​MUSIC AND SECONDS
 +        LD      C,$0F           ; USE CT0-3
 +        CALL    TIMEY           ; DEC CT0-3
 +        POP     HL
 +        POP     DE
 +        POP     BC
 +        POP     AF
 +        EI
 +        RET
 +</​code>​
 +
 +
 ===== Screen Interrupt Examples ===== ===== Screen Interrupt Examples =====