diff options
| author | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-08-13 21:26:36 +0200 |
|---|---|---|
| committer | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-08-13 21:26:36 +0200 |
| commit | ec3ed1574dac08b1c07a8126f6090adce0e7efb8 (patch) | |
| tree | 825f4bb5e044ce2fa674780b66c77e51e48ab9a4 /libpsn00b/psxetc/interruptcallback.s | |
| parent | edb967394d22420c9aaad529862a670c016cc2c7 (diff) | |
| download | psn00bsdk-ec3ed1574dac08b1c07a8126f6090adce0e7efb8.tar.gz | |
Rewrite libpsxetc in C, add ResetCallback()
Diffstat (limited to 'libpsn00b/psxetc/interruptcallback.s')
| -rw-r--r-- | libpsn00b/psxetc/interruptcallback.s | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/libpsn00b/psxetc/interruptcallback.s b/libpsn00b/psxetc/interruptcallback.s deleted file mode 100644 index 78e5e6e..0000000 --- a/libpsn00b/psxetc/interruptcallback.s +++ /dev/null @@ -1,48 +0,0 @@ -.set noreorder - -.include "hwregs_a.h" - -.section .text - -.global InterruptCallback -.type InterruptCallback, @function -InterruptCallback: - - # a0 - Interrupt number - # a1 - Callback function - - lui $a2, IOBASE - - beqz $a1, .Ldisable_irq - nop - - lw $v0, IRQ_MASK($a2) # Enable interrupt mask - li $v1, 1 - sll $v1, $a0 - or $v0, $v1 - - b .Lcont - sw $v0, IRQ_MASK($a2) - -.Ldisable_irq: - -.set noat - lw $v0, IRQ_MASK($a2) # Disable interrupt mask - li $v1, 1 - sll $v1, $a0 - addiu $at, $0 , -1 - xor $v1, $at -.set at - and $v0, $v1 - sw $v0, IRQ_MASK($a2) - -.Lcont: - - la $a2, _irq_func_table # Get address to IRQ function table - - sll $v1, $a0, 2 # Compute the slot - addu $v1, $a2, $v1 - lw $v0, 0($v1) # Get old handler address - - jr $ra # Return and set new IRQ handler - sw $a1, 0($v1) |
