@@ 16,7 16,7 @@
@cursor
&x $2 &y $2
@textarea
- &color $1 &fixed $1
+ &fixed $1
&highlight $1 &lines $2 &length $2
&commented $1
@scrollbar
@@ 786,8 786,9 @@ JMP2
JMP2
-@clear-textarea ( -- )
+@draw-textarea ( -- )
+ ( clear )
#71 .Screen/auto DEO
#0020 .Screen/y DEO2
.Screen/height DEI2 #06 SFT2 NIP INC #00
@@ 803,60 804,56 @@ JMP2
POP2
#15 .Screen/auto DEO
-JMP2r
-
-@draw-textarea ( -- )
-
- ,clear-textarea JSR
-
+ ( paint )
#0010 .scroll/x LDZ2 SUB2 #0080 ADD2 .Screen/x DEO2
#0020 .Screen/y DEO2
#00 .textarea/commented STZ
- ;get-eof JSR2 INC2 .scroll/addr LDZ2
+ .scroll/y LDZ2 .textarea/lines LDZ2 ADD2 ;line-to-addr JSR2 .scroll/addr LDZ2
&loop
- ,scan-color JSR
- DUP2 ,is-selected JSR STH
- LDAk .textarea/color LDZ #09 STHr [ JMP SWP POP ]
- ;draw-ufx JSR2
- ( linebreak )
- LDAk #0a NEQ ,&no-lb JCN
- .Screen/y DEI2 .Screen/height DEI2 GTH2 ,&end JCN
- &no-lb
- INC2 GTH2k ,&loop JCN
+ ,draw-token JSR
+ .Screen/y DEI2 .Screen/height DEI2 GTH2 ,&end JCN
+ GTH2k ,&loop JCN
&end
POP2 POP2
;draw-scrollbar ( .. )
JMP2
-@is-selected ( addr* -- bool )
+@draw-token ( str* -- str* )
- DUP2 .selection/from LDZ2 LTH2 ,&unselected JCN
- DUP2 .selection/to LDZ2 #0001 SUB2 GTH2 ,&unselected JCN
- POP2 #00 JMP2r
- &unselected
- POP2 #01
+ ;get-color JSR2 STH
+ &w
+ ;is-selected JSR2 STH
+ LDAk STH2kr #08 ROT ROT [ JMP SWP POP ] ;draw-ufx JSR2 POPr
+ INC2 LDAk #20 GTH ,&w JCN
+ &w2
+ ;is-selected JSR2 STH
+ LDAk STH2kr #08 ROT ROT [ JMP SWP POP ] ;draw-ufx JSR2 POPr
+ INC2 LDAk #21 LTH ,&w2 JCN
+ POPr
JMP2r
-@scan-color ( addr* -- addr* )
+@is-selected ( addr* -- bool )
+
+ DUP2
+ STH2k .selection/from LDZ2 #0001 SUB2 GTH2
+ STH2r .selection/to LDZ2 LTH2
+ AND
- ( on spacer ) DUP2 #0001 SUB2 LDA #21 LTH JMP JMP2r
+JMP2r
- .textarea/highlight LDZ ,&default JCN
- .textarea/commented LDZ ,&comment JCN
+@get-color ( addr* -- addr* color )
- ( labels ) LDAk DUP LIT "@ EQU SWP LIT "& EQU ORA ,&label JCN
- ( includes ) LDAk #7d GTH ,&include JCN
- ( tab-enter ) LDA2k #090a EQU2 ,&include JCN
- &default #01 .textarea/color STZ JMP2r
- &label #02 .textarea/color STZ JMP2r
- &comment #03 .textarea/color STZ JMP2r
- &include #04 .textarea/color STZ
+ LDAk LIT "@ EQU ,&label JCN
+ LDAk LIT "& EQU ,&label JCN
+ #01
JMP2r
+&label #02 JMP2r
+
@draw-uf2 ( text* color -- )
,draw-ufx/color STR
@@ 894,7 891,7 @@ JMP2r
@draw-special ( char -- )
[ #09 ] NEQk NIP ,&no-tab JCN
- POP #10 ;tab-icn ,draw-ufx/seg JMP
+ POP #10 ;tab-icn ;draw-ufx/seg JMP2
&no-tab
[ #0a ] NEQk NIP ,&no-linebreak JCN
POP #08 ;linebreak-icn ,draw-ufx/seg JSR
@@ 902,9 899,9 @@ JMP2r
( TEXTAREA-X0 ) #0010 .scroll/x LDZ2 SUB2 #0080 ADD2 .Screen/x DEO2
JMP2r
&no-linebreak
- POP #08 ;checkered-icn ,draw-ufx/seg ( .. )
+ POP #08 ;checkered-icn ;draw-ufx/seg ( .. )
-JMP
+JMP2
@draw-scrollbar ( -- )
@@ 353,11 353,11 @@ JMP2r
@scpy ( src* dst* -- ) STH2 &w LDAk STH2kr STA INC2r INC2 LDAk ,&w JCN POP2 #00 STH2r STA JMP2r
@mclr ( src* len* -- ) OVR2 ADD2 SWP2 &l STH2k #00 STH2r STA INC2 GTH2k ,&l JCN POP2 POP2 JMP2r
-@print ( short* -- )
+@phex ( short* -- )
- SWP ,&byte JSR
- &byte ( byte -- ) DUP #04 SFT ,&char JSR
- &char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
+ SWP ,&b JSR
+ &b ( byte -- ) DUP #04 SFT ,&c JSR
+ &c ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
JMP2r