Browse code

Optimized Left

neauoire authored on 27/03/2021 02:55:18
Showing 3 changed files
... ...
@@ -28,7 +28,7 @@ else
28 28
 fi
29 29
 
30 30
 echo "Assembling.."
31
-./bin/assembler projects/software/noodle.usm bin/boot.rom
31
+./bin/assembler projects/software/left.usm bin/boot.rom
32 32
 
33 33
 echo "Running.."
34 34
 if [ "${2}" = '--cli' ]; 
... ...
@@ -135,9 +135,9 @@ BRK
135 135
 
136 136
 	~Keys #00 EQU ,no-keys JNZ2
137 137
 
138
-		~Keys #08 NEQ ,$no-backspace JNZ2
138
+		~Keys #08 NEQ ^$no-backspace JNZ
139 139
 			( erase )
140
-			~selection.to ~selection.from SUB2 #0001 NEQ2 ,$erase-multiple JNZ2
140
+			~selection.to ~selection.from SUB2 #0001 NEQ2 ^$erase-multiple JNZ
141 141
 				~selection.to ~selection.from SUB2 ,shift-left JSR2
142 142
 				,$erase-end JMP2
143 143
 			$erase-multiple
... ...
@@ -162,23 +162,19 @@ BRK
162 162
 
163 163
 	( mouse )
164 164
 
165
-	~Mouse.state ~touch.state EQU ,no-change JNZ2
166
-	
165
+	~Mouse.state ~touch.state EQU ^no-change JNZ
167 166
 		#0000 =Sprite.x ~Screen.height 8- =Sprite.y
168 167
 		,mouse00icn =Sprite.addr
169
-		~Mouse.state #01 NEQ ,nobutton1 JNZ2 ,mouse01icn =Sprite.addr @nobutton1
170
-		~Mouse.state #10 NEQ ,nobutton2 JNZ2 ,mouse10icn =Sprite.addr @nobutton2
171
-		~Mouse.state #11 NEQ ,nobutton3 JNZ2 ,mouse11icn =Sprite.addr @nobutton3
168
+		~Mouse.state #01 NEQ ^$nobutton1 JNZ ,mouse01icn =Sprite.addr $nobutton1
169
+		~Mouse.state #10 NEQ ^$nobutton2 JNZ ,mouse10icn =Sprite.addr $nobutton2
170
+		~Mouse.state #11 NEQ ^$nobutton3 JNZ ,mouse11icn =Sprite.addr $nobutton3
172 171
 		#01 =Sprite.color
173
-
174 172
 	@no-change
175 173
 
176 174
 	~Mouse.state #00 EQU ,touch-end JNZ2
177
-
178 175
 		~Mouse.x #0010 LTH2 ,touch-linebar JNZ2
179 176
 		~Mouse.x ~Screen.width 8- LTH2 ,touch-body JNZ2
180 177
 		,touch-scrollbar JMP2
181
-
182 178
 	@touch-end
183 179
 
184 180
 	~Mouse.state =touch.state
... ...
@@ -191,11 +187,11 @@ BRK
191 187
 
192 188
 @touch-scrollbar
193 189
 
194
-	~Mouse.y #0008 GTH2 ,$no-up JNZ2
190
+	~Mouse.y #0008 GTH2 ^$no-up JNZ
195 191
 		( decr ) ~scroll.y #00 ~scroll.y #0000 NEQ2 SUB2 =scroll.y
196 192
 		^$end JMP
197 193
 	$no-up 
198
-	~Mouse.y ~Screen.height 8- LTH2 ,$no-down JNZ2
194
+	~Mouse.y ~Screen.height 8- LTH2 ^$no-down JNZ
199 195
 		( incr ) ~scroll.y ++ =scroll.y
200 196
 		^$end JMP
201 197
 	$no-down 
... ...
@@ -220,20 +216,19 @@ RTN
220 216
 	~Mouse.y 8/ ~scroll.y ADD2 =position.y
221 217
 	~Mouse.x ~textarea.x1 SUB2 #0007 ADD2 #0007 DIV2 =position.x
222 218
 
223
-	~Mouse.chord #01 NEQ ,$no-chord-cut JNZ2
219
+	~Mouse.chord #01 NEQ ^$no-chord-cut JNZ
224 220
 		,cut JSR2
