From 55f239d000936c242d0ed32c7d7aaf30744e5f8f Mon Sep 17 00:00:00 2001 From: Aleteoryx Date: Tue, 28 Jul 2026 02:25:21 -0400 Subject: [PATCH] ibm, fold, dos<->unix --- dos2unix.tal | 17 +++++++++++++++++ fold.tal | 38 ++++++++++++++++++++++++++++++++++++++ ibm.tal | 22 ++++++++++++++++++++++ mkfile | 6 +++++- unix2dos.tal | 8 ++++++++ 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 dos2unix.tal create mode 100644 fold.tal create mode 100644 ibm.tal create mode 100644 unix2dos.tal diff --git a/dos2unix.tal b/dos2unix.tal new file mode 100644 index 0000000000000000000000000000000000000000..d2368a75ce15715bb7c859590c249bab56452a91 --- /dev/null +++ b/dos2unix.tal @@ -0,0 +1,17 @@ +@on-reset ( -> ) + ;on-input #10 DEO2 + BRK + +@on-input ( last-byte -> last-byte ) + #12 DEI + + [ LIT &need-byte 01 ] + [ LIT2 00 _/need-byte ] STR + ?{ + SWP + DUP2 #0a0d NEQ2 ?{ + POP + [ LIT2 01 _/need-byte ] STR + } + #18 DEO ( #010e DEO ) + } diff --git a/fold.tal b/fold.tal new file mode 100644 index 0000000000000000000000000000000000000000..80c8cbb8bbbde7fdd3c711cc3982a5ca521a3b87 --- /dev/null +++ b/fold.tal @@ -0,0 +1,38 @@ +@on-reset ( -> ) + ;on-char #10 DEO2 BRK + + +@on-char ( linelen toklen -> linelen toklen ) + OVR INC #49 NEQ ?{ + NEQk ?{ put-token } + #0a18 DEO #00 SWP + } + + #0a12 DEI EQU ?newline + #2012 DEI EQU ?space + + #12 DEI OVR STZ + INC SWP INC SWP + + BRK + +@newline ( linelen toklen -- linelen toklen ) + put-nonempty + #0a18 DEO #00 SWP + BRK +@space ( linelen toklen -- linelen toklen ) + SWP INC SWP + put-nonempty + #2018 DEO + BRK + +@put-nonempty ( linelen toklen -- linelen toklen ) + DUP #00 EQU ?{ put-token } + JMP2r + +@put-token ( linelen toklen -- linelen toklen ) + #00 + &loop + LDZk #18 DEO + INC NEQk ?/loop + POP2 #00 JMP2r diff --git a/ibm.tal b/ibm.tal new file mode 100644 index 0000000000000000000000000000000000000000..76c16c82e6d0c65317e2eeee72063556510fffaa --- /dev/null +++ b/ibm.tal @@ -0,0 +1,22 @@ +@on-reset + [ LITr 01 ] + #18 + @loop24 + #14 + @loop80 + ;str puts + #2018 DEO + STHrk SUB + DUP ?loop80 + POP + #0a18 DEO + STHrk SUB + DUP ?loop24 + BRK + +@puts ( s* -- ) + LDAk #18 DEO + INC2 LDAk ?puts + POP2 JMP2r + +@str "IBM diff --git a/mkfile b/mkfile index b29a9ade49cbc320926b2533852beac8daff86d4..32689589d713f4e17f735ffad3659857bd064af4 100644 --- a/mkfile +++ b/mkfile @@ -6,7 +6,11 @@ roms=\ grep.rom\ rot.rom\ decroaker.rom\ - morse.rom + morse.rom\ + fold.rom\ + ibm.rom\ + dos2unix.rom\ + unix2dos.rom all:VQ: $roms diff --git a/unix2dos.tal b/unix2dos.tal new file mode 100644 index 0000000000000000000000000000000000000000..70df410665bdade566952568034058624019e3da --- /dev/null +++ b/unix2dos.tal @@ -0,0 +1,8 @@ +@on-reset ( -> ) + ;on-input #10 DEO2 + BRK + +@on-input ( -> ) + #12 DEI + DUP #0a NEQ ?{ #0d18 DEO } + #18 DEO