summaryrefslogtreecommitdiff
path: root/asm/arm9_itcm.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/arm9_itcm.s')
-rw-r--r--asm/arm9_itcm.s505
1 files changed, 0 insertions, 505 deletions
diff --git a/asm/arm9_itcm.s b/asm/arm9_itcm.s
deleted file mode 100644
index 79c0de28..00000000
--- a/asm/arm9_itcm.s
+++ /dev/null
@@ -1,505 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .itcm
-
- ; OS
- arm_func_start OS_IrqHandler
-OS_IrqHandler: ; 0x01FF8000
- stmfd sp!, {lr}
- mov ip, #0x04000000
- add ip, ip, #0x210
- ldr r1, [ip, #-8]
- cmp r1, #0
- ldmeqfd sp!, {pc}
- ldmia ip, {r1, r2}
- ands r1, r1, r2
- ldmeqfd sp!, {pc}
- mov r3, #0x80000000
-_01FF8028:
- clz r0, r1
- bics r1, r1, r3, lsr r0
- bne _01FF8028
- mov r1, r3, lsr r0
- str r1, [ip, #0x4]
- rsbs r0, r0, #0x1f
- ldr r1, _01FF8050 ; =0x027E0000
- ldr r0, [r1, r0, lsl #2]
- ldr lr, _01FF8054 ; =0x01FF70B8
- bx r0
-_01FF8050: .word OS_IRQTable
-_01FF8054: .word OS_IrqHandler_ThreadSwitch
-
- arm_func_start OS_IrqHandler_ThreadSwitch
-OS_IrqHandler_ThreadSwitch: ; 01FF8058
- ldr ip, _01FF81A4
- mov r3, #0x0
- ldr ip, [ip]
- mov r2, #0x1
- cmp ip, #0x0
- beq _01FF80A8
-_01FF8070:
- str r2, [ip, #0x64]
- str r3, [ip, #0x78]
- str r3, [ip, #0x7c]
- ldr r0, [ip, #0x80]
- str r3, [ip, #0x80]
- mov ip, r0
- cmp ip, #0x0
- bne _01FF8070
- ldr ip, _01FF81A4
- str r3, [ip]
- str r3, [ip, #0x4]
- ldr ip, _01FF81A8
- mov r1, #0x1
- strh r1, [ip]
-_01FF80A8:
- ldr ip, _01FF81A8
- ldrh r1, [ip]
- cmp r1, #0x0
- ldreq pc, [sp], #0x4
- mov r1, #0x0
- strh r1, [ip]
- mov r3, #0xd2
- msr CPSR_c, r3
- add r2, ip, #0x8
- ldr r1, [r2]
-_01FF80D0:
- cmp r1, #0x0
- ldrneh r0, [r1, #0x64]
- cmpne r0, #0x1
- ldrne r1, [r1, #0x68]
- bne _01FF80D0
- cmp r1, #0x0
- bne _01FF80F8
-_01FF80EC:
- mov r3, #0x92
- msr CPSR_c, r3
- ldr pc, [sp], #0x4
-_01FF80F8:
- ldr r0, [ip, #0x4]
- cmp r1, r0
- beq _01FF80EC
- ldr r3, [ip, #0xC]
- cmp r3, #0x0
- beq _01FF8120
- stmdb sp!, {r0, r1, ip}
- mov lr, pc
- bx r3
- ldmia sp!, {r0, r1, ip}
-_01FF8120:
- str r1, [ip, #0x4]
- mrs r2, SPSR
- str r2, [r0, #0x0]!
- stmdb sp!, {r0, r1}
- add r0, r0, #0x0
- add r0, r0, #0x48
- ldr r1, _01FF81AC
- blx r1
- ldmia sp!, {r0, r1}
- ldmib sp!, {r2, r3}
- stmib r0!, {r2, r3}
- ldmib sp!, {r2, r3, ip, lr}
- stmib r0!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
- stmib r0!, {lr}
- mov r3, #0xd3
- msr CPSR_c, r3
- stmib r0!, {sp}
- stmfd sp!, {r1}
- add r0, r1, #0x0
- add r0, r0, #0x48
- ldr r1, _01FF81B0
- blx r1
- ldmfd sp!, {r1}
- ldr sp, [r1, #0x44]
- mov r3, #0xd2
- msr CPSR_c, r3
- ldr r2, [r1, #0x0]!
- msr SPSR_fc, r2
- ldr lr, [r1, #0x40]
- ldmib r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
- nop
- stmda sp!, {r0, r1, r2, r3, ip, lr}
- ldmfd sp!, {pc}
-_01FF81A4: .word OSi_IrqThreadQueue
-_01FF81A8: .word OSi_ThreadInfo
-_01FF81AC: .word CP_SaveContext
-_01FF81B0: .word CP_RestoreContext
-
- .section .itcm
- arm_func_start OSi_DoBoot
-OSi_DoBoot: ; 0x01FF81B4
- mov ip, #0x04000000
- str ip, [ip, #0x208]
- ldr r1, _01FF8260
- add r1, r1, #0x3fc0
- add r1, r1, #0x3c
- mov r0, #0x0
- str r0, [r1]
- ldr r1, _01FF8264
-_01FF81D4:
- ldrh r0, [r1]
- and r0, r0, #0xf
- cmp r0, #0x1
- bne _01FF81D4
- mov r0, #0x100
- strh r0, [r1]
- mov r0, #0x0
- ldr r3, _01FF8268
- ldr r4, [r3]
- ldr r1, _01FF826C
- mov r2, #0x80
- bl OSi_CpuClear32
- str r4, [r3]
- ldr r1, _01FF8270
- mov r2, #0x18
- bl OSi_CpuClear32
- ldr r1, _01FF8274
- strh r0, [r1]
- ldr r1, _01FF8278
- mov r2, #0x64
- bl OSi_CpuClear32
- ldr r1, _01FF8264
-_01FF822C:
- ldrh r0, [r1]
- and r0, r0, #0xf
- cmp r0, #0x1
- beq _01FF822C
- mov r0, #0x0
- strh r0, [r1]
- ldr r3, _01FF827C
- ldr ip, [r3, #0x24]
- mov lr, ip
- ldr fp, _01FF8270
- ldmia fp, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl}
- mov fp, #0x0
- bx ip
-_01FF8260: .word SDK_AUTOLOAD_DTCM_START
-_01FF8264: .word 0x04000180
-_01FF8268: .word 0x027FFD9C
-_01FF826C: .word 0x027FFD80
-_01FF8270: .word 0x027FFF80
-_01FF8274: .word 0x027FFF98
-_01FF8278: .word 0x027FFF9C
-_01FF827C: .word 0x027FFE00
-
- arm_func_start OSi_CpuClear32
-OSi_CpuClear32: ; 01FF8280
- add ip, r1, r2
-_01FF8284:
- cmp r1, ip
- stmltia r1!, {r0}
- blt _01FF8284
- bx lr
-
- arm_func_start OSi_ReadCardRom32
-OSi_ReadCardRom32: ; 01FF8294
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- ldr r4, _01FF8390
- ldr r3, _01FF8394
- ldr r4, [r4]
- and r3, r0, r3
- bic r4, r4, #117440512 ; 0x7000000
- orr sl, r4, #-1593835520 ; 0xa1000000
- rsb r9, r3, #0
- ldr r4, _01FF8398
-_01FF82BC:
- ldr r3, [r4]
- ands r3, r3, #-2147483648 ; 0x80000000
- bne _01FF82BC
- ldr r3, _01FF839C
- mov r4, #128 ; 0x80
- cmp r9, r2
- addge sp, sp, #4
- strb r4, [r3]
- add r0, r0, r9
- ldmgeia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bxge lr
- ldr r3, _01FF83A0
- ldr ip, _01FF8398
- ldr r5, _01FF83A4
- ldr r4, _01FF83A8
- mov r7, r0, lsr #8
- mov r6, #183 ; 0xb7
- mov lr, #0
-_01FF8304:
- strb r6, [r5]
- mov r8, r0, lsr #24
- strb r8, [r4]
- ldr r8, _01FF83AC
- mov fp, r0, lsr #16
- strb fp, [r8]
- ldr r8, _01FF83B0
- strb r7, [r8]
- ldr r8, _01FF83B4
- strb r0, [r8]
- ldr r8, _01FF83B8
- strb lr, [r8]
- ldr r8, _01FF83BC
- strb lr, [r8]
- ldr r8, _01FF83C0
- strb lr, [r8]
- str sl, [ip]
-_01FF8348:
- ldr r8, [ip]
- ands fp, r8, #8388608 ; 0x800000
- beq _01FF836C
- cmp r9, #0
- ldr fp, [r3]
- blt _01FF8368
- cmp r9, r2
- strlt fp, [r1, r9]
-_01FF8368:
- add r9, r9, #4
-_01FF836C:
- ands r8, r8, #-2147483648 ; 0x80000000
- bne _01FF8348
- cmp r9, r2
- add r7, r7, #2
- add r0, r0, #512 ; 0x200
- blt _01FF8304
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_01FF8390: .word 0x027FFE60
-_01FF8394: .word 0x000001FF
-_01FF8398: .word 0x040001A4
-_01FF839C: .word 0x040001A1
-_01FF83A0: .word 0x04100010
-_01FF83A4: .word 0x040001A8
-_01FF83A8: .word 0x040001A9
-_01FF83AC: .word 0x040001AA
-_01FF83B0: .word 0x040001AB
-_01FF83B4: .word 0x040001AC
-_01FF83B8: .word 0x040001AD
-_01FF83BC: .word 0x040001AE
-_01FF83C0: .word 0x040001AF
-
- arm_func_start OSi_ReloadRomData
-OSi_ReloadRomData: ; 0x01FF83C4
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- ldr r0, _01FF8484
- ldr sl, [r0]
- cmp sl, #32768 ; 0x8000
- bcc _01FF83EC
- ldr r1, _01FF8488
- mov r0, sl
- mov r2, #352 ; 0x160
- bl OSi_ReadCardRom32
-_01FF83EC:
- ldr r5, _01FF848C
- ldr r4, _01FF8490
- ldr r3, _01FF8494
- ldr r2, _01FF8498
- ldr r1, _01FF849C
- ldr r9, [r5]
- ldr r0, _01FF84A0
- ldr r8, [r4]
- ldr r7, [r3]
- ldr r6, [r2]
- ldr r5, [r1]
- ldr r4, [r0]
- bl OS_DisableInterrupts ; 0x1e02b0
- mov fp, r0
- bl DC_StoreAll ; 0x1df064
- bl DC_InvalidateAll ; 0x1df058
- mov r0, fp
- bl OS_RestoreInterrupts ; 0x1e02c4
- bl IC_InvalidateAll ; 0x1df12c
- bl DC_WaitWriteBufferEmpty ; 0x1df120
- add r9, r9, sl
- cmp r9, #32768 ; 0x8000
- rsbcc r0, r9, #32768 ; 0x8000
- addcc r8, r8, r0
- subcc r7, r7, r0
- movcc r9, #32768 ; 0x8000
- add r6, r6, sl
- mov r0, r9
- mov r1, r8
- mov r2, r7
- bl OSi_ReadCardRom32 ; 0x10b234
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl OSi_ReadCardRom32
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_01FF8484: .word 0x027FFC2C
-_01FF8488: .word 0x027FFE00
-_01FF848C: .word 0x027FFE20
-_01FF8490: .word 0x027FFE28
-_01FF8494: .word 0x027FFE2C
-_01FF8498: .word 0x027FFE30
-_01FF849C: .word 0x027FFE38
-_01FF84A0: .word 0x027FFE3C
-
- arm_func_start OSi_DoResetSystem
-OSi_DoResetSystem: ; 0x01FF84A4
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _01FF84DC
-_01FF84B0:
- ldrh r1, [r0]
- cmp r1, #0
- beq _01FF84B0
- ldr r0, _01FF84E0
- mov r1, #0
- strh r1, [r0]
- bl OSi_ReloadRomData
- bl OSi_DoBoot
- add sp, sp, #4
- ldmfd sp!, {lr}
- bx lr
-_01FF84DC: .word OSi_IsResetOccurred
-_01FF84E0: .word 0x04000208
-
- ; MI
- arm_func_start MIi_DmaSetParams_wait_noInt
-MIi_DmaSetParams_wait_noInt: ; 0x01FF84E4
- stmdb sp!, {r4, lr}
- mov ip, #12
- mul r4, r0, ip
- add ip, r4, #67108864 ; 0x4000000
- ldr lr, [pc, #64] ; 0x10b4dc
- str r1, [ip, #176] ; 0xb0
- add r4, r4, lr
- str r2, [r4, #4]
- str r3, [r4, #8]
- ldr r1, [lr]
- cmp r0, #0
- ldr r0, [lr]
- moveq r1, #0
- streq r1, [r4]
- streq r1, [r4, #4]
- ldreq r0, _01FF8540
- ldr r1, _01FF853C
- streq r0, [r4, #8]
- ldr r0, [r1]
- ldr r0, [r1]
- ldmia sp!, {r4, lr}
- bx lr
-_01FF853C: .word 0x040000B0
-_01FF8540: .word 0x81400001
-
- arm_func_start MIi_DmaSetParams_noInt
-MIi_DmaSetParams_noInt: ; 01FF8544
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov ip, #12
- mul lr, r0, ip
- ldr r0, _01FF8578
- add ip, lr, #67108864 ; 0x4000000
- str r1, [ip, #176] ; 0xb0
- add r0, lr, r0
- str r2, [r0, #4]
- str r3, [r0, #8]
- add sp, sp, #4
- ldmfd sp!, {lr}
- bx lr
-_01FF8578: .word 0x040000B0
-
- arm_func_start MIi_DmaSetParams_wait
-MIi_DmaSetParams_wait: ; 01FF857C
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl OS_DisableInterrupts
- mov r1, #12
- mul r3, r7, r1
- add r1, r3, #67108864 ; 0x4000000
- ldr r2, _01FF85E8
- str r6, [r1, #176] ; 0xb0
- add r3, r3, r2
- str r5, [r3, #4]
- str r4, [r3, #8]
- ldr r1, [r2]
- cmp r7, #0
- ldr r1, [r2]
- moveq r2, #0
- streq r2, [r3]
- ldreq r1, _01FF85EC
- streq r2, [r3, #4]
- streq r1, [r3, #8]
- bl OS_RestoreInterrupts
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_01FF85E8: .word 0x040000B0
-_01FF85EC: .word 0x81400001
-
- arm_func_start MIi_DmaSetParams
-MIi_DmaSetParams: ; 01FF85F0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl OS_DisableInterrupts
- mov r1, #12
- mul r3, r7, r1
- ldr r1, _01FF863C
- add r2, r3, #67108864 ; 0x4000000
- str r6, [r2, #176] ; 0xb0
- add r1, r3, r1
- str r5, [r1, #4]
- str r4, [r1, #8]
- bl OS_RestoreInterrupts
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_01FF863C: .word 0x040000B0
-
- arm_func_start MI_SendGXCommand
-MI_SendGXCommand: ; 0x01FF8640
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- movs r8, r2
- mov sl, r0
- mov r9, r1
- addeq sp, sp, #4
- ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bxeq lr
- mov r3, #0
- bl MIi_CheckDma0SourceAddress
- mov r0, #3
- mul r1, sl, r0
- ldr r0, [pc, #104] ; 0x10b680
- add r1, r1, #2
- add r7, r0, r1, lsl #2
-_01FF867C:
- ldr r0, [r7]
- ands r0, r0, #-2147483648 ; 0x80000000
- bne _01FF867C
- cmp r8, #0
- beq _01FF86C8
- ldr fp, [pc, #76] ; 0x10b684
- mov r5, #472 ; 0x1d8
- ldr r4, [pc, #72] ; 0x10b688
-_01FF869C:
- cmp r8, #472 ; 0x1d8
- movhi r6, r5
- movls r6, r8
- mov r0, sl
- mov r1, r9
- mov r2, fp
- orr r3, r4, r6, lsr #2
- bl MIi_DmaSetParams
- subs r8, r8, r6
- add r9, r9, r6
- bne _01FF869C
-_01FF86C8:
- ldr r0, [r7]
- ands r0, r0, #-2147483648 ; 0x80000000
- bne _01FF86C8
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_01FF86E0: .word 0x040000B0
-_01FF86E4: .word 0x04000400
-_01FF86E8: .word 0x84400000