Mercurial > repos > simple16
comparison controller.s16 @ 34:4a093f15fb1b
Finish controller test for controller 1
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 03 Apr 2016 19:03:35 -0700 |
parents | 8642cb2ceb89 |
children | 5a5e02d1acf1 |
comparison
equal
deleted
inserted
replaced
33:eda4919d955f | 34:4a093f15fb1b |
---|---|
14 ldim copy_data, r12 | 14 ldim copy_data, r12 |
15 ldimh copy_data, r12 | 15 ldimh copy_data, r12 |
16 call r12, r13 | 16 call r12, r13 |
17 | 17 |
18 ;setup writes to 2nd palette | 18 ;setup writes to 2nd palette |
19 ldim $10, r0 | 19 ldim $20, r0 |
20 ldimh $FF,r0 | 20 ldimh $FF,r0 |
21 outi $E, r0 | 21 outi $E, r0 |
22 | 22 |
23 ;copy 3 colors for 2nd palette | 23 ;copy 3 colors for 2nd palette |
24 ldim 3, r3 | 24 ldim 3, r3 |
156 outi $E, r0 | 156 outi $E, r0 |
157 ;copy third row | 157 ;copy third row |
158 ldim 9, r3 | 158 ldim 9, r3 |
159 call r12, r13 | 159 call r12, r13 |
160 | 160 |
161 ;update map for next frame | |
162 | |
163 ;read controller 1 | |
164 ini $0, r0 | |
165 ;r1 = map | |
166 ldim offsets, r2 | |
167 ldimh offsets, r2 | |
168 ;index | |
169 ldim 0, r3 | |
170 ;mask to test bits | |
171 ldim 1, r4 | |
172 ;constant $2000 | |
173 ldim 0, r9 | |
174 ldimh $20, r9 | |
175 ;limit | |
176 ldim 12, r5 | |
177 modify_loop | |
178 ;load offset | |
179 ld8 r2, r3, r6 | |
180 ;load existing value | |
181 ld16 r1, r6, r7 | |
182 ;test for button pressed | |
183 and r0, r4, r8 | |
184 beq not_pressed | |
185 or r9, r7, r7 | |
186 bra store_modified | |
187 not_pressed | |
188 not r9, r9 | |
189 and r9, r7, r7 | |
190 not r9, r9 | |
191 store_modified | |
192 str16 r1, r6, r7 | |
193 ;shift mask to the left | |
194 add r4, r4, r4 | |
195 addi 1, r3 | |
196 cmp r3, r5 | |
197 bne modify_loop | |
198 | |
199 | |
161 reti r13 | 200 reti r13 |
162 | 201 |
163 offsets: | 202 offsets: |
164 dc.w 52 ;C | 203 dc.b 34 ;Z |
165 dc.w 50 ;B | 204 dc.b 32 ;Y |
166 dc.w 48 ;A | 205 dc.b 30 ;X |
167 dc.w 34 ;Z | 206 dc.b 52 ;C |
168 dc.w 32 ;Y | 207 dc.b 50 ;B |
169 dc.w 30 ;X | 208 dc.b 48 ;A |
170 dc.w 44 ;Mode | 209 dc.b 44 ;Mode |
171 dc.w 26 ;Start | 210 dc.b 26 ;Start |
172 | 211 |
173 dc.w 22 ;Right | 212 dc.b 22 ;Right |
174 dc.w 18 ;Left | 213 dc.b 18 ;Left |
175 dc.w 38 ;Down | 214 dc.b 38 ;Down |
176 dc.w 2 ;Up | 215 dc.b 2 ;Up |
177 | 216 |
178 colors: | 217 colors: |
179 dc.w $000 | 218 dc.w $000 |
180 dc.w $777 | 219 dc.w $777 |
181 dc.w $333 | 220 dc.w $333 |