@@ 61,7 61,7 @@
BRK
-@meta 00 &body
+@meta 00
( name ) "Left 0a
( details ) "A 20 "Text 20 "Editor 0a
( author ) "By 20 "Hundred 20 "Rabbits 0a
@@ 383,9 383,9 @@ JMP2r
LITr -scroll/y LDZ2r
get-eof .scroll/addr LDZ2
- &while
+ &w
LDAk #0a NEQ JMP INC2r
- INC2 GTH2k ?&while
+ INC2 GTH2k ?&w
POP2 POP2
STH2r
@@ 430,10 430,10 @@ JMP2r
STH2
LIT2r 0000
;text
- &while
+ &w
EQU2kr STHr ?&end
LDAk #0a NEQ JMP INC2r
- INC2 LDAk ?&while
+ INC2 LDAk ?&w
&end
POP2r POP2r
@@ 443,10 443,10 @@ JMP2r
LIT2r 0000
DUP2 find-line-start
- &loop
+ &l
EQU2k ?&end
get-width STH2 ADD2r
- INC2 GTH2k ?&loop
+ INC2 GTH2k ?&l
&end
POP2 POP2
STH2r
@@ 468,9 468,9 @@ JMP2r
LIT2r 0000
;text
- &loop
+ &l
LDAk #0a NEQ JMP INC2r
- INC2 GTH2k ?&loop
+ INC2 GTH2k ?&l
POP2 POP2
STH2r
@@ 628,13 628,31 @@ JMP2r
( .. )
+@is-selected ( addr* -- addr* bool )
+
+ DUP2 .selection/from LDZ2 #0001 SUB2 GTH2 STH
+ DUP2 .selection/to LDZ2 LTH2 STHr AND
+
+JMP2r
+
+@is-rune ( addr* -- bool )
+
+ ;walk-color/c LDA ?&skip
+ .textarea/highlight LDZ ?&skip
+ #0001 SUB2 LDA2
+ ;runes cndx INC2 ORA
+ SWP #21 LTH AND
+
+JMP2r
+ &skip POP2 #00 JMP2r
+
( find )
@find-line-start ( addr* -- addr* )
- &while
+ &w
DUP2 ;text EQU2 ?&end
- #0001 SUB2 LDAk #0a NEQ ?&while
+ #0001 SUB2 LDAk #0a NEQ ?&w
INC2
&end
@@ 644,32 662,32 @@ JMP2r
LDAk #0a EQU ?&skip
INC2k LDA #00 EQU ?&skip
- &while
- INC2 LDAk #0a NEQ ?&while
+ &w
+ INC2 LDAk #0a NEQ ?&w
&skip
JMP2r
@find-prev-spacer ( addr* -- addr* )
- &while
- #0001 SUB2 LDAk #20 GTH ?&while
+ &w
+ #0001 SUB2 LDAk #20 GTH ?&w
JMP2r
@find-next-spacer ( addr* -- addr* )
- &while
- INC2 LDAk #20 GTH ?&while
+ &w
+ INC2 LDAk #20 GTH ?&w
JMP2r
@find-first-marker ( addr* -- addr* )
#0002 SUB2
- &while
+ &w
DUP2 ;text LTH2 ?&end
- #0001 SUB2 LDA2k #0a LIT "@ NEQ2 ?&while
+ #0001 SUB2 LDA2k #0a LIT "@ NEQ2 ?&w
&end
JMP2r
@@ 707,11 725,11 @@ JMP2r
&when-search ( -- )
get-eof ;text
- &loop
+ &l2
;search OVR2 sseg #00 EQU ?&no-find
DUP2 add-marker
&no-find
- INC2 GTH2k ?&loop
+ INC2 GTH2k ?&l2
POP2 POP2
!draw-navbar
@@ 746,9 764,9 @@ JMP2r
STH2
.nav/len LDZ #00
- &loop
+ &l
DUP get-marker #0001 SUB2 STH2kr GTH2 ?&end
- INC GTHk ?&loop
+ INC GTHk ?&l
&end
NIP #01 SUB
POP2r
@@ 806,11 824,11 @@ JMP2r
#0020 .Screen/y DEO2
#15 .Screen/auto DEO
get-eof INC2 .scroll/addr LDZ2
- &loop
+ &l
draw-token
.Screen/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ?&end
LDAk #00 EQU ?&end
- GTH2k ?&loop
+ GTH2k ?&l
&end
POP2 POP2
!draw-scrollbar
@@ 828,25 846,18 @@ JMP2r
draw-rune
&w
- ,&is-selected JSR STH
+ is-selected STH
LDAk STH2kr #0d ROT ROT [ JMP SWP POP ] draw-ufx POPr
INC2 LDAk #20 GTH ?&w
( reset ul ) #00 ;draw-ufx/ul STA
( reset color ) POPr
&w2
- ,&is-selected JSR STH
+ is-selected STH
LDAk #0d01 STHr [ JMP SWP POP ] draw-ufx
INC2 LDAk #01 SUB #20 LTH ?&w2
JMP2r
-&is-selected ( addr* -- addr* bool )
-
- DUP2 .selection/from LDZ2 #0001 SUB2 GTH2 STH
- DUP2 .selection/to LDZ2 LTH2 STHr AND
-
-JMP2r
-
@draw-rune ( addr* -- addr* )
LDAk ;runes cndx INC2k ORA ?&continue
@@ 854,7 865,7 @@ JMP2r
&continue
( set color )
SWP2
- draw-token/is-selected #0d01 ROT [ JMP SWP POP ]
+ is-selected #0d01 ROT [ JMP SWP POP ]
;draw-ufx/color STA
SWP2
( draw glyph )
@@ 940,9 951,9 @@ JMP2r
( bg )
;checkered-icn .Screen/addr DEO2
.scrollbar/height LDZ2 #03 SFT2 NIP #00
- &loop
+ &l
#04 .Screen/sprite DEO
- INC GTHk ?&loop
+ INC GTHk ?&l
POP2
( fg )
;state-icns .Screen/addr DEO2
@@ 963,9 974,9 @@ JMP2r
#01 .Screen/auto DEO
;dashed-icn .Screen/addr DEO2
.Screen/width DEI2 #03 SFT2 NIP #00
- &loop
+ &l
#05 .Screen/sprite DEO
- INC GTHk ?&loop
+ INC GTHk ?&l
POP2
JMP2r
@@ 982,13 993,13 @@ JMP2r
#15 .Screen/auto DEO
.selection/from LDZ2 get-current-marker ,&sel STR
.nav/len LDZ #00 EQUk ?&when-empty
- &loop
+ &l
#0010 .Screen/x DEO2
#00 OVR #40 SFT2 #0020 ADD2 .Screen/y DEO2
DUP get-marker INC2 LDA LIT "| EQU #03 MUL STH
DUP [ LIT &sel $1 ] EQU #30 SFT STHr ADD INC ;draw-chr/color STA
DUP get-marker draw-marker POP2
- INC GTHk ?&loop
+ INC GTHk ?&l
POP2
JMP2r
@@ 1018,9 1029,9 @@ JMP2r
LIT2r 0000
LDAk #00 EQU ?&skip
- &while
+ &w
LDAk #0000 ROT ;font ADD2 LDA STH2 ADD2r
- INC2 LDAk ?&while
+ INC2 LDAk ?&w
&skip
POP2
STH2r
@@ 1036,9 1047,9 @@ JMP2r
LDAk #00 EQU ?&skip
#15 .Screen/auto DEO
- &while
+ &w
LDAk draw-chr
- INC2 LDAk ?&while
+ INC2 LDAk ?&w
&skip
INC2
@@ 1057,10 1068,10 @@ JMP2r
LDAk #00 EQU ?&skip
find-prev-spacer INC2
- &while
+ &w
.Screen/x DEI2 #0078 GTH2 ?&truncate
LDAk draw-chr
- INC2 LDAk #20 GTH ?&while
+ INC2 LDAk #20 GTH ?&w
&skip
INC2
@@ 1105,20 1116,6 @@ JMP2r
JMP2r
(
-@|helpers )
-
-@is-rune ( addr* -- bool )
-
- ;walk-color/c LDA ?&skip
- .textarea/highlight LDZ ?&skip
- #0001 SUB2 LDA2
- ;runes cndx #ffff NEQ2
- SWP #21 LTH AND
-
-JMP2r
- &skip POP2 #00 JMP2r
-
-(
@|document )
@file-new ( -- )
@@ 1177,7 1174,8 @@ JMP2r
( .. )
-( snarf )
+(
+@|snarf )
@snarf-txt ".snarf $1
@@ 1238,7 1236,7 @@ JMP2r
@msfl ( b* a* len* -- ) STH2 SWP2 EQU2k ?&e &l DUP2k STH2kr ADD2 LDA ROT ROT STA INC2 GTH2k ?&l POP2 POP2 &e POP2r JMP2r
@msfr ( b* a* len* -- ) STH2 EQU2k ?&e &l DUP2 LDAk ROT ROT STH2kr ADD2 STA #0001 SUB2 LTH2k ?&l POP2 POP2 &e POP2r JMP2r
@sseg ( a* b* -- f ) STH2 &l LDAk LDAkr STHr NEQ ?&e INC2k LDA #00 EQU ?&e INC2 INC2r !&l &e LDA LDAr STHr EQU JMP2r
-@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ?&loop POP2 POP2 POP2r JMP2r
+@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &l LDAk STH2kr STA INC2r INC2 GTH2k ?&l POP2 POP2 POP2r JMP2r
@sclr ( str* -- ) &w STH2k #00 STH2r STA INC2 LDAk ?&w POP2 JMP2r
@skey ( key zbuf30 -- proc )
@@ 278,11 278,11 @@ JMP2r
( mod )
SWP STH
#0800
- &loop
+ &l
STHkr OVR SFT #01 AND #00 EQU ?&no-button
#00 OVR ;&buttons ADD2 LDA ;&buf sput
&no-button
- INC GTHk ?&loop
+ INC GTHk ?&l
POP2
( mix )
DUP #00 NEQ STHr #00 NEQ #0101 NEQ2 ?&no-mod