mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-01 22:57:58 -05:00
split more Nitro asm files
This commit is contained in:
@@ -47,7 +47,33 @@
|
||||
.public _022BCA74
|
||||
.public _f2d
|
||||
.public _ll_udiv
|
||||
.public Card_CheckEnabled
|
||||
.public Card_IsPulledOut
|
||||
.public Cardi_CheckPulledOutCore
|
||||
.public Cardi_ReadRom
|
||||
.public Cardi_Request
|
||||
.public Cardi_SetTask
|
||||
.public Cardi_WaitAsync
|
||||
.public CARDi_InitCommon
|
||||
.public CARDi_TaskThread
|
||||
.public CARDi_OnFifoRecv
|
||||
.public CARD_Init
|
||||
.public CARD_InitPulledOutCallback
|
||||
.public CopyAndInterleave
|
||||
.public Ctrdg_Enable
|
||||
.public Ctrdg_IsExisting
|
||||
.public Ctrdgi_Enable
|
||||
.public Ctrdgi_InitTaskThread
|
||||
.public Ctrdgi_IsExisting
|
||||
.public CTRDGi_InitCommon
|
||||
.public CTRDGi_LockByProcessor
|
||||
.public CTRDGi_UnlockByProcessor
|
||||
.public CTRDGi_RestoreAccessCycle
|
||||
.public CTRDGi_ChangeLatestAccessCycle
|
||||
.public CTRDGi_SendtoPxi
|
||||
.public Dgt_Hash2Init
|
||||
.public Dgt_Hash2Update
|
||||
.public Dgt_Hash2GetHash
|
||||
.public DC_FlushAll
|
||||
.public DC_FlushRange
|
||||
.public DC_InvalidateRange
|
||||
@@ -99,6 +125,7 @@
|
||||
.public OS_WakeupThread
|
||||
.public OS_WakeupThreadDirect
|
||||
.public OSi_ReferSymbol
|
||||
.public PM_ForceToPowerOff
|
||||
.public PXI_Init
|
||||
.public PXI_IsCallbackReady
|
||||
.public PXI_SendWordByFifo
|
||||
|
||||
3184
asm/main_0207F894.s
3184
asm/main_0207F894.s
File diff suppressed because it is too large
Load Diff
113
lib/MSL_C/asm/include/main_0207F894.inc
Normal file
113
lib/MSL_C/asm/include/main_0207F894.inc
Normal file
@@ -0,0 +1,113 @@
|
||||
#pragma once
|
||||
.public _02000BC4
|
||||
.public _020AEC5C
|
||||
.public _020B2BB4
|
||||
.public _020B2BB8
|
||||
.public _020B2BC0
|
||||
.public _020B2BC4
|
||||
.public _020B2C84
|
||||
.public _020B2D88
|
||||
.public _020B2E9C
|
||||
.public _020B2ED0
|
||||
.public _020B2ED4
|
||||
.public _020B2FBC
|
||||
.public _020B3364
|
||||
.public _022B966C
|
||||
.public _022BB5EC
|
||||
.public _022BB5FC
|
||||
.public _022BB604
|
||||
.public _022BB60C
|
||||
.public _022BB614
|
||||
.public _022BB670
|
||||
.public _022BB68C
|
||||
.public _022BB6AC
|
||||
.public _022BB6B8
|
||||
.public _022BB6C4
|
||||
.public _022BB6C8
|
||||
.public _022BB6D8
|
||||
.public _022BB6F0
|
||||
.public _022BB6F4
|
||||
.public _022BB718
|
||||
.public _022BB724
|
||||
.public _022BB760
|
||||
.public _022BB780
|
||||
.public _022BB7E0
|
||||
.public _022BBE00
|
||||
.public _022BBE20
|
||||
.public _022BC040
|
||||
.public _022BC048
|
||||
.public _022BC04C
|
||||
.public _022BC060
|
||||
.public _022BC080
|
||||
.public _022BC084
|
||||
.public _022BC140
|
||||
.public _022BC228
|
||||
.public _022BC22C
|
||||
.public _022BC650
|
||||
.public _022BCA74
|
||||
.public _f2d
|
||||
.public _ll_udiv
|
||||
.public CopyAndInterleave
|
||||
.public DC_FlushAll
|
||||
.public DC_FlushRange
|
||||
.public DC_InvalidateRange
|
||||
.public DC_StoreRange
|
||||
.public DC_WaitWriteBufferEmpty
|
||||
.public EnableIrqFlag
|
||||
.public fflush
|
||||
.public FileInit
|
||||
.public FS_CloseFile
|
||||
.public FS_InitArchive
|
||||
.public FS_LoadArchive
|
||||
.public FS_NotifyArchiveAsyncEnd
|
||||
.public FS_OpenFileDirect
|
||||
.public FS_OpenFileFast
|
||||
.public FS_ReadFile
|
||||
.public FS_RegisterArchiveName
|
||||
.public FS_SetArchiveProc
|
||||
.public FSi_FindPath
|
||||
.public GetIrqFlag
|
||||
.public IC_InvalidateAll
|
||||
.public IC_InvalidateRange
|
||||
.public MI_CpuCopy8
|
||||
.public MI_CpuFill8
|
||||
.public MI_DmaCopy16
|
||||
.public MI_StopDma
|
||||
.public MIi_UncompressBackward
|
||||
.public MTi_CardDmaCopy32
|
||||
.public MTi_CpuClear32
|
||||
.public MTi_CpuClearFast
|
||||
.public MTi_CpuCopy32
|
||||
.public OS_DisableIrqMask
|
||||
.public OS_EnableIrqMask
|
||||
.public OS_GetDTCMAddress
|
||||
.public OS_GetLockID
|
||||
.public OS_InitMutex
|
||||
.public OS_IsTickAvailable
|
||||
.public OS_LockCard
|
||||
.public OS_ReadOwnerOfLockWord
|
||||
.public OS_ResetRequestIrqMask
|
||||
.public OS_SetDPermissionsForProtectionRegion
|
||||
.public OS_SetIrqFunction
|
||||
.public OS_SetIrqMask
|
||||
.public OS_SetThreadPriority
|
||||
.public OS_SleepThread
|
||||
.public OS_SpinWait
|
||||
.public OS_TryLockCartridge
|
||||
.public OS_UnlockCard
|
||||
.public OS_UnlockCartridgeVeneer
|
||||
.public OS_WakeupThread
|
||||
.public OS_WakeupThreadDirect
|
||||
.public OSi_ReferSymbol
|
||||
.public PXI_Init
|
||||
.public PXI_IsCallbackReady
|
||||
.public PXI_SendWordByFifo
|
||||
.public PXI_SetFifoRecvCallback
|
||||
.public PXIi_HandlerRecvFifoNotEmpty
|
||||
.public SetIrqFlag
|
||||
.public OS_CreateThread
|
||||
.public SVC_CpuSet
|
||||
.public SVC_WaitByLoop
|
||||
.public OS_ExitThread
|
||||
.public WaitForever2
|
||||
.public WaitForInterrupt
|
||||
93
lib/MSL_C/asm/msl.s
Normal file
93
lib/MSL_C/asm/msl.s
Normal file
@@ -0,0 +1,93 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start NotANumber
|
||||
NotANumber: ; 0x02086450
|
||||
ldr r0, _02086460 ; =_020B2FBC
|
||||
ldr ip, _02086464 ; =_f2d
|
||||
ldr r0, [r0]
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_02086460: .word _020B2FBC
|
||||
_02086464: .word _f2d
|
||||
arm_func_end NotANumber
|
||||
|
||||
arm_func_start _flush_line_buffered_output_files
|
||||
_flush_line_buffered_output_files: ; 0x02086468
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
ldr r0, _020864F0 ; =_020B2ED4
|
||||
mov r4, #0
|
||||
mov r5, #1
|
||||
mov r8, r0
|
||||
mvn sb, #0
|
||||
mov r7, r4
|
||||
mov r6, #0x4c
|
||||
_02086488:
|
||||
ldr r1, [r0, #4]
|
||||
mov r2, r1, lsl #0x16
|
||||
movs r2, r2, lsr #0x1d
|
||||
beq _020864C8
|
||||
mov r1, r1, lsl #0x19
|
||||
mov r1, r1, lsr #0x1e
|
||||
tst r1, #1
|
||||
beq _020864C8
|
||||
ldr r1, [r0, #8]
|
||||
mov r1, r1, lsl #0x1d
|
||||
mov r1, r1, lsr #0x1d
|
||||
cmp r1, #1
|
||||
bne _020864C8
|
||||
bl fflush
|
||||
cmp r0, #0
|
||||
movne r4, sb
|
||||
_020864C8:
|
||||
cmp r5, #3
|
||||
movge r0, r7
|
||||
bge _020864E0
|
||||
mul r0, r5, r6
|
||||
add r5, r5, #1
|
||||
add r0, r8, r0
|
||||
_020864E0:
|
||||
cmp r0, #0
|
||||
bne _02086488
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_020864F0: .word _020B2ED4
|
||||
arm_func_end _flush_line_buffered_output_files
|
||||
|
||||
arm_func_start _flush_all
|
||||
_flush_all: ; 0x020864F4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
ldr r0, _02086558 ; =_020B2ED4
|
||||
mov r4, #0
|
||||
mov r5, #1
|
||||
mov r8, r0
|
||||
mvn sb, #0
|
||||
mov r7, r4
|
||||
mov r6, #0x4c
|
||||
_02086514:
|
||||
ldr r1, [r0, #4]
|
||||
mov r1, r1, lsl #0x16
|
||||
movs r1, r1, lsr #0x1d
|
||||
beq _02086530
|
||||
bl fflush
|
||||
cmp r0, #0
|
||||
movne r4, sb
|
||||
_02086530:
|
||||
cmp r5, #3
|
||||
movge r0, r7
|
||||
bge _02086548
|
||||
mul r0, r5, r6
|
||||
add r5, r5, #1
|
||||
add r0, r8, r0
|
||||
_02086548:
|
||||
cmp r0, #0
|
||||
bne _02086514
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_02086558: .word _020B2ED4
|
||||
arm_func_end _flush_all
|
||||
|
||||
165
lib/NitroSDK/asm/card_pullOut.s
Normal file
165
lib/NitroSDK/asm/card_pullOut.s
Normal file
@@ -0,0 +1,165 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CARD_InitPulledOutCallback
|
||||
CARD_InitPulledOutCallback: ; 0x02084558
|
||||
stmdb sp!, {r3, lr}
|
||||
bl PXI_Init
|
||||
ldr r1, _0208457C ; =CARDi_PulledOutCallback
|
||||
mov r0, #0xe
|
||||
bl PXI_SetFifoRecvCallback
|
||||
ldr r0, _02084580 ; =_022BC040
|
||||
mov r1, #0
|
||||
str r1, [r0, #4]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_0208457C: .word CARDi_PulledOutCallback
|
||||
_02084580: .word _022BC040
|
||||
arm_func_end CARD_InitPulledOutCallback
|
||||
|
||||
arm_func_start CARDi_PulledOutCallback
|
||||
CARDi_PulledOutCallback: ; 0x02084584
|
||||
stmdb sp!, {r3, lr}
|
||||
and r0, r1, #0x3f
|
||||
cmp r0, #0x11
|
||||
bne _020845CC
|
||||
ldr r1, _020845D4 ; =_022BC040
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
mov r0, #1
|
||||
str r0, [r1]
|
||||
ldr r1, [r1, #4]
|
||||
cmp r1, #0
|
||||
beq _020845BC
|
||||
blx r1
|
||||
_020845BC:
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, pc}
|
||||
bl Card_TerminateForPulledOut
|
||||
ldmia sp!, {r3, pc}
|
||||
_020845CC:
|
||||
bl WaitForever2
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_020845D4: .word _022BC040
|
||||
arm_func_end CARDi_PulledOutCallback
|
||||
|
||||
arm_func_start Card_SetPulledOutCallback
|
||||
Card_SetPulledOutCallback: ; 0x020845D8
|
||||
ldr r1, _020845E4 ; =_022BC040
|
||||
str r0, [r1, #4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_020845E4: .word _022BC040
|
||||
arm_func_end Card_SetPulledOutCallback
|
||||
|
||||
arm_func_start Card_IsPulledOut
|
||||
Card_IsPulledOut: ; 0x020845E8
|
||||
ldr r0, _020845F4 ; =_022BC040
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_020845F4: .word _022BC040
|
||||
arm_func_end Card_IsPulledOut
|
||||
|
||||
arm_func_start Card_TerminateForPulledOut
|
||||
Card_TerminateForPulledOut: ; 0x020845F8
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r0, #0
|
||||
mov r5, #1
|
||||
bl MI_StopDma
|
||||
mov r0, r5
|
||||
bl MI_StopDma
|
||||
mov r0, #2
|
||||
bl MI_StopDma
|
||||
mov r0, #3
|
||||
bl MI_StopDma
|
||||
ldr r0, _0208467C ; =0x027FFFA8
|
||||
ldrh r0, [r0]
|
||||
and r0, r0, #0x8000
|
||||
movs r0, r0, asr #0xf
|
||||
beq _02084660
|
||||
bl PM_ForceToPowerOff
|
||||
cmp r0, #4
|
||||
bne _02084658
|
||||
ldr r4, _02084680 ; =0x000A3A47
|
||||
_02084644:
|
||||
mov r0, r4
|
||||
bl OS_SpinWait
|
||||
bl PM_ForceToPowerOff
|
||||
cmp r0, #4
|
||||
beq _02084644
|
||||
_02084658:
|
||||
cmp r0, #0
|
||||
moveq r5, #0
|
||||
_02084660:
|
||||
cmp r5, #0
|
||||
beq _02084674
|
||||
mov r0, #1
|
||||
mov r1, r0
|
||||
bl Cardi_SendtoPxi
|
||||
_02084674:
|
||||
bl WaitForever2
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0208467C: .word 0x027FFFA8
|
||||
_02084680: .word 0x000A3A47
|
||||
arm_func_end Card_TerminateForPulledOut
|
||||
|
||||
arm_func_start Cardi_CheckPulledOutCore
|
||||
Cardi_CheckPulledOutCore: ; 0x02084684
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r2, _020846E0 ; =0x027FFC10
|
||||
ldrh r1, [r2]
|
||||
cmp r1, #0
|
||||
subeq r1, r2, #0x410
|
||||
subne r1, r2, #0x10
|
||||
ldr r1, [r1]
|
||||
str r1, [sp]
|
||||
ldr r1, [sp]
|
||||
cmp r0, r1
|
||||
addeq sp, sp, #4
|
||||
ldmeqia sp!, {r3, r4, pc}
|
||||
bl EnableIrqFlag
|
||||
mov r4, r0
|
||||
mov r0, #0xe
|
||||
mov r1, #0x11
|
||||
mov r2, #0
|
||||
bl CARDi_PulledOutCallback
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
_020846E0: .word 0x027FFC10
|
||||
arm_func_end Cardi_CheckPulledOutCore
|
||||
|
||||
arm_func_start Cardi_SendtoPxi
|
||||
Cardi_SendtoPxi: ; 0x020846E4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r1, r7
|
||||
mov r0, #0xe
|
||||
mov r2, #0
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r5, #0xe
|
||||
mov r4, #0
|
||||
_02084710:
|
||||
mov r0, r6
|
||||
blx SVC_WaitByLoop
|
||||
mov r0, r5
|
||||
mov r1, r7
|
||||
mov r2, r4
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
bne _02084710
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end Cardi_SendtoPxi
|
||||
|
||||
150
lib/NitroSDK/asm/card_request.s
Normal file
150
lib/NitroSDK/asm/card_request.s
Normal file
@@ -0,0 +1,150 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CARDi_OnFifoRecv
|
||||
CARDi_OnFifoRecv: ; 0x02084380
|
||||
stmdb sp!, {r3, lr}
|
||||
cmp r0, #0xb
|
||||
ldmneia sp!, {r3, pc}
|
||||
cmp r2, #0
|
||||
ldmeqia sp!, {r3, pc}
|
||||
ldr r2, _020843B0 ; =_022BB7E0
|
||||
ldr r1, [r2, #0x114]
|
||||
ldr r0, [r2, #0x104]
|
||||
bic r1, r1, #0x20
|
||||
str r1, [r2, #0x114]
|
||||
bl OS_WakeupThreadDirect
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_020843B0: .word _022BB7E0
|
||||
arm_func_end CARDi_OnFifoRecv
|
||||
|
||||
arm_func_start CARDi_TaskThread
|
||||
CARDi_TaskThread: ; 0x020843B4
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r5, _02084400 ; =_022BB7E0
|
||||
mov r4, #0
|
||||
_020843C0:
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [r5, #0x114]
|
||||
mov r6, r0
|
||||
tst r1, #8
|
||||
bne _020843E8
|
||||
_020843D4:
|
||||
mov r0, r4
|
||||
bl OS_SleepThread
|
||||
ldr r0, [r5, #0x114]
|
||||
tst r0, #8
|
||||
beq _020843D4
|
||||
_020843E8:
|
||||
mov r0, r6
|
||||
bl SetIrqFlag
|
||||
ldr r1, [r5, #0x40]
|
||||
mov r0, r5
|
||||
blx r1
|
||||
b _020843C0
|
||||
.align 2, 0
|
||||
_02084400: .word _022BB7E0
|
||||
arm_func_end CARDi_TaskThread
|
||||
|
||||
arm_func_start Cardi_Request
|
||||
Cardi_Request: ; 0x02084404
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, r0
|
||||
ldr r0, [sl, #0x114]
|
||||
mov sb, r1
|
||||
str r2, [sp]
|
||||
tst r0, #2
|
||||
bne _02084478
|
||||
ldr r1, [sl, #0x114]
|
||||
mov r0, #0xb
|
||||
orr r2, r1, #2
|
||||
mov r1, #1
|
||||
str r2, [sl, #0x114]
|
||||
bl PXI_IsCallbackReady
|
||||
cmp r0, #0
|
||||
bne _02084468
|
||||
mov r6, #0x64
|
||||
mov r5, #0xb
|
||||
mov r4, #1
|
||||
_0208444C:
|
||||
mov r0, r6
|
||||
bl OS_SpinWait
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl PXI_IsCallbackReady
|
||||
cmp r0, #0
|
||||
beq _0208444C
|
||||
_02084468:
|
||||
mov r0, sl
|
||||
mov r1, #0
|
||||
mov r2, #1
|
||||
bl Cardi_Request
|
||||
_02084478:
|
||||
ldr r0, [sl]
|
||||
mov r1, #0x60
|
||||
bl DC_FlushRange
|
||||
bl DC_WaitWriteBufferEmpty
|
||||
mov r7, #0xb
|
||||
mov r6, #1
|
||||
mov r5, r7
|
||||
mov r4, r6
|
||||
mov fp, #0
|
||||
_0208449C:
|
||||
str sb, [sl, #4]
|
||||
ldr r0, [sl, #0x114]
|
||||
orr r0, r0, #0x20
|
||||
str r0, [sl, #0x114]
|
||||
_020844AC:
|
||||
mov r0, r7
|
||||
mov r1, sb
|
||||
mov r2, r6
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
blt _020844AC
|
||||
cmp sb, #0
|
||||
bne _020844E8
|
||||
ldr r8, [sl]
|
||||
_020844D0:
|
||||
mov r0, r5
|
||||
mov r1, r8
|
||||
mov r2, r4
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
blt _020844D0
|
||||
_020844E8:
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [sl, #0x114]
|
||||
mov r8, r0
|
||||
tst r1, #0x20
|
||||
beq _02084510
|
||||
_020844FC:
|
||||
mov r0, fp
|
||||
bl OS_SleepThread
|
||||
ldr r0, [sl, #0x114]
|
||||
tst r0, #0x20
|
||||
bne _020844FC
|
||||
_02084510:
|
||||
mov r0, r8
|
||||
bl SetIrqFlag
|
||||
ldr r0, [sl]
|
||||
mov r1, #0x60
|
||||
bl DC_InvalidateRange
|
||||
ldr r0, [sl]
|
||||
ldr r1, [r0]
|
||||
cmp r1, #4
|
||||
bne _02084548
|
||||
ldr r0, [sp]
|
||||
sub r0, r0, #1
|
||||
str r0, [sp]
|
||||
cmp r0, #0
|
||||
bgt _0208449C
|
||||
_02084548:
|
||||
cmp r1, #0
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
arm_func_end Cardi_Request
|
||||
|
||||
540
lib/NitroSDK/asm/card_rom.s
Normal file
540
lib/NitroSDK/asm/card_rom.s
Normal file
@@ -0,0 +1,540 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CARDi_ReadFromCache
|
||||
CARDi_ReadFromCache: ; 0x02083C8C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r4, _02083D14 ; =_022BB7E0
|
||||
mov r1, #0x200
|
||||
ldr r3, [r4, #0x1c]
|
||||
rsb r1, r1, #0
|
||||
ldr r2, [r0, #8]
|
||||
and r3, r3, r1
|
||||
cmp r3, r2
|
||||
bne _02083D00
|
||||
ldr r2, [r4, #0x1c]
|
||||
ldr r1, [r4, #0x24]
|
||||
sub r3, r2, r3
|
||||
rsb r5, r3, #0x200
|
||||
cmp r5, r1
|
||||
movhi r5, r1
|
||||
add r0, r0, #0x20
|
||||
ldr r1, [r4, #0x20]
|
||||
mov r2, r5
|
||||
add r0, r0, r3
|
||||
bl MI_CpuCopy8
|
||||
ldr r2, [r4, #0x1c]
|
||||
ldr r1, [r4, #0x20]
|
||||
ldr r0, [r4, #0x24]
|
||||
add r2, r2, r5
|
||||
add r1, r1, r5
|
||||
sub r0, r0, r5
|
||||
str r2, [r4, #0x1c]
|
||||
str r1, [r4, #0x20]
|
||||
str r0, [r4, #0x24]
|
||||
_02083D00:
|
||||
ldr r0, [r4, #0x24]
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02083D14: .word _022BB7E0
|
||||
arm_func_end CARDi_ReadFromCache
|
||||
|
||||
arm_func_start CARDi_SetRomOp
|
||||
CARDi_SetRomOp: ; 0x02083D18
|
||||
ldr r3, _02083D70 ; =0x040001A4
|
||||
_02083D1C:
|
||||
ldr r2, [r3]
|
||||
tst r2, #0x80000000
|
||||
bne _02083D1C
|
||||
ldr r3, _02083D74 ; =0x040001A1
|
||||
mov r2, #0xc0
|
||||
strb r2, [r3]
|
||||
mov r2, r0, lsr #0x18
|
||||
strb r2, [r3, #7]
|
||||
mov r2, r0, lsr #0x10
|
||||
strb r2, [r3, #8]
|
||||
mov r2, r0, lsr #8
|
||||
strb r2, [r3, #9]
|
||||
strb r0, [r3, #0xa]
|
||||
mov r0, r1, lsr #0x18
|
||||
strb r0, [r3, #0xb]
|
||||
mov r0, r1, lsr #0x10
|
||||
strb r0, [r3, #0xc]
|
||||
mov r0, r1, lsr #8
|
||||
strb r0, [r3, #0xd]
|
||||
strb r1, [r3, #0xe]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02083D70: .word 0x040001A4
|
||||
_02083D74: .word 0x040001A1
|
||||
arm_func_end CARDi_SetRomOp
|
||||
|
||||
arm_func_start sub_02083D78
|
||||
sub_02083D78: ; 0x02083D78
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r4, _02083DBC ; =_022BB7E0
|
||||
ldr r1, _02083DC0 ; =0x04100010
|
||||
ldr r0, [r4, #0x28]
|
||||
ldr r2, [r4, #0x20]
|
||||
mov r3, #0x200
|
||||
ldr r5, _02083DC4 ; =_022BBE20
|
||||
bl MTi_CardDmaCopy32
|
||||
ldr r1, [r4, #0x1c]
|
||||
mov r0, r1, lsr #8
|
||||
orr r0, r0, #0xb7000000
|
||||
mov r1, r1, lsl #0x18
|
||||
bl CARDi_SetRomOp
|
||||
ldr r1, [r5, #4]
|
||||
ldr r0, _02083DC8 ; =0x040001A4
|
||||
str r1, [r0]
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02083DBC: .word _022BB7E0
|
||||
_02083DC0: .word 0x04100010
|
||||
_02083DC4: .word _022BBE20
|
||||
_02083DC8: .word 0x040001A4
|
||||
arm_func_end sub_02083D78
|
||||
|
||||
arm_func_start sub_02083DCC
|
||||
sub_02083DCC: ; 0x02083DCC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r0, _02083E98 ; =_022BB7E0
|
||||
ldr r0, [r0, #0x28]
|
||||
bl MI_StopDma
|
||||
ldr r3, _02083E98 ; =_022BB7E0
|
||||
ldr r0, [r3, #0x24]
|
||||
ldr r2, [r3, #0x1c]
|
||||
ldr r1, [r3, #0x20]
|
||||
subs r0, r0, #0x200
|
||||
str r0, [r3, #0x24]
|
||||
movne r0, #1
|
||||
add r2, r2, #0x200
|
||||
add r1, r1, #0x200
|
||||
moveq r0, #0
|
||||
str r2, [r3, #0x1c]
|
||||
str r1, [r3, #0x20]
|
||||
cmp r0, #0
|
||||
bne _02083E90
|
||||
mov r0, #0x80000
|
||||
bl OS_DisableIrqMask
|
||||
mov r0, #0x80000
|
||||
bl OS_ResetRequestIrqMask
|
||||
ldr r4, _02083E98 ; =_022BB7E0
|
||||
bl sub_02084118
|
||||
bl Cardi_CheckPulledOutCore
|
||||
ldr r0, [r4]
|
||||
mov r1, #0
|
||||
str r1, [r0]
|
||||
ldr r5, [r4, #0x38]
|
||||
ldr r6, [r4, #0x3c]
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [r4, #0x114]
|
||||
mov r7, r0
|
||||
bic r0, r1, #0x4c
|
||||
str r0, [r4, #0x114]
|
||||
add r0, r4, #0x10c
|
||||
bl OS_WakeupThread
|
||||
ldr r0, [r4, #0x114]
|
||||
tst r0, #0x10
|
||||
beq _02083E74
|
||||
add r0, r4, #0x44
|
||||
bl OS_WakeupThreadDirect
|
||||
_02083E74:
|
||||
mov r0, r7
|
||||
bl SetIrqFlag
|
||||
cmp r5, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r0, r6
|
||||
blx r5
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_02083E90:
|
||||
bl sub_02083D78
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02083E98: .word _022BB7E0
|
||||
arm_func_end sub_02083DCC
|
||||
|
||||
arm_func_start Cardi_TryReadCardDma
|
||||
Cardi_TryReadCardDma: ; 0x02083E9C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr r4, _02084014 ; =_022BB7E0
|
||||
mov r6, #0
|
||||
ldr sb, [r4, #0x20]
|
||||
mov fp, r0
|
||||
mov r7, r6
|
||||
mov r8, r6
|
||||
mov r1, r6
|
||||
ands sl, sb, #0x1f
|
||||
ldr r5, [r4, #0x24]
|
||||
bne _02083ED4
|
||||
ldr r0, [r4, #0x28]
|
||||
cmp r0, #3
|
||||
movls r1, #1
|
||||
_02083ED4:
|
||||
cmp r1, #0
|
||||
beq _02083F28
|
||||
bl OS_GetDTCMAddress
|
||||
ldr r1, _02084018 ; =CopyAndInterleave
|
||||
add r3, sb, r5
|
||||
cmp r3, r1
|
||||
mov r1, #1
|
||||
mov r2, #0
|
||||
bls _02083F00
|
||||
cmp sb, #0x2000000
|
||||
movlo r2, r1
|
||||
_02083F00:
|
||||
cmp r2, #0
|
||||
bne _02083F20
|
||||
cmp r0, r3
|
||||
bhs _02083F1C
|
||||
add r0, r0, #0x4000
|
||||
cmp r0, sb
|
||||
bhi _02083F20
|
||||
_02083F1C:
|
||||
mov r1, #0
|
||||
_02083F20:
|
||||
cmp r1, #0
|
||||
moveq r8, #1
|
||||
_02083F28:
|
||||
cmp r8, #0
|
||||
beq _02083F44
|
||||
ldr r1, [r4, #0x1c]
|
||||
ldr r0, _0208401C ; =0x000001FF
|
||||
orr r1, r1, r5
|
||||
tst r1, r0
|
||||
moveq r7, #1
|
||||
_02083F44:
|
||||
ldr r0, _02084020 ; =_020B2ED0
|
||||
cmp r7, #0
|
||||
ldr r0, [r0]
|
||||
cmpne r5, #0
|
||||
ldr r0, [r0, #0x60]
|
||||
movne r6, #1
|
||||
bic r0, r0, #0x7000000
|
||||
orr r0, r0, #0xa1000000
|
||||
cmp r6, #0
|
||||
str r0, [fp, #4]
|
||||
beq _0208400C
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [r4, #0x118]
|
||||
mov r7, r0
|
||||
cmp r5, r1
|
||||
bhs _02083F94
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
bl IC_InvalidateRange
|
||||
b _02083F98
|
||||
_02083F94:
|
||||
bl IC_InvalidateAll
|
||||
_02083F98:
|
||||
ldr r0, [r4, #0x11c]
|
||||
cmp r5, r0
|
||||
bhs _02083FE0
|
||||
cmp sl, #0
|
||||
beq _02083FCC
|
||||
sub sb, sb, sl
|
||||
mov r0, sb
|
||||
mov r1, #0x20
|
||||
bl DC_StoreRange
|
||||
add r0, sb, r5
|
||||
mov r1, #0x20
|
||||
bl DC_StoreRange
|
||||
add r5, r5, #0x20
|
||||
_02083FCC:
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
bl DC_InvalidateRange
|
||||
bl DC_WaitWriteBufferEmpty
|
||||
b _02083FE4
|
||||
_02083FE0:
|
||||
bl DC_FlushAll
|
||||
_02083FE4:
|
||||
ldr r1, _02084024 ; =_02083DCC
|
||||
mov r0, #0x80000
|
||||
bl OS_SetIrqFunction
|
||||
mov r0, #0x80000
|
||||
bl OS_ResetRequestIrqMask
|
||||
mov r0, #0x80000
|
||||
bl OS_EnableIrqMask
|
||||
mov r0, r7
|
||||
bl SetIrqFlag
|
||||
bl sub_02083D78
|
||||
_0208400C:
|
||||
mov r0, r6
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02084014: .word _022BB7E0
|
||||
_02084018: .word CopyAndInterleave
|
||||
_0208401C: .word 0x000001FF
|
||||
_02084020: .word _020B2ED0
|
||||
_02084024: .word sub_02083DCC
|
||||
arm_func_end Cardi_TryReadCardDma
|
||||
|
||||
arm_func_start CARDi_ReadCard
|
||||
CARDi_ReadCard: ; 0x02084028
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r4, _0208410C ; =_022BB7E0
|
||||
mov r6, r0
|
||||
_02084034:
|
||||
mov r0, #0x200
|
||||
ldr r1, [r4, #0x1c]
|
||||
rsb r0, r0, #0
|
||||
and r2, r1, r0
|
||||
cmp r2, r1
|
||||
bne _02084064
|
||||
ldr r5, [r4, #0x20]
|
||||
tst r5, #3
|
||||
bne _02084064
|
||||
ldr r0, [r4, #0x24]
|
||||
cmp r0, #0x200
|
||||
bhs _0208406C
|
||||
_02084064:
|
||||
str r2, [r6, #8]
|
||||
add r5, r6, #0x20
|
||||
_0208406C:
|
||||
mov r0, r2, lsr #8
|
||||
orr r0, r0, #0xb7000000
|
||||
mov r1, r2, lsl #0x18
|
||||
bl CARDi_SetRomOp
|
||||
mov ip, #0
|
||||
ldr r0, [r6, #4]
|
||||
ldr r2, _02084110 ; =0x040001A4
|
||||
mov lr, ip
|
||||
str r0, [r2]
|
||||
ldr r1, _02084114 ; =0x04100010
|
||||
_02084094:
|
||||
ldr r3, [r2]
|
||||
tst r3, #0x800000
|
||||
beq _020840B4
|
||||
ldr r0, [r1]
|
||||
cmp lr, #0x200
|
||||
strlo r0, [r5, ip, lsl #2]
|
||||
addlo lr, lr, #4
|
||||
addlo ip, ip, #1
|
||||
_020840B4:
|
||||
tst r3, #0x80000000
|
||||
bne _02084094
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r5, r0
|
||||
bne _020840F8
|
||||
ldr r0, _0208410C ; =_022BB7E0
|
||||
ldr r1, [r0, #0x1c]
|
||||
add r1, r1, #0x200
|
||||
str r1, [r0, #0x1c]
|
||||
ldr r1, [r0, #0x20]
|
||||
add r1, r1, #0x200
|
||||
str r1, [r0, #0x20]
|
||||
ldr r1, [r0, #0x24]
|
||||
subs r1, r1, #0x200
|
||||
str r1, [r0, #0x24]
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
b _02084034
|
||||
_020840F8:
|
||||
mov r0, r6
|
||||
bl CARDi_ReadFromCache
|
||||
cmp r0, #0
|
||||
bne _02084034
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0208410C: .word _022BB7E0
|
||||
_02084110: .word 0x040001A4
|
||||
_02084114: .word 0x04100010
|
||||
arm_func_end CARDi_ReadCard
|
||||
|
||||
arm_func_start sub_02084118
|
||||
sub_02084118: ; 0x02084118
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0xb8000000
|
||||
mov r1, #0
|
||||
bl CARDi_SetRomOp
|
||||
ldr r1, _02084168 ; =_020B2ED0
|
||||
mov r0, #0x2000
|
||||
ldr r1, [r1]
|
||||
rsb r0, r0, #0
|
||||
ldr r2, [r1, #0x60]
|
||||
ldr r1, _0208416C ; =0x040001A4
|
||||
bic r2, r2, #0x7000000
|
||||
orr r2, r2, #0xa7000000
|
||||
and r0, r2, r0
|
||||
str r0, [r1]
|
||||
_02084150:
|
||||
ldr r0, [r1]
|
||||
tst r0, #0x800000
|
||||
beq _02084150
|
||||
ldr r0, _02084170 ; =0x04100010
|
||||
ldr r0, [r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02084168: .word _020B2ED0
|
||||
_0208416C: .word 0x040001A4
|
||||
_02084170: .word 0x04100010
|
||||
arm_func_end sub_02084118
|
||||
|
||||
arm_func_start Cardi_ReadRomSyncCore
|
||||
Cardi_ReadRomSyncCore: ; 0x02084174
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r4, _02084204 ; =_022BBE20
|
||||
mov r0, r4
|
||||
bl CARDi_ReadFromCache
|
||||
cmp r0, #0
|
||||
beq _02084198
|
||||
ldr r1, [r4]
|
||||
mov r0, r4
|
||||
blx r1
|
||||
_02084198:
|
||||
ldr r4, _02084208 ; =_022BB7E0
|
||||
bl sub_02084118
|
||||
bl Cardi_CheckPulledOutCore
|
||||
ldr r0, [r4]
|
||||
mov r1, #0
|
||||
str r1, [r0]
|
||||
ldr r5, [r4, #0x38]
|
||||
ldr r6, [r4, #0x3c]
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [r4, #0x114]
|
||||
mov r7, r0
|
||||
bic r0, r1, #0x4c
|
||||
str r0, [r4, #0x114]
|
||||
add r0, r4, #0x10c
|
||||
bl OS_WakeupThread
|
||||
ldr r0, [r4, #0x114]
|
||||
tst r0, #0x10
|
||||
beq _020841E8
|
||||
add r0, r4, #0x44
|
||||
bl OS_WakeupThreadDirect
|
||||
_020841E8:
|
||||
mov r0, r7
|
||||
bl SetIrqFlag
|
||||
cmp r5, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r0, r6
|
||||
blx r5
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02084204: .word _022BBE20
|
||||
_02084208: .word _022BB7E0
|
||||
arm_func_end Cardi_ReadRomSyncCore
|
||||
|
||||
arm_func_start Cardi_ReadRom
|
||||
Cardi_ReadRom: ; 0x0208420C
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
mov sl, r0
|
||||
mov sb, r1
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
ldr r4, _020842F0 ; =_022BBE20
|
||||
ldr r5, _020842F4 ; =_022BB7E0
|
||||
bl Card_CheckEnabled
|
||||
bl EnableIrqFlag
|
||||
mov r6, r0
|
||||
b _02084240
|
||||
_02084238:
|
||||
add r0, r5, #0x10c
|
||||
bl OS_SleepThread
|
||||
_02084240:
|
||||
ldr r0, [r5, #0x114]
|
||||
tst r0, #4
|
||||
bne _02084238
|
||||
ldr r0, [r5, #0x114]
|
||||
ldr r2, [sp, #0x20]
|
||||
ldr r1, [sp, #0x24]
|
||||
orr r3, r0, #4
|
||||
mov r0, r6
|
||||
str r3, [r5, #0x114]
|
||||
str r2, [r5, #0x38]
|
||||
str r1, [r5, #0x3c]
|
||||
bl SetIrqFlag
|
||||
ldr r0, _020842F8 ; =_022BBE00
|
||||
str sl, [r5, #0x28]
|
||||
ldr r0, [r0]
|
||||
str r8, [r5, #0x20]
|
||||
add r0, sb, r0
|
||||
str r0, [r5, #0x1c]
|
||||
str r7, [r5, #0x24]
|
||||
cmp sl, #3
|
||||
bhi _0208429C
|
||||
mov r0, sl
|
||||
bl MI_StopDma
|
||||
_0208429C:
|
||||
mov r0, r4
|
||||
bl Cardi_TryReadCardDma
|
||||
cmp r0, #0
|
||||
beq _020842C0
|
||||
ldr r0, [sp, #0x28]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
bl Card_WaitRomAsync
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_020842C0:
|
||||
ldr r0, [sp, #0x28]
|
||||
cmp r0, #0
|
||||
beq _020842D8
|
||||
ldr r0, _020842FC ; =Cardi_ReadRomSyncCore
|
||||
bl Cardi_SetTask
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_020842D8:
|
||||
ldr r1, _02084300 ; =_022B966C
|
||||
mov r0, r5
|
||||
ldr r1, [r1, #4]
|
||||
str r1, [r5, #0x104]
|
||||
bl Cardi_ReadRomSyncCore
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_020842F0: .word _022BBE20
|
||||
_020842F4: .word _022BB7E0
|
||||
_020842F8: .word _022BBE00
|
||||
_020842FC: .word Cardi_ReadRomSyncCore
|
||||
_02084300: .word _022B966C
|
||||
arm_func_end Cardi_ReadRom
|
||||
|
||||
arm_func_start CARD_Init
|
||||
CARD_Init: ; 0x02084304
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr ip, _02084360 ; =_022BB7E0
|
||||
ldr r0, [ip, #0x114]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
mov r2, #0
|
||||
ldr r0, _02084364 ; =_022BBE00
|
||||
sub r1, r2, #1
|
||||
mov r3, #1
|
||||
str r3, [ip, #0x114]
|
||||
str r2, [ip, #0x24]
|
||||
str r2, [ip, #0x20]
|
||||
str r2, [ip, #0x1c]
|
||||
str r1, [ip, #0x28]
|
||||
str r2, [ip, #0x38]
|
||||
str r2, [ip, #0x3c]
|
||||
str r2, [r0]
|
||||
bl CARDi_InitCommon
|
||||
bl CARDi_GetRomAccessor
|
||||
ldr r1, _02084364 ; =_022BBE00
|
||||
str r0, [r1, #0x20]
|
||||
bl CARD_InitPulledOutCallback
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02084360: .word _022BB7E0
|
||||
_02084364: .word _022BBE00
|
||||
arm_func_end CARD_Init
|
||||
|
||||
arm_func_start Card_WaitRomAsync
|
||||
Card_WaitRomAsync: ; 0x02084368
|
||||
ldr ip, _02084370 ; =Cardi_WaitAsync
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_02084370: .word Cardi_WaitAsync
|
||||
arm_func_end Card_WaitRomAsync
|
||||
|
||||
arm_func_start CARDi_GetRomAccessor
|
||||
CARDi_GetRomAccessor: ; 0x02084374
|
||||
ldr r0, _0208437C ; =CARDi_ReadCard
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0208437C: .word CARDi_ReadCard
|
||||
arm_func_end CARDi_GetRomAccessor
|
||||
|
||||
260
lib/NitroSDK/asm/ctrdg.s
Normal file
260
lib/NitroSDK/asm/ctrdg.s
Normal file
@@ -0,0 +1,260 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CTRDGi_InitCommon
|
||||
CTRDGi_InitCommon: ; 0x02084734
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r1, _02084760 ; =_022BC04C
|
||||
mov r3, #0
|
||||
ldr r2, _02084764 ; =0x05000001
|
||||
add r0, sp, #0
|
||||
str r3, [sp]
|
||||
blx SVC_CpuSet
|
||||
bl OS_GetLockID
|
||||
ldr r1, _02084768 ; =_022BC048
|
||||
strh r0, [r1, #6]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02084760: .word _022BC04C
|
||||
_02084764: .word 0x05000001
|
||||
_02084768: .word _022BC048
|
||||
arm_func_end CTRDGi_InitCommon
|
||||
|
||||
arm_func_start Ctrdg_IsOptionCartridge
|
||||
Ctrdg_IsOptionCartridge: ; 0x0208476C
|
||||
stmdb sp!, {r3, lr}
|
||||
bl Ctrdg_IsExisting
|
||||
cmp r0, #0
|
||||
beq _0208478C
|
||||
bl Ctrdgi_IsAgbCartridgeAtInit
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r3, pc}
|
||||
_0208478C:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Ctrdg_IsOptionCartridge
|
||||
|
||||
arm_func_start Ctrdgi_IsAgbCartridgeAtInit
|
||||
Ctrdgi_IsAgbCartridgeAtInit: ; 0x02084794
|
||||
ldr r0, _020847A8 ; =0x027FFC30
|
||||
ldrb r0, [r0, #5]
|
||||
mov r0, r0, lsl #0x1f
|
||||
mov r0, r0, lsr #0x1f
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_020847A8: .word 0x027FFC30
|
||||
arm_func_end Ctrdgi_IsAgbCartridgeAtInit
|
||||
|
||||
arm_func_start Ctrdg_IsExisting
|
||||
Ctrdg_IsExisting: ; 0x020847AC
|
||||
stmdb sp!, {r4, lr}
|
||||
sub sp, sp, #0x10
|
||||
ldr r2, _020848AC ; =0x027FFC30
|
||||
mov r4, #1
|
||||
ldrh r1, [r2]
|
||||
rsb r0, r4, #0x10000
|
||||
cmp r1, r0
|
||||
addeq sp, sp, #0x10
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldrb r0, [r2, #5]
|
||||
mov r0, r0, lsl #0x1e
|
||||
mov r0, r0, lsr #0x1f
|
||||
cmp r0, #1
|
||||
addeq sp, sp, #0x10
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldr r0, _020848B0 ; =_022BC048
|
||||
add r1, sp, #8
|
||||
ldrh r0, [r0, #6]
|
||||
bl CTRDGi_LockByProcessor
|
||||
add r0, sp, #0
|
||||
bl CTRDGi_ChangeLatestAccessCycle
|
||||
mov r0, #0x8000000
|
||||
ldrb r2, [r0, #0xb2]
|
||||
cmp r2, #0x96
|
||||
bne _0208482C
|
||||
ldr r1, _020848AC ; =0x027FFC30
|
||||
ldrh r0, [r0, #0xbe]
|
||||
ldrh r1, [r1]
|
||||
cmp r1, r0
|
||||
bne _02084874
|
||||
_0208482C:
|
||||
cmp r2, #0x96
|
||||
beq _0208484C
|
||||
ldr r1, _020848AC ; =0x027FFC30
|
||||
ldr r0, _020848B4 ; =0x0801FFFE
|
||||
ldrh r1, [r1]
|
||||
ldrh r0, [r0]
|
||||
cmp r1, r0
|
||||
bne _02084874
|
||||
_0208484C:
|
||||
ldr r2, _020848AC ; =0x027FFC30
|
||||
mov r0, #0x8000000
|
||||
ldr r1, [r2, #8]
|
||||
ldr r0, [r0, #0xac]
|
||||
cmp r1, r0
|
||||
beq _02084888
|
||||
ldrb r0, [r2, #5]
|
||||
mov r0, r0, lsl #0x1f
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _02084888
|
||||
_02084874:
|
||||
ldr r1, _020848AC ; =0x027FFC30
|
||||
mov r4, #0
|
||||
ldrb r0, [r1, #5]
|
||||
orr r0, r0, #2
|
||||
strb r0, [r1, #5]
|
||||
_02084888:
|
||||
add r0, sp, #0
|
||||
bl CTRDGi_RestoreAccessCycle
|
||||
ldr r0, _020848B0 ; =_022BC048
|
||||
add r1, sp, #8
|
||||
ldrh r0, [r0, #6]
|
||||
bl CTRDGi_UnlockByProcessor
|
||||
mov r0, r4
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_020848AC: .word 0x027FFC30
|
||||
_020848B0: .word _022BC048
|
||||
_020848B4: .word 0x0801FFFE
|
||||
arm_func_end Ctrdg_IsExisting
|
||||
|
||||
arm_func_start CTRDGi_ChangeLatestAccessCycle
|
||||
CTRDGi_ChangeLatestAccessCycle: ; 0x020848B8
|
||||
ldr r2, _020848FC ; =0x04000204
|
||||
ldrh r1, [r2]
|
||||
and r1, r1, #0xc
|
||||
mov r1, r1, asr #2
|
||||
str r1, [r0]
|
||||
ldrh r1, [r2]
|
||||
and r1, r1, #0x10
|
||||
mov r1, r1, asr #4
|
||||
str r1, [r0, #4]
|
||||
ldrh r0, [r2]
|
||||
bic r0, r0, #0xc
|
||||
orr r0, r0, #0xc
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r2]
|
||||
bic r0, r0, #0x10
|
||||
strh r0, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_020848FC: .word 0x04000204
|
||||
arm_func_end CTRDGi_ChangeLatestAccessCycle
|
||||
|
||||
arm_func_start CTRDGi_RestoreAccessCycle
|
||||
CTRDGi_RestoreAccessCycle: ; 0x02084900
|
||||
ldr r3, _02084930 ; =0x04000204
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r3]
|
||||
bic r1, r1, #0xc
|
||||
orr r1, r1, r2, lsl #2
|
||||
strh r1, [r3]
|
||||
ldrh r1, [r3]
|
||||
ldr r2, [r0, #4]
|
||||
bic r0, r1, #0x10
|
||||
orr r0, r0, r2, lsl #4
|
||||
strh r0, [r3]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02084930: .word 0x04000204
|
||||
arm_func_end CTRDGi_RestoreAccessCycle
|
||||
|
||||
arm_func_start CTRDGi_LockByProcessor
|
||||
CTRDGi_LockByProcessor: ; 0x02084934
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r5, _0208498C ; =0x027FFFE8
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r4, #1
|
||||
_02084948:
|
||||
bl EnableIrqFlag
|
||||
str r0, [r6, #4]
|
||||
mov r0, r5
|
||||
bl OS_ReadOwnerOfLockWord
|
||||
ands r0, r0, #0x40
|
||||
str r0, [r6]
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r0, r7
|
||||
bl OS_TryLockCartridge
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
ldr r0, [r6, #4]
|
||||
bl SetIrqFlag
|
||||
mov r0, r4
|
||||
blx SVC_WaitByLoop
|
||||
b _02084948
|
||||
_02084988:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0208498C: .word 0x027FFFE8
|
||||
arm_func_end CTRDGi_LockByProcessor
|
||||
|
||||
arm_func_start CTRDGi_UnlockByProcessor
|
||||
CTRDGi_UnlockByProcessor: ; 0x02084990
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r1
|
||||
ldr r1, [r4]
|
||||
cmp r1, #0
|
||||
bne _020849A8
|
||||
bl OS_UnlockCartridgeVeneer
|
||||
_020849A8:
|
||||
ldr r0, [r4, #4]
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end CTRDGi_UnlockByProcessor
|
||||
|
||||
arm_func_start CTRDGi_SendtoPxi
|
||||
CTRDGi_SendtoPxi: ; 0x020849B4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r1, r7
|
||||
mov r0, #0xd
|
||||
mov r2, #0
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r6, #1
|
||||
mov r5, #0xd
|
||||
mov r4, #0
|
||||
_020849E0:
|
||||
mov r0, r6
|
||||
blx SVC_WaitByLoop
|
||||
mov r0, r5
|
||||
mov r1, r7
|
||||
mov r2, r4
|
||||
bl PXI_SendWordByFifo
|
||||
cmp r0, #0
|
||||
bne _020849E0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end CTRDGi_SendtoPxi
|
||||
|
||||
arm_func_start Ctrdg_Enable
|
||||
Ctrdg_Enable: ; 0x02084A04
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _02084A48 ; =_022BC048
|
||||
mov r4, r0
|
||||
str r5, [r1]
|
||||
bl Ctrdg_IsOptionCartridge
|
||||
cmp r0, #0
|
||||
bne _02084A3C
|
||||
cmp r5, #0
|
||||
movne r1, #0x1000
|
||||
moveq r1, #0x5000
|
||||
mov r0, #0xf000
|
||||
bl OS_SetDPermissionsForProtectionRegion
|
||||
_02084A3C:
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02084A48: .word _022BC048
|
||||
arm_func_end Ctrdg_Enable
|
||||
|
||||
259
lib/NitroSDK/asm/ctrdg_proc.s
Normal file
259
lib/NitroSDK/asm/ctrdg_proc.s
Normal file
@@ -0,0 +1,259 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CTRDG_Init
|
||||
CTRDG_Init: ; 0x02084A4C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r0, _02084AEC ; =_022BC060
|
||||
ldr r1, [r0, #8]
|
||||
cmp r1, #0
|
||||
ldmneia sp!, {r3, r4, r5, pc}
|
||||
mov r1, #1
|
||||
str r1, [r0, #8]
|
||||
bl CTRDGi_InitCommon
|
||||
ldr r0, _02084AEC ; =_022BC060
|
||||
mov r1, #0
|
||||
str r1, [r0, #0xc]
|
||||
bl PXI_Init
|
||||
mov r5, #0xd
|
||||
mov r4, #1
|
||||
_02084A84:
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl PXI_IsCallbackReady
|
||||
cmp r0, #0
|
||||
beq _02084A84
|
||||
ldr r1, _02084AF0 ; =CTRDGi_CallbackForInitModuleInfo
|
||||
mov r0, #0xd
|
||||
bl PXI_SetFifoRecvCallback
|
||||
bl CTRDGi_InitModuleInfo
|
||||
mov r0, #0xd
|
||||
mov r1, #0
|
||||
bl PXI_SetFifoRecvCallback
|
||||
ldr r1, _02084AF4 ; =CTRDGi_PulledOutCallback
|
||||
mov r0, #0xd
|
||||
bl PXI_SetFifoRecvCallback
|
||||
ldr r1, _02084AEC ; =_022BC060
|
||||
mov r2, #0
|
||||
ldr r0, _02084AF8 ; =_022BC140
|
||||
str r2, [r1, #0x18]
|
||||
bl Ctrdgi_InitTaskThread
|
||||
ldr r1, _02084AFC ; =_02084D90
|
||||
mov r0, #0x11
|
||||
bl PXI_SetFifoRecvCallback
|
||||
mov r0, #0
|
||||
bl Ctrdg_Enable
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02084AEC: .word _022BC060
|
||||
_02084AF0: .word CTRDGi_CallbackForInitModuleInfo
|
||||
_02084AF4: .word CTRDGi_PulledOutCallback
|
||||
_02084AF8: .word _022BC140
|
||||
_02084AFC: .word Ctrdgi_CallbackForSetPhi
|
||||
arm_func_end CTRDG_Init
|
||||
|
||||
arm_func_start CTRDGi_InitModuleInfo
|
||||
CTRDGi_InitModuleInfo: ; 0x02084B00
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0x10
|
||||
ldr r0, _02084CC8 ; =_022BC060
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
addne sp, sp, #0x10
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
ldr r1, _02084CCC ; =0x04000300
|
||||
mov r2, #1
|
||||
ldrh r1, [r1]
|
||||
str r2, [r0]
|
||||
tst r1, #1
|
||||
addeq sp, sp, #0x10
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
mov r0, #0x40000
|
||||
bl OS_SetIrqMask
|
||||
ldr r3, _02084CD0 ; =0x04000208
|
||||
mov r2, #1
|
||||
ldrh r5, [r3]
|
||||
ldr r1, _02084CD4 ; =_022BC04C
|
||||
mov r4, r0
|
||||
strh r2, [r3]
|
||||
ldrh r0, [r1, #2]
|
||||
add r1, sp, #8
|
||||
bl CTRDGi_LockByProcessor
|
||||
ldr r1, _02084CD8 ; =0x04000204
|
||||
add r0, sp, #0
|
||||
ldrh r1, [r1]
|
||||
and r1, r1, #0x8000
|
||||
mov r6, r1, asr #0xf
|
||||
bl CTRDGi_ChangeLatestAccessCycle
|
||||
ldr r3, _02084CD8 ; =0x04000204
|
||||
ldr r0, _02084CDC ; =_022BC080
|
||||
ldrh r2, [r3]
|
||||
add r0, r0, #0x80
|
||||
mov r1, #0x40
|
||||
bic r2, r2, #0x8000
|
||||
strh r2, [r3]
|
||||
bl DC_InvalidateRange
|
||||
ldr r2, _02084CDC ; =_022BC080
|
||||
ldr r1, _02084CE0 ; =0x08000080
|
||||
mov r0, #1
|
||||
mov r3, #0x40
|
||||
add r2, r2, #0x80
|
||||
bl MI_DmaCopy16
|
||||
ldr r2, _02084CD8 ; =0x04000204
|
||||
add r0, sp, #0
|
||||
ldrh r1, [r2]
|
||||
bic r1, r1, #0x8000
|
||||
orr r1, r1, r6, lsl #15
|
||||
strh r1, [r2]
|
||||
bl CTRDGi_RestoreAccessCycle
|
||||
ldr r0, _02084CD4 ; =_022BC04C
|
||||
add r1, sp, #8
|
||||
ldrh r0, [r0, #2]
|
||||
bl CTRDGi_UnlockByProcessor
|
||||
ldr r1, _02084CE4 ; =0x027FFF9B
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _02084BFC
|
||||
ldrb r0, [r1, #-1]
|
||||
cmp r0, #0
|
||||
bne _02084C60
|
||||
_02084BFC:
|
||||
ldr r3, _02084CDC ; =_022BC080
|
||||
ldr r6, _02084CE8 ; =0x027FFC30
|
||||
ldrh r0, [r3, #0xbe]
|
||||
mov r2, #0
|
||||
strh r0, [r6]
|
||||
b _02084C28
|
||||
_02084C14:
|
||||
add r0, r3, r2
|
||||
ldrb r1, [r0, #0xb5]
|
||||
add r0, r6, r2
|
||||
add r2, r2, #1
|
||||
strb r1, [r0, #2]
|
||||
_02084C28:
|
||||
cmp r2, #3
|
||||
blt _02084C14
|
||||
ldrh r0, [r3, #0xb0]
|
||||
strh r0, [r6, #6]
|
||||
ldr r0, [r3, #0xac]
|
||||
str r0, [r6, #8]
|
||||
bl Ctrdg_IsExisting
|
||||
cmp r0, #0
|
||||
movne r2, #1
|
||||
ldr r1, _02084CE4 ; =0x027FFF9B
|
||||
moveq r2, #0
|
||||
mov r0, #1
|
||||
strb r2, [r1]
|
||||
strb r0, [r1, #-1]
|
||||
_02084C60:
|
||||
ldr r0, _02084CEC ; =0xFFFF0020
|
||||
ldr r1, _02084CF0 ; =_022BC084
|
||||
mov r2, #0x9c
|
||||
bl MTi_CpuCopy32
|
||||
bl DC_FlushAll
|
||||
ldr r0, _02084CDC ; =_022BC080
|
||||
add r0, r0, #0xfe000000
|
||||
mov r0, r0, lsr #5
|
||||
mov r0, r0, lsl #6
|
||||
orr r0, r0, #1
|
||||
bl CTRDGi_SendtoPxi
|
||||
mov r7, #1
|
||||
ldr r6, _02084CD4 ; =_022BC04C
|
||||
b _02084CA0
|
||||
_02084C98:
|
||||
mov r0, r7
|
||||
blx SVC_WaitByLoop
|
||||
_02084CA0:
|
||||
ldrh r0, [r6]
|
||||
cmp r0, #1
|
||||
bne _02084C98
|
||||
ldr r2, _02084CD0 ; =0x04000208
|
||||
mov r0, r4
|
||||
ldrh r1, [r2]
|
||||
strh r5, [r2]
|
||||
bl OS_SetIrqMask
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02084CC8: .word _022BC060
|
||||
_02084CCC: .word 0x04000300
|
||||
_02084CD0: .word 0x04000208
|
||||
_02084CD4: .word _022BC04C
|
||||
_02084CD8: .word 0x04000204
|
||||
_02084CDC: .word _022BC080
|
||||
_02084CE0: .word 0x08000080
|
||||
_02084CE4: .word 0x027FFF9B
|
||||
_02084CE8: .word 0x027FFC30
|
||||
_02084CEC: .word 0xFFFF0020
|
||||
_02084CF0: .word _022BC084
|
||||
arm_func_end CTRDGi_InitModuleInfo
|
||||
|
||||
arm_func_start CTRDGi_CallbackForInitModuleInfo
|
||||
CTRDGi_CallbackForInitModuleInfo: ; 0x02084CF4
|
||||
stmdb sp!, {r3, lr}
|
||||
and r0, r1, #0x3f
|
||||
cmp r0, #1
|
||||
bne _02084D14
|
||||
ldr r0, _02084D1C ; =_022BC04C
|
||||
mov r1, #1
|
||||
strh r1, [r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
_02084D14:
|
||||
bl WaitForever2
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02084D1C: .word _022BC04C
|
||||
arm_func_end CTRDGi_CallbackForInitModuleInfo
|
||||
|
||||
arm_func_start CTRDGi_PulledOutCallback
|
||||
CTRDGi_PulledOutCallback: ; 0x02084D20
|
||||
stmdb sp!, {r3, lr}
|
||||
and r0, r1, #0x3f
|
||||
cmp r0, #0x11
|
||||
bne _02084D70
|
||||
ldr r0, _02084D78 ; =_022BC060
|
||||
ldr r1, [r0, #0xc]
|
||||
cmp r1, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
ldr r1, [r0, #0x18]
|
||||
mov r0, #0
|
||||
cmp r1, #0
|
||||
beq _02084D54
|
||||
blx r1
|
||||
_02084D54:
|
||||
cmp r0, #0
|
||||
beq _02084D60
|
||||
bl CTRDG_TerminateForPulledOut
|
||||
_02084D60:
|
||||
ldr r0, _02084D78 ; =_022BC060
|
||||
mov r1, #1
|
||||
str r1, [r0, #0xc]
|
||||
ldmia sp!, {r3, pc}
|
||||
_02084D70:
|
||||
bl WaitForever2
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02084D78: .word _022BC060
|
||||
arm_func_end CTRDGi_PulledOutCallback
|
||||
|
||||
arm_func_start CTRDG_TerminateForPulledOut
|
||||
CTRDG_TerminateForPulledOut: ; 0x02084D7C
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #2
|
||||
bl CTRDGi_SendtoPxi
|
||||
bl WaitForever2
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end CTRDG_TerminateForPulledOut
|
||||
|
||||
arm_func_start Ctrdgi_CallbackForSetPhi
|
||||
Ctrdgi_CallbackForSetPhi: ; 0x02084D90
|
||||
ldr r0, _02084DA0 ; =_022BC060
|
||||
mov r1, #0
|
||||
str r1, [r0, #4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02084DA0: .word _022BC060
|
||||
arm_func_end Ctrdgi_CallbackForSetPhi
|
||||
|
||||
127
lib/NitroSDK/asm/ctrdg_task.s
Normal file
127
lib/NitroSDK/asm/ctrdg_task.s
Normal file
@@ -0,0 +1,127 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start Ctrdgi_InitTaskThread
|
||||
Ctrdgi_InitTaskThread: ; 0x02084DA4
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #8
|
||||
mov r5, r0
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _02084E20 ; =_022BC228
|
||||
mov r4, r0
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _02084E10
|
||||
add r0, r5, #0xc4
|
||||
str r5, [r1]
|
||||
bl Ctrdgi_InitTaskInfo
|
||||
ldr r0, _02084E24 ; =_022BC22C
|
||||
bl Ctrdgi_InitTaskInfo
|
||||
mov r0, #0
|
||||
str r0, [r5, #0xc0]
|
||||
mov r2, #0x400
|
||||
ldr r1, _02084E28 ; =Ctrdgi_TaskThread
|
||||
ldr r3, _02084E2C ; =_022BC650
|
||||
mov r0, r5
|
||||
str r2, [sp]
|
||||
mov r2, #0x14
|
||||
str r2, [sp, #4]
|
||||
mov r2, r5
|
||||
bl OS_CreateThread
|
||||
mov r0, r5
|
||||
bl OS_WakeupThreadDirect
|
||||
_02084E10:
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02084E20: .word _022BC228
|
||||
_02084E24: .word _022BC22C
|
||||
_02084E28: .word Ctrdgi_TaskThread
|
||||
_02084E2C: .word _022BC650
|
||||
arm_func_end Ctrdgi_InitTaskThread
|
||||
|
||||
arm_func_start Ctrdgi_InitTaskInfo
|
||||
Ctrdgi_InitTaskInfo: ; 0x02084E30
|
||||
ldr ip, _02084E40 ; =MI_CpuFill8
|
||||
mov r1, #0
|
||||
mov r2, #0x24
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_02084E40: .word MI_CpuFill8
|
||||
arm_func_end Ctrdgi_InitTaskInfo
|
||||
|
||||
arm_func_start Ctrdgi_TaskThread
|
||||
Ctrdgi_TaskThread: ; 0x02084E44
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x24
|
||||
mov r4, #0
|
||||
mov r8, r0
|
||||
add r6, sp, #0
|
||||
mov sl, r4
|
||||
mov sb, r4
|
||||
mov r5, r4
|
||||
mov fp, #0x24
|
||||
_02084E68:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, fp
|
||||
bl MI_CpuFill8
|
||||
bl EnableIrqFlag
|
||||
ldr r1, [r8, #0xc0]
|
||||
mov r7, r0
|
||||
cmp r1, #0
|
||||
bne _02084EA0
|
||||
_02084E8C:
|
||||
mov r0, r4
|
||||
bl OS_SleepThread
|
||||
ldr r0, [r8, #0xc0]
|
||||
cmp r0, #0
|
||||
beq _02084E8C
|
||||
_02084EA0:
|
||||
ldr lr, [r8, #0xc0]
|
||||
add ip, sp, #0
|
||||
ldmia lr!, {r0, r1, r2, r3}
|
||||
stmia ip!, {r0, r1, r2, r3}
|
||||
ldmia lr!, {r0, r1, r2, r3}
|
||||
stmia ip!, {r0, r1, r2, r3}
|
||||
ldr r1, [lr]
|
||||
mov r0, r7
|
||||
str r1, [ip]
|
||||
bl SetIrqFlag
|
||||
ldr r1, [sp]
|
||||
cmp r1, #0
|
||||
beq _02084EE0
|
||||
mov r0, r6
|
||||
blx r1
|
||||
str r0, [sp, #8]
|
||||
_02084EE0:
|
||||
bl EnableIrqFlag
|
||||
ldr r2, [sp, #4]
|
||||
ldr r1, _02084F30 ; =_022BC228
|
||||
mov r7, r0
|
||||
strb sl, [r1, #0x26]
|
||||
cmp r2, #0
|
||||
beq _02084F04
|
||||
mov r0, r6
|
||||
blx r2
|
||||
_02084F04:
|
||||
ldr r0, _02084F30 ; =_022BC228
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _02084F24
|
||||
mov r0, r7
|
||||
str sb, [r8, #0xc0]
|
||||
bl SetIrqFlag
|
||||
b _02084E68
|
||||
_02084F24:
|
||||
bl OS_ExitThread
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02084F30: .word _022BC228
|
||||
arm_func_end Ctrdgi_TaskThread
|
||||
|
||||
140
lib/NitroSDK/asm/include/main_0207F894.inc
Normal file
140
lib/NitroSDK/asm/include/main_0207F894.inc
Normal file
@@ -0,0 +1,140 @@
|
||||
#pragma once
|
||||
.public _02000BC4
|
||||
.public _020AEC5C
|
||||
.public _020B2BB4
|
||||
.public _020B2BB8
|
||||
.public _020B2BC0
|
||||
.public _020B2BC4
|
||||
.public _020B2C84
|
||||
.public _020B2D88
|
||||
.public _020B2E9C
|
||||
.public _020B2ED0
|
||||
.public _020B2ED4
|
||||
.public _020B2FBC
|
||||
.public _020B3364
|
||||
.public _022B966C
|
||||
.public _022BB5EC
|
||||
.public _022BB5FC
|
||||
.public _022BB604
|
||||
.public _022BB60C
|
||||
.public _022BB614
|
||||
.public _022BB670
|
||||
.public _022BB68C
|
||||
.public _022BB6AC
|
||||
.public _022BB6B8
|
||||
.public _022BB6C4
|
||||
.public _022BB6C8
|
||||
.public _022BB6D8
|
||||
.public _022BB6F0
|
||||
.public _022BB6F4
|
||||
.public _022BB718
|
||||
.public _022BB724
|
||||
.public _022BB760
|
||||
.public _022BB780
|
||||
.public _022BB7E0
|
||||
.public _022BBE00
|
||||
.public _022BBE20
|
||||
.public _022BC040
|
||||
.public _022BC048
|
||||
.public _022BC04C
|
||||
.public _022BC060
|
||||
.public _022BC080
|
||||
.public _022BC084
|
||||
.public _022BC140
|
||||
.public _022BC228
|
||||
.public _022BC22C
|
||||
.public _022BC650
|
||||
.public _022BCA74
|
||||
.public _f2d
|
||||
.public _ll_udiv
|
||||
.public Card_CheckEnabled
|
||||
.public Card_IsPulledOut
|
||||
.public Cardi_CheckPulledOutCore
|
||||
.public Cardi_ReadRom
|
||||
.public Cardi_Request
|
||||
.public Cardi_SetTask
|
||||
.public Cardi_WaitAsync
|
||||
.public CARDi_InitCommon
|
||||
.public CARDi_TaskThread
|
||||
.public CARDi_OnFifoRecv
|
||||
.public CARD_Init
|
||||
.public CARD_InitPulledOutCallback
|
||||
.public CopyAndInterleave
|
||||
.public Ctrdg_Enable
|
||||
.public Ctrdg_IsExisting
|
||||
.public Ctrdgi_Enable
|
||||
.public Ctrdgi_InitTaskThread
|
||||
.public Ctrdgi_IsExisting
|
||||
.public CTRDGi_InitCommon
|
||||
.public CTRDGi_LockByProcessor
|
||||
.public CTRDGi_UnlockByProcessor
|
||||
.public CTRDGi_RestoreAccessCycle
|
||||
.public CTRDGi_ChangeLatestAccessCycle
|
||||
.public CTRDGi_SendtoPxi
|
||||
.public Dgt_Hash2Init
|
||||
.public Dgt_Hash2Update
|
||||
.public Dgt_Hash2GetHash
|
||||
.public DC_FlushAll
|
||||
.public DC_FlushRange
|
||||
.public DC_InvalidateRange
|
||||
.public DC_StoreRange
|
||||
.public DC_WaitWriteBufferEmpty
|
||||
.public EnableIrqFlag
|
||||
.public fflush
|
||||
.public FileInit
|
||||
.public FS_CloseFile
|
||||
.public FS_InitArchive
|
||||
.public FS_LoadArchive
|
||||
.public FS_NotifyArchiveAsyncEnd
|
||||
.public FS_OpenFileDirect
|
||||
.public FS_OpenFileFast
|
||||
.public FS_ReadFile
|
||||
.public FS_RegisterArchiveName
|
||||
.public FS_SetArchiveProc
|
||||
.public FSi_FindPath
|
||||
.public GetIrqFlag
|
||||
.public IC_InvalidateAll
|
||||
.public IC_InvalidateRange
|
||||
.public MI_CpuCopy8
|
||||
.public MI_CpuFill8
|
||||
.public MI_DmaCopy16
|
||||
.public MI_StopDma
|
||||
.public MIi_UncompressBackward
|
||||
.public MTi_CardDmaCopy32
|
||||
.public MTi_CpuClear32
|
||||
.public MTi_CpuClearFast
|
||||
.public MTi_CpuCopy32
|
||||
.public OS_DisableIrqMask
|
||||
.public OS_EnableIrqMask
|
||||
.public OS_GetDTCMAddress
|
||||
.public OS_GetLockID
|
||||
.public OS_InitMutex
|
||||
.public OS_IsTickAvailable
|
||||
.public OS_LockCard
|
||||
.public OS_ReadOwnerOfLockWord
|
||||
.public OS_ResetRequestIrqMask
|
||||
.public OS_SetDPermissionsForProtectionRegion
|
||||
.public OS_SetIrqFunction
|
||||
.public OS_SetIrqMask
|
||||
.public OS_SetThreadPriority
|
||||
.public OS_SleepThread
|
||||
.public OS_SpinWait
|
||||
.public OS_TryLockCartridge
|
||||
.public OS_UnlockCard
|
||||
.public OS_UnlockCartridgeVeneer
|
||||
.public OS_WakeupThread
|
||||
.public OS_WakeupThreadDirect
|
||||
.public OSi_ReferSymbol
|
||||
.public PM_ForceToPowerOff
|
||||
.public PXI_Init
|
||||
.public PXI_IsCallbackReady
|
||||
.public PXI_SendWordByFifo
|
||||
.public PXI_SetFifoRecvCallback
|
||||
.public PXIi_HandlerRecvFifoNotEmpty
|
||||
.public SetIrqFlag
|
||||
.public OS_CreateThread
|
||||
.public SVC_CpuSet
|
||||
.public SVC_WaitByLoop
|
||||
.public OS_ExitThread
|
||||
.public WaitForever2
|
||||
.public WaitForInterrupt
|
||||
222
lib/NitroSDK/asm/math_crc.s
Normal file
222
lib/NitroSDK/asm/math_crc.s
Normal file
@@ -0,0 +1,222 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start Mathi_Crc8InitTable
|
||||
Mathi_Crc8InitTable: ; 0x02084FB8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov ip, #0
|
||||
mov r2, ip
|
||||
_02084FC4:
|
||||
mov r3, ip
|
||||
mov lr, r2
|
||||
_02084FCC:
|
||||
tst r3, #0x80
|
||||
eorne r3, r1, r3, lsl #1
|
||||
add lr, lr, #1
|
||||
moveq r3, r3, lsl #1
|
||||
cmp lr, #8
|
||||
blo _02084FCC
|
||||
strb r3, [r0, ip]
|
||||
add ip, ip, #1
|
||||
cmp ip, #0x100
|
||||
blo _02084FC4
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Mathi_Crc8InitTable
|
||||
|
||||
arm_func_start Mathi_Crc8Update
|
||||
Mathi_Crc8Update: ; 0x02084FF8
|
||||
stmdb sp!, {r4, lr}
|
||||
cmp r3, #0
|
||||
ldrb lr, [r1]
|
||||
mov r4, #0
|
||||
bls _02085028
|
||||
_0208500C:
|
||||
ldrb ip, [r2], #1
|
||||
add r4, r4, #1
|
||||
cmp r4, r3
|
||||
eor ip, lr, ip
|
||||
and ip, ip, #0xff
|
||||
ldrb lr, [r0, ip]
|
||||
blo _0208500C
|
||||
_02085028:
|
||||
strb lr, [r1]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end Mathi_Crc8Update
|
||||
|
||||
arm_func_start Mathi_Crc16InitTable
|
||||
Mathi_Crc16InitTable: ; 0x02085030
|
||||
stmdb sp!, {r3, lr}
|
||||
mov lr, #0
|
||||
mov r3, lr
|
||||
_0208503C:
|
||||
mov ip, lr
|
||||
mov r2, r3
|
||||
_02085044:
|
||||
tst ip, #1
|
||||
eorne ip, r1, ip, lsr #1
|
||||
add r2, r2, #1
|
||||
moveq ip, ip, lsr #1
|
||||
cmp r2, #8
|
||||
blo _02085044
|
||||
mov r2, lr, lsl #1
|
||||
add lr, lr, #1
|
||||
strh ip, [r0, r2]
|
||||
cmp lr, #0x100
|
||||
blo _0208503C
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Mathi_Crc16InitTable
|
||||
|
||||
arm_func_start Mathi_Crc16Update
|
||||
Mathi_Crc16Update: ; 0x02085074
|
||||
stmdb sp!, {r4, lr}
|
||||
cmp r3, #0
|
||||
ldrh lr, [r1]
|
||||
mov r4, #0
|
||||
bls _020850AC
|
||||
_02085088:
|
||||
ldrb ip, [r2], #1
|
||||
add r4, r4, #1
|
||||
cmp r4, r3
|
||||
eor ip, lr, ip
|
||||
mov ip, ip, lsl #0x18
|
||||
mov ip, ip, lsr #0x17
|
||||
ldrh ip, [r0, ip]
|
||||
eor lr, ip, lr, lsr #8
|
||||
blo _02085088
|
||||
_020850AC:
|
||||
strh lr, [r1]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end Mathi_Crc16Update
|
||||
|
||||
arm_func_start Mathi_Crc32InitTable
|
||||
Mathi_Crc32InitTable: ; 0x020850B4
|
||||
stmdb sp!, {r3, lr}
|
||||
mov ip, #0
|
||||
mov r2, ip
|
||||
_020850C0:
|
||||
mov r3, ip
|
||||
mov lr, r2
|
||||
_020850C8:
|
||||
tst r3, #1
|
||||
eorne r3, r1, r3, lsr #1
|
||||
add lr, lr, #1
|
||||
moveq r3, r3, lsr #1
|
||||
cmp lr, #8
|
||||
blo _020850C8
|
||||
str r3, [r0, ip, lsl #2]
|
||||
add ip, ip, #1
|
||||
cmp ip, #0x100
|
||||
blo _020850C0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Mathi_Crc32InitTable
|
||||
|
||||
arm_func_start Mathi_Crc32Update
|
||||
Mathi_Crc32Update: ; 0x020850F4
|
||||
stmdb sp!, {r4, lr}
|
||||
cmp r3, #0
|
||||
ldr lr, [r1]
|
||||
mov r4, #0
|
||||
bls _02085128
|
||||
_02085108:
|
||||
ldrb ip, [r2], #1
|
||||
add r4, r4, #1
|
||||
cmp r4, r3
|
||||
eor ip, lr, ip
|
||||
and ip, ip, #0xff
|
||||
ldr ip, [r0, ip, lsl #2]
|
||||
eor lr, ip, lr, lsr #8
|
||||
blo _02085108
|
||||
_02085128:
|
||||
str lr, [r1]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end Mathi_Crc32Update
|
||||
|
||||
arm_func_start Math_CalcCrc8
|
||||
Math_CalcCrc8: ; 0x02085130
|
||||
stmdb sp!, {r3, lr}
|
||||
mov lr, r1
|
||||
mov ip, #0
|
||||
mov r3, r2
|
||||
add r1, sp, #0
|
||||
mov r2, lr
|
||||
strb ip, [sp]
|
||||
bl Mathi_Crc8Update
|
||||
ldrb r0, [sp]
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Math_CalcCrc8
|
||||
|
||||
arm_func_start Math_CalcCrc16
|
||||
Math_CalcCrc16: ; 0x02085158
|
||||
stmdb sp!, {r3, lr}
|
||||
mov lr, r1
|
||||
mov ip, #0
|
||||
mov r3, r2
|
||||
add r1, sp, #0
|
||||
mov r2, lr
|
||||
strh ip, [sp]
|
||||
bl Mathi_Crc16Update
|
||||
ldrh r0, [sp]
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Math_CalcCrc16
|
||||
|
||||
arm_func_start Math_CalcCrc32
|
||||
Math_CalcCrc32: ; 0x02085180
|
||||
stmdb sp!, {r3, lr}
|
||||
mov lr, r1
|
||||
mvn ip, #0
|
||||
mov r3, r2
|
||||
add r1, sp, #0
|
||||
mov r2, lr
|
||||
str ip, [sp]
|
||||
bl Mathi_Crc32Update
|
||||
ldr r0, [sp]
|
||||
mvn r0, r0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Math_CalcCrc32
|
||||
|
||||
arm_func_start sub_020851AC
|
||||
sub_020851AC: ; 0x020851AC
|
||||
stmdb sp!, {r4, lr}
|
||||
sub sp, sp, #8
|
||||
movs r4, r0
|
||||
addeq sp, sp, #8
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldrh r0, [r4, #0x3c]
|
||||
cmp r0, #0
|
||||
addeq sp, sp, #8
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
add r1, sp, #0
|
||||
add r0, r4, #0x50
|
||||
mov r2, #8
|
||||
bl MI_CpuCopy8
|
||||
add r0, sp, #0
|
||||
mov r1, #8
|
||||
bl DC_StoreRange
|
||||
ldr r0, [r4, #0x44]
|
||||
cmp r0, #0
|
||||
bne _02085230
|
||||
ldrh r1, [sp]
|
||||
ldr r0, _0208523C ; =0x00002348
|
||||
cmp r1, r0
|
||||
ldrneh r1, [sp]
|
||||
ldrne r0, _02085240 ; =0x0000BD8A
|
||||
cmpne r1, r0
|
||||
bne _02085230
|
||||
ldrh r0, [sp, #6]
|
||||
cmp r0, #4
|
||||
addeq sp, sp, #8
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, pc}
|
||||
_02085230:
|
||||
mov r0, #0
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_0208523C: .word 0x00002348
|
||||
_02085240: .word 0x0000BD8A
|
||||
arm_func_end sub_020851AC
|
||||
|
||||
25
lib/NitroSDK/asm/math_dgt.s
Normal file
25
lib/NitroSDK/asm/math_dgt.s
Normal file
@@ -0,0 +1,25 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start Math_CalcSha1
|
||||
Math_CalcSha1: ; 0x02084F78
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #0x68
|
||||
mov r6, r0
|
||||
add r0, sp, #0
|
||||
mov r5, r1
|
||||
mov r4, r2
|
||||
bl Dgt_Hash2Init
|
||||
add r0, sp, #0
|
||||
mov r1, r5
|
||||
mov r2, r4
|
||||
bl Dgt_Hash2Update
|
||||
add r0, sp, #0
|
||||
mov r1, r6
|
||||
bl Dgt_Hash2GetHash
|
||||
add sp, sp, #0x68
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end Math_CalcSha1
|
||||
|
||||
28
lib/NitroSDK/asm/math_math.s
Normal file
28
lib/NitroSDK/asm/math_math.s
Normal file
@@ -0,0 +1,28 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start Math_CountPopulation
|
||||
Math_CountPopulation: ; 0x02084F34
|
||||
ldr r1, _02084F6C ; =0x55555555
|
||||
ldr r2, _02084F70 ; =0x33333333
|
||||
and r1, r1, r0, lsr #1
|
||||
sub r0, r0, r1
|
||||
and r1, r0, r2
|
||||
and r0, r2, r0, lsr #2
|
||||
add r1, r1, r0
|
||||
ldr r0, _02084F74 ; =0x0F0F0F0F
|
||||
add r1, r1, r1, lsr #4
|
||||
and r0, r1, r0
|
||||
add r0, r0, r0, lsr #8
|
||||
add r0, r0, r0, lsr #16
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02084F6C: .word 0x55555555
|
||||
_02084F70: .word 0x33333333
|
||||
_02084F74: .word 0x0F0F0F0F
|
||||
arm_func_end Math_CountPopulation
|
||||
|
||||
|
||||
704
lib/NitroSDK/asm/os_printf.s
Normal file
704
lib/NitroSDK/asm/os_printf.s
Normal file
@@ -0,0 +1,704 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start string_put_char
|
||||
string_put_char: ; 0x02085AF8
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _02085B18
|
||||
ldr r2, [r0, #4]
|
||||
strb r1, [r2]
|
||||
ldr r1, [r0]
|
||||
sub r1, r1, #1
|
||||
str r1, [r0]
|
||||
_02085B18:
|
||||
ldr r1, [r0, #4]
|
||||
add r1, r1, #1
|
||||
str r1, [r0, #4]
|
||||
bx lr
|
||||
arm_func_end string_put_char
|
||||
|
||||
arm_func_start string_fill_char
|
||||
string_fill_char: ; 0x02085B28
|
||||
stmdb sp!, {r3, lr}
|
||||
cmp r2, #0
|
||||
ldmleia sp!, {r3, pc}
|
||||
ldr lr, [r0]
|
||||
mov ip, #0
|
||||
cmp lr, r2
|
||||
movhi lr, r2
|
||||
cmp lr, #0
|
||||
bls _02085B60
|
||||
_02085B4C:
|
||||
ldr r3, [r0, #4]
|
||||
strb r1, [r3, ip]
|
||||
add ip, ip, #1
|
||||
cmp ip, lr
|
||||
blo _02085B4C
|
||||
_02085B60:
|
||||
ldr r1, [r0]
|
||||
sub r1, r1, lr
|
||||
str r1, [r0]
|
||||
ldr r1, [r0, #4]
|
||||
add r1, r1, r2
|
||||
str r1, [r0, #4]
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end string_fill_char
|
||||
|
||||
arm_func_start string_put_string
|
||||
string_put_string: ; 0x02085B7C
|
||||
stmdb sp!, {r4, lr}
|
||||
cmp r2, #0
|
||||
ldmleia sp!, {r4, pc}
|
||||
ldr r4, [r0]
|
||||
mov lr, #0
|
||||
cmp r4, r2
|
||||
movhi r4, r2
|
||||
cmp r4, #0
|
||||
bls _02085BB8
|
||||
_02085BA0:
|
||||
ldrsb ip, [r1, lr]
|
||||
ldr r3, [r0, #4]
|
||||
strb ip, [r3, lr]
|
||||
add lr, lr, #1
|
||||
cmp lr, r4
|
||||
blo _02085BA0
|
||||
_02085BB8:
|
||||
ldr r1, [r0]
|
||||
sub r1, r1, r4
|
||||
str r1, [r0]
|
||||
ldr r1, [r0, #4]
|
||||
add r1, r1, r2
|
||||
str r1, [r0, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end string_put_string
|
||||
|
||||
arm_func_start OS_VsNPrintfEx
|
||||
OS_VsNPrintfEx: ; 0x02085BD4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x30
|
||||
mov sb, r2
|
||||
str r1, [sp, #0xc]
|
||||
str r0, [sp, #0x14]
|
||||
str r0, [sp, #0x10]
|
||||
ldrsb r0, [sb]
|
||||
str r1, [sp]
|
||||
mov fp, r3
|
||||
cmp r0, #0
|
||||
beq _02086400
|
||||
_02085C00:
|
||||
ldrsb r1, [sb]
|
||||
and r0, r1, #0xff
|
||||
eor r0, r0, #0x20
|
||||
sub r0, r0, #0xa1
|
||||
cmp r0, #0x3c
|
||||
bhs _02085C3C
|
||||
add r0, sp, #0xc
|
||||
bl string_put_char
|
||||
ldrsb r1, [sb, #1]!
|
||||
cmp r1, #0
|
||||
beq _020863F4
|
||||
add r0, sp, #0xc
|
||||
add sb, sb, #1
|
||||
bl string_put_char
|
||||
b _020863F4
|
||||
_02085C3C:
|
||||
cmp r1, #0x25
|
||||
beq _02085C54
|
||||
add r0, sp, #0xc
|
||||
add sb, sb, #1
|
||||
bl string_put_char
|
||||
b _020863F4
|
||||
_02085C54:
|
||||
mov r5, #0
|
||||
mov sl, r5
|
||||
mov r2, sb
|
||||
sub r6, r5, #1
|
||||
mov r0, #0xa
|
||||
mov r3, #0x57
|
||||
_02085C6C:
|
||||
ldrsb r4, [sb, #1]!
|
||||
cmp r4, #0x20
|
||||
bgt _02085C80
|
||||
beq _02085CBC
|
||||
b _02085CD4
|
||||
_02085C80:
|
||||
cmp r4, #0x30
|
||||
bgt _02085CD4
|
||||
cmp r4, #0x2b
|
||||
blt _02085CD4
|
||||
beq _02085CA8
|
||||
cmp r4, #0x2d
|
||||
beq _02085CC4
|
||||
cmp r4, #0x30
|
||||
beq _02085CCC
|
||||
b _02085CD4
|
||||
_02085CA8:
|
||||
ldrsb r1, [sb, #-1]
|
||||
cmp r1, #0x20
|
||||
bne _02085CD4
|
||||
orr r5, r5, #2
|
||||
b _02085C6C
|
||||
_02085CBC:
|
||||
orr r5, r5, #1
|
||||
b _02085C6C
|
||||
_02085CC4:
|
||||
orr r5, r5, #8
|
||||
b _02085C6C
|
||||
_02085CCC:
|
||||
orr r5, r5, #0x10
|
||||
b _02085C6C
|
||||
_02085CD4:
|
||||
cmp r4, #0x2a
|
||||
bne _02085CF8
|
||||
add fp, fp, #4
|
||||
ldr sl, [fp, #-4]
|
||||
add sb, sb, #1
|
||||
cmp sl, #0
|
||||
rsblt sl, sl, #0
|
||||
orrlt r5, r5, #8
|
||||
b _02085D20
|
||||
_02085CF8:
|
||||
mov r1, #0xa
|
||||
b _02085D0C
|
||||
_02085D00:
|
||||
ldrsb r4, [sb], #1
|
||||
mla r4, sl, r1, r4
|
||||
sub sl, r4, #0x30
|
||||
_02085D0C:
|
||||
ldrsb r4, [sb]
|
||||
cmp r4, #0x30
|
||||
blt _02085D20
|
||||
cmp r4, #0x39
|
||||
ble _02085D00
|
||||
_02085D20:
|
||||
ldrsb r1, [sb]
|
||||
cmp r1, #0x2e
|
||||
bne _02085D7C
|
||||
ldrsb r1, [sb, #1]!
|
||||
mov r6, #0
|
||||
cmp r1, #0x2a
|
||||
bne _02085D54
|
||||
add fp, fp, #4
|
||||
ldr r6, [fp, #-4]
|
||||
add sb, sb, #1
|
||||
cmp r6, #0
|
||||
mvnlt r6, #0
|
||||
b _02085D7C
|
||||
_02085D54:
|
||||
mov r1, #0xa
|
||||
b _02085D68
|
||||
_02085D5C:
|
||||
ldrsb r4, [sb], #1
|
||||
mla r4, r6, r1, r4
|
||||
sub r6, r4, #0x30
|
||||
_02085D68:
|
||||
ldrsb r4, [sb]
|
||||
cmp r4, #0x30
|
||||
blt _02085D7C
|
||||
cmp r4, #0x39
|
||||
ble _02085D5C
|
||||
_02085D7C:
|
||||
ldrsb r1, [sb]
|
||||
cmp r1, #0x68
|
||||
beq _02085D94
|
||||
cmp r1, #0x6c
|
||||
beq _02085DAC
|
||||
b _02085DC0
|
||||
_02085D94:
|
||||
ldrsb r1, [sb, #1]!
|
||||
cmp r1, #0x68
|
||||
orrne r5, r5, #0x40
|
||||
addeq sb, sb, #1
|
||||
orreq r5, r5, #0x100
|
||||
b _02085DC0
|
||||
_02085DAC:
|
||||
ldrsb r1, [sb, #1]!
|
||||
cmp r1, #0x6c
|
||||
orrne r5, r5, #0x20
|
||||
addeq sb, sb, #1
|
||||
orreq r5, r5, #0x80
|
||||
_02085DC0:
|
||||
ldrsb r1, [sb]
|
||||
cmp r1, #0x69
|
||||
bgt _02085E04
|
||||
cmp r1, #0x63
|
||||
blt _02085DE8
|
||||
beq _02085E74
|
||||
cmp r1, #0x64
|
||||
cmpne r1, #0x69
|
||||
beq _0208602C
|
||||
b _02086010
|
||||
_02085DE8:
|
||||
cmp r1, #0x25
|
||||
bgt _02085DF8
|
||||
beq _02085FF4
|
||||
b _02086010
|
||||
_02085DF8:
|
||||
cmp r1, #0x58
|
||||
beq _02085E60
|
||||
b _02086010
|
||||
_02085E04:
|
||||
cmp r1, #0x6e
|
||||
bgt _02085E14
|
||||
beq _02085F9C
|
||||
b _02086010
|
||||
_02085E14:
|
||||
sub r1, r1, #0x6f
|
||||
cmp r1, #9
|
||||
addls pc, pc, r1, lsl #2
|
||||
b _02086010
|
||||
_02085E24: ; jump table
|
||||
b _02085E4C ; case 0
|
||||
b _02085E68 ; case 1
|
||||
b _02086010 ; case 2
|
||||
b _02086010 ; case 3
|
||||
b _02085EE8 ; case 4
|
||||
b _02086010 ; case 5
|
||||
b _02085E58 ; case 6
|
||||
b _02086010 ; case 7
|
||||
b _02086010 ; case 8
|
||||
b _02086024 ; case 9
|
||||
_02085E4C:
|
||||
orr r5, r5, #0x1000
|
||||
mov r0, #8
|
||||
b _0208602C
|
||||
_02085E58:
|
||||
orr r5, r5, #0x1000
|
||||
b _0208602C
|
||||
_02085E60:
|
||||
mov r3, #0x37
|
||||
b _02086024
|
||||
_02085E68:
|
||||
orr r5, r5, #4
|
||||
mov r6, #8
|
||||
b _02086024
|
||||
_02085E74:
|
||||
cmp r6, #0
|
||||
bge _02086010
|
||||
add fp, fp, #4
|
||||
tst r5, #8
|
||||
ldr r4, [fp, #-4]
|
||||
beq _02085EB0
|
||||
mov r1, r4, lsl #0x18
|
||||
add r0, sp, #0xc
|
||||
mov r1, r1, asr #0x18
|
||||
bl string_put_char
|
||||
add r0, sp, #0xc
|
||||
sub r2, sl, #1
|
||||
mov r1, #0x20
|
||||
bl string_fill_char
|
||||
b _02085EE0
|
||||
_02085EB0:
|
||||
tst r5, #0x10
|
||||
movne r0, #0x30
|
||||
moveq r0, #0x20
|
||||
mov r1, r0, lsl #0x18
|
||||
add r0, sp, #0xc
|
||||
mov r1, r1, asr #0x18
|
||||
sub r2, sl, #1
|
||||
bl string_fill_char
|
||||
mov r1, r4, lsl #0x18
|
||||
add r0, sp, #0xc
|
||||
mov r1, r1, asr #0x18
|
||||
bl string_put_char
|
||||
_02085EE0:
|
||||
add sb, sb, #1
|
||||
b _020863F4
|
||||
_02085EE8:
|
||||
add fp, fp, #4
|
||||
cmp r6, #0
|
||||
ldr r7, [fp, #-4]
|
||||
mov r4, #0
|
||||
bge _02085F20
|
||||
ldrsb r0, [r7]
|
||||
cmp r0, #0
|
||||
beq _02085F34
|
||||
_02085F08:
|
||||
add r4, r4, #1
|
||||
ldrsb r0, [r7, r4]
|
||||
cmp r0, #0
|
||||
bne _02085F08
|
||||
b _02085F34
|
||||
_02085F1C:
|
||||
add r4, r4, #1
|
||||
_02085F20:
|
||||
cmp r4, r6
|
||||
bge _02085F34
|
||||
ldrsb r0, [r7, r4]
|
||||
cmp r0, #0
|
||||
bne _02085F1C
|
||||
_02085F34:
|
||||
tst r5, #8
|
||||
sub sl, sl, r4
|
||||
beq _02085F64
|
||||
add r0, sp, #0xc
|
||||
mov r1, r7
|
||||
mov r2, r4
|
||||
bl string_put_string
|
||||
add r0, sp, #0xc
|
||||
mov r2, sl
|
||||
mov r1, #0x20
|
||||
bl string_fill_char
|
||||
b _02085F94
|
||||
_02085F64:
|
||||
tst r5, #0x10
|
||||
movne r0, #0x30
|
||||
moveq r0, #0x20
|
||||
mov r1, r0, lsl #0x18
|
||||
add r0, sp, #0xc
|
||||
mov r2, sl
|
||||
mov r1, r1, asr #0x18
|
||||
bl string_fill_char
|
||||
add r0, sp, #0xc
|
||||
mov r1, r7
|
||||
mov r2, r4
|
||||
bl string_put_string
|
||||
_02085F94:
|
||||
add sb, sb, #1
|
||||
b _020863F4
|
||||
_02085F9C:
|
||||
ldr r1, [sp, #0x10]
|
||||
ldr r0, [sp, #0x14]
|
||||
tst r5, #0x100
|
||||
sub r2, r1, r0
|
||||
bne _02085FEC
|
||||
tst r5, #0x40
|
||||
beq _02085FC8
|
||||
add fp, fp, #4
|
||||
ldr r0, [fp, #-4]
|
||||
strh r2, [r0]
|
||||
b _02085FEC
|
||||
_02085FC8:
|
||||
add fp, fp, #4
|
||||
tst r5, #0x80
|
||||
ldreq r0, [fp, #-4]
|
||||
streq r2, [r0]
|
||||
beq _02085FEC
|
||||
ldr r0, [fp, #-4]
|
||||
mov r1, r2, asr #0x1f
|
||||
str r2, [r0]
|
||||
str r1, [r0, #4]
|
||||
_02085FEC:
|
||||
add sb, sb, #1
|
||||
b _020863F4
|
||||
_02085FF4:
|
||||
add r0, r2, #1
|
||||
cmp r0, sb
|
||||
bne _02086010
|
||||
add r0, sp, #0xc
|
||||
add sb, sb, #1
|
||||
bl string_put_char
|
||||
b _020863F4
|
||||
_02086010:
|
||||
mov r1, r2
|
||||
add r0, sp, #0xc
|
||||
sub r2, sb, r2
|
||||
bl string_put_string
|
||||
b _020863F4
|
||||
_02086024:
|
||||
orr r5, r5, #0x1000
|
||||
mov r0, #0x10
|
||||
_0208602C:
|
||||
tst r5, #8
|
||||
bicne r5, r5, #0x10
|
||||
cmp r6, #0
|
||||
bicge r5, r5, #0x10
|
||||
movlt r6, #1
|
||||
mov r4, #0
|
||||
tst r5, #0x1000
|
||||
beq _020860EC
|
||||
tst r5, #0x100
|
||||
beq _02086064
|
||||
add fp, fp, #4
|
||||
ldrb r7, [fp, #-4]
|
||||
mov r1, #0
|
||||
b _0208609C
|
||||
_02086064:
|
||||
tst r5, #0x40
|
||||
beq _0208607C
|
||||
add fp, fp, #4
|
||||
ldrh r7, [fp, #-4]
|
||||
mov r1, #0
|
||||
b _0208609C
|
||||
_0208607C:
|
||||
tst r5, #0x80
|
||||
addeq fp, fp, #4
|
||||
ldreq r7, [fp, #-4]
|
||||
moveq r1, #0
|
||||
beq _0208609C
|
||||
add fp, fp, #8
|
||||
ldr r7, [fp, #-8]
|
||||
ldr r1, [fp, #-4]
|
||||
_0208609C:
|
||||
bic r5, r5, #3
|
||||
tst r5, #4
|
||||
beq _020861AC
|
||||
cmp r0, #0x10
|
||||
bne _020860D4
|
||||
cmp r1, #0
|
||||
cmpeq r7, #0
|
||||
beq _020861AC
|
||||
add r4, r3, #0x21
|
||||
mov r2, #0x30
|
||||
strb r4, [sp, #8]
|
||||
strb r2, [sp, #9]
|
||||
mov r4, #2
|
||||
b _020861AC
|
||||
_020860D4:
|
||||
cmp r0, #8
|
||||
bne _020861AC
|
||||
mov r2, #0x30
|
||||
strb r2, [sp, #8]
|
||||
mov r4, #1
|
||||
b _020861AC
|
||||
_020860EC:
|
||||
tst r5, #0x100
|
||||
beq _02086104
|
||||
add fp, fp, #4
|
||||
ldrsb r7, [fp, #-4]
|
||||
mov r1, r7, asr #0x1f
|
||||
b _0208613C
|
||||
_02086104:
|
||||
tst r5, #0x40
|
||||
beq _0208611C
|
||||
add fp, fp, #4
|
||||
ldrsh r7, [fp, #-4]
|
||||
mov r1, r7, asr #0x1f
|
||||
b _0208613C
|
||||
_0208611C:
|
||||
tst r5, #0x80
|
||||
addeq fp, fp, #4
|
||||
ldreq r7, [fp, #-4]
|
||||
moveq r1, r7, asr #0x1f
|
||||
beq _0208613C
|
||||
add fp, fp, #8
|
||||
ldr r7, [fp, #-8]
|
||||
ldr r1, [fp, #-4]
|
||||
_0208613C:
|
||||
mov ip, #0
|
||||
and r2, ip, #0
|
||||
and r8, r1, #0x80000000
|
||||
cmp r2, #0
|
||||
cmpeq r8, #0
|
||||
beq _02086174
|
||||
mvn r4, r7
|
||||
mov r2, #0x2d
|
||||
mvn r1, r1
|
||||
strb r2, [sp, #8]
|
||||
adds r7, r4, #1
|
||||
adc r1, r1, ip
|
||||
mov r4, #1
|
||||
b _020861AC
|
||||
_02086174:
|
||||
cmp r1, ip
|
||||
cmpeq r7, ip
|
||||
cmpeq r6, #0
|
||||
beq _020861AC
|
||||
tst r5, #2
|
||||
beq _0208619C
|
||||
mov r2, #0x2b
|
||||
strb r2, [sp, #8]
|
||||
mov r4, #1
|
||||
b _020861AC
|
||||
_0208619C:
|
||||
tst r5, #1
|
||||
movne r2, #0x20
|
||||
strneb r2, [sp, #8]
|
||||
movne r4, #1
|
||||
_020861AC:
|
||||
cmp r0, #8
|
||||
mov r8, #0
|
||||
beq _020861CC
|
||||
cmp r0, #0xa
|
||||
beq _02086218
|
||||
cmp r0, #0x10
|
||||
beq _020862B0
|
||||
b _020862FC
|
||||
_020861CC:
|
||||
cmp r1, r8
|
||||
cmpeq r7, r8
|
||||
beq _020862FC
|
||||
add r2, sp, #0x18
|
||||
mov r0, r8
|
||||
mov lr, #7
|
||||
mov ip, r8
|
||||
_020861E8:
|
||||
and r3, r7, lr
|
||||
add r3, r3, #0x30
|
||||
strb r3, [r2, r8]
|
||||
mov r3, r1, lsr #3
|
||||
cmp r3, r0
|
||||
mov r7, r7, lsr #3
|
||||
orr r7, r7, r1, lsl #29
|
||||
mov r1, r3
|
||||
cmpeq r7, ip
|
||||
add r8, r8, #1
|
||||
bne _020861E8
|
||||
b _020862FC
|
||||
_02086218:
|
||||
mov r0, r8
|
||||
cmp r0, r8
|
||||
cmpeq r1, r8
|
||||
bne _02086264
|
||||
cmp r7, #0
|
||||
beq _020862FC
|
||||
ldr ip, _0208644C ; =0xCCCCCCCD
|
||||
add r3, sp, #0x18
|
||||
mov r2, #0xa
|
||||
_0208623C:
|
||||
umull r1, r0, r7, ip
|
||||
movs r0, r0, lsr #3
|
||||
mul r1, r0, r2
|
||||
sub r1, r7, r1
|
||||
mov r7, r0
|
||||
add r0, r1, #0x30
|
||||
strb r0, [r3, r8]
|
||||
add r8, r8, #1
|
||||
bne _0208623C
|
||||
b _020862FC
|
||||
_02086264:
|
||||
cmp r1, r8
|
||||
cmpeq r7, r8
|
||||
beq _020862FC
|
||||
_02086270:
|
||||
mov r0, r7
|
||||
mov r2, #0xa
|
||||
mov r3, #0
|
||||
bl _ll_udiv
|
||||
mov r2, #0xa
|
||||
umull r3, r2, r0, r2
|
||||
subs r2, r7, r3
|
||||
add r3, r2, #0x30
|
||||
add r2, sp, #0x18
|
||||
strb r3, [r2, r8]
|
||||
cmp r1, #0
|
||||
cmpeq r0, #0
|
||||
mov r7, r0
|
||||
add r8, r8, #1
|
||||
bne _02086270
|
||||
b _020862FC
|
||||
_020862B0:
|
||||
cmp r1, r8
|
||||
cmpeq r7, r8
|
||||
beq _020862FC
|
||||
add ip, sp, #0x18
|
||||
mov lr, #0xf
|
||||
_020862C4:
|
||||
and r2, r7, lr
|
||||
mov r7, r7, lsr #4
|
||||
mov r0, r1, lsr #4
|
||||
orr r7, r7, r1, lsl #28
|
||||
cmp r2, #0xa
|
||||
mov r1, r0
|
||||
addlt r0, r2, #0x30
|
||||
addge r0, r2, r3
|
||||
strb r0, [ip, r8]
|
||||
mov r0, #0
|
||||
cmp r1, r0
|
||||
cmpeq r7, r0
|
||||
add r8, r8, #1
|
||||
bne _020862C4
|
||||
_020862FC:
|
||||
cmp r4, #0
|
||||
ble _02086324
|
||||
ldrsb r0, [sp, #8]
|
||||
cmp r0, #0x30
|
||||
bne _02086324
|
||||
add r0, sp, #0x18
|
||||
mov r1, #0x30
|
||||
strb r1, [r0, r8]
|
||||
add r8, r8, #1
|
||||
mov r4, #0
|
||||
_02086324:
|
||||
tst r5, #0x10
|
||||
sub r6, r6, r8
|
||||
beq _02086340
|
||||
sub r0, sl, r8
|
||||
sub r0, r0, r4
|
||||
cmp r6, r0
|
||||
movlt r6, r0
|
||||
_02086340:
|
||||
cmp r6, #0
|
||||
subgt sl, sl, r6
|
||||
add r0, r4, r8
|
||||
sub sl, sl, r0
|
||||
ands r0, r5, #8
|
||||
str r0, [sp, #4]
|
||||
bne _0208636C
|
||||
add r0, sp, #0xc
|
||||
mov r2, sl
|
||||
mov r1, #0x20
|
||||
bl string_fill_char
|
||||
_0208636C:
|
||||
cmp r4, #0
|
||||
ble _02086398
|
||||
add r0, sp, #8
|
||||
add r5, r0, r4
|
||||
add r7, sp, #0xc
|
||||
_02086380:
|
||||
ldrsb r1, [r5, #-1]!
|
||||
mov r0, r7
|
||||
sub r4, r4, #1
|
||||
bl string_put_char
|
||||
cmp r4, #0
|
||||
bgt _02086380
|
||||
_02086398:
|
||||
add r0, sp, #0xc
|
||||
mov r2, r6
|
||||
mov r1, #0x30
|
||||
bl string_fill_char
|
||||
cmp r8, #0
|
||||
ble _020863D4
|
||||
add r0, sp, #0x18
|
||||
add r5, r0, r8
|
||||
add r4, sp, #0xc
|
||||
_020863BC:
|
||||
ldrsb r1, [r5, #-1]!
|
||||
mov r0, r4
|
||||
sub r8, r8, #1
|
||||
bl string_put_char
|
||||
cmp r8, #0
|
||||
bgt _020863BC
|
||||
_020863D4:
|
||||
ldr r0, [sp, #4]
|
||||
cmp r0, #0
|
||||
beq _020863F0
|
||||
add r0, sp, #0xc
|
||||
mov r2, sl
|
||||
mov r1, #0x20
|
||||
bl string_fill_char
|
||||
_020863F0:
|
||||
add sb, sb, #1
|
||||
_020863F4:
|
||||
ldrsb r0, [sb]
|
||||
cmp r0, #0
|
||||
bne _02085C00
|
||||
_02086400:
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0
|
||||
beq _0208641C
|
||||
ldr r0, [sp, #0x10]
|
||||
mov r1, #0
|
||||
strb r1, [r0]
|
||||
b _02086438
|
||||
_0208641C:
|
||||
ldr r0, [sp]
|
||||
cmp r0, #0
|
||||
beq _02086438
|
||||
ldr r1, [sp, #0x14]
|
||||
mov r2, #0
|
||||
add r0, r1, r0
|
||||
strb r2, [r0, #-1]
|
||||
_02086438:
|
||||
ldr r1, [sp, #0x10]
|
||||
ldr r0, [sp, #0x14]
|
||||
sub r0, r1, r0
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0208644C: .word 0xCCCCCCCD
|
||||
arm_func_end OS_VsNPrintfEx
|
||||
|
||||
673
lib/NitroSDK/asm/std_string.s
Normal file
673
lib/NitroSDK/asm/std_string.s
Normal file
@@ -0,0 +1,673 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0207F894.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start Std_CopyLString
|
||||
Std_CopyLString: ; 0x02085244
|
||||
stmdb sp!, {r4, lr}
|
||||
sub ip, r2, #1
|
||||
mov r4, r1
|
||||
cmp ip, #0
|
||||
mov lr, #0
|
||||
ble _02085280
|
||||
_0208525C:
|
||||
ldrsb r3, [r4]
|
||||
strb r3, [r0, lr]
|
||||
ldrsb r3, [r4]
|
||||
cmp r3, #0
|
||||
beq _02085280
|
||||
add lr, lr, #1
|
||||
cmp lr, ip
|
||||
add r4, r4, #1
|
||||
blt _0208525C
|
||||
_02085280:
|
||||
sub r3, r2, #1
|
||||
cmp lr, r3
|
||||
blt _02085298
|
||||
cmp r2, #0
|
||||
movne r2, #0
|
||||
strneb r2, [r0, lr]
|
||||
_02085298:
|
||||
mov r0, r1
|
||||
bl Std_GetStringLength
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end Std_CopyLString
|
||||
|
||||
arm_func_start Std_GetStringLength
|
||||
Std_GetStringLength: ; 0x020852A4
|
||||
ldrsb r1, [r0]
|
||||
mov r2, #0
|
||||
cmp r1, #0
|
||||
beq _020852C4
|
||||
_020852B4:
|
||||
add r2, r2, #1
|
||||
ldrsb r1, [r0, r2]
|
||||
cmp r1, #0
|
||||
bne _020852B4
|
||||
_020852C4:
|
||||
mov r0, r2
|
||||
bx lr
|
||||
arm_func_end Std_GetStringLength
|
||||
|
||||
arm_func_start Std_CompareString__020852CC
|
||||
Std_CompareString__020852CC: ; 0x020852CC
|
||||
b _020852D8
|
||||
_020852D0:
|
||||
add r0, r0, #1
|
||||
add r1, r1, #1
|
||||
_020852D8:
|
||||
ldrsb r3, [r1]
|
||||
ldrsb r2, [r0]
|
||||
cmp r2, r3
|
||||
bne _020852F0
|
||||
cmp r2, #0
|
||||
bne _020852D0
|
||||
_020852F0:
|
||||
sub r0, r2, r3
|
||||
bx lr
|
||||
arm_func_end Std_CompareString__020852CC
|
||||
|
||||
arm_func_start Std_CompareNString
|
||||
Std_CompareNString: ; 0x020852F8
|
||||
stmdb sp!, {r3, lr}
|
||||
cmp r2, #0
|
||||
beq _02085330
|
||||
cmp r2, #0
|
||||
mov lr, #0
|
||||
ble _02085330
|
||||
_02085310:
|
||||
ldrb ip, [r0, lr]
|
||||
ldrb r3, [r1, lr]
|
||||
cmp ip, r3
|
||||
subne r0, ip, r3
|
||||
ldmneia sp!, {r3, pc}
|
||||
add lr, lr, #1
|
||||
cmp lr, r2
|
||||
blt _02085310
|
||||
_02085330:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end Std_CompareNString
|
||||
|
||||
arm_func_start Std_TsScanf
|
||||
Std_TsScanf: ; 0x02085338
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, lr}
|
||||
add r2, sp, #0xc
|
||||
bic r2, r2, #3
|
||||
ldr r1, [sp, #0xc]
|
||||
add r2, r2, #4
|
||||
bl Std_TvsScanf
|
||||
ldmia sp!, {r3, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
arm_func_end Std_TsScanf
|
||||
|
||||
arm_func_start Stdi_IsSpace
|
||||
Stdi_IsSpace: ; 0x02085360
|
||||
sub r3, r0, #9
|
||||
cmp r3, #0x17
|
||||
mov r0, #0
|
||||
bxhi lr
|
||||
ldr r1, _02085384 ; =0x0080001F
|
||||
mov r2, #1
|
||||
tst r1, r2, lsl r3
|
||||
movne r0, r2
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02085384: .word 0x0080001F
|
||||
arm_func_end Stdi_IsSpace
|
||||
|
||||
arm_func_start Stdi_FillBitset
|
||||
Stdi_FillBitset: ; 0x02085388
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
cmp r1, r2
|
||||
ldmhsia sp!, {r3, r4, r5, pc}
|
||||
and r3, r2, #0x1f
|
||||
mov ip, #1
|
||||
mov r3, ip, lsl r3
|
||||
sub r5, r3, #1
|
||||
mvn ip, #0
|
||||
_020853A8:
|
||||
and r3, r1, #0x1f
|
||||
mov lr, r1, lsr #5
|
||||
mov r4, ip, lsl r3
|
||||
add r1, lr, #1
|
||||
cmp r2, r1, lsl #5
|
||||
ldr r3, [r0, lr, lsl #2]
|
||||
andlo r4, r4, r5
|
||||
mov r1, r1, lsl #5
|
||||
orr r3, r3, r4
|
||||
cmp r1, r2
|
||||
str r3, [r0, lr, lsl #2]
|
||||
blo _020853A8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end Stdi_FillBitset
|
||||
|
||||
arm_func_start Std_TvsScanf
|
||||
Std_TvsScanf: ; 0x020853DC
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x34
|
||||
mov r8, r1
|
||||
ldrsb r4, [r8]
|
||||
mov sb, r0
|
||||
mov r0, #0
|
||||
str r0, [sp, #0xc]
|
||||
str r2, [sp]
|
||||
str sb, [sp, #0x10]
|
||||
str r0, [sp, #4]
|
||||
cmp r4, #0
|
||||
beq _02085AD4
|
||||
_0208540C:
|
||||
mov r0, r4
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
beq _02085460
|
||||
ldrsb r0, [r8]
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
beq _0208543C
|
||||
_0208542C:
|
||||
ldrsb r0, [r8, #1]!
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
bne _0208542C
|
||||
_0208543C:
|
||||
ldrsb r0, [sb]
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
beq _02085AC8
|
||||
_0208544C:
|
||||
ldrsb r0, [sb, #1]!
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
bne _0208544C
|
||||
b _02085AC8
|
||||
_02085460:
|
||||
cmp r4, #0x25
|
||||
beq _020854A0
|
||||
ldrsb r0, [sb]
|
||||
cmp r4, r0
|
||||
bne _02085AD4
|
||||
and r0, r4, #0xff
|
||||
eor r0, r0, #0x20
|
||||
sub r0, r0, #0xa1
|
||||
cmp r0, #0x3c
|
||||
bhs _02085494
|
||||
ldrsb r0, [sb, #1]!
|
||||
cmp r4, r0
|
||||
bne _02085AD4
|
||||
_02085494:
|
||||
add sb, sb, #1
|
||||
add r8, r8, #1
|
||||
b _02085AC8
|
||||
_020854A0:
|
||||
ldrsb r0, [r8, #1]
|
||||
cmp r0, #0x25
|
||||
bne _020854C0
|
||||
ldrsb r0, [sb]
|
||||
cmp r4, r0
|
||||
bne _02085AD4
|
||||
add r8, r8, #2
|
||||
b _02085AC8
|
||||
_020854C0:
|
||||
ldrsb r0, [r8, #1]!
|
||||
mov sl, #0
|
||||
mov r5, sl
|
||||
cmp r0, #0x2a
|
||||
mov fp, sl
|
||||
mov r6, sl
|
||||
orreq r5, sl, #0x2000
|
||||
ldreqsb r0, [r8, #1]!
|
||||
mov r1, #0xa
|
||||
b _020854F4
|
||||
_020854E8:
|
||||
mla r2, r6, r1, r0
|
||||
ldrsb r0, [r8, #1]!
|
||||
sub r6, r2, #0x30
|
||||
_020854F4:
|
||||
cmp r0, #0x30
|
||||
blt _02085504
|
||||
cmp r0, #0x39
|
||||
ble _020854E8
|
||||
_02085504:
|
||||
cmp r0, #0x68
|
||||
beq _02085518
|
||||
cmp r0, #0x6c
|
||||
beq _02085530
|
||||
b _02085544
|
||||
_02085518:
|
||||
ldrsb r0, [r8, #1]!
|
||||
cmp r0, #0x68
|
||||
orrne r5, r5, #0x40
|
||||
orreq r5, r5, #0x100
|
||||
ldreqsb r0, [r8, #1]!
|
||||
b _02085544
|
||||
_02085530:
|
||||
ldrsb r0, [r8, #1]!
|
||||
cmp r0, #0x6c
|
||||
orrne r5, r5, #0x20
|
||||
ldreqsb r0, [r8, #1]!
|
||||
orreq r5, r5, #0x80
|
||||
_02085544:
|
||||
cmp r0, #0x69
|
||||
bgt _02085590
|
||||
cmp r0, #0x64
|
||||
blt _02085564
|
||||
beq _020855D8
|
||||
cmp r0, #0x69
|
||||
beq _020855E0
|
||||
b _02085AD4
|
||||
_02085564:
|
||||
cmp r0, #0x5b
|
||||
bgt _02085584
|
||||
cmp r0, #0x58
|
||||
blt _02085AD4
|
||||
beq _020855FC
|
||||
cmp r0, #0x5b
|
||||
beq _020858D0
|
||||
b _02085AD4
|
||||
_02085584:
|
||||
cmp r0, #0x63
|
||||
beq _020857D8
|
||||
b _02085AD4
|
||||
_02085590:
|
||||
cmp r0, #0x6e
|
||||
bgt _020855A0
|
||||
beq _02085608
|
||||
b _02085AD4
|
||||
_020855A0:
|
||||
sub r1, r0, #0x6f
|
||||
cmp r1, #9
|
||||
addls pc, pc, r1, lsl #2
|
||||
b _02085AD4
|
||||
_020855B0: ; jump table
|
||||
b _020855E8 ; case 0
|
||||
b _020855FC ; case 1
|
||||
b _02085AD4 ; case 2
|
||||
b _02085AD4 ; case 3
|
||||
b _020857D8 ; case 4
|
||||
b _02085AD4 ; case 5
|
||||
b _020855F0 ; case 6
|
||||
b _02085AD4 ; case 7
|
||||
b _02085AD4 ; case 8
|
||||
b _020855FC ; case 9
|
||||
_020855D8:
|
||||
mov r4, #0xa
|
||||
b _0208562C
|
||||
_020855E0:
|
||||
mvn r4, #0
|
||||
b _0208562C
|
||||
_020855E8:
|
||||
mov r4, #8
|
||||
b _0208562C
|
||||
_020855F0:
|
||||
orr r5, r5, #0x1000
|
||||
mov r4, #0xa
|
||||
b _0208562C
|
||||
_020855FC:
|
||||
orr r5, r5, #0x1000
|
||||
mov r4, #0x10
|
||||
b _0208562C
|
||||
_02085608:
|
||||
tst r5, #0x2000
|
||||
ldreq r0, [sp, #4]
|
||||
add r8, r8, #1
|
||||
subeq r0, r0, #1
|
||||
streq r0, [sp, #4]
|
||||
ldr r0, [sp, #0x10]
|
||||
sub sl, sb, r0
|
||||
mov fp, sl, asr #0x1f
|
||||
b _0208574C
|
||||
_0208562C:
|
||||
ldrsb r7, [sb]
|
||||
add r8, r8, #1
|
||||
mov r0, r7
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
beq _02085658
|
||||
_02085644:
|
||||
ldrsb r7, [sb, #1]!
|
||||
mov r0, r7
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
bne _02085644
|
||||
_02085658:
|
||||
cmp r7, #0x2b
|
||||
orreq r5, r5, #2
|
||||
beq _02085670
|
||||
cmp r7, #0x2d
|
||||
bne _02085678
|
||||
orr r5, r5, #8
|
||||
_02085670:
|
||||
ldrsb r7, [sb, #1]!
|
||||
b _02085658
|
||||
_02085678:
|
||||
mvn r0, #0
|
||||
cmp r4, r0
|
||||
bne _020856A4
|
||||
cmp r7, #0x30
|
||||
movne r4, #0xa
|
||||
bne _020856A4
|
||||
ldrsb r0, [sb, #1]
|
||||
cmp r0, #0x78
|
||||
cmpne r0, #0x58
|
||||
moveq r4, #0x10
|
||||
movne r4, #8
|
||||
_020856A4:
|
||||
cmp r4, #0x10
|
||||
cmpeq r7, #0x30
|
||||
bne _020856C0
|
||||
ldrsb r0, [sb, #1]
|
||||
cmp r0, #0x78
|
||||
cmpne r0, #0x58
|
||||
ldreqsb r7, [sb, #2]!
|
||||
_020856C0:
|
||||
cmp r6, #0
|
||||
mvneq r6, #0x80000000
|
||||
cmp r6, #0
|
||||
mov r2, #0
|
||||
ble _0208572C
|
||||
mov ip, r4, asr #0x1f
|
||||
_020856D8:
|
||||
sub r3, r7, #0x30
|
||||
cmp r3, #0xa
|
||||
blo _02085700
|
||||
sub r0, r3, #0x31
|
||||
cmp r0, #6
|
||||
sublo r3, r3, #0x27
|
||||
blo _02085700
|
||||
sub r3, r3, #0x11
|
||||
cmp r3, #6
|
||||
addlo r3, r3, #0xa
|
||||
_02085700:
|
||||
cmp r3, r4
|
||||
bhs _0208572C
|
||||
ldrsb r7, [sb, #1]!
|
||||
add r2, r2, #1
|
||||
umull r1, r0, sl, r4
|
||||
mla r0, sl, ip, r0
|
||||
adds sl, r3, r1
|
||||
mla r0, fp, r4, r0
|
||||
adc fp, r0, #0
|
||||
cmp r2, r6
|
||||
blt _020856D8
|
||||
_0208572C:
|
||||
cmp r2, #0
|
||||
beq _02085AD4
|
||||
tst r5, #8
|
||||
beq _02085744
|
||||
rsbs sl, sl, #0
|
||||
rsc fp, fp, #0
|
||||
_02085744:
|
||||
mov r0, #1
|
||||
str r0, [sp, #0xc]
|
||||
_0208574C:
|
||||
tst r5, #0x2000
|
||||
bne _02085AC8
|
||||
ldr r0, [sp, #4]
|
||||
tst r5, #0x100
|
||||
add r0, r0, #1
|
||||
str r0, [sp, #4]
|
||||
beq _02085780
|
||||
ldr r0, [sp]
|
||||
add r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldr r0, [r0, #-4]
|
||||
strb sl, [r0]
|
||||
b _02085AC8
|
||||
_02085780:
|
||||
tst r5, #0x40
|
||||
beq _020857A0
|
||||
ldr r0, [sp]
|
||||
add r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldr r0, [r0, #-4]
|
||||
strh sl, [r0]
|
||||
b _02085AC8
|
||||
_020857A0:
|
||||
tst r5, #0x80
|
||||
beq _020857C0
|
||||
ldr r0, [sp]
|
||||
add r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldr r0, [r0, #-4]
|
||||
stmia r0, {sl, fp}
|
||||
b _02085AC8
|
||||
_020857C0:
|
||||
ldr r0, [sp]
|
||||
add r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldr r0, [r0, #-4]
|
||||
str sl, [r0]
|
||||
b _02085AC8
|
||||
_020857D8:
|
||||
mov r1, #1
|
||||
tst r5, #0x2000
|
||||
add r8, r8, #1
|
||||
mov r4, #0
|
||||
str r1, [sp, #0xc]
|
||||
bne _0208580C
|
||||
ldr r1, [sp]
|
||||
add r1, r1, #4
|
||||
str r1, [sp]
|
||||
ldr r4, [r1, #-4]
|
||||
ldr r1, [sp, #4]
|
||||
add r1, r1, #1
|
||||
str r1, [sp, #4]
|
||||
_0208580C:
|
||||
cmp r0, #0x73
|
||||
bne _02085888
|
||||
ldrsb r5, [sb]
|
||||
cmp r6, #0
|
||||
mvneq r6, #0x80000000
|
||||
mov r0, r5
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
beq _02085858
|
||||
_02085830:
|
||||
ldrsb r5, [sb, #1]!
|
||||
mov r0, r5
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
bne _02085830
|
||||
b _02085858
|
||||
_02085848:
|
||||
cmp r4, #0
|
||||
strneb r5, [r4], #1
|
||||
ldrsb r5, [sb, #1]!
|
||||
sub r6, r6, #1
|
||||
_02085858:
|
||||
cmp r5, #0
|
||||
beq _02085878
|
||||
mov r0, r5
|
||||
bl Stdi_IsSpace
|
||||
cmp r0, #0
|
||||
bne _02085878
|
||||
cmp r6, #0
|
||||
bgt _02085848
|
||||
_02085878:
|
||||
cmp r4, #0
|
||||
movne r0, #0
|
||||
strneb r0, [r4]
|
||||
b _02085AC8
|
||||
_02085888:
|
||||
cmp r6, #0
|
||||
moveq r6, #1
|
||||
ldrsb r0, [sb]
|
||||
b _020858A8
|
||||
_02085898:
|
||||
cmp r4, #0
|
||||
strneb r0, [r4], #1
|
||||
ldrsb r0, [sb, #1]!
|
||||
sub r6, r6, #1
|
||||
_020858A8:
|
||||
cmp r0, #0
|
||||
beq _020858B8
|
||||
cmp r6, #0
|
||||
bgt _02085898
|
||||
_020858B8:
|
||||
cmp r4, #0
|
||||
beq _02085AC8
|
||||
cmp r6, #0
|
||||
movgt r0, #0
|
||||
strgtb r0, [r4]
|
||||
b _02085AC8
|
||||
_020858D0:
|
||||
mov sl, #0
|
||||
mov r3, #1
|
||||
add r1, sp, #0x14
|
||||
mov r0, sl
|
||||
mov r2, #0x20
|
||||
mov r7, sl
|
||||
mov fp, sl
|
||||
str r3, [sp, #8]
|
||||
bl MTi_CpuClear32
|
||||
ldrsb r0, [r8, #1]!
|
||||
cmp r0, #0x5e
|
||||
moveq r0, sl
|
||||
addeq r8, r8, #1
|
||||
streq r0, [sp, #8]
|
||||
ldrsb r0, [r8]
|
||||
cmp r0, #0x5d
|
||||
bne _02085938
|
||||
and r2, r0, #0xff
|
||||
mov r0, r2, lsr #5
|
||||
add r1, sp, #0x14
|
||||
ldr r4, [r1, r0, lsl #2]
|
||||
and r2, r2, #0x1f
|
||||
mov r3, #1
|
||||
orr r2, r4, r3, lsl r2
|
||||
str r2, [r1, r0, lsl #2]
|
||||
add r8, r8, #1
|
||||
_02085938:
|
||||
add r4, sp, #0x14
|
||||
_0208593C:
|
||||
ldrsb r0, [r8]
|
||||
cmp r0, #0
|
||||
cmpne r0, #0x5d
|
||||
bne _0208598C
|
||||
cmp fp, #0
|
||||
beq _0208597C
|
||||
add r4, sp, #0x14
|
||||
mov r3, r7, lsr #5
|
||||
ldr r2, [r4, r3, lsl #2]
|
||||
and r0, r7, #0x1f
|
||||
mov r1, #1
|
||||
orr r0, r2, r1, lsl r0
|
||||
str r0, [r4, r3, lsl #2]
|
||||
ldr r0, [sp, #0x18]
|
||||
orr r0, r0, #0x2000
|
||||
str r0, [sp, #0x18]
|
||||
_0208597C:
|
||||
ldrsb r0, [r8]
|
||||
cmp r0, #0x5d
|
||||
addeq r8, r8, #1
|
||||
b _02085A38
|
||||
_0208598C:
|
||||
cmp fp, #0
|
||||
bne _020859CC
|
||||
cmp r7, #0
|
||||
beq _020859A8
|
||||
cmp r0, #0x2d
|
||||
moveq fp, #1
|
||||
beq _02085A30
|
||||
_020859A8:
|
||||
and r0, r0, #0xff
|
||||
mov r3, r0, lsr #5
|
||||
ldr r2, [r4, r3, lsl #2]
|
||||
and r1, r0, #0x1f
|
||||
mov r0, #1
|
||||
orr r0, r2, r0, lsl r1
|
||||
str r0, [r4, r3, lsl #2]
|
||||
ldrb r7, [r8]
|
||||
b _02085A30
|
||||
_020859CC:
|
||||
and r2, r0, #0xff
|
||||
cmp r7, r2
|
||||
bls _02085A18
|
||||
mov r1, r7, lsr #5
|
||||
ldr fp, [r4, r1, lsl #2]
|
||||
and r7, r7, #0x1f
|
||||
mov r3, #1
|
||||
orr r3, fp, r3, lsl r7
|
||||
str r3, [r4, r1, lsl #2]
|
||||
ldr r1, [sp, #0x18]
|
||||
mov r0, r2, lsr #5
|
||||
orr r1, r1, #0x2000
|
||||
str r1, [sp, #0x18]
|
||||
ldr r3, [r4, r0, lsl #2]
|
||||
and r2, r2, #0x1f
|
||||
mov r1, #1
|
||||
orr r1, r3, r1, lsl r2
|
||||
str r1, [r4, r0, lsl #2]
|
||||
b _02085A28
|
||||
_02085A18:
|
||||
mov r1, r7
|
||||
add r2, r2, #1
|
||||
mov r0, r4
|
||||
bl Stdi_FillBitset
|
||||
_02085A28:
|
||||
mov fp, #0
|
||||
mov r7, fp
|
||||
_02085A30:
|
||||
add r8, r8, #1
|
||||
b _0208593C
|
||||
_02085A38:
|
||||
mov r0, #1
|
||||
tst r5, #0x2000
|
||||
str r0, [sp, #0xc]
|
||||
bne _02085A64
|
||||
ldr r0, [sp]
|
||||
add r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldr sl, [r0, #-4]
|
||||
ldr r0, [sp, #4]
|
||||
add r0, r0, #1
|
||||
str r0, [sp, #4]
|
||||
_02085A64:
|
||||
cmp r6, #0
|
||||
mvneq r6, #0x80000000
|
||||
ldrsb r0, [sb]
|
||||
add r3, sp, #0x14
|
||||
b _02085AAC
|
||||
_02085A78:
|
||||
and r4, r0, #0xff
|
||||
mov r1, r4, lsr #5
|
||||
ldr r2, [r3, r1, lsl #2]
|
||||
and r1, r4, #0x1f
|
||||
mov r1, r2, lsr r1
|
||||
and r2, r1, #1
|
||||
ldr r1, [sp, #8]
|
||||
cmp r1, r2
|
||||
bne _02085ABC
|
||||
cmp sl, #0
|
||||
strneb r0, [sl], #1
|
||||
ldrsb r0, [sb, #1]!
|
||||
sub r6, r6, #1
|
||||
_02085AAC:
|
||||
cmp r0, #0
|
||||
beq _02085ABC
|
||||
cmp r6, #0
|
||||
bgt _02085A78
|
||||
_02085ABC:
|
||||
cmp sl, #0
|
||||
movne r0, #0
|
||||
strneb r0, [sl]
|
||||
_02085AC8:
|
||||
ldrsb r4, [r8]
|
||||
cmp r4, #0
|
||||
bne _0208540C
|
||||
_02085AD4:
|
||||
ldrsb r0, [sb]
|
||||
cmp r0, #0
|
||||
ldreq r0, [sp, #0xc]
|
||||
cmpeq r0, #0
|
||||
mvneq r0, #0
|
||||
streq r0, [sp, #4]
|
||||
ldr r0, [sp, #4]
|
||||
add sp, sp, #0x34
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
arm_func_end Std_TvsScanf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "main_0207E81C.h"
|
||||
|
||||
u8 FSi_OpenFileDirectCommand(s32 *param_0) // FSi_OpenFileDirectCommand
|
||||
u8 FSi_OpenFileDirectCommand(s32 *param_0)
|
||||
{
|
||||
param_0[9] = param_0[12];
|
||||
param_0[11] = param_0[12];
|
||||
@@ -10,7 +10,8 @@ u8 FSi_OpenFileDirectCommand(s32 *param_0) // FSi_OpenFileDirectCommand
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 FSi_CloseFileCommand() // FSi_CloseFileCommand
|
||||
u8 FSi_CloseFileCommand()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
18
main.lsf
18
main.lsf
@@ -278,12 +278,24 @@ Static main
|
||||
Object lib/NitroSDK/asm/pxi_fifo.o
|
||||
Object lib/NitroSDK/asm/fs_command.o
|
||||
Object lib/NitroSDK/asm/fs_command_default.o
|
||||
Object src/main_0207E81C.o
|
||||
Object asm/main_0207E84C.o
|
||||
Object lib/NitroSDK/src/fs_command_default_1.o
|
||||
Object lib/NitroSDK/asm/fs_archive.o
|
||||
Object src/main_0207F3E4.o
|
||||
Object asm/main_0207F40C.o
|
||||
Object lib/NitroSDK/asm/fs_file.o
|
||||
Object src/main_0207F818.o
|
||||
Object asm/main_0207F894.o
|
||||
Object lib/NitroSDK/asm/card_rom.o
|
||||
Object lib/NitroSDK/asm/card_request.o
|
||||
Object lib/NitroSDK/asm/card_pullOut.o
|
||||
Object lib/NitroSDK/asm/ctrdg.o
|
||||
Object lib/NitroSDK/asm/ctrdg_proc.o
|
||||
Object lib/NitroSDK/asm/ctrdg_task.o
|
||||
Object lib/NitroSDK/asm/math_math.o
|
||||
Object lib/NitroSDK/asm/math_dgt.o
|
||||
Object lib/NitroSDK/asm/math_crc.o
|
||||
Object lib/NitroSDK/asm/std_string.o
|
||||
Object lib/NitroSDK/asm/os_printf.o
|
||||
Object lib/MSL_C/asm/msl.o
|
||||
Object lib/MSL_C/src/arith.o
|
||||
Object lib/MSL_C/asm/MSL_Common_buffer_io.o
|
||||
Object asm/main_02086568.o
|
||||
|
||||
Reference in New Issue
Block a user