@@ 324,14 324,47 @@ JMP2r
@ciuc ( c -- f ) LIT "A SUB #19 LTH JMP2r
@cilc ( c -- f ) LIT "a SUB #1a LTH JMP2r
-@scap ( str* -- end* ) LDAk ?&w JMP2r &w INC2 LDAk ?&w JMP2r
-@sput ( chr str* -- ) scap STA JMP2r
-@slen ( str* -- len* ) DUP2 scap SWP2 SUB2 JMP2r
-@scmp ( a* b* -- f ) STH2 &l LDAk LDAkr STHr ANDk #00 EQU ?&e NEQk ?&e POP2 INC2 INC2r !&l &e NIP2 POP2r EQU JMP2r
-@sclr ( str* -- ) LDAk ?&w POP2 JMP2r &w STH2k #00 STH2r STA INC2 LDAk ?&w POP2 JMP2r
-@scpy ( src* dst* -- ) OVR2 LDA ?&e POP2 POP2 JMP2r &e STH2 &w LDAk STH2kr STA INC2r INC2 LDAk ?&w POP2 #00 STH2r STA JMP2r
+
+@scap ( str* -- end* )
+ LDAk ?&w
+JMP2r
+ &w ( -- )
+ INC2 LDAk ?&w
+JMP2r
+
+@sput ( chr str* -- )
+ scap STA
+JMP2r
+
+@slen ( str* -- len* )
+ DUP2 scap SWP2 SUB2
+JMP2r
+
+@scmp ( a* b* -- f )
+ STH2
+ &l ( -- )
+ LDAk LDAkr STHr ANDk #00 EQU ?&e
+ NEQk ?&e
+ POP2 INC2 INC2r !&l
+ &e ( -- )
+ NIP2 POP2r EQU
+JMP2r
+
+@sclr ( str* -- )
+ #00 ROT ROT
+ &w ( -- )
+ STAk INC2 LDAk ?&w
+ STA
+JMP2r
+
+@scpy ( src* dst* -- )
+ STH2
+ &w ( -- )
+ LDAk #00 STH2kr STA2 INC2r INC2 LDAk ?&w
+ POP2 POP2r
+JMP2r
+
@skey ( key buf -- proc ) OVR #21 LTH ?&eval #00 SWP sput #00 JMP2r &eval POP2 #01 JMP2r
-@pstr ( str* -- ) &w LDAk #19 DEO INC2 LDAk ?&w POP2 JMP2r
@scmp-wild ( a* b* -- flag )
@@ 409,7 442,7 @@ JMP2r
( padding )
LDA2k [ LIT2 "|_ ] NEQ2 ?&no-pad
OVR2 LDA LIT "| EQU ?&pass
- &no-pad
+ &no-pad
( literals )
LDA2k [ LIT2 "#_ ] NEQ2 ?&no-lit
DUP2 slen #0003 NEQ2 ?&no-byte
@@ 495,21 528,23 @@ JMP2r
@pdec ( short* -- )
- [ LIT2 00 _&z ] STR
- #2710 pdec/parse
- #03e8 pdec/parse
- #0064 pdec/parse
- #000a pdec/parse
- NIP #30 ADD #19 DEO
+ #2710 LIT2r 00fb
+ &w
+ DIV2k #000a DIV2k MUL2 SUB2 SWPr
+ EQUk OVR STHkr EQU AND ?&skip
+ DUP LIT "0 ADD #19 DEO INCr
+ &skip
+ POP2 #000a DIV2
+ SWPr INCr STHkr ?&w
+ POP2r POP2 POP2
JMP2r
-&parse ( short* den* -- short* )
-
- DIV2k DUPk [ LIT &z $1 ] EQU ?&skip
- DUP #30 ADD #19 DEO [ LIT2 ff _&z ] STR
- &skip POP MUL2 SUB2
-
+@pstr ( str* -- )
+ &w
+ LDAk #19 DEO
+ INC2 LDAk ?&w
+ POP2
JMP2r
(