Clue

Date: 1985
Type: Program
Platform(s): TS 2068
Tags: Game

A computer version of the Clue board game for two to five players, who play Mr. Green, Col. Mustard, Ms. Scarlett, Mrs. White and Prof. Plum in the murder of Mr. Howell. The computer hides one room, one weapon (wrench, hammer, rope, candle or pipe) and one suspect, deals the remaining sixteen cards, and gives each player a Detective Notes screen with a photo, the full list of rooms, weapons and suspects, and their own cards, which can also go to a printer. On your turn you roll two dice and type your whole move as a string of the cursor digits 5, 6, 7 and 8 at “ENTER your moves?”. Walls stop you, and a doorway takes you into one of nine rooms, each drawn as its own picture. There you name a suspect and a weapon, the next player shows you a matching card or answers “none”, and you may then accuse. A correct accusation brings the police cars and a confession; a wrong one gets you arrested; and if every player is arrested, the computer gives a clue to each part of the answer.

The disk holds two versions. ORGCLUE is the original, with REMs reading “>>Clue<<” and “© 1985 Alvin Albrecht”; it is the version that Run in Browser loads. clue v2 is headed “© 1985 Alvin Albrecht mods by Paul Holmgren 1989”. It is the same game renumbered and compacted, with its graphics hidden inside DATA lines and several routines changed, as described below.

Program Analysis

Board and Movement

The board (line 9792) is a grid of 8-pixel squares drawn with PLOT and DRAW. The rooms are blocks of green paper marked with their initial letters, the centre block is labelled “ANSWERS” and “CLUE—”, and seventeen doorways are marked with a red UDG. Each move string is checked to contain only 5–8 and to be no longer than the dice total, then followed one step at a time. Collisions use ATTR: a step onto a square with the attribute of the room at 0,0 is undone, and a step onto one with the attribute of the door at 2,4 enters a room. Lines 200–240 look the doorway up in a DATA table of the doors for each room and call that room’s drawing routine through the array f(). Each peg is a UDG in the player’s colour, printed with OVER 1, and it flashes 25 times at the start of the turn. The dice keep rolling until ENTER is pressed, and pressing 1 during the roll redraws the board.

Rooms and Suggestions

Each room routine (lines 8000–8089) redefines a few UDGs and draws the room and its furniture in the top half of the screen with block graphics, UDGs and line drawing. The lower half shows boxes for YOU, WITH and MURDER TOOL. The suspect and weapon must be typed exactly as listed, with a capital letter first, and the suspect’s portrait (six UDGs) and the weapon are drawn in. Only the next player in turn is asked for a card. If they answer “none”, their cards are checked and a false answer is refused.

Dealing and the Solution

Lines 9449–9471 load all nineteen names into n$(), pick the answer as one room (1–9), one weapon (10–14) and one suspect (15–19), and mark used cards by overwriting their first letter with x. The other sixteen are dealt in turn into k$(player,10,12), and any left over when sixteen does not divide evenly go to the next players. An accusation is checked against the 19-name vocabulary, then compared with the three hidden names.

Endings

A correct accusation plays the police scene (line 6000), in which a police car drives up to a house with a two-tone siren. The suspect comes out, confesses, and the case is declared solved with a smiling face drawn with CIRCLE and DRAW with an angle. A false accusation sets v(m), and that player is skipped from then on. When all players are out, lines 2000–2085 give one clue for each part of the answer. For the murderer and the weapon it is chosen at random from the first letters of the name, its character codes or the sum of those codes; the room is always given as character codes.

Changes in clue v2

  • The UDG patterns are hidden. Each graphics block is a pair of DATA lines. The first, such as DATA 3340,"p",6: LET XL1=VAL U$: RETURN, is read for its own line number, the first UDG and the number of UDGs, then called with GO SUB. U$ holds (PEEK 23637+PEEK 23638*256)+7, the address just past the first number marker in the next line. That line lists as a row of zeros, but the five-byte binary forms of those zeros hold the UDG bytes, which lines 320–340 copy five at a time. A REM warns never to edit these lines.
  • Room names and their drawing routines, and suspects with their portrait routines and weapons, are read from DATA tables, and a shared box-drawing subroutine replaces repeated DRAW sequences.
  • Constants are written as NOT PI and SGN PI for 0 and 1, and the message lines are reached through control-code strings E$ and O$.
  • The dice roll seven times on their own instead of waiting for ENTER.
  • The recorder message appears only when the UDGs have not yet been set.
  • The end-of-game clues are simpler: the murderer’s first six letters or number of letters, the weapon’s first letter and sometimes its length, and the room’s first letter.
  • Declining another game runs NEW, where the original deliberately causes an error.

Notable Techniques

  • Line 5 sets ON ERR GO TO 5070. Any error, including BREAK, leads to a “CODE NAME?” prompt, and the program reruns unless a fixed phrase is typed, which turns the trap off with ON ERR RESET and stops. Answering n to “Another Game?” prints x$(1900) on purpose to reach this trap.
  • A single routine at line 9900 POKEs a range of UDGs from DATA using a variable named restore and two characters in a$. Every room, portrait and police scene redefines the same 21 UDGs as it needs them.
  • Line 2020 picks a clue with a calculated GO TO (2030 AND k=3)+(2040 AND k=2)+(2050 AND k=1).
  • GO TO 37 and GO TO 420 point at line numbers that do not exist, relying on execution carrying on at the next line.

Potential Issues

In ORGCLUE:

  • If Col. Mustard or Prof. Plum solves the case, lines 3010–3025 look for “Mr.”, “Mrs.” or “Ms.” in the name to choose SIR or LADY, find none and loop forever, so the program hangs on a blank yellow screen. Ms. Scarlett is shown as “LADYScarlett”.
  • When a card is shown, line 460 only checks that the player holds it, not that it is one of the three named in the suggestion.
  • The card list on each Detective Notes screen runs to q1, the last card slot filled during the deal, rather than to that player’s own card count. Players with fewer cards than the last one dealt therefore see an empty numbered line, such as a blank sixth line with three players.
  • The victim is “Mr. Howel” in line 502 and “Mr. Howell” in line 535.

