Browse code

Migrated Screen/color to Screen/pixel and/or Screen/sprite

Andrew Alderwick authored on 31/07/2021 20:58:33
Showing 29 changed files
... ...
@@ -14,7 +14,7 @@
14 14
 
15 15
 |00 @System     [ &vector $2 &wst      $1 &rst    $1 &pad   $4 &r      $2 &g      $2 &b    $2 &debug  $1 &halt $1 ]
16 16
 |10 @Console    [ &vector $2 &read     $1 &pad    $5 &write $1 &error  $1 ]
17
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color  $1 ]
17
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel  $1 &sprite $1 ]
18 18
 |30 @Audio0     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
19 19
 |40 @Audio1     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
20 20
 |50 @Audio2     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
... ...
@@ -8,7 +8,7 @@
8 8
 ( devices )
9 9
 
10 10
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
11
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1 ]
11
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1 ]
12 12
 |b0 @DateTime   [ &year   $2 &month    $1 &day    $1 &hour  $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
13 13
 
14 14
 |0000
... ...
@@ -47,7 +47,7 @@ BRK
47 47
 		( copy ) OVR #00 SWP DUP2
48 48
 		( pos  ) .Screen/x DEO2
49 49
 		( addr ) CELL ADD2
50
-		( draw ) LDA .Screen/color DEO
50
+		( draw ) LDA .Screen/pixel DEO
51 51
 		( incr ) INCR
52 52
 		( loop ) LTHk ,&loop JCN
53 53
 	POP2
... ...
@@ -12,7 +12,7 @@
12 12
 ( devices )
13 13
 
14 14
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
15
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1 ]
15
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1 ]
16 16
 |90 @Mouse      [ &vector $2 &x        $2 &y      $2 &state $1 &wheel  $1 ]