225 221
 		( release ) #00 DUP =Mouse.state =Mouse.chord
226 222
 		^$end JMP
227 223
 	$no-chord-cut
228
-	~Mouse.chord #10 NEQ ,$no-chord-paste JNZ2
224
+	~Mouse.chord #10 NEQ ^$no-chord-paste JNZ
229 225
 		,paste JSR2
230 226
 		( release ) #00 DUP =Mouse.state =Mouse.chord
231 227
 		^$end JMP
232 228
 	$no-chord-paste
233 229
 
234
-	~Mouse.state #11 EQU ,$end JNZ2
235
-
236
-	~Mouse.state ~touch.state NEQ ~Controller #0f AND #02 NEQ #0101 EQU2 ,$no-drag JNZ2
230
+	~Mouse.state #11 EQU ^$end JNZ
231
+	~Mouse.state ~touch.state NEQ ~Controller #0f AND #02 NEQ #0101 EQU2 ^$no-drag JNZ
237 232
 		( on drag )
238 233
 		,find-selection JSR2 ++ =selection.to
239 234
 		,clamp-selection JSR2
... ...
@@ -252,15 +247,15 @@ RTN
252 247
 	=File.name #8000 =File.length ,document.body =File.load
253 248
 	( get file length )
254 249
 	,document.body =document.eof
255
-	$loop NOP
250
+	$loop
256 251
 		( incr ) ~document.eof ++ =document.eof
257
-	~document.eof PEK2 #00 NEQ ^$loop MUL JMP
252
+	~document.eof PEK2 #00 NEQ ^$loop JNZ
258 253
 
259 254
 RTN
260 255
 
261 256
 @scroll-up ( length )
262 257
 	
263
-	DUP2 ~scroll.y LTH2 ,$clamp JNZ2
258
+	DUP2 ~scroll.y LTH2 ^$clamp JNZ
264 259
 		#0000 =scroll.y POP2 RTN
265 260
 	$clamp
266 261
 	~scroll.y SWP2 SUB2 =scroll.y
... ...
@@ -278,10 +273,10 @@ RTN
278 273
 
279 274
 	=i
280 275
 	~selection.from -- =j ( start -> end )
281
-	$loop NOP
276
+	$loop
282 277
 		( move ) ~j ~i ADD2 PEK2 ~j POK2
283 278
 		( incr ) ~j ++ =j
284
-		~j ~document.eof LTH2 ^$loop MUL JMP
279
+		~j ~document.eof LTH2 ^$loop JNZ
285 280
 	~document.eof ~i SUB2 =document.eof
286 281
 
287 282
 RTN
... ...
@@ -290,20 +285,20 @@ RTN
290 285
 
291 286
 	=i
292 287
 	~document.eof =j ( end -> start )
293
-	$loop NOP
288
+	$loop
294 289
 		( move ) ~j ~i SUB2 PEK2 ~j POK2
295 290
 		( decr ) ~j -- =j
296
-		~j ~selection.from GTH2 ^$loop MUL JMP
291
+		~j ~selection.from GTH2 ^$loop JNZ
297 292
 	~document.eof ~i ADD2 =document.eof
298 293
 
299 294
 RTN
300 295
 
301 296
 @follow-selection
302 297
 
303
-	~position.y ~scroll.y GTH2 ,$no-up JNZ2
298
+	~position.y ~scroll.y GTH2 ^$no-up JNZ
304 299
 		~position.y =scroll.y RTN
305 300
 	$no-up
306
-	~position.y ~Screen.height #0010 SUB2 8/ ~scroll.y ADD2 LTH2 ,$no-down JNZ2
301
+	~position.y ~Screen.height #0010 SUB2 8/ ~scroll.y ADD2 LTH2 ^$no-down JNZ
307 302
 		~position.y ~Screen.height #0010 SUB2 8/ SUB2 =scroll.y RTN
308 303
 	$no-down
309 304
 
... ...
@@ -318,11 +313,11 @@ RTN
318 313
 
319 314
 @goto-linestart
320 315
 
321
-	$loop NOP
316
+	$loop
322 317
 		~selection.from -- PEK2 #0a EQU RTN?
