... | ... |
@@ -16,7 +16,9 @@ |
16 | 16 |
%10** { #40 SFT2 } %10// { #04 SFT2 } |
17 | 17 |
%20** { #50 SFT2 } |
18 | 18 |
|
19 |
+%2MOD2 { #0001 AND2 } |
|
19 | 20 |
%4MOD { #03 AND } %4MOD2 { #0003 AND2 } |
21 |
+%8MOD { #07 AND } |
|
20 | 22 |
|
21 | 23 |
%DEBUG { ;print-hex/byte JSR2 #0a .Console/write DEO } |
22 | 24 |
%DEBUG2 { ;print-hex/short JSR2 #0a .Console/write DEO } |
... | ... |
@@ -202,7 +204,6 @@ BRK |
202 | 204 |
|
203 | 205 |
@click-keypad ( x* y* -> ) |
204 | 206 |
|
205 |
- ( get key ) |
|
206 | 207 |
( y ) .keypad-frame/y LDZ2 -- #24 SFT2 |
207 | 208 |
( x ) SWP2 .keypad-frame/x LDZ2 -- 10// 4MOD2 |
208 | 209 |
( value ) ++ ;keypad/layout ++ LDA |
... | ... |
@@ -215,7 +216,8 @@ BRK |
215 | 216 |
@click-modpad ( x* y* -> ) |
216 | 217 |
|
217 | 218 |
( y ) .modpad-frame/y LDZ2 -- #24 SFT2 NIP STH |
218 |
- ( x ) .modpad-frame/x LDZ2 -- 10// NIP STHr + |
|
219 |
+ ( x ) .modpad-frame/x LDZ2 -- 10// |
|
220 |
+ ( value ) NIP STHr + |
|
219 | 221 |
DUP #00 ! ,&no-add JCN ;do-add JSR2 &no-add |
220 | 222 |
DUP #01 ! ,&no-sub JCN ;do-sub JSR2 &no-sub |
221 | 223 |
DUP #02 ! ,&no-mul JCN ;do-mul JSR2 &no-mul |
... | ... |
@@ -233,9 +235,9 @@ BRK |
233 | 235 |
|
234 | 236 |
@click-bitpad ( x* y* -> ) |
235 | 237 |
|
236 |
- .bitpad-frame/y LDZ2 -- 8// NIP 8* STH |
|
237 |
- .bitpad-frame/x LDZ2 -- 8// NIP STHr + |
|
238 |
- STHk |
|
238 |
+ ( y ) .bitpad-frame/y LDZ2 -- 8// NIP 8* STH |
|
239 |
+ ( x ) .bitpad-frame/x LDZ2 -- 8// NIP |
|
240 |
+ ( value ) STHr + STHk |
|
239 | 241 |
|
240 | 242 |
#30 + .Audio0/pitch DEO |
241 | 243 |
|
... | ... |
@@ -268,8 +270,8 @@ BRK |
268 | 270 |
|
269 | 271 |
DUP #50 + .Audio0/pitch DEO |
270 | 272 |
DUP TOS ;keypad/series ++ LDA ;draw-keypad JSR2 |
271 |
- TOS .input/value LDZ2 #40 SFT2 ++ .input/value STZ2 |
|
272 |
- .input/length LDZ INC .input/length STZ |
|
273 |
+ TOS .input/value LDZ2 10** ++ .input/value STZ2 |
|
274 |
+ ( INCZ ) .input/length LDZk INC SWP STZ |
|
273 | 275 |
#ff ;draw-input JSR2 |
274 | 276 |
;draw-bitpad JSR2 |
275 | 277 |
|
... | ... |
@@ -278,7 +280,7 @@ RTN |
278 | 280 |
@push ( value* -- ) |
279 | 281 |
|
280 | 282 |
( store ) .stack/length LDZ 2* .stack/items + STZ2 |
281 |
- ( incr ) .stack/length LDZ INC .stack/length STZ |
|
283 |
+ ( INCZ ) .stack/length LDZk INC SWP STZ |
|
282 | 284 |
( reset ) #0000 .input/value STZ2 |
283 | 285 |
#00 ;draw-input JSR2 |
284 | 286 |
;draw-stack JSR2 |
... | ... |
@@ -288,8 +290,8 @@ RTN |
288 | 290 |
@pop ( -- value* ) |
289 | 291 |
|
290 | 292 |
.stack/length LDZ #01 - 2* .stack/items + LDZ2 |
291 |
- ( clear ) #0000 .stack/length LDZ #01 - 2* .stack/items + STZ2 |
|
292 |
- ( incr ) .stack/length LDZ #01 - .stack/length STZ |
|
293 |
+ ( clear ) #0000 [ .stack/length LDZ #01 - 2* .stack/items + ] STZ2 |
|
294 |
+ ( DECZ ) .stack/length LDZk #01 - SWP STZ |
|
293 | 295 |
#01 ;draw-input JSR2 |
294 | 296 |
;draw-stack JSR2 |
295 | 297 |
|
... | ... |
@@ -297,12 +299,9 @@ RTN |
297 | 299 |
|
298 | 300 |
@do-push ( -- ) |
299 | 301 |
|
300 |
- .input/value LDZ2 ADD ,¬-empty JCN |
|
301 |
- RTN |
|
302 |
- ¬-empty |
|
303 |
- .stack/length LDZ #07 < ,¬-full JCN |
|
304 |
- RTN |
|
305 |
- ¬-full |
|
302 |
+ .input/value LDZ2 ADD #00 > JMP RTN |
|
303 |
+ .stack/length LDZ #07 < JMP RTN |
|
304 |
+ |
|
306 | 305 |
#40 .Audio0/pitch DEO |
307 | 306 |
.input/value LDZ2 ;push JSR2 |
308 | 307 |
|
... | ... |
@@ -475,12 +474,11 @@ RTN |
475 | 474 |
STH STH2 |
476 | 475 |
.Screen/y DEO2 |
477 | 476 |
#0020 ++ .Screen/x DEO2 |
478 |
- #04 #00 |
|
477 |
+ #0400 |
|
479 | 478 |
&loop |
480 | 479 |
.Screen/x DEI2 #0008 -- .Screen/x DEO2 |
481 | 480 |
( value ) DUP STH2kr ROT 4* SFT2 #000f AND2 |
482 | 481 |
( value glyph ) 8** ;font-hex ++ .Screen/addr DEO2 |
483 |
- ( no not draw zeros ) |
|
484 | 482 |
( get color ) ROTr STHkr |
485 | 483 |
( place stack ) ROTr ROTr |
486 | 484 |
( no leading zeros ) |
... | ... |
@@ -575,9 +573,9 @@ RTN |
575 | 573 |
|
576 | 574 |
#10 #00 |
577 | 575 |
&loop |
578 |
- ( state ) DUP #0f SWP - .input/value LDZ2 ROT SFT2 #0001 AND2 NIP STH |
|
576 |
+ ( state ) DUP #0f SWP - .input/value LDZ2 ROT SFT2 2MOD2 NIP STH |
|
579 | 577 |
( y ) DUP 8/ TOS 8** .bitpad-frame/y LDZ2 ++ STH2 |
580 |
- ( x ) DUP #07 AND TOS 8** .bitpad-frame/x LDZ2 ++ |
|
578 |
+ ( x ) DUP 8MOD TOS 8** .bitpad-frame/x LDZ2 ++ |
|
581 | 579 |
STH2r STHr #01 ,draw-bit JSR |
582 | 580 |
INC GTHk ,&loop JCN |
583 | 581 |
POP2 |