In clue v2 (none of these show up in a run that stops at the board and move prompt):

  • The Detective Notes and dealing routine (lines 2700–3050) is never called; the setup at line 2660 calls the name list at line 2260 instead. No cards appear to be dealt and no answer chosen, so the first card check would hit an undefined k$ and fall into the CODE NAME trap.
  • “Who are you with?” is read into a one-dimensional x$, but line 540 compares x$(SGN PI), only its first character, with each suspect’s name. No name can match, so the question appears to repeat for ever.
  • The door table in line 2450 reads 20,01 where the original has 20,20. The Dining Room’s door marker is drawn at row 20, column 1 inside the Study, and the Dining Room appears to have no doorway that can be entered.
  • The solved screen sets the SIR or LADY title only for Mr., Mrs. and Ms.; for Col. Mustard or Prof. Plum it prints v$, which is undefined in a first game.
  • “Another Game?” runs RUN 50, which clears all variables and skips the setup, so redrawing the board appears to fail on the missing arrays.
  • The board routine prints only four pegs (line 2460), so a fifth player’s peg is missing until that player moves.

Both versions came from an Oliger (JLO SAFE) disk in the SNUG library set and were converted to load from tape. In ORGCLUE, the JLO printer command COPY / in line 9412 became a plain COPY and an autostart at line 3 was added, since the disk copy had none. In clue v2, the Oliger slash was removed from SAVE / in line 3920 and the program autostarts at line 10. Both were tested in ZEsarUX on a stock TS2068: ORGCLUE through the Detective Notes and card list, and clue v2 to the board and the move prompt.

Related Content

Image Gallery

