-
Notifications
You must be signed in to change notification settings - Fork 0
/
joystick.z80
50 lines (41 loc) · 1.45 KB
/
joystick.z80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
; SAM Coupé joystick port and mask bits
; -------------------------------------
;
; Author: Simon Cooke ([email protected])
; Licensed under the MIT license (see LICENSE file).
; Example Usage:
; LD A,JOYSTICK_1_PORTH
; IN A,(JOYSTICK)
; AND JOYSTICK_1_FIRE
; JP NZ,FIRE_PRESSED
;
; NOTE: Joystick 1 and 2's bits are in reverse order to each
; other.
; Low address (A7-A0) of port - this is the KEYBOARD port
JOYSTICK: EQU &FE ; KEYBOARD port.
; Mask for joystick bits from KEYBOARD port
JOYSTICK_MASK: EQU %00011111
; Joystick 1 (mapped to keys 6-0)
; ===============================
; Port for use with LD BC, JOYSTICK_1_PORT : IN A,(C)
JOYSTICK_1_PORT: EQU &F7FE
; Port for use with LD A, JOYSTICK_PORTH : IN A,(JOYSTICK)
JOYSTICK_1_PORT_H:EQU &F7
; Input bit masks
JOYSTICK_1_LEFT: EQU %00010000 ; = KEY 6
JOYSTICK_1_RIGHT: EQU %00001000 ; = KEY 7
JOYSTICK_1_DOWN: EQU %00000100 ; = KEY 8
JOYSTICK_1_UP: EQU %00000010 ; = KEY 9
JOYSTICK_1_FIRE: EQU %00000001 ; = KEY 0
; Joystick 2 (mapped to keys 1-5)
; ===============================
; Port for use with LD BC, JOYSTICK_2_PORT : IN A,(C)
JOYSTICK_2_PORT: EQU &F7FE
; Port for use with LD A, JOYSTICK_2_PORTH : IN A,(JOYSTICK)
JOYSTICK_2_PORT_H:EQU &F7
; Input bit masks
JOYSTICK_2_LEFT: EQU %00000001 ; = KEY 1
JOYSTICK_2_RIGHT: EQU %00000010 ; = KEY 2
JOYSTICK_2_DOWN: EQU %00000100 ; = KEY 3
JOYSTICK_2_UP: EQU %00001000 ; = KEY 4
JOYSTICK_2_FIRE: EQU %00010000 ; = KEY 5