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.
- Lines 1–9: Initialization, error trap, sound fanfare, variable setup
- Lines 10–95: Welcome screen and story intro
- Lines 100–355: Rules, suspect list, and weapons list display
- Lines 360–720: Optional house layout display (via machine code)
- Lines 1000–3080: Random selection of weapon (C$), killer (F$), and room (A$)
- Lines 4000–4070: Game loop entry, room input and normalization
- Lines 5000–5095: Room lookup against packed string A$
- Lines 6000–6195: Suspect and weapon input, scoring, taunts
- Lines 6500–6560: “One guess per room” subroutine
- Lines 7000–7590: Loop-back and border string builders
- Lines 8000–8240: Win sequence, ratings, exit options
- Lines 8500–8560: Cheat/error trap handler
- Lines 9000–9135: Input validation re-entry points
- Lines 9500–9560: In-game save routine
- 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.
| Variable | Content | Record width | Numeric prefix | Data field |
|---|---|---|---|---|
C$ | 13 weapons | 15 chars | cols 1–2 | cols 3–15 (13 chars) |
F$ | 13 suspects | 8 chars | cols 1–2 | cols 3–8 (6 chars) |
A$ | 13 rooms | 14 chars | cols 1–2 | cols 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 blockcc=44620— command byte address; POKEd before each USR calluc=44618— entry point called viaRANDOMIZE 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 timeW=1(only one element right)Q— incremented by 2 each timeW=2(two elements right)P— incremented each timeW=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. ThePRINTstatements 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$andT$used inI$/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 bcontains a redundantIF b<=wcondition since the FOR loop already guarantees this; it is always true. - The
ON ERR GO TO 8500cheat 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
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.





