From 14595634df55b698f0b924e75572df6f0b809555 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 16 Jul 2024 03:07:35 -0400 Subject: listbas: handle A+ ERROR- token (required bas.c changes); don't segfault on runaway variable name lookup. --- bas.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bas.c') 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; -- cgit v1.2.3