summaryrefslogtreecommitdiff
path: root/asm/RTC_arm9.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/RTC_arm9.s')
-rw-r--r--asm/RTC_arm9.s1028
1 files changed, 0 insertions, 1028 deletions
diff --git a/asm/RTC_arm9.s b/asm/RTC_arm9.s
deleted file mode 100644
index 8116f8de..00000000
--- a/asm/RTC_arm9.s
+++ /dev/null
@@ -1,1028 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start RtcWaitBusy
-RtcWaitBusy: ; 0x020D5914
- ldr ip, _020D5928 ; =0x021D5538
-_020D5918:
- ldr r0, [r12, #0x0]
- cmp r0, #0x1
- beq _020D5918
- bx lr
- .balign 4
-_020D5928: .word 0x021D5538
-
- arm_func_start RtcGetResultCallback
-RtcGetResultCallback: ; 0x020D592C
- ldr r1, _020D5938 ; =0x021D5538
- str r0, [r1, #0x20]
- bx lr
- .balign 4
-_020D5938: .word 0x021D5538
-
- arm_func_start RtcBCD2HEX
-RtcBCD2HEX: ; 0x020D593C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, #0x0
- mov r3, r5
- mov r2, r5
-_020D5950:
- mov r1, r0, lsr r2
- and r1, r1, #0xf
- cmp r1, #0xa
- addcs sp, sp, #0x4
- movcs r0, #0x0
- ldmcsia sp!, {r4-r5,lr}
- bxcs lr
- add r3, r3, #0x1
- cmp r3, #0x8
- add r2, r2, #0x4
- blt _020D5950
- mov r12, #0x0
- mov lr, r12
- mov r4, #0x1
- mov r2, #0xa
-_020D598C:
- mov r1, r0, lsr lr
- and r3, r1, #0xf
- mul r1, r4, r2
- mla r5, r4, r3, r5
- add r12, r12, #0x1
- mov r4, r1
- cmp r12, #0x8
- add lr, lr, #0x4
- blt _020D598C
- mov r0, r5
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-
- arm_func_start RtcCommonCallback
-RtcCommonCallback: ; 0x020D59C0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- cmp r2, #0x0
- beq _020D5A30
- ldr r0, _020D5F30 ; =0x021D5538
- ldr r2, _020D5F30 ; =0x021D5538
- ldr r1, [r0, #0x18]
- ldr r4, [r2, #0x4]
- cmp r1, #0x0
- movne r1, #0x0
- strne r1, [r0, #0x18]
- ldr r0, _020D5F30 ; =0x021D5538
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- movne r1, #0x0
- strne r1, [r0, #0x0]
- cmp r4, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,lr}
- bxeq lr
- ldr r1, [r2, #0x10]
- mov r3, #0x0
- mov r0, #0x6
- str r3, [r2, #0x4]
- blx r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-_020D5A30:
- and r0, r1, #0x7f00
- mov r0, r0, lsr #0x8
- and r0, r0, #0xff
- cmp r0, #0x30
- and r2, r1, #0xff
- bne _020D5A70
- ldr r0, _020D5F30 ; =0x021D5538
- ldr r0, [r0, #0x1c]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,lr}
- bxeq lr
- blx r0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
-_020D5A70:
- cmp r2, #0x0
- bne _020D5E88
- ldr r0, _020D5F30 ; =0x021D5538
- mov r5, #0x0
- ldr r1, [r0, #0x14]
- cmp r1, #0xf
- addls pc, pc, r1, lsl #0x2
- b _020D5E74
-_020D5A90:
- b _020D5AD0
-_020D5A94:
- b _020D5B24
-_020D5A98:
- b _020D5B74
-_020D5A9C:
- b _020D5ED0
-_020D5AA0:
- b _020D5ED0
-_020D5AA4:
- b _020D5ED0
-_020D5AA8:
- b _020D5C1C
-_020D5AAC:
- b _020D5C4C
-_020D5AB0:
- b _020D5C70
-_020D5AB4:
- b _020D5D14
-_020D5AB8:
- b _020D5DC8
-_020D5ABC:
- b _020D5ED0
-_020D5AC0:
- b _020D5ED0
-_020D5AC4:
- b _020D5ED0
-_020D5AC8:
- b _020D5ED0
-_020D5ACC:
- b _020D5ED0
-_020D5AD0:
- ldr r1, _020D5F34 ; =0x027FFDE8
- ldr r4, [r0, #0x8]
- ldrb r0, [r1, #0x0]
- bl RtcBCD2HEX
- ldr r1, _020D5F34 ; =0x027FFDE8
- str r0, [r4, #0x0]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x13
- mov r0, r0, lsr #0x1b
- bl RtcBCD2HEX
- ldr r1, _020D5F34 ; =0x027FFDE8
- str r0, [r4, #0x4]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0xa
- mov r0, r0, lsr #0x1a
- bl RtcBCD2HEX
- str r0, [r4, #0x8]
- mov r0, r4
- bl RTC_GetDayOfWeek
- str r0, [r4, #0xc]
- b _020D5ED0
-_020D5B24:
- ldr r1, _020D5F38 ; =0x027FFDEC
- ldr r4, [r0, #0x8]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x1a
- mov r0, r0, lsr #0x1a
- bl RtcBCD2HEX
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0x0]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x11
- mov r0, r0, lsr #0x19
- bl RtcBCD2HEX
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0x4]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x9
- mov r0, r0, lsr #0x19
- bl RtcBCD2HEX
- str r0, [r4, #0x8]
- b _020D5ED0
-_020D5B74:
- ldr r1, _020D5F34 ; =0x027FFDE8
- ldr r4, [r0, #0x8]
- ldr r0, [r1, #0x0]
- and r0, r0, #0xff
- bl RtcBCD2HEX
- ldr r1, _020D5F34 ; =0x027FFDE8
- str r0, [r4, #0x0]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x13
- mov r0, r0, lsr #0x1b
- bl RtcBCD2HEX
- ldr r1, _020D5F34 ; =0x027FFDE8
- str r0, [r4, #0x4]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0xa
- mov r0, r0, lsr #0x1a
- bl RtcBCD2HEX
- str r0, [r4, #0x8]
- mov r0, r4
- bl RTC_GetDayOfWeek
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0xc]
- ldr r0, [r1, #0x0]
- ldr r1, _020D5F30 ; =0x021D5538
- mov r0, r0, lsl #0x1a
- mov r0, r0, lsr #0x1a
- ldr r4, [r1, #0xc]
- bl RtcBCD2HEX
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0x0]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x11
- mov r0, r0, lsr #0x19
- bl RtcBCD2HEX
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0x4]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x9
- mov r0, r0, lsr #0x19
- bl RtcBCD2HEX
- str r0, [r4, #0x8]
- b _020D5ED0
-_020D5C1C:
- ldr r1, _020D5F3C ; =0x027FFDEA
- ldr r2, [r0, #0x8]
- ldrh r0, [r1, #0x0]
- mov r0, r0, lsl #0x1c
- mov r0, r0, lsr #0x1c
- cmp r0, #0x4
- bne _020D5C44
- mov r0, #0x1
- str r0, [r2, #0x0]
- b _020D5ED0
-_020D5C44:
- str r5, [r2, #0x0]
- b _020D5ED0
-_020D5C4C:
- ldr r1, _020D5F3C ; =0x027FFDEA
- ldr r2, [r0, #0x8]
- ldrh r0, [r1, #0x0]
- mov r0, r0, lsl #0x19
- movs r0, r0, lsr #0x1f
- movne r0, #0x1
- strne r0, [r2, #0x0]
- streq r5, [r2, #0x0]
- b _020D5ED0
-_020D5C70:
- ldr r1, _020D5F38 ; =0x027FFDEC
- ldr r4, [r0, #0x8]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x1d
- mov r0, r0, lsr #0x1d
- str r0, [r4, #0x0]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x12
- mov r0, r0, lsr #0x1a
- bl RtcBCD2HEX
- ldr r1, _020D5F38 ; =0x027FFDEC
- str r0, [r4, #0x4]
- ldr r0, [r1, #0x0]
- mov r0, r0, lsl #0x9
- mov r0, r0, lsr #0x19
- bl RtcBCD2HEX
- str r0, [r4, #0x8]
- mov r1, r5
- ldr r0, _020D5F38 ; =0x027FFDEC
- str r1, [r4, #0xc]
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x18
- movs r0, r0, lsr #0x1f
- ldrne r0, [r4, #0xc]
- addne r0, r0, #0x1
- strne r0, [r4, #0xc]
- ldr r0, _020D5F38 ; =0x027FFDEC
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x10
- movs r0, r0, lsr #0x1f
- ldrne r0, [r4, #0xc]
- addne r0, r0, #0x2
- strne r0, [r4, #0xc]
- ldr r0, _020D5F38 ; =0x027FFDEC
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x8
- movs r0, r0, lsr #0x1f
- ldrne r0, [r4, #0xc]
- addne r0, r0, #0x4
- strne r0, [r4, #0xc]
- b _020D5ED0
-_020D5D14:
- ldr r3, [r0, #0x18]
- cmp r3, #0x0
- bne _020D5DC0
- ldr r1, [r0, #0x8]
- ldr r1, [r1, #0x0]
- cmp r1, #0x1
- bne _020D5D7C
- ldr r2, _020D5F3C ; =0x027FFDEA
- ldrh r1, [r2, #0x0]
- mov r1, r1, lsl #0x1c
- mov r1, r1, lsr #0x1c
- cmp r1, #0x4
- beq _020D5ED0
- add r1, r3, #0x1
- str r1, [r0, #0x18]
- ldrh r0, [r2, #0x0]
- bic r0, r0, #0xf
- orr r0, r0, #0x4
- strh r0, [r2, #0x0]
- bl RTCi_WriteRawStatus2Async
-_020D5D64: ; 0x020D5D64
- cmp r0, #0x0
- moveq r1, r5
- ldreq r0, _020D5F30 ; =0x021D5538
- moveq r5, #0x3
- streq r1, [r0, #0x18]
- b _020D5ED0
-_020D5D7C:
- ldr r2, _020D5F3C ; =0x027FFDEA
- ldrh r1, [r2, #0x0]
- mov r1, r1, lsl #0x1c
- movs r1, r1, lsr #0x1c
- beq _020D5ED0
- add r1, r3, #0x1
- str r1, [r0, #0x18]
- ldrh r0, [r2, #0x0]
- bic r0, r0, #0xf
- strh r0, [r2, #0x0]
- bl RTCi_WriteRawStatus2Async
-_020D5DA8: ; 0x020D5DA8
- cmp r0, #0x0
- moveq r1, r5
- ldreq r0, _020D5F30 ; =0x021D5538
- moveq r5, #0x3
- streq r1, [r0, #0x18]
- b _020D5ED0
-_020D5DC0:
- str r5, [r0, #0x18]
- b _020D5ED0
-_020D5DC8:
- ldr r3, [r0, #0x18]
- cmp r3, #0x0
- bne _020D5E6C
- ldr r1, [r0, #0x8]
- ldr r1, [r1, #0x0]
- cmp r1, #0x1
- bne _020D5E28
- ldr r2, _020D5F3C ; =0x027FFDEA
- ldrh r1, [r2, #0x0]
- mov r1, r1, lsl #0x19
- movs r1, r1, lsr #0x1f
- bne _020D5ED0
- add r1, r3, #0x1
- str r1, [r0, #0x18]
- ldrh r0, [r2, #0x0]
- orr r0, r0, #0x40
- strh r0, [r2, #0x0]
- bl RTCi_WriteRawStatus2Async
-_020D5E10: ; 0x020D5E10
- cmp r0, #0x0
- moveq r1, r5
- ldreq r0, _020D5F30 ; =0x021D5538
- moveq r5, #0x3
- streq r1, [r0, #0x18]
- b _020D5ED0
-_020D5E28:
- ldr r2, _020D5F3C ; =0x027FFDEA
- ldrh r1, [r2, #0x0]
- mov r1, r1, lsl #0x19
- movs r1, r1, lsr #0x1f
- beq _020D5ED0
- add r1, r3, #0x1
- str r1, [r0, #0x18]
- ldrh r0, [r2, #0x0]
- bic r0, r0, #0x40
- strh r0, [r2, #0x0]
- bl RTCi_WriteRawStatus2Async
-_020D5E54: ; 0x020D5E54
- cmp r0, #0x0
- moveq r1, r5
- ldreq r0, _020D5F30 ; =0x021D5538
- moveq r5, #0x3
- streq r1, [r0, #0x18]
- b _020D5ED0
-_020D5E6C:
- str r5, [r0, #0x18]
- b _020D5ED0
-_020D5E74:
- ldr r0, _020D5F30 ; =0x021D5538
- mov r1, #0x0
- str r1, [r0, #0x18]
- mov r5, #0x4
- b _020D5ED0
-_020D5E88:
- ldr r0, _020D5F30 ; =0x021D5538
- mov r1, #0x0
- str r1, [r0, #0x18]
- cmp r2, #0x4
- addls pc, pc, r2, lsl #0x2
- b _020D5ECC
-_020D5EA0:
- b _020D5ECC
-_020D5EA4:
- b _020D5EB4
-_020D5EA8:
- b _020D5EBC
-_020D5EAC:
- b _020D5EC4
-_020D5EB0:
- b _020D5ECC
-_020D5EB4:
- mov r5, #0x4
- b _020D5ED0
-_020D5EBC:
- mov r5, #0x5
- b _020D5ED0
-_020D5EC4:
- mov r5, #0x1
- b _020D5ED0
-_020D5ECC:
- mov r5, #0x6
-_020D5ED0:
- ldr r0, _020D5F30 ; =0x021D5538
- ldr r1, [r0, #0x18]
- cmp r1, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5,lr}
- bxne lr
- ldr r2, _020D5F30 ; =0x021D5538
- ldr r1, [r0, #0x0]
- ldr r4, [r2, #0x4]
- cmp r1, #0x0
- movne r1, #0x0
- strne r1, [r0, #0x0]
- cmp r4, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,lr}
- bxeq lr
- ldr r1, [r2, #0x10]
- mov r3, #0x0
- mov r0, r5
- str r3, [r2, #0x4]
- blx r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020D5F30: .word 0x021D5538
-_020D5F34: .word 0x027FFDE8
-_020D5F38: .word 0x027FFDEC
-_020D5F3C: .word 0x027FFDEA
-
- arm_func_start RTC_GetDateTimeAsync
-RTC_GetDateTimeAsync: ; 0x020D5F40
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl OS_DisableInterrupts
- ldr r1, _020D5FCC ; =0x021D5538
- ldr r2, [r1, #0x0]
- cmp r2, #0x0
- beq _020D5F80
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- mov r0, #0x1
- ldmia sp!, {r4-r7,lr}
- bx lr
-_020D5F80:
- mov r2, #0x1
- str r2, [r1, #0x0]
- bl OS_RestoreInterrupts
- ldr r0, _020D5FCC ; =0x021D5538
- mov r2, #0x2
- mov r1, #0x0
- str r2, [r0, #0x14]
- str r1, [r0, #0x18]
- str r7, [r0, #0x8]
- str r6, [r0, #0xc]
- str r5, [r0, #0x4]
- str r4, [r0, #0x10]
- bl RTCi_ReadRawDateTimeAsync
-_020D5FB4: ; 0x020D5FB4
- cmp r0, #0x0
- movne r0, #0x0
- moveq r0, #0x3
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020D5FCC: .word 0x021D5538
-
- arm_func_start RTC_GetTime
-RTC_GetTime: ; 0x020D5FD0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020D600C ; =RtcGetResultCallback
- mov r2, #0x0
- bl RTC_GetTimeAsync
- ldr r1, _020D6010 ; =0x021D5538
- cmp r0, #0x0
- str r0, [r1, #0x20]
- bne _020D5FF8
- bl RtcWaitBusy
-_020D5FF8:
- ldr r0, _020D6010 ; =0x021D5538
- ldr r0, [r0, #0x20]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020D600C: .word RtcGetResultCallback
-_020D6010: .word 0x021D5538
-
- arm_func_start RTC_GetTimeAsync
-RTC_GetTimeAsync: ; 0x020D6014
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl OS_DisableInterrupts
- ldr r1, _020D608C ; =0x021D5538
- ldr r2, [r1, #0x0]
- cmp r2, #0x0
- beq _020D6048
- bl OS_RestoreInterrupts
- mov r0, #0x1
- ldmia sp!, {r4-r6,lr}
- bx lr
-_020D6048:
- mov r2, #0x1
- str r2, [r1, #0x0]
- bl OS_RestoreInterrupts
- ldr r0, _020D608C ; =0x021D5538
- mov r2, #0x1
- mov r1, #0x0
- str r2, [r0, #0x14]
- str r1, [r0, #0x18]
- str r6, [r0, #0x8]
- str r5, [r0, #0x4]
- str r4, [r0, #0x10]
- bl RTCi_ReadRawTimeAsync
-_020D6078: ; 0x020D6078
- cmp r0, #0x0
- movne r0, #0x0
- moveq r0, #0x3
- ldmia sp!, {r4-r6,lr}
- bx lr
- .balign 4
-_020D608C: .word 0x021D5538
-
- arm_func_start RTC_GetDate
-RTC_GetDate: ; 0x020D6090
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020D60CC ; =RtcGetResultCallback
- mov r2, #0x0
- bl RTC_GetDateAsync
- ldr r1, _020D60D0 ; =0x021D5538
- cmp r0, #0x0
- str r0, [r1, #0x20]
- bne _020D60B8
- bl RtcWaitBusy
-_020D60B8:
- ldr r0, _020D60D0 ; =0x021D5538
- ldr r0, [r0, #0x20]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020D60CC: .word RtcGetResultCallback
-_020D60D0: .word 0x021D5538
-
- arm_func_start RTC_GetDateAsync
-RTC_GetDateAsync: ; 0x020D60D4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl OS_DisableInterrupts
- ldr r1, _020D6148 ; =0x021D5538
- ldr r2, [r1, #0x0]
- cmp r2, #0x0
- beq _020D6108
- bl OS_RestoreInterrupts
- mov r0, #0x1
- ldmia sp!, {r4-r6,lr}
- bx lr
-_020D6108:
- mov r2, #0x1
- str r2, [r1, #0x0]
- bl OS_RestoreInterrupts
- ldr r0, _020D6148 ; =0x021D5538
- mov r1, #0x0
- str r1, [r0, #0x14]
- str r1, [r0, #0x18]
- str r6, [r0, #0x8]
- str r5, [r0, #0x4]
- str r4, [r0, #0x10]
- bl RTCi_ReadRawDateAsync
-_020D6134: ; 0x020D6134
- cmp r0, #0x0
- movne r0, #0x0
- moveq r0, #0x3
- ldmia sp!, {r4-r6,lr}
- bx lr
- .balign 4
-_020D6148: .word 0x021D5538
-
- arm_func_start RTC_Init
-RTC_Init: ; 0x020D614C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r1, _020D61C8 ; =0x021D5534
- ldrh r0, [r1, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5,lr}
- bxne lr
- ldr r0, _020D61CC ; =0x021D5538
- mov r2, #0x0
- mov r3, #0x1
- strh r3, [r1, #0x0]
- str r2, [r0, #0x0]
- str r2, [r0, #0x4]
- str r2, [r0, #0x1c]
- str r2, [r0, #0x8]
- str r2, [r0, #0xc]
- bl PXI_Init
- mov r5, #0x5
- mov r4, #0x1
-_020D619C:
- mov r0, r5
- mov r1, r4
- bl PXI_IsCallbackReady
-_020D61A8: ; 0x020D61A8
- cmp r0, #0x0
- beq _020D619C
- ldr r1, _020D61D0 ; =RtcCommonCallback
- mov r0, #0x5
- bl PXI_SetFifoRecvCallback
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020D61C8: .word 0x021D5534
-_020D61CC: .word 0x021D5538
-_020D61D0: .word RtcCommonCallback
-
- arm_func_start FUN_020D61D4
-FUN_020D61D4: ; 0x020D61D4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r0, r0, lsl #0x8
- and r1, r0, #0x7f00
- mov r0, #0x5
- mov r2, #0x0
- bl PXI_SendWordByFifo
-_020D61F0: ; 0x020D61F0
- cmp r0, #0x0
- movge r0, #0x1
- movlt r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start RTCi_WriteRawStatus2Async
-RTCi_WriteRawStatus2Async:
- ldr ip, _020D6214 ; =FUN_020D61D4
- mov r0, #0x27
- bx r12
- .balign 4
-_020D6214: .word FUN_020D61D4
-
- arm_func_start RTCi_ReadRawTimeAsync
-RTCi_ReadRawTimeAsync:
- ldr ip, _020D6224 ; =FUN_020D61D4
- mov r0, #0x12
- bx r12
- .balign 4
-_020D6224: .word FUN_020D61D4
-
- arm_func_start RTCi_ReadRawDateAsync
-RTCi_ReadRawDateAsync:
- ldr ip, _020D6234 ; =FUN_020D61D4
- mov r0, #0x11
- bx r12
- .balign 4
-_020D6234: .word FUN_020D61D4
-
- arm_func_start RTCi_ReadRawDateTimeAsync
-RTCi_ReadRawDateTimeAsync:
- ldr ip, _020D6244 ; =FUN_020D61D4
- mov r0, #0x10
- bx r12
- .balign 4
-_020D6244: .word FUN_020D61D4
-
- arm_func_start RTC_GetDayOfWeek
-RTC_GetDayOfWeek: ; 0x020D6248
- stmdb sp!, {r4-r6,lr}
- ldr r1, [r0, #0x4]
- ldr r2, [r0, #0x0]
- sub r3, r1, #0x2
- cmp r3, #0x1
- add lr, r2, #0x7d0
- ldr r4, _020D630C ; =0x51EB851F
- sublt lr, lr, #0x1
- ldr r12, [r0, #0x8]
- smull r0, r2, r4, lr
- addlt r3, r3, #0xc
- mov r1, #0x1a
- mul r0, r3, r1
- smull r1, r3, r4, lr
- ldr r5, _020D6310 ; =0x66666667
- sub r0, r0, #0x2
- smull r4, r1, r5, r0
- mov r4, lr, lsr #0x1f
- mov r2, r2, asr #0x5
- mov r3, r3, asr #0x5
- add r3, r4, r3
- ldr r5, _020D6314 ; =0x00000064
- add r2, r4, r2
- smull r2, r4, r5, r2
- sub r2, lr, r2
- mov r1, r1, asr #0x2
- mov r0, r0, lsr #0x1f
- add r1, r0, r1
- mov r4, r2, asr #0x1
- add r0, r12, r1
- add r1, r2, r4, lsr #0x1e
- add r2, r2, r0
- mov r6, r3, asr #0x1
- add r0, r3, r6, lsr #0x1e
- add r1, r2, r1, asr #0x2
- add r1, r1, r0, asr #0x2
- mov r0, #0x5
- mla r4, r3, r0, r1
- ldr r3, _020D6318 ; =0x92492493
- mov r1, r4, lsr #0x1f
- smull r2, r0, r3, r4
- add r0, r4, r0
- mov r0, r0, asr #0x2
- ldr r2, _020D631C ; =0x00000007
- add r0, r1, r0
- smull r0, r1, r2, r0
- sub r0, r4, r0
- ldmia sp!, {r4-r6,lr}
- bx lr
- .balign 4
-_020D630C: .word 0x51EB851F
-_020D6310: .word 0x66666667
-_020D6314: .word 0x00000064
-_020D6318: .word 0x92492493
-_020D631C: .word 0x00000007
-
- arm_func_start RTC_ConvertSecondToDateTime
-RTC_ConvertSecondToDateTime: ; 0x020D6320
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r2
- mov r12, #0x0
- mov r4, r3
- subs r2, r5, r12
- sbcs r2, r4, r12
- mov r7, r0
- mov r6, r1
- movlt r5, r12
- movlt r4, r12
- blt _020D6364
- ldr r1, _020D63B0 ; =0xBC19137F
- subs r0, r1, r5
- sbcs r0, r12, r4
- movlt r5, r1
- movlt r4, r12
-_020D6364:
- ldr r2, _020D63B4 ; =0x00015180
- mov r0, r5
- mov r1, r4
- mov r3, #0x0
- bl _ll_mod
- mov r1, r0
- mov r0, r6
- bl RTCi_ConvertSecondToTime
- ldr r2, _020D63B4 ; =0x00015180
- mov r0, r5
- mov r1, r4
- mov r3, #0x0
- bl _ll_sdiv
- mov r1, r0
- mov r0, r7
- bl RTC_ConvertDayToDate
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020D63B0: .word 0xBC19137F
-_020D63B4: .word 0x00015180
-
- arm_func_start RTCi_ConvertSecondToTime
-RTCi_ConvertSecondToTime: ; 0x020D63B8
- stmdb sp!, {r4-r6,lr}
- ldr r2, _020D6448 ; =0x0001517F
- cmp r1, #0x0
- movlt r1, #0x0
- cmp r1, r2
- ldr ip, _020D644C ; =0x88888889
- movgt r1, r2
- smull r2, r3, r12, r1
- smull r2, lr, r12, r1
- ldr r5, _020D6450 ; =0x91A2B3C5
- add r3, r1, r3
- smull r4, r2, r5, r1
- mov r5, r1, lsr #0x1f
- mov r3, r3, asr #0x5
- add r3, r5, r3
- smull r4, r6, r12, r3
- add lr, r1, lr
- mov lr, lr, asr #0x5
- add r6, r3, r6
- add r2, r1, r2
- ldr r4, _020D6454 ; =0x0000003C
- add lr, r5, lr
- smull r12, lr, r4, lr
- sub lr, r1, r12
- mov r2, r2, asr #0xb
- mov r6, r6, asr #0x5
- mov r1, r3, lsr #0x1f
- add r6, r1, r6
- smull r1, r12, r4, r6
- str lr, [r0, #0x8]
- sub r6, r3, r1
- str r6, [r0, #0x4]
- add r2, r5, r2
- str r2, [r0, #0x0]
- ldmia sp!, {r4-r6,lr}
- bx lr
- .balign 4
-_020D6448: .word 0x0001517F
-_020D644C: .word 0x88888889
-_020D6450: .word 0x91A2B3C5
-_020D6454: .word 0x0000003C
-
- arm_func_start RTC_ConvertDayToDate
-RTC_ConvertDayToDate: ; 0x020D6458
- stmdb sp!, {r4,lr}
- ldr r2, _020D6560 ; =0x00008EAC
- cmp r1, #0x0
- movlt r1, #0x0
- cmp r1, r2
- movgt r1, r2
- ldr r3, _020D6564 ; =0x92492493
- add lr, r1, #0x6
- smull r2, r4, r3, lr
- add r4, lr, r4
- mov r4, r4, asr #0x2
- mov r2, lr, lsr #0x1f
- ldr ip, _020D6568 ; =0x00000007
- add r4, r2, r4
- smull r2, r3, r12, r4
- sub r4, lr, r2
- ldr r2, _020D656C ; =0x0000016D
- ldr r3, _020D6570 ; =0x0000016E
- str r4, [r0, #0xc]
- mov lr, #0x0
-_020D64A8:
- ands r12, lr, #0x3
- moveq r12, r3
- movne r12, r2
- mov r4, r1
- subs r1, r1, r12
- movmi r1, r4
- bmi _020D64D0
- add lr, lr, #0x1
- cmp lr, #0x63
- blo _020D64A8
-_020D64D0:
- ldr r2, _020D656C ; =0x0000016D
- str lr, [r0, #0x0]
- cmp r1, r2
- movgt r1, r2
- ands r2, lr, #0x3
- bne _020D6518
- cmp r1, #0x3c
- bge _020D6514
- cmp r1, #0x1f
- movlt r2, #0x1
- subge r1, r1, #0x1f
- movge r2, #0x2
- str r2, [r0, #0x4]
- add r1, r1, #0x1
- str r1, [r0, #0x8]
- ldmia sp!, {r4,lr}
- bx lr
-_020D6514:
- sub r1, r1, #0x1
-_020D6518:
- ldr r3, _020D6574 ; =0x02106A20
- mov r4, #0xb
-_020D6520:
- ldr r2, [r3, r4, lsl #0x2]
- mov r12, r4, lsl #0x2
- cmp r1, r2
- blt _020D6550
- add r2, r4, #0x1
- str r2, [r0, #0x4]
- ldr r2, [r3, r12]
- sub r1, r1, r2
- add r1, r1, #0x1
- str r1, [r0, #0x8]
- ldmia sp!, {r4,lr}
- bx lr
-_020D6550:
- subs r4, r4, #0x1
- bpl _020D6520
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020D6560: .word 0x00008EAC
-_020D6564: .word 0x92492493
-_020D6568: .word 0x00000007
-_020D656C: .word 0x0000016D
-_020D6570: .word 0x0000016E
-_020D6574: .word 0x02106A20
-
- arm_func_start RTC_ConvertDateTimeToSecond
-RTC_ConvertDateTimeToSecond: ; 0x020D6578
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- bl RTC_ConvertDateToDay
- mov r4, r0
- mvn r0, #0x0
- cmp r4, r0
- addeq sp, sp, #0x4
- moveq r1, r0
- ldmeqia sp!, {r4-r5,lr}
- bxeq lr
- mov r0, r5
- bl RTCi_ConvertTimeToSecond
- mvn r2, #0x0
- cmp r0, r2
- moveq r1, r2
- beq _020D65DC
- ldr r1, _020D65EC ; =0x00015180
- mov r2, #0x0
- umull r12, r3, r4, r1
- mla r3, r4, r2, r3
- mov r2, r4, asr #0x1f
- mla r3, r2, r1, r3
- adds r2, r0, r12
- adc r1, r3, r0, asr #0x1f
-_020D65DC:
- mov r0, r2
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020D65EC: .word 0x00015180
-
- arm_func_start RTCi_ConvertTimeToSecond
-RTCi_ConvertTimeToSecond: ; 0x020D65F0
- ldr r3, [r0, #0x4]
- ldr r2, [r0, #0x0]
- mov r1, #0x3c
- mla r3, r2, r1, r3
- ldr r0, [r0, #0x8]
- mla r0, r3, r1, r0
- bx lr
-
- arm_func_start RTC_ConvertDateToDay
-RTC_ConvertDateToDay: ; 0x020D660C
- ldr r3, [r0, #0x0]
- cmp r3, #0x64
- bhs _020D665C
- ldr r2, [r0, #0x4]
- cmp r2, #0x1
- blo _020D665C
- cmp r2, #0xc
- bhi _020D665C
- ldr r1, [r0, #0x8]
- cmp r1, #0x1
- blo _020D665C
- cmp r1, #0x1f
- bhi _020D665C
- ldr r0, [r0, #0xc]
- cmp r0, #0x7
- bge _020D665C
- cmp r2, #0x1
- blo _020D665C
- cmp r2, #0xc
- bls _020D6664
-_020D665C:
- mvn r0, #0x0
- bx lr
-_020D6664:
- ldr r0, _020D6698 ; =0x02106A1C
- sub r1, r1, #0x1
- ldr r0, [r0, r2, lsl #0x2]
- cmp r2, #0x3
- add r2, r1, r0
- blo _020D6684
- ands r0, r3, #0x3
- addeq r2, r2, #0x1
-_020D6684:
- ldr r0, _020D669C ; =0x0000016D
- add r1, r3, #0x3
- mla r0, r3, r0, r2
- add r0, r0, r1, lsr #0x2
- bx lr
- .balign 4
-_020D6698: .word 0x02106A1C
-_020D669C: .word 0x0000016D