Executive Clue

Products: Executive Clue
Date: 1983
Type: Program
Platform(s): TS 2068
Tags: Game

Executive Clue is a text-based mystery game in which the player acts as an inspector trying to identify the murderer, weapon, and room in a 13-suspect, 13-weapon, 13-room scenario modeled loosely on the board game Clue. The program randomly selects the guilty suspect, weapon, and room at startup using repeated RND calls and encodes all three lookup tables as packed substring arrays (C$, F$, A$) navigated by stepping a pointer U in fixed-width increments. A machine code routine is invoked via RANDOMIZE USR at address 44618 (uc), with POKE to address 44620 (cc) used to pass a command byte before each call, controlling functions such as displaying a house layout (228) or executing a NOP/RET (201). The game tracks guess count (R), repeated-room revisits (K$), and near-miss counters (W, P, X, Q) to deliver increasingly urgent taunts, and includes a random death mechanic (1-in-45 chance per room visit, line 5047) that ends the game early. Save/restore functionality at line 9500 writes the screen, a CODE block of 20,756 bytes from address 44610, and the BASIC program itself back to tape.


Program Analysis

Program Structure

The program is organized into a loader stub (lines 1–55/9990) and a main BASIC program (lines 0–9999). The loader sets the screen colors, loads a saved screen graphic, loads a machine code block, then chains into the main game program. The main program flows through an introduction sequence, suspect/weapon/room list display, the main guessing loop, win/death/exit handling, and a save routine.

  1. Lines 1–9: Initialization, error trap, sound fanfare, variable setup
  2. Lines 10–95: Welcome screen and story intro
  3. Lines 100–355: Rules, suspect list, and weapons list display
  4. Lines 360–720: Optional house layout display (via machine code)
  5. Lines 1000–3080: Random selection of weapon (C$), killer (F$), and room (A$)
  6. Lines 4000–4070: Game loop entry, room input and normalization
  7. Lines 5000–5095: Room lookup against packed string A$
  8. Lines 6000–6195: Suspect and weapon input, scoring, taunts
  9. Lines 6500–6560: “One guess per room” subroutine
  10. Lines 7000–7590: Loop-back and border string builders
  11. Lines 8000–8240: Win sequence, ratings, exit options
  12. Lines 8500–8560: Cheat/error trap handler
  13. Lines 9000–9135: Input validation re-entry points
  14. Lines 9500–9560: In-game save routine
  15. Lines 9989–9999: Tape save utility (developer/master save)

Packed String Lookup Tables

All three game data sets — weapons, suspects, and rooms — are stored as fixed-width packed substrings in single string variables. A pointer U steps through each string in fixed increments, and VAL is used to compare the two-digit numeric prefix of each record against the randomly chosen index S.

VariableContentRecord widthNumeric prefixData field
C$13 weapons15 charscols 1–2cols 3–15 (13 chars)
F$13 suspects8 charscols 1–2cols 3–8 (6 chars)
A$13 rooms14 charscols 1–2cols 3–14 (12 chars)

The loop at lines 1050–1080, 2050–2080, and 3040–3070 iterates up to 13 times, incrementing U by the record width each iteration. When a match is found via VAL C$(U TO U+1)=S, the loop exits via GO TO to the next stage. If no match is found (which should not occur), the code falls through to a GO TO 2000 or STOP.

Machine Code Interface

Three fixed addresses control the machine code module loaded from tape as a CODE block starting at 44610:

  • mc=44610 — base address of the machine code block
  • cc=44620 — command byte address; POKEd before each USR call
  • uc=44618 — entry point called via RANDOMIZE USR uc

A POKE of 228 to cc before calling RANDOMIZE USR uc selects the house layout display function. A POKE of 201 (the Z80 RET opcode) disables the routine on the win screen (line 8000), causing the USR call to return immediately. This is a compact way to make a single entry point serve multiple behaviors based on a command byte, without rewriting the call site.

Input Normalization

