pmd-red/asm/arm_func.s

113 lines
2.0 KiB
ArmAsm
Raw Normal View History

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
2020-10-04 18:07:14 +00:00
.syntax unified
.text
arm_func_start sub_80001E8
sub_80001E8:
stmdb sp!, {r4-r11}
2020-10-13 22:30:44 +00:00
mov r12, 0x4000000 @ REG_BASE
2020-10-04 18:07:14 +00:00
ldr r11, _08000224
add r10, r11, 0x40
mov r9, 0x1
mov r8, 0
2020-10-13 22:30:44 +00:00
strb r8, [r12, 0x208] @ REG_IME
2020-10-04 18:07:14 +00:00
ldmia r10, {r0-r7}
stmia r10!, {r4-r7}
stmia r10!, {r0-r3}
ldr r0, [r11, 0x4]
str r8, [r11, 0x4]
2020-10-13 22:30:44 +00:00
strb r9, [r12, 0x208] @ REG_IME
2020-10-04 18:07:14 +00:00
ldmia sp!, {r4-r11}
bx lr
.align 2, 0
_08000224: .4byte gUnknown_202DCF8
arm_func_end sub_80001E8
arm_func_start sub_8000228
sub_8000228:
mov r12, 0x4000000
2020-10-13 22:30:44 +00:00
add r12, r12, 0x120 @ REG_SIODATA32
2020-10-04 18:07:14 +00:00
ldmia r12, {r0,r1}
stmdb sp!, {r7-r11}
ldr r11, _08000340
mov r9, 0xFE
add r9, r9, 0xFE00
ldrh r3, [r12, 0x8]
and r3, r3, 0x40
strb r3, [r11, 0x9]
ldr r10, [r11, 0x14]
adds r3, r10, 0x1
blt _08000284
bne _08000278
strh r9, [r12, 0xA]
add r8, r11, 0x28
ldmia r8, {r2,r3}
mov r7, r2
stmia r8, {r3,r7}
b _08000284
_08000278:
ldr r3, [r11, 0x2C]
ldr r2, [r3, r10, lsl 1]
strh r2, [r12, 0xA]
_08000284:
cmp r10, 0xB
addlt r10, r10, 0x1
strlt r10, [r11, 0x14]
stmdb sp!, {r0,r1,r5,r6}
mov r6, 0x3
_08000298:
add r8, r11, 0x18
add r8, r8, r6, lsl 2
ldr r10, [r8]
mov r3, r6, lsl 1
ldrh r5, [sp, r3]
cmp r5, r9
bne _080002C8
cmp r10, 0x9
ble _080002C8
mov r0, 0x1
sub r10, r0, 0x2
b _080002F4
_080002C8:
ldr r0, [r8, 0x18]
mov r3, r10, lsl 1
strh r5, [r0, r3]
cmp r10, 0x9
bne _080002F4
ldr r1, [r8, 0x28]
str r0, [r8, 0x28]
str r1, [r8, 0x18]
add r3, r11, 0x4
mov r0, 0x1
strb r0, [r3, r6]
_080002F4:
cmp r10, 0xB
addlt r10, r10, 0x1
str r10, [r8]
subs r6, r6, 0x1
bge _08000298
ldrb r0, [r11]
cmp r0, 0
beq _08000334
2020-10-13 22:30:44 +00:00
ldr r7, _08000344 @ REG_TM3CNT_H
2020-10-04 18:07:14 +00:00
mov r0, 0
strh r0, [r7]
ldrh r0, [r12, 0x8]
orr r0, r0, 0x80
strh r0, [r12, 0x8]
mov r0, 0xC0
strh r0, [r7]
_08000334:
add sp, sp, 0x8
ldmia sp!, {r5-r11}
bx lr
.align 2, 0
_08000340: .4byte gUnknown_202DCF8
_08000344: .4byte 0x0400010e
arm_func_end sub_8000228
.align 2,0