aboutsummaryrefslogtreecommitdiff
path: root/bas.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2024-07-16 04:22:51 -0400
committerB. Watson <urchlay@slackware.uk>2024-07-16 04:22:51 -0400
commitd4942ad6efac89f7228264d8c124c0ae9c47245f (patch)
tree45daf05bd19d4fd48f91e292f08f1682fdd125d1 /bas.c
parent9c2fb3b26b63eeebb272683aae25e80c4d60c462 (diff)
downloadbw-atari8-tools-d4942ad6efac89f7228264d8c124c0ae9c47245f.tar.gz
listbas: BXL token 0x5a WIP.
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: