Browse code

Removed special case in JNZ

neauoire authored on 26/03/2021 16:53:17
Showing 6 changed files
... ...
@@ -28,7 +28,7 @@ else
28 28
 fi
29 29
 
30 30
 echo "Assembling.."
31
-./bin/assembler projects/software/nasu.usm bin/boot.rom
31
+./bin/assembler projects/software/noodle.usm bin/boot.rom
32 32
 
33 33
 echo "Running.."
34 34
 if [ "${2}" = '--cli' ]; 
... ...
@@ -16,8 +16,7 @@
16 16
 )  
17 17
 
18 18
 %RTN { JMP2r }
19
-%RTN? { JNZ2r }
20
-%JMP2? { JNZ2 }
19
+%RTN? { #00 EQU #02 SWP JNZ STH2r JMP2 }
21 20
 
22 21
 %++ { #0001 ADD2 } %-- { #0001 SUB2 }
23 22
 %8/ { #0003 SFT2 } %8* { #0030 SFT2 }
... ...
@@ -70,62 +69,62 @@ BRK
70 69
 
71 70
 	( ctrl )
72 71
 
73
-	,ctrl-end ~Controller #00 EQU ~lock #00 NEQ #0000 NEQ2 JMP2?
72
+	,ctrl-end ~Controller #00 EQU ~lock #00 NEQ #0000 NEQ2 JNZ2
74 73
 		( lock ) #04 =lock
75
-		,no-ctrl-up ~Controller #10 NEQ JMP2?
76
-			( clamp ) ,no-ctrl-up ~position.y #0000 EQU2 JMP2?
74
+		,no-ctrl-up ~Controller #10 NEQ JNZ2
75
+			( clamp ) ,no-ctrl-up ~position.y #0000 EQU2 JNZ2
77 76
 			,find-lineoffset JSR2 =position.x 
78 77
 			~position.y -- =position.y 
79 78
 			,find-selection JSR2 DUP2 =selection.from ++ =selection.to
80 79
 			,clamp-selection JSR2 ,follow-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
81 80
 		@no-ctrl-up
82
-		,no-ctrl-down ~Controller #20 NEQ JMP2?
81
+		,no-ctrl-down ~Controller #20 NEQ JNZ2
83 82
 			,find-lineoffset JSR2 =position.x ~position.y ++ =position.y 
84 83
 			,find-selection JSR2 DUP2 =selection.from ++ =selection.to
85 84
 			,clamp-selection JSR2 ,follow-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
86 85
 		@no-ctrl-down
87
-		,no-ctrl-left ~Controller #40 NEQ JMP2?
88
-			( clamp ) ,no-ctrl-left ~selection.from ,document.body EQU2 JMP2?
86
+		,no-ctrl-left ~Controller #40 NEQ JNZ2
87
+			( clamp ) ,no-ctrl-left ~selection.from ,document.body EQU2 JNZ2
89 88
 			~selection.from -- DUP2 =selection.from ++ =selection.to
90 89
 			,clamp-selection JSR2 ,follow-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
91 90
 		@no-ctrl-left
92
-		,no-ctrl-right ~Controller #80 NEQ JMP2?
91
+		,no-ctrl-right ~Controller #80 NEQ JNZ2
93 92
 			~selection.from ++ DUP2 =selection.from ++ =selection.to
94 93
 			,clamp-selection JSR2 ,follow-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
95 94
 		@no-ctrl-right
96 95
 		( alt )
97
-		,no-alt ~Controller #0f AND #02 NEQ JMP2?
98
-			,no-aup ~Controller #04 SFT #01 NEQ JMP2?
96
+		,no-alt ~Controller #0f AND #02 NEQ JNZ2
97
+			,no-aup ~Controller #04 SFT #01 NEQ JNZ2
99 98
 				,find-wordstart JSR2 =selection.to
100 99
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
101 100
 			@no-aup
102
-			,no-adown ~Controller #04 SFT #02 NEQ JMP2?
101
+			,no-adown ~Controller #04 SFT #02 NEQ JNZ2
103 102
 				,find-wordend JSR2 =selection.to
104 103
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
105 104
 			@no-adown
106
-			,no-aleft ~Controller #04 SFT #04 NEQ JMP2?
105
+			,no-aleft ~Controller #04 SFT #04 NEQ JNZ2
107 106
 				~selection.to -- =selection.to
108 107
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
109 108
 			@no-aleft
110
-			,no-aright ~Controller #04 SFT #08 NEQ JMP2?
109
+			,no-aright ~Controller #04 SFT #08 NEQ JNZ2
111 110
 				~selection.to ++ =selection.to
112 111
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
113 112
 			@no-aright
114 113
 		@no-alt
115 114
 		( ctrl )
116
-		,no-ctrl ~Controller #0f AND #01 NEQ JMP2?
117
-			,no-cup ~Controller #04 SFT #01 NEQ JMP2?
115
+		,no-ctrl ~Controller #0f AND #01 NEQ JNZ2
116
+			,no-cup ~Controller #04 SFT #01 NEQ JNZ2
118 117
 				#0004 ,scroll-up JSR2
119 118
 				,redraw JSR2 ,ctrl-end JMP2
120 119
 			@no-cup
121
-			,no-cdown ~Controller #04 SFT #02 NEQ JMP2?
120
+			,no-cdown ~Controller #04 SFT #02 NEQ JNZ2
122 121
 				#0004 ,scroll-down JSR2
123 122
 				,redraw JSR2 ,ctrl-end JMP2
124 123
 			@no-cdown
125
-			,no-cleft ~Controller #04 SFT #04 NEQ JMP2?
124
+			,no-cleft ~Controller #04 SFT #04 NEQ JNZ2
126 125
 				,goto-linestart JSR2 ,redraw JSR2 ,ctrl-end JMP2
127 126
 			@no-cleft
128
-			,no-cright ~Controller #04 SFT #08 NEQ JMP2?
127
+			,no-cright ~Controller #04 SFT #08 NEQ JNZ2
129 128
 				,goto-lineend JSR2 ,redraw JSR2 ,ctrl-end JMP2
130 129
 			@no-cright
131 130
 		@no-ctrl
... ...
@@ -134,11 +133,11 @@ BRK
134 133
 
135 134
 	( keys )
136 135
 
137
-	,no-keys ~Keys #00 EQU JMP2?
136
+	,no-keys ~Keys #00 EQU JNZ2
138 137
 
139
-		,$no-backspace ~Keys #08 NEQ JMP2?
138
+		,$no-backspace ~Keys #08 NEQ JNZ2
140 139
 			( erase )
141
-			,$erase-multiple ~selection.to ~selection.from SUB2 #0001 NEQ2 JMP2?
140
+			,$erase-multiple ~selection.to ~selection.from SUB2 #0001 NEQ2 JNZ2
142 141
 				~selection.to ~selection.from SUB2 ,shift-left JSR2
143 142
 				,$erase-end JMP2
144 143
 			$erase-multiple
... ...
@@ -163,28 +162,28 @@ BRK
163 162
 
164 163
 	( mouse )
165 164
 
166
-	,no-change ~Mouse.state ~touch.state EQU JMP2?
165
+	,no-change ~Mouse.state ~touch.state EQU JNZ2
167 166
 	
168 167
 		#0000 =Sprite.x ~Screen.height 8- =Sprite.y
169 168
 		,mouse00icn =Sprite.addr
170
-		,nobutton1 ~Mouse.state #01 NEQ JMP2? ,mouse01icn =Sprite.addr @nobutton1
171
-		,nobutton2 ~Mouse.state #10 NEQ JMP2? ,mouse10icn =Sprite.addr @nobutton2
172
-		,nobutton3 ~Mouse.state #11 NEQ JMP2? ,mouse11icn =Sprite.addr @nobutton3
169
+		,nobutton1 ~Mouse.state #01 NEQ JNZ2 ,mouse01icn =Sprite.addr @nobutton1
170
+		,nobutton2 ~Mouse.state #10 NEQ JNZ2 ,mouse10icn =Sprite.addr @nobutton2
171
+		,nobutton3 ~Mouse.state #11 NEQ JNZ2 ,mouse11icn =Sprite.addr @nobutton3
173 172
 		#01 =Sprite.color
174 173
 
175 174
 	@no-change
176 175
 
177
-	,touch-end ~Mouse.state #00 EQU JMP2?
176
+	,touch-end ~Mouse.state #00 EQU JNZ2
178 177
 
179
-		,touch-linebar ~Mouse.x #0010 LTH2 JMP2?
180
-		,touch-body ~Mouse.x ~Screen.width 8- LTH2 JMP2?
178
+		,touch-linebar ~Mouse.x #0010 LTH2 JNZ2
179
+		,touch-body ~Mouse.x ~Screen.width 8- LTH2 JNZ2
181 180
 		,touch-scrollbar JMP2
182 181
 
183 182
 	@touch-end
184 183
 
185 184
 	~Mouse.state =touch.state
186 185
 
187
-	( unlock ) ,skip-unlock ~lock #00 EQU JMP2? ~lock #01 SUB =lock @skip-unlock
186
+	( unlock ) ,skip-unlock ~lock #00 EQU JNZ2 ~lock #01 SUB =lock @skip-unlock
188 187
 
189 188
 	,draw-cursor JSR2
190 189
 
... ...
@@ -192,11 +191,11 @@ BRK
192 191
 
193 192
 @touch-scrollbar
194 193
 
195
-	,$no-up ~Mouse.y #0008 GTH2 JMP2?
194
+	,$no-up ~Mouse.y #0008 GTH2 JNZ2
196 195
 		( decr ) ~scroll.y #00 ~scroll.y #0000 NEQ2 SUB2 =scroll.y
197 196
 		^$end JMP
198 197
 	$no-up 
199
-	,$no-down ~Mouse.y ~Screen.height 8- LTH2 JMP2?
198
+	,$no-down ~Mouse.y ~Screen.height 8- LTH2 JNZ2
200 199
 		( incr ) ~scroll.y ++ =scroll.y
201 200
 		^$end JMP
202 201
 	$no-down 
... ...
@@ -221,20 +220,20 @@ RTN
221 220
 	~Mouse.y 8/ ~scroll.y ADD2 =position.y
222 221
 	~Mouse.x ~textarea.x1 SUB2 #0007 ADD2 #0007 DIV2 =position.x
223 222
 
224
-	,$no-chord-cut ~Mouse.chord #01 NEQ JMP2?
223
+	,$no-chord-cut ~Mouse.chord #01 NEQ JNZ2
225 224
 		,cut JSR2
226 225
 		( release ) #00 DUP =Mouse.state =Mouse.chord
227 226
 		^$end JMP
228 227
 	$no-chord-cut
229
-	,$no-chord-paste ~Mouse.chord #10 NEQ JMP2?
228
+	,$no-chord-paste ~Mouse.chord #10 NEQ JNZ2
230 229
 		,paste JSR2
231 230
 		( release ) #00 DUP =Mouse.state =Mouse.chord
232 231
 		^$end JMP
233 232
 	$no-chord-paste
234 233
 
235
-	,$end ~Mouse.state #11 EQU JMP2?
234
+	,$end ~Mouse.state #11 EQU JNZ2
236 235
 
237
-	,$no-drag ~Mouse.state ~touch.state NEQ ~Controller #0f AND #02 NEQ #0101 EQU2 JMP2?
236
+	,$no-drag ~Mouse.state ~touch.state NEQ ~Controller #0f AND #02 NEQ #0101 EQU2 JNZ2
238 237
 		( on drag )
239 238
 		,find-selection JSR2 ++ =selection.to
240 239
 		,clamp-selection JSR2
... ...
@@ -261,7 +260,7 @@ RTN
261 260
 
262 261
 @scroll-up ( length )
263 262
 	
264
-	DUP2 ~scroll.y LTH2 ,$clamp ROT JMP2?
263
+	DUP2 ~scroll.y LTH2 ,$clamp ROT JNZ2
265 264
 		#0000 =scroll.y POP2 RTN
266 265
 	$clamp
267 266
 	~scroll.y SWP2 SUB2 =scroll.y
... ...
@@ -301,10 +300,10 @@ RTN
301 300
 
302 301
 @follow-selection
303 302
 
304
-	,$no-up ~position.y ~scroll.y GTH2 JMP2?
303
+	,$no-up ~position.y ~scroll.y GTH2 JNZ2
305 304
 		~position.y =scroll.y RTN
306 305
 	$no-up
307
-	,$no-down ~position.y ~Screen.height #0010 SUB2 8/ ~scroll.y ADD2 LTH2 JMP2?
306
+	,$no-down ~position.y ~Screen.height #0010 SUB2 8/ ~scroll.y ADD2 LTH2 JNZ2
308 307
 		~position.y ~Screen.height #0010 SUB2 8/ SUB2 =scroll.y RTN
309 308
 	$no-down
310 309
 
... ...
@@ -348,9 +347,9 @@ RTN
348 347
 	~selection.to =j
349 348
 	$loop NOP
350 349
 		( decr ) ~j -- =j
351
-		,$end ~j PEK2 #20 EQU JMP2?
352
-		,$end ~j PEK2 #0a EQU JMP2?
353
-		,$end ~j PEK2 #0d EQU JMP2?
350
+		,$end ~j PEK2 #20 EQU JNZ2
351
+		,$end ~j PEK2 #0a EQU JNZ2
352
+		,$end ~j PEK2 #0d EQU JNZ2
354 353
 		~j ,document.body GTH2 ^$loop MUL JMP
355 354
 	$end 
356 355
 	( return ) ~j --
... ...
@@ -362,9 +361,9 @@ RTN
362 361
 	~selection.to =j
363 362
 	$loop NOP
364 363
 		( incr ) ~j ++ =j
365
-		,$end ~j PEK2 #20 EQU JMP2?
366
-		,$end ~j PEK2 #0a EQU JMP2?
367
-		,$end ~j PEK2 #0d EQU JMP2?
364
+		,$end ~j PEK2 #20 EQU JNZ2
365
+		,$end ~j PEK2 #0a EQU JNZ2
366
+		,$end ~j PEK2 #0d EQU JNZ2
368 367
 		~j ,document.body GTH2 ^$loop MUL JMP
369 368
 	$end 
370 369
 	( return ) ~j ++
... ...
@@ -376,8 +375,8 @@ RTN
376 375
 	#0000 =j
377 376
 	$loop NOP
378 377
 		( incr ) ~j ++ =j
379
-		,$end ~selection.from ~j SUB2 PEK2 #0a EQU JMP2?
380
-		,$end ~selection.from ~j SUB2 PEK2 #0d EQU JMP2?
378
+		,$end ~selection.from ~j SUB2 PEK2 #0a EQU JNZ2
379
+		,$end ~selection.from ~j SUB2 PEK2 #0d EQU JNZ2
381 380
 		~selection.from ~j SUB2 ,document.body GTH2 ^$loop MUL JMP
382 381
 	$end 
383 382
 	( return ) ~j
... ...
@@ -388,8 +387,8 @@ RTN
388 387
 
389 388
 	,document.body =j #0000 =pt.y
390 389
 	$loop NOP
391
-		,$end ~pt.y ~position.y -- GTH2 JMP2?
392
-		,$no-space ~j PEK2 #0a NEQ ~j PEK2 #0d NEQ #0101 EQU2 JMP2?
390
+		,$end ~pt.y ~position.y -- GTH2 JNZ2
391
+		,$no-space ~j PEK2 #0a NEQ ~j PEK2 #0d NEQ #0101 EQU2 JNZ2
393 392
 			( incr ) ~pt.y ++ =pt.y
394 393
 		$no-space
395 394
 		( incr ) ~j ++ =j
... ...
@@ -404,8 +403,8 @@ RTN
404 403
 	,find-line JSR2 ( find line )
405 404
 	#0000 =pt.x
406 405
 	$loop NOP
407
-		,$end ~j ~pt.x ADD2 PEK2 #0a EQU JMP2?
408
-		,$end ~j ~pt.x ADD2 PEK2 #0d EQU JMP2?
406
+		,$end ~j ~pt.x ADD2 PEK2 #0a EQU JNZ2
407
+		,$end ~j ~pt.x ADD2 PEK2 #0d EQU JNZ2
409 408
 		( incr ) ~pt.x ++ =pt.x
410 409
 		~pt.x ~position.x -- LTH2 ^$loop MUL JMP
411 410
 	$end
... ...
@@ -449,17 +448,17 @@ RTN
449 448
 	
450 449
 	,document.body =selection.from #0000 =pt.x #0000 =pt.y
451 450
 	$loop
452
-		,$no-space ~selection.from PEK2 #0a NEQ ~selection.from PEK2 #0d NEQ #0101 EQU2 JMP2?
451
+		,$no-space ~selection.from PEK2 #0a NEQ ~selection.from PEK2 #0d NEQ #0101 EQU2 JNZ2
453 452
 			( incr ) ~pt.y ++ =pt.y
454 453
 			#0000 =pt.x
455 454
 		$no-space
456
-		,$no-reached ~pt.y ~position.y -- GTH2 ~pt.x ~position.x -- GTH2 #0101 NEQ2 JMP2?
455
+		,$no-reached ~pt.y ~position.y -- GTH2 ~pt.x ~position.x -- GTH2 #0101 NEQ2 JNZ2
457 456
 			~selection.from ++ =selection.to
458 457
 			RTN
459 458
 		$no-reached
460 459
 		( incr ) ~pt.x ++ =pt.x
461 460
 		( incr ) ~selection.from ++ =selection.from
462
-	,$loop ~selection.from PEK2 #00 NEQ JMP2?
461
+	,$loop ~selection.from PEK2 #00 NEQ JNZ2
463 462
 
464 463
 RTN
465 464
 
... ...
@@ -531,8 +530,8 @@ RTN
531 530
 	( scroll to position )
532 531
 	#0000 =j ( j is linebreaks )
533 532
 	$find-offset NOP
534
-		,$find-offset-end ~scroll.y ~j EQU2 JMP2?
535
-		,$no-break ~textarea.addr PEK2 #0a NEQ ~textarea.addr PEK2 #0d NEQ #0101 EQU2 JMP2?
533
+		,$find-offset-end ~scroll.y ~j EQU2 JNZ2
534
+		,$no-break ~textarea.addr PEK2 #0a NEQ ~textarea.addr PEK2 #0d NEQ #0101 EQU2 JNZ2
536 535
 			( incr ) ~j ++ =j
537 536
 		$no-break
538 537
 		( incr ) ~textarea.addr ++ =textarea.addr
... ...
@@ -544,7 +543,7 @@ RTN
544 543
 
545 544
 	$loop
546 545
 
547
-		,$end ~Sprite.y ~Screen.height #0010 SUB2 GTH2 JMP2?
546
+		,$end ~Sprite.y ~Screen.height #0010 SUB2 GTH2 JNZ2
548 547
 
549 548
 		( get character )
550 549
 		,font #00 ~i PEK2 #20 SUB 8* ADD2 =Sprite.addr
... ...
@@ -554,7 +553,7 @@ RTN
554 553
 		~i ~selection.to LTH2 #0101 EQU2
555 554
 		#05 MUL ADD ~i ~selection.from EQU2 ADD =Sprite.color
556 555
 
557
-		,$no-linebreak ~i PEK2 #0a NEQ ~i PEK2 #0d NEQ #0101 EQU2 JMP2?
556
+		,$no-linebreak ~i PEK2 #0a NEQ ~i PEK2 #0d NEQ #0101 EQU2 JNZ2
558 557
 			( draw linebreak )
559 558
 			,linebreak_icn =Sprite.addr
560 559
 			( draw ) #02
... ...
@@ -566,7 +565,7 @@ RTN
566 565
 				( incr ) ~Sprite.x 8+ =Sprite.x
567 566
 				,font =Sprite.addr
568 567
 				#01 =Sprite.color
569
-				,$fill-clear ~Sprite.x ~Screen.width 8- LTH2 JMP2?
568
+				,$fill-clear ~Sprite.x ~Screen.width 8- LTH2 JNZ2
570 569
 
571 570
 			( draw line number )
572 571
 
... ...
@@ -586,7 +585,7 @@ RTN
586 585
 		( incr ) ~i ++ =i
587 586
 		( incr ) ~Sprite.x #0007 ADD2 =Sprite.x
588 587
 
589
-	,$loop ~i PEK2 #00 NEQ JMP2?
588
+	,$loop ~i PEK2 #00 NEQ JNZ2
590 589
 
591 590
 	$end
592 591
 
... ...
@@ -8,8 +8,7 @@
8 8
 )
9 9
 
10 10
 %RTN   { JMP2r }
11
-%RTN?  { JNZ2r }
12
-%JMP2? { JNZ2 }
11
+%RTN?  { #00 EQU #02 SWP JNZ STH2r JMP2 }
13 12
 %STEP8 { #0033 SFT2 }
14 13
 
15 14
 %++ { #0001 ADD2 }
... ...
@@ -63,28 +62,28 @@ BRK
63 62
 
64 63
 	( keyboard controls )
65 64
 
66
-	,no-key ~Keys #00 EQU JMP2?
65
+	,no-key ~Keys #00 EQU JNZ2
67 66
 
68
-		,no-key ~Keys #31 LTH JMP2?
69
-		,no-key ~Keys #33 GTH JMP2?
67
+		,no-key ~Keys #31 LTH JNZ2
68
+		,no-key ~Keys #33 GTH JNZ2
70 69
 		( select ) ~Keys #31 SUB =bankview.mode
71 70
 		( release ) #00 =Keys
72 71
 		,redraw JSR2 
73 72
 
74 73
 	@no-key
75 74
 
76
-	,no-ctrl ~Controller.buttons #00 EQU JMP2?
75
+	,no-ctrl ~Controller.buttons #00 EQU JNZ2
77 76
 
78
-		,no-ctrl-up ~Controller.buttons #10 EQU JMP2?
77
+		,no-ctrl-up ~Controller.buttons #10 EQU JNZ2
79 78
 			~tileview.addr #0080 ADD2 =tileview.addr
80 79
 		@no-ctrl-up
81
-		,no-ctrl-down ~Controller.buttons #20 EQU JMP2?
80
+		,no-ctrl-down ~Controller.buttons #20 EQU JNZ2
82 81
 			~tileview.addr #0080 SUB2 =tileview.addr
83 82
 		@no-ctrl-down
84
-		,no-ctrl-left ~Controller.buttons #40 EQU JMP2?
83
+		,no-ctrl-left ~Controller.buttons #40 EQU JNZ2
85 84
 			~tileview.addr 8+ =tileview.addr
86 85
 		@no-ctrl-left
87
-		,no-ctrl-right ~Controller.buttons #80 EQU JMP2?
86
+		,no-ctrl-right ~Controller.buttons #80 EQU JNZ2
88 87
 			~tileview.addr 8- =tileview.addr
89 88
 		@no-ctrl-right
90 89
 		~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr
... ...
@@ -94,27 +93,27 @@ BRK
94 93
 
95 94
 	( mouse controls )
96 95
 
97
-	,click-end ~Mouse.state #00 EQU JMP2?
96
+	,click-end ~Mouse.state #00 EQU JNZ2
98 97
 
99 98
 		( toolbar )
100 99
 
101
-		,no-toolbar-click ~Mouse.y ~bankview.y #0010 SUB2 SUB2 8/ #0000 NEQ2 JMP2?
100
+		,no-toolbar-click ~Mouse.y ~bankview.y #0010 SUB2 SUB2 8/ #0000 NEQ2 JNZ2
102 101
 
103 102
 			( brush )
104
-			,no-brush-click ~Mouse.x ~bankview.x SUB2 8/ #000d LTH2 JMP2?
105
-			,no-brush-click ~Mouse.x ~bankview.x SUB2 8/ #000f GTH2 JMP2?
103
+			,no-brush-click ~Mouse.x ~bankview.x SUB2 8/ #000d LTH2 JNZ2
104
+			,no-brush-click ~Mouse.x ~bankview.x SUB2 8/ #000f GTH2 JNZ2
106 105
 				( select ) ~mouse.x ~bankview.x SUB2 8/ #000d SUB2 SWP POP =bankview.mode
107 106
 				( release ) #00 =Mouse.state
108 107
 				,redraw JSR2 ,click-end JMP2
109 108
 			@no-brush-click
110 109
 
111
-			,no-load-click ~Mouse.x ~tileview.x SUB2 8/ #000e NEQU2 JMP2?
110
+			,no-load-click ~Mouse.x ~tileview.x SUB2 8/ #000e NEQU2 JNZ2
112 111
 				( load ) ,filepath  =File.name #0800 =File.length ~bankview.addr =File.load
113 112
 				( release ) #00 =Mouse.state
114 113
 				,redraw JSR2 ,click-end JMP2
115 114
 			@no-load-click
116 115
 
117
-			,no-save-click ~Mouse.x ~tileview.x SUB2 8/ #000f NEQU2 JMP2?
116
+			,no-save-click ~Mouse.x ~tileview.x SUB2 8/ #000f NEQU2 JNZ2
118 117
 				( save ) ,filepath  =File.name #0800 =File.length ~bankview.addr =File.save
119 118
 				( release ) #00 =Mouse.state
120 119
 				,redraw JSR2 ,click-end JMP2
... ...
@@ -126,9 +125,9 @@ BRK
126 125
 
127 126
 		~Mouse.x ~bankview.x GTH2 ~Mouse.x ~bankview.x #0080 ADD2 LTH2 #0101 EQU2
128 127
 		~Mouse.y ~bankview.y GTH2 ~Mouse.y ~bankview.y #0080 ADD2 LTH2 #0101 EQU2
129
-		#0101 NEQ2 ,no-bank-click ROT JMP2?
128
+		#0101 NEQ2 ,no-bank-click ROT JNZ2
130 129
 
131
-			,not-copy-mode ~bankview.mode #01 NEQ JMP2?
130
+			,not-copy-mode ~bankview.mode #01 NEQ JNZ2
132 131
 				#00 =i
133 132
 				@copy-loop NOP
134 133
 					( load ) ~tileview.addr ~i ADD PEK2 
... ...
@@ -141,7 +140,7 @@ BRK
141 140
 				,redraw JSR2 ,click-end JMP2
142 141
 			@not-copy-mode
143 142
 
144
-			,not-erase-mode ~bankview.mode #02 NEQ JMP2?
143
+			,not-erase-mode ~bankview.mode #02 NEQ JNZ2
145 144
 				#00 =i
146 145
 				@erase-loop NOP
147 146
 					#00 
... ...
@@ -165,7 +164,7 @@ BRK
165 164
 
166 165
 		~Mouse.x ~tileview.x GTH2 ~Mouse.x ~tileview.x #0080 ADD2 LTH2 #0101 EQU2
167 166
 		~Mouse.y ~tileview.y GTH2 ~Mouse.y ~tileview.y #0080 ADD2 LTH2 #0101 EQU2
168
-		#0101 NEQ2 ,no-tile-click ROT JMP2?
167
+		#0101 NEQ2 ,no-tile-click ROT JNZ2
169 168
 
170 169
 			~Mouse.x ~tileview.x SUB2 STEP8 #0040 DIV2 
171 170
 			~Mouse.y ~tileview.y SUB2 STEP8 #0040 DIV2 2* ADD2 
... ...
@@ -173,7 +172,7 @@ BRK
173 172
 			~tileview.addr ADD2 =addr ( addr offset )
174 173
 			~Mouse.x ~tileview.x SUB2 ~Mouse.x ~tileview.x SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.x
175 174
 			~Mouse.y ~tileview.y SUB2 ~Mouse.y ~tileview.y SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.y
176
-			,no-erase-mode ~Mouse.state #10 NEQ JMP2?
175
+			,no-erase-mode ~Mouse.state #10 NEQ JNZ2
177 176
 				( load ) ~addr ~pos.y 8/ ADD2 PEK2
178 177
 				( mask ) #01 #07 ~pos.x 8/ SWP POP SUB SFL 
179 178
 				#ff EOR AND
... ...
@@ -190,15 +189,15 @@ BRK
190 189
 
191 190
 		( operations )
192 191
 
193
-		,no-operations ~Mouse.y ~tileview.y SUB2 8/ #000c NEQ2 JMP2?
192
+		,no-operations ~Mouse.y ~tileview.y SUB2 8/ #000c NEQ2 JNZ2
194 193
 
195
-			,no-move-up ~Mouse.x ~tileview.x SUB2 8/ #0011 NEQ2 JMP2?
194
+			,no-move-up ~Mouse.x ~tileview.x SUB2 8/ #0011 NEQ2 JNZ2
196 195
 				,op_shiftup JSR2 
197 196
 				( release ) #00 =Mouse.state
198 197
 				,redraw JSR2 ,click-end JMP2
199 198
 			@no-move-up
200 199
 
201
-			,no-move-down ~Mouse.x ~tileview.x SUB2 8/ #0012 NEQ2 JMP2?
200
+			,no-move-down ~Mouse.x ~tileview.x SUB2 8/ #0012 NEQ2 JNZ2
202 201
 				,op_shiftdown JSR2 
203 202
 				( release ) #00 =Mouse.state
204 203
 				,redraw JSR2 ,click-end JMP2
... ...
@@ -298,7 +297,7 @@ RTN
298 297
 		( draw ) #02 =Sprite.color
299 298
 		~Sprite.addr 8+ =Sprite.addr
300 299
 		( incr ) ~i #01 ADD =i
301
-		,$guides ~i #10 LTH JMP2?
300
+		,$guides ~i #10 LTH JNZ2
302 301
 
303 302
 	( body )
304 303
 
... ...
@@ -315,10 +314,10 @@ RTN
315 314
 			( incr ) ~Sprite.x 8+ =Sprite.x
316 315
 			( incr ) ~Sprite.addr 8+ =Sprite.addr
317 316
 			( incr ) ~pt.x #01 ADD =pt.x
318
-			,$hor ~pt.x #10 LTH JMP2?
317
+			,$hor ~pt.x #10 LTH JNZ2
319 318
 		( incr ) ~pt.y #01 ADD =pt.y
320 319
 		( incr ) ~Sprite.y 8+ =Sprite.y
321
-		,$ver ~pt.y #10 LTH JMP2?
320
+		,$ver ~pt.y #10 LTH JNZ2
322 321
 
323 322
 RTN
324 323
 
... ...
@@ -365,7 +364,7 @@ RTN
365 364
 	$line-hor
366 365
 		( draw ) #03 =Screen.color
367 366
 		( incr ) ~Screen.x #0002 ADD2 =Screen.x
368
-	~Screen.x ~tileview.x #0082 ADD2 LTH2 ,$line-hor ROT JMP2?
367
+	~Screen.x ~tileview.x #0082 ADD2 LTH2 ,$line-hor ROT JNZ2
369 368
 
370 369
 	( line ver )
371 370
 	~tileview.y =Screen.y
... ...
@@ -373,7 +372,7 @@ RTN
373 372
 	$line-ver
374 373
 		( draw ) #03 =Screen.color
375 374
 		( incr ) ~Screen.y #0002 ADD2 =Screen.y
376
-	~Screen.y ~tileview.y #0081 ADD2 LTH2 ,$line-ver ROT JMP2?
375
+	~Screen.y ~tileview.y #0081 ADD2 LTH2 ,$line-ver ROT JNZ2
377 376
 
378 377
 	( rewind ) ~tileview.addr #0018 SUB2 =tileview.addr
379 378
 
... ...
@@ -390,7 +389,7 @@ RTN
390 389
 		( draw ) #02 =Sprite.color
391 390
 		( incr ) ~i #01 ADD =i
392 391
 		( incr ) ~Sprite.y 8+ =Sprite.y
393
-	,$bytes ~i #08 LTH JMP2?
392
+	,$bytes ~i #08 LTH JNZ2
394 393
 
395 394
 	( operations )
396 395
 
... ...
@@ -413,10 +412,10 @@ RTN
413 412
 			( incr ) ~Sprite.x 8+ =Sprite.x
414 413
 			( incr ) ~Sprite.addr 8+ =Sprite.addr
415 414
 			( incr ) ~pt.x #01 ADD =pt.x
416
-			,$tiles-hor ~pt.x #02 LTH JMP2?
415
+			,$tiles-hor ~pt.x #02 LTH JNZ2
417 416
 		( incr ) ~pt.y #01 ADD =pt.y
418 417
 		( incr ) ~Sprite.y 8+ =Sprite.y
419
-		,$tiles-ver ~pt.y #02 LTH JMP2?
418
+		,$tiles-ver ~pt.y #02 LTH JNZ2
420 419
 
421 420
 RTN
422 421
 
... ...
@@ -433,11 +432,11 @@ RTN
433 432
 			( draw ) #01 =Sprite.color
434 433
 			( incr ) ~Sprite.x 8+ =Sprite.x
435 434
 			( incr ) ~pt.x #01 ADD =pt.x
436
-			,$hor ~pt.x #08 LTH JMP2?
435
+			,$hor ~pt.x #08 LTH JNZ2
437 436
 		( incr ) ~Sprite.y 8+ =Sprite.y
438 437
 		( incr ) ~pt.y #01 ADD =pt.y
439 438
 		~Sprite.x #0040 SUB2 =Sprite.x
440
-		,$ver ~pt.y #08 LTH JMP2?
439
+		,$ver ~pt.y #08 LTH JNZ2
441 440
 
442 441
 RTN
443 442
 
... ...
@@ -17,9 +17,8 @@
17 17
 		- Zoom drawing with other tools
18 18
 )
19 19
 
20
-%JMP? { JNZ }
21
-%JMP2? { JNZ2 }
22 20
 %RTN   { JMP2r }
21
+%RTN? { #00 EQU #02 SWP JNZ STH2r JMP2 }
23 22
 %ABS2 { DUP2 #000f SFT2 EQU #04 SWP JNZ #ffff MUL2 }
24 23
 %STEP8 { #0033 SFT2 }
25 24
 %MOD8 { #0007 AND2  }
... ...
@@ -112,7 +111,7 @@ BRK
112 111
 	,draw-cursor JSR2
113 112
 
114 113
 	( release drag )
115
-	,$no-release ~Mouse.state #00 EQU ~brush.drag #01 EQU #0101 NEQ2 JMP2?
114
+	,$no-release ~Mouse.state #00 EQU ~brush.drag #01 EQU #0101 NEQ2 JNZ2
116 115
 		~origin.x1 #0002 SUB2 ~origin.y1 #0002 SUB2 ~origin.x2 #0002 ADD2 ~origin.y2 #0002 ADD2 #00 ,fill-rect JSR2
117 116
 		~canvas.x1 -- ~canvas.y1 -- ~canvas.x2 ~canvas.y2 #10 ,line-rect JSR2
118 117
 		,draw-background JSR2
... ...
@@ -124,32 +123,32 @@ BRK
124 123
 	$no-release
125 124
 
126 125
 	( operations on release line/rect )
127
-	,$no-touch-change ~Mouse.state ~brush.last EQU JMP2?
128
-	,$no-touch-change ~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 JMP2?
129
-	,$no-touch-change ~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 JMP2?
130
-		,$no-touch-ondown ~Mouse.state #00 EQU JMP2?
126
+	,$no-touch-change ~Mouse.state ~brush.last EQU JNZ2
127
+	,$no-touch-change ~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 JNZ2
128
+	,$no-touch-change ~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 JNZ2
129
+		,$no-touch-ondown ~Mouse.state #00 EQU JNZ2
131 130
 			( on down )
132 131
 			~Mouse.x =cursor.dx
133 132
 			~Mouse.y =cursor.dy
134 133
 		$no-touch-ondown
135
-		,$no-touch-onup ~Mouse.state #00 NEQ JMP2?
134
+		,$no-touch-onup ~Mouse.state #00 NEQ JNZ2
136 135
 			( on up )
137
-			,$no-touch-line ~brush.tool #02 NEQ JMP2?
136
+			,$no-touch-line ~brush.tool #02 NEQ JNZ2
138 137
 				~cursor.dx ~canvas.x1 SUB2 ~cursor.dy ~canvas.y1 SUB2 ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint-line JSR2
139 138
 				,$touch-end JMP2
140 139
 			$no-touch-line
141
-			,$no-touch-rect ~brush.tool #03 NEQ JMP2?
140
+			,$no-touch-rect ~brush.tool #03 NEQ JNZ2
142 141
 				~cursor.dx ~canvas.x1 SUB2 ~cursor.dy ~canvas.y1 SUB2 ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint-rect JSR2
143 142
 				,$touch-end JMP2
144 143
 			$no-touch-rect
145 144
 		$no-touch-onup
146 145
 	$no-touch-change
147 146
 
148
-	,$no-touch ~Mouse.state #00 EQU JMP2?
147
+	,$no-touch ~Mouse.state #00 EQU JNZ2
149 148
 
150 149
 		( drag )
151
-		,$no-drag ~Controller #02 NEQ JMP2?
152
-			,$no-drag-start ~brush.drag #00 NEQ JMP2?
150
+		,$no-drag ~Controller #02 NEQ JNZ2
151
+			,$no-drag-start ~brush.drag #00 NEQ JNZ2
153 152
 				~canvas.x1 =origin.x1
154 153
 				~canvas.y1 =origin.y1
155 154
 				~canvas.x2 =origin.x2
... ...
@@ -166,8 +165,8 @@ BRK
166 165
 		$no-drag
167 166
 
168 167
 		( in sizepane )
169
-		,$no-touch-sizepane ~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 NEQ2 JMP2?
170
-		,$no-touch-sizepane ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 NEQ2 JMP2?
168
+		,$no-touch-sizepane ~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 NEQ2 JNZ2
169
+		,$no-touch-sizepane ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 NEQ2 JNZ2
171 170
 			( release ) #00 =Mouse.state
172 171
 			#01 =brush.tool
173 172
 			~Mouse.x ~sizepane.x1 SUB2 8/ SWP POP =brush.size
... ...
@@ -177,8 +176,8 @@ BRK
177 176
 		$no-touch-sizepane
178 177
 
179 178
 		( in pattpane )
180
-		,$no-touch-pattpane ~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 NEQ2 JMP2?
181
-		,$no-touch-pattpane ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 NEQ2 JMP2?
179
+		,$no-touch-pattpane ~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 NEQ2 JNZ2
180
+		,$no-touch-pattpane ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 NEQ2 JNZ2
182 181
 			( release ) #00 =Mouse.state
183 182
 			~Mouse.x ~pattpane.x1 SUB2 8/ SWP POP =brush.patt
184 183
 			( draw ) ,draw-pattpane JSR2
... ...
@@ -186,8 +185,8 @@ BRK
186 185
 		$no-touch-pattpane
187 186
 
188 187
 		( in toolpane )
189
-		,$no-touch-toolpane ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 NEQ2 JMP2?
190
-		,$no-touch-toolpane ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 NEQ2 JMP2?
188
+		,$no-touch-toolpane ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 NEQ2 JNZ2
189
+		,$no-touch-toolpane ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 NEQ2 JNZ2
191 190
 			( release ) #00 =Mouse.state
192 191
 			~Mouse.x ~toolpane.x1 SUB2 8/ SWP POP =brush.tool
193 192
 			( draw ) ,draw-toolpane JSR2
... ...
@@ -195,23 +194,23 @@ BRK
195 194
 		$no-touch-toolpane
196 195
 
197 196
 		( in canvas )
198
-		,$no-touch-canvas ~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 JMP2?
199
-		,$no-touch-canvas ~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 JMP2?
197
+		,$no-touch-canvas ~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 JNZ2
198
+		,$no-touch-canvas ~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 JNZ2
200 199
 
201 200
 			( set cursor operation )
202
-			,add-pixel ,$no-oper ~Mouse.state #01 EQU JMP2? POP2 ,remove-pixel $no-oper =brush.oper
201
+			,add-pixel ,$no-oper ~Mouse.state #01 EQU JNZ2 POP2 ,remove-pixel $no-oper =brush.oper
203 202
 
204
-			,$no-touch-pen ~brush.tool #00 NEQ JMP2?
203
+			,$no-touch-pen ~brush.tool #00 NEQ JNZ2
205 204
 				~cursor.x0 ~canvas.x1 SUB2 ~cursor.y0 ~canvas.y1 SUB2 ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint-line JSR2
206 205
 				,$touch-end JMP2
207 206
 			$no-touch-pen
208 207
 
209
-			,$no-touch-brush ~brush.tool #01 NEQ JMP2?
208
+			,$no-touch-brush ~brush.tool #01 NEQ JNZ2
210 209
 				~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint-brush JSR2
211 210
 				,$touch-end JMP2
212 211
 			$no-touch-brush
213 212
 
214
-			,$no-touch-zoom ~brush.tool #04 NEQ JMP2?
213
+			,$no-touch-zoom ~brush.tool #04 NEQ JNZ2
215 214
 				~zoom.active #00 EQU =zoom.active
216 215
 				( release ) #00 =Mouse.state
217 216
 				~Mouse.x ~canvas.x1 SUB2 ~canvas.w 2/ SUB2 =zoom.x
... ...
@@ -223,14 +222,14 @@ BRK
223 222
 		$no-touch-canvas
224 223
 
225 224
 		( background interface )
226
-		,$no-touch-background ~Mouse.y STEP8 ~Screen.height #0010 SUB2 NEQ2 JMP2?
225
+		,$no-touch-background ~Mouse.y STEP8 ~Screen.height #0010 SUB2 NEQ2 JNZ2
227 226
 			~Mouse.x ~Screen.width #0020 SUB2 SUB2 8/ 
228
-			DUP2 #0001 NEQ2 ,$no-load-button ROT JMP2?
227
+			DUP2 #0001 NEQ2 ,$no-load-button ROT JNZ2
229 228
 				,filepath ,load-file JSR2
230 229
 				,draw-canvas JSR2
231 230
 				( release ) #00 =Mouse.state
232 231
 			$no-load-button
233
-			DUP2 #0002 NEQ2 ,$no-save-button ROT JMP2?
232
+			DUP2 #0002 NEQ2 ,$no-save-button ROT JNZ2
234 233
 				,filepath ,save-file JSR2
235 234
 				( release ) #00 =Mouse.state
236 235
 			$no-save-button
... ...
@@ -243,34 +242,34 @@ BRK
243 242
 	$no-touch
244 243
 
245 244
 	~Controller.buttons #f0 AND
246
-		DUP #04 SFT #01 AND #01 NEQ ,$no-up ROT JMP2?
245
+		DUP #04 SFT #01 AND #01 NEQ ,$no-up ROT JNZ2
247 246
 			( move ) ~zoom.y -- =zoom.y $no-up
248
-		DUP #05 SFT #01 AND #01 NEQ ,$no-down ROT JMP2?
247
+		DUP #05 SFT #01 AND #01 NEQ ,$no-down ROT JNZ2
249 248
 			( move ) ~zoom.y ++ =zoom.y $no-down
250
-		DUP #06 SFT #01 AND #01 NEQ ,$no-left ROT JMP2?
249
+		DUP #06 SFT #01 AND #01 NEQ ,$no-left ROT JNZ2
251 250
 			( move ) ~zoom.x -- =zoom.x $no-left
252
-		DUP #07 SFT #01 AND #01 NEQ ,$no-right ROT JMP2?
251
+		DUP #07 SFT #01 AND #01 NEQ ,$no-right ROT JNZ2
253 252
 			( move ) ~zoom.x ++ =zoom.x $no-right
254
-	#00 EQU #04 SWP JMP? ,draw-canvas JSR2
253
+	#00 EQU #04 SWP JNZ ,draw-canvas JSR2
255 254
 	
256
-	,$no-keys ~Keys #00 EQU JMP2?
255
+	,$no-keys ~Keys #00 EQU JNZ2
257 256
 		~Keys 
258
-		DUP #20 NEQ ,$no-space ROT JMP2?
257
+		DUP #20 NEQ ,$no-space ROT JNZ2
259 258
 			( toggle zoom ) ~zoom.active #00 EQU =zoom.active ,redraw JSR2 $no-space 
260
-		DUP #08 NEQ ,$no-backspace ROT JMP2?
259
+		DUP #08 NEQ ,$no-backspace ROT JNZ2
261 260
 			( erase ) ,clear JSR2 $no-backspace
262
-		DUP #71 NEQ ,$no-qkey ROT JMP2?
261
+		DUP #71 NEQ ,$no-qkey ROT JNZ2
263 262
 			( tool0 ) #00 =brush.tool ,draw-toolpane JSR2 $no-qkey
264
-		DUP #77 NEQ ,$no-wkey ROT JMP2?
263
+		DUP #77 NEQ ,$no-wkey ROT JNZ2
265 264
 			( tool0 ) #01 =brush.tool ,draw-toolpane JSR2 $no-wkey
266
-		DUP #65 NEQ ,$no-ekey ROT JMP2?
265
+		DUP #65 NEQ ,$no-ekey ROT JNZ2
267 266
 			( tool0 ) #02 =brush.tool ,draw-toolpane JSR2 $no-ekey
268
-		DUP #72 NEQ ,$no-rkey ROT JMP2?
267
+		DUP #72 NEQ ,$no-rkey ROT JNZ2
269 268
 			( tool0 ) #03 =brush.tool ,draw-toolpane JSR2 $no-rkey
270
-		DUP #74 NEQ ,$no-tkey ROT JMP2?
269
+		DUP #74 NEQ ,$no-tkey ROT JNZ2
271 270
 			( tool0 ) #04 =brush.tool ,draw-toolpane JSR2 $no-tkey
272 271
 		DUP 
273
-			DUP #30 GTH SWP #39 LTH #0101 NEQ2 ,$no-numkey ROT JMP2?
272
+			DUP #30 GTH SWP #39 LTH #0101 NEQ2 ,$no-numkey ROT JNZ2
274 273
 			( size ) ~Keys #31 SUB =brush.size ,draw-sizepane JSR2 $no-numkey
275 274
 		POP
276 275
 		( release ) #00 =Keys
... ...
@@ -289,7 +288,7 @@ BRK
289 288
 	$loop NOP
290 289
 		OVR2 #00 ROT ROT POK2
291 290
 		( incr ) SWP2 #0001 ADD2 SWP2
292
-		OVR2 OVR2 LTH2 ^$loop SWP JMP?
291
+		OVR2 OVR2 LTH2 ^$loop SWP JNZ
293 292
 	POP2 POP2
294 293
 	,redraw JSR2
295 294
 
... ...
@@ -321,7 +320,7 @@ RTN
321 320
 	( load ) =line.y1 =line.x1 =line.y2 =line.x2
322 321
 
323 322
 	( trim if zoomed )
324
-	,$no-zoom ~zoom.active #01 NEQ JMP2?
323
+	,$no-zoom ~zoom.active #01 NEQ JNZ2
325 324
 		~line.x1 8/ ~zoom.x ADD2 =line.x1
326 325
 		~line.y1 8/ ~zoom.y ADD2 =line.y1
327 326
 		~line.x2 8/ ~zoom.x ADD2 =line.x2
... ...
@@ -335,13 +334,13 @@ RTN
335 334
 	~line.dx ~line.dy ADD2 =line.e1
336 335
 	$loop
337 336
 		( paint ) ~line.x2 ~line.y2 ~brush.oper JSR2
338
-		,$end ~line.x2 ~line.x1 EQU2 ~line.y2 ~line.y1 EQU2 #0101 EQU2 JMP2?
337
+		,$end ~line.x2 ~line.x1 EQU2 ~line.y2 ~line.y1 EQU2 #0101 EQU2 JNZ2
339 338
 		~line.e1 #0002 MUL2 =line.e2
340
-		,$skipy ~line.e2 ~line.dy LTS2 JMP2?
339
+		,$skipy ~line.e2 ~line.dy LTS2 JNZ2
341 340
 			~line.e1 ~line.dy ADD2 =line.e1
342 341
 			~line.x2 ~line.sx ADD2 =line.x2
343 342
 		$skipy
344
-		,$skipx ~line.e2 ~line.dx GTS2 JMP2?
343
+		,$skipx ~line.e2 ~line.dx GTS2 JNZ2
345 344
 			~line.e1 ~line.dx ADD2 =line.e1
346 345
 			~line.y2 ~line.sy ADD2 =line.y2
347 346
 		$skipx
... ...
@@ -361,7 +360,7 @@ RTN
361 360
 	( load ) =rect.y2 =rect.x2 =rect.y1 =rect.x1
362 361
 
363 362
 	( trim if zoomed )
364
-	,$no-zoom ~zoom.active #01 NEQ JMP2?
363
+	,$no-zoom ~zoom.active #01 NEQ JNZ2
365 364
 		~rect.x1 8/ ~zoom.x ADD2 =rect.x1
366 365
 		~rect.y1 8/ ~zoom.y ADD2 =rect.y1
367 366
 		~rect.x2 8/ ~zoom.x ADD2 #0001 ADD2 =rect.x2
... ...
@@ -375,13 +374,13 @@ RTN
375 374
 		~rect.x1 =pt2.x
376 375
 		$hor
377 376
 			~pt2.x SWP POP =px.x ~pt2.y SWP POP =px.y
378
-			,$no-pixel ,patternize JSR2 #00 EQU JMP2?
377
+			,$no-pixel ,patternize JSR2 #00 EQU JNZ2
379 378
 				( draw ) ~pt2.x ~pt2.y ~brush.oper JSR2
380 379
 			$no-pixel
381 380
 			( incr ) ~pt2.x ++ =pt2.x
382
-			,$hor ~pt2.x ~rect.x2 LTS2 JMP2?
381
+			,$hor ~pt2.x ~rect.x2 LTS2 JNZ2
383 382
 		~pt2.y ++ =pt2.y
384
-		,$ver ~pt2.y ~rect.y2 LTS2 JMP2?
383
+		,$ver ~pt2.y ~rect.y2 LTS2 JNZ2
385 384
 
386 385
 	,draw-canvas JSR2
387 386
 	,draw-toolpane JSR2
... ...
@@ -395,7 +394,7 @@ RTN
395 394
 	#0003 SUB2 =pt0.y #0003 SUB2 =pt0.x ( cursor offset )
396 395
 
397 396
 	( trim if zoomed )
398
-	,$no-zoom ~zoom.active #01 NEQ JMP2?
397
+	,$no-zoom ~zoom.active #01 NEQ JNZ2
399 398
 		~pt0.x 8/ ~zoom.x ADD2 #0003 SUB2 =pt0.x
400 399
 		~pt0.y 8/ ~zoom.y ADD2 #0003 SUB2 =pt0.y
401 400
 	$no-zoom
... ...
@@ -406,14 +405,14 @@ RTN
406 405
 		$hor
407 406
 			( addr ) ,size_icn #00 ~brush.size 8* ADD2
408 407
 			( byte ) #00 ~px.y ADD2 PEK2 #07 ~px.x SUB SFT #01 AND 
409
-			#00 EQU ,$no-pixel ROT JMP2?
410
-				,$no-pixel ,patternize JSR2 #00 EQU JMP2?
408
+			#00 EQU ,$no-pixel ROT JNZ2
409
+				,$no-pixel ,patternize JSR2 #00 EQU JNZ2
411 410
 				~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 ~brush.oper JSR2
412 411
 			$no-pixel
413 412
 			( incr ) ~px.x #01 ADD =px.x
414
-			,$hor ~px.x #08 LTH JMP2?
413
+			,$hor ~px.x #08 LTH JNZ2
415 414
 		( incr ) ~px.y #01 ADD =px.y
416
-		,$ver ~px.y #08 LTH JMP2?
415
+		,$ver ~px.y #08 LTH JNZ2
417 416
 
418 417
 	,draw-canvas JSR2
419 418
 	,draw-toolpane JSR2
... ...
@@ -424,44 +423,44 @@ RTN
424 423
 
425 424
 @patternize
426 425
 
427
-	,$noplain ~brush.patt #00 NEQ JMP2?
426
+	,$noplain ~brush.patt #00 NEQ JNZ2
428 427
 		#01 RTN
429 428
 	$noplain
430 429
 
431
-	,$notone1 ~brush.patt #01 NEQ JMP2?
430
+	,$notone1 ~brush.patt #01 NEQ JNZ2
432 431
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 ADD2 #0001 AND2 #0000 EQU2 
433 432
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 SUB2 #0001 AND2 #0000 EQU2 
434 433
 		#0101 EQU2
435 434
 		RTN
436 435
 	$notone1
437 436
 
438
-	,$notone2 ~brush.patt #02 NEQ JMP2?
437
+	,$notone2 ~brush.patt #02 NEQ JNZ2
439 438
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 ADD2 #0003 AND2 #0000 EQU2 
440 439
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 SUB2 #0003 AND2 #0000 EQU2 
441 440
 		#0101 EQU2
442 441
 		RTN
443 442
 	$notone2
444 443
 
445
-	,$notone3 ~brush.patt #03 NEQ JMP2?
444
+	,$notone3 ~brush.patt #03 NEQ JNZ2
446 445
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 ADD2 #0005 AND2 #0000 EQU2 
447 446
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 SUB2 #0005 AND2 #0000 EQU2 
448 447
 		#0101 EQU2
449 448
 		RTN
450 449
 	$notone3
451 450
 
452
-	,$notone4 ~brush.patt #04 NEQ JMP2?
451
+	,$notone4 ~brush.patt #04 NEQ JNZ2
453 452
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 ADD2 #0003 AND2 #0000 EQU2  RTN
454 453
 	$notone4
455 454
 
456
-	,$notone5 ~brush.patt #05 NEQ JMP2?
455
+	,$notone5 ~brush.patt #05 NEQ JNZ2
457 456
 		~pt0.x #00 ~px.x ADD2 ~pt0.y #00 ~px.y ADD2 SUB2 #0003 AND2 #0000 EQU2  RTN
458 457
 	$notone5
459 458
 
460
-	,$notone6 ~brush.patt #06 NEQ JMP2?
459
+	,$notone6 ~brush.patt #06 NEQ JNZ2
461 460
 		~pt0.x #00 ~px.x ADD2 #0001 AND2 SWP POP RTN
462 461
 	$notone6
463 462
 
464
-	,$notone7 ~brush.patt #07 NEQ JMP2?
463
+	,$notone7 ~brush.patt #07 NEQ JNZ2
465 464
 		~pt0.y #00 ~px.y ADD2 #0001 AND2 SWP POP RTN
466 465
 	$notone7
467 466
 
... ...
@@ -513,7 +512,7 @@ RTN
513 512
 
514 513
 @draw-canvas
515 514
 	
516
-	,draw-canvas-zoom ~zoom.active #01 EQU JMP2?
515
+	,draw-canvas-zoom ~zoom.active #01 EQU JNZ2
517 516
 
518 517
 	~canvas.y1 =Sprite.y
519 518
 	,data =Sprite.addr
... ...
@@ -523,9 +522,9 @@ RTN
523 522
 			( draw ) #09 =Sprite.color
524 523
 			( incr ) ~Sprite.x 8+ =Sprite.x
525 524
 			( incr ) ~Sprite.addr 8+ =Sprite.addr
526
-		,$hor ~Sprite.x ~canvas.x2 NEQ2 JMP2?
525
+		,$hor ~Sprite.x ~canvas.x2 NEQ2 JNZ2
527 526
 		( incr ) ~Sprite.y 8+ =Sprite.y
528
-	,$ver ~Sprite.y ~canvas.y2 NEQ2 JMP2?
527
+	,$ver ~Sprite.y ~canvas.y2 NEQ2 JNZ2
529 528
 
530 529
 RTN
531 530
 
... ...
@@ -542,10 +541,10 @@ RTN
542 541
 			( draw ) #09 =Sprite.color
543 542
 			( incr ) ~Sprite.x 8+ =Sprite.x
544 543
 			( incr ) ~pt1.x ++ =pt1.x
545
-		,$hor ~Sprite.x ~canvas.x2 NEQ2 JMP2?
544
+		,$hor ~Sprite.x ~canvas.x2 NEQ2 JNZ2
546 545
 		( incr ) ~Sprite.y 8+ =Sprite.y
547 546
 		( incr ) ~pt1.y ++ =pt1.y
548
-	,$ver ~Sprite.y ~canvas.y2 NEQ2 JMP2?
547
+	,$ver ~Sprite.y ~canvas.y2 NEQ2 JNZ2
549 548
 
550 549
 RTN
551 550
 
... ...
@@ -556,7 +555,7 @@ RTN
556 555
 	#0000 EQU2 
557 556
 	~Mouse.state 
558 557
 	#00 NEQ 
559
-	#0101 EQU2 JNZ2r ( Return if unchanged )
558
+	#0101 EQU2 RTN? ( Return if unchanged )
560 559
 
561 560
 	,blank_icn =Sprite.addr
562 561
 
... ...
@@ -575,20 +574,20 @@ RTN
575 574
 	~Mouse.y =cursor.y
576 575
 
577 576
 	( draw size cursor )
578
-	,$outside-canvas ~brush.tool #01 NEQ JMP2?
579
-	,$outside-canvas ~Mouse.x CLN2r ~canvas.x1 GTH2 STH2r ~canvas.x2 LTH2 #0101 NEQ2 JMP2?
580
-	,$outside-canvas ~Mouse.y CLN2r ~canvas.y1 GTH2 STH2r ~canvas.y2 LTH2 #0101 NEQ2 JMP2?	
577
+	,$outside-canvas ~brush.tool #01 NEQ JNZ2
578
+	,$outside-canvas ~Mouse.x CLN2r ~canvas.x1 GTH2 STH2r ~canvas.x2 LTH2 #0101 NEQ2 JNZ2
579
+	,$outside-canvas ~Mouse.y CLN2r ~canvas.y1 GTH2 STH2r ~canvas.y2 LTH2 #0101 NEQ2 JNZ2	
581 580
 		( do not draw size in toolpane )
582
-		,$outside-canvas ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 EQU2 #0101 EQU2 JMP2?
583
-		,$outside-canvas ~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 EQU2 #0101 EQU2 JMP2?
584
-		,$outside-canvas ~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 EQU2 #0101 EQU2 JMP2?
581
+		,$outside-canvas ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 EQU2 #0101 EQU2 JNZ2
582
+		,$outside-canvas ~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 EQU2 #0101 EQU2 JNZ2
583
+		,$outside-canvas ~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 EQU2 #0101 EQU2 JNZ2
585 584
 		( do not draw size when holding alt )
586
-		,$outside-canvas ~Controller #02 EQU JMP2?
585
+		,$outside-canvas ~Controller #02 EQU JNZ2
587 586
 		~cursor.x #0003 SUB2 =Sprite.x
588 587
 		~cursor.y #0003 SUB2 =Sprite.y
589 588
 		,brush_view #00 ~brush.size 8* ADD2 =Sprite.addr
590 589
 		#11 ~Mouse.state #02 MUL ADD =Sprite.color
591
-		,$outside-canvas ~Mouse.state #00 EQU JMP2?
590
+		,$outside-canvas ~Mouse.state #00 EQU JNZ2
592 591
 			RTN
593 592
 	$outside-canvas
594 593
 
... ...
@@ -612,9 +611,9 @@ RTN
612 611
 		( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~brush.tool EQU #02 MUL ADD =Sprite.color
613 612
 		( incr ) ~Sprite.x 8+ =Sprite.x
614 613
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
615
-		,$tools ~Sprite.x ~toolpane.x2 LTH2 JMP2?
614
+		,$tools ~Sprite.x ~toolpane.x2 LTH2 JNZ2
616 615
 
617
-	,$no-zoom ~zoom.active #01 NEQ JMP2?
616
+	,$no-zoom ~zoom.active #01 NEQ JNZ2
618 617
 		~Sprite.x #0008 SUB2 =Sprite.x
619 618
 		,tool_icn #0028 ADD2 =Sprite.addr
620 619
 		#01 #04 ~brush.tool EQU #02 MUL ADD =Sprite.color
... ...
@@ -635,7 +634,7 @@ RTN
635 634
 		( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~brush.patt EQU #02 MUL ADD =Sprite.color
636 635
 		( incr ) ~Sprite.x 8+ =Sprite.x
637 636
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
638
-		,$patterns ~Sprite.x ~pattpane.x2 LTH2 JMP2?
637
+		,$patterns ~Sprite.x ~pattpane.x2 LTH2 JNZ2
639 638
 
640 639
 RTN
641 640
 
... ...
@@ -652,7 +651,7 @@ RTN
652 651
 		( draw ) #01 ~Sprite.x ~sizepane.x1 SUB2 8/ SWP POP ~brush.size EQU #02 MUL ADD =Sprite.color
653 652
 		( incr ) ~Sprite.x 8+ =Sprite.x
654 653
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
655
-		,$patterns ~Sprite.x ~sizepane.x2 LTH2 JMP2?
654
+		,$patterns ~Sprite.x ~sizepane.x2 LTH2 JNZ2
656 655
 
657 656
 RTN
658 657
 
... ...
@@ -664,7 +663,7 @@ RTN
664 663
 	$draw-hor NOP
665 664
 		( draw ) #01 =Screen.color
666 665
 		( incr ) SWP2 #0002 ADD2 DUP2 =Screen.x SWP2
667
-		OVR2 OVR2 LTH2 ^$draw-hor SWP JMP?
666
+		OVR2 OVR2 LTH2 ^$draw-hor SWP JNZ
668 667
 	POP2 POP2
669 668
 
670 669
 	( draw ver line )
... ...
@@ -673,7 +672,7 @@ RTN
673 672
 	$draw-ver NOP
674 673
 		( draw ) #01 =Screen.color
675 674
 		( incr ) SWP2 #0002 ADD2 DUP2 =Screen.y SWP2
676
-		OVR2 OVR2 LTH2 ^$draw-ver SWP JMP?
675
+		OVR2 OVR2 LTH2 ^$draw-ver SWP JNZ
677 676
 	POP2 POP2
678 677
 
679 678
 	( draw save/load/guides icons )
... ...
@@ -712,13 +711,13 @@ RTN
712 711
 		( incr ) ~Screen.x ++ =Screen.x
713 712
 		( draw ) ~rect.y1 =Screen.y ~color =Screen.color
714 713
 		( draw ) ~rect.y2 =Screen.y ~color =Screen.color
715
-		,$hor ~Screen.x ~rect.x2 NEQ2 JMP2?
714
+		,$hor ~Screen.x ~rect.x2 NEQ2 JNZ2
716 715
 	~rect.y1 =Screen.y
717 716
 	$ver
718 717
 		( draw ) ~rect.x1 =Screen.x ~color =Screen.color
719 718
 		( draw ) ~rect.x2 =Screen.x ~color =Screen.color
720 719
 		( incr ) ~Screen.y ++ =Screen.y
721
-		,$ver ~Screen.y ~rect.y2 ++ NEQ2 JMP2?
720
+		,$ver ~Screen.y ~rect.y2 ++ NEQ2 JNZ2
722 721
 
723 722
 RTN
724 723
 
... ...
@@ -730,9 +729,9 @@ RTN
730 729
 		$hor
731 730
 			( draw ) ~color =Screen.color
732 731
 			( incr ) ~Screen.x ++ =Screen.x
733
-			,$hor ~Screen.x ~rect.x2 NEQ2 JMP2?
732
+			,$hor ~Screen.x ~rect.x2 NEQ2 JNZ2
734 733
 		( incr ) ~Screen.y ++ =Screen.y
735
-		,$ver ~Screen.y ~rect.y2 NEQ2 JMP2?
734
+		,$ver ~Screen.y ~rect.y2 NEQ2 JNZ2
736 735
 
737 736
 RTN
738 737
 
739 738
deleted file mode 100644
... ...
@@ -1,9 +0,0 @@
1
-|0100 ;Console { pad 8 char 1 byte 1 short 2 }
2
-|01F0 .RESET .FRAME .ERROR ( vectors )
3
-
4
-@RESET 
5
-
6
-BRK
7
-
8
-@FRAME BRK
9
-@ERROR BRK
... ...
@@ -46,7 +46,7 @@ void op_lth(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b
46 46
 void op_gts(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, (Sint8)b > (Sint8)a); }
47 47
 void op_lts(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, (Sint8)b < (Sint8)a); }
48 48
 void op_jmp(Uxn *u) { Uint8 a = pop8(u->src); u->ram.ptr += (Sint8)a; }
49
-void op_jnz(Uxn *u) { Uint8 a = pop8(&u->wst), b; if (getflag(&u->status, FLAG_RETURN) && !a) return; b = pop8(u->src); if (a) u->ram.ptr += (Sint8)b; }
49
+void op_jnz(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); if (a) u->ram.ptr += (Sint8)b; }
50 50
 void op_jsr(Uxn *u) { Uint8 a = pop8(u->src); push16(u->dst, u->ram.ptr); u->ram.ptr += (Sint8)a; }
51 51
 /* Memory */
52 52
 void op_pek(Uxn *u) { Uint8 a = pop8(u->src); push8(u->src, mempeek8(u, a)); }
... ...
@@ -80,7 +80,7 @@ void op_lth16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->sr
80 80
 void op_gts16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->src, (Sint16)b > (Sint16)a); }
81 81
 void op_lts16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->src, (Sint16)b < (Sint16)a); }
82 82
 void op_jmp16(Uxn *u) { u->ram.ptr = pop16(u->src); }
83
-void op_jnz16(Uxn *u) { Uint8 a = pop8(&u->wst); if (getflag(&u->status, FLAG_RETURN) && !a) return; Uint16 b = pop16(u->src); if (a) u->ram.ptr = b; }
83
+void op_jnz16(Uxn *u) { Uint8 a = pop8(&u->wst); Uint16 b = pop16(u->src); if (a) u->ram.ptr = b; }
84 84
 void op_jsr16(Uxn *u) { push16(u->dst, u->ram.ptr); u->ram.ptr = pop16(u->src); }
85 85
 /* Memory(16-bits) */
86 86
 void op_pek16(Uxn *u) { Uint16 a = pop16(u->src); push8(u->src, mempeek8(u, a)); }