Added the hx util

This commit is contained in:
Devine Lu Linvega 2023-03-17 10:28:04 -07:00
parent 40989de536
commit f595eb172b
3 changed files with 85 additions and 0 deletions

35
hx/build.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh -e
ASM="uxncli $HOME/roms/drifblim.rom"
EMU="uxncli"
LIN="uxncli $HOME/roms/uxnlin.rom"
APP="$HOME/bin/butler push"
SRC="hx.tal"
DST="hx.rom"
CPY="$HOME/roms"
ARG="test.txt"
echo ">> Cleaning"
rm -rf bin
mkdir bin
if [[ "$*" == *"--lint"* ]]
then
echo ">> Linting $SRC"
$LIN $SRC
fi
echo ">> Assembling $SRC"
$ASM $SRC $DST
if [[ "$*" == *"--save"* ]]
then
echo ">> Saving $DST"
cp $DST $CPY
fi
echo ">> Running $DST"
$EMU $DST $ARG

49
hx/hx.tal Normal file
View File

@ -0,0 +1,49 @@
( Usage: uxncli hx.rom file.bin )
|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1
|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
|0000
@src $40
|0100 ( -> )
;await-src .Console/vector DEO2
BRK
@await-src ( -> )
.Console/read DEI .src skey ?on-ready
BRK
@on-ready ( -> )
;src .File/name DEO2
#0002 .File/length DEO2
LIT2r 0000
&stream
#0000 ,&buf STR2
;&buf .File/read DEO2
.File/success DEI2 #0000 EQU2 ?&eof
;&buf LDA2 phex #2018 DEO
INC2r
( linebreak )
STH2kr #000f AND2 ORA ?&no-lb
#0a18 DEO &no-lb
!&stream &eof
POP2r
#0a18 DEO
#010f DEO
BRK
&buf $2
@skey ( key buf -- proc ) OVR #21 LTH ?&eval #00 SWP sput #00 JMP2r &eval POP2 #01 JMP2r
@scap ( str* -- end* ) LDAk #00 NEQ [ JMP JMP2r ] &w INC2 LDAk ?&w JMP2r
@sput ( chr str* -- ) scap INC2k #00 ROT ROT STA STA JMP2r
@pstr ( str* -- ) &w LDAk #18 DEO INC2 LDAk ?&w POP2 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

1
hx/test.txt Normal file
View File

@ -0,0 +1 @@
wigjewigjewigjewigjewigjewigjcncmnbegejgiwejgieg