323 318
 		~selection.from -- PEK2 #0d EQU RTN?
324 319
 		( decr ) ~selection.from DUP2 =selection.to -- =selection.from
325
-	~selection.from PEK2 #00 NEQ ^$loop MUL JMP
320
+	~selection.from PEK2 #00 NEQ ^$loop JNZ
326 321
 	( clamp at document body )
327 322
 	~selection.from ,document.body GTH2 RTN?
328 323
 	,document.body DUP2 =selection.from ++ =selection.to
... ...
@@ -331,11 +326,11 @@ RTN
331 326
 
332 327
 @goto-lineend
333 328
 	
334
-	$loop NOP
329
+	$loop
335 330
 		~selection.from PEK2 #0a EQU RTN?
336 331
 		~selection.from PEK2 #0d EQU RTN?
337 332
 		( incr ) ~selection.from ++ DUP2 ++ =selection.to =selection.from
338
-		~selection.from PEK2 #00 NEQ ^$loop MUL JMP
333
+		~selection.from PEK2 #00 NEQ ^$loop JNZ
339 334
 	( clamp at document body )
340 335
 	~selection.from ,document.eof LTH2 RTN?
341 336
 	,document.eof -- DUP2 =selection.from ++ =selection.to
... ...
@@ -345,12 +340,12 @@ RTN
345 340
 @find-wordstart
346 341
 
347 342
 	~selection.to =j
348
-	$loop NOP
343
+	$loop
349 344
 		( decr ) ~j -- =j
350
-		~j PEK2 #20 EQU ,$end JNZ2
351
-		~j PEK2 #0a EQU ,$end JNZ2
352
-		~j PEK2 #0d EQU ,$end JNZ2
353
-		~j ,document.body GTH2 ^$loop MUL JMP
345
+		~j PEK2 #20 EQU ^$end JNZ
346
+		~j PEK2 #0a EQU ^$end JNZ
347
+		~j PEK2 #0d EQU ^$end JNZ
348
+		~j ,document.body GTH2 ^$loop JNZ
354 349
 	$end 
355 350
 	( return ) ~j --
356 351
 
... ...
@@ -359,12 +354,12 @@ RTN
359 354
 @find-wordend
360 355
 	
361 356
 	~selection.to =j
362
-	$loop NOP
357
+	$loop
363 358
 		( incr ) ~j ++ =j
364
-		~j PEK2 #20 EQU ,$end JNZ2
365
-		~j PEK2 #0a EQU ,$end JNZ2
366
-		~j PEK2 #0d EQU ,$end JNZ2
367
-		~j ,document.body GTH2 ^$loop MUL JMP
359
+		~j PEK2 #20 EQU ^$end JNZ
360
+		~j PEK2 #0a EQU ^$end JNZ
361
+		~j PEK2 #0d EQU ^$end JNZ
362
+		~j ,document.body GTH2 ^$loop JNZ
368 363
 	$end 
369 364
 	( return ) ~j ++
370 365
 
... ...
@@ -373,11 +368,11 @@ RTN
373 368
 @find-lineoffset ( return character offset from linestart )
374 369
 
375 370
 	#0000 =j
376
-	$loop NOP
371
+	$loop
377 372
 		( incr ) ~j ++ =j
378
-		~selection.from ~j SUB2 PEK2 #0a EQU ,$end JNZ2
379
-		~selection.from ~j SUB2 PEK2 #0d EQU ,$end JNZ2
380
-		~selection.from ~j SUB2 ,document.body GTH2 ^$loop MUL JMP
373
+		~selection.from ~j SUB2 PEK2 #0a EQU ^$end JNZ
374
+		~selection.from ~j SUB2 PEK2 #0d EQU ^$end JNZ
375
+		~selection.from ~j SUB2 ,document.body GTH2 ^$loop JNZ
381 376
 	$end 
382 377
 	( return ) ~j
383 378
 
... ...
@@ -386,13 +381,13 @@ RTN
386 381
 @find-line ( position -> addr )
387 382
 
388 383
 	,document.body =j #0000 =pt.y
