@@ 30,9 30,9 @@
|0100
( theme )
- #f056 .System/r DEO2
- #f0b6 .System/g DEO2
- #f0a6 .System/b DEO2
+ #f058 .System/r DEO2
+ #f0b8 .System/g DEO2
+ #f0a8 .System/b DEO2
;load-theme JSR2
( size )
#02a8 .Screen/width DEO2
@@ 320,7 320,7 @@ BRK
( a ) LIT2r 0000
&hor
LDAk #0a EQU ,&hor-end JCN
- ;addr-to-width JSR2 STH2 ADD2r
+ ;walk-width JSR2 STH2 ADD2r
LTH2kr STHr ,&hor-end JCN
INC2 LDAk ,&hor JCN
&hor-end
@@ 438,7 438,7 @@ JMP2r
DUP2 ;find-line-start JSR2 INC2
&loop
EQU2k ,&end JCN
- ,addr-to-width JSR STH2 ADD2r
+ ,walk-width JSR STH2 ADD2r
INC2 GTH2k ,&loop JCN
&end
POP2 POP2
@@ 446,11 446,17 @@ JMP2r
JMP2r
-@addr-to-width ( addr* -- width* )
+@walk-width ( addr* -- addr* width* )
- LDAk #00 SWP ;font ADD2 LDA #00 SWP
+ LDAk
+ [ LIT ". ] EQUk NIP ,&special JCN
+ [ LIT ", ] EQUk NIP ,&special JCN
+ [ LIT "; ] EQUk NIP ,&special JCN
+ [ LIT ": ] EQUk NIP ,&special JCN
+ #00 SWP ;font ADD2 LDA #00 SWP
JMP2r
+ &special POP #0008 JMP2r
@addr-to-line ( addr* -- line* )
@@ 821,27 827,40 @@ JMP2
@draw-token ( str* -- str* )
;walk-color JSR2 STH
- ;is-ul JSR2 ;draw-ufx/ul STA
+ ;walk-ul JSR2 ;draw-ufx/ul STA
&w
- ,is-selected JSR STH
+ ,&is-selected JSR STH
LDAk STH2kr #09 ROT ROT [ JMP SWP POP ] ;draw-ufx JSR2 POPr
INC2 LDAk #20 GTH ,&w JCN
#00 ;draw-ufx/ul STA
&w2
- ,is-selected JSR STH
+ ,&is-selected JSR STH
LDAk STH2kr #09 ROT ROT [ JMP SWP POP ] ;draw-ufx JSR2 POPr
INC2 LDAk #21 LTH ,&w2 JCN
POPr
JMP2r
-@is-selected ( addr* -- addr* bool )
+&is-selected ( addr* -- addr* bool )
DUP2 .selection/from LDZ2 #0001 SUB2 GTH2 STH
DUP2 .selection/to LDZ2 LTH2 STHr AND
JMP2r
+@walk-ul ( addr* -- addr* bool )
+
+ ,walk-color/c LDR ,&skip JCN
+ LDAk LIT ", EQU ,&pass JCN
+ LDAk LIT ": EQU ,&pass JCN
+ LDAk LIT "; EQU ,&pass JCN
+ LDAk LIT ". EQU ,&pass JCN
+ &skip
+ #00
+
+JMP2r
+ &pass #01 JMP2r
+
@walk-color ( addr* -- addr* color )
LDAk LIT ") EQU ,&comment-end JCN
@@ 857,27 876,28 @@ JMP2r
JMP2r
&comment #01 ,&c STR #03 JMP2r
&comment-end #00 ,&c STR #03 JMP2r
- &parent #08 JMP2r
+ &parent #0c JMP2r
&label #02 JMP2r
&include #06 JMP2r
&string #0f JMP2r
-@is-ul ( addr* -- addr* bool )
-
- ;walk-color/c LDA ,&skip JCN
- LDAk LIT ", EQU ,&pass JCN
- LDAk LIT ": EQU ,&pass JCN
- LDAk LIT "; EQU ,&pass JCN
- LDAk LIT ". EQU ,&pass JCN
- &skip
- #00
-
-JMP2r
- &pass #01 JMP2r
-
@draw-ufx ( char color -- )
,&color STR
+
+ [ LIT ". ] NEQk NIP ,&no-litzpa JCN
+ POP #08 ;litzpa-icn ,&seg JMP
+ &no-litzpa
+ [ LIT ", ] NEQk NIP ,&no-litrel JCN
+ POP #08 ;litrel-icn ,&seg JMP
+ &no-litrel
+ [ LIT "; ] NEQk NIP ,&no-litabs JCN
+ POP #08 ;litabs-icn ,&seg JMP
+ &no-litabs
+ [ LIT ": ] NEQk NIP ,&no-rawabs JCN
+ POP #08 ;rawabs-icn ,&seg JMP
+ &no-rawabs
+
DUP #20 SUB #5e GTH ,draw-special JCN
&basic ( char -- )