diff --git a/cli/lz/build.sh b/cli/lz/build.sh index fdf6755..dbbc581 100755 --- a/cli/lz/build.sh +++ b/cli/lz/build.sh @@ -20,7 +20,6 @@ cc ulzdec.c $DEBUG_flags -o ulzdec cc ulzenc.c $DEBUG_flags -o ulzenc $ASM ulzdec.tal ulzdec.rom $ASM ulzenc.tal ulzenc.rom -$ASM ulzdis.tal ulzdis.rom if [[ "$*" == *"--install"* ]] then diff --git a/cli/lz/ulzdec.tal b/cli/lz/ulzdec.tal index 23019b9..e1f9dff 100644 --- a/cli/lz/ulzdec.tal +++ b/cli/lz/ulzdec.tal @@ -1,17 +1,21 @@ ( ulz decoder ) -|10 @Console &vector $2 &read $1 &pad $5 &write $1 &err $1 +|10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1 |a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 -|00 @src $30 -@dst $30 - -@ptr $1 +|0000 + @src $30 + @dst $30 + @ptr $1 |0100 -@ready-src ( -> ) +@on-reset ( -> ) + ;meta #06 DEO2 + .Console/type DEI #03 AND ?{ + ;dict/usage / + #010f DEO } ;&await .Console/vector DEO2 BRK &await ( -> ) @@ -25,24 +29,33 @@ .Console/read DEI .dst skey ?on-ready BRK +@meta $1 + ( name ) "Ulzdec 0a + ( desc ) "ULZ 20 "Decoder 0a + ( auth ) "By 20 "Devine 20 "Lu 20 "Linvega 0a + ( date ) "19 20 "Nov 20 "2023 $1 + ( exts ) 00 + @on-ready ( -> ) - ;src decode_ulz - ( export ) ;dst .File/name DEO2 + ;src + ( | export ) + ;dst .File/name DEO2 ;mem DUP2 .ptr LDZ2 SUB2 .File/length DEO2 .File/write DEO2 ( halt ) #800f DEO BRK -@decode_ulz ( str* -- ) +@ ( str* -- ) ;mem .ptr STZ2 .File/name DEO2 &stream ( -- ) #0001 .File/length DEO2 ;&b DUP2 .File/read DEO2 .File/success DEI2 ORA ?{ POP2 JMP2r } - [ LIT &b $1 ] decode_ulz_byte !&stream + [ LIT &b $1 ] + !&stream -@decode_ulz_byte ( byte -- ) +@ ( byte -- ) DUP #80 AND ?op-cpy @op-lit ( byte -- ) @@ -55,8 +68,9 @@ #7f AND DUP #40 AND ?{ #00 SWP !© } #3f AND getc © ( length* -- ) - .ptr LDZ2 #00 getc INC2 SUB2 ,&offset STR2 #0004 ADD2 #0000 - &l ( -- ) + .ptr LDZ2 #00 getc INC2 SUB2 ,&offset STR2 + #0004 ADD2 #0000 + &l ( length* i* -- ) ( get ) DUP2 [ LIT2 &offset $2 ] ADD2 LDA ( put ) .ptr LDZ2 STAk INC2 .ptr STZ2 POP INC2 GTH2k ?&l @@ -84,6 +98,13 @@ ;&b .File/read DEO2 [ LIT &b $1 ] JMP2r +@ ( str* -- ) + &w LDAk #19 DEO + INC2 & LDAk ?&w + POP2 JMP2r + +@dict &usage "usage: 20 "ulzdec.rom 20 "a.bin 20 "b.ulz 0a $1 + @mem