diff options
author | B. Watson <urchlay@slackware.uk> | 2024-07-09 00:07:29 -0400 |
---|---|---|
committer | B. Watson <urchlay@slackware.uk> | 2024-07-09 00:07:29 -0400 |
commit | 87ab59df83efffaf0066308339da0fd228ad9cc9 (patch) | |
tree | 4b1adc7b24486b3346e81fac7de1253b0e1c8acd | |
parent | 50d59202354201e404e02bac1187e50abf07e4b3 (diff) | |
download | bw-atari8-tools-87ab59df83efffaf0066308339da0fd228ad9cc9.tar.gz |
whichbas: Detect INPUT "PROMPT";VAR.
-rw-r--r-- | whichbas.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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 <args> or TRACEOFF */ case 0x3d: /* UNTIL <args> or ENDIF */ case 0x56: /* DEL <args> 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); |