aboutsummaryrefslogtreecommitdiff
path: root/src/interrupts.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/interrupts.s')
-rw-r--r--src/interrupts.s37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/interrupts.s b/src/interrupts.s
new file mode 100644
index 0000000..be276df
--- /dev/null
+++ b/src/interrupts.s
@@ -0,0 +1,37 @@
+.segment "FIXED"
+
+.proc nmi
+ pha
+ txa
+ pha
+ tya
+ pha
+
+ ;; Sprite DMA.
+ lda #$00
+ sta OAM::m_address
+ lda #$02
+ sta OAM::m_dma
+
+ ;; TODO
+
+ ;; Always reset the scroll just in case.
+ bit PPU::m_status
+ lda #$00
+ sta PPU::m_scroll
+ sta PPU::m_scroll
+
+ ;; Restore registers.
+ pla
+ tay
+ pla
+ tax
+ pla
+
+ rti
+.endproc
+
+;; Unused.
+.proc irq
+ rti
+.endproc