.include "asm/macros/function.inc" .include "constants/gba_constants.inc" .syntax unified .text .arm .align 2, 0 .global Init Init: mov r0, #PSR_IRQ_MODE msr cpsr_cf, r0 ldr sp, sp_irq mov r0, #PSR_SYS_MODE msr cpsr_cf, r0 ldr sp, sp_sys ldr r1, =INTR_VECTOR ldr r0, =IntrMain str r0, [r1] ldr r1, =AgbMain + 1 mov lr, pc bx r1 b Init .align 2, 0 sp_sys: .word IWRAM_END - 0x100 sp_irq: .word IWRAM_END - 0x60 .pool .size Init, .-Init .arm .align 2, 0 .global IntrMain IntrMain: @ 0x2010048 mov ip, #REG_BASE add r3, ip, #OFFSET_REG_IE ldr r2, [r3] and r1, r2, r2, lsr #16 mov r2, #0 ands r0, r1, #0x2000 strbne r0, [r3, #-0x17c] _02010064: bne _02010064 ands r0, r1, #0xc0 bne _020100DC add r2, r2, #4 ands r0, r1, #1 strhne r0, [ip, #-8] bne _020100DC add r2, r2, #4 ands r0, r1, #2 bne _020100DC add r2, r2, #4 ands r0, r1, #4 bne _020100DC add r2, r2, #4 ands r0, r1, #0x100 bne _020100DC add r2, r2, #4 ands r0, r1, #0x200 bne _020100DC add r2, r2, #4 ands r0, r1, #0x400 bne _020100DC add r2, r2, #4 ands r0, r1, #0x800 bne _020100DC add r2, r2, #4 ands r0, r1, #0x1000 bne _020100DC add r2, r2, #4 ands r0, r1, #8 _020100DC: strh r0, [r3, #2] ldr r1, =gIntrTable add r1, r1, r2 ldr r0, [r1] bx r0 .pool .size IntrMain, .-IntrMain