IRQ handler for UP9600

This commit is contained in:
FeralChild64 committed 2019-11-22 17:35:17 +01:00
1 parent df1285e5f3
commit 6f010b8c56
9 files changed
+138 -14

No files matched your search

@@ -1,10 +1,22 @@
default_irq_handler:
#if CONFIG_RS232_UP9600
jsr rs232_count_channels
cpx #$00
beq !+
jsr up9600_irq
!:
#endif // CONFIG_RS232_UP9600
jsr cursor_blink
jsr JSCNKEY
jsr JUDTIM // update jiffy clock
#if CONFIG_TAPE_NORMAL || CONFIG_TAPE_TURBO
// Turn tape motor on/off depending on the button state
@@ -25,7 +37,8 @@ default_irq_handler:
default_irq_handler_end_tape:
#endif
#endif // CONFIG_TAPE_NORMAL || CONFIG_TAPE_TURBO
// Acknowledge CIA interrupt and return
jmp clear_cia1_interrupt_flag_and_return_from_interrupt
@@ -17,9 +17,10 @@ default_nmi_handler:
bne !+
jmp (ICART_WARM_START)
!:
// According to C64 Wiki, if STOP key is pressed, the routine assumes warm start request
// XXX is it right? how to check that IRQ was caused by RESTORE?
jsr JSTOP
bcs !+
jmp return_from_interrupt // no STOP pressed