Skip to content

Commit d940c77

Browse files
committed
better mapping
1 parent 9382e3e commit d940c77

File tree

1 file changed

+37
-28
lines changed

1 file changed

+37
-28
lines changed

src/nmi/pollkeyboard.asm

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -82,69 +82,89 @@ pollKeyboard:
8282
@ret: rts
8383

8484

85+
; Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7
86+
; 0 ] [ RETURN F8 STOP ¥ RSHIFT KANA
87+
; 1 ; : @ F7 ^ - / _
88+
; 2 K L O F6 0 P , .
89+
; 3 J U I F5 8 9 N M
90+
; 4 H G Y F4 6 7 V B
91+
; 5 D R T F3 4 5 C F
92+
; 6 A S W F2 3 E Z X
93+
; 7 CTR Q ESC F1 2 1 GRPH LSHIFT
94+
; 8 LEFT RIGHT UP CLR HOME INS DEL SPACE DOWN
95+
96+
kbUp = $0820
97+
kbDown = $0801
98+
kbLeft = $0880
99+
kbRight = $0840
100+
kbB = $0702 ; grph -> B
101+
kbA = $0802 ; space -> A
102+
kbSelect = $0002 ; right shift -> select0
103+
kbStart = $0020 ; return -> start
104+
105+
85106
mapKeysToButtons:
86-
lda keyboardInput+8
87-
and #$20
107+
lda keyboardInput+>kbUp
108+
and #<kbUp
88109
beq @upNotPressed
89110
lda newlyPressedKeys
90111
ora #BUTTON_UP
91112
sta newlyPressedKeys
92113
bne @skipDownRead
93114
@upNotPressed:
94115

95-
lda keyboardInput+8
96-
and #$01
116+
lda keyboardInput+>kbDown
117+
and #<kbDown
97118
beq @downNotPressed
98119
lda newlyPressedKeys
99120
ora #BUTTON_DOWN
100121
sta newlyPressedKeys
101122
@skipDownRead:
102123
@downNotPressed:
103-
104-
lda keyboardInput+8
105-
and #$80
124+
lda keyboardInput+>kbLeft
125+
and #<kbLeft
106126
beq @leftNotPressed
107127
lda newlyPressedKeys
108128
ora #BUTTON_LEFT
109129
sta newlyPressedKeys
110130
bne @skipRightRead
111131
@leftNotPressed:
112132

113-
lda keyboardInput+8
114-
and #$40
133+
lda keyboardInput+>kbRight
134+
and #<kbRight
115135
beq @rightNotPressed
116136
lda newlyPressedKeys
117137
ora #BUTTON_RIGHT
118138
sta newlyPressedKeys
119139
@skipRightRead:
120140
@rightNotPressed:
121141

122-
lda keyboardInput+7 ; grph -> B
123-
and #$02
142+
lda keyboardInput+>kbB
143+
and #<kbB
124144
beq @bNotPressed
125145
lda newlyPressedKeys
126146
ora #BUTTON_B
127147
sta newlyPressedKeys
128148
@bNotPressed:
129149

130-
lda keyboardInput+8 ; space -> A
131-
and #$02
150+
lda keyboardInput+>kbA
151+
and #<kbA
132152
beq @aNotPressed
133153
lda newlyPressedKeys
134154
ora #BUTTON_A
135155
sta newlyPressedKeys
136156
@aNotPressed:
137157

138-
lda keyboardInput+0 ; right shift -> select0
139-
and #$02
158+
lda keyboardInput+>kbSelect
159+
and #<kbSelect
140160
beq @selectNotPressed
141161
lda newlyPressedKeys
142162
ora #BUTTON_SELECT
143163
sta newlyPressedKeys
144164
@selectNotPressed:
145165

146-
lda keyboardInput+0 ; return -> start
147-
and #$20
166+
lda keyboardInput+>kbStart
167+
and #<kbStart
148168
beq @startNotPressed
149169
lda newlyPressedKeys
150170
ora #BUTTON_START
@@ -170,17 +190,6 @@ mapKeysToButtons:
170190
sta heldButtons_player1
171191
rts
172192

173-
; Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7
174-
; 0 ] [ RETURN F8 STOP ¥ RSHIFT KANA
175-
; 1 ; : @ F7 ^ - / _
176-
; 2 K L O F6 0 P , .
177-
; 3 J U I F5 8 9 N M
178-
; 4 H G Y F4 6 7 V B
179-
; 5 D R T F3 4 5 C F
180-
; 6 A S W F2 3 E Z X
181-
; 7 CTR Q ESC F1 2 1 GRPH LSHIFT
182-
; 8 LEFT RIGHT UP CLR HOME INS DEL SPACE DOWN
183-
184193
shiftFlag := $08
185194
charToKbMap:
186195
.byte $86 ; Space

0 commit comments

Comments
 (0)