aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--whichbas.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/whichbas.c b/whichbas.c
index fbee759..168e052 100644
--- a/whichbas.c
+++ b/whichbas.c
@@ -648,6 +648,7 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_TURBO);
}
break;
+
case 0x3e: /* WHILE (1 arg) or DPOKE (2 or 3 args) */
case 0x4c: /* DELETE (1 arg) or MOVE (3 or 4 args) */
case 0x4d: /* PAUSE (1 arg) or MISSILE (3 args) */
@@ -660,6 +661,7 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_BXL_BXE);
}
break;
+
case 0x42: /* BPUT or RGET */
/* PARTIAL:
Turbo BGET always takes 3 args, BXL/BXE RGET takes 2 or more.
@@ -668,6 +670,7 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_TURBO);
}
break;
+
case 0x43: /* BGET or BPUT */
/* PARTIAL:
Turbo BGET and BPUT always take 3 args. So does BXL BPUT.
@@ -676,6 +679,7 @@ CALLBACK(handle_end_stmt) {
set_type(BT_BXE);
}
break;
+
case 0x55: /* RENUM in both (TB req 3 args, BXL up to two) */
if(comma_count == 2) {
remove_type(BT_BXL_BXE);
@@ -683,11 +687,14 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_TURBO);
}
break;
+
case 0x61: /* DSOUND (0 or 4 num args) or INVERSE (no args) */
/* PARTIAL: can't tell no-argument DSOUND from INVERSE. */
if(comma_count) {
remove_type(BT_BXL_BXE);
}
+ break;
+
case 0x63: /* %PUT (usually seen with optional #; 1 or 2 args) or BLOAD (1 string arg) */
if(comma_count) {
/* multiple args */
@@ -697,6 +704,7 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_TURBO);
}
break;
+
case 0x64: /* %GET (usually seen with optional #; 1 or 2 args) or BSAVE (3 args) */
if(comma_count == 2) {
remove_type(BT_TURBO);
@@ -704,6 +712,7 @@ CALLBACK(handle_end_stmt) {
remove_type(BT_BXL_BXE);
}
break;
+
default: break;
}
if(verbose) fprintf(stderr, " bas_type now %02x\n", bas_type);