(format-c) Cleanup

This commit is contained in:
neauoire 2023-11-30 20:04:09 -08:00
parent 5d380107e4
commit 251c2bf6a0
1 changed files with 51 additions and 43 deletions

View File

@ -7,62 +7,70 @@
@src $40
|0100 @on-reset ( -> )
|0100
@on-reset ( -> )
;on-console .Console/vector DEO2
BRK
@on-console ( -> )
[ LIT2r =src ]
( read input )
.Console/read DEI
DUP #20 LTH OVR #7f GTH ORA ?&>end
STH2kr slen #003f GTH2 ?&>end
STH2kr scap STA POP2r BRK
&>end
POP
STH2r <print-program>
#010f DEO
.Console/read DEI .src skey ?{ BRK }
<print-program>
#800f DEO
BRK
@<print-program> ( src* -- )
.File/name DEO2
;src .File/name DEO2
#0001 .File/length DEO2
;dict/header pstr
LIT2r 0000
;dict/header <pstr>
[ LIT2r 0000 ]
&stream ( -- )
#00 ,&buf STR
;&buf .File/read DEO2
.File/success DEI2 #0000 EQU2 ?&end
[ LIT2 "0 18 ] DEO [ LIT2 "x 18 ] DEO
[ LIT &buf $1 ] phex/b
[ LIT2 ", 18 ] DEO #2018 DEO
;&buf feof ?&end
[ LIT2 "0 18 ] DEO
[ LIT2 "x 18 ] DEO
[ LIT &buf $1 ] <phex>/b
[ LIT2 ", 18 ] DEO
#2018 DEO
INC2r
( linebreak )
STH2kr #000f AND2 ORA ?&no-lb
#0a18 DEO #0918 DEO
&no-lb
.File/success DEI2 ORA ?&stream
&end
POP2r
( lb ) STHkr #0f AND ?{
#0a18 DEO
;dict/footer
!pstr
#0918 DEO }
!&stream
&end POP2r #0a18 DEO
;dict/footer !<pstr>
(
@|stdlib )
@slen ( str* -- len* ) DUP2 scap SWP2 SUB2 JMP2r
@scap ( str* -- end* ) LDAk #00 NEQ [ JMP JMP2r ] &w INC2 LDAk ?&w JMP2r
@phex ( short* -- ) SWP phex/b &b DUP #04 SFT phex/c &c #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO JMP2r
@pstr ( str* -- ) &while LDAk #18 DEO INC2 LDAk ?&while POP2 JMP2r
@skey ( key buf -- proc )
OVR #21 LTH ?{
#00 SWP scap/ STA
#00 JMP2r }
POP2 #01 JMP2r
@dict
&header "unsigned 20 "char 20 "rom[] 20 "= 20 "{ 0a 09 $1
@scap ( str* -- end* )
&w ( -- )
INC2 & LDAk ?&w
JMP2r
@feof ( buf* -- f )
.File/read DEO2
.File/success DEI2 #0000 EQU2 JMP2r
@<phex> ( short* -- )
SWP <phex>/b
&b ( -- )
DUP #04 SFT <phex>/c
&c ( -- )
#0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
JMP2r
@<pstr> ( str* -- )
&w ( -- )
LDAk #18 DEO
INC2 & LDAk ?&w
POP2 JMP2r
@dict &header "unsigned 20 "char 20 "rom[] 20 "= 20 "{ 0a 09 $1
&footer "}; 0a 00