summaryrefslogtreecommitdiff
path: root/arm7/asm/RTC_external.s
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-07-27 10:22:09 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-07-27 10:22:09 -0400
commit8a3102ca979fe327001be6fa00a42fea0120ce6c (patch)
treef7602dfa72569e996ac5fe77ff1ff6a1c4f7e61c /arm7/asm/RTC_external.s
parent3bf0b69ed022f38ed9d325b07d03888f57a69e3e (diff)
parent8e1946da03f96b5696d3f8f248a2b675ba80d594 (diff)
Merge branch 'master' of github.com:pret/pokediamond into pikalax_work
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