User room input is normalized through a series of transformations before comparison against the packed room string. First, a leading “THE”/”The”/”the” prefix is stripped (line 4062). Then the first character is forced to uppercase by checking its ASCII code against 90 and subtracting 32 if needed (lines 4063–4065). Shorthand expansions are applied: “Living” and “Dining” get ” room” appended (line 4068), “Bath” becomes “Bathroom” (line 4069). Finally, the string is padded to exactly 12 characters using a cascade of length checks and string concatenation (lines 4070–5040). This allows flexible user entry while enabling a direct substring equality comparison against the fixed-width room records in A$.

Random Death Mechanic

At line 5045–5047, each room visit generates a random integer from 1 to 45: LET E=INT(RND*45)+1. If E=7, the game branches to the death sequence at line 1100, giving approximately a 1-in-45 (~2.2%) chance of dying on any given room guess. Additionally, line 5051 forces death if the guess counter R reaches 25 or more, providing a hard cap on game length.

Scoring and Taunting System

After each guess, the variable W counts how many of the three elements (room, weapon, suspect) are correct (0–3). Additional counters track player performance:

  • X — incremented each time W=1 (only one element right)
  • Q — incremented by 2 each time W=2 (two elements right)
  • P — incremented each time W=2 (used separately for “losing grip” taunts)
  • R — total room visits (guess count)

Lines 6083–6192 use these counters together with R to print increasingly desperate taunts, escalating from “Not a good guess” through “You may die any second…” with accompanying ticking BEEP sequences for high R values.

One-Guess-Per-Room Enforcement

The variable K$ stores the last room visited. At line 5052, if the player re-enters the same room (B$=K$), the subroutine at 6500 is called, which prints a warning and sets the flag G=1. Line 5053 then checks G=1 and jumps directly back to the room prompt at 4050, bypassing the guess entry. This prevents the player from making multiple guesses in the same room consecutively, though returning after visiting other rooms resets the lock because K$ is updated on each successful room match at line 6007.

Article Selection for Win Message

Line 8030 constructs the weapon description grammatically using conditional string concatenation:

PRINT TAB 8;"with "+("a" AND J<>12 AND J<>3 AND J<>5)+("n" AND J=8)+" "+D$

This selects “a”, “an” (for weapon 8, Icepick), or no article (for weapons 3/Poison, 5/Electricity, 12/Drugs) based on the weapon index J saved at line 1035. Similarly, line 8035 selects “in”/”on”/”the” prepositions for the room based on the room index T saved at line 3025.

Bugs and Anomalies

  • Lines labeled 0 (multiple) in the exit sequence (after line 8140) are never reached by normal execution, as line 8125/8130/8140 branch away. The PRINT statements at those lines contain block graphics and would display a decorative farewell, but the flow goes directly to line 8200 via line 8125 (L=3).
  • Line 7500–7590 build the border strings Y$ and T$ used in I$/U$ display, but these variables are referenced at line 9 (PRINT AT 0,0;I$;Y$;U$) without being initialized by any earlier line in normal startup flow. They would be empty strings on first run unless pre-initialized elsewhere (possibly in the machine code block or the loaded screen).
  • The variable I$ is printed repeatedly throughout the game as a decorative row separator, but is never explicitly assigned in the BASIC listing — it is presumably initialized by the machine code or the chained BASIC loader.
  • At line 6082, the loop FOR b=1 TO w: IF b<=w THEN BEEP .10,10: NEXT b contains a redundant IF b<=w condition since the FOR loop already guarantees this; it is always true.
  • The ON ERR GO TO 8500 cheat trap at line 2 catches any runtime error and accuses the player of cheating (line 8520), which could be triggered by legitimate errors such as out-of-range string slicing on malformed input, not just deliberate BREAK keypresses.
  • Line 4010 is blank (no statement), serving only as a line number placeholder between the room selection and game initialization sections.

Content

Appears On

Related Products

Computer adaptation of the board game.

Related Articles

Related Content

Image Gallery

Executive Clue

