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