... | ... |
@@ -54,9 +54,9 @@ then |
54 | 54 |
fi |
55 | 55 |
|
56 | 56 |
echo "Assembling.." |
57 |
-./bin/uxnasm projects/examples/demos/life.tal bin/life.rom |
|
57 |
+./bin/uxnasm projects/examples/demos/piano.tal bin/piano.rom |
|
58 | 58 |
|
59 | 59 |
echo "Running.." |
60 |
-./bin/uxnemu bin/life.rom |
|
60 |
+./bin/uxnemu bin/piano.rom |
|
61 | 61 |
|
62 | 62 |
echo "Done." |
... | ... |
@@ -10,14 +10,11 @@ |
10 | 10 |
%MOD { DUP2 / * - } |
11 | 11 |
%LTS2 { #8000 ++ SWP2 #8000 ++ >> } |
12 | 12 |
%GTS2 { #8000 ++ SWP2 #8000 ++ << } |
13 |
-%INCR { SWP #01 + SWP } |
|
14 | 13 |
%2// { #01 SFT2 } |
15 | 14 |
%4// { #02 SFT2 } |
16 | 15 |
%8// { #03 SFT2 } |
17 | 16 |
%8** { #30 SFT2 } |
18 | 17 |
|
19 |
-%BREAKPOINT { #0101 #0e DEO2 } |
|
20 |
- |
|
21 | 18 |
( devices ) |
22 | 19 |
|
23 | 20 |
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
... | ... |
@@ -97,15 +94,14 @@ BRK |
97 | 94 |
|
98 | 95 |
.adsr-view/y2 LDZ2 #0020 -- .Screen/y DEO2 |
99 | 96 |
|
100 |
- #00 #10 |
|
97 |
+ #10 #00 |
|
101 | 98 |
&loop |
102 | 99 |
.adsr-view/x2 LDZ2 #003a -- .Screen/x DEO2 |
103 |
- OVR #10 SWP - .Audio0/output DEI #0f AND < .Screen/pixel DEO |
|
100 |
+ DUP #10 SWP - .Audio0/output DEI #0f AND < .Screen/pixel DEO |
|
104 | 101 |
.adsr-view/x2 LDZ2 #003a -- #0002 ++ .Screen/x DEO2 |
105 |
- OVR #10 SWP - .Audio0/output DEI #04 SFT < .Screen/pixel DEO |
|
102 |
+ DUP #10 SWP - .Audio0/output DEI #04 SFT < .Screen/pixel DEO |
|
106 | 103 |
.Screen/y DEI2 #0002 ++ .Screen/y DEO2 |
107 |
- ( incr ) INCR |
|
108 |
- LTHk ,&loop JCN |
|
104 |
+ #01 + GTHk ,&loop JCN |
|
109 | 105 |
POP2 |
110 | 106 |
|
111 | 107 |
BRK |
... | ... |
@@ -134,9 +130,6 @@ BRK |
134 | 130 |
#3b .octave LDZ #0c * + ;play JSR2 &no-b |
135 | 131 |
DUP #6b ! ,&no-c2 JCN |
136 | 132 |
#3c .octave LDZ #0c * + ;play JSR2 &no-c2 |
137 |
- DUP #1b ! ,&no-esc JCN |
|
138 |
- BREAKPOINT |
|
139 |
- &no-esc |
|
140 | 133 |
POP |
141 | 134 |
|
142 | 135 |
( release ) |
... | ... |
@@ -302,13 +295,12 @@ RTN |
302 | 295 |
STH |
303 | 296 |
.Screen/addr DEO2 |
304 | 297 |
SWP2 .Screen/x DEO2 |
305 |
- DUP2 #0018 ++ |
|
298 |
+ DUP2 #0018 ++ SWP2 |
|
306 | 299 |
&loop |
307 |
- ( move ) OVR2 .Screen/y DEO2 |
|
300 |
+ ( move ) DUP2 .Screen/y DEO2 |
|
308 | 301 |
( draw ) STHkr .Screen/sprite DEO |
309 | 302 |
( incr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2 |
310 |
- ( incr ) SWP2 #0008 ++ SWP2 |
|
311 |
- LTH2k ,&loop JCN |
|
303 |
+ #0008 ++ GTH2k ,&loop JCN |
|
312 | 304 |
POP2 POP2 |
313 | 305 |
POPr |
314 | 306 |
|
... | ... |
@@ -353,22 +345,21 @@ RTN |
353 | 345 |
.wave-view/x1 LDZ2 .Screen/x DEO2 |
354 | 346 |
|
355 | 347 |
( waveform ) |
356 |
- #00 #ff |
|
348 |
+ #ff #00 |
|
357 | 349 |
&loop |
358 | 350 |
( dotted line ) |
359 |
- OVR #01 AND ,&no-dot JCN |
|
351 |
+ DUP #01 AND ,&no-dot JCN |
|
360 | 352 |
.wave-view/y1 LDZ2 #0010 ++ .Screen/y DEO2 |
361 | 353 |
#03 .Screen/pixel DEO |
362 | 354 |
&no-dot |
363 |
- OVR TOS .Audio0/addr DEI2 ++ LDA |
|
355 |
+ DUP TOS .Audio0/addr DEI2 ++ LDA |
|
364 | 356 |
#02 / |
365 | 357 |
TOS 4// .wave-view/y1 LDZ2 ++ .Screen/y DEO2 |
366 | 358 |
.Screen/x DEI2 #0001 ++ .Screen/x DEO2 |
367 |
- ( draw ) OVR |
|
359 |
+ ( draw ) DUP |
|
368 | 360 |
.Audio0/length DEI2 TOB > |
369 | 361 |
.Audio0/length DEI2 #0100 !! #0101 == #02 * #01 + .Screen/pixel DEO |
370 |
- ( incr ) INCR |
|
371 |
- LTHk ,&loop JCN |
|
362 |
+ #01 + GTHk ,&loop JCN |
|
372 | 363 |
POP2 |
373 | 364 |
|
374 | 365 |
( range ) |
... | ... |
@@ -384,12 +375,11 @@ RTN |
384 | 375 |
|
385 | 376 |
STH |
386 | 377 |
.wave-view/x1 LDZ2 .Audio0/length DEI2 ++ .Screen/x DEO2 |
387 |
- .wave-view/y1 LDZ2 DUP2 #0020 ++ |
|
378 |
+ .wave-view/y1 LDZ2 DUP2 #0020 ++ SWP2 |
|
388 | 379 |
&loop |
389 |
- OVR2 .Screen/y DEO2 |
|
380 |
+ DUP2 .Screen/y DEO2 |
|
390 | 381 |
( draw ) STHkr .Screen/pixel DEO |
391 |
- ( incr ) SWP2 #0001 ++ SWP2 |
|
392 |
- LTH2k ,&loop JCN |
|
382 |
+ #0001 ++ GTH2k ,&loop JCN |
|
393 | 383 |
POP2 POP2 |
394 | 384 |
POPr |
395 | 385 |
|
... | ... |
@@ -399,24 +389,24 @@ RTN |
399 | 389 |
|
400 | 390 |
( load ) STH .Screen/y DEO2 .Screen/x DEO2 |
401 | 391 |
;knob-icns .Screen/addr DEO2 |
402 |
- ( draw ) #01 .Screen/sprite DEO |
|
392 |
+ ( draw ) #01 .Screen/sprite DEO |
|
403 | 393 |
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
404 | 394 |
;knob-icns #0008 ++ .Screen/addr DEO2 |
405 |
- ( draw ) #01 .Screen/sprite DEO |
|
395 |
+ ( draw ) #01 .Screen/sprite DEO |
|
406 | 396 |
.Screen/y DEI2 #0008 ++ .Screen/y DEO2 |
407 | 397 |
;knob-icns #0018 ++ .Screen/addr DEO2 |
408 |
- ( draw ) #01 .Screen/sprite DEO |
|
398 |
+ ( draw ) #01 .Screen/sprite DEO |
|
409 | 399 |
.Screen/x DEI2 #0008 -- .Screen/x DEO2 |
410 | 400 |
;knob-icns #0010 ++ .Screen/addr DEO2 |
411 |
- ( draw ) #01 .Screen/sprite DEO |
|
401 |
+ ( draw ) #01 .Screen/sprite DEO |
|
412 | 402 |
.Screen/x DEI2 #0004 ++ .Screen/x DEO2 |
413 | 403 |
.Screen/y DEI2 #0008 ++ .Screen/y DEO2 |
414 | 404 |
;font-hex #00 STHkr #08 * ++ .Screen/addr DEO2 |
415 |
- ( draw ) #01 .Screen/sprite DEO |
|
405 |
+ ( draw ) #01 .Screen/sprite DEO |
|
416 | 406 |
.Screen/x DEI2 #0004 -- #00 #00 STHkr ;knob-offsetx ++ LDA ++ .Screen/x DEO2 |
417 | 407 |
.Screen/y DEI2 #0010 -- #00 #00 STHr ;knob-offsety ++ LDA ++ .Screen/y DEO2 |
418 | 408 |
;knob-icns #0020 ++ .Screen/addr DEO2 |
419 |
- ( draw ) #05 .Screen/sprite DEO |
|
409 |
+ ( draw ) #05 .Screen/sprite DEO |
|
420 | 410 |
|
421 | 411 |
RTN |
422 | 412 |
|
... | ... |
@@ -424,37 +414,38 @@ RTN |
424 | 414 |
|
425 | 415 |
STH SWP |
426 | 416 |
DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2 |
427 |
- ( draw ) STHkr .Screen/sprite DEO |
|
417 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
428 | 418 |
#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2 |
429 | 419 |
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
430 |
- ( draw ) STHkr .Screen/sprite DEO |
|
420 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
431 | 421 |
DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2 |
432 | 422 |
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
433 |
- ( draw ) STHkr .Screen/sprite DEO |
|
423 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
434 | 424 |
#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2 |
435 | 425 |
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
436 |
- ( draw ) STHr .Screen/sprite DEO |
|
426 |
+ ( draw ) STHr .Screen/sprite DEO |
|
437 | 427 |
|
438 | 428 |
RTN |
439 | 429 |
|
440 | 430 |
@fill-rect ( x1* y1* x2* y2* color -- ) |
441 | 431 |
|
442 |
- .color STZ |
|
443 |
- ( x1 x2 y1 y2 ) ROT2 SWP2 |
|
432 |
+ ,&color STR |
|
433 |
+ ( x1 x2 y1 y2 ) ROT2 |
|
444 | 434 |
&ver |
445 |
- ( save ) OVR2 .Screen/y DEO2 |
|
446 |
- STH2 STH2 OVR2 OVR2 |
|
435 |
+ ( save ) DUP2 .Screen/y DEO2 |
|
436 |
+ STH2 STH2 OVR2 OVR2 SWP2 |
|
447 | 437 |
&hor |
448 |
- ( save ) OVR2 .Screen/x DEO2 |
|
449 |
- ( draw ) .color LDZ .Screen/pixel DEO |
|
450 |
- ( incr ) SWP2 #0001 ++ SWP2 |
|
451 |
- OVR2 OVR2 LTS2 ,&hor JCN |
|
438 |
+ ( save ) DUP2 .Screen/x DEO2 |
|
439 |
+ ( draw ) ,&color LDR .Screen/pixel DEO |
|
440 |
+ ( incr ) #0001 ++ |
|
441 |
+ OVR2 OVR2 GTS2 ,&hor JCN |
|
452 | 442 |
POP2 POP2 STH2r STH2r |
453 |
- ( incr ) SWP2 #0001 ++ SWP2 |
|
454 |
- OVR2 OVR2 LTS2 ,&ver JCN |
|
443 |
+ ( incr ) #0001 ++ |
|
444 |
+ OVR2 OVR2 GTS2 ,&ver JCN |
|
455 | 445 |
POP2 POP2 POP2 POP2 |
456 | 446 |
|
457 | 447 |
RTN |
448 |
+ &color $1 |
|
458 | 449 |
|
459 | 450 |
@within-rect ( x* y* rect -- flag ) |
460 | 451 |
|