summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm7/arm7.lsf1
-rw-r--r--arm7/asm/RTC_external.s673
-rw-r--r--arm7/asm/RTC_unk_03805064.s665
-rw-r--r--arm7/global.inc5
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/modules/62/asm/module_62.s14
-rw-r--r--arm9/modules/62/src/module_62_sinit.c13
7 files changed, 680 insertions, 692 deletions
diff --git a/arm7/arm7.lsf b/arm7/arm7.lsf
index 7be05a3a..a1911846 100644
--- a/arm7/arm7.lsf
+++ b/arm7/arm7.lsf
@@ -70,7 +70,6 @@ Autoload WRAM
Object CTRDG.o
Object CTRDG_sp.o
Object NVRAM.o
- Object RTC_unk_03805064.o
Object RTC_external.o
Object wram2.o
Object wram_bss.o
diff --git a/arm7/asm/RTC_external.s b/arm7/asm/RTC_external.s
index 2b45b9e3..6dc893cb 100644
--- a/arm7/asm/RTC_external.s
+++ b/arm7/asm/RTC_external.s
@@ -3,12 +3,671 @@
.section .bss
+ .global _0380A038
+_0380A038: ;0x0380A038
+ .space 0x0380A03C - 0x0380A038
+
+ .global _0380A03C
+_0380A03C: ;0x0380A03C
+ .space 0x0380A05C - 0x0380A03C
+
+ .global _0380A05C
+_0380A05C: ;0x0380A05C
+ .space 0x0380A06C - 0x0380A05C
+
+ .global _0380A06C
+_0380A06C: ;0x0380A06C
+ .space 0x0380A13C - 0x0380A06C
+
+ .global _0380A13C
+_0380A13C: ;0x0380A13C
+ .space 0x0380A210 - 0x0380A13C
+
.global _0380A210
_0380A210: ;0x0380A210
.space 0x0380A3F0 - 0x0380A210
.section .text
+ arm_func_start RtcBCD2HEX
+RtcBCD2HEX: ;@ 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 RtcGetDayOfWeek
+RtcGetDayOfWeek: ;@ 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 RtcInitialize
+RtcInitialize: ;@ 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 RtcBCD2HEX
+ mov r4, r0
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ ldr r0, [r0]
+ mov r0, r0, lsl #19
+ mov r0, r0, lsr #27
+ bl RtcBCD2HEX
+ mov r5, r0
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ ldr r0, [r0]
+ mov r0, r0, lsl #10
+ mov r0, r0, lsr #26
+ bl RtcBCD2HEX
+ mov r2, r0
+ add r0, r4, #2000 ;@ 0x7d0
+ mov r1, r5
+ bl RtcGetDayOfWeek
+ 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 RtcAlarmIntr
+RtcAlarmIntr: ;@ 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 RtcReturnResult
+_03805310:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start RtcThread
+RtcThread: ;@ 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 RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_038054DC:
+ mov r0, r6
+ bl RTC_ReadDateTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_038054F8:
+ mov r0, r6
+ bl RTC_ReadDate
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #4]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_03805514:
+ add r0, r6, #4
+ bl RTC_ReadTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #8]
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_03805554:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, sl
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_0380558C:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, fp
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_038055C4:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #12]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_038055D8:
+ mov r0, r6
+ bl RTC_ReadStatus1
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #16]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_038055F4:
+ add r0, r6, #2
+ bl RTC_ReadStatus2
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #20]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_03805610:
+ add r0, r6, #4
+ bl RTC_ReadAdjust
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #24]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_0380562C:
+ add r0, r6, #4
+ bl RTC_ReadFree
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #28]
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_03805648:
+ mov r0, r6
+ bl RTC_WriteDateTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #32]
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_03805688:
+ add r0, r6, #4
+ bl RTC_WriteTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #40] ;@ 0x28
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_038056C8:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #44] ;@ 0x2c
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_03805700:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #48] ;@ 0x30
+ mov r1, r7
+ bl RtcReturnResult
+ 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 RtcReturnResult
+ b _038053D4
+_03805738:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #52] ;@ 0x34
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_0380574C:
+ mov r0, r6
+ bl RTC_WriteStatus1
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #56] ;@ 0x38
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_03805768:
+ add r0, r6, #2
+ bl RTC_WriteStatus2
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #60] ;@ 0x3c
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_03805784:
+ add r0, r6, #4
+ bl RTC_WriteAdjust
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #64] ;@ 0x40
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_038057A0:
+ add r0, r6, #4
+ bl RTC_WriteFree
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #68] ;@ 0x44
+ mov r1, r7
+ bl RtcReturnResult
+ b _038053D4
+_038057BC:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r1, r8
+ bl RtcReturnResult
+ b _038053D4
+_038057CC: .word 0x027FFDE8
+_038057D0: .word _0380A03C
+_038057D4: .word _0380A13C
+
+ arm_func_start RtcReturnResult
+RtcReturnResult: ;@ 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 RtcPxiCallback
+RtcPxiCallback: ;@ 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 RtcReturnResult
+ 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 RtcReturnResult
+ b _03805944
+_03805938:
+ mov r0, r4
+ mov r1, #1
+ bl RtcReturnResult
+_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}
@@ -22,13 +681,13 @@ RTC_Init: ;@ 0x03805954
strh r1, [r0]
ldr r0, _03805A2C ;@ =_0380A03C
str r1, [r0, #468] ;@ 0x1d4
- bl FUN_03805158
+ bl RtcInitialize
mov r1, #0
ldr r0, _03805A2C ;@ =_0380A03C
str r1, [r0, #468] ;@ 0x1d4
bl PXI_Init
mov r0, #5
- ldr r1, _03805A30 ;@ =FUN_03805818
+ ldr r1, _03805A30 ;@ =RtcPxiCallback
bl PXI_SetFifoRecvCallback
ldr r0, _03805A2C ;@ =_0380A03C
ldr r1, _03805A34 ;@ =_0380A05C
@@ -38,7 +697,7 @@ RTC_Init: ;@ 0x03805954
str r0, [sp]
str r4, [sp, #4]
ldr r0, _03805A38 ;@ =_0380A06C
- ldr r1, _03805A3C ;@ =FUN_0380531C
+ ldr r1, _03805A3C ;@ =RtcThread
mov r2, #0
ldr r3, _03805A40 ;@ =_0380A210
bl OS_CreateThread
@@ -55,7 +714,7 @@ RTC_Init: ;@ 0x03805954
bl OS_DisableInterrupts
mov r4, r0
mov r0, #128 ;@ 0x80
- ldr r1, _03805A44 ;@ =FUN_0380528C
+ ldr r1, _03805A44 ;@ =RtcAlarmIntr
bl OS_SetIrqFunction
mov r0, #128 ;@ 0x80
bl OS_EnableIrqMask
@@ -67,9 +726,9 @@ _03805A1C:
bx lr
_03805A28: .word _0380A038
_03805A2C: .word _0380A03C
-_03805A30: .word FUN_03805818
+_03805A30: .word RtcPxiCallback
_03805A34: .word _0380A05C
_03805A38: .word _0380A06C
-_03805A3C: .word FUN_0380531C
+_03805A3C: .word RtcThread
_03805A40: .word _0380A210
-_03805A44: .word FUN_0380528C
+_03805A44: .word RtcAlarmIntr
diff --git a/arm7/asm/RTC_unk_03805064.s b/arm7/asm/RTC_unk_03805064.s
deleted file mode 100644
index 095d0149..00000000
--- a/arm7/asm/RTC_unk_03805064.s
+++ /dev/null
@@ -1,665 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _0380A038
-_0380A038: ;0x0380A038
- .space 0x0380A03C - 0x0380A038
-
- .global _0380A03C
-_0380A03C: ;0x0380A03C
- .space 0x0380A05C - 0x0380A03C
-
- .global _0380A05C
-_0380A05C: ;0x0380A05C
- .space 0x0380A06C - 0x0380A05C
-
- .global _0380A06C
-_0380A06C: ;0x0380A06C
- .space 0x0380A13C - 0x0380A06C
-
- .global _0380A13C
-_0380A13C: ;0x0380A13C
- .space 0x0380A210 - 0x0380A13C
-
- .section .text
-
- 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
diff --git a/arm7/global.inc b/arm7/global.inc
index d0593646..ada127d5 100644
--- a/arm7/global.inc
+++ b/arm7/global.inc
@@ -255,7 +255,6 @@
.extern NVRAM_ExecuteProcess
.extern NVRAM_Init
.extern NVRAM_ReadDataBytes
-.extern RTC_Init
.extern RTC_ReadAdjust
.extern RTC_ReadAlarm1
.extern RTC_ReadAlarm2
@@ -277,10 +276,6 @@
.extern RTC_WriteStatus1
.extern RTC_WriteStatus2
.extern RTC_WriteTime
-.extern FUN_03805158
-.extern FUN_0380528C
-.extern FUN_0380531C
-.extern FUN_03805818
.extern WVR_Shutdown
.extern WVR_Init
.extern FUN_038073EC
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index e977dbf4..008ca0ad 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -933,6 +933,7 @@ Overlay MODULE_61
Overlay MODULE_62
{
After MODULE_08
+ Object module_62_sinit.o
Object module_62.o
}
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 33e331d3..ff70fe6d 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -3,17 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD62_0222D5C0
-MOD62_0222D5C0: ; 0x0222D5C0
- ldr r3, _0222D5C8 ; =HandleLoadOverlay
- ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bx r3
- .align 2, 0
-_0222D5C8: .word HandleLoadOverlay
-_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID
- thumb_func_end MOD62_0222D5C0
-
thumb_func_start MOD62_0222D5D0
MOD62_0222D5D0: ; 0x0222D5D0
add r3, r2, #0
@@ -7631,6 +7620,3 @@ MOD62_02231358: ; 0x02231358
.word 0x02, MOD62_0222F94C
.word 0x03, MOD62_0222F970
.word 0x04, MOD62_0222F980
-
- .section .sinit
- .word MOD62_0222D5C0
diff --git a/arm9/modules/62/src/module_62_sinit.c b/arm9/modules/62/src/module_62_sinit.c
new file mode 100644
index 00000000..db679e41
--- /dev/null
+++ b/arm9/modules/62/src/module_62_sinit.c
@@ -0,0 +1,13 @@
+#include "global.h"
+#include "poke_overlay.h"
+#include "FS_overlay.h"
+
+FS_EXTERN_OVERLAY(MODULE_08);
+
+THUMB_FUNC static void MOD62_0222D5C0(void)
+{
+ HandleLoadOverlay(FS_OVERLAY_ID(MODULE_08), 2);
+}
+
+#define NitroStaticInit MOD62_0222D5C0
+#include "sinit.h"