neauoire authored on 03/05/2021 16:57:39
Showing 25 changed files
... ...
@@ -41,9 +41,9 @@ BRK
41 41
 @print ( addr* -- )
42 42
 	
43 43
 	&loop
44
-		( send ) DUP2 GET .Console/char DEO
44
+		( send ) DUP2 LDA .Console/char DEO
45 45
 		( incr ) #0001 ADD2
46
-		( loop ) DUP2 GET #00 NEQ ,&loop JNZ
46
+		( loop ) DUP2 LDA #00 NEQ ,&loop JNZ
47 47
 	POP2
48 48
 
49 49
 RTN
... ...
@@ -34,7 +34,7 @@ else
34 34
 fi
35 35
 
36 36
 echo "Assembling.."
37
-./bin/assembler projects/software/noodle.usm bin/boot.rom
37
+./bin/assembler projects/demos/drum-rack.usm bin/boot.rom
38 38
 
39 39
 echo "Running.."
40 40
 if [ "${2}" = '--cli' ]; 
... ...
@@ -24,10 +24,10 @@ contexts:
24 24
     - match: '\.(\S+)\sPOK'
25 25
       scope:  constant.numeric
26 26
       pop: true
27
-    - match: '\.(\S+)\sGET2'
27
+    - match: '\.(\S+)\sLDA2'
28 28
       scope:  constant.numeric
29 29
       pop: true
30
-    - match: '\.(\S+)\sGET'
30
+    - match: '\.(\S+)\sLDA'
31 31
       scope:  constant.numeric
32 32
       pop: true
33 33
 
... ...
@@ -43,10 +43,10 @@ contexts:
43 43
     - match: '\.(\S+)\sPEK'
44 44
       scope:  entity.name.type.typedef
45 45
       pop: true
46
-    - match: '\.(\S+)\sPUT2'
46
+    - match: '\.(\S+)\sSTA2'
47 47
       scope:  entity.name.type.typedef
48 48
       pop: true
49
-    - match: '\.(\S+)\sPUT'
49
+    - match: '\.(\S+)\sSTA'
50 50
       scope:  entity.name.type.typedef
51 51
       pop: true
52 52
 
... ...
@@ -7,12 +7,12 @@ import P, R, S, C, Ct, Cp, V from require 'lpeg'
7 7
 local labels, filename
8 8
 
9 9
 opcode_translate =
10
-    PEK2: 'GET'
11
-    POK2: 'PUT'
10
+    PEK2: 'LDA'
11
+    POK2: 'STA'
12 12
     LDR: 'PEK2'
13 13
     STR: 'POK2'
14
-    LDR2: 'GET2'
15
-    STR2: 'PUT2'
14
+    LDR2: 'LDA2'
15
+    STR2: 'STA2'
16 16
 
