diff --git a/src/interrupts.s b/src/interrupts.s index 587b697..40f2dc6 100644 --- a/src/interrupts.s +++ b/src/interrupts.s @@ -21,10 +21,12 @@ irq_enter .macro .endm irq_exit .macro + sta long:tmp_register_a tsc sta long:internal_stack_pointer lda long:external_stack_pointer tcs + lda long:tmp_register_a pld plb rti @@ -81,6 +83,8 @@ cop_handler_native: ; Now, we do an indirect, indexed jump through the jump table. jsr (cop_jump_table,x) + + ; And we're done. irq_exit cop_jump_table: @@ -89,8 +93,10 @@ cop_jump_table: ; ----------------------------------------------------------------------------- + .extern __program_start + cop_reset: - rts + jmp long:__program_start ; -----------------------------------------------------------------------------