Merge branch 'master' into pikalax_work

This commit is contained in:
Cleverking2003
2020-06-06 19:14:41 +03:00
committed by GitHub
12 changed files with 137 additions and 126 deletions

View File

@@ -31,6 +31,8 @@ Autoload WRAM
Object OS_alarm.o
Object OS_valarm.o
Object OS_system.o
Object OS_reset.o
Object OS_terminate_proc.o
Object dtcm.o
Object libsyscall.o
Object dtcm2.o

View File

@@ -137,7 +137,7 @@ OS_SetPeriodicAlarm: ; 0x037FA6E0
cmp r0, #0
beq _037FA710
_037FA70C:
bl FUN_037FB1F0
bl OS_Terminate
_037FA710:
bl OS_DisableInterrupts
mov r5, r0
@@ -171,7 +171,7 @@ OS_SetAlarm: ; 0x037FA75C
cmp r0, #0
beq _037FA784
_037FA780:
bl FUN_037FB1F0
bl OS_Terminate
_037FA784:
bl OS_DisableInterrupts
mov r4, r0

90
arm7/asm/OS_reset.s Normal file
View File

@@ -0,0 +1,90 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start OS_ResetSystem
OS_ResetSystem: ; 0x037FB0E0
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl MI_StopDma
mov r0, #1
bl MI_StopDma
mov r0, #2
bl MI_StopDma
mov r0, #3
bl MI_StopDma
mov r0, #262144 ; 0x40000
bl OS_SetIrqMask
mvn r0, #0
bl OS_ResetRequestIrqMask
bl SND_Shutdown
mov r0, #16
bl OSi_SendToPxi
bl FUN_038073EC
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start OSi_SendToPxi
OSi_SendToPxi: ; 0x037FB134
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0, lsl #8
mov r5, #12
mov r4, #0
_037FB144:
mov r0, r5
mov r1, r6
mov r2, r4
bl PXI_SendWordByFifo
cmp r0, #0
bne _037FB144
ldmia sp!, {r4, r5, r6, lr}
bx lr
arm_func_start OSi_CommonCallback
OSi_CommonCallback: ; 0x037FB164
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #32512 ; 0x7f00
mov r0, r0, lsl #8
mov r0, r0, lsr #16
cmp r0, #16
moveq r1, #1
ldreq r0, _037FB19C ; =_03807954
streqh r1, [r0]
beq _037FB190
bl OS_Terminate
_037FB190:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_037FB19C: .word _03807954
arm_func_start OS_IsResetOccurred
OS_IsResetOccurred: ; 0x037FB1A0
ldr r0, _037FB1AC ; =_03807954
ldrh r0, [r0]
bx lr
_037FB1AC: .word _03807954
arm_func_start OS_InitReset
OS_InitReset: ; 0x037FB1B0
stmfd sp!, {lr}
sub sp, sp, #4
ldr r0, _037FB1E8 ; =_03807950
ldrh r1, [r0]
cmp r1, #0
bne _037FB1DC
mov r1, #1
strh r1, [r0]
mov r0, #12
ldr r1, _037FB1EC ; =OSi_CommonCallback
bl PXI_SetFifoRecvCallback
_037FB1DC:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_037FB1E8: .word _03807950
_037FB1EC: .word OSi_CommonCallback

View File

@@ -0,0 +1,15 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start OS_Terminate
OS_Terminate: ; 0x037FB1F0
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl CTRDG_VibPulseEdgeUpdate
_037FB200:
bl OS_DisableInterrupts
bl FUN_037F8530
b _037FB200

View File

@@ -322,7 +322,7 @@ _037F9138:
bl OS_WakeupThread
bl OS_EnableScheduler
bl OS_RescheduleThread
bl FUN_037FB1F0
bl OS_Terminate
ldmia sp!, {r4, lr}
bx lr
_037F9164: .word OSi_CurrentThreadPtr

View File

