From 87ab59df83efffaf0066308339da0fd228ad9cc9 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 9 Jul 2024 00:07:29 -0400 Subject: whichbas: Detect INPUT "PROMPT";VAR. --- whichbas.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/whichbas.c b/whichbas.c index 7f315a4..490e517 100644 --- a/whichbas.c +++ b/whichbas.c @@ -154,6 +154,13 @@ CALLBACK(handle_cmd) { print_result(); } break; + case CMD_INPUT: + /* TB, BXL, BXE all support INPUT "Prompt",VAR with the same tokenized + form. Atari BASIC doesn't allow string constants in INPUT args. */ + if(nexttok == OP_STRCONST) { + remove_type(BT_ATARI); + } + break; case CMD_GET: case CMD_PUT: /* TB uses the same tokens for GET and PUT as Atari/BXL/BXE, but it allows @@ -222,7 +229,7 @@ CALLBACK(handle_cmd) { case 0x3a: /* -MOVE or TRACEOFF */ case 0x3d: /* UNTIL or ENDIF */ case 0x56: /* DEL or FAST */ - case 0x62: /* CIRCLE (3 num args) or NORMAL (no args) */ + case 0x62: /* CIRCLE (3 or 4 num args) or NORMAL (no args) */ if(has_args) { remove_type(BT_BXL_BXE); } else { @@ -269,14 +276,14 @@ CALLBACK(handle_cmd) { } break; case 0x48: /* DIR (optional arg) or PROTECT (req'd arg) */ - /* not conclusive: without args means TB, but with arg, + /* partial: without args means TB, but with arg, it could be either */ if(!has_args) { remove_type(BT_BXL_BXE); } break; case 0x4a: /* UNLOCK (req'd arg) or DIR (optional arg) */ - /* not conclusive: without args means TB, but with arg, + /* partial: without args means TB, but with arg, it could be either */ if(!has_args) { remove_type(BT_TURBO); @@ -557,7 +564,7 @@ CALLBACK(handle_end_stmt) { case 0x52: /* FCOLOR (1 arg) or PMWIDTH (2 args) */ case 0x53: /* *L (optional + or - only) or SET (req 2 num args) */ case 0x4f: /* PROC (1 arg) or PMCOLOR (3 args) */ - if(comma_count) { + if(comma_count) { /* 1 arg means no commas */ remove_type(BT_TURBO); } else { remove_type(BT_BXL_BXE); -- cgit v1.2.3