Source Code

    3 REM >>Clue<<
    4 REM                                 * 1985 Alvin Albrecht                
    5 ON ERR GO TO 5070
    6 CLS : PRINT AT 9,0; FLASH 1;"PRESS STOP ON THE RECORDER AND  THEN PRESS A KEY TO CONTINUE... ": PAUSE 0: CLS 
   10 BORDER 7: PAPER 7: INVERSE 0: OVER 0: BRIGHT 0: FLASH 0: INK 0: CLS 
   11 DIM v(5): FOR z=1 TO 5: LET v(z)=0: NEXT z
   12 LET restore=9910: LET a$="af": GO SUB 9900
   15 GO SUB 9900
   16 LET restore=18: LET a$="mn": GO SUB 9900
   18 DATA 0,24,24,24,60,126,126,0,0,0,0,0,60,60,60,60
   21 LET illegal=9475
   22 CLS : INPUT "How many players?(2 TO 5)";players: IF players<2 OR players>5 THEN GO TO 22
   23 DIM d$(9,12): DIM c$(5,8): RESTORE 23: FOR z=1 TO 9: READ d$(z): NEXT z: DATA "Billiard Rm.","Library","Study","Kitchen","Conservatory","Ballroom","Hall","Lounge","Dining Room": LET c$(1)="Wrench": LET c$(2)="Hammer": LET c$(3)="Rope": LET c$(4)="Candle": LET c$(5)="Pipe"
   24 DIM F(9): FOR z=1 TO 9: READ f(z): NEXT z: DATA 8000,8010,8020,8030,8040,8050,8060,8070,8080: DIM b$(5,12): LET b$(1)="Mr. Green": LET b$(2)="Col. Mustard": LET b$(3)="Ms. Scarlett": LET b$(4)="Mrs. White": LET b$(5)="Prof. Plum": LET b=1: DIM c(5): LET c(1)=9965: LET c(2)=9980: LET c(3)=9880: LET c(4)=9870: LET c(5)=9860
   25 DIM d(5): DIM e(5): DIM i(5): FOR z=1 TO 5: READ d(z),e(z),i(z): NEXT z: GO SUB 9400: GO SUB 9996: DATA 6,0,4,16,0,6,6,31,3,19,31,0,21,17,1
   26 GO SUB 9792
   27 FOR m=1 TO players: GO SUB 5000: DIM x$(1,10): LET x$(1)=b$(m): PRINT AT 12,10; PAPER 4; OVER 0; INK 0;x$(1)
   28 FOR q=1 TO 25: BEEP .005,20: GO SUB 9992: PRINT AT d(m),e(m); OVER 1; INK i(m);"m": NEXT q: GO SUB 7900: INPUT PAPER 4;"ENTER your moves?";l$
   29 IF LEN l$>l OR LEN l$=0 THEN GO TO 35
   30 PRINT AT 14,13; PAPER 4; OVER 0;"       "
   32 LET no=ATTR (0,0): LET door=ATTR (2,4)
   33 GO SUB 7990
   34 GO TO 37
   35 GO SUB illegal: INPUT PAPER 4;"ENTER your moves?";l$: GO TO 29
   40 GO SUB 9992
   42 LET q5=d(m): LET q6=e(m)
   45 FOR q=1 TO LEN l$
   50 IF l$(q)="5" THEN LET q6=q6-1
   55 IF l$(q)="8" THEN LET q6=q6+1
   60 IF l$(q)="7" THEN LET q5=q5-1
   65 IF l$(q)="6" THEN LET q5=q5+1
   67 IF q5<0 OR q5>21 THEN LET q5=d(m)
   68 IF q6<0 OR q6>31 THEN LET q6=e(m)
   70 IF ATTR (q5,q6)=no THEN GO SUB 105
   75 IF ATTR (q5,q6)=door THEN GO TO 200
   80 LET d(m)=q5: LET e(m)=q6
   85 NEXT q
   90 PRINT AT d(m),e(m); INK i(m); PAPER 7; OVER 1;"m"
   95 NEXT m
  100 GO TO 27
  105 LET q5=d(m): LET q6=e(m): RETURN 
  199 REM >>Doors of what room?<<
  200 DATA 2,4,2,2,4,2,11,4,14,3,2,18,4,19,5,1,19,10,2,4,11,2,17,2,2,23,4,31,2,18,28,16,28,3,12,23,9,30,13,29,1,20,20
  205 RESTORE 200
  210 FOR y=1 TO 9: READ q
  215 FOR x=1 TO q: READ u: READ w: IF q5=u AND q6=w THEN GO TO 240
  220 NEXT x: NEXT y
  235 IF y>9 THEN LET y=9
  240 GO SUB f(y)
  242 LET q1=y
  245 OVER 1: PLOT 8,32: DRAW 24,0: DRAW 0,40: DRAW -24,0: DRAW 0,-40: PLOT 8,63: DRAW 24,0: PRINT AT 13,1;"YOU": GO SUB c(m)
  250 IF m<>2 AND m<>4 THEN PRINT AT 15,2; INK i(m);"gh";AT 16,2;"ij";AT 17,2;"kl"
  255 IF m=2 OR m=4 THEN PRINT AT 15,1; INK i(m);"ghi";AT 16,1;"jkl"
  260 PLOT 48,32: DRAW 32,0: DRAW 0,40: DRAW -32,0: DRAW 0,-40: PLOT 48,63: DRAW 32,0: PRINT AT 13,6;"WITH"
  265 DIM x$(1,12): INPUT INK 0; PAPER 7;"Who are you with? (PLEASE use   LOWER CASE & A CAPITAL FOR the  beginning of the name)";x$(1)
  285 FOR y=1 TO 5
  290 IF x$(1)=b$(y) THEN GO TO 300
  295 NEXT y
  297 GO TO 265
  300 GO SUB c(y)
  302 LET q2=y
  305 IF y=2 OR y=4 THEN PRINT AT 15,7; INK i(y);"ghi";AT 16,7;"jkl"
  310 IF y<>2 AND y<>4 THEN PRINT AT 15,7; INK i(y);"gh";AT 16,7;"ij";AT 17,7;"kl"
  315 PLOT 96,32: DRAW 88,0: DRAW 0,40: DRAW -88,0: DRAW 0,-40: PLOT 96,63: DRAW 88,0: PRINT AT 13,12;"MURDER TOOL"
  320 DIM y$(1,8): INPUT INK 0; PAPER 7;"What TOOL will you bring with   you?(Use LOWER CASE & ONE       CAPITAL for the beginning       letter)";y$(1)
  325 FOR z=1 TO 5
  330 IF y$(1)=c$(z) THEN GO TO 340
  335 NEXT z
  337 GO TO 320
  340 LET q3=z: IF z=4 THEN GO TO 365
  341 IF q3=5 THEN GO TO 347
  342 GO SUB 355
  345 PRINT AT 15,17; INK ink;CHR$ (z+143): GO TO 350
  347 GO SUB 355: PRINT AT 15,17; INK ink;"f"
  350 GO TO 375
  355 RESTORE 357
  357 DATA 0,1,6,2,5
  360 FOR x=1 TO z
  362 READ ink
  363 NEXT x
  364 RETURN 
  365 PRINT AT 14,17; INK 2;"e";AT 15,17; INK 0;"d"
  370 GO TO 350
  380 PRINT AT 11,0;b$(m);" is in the ";d$(q1);" with ";b$(q2);" and the";AT 13,23;c$(q3)
  382 LET pointer=m+1: IF pointer>players THEN LET pointer=1
  385 PRINT AT 19,0;b$(pointer);", which card do you wish to show ";b$(m);"?": DIM x$(1,12): INPUT x$(1): PRINT AT 19,0; OVER 0;"                                                                "
  390 IF x$(1)="none        " THEN GO TO 400
  395 GO TO 455
  400 GO SUB 9452: FOR z=1 TO 10
  405 IF k$(pointer,z)=d$(q1) OR k$(pointer,z)=b$(q2) OR k$(pointer,z)=c$(q3) THEN GO TO 420
  410 NEXT z
  415 PRINT AT 18,0;b$(m);", he's telling the  truth!!!": PAUSE 0: PRINT AT 18,0; OVER 0;"                                ": GO TO 490
  455 GO SUB 9452: FOR z=1 TO 10
  460 IF k$(pointer,z)=x$(1) THEN GO TO 470
  465 NEXT z
  467 PRINT AT 18,0;b$(pointer);", you must show a   card that you were GIVEN in the DETECTIVE NOTES!": PAUSE 0: PRINT AT 18,0; OVER 0;"                                                                                                "
  469 GO TO 385
  470 PRINT AT 18,0;b$(m);", ";b$(pointer);" has  the ";x$(1);"."
  475 PAUSE 0
  480 PRINT AT 18,0; OVER 0;"                                                                "
  490 PRINT AT 18,0; OVER 0;"Does ";b$(m);" wish to make  a guess for the murderer, tool, and the room in which it was    committed?": DIM x$(1,1): INPUT x$(1)
  492 PRINT AT 18,0; OVER 0;"                                                                                                                                "
  495 IF x$(1,1)="N" OR x$(1,1)="n" THEN CLS : GO SUB 9792: GO TO 95
  500 IF x$(1,1)<>"Y" AND x$(1,1)<>"y" THEN GO TO 490
  502 PRINT AT 18,0; OVER 0;"Okay, ";b$(m);", I hope      you're right because I've been  wanting to massacre the culprit who killed Mr. Howel. Here goes>": PAUSE 0: PRINT AT 18,0; OVER 0;"                                                                                                                                "
  505 DIM x$(3,12): INPUT "In which ROOM was the murder    done?";x$(1): IF x$(1)="            " THEN GO TO 490
  506 LET q14=1
  507 GO SUB 6125
  508 IF flag=1 THEN GO TO 505
  510 INPUT "WHO was the murderer/murderess?";x$(2): IF x$(2)="            " THEN GO TO 490
  511 LET q14=2
  512 GO SUB 6125
  513 IF flag=1 THEN GO TO 510
  515 INPUT "What murder TOOL was used to    commit it?";x$(3): IF x$(3)="            " THEN GO TO 490
  516 LET q14=3: GO SUB 6125: IF flag=1 THEN GO TO 515
  517 DIM z$(1,8): LET z$(1)=x$(3): GO SUB 6155
  520 GO SUB 9452
  525 IF x$(1)<>n$(g(1)) OR x$(2)<>n$(g(3)) OR x$(3)<>n$(g(2)) THEN GO TO 600
  530 GO SUB 6000
  535 PRINT AT 0,0; OVER 0; INK 7; PAPER 0;x$(2);": Okay, I admit     that I did the murder, and I do give up. However, you'll have togive me $50,000,000 for Mr.     Howell's body...                                                ": PAUSE 0
  545 GO TO 3000
  600 GO SUB 6000
  605 PRINT AT 0,0; OVER 0; INK 7; PAPER 0;"Police: Take these pills,       ";x$(2);". Now tell us the   truth.                                                                                                                                                           ": PAUSE 0
  610 PRINT AT 0,0; INK 7; PAPER 0; OVER 0;x$(2);": I didn't do it,   though!                                                         Police: Well, ";b$(m);"      it  looks like we are going to  have to arrest you for false    accusation...Sorry!                                                                             ": PAUSE 0
  615 LET v(m)=1: CLS : GO SUB 9792
  620 GO TO 95
 2000 REM >>Game Over<<
 2005 BORDER 5: PAPER 5: INK 0: FLASH 0: BRIGHT 0: OVER 0: INVERSE 0: CLS 
 2010 PRINT "Now no one will ever solve the  MURDER. Whoever committed it,   was pretty sly & smart, since   you 'top-notch' detectives      could not complete your task.   ": PRINT : PRINT INK 2;"However, I, the computer, knows the answer, since I witnessed   the incident, and I shall give  you ONE clue to the murderer,   murder tool, & the room in      which it was committed:": PRINT 
 2015 LET k=INT (RND*3)+1
 2017 GO SUB 9452
 2020 GO TO (2030 AND k=3)+(2040 AND k=2)+(2050 AND k=1)
 2030 PRINT "THE SUM OF THE ASC II NAME DE-  CODED IS:";
 2031 LET l=0: FOR z=1 TO LEN n$(g(3)): LET l=l+CODE (n$(g(3),z)): NEXT z
 2032 PRINT l
 2035 GO TO 2055
 2040 PRINT "THE ASC II CODE FOR HIS NAME IS:";
 2041 FOR z=1 TO LEN n$(g(3)): PRINT CODE (n$(g(3),z));",";: NEXT z: PRINT " "
 2045 GO TO 2055
 2050 PRINT "THE NAME BEGINS WITH:";n$(g(3), TO 6)
 2055 LET k=INT (RND*3)+1: GO TO (2060 AND k=3)+(2070 AND k=2)+(2080 AND k=1)
 2060 PRINT "THE SUM OF THE ASC II CODE OF   THE TOOL IS:";
 2062 LET l=0: FOR z=1 TO LEN n$(g(2)): LET l=l+CODE (n$(g(2),z)): NEXT z
 2065 PRINT l: GO TO 2085
 2070 PRINT "THE TOOL'S NAME BEGINS WITH:";: PRINT n$(g(2),1): GO TO 2085
 2080 PRINT "THE TOOL HAS A CODE VALUE IN    ORDER OF SPELLING OF:";: FOR z=1 TO LEN n$(g(2)): PRINT CODE (n$(g(2),z));",";: NEXT z
 2082 PRINT " "
 2085 PRINT "THE ROOM'S CODE IS:";: FOR z=1 TO LEN n$(g(1)): PRINT CODE (n$(g(1),z));",";: NEXT z: PRINT " "
 2090 INPUT "Another Game?"; LINE v$: IF v$(1)="n" OR v$(1)="N" THEN PRINT x$(1900)
 2095 CLEAR : GO TO 7
 3000 REM >>Game Over--Solved<<
 3005 PAPER 6: BORDER 6: INK 1: FLASH 0: BRIGHT 0: OVER 0: INVERSE 0: CLS 
 3010 FOR z=1 TO LEN b$(m)-3: IF b$(m,z TO z+2)="Mr." THEN GO TO 3040
 3015 IF b$(m,z TO z+3)="Mrs." THEN GO TO 3050
 3017 IF b$(m,z TO z+2)="Ms." THEN GO TO 3050
 3020 NEXT z
 3025 GO TO 3010
 3040 PRINT : PRINT : PRINT "And so the case is SOLVED,      thanks to SIR";b$(m,4 TO ): GO TO 3055
 3045 PRINT : PRINT : PRINT "And so the case is SOLVED,      thanks to LADY";b$(m,4 TO ): GO TO 3055
 3050 PRINT : PRINT : PRINT "And so the case is SOLVED       thanks to LADY";b$(m,5 TO )
 3055 INK 3: CIRCLE 127,88,40: PLOT 107,88: DRAW 40,0,PI: CIRCLE 127,94,7: INK 0: FOR z=7 TO 0 STEP -1: CIRCLE 110,111,z: CIRCLE 144,111,z: NEXT z
 3075 PRINT AT 19,4; INK 2; PAPER 4;"Keep up the GOOD work!!!": INPUT "Another Game?"; LINE v$: IF v$(1)="n" THEN PRINT x$(1900)
 3080 CLEAR 
 3085 GO TO 7
 5000 REM >>Next Player Still  <<         >>Eligible?          <<
 5001 GO SUB 6150
 5005 IF v(m)=0 THEN RETURN 
 5010 GO TO 95
 5030 REM >>Dice Data<<
 5035 LET a$="pu": LET restore=5040: GO SUB 9900: RETURN 
 5040 DATA 0,0,0,24,24,0,0,0
 5045 DATA 3,3,0,0,0,0,192,192
 5050 DATA 3,3,0,24,24,0,192,192
 5055 DATA 102,102,0,0,0,0,102,102
 5060 DATA 102,102,0,24,24,0,102,102
 5065 DATA 102,102,0,102,102,0,102,102
 5070 REM >>Error<<
 5075 INPUT "CODE NAME?"; LINE a$
 5080 IF a$<>" STOP AND THEN STEP " THEN RUN 
 5085 ON ERR RESET 
 5095 STOP 
 6000 REM >>Guess for Answers<<
 6005 BORDER 7: PAPER 0: INK 7: OVER 0: CLS 
 6010 LET a$="gk": LET restore=6015: GO SUB 9900
 6015 DATA 255,129,129,129,129,129,129,255,24,24,60,90,153,129,66,60
 6020 DATA 240,243,247,255,255,247,243,240
 6025 DATA 2,15,18,34,127,127,20,8,0,0,128,96,252,252,80,32
 6030 INK 4: PAPER 4: PLOT 0,103: DRAW 16,0: DRAW 39,-39: DRAW -55,0: INK 0: DRAW 0,39
 6035 FOR z=9 TO 13: LET q1=z-8: FOR x=0 TO q1: PRINT AT z,x; PAPER 4; OVER 1;"g": NEXT x: NEXT z
 6040 FOR z=14 TO 21: PRINT AT z,0; INK 2;"::::::": NEXT z: FOR z=14 TO 18: PRINT AT z,3; INK 3; PAPER 6;": ";AT z,6; INK 7; PAPER 6;" :";AT z,4; PAPER 6;"  ": NEXT z: PRINT AT 14,5; INK 7; PAPER 6;"h": PRINT AT 16,3; INK 3; PAPER 6;"i"
 6045 INK 7: FOR z=24 TO 63 STEP 2: PLOT z,0: DRAW 0,23: NEXT z: FOR z=64 TO 71 STEP 2: PLOT z,0: DRAW 0,15: NEXT z: FOR z=72 TO 79 STEP 2: PLOT z,0: DRAW 0,7: NEXT z
 6050 INK 4: PLOT 56,47: DRAW 191-56,0: DRAW 56,-47: DRAW -167,0
 6055 FOR z=56 TO 191: PLOT z,47: DRAW 0,-23: NEXT z: FOR z=80 TO 215: PLOT z,24: DRAW 0,-24: NEXT z
 6060 FOR z=64 TO 80: PLOT z,23: DRAW 0,-7: NEXT z: FOR z=72 TO 79: PLOT z,15: DRAW 0,-7: NEXT z
 6065 LET q1=64: FOR z=0 TO 47: PLOT 191,z: DRAW q1,0: LET q1=q1-1.4: NEXT z
 6070 INK 1: PRINT AT 0,0; INK 7; PAPER 0;"And Here Come The Cops In Their New Compact-Style Cars-----"
 6075 PAPER 0: FOR z=7 TO 23 STEP 2: PRINT AT 15,z;"jk": BEEP .25,12: BEEP .25,9: PRINT AT 15,z;"  ": NEXT z: PRINT AT 15,z;"jk"
 6080 LET q1=z: FOR z=15 TO 20: PRINT AT z,q1; PAPER 0; INK 1;"jk": BEEP .25,12: BEEP .25,9: PRINT AT z,q1;"  ": LET q1=q1+1: NEXT z: PRINT AT z-1,q1-1; INK 1; PAPER 0;"jk"
 6081 LET a$="gl": LET restore=6082: GO SUB 9900
 6082 DATA 0,0,0,0,0,1,11,59,0,0,0,0,0,252,252,252,2,4,12,28,2,3,1,0,200,36,130,2,4,8,16,224,0,33,17,51,163,29,1,1,224,240,240,240,240,240,240,240
 6083 LET a$="pq": LET restore=6084: GO SUB 9900
 6084 DATA 1,1,1,1,1,1,1,31,176,176,176,176,176,176,176,190
 6085 OVER 0: PRINT AT 12,11; INK 1;"gh";AT 13,11; INK 3;"ij";AT 14,11; INK 1;"kl";AT 15,11; INK 7;"pq": INK 6: PRINT AT 0,0; OVER 0;"Okay, ";x$(2);", we know     you're in there. Come out where ever you are!"
 6087 PAUSE 0
 6090 FOR z=1 TO 5: LET q15=z: IF x$(2)=b$(z) THEN GO TO 6100
 6095 NEXT z
 6100 GO SUB c(q15): IF q15<>2 AND q15<>4 THEN PRINT AT 13,8; OVER 1; INK 7;"gh";AT 14,8;"ij";AT 15,8;"kl"
 6105 IF q15=2 OR q15=4 THEN PRINT AT 14,8; OVER 1; INK 7;"ghi";AT 15,8;"jkl"
 6110 PRINT AT 0,0; OVER 0;x$(2);":What's all the     commotion about?                                                       "
 6112 PAUSE 0
 6115 PRINT AT 0,0; OVER 0;"Police:Stop blufing ";x$(2);b$(m);" has charged you    with murder of the first degree.I would advise you to give      yourself up."
 6117 PAUSE 0
 6120 RETURN 
 6125 LET flag=0: FOR z=1 TO 19
 6130 IF x$(q14)=n$(z) THEN RETURN 
 6135 NEXT z
 6140 PRINT AT 18,0;"There is no such name in my     vocabulary. Please be sure you  have SPELLED correctly.": PAUSE 0: PRINT AT 18,0; OVER 0;"                                                                                                "
 6145 LET flag=1: RETURN 
 6150 REM >>Everyone Gone?<<
 6155 FOR z=1 TO players
 6160 IF v(z)=0 THEN RETURN 
 6165 NEXT z
 6170 GO TO 2000
 7900 REM >>Roll Dice<<
 7902 GO SUB 5030
 7905 LET q1=INT (RND*6)+1: LET q2=INT (RND*6)+1: PRINT AT 14,13; OVER 0;CHR$ (CODE "o"+q1);AT 14,17;CHR$ (CODE "o"+q2): IF INKEY$=CHR$ (CODE "1") THEN GO SUB 9792
 7907 IF INKEY$<>CHR$ 13 THEN GO TO 7905
 7910 LET l=q1+q2
 7915 IF INKEY$<>"" THEN GO TO 7915
 7920 IF INKEY$="" THEN GO TO 7920
 7925 RETURN 
 7990 FOR q=1 TO LEN l$
 7991 GO SUB 7993
 7992 NEXT q: RETURN 
 7993 IF l$(q)="5" THEN RETURN 
 7994 IF l$(q)="6" THEN RETURN 
 7995 IF l$(q)="7" THEN RETURN 
 7996 IF l$(q)="8" THEN RETURN 
 7997 GO TO 35
 8000 REM >>Billiard Room<<
 8002 LET a$="ru": LET restore=8003: GO SUB 9900
 8003 DATA 0,0,0,0,255,137,213,163
 8004 DATA 165,165,90,60,24,0,0,0
 8005 DATA 73,73,73,255,255,73,73,73,73,73,73,73,73,73,73,73
 8006 CLS : INK 0: PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87
 8007 OVER 0: PRINT AT 1,9; INVERSE 1;"Billiard Room": PRINT AT 6,7; INK 4;"::::::::::::::::::::::::::::::::::": FOR z=7 TO 10: PRINT AT z,9;"::";AT z,21;"::": NEXT z
 8008 FOR z=8 TO 22: PRINT AT 5,z;"r": NEXT z: PRINT AT 6,7; INK 2;"s";AT 6,23; INK 2;"s": PRINT AT 4,2;"ttt": FOR z=2 TO 4: PRINT AT 5,z; INK 3;"u";AT 6,z;"u";AT 3,z;"u": NEXT z
 8009 OVER 1: RETURN 
 8010 REM >>Library<<
 8011 OVER 0
 8012 LET a$="rr": LET restore=8013: GO SUB 9900
 8013 DATA 0,0,104,124,110,103,98,111
 8014 CLS : INK 0: PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87
 8015 PLOT 39,88: DRAW 0,64: DRAW 105,0: DRAW 0,-64
 8016 INK 1: FOR z=3 TO 10: FOR x=5 TO 17: PRINT AT z,x;"r": NEXT x: NEXT z: INK 0: PRINT AT 1,12; INVERSE 1;"Library": INK 2: PRINT AT 8,21;"::::::::";AT 9,21;"::";AT 10,21;"::": FOR z=5 TO 10: PRINT AT z,24;"::": NEXT z: INK 0
 8017 OVER 1: RETURN 
 8020 REM >>Study<<
 8021 OVER 0
 8022 LET a$="rs": LET restore=8023: GO SUB 9900
 8023 DATA 24,36,66,66,36,24,60,126
 8024 DATA 24,36,66,165,129,90,36,24
 8025 CLS : PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87
 8026 PRINT AT 1,13; INVERSE 1;"Study": FOR z=5 TO 10: PRINT AT z,7;"::";AT z,26;"::": NEXT z: PRINT AT 7,11;"::::::::::::::::::::": FOR z=8 TO 10: PRINT AT z,9;"::";AT z,12;"::";AT z,19;"::": NEXT z: PRINT AT 6,15; INK 1;"r";AT 4,26; INK 5;"s"
 8027 PRINT AT 8,8;"::": RETURN 
 8030 REM >>Kitchen<<
 8031 CLS : LET restore=8032: LET a$="ru": GO SUB 9900
 8032 DATA 0,0,0,0,124,130,0,0
 8033 DATA 0,0,0,0,0,0,0,126
 8034 DATA 60,66,66,153,153,66,66,60
 8035 DATA 0,0,0,0,254,14,14,0
 8036 PRINT AT 0,9;"Kitchen": PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87
 8037 PLOT 16,96: DRAW 32,0: DRAW 0,56: DRAW -32,0: DRAW 0,-56: PLOT 16,136: DRAW 32,0: PRINT AT 6,5; OVER 1;"r"
 8038 PLOT 72,96: DRAW 40,0: DRAW 0,48: DRAW -40,0: DRAW 0,-48: PLOT 80,112: DRAW 24,0: DRAW 0,-8: DRAW -24,0: DRAW 0,8: PLOT 80,120: DRAW 0,16: DRAW 24,0: DRAW 0,-16: PRINT AT 6,9; OVER 1;"s";AT 6,11;"s";AT 6,13;"s";AT 5,11;"t"
 8039 PLOT 136,112: DRAW 72,0: PLOT 144,104: DRAW 56,0: PLOT 144,112: DRAW 0,-16: PLOT 200,112: DRAW 0,-16: OVER 1: PRINT AT 8,18;"u u  uu": RETURN 
 8040 REM >>Consevatory<<
 8041 CLS : LET restore=8042: LET a$="ou": GO SUB 9900
 8042 DATA 0,0,32,18,9,37,19,15,0,0,4,72,144,164,200,240
 8043 DATA 15,19,37,9,18,32,0,0
 8044 DATA 240,200,160,144,72,36,0,0
 8045 DATA 0,24,60,126,126,60,24,0
 8046 DATA 24,24,24,24,24,24,24,24,126,255,255,255,255,126,60,60
 8047 PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87: INK 5: PLOT 24,96: DRAW 208,0: PLOT 24,96: DRAW 72,72: DRAW 64,0: DRAW 72,-72: PRINT AT 9,5;"::::::::::::::::::    ::::::::::::::::::";AT 7,15; INK 2;"::::";AT 9,15; INK 3;" :: ";AT 8,15;" :: "
 8048 INK 6: PRINT AT 1,27;"o p";AT 2,28;"s";AT 3,27;"q r": INK 0: PRINT AT 8,6;"t t t t";AT 8,19;"t t t t";AT 7,6; INK 4;"u u u u";AT 7,19;"u u u u"
 8049 PRINT AT 0,0;"Conservatory": RETURN 
 8050 REM >>Ballroom<<
 8051 CLS : LET a$="rs": LET restore=8052: GO SUB 9900
 8052 DATA 0,24,60,126,126,60,24,0
 8053 DATA 1,3,5,9,17,33,65,129
 8054 PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87: PLOT 15,96: DRAW 225,0: DRAW 0,72: DRAW -225,0: DRAW 0,-72
 8055 INK 5: PLOT 71,160: DRAW 121,0: DRAW 0,-33: DRAW -121,0: DRAW 0,33: INK 6: PLOT 16,144: DRAW 24,0: DRAW 0,-8: DRAW -8,0: DRAW 0,-8: DRAW -8,0: DRAW 0,-8: DRAW -8,-8: PLOT 239,144: DRAW -24,0: DRAW 0,-8: DRAW 8,0: DRAW 0,-8: DRAW 8,0: DRAW 0,-8: DRAW 8,-8: INK 0: PRINT AT 0,12;"Ballroom"
 8056 INK 2: PRINT AT 3,14;"r": INK 0: PRINT AT 3,11;"s";AT 3,16;"s     s": PLOT 72,128: DRAW 16,16: PLOT 96,144: DRAW 8,-8: DRAW 0,-8: PLOT 120,128: DRAW 0,8: DRAW 8,8: PLOT 135,144: DRAW 16,-16: PLOT 151,136: DRAW 8,8: PLOT 159,144: DRAW 16,-16: PLOT 168,136: DRAW 8,8: PLOT 183,144: DRAW 0,-16
 8057 RETURN 
 8060 REM >>Hall<<
 8061 CLS : LET a$="rr": LET restore=8062: GO SUB 9900
 8062 DATA 0,0,24,60,60,24,0,0
 8063 PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87: PLOT 48,96: DRAW 136,0: DRAW 0,56: DRAW -136,0: DRAW 0,-56: PLOT 104,104: DRAW 15,0: DRAW 0,23: DRAW -15,0: DRAW 0,-23: PRINT AT 7,14; OVER 1;"r": PRINT AT 1,12;"Hall"
 8065 PLOT 48,151: DRAW 55,-23: PLOT 183,151: DRAW -63,-23: PLOT 48,96: DRAW 55,8: PLOT 183,96: DRAW -63,8: RETURN 
 8070 REM >>Lounge<<
 8071 CLS : LET a$="ru": LET restore=8072: GO SUB 9900
 8072 DATA 0,0,0,0,0,60,126,255,0,0,0,1,6,8,16,224
 8073 DATA 0,0,0,224,16,8,8,15,24,60,126,126,0,0,0,0
 8074 PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87: PRINT AT 1,11;"Lounge": PRINT AT 7,2;" : ..............     :rrrrrrst: ";AT 7,7; OVER 1;"u";AT 6,15; OVER 0;" :";AT 6,24;": ";AT 8,2;" :..  :   :       :'''''''''''''''': ";AT 9,2;" : :  :   :       :        : "
 8075 RETURN 
 8080 REM >>Dining Room.<<
 8081 CLS : LET a$="ou": LET restore=8082: GO SUB 9900
 8082 DATA 24,24,24,24,24,24,24,24,24,60,90,153,60,90,153,24,0,0,0,1,7,15,63,126
 8083 DATA 0,0,0,31,31,9,63,17,0,0,0,248,248,144,252,136
 8084 DATA 0,16,57,127,127,127,31,7,0,144,152,252,248,248,240,224
 8085 PRINT AT 1,10;"Dining Room";AT 7,10; INK 4;"qp"; INK 0;"  ::  ::";AT 6,15;"::::";AT 8,2;" : ...... :  "; INK 4;"qp "; INK 0;":: "; INK 2;"tu"; INK 0;" ::    : ......";AT 9,2;" :': : : :':   o :: "; INK 6;"rs"; INK 0;" ::    :': : : "
 8086 PLOT 0,88: DRAW 255,0: DRAW 0,87: DRAW -255,0: DRAW 0,-87
 8087 LET a$="qq": LET restore=8088: GO SUB 9900
 8088 DATA 0,0,0,128,224,240,252,126
 8089 PRINT AT 7,12; INK 4;"q";AT 8,12;"q": RETURN 
 9400 REM >>Detective Notes<<
 9401 CLS : GO SUB 9449
 9402 INPUT "Do you own a PRINTER?(y/n)";q$: IF q$="" OR (q$<>"y" AND q$<>"n") THEN GO TO 9402
 9403 FOR w=1 TO players: CLS : PRINT AT 0,9;"Player #";w;"  Peg COLOR:";i(w);AT 2,9;"NAME:";b$(w);AT 4,9;"STATUS:Detective"
 9405 PRINT AT 7,1;"Murder WPNS:";AT 7,1; OVER 1;"____________";AT 7,18;"Rooms:";AT 7,18;"______";AT 14,1;"SUSPECTS:";AT 14,1;"_________";AT 21,0;"Here are a list of your 'cards':"
 9406 FOR x=1 TO 5: PRINT AT x+7,1;x;")";c$(x);AT x+14,1;x;")";b$(x): NEXT x: FOR x=1 TO 9: PRINT AT x+7,18;x;")";d$(x): NEXT x
 9408 PLOT 8,167: DRAW 47,0: DRAW 0,-8: DRAW -47,0: DRAW 0,8: DRAW 0,-39: DRAW 47,0: DRAW 0,39
 9409 PRINT AT 1,1; OVER 1;"PHOTO:"
 9410 GO SUB c(w): IF w<>2 AND w<>4 THEN PRINT AT 3,3;"gh";AT 4,3;"ij";AT 5,3;"kl"
 9411 IF w=2 OR w=4 THEN PRINT AT 3,2;"ghi";AT 4,2;"jkl"
 9412 IF q$="y" THEN COPY /: GO TO 9414
 9413 PRINT #0; INVERSE 1;"Press a key to continue...      ": GO SUB 9890
 9414 CLS : PRINT 
 9415 IF q$(1)="n" THEN FOR x=1 TO q1: PRINT x;")";k$(w,x, TO ): NEXT x
 9416 IF q$(1)="y" THEN FOR x=1 TO q1: LPRINT x;")";k$(w,x, TO ): NEXT x: GO TO 9418
 9417 PRINT #1;"Press a key for the next player.": GO SUB 9890
 9418 NEXT w
 9419 CLS : RETURN 
 9449 REM >>Deal Cards<<
 9451 DIM k$(players,10,12): LET py=0: GO SUB 9452: GO TO 9455
 9452 RESTORE 9452: DIM n$(19,12): FOR z=1 TO 19: READ n$(z): NEXT z: DATA "Billiard Rm.","Library","Study","Kitchen","Conservatory","Ballroom","Hall","Lounge","Dining Room"
 9453 DATA "Wrench","Hammer","Rope","Candle","Pipe"
 9454 DATA "Mr. Green","Col. Mustard","Ms. Scarlett","Mrs. White","Prof. Plum": RETURN 
 9455 GO SUB 9471: FOR x=1 TO players*(INT (16/players))
 9456 LET py=py+1: IF py>players THEN LET py=1
 9457 GO SUB 9469
 9458 LET q=INT (RND*19)+1: IF n$(q,1)="x" THEN GO TO 9458
 9459 LET k$(py,q1)=n$(q)
 9460 LET q1=q1+1
 9461 LET n$(q,1)="x"
 9462 NEXT x
 9463 IF INT (16/players)=16/players THEN RETURN 
 9464 FOR z=1 TO 16-(players*(INT (16/players))): LET py=py+1: IF py>players THEN LET py=1
 9465 FOR y=1 TO 19: IF n$(y,1)<>"x" THEN GO TO 9467
 9466 NEXT y
 9467 GO SUB 9480: LET q1=w: LET k$(py,q1)=n$(y): NEXT z
 9468 RETURN 
 9469 FOR w=1 TO 10: IF k$(py,w,1)<>" " THEN NEXT w
 9470 LET q1=w: RETURN 
 9471 DIM g(3): LET g(1)=INT (RND*9)+1: LET g(2)=INT (RND*5)+10: LET g(3)=INT (RND*5)+15: LET n$(g(1),1)="x": LET n$(g(2),1)="x": LET n$(g(3),1)="x": RETURN 
 9475 REM >>Illegal<<
 9477 BEEP .4,21: BEEP .4,21: RETURN 
 9480 REM >>Check for Space<<
 9482 FOR w=1 TO 10: IF k$(py,w,1)=" " THEN RETURN 
 9483 NEXT w
 9484 RETURN 
 9790 REM >>Draw Board<<
 9792 BORDER 4: PAPER 7: INK 0: FLASH 0: INVERSE 0: OVER 0: CLS 
 9793 FOR z=0 TO 255 STEP 8: PLOT z,175: DRAW 0,-175: NEXT z: FOR z=0 TO 175 STEP 8: PLOT 0,z: DRAW 255,0: NEXT z
 9794 PAPER 4: INK 3: PRINT AT 8,10;"          ";AT 9,10;"          ";AT 10,10;"          ";AT 11,10;"          ";AT 12,10;"          ";AT 13,10;"          ";AT 14,10;"          ";AT 0,0;"     ";AT 1,0;"     ";AT 2,0;"     ";AT 3,0;"     ";AT 4,0;"     ";AT 0,9;"         ";AT 1,9;"         ";AT 2,9;"         ";AT 3,9;"         ";AT 4,9;"         "
 9795 PRINT AT 0,23;"         ";AT 1,23;"         ";AT 2,23;"         ";AT 3,23;"         ";AT 4,23;"         "
 9796 PRINT AT 9,0;"     ";AT 10,0;"     ";AT 11,0;"     ";AT 12,0;"     ";AT 13,0;"     ";AT 14,0;"     ";AT 9,23;"         ";AT 10,23;"         ";AT 11,23;"         ";AT 12,23;"         ";AT 13,23;"         "
 9797 PRINT AT 15,10;"          ";AT 18,0;"      ";AT 19,0;"      ";AT 20,0;"      ";AT 21,0;"      ";AT 18,10;"     ";AT 19,10;"     ";AT 20,10;"     ";AT 21,10;"     ";AT 20,19;"             ";AT 21,19;"             ";AT 16,23;"         ";AT 17,23;"         ";AT 18,23;"         "
 9798 PRINT AT 2,2;"B";AT 2,13;"C";AT 2,27;"A";AT 11,2;"L";AT 11,27;"O";AT 20,3;"S";AT 20,13;"K";AT 21,26;"D";AT 17,26;"H"
 9799 PAPER 7: PRINT AT 13,12; INK 4;"CLUE---";AT 10,12; INK 6;"ANSWERS": INK 2: PRINT AT 4,2;"n";AT 2,4;"n";AT 4,11;"n";AT 2,17;"n";AT 2,23;"n";AT 4,31;"n";AT 11,4;"n";AT 14,3;"n";AT 12,23;"n";AT 9,30;"n";AT 13,29;"n";AT 18,4;"n";AT 19,5;"n";AT 19,10;"n";AT 20,20;"n";AT 18,28;"n";AT 16,28;"n"
 9859 OVER 1: PAPER 7: INK 0: PRINT AT d(1),e(1); INK i(1);"m";AT d(2),e(2); INK i(2);"m";AT d(3),e(3); INK i(3);"m";AT d(4),e(4); INK i(4);"m";AT d(5),e(5); INK i(5);"m": RETURN 
 9860 REM >>Prof. PLUM<<
 9862 LET a$="gl": LET restore=9863: GO SUB 9900: RETURN 
 9863 DATA 0,15,3,3,3,3,3,3
 9864 DATA 0,240,192,192,192,192,192,192
 9865 DATA 7,12,13,12,3,1,2,4
 9866 DATA 224,48,176,48,192,128,64,32
 9867 DATA 5,5,4,7,6,6,6,14
 9868 DATA 160,160,32,224,96,96,96,112
 9870 REM >>Mrs. White<<
 9872 LET a$="gl": LET restore=9873: GO SUB 9900: RETURN 
 9873 DATA 0,1,1,1,0,3,0,0
 9874 DATA 255,195,165,195,255,219,60,102
 9875 DATA 0,128,128,128,0,128+64,0,0
 9876 DATA 0,0,0,1,1,0,0,0
 9877 DATA 129,126,255,129,129,255,36,102
 9878 DATA 0,0,0,128,128,0,0,0
 9880 REM >>Miss Scarlett<<
 9881 LET a$="gl": LET restore=9882: GO SUB 9900: RETURN 
 9882 DATA 0,1,7,14,13,28,62,125
 9883 DATA 0,192,224,112,176,56,124,190,1,3,7,7,3,1,1,3
 9884 DATA 128,192,224,224,192,128,128,192
 9885 DATA 7,7,7,3,1,1,1,7
 9886 DATA 224,224,224,192,128,128,128,224
 9890 IF INKEY$<>"" THEN GO TO 9890
 9893 PAUSE 0: CLS : RETURN 
 9899 REM >>UDG's<<
 9900 RESTORE restore: FOR z=USR (a$(1)) TO USR (a$(2))+7: READ a: POKE z,a: NEXT z: RETURN 
 9910 DATA 0,0,4,10,114,0,0,0
 9920 DATA 0,0,4,3,127,3,0,0
 9930 DATA 0,32,80,136,80,32,92,0
 9940 DATA 16,16,16,146,124,56,0,0
 9950 DATA 0,0,0,0,0,16,56,16
 9960 DATA 0,6,6,6,126,120,0,0
 9965 REM >>Mr. Green<<
 9967 LET restore=9970: LET a$="gl": GO SUB 9900: RETURN 
 9970 DATA 0,0,1,2,6,1,1,0
 9971 DATA 0,224,240,240,48,48,32,192
 9972 DATA 0,1,2,2,2,2,3,3
 9973 DATA 192,32,16,208,208,16,240,240
 9974 DATA 3,3,7,14,28,24,112,112
 9975 DATA 240,240,240,112,112,112,224,224
 9980 REM >>Colnel Mustard<<
 9982 LET a$="gl": LET restore=9985: GO SUB 9900 : RETURN 
 9985 DATA 0,0,0,0,0,0,0,1
 9986 DATA 0,60,66,90,36,126,255,0
 9987 DATA 0,0,0,0,0,0,0,BIN 10000000
 9988 DATA 2,2,2,2,1,0,0,0
 9989 DATA 0,195,195,0,255,36,36,231
 9990 DATA 64,64,64,64,128,0,0,0
 9992 REM >>Erase Trail<<
 9995 PRINT AT d(m),e(m); INK 0; PAPER 7; FLASH 0; BRIGHT 0; OVER 1; INVERSE 0;"m": RETURN 
 9996 REM >>Scream!<<
 9997 RETURN

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