| ... | ... |
@@ -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 |