aboutsummaryrefslogtreecommitdiff
path: root/bas.c
diff options
context:
space:
mode:
Diffstat (limited to 'bas.c')
-rw-r--r--bas.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/bas.c b/bas.c
index 5321070..110e625 100644
--- a/bas.c
+++ b/bas.c
@@ -22,6 +22,11 @@ int verbose = 0;
in sync with the token stream. */
int allow_hex_const = 0;
+/* BASIC/A+ uses the same cmd tokens for REM and DATA that BASIC does,
+ but not for the ERROR- token. Unfortunately bas.c needs to know it's
+ an A+ program so it can handle this token correctly. */
+int aplus_errtok_hack = 0;
+
unsigned short lomem;
unsigned short vntp;
unsigned short vntd;
@@ -376,6 +381,14 @@ void walk_code(unsigned int startlineno, unsigned int endlineno) {
CALL(on_text);
pos = end;
break;
+ case 0x53: /* BASIC/A+'s ERROR- token */
+ if(aplus_errtok_hack) {
+ pos++;
+ CALL(on_text);
+ pos = end;
+ break;
+ }
+ /* fall thru */
default:
pos++;
break;