summaryrefslogtreecommitdiff
path: root/arm7/asm/wram2.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm7/asm/wram2.s')
-rw-r--r--arm7/asm/wram2.s2888
1 files changed, 0 insertions, 2888 deletions
diff --git a/arm7/asm/wram2.s b/arm7/asm/wram2.s
index 57fd39e1..513bba1a 100644
--- a/arm7/asm/wram2.s
+++ b/arm7/asm/wram2.s
@@ -3,2894 +3,6 @@
.section .text
- arm_func_start FUN_03801150
-FUN_03801150: ;@ 0x03801150
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r2, #0
- bne _038011B4
- sub r0, r0, #4
- cmp r0, #5
- addls pc, pc, r0, lsl #2
- b _038011B4
- b _038011AC
- b _038011B4
- b _03801188
- b _038011B4
- b _038011A0
- b _03801194
-_03801188:
- mov r0, r1
- bl TP_AnalyzeCommand
- b _038011B4
-_03801194:
- mov r0, r1
- bl MIC_AnalyzeCommand
- b _038011B4
-_038011A0:
- mov r0, r1
- bl PM_AnalyzeCommand
- b _038011B4
-_038011AC:
- mov r0, r1
- bl NVRAM_AnalyzeCommand
-_038011B4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038011C0
-FUN_038011C0: ;@ 0x038011C0
- stmdb sp!, {r4, r5, r6, lr}
- sub sp, sp, #8
- ldr r6, _03801228 ;@ =_03809C5C
- add r5, sp, #0
- mov r4, #1
-_038011D4:
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl OS_ReceiveMessage
- ldr r0, [sp]
- ldr r1, [r0]
- cmp r1, #3
- addls pc, pc, r1, lsl #2
- b _038011D4
- b _03801208
- b _03801220
- b _03801210
- b _03801218
-_03801208:
- bl TP_ExecuteProcess
- b _038011D4
-_03801210:
- bl MIC_ExecuteProcess
- b _038011D4
-_03801218:
- bl PM_ExecuteProcess
- b _038011D4
-_03801220:
- bl NVRAM_ExecuteProcess
- b _038011D4
-_03801228: .word _03809C5C
-
- arm_func_start SPIi_CheckEntry
-SPIi_CheckEntry: ;@ 0x0380122C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03801250 ;@ =_03809C5C
- add r1, sp, #0
- mov r2, #0
- bl OS_ReadMessage
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801250: .word _03809C5C
-
- arm_func_start SPIi_SetEntry
-SPIi_SetEntry: ;@ 0x03801254
- stmdb sp!, {r0, r1, r2, r3}
- stmdb sp!, {r4, r5, r6, lr}
- mov r5, r0
- mov r4, r1
- ldrh r0, [sp, #24]
- cmp r0, #4
- movhi r0, #0
- bhi _0380130C
- bl OS_DisableInterrupts
- ldr r2, _03801318 ;@ =_038099B0
- ldr r3, [r2, #1164] ;@ 0x48c
- mov r1, #24
- mul ip, r3, r1
- ldr r3, _0380131C ;@ =_03809CBC
- str r5, [r3, ip]
- ldr r3, [r2, #1164] ;@ 0x48c
- mul r5, r3, r1
- ldr r3, _03801320 ;@ =_03809CC0
- str r4, [r3, r5]
- add r3, sp, #24
- bic r3, r3, #3
- add r6, r3, #4
- mov lr, #0
- ldrh ip, [sp, #24]
- b _038012D4
-_038012B8:
- add r6, r6, #4
- ldr r5, [r6, #-4]
- ldr r4, [r2, #1164] ;@ 0x48c
- mla r3, r4, r1, r2
- add r3, r3, lr, lsl #2
- str r5, [r3, #788] ;@ 0x314
- add lr, lr, #1
-_038012D4:
- cmp lr, ip
- blt _038012B8
- ldr r1, _03801318 ;@ =_038099B0
- ldr r4, [r1, #1164] ;@ 0x48c
- add r2, r4, #1
- and r2, r2, #15
- str r2, [r1, #1164] ;@ 0x48c
- bl OS_RestoreInterrupts
- ldr r0, _03801324 ;@ =_03809C5C
- ldr r2, _0380131C ;@ =_03809CBC
- mov r1, #24
- mla r1, r4, r1, r2
- mov r2, #0
- bl OS_SendMessage
-_0380130C:
- ldmia sp!, {r4, r5, r6, lr}
- add sp, sp, #16
- bx lr
-_03801318: .word _038099B0
-_0380131C: .word _03809CBC
-_03801320: .word _03809CC0
-_03801324: .word _03809C5C
-
- arm_func_start SPIi_ReleaseException
-SPIi_ReleaseException: ;@ 0x03801328
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r1, _03801364 ;@ =_038099B0
- ldr r2, [r1, #4]
- cmp r2, r0
- bne _03801358
- mov r0, #5
- str r0, [r1, #4]
- mov r0, #0
- str r0, [r1]
- ldr r0, _03801368 ;@ =_03809E40
- bl OS_WakeupThread
-_03801358:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801364: .word _038099B0
-_03801368: .word _03809E40
-
- arm_func_start SPIi_GetException
-SPIi_GetException: ;@ 0x0380136C
- mov r2, #1
- ldr r1, _03801380 ;@ =_038099B0
- str r2, [r1]
- str r0, [r1, #4]
- bx lr
-_03801380: .word _038099B0
-
- arm_func_start SPIi_CheckException
-SPIi_CheckException: ;@ 0x03801384
- ldr r0, _0380139C ;@ =_038099B0
- ldr r0, [r0]
- cmp r0, #0
- moveq r0, #1
- movne r0, #0
- bx lr
-_0380139C: .word _038099B0
-
- arm_func_start SPIi_ReturnResult
-SPIi_ReturnResult: ;@ 0x038013A0
- stmdb sp!, {r4, r5, r6, lr}
- and r2, r0, #112 ;@ 0x70
- cmp r2, #48 ;@ 0x30
- bgt _038013E0
- cmp r2, #48 ;@ 0x30
- bge _03801434
- cmp r2, #16
- bgt _038013D4
- cmp r2, #16
- bge _0380141C
- cmp r2, #0
- beq _0380141C
- b _03801438
-_038013D4:
- cmp r2, #32
- beq _03801434
- b _03801438
-_038013E0:
- cmp r2, #80 ;@ 0x50
- bgt _038013FC
- cmp r2, #80 ;@ 0x50
- bge _03801424
- cmp r2, #64 ;@ 0x40
- beq _03801424
- b _03801438
-_038013FC:
- cmp r2, #96 ;@ 0x60
- bgt _03801410
- cmp r2, #96 ;@ 0x60
- beq _0380142C
- b _03801438
-_03801410:
- cmp r2, #112 ;@ 0x70
- beq _0380142C
- b _03801438
-_0380141C:
- mov r4, #6
- b _03801438
-_03801424:
- mov r4, #9
- b _03801438
-_0380142C:
- mov r4, #8
- b _03801438
-_03801434:
- mov r4, #4
-_03801438:
- and r0, r0, #255 ;@ 0xff
- orr r0, r0, #128 ;@ 0x80
- mov r0, r0, lsl #8
- orr r2, r0, #50331648 ;@ 0x3000000
- and r0, r1, #255 ;@ 0xff
- orr r6, r2, r0
- mov r5, #0
-_03801454:
- mov r0, r4
- mov r1, r6
- mov r2, r5
- bl PXI_SendWordByFifo
- cmp r0, #0
- blt _03801454
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start SPI_Unlock
-SPI_Unlock: ;@ 0x03801474
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r1, _038014D8 ;@ =_038099B0
- ldr r2, [r1]
- cmp r2, #0
- beq _038014CC
- ldr r2, [r1, #4]
- cmp r2, #4
- bne _038014CC
- ldr r1, [r1, #1176] ;@ 0x498
- cmp r1, r0
- bne _038014CC
- bl OS_DisableInterrupts
- mov r2, #5
- ldr r1, _038014D8 ;@ =_038099B0
- str r2, [r1, #4]
- mov r2, #0
- str r2, [r1]
- str r2, [r1, #1176] ;@ 0x498
- bl OS_RestoreInterrupts
- ldr r0, _038014DC ;@ =_03809E40
- bl OS_WakeupThread
-_038014CC:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038014D8: .word _038099B0
-_038014DC: .word _03809E40
-
- arm_func_start SPI_Lock
-SPI_Lock: ;@ 0x038014E0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- ldr r5, _0380153C ;@ =_03809E40
- ldr r4, _03801540 ;@ =_038099B0
-_038014F4:
- bl OS_DisableInterrupts
- mov r6, r0
- ldr r1, [r4]
- cmp r1, #0
- beq _03801518
- bl OS_RestoreInterrupts
- mov r0, r5
- bl OS_SleepThread
- b _038014F4
-_03801518:
- mov r0, #4
- bl SPIi_GetException
- ldr r0, _03801540 ;@ =_038099B0
- str r7, [r0, #1176] ;@ 0x498
- mov r0, r6
- bl OS_RestoreInterrupts
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_0380153C: .word _03809E40
-_03801540: .word _038099B0
-
- arm_func_start SPI_Init
-SPI_Init: ;@ 0x03801544
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- sub sp, sp, #8
- mov r4, r0
- ldr r0, _03801640 ;@ =_038099AC
- ldrh r1, [r0]
- cmp r1, #0
- bne _03801634
- mov r1, #1
- strh r1, [r0]
- mov r1, #0
- ldr r0, _03801644 ;@ =_038099B0
- str r1, [r0]
- mov r1, #5
- str r1, [r0, #4]
- bl TP_Init
- bl NVRAM_Init
- bl MIC_Init
- bl PM_Init
- bl PXI_Init
- mov r0, #6
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #9
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #8
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #4
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- ldr r0, _0380164C ;@ =_03809C5C
- ldr r1, _03801650 ;@ =_03809C7C
- mov r2, #16
- bl OS_InitMessageQueue
- mov r8, #0
- ldr r7, _03801654 ;@ =_03809CBC
- mov r6, r8
- mov r5, #24
-_038015E0:
- mla r0, r8, r5, r7
- mov r1, r6
- mov r2, r5
- bl MI_CpuFill8
- add r8, r8, #1
- cmp r8, #16
- blt _038015E0
- mov r2, #0
- ldr r0, _03801644 ;@ =_038099B0
- str r2, [r0, #1164] ;@ 0x48c
- str r2, [r0, #1172] ;@ 0x494
- str r2, [r0, #1168] ;@ 0x490
- mov r0, #512 ;@ 0x200
- str r0, [sp]
- str r4, [sp, #4]
- ldr r0, _03801658 ;@ =_038099B8
- ldr r1, _0380165C ;@ =FUN_038011C0
- ldr r3, _0380164C ;@ =_03809C5C
- bl OS_CreateThread
- ldr r0, _03801658 ;@ =_038099B8
- bl OS_WakeupThreadDirect
-_03801634:
- add sp, sp, #8
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_03801640: .word _038099AC
-_03801644: .word _038099B0
-_03801648: .word FUN_03801150
-_0380164C: .word _03809C5C
-_03801650: .word _03809C7C
-_03801654: .word _03809CBC
-_03801658: .word _038099B8
-_0380165C: .word FUN_038011C0
-
- arm_func_start FUN_03801660
-FUN_03801660: ;@ 0x03801660
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r0, #0
- bne _03801680
- mov r0, #3
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801698
-_03801680:
- ldr r1, _038016A4 ;@ =_03809E54
- str r0, [r1, #36] ;@ 0x24
- str r0, [r1, #40] ;@ 0x28
- mov r0, #3
- mov r1, #0
- bl SPIi_ReturnResult
-_03801698:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038016A4: .word _03809E54
-
- arm_func_start FUN_038016A8
-FUN_038016A8: ;@ 0x038016A8
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- mov r4, r0
- mov r0, #0
- mov r1, #16
- mov r2, #1
- mov r3, r4
- bl SPIi_SetEntry
- cmp r0, #0
- bne _0380170C
- ldr r0, [sp]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [sp]
- ldrh r1, [sp]
- ldr r0, _03801718 ;@ =0x027FFFAA
- strh r1, [r0]
- ldrh r1, [sp, #2]
- ldr r0, _0380171C ;@ =0x027FFFAC
- strh r1, [r0]
- mov r0, #16
- and r1, r4, #255 ;@ 0xff
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
-_0380170C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03801718: .word 0x027FFFAA
-_0380171C: .word 0x027FFFAC
-
- arm_func_start TP_ExecuteProcess
-TP_ExecuteProcess: ;@ 0x03801720
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- sub sp, sp, #16
- mov sl, r0
- ldr r1, [sl, #4]
- cmp r1, #2
- bhi _03801754
- cmp r1, #0
- beq _0380176C
- cmp r1, #1
- beq _03801834
- cmp r1, #2
- beq _038018E0
- b _0380192C
-_03801754:
- cmp r1, #16
- bne _0380192C
- ldr r0, _03801938 ;@ =_03809E54
- ldr r0, [r0, #32]
- cmp r0, #2
- bne _0380192C
-_0380176C:
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #0
- bl SPIi_CheckException
- cmp r0, #0
- bne _038017A4
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _0380192C
-_038017A4:
- mov r0, #0
- bl SPIi_GetException
- mov r0, r4
- bl OS_RestoreInterrupts
- add r0, sp, #8
- ldr r1, _03801938 ;@ =_03809E54
- ldr r1, [r1, #36] ;@ 0x24
- add r2, sp, #4
- bl TP_ExecSampling
- add r0, sp, #8
- ldrh r1, [sp, #4]
- bl FUN_03801954
- ldrh r1, [sp, #8]
- ldr r0, _0380193C ;@ =0x027FFFAA
- strh r1, [r0]
- ldrh r1, [sp, #10]
- ldr r0, _03801940 ;@ =0x027FFFAC
- strh r1, [r0]
- ldr r0, [sl, #4]
- cmp r0, #0
- bne _0380180C
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- b _03801828
-_0380180C:
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr r1, [sl, #8]
- and r1, r1, #255 ;@ 0xff
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
-_03801828:
- mov r0, #0
- bl SPIi_ReleaseException
- b _0380192C
-_03801834:
- ldr r7, _03801938 ;@ =_03809E54
- ldr r0, [r7, #32]
- cmp r0, #1
- bne _038018CC
- mov r9, #0
- ldr r8, _03801944 ;@ =0x00000107
- ldr r6, _03801948 ;@ =_03809E80
- mov r5, #10
- ldr r4, _0380194C ;@ =FUN_038016A8
- b _0380189C
-_0380185C:
- mul r0, r9, r8
- bl _u32_div_f
- ldr r1, [sl, #12]
- add r0, r1, r0
- mov r1, r8
- bl _u32_div_f
- add r2, r7, r9, lsl #1
- strh r1, [r2, #204] ;@ 0xcc
- str r9, [sp]
- mov r0, #40 ;@ 0x28
- mla r0, r9, r0, r6
- ldrsh r1, [r2, #204] ;@ 0xcc
- mov r2, r5
- mov r3, r4
- bl OS_SetPeriodicVAlarm
- add r9, r9, #1
-_0380189C:
- ldr r1, [sl, #8]
- cmp r9, r1
- bcc _0380185C
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #2
- ldr r0, _03801938 ;@ =_03809E54
- str r1, [r0, #32]
- b _0380192C
-_038018CC:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- b _0380192C
-_038018E0:
- ldr r0, _03801938 ;@ =_03809E54
- ldr r0, [r0, #32]
- cmp r0, #3
- bne _0380191C
- ldr r0, _03801950 ;@ =0x54505641
- bl OS_CancelVAlarms
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #0
- ldr r0, _03801938 ;@ =_03809E54
- str r1, [r0, #32]
- b _0380192C
-_0380191C:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
-_0380192C:
- add sp, sp, #16
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_03801938: .word _03809E54
-_0380193C: .word 0x027FFFAA
-_03801940: .word 0x027FFFAC
-_03801944: .word 0x00000107
-_03801948: .word _03809E80
-_0380194C: .word FUN_038016A8
-_03801950: .word 0x54505641
-
- arm_func_start FUN_03801954
-FUN_03801954: ;@ 0x03801954
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, [r0]
- mov r2, r0, lsl #7
- movs r2, r2, lsr #31
- bne _03801984
- mov r1, #0
- ldr r0, _03801A3C ;@ =_03809E50
- strb r1, [r0]
- ldr r0, _03801A40 ;@ =_03809E4C
- strb r1, [r0]
- b _03801A30
-_03801984:
- mov r0, r0, lsl #5
- movs r0, r0, lsr #30
- beq _038019D4
- mov r2, #0
- ldr r0, _03801A40 ;@ =_03809E4C
- strb r2, [r0]
- ldr r0, _03801A3C ;@ =_03809E50
- ldrb r1, [r0]
- add r1, r1, #1
- strb r1, [r0]
- ldrb r1, [r0]
- cmp r1, #4
- bcc _03801A30
- strb r2, [r0]
- ldr r0, _03801A44 ;@ =_03809E54
- ldr r1, [r0, #36] ;@ 0x24
- cmp r1, #35 ;@ 0x23
- addlt r1, r1, #1
- strlt r1, [r0, #36] ;@ 0x24
- b _03801A30
-_038019D4:
- mov lr, #0
- ldr r3, _03801A3C ;@ =_03809E50
- strb lr, [r3]
- ldr r2, _03801A44 ;@ =_03809E54
- ldr ip, [r2, #36] ;@ 0x24
- cmp r1, ip, asr #1
- ldrge r0, _03801A40 ;@ =_03809E4C
- strgeb lr, [r0]
- bge _03801A30
- ldr r0, _03801A40 ;@ =_03809E4C
- ldrb r1, [r0]
- add r1, r1, #1
- strb r1, [r0]
- ldrb r1, [r0]
- cmp r1, #4
- bcc _03801A30
- strb lr, [r0]
- ldr r0, [r2, #40] ;@ 0x28
- cmp ip, r0
- subgt r0, ip, #1
- strgt r0, [r2, #36] ;@ 0x24
- movgt r0, #3
- strgtb r0, [r3]
-_03801A30:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801A3C: .word _03809E50
-_03801A40: .word _03809E4C
-_03801A44: .word _03809E54
-
- arm_func_start TP_AnalyzeCommand
-TP_AnalyzeCommand: ;@ 0x03801A48
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _03801A78
- mov r4, #0
- mov r3, r4
- ldr r1, _03801C00 ;@ =_03809E54
-_03801A64:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _03801A64
-_03801A78:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #1
- ldr r2, _03801C00 ;@ =_03809E54
- strh r0, [r2, r1]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03801BF4
- ldrh r1, [r2]
- and r0, r1, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- cmp r4, #3
- addls pc, pc, r4, lsl #2
- b _03801BE8
- b _03801AD4
- b _03801AFC
- b _03801B98
- b _03801AC0
-_03801AC0:
- and r0, r1, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- bl FUN_03801660
- b _03801BF4
-_03801AD4:
- mov r0, #0
- mov r1, r4
- mov r2, r0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801AFC:
- ldr r0, [r2, #32]
- cmp r0, #0
- beq _03801B18
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B18:
- and r0, r1, #255 ;@ 0xff
- mov r0, r0, lsl #16
- movs r3, r0, lsr #16
- beq _03801B30
- cmp r3, #4
- bls _03801B40
-_03801B30:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B40:
- ldrh r1, [r2, #2]
- ldr r0, _03801C04 ;@ =0x00000107
- cmp r1, r0
- bcc _03801B60
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B60:
- str r1, [sp]
- mov r0, #0
- mov r1, r4
- mov r2, #2
- bl SPIi_SetEntry
- cmp r0, #0
- movne r1, #1
- ldrne r0, _03801C00 ;@ =_03809E54
- strne r1, [r0, #32]
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B98:
- ldr r0, [r2, #32]
- cmp r0, #2
- beq _03801BB4
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03801BF4
-_03801BB4:
- mov r0, #0
- mov r1, r4
- mov r2, r0
- bl SPIi_SetEntry
- cmp r0, #0
- movne r1, #3
- ldrne r0, _03801C00 ;@ =_03809E54
- strne r1, [r0, #32]
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801BE8:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03801BF4:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03801C00: .word _03809E54
-_03801C04: .word 0x00000107
-
- arm_func_start TP_Init
-TP_Init: ;@ 0x03801C08
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r3, #0
- ldr r0, _03801CFC ;@ =_03809E54
- str r3, [r0, #32]
- mov r1, #20
- str r1, [r0, #36] ;@ 0x24
- str r1, [r0, #40] ;@ 0x28
- mov r2, r3
-_03801C28:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _03801C28
- bl OS_IsVAlarmAvailable
- cmp r0, #0
- bne _03801C4C
- bl OS_InitVAlarm
-_03801C4C:
- mov r7, #0
- ldr r6, _03801D00 ;@ =_03809E80
- ldr r5, _03801D04 ;@ =0x54505641
- mov r4, #40 ;@ 0x28
-_03801C5C:
- mla r8, r7, r4, r6
- mov r0, r8
- bl OS_CreateVAlarm
- mov r0, r8
- mov r1, r5
- bl OS_SetVAlarmTag
- add r7, r7, #1
- cmp r7, #4
- blt _03801C5C
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801C84:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801C84
- ldr r0, _03801D0C ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CA8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CA8
- mov r1, #0
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CC4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CC4
- ldr r0, _03801D14 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CE8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CE8
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_03801CFC: .word _03809E54
-_03801D00: .word _03809E80
-_03801D04: .word 0x54505641
-_03801D08: .word 0x040001C0
-_03801D0C: .word 0x00008A01
-_03801D10: .word 0x040001C2
-_03801D14: .word 0x00008201
-
- arm_func_start TP_ExecSampling
-TP_ExecSampling: ;@ 0x03801D18
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #12
- mov r7, r0
- movs r6, r1
- mov r5, r2
- mov r0, #0
- strh r0, [r5]
- rsbmi r6, r6, #0
- bl FUN_03802160
- movs r4, r0
- bne _03801D94
- ldr r1, [r7]
- mov r0, #4096 ;@ 0x1000
- rsb r0, r0, #0
- and r0, r1, r0
- str r0, [r7]
- ldr r1, [r7]
- ldr r0, _03801F4C ;@ =0xFF000FFF
- and r0, r1, r0
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801D94:
- add r0, sp, #0
- mov r1, r6
- mov r2, #0
- add r3, sp, #2
- bl FUN_03801F68
- ldr r1, [r7]
- bic r1, r1, #100663296 ;@ 0x6000000
- and r0, r0, #3
- orr r0, r1, r0, lsl #25
- str r0, [r7]
- ldr r1, [r7]
- mov r0, #4096 ;@ 0x1000
- rsb r0, r0, #0
- and r2, r1, r0
- ldrh r1, [sp]
- ldr r0, _03801F54 ;@ =0x00000FFF
- and r0, r1, r0
- orr r0, r2, r0
- str r0, [r7]
- add r0, sp, #0
- mov r1, r6
- mov r2, #1
- add r3, sp, #4
- bl FUN_03801F68
- cmp r0, #2
- bne _03801E1C
- ldr r0, [r7]
- bic r1, r0, #100663296 ;@ 0x6000000
- mov r0, r0, lsl #5
- mov r0, r0, lsr #30
- orr r0, r0, #2
- and r0, r0, #3
- orr r0, r1, r0, lsl #25
- str r0, [r7]
-_03801E1C:
- ldr r1, [r7]
- ldr r0, _03801F4C ;@ =0xFF000FFF
- and r2, r1, r0
- ldrh r1, [sp]
- ldr r0, _03801F54 ;@ =0x00000FFF
- and r0, r1, r0
- orr r0, r2, r0, lsl #12
- str r0, [r7]
- ldr r0, _03801F58 ;@ =0x00008A01
- ldr r3, _03801F5C ;@ =0x040001C0
- strh r0, [r3]
- mov r6, #0
- mov r2, r6
- ldr r1, _03801F60 ;@ =0x040001C2
-_03801E54:
- strh r2, [r1]
-_03801E58:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03801E58
- add r6, r6, #1
- cmp r6, #12
- blt _03801E54
- ldr r0, _03801F64 ;@ =0x00008201
- strh r0, [r3]
- mov r1, #0
- ldr r0, _03801F60 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801F5C ;@ =0x040001C0
-_03801E88:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801E88
- cmp r4, #2
- ldreq r0, [r7]
- biceq r0, r0, #100663296 ;@ 0x6000000
- orreq r0, r0, #100663296 ;@ 0x6000000
- streq r0, [r7]
- bl FUN_03802160
- cmp r0, #0
- beq _03801F20
- cmp r0, #1
- beq _03801EF0
- cmp r0, #2
- bne _03801F3C
- ldr r0, [r7]
- orr r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801EF0:
- ldr r0, [r7]
- orr r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- mov r1, #1
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- ldrh r0, [sp, #4]
- ldrh r1, [sp, #2]
- cmp r1, r0
- movcc r1, r0
- strh r1, [r5]
- b _03801F40
-_03801F20:
- ldr r0, [r7]
- bic r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801F3C:
- bl OS_Terminate
-_03801F40:
- add sp, sp, #12
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03801F4C: .word 0xFF000FFF
-_03801F50: .word _03809F28
-_03801F54: .word 0x00000FFF
-_03801F58: .word 0x00008A01
-_03801F5C: .word 0x040001C0
-_03801F60: .word 0x040001C2
-_03801F64: .word 0x00008201
-
- arm_func_start FUN_03801F68
-FUN_03801F68: ;@ 0x03801F68
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- sub sp, sp, #24
- cmp r2, #0
- moveq r5, #209 ;@ 0xd1
- moveq r6, #1
- movne r5, #145 ;@ 0x91
- movne r6, #2
-_03801F84:
- ldr r4, _0380214C ;@ =0x040001C0
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03801F84
- ldr r2, _03802150 ;@ =0x00008A01
- strh r2, [r4]
- and r5, r5, #255 ;@ 0xff
- ldr r2, _03802154 ;@ =0x040001C2
- strh r5, [r2]
-_03801FA8:
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03801FA8
- mov r7, #0
- ldr ip, _0380214C ;@ =0x040001C0
- ldr lr, _03802154 ;@ =0x040001C2
- add r2, sp, #0
- mov r4, r7
- ldr r9, _03802158 ;@ =0x00007FF8
-_03801FCC:
- strh r4, [lr]
-_03801FD0:
- ldrh r8, [ip]
- ands r8, r8, #128 ;@ 0x80
- bne _03801FD0
- ldrh r8, [lr]
- and r8, r8, #255 ;@ 0xff
- mov r8, r8, lsl #16
- mov r8, r8, lsr #8
- str r8, [r2, r7, lsl #2]
- strh r5, [lr]
-_03801FF4:
- ldrh r8, [ip]
- ands r8, r8, #128 ;@ 0x80
- bne _03801FF4
- ldrh r8, [lr]
- and r8, r8, #255 ;@ 0xff
- mov r8, r8, lsl #16
- ldr sl, [r2, r7, lsl #2]
- orr r8, sl, r8, lsr #16
- str r8, [r2, r7, lsl #2]
- ldr r8, [r2, r7, lsl #2]
- and r8, r8, r9
- mov r8, r8, asr #3
- str r8, [r2, r7, lsl #2]
- add r7, r7, #1
- cmp r7, #5
- blt _03801FCC
- ldr r2, _0380215C ;@ =0x00008201
- strh r2, [ip]
- mov r2, #0
- strh r2, [lr]
- ldr r4, _0380214C ;@ =0x040001C0
-_03802048:
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03802048
- mov r8, #0
- mov r7, r8
- add r5, sp, #0
-_03802060:
- add r9, r7, #1
- ldr r4, [r5, r7, lsl #2]
- b _03802084
-_0380206C:
- ldr r2, [r5, r9, lsl #2]
- subs r2, r4, r2
- rsbmi r2, r2, #0
- cmp r2, r8
- movgt r8, r2
- add r9, r9, #1
-_03802084:
- cmp r9, #5
- blt _0380206C
- add r7, r7, #1
- cmp r7, #4
- blt _03802060
- strh r8, [r3]
- mov r4, #0
- add r2, sp, #0
- b _0380211C
-_038020A8:
- add r3, r4, #1
- ldr r7, [r2, r4, lsl #2]
- b _03802110
-_038020B4:
- ldr r8, [r2, r3, lsl #2]
- subs r5, r7, r8
- rsbmi r5, r5, #0
- cmp r5, r1
- bgt _0380210C
- add r9, r3, #1
- b _03802104
-_038020D0:
- ldr r5, [r2, r9, lsl #2]
- subs sl, r7, r5
- rsbmi sl, sl, #0
- cmp sl, r1
- bgt _03802100
- add r1, r8, r7, lsl #1
- add r1, r5, r1
- mov r1, r1, asr #2
- bic r1, r1, #7
- strh r1, [r0]
- mov r0, #0
- b _03802140
-_03802100:
- add r9, r9, #1
-_03802104:
- cmp r9, #5
- blt _038020D0
-_0380210C:
- add r3, r3, #1
-_03802110:
- cmp r3, #4
- blt _038020B4
- add r4, r4, #1
-_0380211C:
- cmp r4, #3
- blt _038020A8
- ldr r2, [sp]
- ldr r1, [sp, #16]
- add r1, r2, r1
- mov r1, r1, asr #1
- bic r1, r1, #7
- strh r1, [r0]
- mov r0, r6
-_03802140:
- add sp, sp, #24
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_0380214C: .word 0x040001C0
-_03802150: .word 0x00008A01
-_03802154: .word 0x040001C2
-_03802158: .word 0x00007FF8
-_0380215C: .word 0x00008201
-
- arm_func_start FUN_03802160
-FUN_03802160: ;@ 0x03802160
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #32768 ;@ 0x8000
- bl EXIi_SelectRcnt
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802174:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802174
- ldr r0, _038022A8 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802198:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802198
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_038021B4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038021B4
- ldr r0, _038022B0 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_038021D8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038021D8
- ldr r0, _038022B4 ;@ =_03809F28
- ldrh r0, [r0]
- cmp r0, #0
- bne _0380220C
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- moveq r0, #1
- movne r0, #0
- b _03802298
-_0380220C:
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- moveq r0, #1
- beq _03802298
- ldr r0, _038022A8 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802238:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802238
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802254:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802254
- ldr r0, _038022B0 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802278:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802278
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- movne r0, #0
- moveq r0, #2
-_03802298:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038022A4: .word 0x040001C0
-_038022A8: .word 0x00008A01
-_038022AC: .word 0x040001C2
-_038022B0: .word 0x00008201
-_038022B4: .word _03809F28
-_038022B8: .word 0x04000136
-
- arm_func_start PM_ExecuteProcess
-PM_ExecuteProcess: ;@ 0x038022BC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- bl OS_DisableInterrupts
- mov r5, r0
- mov r0, #3
- bl SPIi_CheckException
- cmp r0, #0
- bne _03802300
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _0380242C
-_03802300:
- mov r0, #3
- bl SPIi_GetException
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r1, [r4, #4]
- sub r0, r1, #97 ;@ 0x61
- cmp r0, #5
- addls pc, pc, r0, lsl #2
- b _03802414
- b _0380233C
- b _03802414
- b _038023E0
- b _03802368
- b _038023A4
- b _03802408
-_0380233C:
- mov r1, #1
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r1, [r4, #8]
- ldr r0, _0380243C ;@ =PMi_TriggerBL
- strh r1, [r0]
- ldr r1, [r4, #12]
- ldr r0, _03802440 ;@ =PMi_KeyPattern
- strh r1, [r0]
- bl PMi_DoSleep
- b _03802424
-_03802368:
- mov r1, #4
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r2, [r4, #8]
- str r2, [r0, #40] ;@ 0x28
- ldr r1, [r4, #12]
- str r1, [r0, #36] ;@ 0x24
- mov r0, r2, lsl #16
- mov r0, r0, lsr #16
- and r1, r1, #255 ;@ 0xff
- bl PMi_SetRegister
- mov r0, #100 ;@ 0x64
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802424
-_038023A4:
- mov r1, #3
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r1, [r4, #8]
- str r1, [r0, #40] ;@ 0x28
- mov r0, r1, lsl #16
- mov r4, r0, lsr #16
- mov r0, r4
- bl PMi_GetRegister
- mov r1, r0
- add r0, r4, #112 ;@ 0x70
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- bl SPIi_ReturnResult
- b _03802424
-_038023E0:
- mov r0, #2
- ldr r1, _03802438 ;@ =PMi_Work
- str r0, [r1, #32]
- ldr r0, [r4, #8]
- str r0, [r1, #36] ;@ 0x24
- bl PMi_SwitchUtilityProc
- mov r0, #99 ;@ 0x63
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802424
-_03802408:
- ldr r0, [r4, #8]
- bl PMi_SetLED
- b _03802424
-_03802414:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #1
- bl SPIi_ReturnResult
-_03802424:
- mov r0, #3
- bl SPIi_ReleaseException
-_0380242C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03802438: .word PMi_Work
-_0380243C: .word PMi_TriggerBL
-_03802440: .word PMi_KeyPattern
-
- arm_func_start PM_AnalyzeCommand
-PM_AnalyzeCommand: ;@ 0x03802444
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _03802474
- mov r4, #0
- mov r3, r4
- ldr r1, _03802610 ;@ =PMi_Work
-_03802460:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _03802460
-_03802474:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #1
- ldr ip, _03802610 ;@ =PMi_Work
- strh r0, [ip, r1]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03802604
- ldrh r3, [ip]
- and r0, r3, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- sub r0, r4, #96 ;@ 0x60
- cmp r0, #7
- addls pc, pc, r0, lsl #2
- b _038025F8
- b _038024D0
- b _038024E0
- b _038025F8
- b _03802588
- b _0380251C
- b _03802558
- b _038025C4
- b _038025DC
-_038024D0:
- mov r0, #96 ;@ 0x60
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802604
-_038024E0:
- ldrh r1, [ip, #2]
- ldr r0, _03802614 ;@ =0x0000FFFF
- and r0, r1, r0
- str r0, [sp]
- mov r0, #3
- mov r1, r4
- mov r2, #2
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_0380251C:
- ldrh r1, [ip, #2]
- ldr r0, _03802614 ;@ =0x0000FFFF
- and r0, r1, r0
- str r0, [sp]
- mov r0, #3
- mov r1, r4
- mov r2, #2
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_03802558:
- mov r0, #3
- mov r1, r4
- mov r2, #1
- ldr ip, _03802614 ;@ =0x0000FFFF
- and r3, r3, ip
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_03802588:
- mov r0, #3
- mov r1, r4
- mov r2, #1
- and lr, r3, #255 ;@ 0xff
- ldrh ip, [ip, #2]
- ldr r3, _03802614 ;@ =0x0000FFFF
- and r3, ip, r3
- orr r3, r3, lr, lsl #16
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_038025C4:
- and r0, r3, #255 ;@ 0xff
- bl PM_SetLEDPattern
- mov r0, #102 ;@ 0x66
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802604
-_038025DC:
- bl PM_GetLEDPattern
- mov r1, r0
- mov r0, #103 ;@ 0x67
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
- b _03802604
-_038025F8:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03802604:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03802610: .word PMi_Work
-_03802614: .word 0x0000FFFF
-
- arm_func_start PM_Init
-PM_Init: ;@ 0x03802618
- mov r1, #1
- ldr r0, _0380264C ;@ =PMi_Initialized
- str r1, [r0]
- mov r3, #0
- ldr r0, _03802650 ;@ =PMi_Work
- str r3, [r0, #32]
- mov r2, r3
-_03802634:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _03802634
- bx lr
-_0380264C: .word PMi_Initialized
-_03802650: .word PMi_Work
-
- arm_func_start PMi_SendPxiCommand
-PMi_SendPxiCommand: ;@ 0x03802654
- ldr r3, _03802678 ;@ =0x0000FFFF
- and r3, r2, r3
- and r0, r0, #62914560 ;@ 0x3c00000
- mov r2, r0, lsl #22
- and r0, r1, #4128768 ;@ 0x3f0000
- orr r0, r2, r0, lsl #16
- orr r0, r3, r0
- ldr ip, _0380267C ;@ =PMi_SendPxiData
- bx ip
-_03802678: .word 0x0000FFFF
-_0380267C: .word PMi_SendPxiData
-
- arm_func_start PMi_SendPxiData
-PMi_SendPxiData: ;@ 0x03802680
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, #8
- mov r4, #0
-_03802690:
- mov r0, r5
- mov r1, r6
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- bne _03802690
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start PMi_ResetControl
-PMi_ResetControl: ;@ 0x038026B0
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, #0
- bl PMi_GetRegister
- mvn r1, r4
- and r0, r0, r1
- and r1, r0, #255 ;@ 0xff
- mov r0, #0
- bl PMi_SetRegister
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start PMi_SetControl
-PMi_SetControl: ;@ 0x038026DC
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, #0
- bl PMi_GetRegister
- orr r1, r0, r4
- mov r0, #0
- bl PMi_SetRegister
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start PMi_GetRegister
-PMi_GetRegister: ;@ 0x03802700
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r1, _0380278C ;@ =0x040001C0
-_0380270C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380270C
- bl FUN_03802808
- mov r0, #1
- bl FUN_03802820
- orr r0, r4, #128 ;@ 0x80
- and r0, r0, #255 ;@ 0xff
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03802790 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380278C ;@ =0x040001C0
-_0380273C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380273C
- mov r0, #0
- bl FUN_03802820
- mov r1, #0
- ldr r0, _03802790 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380278C ;@ =0x040001C0
-_03802760:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802760
- ldr r0, _03802790 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- and r0, r0, #255 ;@ 0xff
- ldmia sp!, {r4, lr}
- bx lr
-_0380278C: .word 0x040001C0
-_03802790: .word 0x040001C2
-
- arm_func_start PMi_SetRegister
-PMi_SetRegister: ;@ 0x03802794
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r1
- ldr r1, _03802800 ;@ =0x040001C0
-_038027A8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038027A8
- bl FUN_03802808
- mov r0, #1
- bl FUN_03802820
- and r0, r5, #255 ;@ 0xff
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03802804 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03802800 ;@ =0x040001C0
-_038027D4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038027D4
- mov r0, #0
- bl FUN_03802820
- and r1, r4, #255 ;@ 0xff
- ldr r0, _03802804 ;@ =0x040001C2
- strh r1, [r0]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03802800: .word 0x040001C0
-_03802804: .word 0x040001C2
-
- arm_func_start FUN_03802808
-FUN_03802808: ;@ 0x03802808
- ldr r1, _03802818 ;@ =0x00008202
- ldr r0, _0380281C ;@ =0x040001C0
- strh r1, [r0]
- bx lr
-_03802818: .word 0x00008202
-_0380281C: .word 0x040001C0
-
- arm_func_start FUN_03802820
-FUN_03802820: ;@ 0x03802820
- ldr r1, _03802834 ;@ =0x00008002
- orr r1, r1, r0, lsl #11
- ldr r0, _03802838 ;@ =0x040001C0
- strh r1, [r0]
- bx lr
-_03802834: .word 0x00008002
-_03802838: .word 0x040001C0
-
- arm_func_start PMi_SetLED
-PMi_SetLED: ;@ 0x0380283C
- stmdb sp!, {r4, lr}
- mov r4, r0
- cmp r4, #1
- beq _03802860
- cmp r4, #2
- beq _03802878
- cmp r4, #3
- beq _0380286C
- b _0380288C
-_03802860:
- mov r0, #16
- bl PMi_ResetControl
- b _03802890
-_0380286C:
- mov r0, #48 ;@ 0x30
- bl PMi_SetControl
- b _03802890
-_03802878:
- mov r0, #32
- bl PMi_ResetControl
- mov r0, #16
- bl PMi_SetControl
- b _03802890
-_0380288C:
- bl OS_Terminate
-_03802890:
- ldr r0, _038028A0 ;@ =PMi_LEDStatus
- str r4, [r0]
- ldmia sp!, {r4, lr}
- bx lr
-_038028A0: .word PMi_LEDStatus
-
- arm_func_start PMi_SwitchUtilityProc
-PMi_SwitchUtilityProc: ;@ 0x038028A4
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r0, #15
- addls pc, pc, r0, lsl #2
- b _038029C4
- b _038029C4
- b _038028F8
- b _0380290C
- b _03802920
- b _03802934
- b _03802940
- b _0380294C
- b _03802958
- b _03802964
- b _03802970
- b _0380297C
- b _03802988
- b _03802994
- b _038029A0
- b _038029B8
- b _038029AC
-_038028F8:
- mov r0, #1
- bl PM_SetLEDPattern
- mov r0, #1
- bl PMi_SetLED
- b _038029C4
-_0380290C:
- mov r0, #3
- bl PM_SetLEDPattern
- mov r0, #3
- bl PMi_SetLED
- b _038029C4
-_03802920:
- mov r0, #2
- bl PM_SetLEDPattern
- mov r0, #2
- bl PMi_SetLED
- b _038029C4
-_03802934:
- mov r0, #4
- bl PMi_SetControl
- b _038029C4
-_03802940:
- mov r0, #4
- bl PMi_ResetControl
- b _038029C4
-_0380294C:
- mov r0, #8
- bl PMi_SetControl
- b _038029C4
-_03802958:
- mov r0, #8
- bl PMi_ResetControl
- b _038029C4
-_03802964:
- mov r0, #12
- bl PMi_SetControl
- b _038029C4
-_03802970:
- mov r0, #12
- bl PMi_ResetControl
- b _038029C4
-_0380297C:
- mov r0, #1
- bl PMi_SetControl
- b _038029C4
-_03802988:
- mov r0, #1
- bl PMi_ResetControl
- b _038029C4
-_03802994:
- mov r0, #2
- bl PMi_ResetControl
- b _038029C4
-_038029A0:
- mov r0, #2
- bl PMi_SetControl
- b _038029C4
-_038029AC:
- mov r0, #64 ;@ 0x40
- bl PMi_ResetControl
- b _038029C4
-_038029B8:
- bl SND_BeginSleep
- mov r0, #64 ;@ 0x40
- bl PMi_SetControl
-_038029C4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start PMi_DoSleep
-PMi_DoSleep: ;@ 0x038029D0
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r5, #0
- ldr r0, _03802B94 ;@ =0x04000208
- ldrh r4, [r0]
- strh r5, [r0]
- bl OS_DisableInterrupts
- mov r9, r0
- mvn r0, #-33554432 ;@ 0xfe000000
- bl OS_DisableIrqMask
- mov r8, r0
- mov r0, r5
- bl PMi_GetRegister
- mov r7, r0
- mov r0, #2
- bl PM_SetLEDPattern
- mov r0, #2
- bl PMi_SetLED
- mov r0, #2
- bl PMi_SetLED
- bl SND_BeginSleep
- mov r0, #1
- bl PMi_ResetControl
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #1
- beq _03802A58
- ldr r0, _03802B9C ;@ =PMi_KeyPattern
- ldrh r0, [r0]
- orr r1, r0, #16384 ;@ 0x4000
- ldr r0, _03802BA0 ;@ =0x04000132
- strh r1, [r0]
- mov r0, #4096 ;@ 0x1000
- bl OS_EnableIrqMask
-_03802A58:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #4
- beq _03802A70
- mov r0, #4194304 ;@ 0x400000
- bl OS_EnableIrqMask
-_03802A70:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #2
- beq _03802AB4
- ldr r0, _03802BA4 ;@ =0x04000134
- ldrh r6, [r0]
- mov r5, #1
- mov r0, #32768 ;@ 0x8000
- bl EXIi_SelectRcnt
- mov r0, #64 ;@ 0x40
- mov r1, #0
- bl EXIi_SetBitRcnt0L
- mov r0, #256 ;@ 0x100
- mov r1, r0
- bl EXIi_SetBitRcnt0L
- mov r0, #128 ;@ 0x80
- bl OS_EnableIrqMask
-_03802AB4:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #8
- beq _03802ACC
- mov r0, #1048576 ;@ 0x100000
- bl OS_EnableIrqMask
-_03802ACC:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #16
- beq _03802AE4
- mov r0, #8192 ;@ 0x2000
- bl OS_EnableIrqMask
-_03802AE4:
- mov r0, r9
- bl OS_RestoreInterrupts
- ldr r1, _03802B94 ;@ =0x04000208
- ldrh r0, [r1]
- mov r0, #1
- strh r0, [r1]
- bl FUN_03802BAC
- mov r0, #0
- mov r1, r7
- bl PMi_SetRegister
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r1, [r0]
- ands r0, r1, #32
- movne r0, #6
- moveq r0, #7
- ands r1, r1, #64 ;@ 0x40
- movne r7, #4
- moveq r7, #5
- bl PMi_SwitchUtilityProc
- mov r0, r7
- bl PMi_SwitchUtilityProc
- cmp r5, #0
- ldrne r0, _03802BA4 ;@ =0x04000134
- strneh r6, [r0]
- mov r0, #1
- bl PMi_SetControl
- bl SND_EndSleep
- mov r1, #0
- ldr r0, _03802BA8 ;@ =PMi_Work
- str r1, [r0, #32]
- mov r0, #98 ;@ 0x62
- mov r2, r1
- bl PMi_SendPxiCommand
- bl OS_DisableInterrupts
- mov r0, r8
- bl OS_SetIrqMask
- mov r0, r9
- bl OS_RestoreInterrupts
- ldr r1, _03802B94 ;@ =0x04000208
- ldrh r0, [r1]
- strh r4, [r1]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_03802B94: .word 0x04000208
-_03802B98: .word PMi_TriggerBL
-_03802B9C: .word PMi_KeyPattern
-_03802BA0: .word 0x04000132
-_03802BA4: .word 0x04000134
-_03802BA8: .word PMi_Work
-
- arm_func_start FUN_03802BAC
-FUN_03802BAC: ;@ 0x03802BAC
- ldr ip, _03802BB4 ;@ =SVC_Stop
- bx ip
-_03802BB4: .word SVC_Stop
-
- arm_func_start PM_GetLEDPattern
-PM_GetLEDPattern: ;@ 0x03802BB8
- ldr r0, _03802BC4 ;@ =PMi_BlinkPatternNo
- ldr r0, [r0]
- bx lr
-_03802BC4: .word PMi_BlinkPatternNo
-
- arm_func_start PM_SetLEDPattern
-PM_SetLEDPattern: ;@ 0x03802BC8
- cmp r0, #15
- ldrle r1, _03802BE4 ;@ =PMi_BlinkPatternNo
- strle r0, [r1]
- movle r1, #0
- ldrle r0, _03802BE8 ;@ =_03809F64
- strle r1, [r0]
- bx lr
-_03802BE4: .word PMi_BlinkPatternNo
-_03802BE8: .word _03809F64
-
- arm_func_start PM_SelfBlinkProc
-PM_SelfBlinkProc: ;@ 0x03802BEC
- stmdb sp!, {r4, r5, r6, lr}
- ldr r0, _03802D04 ;@ =PMi_BlinkPatternNo
- ldr r3, [r0]
- cmp r3, #0
- bne _03802C28
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- mov r3, r2
- bl SPIi_SetEntry
- cmp r0, #0
- beq _03802CFC
- mov r0, #1
- bl PM_SetLEDPattern
- b _03802CFC
-_03802C28:
- cmp r3, #4
- bge _03802C54
- ldr r0, _03802D08 ;@ =PMi_LEDStatus
- ldr r0, [r0]
- cmp r3, r0
- beq _03802CFC
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- bl SPIi_SetEntry
- b _03802CFC
-_03802C54:
- ldr r6, _03802D0C ;@ =PMi_BlinkPatternData
- sub r1, r3, #4
- mov r0, #12
- mul r5, r1, r0
- add r4, r6, r5
- ldr r0, _03802D10 ;@ =_03809F64
- ldr r0, [r0]
- ldrh r1, [r4, #10]
- bl _u32_div_f
- ldr r5, [r6, r5]
- ldr lr, [r4, #4]
- mov r3, #0
- mov r2, #-2147483648 ;@ 0x80000000
- mov ip, r3, lsr r0
- rsb r1, r0, #32
- orr ip, ip, r2, lsl r1
- sub r1, r0, #32
- orr ip, ip, r2, lsr r1
- and r0, lr, r2, lsr r0
- and r1, r5, ip
- cmp r0, r3
- cmpeq r1, r3
- movne r3, #1
- moveq r3, #2
- ldr r0, _03802D10 ;@ =_03809F64
- ldr r1, [r0]
- add ip, r1, #1
- str ip, [r0]
- ldrh r2, [r4, #8]
- ldrh r1, [r4, #10]
- mul r1, r2, r1
- cmp ip, r1
- movcs r1, #0
- strcs r1, [r0]
- ldr r0, _03802D08 ;@ =PMi_LEDStatus
- ldr r0, [r0]
- cmp r3, r0
- beq _03802CFC
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- bl SPIi_SetEntry
-_03802CFC:
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-_03802D04: .word PMi_BlinkPatternNo
-_03802D08: .word PMi_LEDStatus
-_03802D0C: .word PMi_BlinkPatternData
-_03802D10: .word _03809F64
-
- arm_func_start FUN_03802D14
-FUN_03802D14: ;@ 0x03802D14
- stmdb sp!, {r4, r5, r6, r7, lr}
- ldr r4, _03802E6C ;@ =_03809F6C
- ldrh r5, [r4, #38] ;@ 0x26
- and r0, r5, #4
- cmp r0, #4
- ldrh r6, [r4, #56] ;@ 0x38
- ldrneh r7, [r4, #58] ;@ 0x3a
- ldreq r7, _03802E70 ;@ =0x0000FFFF
- bl SPIi_CheckEntry
- cmp r0, #0
- bne _03802D80
- mov r0, #2
- bl SPIi_CheckException
- cmp r0, #0
- beq _03802D80
- and r0, r5, #1
- cmp r0, #1
- bne _03802D70
- bl MIC_ExecSampling12
- tst r5, #2
- moveq r7, r0
- eorne r7, r0, #32768 ;@ 0x8000
- b _03802D80
-_03802D70:
- bl MIC_ExecSampling8
- tst r5, #2
- moveq r7, r0
- eorne r7, r0, #128 ;@ 0x80
-_03802D80:
- and r0, r5, #1
- ldr r3, _03802E74 ;@ =0x027FFC00
- ldr r1, [r4, #44] ;@ 0x2c
- cmp r0, #1
- bne _03802DB0
- ldr r2, [r4, #40] ;@ 0x28
- strh r7, [r2, r1]!
- str r2, [r3, #912] ;@ 0x390
- add r3, r3, #916 ;@ 0x394
- strh r7, [r3]
- add r1, r1, #2
- b _03802DE8
-_03802DB0:
- and r7, r7, #255 ;@ 0xff
- tst r1, #1
- bne _03802DC8
- mov r6, r7
- add r1, r1, #1
- b _03802DE8
-_03802DC8:
- orr r0, r6, r7, lsl #8
- ldr r2, [r4, #40] ;@ 0x28
- sub r1, r1, #1
- strh r0, [r2, r1]!
- str r2, [r3, #912] ;@ 0x390
- add r3, r3, #916 ;@ 0x394
- strh r0, [r3]
- add r1, r1, #2
-_03802DE8:
- strh r6, [r4, #56] ;@ 0x38
- strh r7, [r4, #58] ;@ 0x3a
- ldr r0, [r4, #48] ;@ 0x30
- cmp r1, r0
- movcs r1, #0
- str r1, [r4, #44] ;@ 0x2c
- bcc _03802E64
- ldrh r0, [r4, #36] ;@ 0x24
- and r0, r0, #16
- cmp r0, #16
- bne _03802E24
- mov r0, #81 ;@ 0x51
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802E64
-_03802E24:
- mov r0, #2
- mov r1, #66 ;@ 0x42
- mov r2, #0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802E4C
- mov r0, #81 ;@ 0x51
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802E64
-_03802E4C:
- mov r0, #4
- str r0, [r4, #32]
- ldr r1, _03802E78 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
-_03802E64:
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03802E6C: .word _03809F6C
-_03802E70: .word 0x0000FFFF
-_03802E74: .word 0x027FFC00
-_03802E78: .word 0x0400010E
-
- arm_func_start FUN_03802E7C
-FUN_03802E7C: ;@ 0x03802E7C
- stmfd sp!, {lr}
- sub sp, sp, #4
- bl FUN_03802D14
- ldr r1, _03802EB0 ;@ =0x0380FFF8
- ldr r0, [r1]
- orr r0, r0, #64 ;@ 0x40
- str r0, [r1]
- mov r1, #64 ;@ 0x40
- ldr r0, _03802EB4 ;@ =0x04000214
- str r1, [r0]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03802EB0: .word 0x0380FFF8
-_03802EB4: .word 0x04000214
-
- arm_func_start MIC_ExecuteProcess
-MIC_ExecuteProcess: ;@ 0x03802EB8
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- ldr r2, [r5, #4]
- cmp r2, #64 ;@ 0x40
- beq _03802EE4
- cmp r2, #65 ;@ 0x41
- beq _03802FB0
- cmp r2, #66 ;@ 0x42
- beq _0380304C
- b _038030F0
-_03802EE4:
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #2
- bl SPIi_CheckException
- cmp r0, #0
- bne _03802F1C
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _038030F0
-_03802F1C:
- mov r0, #2
- bl SPIi_GetException
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #8]
- and r0, r0, #1
- cmp r0, #1
- bne _03802F68
- bl MIC_ExecSampling12
- ldr r1, [r5, #8]
- ands r1, r1, #2
- eorne r0, r0, #32768 ;@ 0x8000
- movne r0, r0, lsl #16
- movne r0, r0, lsr #16
- ldr r1, _038030FC ;@ =0x027FFF94
- strh r0, [r1]
- ldr r0, _03803100 ;@ =0x027FFF90
- str r1, [r0]
- b _03802F90
-_03802F68:
- bl MIC_ExecSampling8
- ldr r1, [r5, #8]
- ands r1, r1, #2
- eorne r0, r0, #128 ;@ 0x80
- movne r0, r0, lsl #16
- movne r0, r0, lsr #16
- ldr r1, _038030FC ;@ =0x027FFF94
- strh r0, [r1]
- ldr r0, _03803100 ;@ =0x027FFF90
- str r1, [r0]
-_03802F90:
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r0, #2
- bl SPIi_ReleaseException
- b _038030F0
-_03802FB0:
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r1, [r0, #32]
- cmp r1, #1
- bne _03803038
- mov r1, #0
- strh r1, [r0, #58] ;@ 0x3a
- strh r1, [r0, #56] ;@ 0x38
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #64 ;@ 0x40
- bl OS_EnableIrqMask
- mov r0, #64 ;@ 0x40
- ldr r1, _03803108 ;@ =FUN_03802E7C
- bl MIC_SetIrqFunction
- bl MIC_EnableMultipleInterrupt
- ldr r0, _03803104 ;@ =_03809F6C
- ldrh r2, [r0, #52] ;@ 0x34
- ldr r1, _0380310C ;@ =0x0400010C
- strh r2, [r1]
- ldrh r0, [r0, #54] ;@ 0x36
- orr r1, r0, #192 ;@ 0xc0
- ldr r0, _03803110 ;@ =0x0400010E
- strh r1, [r0]
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #2
- ldr r0, _03803104 ;@ =_03809F6C
- str r1, [r0, #32]
- b _038030F0
-_03803038:
- mov r0, r2, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- b _038030F0
-_0380304C:
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r1, [r0, #32]
- sub r0, r1, #3
- cmp r0, #1
- bhi _038030CC
- ldr r1, _03803110 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #64 ;@ 0x40
- mov r1, #0
- bl MIC_SetIrqFunction
- bl MIC_DisableMultipleInterrupt
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r0, [r0, #32]
- cmp r0, #3
- bne _038030B0
- mov r0, #66 ;@ 0x42
- mov r1, #0
- bl SPIi_ReturnResult
- b _038030BC
-_038030B0:
- mov r0, #81 ;@ 0x51
- mov r1, #0
- bl SPIi_ReturnResult
-_038030BC:
- mov r1, #0
- ldr r0, _03803104 ;@ =_03809F6C
- str r1, [r0, #32]
- b _038030F0
-_038030CC:
- cmp r1, #3
- bne _038030E4
- mov r0, #66 ;@ 0x42
- mov r1, #3
- bl SPIi_ReturnResult
- b _038030F0
-_038030E4:
- mov r0, #81 ;@ 0x51
- mov r1, #3
- bl SPIi_ReturnResult
-_038030F0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_038030FC: .word 0x027FFF94
-_03803100: .word 0x027FFF90
-_03803104: .word _03809F6C
-_03803108: .word FUN_03802E7C
-_0380310C: .word 0x0400010C
-_03803110: .word 0x0400010E
-
- arm_func_start FUN_03803114
-FUN_03803114: ;@ 0x03803114
- cmp r0, #65536 ;@ 0x10000
- bcs _03803138
- mov r2, #0
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_03803138:
- cmp r0, #4194304 ;@ 0x400000
- bcs _03803160
- mov r2, #1
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #6
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, r2
- bx lr
-_03803160:
- cmp r0, #16777216 ;@ 0x1000000
- bcs _03803188
- mov r2, #2
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #8
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_03803188:
- cmp r0, #67108864 ;@ 0x4000000
- movcs r0, #0
- bxcs lr
- mov r2, #3
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #10
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_038031B4: .word _03809F6C
-
- arm_func_start MIC_AnalyzeCommand
-MIC_AnalyzeCommand: ;@ 0x038031B8
- stmdb sp!, {r4, lr}
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _038031E4
- mov r4, #0
- mov r3, r4
- ldr r1, _03803478 ;@ =_03809F6C
-_038031D0:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _038031D0
-_038031E4:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r2, r1, lsl #1
- ldr r1, _03803478 ;@ =_03809F6C
- strh r0, [r1, r2]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03803470
- ldrh r3, [r1]
- and r0, r3, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- sub r0, r4, #64 ;@ 0x40
- cmp r0, #3
- addls pc, pc, r0, lsl #2
- b _03803464
- b _03803230
- b _03803270
- b _03803378
- b _038033DC
-_03803230:
- mov r0, #2
- mov r1, r4
- mov r2, #1
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03803258
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
-_03803258:
- mov r1, #0
- ldr r0, _0380347C ;@ =0x027FFF94
- strh r1, [r0]
- ldr r0, _03803480 ;@ =0x027FFF90
- str r1, [r0]
- b _03803470
-_03803270:
- ldr r0, [r1, #32]
- cmp r0, #0
- beq _0380328C
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_0380328C:
- and r0, r3, #255 ;@ 0xff
- strh r0, [r1, #36] ;@ 0x24
- ldrh r2, [r1, #2]
- ldrh r0, [r1, #4]
- orr r3, r0, r2, lsl #16
- cmp r3, #33554432 ;@ 0x2000000
- bcc _038032B0
- cmp r3, #37748736 ;@ 0x2400000
- bcc _038032C0
-_038032B0:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_038032C0:
- str r3, [r1, #40] ;@ 0x28
- ldrh r2, [r1, #6]
- ldrh r0, [r1, #8]
- orr r2, r0, r2, lsl #16
- add r0, r3, r2
- cmp r0, #37748736 ;@ 0x2400000
- bls _038032EC
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_038032EC:
- str r2, [r1, #48] ;@ 0x30
- ldrh r2, [r1, #10]
- ldrh r0, [r1, #12]
- orr r0, r0, r2, lsl #16
- bl FUN_03803114
- cmp r0, #0
- bne _03803318
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_03803318:
- mov r2, #0
- ldr r0, _03803478 ;@ =_03809F6C
- str r2, [r0, #44] ;@ 0x2c
- ldrh r1, [r0, #36] ;@ 0x24
- and r1, r1, #7
- strh r1, [r0, #38] ;@ 0x26
- mov r0, #2
- mov r1, r4
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03803354
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03803470
-_03803354:
- mov r1, #0
- ldr r0, _0380347C ;@ =0x027FFF94
- strh r1, [r0]
- ldr r0, _03803480 ;@ =0x027FFF90
- str r1, [r0]
- mov r1, #1
- ldr r0, _03803478 ;@ =_03809F6C
- str r1, [r0, #32]
- b _03803470
-_03803378:
- ldr r0, [r1, #32]
- cmp r0, #2
- beq _03803394
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_03803394:
- mov r0, #2
- mov r1, r4
- mov r2, #0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _038033BC
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03803470
-_038033BC:
- mov r1, #3
- ldr r0, _03803478 ;@ =_03809F6C
- str r1, [r0, #32]
- ldr r1, _03803484 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- b _03803470
-_038033DC:
- ldr r0, [r1, #32]
- cmp r0, #2
- beq _038033F8
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_038033F8:
- ldrh r2, [r1, #2]
- ldrh r0, [r1, #4]
- orr r0, r0, r2, lsl #16
- bl FUN_03803114
- cmp r0, #0
- bne _03803420
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_03803420:
- bl OS_DisableInterrupts
- ldr ip, _03803484 ;@ =0x0400010E
- ldrh r1, [ip]
- bic r1, r1, #128 ;@ 0x80
- strh r1, [ip]
- ldr r1, _03803478 ;@ =_03809F6C
- ldrh r3, [r1, #52] ;@ 0x34
- ldr r2, _03803488 ;@ =0x0400010C
- strh r3, [r2]
- ldrh r1, [r1, #54] ;@ 0x36
- orr r1, r1, #192 ;@ 0xc0
- strh r1, [ip]
- bl OS_RestoreInterrupts
- mov r0, r4
- mov r1, #0
- bl SPIi_ReturnResult
- b _03803470
-_03803464:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03803470:
- ldmia sp!, {r4, lr}
- bx lr
-_03803478: .word _03809F6C
-_0380347C: .word 0x027FFF94
-_03803480: .word 0x027FFF90
-_03803484: .word 0x0400010E
-_03803488: .word 0x0400010C
-
- arm_func_start MIC_Init
-MIC_Init: ;@ 0x0380348C
- mov r3, #0
- ldr r0, _038034C4 ;@ =_03809F6C
- str r3, [r0, #32]
- mov r2, r3
-_0380349C:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _0380349C
- ldr r1, _038034C8 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- bx lr
-_038034C4: .word _03809F6C
-_038034C8: .word 0x0400010E
-
- arm_func_start MIC_ExecSampling12
-MIC_ExecSampling12: ;@ 0x038034CC
- ldr r1, _03803580 ;@ =0x040001C0
-_038034D0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038034D0
- ldr r0, _03803584 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #228 ;@ 0xe4
- ldr r0, _03803588 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03803580 ;@ =0x040001C0
-_038034F4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038034F4
- mov r1, #0
- ldr r0, _03803588 ;@ =0x040001C2
- strh r1, [r0]
- ldr r2, _03803580 ;@ =0x040001C0
-_03803510:
- ldrh r0, [r2]
- ands r0, r0, #128 ;@ 0x80
- bne _03803510
- ldr r1, _03803588 ;@ =0x040001C2
- ldrh r0, [r1]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r0, r0, lsl #24
- mov r3, r0, lsr #16
- ldr r0, _0380358C ;@ =0x00008201
- strh r0, [r2]
- mov r0, #0
- strh r0, [r1]
- ldr r1, _03803580 ;@ =0x040001C0
-_0380354C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380354C
- ldr r0, _03803588 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- orr r1, r3, r0, lsr #16
- ldr r0, _03803590 ;@ =0x00007FF8
- and r0, r1, r0
- mov r0, r0, lsl #17
- mov r0, r0, lsr #16
- bx lr
-_03803580: .word 0x040001C0
-_03803584: .word 0x00008A01
-_03803588: .word 0x040001C2
-_0380358C: .word 0x00008201
-_03803590: .word 0x00007FF8
-
- arm_func_start MIC_ExecSampling8
-MIC_ExecSampling8: ;@ 0x03803594
- ldr r1, _03803648 ;@ =0x040001C0
-_03803598:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03803598
- ldr r0, _0380364C ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #236 ;@ 0xec
- ldr r0, _03803650 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03803648 ;@ =0x040001C0
-_038035BC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038035BC
- mov r1, #0
- ldr r0, _03803650 ;@ =0x040001C2
- strh r1, [r0]
- ldr r2, _03803648 ;@ =0x040001C0
-_038035D8:
- ldrh r0, [r2]
- ands r0, r0, #128 ;@ 0x80
- bne _038035D8
- ldr r1, _03803650 ;@ =0x040001C2
- ldrh r0, [r1]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r0, r0, lsl #24
- mov r3, r0, lsr #16
- ldr r0, _03803654 ;@ =0x00008201
- strh r0, [r2]
- mov r0, #0
- strh r0, [r1]
- ldr r1, _03803648 ;@ =0x040001C0
-_03803614:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03803614
- ldr r0, _03803650 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- orr r1, r3, r0, lsr #16
- ldr r0, _03803658 ;@ =0x00007F80
- and r0, r1, r0
- mov r0, r0, lsl #9
- mov r0, r0, lsr #16
- bx lr
-_03803648: .word 0x040001C0
-_0380364C: .word 0x00008A01
-_03803650: .word 0x040001C2
-_03803654: .word 0x00008201
-_03803658: .word 0x00007F80
-_0380365C:
- mov ip, #67108864 ;@ 0x4000000
- add r1, ip, #520 ;@ 0x208
- ldrh r0, [r1]
- tst r0, r0
- bxeq lr
- ldr r3, [ip, #528] ;@ 0x210
- ldr r1, [ip, #532] ;@ 0x214
- ands r2, r1, r3
- bxeq lr
- ldr r0, _038037C8 ;@ =0x01DF3FFF
- tst r2, r0
- streq r2, [ip, #532] ;@ 0x214
- bxeq lr
- stmfd sp!, {lr}
- mrs r0, SPSR
- stmfd sp!, {r0}
- stmdb sp, {sp, lr}^
- sub sp, sp, #8
- mov r0, #159 ;@ 0x9f
- msr CPSR_c, r0
- ldr r1, _038037CC ;@ =OSi_ThreadInfo
- ldrh r0, [r1, #2]
- add r0, r0, #1
- strh r0, [r1, #2]
- ldr r1, _038037D0 ;@ =_03809FA8
- cmp r0, #1
- moveq r0, sp
- ldreq sp, [r1, #4]
- streq r0, [r1, #4]
- stmfd sp!, {r3}
- ldr r1, _038037D4 ;@ =_038072C8
- ldr r0, [r1]
- tst r0, r2
- strne r0, [ip, #532] ;@ 0x214
- ldrne r0, [r1, #4]
- ldrne r3, _038037D8 ;@ =OS_IRQTable
- ldrne r0, [r3, r0, lsl #2]
- bne _03803738
- mov r3, #1
-_038036F8:
- ldr r0, [r1, r3, lsl #3]
- tst r0, r2
- addeq r3, r3, #1
- beq _038036F8
- str r0, [ip, #532] ;@ 0x214
- add r0, r1, r3, lsl #3
- ldr r2, [r0, #4]
- ldr r3, _038037D8 ;@ =OS_IRQTable
- ldr r0, [r3, r2, lsl #2]
- ldr r2, _038037CC ;@ =OSi_ThreadInfo
- ldrh r3, [r2, #2]
- cmp r3, #1
- ldreq r2, [r1]
- streq r2, [ip, #528] ;@ 0x210
- moveq r2, #31
- msreq CPSR_c, r2
-_03803738:
- ldr r1, [ip, #528] ;@ 0x210
- stmfd sp!, {r1}
- adr lr, _03803748
- bx r0
-_03803748:
- mov r0, #159 ;@ 0x9f
- msr CPSR_c, r0
- mov ip, #67108864 ;@ 0x4000000
- ldmia sp!, {r0}
- ldr r1, [ip, #528] ;@ 0x210
- eor r2, r0, r1
- and r1, r2, r1
- and r0, r2, r0
- ldmia sp!, {r3}
- orr r3, r3, r1
- bic r3, r3, r0
- str r3, [ip, #528] ;@ 0x210
- ldr r2, _038037CC ;@ =OSi_ThreadInfo
- ldr r3, _038037D0 ;@ =_03809FA8
- ldrh r0, [r2, #2]
- subs r1, r0, #1
- strh r1, [r2, #2]
- moveq r0, sp
- ldreq sp, [r3, #4]
- streq r0, [r3, #4]
- mov r0, #146 ;@ 0x92
- msr CPSR_c, r0
- ldmia sp, {sp, lr}^
- nop ;@ (mov r0, r0)
- add sp, sp, #8
- ldmia sp!, {r0}
- msr SPSR_fc, r0
- tst r1, r1
- ldreq r0, _038037DC ;@ =OS_IrqHandler_ThreadSwitch
- addeq lr, pc, #0
- bxeq r0
- ldmia sp!, {pc}
-_038037C8: .word 0x01DF3FFF
-_038037CC: .word OSi_ThreadInfo
-_038037D0: .word _03809FA8
-_038037D4: .word _038072C8
-_038037D8: .word OS_IRQTable
-_038037DC: .word OS_IrqHandler_ThreadSwitch
-
- arm_func_start MIC_DisableMultipleInterrupt
-MIC_DisableMultipleInterrupt: ;@ 0x038037E0
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03803820 ;@ =0x0380FFFC
- ldr r1, [r0]
- ldr r0, _03803824 ;@ =_0380365C
- cmp r1, r0
- bne _03803814
- bl OS_DisableInterrupts
- ldr r1, _03803828 ;@ =_03809FA8
- ldr r2, [r1, #12]
- ldr r1, _03803820 ;@ =0x0380FFFC
- str r2, [r1]
- bl OS_RestoreInterrupts
-_03803814:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803820: .word 0x0380FFFC
-_03803824: .word _0380365C
-_03803828: .word _03809FA8
-
- arm_func_start MIC_EnableMultipleInterrupt
-MIC_EnableMultipleInterrupt: ;@ 0x0380382C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03803888 ;@ =0x0380FFFC
- ldr r2, [r0]
- ldr r0, _0380388C ;@ =_0380365C
- cmp r2, r0
- beq _0380387C
- mov r1, #0
- ldr r0, _03803890 ;@ =_03809FA8
- str r1, [r0]
- ldr r1, _03803894 ;@ =0x0380FE80
- str r1, [r0, #4]
- mov r1, #64 ;@ 0x40
- str r1, [r0, #8]
- str r2, [r0, #12]
- bl OS_DisableInterrupts
- ldr r2, _0380388C ;@ =_0380365C
- ldr r1, _03803888 ;@ =0x0380FFFC
- str r2, [r1]
- bl OS_RestoreInterrupts
-_0380387C:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803888: .word 0x0380FFFC
-_0380388C: .word _0380365C
-_03803890: .word _03809FA8
-_03803894: .word 0x0380FE80
-
- arm_func_start MIC_SetIrqFunction
-MIC_SetIrqFunction: ;@ 0x03803898
- mov ip, #0
- ldr r2, _038038BC ;@ =OS_IRQTable
-_038038A0:
- ands r3, r0, #1
- strne r1, [r2, ip, lsl #2]
- mov r0, r0, lsr #1
- add ip, ip, #1
- cmp ip, #25
- blt _038038A0
- bx lr
-_038038BC: .word OS_IRQTable
-
arm_func_start CTRDGi_SendtoPxi
CTRDGi_SendtoPxi: ;@ 0x038038C0
stmdb sp!, {r4, r5, r6, r7, lr}