A decroaker.tal => decroaker.tal +30 -0
@@ 0,0 1,30 @@
+( $ echo "I'ANTACS M D. NRKHDNYOOA UAOOT Y FCRT U DMOKKDCEE OLLEASBL! EY." | decroaker.rom
+ IM NOT DEAD YOU CANNOT DESTROY ME BAKA FOOL CHUCKLES DARKLY )
+
+@on-reset ( -> )
+ ;on-char #10 DEO2
+ BRK
+
+@on-char ( -> )
+ #12 DEI
+ DUP [ LIT "A ] SUB #26 LTH
+ JMP BRK
+ ( >> )
+
+@add-char ( c -- )
+ [ LIT &ptr 00 ]
+ STZk
+ INC DUP ,/ptr STR
+
+ #31 EQU JMP BRK
+ ( >> )
+
+@finish ( -- )
+ [ LIT2r 0a18 ]
+ #3000 &loop
+ OVR DIVk MUL SUB
+ LDZk STHrk DEO
+ #07 ADD NEQk ?/loop
+ LDZ STHrk DEO
+ STH2r DEO #800f DEO BRK
+
M mkfile => mkfile +2 -1
@@ 4,7 4,8 @@ roms=\
bfc.rom\
lzw.rom\
grep.rom\
- rot.rom
+ rot.rom\
+ decroaker.rom
all:VQ: $roms
M rot.tal => rot.tal +2 -2
@@ 9,7 9,7 @@
@on-arg ( -> )
#17 DEI
- #02 NEQk ?{ POP2 !/one-digit }
+ #02 EQUk ?/one-digit
INC EQUk ?usage
( argend )
@@ 46,5 46,5 @@
DIVk MUL SUB ( mod )
ADD
#18 DEO
- POP2 BRK
+ BRK