389
-	$loop NOP
390
-		~pt.y ~position.y -- GTH2 ,$end JNZ2
391
-		~j PEK2 #0a NEQ ~j PEK2 #0d NEQ #0101 EQU2 ,$no-space JNZ2
384
+	$loop
385
+		~pt.y ~position.y -- GTH2 ^$end JNZ
386
+		~j PEK2 #0a NEQ ~j PEK2 #0d NEQ #0101 EQU2 ^$no-space JNZ
392 387
 			( incr ) ~pt.y ++ =pt.y
393 388
 		$no-space
394 389
 		( incr ) ~j ++ =j
395
-	~j PEK2 #00 NEQ ^$loop MUL JMP
390
+	~j PEK2 #00 NEQ ^$loop JNZ
396 391
 	$end
397 392
 	( return ) ~j
398 393
 
... ...
@@ -402,11 +397,11 @@ RTN
402 397
 
403 398
 	,find-line JSR2 ( find line )
404 399
 	#0000 =pt.x
405
-	$loop NOP
406
-		~j ~pt.x ADD2 PEK2 #0a EQU ,$end JNZ2
407
-		~j ~pt.x ADD2 PEK2 #0d EQU ,$end JNZ2
400
+	$loop
401
+		~j ~pt.x ADD2 PEK2 #0a EQU ^$end JNZ
402
+		~j ~pt.x ADD2 PEK2 #0d EQU ^$end JNZ
408 403
 		( incr ) ~pt.x ++ =pt.x
409
-		~pt.x ~position.x -- LTH2 ^$loop MUL JMP
404
+		~pt.x ~position.x -- LTH2 ^$loop JNZ
410 405
 	$end
411 406
 	( return ) ~pt.x ADD2
412 407
 
... ...
@@ -425,10 +420,10 @@ RTN
425 420
 	#0000 =i ( start )
426 421
 	~selection.to ~selection.from SUB2 =j ( end )
427 422
 	~j =clip.len
428
-	$loop NOP
423
+	$loop
429 424
 		~selection.from ~i ADD2 PEK2 ,clip.body ~i ADD2 POK2
430 425
 		( incr ) ~i ++ =i
431
-		~i ~j LTH2 ^$loop MUL JMP
426
+		~i ~j LTH2 ^$loop JNZ
432 427
 
433 428
 RTN
434 429
 
... ...
@@ -437,10 +432,10 @@ RTN
437 432
 	~clip.len ,shift-right JSR2
438 433
 	#0000 =i ( start )
439 434
 	~clip.len =j ( end )
440
-	$loop NOP
435
+	$loop
441 436
 		,clip.body ~i ADD2 PEK2 ~selection.from ~i ADD2 POK2
442 437
 		( incr ) ~i ++ =i
443
-		~i ~j LTH2 ^$loop MUL JMP
438
+		~i ~j LTH2 ^$loop JNZ
444 439
 
445 440
 RTN
446 441
 
... ...
@@ -448,17 +443,17 @@ RTN
448 443
 	
449 444
 	,document.body =selection.from #0000 =pt.x #0000 =pt.y
450 445
 	$loop
451
-		~selection.from PEK2 #0a NEQ ~selection.from PEK2 #0d NEQ #0101 EQU2 ,$no-space JNZ2
446
+		~selection.from PEK2 #0a NEQ ~selection.from PEK2 #0d NEQ #0101 EQU2 ^$no-space JNZ
452 447
 			( incr ) ~pt.y ++ =pt.y
453 448
 			#0000 =pt.x
454 449
 		$no-space
455
-		~pt.y ~position.y -- GTH2 ~pt.x ~position.x -- GTH2 #0101 NEQ2 ,$no-reached JNZ2
450
+		~pt.y ~position.y -- GTH2 ~pt.x ~position.x -- GTH2 #0101 NEQ2 ^$no-reached JNZ
456 451
 			~selection.from ++ =selection.to
457 452
 			RTN
458 453
 		$no-reached
459 454
 		( incr ) ~pt.x ++ =pt.x
460 455
 		( incr ) ~selection.from ++ =selection.from
461
-	~selection.from PEK2 #00 NEQ ,$loop JNZ2
456
+	~selection.from PEK2 #00 NEQ ^$loop JNZ
462 457
 
463 458
 RTN
464 459
 
... ...
@@ -529,13 +524,12 @@ RTN
529 524
  
