Line 114:
Line 114:
}
}
</pre>
</pre>
+
+
== Interrupts ==
+
The interrupt handler called by the [[ARM9 BIOS]] calls a handler in a table mapping the raw IRQ IDs to handlers. Each handler is either a no-op (not listed in the table below) or a stub that calls <code>__OSDispatchInterrupt</code> with an OS interrupt ID. <code>__OSDispatchInterrupt</code> then calls the handler registered with <code>__OSSetInterruptHandler</code>.
+
+
{| class="wikitable sortable"
+
! Hardware ID
+
! Translated ID
+
! Name
+
|-
+
| 3
+
| 8
+
| Timer 0 overflow
+
|-
+
| 4
+
| 9
+
| Timer 1 overflow
+
|-
+
| 5
+
| 10
+
| Timer 2 overflow
+
|-
+
| 6
+
| 11
+
| Timer 3 overflow
+
|-
+
| 8
+
| 0
+
| DMA 0
+
|-
+
| 9
+
| 1
+
| DMA 1
+
|-
+
| 10
+
| 2
+
| DMA 2
+
|-
+
| 11
+
| 3
+
| DMA 3
+
|-
+
| 28
+
| 4
+
| New DMA 0
+
|-
+
| 29
+
| 5
+
| New DMA 1
+
|-
+
| 30
+
| 6
+
| New DMA 2
+
|-
+
| 31
+
| 7
+
| New DMA 3
+
|}