Outils pour utilisateurs

Outils du site


neo-geo:68k-interrupts

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

neo-geo:68k-interrupts [2023/08/03 22:20] – créée fraterneo-geo:68k-interrupts [2023/08/03 22:22] (Version actuelle) frater
Ligne 2: Ligne 2:
  
  
-The cartridge systems use 3 '''auto-vectored''' interrupt levels. The CD systems use 3 additional '''vectored''' interrupts.+The cartridge systems use 3 auto-vectored interrupt levels. The CD systems use 3 additional vectored interrupts.
  
-Interrupts must to be acknowledged for them to re-trigger in the future by writing to register {{Reg|REG_IRQACK}}+Interrupts must to be acknowledged for them to re-trigger in the future by writing to register REG_IRQACK. 
-*bit 2: Acknowledge v-blank interrupt + 
-*bit 1: Acknowledge [[timer interrupt]] +  * bit 2: Acknowledge v-blank interrupt 
-*bit 0: Acknowledge reset interrupt+  * bit 1: Acknowledge [[timer interrupt]] 
 +  * bit 0: Acknowledge reset interrupt
  
 Multiple bits can be set: Multiple bits can be set:
-<syntaxhighlight>+<code 68000>
 move #$0007,REG_IRQACK     ; Acknowledge all interrupts move #$0007,REG_IRQACK     ; Acknowledge all interrupts
-</syntaxhighlight>+</code> 
 + 
 +Bits 8~10 of the 68k's SR register can be used to mask them:
  
-Bits 8~10 of the [[68k]]'s SR register can be used to mask them: +<code 68000>
-<syntaxhighlight>+
 move #$2000,SR     ; Accept all interrupts (+Supervisor mode) move #$2000,SR     ; Accept all interrupts (+Supervisor mode)
 move #$2700,SR     ; Ignore all interrupts (+Supervisor mode) move #$2700,SR     ; Ignore all interrupts (+Supervisor mode)
-</syntaxhighlight>+</code>
  
 Note that the 68k's interrupt mask is different from the interrupt configuration bits in {{Reg|REG_LSPCMODE}}. Note that the 68k's interrupt mask is different from the interrupt configuration bits in {{Reg|REG_LSPCMODE}}.
  
-=Vertical blank interrupt=+===== Vertical blank interrupt =====
  
 The v-blank interrupt is almost always used. It occurs when the rendering of a frame is about to start (~60 times per second). See [[display timing]]. The v-blank interrupt is almost always used. It occurs when the rendering of a frame is about to start (~60 times per second). See [[display timing]].
  
-=[[Timer interrupt]]=+===== Timer interrupt =====
  
 The timer interrupt's behavior can be programmed through the [[GPU]]'s [[memory mapped registers]]. It is triggered by a 32-bit down counter clocked by the 6MHz pixel clock, and a corresponding reset register. When the counter reaches 0, an interrupt is generated. Intervals can range from 166.7ns ('''dangerous interrupt flood''') to 11.9 minutes (?). The timer interrupt's behavior can be programmed through the [[GPU]]'s [[memory mapped registers]]. It is triggered by a 32-bit down counter clocked by the 6MHz pixel clock, and a corresponding reset register. When the counter reaches 0, an interrupt is generated. Intervals can range from 166.7ns ('''dangerous interrupt flood''') to 11.9 minutes (?).
Ligne 37: Ligne 39:
 * ... * ...
  
-=AES/MVS interrupt levels=+===== AES/MVS interrupt levels ===== 
  
 *Level 1: V-blank *Level 1: V-blank
Ligne 43: Ligne 46:
 *Level 3: Pending after reset *Level 3: Pending after reset
  
-=CD interrupt levels=+===== CD interrupt levels ===== 
  
 The V-blank and Timer levels '''are swapped''' compared to the cartridge systems. The V-blank and Timer levels '''are swapped''' compared to the cartridge systems.
Ligne 54: Ligne 58:
 *Vector 23: Used but not understood *Vector 23: Used but not understood
  
-[[Category:Base system]] 
-[[Category:Code]] 
  
neo-geo/68k-interrupts.1691094011.txt.gz · Dernière modification : 2023/08/03 22:20 de frater