summaryrefslogtreecommitdiff
path: root/arm7/asm/RTC_external.s
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-07-25 21:54:58 +0100
committerred031000 <rubenru09@aol.com>2020-07-25 21:55:20 +0100
commit23873ed88f9920db6ed463fa02157686264369bd (patch)
tree6bc79315b58a1b6045ab43f9bf8cde27ce646618 /arm7/asm/RTC_external.s
parent4f8385ac24e8904662af24bbc0d81317c8ff1ea6 (diff)
split arm7 NVRAM and some RTC
Diffstat (limited to 'arm7/asm/RTC_external.s')
-rw-r--r--arm7/asm/RTC_external.s75
1 files changed, 75 insertions, 0 deletions
diff --git a/arm7/asm/RTC_external.s b/arm7/asm/RTC_external.s
new file mode 100644
index 00000000..2b45b9e3
--- /dev/null
+++ b/arm7/asm/RTC_external.s
@@ -0,0 +1,75 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _0380A210
+_0380A210: ;0x0380A210
+ .space 0x0380A3F0 - 0x0380A210
+
+ .section .text
+
+ 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