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.s1747
1 files changed, 0 insertions, 1747 deletions
diff --git a/arm7/asm/wram2.s b/arm7/asm/wram2.s
index 68b31543..1ad3f830 100644
--- a/arm7/asm/wram2.s
+++ b/arm7/asm/wram2.s
@@ -3,1753 +3,6 @@
.section .text
- arm_func_start FUN_0380428C
-FUN_0380428C: ;@ 0x0380428C
- stmfd sp!, {lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl NVRAM_ReadStatusRegister
- ldrh r1, [sp]
- ands r0, r1, #1
- movne r0, #0
- bne _038042B8
- ands r0, r1, #2
- movne r0, #1
- moveq r0, #0
-_038042B8:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038042C4
-FUN_038042C4: ;@ 0x038042C4
- stmfd sp!, {lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl NVRAM_ReadStatusRegister
- ldrh r0, [sp]
- ands r0, r0, #1
- moveq r0, #1
- movne r0, #0
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start NVRAM_ExecuteProcess
-NVRAM_ExecuteProcess: ;@ 0x038042F0
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- bl OS_DisableInterrupts
- mov r5, r0
- mov r0, #1
- bl SPIi_CheckException
- cmp r0, #0
- bne _03804334
- 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 _038045C0
-_03804334:
- mov r0, #1
- bl SPIi_GetException
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r0, [r4, #4]
- sub r0, r0, #32
- cmp r0, #13
- addls pc, pc, r0, lsl #2
- b _03804584
- b _03804390
- b _03804398
- b _038043A0
- b _038043AC
- b _038043EC
- b _0380442C
- b _03804474
- b _038044BC
- b _038044F4
- b _0380452C
- b _03804534
- b _0380453C
- b _03804570
- b _0380457C
-_03804390:
- bl NVRAM_WriteEnable
- b _038045A4
-_03804398:
- bl NVRAM_WriteDisable
- b _038045A4
-_038043A0:
- ldr r0, [r4, #16]
- bl NVRAM_ReadStatusRegister
- b _038045A4
-_038043AC:
- bl FUN_038042C4
- cmp r0, #0
- bne _038043D8
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038043D8:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- ldr r2, [r4, #16]
- bl NVRAM_ReadDataBytes
- b _038045A4
-_038043EC:
- bl FUN_038042C4
- cmp r0, #0
- bne _03804418
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804418:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- ldr r2, [r4, #16]
- bl NVRAM_ReadDataBytesAtHigherSpeed
- b _038045A4
-_0380442C:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804458
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804458:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- ldr r2, [r4, #16]
- bl NVRAM_PageWrite
- b _038045A4
-_03804474:
- bl FUN_0380428C
- cmp r0, #0
- bne _038044A0
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038044A0:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- ldr r2, [r4, #16]
- bl NVRAM_PageProgram
- b _038045A4
-_038044BC:
- bl FUN_0380428C
- cmp r0, #0
- bne _038044E8
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038044E8:
- ldr r0, [r4, #8]
- bl NVRAM_PageErase
- b _038045A4
-_038044F4:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804520
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804520:
- ldr r0, [r4, #8]
- bl NVRAM_SectorErase
- b _038045A4
-_0380452C:
- bl NVRAM_DeepPowerDown
- b _038045A4
-_03804534:
- bl NVRAM_ReleaseFromDeepPowerDown
- b _038045A4
-_0380453C:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804568
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804568:
- bl NVRAM_ChipErase
- b _038045A4
-_03804570:
- ldr r0, [r4, #16]
- bl NVRAM_ReadSiliconId
- b _038045A4
-_0380457C:
- bl NVRAM_SoftwareReset
- b _038045A4
-_03804584:
- mov r0, #1
- bl SPIi_ReleaseException
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #1
- bl SPIi_ReturnResult
- b _038045C0
-_038045A4:
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
-_038045C0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start NVRAM_AnalyzeCommand
-NVRAM_AnalyzeCommand: ;@ 0x038045CC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #12
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _038045FC
- mov r5, #0
- mov lr, r5
- ldr r1, _0380476C ;@ =_0380A018
-_038045E8:
- mov r4, r5, lsl #1
- strh lr, [r1, r4]
- add r5, r5, #1
- cmp r5, #16
- blt _038045E8
-_038045FC:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r4, r1, lsl #1
- ldr r1, _0380476C ;@ =_0380A018
- strh r0, [r1, r4]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03804760
- ldrh r0, [r1]
- and r4, r0, #65280 ;@ 0xff00
- mov r4, r4, lsl #8
- mov r4, r4, lsr #16
- sub lr, r4, #34 ;@ 0x22
- cmp lr, #10
- addls pc, pc, lr, lsl #2
- b _03804734
- b _03804664
- b _038046A0
- b _038046A0
- b _038046E8
- b _038046E8
- b _03804728
- b _03804728
- b _03804734
- b _03804734
- b _03804734
- b _03804664
-_03804664:
- ldrh ip, [r1, #4]
- and lr, ip, #65280 ;@ 0xff00
- and r0, r0, #255 ;@ 0xff
- mov ip, r0, lsl #24
- ldrh r0, [r1, #2]
- orr r0, ip, r0, lsl #8
- orr ip, r0, lr, lsr #8
- cmp ip, #33554432 ;@ 0x2000000
- bcc _03804690
- cmp ip, #41943040 ;@ 0x2800000
- bcc _03804734
-_03804690:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_038046A0:
- ldrh r3, [r1, #8]
- ldrh r2, [r1, #10]
- orr ip, r2, r3, lsl #16
- cmp ip, #33554432 ;@ 0x2000000
- bcc _038046BC
- cmp ip, #41943040 ;@ 0x2800000
- bcc _038046CC
-_038046BC:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_038046CC:
- and r2, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r2, lsl #16
- ldrh r2, [r1, #4]
- ldrh r0, [r1, #6]
- orr r2, r0, r2, lsl #16
- b _03804734
-_038046E8:
- ldrh r3, [r1, #6]
- ldrh r2, [r1, #8]
- orr ip, r2, r3, lsl #16
- cmp ip, #33554432 ;@ 0x2000000
- bcc _03804704
- cmp ip, #41943040 ;@ 0x2800000
- bcc _03804714
-_03804704:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_03804714:
- and r2, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r2, lsl #16
- ldrh r2, [r1, #4]
- b _03804734
-_03804728:
- and r3, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r3, lsl #16
-_03804734:
- str r2, [sp]
- str ip, [sp, #4]
- mov r0, #1
- mov r1, r4
- mov r2, #3
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03804760
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
-_03804760:
- add sp, sp, #12
- ldmia sp!, {r4, r5, lr}
- bx lr
-_0380476C: .word _0380A018
-
- arm_func_start NVRAM_Init
-NVRAM_Init: ;@ 0x03804770
- mov r3, #0
- mov r2, r3
- ldr r0, _03804794 ;@ =_0380A018
-_0380477C:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _0380477C
- bx lr
-_03804794: .word _0380A018
-
- arm_func_start NVRAM_SoftwareReset
-NVRAM_SoftwareReset: ;@ 0x03804798
- ldr r1, _038047D0 ;@ =0x040001C0
-_0380479C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380479C
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #255 ;@ 0xff
- ldr r0, _038047D4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038047D0 ;@ =0x040001C0
-_038047C0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038047C0
- bx lr
-_038047D0: .word 0x040001C0
-_038047D4: .word 0x040001C2
-
- arm_func_start NVRAM_ReadSiliconId
-NVRAM_ReadSiliconId: ;@ 0x038047D8
- ldr r2, _0380486C ;@ =0x040001C0
-_038047DC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _038047DC
- mov r1, #35072 ;@ 0x8900
- strh r1, [r2]
- mov r2, #159 ;@ 0x9f
- ldr r1, _03804870 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _0380486C ;@ =0x040001C0
-_03804800:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804800
- mov r2, #0
- ldr r1, _03804870 ;@ =0x040001C2
- strh r2, [r1]
- ldr r3, _0380486C ;@ =0x040001C0
-_0380481C:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _0380481C
- ldr r2, _03804870 ;@ =0x040001C2
- ldrh r1, [r2]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0]
- mov r1, #33024 ;@ 0x8100
- strh r1, [r3]
- mov r1, #0
- strh r1, [r2]
- ldr r2, _0380486C ;@ =0x040001C0
-_0380484C:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _0380484C
- ldr r1, _03804870 ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0, #1]
- bx lr
-_0380486C: .word 0x040001C0
-_03804870: .word 0x040001C2
-
- arm_func_start NVRAM_ChipErase
-NVRAM_ChipErase: ;@ 0x03804874
- ldr r1, _038048AC ;@ =0x040001C0
-_03804878:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804878
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #199 ;@ 0xc7
- ldr r0, _038048B0 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038048AC ;@ =0x040001C0
-_0380489C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380489C
- bx lr
-_038048AC: .word 0x040001C0
-_038048B0: .word 0x040001C2
-
- arm_func_start NVRAM_ReleaseFromDeepPowerDown
-NVRAM_ReleaseFromDeepPowerDown: ;@ 0x038048B4
- ldr r1, _038048EC ;@ =0x040001C0
-_038048B8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048B8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #171 ;@ 0xab
- ldr r0, _038048F0 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038048EC ;@ =0x040001C0
-_038048DC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048DC
- bx lr
-_038048EC: .word 0x040001C0
-_038048F0: .word 0x040001C2
-
- arm_func_start NVRAM_DeepPowerDown
-NVRAM_DeepPowerDown: ;@ 0x038048F4
- ldr r1, _0380492C ;@ =0x040001C0
-_038048F8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048F8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #185 ;@ 0xb9
- ldr r0, _03804930 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380492C ;@ =0x040001C0
-_0380491C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380491C
- bx lr
-_0380492C: .word 0x040001C0
-_03804930: .word 0x040001C2
-
- arm_func_start NVRAM_SectorErase
-NVRAM_SectorErase: ;@ 0x03804934
- and r1, r0, #16711680 ;@ 0xff0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #16
- mov r2, r1, lsr #16
- and r1, r0, #65280 ;@ 0xff00
- mov r1, r1, lsl #8
- mov r1, r1, lsr #16
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr ip, _038049F0 ;@ =0x040001C0
-_03804960:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804960
- mov r3, #35072 ;@ 0x8900
- strh r3, [ip]
- mov ip, #216 ;@ 0xd8
- ldr r3, _038049F4 ;@ =0x040001C2
- strh ip, [r3]
- ldr ip, _038049F0 ;@ =0x040001C0
-_03804984:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804984
- and r3, r2, #255 ;@ 0xff
- ldr r2, _038049F4 ;@ =0x040001C2
- strh r3, [r2]
- ldr r3, _038049F0 ;@ =0x040001C0
-_038049A0:
- ldrh r2, [r3]
- ands r2, r2, #128 ;@ 0x80
- bne _038049A0
- and r2, r1, #255 ;@ 0xff
- ldr r1, _038049F4 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _038049F0 ;@ =0x040001C0
-_038049BC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _038049BC
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _038049F4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038049F0 ;@ =0x040001C0
-_038049E0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038049E0
- bx lr
-_038049F0: .word 0x040001C0
-_038049F4: .word 0x040001C2
-
- arm_func_start NVRAM_PageErase
-NVRAM_PageErase: ;@ 0x038049F8
- and r1, r0, #16711680 ;@ 0xff0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #16
- mov r2, r1, lsr #16
- and r1, r0, #65280 ;@ 0xff00
- mov r1, r1, lsl #8
- mov r1, r1, lsr #16
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr ip, _03804AB4 ;@ =0x040001C0
-_03804A24:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804A24
- mov r3, #35072 ;@ 0x8900
- strh r3, [ip]
- mov ip, #219 ;@ 0xdb
- ldr r3, _03804AB8 ;@ =0x040001C2
- strh ip, [r3]
- ldr ip, _03804AB4 ;@ =0x040001C0
-_03804A48:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804A48
- and r3, r2, #255 ;@ 0xff
- ldr r2, _03804AB8 ;@ =0x040001C2
- strh r3, [r2]
- ldr r3, _03804AB4 ;@ =0x040001C0
-_03804A64:
- ldrh r2, [r3]
- ands r2, r2, #128 ;@ 0x80
- bne _03804A64
- and r2, r1, #255 ;@ 0xff
- ldr r1, _03804AB8 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804AB4 ;@ =0x040001C0
-_03804A80:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804A80
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804AB8 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804AB4 ;@ =0x040001C0
-_03804AA4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804AA4
- bx lr
-_03804AB4: .word 0x040001C0
-_03804AB8: .word 0x040001C2
-
- arm_func_start NVRAM_PageProgram
-NVRAM_PageProgram: ;@ 0x03804ABC
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804BD4
- add r3, r0, r1
- sub r3, r3, #1
- mov r3, r3, lsr #8
- cmp r3, r0, lsr #8
- andhi r1, r0, #255 ;@ 0xff
- rsbhi r1, r1, #256 ;@ 0x100
- movhi r1, r1, lsl #16
- movhi r1, r1, lsr #16
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804BE0 ;@ =0x040001C0
-_03804B10:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804B10
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #2
- ldr lr, _03804BE4 ;@ =0x040001C2
- strh r0, [lr]
- mov r4, #0
- add r3, sp, #0
- ldr ip, _03804BE0 ;@ =0x040001C0
-_03804B3C:
- ldrh r0, [ip]
- ands r0, r0, #128 ;@ 0x80
- bne _03804B3C
- mov r0, r4, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [lr]
- add r4, r4, #1
- cmp r4, #3
- blt _03804B3C
- mov ip, #0
- sub lr, r1, #1
- ldr r3, _03804BE0 ;@ =0x040001C0
- ldr r0, _03804BE4 ;@ =0x040001C2
- b _03804B94
-_03804B78:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _03804B78
- ldrb r1, [r2, ip]
- and r1, r1, #255 ;@ 0xff
- strh r1, [r0]
- add ip, ip, #1
-_03804B94:
- cmp ip, lr
- blt _03804B78
- ldr r1, _03804BE0 ;@ =0x040001C0
-_03804BA0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804BA0
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- ldrb r0, [r2, ip]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804BE4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804BE0 ;@ =0x040001C0
-_03804BC8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804BC8
-_03804BD4:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804BE0: .word 0x040001C0
-_03804BE4: .word 0x040001C2
-
- arm_func_start NVRAM_PageWrite
-NVRAM_PageWrite: ;@ 0x03804BE8
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804D00
- add r3, r0, r1
- sub r3, r3, #1
- mov r3, r3, lsr #8
- cmp r3, r0, lsr #8
- andhi r1, r0, #255 ;@ 0xff
- rsbhi r1, r1, #256 ;@ 0x100
- movhi r1, r1, lsl #16
- movhi r1, r1, lsr #16
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804D0C ;@ =0x040001C0
-_03804C3C:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804C3C
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #10
- ldr lr, _03804D10 ;@ =0x040001C2
- strh r0, [lr]
- mov r4, #0
- add r3, sp, #0
- ldr ip, _03804D0C ;@ =0x040001C0
-_03804C68:
- ldrh r0, [ip]
- ands r0, r0, #128 ;@ 0x80
- bne _03804C68
- mov r0, r4, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [lr]
- add r4, r4, #1
- cmp r4, #3
- blt _03804C68
- mov ip, #0
- sub lr, r1, #1
- ldr r3, _03804D0C ;@ =0x040001C0
- ldr r0, _03804D10 ;@ =0x040001C2
- b _03804CC0
-_03804CA4:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _03804CA4
- ldrb r1, [r2, ip]
- and r1, r1, #255 ;@ 0xff
- strh r1, [r0]
- add ip, ip, #1
-_03804CC0:
- cmp ip, lr
- blt _03804CA4
- ldr r1, _03804D0C ;@ =0x040001C0
-_03804CCC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804CCC
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- ldrb r0, [r2, ip]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804D0C ;@ =0x040001C0
-_03804CF4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804CF4
-_03804D00:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804D0C: .word 0x040001C0
-_03804D10: .word 0x040001C2
-
- arm_func_start NVRAM_ReadDataBytesAtHigherSpeed
-NVRAM_ReadDataBytesAtHigherSpeed: ;@ 0x03804D14
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804E3C
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804D48:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804D48
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #11
- ldr ip, _03804E4C ;@ =0x040001C2
- strh r0, [ip]
- mov lr, #0
- add r3, sp, #0
- ldr r4, _03804E48 ;@ =0x040001C0
-_03804D74:
- ldrh r0, [r4]
- ands r0, r0, #128 ;@ 0x80
- bne _03804D74
- mov r0, lr, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [ip]
- add lr, lr, #1
- cmp lr, #3
- blt _03804D74
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804DA0:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804DA0
- mov r3, #0
- ldr r0, _03804E4C ;@ =0x040001C2
- strh r3, [r0]
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804DBC:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804DBC
- mov r0, #0
- ldr ip, _03804E48 ;@ =0x040001C0
- mov r4, r0
- ldr lr, _03804E4C ;@ =0x040001C2
- sub r1, r1, #1
- b _03804E00
-_03804DE0:
- strh r4, [lr]
-_03804DE4:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804DE4
- ldrh r3, [lr]
- and r3, r3, #255 ;@ 0xff
- strb r3, [r2, r0]
- add r0, r0, #1
-_03804E00:
- cmp r0, r1
- bcc _03804DE0
- mov r1, #33024 ;@ 0x8100
- ldr ip, _03804E48 ;@ =0x040001C0
- strh r1, [ip]
- mov r3, #0
- ldr r1, _03804E4C ;@ =0x040001C2
- strh r3, [r1]
-_03804E20:
- ldrh r1, [ip]
- ands r1, r1, #128 ;@ 0x80
- bne _03804E20
- ldr r1, _03804E4C ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r2, r0]
-_03804E3C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804E48: .word 0x040001C0
-_03804E4C: .word 0x040001C2
-
- arm_func_start NVRAM_ReadDataBytes
-NVRAM_ReadDataBytes: ;@ 0x03804E50
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804F5C
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804F68 ;@ =0x040001C0
-_03804E84:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804E84
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #3
- ldr ip, _03804F6C ;@ =0x040001C2
- strh r0, [ip]
- mov lr, #0
- add r3, sp, #0
- ldr r4, _03804F68 ;@ =0x040001C0
-_03804EB0:
- ldrh r0, [r4]
- ands r0, r0, #128 ;@ 0x80
- bne _03804EB0
- mov r0, lr, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [ip]
- add lr, lr, #1
- cmp lr, #3
- blt _03804EB0
- ldr r3, _03804F68 ;@ =0x040001C0
-_03804EDC:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804EDC
- mov r0, #0
- ldr ip, _03804F68 ;@ =0x040001C0
- mov r4, r0
- ldr lr, _03804F6C ;@ =0x040001C2
- sub r1, r1, #1
- b _03804F20
-_03804F00:
- strh r4, [lr]
-_03804F04:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804F04
- ldrh r3, [lr]
- and r3, r3, #255 ;@ 0xff
- strb r3, [r2, r0]
- add r0, r0, #1
-_03804F20:
- cmp r0, r1
- bcc _03804F00
- mov r1, #33024 ;@ 0x8100
- ldr ip, _03804F68 ;@ =0x040001C0
- strh r1, [ip]
- mov r3, #0
- ldr r1, _03804F6C ;@ =0x040001C2
- strh r3, [r1]
-_03804F40:
- ldrh r1, [ip]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F40
- ldr r1, _03804F6C ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r2, r0]
-_03804F5C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804F68: .word 0x040001C0
-_03804F6C: .word 0x040001C2
-
- arm_func_start NVRAM_ReadStatusRegister
-NVRAM_ReadStatusRegister: ;@ 0x03804F70
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804F74:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F74
- mov r1, #35072 ;@ 0x8900
- strh r1, [r2]
- mov r2, #5
- ldr r1, _03804FE0 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804F98:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F98
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- mov r2, #0
- ldr r1, _03804FE0 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804FBC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804FBC
- ldr r1, _03804FE0 ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0]
- bx lr
-_03804FDC: .word 0x040001C0
-_03804FE0: .word 0x040001C2
-
- arm_func_start NVRAM_WriteDisable
-NVRAM_WriteDisable: ;@ 0x03804FE4
- ldr r1, _0380501C ;@ =0x040001C0
-_03804FE8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804FE8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #4
- ldr r0, _03805020 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380501C ;@ =0x040001C0
-_0380500C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380500C
- bx lr
-_0380501C: .word 0x040001C0
-_03805020: .word 0x040001C2
-
- arm_func_start NVRAM_WriteEnable
-NVRAM_WriteEnable: ;@ 0x03805024
- ldr r1, _0380505C ;@ =0x040001C0
-_03805028:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03805028
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #6
- ldr r0, _03805060 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380505C ;@ =0x040001C0
-_0380504C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380504C
- bx lr
-_0380505C: .word 0x040001C0
-_03805060: .word 0x040001C2
-
- arm_func_start FUN_03805064
-FUN_03805064: ;@ 0x03805064
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov lr, #0
- mov r2, lr
- b _03805094
-_03805078:
- mov r1, r2, lsl #2
- mov r1, r0, lsr r1
- and r1, r1, #15
- cmp r1, #10
- movcs r0, #0
- bcs _038050D0
- add r2, r2, #1
-_03805094:
- cmp r2, #8
- blt _03805078
- mov r3, #0
- mov ip, #1
- mov r2, #10
-_038050A8:
- mov r1, r3, lsl #2
- mov r1, r0, lsr r1
- and r1, r1, #15
- mla lr, ip, r1, lr
- add r3, r3, #1
- mul r1, ip, r2
- mov ip, r1
- cmp r3, #8
- blt _038050A8
- mov r0, lr
-_038050D0:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038050DC
-FUN_038050DC: ;@ 0x038050DC
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r0
- mov r7, r1
- mov r6, r2
- sub r0, r7, #1
- cmp r0, #1
- subls r8, r8, #1
- addls r7, r7, #12
- mov r0, r8
- mov r1, #400 ;@ 0x190
- bl _u32_div_f
- mov r5, r0
- mov r0, r8
- mov r1, #100 ;@ 0x64
- bl _u32_div_f
- mov r4, r0
- mov r0, #13
- mul r0, r7, r0
- add r0, r0, #8
- mov r1, #5
- bl _u32_div_f
- add r1, r8, r8, lsr #2
- sub r1, r1, r4
- add r1, r5, r1
- add r0, r1, r0
- add r0, r6, r0
- mov r1, #7
- bl _u32_div_f
- mov r0, r1
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-
- arm_func_start FUN_03805158
-FUN_03805158: ;@ 0x03805158
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl RTC_ReadStatus1
- add r0, sp, #2
- bl RTC_ReadStatus2
- ldrh r0, [sp]
- mov r1, r0, lsl #24
- movs r1, r1, lsr #31
- bne _0380519C
- mov r0, r0, lsl #25
- movs r0, r0, lsr #31
- bne _0380519C
- ldrh r0, [sp, #2]
- mov r0, r0, lsl #24
- movs r0, r0, lsr #31
- beq _038051B4
-_0380519C:
- ldrh r0, [sp]
- bic r0, r0, #1
- orr r0, r0, #1
- strh r0, [sp]
- add r0, sp, #0
- bl RTC_WriteStatus1
-_038051B4:
- ldrh r0, [sp]
- mov r1, r0, lsl #27
- movs r1, r1, lsr #31
- bne _038051D0
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- beq _038051F0
-_038051D0:
- ldrh r0, [sp, #2]
- bic r0, r0, #15
- strh r0, [sp, #2]
- ldrh r0, [sp, #2]
- bic r0, r0, #64 ;@ 0x40
- strh r0, [sp, #2]
- add r0, sp, #2
- bl RTC_WriteStatus2
-_038051F0:
- ldr r0, _03805288 ;@ =0x027FFDE8
- bl RTC_ReadDateTime
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldrb r0, [r0]
- bl FUN_03805064
- mov r4, r0
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldr r0, [r0]
- mov r0, r0, lsl #19
- mov r0, r0, lsr #27
- bl FUN_03805064
- mov r5, r0
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldr r0, [r0]
- mov r0, r0, lsl #10
- mov r0, r0, lsr #26
- bl FUN_03805064
- mov r2, r0
- add r0, r4, #2000 ;@ 0x7d0
- mov r1, r5
- bl FUN_038050DC
- ldr r2, _03805288 ;@ =0x027FFDE8
- ldr r1, [r2]
- mov r3, r1, lsl #5
- mov r3, r3, lsr #29
- cmp r3, r0
- beq _03805274
- bic r1, r1, #117440512 ;@ 0x7000000
- and r0, r0, #7
- orr r0, r1, r0, lsl #24
- str r0, [r2]
- mov r0, r2
- bl RTC_WriteDateTime
-_03805274:
- mov r0, #1
- bl RTC_SetHourFormat
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03805288: .word 0x027FFDE8
-
- arm_func_start FUN_0380528C
-FUN_0380528C: ;@ 0x0380528C
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- add r0, sp, #0
- bl RTC_ReadStatus1
- ldrh r0, [sp]
- mov r1, r0, lsl #27
- movs r1, r1, lsr #31
- bne _038052B8
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- beq _03805310
-_038052B8:
- add r0, sp, #2
- bl RTC_ReadStatus2
- mov r4, #0
- ldrh r0, [sp]
- mov r0, r0, lsl #27
- movs r0, r0, lsr #31
- orrne r4, r4, #1
- ldrneh r0, [sp, #2]
- bicne r0, r0, #15
- strneh r0, [sp, #2]
- ldrh r0, [sp]
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- orrne r4, r4, #2
- ldrneh r0, [sp, #2]
- bicne r0, r0, #64 ;@ 0x40
- strneh r0, [sp, #2]
- add r0, sp, #2
- bl RTC_WriteStatus2
- mov r0, #48 ;@ 0x30
- mov r1, r4
- bl FUN_038057D8
-_03805310:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start FUN_0380531C
-FUN_0380531C: ;@ 0x0380531C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #76 ;@ 0x4c
- ldr r6, _038057CC ;@ =0x027FFDE8
- add r5, r6, #4
- mov r7, #0
- ldr r9, _038057D0 ;@ =_0380A03C
- mov r8, #1
- mov r0, #16
- str r0, [sp]
- mov r0, #17
- str r0, [sp, #4]
- mov r0, #18
- str r0, [sp, #8]
- mov sl, #19
- mov r4, #2
- mov fp, #20
- mov r0, #21
- str r0, [sp, #12]
- mov r0, #22
- str r0, [sp, #16]
- mov r0, #23
- str r0, [sp, #20]
- mov r0, #24
- str r0, [sp, #24]
- mov r0, #25
- str r0, [sp, #28]
- mov r0, #32
- str r0, [sp, #32]
- mov r0, #33 ;@ 0x21
- str r0, [sp, #36] ;@ 0x24
- mov r0, #34 ;@ 0x22
- str r0, [sp, #40] ;@ 0x28
- mov r0, #35 ;@ 0x23
- str r0, [sp, #44] ;@ 0x2c
- mov r0, #36 ;@ 0x24
- str r0, [sp, #48] ;@ 0x30
- mov r0, #37 ;@ 0x25
- str r0, [sp, #52] ;@ 0x34
- mov r0, #38 ;@ 0x26
- str r0, [sp, #56] ;@ 0x38
- mov r0, #39 ;@ 0x27
- str r0, [sp, #60] ;@ 0x3c
- mov r0, #40 ;@ 0x28
- str r0, [sp, #64] ;@ 0x40
- mov r0, #41 ;@ 0x29
- str r0, [sp, #68] ;@ 0x44
-_038053D4:
- mov r0, r9
- add r1, sp, #72 ;@ 0x48
- mov r2, r8
- bl OS_ReceiveMessage
- ldr r0, _038057D4 ;@ =_0380A13C
- ldrh r0, [r0, #216] ;@ 0xd8
- cmp r0, #41 ;@ 0x29
- addls pc, pc, r0, lsl #2
- b _038057BC
- b _038054A0
- b _038054B8
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038054DC
- b _038054F8
- b _03805514
- b _03805530
- b _03805568
- b _038055A0
- b _038055D8
- b _038055F4
- b _03805610
- b _0380562C
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _03805648
- b _03805664
- b _03805688
- b _038056A4
- b _038056DC
- b _03805714
- b _0380574C
- b _03805768
- b _03805784
- b _038057A0
-_038054A0:
- bl RTC_Reset
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, r7
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054B8:
- ldrh r0, [r6]
- mov r0, r0, lsl #30
- mov r0, r0, lsr #31
- bl RTC_SetHourFormat
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, r8
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054DC:
- mov r0, r6
- bl RTC_ReadDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054F8:
- mov r0, r6
- bl RTC_ReadDate
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #4]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805514:
- add r0, r6, #4
- bl RTC_ReadTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #8]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805530:
- mov r0, r5
- bl RTC_ReadPulse
- cmp r0, #0
- bne _03805554
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, sl
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805554:
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, sl
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805568:
- mov r0, r5
- bl RTC_ReadAlarm1
- cmp r0, #0
- bne _0380558C
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, fp
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_0380558C:
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, fp
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055A0:
- mov r0, r5
- bl RTC_ReadAlarm2
- cmp r0, #0
- bne _038055C4
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #12]
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_038055C4:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #12]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055D8:
- mov r0, r6
- bl RTC_ReadStatus1
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #16]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055F4:
- add r0, r6, #2
- bl RTC_ReadStatus2
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #20]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805610:
- add r0, r6, #4
- bl RTC_ReadAdjust
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #24]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_0380562C:
- add r0, r6, #4
- bl RTC_ReadFree
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #28]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805648:
- mov r0, r6
- bl RTC_WriteDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #32]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805664:
- add r0, r6, #4
- bl RTC_ReadTime
- mov r0, r6
- bl RTC_WriteDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #36] ;@ 0x24
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805688:
- add r0, r6, #4
- bl RTC_WriteTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #40] ;@ 0x28
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038056A4:
- mov r0, r5
- bl RTC_WritePulse
- cmp r0, #0
- bne _038056C8
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #44] ;@ 0x2c
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_038056C8:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #44] ;@ 0x2c
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038056DC:
- mov r0, r5
- bl RTC_WriteAlarm1
- cmp r0, #0
- bne _03805700
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #48] ;@ 0x30
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805700:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #48] ;@ 0x30
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805714:
- mov r0, r5
- bl RTC_WriteAlarm2
- cmp r0, #0
- bne _03805738
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #52] ;@ 0x34
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805738:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #52] ;@ 0x34
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_0380574C:
- mov r0, r6
- bl RTC_WriteStatus1
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #56] ;@ 0x38
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805768:
- add r0, r6, #2
- bl RTC_WriteStatus2
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #60] ;@ 0x3c
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805784:
- add r0, r6, #4
- bl RTC_WriteAdjust
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #64] ;@ 0x40
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038057A0:
- add r0, r6, #4
- bl RTC_WriteFree
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #68] ;@ 0x44
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038057BC:
- str r7, [r9, #468] ;@ 0x1d4
- mov r1, r8
- bl FUN_038057D8
- b _038053D4
-_038057CC: .word 0x027FFDE8
-_038057D0: .word _0380A03C
-_038057D4: .word _0380A13C
-
- arm_func_start FUN_038057D8
-FUN_038057D8: ;@ 0x038057D8
- stmdb sp!, {r4, r5, r6, lr}
- mov r0, r0, lsl #8
- and r0, r0, #32512 ;@ 0x7f00
- orr r2, r0, #32768 ;@ 0x8000
- and r0, r1, #255 ;@ 0xff
- orr r6, r2, r0
- mov r5, #5
- mov r4, #0
-_038057F8:
- mov r0, r5
- mov r1, r6
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- blt _038057F8
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_03805818
-FUN_03805818: ;@ 0x03805818
- stmdb sp!, {r4, lr}
- cmp r2, #0
- bne _03805944
- and r0, r1, #32512 ;@ 0x7f00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- cmp r4, #41 ;@ 0x29
- addls pc, pc, r4, lsl #2
- b _03805938
- b _038058E4
- b _038058E4
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
-_038058E4:
- ldr r0, _0380594C ;@ =_0380A03C
- ldr r1, [r0, #468] ;@ 0x1d4
- cmp r1, #0
- beq _03805904
- mov r0, r4
- mov r1, #3
- bl FUN_038057D8
- b _03805944
-_03805904:
- mov r1, #1
- str r1, [r0, #468] ;@ 0x1d4
- ldr r1, _03805950 ;@ =_0380A13C
- strh r4, [r1, #216] ;@ 0xd8
- mov r1, #0
- mov r2, r1
- bl OS_SendMessage
- cmp r0, #0
- bne _03805944
- mov r0, r4
- mov r1, #4
- bl FUN_038057D8
- b _03805944
-_03805938:
- mov r0, r4
- mov r1, #1
- bl FUN_038057D8
-_03805944:
- ldmia sp!, {r4, lr}
- bx lr
-_0380594C: .word _0380A03C
-_03805950: .word _0380A13C
-
- arm_func_start RTC_Init
-RTC_Init: ;@ 0x03805954
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- mov r4, r0
- ldr r0, _03805A28 ;@ =_0380A038
- ldrh r1, [r0]
- cmp r1, #0
- bne _03805A1C
- mov r1, #1
- strh r1, [r0]
- ldr r0, _03805A2C ;@ =_0380A03C
- str r1, [r0, #468] ;@ 0x1d4
- bl FUN_03805158
- mov r1, #0
- ldr r0, _03805A2C ;@ =_0380A03C
- str r1, [r0, #468] ;@ 0x1d4
- bl PXI_Init
- mov r0, #5
- ldr r1, _03805A30 ;@ =FUN_03805818
- bl PXI_SetFifoRecvCallback
- ldr r0, _03805A2C ;@ =_0380A03C
- ldr r1, _03805A34 ;@ =_0380A05C
- mov r2, #4
- bl OS_InitMessageQueue
- mov r0, #256 ;@ 0x100
- str r0, [sp]
- str r4, [sp, #4]
- ldr r0, _03805A38 ;@ =_0380A06C
- ldr r1, _03805A3C ;@ =FUN_0380531C
- mov r2, #0
- ldr r3, _03805A40 ;@ =_0380A210
- bl OS_CreateThread
- ldr r0, _03805A38 ;@ =_0380A06C
- bl OS_WakeupThreadDirect
- 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
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #128 ;@ 0x80
- ldr r1, _03805A44 ;@ =FUN_0380528C
- bl OS_SetIrqFunction
- mov r0, #128 ;@ 0x80
- bl OS_EnableIrqMask
- mov r0, r4
- bl OS_RestoreInterrupts
-_03805A1C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03805A28: .word _0380A038
-_03805A2C: .word _0380A03C
-_03805A30: .word FUN_03805818
-_03805A34: .word _0380A05C
-_03805A38: .word _0380A06C
-_03805A3C: .word FUN_0380531C
-_03805A40: .word _0380A210
-_03805A44: .word FUN_0380528C
-
arm_func_start FUN_03805A48
FUN_03805A48: ;@ 0x03805A48
stmdb sp!, {r4, r5, r6, r7, lr}