530 525
 	( scroll to position )
531 526
 	#0000 =j ( j is linebreaks )
532
-	$find-offset NOP
533
-		~scroll.y ~j EQU2 ,$find-offset-end JNZ2
534
-		~textarea.addr PEK2 #0a NEQ ~textarea.addr PEK2 #0d NEQ #0101 EQU2 ,$no-break JNZ2
535
-			( incr ) ~j ++ =j
536
-		$no-break
527
+	$find-offset
528
+		~scroll.y ~j EQU2 ^$find-offset-end JNZ
529
+		~textarea.addr PEK2 #0a NEQ ~textarea.addr PEK2 #0d NEQ #0101 EQU2 ^$no-break JNZ
530
+			( incr ) ~j ++ =j $no-break
537 531
 		( incr ) ~textarea.addr ++ =textarea.addr
538
-	~textarea.addr PEK2 #00 NEQ ^$find-offset MUL JMP
532
+	~textarea.addr PEK2 #00 NEQ ^$find-offset JNZ
539 533
 	$find-offset-end
540 534
 
541 535
 	#0018 =Sprite.x #0000 =Sprite.y
... ...
@@ -565,7 +559,7 @@ RTN
565 559
 				( incr ) ~Sprite.x 8+ =Sprite.x
566 560
 				,font =Sprite.addr
567 561
 				#01 =Sprite.color
568
-				~Sprite.x ~Screen.width 8- LTH2 ,$fill-clear JNZ2
562
+				~Sprite.x ~Screen.width 8- LTH2 ^$fill-clear JNZ
569 563
 
570 564
 			( draw line number )
571 565
 
... ...
@@ -597,10 +591,10 @@ RTN
597 591
 	#0000 =Sprite.y
598 592
 	,scrollbar_bg =Sprite.addr
599 593
 
600
-	$loop NOP
594
+	$loop
601 595
 	( draw ) #08 =Sprite.color
602 596
 	( incr ) ~Sprite.y 8+ =Sprite.y
603
-	~Sprite.y ~Screen.height LTH2 ^$loop MUL JMP
597
+	~Sprite.y ~Screen.height LTH2 ^$loop JNZ
604 598
 
605 599
 	#0000 =Sprite.y
606 600
 	,arrowup_icn =Sprite.addr
... ...
@@ -622,11 +616,11 @@ RTN
622 616
 	#0018 ~Screen.height 8- #09 ,filepath 
623 617
 	( load ) =label.addr =label.color =Sprite.y =Sprite.x 
624 618
 	~label.addr
625
-	$loop NOP
619
+	$loop
626 620
 		( draw ) DUP2 PEK2 #00 SWP #20 SUB 8* ,font ADD2 =Sprite.addr ~label.color =Sprite.color
627 621
 		( incr ) ++
628 622
 		( incr ) ~Sprite.x 8+ =Sprite.x
629
-		DUP2 PEK2 #00 NEQ ^$loop MUL JMP
623
+		DUP2 PEK2 #00 NEQ ^$loop JNZ
630 624
 	POP2
631 625
 	( selection )
632 626
 	~selection.from ,document.body SUB2 ,draw-short JSR2
... ...
@@ -657,7 +657,7 @@ RTN
657 657
 	( draw hor line )
658 658
 	#0000 =Screen.x ~center.y =Screen.y
659 659
 	#0000 ~Screen.width ( from/to )
660
-	$draw-hor NOP
660
+	$draw-hor
661 661
 		( draw ) #01 =Screen.color
662 662
 		( incr ) SWP2 #0002 ADD2 DUP2 =Screen.x SWP2
663 663
 		OVR2 OVR2 LTH2 ^$draw-hor JNZ
... ...
@@ -666,7 +666,7 @@ RTN
666 666
 	( draw ver line )
667 667
 	~center.x =Screen.x #0000 =Screen.y
668 668
 	#0000 ~Screen.height ( from/to )
669
-	$draw-ver NOP
669
+	$draw-ver
670 670
 		( draw ) #01 =Screen.color
671 671
 		( incr ) SWP2 #0002 ADD2 DUP2 =Screen.y SWP2
672 672
 		OVR2 OVR2 LTH2 ^$draw-ver JNZ