diff options
-rw-r--r-- | asm/CARD_arm9.s | 2 | ||||
-rw-r--r-- | asm/CTRDG_arm9.s | 6 | ||||
-rw-r--r-- | asm/DGT_arm9.s | 12 | ||||
-rw-r--r-- | asm/OS_arm9.s | 421 | ||||
-rw-r--r-- | asm/arm7_rom.s | 44 | ||||
-rw-r--r-- | asm/crt0.s | 1 | ||||
-rw-r--r-- | asm/secure.s | 4 | ||||
-rw-r--r-- | asm/unk_0208AC14.s | 8 | ||||
-rw-r--r-- | global.inc | 39 | ||||
-rw-r--r-- | undefined_syms.txt | 42 |
10 files changed, 329 insertions, 250 deletions
diff --git a/asm/CARD_arm9.s b/asm/CARD_arm9.s index 08129ab5..664e85f5 100644 --- a/asm/CARD_arm9.s +++ b/asm/CARD_arm9.s @@ -1635,7 +1635,7 @@ _020D7BEC: ; 0x020D7BEC mov r4, #0x0 _020D7C04: mov r0, r6 - blx FUN_020005F2 + blx SVC_WaitByLoop mov r0, r5 mov r1, r7 mov r2, r4 diff --git a/asm/CTRDG_arm9.s b/asm/CTRDG_arm9.s index 02592388..301ea233 100644 --- a/asm/CTRDG_arm9.s +++ b/asm/CTRDG_arm9.s @@ -333,7 +333,7 @@ _020DB520: ; 0x020DB520 mov r4, #0x0 _020DB53C: mov r0, r6 - blx FUN_020005F2 + blx SVC_WaitByLoop mov r0, r5 mov r1, r7 mov r2, r4 @@ -389,7 +389,7 @@ _020DB5DC: ; 0x020DB5DC ldr r0, [r6, #0x4] bl OS_RestoreInterrupts mov r0, r4 - blx FUN_020005F2 + blx SVC_WaitByLoop b _020DB5A8 _020DB600: ; 0x020DB600 add sp, sp, #0x4 @@ -872,7 +872,7 @@ _020DBBDC: mov r7, #0x1 _020DBC1C: mov r0, r7 - blx FUN_020005F2 + blx SVC_WaitByLoop ldrh r0, [r5, #0x0] cmp r0, #0x1 bne _020DBC1C diff --git a/asm/DGT_arm9.s b/asm/DGT_arm9.s index e5a4dac3..d5ef358d 100644 --- a/asm/DGT_arm9.s +++ b/asm/DGT_arm9.s @@ -258,8 +258,8 @@ _020D2A60: ldmia sp!, {r4-r11,lr} bx lr .balign 4 -_020D2B78: .word 0x02106900 -_020D2B7C: .word 0x02106840 +_020D2B78: .word Unk_02106900 ; = 0x02106900 +_020D2B7C: .word Unk_02106840 ; = 0x02106840 arm_func_start DGT_Hash1GetDigest_R DGT_Hash1GetDigest_R: ; 0x020D2B80 @@ -314,7 +314,7 @@ _020D2C04: ldmia sp!, {r4-r7,lr} bx lr .balign 4 -_020D2C40: .word 0x0210683C +_020D2C40: .word Unk_0210683C ; = 0x0210683C arm_func_start DGT_Hash1SetSource DGT_Hash1SetSource: ; 0x020D2C44 @@ -440,7 +440,7 @@ MATH_CalcHMACSHA1: ; 0x020D2D78 ldmia sp!, {r4-r8,lr} bx lr .balign 4 -_020D2E00: .word 0x02106A04 +_020D2E00: .word Unk_02106A04 ; = 0x02106A04 _020D2E04: .word MATH_SHA1Init _020D2E08: .word MATH_SHA1Update _020D2E0C: .word MATH_SHA1GetHash @@ -581,7 +581,7 @@ _020D2ED0: add sp, sp, #0x10 bx lr .balign 4 -_020D3008: .word 0x02106A00 +_020D3008: .word Unk_02106A00 ; = 0x02106A00 arm_func_start MATH_SHA1Update MATH_SHA1Update: ; 0x020D300C @@ -676,7 +676,7 @@ _020D313C: ldmia sp!, {r4-r8,lr} bx lr .balign 4 -_020D3164: .word 0x02106A00 +_020D3164: .word Unk_02106A00 ; = 0x02106A00 arm_func_start MATH_SHA1Init MATH_SHA1Init: ; 0x020D3168 diff --git a/asm/OS_arm9.s b/asm/OS_arm9.s index 5a013ac1..1323e376 100644 --- a/asm/OS_arm9.s +++ b/asm/OS_arm9.s @@ -1,32 +1,33 @@ .include "asm/macros.inc" .include "global.inc" + .extern isInitialized .section .dtcm .balign 16, 0 .global OS_IRQTable OS_IRQTable: ; 027E0000 ;10b6a0 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OSi_IrqTimer0 ; 020c9cbc - .word OSi_IrqTimer1 ; 020c9cac - .word OSi_IrqTimer2 ; 020c9c9c - .word OSi_IrqTimer3 ; 020c9c8c - .word OS_IrqDummy ; 020c9da8 - .word OSi_IrqDma0 ; 020c9cfc - .word OSi_IrqDma1 ; 020c9cec - .word OSi_IrqDma2 ; 020c9cdc - .word OSi_IrqDma3 ; 020c9ccc - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 - .word OS_IrqDummy ; 020c9da8 + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OSi_IrqTimer0 + .word OSi_IrqTimer1 + .word OSi_IrqTimer2 + .word OSi_IrqTimer3 + .word OS_IrqDummy + .word OSi_IrqDma0 + .word OSi_IrqDma1 + .word OSi_IrqDma2 + .word OSi_IrqDma3 + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy + .word OS_IrqDummy .balign 16, 0 .global OSi_IrqThreadQueue @@ -142,7 +143,7 @@ OSi_IrqCallback: ; 0x020C9D0C sub sp, sp, #0x4 mov r1, #0xc mul r4, r0, r1 - ldr r2, _020C9D94 ; =0x021D341C + ldr r2, _020C9D94 ; =OSi_IrqCallbackInfo ldr r3, _020C9D98 ; =0x02106818 mov r0, r0, lsl #0x1 ldr r1, [r2, r4] @@ -174,11 +175,11 @@ _020C9D54: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020C9D94: .word 0x021D341C -_020C9D98: .word 0x02106818 -_020C9D9C: .word 0x021D3424 -_020C9DA0: .word 0x027E0000 -_020C9DA4: .word 0x021D3420 +_020C9D94: .word OSi_IrqCallbackInfo +_020C9D98: .word OSi_IrqCallbackInfoIndex +_020C9D9C: .word OSi_IrqCallbackInfo + 8 +_020C9DA0: .word SDK_AUTOLOAD_DTCM_START +_020C9DA4: .word OSi_IrqCallbackInfo + 4 arm_func_start OS_IrqDummy OS_IrqDummy: ; 0x020C9DA8 @@ -294,16 +295,16 @@ OSi_EnterTimerCallback: ; 0x020C9EC8 ldmia sp!, {r4,lr} bx lr .balign 4 -_020C9F08: .word 0x021D344C -_020C9F0C: .word 0x021D3454 -_020C9F10: .word 0x021D3450 +_020C9F08: .word OSi_IrqCallbackInfo+0x30 +_020C9F0C: .word OSi_IrqCallbackInfo+0x38 +_020C9F10: .word OSi_IrqCallbackInfo+0x34 arm_func_start OSi_EnterDmaCallback OSi_EnterDmaCallback: ; 0x020C9F14 stmdb sp!, {r4-r6,lr} mov r3, #0xc mul r6, r0, r3 - ldr ip, _020C9F54 ; =0x021D341C + ldr ip, _020C9F54 ; =OSi_IrqCallbackInfo add r4, r0, #0x8 mov r5, #0x1 mov r0, r5, lsl r4 @@ -317,9 +318,9 @@ OSi_EnterDmaCallback: ; 0x020C9F14 ldmia sp!, {r4-r6,lr} bx lr .balign 4 -_020C9F54: .word 0x021D341C -_020C9F58: .word 0x021D3424 -_020C9F5C: .word 0x021D3420 +_020C9F54: .word OSi_IrqCallbackInfo +_020C9F58: .word OSi_IrqCallbackInfo + 8 +_020C9F5C: .word OSi_IrqCallbackInfo + 4 arm_func_start OS_GetIrqFunction OS_GetIrqFunction: ; 0x020C9F60 @@ -335,7 +336,7 @@ _020C9F68: sub r1, r3, #0x8 mov r0, #0xc mul r2, r1, r0 - ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, _020C9FE8 ; =OSi_IrqCallbackInfo ldr r0, [r0, r2] bx lr _020C9F98: @@ -346,7 +347,7 @@ _020C9F98: add r1, r3, #0x1 mov r0, #0xc mul r2, r1, r0 - ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, _020C9FE8 ; =OSi_IrqCallbackInfo ldr r0, [r0, r2] bx lr _020C9FC0: @@ -362,14 +363,14 @@ _020C9FC8: bx lr .balign 4 _020C9FE4: .word 0x027E0000 -_020C9FE8: .word 0x021D341C +_020C9FE8: .word OSi_IrqCallbackInfo arm_func_start OS_SetIrqFunction OS_SetIrqFunction: ; 0x020C9FEC stmdb sp!, {r4-r8,lr} mov r8, #0x0 ldr lr, _020CA074 ; =0x027E0000 - ldr r5, _020CA078 ; =0x021D341C + ldr r5, _020CA078 ; =OSi_IrqCallbackInfo mov r6, r8 mov r12, r8 mov r3, #0x1 @@ -407,7 +408,7 @@ _020CA05C: bx lr .balign 4 _020CA074: .word 0x027E0000 -_020CA078: .word 0x021D341C +_020CA078: .word OSi_IrqCallbackInfo arm_func_start OS_InitIrqTable OS_InitIrqTable: ; 0x020CA07C @@ -687,7 +688,7 @@ FUN_020CA358: ; 0x020CA358 mov r4, #0x400 _020CA380: mov r0, r4 - blx FUN_020005F2 + blx SVC_WaitByLoop mov r0, r8 mov r1, r7 mov r2, r6 @@ -702,7 +703,7 @@ _020CA380: OS_InitLock: ; 0x020CA3AC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r0, _020CA484 ; =0x021D347C + ldr r0, _020CA484 ; =isInitialized ldr r1, [r0, #0x0] cmp r1, #0x0 addne sp, sp, #0x4 @@ -722,7 +723,7 @@ OS_InitLock: ; 0x020CA3AC mov r4, #0x400 _020CA3FC: mov r0, r4 - blx FUN_020005F2 + blx SVC_WaitByLoop ldrh r0, [r5, #0x6] cmp r0, #0x0 bne _020CA3FC @@ -757,7 +758,7 @@ _020CA410: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CA484: .word 0x021D347C +_020CA484: .word isInitialized _020CA488: .word 0x027FFFF0 _020CA48C: .word 0x027FFFB0 _020CA490: .word 0x027FFFB4 @@ -1517,13 +1518,13 @@ string_put_char: str r1, [r0, #0x4] bx lr - arm_func_start FUN_020CAED0 -FUN_020CAED0: ; 0x020CAED0 - ldr r0, _020CAEDC ; =0x021D3494 + arm_func_start OS_IsThreadAvailable +OS_IsThreadAvailable: ; 0x020CAED0 + ldr r0, _020CAEDC ; =OSi_IsThreadInitialized ldr r0, [r0, #0x0] bx lr .balign 4 -_020CAEDC: .word 0x021D3494 +_020CAEDC: .word OSi_IsThreadInitialized arm_func_start OS_SetThreadDestructor OS_SetThreadDestructor: @@ -1534,7 +1535,7 @@ OS_SetThreadDestructor: OS_EnableScheduler: ; 0x020CAEE8 stmdb sp!, {r4,lr} bl OS_DisableInterrupts - ldr r1, _020CAF1C ; =0x021D3484 + ldr r1, _020CAF1C ; =OSi_RescheduleCount mov r4, #0x0 ldr r3, [r1, #0x0] cmp r3, #0x0 @@ -1546,13 +1547,13 @@ OS_EnableScheduler: ; 0x020CAEE8 ldmia sp!, {r4,lr} bx lr .balign 4 -_020CAF1C: .word 0x021D3484 +_020CAF1C: .word OSi_RescheduleCount arm_func_start OS_DisableScheduler OS_DisableScheduler: ; 0x020CAF20 stmdb sp!, {r4,lr} bl OS_DisableInterrupts - ldr r2, _020CAF54 ; =0x021D3484 + ldr r2, _020CAF54 ; =OSi_RescheduleCount mvn r1, #0x0 ldr r3, [r2, #0x0] cmp r3, r1 @@ -1564,7 +1565,7 @@ OS_DisableScheduler: ; 0x020CAF20 ldmia sp!, {r4,lr} bx lr .balign 4 -_020CAF54: .word 0x021D3484 +_020CAF54: .word OSi_RescheduleCount arm_func_start OSi_IdleThreadProc OSi_IdleThreadProc: ; 0x020CAF58 @@ -1581,7 +1582,7 @@ OS_SetSwitchThreadCallback: ; 0x020CAF6C sub sp, sp, #0x4 mov r5, r0 bl OS_DisableInterrupts - ldr r1, _020CAF9C ; =0x021D3498 + ldr r1, _020CAF9C ; =OSi_ThreadInfo ldr r4, [r1, #0xc] str r5, [r1, #0xc] bl OS_RestoreInterrupts @@ -1590,7 +1591,7 @@ OS_SetSwitchThreadCallback: ; 0x020CAF6C ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CAF9C: .word 0x021D3498 +_020CAF9C: .word OSi_ThreadInfo arm_func_start OSi_SleepAlarmCallback OSi_SleepAlarmCallback: ; 0x020CAFA0 @@ -1611,7 +1612,7 @@ OS_Sleep: ; 0x020CAFC0 mov r4, r0 add r0, sp, #0x8 bl OS_CreateAlarm - ldr r0, _020CB060 ; =0x021D3490 + ldr r0, _020CB060 ; =OSi_CurrentThreadPtr ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] str r0, [sp, #0x4] @@ -1649,7 +1650,7 @@ _020CB04C: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CB060: .word 0x021D3490 +_020CB060: .word OSi_CurrentThreadPtr _020CB064: .word 0x000082EA _020CB068: .word OSi_SleepAlarmCallback @@ -1661,7 +1662,7 @@ OS_GetThreadPriority: ; 0x020CB06C arm_func_start OS_SetThreadPriority OS_SetThreadPriority: ; 0x020CB074 stmdb sp!, {r4-r8,lr} - ldr r2, _020CB120 ; =0x021D3498 + ldr r2, _020CB120 ; =OSi_ThreadInfo mov r6, r0 mov r5, r1 ldr r8, [r2, #0x8] @@ -1680,7 +1681,7 @@ _020CB0A0: _020CB0B0: cmp r8, #0x0 beq _020CB0C4 - ldr r0, _020CB124 ; =0x021D34A8 + ldr r0, _020CB124 ; =OSi_IdleThread cmp r8, r0 bne _020CB0D8 _020CB0C4: @@ -1696,7 +1697,7 @@ _020CB0D8: beq _020CB10C cmp r7, #0x0 ldreq r1, [r6, #0x68] - ldreq r0, _020CB120 ; =0x021D3498 + ldreq r0, _020CB120 ; =OSi_ThreadInfo streq r1, [r0, #0x8] ldrne r0, [r6, #0x68] strne r0, [r7, #0x68] @@ -1711,19 +1712,19 @@ _020CB10C: ldmia sp!, {r4-r8,lr} bx lr .balign 4 -_020CB120: .word 0x021D3498 -_020CB124: .word 0x021D34A8 +_020CB120: .word OSi_ThreadInfo +_020CB124: .word OSi_IdleThread arm_func_start OS_YieldThread OS_YieldThread: ; 0x020CB128 stmdb sp!, {r4-r8,lr} - ldr r0, _020CB1E0 ; =0x021D3498 + ldr r0, _020CB1E0 ; =OSi_ThreadInfo mov r7, #0x0 mov r6, r7 mov r5, r7 ldr r8, [r0, #0x4] bl OS_DisableInterrupts - ldr r1, _020CB1E0 ; =0x021D3498 + ldr r1, _020CB1E0 ; =OSi_ThreadInfo mov r4, r0 ldr r2, [r1, #0x8] mov r0, r7 @@ -1754,7 +1755,7 @@ _020CB198: _020CB1A8: cmp r7, #0x0 ldreq r1, [r8, #0x68] - ldreq r0, _020CB1E0 ; =0x021D3498 + ldreq r0, _020CB1E0 ; =OSi_ThreadInfo streq r1, [r0, #0x8] ldrne r0, [r8, #0x68] strne r0, [r7, #0x68] @@ -1767,7 +1768,7 @@ _020CB1A8: ldmia sp!, {r4-r8,lr} bx lr .balign 4 -_020CB1E0: .word 0x021D3498 +_020CB1E0: .word OSi_ThreadInfo arm_func_start OS_RescheduleThread OS_RescheduleThread: ; 0x020CB1E4 @@ -1782,7 +1783,7 @@ OS_RescheduleThread: ; 0x020CB1E4 arm_func_start OS_SelectThread OS_SelectThread: ; 0x020CB204 - ldr r0, _020CB22C ; =0x021D3498 + ldr r0, _020CB22C ; =OSi_ThreadInfo ldr r0, [r0, #0x8] b _020CB214 _020CB210: @@ -1795,7 +1796,7 @@ _020CB214: bne _020CB210 bx lr .balign 4 -_020CB22C: .word 0x021D3498 +_020CB22C: .word OSi_ThreadInfo arm_func_start OS_WakeupThreadDirect OS_WakeupThreadDirect: ; 0x020CB230 @@ -1856,7 +1857,7 @@ OS_SleepThread: stmdb sp!, {r4-r6,lr} mov r6, r0 bl OS_DisableInterrupts - ldr r1, _020CB334 ; =0x021D3490 + ldr r1, _020CB334 ; =OSi_CurrentThreadPtr mov r5, r0 ldr r0, [r1, #0x0] cmp r6, #0x0 @@ -1875,7 +1876,7 @@ _020CB318: ldmia sp!, {r4-r6,lr} bx lr .balign 4 -_020CB334: .word 0x021D3490 +_020CB334: .word OSi_CurrentThreadPtr arm_func_start OS_IsThreadTerminated OS_IsThreadTerminated: ; 0x020CB338 @@ -1924,7 +1925,7 @@ OS_DestroyThread: ; 0x020CB3B4 sub sp, sp, #0x4 mov r5, r0 bl OS_DisableInterrupts - ldr r1, _020CB438 ; =0x021D3498 + ldr r1, _020CB438 ; =OSi_ThreadInfo mov r4, r0 ldr r0, [r1, #0x4] cmp r0, r5 @@ -1956,12 +1957,12 @@ _020CB404: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CB438: .word 0x021D3498 +_020CB438: .word OSi_ThreadInfo arm_func_start OSi_ExitThread_Destroy OSi_ExitThread_Destroy: ; 0x020CB43C stmdb sp!, {r4,lr} - ldr r0, _020CB498 ; =0x021D3490 + ldr r0, _020CB498 ; =OSi_CurrentThreadPtr ldr r0, [r0, #0x0] ldr r4, [r0, #0x0] bl OS_DisableScheduler @@ -1985,13 +1986,13 @@ _020CB46C: ldmia sp!, {r4,lr} bx lr .balign 4 -_020CB498: .word 0x021D3490 +_020CB498: .word OSi_CurrentThreadPtr arm_func_start OSi_ExitThread_Destroy2 OSi_ExitThread_Destroy2: ; 0x020CB49C stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020CB4DC ; =0x021D3490 + ldr r1, _020CB4DC ; =OSi_CurrentThreadPtr ldr r1, [r1, #0x0] ldr r3, [r1, #0x0] ldr r2, [r3, #0xb4] @@ -2007,13 +2008,13 @@ _020CB4CC: ldmia sp!, {lr} bx lr .balign 4 -_020CB4DC: .word 0x021D3490 +_020CB4DC: .word OSi_CurrentThreadPtr arm_func_start OSi_ExitThread_ArgSpecified OSi_ExitThread_ArgSpecified: ; 0x020CB4E0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r2, _020CB548 ; =0x021D3480 + ldr r2, _020CB548 ; =OSi_StackForDestructor mov r5, r0 ldr r2, [r2, #0x0] mov r4, r1 @@ -2039,7 +2040,7 @@ _020CB534: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CB548: .word 0x021D3480 +_020CB548: .word OSi_StackForDestructor _020CB54C: .word OSi_ExitThread_Destroy2 arm_func_start OS_ExitThread @@ -2047,7 +2048,7 @@ OS_ExitThread: ; 0x020CB550 stmdb sp!, {lr} sub sp, sp, #0x4 bl OS_DisableInterrupts - ldr r0, _020CB578 ; =0x021D3498 + ldr r0, _020CB578 ; =OSi_ThreadInfo mov r1, #0x0 ldr r0, [r0, #0x4] bl OSi_ExitThread_ArgSpecified @@ -2055,7 +2056,7 @@ OS_ExitThread: ; 0x020CB550 ldmia sp!, {lr} bx lr .balign 4 -_020CB578: .word 0x021D3498 +_020CB578: .word OSi_ThreadInfo arm_func_start OS_CreateThread OS_CreateThread: ; 0x020CB57C @@ -2131,7 +2132,7 @@ _020CB680: .word OS_ExitThread OS_InitThread: ; 0x020CB684 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 - ldr r3, _020CB7A4 ; =0x021D3494 + ldr r3, _020CB7A4 ; =OSi_IsThreadInitialized ldr r0, [r3, #0x0] cmp r0, #0x0 addne sp, sp, #0x8 @@ -2140,7 +2141,7 @@ OS_InitThread: ; 0x020CB684 ldr ip, _020CB7A8 ; =0x00000000 ldr r1, _020CB7AC ; =0x021D3568 mov lr, #0x0 - ldr r0, _020CB7B0 ; =0x021D3498 + ldr r0, _020CB7B0 ; =OSi_ThreadInfo mov r6, #0x1 mov r4, #0x10 str r1, [r0, #0x8] @@ -2160,7 +2161,7 @@ OS_InitThread: ; 0x020CB684 subgt r4, r0, r12 ldr r1, _020CB7B8 ; =0x027E0000 ldr r5, _020CB7C0 ; =0x021D349C - ldr r2, _020CB7C4 ; =0x021D3490 + ldr r2, _020CB7C4 ; =OSi_CurrentThreadPtr ldr r0, _020CB7BC ; =0x00000400 str r5, [r2, #0x0] ldr r2, _020CB7AC ; =0x021D3568 @@ -2175,7 +2176,7 @@ OS_InitThread: ; 0x020CB684 str r1, [r3, #-0x4] ldr r3, [r2, #0x90] ldr ip, _020CB7CC ; =0x7BF9DD5B - ldr r1, _020CB7B0 ; =0x021D3498 + ldr r1, _020CB7B0 ; =OSi_ThreadInfo str r12, [r3, #0x0] ldr r3, _020CB7D0 ; =0x027FFFA0 str r0, [r2, #0xa0] @@ -2187,13 +2188,13 @@ OS_InitThread: ; 0x020CB684 mov r2, #0xc8 str r2, [sp, #0x0] mov r12, #0x1f - ldr r0, _020CB7D4 ; =0x021D34A8 + ldr r0, _020CB7D4 ; =OSi_IdleThread ldr r1, _020CB7D8 ; =OSi_IdleThreadProc - ldr r3, _020CB7DC ; =0x021D36F0 + ldr r3, _020CB7DC ; =OSi_Initialized mov r2, #0x0 str r12, [sp, #0x4] bl OS_CreateThread - ldr r0, _020CB7D4 ; =0x021D34A8 + ldr r0, _020CB7D4 ; =OSi_IdleThread mov r2, #0x20 mov r1, #0x1 str r2, [r0, #0x70] @@ -2202,31 +2203,31 @@ OS_InitThread: ; 0x020CB684 ldmia sp!, {r4-r6,lr} bx lr .balign 4 -_020CB7A4: .word 0x021D3494 -_020CB7A8: .word 0x00000000 -_020CB7AC: .word 0x021D3568 -_020CB7B0: .word 0x021D3498 -_020CB7B4: .word 0x027E0080 -_020CB7B8: .word 0x027E0000 -_020CB7BC: .word 0x00000400 -_020CB7C0: .word 0x021D349C -_020CB7C4: .word 0x021D3490 +_020CB7A4: .word OSi_IsThreadInitialized +_020CB7A8: .word SDK_SYS_STACKSIZE +_020CB7AC: .word OSi_LauncherThread +_020CB7B0: .word OSi_ThreadInfo +_020CB7B4: .word SDK_SECTION_ARENA_DTCM_START +_020CB7B8: .word SDK_AUTOLOAD_DTCM_START +_020CB7BC: .word SDK_IRQ_STACKSIZE +_020CB7C0: .word OSi_ThreadInfo+4 +_020CB7C4: .word OSi_CurrentThreadPtr _020CB7C8: .word 0xFDDB597D _020CB7CC: .word 0x7BF9DD5B _020CB7D0: .word 0x027FFFA0 -_020CB7D4: .word 0x021D34A8 +_020CB7D4: .word OSi_IdleThread _020CB7D8: .word OSi_IdleThreadProc -_020CB7DC: .word 0x021D36F0 +_020CB7DC: .word OSi_IdleThreadStack+0xc8 arm_func_start OSi_RescheduleThread OSi_RescheduleThread: ; 0x020CB7E0 stmdb sp!, {r4-r6,lr} - ldr r0, _020CB8BC ; =0x021D3484 + ldr r0, _020CB8BC ; =OSi_RescheduleCount ldr r0, [r0, #0x0] cmp r0, #0x0 ldmneia sp!, {r4-r6,lr} bxne lr - ldr r4, _020CB8C0 ; =0x021D3498 + ldr r4, _020CB8C0 ; =OSi_ThreadInfo ldrh r0, [r4, #0x2] cmp r0, #0x0 bne _020CB814 @@ -2239,7 +2240,7 @@ _020CB814: ldmia sp!, {r4-r6,lr} bx lr _020CB824: - ldr r0, _020CB8C4 ; =0x021D3490 + ldr r0, _020CB8C4 ; =OSi_CurrentThreadPtr ldr r0, [r0, #0x0] ldr r6, [r0, #0x0] bl OS_SelectThread @@ -2275,21 +2276,21 @@ _020CB88C: mov r1, r5 blx r2 _020CB8A4: - ldr r1, _020CB8C0 ; =0x021D3498 + ldr r1, _020CB8C0 ; =OSi_ThreadInfo mov r0, r5 str r5, [r1, #0x4] bl OS_LoadContext ldmia sp!, {r4-r6,lr} bx lr .balign 4 -_020CB8BC: .word 0x021D3484 -_020CB8C0: .word 0x021D3498 -_020CB8C4: .word 0x021D3490 -_020CB8C8: .word 0x021D348C +_020CB8BC: .word OSi_RescheduleCount +_020CB8C0: .word OSi_ThreadInfo +_020CB8C4: .word OSi_CurrentThreadPtr +_020CB8C8: .word OSi_SystemCallbackInSwitchThread arm_func_start OSi_RemoveThreadFromList OSi_RemoveThreadFromList: ; 0x020CB8CC - ldr r1, _020CB910 ; =0x021D3498 + ldr r1, _020CB910 ; =OSi_ThreadInfo mov r2, #0x0 ldr r1, [r1, #0x8] b _020CB8E4 @@ -2304,19 +2305,19 @@ _020CB8E4: _020CB8F4: cmp r2, #0x0 ldreq r1, [r0, #0x68] - ldreq r0, _020CB910 ; =0x021D3498 + ldreq r0, _020CB910 ; =OSi_ThreadInfo streq r1, [r0, #0x8] ldrne r0, [r0, #0x68] strne r0, [r2, #0x68] bx lr .balign 4 -_020CB910: .word 0x021D3498 +_020CB910: .word OSi_ThreadInfo arm_func_start OSi_InsertThreadToList OSi_InsertThreadToList: ; 0x020CB914 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020CB978 ; =0x021D3498 + ldr r1, _020CB978 ; =OSi_ThreadInfo mov r12, #0x0 ldr r3, [r1, #0x8] mov lr, r3 @@ -2333,7 +2334,7 @@ _020CB938: blo _020CB930 _020CB950: cmp r12, #0x0 - ldreq r1, _020CB978 ; =0x021D3498 + ldreq r1, _020CB978 ; =OSi_ThreadInfo streq r3, [r0, #0x68] streq r0, [r1, #0x8] ldrne r1, [r12, #0x68] @@ -2343,7 +2344,7 @@ _020CB950: ldmia sp!, {lr} bx lr .balign 4 -_020CB978: .word 0x021D3498 +_020CB978: .word OSi_ThreadInfo arm_func_start OSi_RemoveMutexLinkFromQueue OSi_RemoveMutexLinkFromQueue: ; 0x020CB97C @@ -2444,13 +2445,13 @@ _020CBA8C: arm_func_start OSi_GetUnusedThreadId OSi_GetUnusedThreadId: ; 0x020CBAAC - ldr r1, _020CBAC0 ; =0x021D3488 + ldr r1, _020CBAC0 ; =OSi_ThreadIdCount ldr r0, [r1, #0x0] add r0, r0, #0x1 str r0, [r1, #0x0] bx lr .balign 4 -_020CBAC0: .word 0x021D3488 +_020CBAC0: .word OSi_ThreadIdCount arm_func_start OS_InitContext OS_InitContext: ; 0x020CBAC4 @@ -2775,7 +2776,7 @@ OS_TryLockMutex: ; 0x020CBEE4 mov r5, r0 bl OS_DisableInterrupts ldr r2, [r5, #0x8] - ldr r1, _020CBF54 ; =0x021D3498 + ldr r1, _020CBF54 ; =OSi_ThreadInfo mov r4, r0 cmp r2, #0x0 ldr r0, [r1, #0x4] @@ -2802,7 +2803,7 @@ _020CBF40: ldmia sp!, {r4-r6,lr} bx lr .balign 4 -_020CBF54: .word 0x021D3498 +_020CBF54: .word OSi_ThreadInfo arm_func_start OSi_UnlockAllMutex OSi_UnlockAllMutex: ; 0x020CBF58 @@ -2832,7 +2833,7 @@ OS_UnlockMutex: ; 0x020CBFA0 sub sp, sp, #0x4 mov r5, r0 bl OS_DisableInterrupts - ldr r1, _020CC00C ; =0x021D3498 + ldr r1, _020CC00C ; =OSi_ThreadInfo mov r4, r0 ldr r0, [r1, #0x4] ldr r1, [r5, #0x8] @@ -2857,7 +2858,7 @@ _020CBFF8: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CC00C: .word 0x021D3498 +_020CC00C: .word OSi_ThreadInfo arm_func_start OS_LockMutex OS_LockMutex: ; 0x020CC010 @@ -2865,7 +2866,7 @@ OS_LockMutex: ; 0x020CC010 sub sp, sp, #0x4 mov r5, r0 bl OS_DisableInterrupts - ldr r1, _020CC098 ; =0x021D3498 + ldr r1, _020CC098 ; =OSi_ThreadInfo mov r4, r0 ldr r7, [r1, #0x4] mov r6, #0x0 @@ -2899,7 +2900,7 @@ _020CC084: ldmia sp!, {r4-r7,lr} bx lr .balign 4 -_020CC098: .word 0x021D3498 +_020CC098: .word OSi_ThreadInfo arm_func_start OS_InitMutex OS_InitMutex: ; 0x020CC09C @@ -3137,7 +3138,7 @@ _020CC34C: ldmfd sp!, {lr} bx lr _020CC35C: - ldr r0, _020CC3F0 ; =0x021D36F4 + ldr r0, _020CC3F0 ; =OSi_MainExArenaEnabled ldr r0, [r0] cmp r0, #0x0 beq _020CC37C @@ -3209,7 +3210,7 @@ _020CC438: ldmfd sp!, {lr} bx lr _020CC448: - ldr r0, _020CC51C ; =0x021D36F4 + ldr r0, _020CC51C ; =OSi_MainExArenaEnabled ldr r0, [r0] cmp r0, #0x0 beq _020CC468 @@ -3270,7 +3271,7 @@ _020CC508: ldmia sp!, {lr} bx lr _020CC518: .word 0x023E0000 -_020CC51C: .word 0x021D36F4 +_020CC51C: .word OSi_MainExArenaEnabled _020CC520: .word 0x027E0000 _020CC524: .word 0x00000000 _020CC528: .word 0x00000400 @@ -3308,7 +3309,7 @@ OS_InitArenaEx: ; 0x020CC560 mov r1, r0 mov r0, #0x2 bl OS_SetArenaLo - ldr r0, _020CC5D4 ; =0x021D36F4 + ldr r0, _020CC5D4 ; =OSi_MainExArenaEnabled ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020CC5B8 @@ -3327,7 +3328,7 @@ _020CC5B8: ldmia sp!, {lr} bx lr .balign 4 -_020CC5D4: .word 0x021D36F4 +_020CC5D4: .word OSi_MainExArenaEnabled _020CC5D8: .word 0x0200002B _020CC5DC: .word 0x023E0021 @@ -3335,7 +3336,7 @@ _020CC5DC: .word 0x023E0021 OS_InitArena: ; 0x020CC5E0 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020CC6F4 ; =0x021D36F0 + ldr r1, _020CC6F4 ; =OSi_Initialized ldr r0, [r1, #0x0] cmp r0, #0x0 addne sp, sp, #0x4 @@ -3403,7 +3404,7 @@ _020CC61C: add sp, sp, #0x4 ldmfd sp!, {lr} bx lr -_020CC6F4: .word 0x021D36F0 +_020CC6F4: .word OSi_Initialized arm_func_start OS_FreeToHeap OS_FreeToHeap: ; 0x020CC6F8 @@ -3413,7 +3414,7 @@ OS_FreeToHeap: ; 0x020CC6F8 mov r5, r1 mov r4, r2 bl OS_DisableInterrupts - ldr r1, _020CC768 ; =0x021D36F8 + ldr r1, _020CC768 ; =OSi_HeapInfo mov r6, r0 ldr r0, [r1, r7, lsl #0x2] cmp r5, #0x0 @@ -3436,7 +3437,7 @@ OS_FreeToHeap: ; 0x020CC6F8 ldmia sp!, {r4-r7,lr} bx lr .balign 4 -_020CC768: .word 0x021D36F8 +_020CC768: .word OSi_HeapInfo arm_func_start OS_AllocFromHeap OS_AllocFromHeap: ; 0x020CC76C @@ -3446,7 +3447,7 @@ OS_AllocFromHeap: ; 0x020CC76C mov r5, r1 mov r7, r2 bl OS_DisableInterrupts - ldr r1, _020CC894 ; =0x021D36F8 + ldr r1, _020CC894 ; =OSi_HeapInfo mov r4, r0 ldr r1, [r1, r6, lsl #0x2] cmp r1, #0x0 @@ -3521,7 +3522,7 @@ _020CC86C: ldmia sp!, {r4-r7,lr} bx lr .balign 4 -_020CC894: .word 0x021D36F8 +_020CC894: .word OSi_HeapInfo arm_func_start DLInsert DLInsert: ; 0x020CC898 @@ -3646,7 +3647,7 @@ OS_SetProtectionRegion2: ; 0x020CC9F4 arm_func_start OSi_ExceptionHandler OSi_ExceptionHandler: ; 0x020CC9FC - ldr ip, _020CCA68 ; =0x021D3724 + ldr ip, _020CCA68 ; =OSi_DebuggerHandler ldr r12, [r12, #0x0] cmp r12, #0x0 movne lr, pc @@ -3666,7 +3667,7 @@ _020CCA38: bne _020CCA44 bl OSi_GetAndDisplayContext _020CCA44: - ldr ip, _020CCA68 ; =0x021D3724 + ldr ip, _020CCA68 ; =OSi_DebuggerHandler ldr r12, [r12, #0x0] cmp r12, #0x0 _020CCA50: @@ -3678,7 +3679,7 @@ _020CCA5C: ldmia sp!, {r0-r3,ip,lr} mov sp, ip bx lr -_020CCA68: .word 0x021D3724 +_020CCA68: .word OSi_DebuggerHandler _020CCA6C: .word 0x02000000 arm_func_start OSi_GetAndDisplayContext @@ -3691,7 +3692,7 @@ OSi_GetAndDisplayContext: ; 0x020CCA70 arm_func_start OSi_SetExContext OSi_SetExContext: ; 0x020CCA84 - ldr r1, _020CCB10 ; =0x021D3728 + ldr r1, _020CCB10 ; =OSi_ExContext mrs r2, cpsr str r2, [r1, #0x74] str r0, [r1, #0x6c] @@ -3727,13 +3728,13 @@ OSi_SetExContext: ; 0x020CCA84 msr cpsr_fsxc, r0 bx lr .balign 4 -_020CCB10: .word 0x021D3728 +_020CCB10: .word OSi_ExContext arm_func_start OSi_DisplayExContext OSi_DisplayExContext: ; 0x020CCB14 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020CCB70 ; =0x021D371C + ldr r0, _020CCB70 ; =OSi_UserExceptionHandler ldr r0, [r0, #0x0] cmp r0, #0x0 addeq sp, sp, #0x4 @@ -3744,21 +3745,21 @@ OSi_DisplayExContext: ; 0x020CCB14 msr cpsr_fsxc, r1 mov sp, r0 bl OS_EnableProtectionUnit - ldr r1, _020CCB78 ; =0x021D3720 - ldr r0, _020CCB70 ; =0x021D371C + ldr r1, _020CCB78 ; =OSi_UserExceptionHandlerArg + ldr r0, _020CCB70 ; =OSi_UserExceptionHandler ldr r1, [r1, #0x0] ldr r2, [r0, #0x0] - ldr r0, _020CCB7C ; =0x021D3728 + ldr r0, _020CCB7C ; =OSi_ExContext blx r2 bl OS_DisableProtectionUnit add sp, sp, #0x4 ldmia sp!, {lr} bx lr .balign 4 -_020CCB70: .word 0x021D371C +_020CCB70: .word OSi_UserExceptionHandler _020CCB74: .word 0x0000009F -_020CCB78: .word 0x021D3720 -_020CCB7C: .word 0x021D3728 +_020CCB78: .word OSi_UserExceptionHandlerArg +_020CCB7C: .word OSi_ExContext arm_func_start OS_InitException OS_InitException: ; 0x020CCB80 @@ -3767,15 +3768,15 @@ OS_InitException: ; 0x020CCB80 cmp r1, #0x2600000 blo _020CCBA0 cmp r1, #0x2800000 - ldrlo r0, _020CCBE0 ; =0x021D3724 + ldrlo r0, _020CCBE0 ; =OSi_DebuggerHandler strcc r1, [r0, #0x0] blo _020CCBAC _020CCBA0: - ldr r0, _020CCBE0 ; =0x021D3724 + ldr r0, _020CCBE0 ; =OSi_DebuggerHandler mov r1, #0x0 str r1, [r0, #0x0] _020CCBAC: - ldr r0, _020CCBE0 ; =0x021D3724 + ldr r0, _020CCBE0 ; =OSi_DebuggerHandler ldr r0, [r0, #0x0] cmp r0, #0x0 ldreq r2, _020CCBE4 ; =OSi_ExceptionHandler @@ -3783,27 +3784,27 @@ _020CCBAC: ldreq r0, _020CCBE8 ; =0x027E3000 streq r2, [r1, #0x0] streq r2, [r0, #0xfdc] - ldr r0, _020CCBEC ; =0x021D371C + ldr r0, _020CCBEC ; =OSi_UserExceptionHandler mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _020CCBDC: .word 0x027FFD9C -_020CCBE0: .word 0x021D3724 +_020CCBE0: .word OSi_DebuggerHandler _020CCBE4: .word OSi_ExceptionHandler _020CCBE8: .word 0x027E3000 -_020CCBEC: .word 0x021D371C +_020CCBEC: .word OSi_UserExceptionHandler arm_func_start OSi_SetTimerReserved OSi_SetTimerReserved: ; 0x020CCBF0 - ldr r1, _020CCC08 ; =0x021D37A8 + ldr r1, _020CCC08 ; =OSi_TimerReserved mov r2, #0x1 ldrh r3, [r1, #0x0] orr r0, r3, r2, lsl r0 strh r0, [r1, #0x0] bx lr .balign 4 -_020CCC08: .word 0x021D37A8 +_020CCC08: .word OSi_TimerReserved arm_func_start OS_GetTickLo OS_GetTickLo: ; 0x020CCC0C @@ -3819,7 +3820,7 @@ OS_GetTick: ; 0x020CCC1C sub sp, sp, #0xc bl OS_DisableInterrupts ldr r1, _020CCCBC ; =0x04000100 - ldr r3, _020CCCC0 ; =0x021D37B4 + ldr r3, _020CCCC0 ; =OSi_TickCounter ldrh r12, [r1, #0x0] ldr r2, _020CCCC4 ; =0x0000FFFF mvn r1, #0x0 @@ -3858,7 +3859,7 @@ _020CCC90: bx lr .balign 4 _020CCCBC: .word 0x04000100 -_020CCCC0: .word 0x021D37B4 +_020CCCC0: .word OSi_TickCounter _020CCCC4: .word 0x0000FFFF _020CCCC8: .word 0x04000214 @@ -3866,8 +3867,8 @@ _020CCCC8: .word 0x04000214 OSi_CountUpTick: ; 0x020CCCCC stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r2, _020CCD40 ; =0x021D37B4 - ldr r1, _020CCD44 ; =0x021D37B0 + ldr r2, _020CCD40 ; =OSi_TickCounter + ldr r1, _020CCD44 ; =OSi_NeedResetTimer ldr r12, [r2, #0x0] mov r0, #0x1 ldr r3, [r2, #0x4] @@ -3895,25 +3896,25 @@ _020CCD24: ldmia sp!, {lr} bx lr .balign 4 -_020CCD40: .word 0x021D37B4 -_020CCD44: .word 0x021D37B0 +_020CCD40: .word OSi_TickCounter +_020CCD44: .word OSi_NeedResetTimer _020CCD48: .word 0x04000102 _020CCD4C: .word 0x04000100 _020CCD50: .word OSi_CountUpTick arm_func_start OS_IsTickAvailable OS_IsTickAvailable: ; 0x020CCD54 - ldr r0, _020CCD60 ; =0x021D37AC + ldr r0, _020CCD60 ; =OSi_UseTick ldrh r0, [r0, #0x0] bx lr .balign 4 -_020CCD60: .word 0x021D37AC +_020CCD60: .word OSi_UseTick arm_func_start OS_InitTick OS_InitTick: ; 0x020CCD64 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020CCDE8 ; =0x021D37AC + ldr r1, _020CCDE8 ; =OSi_UseTick ldrh r0, [r1, #0x0] cmp r0, #0x0 addne sp, sp, #0x4 @@ -3923,7 +3924,7 @@ OS_InitTick: ; 0x020CCD64 mov r0, #0x0 strh r2, [r1, #0x0] bl OSi_SetTimerReserved - ldr r0, _020CCDEC ; =0x021D37B4 + ldr r0, _020CCDEC ; =OSi_TickCounter mov r2, #0x0 str r2, [r0, #0x0] ldr r3, _020CCDF0 ; =0x04000102 @@ -3938,19 +3939,19 @@ OS_InitTick: ; 0x020CCD64 bl OS_SetIrqFunction mov r0, #0x8 bl OS_EnableIrqMask - ldr r0, _020CCDFC ; =0x021D37B0 + ldr r0, _020CCDFC ; =OSi_NeedResetTimer mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {lr} bx lr .balign 4 -_020CCDE8: .word 0x021D37AC -_020CCDEC: .word 0x021D37B4 +_020CCDE8: .word OSi_UseTick +_020CCDEC: .word OSi_TickCounter _020CCDF0: .word 0x04000102 _020CCDF4: .word 0x04000100 _020CCDF8: .word OSi_CountUpTick -_020CCDFC: .word 0x021D37B0 +_020CCDFC: .word OSi_NeedResetTimer arm_func_start OSi_AlarmHandler OSi_AlarmHandler: ; 0x020CCE00 @@ -3974,7 +3975,7 @@ OSi_ArrangeTimer: ; 0x020CCE10 orr r1, r1, #0x10 str r1, [r0, #0xff8] bl OS_GetTick - ldr r2, _020CCF24 ; =0x021D37C0 + ldr r2, _020CCF24 ; =OSi_AlarmQueue ldr r4, [r2, #0x0] cmp r4, #0x0 addeq sp, sp, #0x4 @@ -4021,7 +4022,7 @@ _020CCECC: str r5, [r4, #0x0] bl OSi_InsertAlarm _020CCEF4: - ldr r0, _020CCF24 ; =0x021D37C0 + ldr r0, _020CCF24 ; =OSi_AlarmQueue ldr r0, [r0, #0x0] cmp r0, #0x0 addeq sp, sp, #0x4 @@ -4034,7 +4035,7 @@ _020CCEF4: .balign 4 _020CCF1C: .word 0x04000106 _020CCF20: .word 0x027E0000 -_020CCF24: .word 0x021D37C0 +_020CCF24: .word OSi_AlarmQueue arm_func_start OS_CancelAlarm OS_CancelAlarm: ; 0x020CCF28 @@ -4054,7 +4055,7 @@ _020CCF58: ldr r0, [r5, #0x18] cmp r0, #0x0 ldreq r2, [r5, #0x14] - ldreq r1, _020CCFBC ; =0x021D37C0 + ldreq r1, _020CCFBC ; =OSi_AlarmQueue streq r2, [r1, #0x4] ldrne r1, [r5, #0x14] strne r1, [r0, #0x14] @@ -4062,7 +4063,7 @@ _020CCF58: cmp r1, #0x0 strne r0, [r1, #0x18] bne _020CCF98 - ldr r1, _020CCFBC ; =0x021D37C0 + ldr r1, _020CCFBC ; =OSi_AlarmQueue cmp r0, #0x0 str r0, [r1, #0x0] beq _020CCF98 @@ -4078,7 +4079,7 @@ _020CCF98: ldmia sp!, {r4-r5,lr} bx lr .balign 4 -_020CCFBC: .word 0x021D37C0 +_020CCFBC: .word OSi_AlarmQueue arm_func_start OS_SetAlarm OS_SetAlarm: ; 0x020CCFC0 @@ -4150,7 +4151,7 @@ OSi_InsertAlarm: ; 0x020CD038 adc r6, r6, r1 _020CD0B4: str r7, [r8, #0xc] - ldr r0, _020CD174 ; =0x021D37C0 + ldr r0, _020CD174 ; =OSi_AlarmQueue str r6, [r8, #0x10] ldr r4, [r0, #0x0] cmp r4, #0x0 @@ -4173,7 +4174,7 @@ _020CD0D0: strne r8, [r0, #0x18] ldmneia sp!, {r4-r8,lr} bxne lr - ldr r1, _020CD174 ; =0x021D37C0 + ldr r1, _020CD174 ; =OSi_AlarmQueue mov r0, r8 str r8, [r1, #0x0] bl OSi_SetTimer @@ -4184,7 +4185,7 @@ _020CD128: cmp r4, #0x0 bne _020CD0D0 _020CD134: - ldr r1, _020CD174 ; =0x021D37C0 + ldr r1, _020CD174 ; =OSi_AlarmQueue mov r0, #0x0 str r0, [r8, #0x18] ldr r0, [r1, #0x4] @@ -4201,7 +4202,7 @@ _020CD134: ldmia sp!, {r4-r8,lr} bx lr .balign 4 -_020CD174: .word 0x021D37C0 +_020CD174: .word OSi_AlarmQueue arm_func_start OS_CreateAlarm OS_CreateAlarm: ; 0x020CD178 @@ -4212,17 +4213,17 @@ OS_CreateAlarm: ; 0x020CD178 arm_func_start OS_IsAlarmAvailable OS_IsAlarmAvailable: ; 0x020CD188 - ldr r0, _020CD194 ; =0x021D37BC + ldr r0, _020CD194 ; =OSi_UseAlarm ldrh r0, [r0, #0x0] bx lr .balign 4 -_020CD194: .word 0x021D37BC +_020CD194: .word OSi_UseAlarm arm_func_start OS_InitAlarm OS_InitAlarm: ; 0x020CD198 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020CD1E8 ; =0x021D37BC + ldr r1, _020CD1E8 ; =OSi_UseAlarm ldrh r0, [r1, #0x0] cmp r0, #0x0 addne sp, sp, #0x4 @@ -4231,7 +4232,7 @@ OS_InitAlarm: ; 0x020CD198 mov r0, #0x1 strh r0, [r1, #0x0] bl OSi_SetTimerReserved - ldr r1, _020CD1EC ; =0x021D37C0 + ldr r1, _020CD1EC ; =OSi_AlarmQueue mov r2, #0x0 mov r0, #0x10 str r2, [r1, #0x0] @@ -4241,8 +4242,8 @@ OS_InitAlarm: ; 0x020CD198 ldmia sp!, {lr} bx lr .balign 4 -_020CD1E8: .word 0x021D37BC -_020CD1EC: .word 0x021D37C0 +_020CD1E8: .word OSi_UseAlarm +_020CD1EC: .word OSi_AlarmQueue arm_func_start OSi_SetTimer OSi_SetTimer: ; 0x020CD1F0 @@ -4292,13 +4293,13 @@ _020CD288: .word 0x04000104 OS_InitVAlarm: ; 0x020CD28C stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r2, _020CD2EC ; =0x021D37C8 + ldr r2, _020CD2EC ; =OSi_UseVAlarm ldrh r0, [r2, #0x0] cmp r0, #0x0 addne sp, sp, #0x4 ldmneia sp!, {lr} bxne lr - ldr r1, _020CD2F0 ; =0x021D37D4 + ldr r1, _020CD2F0 ; =OSi_VAlarmQueue mov r3, #0x0 mov r12, #0x1 mov r0, #0x4 @@ -4306,19 +4307,19 @@ OS_InitVAlarm: ; 0x020CD28C str r3, [r1, #0x0] str r3, [r1, #0x4] bl OS_DisableIrqMask - ldr r1, _020CD2F4 ; =0x021D37D0 + ldr r1, _020CD2F4 ; =OSi_VFrameCount mov r2, #0x0 - ldr r0, _020CD2F8 ; =0x021D37CC + ldr r0, _020CD2F8 ; =OSi_PreviousVCount str r2, [r1, #0x0] str r2, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {lr} bx lr .balign 4 -_020CD2EC: .word 0x021D37C8 -_020CD2F0: .word 0x021D37D4 -_020CD2F4: .word 0x021D37D0 -_020CD2F8: .word 0x021D37CC +_020CD2EC: .word OSi_UseVAlarm +_020CD2F0: .word OSi_VAlarmQueue +_020CD2F4: .word OSi_VFrameCount +_020CD2F8: .word OSi_PreviousVCount arm_func_start OS_EnableInterrupts OS_EnableInterrupts: ; 0x020CD2FC @@ -4385,7 +4386,7 @@ OS_WaitVBlankIntr: ; 0x020CD38C stmdb sp!, {lr} sub sp, sp, #0x4 mov r0, #0x1 - blx FUN_020005F2 + blx SVC_WaitByLoop mov r0, #0x1 mov r1, r0 bl OS_WaitIrq @@ -4448,14 +4449,14 @@ _020CD454: bx lr arm_func_start OSi_CommonCallback -OSi_CommonCallback: ; 0x020CD464 +OSi_CommonCallback: ; OSi_CommonCallback stmdb sp!, {lr} sub sp, sp, #0x4 and r0, r1, #0x7f00 mov r0, r0, lsl #0x8 mov r0, r0, lsr #0x10 cmp r0, #0x10 - ldreq r0, _020CD4A4 ; =0x021D37E0 + ldreq r0, _020CD4A4 ; =OSi_IsResetOccurred moveq r1, #0x1 streqh r1, [r0, #0x0] addeq sp, sp, #0x4 @@ -4466,7 +4467,7 @@ OSi_CommonCallback: ; 0x020CD464 ldmia sp!, {lr} bx lr .balign 4 -_020CD4A4: .word 0x021D37E0 +_020CD4A4: .word OSi_IsResetOccurred arm_func_start OS_InitReset OS_InitReset: ; 0x020CD4A8 @@ -4496,8 +4497,8 @@ _020CD4E8: add sp, sp, #0x4 ldmia sp!, {r4-r5, lr} bx lr -_020CD508: .word 0x021D37DC -_020CD50C: .word 0x020CD464 +_020CD508: .word OSi_IsInitReset +_020CD50C: .word OSi_CommonCallback arm_func_start OS_GetOwnerRtcOffset OS_GetOwnerRtcOffset: ; 0x020CD510 @@ -4565,13 +4566,13 @@ OSi_UnlockVram: ; 0x020CD5C4 mov r5, r0 mov r10, r1 bl OS_DisableInterrupts - ldr r4, _020CD640 ; =0x021D37E4 + ldr r4, _020CD640 ; =OSi_vramExclusive ldr r1, _020CD644 ; =0x000001FF ldr r2, [r4, #0x0] mov r8, r0 and r0, r5, r2 and r9, r0, r1 - ldr r6, _020CD648 ; =0x021D37E8 + ldr r6, _020CD648 ; =OSi_vramLockId mov r7, #0x1 mov r5, #0x0 _020CD5F8: @@ -4595,9 +4596,9 @@ _020CD630: ldmia sp!, {r4-r10,lr} bx lr .balign 4 -_020CD640: .word 0x021D37E4 +_020CD640: .word OSi_vramExclusive _020CD644: .word 0x000001FF -_020CD648: .word 0x021D37E8 +_020CD648: .word OSi_vramLockId arm_func_start OSi_TryLockVram OSi_TryLockVram: ; 0x020CD64C @@ -4606,11 +4607,11 @@ OSi_TryLockVram: ; 0x020CD64C mov r6, r0 mov r8, r1 bl OS_DisableInterrupts - ldr r1, _020CD714 ; =0x021D37E4 + ldr r1, _020CD714 ; =OSi_vramExclusive mov r7, r0 ldr r0, [r1, #0x0] and r5, r6, r0 - ldr sb, _020CD718 ; =0x021D37E8 + ldr sb, _020CD718 ; =OSi_vramLockId mov r4, #0x1 _020CD678: mov r0, r5 @@ -4632,8 +4633,8 @@ _020CD678: _020CD6B8: ldr r0, _020CD71C ; =0x000001FF and r6, r6, r0 - ldr r4, _020CD718 ; =0x021D37E8 - ldr sb, _020CD714 ; =0x021D37E4 + ldr r4, _020CD718 ; =OSi_vramLockId + ldr sb, _020CD714 ; =OSi_vramExclusive mov r5, #0x1 _020CD6CC: mov r0, r6 @@ -4656,16 +4657,16 @@ _020CD6FC: ldmia sp!, {r4-r9,lr} bx lr .balign 4 -_020CD714: .word 0x021D37E4 -_020CD718: .word 0x021D37E8 +_020CD714: .word OSi_vramExclusive +_020CD718: .word OSi_vramLockId _020CD71C: .word 0x000001FF arm_func_start OSi_InitVramExclusive OSi_InitVramExclusive: ; 0x020CD720 - ldr r0, _020CD74C ; =0x021D37E4 + ldr r0, _020CD74C ; =OSi_vramExclusive mov r3, #0x0 str r3, [r0, #0x0] - ldr r0, _020CD750 ; =0x021D37E8 + ldr r0, _020CD750 ; =OSi_vramLockId mov r2, r3 _020CD734: mov r1, r3, lsl #0x1 @@ -4675,8 +4676,8 @@ _020CD734: blt _020CD734 bx lr .balign 4 -_020CD74C: .word 0x021D37E4 -_020CD750: .word 0x021D37E8 +_020CD74C: .word OSi_vramExclusive +_020CD750: .word OSi_vramLockId arm_func_start OS_GetLowEntropyData OS_GetLowEntropyData: ; 0x020CD754 @@ -4691,7 +4692,7 @@ OS_GetLowEntropyData: ; 0x020CD754 bl OS_GetTickLo orr r0, r0, r7, lsl #0x10 str r0, [r6, #0x0] - ldr r1, _020CD834 ; =0x021D37B4 + ldr r1, _020CD834 ; =OSi_TickCounter ldr r0, _020CD830 ; =0x027FFC00 ldr r3, [r1, #0x0] ldrh r5, [r5, #0x4] @@ -4737,7 +4738,7 @@ OS_GetLowEntropyData: ; 0x020CD754 .balign 4 _020CD82C: .word 0x04000006 _020CD830: .word 0x027FFC00 -_020CD834: .word 0x021D37B4 +_020CD834: .word OSi_TickCounter _020CD838: .word 0x04000600 _020CD83C: .word 0x04000130 _020CD840: .word 0x027FFFA8 diff --git a/asm/arm7_rom.s b/asm/arm7_rom.s index 9dcd3224..fa248afc 100644 --- a/asm/arm7_rom.s +++ b/asm/arm7_rom.s @@ -140,18 +140,18 @@ _2380198: FUN_023801B0: .incbin "baserom.nds", 0x30D1B0, 0x91B0 - thumb_func_start SVC_SoftReset -SVC_SoftReset: ; 0x02389360 + thumb_func_start ROM7_SVC_SoftReset +ROM7_SVC_SoftReset: ; 0x02389360 swi 0 bx lr - thumb_func_start SVC_WaitByLoop -SVC_WaitByLoop: ; 0x02389364 + thumb_func_start ROM7_SVC_WaitByLoop +ROM7_SVC_WaitByLoop: ; 0x02389364 swi 3 bx lr - thumb_func_start SVC_WaitIntr -SVC_WaitIntr: ; 0x02389368 + thumb_func_start ROM7_SVC_WaitIntr +ROM7_SVC_WaitIntr: ; 0x02389368 ldr r2, =0x04000000 mov ip, r2 mov r2, #0x0 @@ -159,48 +159,48 @@ SVC_WaitIntr: ; 0x02389368 bx lr .pool - thumb_func_start SVC_WaitVBlankIntr -SVC_WaitVBlankIntr: + thumb_func_start ROM7_SVC_WaitVBlankIntr +ROM7_SVC_WaitVBlankIntr: mov r2, #0x0 swi 5 bx lr - non_word_aligned_thumb_func_start SVC_Halt -SVC_Halt: + non_word_aligned_thumb_func_start ROM7_SVC_Halt +ROM7_SVC_Halt: swi 6 bx lr - non_word_aligned_thumb_func_start SVC_Stop -SVC_Stop: + non_word_aligned_thumb_func_start ROM7_SVC_Stop +ROM7_SVC_Stop: swi 7 bx lr - non_word_aligned_thumb_func_start SVC_SoundBias -SVC_SoundBias: + non_word_aligned_thumb_func_start ROM7_SVC_SoundBias +ROM7_SVC_SoundBias: swi 8 bx lr - non_word_aligned_thumb_func_start SVC_SoundBiasSet -SVC_SoundBiasSet: + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet +ROM7_SVC_SoundBiasSet: add r1, r0, #0x0 mov r0, #0x1 swi 8 bx lr - non_word_aligned_thumb_func_start SVC_SoundBiasReset -SVC_SoundBiasReset: + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset +ROM7_SVC_SoundBiasReset: add r1, r0, #0x0 mov r0, #0x0 swi 8 bx lr - non_word_aligned_thumb_func_start SVC_Div -SVC_Div: + non_word_aligned_thumb_func_start ROM7_SVC_Div +ROM7_SVC_Div: swi 9 bx lr - non_word_aligned_thumb_func_start SVC_DivRem -SVC_DivRem: + non_word_aligned_thumb_func_start ROM7_SVC_DivRem +ROM7_SVC_DivRem: swi 9 add r0, r1, #0x0 bx lr @@ -2,7 +2,6 @@ .include "global.inc" .text - .set SDK_IRQ_STACKSIZE, 0x400 arm_func_start _start _start: ; 0x02000800 diff --git a/asm/secure.s b/asm/secure.s index 8bfb7ede..f9d8f159 100644 --- a/asm/secure.s +++ b/asm/secure.s @@ -21,8 +21,8 @@ FUN_020002FE: ; 0x020002FE .incbin "baserom.nds", 0x4302, 0x2F0 - non_word_aligned_thumb_func_start FUN_020005F2 -FUN_020005F2: + non_word_aligned_thumb_func_start SVC_WaitByLoop +SVC_WaitByLoop: swi 3 bx lr diff --git a/asm/unk_0208AC14.s b/asm/unk_0208AC14.s index 59d1fcb9..0adafb8b 100644 --- a/asm/unk_0208AC14.s +++ b/asm/unk_0208AC14.s @@ -11822,7 +11822,7 @@ _02095460: cmp r0, #0x1 beq _02095488 mov r0, r4 - blx FUN_020005F2 + blx SVC_WaitByLoop b _02095460 _02095488: mov r0, #0x1 @@ -11888,7 +11888,7 @@ _0209552C: ldmeqia sp!, {r4-r8,pc} _02095548: ; 0x02095548 mov r0, r4 - blx FUN_020005F2 + blx SVC_WaitByLoop b _0209552C _02095554: ; 0x02095554 ldmia sp!, {r4-r8,pc} @@ -11929,7 +11929,7 @@ _020955B0: cmp r0, #0x1 beq _020955D8 mov r0, r7 - blx FUN_020005F2 + blx SVC_WaitByLoop b _020955B0 _020955D8: mov r0, r4 @@ -12286,7 +12286,7 @@ _02095A74: b _0209574C _02095A7C: ldr r0, [sp, #0xbc] - blx FUN_020005F2 + blx SVC_WaitByLoop b _0209574C _02095A88: add sp, sp, #0xc4 @@ -52,7 +52,7 @@ .extern FUNRTC_Init
.extern FUN_0200019E
.extern FUN_020002FE
-.extern FUN_020005F2
+.extern SVC_WaitByLoop
.extern OSi_ReferSymbol
.extern FUN_02000DF4
.extern FUN_02000E7C
@@ -3478,3 +3478,40 @@ .extern thunk_FUN_020afda0
.extern thunk_FUN_020afda0_2
.extern thunk_FUN_020b5040
+.extern Unk_0210683C
+.extern Unk_02106840
+.extern Unk_02106900
+.extern Unk_02106A00
+.extern Unk_02106A04
+.extern OSi_IrqCallbackInfo
+.extern OSi_IrqCallbackInfoIndex
+.extern SDK_SYS_STACKSIZE
+.extern SDK_IRQ_STACKSIZE
+.extern OSi_IsThreadInitialized
+.extern OSi_LauncherThread
+.extern OSi_CurrentThreadPtr
+.extern OSi_IdleThread
+.extern OSi_IdleThreadStack
+.extern OSi_RescheduleCount
+.extern OSi_SystemCallbackInSwitchThread
+.extern OSi_Initialized
+.extern OSi_HeapInfo
+.extern OSi_DebuggerHandler
+.extern OSi_ExContext
+.extern OSi_UserExceptionHandler
+.extern OSi_UserExceptionHandlerArg
+.extern OSi_TimerReserved
+.extern OSi_UseTick
+.extern OSi_NeedResetTimer
+.extern OSi_TickCounter
+.extern OSi_UseAlarm
+.extern OSi_AlarmQueue
+.extern OSi_UseVAlarm
+.extern OSi_PreviousVCount
+.extern OSi_VFrameCount
+.extern OSi_VAlarmQueue
+.extern OSi_IsInitReset
+.extern OSi_vramExclusive
+.extern OSi_vramLockId
+.extern OSi_ThreadIdCount
+.extern OSi_StackForDestructor
diff --git a/undefined_syms.txt b/undefined_syms.txt index 46a62ad1..075d22a9 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1,5 +1,17 @@ +SDK_SYS_STACKSIZE = 0x00000000; CONST_34 = 0x00000034; CONST_3F = 0x0000003F; +SDK_IRQ_STACKSIZE = 0x00000400; + +// .data +// OS +OSi_IrqCallbackInfoIndex = 0x02106818; +// DGT +Unk_0210683C = 0x0210683C; +Unk_02106840 = 0x02106840; +Unk_02106900 = 0x02106900; +Unk_02106A00 = 0x02106A00; +Unk_02106A04 = 0x02106A04; // .bss gBacklightTop = 0x02106FA0; @@ -7,9 +19,39 @@ gBacklightTop_2 = 0x02106FA0; gUnknown2106FB8 = 0x02106FB8; gUnknown21C48B8 = 0x021C48B8; gUnk021C4918 = 0x021C4918; +OSi_IrqCallbackInfo = 0x021D341C; +isInitialized = 0x021D347C; +OSi_StackForDestructor = 0x021D3480; +OSi_RescheduleCount = 0x021D3484; +OSi_ThreadIdCount = 0x021D3488; +OSi_SystemCallbackInSwitchThread = 0x021D348C; +OSi_CurrentThreadPtr = 0x021D3490; +OSi_IsThreadInitialized = 0x021D3494; OSi_ThreadInfo = 0x021D3498; +OSi_IdleThread = 0x021D34A8; +OSi_LauncherThread = 0x021D3568; +OSi_IdleThreadStack = 0x021D3628; +OSi_Initialized = 0x021D36F0; OSi_MainExArenaEnabled = 0x021D36F4; +OSi_HeapInfo = 0x021D36F8; +OSi_UserExceptionHandler = 0x021D371C; +OSi_UserExceptionHandlerArg = 0x21D3720; +OSi_DebuggerHandler = 0x021D3724; +OSi_ExContext = 0x021D3728; +OSi_TimerReserved = 0x021D37A8; +OSi_UseTick = 0x021D37AC; +OSi_NeedResetTimer = 0x021D37B0; +OSi_TickCounter = 0x021D37B4; +OSi_UseAlarm = 0x021D37BC; +OSi_AlarmQueue = 0x021D37C0; +OSi_UseVAlarm = 0x021D37C8; +OSi_PreviousVCount = 0x021D37CC; +OSi_VFrameCount = 0x021D37D0; +OSi_VAlarmQueue = 0x021D37D4; +OSi_IsInitReset = 0x021D37DC; OSi_IsResetOccurred = 0x021D37E0; +OSi_vramExclusive = 0x021D37E4; +OSi_vramLockId = 0x021D37E8; cardi_common = 0x021D55C0; // Overlay |