aboutsummaryrefslogtreecommitdiff
path: root/bas.c
diff options
context:
space:
mode:
Diffstat (limited to 'bas.c')
-rw-r--r--bas.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/bas.c b/bas.c
index 110e625..b3893fe 100644
--- a/bas.c
+++ b/bas.c
@@ -27,6 +27,9 @@ int allow_hex_const = 0;
an A+ program so it can handle this token correctly. */
int aplus_errtok_hack = 0;
+/* BASIC XL token 0x5a is followed by a single "subtoken", this skips it. */
+int bxl_exttok_hack = 0;
+
unsigned short lomem;
unsigned short vntp;
unsigned short vntd;
@@ -373,7 +376,12 @@ void walk_code(unsigned int startlineno, unsigned int endlineno) {
while(pos < end) { /* loop over tokens within a statement */
pos++;
CALL(on_cmd_token);
+
switch(program[pos]) {
+ case 0x5a:
+ if(bxl_exttok_hack) pos++; /* skip subtoken */
+ pos++;
+ break;
case CMD_REM:
case CMD_DATA:
case CMD_ERROR: