diff options
Diffstat (limited to 'listbas.c')
-rw-r--r-- | listbas.c | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -19,7 +19,8 @@ #define C_PURPLE 5 #define C_CYAN 6 -int immediate = 0, utf8 = 1, magazine = 0, inv = 0, color = 1, bold = 0; +int immediate = 0, utf8 = 1, magazine = 0, inv = 0, + color = 1, bold = 0, badtok = 0; const char **table = ata2utf; @@ -200,10 +201,12 @@ CALLBACK(print_cmd) { if(tok == CMD_ILET) return; if(color) color_on(C_YELLOW); - if(tok > last_command || (!(name = commands[tok]))) + if(tok > last_command || (!(name = commands[tok]))) { fprintf(outfh, "(bad cmd token $%02x) ", tok); - else + badtok = 1; + } else { fprintf(outfh, "%s ", name); + } if(color) color_off(); } @@ -232,10 +235,12 @@ CALLBACK(print_op) { else color_on(C_GREEN); } - if(tok > last_operator || (!(name = operators[tok]))) + if(tok > last_operator || (!(name = operators[tok]))) { fprintf(outfh, "(bad op token $%02x)", tok); - else + badtok = 1; + } else { fprintf(outfh, "%s", name); + } if(color) color_off(); } @@ -316,5 +321,8 @@ int main(int argc, char **argv) { setup_outfh(); list(); + if(badtok) + die("program has unknown tokens; maybe Turbo BASIC or BASIC XL/XE?"); + return 0; } |