mirror of
https://gitee.com/anod/open_agb_firm.git
synced 2025-05-06 13:54:09 +08:00
29 lines
567 B
ArmAsm
29 lines
567 B
ArmAsm
.file "key_onoff.c"
|
|
.text
|
|
.align 2
|
|
.global _start
|
|
.type _start,function
|
|
|
|
_start:
|
|
mov r0, #0x4000000
|
|
ldr r0, [r0, #0x130] @ r0 = read_io(0x4000130)
|
|
ldrh r1, [pc, #0x24] @ r1 = 0x384 key:L+R+D+SEL
|
|
ldrh r2, [pc, #0x22] @ r2 = 0x3ff
|
|
and r0, r0, r2 @ r0 = r0 & 0x3ff
|
|
ldr r2, [pc, #0x1c] @ r2 = static_addr(isOn)
|
|
ldrb r3, [r2] @ r3 = *isOn
|
|
cmp r0, r1
|
|
eoreq r3, r3, #1 @ if r0 == key then *isOn = !r3
|
|
streqb r3, [r2]
|
|
cmp r3, #0
|
|
bne _next @ if r3 != 0 then next else return
|
|
bx lr
|
|
|
|
_const:
|
|
.long 0x03ff0384
|
|
.long 0
|
|
|
|
_next:
|
|
.long 0xFFFFFFFF
|
|
|