(stdlib) Starting testing suite

This commit is contained in:
Devine Lu Linvega 2023-04-10 15:02:25 -07:00
parent 20a01503de
commit fda853b99f
2 changed files with 101 additions and 0 deletions

26
cli/stdlib/build.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh -e
ASM="uxncli $HOME/roms/drifblim.rom"
EMU="uxncli"
LIN="uxncli $HOME/roms/uxnlin.rom"
ID="stdlib"
SRC="${ID}.tal"
DST="${ID}.rom"
CPY="$HOME/roms"
ARG=""
if [[ "$*" == *"--lint"* ]]
then
$LIN $SRC
fi
$ASM $SRC $DST
if [[ "$*" == *"--save"* ]]
then
cp $DST $CPY
fi
$EMU $DST $ARG

75
cli/stdlib/stdlib.tal Normal file
View File

@ -0,0 +1,75 @@
|0100
;tests/end ;tests
&l
LDA2k JSR2 test
INC2 INC2 GTH2k ?&l
POP2 POP2
#800f DEO
BRK
@test ( f -- )
#30 ADD #18 DEO #0a18 DEO
JMP2r
@tests
=test-dec1
=test-dec2
=test-hex1
=test-hex2
&end
(
@|tests )
@test-dec1 ;dict/dec1 sdec #1234 EQU2 JMP2r
@test-dec2 ;dict/dec2 sdec #0123 EQU2 JMP2r
@test-hex1 ;dict/hex1 shex #12c0 EQU2 JMP2r
@test-hex2 ;dict/hex2 shex #034f EQU2 JMP2r
(
@|stdlib )
@sdec ( str* -- val* )
LIT2r 0000
&w
LIT2r 000a MUL2r
LITr 00
LDAk #30 SUB STH ADD2r
INC2 LDAk ?&w
POP2
STH2r
JMP2r
@shex ( str* -- val* )
LIT2r 0000
&w
LITr 40 SFT2r
LITr 00
LDAk chex STH ADD2r
INC2 LDAk ?&w
POP2
STH2r
JMP2r
@chex ( c -- val|ff )
LIT "0 SUB DUP #09 GTH JMP JMP2r
#27 SUB DUP #0f GTH JMP JMP2r
POP #ff
JMP2r
@dict
&dec1 "4660 $1
&dec2 "291 $1
&hex1 "12c0 $1
&hex2 "34f $1