~rabbits/left

fcabc929baa75b0fae26d82f9ad5ef043d38c0a3 — Devine Lu Linvega 2 months ago f7f3f73
Minor optimization to draw-times
2 files changed, 22 insertions(+), 31 deletions(-)

M src/left.tal
M src/manifest.tal
M src/left.tal => src/left.tal +3 -12
@@ 1094,9 1094,8 @@
@file-inject ( name* -- )
	DUP2 file-is-bin? ?file-inject-binary
	DUP2 file-size ORAk ?{ POP2 POP2 JMP2r }
	STH2
	STH2k .File/length DEO2
	.File/name DEO2
	STH2kr .File/length DEO2
	( | erase when selection length )
	has-empty? ?{ erase-selection }
	( push right ) get-from STH2kr <msfr>


@@ 1611,11 1610,7 @@
	POP2 get-eof SWP2 SUB2 ,&length STR2
	;&mmu .System/expansion DEO2
	JMP2r

	&mmu 01
	&length 0000 0000
	&src 0000 0000
	&dst 0000
	&mmu 01 &length 0000 0000 &src 0000 0000 &dst 0000

@<msfr> ( a* distance* -- )
	ADD2k ,&dst STR2


@@ 1623,11 1618,7 @@
	POP2 get-eof SWP2 SUB2 ,&length STR2
	;&mmu .System/expansion DEO2
	JMP2r

	&mmu 02
	&length 0000 0000
	&src 0000 0000
	&dst 0000
	&mmu 02 &length 0000 0000 &src 0000 0000 &dst 0000

@sseg? ( a* b* -- bool )
	STH2

M src/manifest.tal => src/manifest.tal +19 -19
@@ 14,6 14,7 @@
	.Mouse/x DEI2 #0004 ADD2 get-x-cat menu-select-cat
	( release ) [ LIT2 00 -Mouse/state ] DEO
	BRK

	&no-touch-cat ( when sub active )
	;<draw-menu>/sel LDA #ff EQU ?&no-sub
	( | when sel changed )


@@ 21,13 22,12 @@
	( | changed )
	DUP ;<draw-sub>/sel LDA EQU ?&no-change
	DUP ;<draw-sub>/sel STA
	;<draw-menu>/sel LDA <draw-sub>
	&no-change POP
	;<draw-menu>/sel LDA <draw-sub> &no-change POP
	( | when touch sub )
	[ LIT2 00 -Mouse/state ] DEI EQU ?&no-touch-sub
	;<draw-sub>/sel LDA menu-select-sub
	( release ) [ LIT2 00 -Mouse/state ] DEO
	&no-touch-sub BRK
	( release ) [ LIT2 00 -Mouse/state ] DEO &no-touch-sub BRK

	&no-sub ( don't leave if menu is active )
	;<draw-menu>/sel LDA INC ?&no-leave
	.Mouse/y DEI2 #0018 LTH2 ?&no-leave


@@ 55,8 55,7 @@
	( | draw )
	redraw-all #ff ;<draw-sub>/sel STA
	DUP ;<draw-menu>/sel STA
	<draw-sub>
	!<draw-menu>
	<draw-sub> !<draw-menu>

@menu-select-sub ( sub -- )
	,&t STR


@@ 87,8 86,7 @@
		[ LIT2 &t $1 &id 00 ] INCk ,&id STR
		EQU ?&end
		INC2k get-strw #0008 ADD2 STH2
		ADD2r skip-cat LDAk ?&>w
	&end POP2 STH2r
		ADD2r skip-cat LDAk ?&>w &end POP2 STH2r
	( left padding + 4 ) #000e ADD2 JMP2r

@get-x-cat ( x* -- <cat> )


@@ 157,10 155,12 @@
@<draw-times> ( color times addr* auto -- )
	.Screen/auto DEO
	.Screen/addr DEO2
	SWP STH
	[ LITr -Screen/sprite ]
	&>l ( -- )
		OVR .Screen/sprite DEO
		DEOkr
		INC DUP ?&>l
	POP2 JMP2r
	POP POP2r JMP2r

@<draw-label-top> ( str* sel -- )
	[ LIT2 15 -Screen/auto ] DEO


@@ 210,8 210,9 @@
	DUP #1b NEQ ?{ ;&esc !&cat }
	DUP #7f NEQ ?{ ;&del !&cat }
	DUP ;&buf sput &end POP ;&buf JMP2r
	&buf $8 &buttons "ABsSUDLR $1
	&cat ;&buf scat !&end
	&buf $8
	&buttons "ABsSUDLR $1 &cat ;&buf scat !&end

	&bsp "bsp $1
	&tab "tab $1
	&ent "ent $1


@@ 238,8 239,7 @@
@|stdlib )

@scap ( str* -- end* )
	&>w ( -- )
		INC2 & LDAk ?&>w
	INC2 & LDAk ?scap
	JMP2r

@sput ( chr str* -- )


@@ 259,10 259,11 @@

@scat ( src* dst* -- )
	scap/
	( >> )

@scpy ( src* dst* -- )
	STH2
	!&
	STH2 !&

	&>w ( -- )
		LDAk #00 STH2kr STA2
		INC2r INC2 & LDAk ?&>w


@@ 284,9 285,8 @@
	JMP2r

@pstr ( str* -- )
	&>w ( -- )
		LDAk #18 DEO
		INC2 LDAk ?&>w
	LDAk #18 DEO
	INC2 LDAk ?pstr
	POP2 JMP2r

@exit ( -- )