17 17
 grammar = P {
18 18
     'file'
... ...
@@ -110,7 +110,7 @@ RTN
110 110
 	&loop
111 111
 		( save-x ) OVR #03 MOD TOS #0008 MUL2 .anchor/x PEK2 ADD2 .Screen/x DEO2
112 112
 		( save-y ) OVR #03 DIV TOS #0008 MUL2 .anchor/y PEK2 ADD2 .Screen/y DEO2
113
-		( get digit* ) OVR DUPr STHr #02 MUL TOS ;digits ADD2 GET2 
113
+		( get digit* ) OVR DUPr STHr #02 MUL TOS ;digits ADD2 LDA2 
114 114
 		( get bit ) ROT #0e SWP SUB TOS SFT2 #0001 AND2 
115 115
 		( set tile ) #0008 MUL2 ;tiles ADD2 
116 116
 		( set style ) .style PEK #10 MUL TOS ADD2
... ...
@@ -35,7 +35,6 @@
35 35
 
36 36
 |0000
37 37
 
38
-@selection $1
39 38
 @last $1
40 39
 @color $1
41 40
 @center      [ &x $2 &y $2 ]
... ...
@@ -47,6 +46,7 @@
47 46
 @pos         [ &x $2 &y $2 ] 
48 47
 @padview     [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
49 48
 @mixview     [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
49
+@wavview     [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
50 50
 
51 51
 @state [ ( addr length )
52 52
 	$4 $4 $4 $4
... ...
@@ -60,9 +60,9 @@
60 60
 |0100 ( -> )
61 61
 	
62 62
 	( theme ) 
63
-	#0fe5 .System/r DEO2 
64
-	#0fc5 .System/g DEO2 
65
-	#0f25 .System/b DEO2
63
+	#0aff .System/r DEO2 
64
+	#0af2 .System/g DEO2 
65
+	#0af3 .System/b DEO2
66 66
 
67 67
 	( vectors )
68 68
 	;on-control .Controller/vector DEO2
... ...
@@ -82,11 +82,11 @@
82 82
 	.Screen/width DEI2 2/ .center/x POK2
83 83
 	.Screen/height DEI2 2/ .center/y POK2
84 84
 
85
-	( place views )
85
+	( place frame )
86 86
 	.center/x PEK2 PAD-WIDTH #0003 MUL2 SUB2 #0010 SUB2 .frame/x1 POK2
87
-	.center/y PEK2 PAD-HEIGHT 2* SUB2 .frame/y1 POK2
87
+	.center/y PEK2 #0050 SUB2 .frame/y1 POK2
88 88
 	.center/x PEK2 PAD-WIDTH #0003 MUL2 ADD2 #0010 ADD2 .frame/x2 POK2
89
-	.center/y PEK2 PAD-HEIGHT 2* ADD2 .frame/y2 POK2
89
+	.frame/y1 PEK2 PAD-HEIGHT #0004 MUL2 ADD2 #0030 ADD2 .frame/y2 POK2
90 90
 
91 91
 	( place padview )
92 92
 	.frame/x1 PEK2 .padview/x1 POK2
... ...
@@ -100,6 +100,12 @@
100 100
 	.mixview/x1 PEK2 #0080 ADD2 .mixview/x2 POK2
101 101
 	.padview/y2 PEK2 .mixview/y2 POK2
102 102
 
103
+	( place wavview )
104
+	.frame/x1 PEK2 .wavview/x1 POK2
105
+	.mixview/y2 PEK2 #0008 ADD2 .wavview/y1 POK2
106
+	.frame/x2 PEK2 .wavview/x2 POK2
107
+	.wavview/y1 PEK2 #0020 ADD2 .wavview/y2 POK2
108
+
103 109
 	;draw-pads JSR2
104 110
 	;draw-mixers JSR2
105 111
 
... ...
@@ -107,21 +113,14 @@
107 113
 	.frame/y1 PEK2 #0004 SUB2 
108 114
 	.frame/x2 PEK2 #0002 ADD2
109 115
 	.frame/y2 PEK2 #0002 ADD2
110
-	#03
111
-	;line-rect JSR2
112
-
113
-	.padview/x1 PEK2 #0002 SUB2
114
-	.padview/y1 PEK2 #0002 SUB2
115
-	.padview/x2 PEK2
116
-	.padview/y2 PEK2
117
-	#02
116
+	#01
118 117
 	;line-rect JSR2
119 118
 
120
-	.mixview/x1 PEK2 #0002 ADD2
121
-	.mixview/y1 PEK2 #0002 SUB2
122
-	.mixview/x2 PEK2
123
-	.mixview/y2 PEK2
124
-	#02
119
+	.mixview/x1 PEK2 #0002 ADD2 
120
+	.mixview/y1 PEK2 #0000 SUB2 
121
+	.mixview/x2 PEK2 #0002 SUB2
122
+	.mixview/y2 PEK2 #0002 SUB2
123
+	#01
125 124
 	;line-rect JSR2
126 125
 
127 126
 BRK
... ...
@@ -172,7 +171,7 @@ BRK
172 171
 		BRK
173 172
 	&no-drum
174 173
 
175
-	;pad-addr #0008 ADD2 GET2 .Audio0/addr DEO2
174
+	;pad-addr #0008 ADD2 LDA2 .Audio0/addr DEO2
176 175
 	#0008 .Audio0/length DEO2
177 176
 	.Midi/note DEI .Audio0/pitch DEO
178 177
 
... ...
@@ -205,14 +204,15 @@ BRK
205 204
 
206 205
 @on-touch-pad ( -> )
207 206
 	
208
-
209 207
 	( x ) .Mouse/x DEI2 .padview/x1 PEK2 SUB2 PAD-WIDTH DIV2 SWP POP
210 208
 	( y ) .Mouse/y DEI2 .padview/y1 PEK2 SUB2 PAD-HEIGHT DIV2 SWP POP #04 MUL ADD
211
-	DUP #b0 SWP
212
-	;play-pad JSR2
209
+	
210
+	DUP #b0 SWP ;play-pad JSR2
213 211
 
214
-	( select ) DUP .selection POK ;draw-editor JSR2
212
+	DUP ;draw-editor JSR2
213
+	DUP ;draw-waveform JSR2
215 214
 
215
+	POP
216 216
 	( release ) #00 .Mouse/state DEO
217 217
 
218 218
 BRK
... ...
@@ -222,8 +222,8 @@ BRK
222 222
 	#00 #10
223 223
 	&loop
224 224
 		( name ) OVR TOS #0019 MUL2 ;pad-path ADD2 .File/name DEO2
225
-		( length ) OVR TOS #0002 MUL2 ;pad-length ADD2 GET2 .File/length DEO2
226
-		( load ) OVR TOS #0002 MUL2 ;pad-addr ADD2 GET2 .File/load DEO2
225
+		( length ) OVR TOS #0002 MUL2 ;pad-length ADD2 LDA2 .File/length DEO2
226
+		( load ) OVR TOS #0002 MUL2 ;pad-addr ADD2 LDA2 .File/load DEO2
227 227
 		( incr ) SWP #01 ADD SWP
228 228
 		DUP2 LTH ,&loop JNZ
229 229
 	POP2
... ...
@@ -241,11 +241,11 @@ RTN
241 241
 	DUPr STHr #02 ;draw-pad JSR2
242 242
 
243 243
 	( length )
244
-	DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 DUP2 GET2 SWP2 #0002 ADD2 GET2 SWP2 SUB2 
244
+	DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 DUP2 LDA2 SWP2 #0002 ADD2 LDA2 SWP2 SUB2 
245 245
 	DUPr STHr #04 DIV #10 MUL .Audio0/length ADD DEO2	
246 246
 
247 247
 	( addr )
248
-	DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 GET2
248
+	DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 LDA2
249 249
 	DUPr STHr #04 DIV #10 MUL .Audio0/addr ADD DEO2
250 250
 
251 251
 	( pitch )
... ...
@@ -257,6 +257,39 @@ RTN
257 257
 
258 258
 RTN
259 259
 
260
+@draw-waveform ( pad -- )
261
+	
262
+	#02 MUL #00 SWP ;pad-addr ADD2 LDA2 STH2
263
+
264
+	.wavview/x1 PEK2
265
+	.wavview/y1 PEK2
266
+	.wavview/x2 PEK2 ++
267
+	.wavview/y2 PEK2
268
+	#00 ;fill-rect JSR2
269
+
270
+	.wavview/x1 PEK2 .Screen/x DEO2
271
+
272
+	( waveform )
273
+	#00 #ff
274
+	&loop
275
+		( dotted line )
276
+		OVR #01 AND ,&no-dot JNZ 
277
+			.wavview/y1 PEK2 #0010 ADD2 .Screen/y DEO2
278
+			#03 .Screen/color DEO
279
+		&no-dot
280
+		OVR TOS #0010 MUL2 [ DUP2r STH2r ] ADD2 LDA 
281
+		#02 DIV #40 ADD DUP #07 SFT #80 MUL SUB 
282
+		TOS #0004 DIV2 .wavview/y1 PEK2 ADD2 .Screen/y DEO2
283
+		.Screen/x DEI2 ++ .Screen/x DEO2
284
+		( draw ) OVR .Audio0/length DEI2 SWP POP GTH #02 MUL #01 ADD .Screen/color DEO
285
+		( incr ) SWP #01 ADD SWP
286
+		DUP2 LTH ,&loop JNZ
287
+	POP2
288
+
289
+	POP2r
290
+
291
+RTN
292
+
260 293
 @draw-editor ( pad -- )
261 294
 
262 295
 	( get state )
... ...
@@ -264,11 +297,11 @@ RTN
264 297
 	.frame/y2 PEK2 #0008 ADD2 .Screen/y DEO2
265 298
 
266 299
 	.frame/x1 PEK2 .Screen/x DEO2
267
-	DUP #02 MUL TOS ;pad-addr ADD2 GET2
300
+	DUP #02 MUL TOS ;pad-addr ADD2 LDA2
268 301
 	( addr ) #21 ;draw-short JSR2
269 302
 
270 303
 	.frame/x1 PEK2 #0028 ADD2 .Screen/x DEO2
271
-	DUP #02 MUL TOS ;pad-length ADD2 GET2
304
+	DUP #02 MUL TOS ;pad-length ADD2 LDA2
272 305
 	( addr ) #21 ;draw-short JSR2
273 306
 
274 307
 	POP
... ...
@@ -279,7 +312,7 @@ RTN
279 312
 
280 313
 	;cursor .Screen/addr DEO2
281 314
 
282
-	DUP #00 SWP PAD-HEIGHT MUL2 .mixview/y1 PEK2 ADD2 STH2
315
+	DUP #00 SWP PAD-HEIGHT MUL2 .mixview/y1 PEK2 ADD2 #0002 ADD2 STH2
283 316
 
284 317
 	( adsr )
285 318
 	.mixview/x1 PEK2 #0008 ADD2 DUP2r STH2r
... ...
@@ -295,6 +328,9 @@ RTN
295 328
 		.Audio0/adsr #01 ADD DEI #0f AND
296 329
 		;draw-knob JSR2
297 330
 
331
+	.mixview/x1 PEK2 #0048 ADD2 DUP2r STH2r
332
+		#00 ;draw-switch JSR2
333
+
298 334
 	( volume )
299 335
 	.mixview/x1 PEK2 #0058 ADD2 DUP2r STH2r
300 336
 		.Audio0/volume DEI #04 SFT
... ...
@@ -303,9 +339,9 @@ RTN
303 339
 		.Audio0/volume DEI #0f AND
304 340
 		;draw-knob JSR2
305 341
 
342
+
306 343
 	POP
307 344
 	POP2r
308
-
309 345
 	( once/repeat interface )
310 346
 
311 347
 RTN
... ...
@@ -319,8 +355,8 @@ RTN
319 355
 	.knob/x PEK2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO
320 356
 	.knob/y PEK2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
321 357
 	.knob/x PEK2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
322
-	.knob/x PEK2 #00 #00 .knob/value PEK ;knob-offsetx ADD2 GET ADD2 .Screen/x DEO2
323
-	.knob/y PEK2 #00 #00 .knob/value PEK ;knob-offsety ADD2 GET ADD2 .Screen/y DEO2
358
+	.knob/x PEK2 #00 #00 .knob/value PEK ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2
359
+	.knob/y PEK2 #00 #00 .knob/value PEK ;knob-offsety ADD2 LDA ADD2 .Screen/y DEO2
324 360
 	;knob_icns #0020 ADD2 .Screen/addr DEO2
325 361
 	#25 .Screen/color DEO
326 362
 	.knob/x PEK2 #0004 ADD2 .Screen/x DEO2
... ...
@@ -330,6 +366,29 @@ RTN
330 366
 
331 367
 RTN
332 368
 
369
+@draw-switch ( x* y* value -- )
370
+	
371
+	POP ( TODO: use value for toggle position )
372
+	.Screen/y DEO2
373
+	.Screen/x DEO2
374
+	;switch .Screen/addr DEO2
375
+	#21 .Screen/color DEO
376
+
377
+	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
378
+	;switch #0008 ADD2 .Screen/addr DEO2
379
+	#21 .Screen/color DEO
380
+
381
+	.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
382
+	.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2
383
+	;switch #0010 ADD2 .Screen/addr DEO2
384
+	#21 .Screen/color DEO
385
+
386
+	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
387
+	;switch #0018 ADD2 .Screen/addr DEO2
388
+	#21 .Screen/color DEO
389
+
390
+RTN
391
+
333 392
 @draw-pads ( -- )
334 393
 	
335 394
 	#00 #10
... ...
@@ -395,7 +454,7 @@ RTN
395 454
 	.pointer/x PEK2 .Screen/x DEO2 
396 455
 	.pointer/y PEK2 .Screen/y DEO2 
397 456
 	( colorize on state )
398
-	#31 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/color DEO
457
+	#33 [ .Mouse/state DEI #00 NEQ ] SUB .Screen/color DEO
399 458
 
400 459
 RTN
401 460
 
... ...
@@ -443,14 +502,33 @@ RTN
443 502
 	( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2
444 503
 	.label/addr PEK2
445 504
 	&loop
446
-		( draw ) DUP2 GET #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
505
+		( draw ) DUP2 LDA #00 SWP #0030 SUB2 #0008 MUL2 ;font-num-uc ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
447 506
 		( incr ) #0001 ADD2
448
-		( incr ) .Screen/x DEI2 #0007 ADD2 .Screen/x DEO2
449
-		DUP2 GET #00 NEQ ,&loop JNZ
507
+		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
508
+		DUP2 LDA #00 NEQ ,&loop JNZ
450 509
 	POP2
451 510
 
452 511
 RTN
453 512
 
513
+@fill-rect ( x1* y1* x2* y2* color -- )
514
+	
515
+	.color POK
516
+	( x1 x2 y1 y2 ) ROT2 SWP2
517
+	&ver
518
+		( save ) OVR2 .Screen/y DEO2
519
+		STH2 STH2 OVR2 OVR2
520
+		&hor
521
+			( save ) OVR2 .Screen/x DEO2
522
+			( draw ) .color PEK .Screen/color DEO
523
+			( incr ) SWP2 ++ SWP2
524
+			OVR2 OVR2 LTS2 ,&hor JNZ
525
+		POP2 POP2 STH2r STH2r
526
+		( incr ) SWP2 ++ SWP2
527
+		OVR2 OVR2 LTS2 ,&ver JNZ
528
+	POP2 POP2 POP2 POP2
529
+
530
+RTN
531
+
454 532
 @pad-name [
455 533
 	"PAD1 $1 "SYN1 $1 "SYN2 $1 "CYM1 $1 ( short )
456 534
 	"HHAT $1 "OHAT $1 "CHAT $1 "RIDE $1
... ...
@@ -518,6 +596,17 @@ RTN
518 596
 	707e 7e7e 7e7e 7e7e
519 597
 	7e7e 7e7e 7e7e 7e7e ]
520 598
 
599
+@switch [
600
+	001f 204f 5f5f 4f40
601
+	00f8 04f2 fafa f202
602
+	4040 4040 4020 1f00
603
+	0202 0202 0204 f800
604
+	0000 0000 0000 0000
605
+	0000 0000 0000 0000
606
+	0000 0000 0000 0000
607
+	0000 0000 0000 0000
608
+]
609
+
521 610
 @font-hex ( 0-F )
522 611
 [
523 612
 	007c 8282 8282 827c 0030 1010 1010 1010
... ...
@@ -530,38 +619,26 @@ RTN
530 619
 	007c 8280 f080 827c 007c 8280 f080 8080
531 620
 ]
532 621
 
533
-@font ( spectrum-zx font )
534
-[
535
-	0000 0000 0000 0000 0000 2400 7e3c 0000 0000 2400 3c42 0000 0000 6c7c 7c38 1000
536
-	0010 387c 7c38 1000 0038 387c 6c10 3800 0010 387c 7c10 3800 0000 0018 1800 0000
537
-	007e 4242 4242 7e00 0000 1824 2418 0000 0018 2442 4224 1800 001e 063a 4a48 3000
538
-	0038 446c 107c 1000 000c 0808 0838 3800 003e 2222 2266 6600 0000 0822 0022 0800
539
-	0000 1018 1c18 1000 0000 0818 3818 0800 0008 1c00 001c 0800 0028 2828 2800 2800
540
-	003e 4a4a 3a0a 0a00 000c 3046 620c 3000 0000 0000 0000 ffff 0010 3800 3810 0038
541
-	0008 1c2a 0808 0800 0008 0808 2a1c 0800 0000 0804 7e04 0800 0000 1020 7e20 1000
542
-	0000 4040 7e00 0000 0000 0024 6624 0000 0000 1038 7c00 0000 0000 007c 3810 0000
543
-	0000 0000 0000 0000 0008 0808 0800 0800 0014 1400 0000 0000 0024 7e24 247e 2400
544
-	0008 1e28 1c0a 3c08 0042 0408 1020 4200 0030 4832 4c44 3a00 0008 1000 0000 0000
545
-	0004 0808 0808 0400 0010 0808 0808 1000 0000 1408 3e08 1400 0000 0808 3e08 0800
546
-	0000 0000 0008 0810 0000 0000 3c00 0000 0000 0000 0000 0800 0000 0204 0810 2000
547
-	003c 464a 5262 3c00 0018 2808 0808 3e00 003c 4202 3c40 7e00 003c 421c 0242 3c00
548
-	0008 1828 487e 0800 007e 407c 0242 3c00 003c 407c 4242 3c00 007e 0204 0810 1000
549
-	003c 423c 4242 3c00 003c 4242 3e02 3c00 0000 0008 0000 0800 0000 0800 0008 0810
550
-	0000 0810 2010 0800 0000 003e 003e 0000 0000 1008 0408 1000 003c 4202 0c00 0800
551
-	003c 425a 5442 3c00 0018 2442 7e42 4200 007c 427c 4242 7c00 003c 4240 4042 3c00
552
-	0078 4442 4244 7800 007e 407c 4040 7e00 003e 4040 7c40 4000 003c 4240 4e42 3c00
553
-	0042 427e 4242 4200 003e 0808 0808 3e00 0002 0202 4242 3c00 0044 4870 4844 4200
554
-	0040 4040 4040 7e00 0042 665a 4242 4200 0042 6252 4a46 4200 003c 4242 4242 3c00
555
-	007c 4242 7c40 4000 003c 4242 524a 3c00 007c 4242 7c44 4200 003c 403c 0242 3c00
556
-	00fe 1010 1010 1000 0042 4242 4242 3c00 0042 4242 4224 1800 0042 4242 5a66 4200
557
-	0042 2418 1824 4200 0082 4428 1010 1000 007e 0408 1020 7e00 000c 0808 0808 0c00
558
-	0040 2010 0804 0200 0018 0808 0808 1800 0008 1422 0000 0000 0000 0000 0000 7e00
559
-	0008 0400 0000 0000 0000 1c02 1e22 1e00 0020 203c 2222 3c00 0000 1e20 2020 1e00
560
-	0002 021e 2222 1e00 0000 1c22 3c20 1e00 000c 101c 1010 1000 0000 1c22 221e 021c
561
-	0020 202c 3222 2200 0008 0018 0808 0400 0008 0008 0808 4830 0020 2428 3028 2400
562
-	0010 1010 1010 0c00 0000 6854 5454 5400 0000 5864 4444 4400 0000 3844 4444 3800
563
-	0000 7844 4478 4040 0000 3c44 443c 0406 0000 2c30 2020 2000 0000 3840 3804 7800
564
-	0010 103c 1010 0c00 0000 4444 4444 3800 0000 4444 2828 1000 0000 4454 5454 2800
565
-	0000 4428 1028 4400 0000 4444 443c 0438 0000 7c08 1020 7c00 000c 0810 1008 0c00
566
-	0008 0808 0808 0800 0030 1008 0810 3000 0000 0032 4c00 0000 3c42 99a1 a199 423c
567
-]
622
+@font-num-uc [
623
+	003e 4141 4141 413e 0018 0808 0808 081c 
624
+	003e 4101 3e40 407f 003e 4101 1f01 413e 
625
+	0011 2141 7f01 0101 007f 4040 7e01 413e 
626
+	003e 4140 7e41 413e 003e 4101 0102 0408 
627
+	003e 4141 3e41 413e 003e 4141 3f01 0102 
628
+	0000 0800 0000 0800 0000 0800 0000 0800 
629
+	0000 0800 0000 0810 0000 0408 1008 0400 
630
+	0000 001c 001c 0000 0000 1008 0408 1000 
631
+	0000 0000 0000 0000 003e 4101 3f41 413f 
632
+	007e 4141 7e41 417e 003e 4140 4040 413e 
633
+	007e 4141 4141 417e 007f 4040 7e40 407f 
634
+	007f 4040 7e40 4040 003e 4140 5e41 413e 
635
+	0041 4141 7f41 4141 0008 0808 0808 0808 
636
+	007f 0101 0101 413e 0041 4244 7844 4241 
637
+	0040 4040 4040 403f 0076 4949 4949 4949 
638
+	005e 6141 4141 4141 003e 4141 4141 413e 
639
+	007e 4141 7e40 4040 003e 4141 4145 423d 
640
+	007e 4141 7e41 4141 003e 4140 3e01 413e 
641
+	007f 0808 0808 0808 0041 4141 4141 433d 
642
+	0041 4141 4122 1408 0049 4949 4949 4976 
643
+	0041 2214 0814 2241 0041 4141 3f01 413e 
644
+	007f 0101 3e40 407f ]
... ...
@@ -107,21 +107,21 @@ BRK
107 107
 
108 108
 	.Controller/key DEI
109 109
 	DUP #61 NEQ ,&no-c JNZ
110
-		;notes GET ;play JSR2 &no-c
110
+		;notes LDA ;play JSR2 &no-c
111 111
 	DUP #73 NEQ ,&no-d JNZ
112
-		;notes #0001 ADD2 GET ;play JSR2 &no-d
112
+		;notes #0001 ADD2 LDA ;play JSR2 &no-d
113 113
 	DUP #64 NEQ ,&no-e JNZ
114
-		;notes #0002 ADD2 GET ;play JSR2 &no-e
114
+		;notes #0002 ADD2 LDA ;play JSR2 &no-e
115 115
 	DUP #66 NEQ ,&no-f JNZ
116
-		;notes #0003 ADD2 GET ;play JSR2 &no-f
116
+		;notes #0003 ADD2 LDA ;play JSR2 &no-f
117 117
 	DUP #67 NEQ ,&no-g JNZ
118
-		;notes #0004 ADD2 GET ;play JSR2 &no-g
118
+		;notes #0004 ADD2 LDA ;play JSR2 &no-g
119 119
 	DUP #68 NEQ ,&no-a JNZ
120
-		;notes #0005 ADD2 GET ;play JSR2 &no-a
120
+		;notes #0005 ADD2 LDA ;play JSR2 &no-a
121 121
 	DUP #6a NEQ ,&no-b JNZ
122
-		;notes #0006 ADD2 GET ;play JSR2 &no-b
122
+		;notes #0006 ADD2 LDA ;play JSR2 &no-b
123 123
 	DUP #6b NEQ ,&no-c2 JNZ
124
-		;notes #0007 ADD2 GET ;play JSR2 &no-c2
124
+		;notes #0007 ADD2 LDA ;play JSR2 &no-c2
125 125
 	POP
126 126
 
127 127
 BRK
... ...
@@ -139,7 +139,7 @@ RTN
139 139
 	#0e .Mouse/y DEI2 .trkframe/y1 PEK2 SUB2 SWP POP #08 DIV SUB
140 140
 	.Mouse/state DEI #10 NEQ ,&no-erase JNZ POP #00 &no-erase
141 141
 	( edit note )
142
-	TRACK #00 .Mouse/x DEI2 .trkframe/x1 PEK2 SUB2 SWP POP #08 DIV ADD2 PUT
142
+	TRACK #00 .Mouse/x DEI2 .trkframe/x1 PEK2 SUB2 SWP POP #08 DIV ADD2 STA
143 143
 	( release ) #00 .Mouse/state DEO
144 144
 	;draw-notes JSR2
145 145
 
... ...
@@ -191,33 +191,33 @@ BRK
191 191
 
192 192
 @bang ( -- )
193 193
 		
194
-	;track/ch1 #00 .head/pos PEK #08 DIV ADD2 GET
194
+	;track/ch1 #00 .head/pos PEK #08 DIV ADD2 LDA
195 195
 	#01 SUB
196 196
 	DUP #ff NEQ ,&skip1 JNZ
197 197
 		POP ,&listen2 JMP
198 198
 	&skip1
199
-	#00 SWP ;notes ADD2 GET .Audio0/pitch DEO
199
+	#00 SWP ;notes ADD2 LDA .Audio0/pitch DEO
200 200
 	&listen2
201
-	;track/ch2 #00 .head/pos PEK #08 DIV ADD2 GET
201
+	;track/ch2 #00 .head/pos PEK #08 DIV ADD2 LDA
202 202
 	#01 SUB
203 203
 	DUP #ff NEQ ,&skip2 JNZ
204 204
 		POP ,&listen3 JMP
205 205
 	&skip2
206
-	#00 SWP ;notes ADD2 GET .Audio1/pitch DEO
206
+	#00 SWP ;notes ADD2 LDA .Audio1/pitch DEO
207 207
 	&listen3
208
-	;track/ch3 #00 .head/pos PEK #08 DIV ADD2 GET
208
+	;track/ch3 #00 .head/pos PEK #08 DIV ADD2 LDA
209 209
 	#01 SUB
210 210
 	DUP #ff NEQ ,&skip3 JNZ
211 211
 		POP ,&listen4 JMP
212 212
 	&skip3
213
-	#00 SWP ;notes ADD2 GET .Audio2/pitch DEO
213
+	#00 SWP ;notes ADD2 LDA .Audio2/pitch DEO
214 214
 	&listen4
215
-	;track/ch4 #00 .head/pos PEK #08 DIV ADD2 GET
215
+	;track/ch4 #00 .head/pos PEK #08 DIV ADD2 LDA
216 216
 	#01 SUB
217 217
 	DUP #ff NEQ ,&skip4 JNZ
218 218
 		POP ,&end JMP
219 219
 	&skip4
220
-	#00 SWP ;notes ADD2 GET #80 ORA .Audio3/pitch DEO
220
+	#00 SWP ;notes ADD2 LDA #80 ORA .Audio3/pitch DEO
221 221
 	&end
222 222
 
223 223
 RTN
... ...
@@ -232,7 +232,7 @@ RTN
232 232
 	( incr ) .head/pos PEK #01 ADD .head/pos POK
233 233
 	.trkframe/x1 PEK2 #00 .head/pos PEK ADD2 .Screen/x DEO2
234 234
 	;head_icn .Screen/addr DEO2
235
-	#21 ( if note ) TRACK #00 .head/pos PEK #08 DIV ADD2 GET #00 NEQ ADD .Screen/color DEO
235
+	#21 ( if note ) TRACK #00 .head/pos PEK #08 DIV ADD2 LDA #00 NEQ ADD .Screen/color DEO
236 236
 
237 237
 RTN
238 238
 
... ...
@@ -240,7 +240,7 @@ RTN
240 240
 
241 241
 	#00 #20
242 242
 	&loop
243
-		( load ) OVR #00 SWP TRACK ADD2 GET
243
+		( load ) OVR #00 SWP TRACK ADD2 LDA
244 244
 		DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 PEK2 ADD2 .Screen/y DEO2
245 245
 		OVR #00 SWP 8* .trkframe/x1 PEK2 ADD2 .Screen/x DEO2
246 246
 		STHr #00 EQU ,&skip JNZ
... ...
@@ -256,7 +256,7 @@ RTN
256 256
 
257 257
 	#00 #20
258 258
 	&notes-loop
259
-		( load ) OVR #00 SWP TRACK ADD2 GET
259
+		( load ) OVR #00 SWP TRACK ADD2 LDA
260 260
 		DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 PEK2 ADD2 .Screen/y DEO2
261 261
 		OVR #00 SWP 8* .trkframe/x1 PEK2 ADD2 .Screen/x DEO2
262 262
 		;note_icn .Screen/addr DEO2
... ...
@@ -356,8 +356,8 @@ RTN
356 356
 	.knob/x PEK2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO
357 357
 	.knob/y PEK2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
358 358
 	.knob/x PEK2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
359
-	.knob/x PEK2 #00 #00 .knob/value PEK ;knob_offsetx ADD2 GET ADD2 .Screen/x DEO2
360
-	.knob/y PEK2 #00 #00 .knob/value PEK ;knob_offsety ADD2 GET ADD2 .Screen/y DEO2
359
+	.knob/x PEK2 #00 #00 .knob/value PEK ;knob_offsetx ADD2 LDA ADD2 .Screen/x DEO2
360
+	.knob/y PEK2 #00 #00 .knob/value PEK ;knob_offsety ADD2 LDA ADD2 .Screen/y DEO2
361 361
 	;knob_icns #0020 ADD2 .Screen/addr DEO2
362 362
 	#25 .Screen/color DEO
363 363
 	.knob/x PEK2 #0004 ADD2 .Screen/x DEO2
... ...
@@ -453,10 +453,10 @@ RTN
453 453
 	( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2
454 454
 	.label/addr PEK2
455 455
 	&loop
456
-		( draw ) DUP2 GET #00 SWP 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
456
+		( draw ) DUP2 LDA #00 SWP 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
457 457
 		( incr ) ++
458 458
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
459
-		DUP2 GET #00 NEQ ,&loop JNZ
459
+		DUP2 LDA #00 NEQ ,&loop JNZ
460 460
 	POP2
461 461
 
462 462
 RTN
... ...
@@ -159,7 +159,7 @@ BRK
159 159
 	&no-mod
160 160
 
161 161
 	.Mouse/x DEI2 .octave-view/x1 PEK2 SUB2 8/ SWP POP #06 GTH ,&no-key JNZ
162
-		.Mouse/x DEI2 .octave-view/x1 PEK2 SUB2 8/ DUP2 SWP POP .last-note POK ;notes ADD2 GET ;play JSR2
162
+		.Mouse/x DEI2 .octave-view/x1 PEK2 SUB2 8/ DUP2 SWP POP .last-note POK ;notes ADD2 LDA ;play JSR2
163 163
 		( release ) #00 .Mouse/state DEO
164 164
 		;draw-octave JSR2
165 165
 	&no-key
... ...
@@ -211,21 +211,21 @@ BRK
211 211
 
212 212
 	.Controller/key DEI
213 213
 	DUP #61 NEQ ,&no-c JNZ
214
-		#00 .last-note POK ;notes GET ;play JSR2 &no-c
214
+		#00 .last-note POK ;notes LDA ;play JSR2 &no-c
215 215
 	DUP #73 NEQ ,&no-d JNZ
216
-		#01 .last-note POK ;notes ++ GET ;play JSR2 &no-d
216
+		#01 .last-note POK ;notes ++ LDA ;play JSR2 &no-d
217 217
 	DUP #64 NEQ ,&no-e JNZ
218
-		#02 .last-note POK ;notes #0002 ADD2 GET ;play JSR2 &no-e
218
+		#02 .last-note POK ;notes #0002 ADD2 LDA ;play JSR2 &no-e
219 219
 	DUP #66 NEQ ,&no-f JNZ
220
-		#03 .last-note POK ;notes #0003 ADD2 GET ;play JSR2 &no-f
220
+		#03 .last-note POK ;notes #0003 ADD2 LDA ;play JSR2 &no-f
221 221
 	DUP #67 NEQ ,&no-g JNZ
222
-		#04 .last-note POK ;notes #0004 ADD2 GET ;play JSR2 &no-g
222
+		#04 .last-note POK ;notes #0004 ADD2 LDA ;play JSR2 &no-g
223 223
 	DUP #68 NEQ ,&no-a JNZ
224
-		#05 .last-note POK ;notes #0005 ADD2 GET ;play JSR2 &no-a
224
+		#05 .last-note POK ;notes #0005 ADD2 LDA ;play JSR2 &no-a
225 225
 	DUP #6a NEQ ,&no-b JNZ
226
-		#06 .last-note POK ;notes #0006 ADD2 GET ;play JSR2 &no-b
226
+		#06 .last-note POK ;notes #0006 ADD2 LDA ;play JSR2 &no-b
227 227
 	DUP #6b NEQ ,&no-c2 JNZ
228
-		#07 .last-note POK ;notes #0007 ADD2 GET ;play JSR2 &no-c2
228
+		#07 .last-note POK ;notes #0007 ADD2 LDA ;play JSR2 &no-c2
229 229
 	POP
230 230
 
231 231
 	.Controller/button DEI #f0 AND
... ...
@@ -359,7 +359,7 @@ RTN
359 359
 			.wave-view/y1 PEK2 #0010 ADD2 .Screen/y DEO2
360 360
 			#03 .Screen/color DEO
361 361
 		&no-dot
362
-		OVR TOS .Audio0/addr DEI2 ADD2 GET 
362
+		OVR TOS .Audio0/addr DEI2 ADD2 LDA 
363 363
 		#02 DIV #40 ADD DUP #07 SFT #80 MUL SUB 
364 364
 		TOS #0004 DIV2 .wave-view/y1 PEK2 ADD2 .Screen/y DEO2
365 365
 		.Screen/x DEI2 ++ .Screen/x DEO2
... ...
@@ -401,8 +401,8 @@ RTN
401 401
 	.knob/x PEK2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO
402 402
 	.knob/y PEK2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
403 403
 	.knob/x PEK2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO
404
-	.knob/x PEK2 #00 #00 .knob/value PEK ;knob-offsetx ADD2 GET ADD2 .Screen/x DEO2
405
-	.knob/y PEK2 #00 #00 .knob/value PEK ;knob-offsety ADD2 GET ADD2 .Screen/y DEO2
404
+	.knob/x PEK2 #00 #00 .knob/value PEK ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2
405
+	.knob/y PEK2 #00 #00 .knob/value PEK ;knob-offsety ADD2 LDA ADD2 .Screen/y DEO2
406 406
 	;knob_icns #0020 ADD2 .Screen/addr DEO2
407 407
 	#25 .Screen/color DEO
408 408
 	.knob/x PEK2 #0004 ADD2 .Screen/x DEO2
... ...
@@ -76,17 +76,17 @@ BRK
76 76
 	DUP2 #0010 NEQ2 ,&no-touch-red JNZ
77 77
 		.Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-red JNZ
78 78
 		.Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-red JNZ
79
-		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/r1 #00 .selection PEK ADD2 PUT
79
+		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/r1 #00 .selection PEK ADD2 STA
80 80
 	&no-touch-red
81 81
 	DUP2 #0020 NEQ2 ,&no-touch-green JNZ
82 82
 		.Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-green JNZ
83 83
 		.Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-green JNZ
84
-		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/g1 #00 .selection PEK ADD2 PUT
84
+		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/g1 #00 .selection PEK ADD2 STA
85 85
 	&no-touch-green
86 86
 	DUP2 #0030 NEQ2 ,&no-touch-blue JNZ
87 87
 		.Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-blue JNZ
88 88
 		.Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-blue JNZ
89
-		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/b1 #00 .selection PEK ADD2 PUT
89
+		( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/b1 #00 .selection PEK ADD2 STA
90 90
 	&no-touch-blue
91 91
 	DUP2 #0040 NEQ2 ,&no-touch-radio JNZ
92 92
 		.Mouse/x DEI2 .window/x1 PEK2 #0050 ADD2 LTH2 ,&no-touch-radio JNZ
... ...
@@ -210,9 +210,9 @@ RTN
210 210
 	.window/x1 PEK2 #0038 ADD2 .Screen/x DEO2 
211 211
 	.System/b DEI2 #28 ;draw-short JSR2
212 212
 
213
-	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0010 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/r1 .selection PEK ADD GET #0004 MUL2 #01 ;draw-slider JSR2
214
-	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0020 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/g1 .selection PEK ADD GET #0004 MUL2 #01 ;draw-slider JSR2
215
-	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0030 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/b1 .selection PEK ADD GET #0004 MUL2 #01 ;draw-slider JSR2
213
+	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0010 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/r1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2
214
+	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0020 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/g1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2
215
+	.window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0030 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/b1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2
216 216
 
217 217
 	.window/x1 PEK2 #0050 ADD2 .Screen/x DEO2
218 218
 	.window/y1 PEK2 #0040 ADD2 .Screen/y DEO2
... ...
@@ -326,12 +326,12 @@ RTN
326 326
 	.Screen/x DEO2 
327 327
 	STH2r
328 328
 	&loop
329
-		DUP2 GET #00 SWP #0008 MUL2 
329
+		DUP2 LDA #00 SWP #0008 MUL2 
330 330
 		;font ADD2 .Screen/addr DEO2 
331 331
 		( draw ) DUPr STHr .Screen/color DEO
332 332
 		( incr ) ++
333 333
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
334
-		DUP2 GET #00 NEQ ,&loop JNZ
334
+		DUP2 LDA #00 NEQ ,&loop JNZ
335 335
 	POP2 POPr
336 336
 
337 337
 RTN
... ...
@@ -35,7 +35,7 @@ BRK
35 35
 	( skip ) .timer PEK #10 EQU #01 JNZ [ BRK ]
36 36
 
37 37
 	( get note )
38
-	;melody #00 .progress PEK ADD2 GET 
38
+	;melody #00 .progress PEK ADD2 LDA 
39 39
 
40 40
 	( play note )
41 41
 	DUP .Audio0/pitch DEO
... ...
@@ -33,9 +33,9 @@ BRK
33 33
 @print ( addr -- )
34 34
 	
35 35
 	&loop
36
-		( send ) DUP2 GET .Console/char DEO
36
+		( send ) DUP2 LDA .Console/char DEO
37 37
 		( incr ) #0001 ADD2
38
-		( loop ) DUP2 GET ,&loop JNZ
38
+		( loop ) DUP2 LDA ,&loop JNZ
39 39
 	POP2
40 40
 
41 41
 RTN
... ...
@@ -17,9 +17,9 @@ BRK
17 17
 @print ( addr* -- )
18 18
 	
19 19
 	&loop
20
-		( send ) DUP2 GET .Console/char DEO
20
+		( send ) DUP2 LDA .Console/char DEO
21 21
 		( incr ) #0001 ADD2
22
-		( loop ) DUP2 GET #00 NEQ ,&loop JNZ
22
+		( loop ) DUP2 LDA #00 NEQ ,&loop JNZ
23 23
 	POP2
24 24
 
25 25
 RTN
... ...
@@ -51,13 +51,13 @@ BRK
51 51
 	#0080 SCALEX #0080 SCALEY .needles/hx PEK2 .needles/hy PEK2 #00 ;draw-line JSR2
52 52
 
53 53
 	( place )
54
-	#00 .DateTime/second DEI #0002 MUL2 ;table ADD2 GET2
54
+	#00 .DateTime/second DEI #0002 MUL2 ;table ADD2 LDA2
55 55
 		#00 SWP SCALEY .needles/sy POK2
56 56
 		#00 SWP SCALEX .needles/sx POK2
57
-	#00 .DateTime/minute DEI #0002 MUL2 ;table ADD2 GET2
57
+	#00 .DateTime/minute DEI #0002 MUL2 ;table ADD2 LDA2
58 58
 		#00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEY .needles/my POK2
59 59
 		#00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEX .needles/mx POK2
60
-	#00 .DateTime/hour DEI 12HOURS #05 MUL #0002 MUL2 ;table ADD2 GET2
60
+	#00 .DateTime/hour DEI 12HOURS #05 MUL #0002 MUL2 ;table ADD2 LDA2
61 61
 		#00 SWP #0002 DIV2 #0040 ADD2 SCALEY .needles/hy POK2
62 62
 		#00 SWP #0002 DIV2 #0040 ADD2 SCALEX .needles/hx POK2
63 63
 
... ...
@@ -69,7 +69,7 @@ BRK
69 69
 	( circle )
70 70
 	#00 #3c
71 71
 	&loop
72
-		( load ) OVR #00 SWP #0002 MUL2 ;table ADD2 GET2
72
+		( load ) OVR #00 SWP #0002 MUL2 ;table ADD2 LDA2
73 73
 		#00 SWP SCALEY .Screen/y DEO2
74 74
 		#00 SWP SCALEX .Screen/x DEO2
75 75
 		OVR #0f MOD #00 EQU #01 ADD .Screen/color DEO
... ...
@@ -50,10 +50,10 @@ RTN
50 50
 	( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2
51 51
 	.label/addr PEK2
52 52
 	&loop
53
-		( draw ) DUP2 GET #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
53
+		( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
54 54
 		( incr ) #0001 ADD2
55 55
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
56
-		DUP2 GET #00 NEQ ,&loop JNZ
56
+		DUP2 LDA #00 NEQ ,&loop JNZ
57 57
 	POP2
58 58
 
59 59
 RTN
... ...
@@ -64,10 +64,10 @@ RTN
64 64
 	( align ) .label/addr PEK2 ;get-text-length JSR2 #0008 MUL2 #0002 DIV2 SUB2 .Screen/x DEO2
65 65
 	.label/addr PEK2
66 66
 	&loop
67
-		( draw ) DUP2 GET #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
67
+		( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
68 68
 		( incr ) #0001 ADD2
69 69
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
70
-		DUP2 GET #00 NEQ ,&loop JNZ
70
+		DUP2 LDA #00 NEQ ,&loop JNZ
71 71
 	POP2
72 72
 
73 73
 RTN
... ...
@@ -78,10 +78,10 @@ RTN
78 78
 	( align ) .label/addr PEK2 ;get-text-length JSR2 #0008 MUL2 SUB2 #0008 SUB2 .Screen/x DEO2
79 79
 	.label/addr PEK2
80 80
 	&loop
81
-		( draw ) DUP2 GET #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
81
+		( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
82 82
 		( incr ) #0001 ADD2
83 83
 		( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
84
-		DUP2 GET #00 NEQ ,&loop JNZ
84
+		DUP2 LDA #00 NEQ ,&loop JNZ
85 85
 	POP2
86 86
 
87 87
 RTN
... ...
@@ -91,7 +91,7 @@ RTN
91 91
 	#0000 ( counter )
92 92
 	&loop
93 93
 		( incr ) #0001 ADD2 OVR2 OVR2 ADD2
94
-		GET #00 NEQ ,&loop JNZ
94
+		LDA #00 NEQ ,&loop JNZ
95 95
 	SWP2 POP2
96 96
 
97 97
 RTN
... ...
@@ -64,7 +64,7 @@
64 64
 
65 65
 	&loop
66 66
 	#0001 ADD2
67
-	DUP2 GET
67
+	DUP2 LDA
68 68
 	#20 GTH ,&loop JNZ
69 69
 
70 70
 	DUP2 OVR2r STH2r LTS2 ,&valid JNZ
... ...
@@ -73,7 +73,7 @@
73 73
 	JMP2r
74 74
 
75 75
 	&valid
76
-	DUP2 GET #00 OVR2 PUT
76
+	DUP2 LDA #00 OVR2 STA
77 77
 	STH2r #0001 ADD2 ,assemble-token JSR
78 78
 	,&per-token JNZ
79 79
 
... ...
@@ -107,24 +107,24 @@
107 107
 	POP2
108 108
 	.assembler/token POK2
109 109
 	( tail call default handling function defined in state-machine-pointers )
110
-	LIT2r [ 0002 ] ADD2r GET2r
110
+	LIT2r [ 0002 ] ADD2r LDA2r
111 111
 	JMP2r
112 112
 
113 113
 @parse-hex-length ( string-ptr* -- value 01 if one or two hex digits
114 114
                                 OR 00 otherwise )
115
-	DUP2 #0001 ADD2 GET ,parse-hex-string/try-two JNZ
116
-	GET ,parse-hex-digit JSR DUP #04 SFT ,parse-hex-string/fail1 JNZ
115
+	DUP2 #0001 ADD2 LDA ,parse-hex-string/try-two JNZ
116
+	LDA ,parse-hex-digit JSR DUP #04 SFT ,parse-hex-string/fail1 JNZ
117 117
 	#01 JMP2r
118 118
 
119 119
 @parse-hex-string ( string-ptr* -- value* 02 if four hex digits
120 120
                                 OR value 01 if two hex digits
121 121
                                 OR 00 otherwise )
122
-	DUP2 #0004 ADD2 GET #00 EQU ,&try-four JNZ
122
+	DUP2 #0004 ADD2 LDA #00 EQU ,&try-four JNZ
123 123
 	&try-two
124
-	DUP2 #0002 ADD2 GET ,&fail2 JNZ
124
+	DUP2 #0002 ADD2 LDA ,&fail2 JNZ
125 125
 	&known-two
126
-	DUP2 GET ,parse-hex-digit JSR DUP #04 SFT ,&fail3 JNZ ROT ROT
127
-	#0001 ADD2 GET ,parse-hex-digit JSR DUP #04 SFT ,&fail2 JNZ
126
+	DUP2 LDA ,parse-hex-digit JSR DUP #04 SFT ,&fail3 JNZ ROT ROT
127
+	#0001 ADD2 LDA ,parse-hex-digit JSR DUP #04 SFT ,&fail2 JNZ
128 128
 	SWP #40 SFT ORA #01 JMP2r
129 129
 
130 130
 	&fail3 POP
... ...
@@ -174,11 +174,11 @@
174 174
 	.tree/max-key-len POK .tree/search-key POK2
175 175
 
176 176
 	&loop
177
-	DUP2 GET2 #0000 NEQ2 ,&valid-node JNZ
177
+	DUP2 LDA2 #0000 NEQ2 ,&valid-node JNZ
178 178
 	#01 JMP2r
179 179
 
180 180
 	&valid-node
181
-	GET2 DUP2 STH2 #0004 ADD2 ,strcmp-tree JSR
181
+	LDA2 DUP2 STH2 #0004 ADD2 ,strcmp-tree JSR
182 182
 	DUP ,&nomatch JNZ
183 183
 	POP2r JMP2r
184 184
 
... ...
@@ -200,7 +200,7 @@
200 200
 	JMP2r
201 201
 
202 202
 	&keep-going
203
-	#01 OVR2 GET DUP2r GETr STHr
203
+	#01 OVR2 LDA DUP2r LDAr STHr
204 204
 	DUP2 ORA ,&not-end JNZ
205 205
 
206 206
 	( end of C strings, match found )
... ...
@@ -229,7 +229,7 @@
229 229
 	DUP #01 SFT ORA
230 230
 	DUP #02 SFT ORA
231 231
 	DUP #04 SFT ORA
232
-	#1d MUL #05 SFT #00 SWP ;&lookup ADD2 GET
232
+	#1d MUL #05 SFT #00 SWP ;&lookup ADD2 LDA
233 233
 	JMP2r
234 234
 
235 235
 	&lookup
... ...
@@ -245,7 +245,7 @@
245 245
 
246 246
 	&keep-going
247 247
 	#0001 SUB2
248
-	SWP2 DUP2 GET DUP2r STH2r PUT
248
+	SWP2 DUP2 LDA DUP2r STH2r STA
249 249
 	#0001 ADD2 SWP2
250 250
 	LIT2r [ 0001 ] ADD2r
251 251
 	,&loop JMP
... ...
@@ -257,7 +257,7 @@
257 257
 	DUP2 #0001 SUB2
258 258
 	&loop
259 259
 	#0001 ADD2
260
-	DUP2 GET ,&loop JNZ
260
+	DUP2 LDA ,&loop JNZ
261 261
 	SWP2 SUB2
262 262
 	JMP2r
263 263
 
... ...
@@ -267,7 +267,7 @@
267 267
 	JMP2r
268 268
 
269 269
 @append-tree ( string-ptr* incoming-ptr* -- binary-data* )
270
-	.assembler/heap PEK2 SWP2 PUT2
270
+	.assembler/heap PEK2 SWP2 STA2
271 271
 	;&zero-pointers .assembler/heap PEK2 #0004 ,memcpy JSR .assembler/heap POK2
272 272
 	,append-heap JSR
273 273
 	JMP2r
... ...
@@ -280,10 +280,10 @@
280 280
 
281 281
 	( label already exists, check the flags and addr value )
282 282
 	SWP2 POP2
283
-	DUP2 #0001 ADD2 GET2 .assembler/addr PEK2 EQU2 ,&addr-okay JNZ
283
+	DUP2 #0001 ADD2 LDA2 .assembler/addr PEK2 EQU2 ,&addr-okay JNZ
284 284
 	( FIXME address is different to previous run, or label defined twice )
285 285
 	&addr-okay
286
-	GET EQU ,&type-okay JNZ
286
+	LDA EQU ,&type-okay JNZ
287 287
 	( FIXME node type is different to before )
288 288
 	&type-okay
289 289
 	JMP2r
... ...
@@ -296,8 +296,8 @@
296 296
 	~assembler.heap ,strcpy JSR2
297 297
 	)
298 298
 	
299
-	DUP2 STH2 PUT STH2r
300
-	DUP2 #0001 ADD2 .assembler/addr PEK2 SWP2 PUT2
299
+	DUP2 STH2 STA STH2r
300
+	DUP2 #0001 ADD2 .assembler/addr PEK2 SWP2 STA2
301 301
 	#0003 ADD2 .assembler/heap POK2
302 302
 	JMP2r
303 303
 
... ...
@@ -305,7 +305,7 @@
305 305
                             OR false-address* 00 if not found )
306 306
 	DUP2
307 307
 	&loop
308
-	DUP2 #0001 ADD2 SWP2 GET
308
+	DUP2 #0001 ADD2 SWP2 LDA
309 309
 	DUP #2e EQU ,&dotted JNZ
310 310
 	,&loop JNZ
311 311
 	DUP2 EOR2 ( faster than POP2 #0000 )
... ...
@@ -317,12 +317,12 @@
317 317
 
318 318
 	SWP2 POP2
319 319
 	.assembler/field PEK2 #0000 EQU2 ,&end JNZ
320
-	DUP2 GET #80 LTH ,&not-found JNZ
320
+	DUP2 LDA #80 LTH ,&not-found JNZ
321 321
 	#0003 ADD2 .assembler/field PEK2 #ff ;traverse-tree JSR2
322 322
 	,&not-found JNZ
323 323
 
324 324
 	&end
325
-	DUP2 #0001 ADD2 GET2 SWP2 GET
325
+	DUP2 #0001 ADD2 LDA2 SWP2 LDA
326 326
 	JMP2r
327 327
 
328 328
 	&not-found
... ...
@@ -336,7 +336,7 @@
336 336
 
337 337
 	&dotted
338 338
 	DUP OVR2 .assembler/field POK2
339
-	EOR ROT ROT #0001 SUB2 PUT
339
+	EOR ROT ROT #0001 SUB2 STA
340 340
 	,&main JMP
341 341
 
342 342
 @write-byte ( byte -- )
... ...
@@ -554,7 +554,7 @@
554 554
 
555 555
 	.assembler/token PEK2
556 556
 	&loop
557
-	DUP2 GET
557
+	DUP2 LDA
558 558
 	DUP ,&keep-going JNZ
559 559
 	POP POP2 JMP2r
560 560
 
... ...
@@ -671,7 +671,7 @@
671 671
 
672 672
 @normal-;   [ 0000 ]    [ 0000 ]    [ 3b ]
673 673
 	#80 .assembler/token PEK2 ;label-tree ;add-label JSR2
674
-	.assembler/heap PEK2 #0000 OVR2 PUT2
674
+	.assembler/heap PEK2 #0000 OVR2 STA2
675 675
 	DUP2 #0003 SUB2 .assembler/var_size POK2
676 676
 	DUP2 .assembler/subtree POK2
677 677
 	#0002 ADD2 .assembler/heap POK2
... ...
@@ -705,9 +705,9 @@
705 705
 	&valid
706 706
 	&no-var-size
707 707
 	DUP #02 GTH ,&end JNZ
708
-	DUP .assembler/field_size PEK2 PUT
708
+	DUP .assembler/field_size PEK2 STA
709 709
 	.assembler/var_size PEK2 #0000 EQU2 ,&end JNZ
710
-	DUP #80 EOR .assembler/var_size PEK2 PUT
710
+	DUP #80 EOR .assembler/var_size PEK2 STA
711 711
 	,&end JMP
712 712
 
713 713
 	&loop
... ...
@@ -747,7 +747,7 @@
747 747
 	JMP2r
748 748
 
749 749
 @macro-}   [ 0000 ]    [ 0000 ]    [ 7d ]
750
-	.assembler/heap PEK2 DUP2 #00 ROT ROT PUT
750
+	.assembler/heap PEK2 DUP2 #00 ROT ROT STA
751 751
 	#0001 ADD2 .assembler/heap POK2
752 752
 	.assembler/state PEK #fc AND .assembler/state POK
753 753
 	JMP2r
... ...
@@ -785,7 +785,7 @@
785 785
 	;opcodes/asm SUB2 #0007 DIV2
786 786
 	SWP2 #0003 ADD2
787 787
 	&flags
788
-	DUP2 GET
788
+	DUP2 LDA
789 789
 	DUP #00 EQU ,&end-flags JNZ
790 790
 	DUP #32 NEQ ,&not-two JNZ
791 791
 	POP SWP2 SHORT_FLAG ORA SWP2 #0001 ADD2 ,&flags JMP
... ...
@@ -149,7 +149,7 @@ BRK
149 149
 
150 150
 	( insert )
151 151
 	.selection/to PEK2 .selection/from PEK2 SUB2 ;shift-right JSR2
152
-	.Controller/key DEI .selection/from PEK2 PUT
152
+	.Controller/key DEI .selection/from PEK2 STA
153 153
 	.selection/from PEK2 ++ .selection/from POK2
154 154
 	.selection/from PEK2 ++ .selection/to POK2
155 155
 	;redraw JSR2
... ...
@@ -234,10 +234,10 @@ BRK
234 234
 
235 235
 	.File/name DEO2 #8000 .File/length DEO2 ;document/body .File/load DEO2
236 236
 	( get file length )
237
-	;document/body ;document/eof PUT2
237
+	;document/body ;document/eof STA2
238 238
 	&loop
239
-		( incr ) ;document/eof GET2 ++ ;document/eof PUT2
240
-	;document/eof GET2 GET #00 NEQ ,&loop JNZ
239
+		( incr ) ;document/eof LDA2 ++ ;document/eof STA2
240
+	;document/eof LDA2 LDA #00 NEQ ,&loop JNZ
241 241
 
242 242
 RTN
243 243
 
... ...
@@ -262,22 +262,22 @@ RTN
262 262
 	.i POK2
263 263
 	.selection/from PEK2 -- .j POK2 ( start -> end )
264 264
 	&loop
265
-		( move ) .j PEK2 .i PEK2 ADD2 GET .j PEK2 PUT
265
+		( move ) .j PEK2 .i PEK2 ADD2 LDA .j PEK2 STA
266 266
 		( incr ) .j PEK2 ++ .j POK2
267
-		.j PEK2 ;document/eof GET2 LTH2 ,&loop JNZ
268
-	;document/eof GET2 .i PEK2 SUB2 ;document/eof PUT2
267
+		.j PEK2 ;document/eof LDA2 LTH2 ,&loop JNZ
268
+	;document/eof LDA2 .i PEK2 SUB2 ;document/eof STA2
269 269
 
270 270
 RTN
271 271
 
272 272
 @shift-right ( length -- )
273 273
 
274 274
 	.i POK2
275
-	;document/eof GET2 .j POK2 ( end -> start )
275
+	;document/eof LDA2 .j POK2 ( end -> start )
276 276
 	&loop
277
-		( move ) .j PEK2 .i PEK2 SUB2 GET .j PEK2 PUT
277
+		( move ) .j PEK2 .i PEK2 SUB2 LDA .j PEK2 STA
278 278
 		( decr ) .j PEK2 -- .j POK2
279 279
 		.j PEK2 .selection/from PEK2 GTH2 ,&loop JNZ
280
-	;document/eof GET2 .i PEK2 ADD2 ;document/eof PUT2
280
+	;document/eof LDA2 .i PEK2 ADD2 ;document/eof STA2
281 281
 
282 282
 RTN
283 283
 
... ...
@@ -302,10 +302,10 @@ RTN
302 302
 @goto-linestart ( -- )
303 303
 
304 304
 	&loop
305
-		.selection/from PEK2 -- GET #0a EQU RTN?
306
-		.selection/from PEK2 -- GET #0d EQU RTN?
305
+		.selection/from PEK2 -- LDA #0a EQU RTN?
306
+		.selection/from PEK2 -- LDA #0d EQU RTN?
307 307
 		( decr ) .selection/from PEK2 DUP2 .selection/to POK2 -- .selection/from POK2
308
-	.selection/from PEK2 GET #00 NEQ ,&loop JNZ
308
+	.selection/from PEK2 LDA #00 NEQ ,&loop JNZ
309 309
 	( clamp at document body )
310 310
 	.selection/from PEK2 ;document/body GTH2 RTN?
311 311
 	;document/body DUP2 .selection/from POK2 ++ .selection/to POK2
... ...
@@ -315,10 +315,10 @@ RTN
315 315
 @goto-lineend ( -- )
316 316
 	
317 317
 	&loop
318
-		.selection/from PEK2 GET #0a EQU RTN?
319
-		.selection/from PEK2 GET #0d EQU RTN?
318
+		.selection/from PEK2 LDA #0a EQU RTN?
319
+		.selection/from PEK2 LDA #0d EQU RTN?
320 320
 		( incr ) .selection/from PEK2 ++ DUP2 ++ .selection/to POK2 .selection/from POK2
321
-		.selection/from PEK2 GET #00 NEQ ,&loop JNZ
321
+		.selection/from PEK2 LDA #00 NEQ ,&loop JNZ
322 322
 	( clamp at document body )
323 323
 	.selection/from PEK2 ;document/eof LTH2 RTN?
324 324
 	;document/eof -- DUP2 .selection/from POK2 ++ .selection/to POK2
... ...
@@ -330,9 +330,9 @@ RTN
330 330
 	.selection/to PEK2 .j POK2
331 331
 	&loop
332 332
 		( decr ) .j PEK2 -- .j POK2
333
-		.j PEK2 GET #20 EQU ,&end JNZ
334
-		.j PEK2 GET #0a EQU ,&end JNZ
335
-		.j PEK2 GET #0d EQU ,&end JNZ
333
+		.j PEK2 LDA #20 EQU ,&end JNZ
334
+		.j PEK2 LDA #0a EQU ,&end JNZ
335
+		.j PEK2 LDA #0d EQU ,&end JNZ
336 336
 		.j PEK2 ;document/body GTH2 ,&loop JNZ
337 337
 	&end
338 338
 	( return ) .j PEK2 --
... ...
@@ -344,9 +344,9 @@ RTN
344 344
 	.selection/to PEK2 .j POK2
345 345
 	&loop
346 346
 		( incr ) .j PEK2 ++ .j POK2
347
-		.j PEK2 GET #20 EQU ,&end JNZ
348
-		.j PEK2 GET #0a EQU ,&end JNZ
349
-		.j PEK2 GET #0d EQU ,&end JNZ
347
+		.j PEK2 LDA #20 EQU ,&end JNZ
348
+		.j PEK2 LDA #0a EQU ,&end JNZ
349
+		.j PEK2 LDA #0d EQU ,&end JNZ
350 350
 		.j PEK2 ;document/body GTH2 ,&loop JNZ
351 351
 	&end
352 352
 	( return ) .j PEK2 ++
... ...
@@ -358,8 +358,8 @@ RTN
358 358
 	#0000 .j POK2
359 359
 	&loop
360 360
 		( incr ) .j PEK2 ++ .j POK2
361
-		.selection/from PEK2 .j PEK2 SUB2 GET #0a EQU ,&end JNZ
362
-		.selection/from PEK2 .j PEK2 SUB2 GET #0d EQU ,&end JNZ
361
+		.selection/from PEK2 .j PEK2 SUB2 LDA #0a EQU ,&end JNZ
362
+		.selection/from PEK2 .j PEK2 SUB2 LDA #0d EQU ,&end JNZ
363 363
 		.selection/from PEK2 .j PEK2 SUB2 ;document/body GTH2 ,&loop JNZ
364 364
 	&end
365 365
 	( return ) .j PEK2
... ...
@@ -371,11 +371,11 @@ RTN
371 371
 	;document/body .j POK2 #0000 .pt/y POK2
372 372
 	&loop
373 373
 		.pt/y PEK2 .position/y PEK2 -- GTH2 ,&end JNZ
374
-		.j PEK2 GET #0a NEQ .j PEK2 GET #0d NEQ #0101 EQU2 ,&no-space JNZ
374
+		.j PEK2 LDA #0a NEQ .j PEK2 LDA #0d NEQ #0101 EQU2 ,&no-space JNZ
375 375
 			( incr ) .pt/y PEK2 ++ .pt/y POK2
376 376
 		&no-space
377 377
 		( incr ) .j PEK2 ++ .j POK2
378
-	.j PEK2 GET #00 NEQ ,&loop JNZ
378
+	.j PEK2 LDA #00 NEQ ,&loop JNZ
379 379
 	&end
380 380
 	( return ) .j PEK2
381 381
 
... ...
@@ -386,8 +386,8 @@ RTN
386 386
 	;find-line JSR2 ( find line )
387 387
 	#0000 .pt/x POK2
388 388
 	&loop
389
-		.j PEK2 .pt/x PEK2 ADD2 GET #0a EQU ,&end JNZ
390
-		.j PEK2 .pt/x PEK2 ADD2 GET #0d EQU ,&end JNZ
389
+		.j PEK2 .pt/x PEK2 ADD2 LDA #0a EQU ,&end JNZ
390
+		.j PEK2 .pt/x PEK2 ADD2 LDA #0d EQU ,&end JNZ
391 391
 		( incr ) .pt/x PEK2 ++ .pt/x POK2
392 392
 		.pt/x PEK2 .position/x PEK2 -- LTH2 ,&loop JNZ
393 393
 	&end
... ...
@@ -407,9 +407,9 @@ RTN
407 407
 	
408 408
 	#0000 .i POK2 ( start )
409 409
 	.selection/to PEK2 .selection/from PEK2 SUB2 .j POK2 ( end )
410
-	.j PEK2 ;clip/len PUT2
410
+	.j PEK2 ;clip/len STA2
411 411
 	&loop
412
-		.selection/from PEK2 .i PEK2 ADD2 GET ;clip/body .i PEK2 ADD2 PUT
412
+		.selection/from PEK2 .i PEK2 ADD2 LDA ;clip/body .i PEK2 ADD2 STA
413 413
 		( incr ) .i PEK2 ++ .i POK2
414 414
 		.i PEK2 .j PEK2 LTH2 ,&loop JNZ
415 415
 
... ...
@@ -417,11 +417,11 @@ RTN
417 417
 
418 418
 @paste ( -- )
419 419
 	
420
-	;clip/len GET2 ;shift-right JSR2
420
+	;clip/len LDA2 ;shift-right JSR2
421 421
 	#0000 .i POK2 ( start )
422
-	;clip/len GET2 .j POK2 ( end )
422
+	;clip/len LDA2 .j POK2 ( end )
423 423
 	&loop
424
-		;clip/body .i PEK2 ADD2 GET .selection/from PEK2 .i PEK2 ADD2 PUT
424
+		;clip/body .i PEK2 ADD2 LDA .selection/from PEK2 .i PEK2 ADD2 STA
425 425
 		( incr ) .i PEK2 ++ .i POK2
426 426
 		.i PEK2 .j PEK2 LTH2 ,&loop JNZ
427 427
 
... ...
@@ -431,7 +431,7 @@ RTN
431 431
 	
432 432
 	;document/body .selection/from POK2 #0000 .pt/x POK2 #0000 .pt/y POK2
433 433
 	&loop
434
-		.selection/from PEK2 GET #0a NEQ .selection/from PEK2 GET #0d NEQ #0101 EQU2 ,&no-space JNZ
434
+		.selection/from PEK2 LDA #0a NEQ .selection/from PEK2 LDA #0d NEQ #0101 EQU2 ,&no-space JNZ
435 435
 			( incr ) .pt/y PEK2 ++ .pt/y POK2
436 436
 			#0000 .pt/x POK2
437 437
 		&no-space
... ...
@@ -441,7 +441,7 @@ RTN
441 441
 		&no-reached
442 442
 		( incr ) .pt/x PEK2 ++ .pt/x POK2
443 443
 		( incr ) .selection/from PEK2 ++ .selection/from POK2
444
-	.selection/from PEK2 GET #00 NEQ ,&loop JNZ
444
+	.selection/from PEK2 LDA #00 NEQ ,&loop JNZ
445 445
 
446 446
 RTN
447 447
 
... ...
@@ -477,16 +477,16 @@ RTN
477 477
 @draw-short ( short )
478 478
 
479 479
 	.addr POK2
480
-	;font_hex #00 ;addr GET #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
480
+	;font_hex #00 ;addr LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
481 481
 	( draw ) #2e .Screen/color DEO
482 482
 	.Screen/x DEI2 8+ .Screen/x DEO2
483
-	;font_hex #00 ;addr GET #0f AND #08 MUL ADD2 .Screen/addr DEO2
483
+	;font_hex #00 ;addr LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2
484 484
 	( draw ) #2e .Screen/color DEO
485 485
 	.Screen/x DEI2 8+ .Screen/x DEO2
486
-	;font_hex #00 ;addr ++ GET #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
486
+	;font_hex #00 ;addr ++ LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
487 487
 	( draw ) #2e .Screen/color DEO
488 488
 	.Screen/x DEI2 8+ .Screen/x DEO2
489
-	;font_hex #00 ;addr ++ GET #0f AND #08 MUL ADD2 .Screen/addr DEO2
489
+	;font_hex #00 ;addr ++ LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2
490 490
 	( draw ) #2e .Screen/color DEO
491 491
 
492 492
 RTN
... ...
@@ -519,10 +519,10 @@ RTN
519 519
 	#0000 .j POK2 ( j is linebreaks )
520 520
 	&find-offset
521 521
 		.scroll/y PEK2 .j PEK2 EQU2 ,&find-offset-end JNZ
522
-		.textarea/addr PEK2 GET #0a NEQ .textarea/addr PEK2 GET #0d NEQ #0101 EQU2 ,&no-break JNZ
522
+		.textarea/addr PEK2 LDA #0a NEQ .textarea/addr PEK2 LDA #0d NEQ #0101 EQU2 ,&no-break JNZ
523 523
 			( incr ) .j PEK2 ++ .j POK2 &no-break
524 524
 		( incr ) .textarea/addr PEK2 ++ .textarea/addr POK2
525
-	.textarea/addr PEK2 GET #00 NEQ ,&find-offset JNZ
525
+	.textarea/addr PEK2 LDA #00 NEQ ,&find-offset JNZ
526 526
 	&find-offset-end
527 527
 
528 528
 	#0018 .Screen/x DEO2 #0000 .Screen/y DEO2
... ...
@@ -533,7 +533,7 @@ RTN
533 533
 		.Screen/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ;&end JNZ2
534 534
 
535 535
 
536
-		.i PEK2 GET #0a NEQ .i PEK2 GET #0d NEQ #0101 EQU2 ;&no-linebreak JNZ2
536
+		.i PEK2 LDA #0a NEQ .i PEK2 LDA #0d NEQ #0101 EQU2 ;&no-linebreak JNZ2
537 537
 			( draw linebreak )
538 538
 			;linebreak_icn .Screen/addr DEO2
539 539
 			( draw ) #02
... ...
@@ -563,9 +563,9 @@ RTN
563 563
 
564 564
 
565 565
 		( get character )
566
-		;font #00 .i PEK2 GET #20 SUB 8* ADD2 .Screen/addr DEO2
566
+		;font #00 .i PEK2 LDA #20 SUB 8* ADD2 .Screen/addr DEO2
567 567
 		( is a special character )
568
-		.i PEK2 GET #20 GTH ,&no-tab JNZ ;font .Screen/addr DEO2 &no-tab
568
+		.i PEK2 LDA #20 GTH ,&no-tab JNZ ;font .Screen/addr DEO2 &no-tab
569 569
 
570 570
 		( draw ) #21
571 571
 		.i PEK2 .selection/from PEK2 -- GTH2
... ...
@@ -575,7 +575,7 @@ RTN
575 575
 		( incr ) .i PEK2 ++ .i POK2
576 576
 		( incr ) .Screen/x DEI2 #0007 ADD2 .Screen/x DEO2
577 577
 
578
-	.i PEK2 GET #00 NEQ ;&loop JNZ2
578
+	.i PEK2 LDA #00 NEQ ;&loop JNZ2
579 579
 
580 580
 	&end
581 581
 
... ...
@@ -616,10 +616,10 @@ RTN
616 616
 	( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2
617 617
 	.label/addr PEK2
618 618
 	&loop
619
-		( draw ) DUP2 GET #00 SWP #20 SUB 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
619
+		( draw ) DUP2 LDA #00 SWP #20 SUB 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO
620 620
 		( incr ) ++
621 621
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
622
-		DUP2 GET #00 NEQ ,&loop JNZ
622
+		DUP2 LDA #00 NEQ ,&loop JNZ
623 623
 	POP2
624 624
 	( selection )
625 625
 	.selection/from PEK2 ;document/body SUB2 ;draw-short JSR2
... ...
@@ -31,10 +31,10 @@
31 31
 } ( x y w h -- x1 y1 x2 y2 )
32 32
 
33 33
 %SET-RECT {
34
-	DUP2 ROT2 SWP2 #0006 ADD2 PUT2
35
-	DUP2 ROT2 SWP2 #0004 ADD2 PUT2
36
-	DUP2 ROT2 SWP2 #0002 ADD2 PUT2
37
-	DUP2 ROT2 SWP2 PUT2
34
+	DUP2 ROT2 SWP2 #0006 ADD2 STA2
35
+	DUP2 ROT2 SWP2 #0004 ADD2 STA2
36
+	DUP2 ROT2 SWP2 #0002 ADD2 STA2
37
+	DUP2 ROT2 SWP2 STA2
38 38
 	POP2
39 39
 } ( x1 y1 x2 y2 addr -- )
40 40
 
... ...
@@ -208,12 +208,12 @@ BRK
208 208
 	.bankview/mode PEK #01 NEQ ,&not-copy-mode JNZ
209 209
 		#00 .i POK
210 210
 		&copy-loop
211
-			( load ) .settings/tile PEK2 .i PEK ADD GET
211
+			( load ) .settings/tile PEK2 .i PEK ADD LDA
212 212
 			( get touch addr )
213 213
 			.Mouse/x DEI2 .bankview/x PEK2 SUB2 STEP8
214 214
 			.Mouse/y DEI2 .bankview/y PEK2 SUB2 STEP8 #0010 MUL2 ADD2
215 215
 			( 2-bit mode ) #00 .settings/depth PEK #01 ADD MUL2
216
-			.settings/page PEK2 ADD2 #00 .i PEK ADD2 PUT
216
+			.settings/page PEK2 ADD2 #00 .i PEK ADD2 STA
217 217
 			( incr ) .i PEK #01 ADD .i POK
218 218
 			.i PEK #08 LTH ,&copy-loop JNZ
219 219
 		;redraw JSR2 BRK
... ...
@@ -227,7 +227,7 @@ BRK
227 227
 			.Mouse/x DEI2 .bankview/x PEK2 SUB2 STEP8
228 228
 			.Mouse/y DEI2 .bankview/y PEK2 SUB2 STEP8 #0010 MUL2 ADD2
229 229
 			( 2-bit mode ) #00 .settings/depth PEK #01 ADD MUL2
230
-			.settings/page PEK2 ADD2 #00 .i PEK ADD2 PUT
230
+			.settings/page PEK2 ADD2 #00 .i PEK ADD2 STA
231 231
 			( incr ) .i PEK #01 ADD .i POK
232 232
 			.i PEK #08 LTH ,&erase-loop JNZ
233 233
 		;redraw JSR2 BRK
... ...
@@ -251,16 +251,16 @@ BRK
251 251
 	.Mouse/x DEI2 .tileview/x PEK2 SUB2 .Mouse/x DEI2 .tileview/x PEK2 SUB2 #0040 DIV2 #0040 MUL2 SUB2 .pos/x POK2
252 252
 	.Mouse/y DEI2 .tileview/y PEK2 SUB2 .Mouse/y DEI2 .tileview/y PEK2 SUB2 #0040 DIV2 #0040 MUL2 SUB2 .pos/y POK2
253 253
 	.Mouse/state DEI #10 NEQ ,&no-erase-mode JNZ
254
-		( load ) .addr PEK2 .pos/y PEK2 8/ ADD2 GET
254
+		( load ) .addr PEK2 .pos/y PEK2 8/ ADD2 LDA
255 255
 		( mask ) #01 #07 .pos/x PEK2 8/ SWP POP SUB SFL
256 256
 		#ff EOR AND
257
-		( save ) .addr PEK2 .pos/y PEK2 8/ ADD2 PUT
257
+		( save ) .addr PEK2 .pos/y PEK2 8/ ADD2 STA
258 258
 		;redraw JSR2 BRK
259 259
 	&no-erase-mode
260
-	( load ) .addr PEK2 .pos/y PEK2 8/ ADD2 GET
260
+	( load ) .addr PEK2 .pos/y PEK2 8/ ADD2 LDA
261 261
 	( mask ) #01 #07 .pos/x PEK2 8/ SWP POP SUB SFL
262 262
 	ORA
263
-	( save ) .addr PEK2 .pos/y PEK2 8/ ADD2 PUT
263
+	( save ) .addr PEK2 .pos/y PEK2 8/ ADD2 STA
264 264
 	;redraw JSR2
265 265
 
266 266
 BRK
... ...
@@ -358,29 +358,29 @@ RTN
358 358
 
359 359
 @op_shiftup
360 360
 	
361
-	.settings/tile PEK2 GET
362
-	.settings/tile PEK2 #0001 ADD2 GET .settings/tile PEK2 PUT
363
-	.settings/tile PEK2 #0002 ADD2 GET .settings/tile PEK2 #0001 ADD2 PUT
364
-	.settings/tile PEK2 #0003 ADD2 GET .settings/tile PEK2 #0002 ADD2 PUT
365
-	.settings/tile PEK2 #0004 ADD2 GET .settings/tile PEK2 #0003 ADD2 PUT
366
-	.settings/tile PEK2 #0005 ADD2 GET .settings/tile PEK2 #0004 ADD2 PUT
367
-	.settings/tile PEK2 #0006 ADD2 GET .settings/tile PEK2 #0005 ADD2 PUT
368
-	.settings/tile PEK2 #0007 ADD2 GET .settings/tile PEK2 #0006 ADD2 PUT
369
-	.settings/tile PEK2 #0007 ADD2 PUT
361
+	.settings/tile PEK2 LDA
362
+	.settings/tile PEK2 #0001 ADD2 LDA .settings/tile PEK2 STA
363
+	.settings/tile PEK2 #0002 ADD2 LDA .settings/tile PEK2 #0001 ADD2 STA
364
+	.settings/tile PEK2 #0003 ADD2 LDA .settings/tile PEK2 #0002 ADD2 STA
365
+	.settings/tile PEK2 #0004 ADD2 LDA .settings/tile PEK2 #0003 ADD2 STA
366
+	.settings/tile PEK2 #0005 ADD2 LDA .settings/tile PEK2 #0004 ADD2 STA
367
+	.settings/tile PEK2 #0006 ADD2 LDA .settings/tile PEK2 #0005 ADD2 STA
368
+	.settings/tile PEK2 #0007 ADD2 LDA .settings/tile PEK2 #0006 ADD2 STA
369
+	.settings/tile PEK2 #0007 ADD2 STA
370 370
 
371 371
 RTN
372 372
 
373 373
 @op_shiftdown
374 374
 	
375
-	.settings/tile PEK2 #0007 ADD2 GET
376
-	.settings/tile PEK2 #0006 ADD2 GET .settings/tile PEK2 #0007 ADD2 PUT
377
-	.settings/tile PEK2 #0005 ADD2 GET .settings/tile PEK2 #0006 ADD2 PUT
378
-	.settings/tile PEK2 #0004 ADD2 GET .settings/tile PEK2 #0005 ADD2 PUT
379
-	.settings/tile PEK2 #0003 ADD2 GET .settings/tile PEK2 #0004 ADD2 PUT
380
-	.settings/tile PEK2 #0002 ADD2 GET .settings/tile PEK2 #0003 ADD2 PUT
381
-	.settings/tile PEK2 #0001 ADD2 GET .settings/tile PEK2 #0002 ADD2 PUT
382
-	.settings/tile PEK2 GET .settings/tile PEK2 #0001 ADD2 PUT
383
-	.settings/tile PEK2 PUT
375
+	.settings/tile PEK2 #0007 ADD2 LDA
376
+	.settings/tile PEK2 #0006 ADD2 LDA .settings/tile PEK2 #0007 ADD2 STA
377
+	.settings/tile PEK2 #0005 ADD2 LDA .settings/tile PEK2 #0006 ADD2 STA
378
+	.settings/tile PEK2 #0004 ADD2 LDA .settings/tile PEK2 #0005 ADD2 STA
379
+	.settings/tile PEK2 #0003 ADD2 LDA .settings/tile PEK2 #0004 ADD2 STA
380
+	.settings/tile PEK2 #0002 ADD2 LDA .settings/tile PEK2 #0003 ADD2 STA
381
+	.settings/tile PEK2 #0001 ADD2 LDA .settings/tile PEK2 #0002 ADD2 STA
382
+	.settings/tile PEK2 LDA .settings/tile PEK2 #0001 ADD2 STA
383
+	.settings/tile PEK2 STA
384 384
 
385 385
 RTN
386 386
 
... ...
@@ -529,7 +529,7 @@ RTN
529 529
 		&hor
530 530
 			( get bit )
531 531
 			;blank_icn #00
532
-			.settings/tile PEK2 #00 .pt/y PEK ADD2 GET #07 .pt/x PEK SUB SFT #01 AND ( get bit )
532
+			.settings/tile PEK2 #00 .pt/y PEK ADD2 LDA #07 .pt/x PEK SUB SFT #01 AND ( get bit )
533 533
 			8* ADD2 .Screen/addr DEO2 ( add *8 )
534 534
 			( draw ) #21 .Screen/color DEO
535 535
 			( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
... ...
@@ -575,7 +575,7 @@ RTN
575 575
 	#00 .i POK
576 576
 	&bytes
577 577
 		.tileview/x PEK2 #0088 ADD2 .Screen/x DEO2
578
-		.settings/tile PEK2 #00 .i PEK ADD2 GET #22 ;draw-byte JSR2
578
+		.settings/tile PEK2 #00 .i PEK ADD2 LDA #22 ;draw-byte JSR2
579 579
 		( incr ) .i PEK #01 ADD .i POK
580 580
 		( incr ) .Screen/y DEI2 8+ .Screen/y DEO2
581 581
 	.i PEK #08 LTH ;&bytes JNZ2
... ...
@@ -684,16 +684,16 @@ RTN
684 684
 @draw-short ( short -- )
685 685
 
686 686
 	.addr POK2
687
-	;font_hex #00 ;addr GET #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
687
+	;font_hex #00 ;addr LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
688 688
 	( draw ) #22 .Screen/color DEO
689 689
 	.Screen/x DEI2 8+ .Screen/x DEO2
690
-	;font_hex #00 ;addr GET #0f AND #08 MUL ADD2 .Screen/addr DEO2
690
+	;font_hex #00 ;addr LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2
691 691
 	( draw ) #22 .Screen/color DEO
692 692
 	.Screen/x DEI2 8+ .Screen/x DEO2
693
-	;font_hex #00 ;addr ++ GET #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
693
+	;font_hex #00 ;addr ++ LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
694 694
 	( draw ) #22 .Screen/color DEO
695 695
 	.Screen/x DEI2 8+ .Screen/x DEO2
696
-	;font_hex #00 ;addr ++ GET #0f AND #08 MUL ADD2 .Screen/addr DEO2
696
+	;font_hex #00 ;addr ++ LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2
697 697
 	( draw ) #22 .Screen/color DEO
698 698
 
699 699
 RTN
... ...
@@ -127,9 +127,9 @@
127 127
 	DUP2 ;&h JSR2
128 128
 	;&next JSR2 #0001 .Screen/x DEO2 .neralie/y PEK2 #0003 SUB2 .Screen/y DEO2 ,digit JSR
129 129
 	DUP2 ;&v JSR2
130
-	#04 ;v/spacing PUT
130
+	#04 ;v/spacing STA
131 131
 	.lines/y1 PEK2 #0003 SUB2 .neralie/y PEK2 .neralie/x PEK2 ;v JSR2
132
-	#01 ;v/spacing PUT
132
+	#01 ;v/spacing STA
133 133
 	,&next JSR #0001 .Screen/y DEO2 .neralie/x PEK2 #0003 SUB2 .Screen/x DEO2 ;digit JSR2
134 134
 	DUP2 ,&h JSR
135 135
 	,&next JSR .Screen/width DEI2 #0009 SUB2 .Screen/x DEO2 .neralie/y PEK2 #0003 SUB2 .Screen/y DEO2 ;digit JSR2
... ...
@@ -226,7 +226,7 @@
226 226
 		can end up overflowing into bit 24.
227 227
 	)
228 228
 	
229
-	;mul/bhi PUT2 ;mul/ahi PUT2
229
+	;mul/bhi STA2 ;mul/ahi STA2
230 230
 	#00
231 231
 		#00
232 232
 			#00 .mul/alo PEK #00 .mul/blo PEK MUL2
... ...
@@ -301,15 +301,15 @@ BRK
301 301
 		.Controller/key DEI #08 NEQ ,&no-edit-backspace JNZ
302 302
 			.path/length PEK #00 EQU ,&edit-end JNZ
303 303
 			.path/length PEK #01 SUB .path/length POK
304
-			#00 ;path/name #00 .path/length PEK ADD2 PUT
304
+			#00 ;path/name #00 .path/length PEK ADD2 STA
305 305
 			BRK
306 306
 			&no-edit-backspace
307 307
 		( default )
308 308
 		.path/length PEK #1f EQU ,&edit-end JNZ
309
-			.Controller/key DEI ;path/name #00 .path/length PEK ADD2 PUT
309
+			.Controller/key DEI ;path/name #00 .path/length PEK ADD2 STA
310 310
 			.path/length PEK #01 ADD .path/length POK
311 311
 		&edit-end
312
-		#00 ;path/name #00 .path/length PEK ADD2 PUT
312
+		#00 ;path/name #00 .path/length PEK ADD2 STA
313 313
 		BRK
314 314
 	&no-edit
315 315
 	
... ...
@@ -375,7 +375,7 @@ RTN
375 375
 	
376 376
 	;data FILESIZE ;data ADD2
377 377
 	&loop
378
-		( write ) OVR2 #00 ROT ROT PUT
378
+		( write ) OVR2 #00 ROT ROT STA
379 379
 		( incr ) SWP2 #0001 ADD2 SWP2
380 380
 		OVR2 OVR2 LTH2 ,&loop JNZ
381 381
 	POP2 POP2
... ...
@@ -498,7 +498,7 @@ RTN
498 498
 		#00 .px/x POK
499 499
 		&hor
500 500
 			( addr ) ;size_icns #00 .brush/size PEK 8* ADD2
501
-			( byte ) #00 .px/y PEK ADD2 GET #07 .px/x PEK SUB SFT #01 AND
501
+			( byte ) #00 .px/y PEK ADD2 LDA #07 .px/x PEK SUB SFT #01 AND
502 502
 			#00 EQU ,&no-pixel JNZ
503 503
 			;patternize JSR2 #00 EQU ,&no-pixel JNZ
504 504
 				.pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 .brush/oper PEK2 JSR2 &no-pixel
... ...
@@ -557,7 +557,7 @@ RTN
557 557
 	SWP POP #07 AND .px/x POK
558 558
 	( get tile ) .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8*
559 559
 	( add addr ) ;data ADD2
560
-	#00 .px/y PEK ADD2 GET #07 .px/x PEK SUB SFT #01 AND
560
+	#00 .px/y PEK ADD2 LDA #07 .px/x PEK SUB SFT #01 AND
561 561
 
562 562
 RTN
563 563
 
... ...
@@ -565,9 +565,9 @@ RTN
565 565
 
566 566
 	.pt1/y POK2 .pt1/x POK2
567 567
 	( get tile addr ) ;data .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8* .pt1/y PEK2 MOD8 ADD2 ADD2
568
-	( load ) DUP2 GET
568
+	( load ) DUP2 LDA
569 569
 	( mask ) #01 #07 .pt1/x PEK2 MOD8 SWP POP SUB SFL ORA
570
-	( save ) ROT ROT PUT
570
+	( save ) ROT ROT STA
571 571
 
572 572
 RTN
573 573
 
... ...
@@ -575,9 +575,9 @@ RTN
575 575
 
576 576
 	.pt1/y POK2 .pt1/x POK2
577 577
 	( get tile addr ) ;data .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8* .pt1/y PEK2 MOD8 ADD2 ADD2
578
-	( load ) DUP2 GET
578
+	( load ) DUP2 LDA
579 579
 	( mask ) #01 #07 .pt1/x PEK2 MOD8 SWP POP SUB SFL #ff EOR AND
580
-	( save ) ROT ROT PUT
580
+	( save ) ROT ROT STA
581 581
 
582 582
 RTN
583 583
 
... ...
@@ -852,11 +852,11 @@ RTN
852 852
 	
853 853
 	.color POK
854 854
 	&loop
855
-		DUP2 GET #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
855
+		DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
856 856
 		( draw ) .color PEK #20 ADD .Screen/color DEO
857 857
 		( incr ) #0001 ADD2
858 858
 		( incr ) .Screen/x DEI2 8+ .Screen/x DEO2
859
-		( loop ) DUP2 GET #00 NEQ ,&loop JNZ
859
+		( loop ) DUP2 LDA #00 NEQ ,&loop JNZ
860 860
 	POP2
861 861
 
862 862
 RTN
... ...
@@ -886,11 +886,11 @@ RTN
886 886
 @strcpy ( src* dst* -- )
887 887
 
888 888
 	&loop
889
-		( copy src->dst ) OVR2 OVR2 SWP2 GET ROT ROT PUT
889
+		( copy src->dst ) OVR2 OVR2 SWP2 LDA ROT ROT STA
890 890
 		( incr dst ) ++
891 891
 		( incr src ) SWP2 ++ SWP2
892
-		OVR2 GET #00 NEQ ,&loop JNZ
893
-	#00 ROT ROT PUT POP2
892
+		OVR2 LDA #00 NEQ ,&loop JNZ
893
+	#00 ROT ROT STA POP2
894 894
 	
895 895
 RTN
896 896
 
... ...
@@ -21,20 +21,20 @@
21 21
 %DATA-LOCKS { #3000 }
22 22
 %DATA-TYPES { #4000 }
23 23
 
24
-%GET-CHAR { #24 MOD #00 SWP ;b36clc ADD2 GET } ( b36 -- char )
25
-%GET-VALUE { #20 SUB #00 SWP ;values ADD2 GET } ( char -- b36 )
26
-
27
-%GET-INDEX { #00 SWP #00 .grid/width PEK MUL2 ROT #00 SWP ADD2 } ( x y -- index )
28
-%GET-CELL { GET-INDEX DATA-CELLS ADD2 GET } ( x y -- char )
29
-%SET-CELL { ROT ROT GET-INDEX DATA-CELLS ADD2 PUT } ( x y char -- )
30
-%GET-TYPE { GET-INDEX DATA-TYPES ADD2 GET } ( x y -- type )
31
-%SET-TYPE { ROT ROT GET-INDEX DATA-TYPES ADD2 PUT } ( x y type -- )
32
-%GET-LOCK { GET-INDEX DATA-TYPES ADD2 GET } ( x y -- type )
33
-%SET-LOCK { ROT ROT GET-INDEX DATA-TYPES ADD2 PUT } ( x y type -- )
34
-%GET-PORT { } ( x y lock -- char )
24
+%LDA-CHAR { #24 MOD #00 SWP ;b36clc ADD2 LDA } ( b36 -- char )
25
+%LDA-VALUE { #20 SUB #00 SWP ;values ADD2 LDA } ( char -- b36 )
26
+
27
+%LDA-INDEX { #00 SWP #00 .grid/width PEK MUL2 ROT #00 SWP ADD2 } ( x y -- index )
28
+%LDA-CELL { LDA-INDEX DATA-CELLS ADD2 LDA } ( x y -- char )
29
+%SET-CELL { ROT ROT LDA-INDEX DATA-CELLS ADD2 STA } ( x y char -- )
30
+%LDA-TYPE { LDA-INDEX DATA-TYPES ADD2 LDA } ( x y -- type )
31
+%SET-TYPE { ROT ROT LDA-INDEX DATA-TYPES ADD2 STA } ( x y type -- )
32
+%LDA-LOCK { LDA-INDEX DATA-TYPES ADD2 LDA } ( x y -- type )
33
+%SET-LOCK { ROT ROT LDA-INDEX DATA-TYPES ADD2 STA } ( x y type -- )
34
+%LDA-PORT { } ( x y lock -- char )
35 35
 %SET-PORT { } ( x y char -- )
36 36
 
37
-%GET-CELL-VALUE { GET-CELL GET-VALUE } ( x y -- b36 )
37
+%LDA-CELL-VALUE { LDA-CELL LDA-VALUE } ( x y -- b36 )
38 38
 
39 39
 ( devices )
40 40
 
... ...
@@ -183,14 +183,14 @@ RTN
183 183
 		DUP2 #01 SET-LOCK
184 184
 	$no-lock
185 185
 	STH DUP2 #02 #02 STHr MUL ADD ,set-type JSR2
186
-	GET-CELL
186
+	LDA-CELL
187 187
 	)
188 188
 
189 189
 RTN
190 190
 
191 191
 @get-cell-sprite ( x y -- addr )
192 192
 	
193
-	DUP2 GET-CELL
193
+	DUP2 LDA-CELL
194 194
 	( if character is dot )
195 195
 	DUP #2e NEQ ,&no-bar JNZ
196 196
 		( check if x,y is grid )
... ...
@@ -209,11 +209,11 @@ RTN
209 209
 @op-a ( x y char -- )
210 210
 
211 211
 	POP
212
-	( get left ) DUP2 SWP -- SWP GET-CELL-VALUE STH
213
-	( get right ) DUP2 SWP ++ SWP GET-CELL-VALUE STH
212
+	( get left ) DUP2 SWP -- SWP LDA-CELL-VALUE STH
213
+	( get right ) DUP2 SWP ++ SWP LDA-CELL-VALUE STH
214 214
 	( incr y ) ++
215 215
 	( get result ) ADDr STHr
216
-	GET-CHAR
216
+	LDA-CHAR
217 217
 	SET-CELL
218 218
 
219 219
 RTN
... ...
@@ -221,11 +221,11 @@ RTN
221 221
 @op-b ( x y char -- )
222 222
 	
223 223
 	POP
224
-	( get left ) DUP2 SWP -- SWP GET-CELL-VALUE STH
225
-	( get right ) DUP2 SWP ++ SWP GET-CELL-VALUE STH
224
+	( get left ) DUP2 SWP -- SWP LDA-CELL-VALUE STH
225
+	( get right ) DUP2 SWP ++ SWP LDA-CELL-VALUE STH
226 226
 	( incr y ) ++
227 227
 	( get result ) SUBr STHr
228
-	GET-CHAR
228
+	LDA-CHAR
229 229
 	SET-CELL
230 230
 
231 231
 	( NOTE: Issue is not with modulo, but with converting ff to 36 )
... ...
@@ -308,7 +308,7 @@ RTN
308 308
 		#2a SET-CELL POP STHr RTN
309 309
 	&not-edge
310 310
 	( collide )
311
-	DUP2 -- GET-CELL #2e EQU ,&not-collide JNZ
311
+	DUP2 -- LDA-CELL #2e EQU ,&not-collide JNZ
312 312
 		#2a SET-CELL POP STHr RTN
313 313
 	&not-collide
314 314
 	( move )
... ...
@@ -377,7 +377,7 @@ RTN
377 377
 		#2a SET-CELL POP STHr RTN
378 378
 	&not-edge
379 379
 	( collide )
380
-	DUP2 SWP -- SWP GET-CELL #2e EQU ,&not-collide JNZ
380
+	DUP2 SWP -- SWP LDA-CELL #2e EQU ,&not-collide JNZ
381 381
 		#2a SET-CELL POP STHr RTN
382 382
 	&not-collide
383 383
 	( move )
... ...
@@ -420,7 +420,7 @@ RTN
420 420
 	&not-dot
421 421
 
422 422
 	( skip locked )
423
-	ROT ROT DUP2 GET-LOCK #00 EQU ,&not-locked JNZ
423
+	ROT ROT DUP2 LDA-LOCK #00 EQU ,&not-locked JNZ
424 424
 		POP POP2 RTN
425 425
 	&not-locked
426 426
 	ROT
... ...
@@ -469,7 +469,7 @@ RTN
469 469
 		#00 .grid/width PEK
470 470
 		&hor
471 471
 			( get x,y ) SWP2 OVR STH SWP2 OVR STHr
472
-			DUP2 GET-CELL ;run-char JSR2
472
+			DUP2 LDA-CELL ;run-char JSR2
473 473
 			( incr ) SWP ++ SWP
474 474
 			DUP2 LTH ,&hor JNZ
475 475
 		POP2
... ...
@@ -487,19 +487,19 @@ RTN
487 487
 	( Positionx )
488 488
 	#0000 .Screen/x DEO2
489 489
 	.selection/x1 PEK
490
-		DUP #04 SFT GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
490
+		DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
491 491
 	#22 .Screen/color DEO
492 492
 	#0008 .Screen/x DEO2
493
-		#0f AND GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
493
+		#0f AND LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
494 494
 	#22 .Screen/color DEO
495 495
 
496 496
 	( Positiony )
497 497
 	#0010 .Screen/x DEO2
498 498
 	.selection/y1 PEK
499
-		DUP #04 SFT GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
499
+		DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
500 500
 	#22 .Screen/color DEO
501 501
 	#0018 .Screen/x DEO2
502
-		#0f AND GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
502
+		#0f AND LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
503 503
 	#22 .Screen/color DEO
504 504
 
505 505
 	#0020 .Screen/x DEO2
... ...
@@ -509,10 +509,10 @@ RTN
509 509
 	( Frame )
510 510
 	#0030 .Screen/x DEO2
511 511
 	.timer/frame PEK
512
-		DUP #04 SFT GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
512
+		DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
513 513
 	#22 .Screen/color DEO
514 514
 	#0038 .Screen/x DEO2
515
-		#0f AND GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
515
+		#0f AND LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
516 516
 	#22 .Screen/color DEO
517 517
 
518 518
 	#0040 .Screen/x DEO2
... ...
@@ -522,10 +522,10 @@ RTN
522 522
 	( Speed )
523 523
 	#0050 .Screen/x DEO2
524 524
 	.timer/speed PEK
525
-		DUP #04 SFT GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
525
+		DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
526 526
 	#22 .Screen/color DEO
527 527
 	#0058 .Screen/x DEO2
528
-		#0f AND GET-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
528
+		#0f AND LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2
529 529
 	#22 .Screen/color DEO
530 530
 
531 531
 	( TODO: Signal VU )
532 532
deleted file mode 100644
533 533
Binary files a/projects/sounds/sin.pcm and /dev/null differ
534 534
deleted file mode 100644
... ...
@@ -1 +0,0 @@
1
-��������������������������������������������������������������������������������������������������������������������������������
2 0
\ No newline at end of file
3 1
deleted file mode 100644
4 2
Binary files a/projects/sounds/tri.pcm and /dev/null differ
... ...
@@ -42,7 +42,7 @@ Program p;
42 42
 char ops[][4] = {
43 43
 	"BRK", "LIT", "NOP", "POP", "DUP", "SWP", "OVR", "ROT",
44 44
 	"EQU", "NEQ", "GTH", "LTH", "JMP", "JNZ", "JSR", "STH",
45
-	"PEK", "POK", "GET", "PUT", "---", "---", "DEI", "DEO",
45
+	"PEK", "POK", "LDR", "STR", "LDA", "STA", "DEI", "DEO",
46 46
 	"ADD", "SUB", "MUL", "DIV", "AND", "ORA", "EOR", "SFT"
47 47
 };
48 48
 
... ...
@@ -45,14 +45,16 @@ void op_neq(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b
45 45
 void op_gth(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b > a); }
46 46
 void op_lth(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b < a); }
47 47
 void op_jmp(Uxn *u) { Uint8 a = pop8(u->src); u->ram.ptr += (Sint8)a; }
48
-void op_jnz(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); if (b) u->ram.ptr += (Sint8)a; }
48
+void op_jnz(Uxn *u) { Uint8 a = pop8(u->src); if (pop8(u->src)) u->ram.ptr += (Sint8)a; }
49 49
 void op_jsr(Uxn *u) { Uint8 a = pop8(u->src); push16(u->dst, u->ram.ptr); u->ram.ptr += (Sint8)a; }
50 50
 void op_sth(Uxn *u) { Uint8 a = pop8(u->src); push8(u->dst, a); }
51 51
 /* Memory */
52 52
 void op_pek(Uxn *u) { Uint8 a = pop8(u->src); push8(u->src, mempeek8(u->ram.dat, a)); }
53 53
 void op_pok(Uxn *u) { Uint8 a = pop8(u->src); Uint8 b = pop8(u->src); mempoke8(u->ram.dat, a, b); }
54
-void op_get(Uxn *u) { Uint16 a = pop16(u->src); push8(u->src, mempeek8(u->ram.dat, a)); }
55
-void op_put(Uxn *u) { Uint16 a = pop16(u->src); Uint8 b = pop8(u->src); mempoke8(u->ram.dat, a, b); }
54
+void op_ldr(Uxn *u) { Uint8 a = pop8(u->src); push8(u->src, mempeek8(u->ram.dat, u->ram.ptr + (Sint8)a)); }
55
+void op_str(Uxn *u) { Uint8 a = pop8(u->src); Uint8 b = pop8(u->src); mempoke8(u->ram.dat, u->ram.ptr + (Sint8)a, b); }
56
+void op_lda(Uxn *u) { Uint16 a = pop16(u->src); push8(u->src, mempeek8(u->ram.dat, a)); }
57
+void op_sta(Uxn *u) { Uint16 a = pop16(u->src); Uint8 b = pop8(u->src); mempoke8(u->ram.dat, a, b); }
56 58
 void op_dei(Uxn *u) { Uint8 a = pop8(u->src); push8(u->src, devpeek8(&u->dev[a >> 4], a)); }
57 59
 void op_deo(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); devpoke8(&u->dev[a >> 4], a, b); }
58 60
 /* Arithmetic */
... ...
@@ -77,14 +79,16 @@ void op_neq16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->sr
77 79
 void op_gth16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->src, b > a); }
78 80
 void op_lth16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->src, b < a); }
79 81
 void op_jmp16(Uxn *u) { u->ram.ptr = pop16(u->src); }
80
-void op_jnz16(Uxn *u) { Uint16 a = pop16(u->src); Uint8 b = pop8(u->src); if (b) u->ram.ptr = a; }
82
+void op_jnz16(Uxn *u) { Uint16 a = pop16(u->src); if (pop8(u->src)) u->ram.ptr = a; }
81 83
 void op_jsr16(Uxn *u) { push16(u->dst, u->ram.ptr); u->ram.ptr = pop16(u->src); }
82 84
 void op_sth16(Uxn *u) { Uint16 a = pop16(u->src); push16(u->dst, a); }
83 85
 /* Memory(16-bits) */
84 86
 void op_pek16(Uxn *u) { Uint8 a = pop8(u->src); push16(u->src, mempeek16(u->ram.dat, a)); }
85 87
 void op_pok16(Uxn *u) { Uint8 a = pop8(u->src); Uint16 b = pop16(u->src); mempoke16(u->ram.dat, a, b); }
86
-void op_get16(Uxn *u) { Uint16 a = pop16(u->src); push16(u->src, mempeek16(u->ram.dat, a)); }
87
-void op_put16(Uxn *u) { Uint16 a = pop16(u->src); Uint16 b = pop16(u->src); mempoke16(u->ram.dat, a, b); }
88
+void op_ldr16(Uxn *u) { Uint8 a = pop8(u->src); push16(u->src, mempeek16(u->ram.dat, u->ram.ptr + (Sint8)a)); }
89
+void op_str16(Uxn *u) { Uint8 a = pop8(u->src); Uint16 b = pop16(u->src); mempoke16(u->ram.dat, u->ram.ptr + (Sint8)a, b); }
90
+void op_lda16(Uxn *u) { Uint16 a = pop16(u->src); push16(u->src, mempeek16(u->ram.dat, a)); }
91
+void op_sta16(Uxn *u) { Uint16 a = pop16(u->src); Uint16 b = pop16(u->src); mempoke16(u->ram.dat, a, b); }
88 92
 void op_dei16(Uxn *u) { Uint8 a = pop8(u->src); push16(u->src, devpeek16(&u->dev[a >> 4], a)); }
89 93
 void op_deo16(Uxn *u) { Uint8 a = pop8(u->src); Uint16 b = pop16(u->src); devpoke16(&u->dev[a >> 4], a, b); }
90 94
 /* Arithmetic(16-bits) */
... ...
@@ -100,12 +104,12 @@ void op_sft16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->s
100 104
 void (*ops[])(Uxn *u) = {
101 105
 	op_brk, op_lit, op_nop, op_pop, op_dup, op_swp, op_ovr, op_rot,
102 106
 	op_equ, op_neq, op_gth, op_lth, op_jmp, op_jnz, op_jsr, op_sth, 
103
-	op_pek, op_pok, op_get, op_put, op_nop, op_nop, op_dei, op_deo,
107
+	op_pek, op_pok, op_ldr, op_str, op_lda, op_sta, op_dei, op_deo,
104 108
 	op_add, op_sub, op_mul, op_div, op_and, op_ora, op_eor, op_sft,
105 109
 	/* 16-bit */
106 110
 	op_brk,   op_lit16, op_nop,   op_pop16, op_dup16, op_swp16, op_ovr16, op_rot16,
107 111
 	op_equ16, op_neq16, op_gth16, op_lth16, op_jmp16, op_jnz16, op_jsr16, op_sth16, 
108
-	op_pek16, op_pok16, op_get16, op_put16, op_nop,   op_nop,   op_dei16, op_deo16, 
112
+	op_pek16, op_pok16, op_ldr16, op_str16, op_lda16, op_sta16, op_dei16, op_deo16, 
109 113
 	op_add16, op_sub16, op_mul16, op_div16, op_and16, op_ora16, op_eor16, op_sft16
110 114
 };
111 115