diff options
author | Tauwasser <Tauwasser@tauwasser.eu> | 2018-06-01 01:26:26 +0200 |
---|---|---|
committer | Tauwasser <Tauwasser@tauwasser.eu> | 2018-06-01 01:26:41 +0200 |
commit | 66e714913c3ed0bcb1c8d9ee9c004960b711a8ac (patch) | |
tree | c9c4d961883f220a29abca51826e863e7bc3a2bb /home/joypad.asm | |
parent | 513028a98e6225e39c53ea64e4f9c483b3abd55b (diff) |
home: disassemble vblank and associated functions
Signed-off-by: Tauwasser <Tauwasser@tauwasser.eu>
Diffstat (limited to 'home/joypad.asm')
-rw-r--r-- | home/joypad.asm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/home/joypad.asm b/home/joypad.asm new file mode 100644 index 0000000..80371b7 --- /dev/null +++ b/home/joypad.asm @@ -0,0 +1,51 @@ +INCLUDE "constants.asm" + +SECTION "Joypad functions", ROM0[$07FE] + +Joypad:: ; 7fe (0:7fe) + ld a, [$d4ab] + and $d0 + ret nz + ld a, 1 << 5 ; select direction keys + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + cpl + and $0f + swap a + ld b, a + ld a, 1 << 4 ; select button keys + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + cpl + and $0f + or b + ld b, a + ld a, (1 << 5 | 1 << 4) ; port reset + ldh [rJOYP], a + ldh a, [hJoypadDown] + ld e, a + xor b + ld d, a + and e + ldh [hJoypadReleased], a + ld a, d + and b + ldh [hJoypadPressed], a + ld c, a + ldh a, [hJoypadSum] + or c + ldh [hJoypadSum], a + ld a, b + ldh [hJoypadDown], a + ldh [hJoypadDown2], a + and $0f + cp $0f + jp z, Reset + ret +; 0x84a
\ No newline at end of file |