Source Code

    1 ON ERR GO TO 60
   10 BORDER 7: PAPER 7: INK 7: CLS 
   12 PRINT #1;" "
   20 LOAD "clue"SCREEN$ 
   30 INK 0: LOAD "clue"CODE 
   50 LOAD "clue1"
   55 GO TO 1
   60 NEW 
 9990 INK 7: PAPER 0: BORDER 0: CLS : SAVE "clue" LINE 1: OUT 244,1: CAT "clue.scr",: CAT "clue.bin",: CAT "clue1.bas",
    1 REM EXECUTIVE CLUE
    0 REM EXECUTIVE WORKSHOP
    0 REM COPYRIGHT 1984
    2 ON ERR GO TO 8500
    4 CLS : FOR i=1 TO 5
    5 BEEP .15,15
    6 NEXT i
    7 LET mc=44610: LET cc=44620: LET uc=44618
    8 LET Y=0
    9 INK 1: PRINT AT 0,0;I$;Y$;U$
   10 INVERSE 1: PRINT AT 2,1;" WELCOME TO OUR LITTLE HOUSE ": INVERSE 0
   15 RANDOMIZE 0
   20 PRINT AT 4,2;"We have a surprise for you -"
   30 PRINT AT 5,5;"Somebody is very DEAD..."
   40 PRINT AT 7,2;"Thats why we're glad that you";AT 8,2;"came, Inspector."
   50 PRINT AT 10,2;"If you really wish to come in";AT 11,2;"just press ";: FLASH 1: PRINT "ENTER": FLASH 0
   60 PRINT AT 13,2;"But we warn you. This is not";AT 14,2;"an easy case, and you are in";AT 15,2;"danger, yourself."
   70 PRINT AT 17,2;"This could be exciting..."
   80 INVERSE 1: PRINT AT 19,7;" BEST OF LUCK ": INVERSE 0
   90 PAUSE 4E4
   95 BEEP .25,-33: BEEP .1,-25: BEEP .25,-33
  100 INK 7: PAPER 2: BORDER 2: CLS 
  110 PRINT ,,,,"       EXECUTIVE CLUE         "
  120 PRINT ,,"TO SUCEED YOU MUST ENTER THE","ROOM WHERE THE MURDER WAS","COMMITTED, GUESS THE MURDER","WEAPON AND THE KILLERS NAME."
  130 PRINT ,,"AS WE SAID, NO ONE HERE IS VERY HELPFUL. WE WILL ONLY TELL YOU","IF YOU ARE RIGHT OR WRONG."
  140 PRINT ,,"IF YOU ARE SMART, YOU CAN REASONTHIS CASE OUT."
  150 PRINT ,,"HOLD ON AND WE WILL SHOW YOU","A LIST OF SUSPECTS AND POSSIBLE","MURDER WEAPONS. ALSO, IF YOU","WISH, WE WILL AGAIN SHOW YOU A","LAYOUT OF THE HOUSE."
  160 FOR K=1 TO 4000
  170 NEXT K
  175 BEEP .25,15
  180 INK 2: PAPER 7: BORDER 7: CLS 
  190 PRINT ,,: INVERSE 1: PRINT "          SUSPECT LIST          ": INVERSE 0
  200 PRINT ,," 1) GLORIA (THE MAID)"," 2) RANDY (THE GARDNER)"," 3) BRUCE (THE BUTLER)"," 4) MARGIE (THE WIFE)"," 5) GEORGE (A VISITOR)"," 6) ETHEL (A NEIGHBOR)"," 7) PETER (A DELIVERY BOY)"," 8) SALLY (GEORGES WIFE)"," 9) DAVID (A HOUSE PAINTER)","10) PAMELA (SOMEBODY'S LOVER)","11) DENNIS (A SALESMAN)","12) JAMES (FURNACE REPAIRMAN)","13) ANNIE (A MYSTERY PERSON)"
  210 PRINT AT 17,0;"REMEMBER THEIR NAMES, INSPECTOR YOU WILL NEED THEM TO SOLVE THISMYSTERY."
  220 FOR K=1 TO 4000
  230 NEXT K
  240 PRINT AT 17,0;"                                                                                                ";AT 21,0;"INTRODUCTIONS COMPLETE"
  250 FOR K=1 TO 100
  260 NEXT K
  265 BEEP .25,15
  270 INK 7: PAPER 0: BORDER 0: CLS 
  280 PRINT ,,: INVERSE 1: PRINT "     POTENTIAL WEAPONS LIST     ": INVERSE 0
  290 PRINT ,," 1) KNIFE (BUTCHER OF COURSE)"," 2) PISTOL (AN OLD .38)"," 3) POISON (IN THE BRANDY)"," 4) LAMPCORD (AROUND THE NECK)"," 5) ELECTRICITY (VERY TRICKY)"," 6) POKER (FIREPLACE OF COURSE)"," 7) BOTTLE (BROKEN AND SHARP)"," 8) ICEPICK (EXTREMELY NEAT)"," 9) LETTER OPENER (NOT SO NEAT)","10) PILLOW (VERY SUFFOCATING)","11) RIFLE (FOR A BIG SHOT)","12) DRUGS (A LITTLE OVERDOSE)","13) BOOKEND (A SMASHING END)"
  300 PRINT AT 17,0;"THESE TOO ARE IMPORTANT TO","REMEMBER IF YOU WANT TO BE A","SUPER (OR PASSABLE) SLEUTH."
  310 FOR K=1 TO 4000
  320 NEXT K
  330 PRINT AT 17,0;"                                                                                                ";AT 21,0;"TIME IS UP"
  340 FOR K=1 TO 100
  350 NEXT K
  355 BEEP .25,15
  360 CLS 
  365 PRINT I$;Y$;U$
  370 PRINT AT 10,1;"IF YOU WANT TO SEE A LAYOUT OF";AT 11,2;"THE HOUSE ENTER 1. ANY OTHER";AT 12,3;"ENTRY WILL START THE GAME."
  380 INPUT L$
  385 INK 0: PAPER 7: BORDER 7: CLS 
  390 IF L$<>"1" THEN GO TO 1000
  400 POKE cc,228
  410 RANDOMIZE USR uc
  670 FOR k=1 TO 2000
  680 NEXT K
  690 INVERSE 1: PRINT AT 13,1;" SORRY - YOU'RE TIME IS UP----": INVERSE 0
  700 FOR k=1 TO 100
  710 NEXT K
  715 BEEP .25,15
  720 CLS 
 1000 IF Y=1 THEN GO TO 1005
 1001 INK 1: PAPER 7: BORDER 7: CLS  
 1005 LET G=0
 1006 LET Q=0
 1007 LET X=0
 1010 LET C$="01Knife        02Pistol       03Poison       04Lampcord     05Electricity  06Poker        07Bottle       08Icepick      09Letter opener10Pillow       11Rifle        12Drugs        13Bookend             "
 1020 LET D$=""
 1030 LET S=INT (RND*13)+1
 1035 LET J=S
 1040 LET U=1
 1050 FOR K=1 TO 13
 1060 IF VAL C$(U TO U+1)=S THEN GO TO 2000
 1070 LET U=U+15
 1080 NEXT K
 1090 GO TO 2000
 1100 POKE cc,174: RANDOMIZE USR uc
 1101 FOR o=20 TO -30 STEP -1: BEEP .009,o: NEXT o
 1102 CLS 
 1103 IF r>=25 THEN PRINT INK 3;AT 5,0;I$;I$;I$;I$;I$: INK 1: PRINT "WE'RE TAKING YOUR POOR, OLD BODYTO THE MORGUE, SILLY, OLD, DEAD","HAS BEEN INSPECTOR.",: INK 3: PRINT U$;U$;U$;U$;U$: INK 1: GO TO 1112
 1104 CLS 
 1105 BEEP .5,-35: BEEP .75,-40
 1110 INK 2: PRINT AT 5,0;I$;I$;I$;I$;I$;: INK 1: PRINT "OOPS - IT SEEMS THAT THE KILLER HAS GOTTEN YOU TOO.  THATS REAL TOUGH LUCK, INSPECTOR.",: INK 2: PRINT U$;U$;U$;U$;U$: INK 1
 1112 IF R>=25 THEN PRINT "YOU DIED OF OLD AGE!": GO TO 8090
 1115 PRINT "YOU WERE KILLED BY ";G$
 1120 GO TO 8090
 2000 LET D$=C$(U+2 TO U+14)
 2010 LET F$="01Gloria02Randy 03Bruce 04Margie05George06Ethel 07Peter 08Sally 09David 10Pamela11Dennis12James 13Annie        " 
 2020 LET G$=""
 2030 LET S=INT (RND*13)+1
 2040 LET U=1
 2050 FOR K=1 TO 13
 2060 IF VAL F$(U TO U+1)=S THEN GO TO 3000
 2070 LET U=U+8
 2080 NEXT K
 2090 GO TO 3000
 3000 LET G$=F$(U+2 TO U+7)
 3005 LET A$="01Kitchen     02Bathroom    03Dining room 04Living room 05Den         06Porch       07Conservatory08Bedroom one 09Bedroom two 10Office      11Basement    12Attic       13Hall                  "
 3010 LET J$=""
 3020 LET S=INT (RND*13)+1
 3025 LET T=S
 3030 LET U=1
 3040 FOR K=1 TO 13
 3050 IF VAL A$(U TO U+1)=S THEN GO TO 4000
 3060 LET U=U+14
 3070 NEXT K
 3080 STOP 
 4000 LET J$=J$+A$(U+2 TO U+13)
 4010 
 4012 LET P=0
 4015 LET R=0
 4017 LET K$=""
 4018 INK 1: PAPER 7: BORDER 7: CLS  
 4020 PRINT ,,"GLAD TO SEE YOU, INSPECTOR."
 4025 PRINT ,,"I WILL BE GLAD TO SHOW YOU THE","HOUSE, BUT MY ATTORNEY HAS","ADVISED ME NOT TO ANSWER ANY OF","YOUR SILLY QUESTIONS."
 4027 PRINT ,,"BUT I CAN NOD WHEN YOU GET A","CLUE RIGHT - THATS NOT SAYING","ANYTHING..."
 4030 PRINT ,,"TELL ME PLEASE, WHICH ROOM","WOULD YOU LIKE TO SEE FIRST?"
 4040 GO TO 4055
 4050 PRINT AT 9,0;I$,,"WHICH ROOM WOULD YOU LIKE TO TRYNEXT, INSPECTOR?",,,U$
 4055 INPUT B$: IF b$="" THEN GO TO 4055
 4057 IF b$="save" THEN GO TO 9500
 4060 IF LEN b$<3 THEN GO TO 4055
 4061 LET W=0
 4062 IF B$(1 TO 3)="THE" OR B$(1 TO 3)="The" OR B$(1 TO 3)="the" THEN LET B$=B$(5 TO )
 4063 LET n=CODE B$(1)
 4064 IF n>90 THEN LET n=n-32
 4065 LET B$(1)=CHR$ n
 4066 LET G=0
 4068 IF B$="Living" OR B$="Dining" THEN LET B$=B$+" room"
 4069 IF B$="Bath" THEN LET B$=B$+"room"
 4070 IF LEN B$=7 THEN LET B$=B$+"     "
 4080 IF LEN B$=8 THEN LET B$=B$+"   "
 4090 IF LEN B$=10 THEN LET B$=B$+"  "
 5000 IF LEN B$=11 THEN LET B$=B$+" "
 5010 IF LEN B$=3 THEN LET B$=B$+"         "
 5020 IF LEN B$=5 THEN LET B$=B$+"       "
 5030 IF LEN B$=6 THEN LET B$=B$+"      "
 5040 IF LEN B$=4 THEN LET B$=B$+"        "
 5045 LET E=INT (RND*45)+1
 5047 IF E=7 THEN GO TO 1100
 5050 LET A=1
 5051 IF R>=25 THEN GO TO 1100
 5052 IF B$=K$ THEN GO SUB 6500
 5053 IF G=1 THEN GO TO 4050
 5060 CLS 
 5065 IF A>172 THEN BEEP .25,15: GO TO 5090
 5070 IF B$=A$(A+2 TO A+13) THEN GO TO 6000
 5080 LET A=A+14
 5085 GO TO 5065
 5090 PRINT AT 9,0;I$;I$;TAB 3;"I CANNOT FIND THAT ROOM -";TAB 5;"PLEASE ENTER AGAIN",U$;U$
 5091 IF B$(1 TO 3)="Bed" THEN PRINT ''"You must specify which bedroom-","Bedroom one or Bedroom two"
 5092 PAUSE 200
 5093 CLS 
 5095 GO TO 4050
 6000 FOR o=-10 TO 0: BEEP .01,o: NEXT o
 6001 PRINT ,,("OK - You are ")+("in " AND A<>71)+("on " AND A=71)+("the " AND A<>99 AND A<>113)+B$
 6005 LET R=R+1
 6007 LET K$=B$
 6010 PRINT ,,: FLASH 1: PRINT ">";: FLASH 0: PRINT " WHO IS YOUR SUSPECT?"
 6020 INPUT H$: IF H$="" THEN GO TO 6020
 6021 LET n=CODE H$(1)
 6022 IF n>90 THEN LET n=n-32
 6023 IF n<65 THEN GO TO 9000
 6025 LET H$(1)=CHR$ n
 6028 LET H$=H$+"      "
 6029 FOR o=1 TO 10: BEEP .01,o: NEXT o: PRINT AT 3,0;"                               ";AT 3,0;"Your suspect is ";H$
 6030 PRINT ,,: FLASH 1: PRINT ">";: FLASH 0: PRINT " WHAT WAS THE WEAPON?"
 6035 INPUT E$: IF E$="" THEN GO TO 6035
 6037 LET n=CODE E$(1)
 6038 IF n>90 THEN LET n=n-32
 6039 IF n<65 THEN GO TO 9100
 6040 LET E$(1)=CHR$ n
 6042 LET E$=E$+"       "
 6043 FOR o=11 TO 20: BEEP .01,o: NEXT o
 6045 PRINT AT 5,0;"                               ";AT 5,0;"Weapon choice is ";E$
 6047 PRINT AT 10,0;I$;TAB 10;"GUESS NO.";R,U$
 6050 IF B$=J$ AND E$(1 TO 5)=D$(1 TO 5) AND H$(1 TO 5)=G$(1 TO 5) THEN GO TO 8000
 6060 IF B$=J$ THEN LET W=W+1
 6070 IF E$(1 TO 5)=D$(1 TO 5) THEN LET W=W+1
 6075 IF H$(1 TO 5)=G$(1 TO 5) THEN LET W=W+1
 6076 IF w=1 THEN LET X=X+1
 6077 IF w=2 THEN LET Q=Q+2
 6081 PRINT AT 14,0;"You are right on ";W;" of 3."
 6082 FOR b=1 TO w: IF b<=w THEN BEEP .10,10: NEXT b
 6083 PRINT AT 16,0;("Not a good guess" AND W=0)+("Getting Warmer" AND W=1 AND R>9)+("Only Warm" AND w=1 AND R<9)+("BOY ITS GETTING HOT" AND W=2 AND R>=9)+("You COULD be hot" AND w=2 AND R<=8)
 6085 IF X>=7 AND x<12 AND Q=0 THEN PRINT "Only one right again?"
 6086 IF X>=12 AND Q<=3 THEN PRINT "This is getting OLD..."
 6090 IF Q>=5 AND Q<10 THEN PRINT "This is getting old..."
 6095 IF Q>10 THEN PRINT "Forget something?"
 6096 IF R>5 AND X=0 AND w=0 THEN PRINT "Come on - Find SOMETHING!"
 6184 IF R<4 AND W=0 THEN PRINT "But it's very early in the game."
 6185 IF R>=5 AND R<9 AND W<2 THEN PRINT "It's time to think, Sherlock"
 6186 IF r>=9 AND w<2 THEN PRINT "Remember, you're in DANGER!"
 6187 IF R>=12 AND R<19 AND w<2 THEN PRINT "Time may be running out...": FOR m=1 TO 15: BEEP .009,5: PAUSE 7: NEXT m
 6188 IF R>19 AND w<=2 THEN PRINT "You may die any second...": FOR m=1 TO 15: BEEP .009,-5: PAUSE 7: NEXT m
 6189 IF W=2 THEN LET P=P+1
 6191 IF P>=5 AND P<7 THEN PRINT "Are you losing your grip?"
 6192 IF P>=7 THEN PRINT "Oh... Come on now..."
 6193 PAUSE 300
 6195 GO TO 7000
 6500 CLS 
 6505 FOR o=1 TO 5: BEEP .1,-10: NEXT o
 6510 PRINT AT 9,0;I$;I$;"SORRY - ONLY ONE GUESS PER ROOM.YOU CAN COME BACK TO THIS ROOM","LATER, IF YOU STILL WISH TO.",U$;U$
 6520 FOR K=1 TO 150
 6530 NEXT K
 6540 LET G=1
 6550 CLS 
 6560 RETURN 
 6999 STOP 
 7000 CLS 
 7010 GO TO 4050
 7500 LET Y$=""
 7505 LET w$="\:                               \ :"
 7510 FOR k=1 TO 19
 7520 LET Y$=Y$+w$
 7530 NEXT k
 7540 LET T$=""
 7545 LET p$="\:         \:      \:       \:         \ :"
 7550 FOR k=1 TO 7
 7560 LET T$=T$+p$
 7570 NEXT k
 7580 CLS 
 7590 GO TO 1
 8000 BORDER 1: PAPER 1: POKE cc,201: RANDOMIZE USR uc
 8001 FOR o=-20 TO 30: BEEP .005,o: NEXT o
 8003 LET Y=1
 8005 BEEP .5,-5: BEEP .25,10: BEEP .5,-5
 8007 BORDER 7: INK 0: PAPER 7: CLS 
 8010 PRINT ,,I$;I$;: FLASH 1: PRINT TAB 5;"YOU GUESSED IT....         ": FLASH 0: PRINT U$;U$
 8020 INK 2: PRINT TAB 8;"It was ";G$;" "
 8030 PRINT TAB 8;"with "+("a" AND J<>12 AND J<>3 AND J<>5)+("n" AND J=8)+" "+D$
 8035 PRINT TAB 8;("in " AND T<>6)+("on " AND T=6)+("the " AND T<>8 AND T<>9)+J$,: INK 1: PRINT I$;I$: INK 2: FLASH 1: PRINT TAB 6;"TOTAL GUESSES        = ";R,: FLASH 0: INK 1: PRINT U$;U$
 8040 PRINT ,,
 8045 IF R<5 THEN PRINT "THAT WAS DUMB BLIND LUCK!"
 8050 IF R>=4 AND R<6 THEN PRINT "SURE-THAT WAS A LUCKY GUESS"
 8060 IF R>=6 AND R<=10 THEN PRINT "BRILLIANT WORK"
 8070 IF R>=11 AND R<=14 THEN PRINT "PRETTY GOOD,INSPECTOR."
 8075 IF R>14 AND R<=18 THEN PRINT "ARE YOU GETTING FORGETFUL?"
 8080 IF R>19 AND R<=22 THEN PRINT "HOPE YOU CAN DO BETTER NEXT TIME"
 8085 IF R>20 THEN PRINT "YOU COULD HAVE DIED OF OLD AGE","BEFORE YOU SOLVED THIS CASE."
 8090 INK 0: FLASH 1: PRINT AT 20,0;" ENTER ";: FLASH 0: PRINT " 1 TO TRY AGAIN,2 TO SEE"," NAMES AND WEAPONS OR 3 TO EXIT.": INK 1
 8100 INPUT L
 8110 CLS 
 8115 POKE cc,228: RANDOMIZE USR uc: PRINT FLASH 1;AT 12,19;" EXECUTIVE ";AT 13,19;"   CLUE    ": PAUSE 50
 8120 IF L<1 OR L>3 THEN BEEP .25,15: GO TO 8090
 8125 IF L=3 THEN GO TO 8200
 8130 IF L=1 THEN GO TO 1000
 8140 IF L=2 THEN GO TO 100
    0 PRINT AT 8,0;I$;"\::\::\::HOPE\::YOU\::ENJOYED\::YOURSELF\::\::\::\::";U$
    0 PRINT AT 12,2;"THIS IS THE \ :EXECUTIVE\::CLUE\: ";AT 13,1;"PROGRAM FROM EXECUTVE WORKSHOP";AT 14,8;"COPYRIGHT 1984"
    0 PRINT AT 16,0;I$;"\::\::\::\::\::THANK\::YOU\::AND\::GOOD-BYE\::\::\::\::\::";U$
 8180 FOR K=1 TO 250
 8190 NEXT K
 8200 PAPER 1
 8201 INK 7
 8202 BORDER 1
 8203 CLS 
 8204 BORDER 1
 8205 PRINT AT 8,0;"   HOPE YOU ENJOYED YOURSELF"
 8210 PRINT AT 12,2;"THIS IS THE EXECUTIVE CLUE";AT 13,1;"PROGRAM FROM EXECUTIVE WORKSHOP";AT 14,8;"COPYRIGHT 1984";AT 16,0;"    THANK YOU AND GOODBYE"
 8220 PAUSE 350
 8225 POKE cc,228: RANDOMIZE USR uc
 8226 PRINT FLASH 1;AT 12,18;"EXIT COMMAND"
 8227 PAUSE 150
 8230 CLS 
 8235 INK 1: PAPER 7: BORDER 7
 8240 NEW 
 8500 BORDER 3: PAPER 3: INK 7: CLS 
 8510 PRINT PAPER 2;AT 10,10;" PLEASE..."
 8520 PRINT PAPER 1;AT 12,0;" CHEATING takes the fun out of   our little game, Inspector     "
 8530 PRINT FLASH 1;AT 15,0;" Now let's just play the game!  "
 8540 BEEP 1,-20: BEEP 1,-30: BEEP 1,-40: PAUSE 100
 8550 BORDER 7: PAPER 7: INK 0: CLS 
 8560 GO TO 1
 8999 STOP 
 9000 PRINT AT 12,0;"You must spell the name."
 9005 BEEP .15,15
 9010 PAUSE 100
 9020 PRINT AT 12,0;"                                "
 9030 GO TO 6020
 9100 PRINT AT 12,0;"You must spell the weapon."
 9105 BEEP .15,15
 9110 PAUSE 100
 9120 PRINT AT 12,0;"                               "
 9130 GO TO 6035
 9135 GO TO 1
 9500 REM Load a Blank
 9510 POKE cc,228: RANDOMIZE USR uc
 9520 PRINT FLASH 1;AT 12,19;" EXECUTIVE ";AT 13,19;"    CLUE   ";AT 14,19;"  LOADING  "
 9530 SAVE "clue"SCREEN$ 
 9540 SAVE "clue"CODE 44610,20756
 9550 SAVE "clue" LINE 1
 9560 GO TO 1
 9989 STOP 
 9990 SAVE "clue"SCREEN$ : BEEP .7,10: SAVE "clue"CODE 44610,20756: BEEP .5,20: BEEP .5,25: SAVE "clue1" LINE 1: BEEP .3,10: BEEP .3,15: BEEP .3,22
 9991 INPUT #1;"More? ";q$: IF q$="Y" OR q$="y" THEN GO TO 9995
 9992 STOP 
 9995 OUT 244,1: CAT "clue.bas",
 9998 STOP 
 9999 MOVE "clue.bin",44610,20756: MOVE "clue1.bas",9990

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top