@@ -114,7 +114,7 @@ _037FAB4C:
_037FAB8C:
ldr r7, [sl]
mov r0, sl
bl FUN_037FAECC
bl OSi_DetachVAlarm
str r4, [sl]
cmp r7, #0
beq _037FABB0
@@ -137,7 +137,7 @@ _037FABB0:
b _037FAC00
_037FABE4:
mov r0, sl
bl FUN_037FAECC
bl OSi_DetachVAlarm
mov r0, sl
bl OSi_AppendVAlarm
ldr r0, [fp]
@@ -167,7 +167,7 @@ OS_CancelVAlarms: ; 0x037FAC30
mov r5, r0
cmp r7, #0
bne _037FAC50
bl FUN_037FB1F0
bl OS_Terminate
_037FAC50:
ldr r0, _037FACA8 ; =_03807948
ldr r0, [r0]
@@ -212,7 +212,7 @@ OS_CancelVAlarm: ; 0x037FACAC
b _037FACF4
_037FACDC:
mov r0, r5
bl FUN_037FAECC
bl OSi_DetachVAlarm
mov r0, #0
str r0, [r5]
mov r0, r4
@@ -229,7 +229,7 @@ OS_SetVAlarmTag: ; 0x037FAD00
mov r5, r0
movs r4, r1
bne _037FAD18
bl FUN_037FB1F0
bl OS_Terminate
_037FAD18:
cmp r5, #0
strne r4, [r5, #8]
@@ -279,7 +279,7 @@ OS_SetPeriodicVAlarm: ; 0x037FAD88
cmp r0, #0
beq _037FADC0
_037FADBC:
bl FUN_037FB1F0
bl OS_Terminate
_037FADC0:
ldr r0, _037FAE1C ; =0x04000006
ldrh r9, [r0]
@@ -322,7 +322,7 @@ OS_SetVAlarm: ; 0x037FAE20
cmp r0, #0
beq _037FAE58
_037FAE54:
bl FUN_037FB1F0
bl OS_Terminate
_037FAE58:
ldr r0, _037FAEB4 ; =0x04000006
ldrh r9, [r0]
@@ -357,8 +357,8 @@ OS_CreateVAlarm: ; 0x037FAEB8
str r1, [r0, #32]
bx lr
arm_func_start FUN_037FAECC
FUN_037FAECC: ; 0x037FAECC
arm_func_start OSi_DetachVAlarm
OSi_DetachVAlarm: ; 0x037FAECC
cmp r0, #0
bxeq lr
ldr r2, [r0, #20]

View File

@@ -2,103 +2,6 @@
.include "global.inc"
.section .text
arm_func_start OS_ResetSystem
OS_ResetSystem: ; 0x037FB0E0
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl MI_StopDma
mov r0, #1
bl MI_StopDma
mov r0, #2
bl MI_StopDma
mov r0, #3
bl MI_StopDma
mov r0, #262144 ; 0x40000
bl OS_SetIrqMask
mvn r0, #0
bl OS_ResetRequestIrqMask
bl SND_Shutdown
mov r0, #16
bl FUN_037FB134
bl FUN_038073EC
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start FUN_037FB134
FUN_037FB134: ; 0x037FB134
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0, lsl #8
mov r5, #12
mov r4, #0
_037FB144:
mov r0, r5
mov r1, r6
mov r2, r4
bl PXI_SendWordByFifo
cmp r0, #0
bne _037FB144
ldmia sp!, {r4, r5, r6, lr}
bx lr
arm_func_start FUN_037FB164
FUN_037FB164: ; 0x037FB164
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #32512 ; 0x7f00
mov r0, r0, lsl #8
mov r0, r0, lsr #16
cmp r0, #16
moveq r1, #1
ldreq r0, _037FB19C ; =_03807954
streqh r1, [r0]
beq _037FB190
bl FUN_037FB1F0
_037FB190:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_037FB19C: .word _03807954
arm_func_start OS_IsResetOccurred
OS_IsResetOccurred: ; 0x037FB1A0
ldr r0, _037FB1AC ; =_03807954
ldrh r0, [r0]
bx lr
_037FB1AC: .word _03807954
arm_func_start OS_InitReset
OS_InitReset: ; 0x037FB1B0
stmfd sp!, {lr}
sub sp, sp, #4
ldr r0, _037FB1E8 ; =_03807950
ldrh r1, [r0]
cmp r1, #0
bne _037FB1DC
mov r1, #1
strh r1, [r0]
mov r0, #12
ldr r1, _037FB1EC ; =FUN_037FB164
bl PXI_SetFifoRecvCallback
_037FB1DC:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_037FB1E8: .word _03807950
_037FB1EC: .word FUN_037FB164
arm_func_start FUN_037FB1F0
FUN_037FB1F0: ; 0x037FB1F0
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl CTRDG_VibPulseEdgeUpdate
_037FB200:
bl OS_DisableInterrupts
bl FUN_037F8530
b _037FB200
arm_func_start MI_StopDma
MI_StopDma: ; 0x037FB20C
stmdb sp!, {r4, lr}
@@ -7036,7 +6939,7 @@ FUN_03800E54: ; 0x03800E54
bl CTRDG_VibPulseEdgeUpdate
bl SND_BeginSleep
bl WVR_Shutdown
bl FUN_037FB1F0
bl OS_Terminate
add sp, sp, #4
ldmia sp!, {lr}
bx lr
@@ -7182,7 +7085,7 @@ FUN_03801048: ; 0x03801048
bl FUN_03800E54
b _03801068
_03801064:
bl FUN_037FB1F0
bl OS_Terminate
_03801068:
add sp, sp, #4
ldmia sp!, {lr}

View File

@@ -1022,7 +1022,7 @@ _03801F20:
strh r1, [r0]
b _03801F40
_03801F3C:
bl FUN_037FB1F0
bl OS_Terminate
_03801F40:
add sp, sp, #12
ldmia sp!, {r4, r5, r6, r7, lr}
@@ -1719,7 +1719,7 @@ _03802878:
bl PMi_SetControl
b _03802890
_0380288C:
bl FUN_037FB1F0
bl OS_Terminate
_03802890:
ldr r0, _038028A0 ;@ =PMi_LEDStatus
str r4, [r0]
@@ -3161,7 +3161,7 @@ _03803C24:
bne _03803C1C
b _03803C44
_03803C40:
bl FUN_037FB1F0
bl OS_Terminate
_03803C44:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
@@ -3177,7 +3177,7 @@ FUN_03803C58: ;@ 0x03803C58
bl CTRDG_VibPulseEdgeUpdate
bl SND_BeginSleep
bl WVR_Shutdown
bl FUN_037FB1F0
bl OS_Terminate
add sp, sp, #4
ldmia sp!, {lr}
bx lr
@@ -3488,7 +3488,7 @@ FUN_03804094: ;@ 0x03804094
bl FUN_03803C58
b _038040B4
_038040B0:
bl FUN_037FB1F0
bl OS_Terminate
_038040B4:
add sp, sp, #4
ldmia sp!, {lr}
@@ -3505,7 +3505,7 @@ FUN_038040C0: ;@ 0x038040C0
moveq r1, #1
streq r1, [r0, #16]
beq _038040E8
bl FUN_037FB1F0
bl OS_Terminate
_038040E8:
add sp, sp, #4
ldmia sp!, {lr}
@@ -6221,7 +6221,7 @@ _03806548:
orr r1, r6, r5
orrs r0, r0, r1
beq _03806590
bl FUN_037FB1F0
bl OS_Terminate
_03806590:
bl FUN_03806680
add r7, r4, #40 ;@ 0x28

View File

@@ -601,8 +601,8 @@ _0600078C: .word SND_BeginSleep
arm_func_start FUN_06000790
FUN_06000790: ; 0x06000790
ldr pc, _06000794 ; =FUN_037FB1F0
_06000794: .word FUN_037FB1F0
ldr pc, _06000794 ; =OS_Terminate
_06000794: .word OS_Terminate
arm_func_start WM_sp_init
WM_sp_init: ; 0x06000798

View File

@@ -29,7 +29,7 @@ _027E0014:
add r0, r3, r2
cmp r1, r0
beq _027E0060
bl FUN_037FB1F0
bl OS_Terminate
_027E0060:
ldr r0, _027E00D0 ; =0x0380A3F4
ldr r3, [r0]

View File

@@ -313,7 +313,7 @@ FUN_037F83B0: ; 0x037F83B0
bl OS_CreateHeap
movs r4, r0
bpl _037F8438
bl FUN_037FB1F0
bl OS_Terminate
_037F8438:
mov r0, #8
mov r1, r4
@@ -323,7 +323,7 @@ _037F8438:
bl OS_CheckHeap
cmp r0, #8448 ; 0x2100
bcs _037F845C
bl FUN_037FB1F0
bl OS_Terminate
_037F845C:
mov r0, r4
ldmia sp!, {r4, lr}

View File

@@ -95,7 +95,6 @@
.extern OS_DisableInterrupts
.extern OS_RestoreInterrupts
.extern OS_SpinWait
.extern FUN_037FB1F0
.extern MIi_CpuClear32
.extern MIi_CpuClearFast
.extern MIi_CpuCopyFast
@@ -106,9 +105,10 @@
.extern PXI_SetFifoRecvCallback
.extern EXIi_SelectRcnt
.extern EXIi_SetBitRcnt0L
.extern SND_EndSleep
.extern SND_BeginSleep
.extern SND_EndSleep
.extern SND_Init
.extern SND_Shutdown
.extern SPI_Init
.extern PMi_ResetControl
.extern PMi_SetControl
@@ -156,7 +156,8 @@
.extern OS_InitVAlarm
.extern OS_DisableInterrupts
.extern OS_RestoreInterrupts
.extern FUN_037FB1F0
.extern OS_Terminate
.extern MI_StopDma
.extern MI_WaitDma
.extern MIi_CpuClear16
.extern MIi_CpuCopy16