mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-15 04:26:36 -05:00
arm7 split SPI
This commit is contained in:
@@ -63,6 +63,10 @@ Autoload WRAM
|
||||
Object CARD_fifo.o
|
||||
Object CARD_pullOut.o
|
||||
Object libsyscall.o
|
||||
Object SPI_main.o
|
||||
Object SPI_tp.o
|
||||
Object SPI_pm.o
|
||||
Object SPI_mic.o
|
||||
Object wram2.o
|
||||
Object wram_data.o
|
||||
Object wram_bss.o
|
||||
|
||||
481
arm7/asm/SPI_main.s
Normal file
481
arm7/asm/SPI_main.s
Normal file
@@ -0,0 +1,481 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .bss
|
||||
|
||||
.global _038099AC
|
||||
_038099AC: ;0x038099AC
|
||||
.space 0x038099B0 - 0x038099AC
|
||||
|
||||
.global _038099B0
|
||||
_038099B0: ;0x038099B0
|
||||
.space 0x038099B8 - 0x038099B0
|
||||
|
||||
.global _038099B8
|
||||
_038099B8: ;0x038099B8
|
||||
.space 0x03809C5C - 0x038099B8
|
||||
|
||||
.global _03809C5C
|
||||
_03809C5C: ;0x03809C5C
|
||||
.space 0x03809C7C - 0x03809C5C
|
||||
|
||||
.global _03809C7C
|
||||
_03809C7C: ;0x03809C7C
|
||||
.space 0x03809CBC - 0x03809C7C
|
||||
|
||||
.global _03809CBC
|
||||
_03809CBC: ;0x03809CBC
|
||||
.space 0x03809CC0 - 0x03809CBC
|
||||
|
||||
.global _03809CC0
|
||||
_03809CC0: ;0x03809CC0
|
||||
.space 0x03809E40 - 0x03809CC0
|
||||
|
||||
.global _03809E40
|
||||
_03809E40: ;0x03809E40
|
||||
.space 0x03809E4C - 0x03809E40
|
||||
|
||||
.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
|
||||
852
arm7/asm/SPI_mic.s
Normal file
852
arm7/asm/SPI_mic.s
Normal file
@@ -0,0 +1,852 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .bss
|
||||
|
||||
.global _03809F6C
|
||||
_03809F6C: ;0x03809F6C
|
||||
.space 0x03809FA8 - 0x03809F6C
|
||||
|
||||
.global _03809FA8
|
||||
_03809FA8: ;0x03809FA8
|
||||
.space 0x03809FB8 - 0x03809FA8
|
||||
|
||||
.section .text
|
||||
|
||||
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
|
||||
847
arm7/asm/SPI_pm.s
Normal file
847
arm7/asm/SPI_pm.s
Normal file
@@ -0,0 +1,847 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.global PMi_LEDStatus
|
||||
PMi_LEDStatus:
|
||||
.word 0x00000001
|
||||
|
||||
.global PMi_BlinkPatternData
|
||||
PMi_BlinkPatternData:
|
||||
.word 0x00000000
|
||||
.word 0xAA000000
|
||||
.word 0x00010008
|
||||
.word 0x00000000
|
||||
.word 0xCC000000
|
||||
.word 0x00010008
|
||||
.word 0x00000000
|
||||
.word 0xE3800000
|
||||
.word 0x0001000C
|
||||
.word 0x00000000
|
||||
.word 0xF0F00000
|
||||
.word 0x00010010
|
||||
.word 0x00000000
|
||||
.word 0xF83E0000
|
||||
.word 0x00010014
|
||||
.word 0x00000000
|
||||
.word 0xFC000000
|
||||
.word 0x0001000C
|
||||
.word 0x00000000
|
||||
.word 0xFF000000
|
||||
.word 0x00010010
|
||||
.word 0x00000000
|
||||
.word 0xFFC00000
|
||||
.word 0x00010014
|
||||
.word 0x00000000
|
||||
.word 0xFF000000
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xFF00FF00
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xFFFFFF00
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xC3000000
|
||||
.word 0x00020028
|
||||
|
||||
.section .bss
|
||||
|
||||
.global PMi_KeyPattern
|
||||
PMi_KeyPattern: ;0x03809F2C
|
||||
.space 0x03809F30 - 0x03809F2C
|
||||
|
||||
.global PMi_TriggerBL
|
||||
PMi_TriggerBL: ;0x03809F30
|
||||
.space 0x03809F34 - 0x03809F30
|
||||
|
||||
.global PMi_Initialized
|
||||
PMi_Initialized: ;0x03809F34
|
||||
.space 0x03809F38 - 0x03809F34
|
||||
|
||||
.global PMi_Work
|
||||
PMi_Work: ;0x03809F38
|
||||
.space 0x03809F64 - 0x03809F38
|
||||
|
||||
.global _03809F64
|
||||
_03809F64: ;0x03809F64
|
||||
.space 0x03809F68 - 0x03809F64
|
||||
|
||||
.global PMi_BlinkPatternNo
|
||||
PMi_BlinkPatternNo: ;0x03809F68
|
||||
.space 0x03809F6C - 0x03809F68
|
||||
|
||||
.section .text
|
||||
|
||||
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
|
||||
861
arm7/asm/SPI_tp.s
Normal file
861
arm7/asm/SPI_tp.s
Normal file
@@ -0,0 +1,861 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .bss
|
||||
|
||||
.global _03809E4C
|
||||
_03809E4C: ;0x03809E4C
|
||||
.space 0x03809E50 - 0x03809E4C
|
||||
|
||||
.global _03809E50
|
||||
_03809E50: ;0x03809E50
|
||||
.space 0x03809E54 - 0x03809E50
|
||||
|
||||
.global _03809E54
|
||||
_03809E54: ;0x03809E54
|
||||
.space 0x03809E80 - 0x03809E54
|
||||
|
||||
.global _03809E80
|
||||
_03809E80: ;0x03809E80
|
||||
.space 0x03809F28 - 0x03809E80
|
||||
|
||||
.global _03809F28
|
||||
_03809F28: ;0x03809F28
|
||||
.space 0x03809F2C - 0x03809F28
|
||||
|
||||
.section .text
|
||||
|
||||
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
|
||||
2888
arm7/asm/wram2.s
2888
arm7/asm/wram2.s
File diff suppressed because it is too large
Load Diff
@@ -2,90 +2,6 @@
|
||||
.include "global.inc"
|
||||
.section .bss
|
||||
|
||||
.global _038099AC
|
||||
_038099AC: ;0x038099AC
|
||||
.space 0x038099B0 - 0x038099AC
|
||||
|
||||
.global _038099B0
|
||||
_038099B0: ;0x038099B0
|
||||
.space 0x038099B8 - 0x038099B0
|
||||
|
||||
.global _038099B8
|
||||
_038099B8: ;0x038099B8
|
||||
.space 0x03809C5C - 0x038099B8
|
||||
|
||||
.global _03809C5C
|
||||
_03809C5C: ;0x03809C5C
|
||||
.space 0x03809C7C - 0x03809C5C
|
||||
|
||||
.global _03809C7C
|
||||
_03809C7C: ;0x03809C7C
|
||||
.space 0x03809CBC - 0x03809C7C
|
||||
|
||||
.global _03809CBC
|
||||
_03809CBC: ;0x03809CBC
|
||||
.space 0x03809CC0 - 0x03809CBC
|
||||
|
||||
.global _03809CC0
|
||||
_03809CC0: ;0x03809CC0
|
||||
.space 0x03809E40 - 0x03809CC0
|
||||
|
||||
.global _03809E40
|
||||
_03809E40: ;0x03809E40
|
||||
.space 0x03809E4C - 0x03809E40
|
||||
|
||||
.global _03809E4C
|
||||
_03809E4C: ;0x03809E4C
|
||||
.space 0x03809E50 - 0x03809E4C
|
||||
|
||||
.global _03809E50
|
||||
_03809E50: ;0x03809E50
|
||||
.space 0x03809E54 - 0x03809E50
|
||||
|
||||
.global _03809E54
|
||||
_03809E54: ;0x03809E54
|
||||
.space 0x03809E80 - 0x03809E54
|
||||
|
||||
.global _03809E80
|
||||
_03809E80: ;0x03809E80
|
||||
.space 0x03809F28 - 0x03809E80
|
||||
|
||||
.global _03809F28
|
||||
_03809F28: ;0x03809F28
|
||||
.space 0x03809F2C - 0x03809F28
|
||||
|
||||
.global PMi_KeyPattern
|
||||
PMi_KeyPattern: ;0x03809F2C
|
||||
.space 0x03809F30 - 0x03809F2C
|
||||
|
||||
.global PMi_TriggerBL
|
||||
PMi_TriggerBL: ;0x03809F30
|
||||
.space 0x03809F34 - 0x03809F30
|
||||
|
||||
.global PMi_Initialized
|
||||
PMi_Initialized: ;0x03809F34
|
||||
.space 0x03809F38 - 0x03809F34
|
||||
|
||||
.global PMi_Work
|
||||
PMi_Work: ;0x03809F38
|
||||
.space 0x03809F64 - 0x03809F38
|
||||
|
||||
.global _03809F64
|
||||
_03809F64: ;0x03809F64
|
||||
.space 0x03809F68 - 0x03809F64
|
||||
|
||||
.global PMi_BlinkPatternNo
|
||||
PMi_BlinkPatternNo: ;0x03809F68
|
||||
.space 0x03809F6C - 0x03809F68
|
||||
|
||||
.global _03809F6C
|
||||
_03809F6C: ;0x03809F6C
|
||||
.space 0x03809FA8 - 0x03809F6C
|
||||
|
||||
.global _03809FA8
|
||||
_03809FA8: ;0x03809FA8
|
||||
.space 0x03809FB8 - 0x03809FA8
|
||||
|
||||
.global CTRDGi_Work
|
||||
CTRDGi_Work: ;0x03809FB8
|
||||
.space 0x03809FBC - 0x03809FB8
|
||||
|
||||
@@ -3,49 +3,6 @@
|
||||
|
||||
.section .data
|
||||
|
||||
.global PMi_LEDStatus
|
||||
PMi_LEDStatus:
|
||||
.word 0x00000001
|
||||
|
||||
.global PMi_BlinkPatternData
|
||||
PMi_BlinkPatternData:
|
||||
.word 0x00000000
|
||||
.word 0xAA000000
|
||||
.word 0x00010008
|
||||
.word 0x00000000
|
||||
.word 0xCC000000
|
||||
.word 0x00010008
|
||||
.word 0x00000000
|
||||
.word 0xE3800000
|
||||
.word 0x0001000C
|
||||
.word 0x00000000
|
||||
.word 0xF0F00000
|
||||
.word 0x00010010
|
||||
.word 0x00000000
|
||||
.word 0xF83E0000
|
||||
.word 0x00010014
|
||||
.word 0x00000000
|
||||
.word 0xFC000000
|
||||
.word 0x0001000C
|
||||
.word 0x00000000
|
||||
.word 0xFF000000
|
||||
.word 0x00010010
|
||||
.word 0x00000000
|
||||
.word 0xFFC00000
|
||||
.word 0x00010014
|
||||
.word 0x00000000
|
||||
.word 0xFF000000
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xFF00FF00
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xFFFFFF00
|
||||
.word 0x00010020
|
||||
.word 0x00000000
|
||||
.word 0xC3000000
|
||||
.word 0x00020028
|
||||
|
||||
.global _03807704
|
||||
_03807704:
|
||||
.word 0x00000001
|
||||
|
||||
@@ -222,13 +222,34 @@
|
||||
.extern FUN_037FE918
|
||||
.extern FUN_037FE968
|
||||
.extern FUN_037FE9B8
|
||||
.extern SPIi_CheckEntry
|
||||
.extern SPIi_CheckException
|
||||
.extern SPIi_GetException
|
||||
.extern SPIi_ReleaseException
|
||||
.extern SPIi_ReturnResult
|
||||
.extern SPIi_SetEntry
|
||||
.extern SPI_Init
|
||||
.extern FUN_03801660
|
||||
.extern FUN_038016A8
|
||||
.extern PMi_ResetControl
|
||||
.extern PMi_SetControl
|
||||
.extern PMi_SetLED
|
||||
.extern PM_AnalyzeCommand
|
||||
.extern PM_ExecuteProcess
|
||||
.extern PM_Init
|
||||
.extern PM_SelfBlinkProc
|
||||
.extern MIC_AnalyzeCommand
|
||||
.extern MIC_ExecuteProcess
|
||||
.extern MIC_Init
|
||||
.extern TP_AnalyzeCommand
|
||||
.extern TP_ExecuteProcess
|
||||
.extern TP_Init
|
||||
.extern CTRDG_CheckPullOut_Polling
|
||||
.extern CTRDG_VibPulseEdgeUpdate
|
||||
.extern CTRDG_Init
|
||||
.extern NVRAM_AnalyzeCommand
|
||||
.extern NVRAM_ExecuteProcess
|
||||
.extern NVRAM_Init
|
||||
.extern NVRAM_ReadDataBytes
|
||||
.extern RTC_Init
|
||||
.extern WVR_Shutdown
|
||||
@@ -310,6 +331,7 @@
|
||||
.extern _038072BC
|
||||
.extern _038072C0
|
||||
.extern _038072C4
|
||||
.extern _038072C8
|
||||
.extern SVC_CpuSet
|
||||
.extern SVC_GetCRC16
|
||||
.extern SVC_GetPitchTable
|
||||
|
||||
Reference in New Issue
Block a user