~rabbits/drifblim

e5093ae1dc7536a85933c4d8d0012913968a1d35 — neauoire 12 days ago 46edd89 main
Added test for rom length
3 files changed, 25 insertions(+), 17 deletions(-)

M src/drifblim.tal
M tests.sh
A tests/err-length.tal
M src/drifblim.tal => src/drifblim.tal +7 -6
@@ 36,12 36,11 @@
	.Console/vector DEO2
	BRK

@meta
	00
@meta $1
	( name ) "Drifblim 0a
	( desc ) "Uxntal 20 "Assembler 0a
	( auth ) "By 20 "Devine 20 "Lu 20 "Linvega 0a
	( date ) "9 20 "Oct 20 "2023 $1
	( date ) "19 20 "Nov 20 "2023 $1
	( exts ) 00

(


@@ 232,7 231,9 @@
@<set-length> ( byte -- )
	?{ JMP2r }
	.scan LDZ ?{ JMP2r }
	.head LDZ2 OVR ?{ ;err/zeropage <set-error> }
	.head LDZ2
	( ) DUP2 OVR ?{ ;err/zeropage <set-error> }
	( ) #8000 LTH2 ?{ ;err/length <set-error> }
	.length STZ2
	JMP2r



@@ 421,8 422,7 @@
@<sclr> ( str* -- )
	#00 ROT ROT
	&w ( -- )
		STAk
		INC2 LDAk ?&w
		STAk INC2 LDAk ?&w
	STA
	JMP2r



@@ 468,6 468,7 @@
	&file "File $1
	&duplicate "Duplicate $1
	&number "Number $1
	&length "Length $1
	&reference "Reference $1
	&distance "Distance $1
	&symbol "Symbol $1

M tests.sh => tests.sh +15 -11
@@ 18,48 18,52 @@ $emu $dst
# Usage(missing dst)
$emu $dst examples/hello.tal

echo "          File missing.tal in reset"
echo "          File missing.tal in RESET"
$emu $dst missing.tal "bin/res.rom"

echo "          File project.tal in reset"
echo "          File project.tal in RESET"
$emu $dst "tests/err-file.tal" "bin/res.rom"

echo "          Duplicate &sub in label."
$emu $dst "tests/err-dup.tal" "bin/res.rom"

echo "          Reference .missing in reset."
echo "          Reference .missing in RESET."
$emu $dst "tests/err-ref.tal" "bin/res.rom"

echo "          Number #122325 in reset."
echo "          Number #122325 in RESET."
$emu $dst "tests/err-lithex.tal" "bin/res.rom"

echo "          Number 122325 in reset."
echo "          Number 122325 in RESET."
$emu $dst "tests/err-rawhex.tal" "bin/res.rom"

echo "          Distance ,label in reset."
echo "          Distance ,label in RESET."
$emu $dst "tests/err-dis.tal" "bin/res.rom"

echo "          Zero-page #12 in reset."
echo "          Zero-page #12 in RESET."
$emu $dst "tests/err-zep.tal" "bin/res.rom"

echo "          Rewind |0100 in reset."
echo "          Rewind |0100 in RESET."
$emu $dst "tests/err-rew.tal" "bin/res.rom"

echo "          Symbol @1234 in 1234."
$emu $dst "tests/err-hex.tal" "bin/res.rom"

echo "          Opcode ADD2q in reset."
echo "          Opcode ADD2q in RESET."
$emu $dst "tests/err-opc.tal" "bin/res.rom"

echo "          Number 1234567 in reset."
echo "          Number 1234567 in RESET."
$emu $dst "tests/err-raw.tal" "bin/res.rom"

echo "          Nested ( in reset."
echo "          Nested ( in RESET."
$emu $dst "tests/err-com.tal" "bin/res.rom"

echo "          Length ab in RESET"
$emu $dst "tests/err-length.tal" "bin/res.rom"

echo "          Token @token-length-30-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa in reset"
$emu $dst "tests/err-toklen.tal" "bin/res.rom"

echo "          Sublabel &some-long-sublabel in token-length-20-aaaaaaaaaaaaaaaa"
$emu $dst "tests/err-lablen.tal" "bin/res.rom"



A tests/err-length.tal => tests/err-length.tal +3 -0
@@ 0,0 1,3 @@
( length too long )

$9000 ab