~rabbits/left

5f8f03867300dc1cc8421cf04f1aaf3884a739b3 — neauoire 4 months ago 3243535
Added colors back
2 files changed, 39 insertions(+), 42 deletions(-)

M src/left.tal
M src/manifest.tal
M src/left.tal => src/left.tal +35 -38
@@ 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 ( -- )


M src/manifest.tal => src/manifest.tal +4 -4
@@ 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