diff options
author | Bad Diode <bd@badd10de.dev> | 2024-05-10 17:49:56 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-05-10 17:49:56 +0200 |
commit | 33451307ae4e3a4119dd6be46b25aec03aa51b5d (patch) | |
tree | 3dde87e12187e3400cd60f9045678f3fb29adca1 /src/gba/interrupts.s | |
parent | 901ba917a3b4812f7eacf93d55389978a907a44d (diff) | |
download | stepper-33451307ae4e3a4119dd6be46b25aec03aa51b5d.tar.gz stepper-33451307ae4e3a4119dd6be46b25aec03aa51b5d.zip |
Ensure long irs sequencer_tick can be interrupted
Diffstat (limited to 'src/gba/interrupts.s')
-rw-r--r-- | src/gba/interrupts.s | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gba/interrupts.s b/src/gba/interrupts.s index 67b9fe9..1d3e001 100644 --- a/src/gba/interrupts.s +++ b/src/gba/interrupts.s | |||
@@ -67,6 +67,10 @@ irs_main_handle_irs: | |||
67 | bx r2 | 67 | bx r2 |
68 | ldmfd sp!, {lr} | 68 | ldmfd sp!, {lr} |
69 | 69 | ||
70 | @ Clear IRQ enable again just in case it was enabled from within the IRS. | ||
71 | mov r3, #0 @ r3 = 0 | ||
72 | strh r3, [ip, #8] @ *(ip + 0x8) = r3 | ||
73 | |||
70 | @ Set CPU to irq mode | 74 | @ Set CPU to irq mode |
71 | mrs r3, cpsr | 75 | mrs r3, cpsr |
72 | bic r3, r3, #0xDF | 76 | bic r3, r3, #0xDF |