17 17
 |b0 @DateTime   [ &year   $2 &month    $1 &day    $1 &hour  $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
18 18
 
... ...
@@ -113,7 +113,7 @@ RTN
113 113
 		( set tile ) 8** ;tiles ADD2 
114 114
 		( set style ) .style LDZ #10 MUL TOS ADD2
115 115
 		.Screen/addr DEO2
116
-		( draw ) #21 .Screen/color DEO
116
+		( draw ) #01 .Screen/sprite DEO
117 117
 		( incr ) SWP #01 ADD SWP 
118 118
 		LTHk ,&loop JCN
119 119
 	POP2
... ...
@@ -130,7 +130,7 @@ RTN
130 130
 		#0000 .Screen/width DEI2
131 131
 		&hor
132 132
 			( save ) OVR2 .Screen/x DEO2
133
-			( draw ) #21 .Screen/color DEO
133
+			( draw ) #01 .Screen/sprite DEO
134 134
 			( incr ) SWP2 #0008 ADD2 SWP2
135 135
 			LTH2k ,&hor JCN
136 136
 		POP2 POP2
... ...
@@ -146,12 +146,12 @@ RTN
146 146
 	;cursor .Screen/addr DEO2 
147 147
 	.pointer/x LDZ2 .Screen/x DEO2 
148 148
 	.pointer/y LDZ2 .Screen/y DEO2 
149
-	#30 .Screen/color DEO
149
+	#40 .Screen/sprite DEO
150 150
 	( record pointer positions )
151 151
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2 
152 152
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 
153 153
 	( colorize on state )
154
-	#31 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/color DEO
154
+	#41 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/sprite DEO
155 155
 
156 156
 RTN
157 157
 
... ...
@@ -13,8 +13,8 @@
13 13
 %anispeedmask_normal { #03 }
14 14
 %anispeedmask_slow { #07 }
15 15
 
16
-%c_color_normal { #33 }
17
-%c_color_flipx { #73 }
16
+%c_color_normal { #43 }
17
+%c_color_flipx { #53 }
18 18
 %index_norock { #ff }
19 19
 
20 20
 ( output macros )
... ...
@@ -34,7 +34,7 @@
34 34
 ( devices )
35 35
 
36 36
 |00 @System     [ &vector $2 &wst      $1 &rst    $1 &pad   $4 &r      $2 &g     $2 &b      $2 ]
37
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &color $1 ]
37
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &pixel $1 &sprite $1 ]
38 38
 |80 @Controller [ &vector $2 &button   $1 &key    $1 ]
39 39
 
40 40
 ( variables )
... ...
@@ -125,7 +125,7 @@ BRK
125 125
 		DUP ( get rocks_y[i] )
126 126
 		;rocks_y ROT #00 SWP ADD2 out_screen_y
127 127
 
128
-		#30 .Screen/color DEO
128
+		#40 .Screen/sprite DEO
129 129
 
130 130
 		#01 ADD
131 131
 		DUP2
... ...
@@ -142,7 +142,7 @@ JMP2r
142 142
 	;tog/x out_screen_x
143 143
 	;tog/x out_screen_y
144 144
 	;s_stand .Screen/addr DEO2
145
-	#23 .Screen/color DEO
145
+	#03 .Screen/sprite DEO
146 146
 
147 147
 	( draw rocks )
148 148
 	;s_bola .Screen/addr DEO2
... ...
@@ -157,10 +157,10 @@ JMP2r
157 157
 		;rocks_y ROT #00 SWP ADD2 out_screen_y
158 158
 
159 159
 		( DUP ( get color bitwise ) )
160
-		( ;r_color LDA SWP get_bit_n #31 ADD .Screen/color DEO )
160
+		( ;r_color LDA SWP get_bit_n #41 ADD .Screen/sprite DEO )
161 161
 
162 162
 		DUP
163
-		;r_color ROT #00 SWP ADD2 LDA #31 ADD .Screen/color DEO
163
+		;r_color ROT #00 SWP ADD2 LDA #41 ADD .Screen/sprite DEO
164 164
 
165 165
 		#01 ADD
166 166
 
... ...
@@ -440,14 +440,14 @@ JMP2r
440 440
 	;c_sprite LDA2 ADD2 .Screen/addr DEO2
441 441
 	;c_pos/x out_screen_x
442 442
 	;c_pos/y out_screen_y
443
-	;c_color LDA .Screen/color DEO
443
+	;c_color LDA .Screen/sprite DEO
444 444
 JMP2r
445 445
 
446 446
 @clear_c ( clear character )
447 447
 	;s_clear .Screen/addr DEO2
448 448
 	;c_pos/x out_screen_x
449 449
 	;c_pos/y out_screen_y
450
-	#30 .Screen/color DEO
450
+	#40 .Screen/sprite DEO
451 451
 JMP2r
452 452
 
453 453
 @init_bg
... ...
@@ -467,7 +467,7 @@ JMP2r
467 467
 			STH2r
468 468
 			DUP2 .Screen/x DEO2
469 469
 
470
-			#23 .Screen/color DEO
470
+			#03 .Screen/sprite DEO
471 471
 
472 472
 			#0008 ADD2 DUP2 STH2
473 473
 			GTH2 ,&horizontal0loop JCN
... ...
@@ -497,7 +497,7 @@ JMP2r
497 497
 			STH2r
498 498
 			DUP2 .Screen/x DEO2
499 499
 
500
-			#20 .Screen/color DEO
500
+			#00 .Screen/sprite DEO
501 501
 
502 502
 			#0008 ADD2 DUP2 STH2
503 503
 			GTH2 ,&horizontal0loop_clear JCN
... ...
@@ -21,7 +21,7 @@
21 21
 
22 22
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
23 23
 |10 @Console    [ &vector $2 &read     $1 &pad    $5 &write $1 ]
24
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y     $2 &addr   $2 &color $1 ]
24
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y     $2 &addr   $2 &pixel  $1 &sprite $1 ]
25 25
 |30 @Audio0     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
26 26
 |40 @Audio1     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
27 27
 |50 @Audio2     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
... ...
@@ -340,13 +340,13 @@ RTN
340 340
 		( dotted line )
341 341
 		OVR #01 AND ,&no-dot JCN 
342 342
 			.wav-view/y1 LDZ2 #0010 ++ .Screen/y DEO2
343
-			#01 .Screen/color DEO
343
+			#01 .Screen/pixel DEO
344 344
 		&no-dot
345 345
 		OVR TOS #0010 ** [ DUP2r STH2r ] ++ LDA 
346 346
 		#02 /
347 347
 		TOS 4// .wav-view/y1 LDZ2 ++ .Screen/y DEO2
348 348
 		.Screen/x DEI2 #0001 ++ .Screen/x DEO2
349
-		( draw ) #02 .Screen/color DEO
349
+		( draw ) #02 .Screen/pixel DEO
350 350
 		( incr ) SWP #01 + SWP
351 351
 		LTHk ,&loop JCN
352 352
 	POP2
... ...
@@ -399,7 +399,7 @@ RTN
399 399
 	OVR2 #0002 ++ 
400 400
 	OVR2 #0002 ++ 
401 401
 	;pad-name STHkr TOS #0005 ** ++ 
402
-	#20 OVRr STHr + 
402
+	#00 OVRr STHr + 
403 403
 	;draw-label JSR2
404 404
 
405 405
 	( draw note )
... ...
@@ -407,14 +407,14 @@ RTN
407 407
 	DUP2 #0014 ++ .Screen/y DEO2
408 408
 	( get pitch ) STHkr TOS ;pad-pitch ++ LDA
409 409
 	#0c / TOS 8** ;font-hex ++ .Screen/addr DEO2
410
-	#21 .Screen/color DEO
410
+	#01 .Screen/sprite DEO
411 411
 
412 412
 	( draw octave )
413 413
 	OVR2 #000b ++ .Screen/x DEO2
414 414
 	DUP2 #0014 ++ .Screen/y DEO2
415 415
 	( get pitch ) STHkr TOS ;pad-pitch ++ LDA
416 416
 	#0c MOD TOS 8** ;font-notes ++ .Screen/addr DEO2
417
-	#21 .Screen/color DEO
417
+	#01 .Screen/sprite DEO
418 418
 
419 419
 	POP2 POP2
420 420
 
... ...
@@ -426,27 +426,27 @@ RTN
426 426
 	
427 427
 	.oct-view/x1 LDZ2 .oct-view/y1 LDZ2
428 428
 
429
-	OVR2 OVR2 ;keys-left-icns #21 .piano/last LDZ #00 = + ;draw-key JSR2
430
-	OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #01 = + ;draw-key JSR2
431
-	OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .piano/last LDZ #02 = + ;draw-key JSR2
432
-	OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .piano/last LDZ #03 = + ;draw-key JSR2
433
-	OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #04 = + ;draw-key JSR2
434
-	OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #05 = + ;draw-key JSR2
435
-	SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .piano/last LDZ #06 = + ;draw-key JSR2
429
+	OVR2 OVR2 ;keys-left-icns #01 .piano/last LDZ #00 = + ;draw-key JSR2
430
+	OVR2 #0008 ++ OVR2 ;keys-middle-icns #01 .piano/last LDZ #01 = + ;draw-key JSR2
431
+	OVR2 #0010 ++ OVR2 ;keys-right-icns #01 .piano/last LDZ #02 = + ;draw-key JSR2
432
+	OVR2 #0018 ++ OVR2 ;keys-left-icns #01 .piano/last LDZ #03 = + ;draw-key JSR2
433
+	OVR2 #0020 ++ OVR2 ;keys-middle-icns #01 .piano/last LDZ #04 = + ;draw-key JSR2
434
+	OVR2 #0028 ++ OVR2 ;keys-middle-icns #01 .piano/last LDZ #05 = + ;draw-key JSR2
435
+	SWP2 #0030 ++ SWP2 ;keys-right-icns #01 .piano/last LDZ #06 = + ;draw-key JSR2
436 436
 
437 437
 	.oct-view/x1 LDZ2 #0040 ++ .Screen/x DEO2
438 438
 
439 439
 	;arrow-icns .Screen/addr DEO2
440 440
 	.oct-view/y1 LDZ2 .Screen/y DEO2
441
-	#21 .Screen/color DEO
441
+	#01 .Screen/sprite DEO
442 442
 
443 443
 	;arrow-icns #0008 ++ .Screen/addr DEO2
444 444
 	.oct-view/y1 LDZ2 #0010 ++ .Screen/y DEO2
445
-	#21 .Screen/color DEO
445
+	#01 .Screen/sprite DEO
446 446
 
447 447
 	;font-hex .piano/octave LDZ #03 + #00 SWP 8** ++ .Screen/addr DEO2
448 448
 	.oct-view/y1 LDZ2 #0008 ++ .Screen/y DEO2
449
-	#23 .Screen/color DEO
449
+	#03 .Screen/sprite DEO
450 450
 
451 451
 RTN
452 452
 
... ...
@@ -459,9 +459,9 @@ RTN
459 459
 
460 460
 	#00 #0f
461 461
 	&loop
462
-		OVR #10 SWP - STHkr #0f AND < #01 + .Screen/color DEO
462
+		OVR #10 SWP - STHkr #0f AND < #01 + .Screen/pixel DEO
463 463
 		.Screen/x DEI2 #0002 ++ .Screen/x DEO2
464
-		OVR #10 SWP - STHkr #04 SFT < #01 + .Screen/color DEO
464
+		OVR #10 SWP - STHkr #04 SFT < #01 + .Screen/pixel DEO
465 465
 		.Screen/x DEI2 #0002 -- .Screen/x DEO2
466 466
 		.Screen/y DEI2 #0002 ++ .Screen/y DEO2
467 467
 		( incr ) SWP #01 + SWP
... ...
@@ -480,7 +480,7 @@ RTN
480 480
 	DUP2 #0018 ++
481 481
 	&loop
482 482
 		( move ) OVR2 .Screen/y DEO2
483
-		( draw ) STHkr .Screen/color DEO
483
+		( draw ) STHkr .Screen/sprite DEO
484 484
 		( incr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2  
485 485
 		( incr ) SWP2 #0008 ++ SWP2
486 486
 		LTH2k ,&loop JCN
... ...
@@ -495,12 +495,12 @@ RTN
495 495
 	;cursor-icn .Screen/addr DEO2 
496 496
 	.pointer/x LDZ2 .Screen/x DEO2 
497 497
 	.pointer/y LDZ2 .Screen/y DEO2 
498
-	#30 .Screen/color DEO
498
+	#40 .Screen/sprite DEO
499 499
 	( record pointer positions )
500 500
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2 
501 501
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 
502 502
 	( colorize on state )
503
-	#33 [ .Mouse/state DEI #00 ! ] - .Screen/color DEO
503
+	#43 [ .Mouse/state DEI #00 ! ] - .Screen/sprite DEO
504 504
 
505 505
 RTN
506 506
 
... ...
@@ -508,24 +508,24 @@ RTN
508 508
 
509 509
 	( load ) STH .Screen/y DEO2  .Screen/x DEO2
510 510
 	;knob-icns .Screen/addr DEO2 
511
-	( draw ) #21 .Screen/color DEO
511
+	( draw ) #01 .Screen/sprite DEO
512 512
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2 
513 513
 	;knob-icns #0008 ++ .Screen/addr DEO2 
514
-	( draw ) #21 .Screen/color DEO
514
+	( draw ) #01 .Screen/sprite DEO
515 515
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2 
516 516
 	;knob-icns #0018 ++ .Screen/addr DEO2 
517
-	( draw ) #21 .Screen/color DEO
517
+	( draw ) #01 .Screen/sprite DEO
518 518
 	.Screen/x DEI2 #0008 -- .Screen/x DEO2 
519 519
 	;knob-icns #0010 ++ .Screen/addr DEO2 
520
-	( draw ) #21 .Screen/color DEO
520
+	( draw ) #01 .Screen/sprite DEO
521 521
 	.Screen/x DEI2 #0004 ++ .Screen/x DEO2
522 522
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
523 523
 	;font-hex #00 STHkr #08 * ++ .Screen/addr DEO2
524
-	( draw ) #21 .Screen/color DEO
524
+	( draw ) #01 .Screen/sprite DEO
525 525
 	.Screen/x DEI2 #0004 -- #00 #00 STHkr ;knob-offsetx ++ LDA ++ .Screen/x DEO2
526 526
 	.Screen/y DEI2 #0010 -- #00 #00 STHr ;knob-offsety ++ LDA ++ .Screen/y DEO2
527 527
 	;knob-icns #0020 ++ .Screen/addr DEO2
528
-	( draw ) #25 .Screen/color DEO
528
+	( draw ) #05 .Screen/sprite DEO
529 529
 
530 530
 RTN
531 531
 
... ...
@@ -534,17 +534,17 @@ RTN
534 534
 	STH .Screen/y DEO2 .Screen/x DEO2
535 535
 	STHkr #20 * #00 SWP ;switch-icns ++
536 536
 	DUP2 .Screen/addr DEO2
537
-	( draw ) #21 STHkr + .Screen/color DEO
537
+	( draw ) #01 STHkr + .Screen/sprite DEO
538 538
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
539 539
 	DUP2 #0008 ++ .Screen/addr DEO2
540
-	( draw ) #21 STHkr + .Screen/color DEO
540
+	( draw ) #01 STHkr + .Screen/sprite DEO
541 541
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
542 542
 	.Screen/x DEI2 #0008 -- .Screen/x DEO2
543 543
 	DUP2 #0010 ++ .Screen/addr DEO2
544
-	( draw ) #21 STHkr + .Screen/color DEO
544
+	( draw ) #01 STHkr + .Screen/sprite DEO
545 545
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
546 546
 	#0018 ++ .Screen/addr DEO2
547
-	( draw ) #21 STHr + .Screen/color DEO
547
+	( draw ) #01 STHr + .Screen/sprite DEO
548 548
 
549 549
 RTN
550 550
 
... ...
@@ -554,16 +554,16 @@ RTN
554 554
 	STH2r #0001 ++ STH2r
555 555
 	&ver
556 556
 		( save ) OVR2 .Screen/y DEO2
557
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO
558
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO
557
+		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO
558
+		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO
559 559
 		( incr ) SWP2 #0001 ++ SWP2
560 560
 		OVR2 OVR2 LTS2 ,&ver JCN
561 561
 	POP2 POP2
562 562
 	.rect/x1 LDZ2 #0001 ++ .rect/x2 LDZ2 #0001 --
563 563
 	&hor
564 564
 		( save ) OVR2 .Screen/x DEO2
565
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO
566
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO
565
+		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO
566
+		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO
567 567
 		( incr ) SWP2 #0001 ++ SWP2
568 568
 		OVR2 OVR2 #0001 ++ LTS2 ,&hor JCN
569 569
 	POP2 POP2
... ...
@@ -576,7 +576,7 @@ RTN
576 576
 	STH2r
577 577
 	&loop
578 578
 		DUP2 LDA #00 SWP #0030 -- 8** ;font-num-uc ++ .Screen/addr DEO2 
579
-		( draw ) STHkr .Screen/color DEO
579
+		( draw ) STHkr .Screen/sprite DEO
580 580
 		( incr ) #0001 ++
581 581
 		( incr ) .Screen/x DEI2 #0008 ++ .Screen/x DEO2
582 582
 		DUP2 LDA #00 ! ,&loop JCN
... ...
@@ -594,7 +594,7 @@ RTN
594 594
 		STH2 STH2 OVR2 OVR2
595 595
 		&hor
596 596
 			( save ) OVR2 .Screen/x DEO2
597
-			( draw ) .color LDZ .Screen/color DEO
597
+			( draw ) .color LDZ .Screen/pixel DEO
598 598
 			( incr ) SWP2 #0001 ++ SWP2
599 599
 			OVR2 OVR2 LTS2 ,&hor JCN
600 600
 		POP2 POP2 STH2r STH2r
... ...
@@ -12,7 +12,7 @@
12 12
 ( devices )
13 13
 
14 14
 |00 @System  &vector $2 &pad     $6 &r      $2 &g     $2 &b      $2
15
-|20 @Screen  &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1
15
+|20 @Screen  &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1
16 16
 |a0 @File    &vector $2 &success $2 &offset $2 &pad   $2 &name   $2 &length $2 &load $2 &save  $2
17 17
 
18 18
 ( variables )
... ...
@@ -33,21 +33,21 @@
33 33
 	;font-path-large .File/name DEO2
34 34
 	;font-data .File/load DEO2
35 35
 		( draw label )
36
-		#0020 #0020 ;title #21 ;draw-uf3 JSR2
36
+		#0020 #0020 ;title #01 ;draw-uf3 JSR2
37 37
 
38 38
 	( load font )
39 39
 	#2100 .File/length DEO2
40 40
 	;font-path-medium .File/name DEO2
41 41
 	;font-data .File/load DEO2
42 42
 		( draw label )
43
-		#0020 #0048 ;body #22 ;draw-uf2 JSR2
43
+		#0020 #0048 ;body #02 ;draw-uf2 JSR2
44 44
 
45 45
 	( load font )
46 46
 	#0900 .File/length DEO2
47 47
 	;font-path-small .File/name DEO2
48 48
 	;font-data .File/load DEO2
49 49
 		( draw label )
50
-		#0030 #00b8 ;footer #23 ;draw-uf1 JSR2
50
+		#0030 #00b8 ;footer #03 ;draw-uf1 JSR2
51 51
 	
52 52
 BRK
53 53
 
... ...
@@ -64,7 +64,7 @@ BRK
64 64
 			POP ,&continue JMP &no-linebreak
65 65
 		( get addr ) STHk TOS #0008 ** ;font-data #0100 ++ ++ .Screen/addr DEO2
66 66
 		( get width ) STHr TOS ;font-data ++ LDA TOS
67
-		( draw ) STHkr .Screen/color DEO
67
+		( draw ) STHkr .Screen/sprite DEO
68 68
 		( use width ) .Screen/x DEI2 ++ .Screen/x DEO2
69 69
 		&continue
70 70
 		( incr addr ) #0001 ++
... ...
@@ -96,18 +96,18 @@ RTN
96 96
 		( get addr ) STHk TOS #0020 ** ;font-data #0100 ++ ++ .Screen/addr DEO2
97 97
 		( get width ) STHkr TOS ;font-data ++ LDA TOS
98 98
 		SWPr
99
-			( left-top ) STHkr .Screen/color DEO
99
+			( left-top ) STHkr .Screen/sprite DEO
100 100
 			.Screen/y DEI2 #0008 ++ .Screen/y DEO2
101 101
 			.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
102
-			( left-bottom ) STHkr .Screen/color DEO
102
+			( left-bottom ) STHkr .Screen/sprite DEO
103 103
 			.Screen/x DEI2 #0008 ++ .Screen/x DEO2
104 104
 			.Screen/y DEI2 #0008 -- .Screen/y DEO2
105 105
 			DUP #0a < ,&thin JCN
106 106
 			.Screen/addr DEI2 #0008 -- .Screen/addr DEO2
107
-			( right-top )  STHkr .Screen/color DEO
107
+			( right-top )  STHkr .Screen/sprite DEO
108 108
 			.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
109 109
 			.Screen/y DEI2 #0008 ++ .Screen/y DEO2
110
-			( right-bottom ) STHkr .Screen/color DEO
110
+			( right-bottom ) STHkr .Screen/sprite DEO
111 111
 			.Screen/y DEI2 #0008 -- .Screen/y DEO2 &thin
112 112
 		SWPr
113 113
 		( use width ) .Screen/x DEI2 ++ #0008 -- .Screen/x DEO2
... ...
@@ -142,7 +142,7 @@ RTN
142 142
 		&ver
143 143
 			#00 #03
144 144
 			&hor
145
-				STHkr .Screen/color DEO
145
+				STHkr .Screen/sprite DEO
146 146
 				.Screen/x DEI2 #0008 ++ .Screen/x DEO2 
147 147
 				.Screen/addr DEI2 #0008 ++ .Screen/addr DEO2
148 148
 				INCR LTHk ,&hor JCN
... ...
@@ -27,7 +27,7 @@
27 27
 ( devices )
28 28
 
29 29
 |00 @System     [ &vector $2 &wst      $1 &rst    $1 &pad   $4 &r      $2 &g     $2 &b      $2 ]
30
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &color $1 ]
30
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &pixel $1 &sprite $1 ]
31 31
 |80 @Controller [ &vector $2 &button   $1 &key    $1 ]
32 32
 |90 @Mouse      [ &vector $2 &x        $2 &y      $2 &state $1 &wheel $1 ]
33 33
 
... ...
@@ -101,7 +101,7 @@ BRK
101 101
 	( draw cell count )
102 102
 	.anchor/x LDZ2 .Screen/x DEO2
103 103
 	.anchor/y LDZ2 HEIGHT #02 * TOS ++ .Screen/y DEO2
104
-	.world/count LDZ2 #22 ;draw-short JSR2
104
+	.world/count LDZ2 #02 ;draw-short JSR2
105 105
 
106 106
 BRK
107 107
 
... ...
@@ -111,14 +111,14 @@ BRK
111 111
 	;cursor .Screen/addr DEO2 
112 112
 	.pointer/x LDZ2 .Screen/x DEO2 
113 113
 	.pointer/y LDZ2 .Screen/y DEO2 
114
-	#30 .Screen/color DEO
114
+	#40 .Screen/sprite DEO
115 115
 
116 116
 	( record pointer positions )
117 117
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2
118 118
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 
119 119
 
120 120
 	( colorize on state )
121
-	#32 [ .Mouse/state DEI #00 ! ] + .Screen/color DEO
121
+	#42 [ .Mouse/state DEI #00 ! ] + .Screen/sprite DEO
122 122
 
123 123
 	.Mouse/state DEI #00 ! #01 JCN [ BRK ]
124 124
 
... ...
@@ -152,7 +152,7 @@ BRK
152 152
 		#00 WIDTH
153 153
 		&hor
154 154
 			OVR TOS 2** .anchor/x LDZ2 ++ .Screen/x DEO2
155
-			GET-ITERATORS ,get-cell JSR #01 + .Screen/color DEO
155
+			GET-ITERATORS ,get-cell JSR #01 + .Screen/pixel DEO
156 156
 			INCR
157 157
 			NEQk ,&hor JCN
158 158
 		POP2
... ...
@@ -254,16 +254,16 @@ RTN
254 254
 
255 255
 	STH SWP 
256 256
 	DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2
257
-	( draw ) STHkr .Screen/color DEO
257
+	( draw ) STHkr .Screen/sprite DEO
258 258
 	#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2
259 259
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
260
-	( draw ) STHkr .Screen/color DEO
260
+	( draw ) STHkr .Screen/sprite DEO
261 261
 	DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2
262 262
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
263
-	( draw ) STHkr .Screen/color DEO
263
+	( draw ) STHkr .Screen/sprite DEO
264 264
 	#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2
265 265
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
266
-	( draw ) STHr .Screen/color DEO
266
+	( draw ) STHr .Screen/sprite DEO
267 267
 
268 268
 RTN
269 269
 
... ...
@@ -23,7 +23,7 @@
23 23
 ( devices )
24 24
 
25 25
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
26
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
26
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
27 27
 |30 @Audio0 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &len $2 &addr $2 &volume $1 &pitch $1 ]
28 28
 |40 @Audio1 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &len $2 &addr $2 &volume $1 &pitch $1 ]
29 29
 |50 @Audio2 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &len $2 &addr $2 &volume $1 &pitch $1 ]
... ...
@@ -227,11 +227,11 @@ RTN
227 227
 	.trkframe/y1 LDZ2 8-- .Screen/y DEO2
228 228
 	.trkframe/x1 LDZ2 #00 .head/pos LDZ ADD2 .Screen/x DEO2
229 229
 	;head_icn .Screen/addr DEO2
230
-	#20 .Screen/color DEO
230
+	#00 .Screen/sprite DEO
231 231
 	( incr ) .head/pos LDZ #01 ADD .head/pos STZ
232 232
 	.trkframe/x1 LDZ2 #00 .head/pos LDZ ADD2 .Screen/x DEO2
233 233
 	;head_icn .Screen/addr DEO2
234
-	#21 ( if note ) TRACK #00 .head/pos LDZ #08 DIV ADD2 LDA #00 NEQ ADD .Screen/color DEO
234
+	#01 ( if note ) TRACK #00 .head/pos LDZ #08 DIV ADD2 LDA #00 NEQ ADD .Screen/sprite DEO
235 235
 
236 236
 RTN
237 237
 
... ...
@@ -243,7 +243,7 @@ RTN
243 243
 		DUP STH #00 SWP #0e SWP SUB 8** .trkframe/y1 LDZ2 ADD2 .Screen/y DEO2
244 244
 		OVR #00 SWP 8** .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2
245 245
 		STHr #00 EQU ,&skip JCN
246
-			#20 .Screen/color DEO
246
+			#00 .Screen/sprite DEO
247 247
 		&skip
248 248
 		( incr ) SWP #01 ADD SWP
249 249
 		DUP2 LTH ,&loop JCN
... ...
@@ -260,7 +260,7 @@ RTN
260 260
 		OVR #00 SWP 8** .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2
261 261
 		;note_icn .Screen/addr DEO2
262 262
 		STHr #00 EQU ,&skip JCN
263
-			#25 .Screen/color DEO
263
+			#05 .Screen/sprite DEO
264 264
 		&skip
265 265
 		( incr ) SWP #01 ADD SWP
266 266
 		DUP2 LTH ,&notes-loop JCN
... ...
@@ -281,7 +281,7 @@ RTN
281 281
 		OVR2 SWP POP #02 DIV #0f AND ,&skip JCN
282 282
 			OVR2 .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2
283 283
 			.trkframe/y1 LDZ2 #0010 SUB2 .Screen/y DEO2
284
-			#22 .Screen/color DEO
284
+			#02 .Screen/sprite DEO
285 285
 			.Screen/addr DEI2 8++ .Screen/addr DEO2
286 286
 			OVR2 .trkframe/x1 LDZ2 ADD2 .trkframe/y1 LDZ2 ++ .trkframe/y2 LDZ2 #01 ;line-vertical-dotted JSR2
287 287
 		&skip
... ...
@@ -303,10 +303,10 @@ RTN
303 303
 	.Screen/y DEI2 .Screen/y DEI2 #0038 ADD2
304 304
 	&loop
305 305
 		OVR2 .Screen/y DEO2
306
-		#21 .Screen/color DEO
306
+		#01 .Screen/sprite DEO
307 307
 		.Screen/addr DEI2 8++ .Screen/addr DEO2
308 308
 		.Screen/x DEI2 8++ .Screen/x DEO2
309
-		#21 .Screen/color DEO
309
+		#01 .Screen/sprite DEO
310 310
 		.Screen/addr DEI2 8++ .Screen/addr DEO2
311 311
 		.Screen/x DEI2 8-- .Screen/x DEO2
312 312
 		SWP2 8++ SWP2
... ...
@@ -323,17 +323,17 @@ RTN
323 323
 	.trkframe/x1 LDZ2 #0028 SUB2 .Screen/x DEO2
324 324
 	.trkframe/y1 LDZ2 #0030 ADD2 .Screen/y DEO2
325 325
 	;font_hex #0020 ADD2 .Screen/addr DEO2
326
-	#23 .Screen/color DEO
326
+	#03 .Screen/sprite DEO
327 327
 	.trkframe/x1 LDZ2 #0030 SUB2 .Screen/x DEO2
328 328
 	;font_hex #0060 ADD2 .Screen/addr DEO2
329
-	#23 .Screen/color DEO
329
+	#03 .Screen/sprite DEO
330 330
 	.trkframe/x1 LDZ2 #0028 SUB2 .Screen/x DEO2
331 331
 	.trkframe/y1 LDZ2 #0068 ADD2 .Screen/y DEO2
332 332
 	;font_hex #0018 ADD2 .Screen/addr DEO2
333
-	#23 .Screen/color DEO
333
+	#03 .Screen/sprite DEO
334 334
 	.trkframe/x1 LDZ2 #0030 SUB2 .Screen/x DEO2
335 335
 	;font_hex #0060 ADD2 .Screen/addr DEO2
336
-	#23 .Screen/color DEO
336
+	#03 .Screen/sprite DEO
337 337
 
338 338
 RTN
339 339
 
... ...
@@ -351,18 +351,18 @@ RTN
351 351
 	( load ) .knob/value STZ .knob/y STZ2 .knob/x STZ2
352 352
 
353 353
 	.knob/x LDZ2 .Screen/x DEO2
354
-	.knob/y LDZ2 .Screen/y DEO2 ;knob_icns .Screen/addr DEO2 #21 .Screen/color DEO
355
-	.knob/x LDZ2 8++ .Screen/x DEO2 ;knob_icns 8++ .Screen/addr DEO2 #21 .Screen/color DEO
356
-	.knob/y LDZ2 8++ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
357
-	.knob/x LDZ2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
354
+	.knob/y LDZ2 .Screen/y DEO2 ;knob_icns .Screen/addr DEO2 #01 .Screen/sprite DEO
355
+	.knob/x LDZ2 8++ .Screen/x DEO2 ;knob_icns 8++ .Screen/addr DEO2 #01 .Screen/sprite DEO
356
+	.knob/y LDZ2 8++ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #01 .Screen/sprite DEO
357
+	.knob/x LDZ2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #01 .Screen/sprite DEO
358 358
 	.knob/x LDZ2 #00 #00 .knob/value LDZ ;knob_offsetx ADD2 LDA ADD2 .Screen/x DEO2
359 359
 	.knob/y LDZ2 #00 #00 .knob/value LDZ ;knob_offsety ADD2 LDA ADD2 .Screen/y DEO2
360 360
 	;knob_icns #0020 ADD2 .Screen/addr DEO2
361
-	#25 .Screen/color DEO
361
+	#05 .Screen/sprite DEO
362 362
 	.knob/x LDZ2 #0004 ADD2 .Screen/x DEO2
363 363
 	.knob/y LDZ2 #0010 ADD2 .Screen/y DEO2
364 364
 	;font_hex #00 .knob/value LDZ #08 MUL ADD2 .Screen/addr DEO2
365
-	#21 .Screen/color DEO
365
+	#01 .Screen/sprite DEO
366 366
 
367 367
 RTN
368 368
 
... ...
@@ -371,20 +371,20 @@ RTN
371 371
 	( load ) .knob/value STZ .knob/y STZ2 .knob/x STZ2
372 372
 
373 373
 	.knob/x LDZ2 .Screen/x DEO2
374
-	.knob/y LDZ2 .Screen/y DEO2 #20 .Screen/color DEO
375
-	.knob/x LDZ2 8++ .Screen/x DEO2 #20 .Screen/color DEO
376
-	.knob/y LDZ2 8++ .Screen/y DEO2 #20 .Screen/color DEO
377
-	.knob/x LDZ2 .Screen/x DEO2 #20 .Screen/color DEO
374
+	.knob/y LDZ2 .Screen/y DEO2 #00 .Screen/sprite DEO
375
+	.knob/x LDZ2 8++ .Screen/x DEO2 #00 .Screen/sprite DEO
376
+	.knob/y LDZ2 8++ .Screen/y DEO2 #00 .Screen/sprite DEO
377
+	.knob/x LDZ2 .Screen/x DEO2 #00 .Screen/sprite DEO
378 378
 	.knob/x LDZ2 #0004 ADD2 .Screen/x DEO2
379 379
 	.knob/y LDZ2 #0010 ADD2 .Screen/y DEO2
380
-	#20 .Screen/color DEO
380
+	#00 .Screen/sprite DEO
381 381
 RTN
382 382
 
383 383
 @draw-controls ( -- )
384 384
 	
385 385
 	.ctlframe/x1 LDZ2 .ctlframe/y1 LDZ2 .ctlframe/x2 LDZ2 .ctlframe/y2 LDZ2 #01 ;line-rect JSR2
386 386
 	( env )
387
-	.ctlframe/x1 LDZ2 8++ .ctlframe/y1 LDZ2 8++ #22 ;env_txt ;draw-label JSR2
387
+	.ctlframe/x1 LDZ2 8++ .ctlframe/y1 LDZ2 8++ #02 ;env_txt ;draw-label JSR2
388 388
 	.ctlframe/x1 LDZ2 8++ .ctlframe/y1 LDZ2 #0010 ADD2
389 389
 		.Audio0/adsr .track/active LDZ #10 MUL ADD DEI #04 SFT
390 390
 		;draw-knob JSR2
... ...
@@ -398,7 +398,7 @@ RTN
398 398
 		.Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEI #0f AND
399 399
 		;draw-knob JSR2
400 400
 	( vol )
401
-	.ctlframe/x1 LDZ2 #0058 ADD2 .ctlframe/y1 LDZ2 8++ #22 ;vol_txt ;draw-label JSR2
401
+	.ctlframe/x1 LDZ2 #0058 ADD2 .ctlframe/y1 LDZ2 8++ #02 ;vol_txt ;draw-label JSR2
402 402
 	.ctlframe/x1 LDZ2 #0058 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2
403 403
 		.Audio0/volume .track/active LDZ #10 MUL ADD DEI #04 SFT
404 404
 	;draw-knob/force JSR2
... ...
@@ -421,10 +421,10 @@ RTN
421 421
 @draw-channels
422 422
 	
423 423
 	.chnframe/x1 LDZ2 .chnframe/y1 LDZ2 .chnframe/x2 LDZ2 .chnframe/y2 LDZ2 #01 ;line-rect JSR2
424
-	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 8++ #21 .track/active LDZ #00 EQU #07 MUL ADD ;ch1_txt ;draw-label JSR2
425
-	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0010 ADD2 #21 .track/active LDZ #01 EQU #07 MUL ADD ;ch2_txt ;draw-label JSR2
426
-	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0018 ADD2 #21 .track/active LDZ #02 EQU #07 MUL ADD ;ch3_txt ;draw-label JSR2
427
-	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0020 ADD2 #21 .track/active LDZ #03 EQU #07 MUL ADD ;ch4_txt ;draw-label JSR2
424
+	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 8++ #01 .track/active LDZ #00 EQU #07 MUL ADD ;ch1_txt ;draw-label JSR2
425
+	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0010 ADD2 #01 .track/active LDZ #01 EQU #07 MUL ADD ;ch2_txt ;draw-label JSR2
426
+	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0018 ADD2 #01 .track/active LDZ #02 EQU #07 MUL ADD ;ch3_txt ;draw-label JSR2
427
+	.chnframe/x1 LDZ2 8++ .chnframe/y1 LDZ2 #0020 ADD2 #01 .track/active LDZ #03 EQU #07 MUL ADD ;ch4_txt ;draw-label JSR2
428 428
 
429 429
 RTN
430 430
 
... ...
@@ -434,14 +434,14 @@ RTN
434 434
 	;clear_icn .Screen/addr DEO2
435 435
 	.pointer/x LDZ2 .Screen/x DEO2
436 436
 	.pointer/y LDZ2 .Screen/y DEO2
437
-	#30 .Screen/color DEO
437
+	#40 .Screen/sprite DEO
438 438
 	( record pointer positions )
439 439
 	.Mouse/x DEI2 .pointer/x STZ2 .Mouse/y DEI2 .pointer/y STZ2
440 440
 	( draw new cursor )
441 441
 	;cursor_icn .Screen/addr DEO2
442 442
 	.pointer/x LDZ2 .Screen/x DEO2
443 443
 	.pointer/y LDZ2 .Screen/y DEO2
444
-	#32 .Mouse/state DEI #00 NEQ ADD .Screen/color DEO
444
+	#42 .Mouse/state DEI #00 NEQ ADD .Screen/sprite DEO
445 445
 
446 446
 RTN
447 447
 
... ...
@@ -452,7 +452,7 @@ RTN
452 452
 	( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2
453 453
 	.label/addr LDZ2
454 454
 	&loop
455
-		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO
455
+		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO
456 456
 		( incr ) ++
457 457
 		( incr ) .Screen/x DEI2 8++ .Screen/x DEO2
458 458
 		DUP2 LDA ,&loop JCN
... ...
@@ -464,7 +464,7 @@ RTN
464 464
 	
465 465
 	.color STZ STH2 SWP2 .Screen/x DEO2 STH2r OVR2 .Screen/y DEO2
466 466
 	&draw-ver
467
-		( draw ) .color LDZ .Screen/color DEO
467
+		( draw ) .color LDZ .Screen/pixel DEO
468 468
 		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2
469 469
 		OVR2 OVR2 LTH2 ,&draw-ver JCN
470 470
 	POP2 POP2
... ...
@@ -475,7 +475,7 @@ RTN
475 475
 	
476 476
 	.color STZ .Screen/y DEO2 OVR2 .Screen/x DEO2
477 477
 	&draw-hor
478
-		( draw ) .color LDZ .Screen/color DEO
478
+		( draw ) .color LDZ .Screen/pixel DEO
479 479
 		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2
480 480
 		OVR2 OVR2 LTH2 ,&draw-hor JCN
481 481
 	POP2 POP2
... ...
@@ -487,13 +487,13 @@ RTN
487 487
 	( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2
488 488
 	&hor
489 489
 		( incr ) .Screen/x DEI2 ++ .Screen/x DEO2
490
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
491
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
490
+		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
491
+		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
492 492
 		.Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN
493 493
 	.rect/y1 LDZ2 .Screen/y DEO2
494 494
 	&ver
495
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
496
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
495
+		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
496
+		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
497 497
 		( incr ) .Screen/y DEI2 ++ .Screen/y DEO2
498 498
 		.Screen/y DEI2 .rect/y2 LDZ2 ++ LTH2 ,&ver JCN
499 499
 
... ...
@@ -13,7 +13,7 @@
13 13
 ( devices )
14 14
 
15 15
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
16
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
16
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
17 17
 |b0 @DateTime [ &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
18 18
 
19 19
 ( variables )
... ...
@@ -59,7 +59,7 @@
59 59
 	;neralie-lines JSR2
60 60
 	BRK
61 61
 
62
-	#22 .Screen/color DEO
62
+	#02 .Screen/sprite DEO
63 63
 	#0000 #00 .number/count LDZ DUP2 ;h JSR2
64 64
 	.number/count LDZ #01 ADD .number/count STZ
65 65
 
... ...
@@ -115,7 +115,7 @@
115 115
 @digit ( index* -- )
116 116
 	8** ;font-numbers ADD2 .Screen/addr DEO2
117 117
 	&middle
118
-	.neralie/color LDZ #20 ADD .Screen/color DEO
118
+	.neralie/color LDZ .Screen/sprite DEO
119 119
 	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
120 120
 	JMP2r
121 121
 
... ...
@@ -190,7 +190,7 @@
190 190
 
191 191
 	&keep-going
192 192
 	DUP2 .lines/addr LDZ DEO2
193
-	.neralie/color LDZ .Screen/color DEO
193
+	.neralie/color LDZ .Screen/pixel DEO
194 194
 	,&loop JMP
195 195
 
196 196
 @update-fps ( -- )
... ...
@@ -22,7 +22,7 @@
22 22
 
23 23
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
24 24
 |10 @Console    [ &vector $2 &read     $1 &pad    $5 &write $1 ]
25
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1 ]
25
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel  $1 &sprite $1 ]
26 26
 |30 @Audio0     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
27 27
 |70 @Midi       [ &vector $2 &channel  $1 &note   $1 &velocity $1 ]
28 28
 |80 @Controller [ &vector $2 &button   $1 &key    $1 ]
... ...
@@ -100,9 +100,9 @@ BRK
100 100
 	#00 #10
101 101
 	&loop
102 102
 		.adsr-view/x2 LDZ2 #003a -- .Screen/x DEO2
103
-		OVR #10 SWP - .Audio0/output DEI #0f AND < .Screen/color DEO
103
+		OVR #10 SWP - .Audio0/output DEI #0f AND < .Screen/pixel DEO
104 104
 		.adsr-view/x2 LDZ2 #003a -- #0002 ++ .Screen/x DEO2
105
-		OVR #10 SWP - .Audio0/output DEI #04 SFT < .Screen/color DEO
105
+		OVR #10 SWP - .Audio0/output DEI #04 SFT < .Screen/pixel DEO
106 106
 		.Screen/y DEI2 #0002 ++ .Screen/y DEO2
107 107
 		( incr ) INCR
108 108
 		LTHk ,&loop JCN
... ...
@@ -115,7 +115,7 @@ BRK
115 115
 	( clear last cursor )
116 116
 	.pointer/x LDZ2 .Screen/x DEO2 
117 117
 	.pointer/y LDZ2 .Screen/y DEO2 
118
-	#30 .Screen/color DEO
118
+	#40 .Screen/sprite DEO
119 119
 
120 120
 	.Controller/key DEI
121 121
 	DUP #61 ! ,&no-c JCN
... ...
@@ -260,12 +260,12 @@ RTN
260 260
 	;cursor .Screen/addr DEO2 
261 261
 	.pointer/x LDZ2 .Screen/x DEO2 
262 262
 	.pointer/y LDZ2 .Screen/y DEO2 
263
-	#30 .Screen/color DEO
263
+	#40 .Screen/sprite DEO
264 264
 	( record pointer positions )
265 265
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2 
266 266
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2  
267 267
 	( colorize on state )
268
-	#31 [ .Mouse/state DEI #00 ! ] + .Screen/color DEO
268
+	#41 [ .Mouse/state DEI #00 ! ] + .Screen/sprite DEO
269 269
 
270 270
 RTN
271 271
 
... ...
@@ -273,27 +273,27 @@ RTN
273 273
 	
274 274
 	.octave-view/x1 LDZ2 .octave-view/y1 LDZ2
275 275
 
276
-	OVR2 OVR2 ;keys-left-icns #21 .last-note LDZ #00 = + ;draw-key JSR2
277
-	OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #02 = + ;draw-key JSR2
278
-	OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .last-note LDZ #04 = + ;draw-key JSR2
279
-	OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .last-note LDZ #05 = + ;draw-key JSR2
280
-	OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #07 = + ;draw-key JSR2
281
-	OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #09 = + ;draw-key JSR2
282
-	SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .last-note LDZ #0b = + ;draw-key JSR2
276
+	OVR2 OVR2 ;keys-left-icns #01 .last-note LDZ #00 = + ;draw-key JSR2
277
+	OVR2 #0008 ++ OVR2 ;keys-middle-icns #01 .last-note LDZ #02 = + ;draw-key JSR2
278
+	OVR2 #0010 ++ OVR2 ;keys-right-icns #01 .last-note LDZ #04 = + ;draw-key JSR2
279
+	OVR2 #0018 ++ OVR2 ;keys-left-icns #01 .last-note LDZ #05 = + ;draw-key JSR2
280
+	OVR2 #0020 ++ OVR2 ;keys-middle-icns #01 .last-note LDZ #07 = + ;draw-key JSR2
281
+	OVR2 #0028 ++ OVR2 ;keys-middle-icns #01 .last-note LDZ #09 = + ;draw-key JSR2
282
+	SWP2 #0030 ++ SWP2 ;keys-right-icns #01 .last-note LDZ #0b = + ;draw-key JSR2
283 283
 
284 284
 	.octave-view/x1 LDZ2 #0048 ++ .Screen/x DEO2
285 285
 
286 286
 	;arrow-icns .Screen/addr DEO2
287 287
 	.octave-view/y1 LDZ2 .Screen/y DEO2
288
-	#21 .Screen/color DEO
288
+	#01 .Screen/sprite DEO
289 289
 
290 290
 	;arrow-icns #0008 ++ .Screen/addr DEO2
291 291
 	.octave-view/y1 LDZ2 #0010 ++ .Screen/y DEO2
292
-	#21 .Screen/color DEO
292
+	#01 .Screen/sprite DEO
293 293
 
294 294
 	;font-hex .octave LDZ #03 + #00 SWP 8** ++ .Screen/addr DEO2
295 295
 	.octave-view/y1 LDZ2 #0008 ++ .Screen/y DEO2
296
-	#23 .Screen/color DEO
296
+	#03 .Screen/sprite DEO
297 297
 
298 298
 RTN
299 299
 
... ...
@@ -305,7 +305,7 @@ RTN
305 305
 	DUP2 #0018 ++
306 306
 	&loop
307 307
 		( move ) OVR2 .Screen/y DEO2
308
-		( draw ) STHkr .Screen/color DEO
308
+		( draw ) STHkr .Screen/sprite DEO
309 309
 		( incr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2  
310 310
 		( incr ) SWP2 #0008 ++ SWP2
311 311
 		LTH2k ,&loop JCN
... ...
@@ -358,7 +358,7 @@ RTN
358 358
 		( dotted line )
359 359
 		OVR #01 AND ,&no-dot JCN 
360 360
 			.wave-view/y1 LDZ2 #0010 ++ .Screen/y DEO2
361
-			#03 .Screen/color DEO
361
+			#03 .Screen/pixel DEO
362 362
 		&no-dot
363 363
 		OVR TOS .Audio0/addr DEI2 ++ LDA 
364 364
 		#02 /
... ...
@@ -366,7 +366,7 @@ RTN
366 366
 		.Screen/x DEI2 #0001 ++ .Screen/x DEO2
367 367
 		( draw ) OVR 
368 368
 			.Audio0/length DEI2 TOB > 
369
-			.Audio0/length DEI2 #0100 !! #0101 == #02 * #01 + .Screen/color DEO
369
+			.Audio0/length DEI2 #0100 !! #0101 == #02 * #01 + .Screen/pixel DEO
370 370
 		( incr ) INCR
371 371
 		LTHk ,&loop JCN
372 372
 	POP2
... ...
@@ -374,9 +374,9 @@ RTN
374 374
 	( range )
375 375
 	.wave-view/x1 LDZ2 .Screen/x DEO2
376 376
 	.wave-view/y1 LDZ2 #0010 -- .Screen/y DEO2
377
-	.Audio0/addr DEI2 #22 ;draw-short JSR2
377
+	.Audio0/addr DEI2 #02 ;draw-short JSR2
378 378
 	.wave-view/x2 LDZ2 #0020 -- .Screen/x DEO2
379
-	.Audio0/length DEI2 #22 ;draw-short JSR2
379
+	.Audio0/length DEI2 #02 ;draw-short JSR2
380 380
 
381 381
 RTN
382 382
 
... ...
@@ -387,7 +387,7 @@ RTN
387 387
 	.wave-view/y1 LDZ2 DUP2 #0020 ++
388 388
 	&loop
389 389
 		OVR2 .Screen/y DEO2
390
-		( draw ) STHkr .Screen/color DEO
390
+		( draw ) STHkr .Screen/pixel DEO
391 391
 		( incr ) SWP2 #0001 ++ SWP2
392 392
 		LTH2k ,&loop JCN
393 393
 	POP2 POP2
... ...
@@ -399,24 +399,24 @@ RTN
399 399
 
400 400
 	( load ) STH .Screen/y DEO2  .Screen/x DEO2
401 401
 	;knob-icns .Screen/addr DEO2 
402
-	( draw ) #21 .Screen/color DEO
402
+	( draw ) #01 .Screen/sprite DEO
403 403
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2 
404 404
 	;knob-icns #0008 ++ .Screen/addr DEO2 
405
-	( draw ) #21 .Screen/color DEO
405
+	( draw ) #01 .Screen/sprite DEO
406 406
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2 
407 407
 	;knob-icns #0018 ++ .Screen/addr DEO2 
408
-	( draw ) #21 .Screen/color DEO
408
+	( draw ) #01 .Screen/sprite DEO
409 409
 	.Screen/x DEI2 #0008 -- .Screen/x DEO2 
410 410
 	;knob-icns #0010 ++ .Screen/addr DEO2 
411
-	( draw ) #21 .Screen/color DEO
411
+	( draw ) #01 .Screen/sprite DEO
412 412
 	.Screen/x DEI2 #0004 ++ .Screen/x DEO2
413 413
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
414 414
 	;font-hex #00 STHkr #08 * ++ .Screen/addr DEO2
415
-	( draw ) #21 .Screen/color DEO
415
+	( draw ) #01 .Screen/sprite DEO
416 416
 	.Screen/x DEI2 #0004 -- #00 #00 STHkr ;knob-offsetx ++ LDA ++ .Screen/x DEO2
417 417
 	.Screen/y DEI2 #0010 -- #00 #00 STHr ;knob-offsety ++ LDA ++ .Screen/y DEO2
418 418
 	;knob-icns #0020 ++ .Screen/addr DEO2
419
-	( draw ) #25 .Screen/color DEO
419
+	( draw ) #05 .Screen/sprite DEO
420 420
 
421 421
 RTN
422 422
 
... ...
@@ -424,16 +424,16 @@ RTN
424 424
 
425 425
 	STH SWP 
426 426
 	DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2
427
-	( draw ) STHkr .Screen/color DEO
427
+	( draw ) STHkr .Screen/sprite DEO
428 428
 	#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2
429 429
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
430
-	( draw ) STHkr .Screen/color DEO
430
+	( draw ) STHkr .Screen/sprite DEO
431 431
 	DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2
432 432
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
433
-	( draw ) STHkr .Screen/color DEO
433
+	( draw ) STHkr .Screen/sprite DEO
434 434
 	#0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2
435 435
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
436
-	( draw ) STHr .Screen/color DEO
436
+	( draw ) STHr .Screen/sprite DEO
437 437
 
438 438
 RTN
439 439
 
... ...
@@ -446,7 +446,7 @@ RTN
446 446
 		STH2 STH2 OVR2 OVR2
447 447
 		&hor
448 448
 			( save ) OVR2 .Screen/x DEO2
449
-			( draw ) .color LDZ .Screen/color DEO
449
+			( draw ) .color LDZ .Screen/pixel DEO
450 450
 			( incr ) SWP2 #0001 ++ SWP2
451 451
 			OVR2 OVR2 LTS2 ,&hor JCN
452 452
 		POP2 POP2 STH2r STH2r
... ...
@@ -7,7 +7,7 @@
7 7
 ( devices )
8 8
 
9 9
 |00 @System     [ &vector $2 &wst      $1 &rst    $1 &pad   $4 &r      $2 &g     $2 &b      $2 ]
10
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &color $1 ]
10
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr  $2 &pixel $1 &sprite $1 ]
11 11
 |90 @Mouse      [ &vector $2 &x        $2 &y      $2 &state $1 &wheel $1 ]
12 12
 
13 13
 ( variables )
... ...
@@ -68,10 +68,10 @@ BRK
68 68
 	.cat/y LDZ2 .Screen/y DEO2
69 69
 	.cat/x LDZ2 STH2k #0008 SUB2 .Screen/x DEO2
70 70
 	;ears .Screen/addr DEO2
71
-	#41 .Screen/color DEO
71
+	#81 .Screen/sprite DEO
72 72
 	STH2r .Screen/x DEO2
73 73
 	;ears #0010 ADD2 .Screen/addr DEO2
74
-	#41 .Screen/color DEO
74
+	#81 .Screen/sprite DEO
75 75
 
76 76
 	#0000 ,draw-eye JSR
77 77
 	#0000 ,draw-tail JSR
... ...
@@ -83,10 +83,10 @@ RTN
83 83
 	.cat/y LDZ2 #0008 ADD2 .Screen/y DEO2
84 84
 	.cat/x LDZ2 STH2k #0008 SUB2 .Screen/x DEO2
85 85
 	DUP2 ;eye ADD2 .Screen/addr DEO2
86
-	( draw ) #41 .Screen/color DEO
86
+	( draw ) #81 .Screen/sprite DEO
87 87
 	STH2r .Screen/x DEO2
88 88
 	;eye #0010 ADD2 ADD2 .Screen/addr DEO2
89
-	( draw ) #41 .Screen/color DEO
89
+	( draw ) #81 .Screen/sprite DEO
90 90
 
91 91
 RTN
92 92
 
... ...
@@ -95,10 +95,10 @@ RTN
95 95
 	.cat/y LDZ2 #0010 ADD2 .Screen/y DEO2
96 96
 	.cat/x LDZ2 STH2k #0008 SUB2 .Screen/x DEO2
97 97
 	;body .Screen/addr DEO2
98
-	( draw ) #41 .Screen/color DEO
98
+	( draw ) #81 .Screen/sprite DEO
99 99
 	STH2r .Screen/x DEO2
100 100
 	#0010 MUL2 ;body #0010 ADD2 ADD2 .Screen/addr DEO2
101
-	( draw ) #41 .Screen/color DEO
101
+	( draw ) #81 .Screen/sprite DEO
102 102
 
103 103
 RTN
104 104
 
... ...
@@ -108,14 +108,14 @@ RTN
108 108
 	;cursor .Screen/addr DEO2 
109 109
 	.pointer/x LDZ2 .Screen/x DEO2 
110 110
 	.pointer/y LDZ2 .Screen/y DEO2 
111
-	#30 .Screen/color DEO
111
+	#40 .Screen/sprite DEO
112 112
 
113 113
 	( record pointer positions )
114 114
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2
115 115
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 
116 116
 
117 117
 	( colorize on state )
118
-	#31 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/color DEO
118
+	#41 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/sprite DEO
119 119
 
120 120
 RTN
121 121
 
... ...
@@ -127,7 +127,7 @@ RTN
127 127
 
128 128
 	#00 #10
129 129
 	&loop
130
-		( draw ) #21 .Screen/color DEO
130
+		( draw ) #01 .Screen/sprite DEO
131 131
 		( sety ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
132 132
 		( setx ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
133 133
 		( incr ) SWP #01 ADD SWP
... ...
@@ -12,7 +12,7 @@
12 12
 ( devices )
13 13
 
14 14
 |00 @System [ &vector $2 &pad   $6 &r      $2 &g     $2 &b     $2 ]
15
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad   $2 &x     $2 &y $2 &addr $2 &color $1 ]
15
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad   $2 &x     $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
16 16
 |90 @Mouse  [ &vector $2 &x     $2 &y      $2 &state $1 &wheel $1 ]
17 17
 
18 18
 ( variables )
... ...
@@ -128,7 +128,7 @@ RTN
128 128
 	#0000 .Screen/x DEO2 .center/y LDZ2 .Screen/y DEO2
129 129
 	#0000 .Screen/width DEI2 ( from/to )
130 130
 	&draw-hor
131
-		( draw ) #01 .Screen/color DEO
131
+		( draw ) #01 .Screen/pixel DEO
132 132
 		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2
133 133
 		LTH2k ,&draw-hor JCN
134 134
 	POP2 POP2
... ...
@@ -137,7 +137,7 @@ RTN
137 137
 	.center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2
138 138
 	#0000 .Screen/height DEI2 ( from/to )
139 139
 	&draw-ver
140
-		( draw ) #02 .Screen/color DEO
140
+		( draw ) #02 .Screen/pixel DEO
141 141
 		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2
142 142
 		LTH2k ,&draw-ver JCN
143 143
 	POP2 POP2
... ...
@@ -148,7 +148,7 @@ RTN
148 148
 	#00 #08
149 149
 	&draw-pixel1
150 150
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
151
-		( draw ) OVR .Screen/color DEO
151
+		( draw ) OVR .Screen/pixel DEO
152 152
 		( incr ) SWP #01 ADD SWP
153 153
 		LTHk ,&draw-pixel1 JCN
154 154
 	POP POP
... ...
@@ -156,7 +156,7 @@ RTN
156 156
 	#00 #08
157 157
 	&draw-pixel2
158 158
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
159
-		( draw ) OVR #08 ADD .Screen/color DEO
159
+		( draw ) OVR #08 ADD .Screen/pixel DEO
160 160
 		( incr ) SWP #01 ADD SWP
161 161
 		LTHk ,&draw-pixel2 JCN
162 162
 	POP POP
... ...
@@ -164,7 +164,7 @@ RTN
164 164
 	#00 #08
165 165
 	&draw-icn1
166 166
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
167
-		( draw ) OVR #20 ADD .Screen/color DEO
167
+		( draw ) OVR #00 ADD .Screen/sprite DEO
168 168
 		( incr ) SWP #01 ADD SWP
169 169
 		LTHk ,&draw-icn1 JCN
170 170
 	POP POP
... ...
@@ -172,7 +172,7 @@ RTN
172 172
 	#00 #08
173 173
 	&draw-icn2
174 174
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
175
-		( draw ) OVR #28 ADD .Screen/color DEO
175
+		( draw ) OVR #08 ADD .Screen/sprite DEO
176 176
 		( incr ) SWP #01 ADD SWP
177 177
 		LTHk ,&draw-icn2 JCN
178 178
 	POP POP
... ...
@@ -180,7 +180,7 @@ RTN
180 180
 	#00 #08
181 181
 	&draw-chr1
182 182
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
183
-		( draw ) OVR #40 ADD .Screen/color DEO
183
+		( draw ) OVR #80 ADD .Screen/sprite DEO
184 184
 		( incr ) SWP #01 ADD SWP
185 185
 		LTHk ,&draw-chr1 JCN
186 186
 	POP POP
... ...
@@ -188,7 +188,7 @@ RTN
188 188
 	#00 #08
189 189
 	&draw-chr2
190 190
 		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
191
-		( draw ) OVR #48 ADD .Screen/color DEO
191
+		( draw ) OVR #88 ADD .Screen/sprite DEO
192 192
 		( incr ) SWP #01 ADD SWP
193 193
 		LTHk ,&draw-chr2 JCN
194 194
 	POP POP
... ...
@@ -203,17 +203,17 @@ RTN
203 203
 	.window/x1 LDZ2 .window/y1 LDZ2 .window/x2 LDZ2 .window/y2 LDZ2 #01 ;line-rect JSR2
204 204
 	.window/x1 LDZ2 #0002 SUB2 .window/y1 LDZ2 #0002 SUB2 .window/x2 LDZ2 #0002 ADD2 .window/y2 LDZ2 #0002 ADD2 #01 ;line-rect JSR2
205 205
 
206
-	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0010 ADD2 ;red_txt #25 ;draw-label JSR2
206
+	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0010 ADD2 ;red_txt #05 ;draw-label JSR2
207 207
 	.window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 
208
-	.System/r DEI2 #28 ;draw-short JSR2
208
+	.System/r DEI2 #08 ;draw-short JSR2
209 209
 
210
-	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0020 ADD2 ;green_txt #25 ;draw-label JSR2
210
+	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0020 ADD2 ;green_txt #05 ;draw-label JSR2
211 211
 	.window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 
212
-	.System/g DEI2 #28 ;draw-short JSR2
212
+	.System/g DEI2 #08 ;draw-short JSR2
213 213
 
214
-	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0030 ADD2 ;blue_txt #25 ;draw-label JSR2
214
+	.window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0030 ADD2 ;blue_txt #05 ;draw-label JSR2
215 215
 	.window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 
216
-	.System/b DEI2 #28 ;draw-short JSR2
216
+	.System/b DEI2 #08 ;draw-short JSR2
217 217
 
218 218
 	.window/x1 LDZ2 #0060 ADD2 .window/y1 LDZ2 #0010 ADD2 .window/x1 LDZ2 #0090 ADD2 #00 ;theme/r1 .selection LDZ ADD LDA 4** #01 ;draw-slider JSR2
219 219
 	.window/x1 LDZ2 #0060 ADD2 .window/y1 LDZ2 #0020 ADD2 .window/x1 LDZ2 #0090 ADD2 #00 ;theme/g1 .selection LDZ ADD LDA 4** #01 ;draw-slider JSR2
... ...
@@ -222,22 +222,22 @@ RTN
222 222
 	.window/x1 LDZ2 #0050 ADD2 .Screen/x DEO2
223 223
 	.window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2
224 224
 	;radio_icns #00 .selection LDZ #00 EQU 8** ADD2 .Screen/addr DEO2
225
-	#25 .Screen/color DEO
225
+	#05 .Screen/sprite DEO
226 226
 
227 227
 	.window/x1 LDZ2 #0060 ADD2 .Screen/x DEO2
228 228
 	.window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2
229 229
 	;radio_icns #00 .selection LDZ #01 EQU 8** ADD2 .Screen/addr DEO2
230
-	#25 .Screen/color DEO
230
+	#05 .Screen/sprite DEO
231 231
 
232 232
 	.window/x1 LDZ2 #0070 ADD2 .Screen/x DEO2
233 233
 	.window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2
234 234
 	;radio_icns #00 .selection LDZ #02 EQU 8** ADD2 .Screen/addr DEO2
235
-	#25 .Screen/color DEO
235
+	#05 .Screen/sprite DEO
236 236
 
237 237
 	.window/x1 LDZ2 #0080 ADD2 .Screen/x DEO2
238 238
 	.window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2
239 239
 	;radio_icns #00 .selection LDZ #03 EQU 8** ADD2 .Screen/addr DEO2
240
-	#25 .Screen/color DEO
240
+	#05 .Screen/sprite DEO
241 241
 
242 242
 RTN
243 243
 
... ...
@@ -247,13 +247,13 @@ RTN
247 247
 	;pointer_icn .Screen/addr DEO2
248 248
 	.pointer/x LDZ2 .Screen/x DEO2
249 249
 	.pointer/y LDZ2 .Screen/y DEO2
250
-	#30 .Screen/color DEO
250
+	#40 .Screen/sprite DEO
251 251
 
252 252
 	( record pointer positions )
253 253
 	.Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2 
254 254
 	.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2
255 255
 
256
-	#33 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/color DEO
256
+	#43 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/sprite DEO
257 257
 
258 258
 RTN
259 259
 
... ...
@@ -266,21 +266,21 @@ RTN
266 266
 	;halftone_icn .Screen/addr DEO2
267 267
 
268 268
 	;slidera_icn .Screen/addr DEO2
269
-	( draw ) #25 .Screen/color DEO
269
+	( draw ) #05 .Screen/sprite DEO
270 270
 	;sliderb_icn .Screen/addr DEO2
271 271
 
272 272
 	&loop
273 273
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
274
-		( draw ) #25 .Screen/color DEO
274
+		( draw ) #05 .Screen/sprite DEO
275 275
 		.Screen/x DEI2 .slider/x2 LDZ2 #0008 ADD2 LTH2 ,&loop JCN
276 276
 
277 277
 	( incr ) .Screen/x DEI2 #0004 ADD2 .Screen/x DEO2
278 278
 	;sliderc_icn .Screen/addr DEO2
279
-	( draw ) #25 .Screen/color DEO
279
+	( draw ) #05 .Screen/sprite DEO
280 280
 
281 281
 	.slider/x1 LDZ2 .slider/pos LDZ2 ADD2 .Screen/x DEO2
282 282
 	;sliderd_icn .Screen/addr DEO2
283
-	( draw ) #2a .Screen/color DEO
283
+	( draw ) #0a .Screen/sprite DEO
284 284
 
285 285
 RTN
286 286
 
... ...
@@ -293,7 +293,7 @@ RTN
293 293
 		STH2 STH2 OVR2 OVR2
294 294
 		&hor
295 295
 			( save ) OVR2 .Screen/x DEO2
296
-			( draw ) .color LDZ .Screen/color DEO
296
+			( draw ) .color LDZ .Screen/pixel DEO
297 297
 			( incr ) SWP2 #0001 ADD2 SWP2
298 298
 			LTH2k ,&hor JCN
299 299
 		POP2 POP2 STH2r STH2r
... ...
@@ -308,13 +308,13 @@ RTN
308 308
 	( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2
309 309
 	&hor
310 310
 		( incr ) .Screen/x DEI2 ++ .Screen/x DEO2
311
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
312
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
311
+		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
312
+		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
313 313
 		.Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN
314 314
 	.rect/y1 LDZ2 .Screen/y DEO2
315 315
 	&ver
316
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
317
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
316
+		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
317
+		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
318 318
 		( incr ) .Screen/y DEI2 ++ .Screen/y DEO2
319 319
 		.Screen/y DEI2 .rect/y2 LDZ2 ++ LTH2 ,&ver JCN
320 320
 
... ...
@@ -329,7 +329,7 @@ RTN
329 329
 	&loop
330 330
 		DUP2 LDA #00 SWP 8**
331 331
 		;font ADD2 .Screen/addr DEO2 
332
-		( draw ) STHkr .Screen/color DEO
332
+		( draw ) STHkr .Screen/sprite DEO
333 333
 		( incr ) ++
334 334
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
335 335
 		DUP2 LDA ,&loop JCN
... ...
@@ -341,16 +341,16 @@ RTN
341 341
 
342 342
 	STH SWP 
343 343
 	DUP #04 SFT #00 SWP 8** ;font-hex ADD2 .Screen/addr DEO2
344
-	( draw ) STHkr .Screen/color DEO
344
+	( draw ) STHkr .Screen/sprite DEO
345 345
 	#0f AND #00 SWP 8** ;font-hex ADD2 .Screen/addr DEO2
346 346
 	.Screen/x DEI2 8+ .Screen/x DEO2
347
-	( draw ) STHkr .Screen/color DEO
347
+	( draw ) STHkr .Screen/sprite DEO
348 348
 	DUP #04 SFT #00 SWP 8** ;font-hex ADD2 .Screen/addr DEO2
349 349
 	.Screen/x DEI2 8+ .Screen/x DEO2
350
-	( draw ) STHkr .Screen/color DEO
350
+	( draw ) STHkr .Screen/sprite DEO
351 351
 	#0f AND #00 SWP 8** ;font-hex ADD2 .Screen/addr DEO2
352 352
 	.Screen/x DEI2 8+ .Screen/x DEO2
353
-	( draw ) STHr .Screen/color DEO
353
+	( draw ) STHr .Screen/sprite DEO
354 354
 
355 355
 RTN
356 356
 
... ...
@@ -7,7 +7,7 @@
7 7
 ( devices )
8 8
 
9 9
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
10
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y    $2 &addr  $2 &color $1 ]
10
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y    $2 &addr  $2 &pixel $1 &sprite $1 ]
11 11
 |30 @Audio0     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
12 12
 |40 @Audio1     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
13 13
 |50 @Audio2     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr  $2 &volume $1 &pitch $1 ]
... ...
@@ -6,7 +6,7 @@
6 6
 ( devices )
7 7
 
8 8
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
9
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y    $2 &addr  $2 &color $1 ]
9
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y    $2 &addr  $2 &pixel $1 &sprite $1 ]
10 10
 |30 @Audio0     [ &vector $2 &position $2 &output $1 &pad   $3 &adsr   $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
11 11
 
12 12
 ( variables )
... ...
@@ -46,13 +46,13 @@ BRK
46 46
 	DUP .Audio0/pitch DEO
47 47
 
48 48
 	( erase last note )
49
-	#20  .Screen/color DEO
49
+	#00 .Screen/sprite DEO
50 50
 
51 51
 	( draw note )
52 52
 	#00 SWP 4** #0100 SUB2 .Screen/y DEO2
53 53
 	#00 .progress LDZ 8** .Screen/x DEO2
54 54
 	;dot .Screen/addr DEO2
55
-	#21 .Screen/color DEO
55
+	#01 .Screen/sprite DEO
56 56
 
57 57
 	( incr ) .progress LDZ #01 ADD #1f AND .progress STZ
58 58
 
... ...
@@ -7,7 +7,7 @@
7 7
 ( devices )
8 8
 
9 9
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
10
-|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
10
+|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
11 11
 |80 @Controller [ &vector $2 &button $1 &key    $1 ] 
12 12
 
13 13
 ( variables )
... ...
@@ -33,23 +33,23 @@
33 33
 	.Screen/height DEI2 2// .Screen/y DEO2
34 34
 
35 35
 	;default_icn .Screen/addr DEO2
36
-	#31 .Screen/color DEO
37
-	#2a .slime STZ
36
+	#41 .Screen/sprite DEO
37
+	#0a .slime STZ
38 38
 
39 39
 BRK
40 40
 
41 41
 @on-frame ( -> )
42 42
 
43
-	#2a .slime STZ
43
+	#0a .slime STZ
44 44
 	;default_icn .Screen/addr DEO2
45 45
 
46 46
 	( hold ctrl key to change slime color )
47 47
 	.Controller/button DEI #0f AND
48
-		DUP #01 NEQ ,&no-ctrl JCN #25 .slime STZ &no-ctrl
49
-		DUP #02 NEQ ,&no-alt JCN #2f .slime STZ &no-alt
48
+		DUP #01 NEQ ,&no-ctrl JCN #05 .slime STZ &no-ctrl
49
+		DUP #02 NEQ ,&no-alt JCN #0f .slime STZ &no-alt
50 50
 	POP
51 51
 
52
-	( clear ) #30 .Screen/color DEO
52
+	( clear ) #40 .Screen/sprite DEO
53 53
 
54 54
 	( detect movement )
55 55
 	.Controller/button DEI #f0 AND
... ...
@@ -72,11 +72,11 @@ BRK
72 72
 	POP
73 73
 
74 74
 	( draw face )
75
-	#31 .Screen/color DEO
75
+	#41 .Screen/sprite DEO
76 76
 
77 77
 	( draw slime )
78 78
 	;slime_icn .Screen/addr DEO2
79
-	.slime LDZ .Screen/color DEO
79
+	.slime LDZ .Screen/sprite DEO
80 80
 
81 81
 BRK
82 82
 
... ...
@@ -15,7 +15,7 @@
15 15
 
16 16
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
17 17
 |10 @Console    [ &vector $2 &read     $1 &pad    $5 &write $1 ]
18
-|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
18
+|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
19 19
 |80 @Controller [ &vector $2 &button $1 &key    $1 ]
20 20
 |a0 @File       [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
21 21
 
... ...
@@ -55,14 +55,14 @@ BRK
55 55
 	( print button-key code )
56 56
 	#0000 .Screen/x DEO2
57 57
 	.Screen/height DEI2 #0008 -- .Screen/y DEO2
58
-	.Controller/button DEI2 #21 ;draw-short JSR2
58
+	.Controller/button DEI2 #01 ;draw-short JSR2
59 59
 
60 60
 	.position/x LDZ2 .Screen/x DEO2
61 61
 	.position/y LDZ2 .Screen/y DEO2
62 62
 
63 63
 	( linebreak )
64 64
 	.Controller/key DEI #0d NEQ ,&no-return JCN 
65
-		( draw ) #20 .Screen/color DEO
65
+		( draw ) #00 .Screen/sprite DEO
66 66
 		( reset ) #0000 .position/x STZ2
67 67
 		( incr ) .position/y LDZ2 #0010 ++ .position/y STZ2
68 68
 		;draw-cursor JSR2
... ...
@@ -72,10 +72,10 @@ BRK
72 72
 	.Controller/key DEI TOS #0020 ** DEBUG2
73 73
 
74 74
 	;font-data .Controller/key DEI TOS #0010 ** ++ .Screen/addr DEO2
75
-	.Controller/button DEI ;mod-color JSR2 .Screen/color DEO
75
+	.Controller/button DEI ;mod-color JSR2 .Screen/sprite DEO
76 76
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
77 77
 	.Screen/addr DEI2 #0008 ++ .Screen/addr DEO2
78
-	.Controller/button DEI ;mod-color JSR2 .Screen/color DEO
78
+	.Controller/button DEI ;mod-color JSR2 .Screen/sprite DEO
79 79
 	( incr ) .position/x LDZ2 #0008 ++ .position/x STZ2
80 80
 	,draw-cursor JSR
81 81
 
... ...
@@ -86,7 +86,7 @@ BRK
86 86
 	( ctrl )  DUP #01 = #01 * STH
87 87
 	( alt )   DUP #02 = #03 * STH
88 88
 	( shift ) #04 = #05 * STH2r + +
89
-	#21 + 
89
+	#01 + 
90 90
 
91 91
 RTN
92 92
 
... ...
@@ -95,10 +95,10 @@ RTN
95 95
 	.position/x LDZ2 .Screen/x DEO2
96 96
 	.position/y LDZ2 .Screen/y DEO2
97 97
 	;cursor .Screen/addr DEO2 
98
-	#22 .Screen/color DEO
98
+	#02 .Screen/sprite DEO
99 99
 
100 100
 	.position/y LDZ2 #0008 ++ .Screen/y DEO2
101
-	#22 .Screen/color DEO
101
+	#02 .Screen/sprite DEO
102 102
 
103 103
 RTN
104 104
 
... ...
@@ -106,16 +106,16 @@ RTN
106 106
 
107 107
 	STH SWP 
108 108
 	DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
109
-	( draw ) STHkr .Screen/color DEO
109
+	( draw ) STHkr .Screen/sprite DEO
110 110
 	#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
111 111
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
112
-	( draw ) STHkr .Screen/color DEO
112
+	( draw ) STHkr .Screen/sprite DEO
113 113
 	DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
114 114
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
115
-	( draw ) STHkr .Screen/color DEO
115
+	( draw ) STHkr .Screen/sprite DEO
116 116
 	#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
117 117
 	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
118
-	( draw ) STHr .Screen/color DEO
118
+	( draw ) STHr .Screen/sprite DEO
119 119
 
120 120
 RTN
121 121
 
... ...
@@ -16,7 +16,7 @@
16 16
 ( devices )
17 17
 
18 18
 |00 @System     [ &vector $2 &pad      $6 &r      $2 &g     $2 &b      $2 ]
19
-|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1 ]
19
+|20 @Screen     [ &vector $2 &width    $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1 ]
20 20
 |b0 @DateTime   [ &year   $2 &month    $1 &day    $1 &hour  $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
21 21
 
22 22
 ( variables )
... ...
@@ -76,7 +76,7 @@ BRK
76 76
 		( load ) OVR #00 SWP 2** ;table ADD2 LDA2
77 77
 		#00 SWP SCALEY .Screen/y DEO2
78 78
 		#00 SWP SCALEX .Screen/x DEO2
79
-		OVR #0f MOD #00 EQU #01 ADD .Screen/color DEO
79
+		OVR #0f MOD #00 EQU #01 ADD .Screen/pixel DEO
80 80
 		( incr ) SWP #01 ADD SWP
81 81
 		LTHk ,&loop JCN
82 82
 	POP2
... ...
@@ -91,22 +91,22 @@ BRK
91 91
 	.Screen/width DEI2 2//
92 92
 	DUP2 #0020 SUB2 .Screen/x DEO2
93 93
 		;font-hex #00 .DateTime/hour DEI #0a DIV #08 MUL ADD2 .Screen/addr DEO2
94
-		#22 .Screen/color DEO
94
+		#02 .Screen/sprite DEO
95 95
 	DUP2 #0018 SUB2 .Screen/x DEO2
96 96
 		;font-hex #00 .DateTime/hour DEI #0a MOD #08 MUL ADD2 .Screen/addr DEO2
97
-		#22 .Screen/color DEO
97
+		#02 .Screen/sprite DEO
98 98
 	DUP2 #0008 SUB2 .Screen/x DEO2
99 99
 		;font-hex #00 .DateTime/minute DEI #0a DIV #08 MUL ADD2 .Screen/addr DEO2
100
-		#22 .Screen/color DEO
100
+		#02 .Screen/sprite DEO
101 101
 	DUP2 .Screen/x DEO2
102 102
 		;font-hex #00 .DateTime/minute DEI #0a MOD #08 MUL ADD2 .Screen/addr DEO2
103
-		#22 .Screen/color DEO
103
+		#02 .Screen/sprite DEO
104 104
 	DUP2 #0010 ADD2 .Screen/x DEO2
105 105
 		;font-hex #00 .DateTime/second DEI #0a DIV #08 MUL ADD2 .Screen/addr DEO2
106
-		#22 .Screen/color DEO
106
+		#02 .Screen/sprite DEO
107 107
 	DUP2 #0018 ADD2 .Screen/x DEO2
108 108
 		;font-hex #00 .DateTime/second DEI #0a MOD #08 MUL ADD2 .Screen/addr DEO2
109
-		#22 .Screen/color DEO
109
+		#02 .Screen/sprite DEO
110 110
 	POP2
111 111
 
112 112
 RTN
... ...
@@ -122,7 +122,7 @@ RTN
122 122
 	&loop
123 123
 		.line/x LDZ2 .Screen/x DEO2 
124 124
 		.line/y LDZ2 .Screen/y DEO2 
125
-		.color LDZ .Screen/color DEO
125
+		.color LDZ .Screen/pixel DEO
126 126
 		[ .line/x LDZ2 .line/x0 LDZ2 EQU2 ] 
127 127
 		[ .line/y LDZ2 .line/y0 LDZ2 EQU2 ] #0101 EQU2 ,&end JCN
128 128
 		.line/e1 LDZ2 2** .line/e2 STZ2
... ...
@@ -3,7 +3,7 @@
3 3
 ( devices )
4 4
 
5 5
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
6
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
6
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
7 7
 |a0 @File   [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
8 8
 
9 9
 ( variables )
... ...
@@ -43,7 +43,7 @@
43 43
 	DUP #0a EQU ,&linefeed JCN
44 44
 	#0005 SFT2 ;font ADD2
45 45
 	.Screen/addr DEO2
46
-	#29 .Screen/color DEO
46
+	#09 .Screen/sprite DEO
47 47
 	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
48 48
 	&next
49 49
 	#0001 ADD2
... ...
@@ -3,7 +3,6 @@
3 3
 ( devices )
4 4
 
5 5
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
6
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
7 6
 |a0 @File       [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
8 7
 
9 8
 ( variables )
... ...
@@ -7,7 +7,7 @@
7 7
 
8 8
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
9 9
 |10 @Console    [ &pad    $8 &write  $1 ]
10
-|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
10
+|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
11 11
 |a0 @File       [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
12 12
 
13 13
 ( variables )
... ...
@@ -46,7 +46,7 @@ BRK
46 46
 		#0000 #0080
47 47
 		&hor
48 48
 			( save ) OVR2 .Screen/x DEO2
49
-			( draw ) #41 .Screen/color DEO
49
+			( draw ) #81 .Screen/sprite DEO
50 50
 			( incr ) .Screen/addr DEI2 #0010 ADD2 .Screen/addr DEO2
51 51
 			( incr ) SWP2 8+ SWP2
52 52
 			LTH2k ,&hor JCN
... ...
@@ -9,7 +9,7 @@
9 9
 ( devices )
10 10
 
11 11
 |00 @System     [ &vector $2 &pad     $6 &r      $2 &g     $2 &b      $2 ]
12
-|20 @Screen     [ &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y     $2 &addr $2 &color $1 ]
12
+|20 @Screen     [ &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
13 13
 |90 @Mouse      [ &vector $2 &x       $2 &y      $2 &state $1 &wheel $1 ]
14 14
 
15 15
 |0000
... ...
@@ -77,7 +77,7 @@ BRK
77 77
 	( clear last cursor )
78 78
 	.pointer/x LDZ2 .Screen/x DEO2
79 79
 	.pointer/y LDZ2 .Screen/y DEO2
80
-	#30 .Screen/color DEO
80
+	#40 .Screen/sprite DEO
81 81
 
82 82
 	( record pointer positions )
83 83
 	.Mouse/x DEI2 .pointer/x STZ2 
... ...
@@ -86,7 +86,7 @@ BRK
86 86
 	( draw new cursor )
87 87
 	.pointer/x LDZ2 .Screen/x DEO2
88 88
 	.pointer/y LDZ2 .Screen/y DEO2
89
-	#33 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/color DEO
89
+	#43 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/sprite DEO
90 90
 
91 91
 RTN
92 92
 
... ...
@@ -101,7 +101,7 @@ RTN
101 101
 	&loop
102 102
 		.line/x LDZ2 .Screen/x DEO2 
103 103
 		.line/y LDZ2 .Screen/y DEO2 
104
-		.color LDZ .Screen/color DEO
104
+		.color LDZ .Screen/pixel DEO
105 105
 		[ .line/x LDZ2 .line/x0 LDZ2 EQU2 ] 
106 106
 		[ .line/y LDZ2 .line/y0 LDZ2 EQU2 ] #0101 EQU2 ,&end JCN
107 107
 		.line/e1 LDZ2 2** .line/e2 STZ2
... ...
@@ -5,7 +5,7 @@
5 5
 ( devices )
6 6
 
7 7
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
8
-|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
8
+|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
9 9
 
10 10
 |0000
11 11
 
... ...
@@ -27,13 +27,13 @@
27 27
 	.Screen/width DEI2 2// .dvd/x STZ2
28 28
 	.Screen/height DEI2 2// .dvd/y STZ2
29 29
 	
30
-	#21 ;draw-dvd JSR2
30
+	#01 ;draw-dvd JSR2
31 31
 	
32 32
 BRK
33 33
 
34 34
 @on-frame ( -> )
35 35
 
36
-	( clear ) #20 ;draw-dvd JSR2
36
+	( clear ) #00 ;draw-dvd JSR2
37 37
 	( case: hit-right ) .dvd/x LDZ2 .Screen/width DEI2 #0020 SUB2 EQU2
38 38
 	( case: hit-left ) .dvd/x LDZ2 #0000 EQU2 
39 39
 	#0000 EQU2 ,&no-flipx JCN 
... ...
@@ -44,7 +44,7 @@ BRK
44 44
 		.dvd/dy LDZ #00 EQU .dvd/dy STZ &no-flipy
45 45
 	( incr ) .dvd/x LDZ2 #0001 #00 .dvd/dx LDZ #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/x STZ2
46 46
 	( incr ) .dvd/y LDZ2 #0001 #00 .dvd/dy LDZ #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/y STZ2
47
-	( draw ) #21 ;draw-dvd JSR2
47
+	( draw ) #01 ;draw-dvd JSR2
48 48
 
49 49
 BRK
50 50
 
... ...
@@ -58,7 +58,7 @@ BRK
58 58
 		.dvd/x LDZ2 [ .dvd/x LDZ2 #0020 ADD2 ]
59 59
 		&hor
60 60
 			OVR2 .Screen/x DEO2
61
-			( draw ) STHkr .Screen/color DEO
61
+			( draw ) STHkr .Screen/sprite DEO
62 62
 			( next ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
63 63
 			( incr ) SWP2 #0008 ADD2 SWP2
64 64
 			LTH2k ,&hor JCN
... ...
@@ -5,7 +5,7 @@
5 5
 ( devices )
6 6
 
7 7
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
8
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
8
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
9 9
 |90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ]
10 10
 
11 11
 ( variables )
... ...
@@ -67,7 +67,7 @@ BRK
67 67
 	( clear last cursor )
68 68
 	.pointer/x LDZ2 .Screen/x DEO2
69 69
 	.pointer/y LDZ2 .Screen/y DEO2
70
-	#30 .Screen/color DEO
70
+	#40 .Screen/sprite DEO
71 71
 
72 72
 	( record pointer positions )
73 73
 	.Mouse/x DEI2 .pointer/x STZ2 .Mouse/y DEI2 .pointer/y STZ2
... ...
@@ -76,7 +76,7 @@ BRK
76 76
 	.pointer/sprite LDZ2 .Screen/addr DEO2
77 77
 	.pointer/x LDZ2 .Screen/x DEO2
78 78
 	.pointer/y LDZ2 .Screen/y DEO2
79
-	#31 .Screen/color DEO
79
+	#41 .Screen/sprite DEO
80 80
 
81 81
 RTN
82 82
 
... ...
@@ -102,13 +102,13 @@ RTN
102 102
 	( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2
103 103
 	&hor
104 104
 		( incr ) .Screen/x DEI2 #0001 ADD2 .Screen/x DEO2
105
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
106
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
105
+		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
106
+		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
107 107
 		.Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN
108 108
 	.rect/y1 LDZ2 .Screen/y DEO2
109 109
 	&ver
110
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
111
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO
110
+		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
111
+		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO
112 112
 		( incr ) .Screen/y DEI2 #0001 ADD2 .Screen/y DEO2
113 113
 		.Screen/y DEI2 .rect/y2 LDZ2 #0001 ADD2 LTH2 ,&ver JCN
114 114
 
... ...
@@ -7,7 +7,7 @@
7 7
 ( devices )
8 8
 
9 9
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
10
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
10
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
11 11
 
12 12
 ( variables )
13 13
 
... ...
@@ -35,15 +35,15 @@ BRK
35 35
 	( draw ver line )
36 36
 	.center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2
37 37
 	&draw-ver
38
-		( draw ) #02 .Screen/color DEO
38
+		( draw ) #02 .Screen/pixel DEO
39 39
 		( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2
40 40
 		.Screen/y DEI2 .Screen/height DEI2 LTH2 ,&draw-ver JCN
41 41
 
42
-	.center/x LDZ2 .center/y LDZ2 #0010 SUB2 #2c ;text1 ;draw-label-left JSR2
43
-	.center/x LDZ2 .center/y LDZ2 #2c ;text2 ;draw-label-middle JSR2
44
-	.center/x LDZ2 .center/y LDZ2 #0010 ADD2 #2c ;text3 ;draw-label-right JSR2
45
-	.center/x LDZ2 .center/y LDZ2 #0020 ADD2 #2c ;text4 ;draw-label-middle JSR2
46
-	.center/x LDZ2 .center/y LDZ2 #0030 ADD2 #2c ;text5 ;draw-label-middle JSR2
42
+	.center/x LDZ2 .center/y LDZ2 #0010 SUB2 #0c ;text1 ;draw-label-left JSR2
43
+	.center/x LDZ2 .center/y LDZ2 #0c ;text2 ;draw-label-middle JSR2
44
+	.center/x LDZ2 .center/y LDZ2 #0010 ADD2 #0c ;text3 ;draw-label-right JSR2
45
+	.center/x LDZ2 .center/y LDZ2 #0020 ADD2 #0c ;text4 ;draw-label-middle JSR2
46
+	.center/x LDZ2 .center/y LDZ2 #0030 ADD2 #0c ;text5 ;draw-label-middle JSR2
47 47
 
48 48
 RTN
49 49
 
... ...
@@ -52,7 +52,7 @@ RTN
52 52
 	( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2
53 53
 	.label/addr LDZ2
54 54
 	&loop
55
-		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO
55
+		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO
56 56
 		( incr ) #0001 ADD2
57 57
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
58 58
 		DUP2 LDA ,&loop JCN
... ...
@@ -66,7 +66,7 @@ RTN
66 66
 	( align ) .label/addr LDZ2 ;get-text-length JSR2 8** 2// SUB2 .Screen/x DEO2
67 67
 	.label/addr LDZ2
68 68
 	&loop
69
-		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO
69
+		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO
70 70
 		( incr ) #0001 ADD2
71 71
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
72 72
 		DUP2 LDA ,&loop JCN
... ...
@@ -80,7 +80,7 @@ RTN
80 80
 	( align ) .label/addr LDZ2 ;get-text-length JSR2 8** SUB2 .Screen/x DEO2
81 81
 	.label/addr LDZ2
82 82
 	&loop
83
-		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO
83
+		( draw ) DUP2 LDA #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO
84 84
 		( incr ) #0001 ADD2
85 85
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
86 86
 		DUP2 LDA ,&loop JCN
... ...
@@ -6,7 +6,7 @@
6 6
 ( devices )
7 7
 
8 8
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
9
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
9
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
10 10
 |a0 @File [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
11 11
 
12 12
 ( variables )
... ...
@@ -23,19 +23,19 @@
23 23
 
24 24
 	( theme ) #037a .System/r DEO2 #032a .System/g DEO2 #052a .System/b DEO2
25 25
 
26
-	( background ) ;checker_icn #22 ;cover-pattern JSR2
26
+	( background ) ;checker_icn #02 ;cover-pattern JSR2
27 27
 
28 28
 	( load ) ;icn1_path .File/name DEO2 #1800 .File/length DEO2 ;image .File/load DEO2
29
-	( draw ) #0008 #0008 #0100 #00c0 #27 ;image ;draw-icn JSR2
29
+	( draw ) #0008 #0008 #0100 #00c0 #07 ;image ;draw-icn JSR2
30 30
 
31 31
 	( load ) ;icn2_path .File/name DEO2 #0800 .File/length DEO2 ;image .File/load DEO2
32
-	( draw ) #0010 #0078 #0080 #0080 #27 ;image ;draw-icn JSR2
32
+	( draw ) #0010 #0078 #0080 #0080 #07 ;image ;draw-icn JSR2
33 33
 
34 34
 	( load ) ;chr1_path .File/name DEO2 #4000 .File/length DEO2 ;image .File/load DEO2
35
-	( draw ) #00a8 #0010 #0100 #0100 #4f ;image ;draw-chr JSR2
35
+	( draw ) #00a8 #0010 #0100 #0100 #8f ;image ;draw-chr JSR2
36 36
 
37 37
 	( load ) ;chr2_path .File/name DEO2 #0900 .File/length DEO2 ;image .File/load DEO2
38
-	( draw ) #0088 #0088 #0060 #0060 #41 ;image ;draw-chr JSR2
38
+	( draw ) #0088 #0088 #0060 #0060 #81 ;image ;draw-chr JSR2
39 39
 
40 40
 BRK
41 41
 
... ...
@@ -48,7 +48,7 @@ BRK
48 48
 		#0000 .size/width LDZ2
49 49
 		&hor
50 50
 			( save ) OVR2 .position/x LDZ2 ADD2 .Screen/x DEO2
51
-			( draw ) .color LDZ .Screen/color DEO
51
+			( draw ) .color LDZ .Screen/sprite DEO
52 52
 			( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2
53 53
 			( incr ) SWP2 8+ SWP2
54 54
 			LTH2k ,&hor JCN
... ...
@@ -68,7 +68,7 @@ RTN
68 68
 		#0000 .size/width LDZ2
69 69
 		&hor
70 70
 			( save ) OVR2 .position/x LDZ2 ADD2 .Screen/x DEO2
71
-			( draw ) .color LDZ .Screen/color DEO
71
+			( draw ) .color LDZ .Screen/sprite DEO
72 72
 			( incr ) .Screen/addr DEI2 #0010 ADD2 .Screen/addr DEO2
73 73
 			( incr ) SWP2 8+ SWP2
74 74
 			LTH2k ,&hor JCN
... ...
@@ -88,7 +88,7 @@ RTN
88 88
 		#0000 .Screen/width DEI2
89 89
 		&hor
90 90
 			( save ) OVR2 .Screen/x DEO2
91
-			( draw ) .color LDZ .Screen/color DEO
91
+			( draw ) .color LDZ .Screen/sprite DEO
92 92
 			( incr ) SWP2 8+ SWP2
93 93
 			LTH2k ,&hor JCN
94 94
 		POP2 POP2
... ...
@@ -3,7 +3,7 @@
3 3
 ( devices )
4 4
 
5 5
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
6
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
6
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
7 7
 
8 8
 ( variables )
9 9
 
... ...
@@ -30,7 +30,7 @@ BRK
30 30
 	DUP #0a EQU ,&linefeed JCN
31 31
 	#0005 SFT2 ;font ADD2
32 32
 	DUP2 .Screen/addr DEO2
33
-	#29 .Screen/color DEO
33
+	#09 .Screen/sprite DEO
34 34
 	,get-x-advance JSR .Screen/x DEI2 ADD2 STH2kr ADD2 .Screen/x DEO2
35 35
 	&next
36 36
 	#0001 ADD2
... ...
@@ -17,7 +17,7 @@
17 17
 ( devices )
18 18
 
19 19
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
20
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
20
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
21 21
 
22 22
 ( variables )
23 23
 
... ...
@@ -36,7 +36,7 @@
36 36
 	
37 37
 	( theme ) #f03f .System/r DEO2 #f03f .System/g DEO2 #003f .System/b DEO2
38 38
 
39
-	( background ) ;checker_icn #23 ;cover-pattern JSR2
39
+	( background ) ;checker_icn #03 ;cover-pattern JSR2
40 40
 
41 41
 	#0010 #0030 #0020 #0020 SIZE-TO-RECT #01 ;line-slow JSR2
42 42
 	#0070 #0040 #0010 #01 ;draw-circle JSR2
... ...
@@ -54,7 +54,7 @@ BRK
54 54
 	#ffff #00 .line/y LDZ2 .line/y0 LDZ2 LTS2 2** ADD2 .line/sy STZ2
55 55
 	.line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2
56 56
 	&loop
57
-		.line/x LDZ2 .Screen/x DEO2 .line/y LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO
57
+		.line/x LDZ2 .Screen/x DEO2 .line/y LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
58 58
 		.line/x LDZ2 .line/x0 LDZ2 EQU2 .line/y LDZ2 .line/y0 LDZ2 EQU2 #0101 EQU2 ,&end JCN
59 59
 		.line/e1 LDZ2 2** .line/e2 STZ2
60 60
 		.line/e2 LDZ2 .line/dy LDZ2 LTS2 ,&skipy JCN
... ...
@@ -77,16 +77,16 @@ RTN
77 77
 	STH2r STH2r
78 78
 	&ver
79 79
 		( save ) OVR2 .Screen/y DEO2
80
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO
81
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO
80
+		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO
81
+		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO
82 82
 		( incr ) SWP2 ++ SWP2
83 83
 		OVR2 OVR2 LTS2 ,&ver JCN
84 84
 	POP2 POP2
85 85
 	.rect/x1 LDZ2 .rect/x2 LDZ2
86 86
 	&hor
87 87
 		( save ) OVR2 .Screen/x DEO2
88
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO
89
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO
88
+		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO
89
+		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO
90 90
 		( incr ) SWP2 ++ SWP2
91 91
 		OVR2 OVR2 ++ LTS2 ,&hor JCN
92 92
 	POP2 POP2
... ...
@@ -102,7 +102,7 @@ RTN
102 102
 		STH2 STH2 OVR2 OVR2
103 103
 		&hor
104 104
 			( save ) OVR2 .Screen/x DEO2
105
-			( draw ) .color LDZ .Screen/color DEO
105
+			( draw ) .color LDZ .Screen/pixel DEO
106 106
 			( incr ) SWP2 ++ SWP2
107 107
 			OVR2 OVR2 LTS2 ,&hor JCN
108 108
 		POP2 POP2 STH2r STH2r
... ...
@@ -131,14 +131,14 @@ RTN
131 131
 		.circle/y LDZ2 .circle/x LDZ2 -- GTS2 ,&loop JCN
132 132
 	RTN
133 133
 	&seg
134
-		.circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO
135
-		.circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO
136
-		.circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO
137
-		.circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO
138
-		.circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO
139
-		.circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO
140
-		.circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO
141
-		.circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO
134
+		.circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
135
+		.circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
136
+		.circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
137
+		.circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
138
+		.circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
139
+		.circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
140
+		.circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
141
+		.circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO
142 142
 
143 143
 RTN
144 144
 
... ...
@@ -151,7 +151,7 @@ RTN
151 151
 		#0000 .Screen/width DEI2
152 152
 		&hor
153 153
 			( save ) OVR2 .Screen/x DEO2
154
-			( draw ) .color LDZ .Screen/color DEO
154
+			( draw ) .color LDZ .Screen/sprite DEO
155 155
 			( incr ) SWP2 8++ SWP2
156 156
 			OVR2 OVR2 LTH2 ,&hor JCN
157 157
 		POP2 POP2
... ...
@@ -166,7 +166,7 @@ RTN
166 166
 	STH .Screen/y DEO2
167 167
 	&loop
168 168
 		( save ) OVR2 .Screen/x DEO2
169
-		( draw ) STHkr .Screen/color DEO
169
+		( draw ) STHkr .Screen/pixel DEO
170 170
 		( incr ) SWP2 #0002 ++ SWP2
171 171
 		LTH2k ,&loop JCN
172 172
 	POP2 POP2 POPr
... ...
@@ -178,7 +178,7 @@ RTN
178 178
 	STH ROT2 .Screen/x DEO2
179 179
 	&loop
180 180
 		( save ) OVR2 .Screen/y DEO2
181
-		( draw ) STHkr .Screen/color DEO
181
+		( draw ) STHkr .Screen/pixel DEO
182 182
 		( incr ) SWP2 #0002 ++ SWP2
183 183
 		LTH2k ,&loop JCN
184 184
 	POP2 POP2 POPr
... ...
@@ -1,7 +1,7 @@
1 1
 ( devices )
2 2
 
3 3
 |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
4
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
4
+|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
5 5
 
6 6
 ( variables )
7 7
 
... ...
@@ -48,15 +48,15 @@
48 48
 	POP2 POP2
49 49
 	JMP2r
50 50
 
51
-	#15 .Screen/color DEO
51
+	#15 .Screen/pixel DEO
52 52
 	JMP2r
53 53
 
54 54
 	&draw
55 55
 	OVR2 .Screen/x DEO2
56
-	#05 ADD .Screen/color DEO
56
+	#05 ADD .Screen/pixel DEO
57 57
 	.Screen/y DEI2
58 58
 	DUP2 #0001 ADD2 .Screen/y DEO2
59
-	#00 .Screen/color DEO
59
+	#00 .Screen/pixel DEO
60 60
 	.Screen/y DEO2
61 61
 	POP
62 62
 	,&rest JMP
... ...
@@ -8,7 +8,7 @@
8 8
 ( devices )
9 9
 
10 10
 |00 @System  &vector $2 &pad     $6 &r      $2 &g     $2 &b      $2
11
-|20 @Screen  &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &color $1
11
+|20 @Screen  &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1
12 12
 |80 @Controller [ &vector $2 &button   $1 &key    $1 ]
13 13
 |a0 @File    &vector $2 &success $2 &offset $2 &pad   $2 &name   $2 &length $2 &load $2 &save  $2
14 14
 
... ...
@@ -85,7 +85,7 @@
85 85
 	#0000 DUP2 .Screen/x DEO2 .Screen/y DEO2
86 86
 	;ring-buffer ;wrapped-write JSR2
87 87
 
88
-	#20 ;draw-glyph JSR2
88
+	#00 ;draw-glyph JSR2
89 89
 	BRK
90 90
 
91 91
 @load-font ( filename* -- )
... ...
@@ -156,7 +156,7 @@
156 156
 	&not-end
157 157
 	#00 SWP #00 ;repl/font-cells LDA MUL2k MUL2 #0008 MUL2 #0100 ADD2 ( string* char* tile* )
158 158
 	;font-data ADD2 .Screen/addr DEO2
159
-	#2d ,draw-glyph JSR
159
+	#0d ,draw-glyph JSR
160 160
 	#00 ;repl/font-cells LDA #fff8 MUL2 .Screen/y DEI2 ADD2 .Screen/y DEO2
161 161
 	;font-data ADD2 LDA #00 SWP .Screen/x DEI2 ADD2 .Screen/x DEO2
162 162
 	LDAk STH
... ...
@@ -172,7 +172,7 @@
172 172
 		;repl/font-cells LDA
173 173
 		&inner
174 174
 			DUP #00 EQU ,&end-inner JCN
175
-			STHkr .Screen/color DEO
175
+			STHkr .Screen/sprite DEO
176 176
 			#0008 DUP2
177 177
 				.Screen/x DEI2 ADD2 .Screen/x DEO2
178 178
 				.Screen/addr DEI2 ADD2 .Screen/addr DEO2