~rabbits/left

06849a3decea3f89c5546d28663f69ab04eae29e — neauoire 4 months ago de68618
Optimized chex
1 files changed, 4 insertions(+), 19 deletions(-)

M src/left.tal
M src/left.tal => src/left.tal +4 -19
@@ 1216,10 1216,11 @@ JMP2
(
@|stdlib )

@shex ( str* -- val* ) LIT2r 0000 &w LITr 40 SFT2r LITr 00 LDAk ,chex JSR STH ADD2r INC2 LDAk ,&w JCN POP2 STH2r JMP2r
@chex ( c -- val ) LIT "0 SUB DUP #09 GTH JMP JMP2r #27 SUB DUP #0f GTH JMP JMP2r POP #ff JMP2r
@msfl ( b* a* len* -- ) STH2 SWP2 EQU2k ,&e JCN &l DUP2k STH2kr ADD2 LDA ROT ROT STA INC2 GTH2k ,&l JCN POP2 POP2 &e POP2r JMP2r
@msfr ( b* a* len* -- ) STH2 EQU2k ,&e JCN &l DUP2 LDAk ROT ROT STH2kr ADD2 STA #0001 SUB2 LTH2k ,&l JCN POP2 POP2 &e POP2r JMP2r
@sseg ( a* b* -- f ) STH2 &l LDAk LDAkr STHr NEQ ,&e JCN INC2k LDA #00 EQU ,&e JCN INC2 INC2r ,&l JMP &e LDA LDAr STHr EQU JMP2r
@shex ( str* -- val* ) LIT2r 0000 &w LITr 40 SFT2r LITr 00 LDAk ,chex JSR STH ADD2r INC2 LDAk ,&w JCN POP2 STH2r JMP2r
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ,&loop JCN POP2 POP2 POP2r JMP2r
@sclr ( str* -- ) &w STH2k #00 STH2r STA INC2 LDAk ,&w JCN POP2 JMP2r



@@ 1229,23 1230,7 @@ JMP2
	OVR #21 LTH ,&eval JCN #00 SWP ;sput JSR2 #00

JMP2r

	&eval POP2 #01

JMP2r

	&bs NIP #00 SWP ;spop JSR2 #00

JMP2r

@chex ( char -- <hex> )

	DUP #2f GTH OVR #3a LTH AND ,&n JCN
	DUP #60 GTH OVR #67 LTH AND ,&l JCN
		POP #ff

JMP2r
	&n #30 SUB JMP2r
	&l #57 SUB JMP2r
	&eval POP2 #01 JMP2r
	&bs NIP #00 SWP ;spop JSR2 #00 JMP2r

~src/manifest.tal