mirror of
https://github.com/ApacheThunder/GBA-Exploader.git
synced 2025-06-18 11:35:38 -04:00
101 lines
1.5 KiB
ArmAsm
101 lines
1.5 KiB
ArmAsm
.TEXT
|
|
.ARM
|
|
.ALIGN
|
|
|
|
@---------------------------------------------------------------------------------------
|
|
.GLOBAL LinkReset_ARM9
|
|
.func LinkReset_ARM9
|
|
@---------------------------------------------------------------------------------------
|
|
LinkReset_ARM9:
|
|
MOV R12, #0x4000000
|
|
LDR R1, [R12,#0x130]
|
|
@ ANDS R1,R1,#0x30C @L+R+START+SELECT
|
|
@ BXNE LR
|
|
|
|
MOV R10, #0
|
|
MCR p15, 0, R10,c7,c5,0
|
|
MCR p15, 0, R10,c7,c6,0
|
|
MCR p15, 0, R10,c7,c10, 4
|
|
|
|
MCR p15, 0, R10,c3,c0,0
|
|
MCR p15, 0, R10,c1,c0
|
|
|
|
LDR R6,=0x40001A4
|
|
MOV R2,#0xC0
|
|
STRB R2,[R6,#-3]
|
|
|
|
LDR R2,=0xededdede
|
|
STR R2, [R6,#4]
|
|
MOV R0,#0x2
|
|
MOV R0,R0,LSL #24
|
|
STR R0, [R6,#8]
|
|
|
|
MOV R0,#0xA0000000
|
|
STR R0,[R6]
|
|
Wait_Busy00:
|
|
LDR R0,[R6]
|
|
TST R0,#0x80000000
|
|
BNE Wait_Busy00
|
|
|
|
ADD R7,R12,#0x200
|
|
ADR R0,reset+1
|
|
BX R0
|
|
|
|
.LTORG
|
|
.ALIGN
|
|
|
|
|
|
.THUMB
|
|
.ALIGN
|
|
@---------------------------------------------------------------------------------------
|
|
reset:
|
|
MOV R1,#0x21
|
|
LSL R1,R1,#20 @LDR R1,=0x2100000
|
|
|
|
STRH R1, [R7,#0x8] @[4000208]=0
|
|
STRH R1, [R7,#0x4]
|
|
|
|
MOV R4,#0x5C
|
|
SUB R6,R7,R4
|
|
|
|
LDR R0,=0x100200A4
|
|
STR R0,[R6,#4]
|
|
STRB R1,[R6,#8]
|
|
|
|
MOV R4,#0xAA
|
|
LSL R4,R4,#24
|
|
STR R4,[R6]
|
|
|
|
MOV R5,#0x40
|
|
LSL R3,R5,#17
|
|
LSL R5,R5,#4
|
|
|
|
MOV R4,#0x41
|
|
LSL R4,R4,#20
|
|
|
|
Wait_Ready:
|
|
LDR R0,[R6]
|
|
TST R0,R3
|
|
BEQ Wait_Ready
|
|
|
|
LDR R0,[R4,#0x10]
|
|
STR R0,[R1]
|
|
ADD R1,R1,#4
|
|
|
|
SUB R5,R5,#4
|
|
BNE Wait_Ready
|
|
|
|
LDR R0,=0xE880
|
|
STRH R0,[R7,#0x4] @WAIT_CR=0xE880
|
|
|
|
LDR R0, =0xE59FF018
|
|
LDR R2, =0x27FFE04
|
|
STR R0, [R2]
|
|
STR R2, [R2,#0x20]
|
|
|
|
BX R2
|
|
|
|
.endfunc
|
|
|
|
.end
|