| ... | ... |
@@ -57,10 +57,10 @@ EOD |
| 57 | 57 |
expect_failure 'Invalid hexadecimal: #000' <<'EOD' |
| 58 | 58 |
|1000 #000 |
| 59 | 59 |
EOD |
| 60 |
-expect_failure 'Unrecognised token: 0' <<'EOD' |
|
| 60 |
+expect_failure 'Label not found: 0' <<'EOD' |
|
| 61 | 61 |
|1000 0 |
| 62 | 62 |
EOD |
| 63 |
-expect_failure 'Unrecognised token: 000' <<'EOD' |
|
| 63 |
+expect_failure 'Label not found: 000' <<'EOD' |
|
| 64 | 64 |
|1000 000 |
| 65 | 65 |
EOD |
| 66 | 66 |
expect_failure 'Address not in zero page: .hello' <<'EOD' |
| ... | ... |
@@ -75,7 +75,7 @@ expect_failure 'Address outside range: ,hello' <<'EOD' |
| 75 | 75 |
|1000 @hello |
| 76 | 76 |
|2000 ,hello |
| 77 | 77 |
EOD |
| 78 |
-expect_failure 'Unrecognised token: hello' <<'EOD' |
|
| 78 |
+expect_failure 'Label not found: hello' <<'EOD' |
|
| 79 | 79 |
hello |
| 80 | 80 |
EOD |
| 81 | 81 |
expect_failure 'Macro already exists: %me' <<'EOD' |
| ... | ... |
@@ -112,7 +112,7 @@ EOD |
| 112 | 112 |
expect_failure 'Label not found: .blah' <<'EOD' |
| 113 | 113 |
|1000 .blah |
| 114 | 114 |
EOD |
| 115 |
-expect_failure "Unrecognised token: 'a" <<'EOD' |
|
| 115 |
+expect_failure "Label not found: 'a" <<'EOD' |
|
| 116 | 116 |
|1000 'a |
| 117 | 117 |
EOD |
| 118 | 118 |
echo 'All OK' |
| ... | ... |
@@ -732,6 +732,20 @@ |
| 732 | 732 |
&ignore-error |
| 733 | 733 |
JMP2r |
| 734 | 734 |
|
| 735 |
+@asma-jci |
|
| 736 |
+ #20 ,asma-jxi JMP ( tail call ) |
|
| 737 |
+ |
|
| 738 |
+@asma-jmi |
|
| 739 |
+ #40 |
|
| 740 |
+ ( fall through ) |
|
| 741 |
+ |
|
| 742 |
+@asma-jxi |
|
| 743 |
+ ;asma-write-byte JSR2 |
|
| 744 |
+ ,asma-addr-helper JSR |
|
| 745 |
+ ;asma/addr LDA2 SUB2 |
|
| 746 |
+ #0002 SUB2 |
|
| 747 |
+ ;asma-write-short JMP2 ( tail call ) |
|
| 748 |
+ |
|
| 735 | 749 |
@asma-literal-rel-addr |
| 736 | 750 |
LIT LIT ;asma-write-byte JSR2 |
| 737 | 751 |
( fall through ) |
| ... | ... |
@@ -851,8 +865,7 @@ |
| 851 | 865 |
|
| 852 | 866 |
¬-macro |
| 853 | 867 |
POP2 |
| 854 |
- ;asma-msg-token ;asma/error STA2 |
|
| 855 |
- JMP2r |
|
| 868 |
+ #60 ;asma-jxi JMP2 ( tail call ) |
|
| 856 | 869 |
|
| 857 | 870 |
@asma-include |
| 858 | 871 |
;heap LDA2 |
| ... | ... |
@@ -867,7 +880,6 @@ |
| 867 | 880 |
@asma-msg-zero-page "Address 20 "not 20 "in 20 "zero 20 "page 00 |
| 868 | 881 |
@asma-msg-relative "Address 20 "outside 20 "range 00 |
| 869 | 882 |
@asma-msg-label "Label 20 "not 20 "found 00 |
| 870 |
-@asma-msg-token "Unrecognised 20 "token 00 |
|
| 871 | 883 |
@asma-msg-macro "Macro 20 "already 20 "exists 00 |
| 872 | 884 |
@asma-msg-rewound "Memory 20 "overwrite 00 |
| 873 | 885 |
@asma-msg-redefined "Label 20 "redefined 00 |
| ... | ... |
@@ -892,7 +904,8 @@ |
| 892 | 904 |
&7d $2 $2 "} 00 :asma-macro-end |
| 893 | 905 |
|
| 894 | 906 |
@asma-first-char-normal |
| 895 |
- &22 $2 $2 "" 00 :asma-raw-word |
|
| 907 |
+ &21 $2 $2 "! 00 :asma-jmi |
|
| 908 |
+ &22 :&21 $2 "" 00 :asma-raw-word |
|
| 896 | 909 |
&23 :&22 $2 "# 00 :asma-literal-hex |
| 897 | 910 |
&24 :&23 :&25 "$ 00 :asma-pad-relative |
| 898 | 911 |
&25 $2 $2 "% 00 :asma-macro-define |
| ... | ... |
@@ -905,7 +918,8 @@ |
| 905 | 918 |
&3a $2 $2 ": 00 :asma-abs-addr |
| 906 | 919 |
&3b :&3a $2 "; 00 :asma-literal-abs-addr |
| 907 | 920 |
&3d :&3b :&40 "= 00 :asma-abs-addr |
| 908 |
- &40 $2 $2 "@ 00 :asma-label-define |
|
| 921 |
+ &3f $2 $2 "? 00 :asma-jci |
|
| 922 |
+ &40 :&3f $2 "@ 00 :asma-label-define |
|
| 909 | 923 |
&5f :&3d :&7d "_ 00 :asma-rel-addr |
| 910 | 924 |
&7b $2 $2 "{ 00 :asma-ignore
|
| 911 | 925 |
&7c :&7b $2 "| 00 :asma-pad-absolute |