place some routines at well known expected locations.
This commit is contained in:
1 parent
4a374b27be
commit
1d850ad7c3
2 files changed
No files matched your search
@@ -1,32 +0,0 @@
|
||||
irq_handler:
|
||||
;; The IRQ is a commonly messed with thing on the C64,
|
||||
;; so we need to handle entry points that are commonly
|
||||
;; relied upon, including:
|
||||
;; $EA31 - Standard IRQ routine
|
||||
;; $EA61 - Check keyboard, but don't update timer? https://github.com/cc65/cc65/issues/324
|
||||
;; $EA81 - https://www.lemon64.com/forum/viewtopic.php?t=2112&sid=6ea01982b26da69783120a7923ca46fb
|
||||
;; Also the $0314 vector is widely used (e.g., https://www.lemon64.com/forum/viewtopic.php?t=2112&sid=6ea01982b26da69783120a7923ca46fb)
|
||||
|
||||
;; Save registers
|
||||
;; Sequence according to Compute's Mapping the 64 p73
|
||||
pha
|
||||
txa
|
||||
pha
|
||||
tya
|
||||
pha
|
||||
|
||||
;; Acknowledge CIA interrupt
|
||||
lda $dc0d
|
||||
|
||||
;; Call interrupt routine
|
||||
;; (but only if initialised)
|
||||
lda $0314
|
||||
ora $0315
|
||||
beq default_irq_handler
|
||||
jmp ($0314)
|
||||
default_irq_handler:
|
||||
|
||||
jsr blink_cursor
|
||||
jsr scan_keyboard
|
||||
|
||||
jmp return_from_interrupt
|
||||
Reference in new issue
Block a user