.FUNCT INTRO PRINTI "Somewhere near Los Angeles. A cold Friday evening in February 1938. In this climate, cold is anywhere below about fifty degrees. Storm clouds are swimming across the sky, their bottoms glowing faintly from the city lights in the distance. A search light pans slowly under the clouds, heralding another film premiere. The air seems expectant, waiting for the rain to begin, like a cat waiting for the ineffable moment to ambush. " CRLF PRINTR "The taxi has just dropped you off at the entrance to the Linders' driveway. The driver didn't seem to like venturing into this maze of twisty streets any more than you did. But the house windows are full of light, and radio music drifts toward you. Your favorite pistol, a snub-nosed Colt .32, is snug in its holster. You just picked up a match book off the curb. It might come in handy. Good thing you looked up the police file on Mrs. Linder's death. Her suicide note and the newspaper story told you all you know about the family. The long week is finished, except for this appointment. But why does an ominous feeling grip you? " .FUNCT TIMES-UP PRINTI "Police Chief Klutz walks up to you, from out of nowhere. ""I'm sorry, Detective, but you can't spend any more time here. We need you at the Coliseum for the all-day Police Department track-and-field meet. I hope you had a restful night!"" He escorts you to a waiting police car, and you go off into the sunrise." CRLF ZERO? TOO-LATE /?CND3 CALL TOO-LATE-F ?CND3: QUIT RTRUE .FUNCT INTEGER-F PRINTR "(Use figures for numbers, for example ""10."")" .FUNCT QUEUE-MAIN-EVENTS CALL QUEUE,I-LINDER-TO-OFFICE,52 PUT STACK,0,1 CALL QUEUE,I-LINDER-RETIRES,290 PUT STACK,0,1 CALL QUEUE,I-PHONG-RETIRES,320 PUT STACK,0,1 CALL QUEUE,I-STILES-ARRIVE,60 PUT STACK,0,1 CALL QUEUE,I-PROMPT-1,1 PUT STACK,0,1 CALL QUEUE,I-PROMPT-2,10 PUT STACK,0,1 CALL QUEUE,I-WEATHER,6 PUT STACK,0,1 CALL QUEUE,I-CHIMES,30 PUT STACK,0,1 RTRUE .FUNCT I-WEATHER,OUT? GETP HERE,P?LINE EQUAL? STACK,OUTSIDE-LINE-C /?PRD1 PUSH 0 JUMP ?PRD2 ?PRD1: PUSH 1 ?PRD2: SET 'OUT?,STACK INC 'I-WEATHER-NUM EQUAL? 1,I-WEATHER-NUM \?ELS5 PRINTI "Suddenly, a clap of thunder rolls across the hills" ZERO? OUT? /?ELS10 PRINTI " nearby" JUMP ?CND8 ?ELS10: PRINTI " outside" ?CND8: PRINTI "." CRLF CALL QUEUE,I-WEATHER,3 PUT STACK,0,1 RFALSE ?ELS5: EQUAL? 2,I-WEATHER-NUM \?ELS21 PRINTI "Without warning, lightning flashes" ZERO? OUT? /?ELS26 PRINTI " above" JUMP ?CND24 ?ELS26: PRINTI " outside" ?CND24: PRINTI ", and a few seconds later thunder rattles the house." CRLF CALL QUEUE,I-WEATHER,3 PUT STACK,0,1 RFALSE ?ELS21: EQUAL? 3,I-WEATHER-NUM \?ELS37 PRINTI "Rain begins to fall" ZERO? OUT? \?CND40 PRINTI " outside" ?CND40: PRINTI " in a sprinkle." CRLF CALL QUEUE,I-WEATHER,2 PUT STACK,0,1 RFALSE ?ELS37: EQUAL? 4,I-WEATHER-NUM \?ELS48 SET 'GROUND-MUDDY,TRUE-VALUE PRINTI "The rain" ZERO? OUT? \?CND51 PRINTI " outside" ?CND51: PRINTI " is falling heavily now." CRLF CALL QUEUE,I-WEATHER,9 PUT STACK,0,1 RFALSE ?ELS48: EQUAL? 5,I-WEATHER-NUM \?ELS59 PRINTI "The rain" ZERO? OUT? \?CND62 PRINTI " outside" ?CND62: PRINTI " begins to taper off." CRLF CALL QUEUE,I-WEATHER,5 PUT STACK,0,1 RFALSE ?ELS59: EQUAL? 6,I-WEATHER-NUM \?ELS70 PRINTI "The rain storm" ZERO? OUT? \?CND73 PRINTI " outside" ?CND73: PRINTI " has passed now." CRLF SUB CLOUDS-GONE,PRESENT-TIME CALL QUEUE,I-WEATHER,STACK PUT STACK,0,1 RFALSE ?ELS70: EQUAL? 7,I-WEATHER-NUM \?ELS81 SET 'SKY-DESC,STR?196 SUB MOONRISE,PRESENT-TIME CALL QUEUE,I-WEATHER,STACK PUT STACK,0,1 RFALSE ?ELS81: EQUAL? 8,I-WEATHER-NUM \?ELS83 SET 'SKY-DESC,STR?197 SUB SUNRISE,PRESENT-TIME SUB STACK,15 >STACK CALL QUEUE,I-WEATHER,STACK PUT STACK,0,1 RFALSE ?ELS83: EQUAL? 9,I-WEATHER-NUM \?ELS87 PRINTI "Suddenly it dawns on you that the sky is getting light" ZERO? OUT? \?CND90 PRINTI " outside" ?CND90: PRINTI "." CRLF SET 'SKY-DESC,STR?198 CALL QUEUE,I-WEATHER,25 PUT STACK,0,1 RFALSE ?ELS87: EQUAL? 10,I-WEATHER-NUM \FALSE PRINTI "The sun has appeared over the hills" ZERO? OUT? \?CND101 PRINTI " outside" ?CND101: PRINTI "." CRLF RFALSE .FUNCT I-CHIMES,HALF-HR,HR CALL QUEUE,I-CHIMES,30 PUT STACK,0,1 DIV PRESENT-TIME,30 >HALF-HR DIV HALF-HR,2 >HR EQUAL? HERE,OFFICE \FALSE MUL 2,HR EQUAL? HALF-HR,STACK \?ELS6 LESS? 12,HR \?CND7 SUB HR,12 >HR ?CND7: PRINTI "The clock chimes " EQUAL? 1,HR \?ELS14 PRINTI "once" JUMP ?CND12 ?ELS14: EQUAL? 2,HR \?ELS18 PRINTI "twice" JUMP ?CND12 ?ELS18: PRINTN HR PRINTI " times" ?CND12: PRINTI " to mark the hour." CRLF RFALSE ?ELS6: PRINTI "The clock chimes once to mark the half hour." CRLF RFALSE .FUNCT I-STILES-ARRIVE MOVE STILES,OFFICE-PATH FSET BACK-GATE,LOCKED CALL ESTABLISH-GOAL,STILES,OFFICE-PORCH EQUAL? HERE,OFFICE-PATH \?ELS5 PRINTR "Someone enters through the back gate and rushes past you." ?ELS5: GETP HERE,P?CORRIDOR ZERO? STACK /FALSE GETP HERE,P?CORRIDOR BAND STACK,3 ZERO? STACK /FALSE PRINTR "Someone enters the property through the back gate." .FUNCT I-DUFFY-ARRIVE ZERO? WELCOMED /?ELS3 CALL QUEUE,I-MEET-DUFFY?,-1 PUT STACK,0,1 SET 'DUFFY-WITH-STILES,TRUE-VALUE FCLEAR STILES,INVISIBLE CALL ESTABLISH-GOAL,STILES,FRONT-PORCH RFALSE ?ELS3: SET 'SEEN-DUFFY?,TRUE-VALUE SET 'MET-DUFFY?,TRUE-VALUE PRINTI "Suddenly, your assistant, Sgt. Duffy, appears from out of nowhere. ""Hello, Detective!" PRINTI " I thought I should come here on the streetcar, in case you needed help. " PRINTI "I'll be nearby if you want me."" He disappears just as quickly." CRLF RFALSE .FUNCT DUFFY-GREETING SET 'MET-STILES?,TRUE-VALUE SET 'SEEN-DUFFY?,TRUE-VALUE SET 'MET-DUFFY?,TRUE-VALUE FSET STILES,TOUCHBIT PRINTI " ""Detective, I'm glad you're safe!" ZERO? PLAYER-HIDING /?CND3 PRINTI " Don't worry, I won't tell anyone you're hiding." ?CND3: PRINTI " I thought I should come here on the streetcar, in case you needed help. " PRINTI "I'm familiar with the house, since I was here to help investigate Mrs. Linder's death. Just as I walked up tonight, I heard a shot! The next thing I knew, this man, who calls himself Stiles, burst out of the woods behind the house. Naturally, I put the nippers on him and brought him along." RTRUE .FUNCT I-MEET-DUFFY?,ARG=0,L,?TMP1 LOC STILES >L ZERO? WELCOMED /FALSE ZERO? MET-DUFFY? \FALSE EQUAL? L,HERE /?THN8 GETP L,P?CORRIDOR >?TMP1 GETP HERE,P?CORRIDOR BAND ?TMP1,STACK ZERO? STACK /FALSE ?THN8: PRINTI "Your assistant, Sgt. Duffy, sees you." CALL DUFFY-GREETING PRINTI " I'll just stow him in the living room and stand by to help you.""" CRLF CALL ESTABLISH-GOAL,STILES,LIVING-ROOM CALL INT,I-MEET-DUFFY? PUT STACK,0,0 RTRUE .FUNCT DO-FINGERPRINT,AN=0 ZERO? DUFFY-AT-CORONER /?ELS3 PRINTI "Don't you remember? Duffy went in the ambulance to the Coroner's office. " PRINTR "You'll have to wait for him to return." ?ELS3: ZERO? FINGERPRINT-OBJ /?CND1 PRINTI "Sergeant Duffy ran off to the lab on an errand for you. " PRINTR "You'll have to wait for him to return." ?CND1: ZERO? MET-DUFFY? \?CND12 PRINTI "You haven't met Sergeant Duffy yet tonight." PRINTR " You'll need his help to do that." ?CND12: ZERO? AN \?CND17 PRINTI "You look at the " PRINTD PRSO PRINTI " closely. It appears to have good fingerprints on it, so you call for Sergeant Duffy." CRLF ?CND17: ZERO? AN /?ELS24 ZERO? PRSI /?ELS24 SET 'ANALYSIS-GOAL,PRSI JUMP ?CND22 ?ELS24: SET 'ANALYSIS-GOAL,FALSE-VALUE ?CND22: SET 'FINGERPRINT-OBJ,PRSO SET 'ANALYSIS-OBJ,AN RANDOM 15 ADD 15,STACK CALL QUEUE,I-FINGERPRINT,STACK PUT STACK,0,1 FSET PRSO,TOUCHBIT REMOVE PRSO PRINTI "Sergeant Duffy, quiet as a mouse, walks up and takes the " PRINTD PRSO PRINTR " from you. ""I'll return soon with the results,"" he says, and leaves as silently as he came." .FUNCT DO-ANALYZE EQUAL? PRSO,PRSI \?CND1 PRINTI "Sergeant Duffy appears with a puzzled look on his face." PRINTI " ""I don't see how you expect the lab to analyze something for itself!""" PRINTR " He leaves, shaking his head slowly." ?CND1: CALL DO-FINGERPRINT,TRUE-VALUE RSTACK .FUNCT I-FINGERPRINT PRINTI "Suddenly, Sergeant Duffy " RANDOM 100 GRTR? 30,STACK \?ELS5 PRINTI "appears, holding the " PRINTD FINGERPRINT-OBJ PRINTI " carefully in his hands. His quiet efficiency is impressive. " JUMP ?CND3 ?ELS5: RANDOM 100 GRTR? 50,STACK \?ELS9 PRINTI "seems to arrive from nowhere, holding the " PRINTD FINGERPRINT-OBJ PRINTI " in his hands. " JUMP ?CND3 ?ELS9: PRINTI "returns with the " PRINTD FINGERPRINT-OBJ PRINTI ". For a moment you muse on his almost magical appearances. " ?CND3: ZERO? ANALYSIS-GOAL /?ELS18 EQUAL? FINGERPRINT-OBJ,INSIDE-GUN,OUTSIDE-GUN \?ELS22 EQUAL? ANALYSIS-GOAL,POWDER,CLOCK-POWDER \?ELS22 PRINTI """The gun has recently been fired, and it contains traces of cheap gun powder" ZERO? POWDER-ANALYZED /?CND27 PRINTI ", the same kind of powder that you found on the clock" ?CND27: PRINTI "." JUMP ?CND16 ?ELS22: EQUAL? FINGERPRINT-OBJ,MATCHBOOK,THREAT-NOTE \?ELS36 EQUAL? ANALYSIS-GOAL,HANDWRITING \?ELS36 PRINTI """The ink is ordinary Waterman blue-black. The lab can't tell much else without a certified handwriting sample on file." JUMP ?CND16 ?ELS36: EQUAL? FINGERPRINT-OBJ,ANALYSIS-GOAL /?CND16 PRINTI """The " PRINTD FINGERPRINT-OBJ PRINTI " doesn't contain any " CALL ANALYSIS-PRINT,ANALYSIS-GOAL JUMP ?CND16 ?ELS18: EQUAL? FINGERPRINT-OBJ,PIECE-OF-WIRE,SPOOL-OF-WIRE /?THN47 EQUAL? FINGERPRINT-OBJ,WHITE-WIRE,BLACK-WIRE \?ELS46 ?THN47: PRINTI """The wire is ordinary 16-gauge bell wire." JUMP ?CND16 ?ELS46: EQUAL? FINGERPRINT-OBJ,PIECE-OF-PUTTY \?ELS52 PRINTI """The putty contained traces of the explosive cordite." JUMP ?CND16 ?ELS52: EQUAL? FINGERPRINT-OBJ,INSIDE-GUN,OUTSIDE-GUN \?ELS56 PRINTI """The gun has recently been fired, and it contains traces of cheap gun powder" PRINTI "." EQUAL? FINGERPRINT-OBJ,INSIDE-GUN \?CND16 PRINTI " And the barrel has indeed been sawed off." JUMP ?CND16 ?ELS56: EQUAL? FINGERPRINT-OBJ,CLOCK-POWDER \?ELS67 SET 'POWDER-ANALYZED,TRUE-VALUE PRINTI """The powder is gun powder, as I suspected. I put it in a cellophane envelope for you." JUMP ?CND16 ?ELS67: EQUAL? FINGERPRINT-OBJ,MATCHBOOK,THREAT-NOTE \?ELS71 PRINTI """The ink is ordinary Waterman blue-black. The lab can't tell much else without a certified handwriting sample on file." JUMP ?CND16 ?ELS71: EQUAL? FINGERPRINT-OBJ,STUB \?ELS75 PRINTI """I took the ticket stub to the movie theater, where they told me that it looked authentic to them, and the serial number proves that it was bought tonight." JUMP ?CND16 ?ELS75: EQUAL? FINGERPRINT-OBJ,MEDICAL-REPORT \?ELS79 SET 'DUFFY-SAW-MEDICAL-REPORT,TRUE-VALUE PRINTI """I tried to call the doctor, but there's no listing in the phone book. The lab people couldn't see anything unusual about the report." JUMP ?CND16 ?ELS79: PRINTI """I'm sorry,"" he begins, ""but the lab found nothing interesting." ?CND16: PRINTI """ With that, he leaves, handing you the " PRINTD FINGERPRINT-OBJ PRINTI " as he whisks away." CRLF MOVE FINGERPRINT-OBJ,PLAYER SET 'FINGERPRINT-OBJ,FALSE-VALUE RTRUE .FUNCT ANALYSIS-PRINT,OBJ PRINTD OBJ PRINTI "." RTRUE .FUNCT TODAY-F EQUAL? PRSA,V?WHAT \FALSE LESS? PRESENT-TIME,720 \?ELS10 PRINTR "Today is Friday, February 18, 1938." ?ELS10: PRINTR "Today is Saturday, February 19, 1938." .FUNCT WELCOME EQUAL? 2,TOO-LATE-KNOCKED \?CND1 PRINTI "No one answers the door, but a police car races in the driveway and stops. Two officers jump out, grab you roughly, and haul you off as a trespasser." CRLF CALL TOO-LATE-F QUIT ?CND1: ZERO? RADIO-ON /?CND6 PRINTI "Someone turns off the radio. " SET 'RADIO-ON,FALSE-VALUE ?CND6: PRINTI "You hear footsteps inside the house. Then the door swings open." CRLF EQUAL? TOO-LATE-KNOCKED,1 \?ELS18 SET 'TOO-LATE-KNOCKED,2 PRINTR "The butler isn't smiling now. ""I told you Mr. Linder will be in touch. Please leave before I call the police!"" He slams the door in your face." ?ELS18: ZERO? TOO-LATE /?ELS22 SET 'TOO-LATE-KNOCKED,1 PRINTR """Good evening,"" says a smiling face, ""I am Phong. I'm sorry, but you're too late arriving here. Mr. Linder has other business now. But he thanks you for coming and says he'll be in touch. Good night!"" He closes the door in your face." ?ELS22: EQUAL? HERE,FRONT-PORCH \?ELS30 MOVE PHONG,ENTRY PRINTI """Good evening,"" says a smiling face, ""I am Phong. Please come in."" He leads you into the house and closes the door behind you. " CRLF FCLEAR FRONT-DOOR,OPENBIT CALL GOTO,ENTRY JUMP ?CND28 ?ELS30: PRINTI """I've been told that detectives are sneaky, but this is too much!""" CRLF ?CND28: CALL QUEUE,I-GOTO-LIVING-ROOM,2 PUT STACK,0,1 RTRUE .FUNCT I-GOTO-LIVING-ROOM PRINTI "Phong says, ""I believe " IN? MONICA,LIVING-ROOM \?ELS5 PRINTI "the Linders are" JUMP ?CND3 ?ELS5: PRINTI "Mr. Linder is" ?CND3: PRINTI " in the living room. Please follow me.""" GETP HERE,P?CORRIDOR BAND 16,STACK ZERO? STACK \?ELS16 FSET HALL-3,TOUCHBIT PRINTI " He leads you into a hallway and turns left. " GETP HALL-3,P?LDESC PRINT STACK JUMP ?CND14 ?ELS16: PRINTI " He leads you north along the hallway. " ?CND14: IN? MONICA,LIVING-ROOM \?CND23 PRINTI " As you get near the living room, you hear voices talking, half-loud and fast." ?CND23: CRLF CRLF MOVE PHONG,LIVING-ROOM CALL GOTO,LIVING-ROOM CALL FIX-PHONG-MOVEMENT ZERO? STACK /?CND28 CALL QUEUE,I-PHONG,1 PUT STACK,0,1 SET 'WELCOMED,TRUE-VALUE ?CND28: CALL I-LINDER-WELCOME RSTACK .FUNCT I-LINDER-WELCOME CRLF PRINTI "Linder turns to you and says, ""Detective, am I glad to see you! " ZERO? TOO-LATE /?ELS5 PRINTI "I was afraid you'd met with an accident. I'm afraid I don't have time for you now, since I have another appointment. But thank you for coming. I'll be in touch. Phong, please show the Detective out.""" CALL SAID-TO,LINDER CALL ESTABLISH-GOAL,LINDER,OFFICE CALL INT,I-LINDER-TO-OFFICE PUT STACK,0,0 CALL QUEUE,I-PHONG-EJECTS,3 PUT STACK,0,1 JUMP ?CND3 ?ELS5: CALL ESTABLISH-GOAL,PHONG,KITCHEN SET 'OHERE,HERE SET 'LINDER-FOLLOWS-YOU,TRUE-VALUE CALL QUEUE,I-LINDER-FOLLOWS-YOU,-1 PUT STACK,0,1 IN? MONICA,HERE \?ELS13 PRINTI "This is my daughter, Monica, and of course " JUMP ?CND11 ?ELS13: PRINTI "I see " ?CND11: PRINTI "you've met Phong already."" He looks at a wrist watch with a gleaming silver bracelet. ""I see you're" CALL SAID-TO,LINDER LESS? PRESENT-TIME,490 \?ELS24 PRINTI " right on time." CALL QUEUE,I-LINDER-TO-OFFICE,10 PUT STACK,0,1 JUMP ?CND22 ?ELS24: LESS? PRESENT-TIME,500 \?ELS28 PRINTI " a little late." CALL QUEUE,I-LINDER-TO-OFFICE,5 PUT STACK,0,1 JUMP ?CND22 ?ELS28: PRINTI " rather late." CALL QUEUE,I-LINDER-TO-OFFICE,1 PUT STACK,0,1 ?CND22: PRINTI " I'll be with you as soon as I finish my drink.""" ?CND3: CRLF RTRUE .FUNCT I-PHONG-EJECTS FCLEAR FRONT-DOOR,OPENBIT FSET FRONT-DOOR,LOCKED PRINTI "Phong grabs you by the arm and guides you to the front door. It's obvious that you have no choice. ""Thank you for coming, Detective. Good night!"" He closes the door in your face." CRLF SET 'TOO-LATE-KNOCKED,1 CALL GOTO,FRONT-PORCH RTRUE .FUNCT I-LINDER-FOLLOWS-YOU EQUAL? OHERE,HERE /FALSE CALL WHERE-UPDATE,LINDER MOVE LINDER,HERE PRINTI "Linder follows you " EQUAL? OHERE,HALL-1,HALL-2 /?THN13 EQUAL? OHERE,HALL-3,HALL-4 \?ELS10 ?THN13: EQUAL? HERE,HALL-1,HALL-2 /?THN15 EQUAL? HERE,HALL-3,HALL-4 \?ELS10 ?THN15: PRINTI "along" JUMP ?CND8 ?ELS10: PRINTI "into" ?CND8: CALL THE?,HERE PRINTI " " PRINTD HERE PRINTI "." RANDOM 100 GRTR? 50,STACK \?CND25 CALL WINDOW-IN?,HERE ZERO? STACK /?CND25 PRINTI " He looks out the window and checks the lock." ?CND25: CRLF SET 'OHERE,HERE RETURN OHERE .FUNCT I-LINDER-TO-OFFICE,VAL=0 CALL INT,I-LINDER-FOLLOWS-YOU PUT STACK,0,0 EQUAL? HERE,WORKSHOP /?THN4 CALL OUTSIDE?,HERE ZERO? STACK /?ELS3 ?THN4: MOVE LINDER,CARVED-CHAIR SET 'TOO-LATE,TRUE-VALUE EQUAL? HERE,BACK-YARD,OFFICE-PORCH,OFFICE-PATH \FALSE PRINTI "The lights go on in Linder's office." CRLF RFALSE ?ELS3: LOC PLAYER EQUAL? OFFICE,HERE,STACK /?CND1 SET 'VAL,M-FATAL PRINTI "Linder gulps down the rest of his drink. ""Well, Detective,"" he says, ""I'm anxious to get on with our business. Let's you and I go to my office so we can talk undisturbed."" " LOC PLAYER FSET? STACK,FURNITURE \?CND15 SET 'WINNER,PLAYER CALL PERFORM,V?STAND ?CND15: EQUAL? HERE,HALL-4 \?ELS20 PRINTI "He takes you by the arm, opens a door to the east and leads you through it." CRLF JUMP ?CND18 ?ELS20: PRINTI "He takes you by the arm and leads you through the hallway. Just south of the entry, he opens a door to the east and leads you through it." CRLF ?CND18: FSET OFFICE-DOOR,OPENBIT CALL GOTO,OFFICE CALL WHERE-UPDATE,LINDER CALL SAID-TO,LINDER ?CND1: CALL QUEUE,I-LINDER-IN-OFFICE,1 PUT STACK,0,1 FSET LINDER,NDESCBIT MOVE LINDER,CARVED-CHAIR PRINTI "Linder sits down in the carved chair." CRLF RETURN VAL .FUNCT I-LINDER-IN-OFFICE ZERO? LINDER-EXPLAINED \FALSE LOC PLAYER IN? STACK,ROOMS \?ELS8 CALL QUEUE,I-LINDER-IN-OFFICE,5 PUT STACK,0,1 CALL SAID-TO,LINDER ZERO? LINDER-ASKED-YOU-TO-SIT \?ELS11 PRINTI """I" PRINTI "f you'll just take a chair, I'll explain what this is all about.""" CRLF JUMP ?CND9 ?ELS11: PRINTI "Linder says, ""I repeat: i" PRINTI "f you'll just take a chair, I'll explain what this is all about.""" CRLF ?CND9: INC 'LINDER-ASKED-YOU-TO-SIT RTRUE ?ELS8: CALL QUEUE,I-LINDER-EXPLAIN,1 PUT STACK,0,1 RTRUE .FUNCT I-LINDER-EXPLAIN ZERO? LINDER-EXPLAINED \FALSE SET 'LINDER-EXPLAINED,TRUE-VALUE PRINTI "Linder begins his story. ""My late wife, may she rest in peace, got involved with a young man named Stiles. Naturally I tried to stop this affair, but without much success. Since my wife passed away, this Stiles fellow has gone off the deep end, I'm afraid, and blamed me for her death. I tried my best to ignore him, but he seems to have lost his senses. This morning I received this note and decided to ask your help."" He hands the note to you." CRLF CALL SAID-TO,LINDER CALL THIS-IS-IT,THREAT-NOTE MOVE THREAT-NOTE,PLAYER FSET THREAT-NOTE,TOUCHBIT FCLEAR THREAT-NOTE,INVISIBLE RTRUE .FUNCT FIRE-SHOT PRINTI " Suddenly there is a flash of light and an explosion, and " ZERO? PLAYER-NEAR-SHOT /?ELS5 SUB PRESENT-TIME,PLAYER-NEAR-SHOT GRTR? 2,STACK \?ELS5 PRINTI "everything goes black. What a lousy way to step off, poking around like a two-bit shamus!" CRLF QUIT JUMP ?CND3 ?ELS5: RANDOM 100 GRTR? 50,STACK \?CND3 ZERO? PLAYER-HIDING \?CND3 LOC PLAYER EQUAL? STACK,WOODEN-CHAIR,LOUNGE /?CND3 PRINTI "mortal pain radiates from your heart. As blood fills your lungs and a scream fills your brain, you feel sure of only one thing: you should have taken a chair when Linder asked you to." CRLF QUIT ?CND3: PRINTI "the window falls into dozens of shiny shards." PRINTI " The cat bolts and disappears somewhere." REMOVE CAT SET 'SHOT-FIRED,TRUE-VALUE FCLEAR PIECE-OF-WIRE,TRYTAKEBIT FSET PIECE-OF-WIRE,TAKEBIT FCLEAR PIECE-OF-PUTTY,TRYTAKEBIT FSET PIECE-OF-PUTTY,TAKEBIT FCLEAR GLOBAL-SHOT,INVISIBLE FSET OFFICE-WINDOW,RMUNGBIT FCLEAR BROKEN-GLASS,INVISIBLE RTRUE .FUNCT I-PHONG-RETIRES CALL WHERE-UPDATE,PHONG MOVE PHONG,BUTLER-ROOM GETP HERE,P?LINE EQUAL? STACK,OUTSIDE-LINE-C \FALSE PRINTR "The lights go out, one by one, all over the house." .FUNCT I-LINDER-RETIRES CALL WHERE-UPDATE,LINDER MOVE LINDER,LINDER-ROOM EQUAL? HERE,ROCK-GARDEN,BACK-YARD,OFFICE-PORCH \FALSE PRINTR "The lights go off in Linder's office and then in the bedroom at the other end of the house." .FUNCT FIX-PHONG-MOVEMENT,MG,ELAPSED,OT GET MOVEMENT-GOALS,PHONG-C >MG SUB PRESENT-TIME,480 >ELAPSED ?PRG1: GET MG,MG-TIME >OT ZERO? OT /TRUE SUB OT,ELAPSED >OT GRTR? 1,OT \?CND6 SET 'TOO-LATE,TRUE-VALUE RFALSE ?CND6: PUT MG,MG-TIME,OT ADD MG,MG-LENGTH >MG JUMP ?PRG1 .FUNCT IN-MOTION?,PERSON,GT,?TMP1 GETP PERSON,P?CHARACTER GET GOAL-TABLES,STACK >GT GET GT,GOAL-ENABLE ZERO? STACK /FALSE GET GT,GOAL-S ZERO? STACK /FALSE LOC PERSON >?TMP1 GET GT,GOAL-F EQUAL? ?TMP1,STACK /FALSE RTRUE .FUNCT START-MOVEMENT CALL QUEUE,I-MONICA,1 PUT STACK,0,1 CALL QUEUE,I-FOLLOW,-1 PUT STACK,0,1 CALL QUEUE,I-ATTENTION,-1 PUT STACK,0,1 RTRUE .FUNCT IMOVEMENT,PERSON,INT,TB,VAR,DIS,TIM,ID,RM,GT,?TMP1 GETP PERSON,P?CHARACTER >ID GET MOVEMENT-GOALS,ID >TB GET GOAL-TABLES,ID >GT GET TB,MG-ROOM >RM EQUAL? 0,RM /?CND1 GET GT,GOAL-PRIORITY ZERO? STACK /?ELS6 PUT GT,GOAL-QUEUED,RM JUMP ?CND1 ?ELS6: CALL ESTABLISH-GOAL,PERSON,RM ?CND1: GET TB,MG-TIME >TIM EQUAL? 0,TIM /FALSE GET TB,MG-VARIATION >VAR MUL VAR,2 RANDOM STACK >DIS SUB DIS,VAR ADD TIM,STACK CALL QUEUE,INT,STACK ADD TB,MG-LENGTH PUT MOVEMENT-GOALS,ID,STACK GET TB,MG-NEXT EQUAL? 0,STACK /FALSE GET TB,MG-NEXT >?TMP1 SUB VAR,DIS ADD ?TMP1,STACK PUT TB,MG-NEXT,STACK RFALSE .FUNCT I-FOLLOW,FLG=0,CNT=0,GT,VAL ?PRG1: IGRTR? 'CNT,CHARACTER-MAX \?ELS5 RETURN FLG ?ELS5: GET GOAL-TABLES,CNT >GT GET GT,GOAL-S ZERO? STACK /?PRG1 GET GT,GOAL-ENABLE ZERO? STACK \?THN10 GET GT,ATTENTION ZERO? STACK \?PRG1 ?THN10: PUT GT,GOAL-ENABLE,TRUE-VALUE GET CHARACTER-TABLE,CNT CALL FOLLOW-GOAL,STACK >VAL ZERO? VAL /?PRG1 EQUAL? FLG,M-FATAL /?PRG1 SET 'FLG,VAL JUMP ?PRG1 .FUNCT I-ATTENTION,FLG=0,CNT=0,ATT ?PRG1: IGRTR? 'CNT,CHARACTER-MAX \?ELS5 RETURN FLG ?ELS5: GET ATTENTION-TABLE,CNT SUB STACK,1 >ATT EQUAL? ATT,1 \?ELS7 GET CHARACTER-TABLE,CNT IN? STACK,HERE \?CND3 EQUAL? CNT,MONICA-C \?ELS13 ZERO? MONICA-DASHED-OUT-DOOR /?ELS13 SET 'MONICA-DASHED-OUT-DOOR,FALSE-VALUE JUMP ?CND11 ?ELS13: GET CHARACTER-TABLE,CNT PRINTD STACK PRINTI " is acting impatient." CRLF ?CND11: SET 'FLG,TRUE-VALUE JUMP ?CND3 ?ELS7: ZERO? ATT \?CND3 GET GOAL-TABLES,CNT PUT STACK,GOAL-ENABLE,TRUE-VALUE ?CND3: PUT ATTENTION-TABLE,CNT,ATT JUMP ?PRG1 .FUNCT GRAB-ATTENTION,PERSON,CHR,GT,ATT GETP PERSON,P?CHARACTER >CHR GET GOAL-TABLES,CHR >GT GET GT,GOAL-S ZERO? STACK /?CND1 GET GT,ATTENTION-SPAN >ATT PUT ATTENTION-TABLE,CHR,ATT ZERO? ATT \?ELS6 PUT GT,GOAL-ENABLE,TRUE-VALUE RFALSE ?ELS6: GET GT,GOAL-ENABLE ZERO? STACK /?CND1 PUT GT,GOAL-ENABLE,FALSE-VALUE ?CND1: SET 'QCONTEXT,PERSON SET 'QCONTEXT-ROOM,HERE RTRUE .FUNCT UNPRIORITIZE,PERSON,GT GETP PERSON,P?CHARACTER GET GOAL-TABLES,STACK >GT PUT GT,GOAL-PRIORITY,FALSE-VALUE GET GT,GOAL-QUEUED ZERO? STACK /FALSE GET GT,GOAL-QUEUED CALL ESTABLISH-GOAL,PERSON,STACK PUT GT,GOAL-QUEUED,FALSE-VALUE RTRUE .FUNCT ESTABLISH-GOAL,PERSON,GOAL,PRIORITY=0,HERE,HL,GL,GT,?TMP1 LOC PERSON >HERE GETP PERSON,P?CHARACTER GET GOAL-TABLES,STACK >GT ZERO? PRIORITY /?CND1 PUT GT,GOAL-ENABLE,TRUE-VALUE PUT GT,GOAL-PRIORITY,TRUE-VALUE PUT GT,GOAL-QUEUED,HERE ?CND1: GETP HERE,P?LINE >HL GETP GOAL,P?LINE >GL EQUAL? HL,GL \?ELS7 PUT GT,GOAL-I,FALSE-VALUE JUMP ?CND5 ?ELS7: EQUAL? HL,OUTSIDE-LINE-C \?ELS9 PUT GT,GOAL-I,FRONT-PORCH JUMP ?CND5 ?ELS9: EQUAL? HL,OFFICE-LINE-C \?ELS11 PUT GT,GOAL-I,HALL-4 JUMP ?CND5 ?ELS11: EQUAL? HL,MONICA-LINE-C \?ELS13 PUT GT,GOAL-I,MONICA-ROOM JUMP ?CND5 ?ELS13: EQUAL? GL,OUTSIDE-LINE-C \?ELS15 PUT GT,GOAL-I,ENTRY JUMP ?CND5 ?ELS15: EQUAL? GL,MONICA-LINE-C \?ELS17 PUT GT,GOAL-I,HALL-2 JUMP ?CND5 ?ELS17: PUT GT,GOAL-I,HALL-3 ?CND5: GETP GOAL,P?STATION PUT GT,GOAL-S,STACK PUT GT,GOAL-F,GOAL LOC PERSON RSTACK .FUNCT FOLLOW-GOAL,PERSON,HERE,LINE,LN,RM,GT,GOAL,FLG,GOAL-FLAG=0,IGOAL=0,LOC,CNT=1,DIR LOC PERSON >HERE GETP PERSON,P?CHARACTER GET GOAL-TABLES,STACK >GT GET GT,GOAL-F EQUAL? HERE,STACK \?ELS3 PUT GT,GOAL-S,FALSE-VALUE RETURN FALSE-VALUE ?ELS3: GET GT,GOAL-ENABLE ZERO? STACK /FALSE ?CND1: GETP HERE,P?STATION >LOC EQUAL? HERE,LOC /?CND6 CALL MOVE-PERSON,PERSON,LOC >FLG RETURN FLG ?CND6: GET GT,GOAL-I >GOAL ZERO? GOAL /?ELS11 SET 'IGOAL,TRUE-VALUE JUMP ?CND9 ?ELS11: GET GT,GOAL-S >GOAL ?CND9: ZERO? GOAL /FALSE EQUAL? HERE,GOAL \?CND14 ZERO? IGOAL /?ELS21 GET GT,GOAL-F CALL TRANSFER,PERSON,GOAL,STACK RSTACK ?ELS21: GET GT,GOAL-F EQUAL? HERE,STACK /?ELS24 GET GT,GOAL-F CALL MOVE-PERSON,PERSON,STACK >FLG PUT GT,GOAL-S,FALSE-VALUE RETURN FLG ?ELS24: PUT GT,GOAL-S,FALSE-VALUE RETURN FALSE-VALUE ?CND14: GETP GOAL,P?LINE >LN EQUAL? LN,OUTSIDE-LINE-C \?ELS31 PUSH OUTSIDE-LINE JUMP ?CND27 ?ELS31: EQUAL? LN,INSIDE-LINE-C \?ELS33 PUSH INSIDE-LINE JUMP ?CND27 ?ELS33: EQUAL? LN,OFFICE-LINE-C \?ELS35 PUSH OFFICE-LINE JUMP ?CND27 ?ELS35: EQUAL? LN,MONICA-LINE-C \?PRD29 PUSH MONICA-LINE JUMP ?CND27 ?PRD29: PUSH 0 ?CND27: SET 'LINE,STACK ?PRG38: GET LINE,CNT >RM EQUAL? RM,HERE \?ELS42 ZERO? GOAL-FLAG /?ELS45 SUB CNT,3 GET LINE,STACK >LOC JUMP ?CND43 ?ELS45: ADD CNT,3 GET LINE,STACK >LOC ?CND43: CALL MOVE-PERSON,PERSON,LOC RETURN STACK ?ELS42: EQUAL? RM,GOAL \?CND40 SET 'GOAL-FLAG,TRUE-VALUE ?CND40: ADD CNT,3 >CNT JUMP ?PRG38 .FUNCT GOAL-REACHED,PERSON GETP PERSON,P?CHARACTER GET GOAL-TABLES,STACK GET STACK,GOAL-FUNCTION CALL STACK,G-REACHED RSTACK .FUNCT MOVE-PERSON,PERSON,WHERE,DIR,GT,OL,COR,PCOR,CHR,FLG=0,DR,VAL=0,STI ZERO? MET-STILES? /?ELS5 PUSH STR?199 JUMP ?CND1 ?ELS5: PUSH STR?200 ?CND1: SET 'STI,STACK GETP PERSON,P?CHARACTER >CHR GET GOAL-TABLES,CHR >GT LOC PERSON >OL CALL DIR-FROM,OL,WHERE >DIR GETPT OL,DIR >DR PTSIZE DR EQUAL? STACK,DEXIT \?ELS11 GETB DR,DEXITOBJ >DR FSET? DR,OPENBIT /?ELS14 FSET? DR,LOCKED /?CND9 FSET DR,OPENBIT JUMP ?CND9 ?ELS14: SET 'DR,FALSE-VALUE JUMP ?CND9 ?ELS11: SET 'DR,FALSE-VALUE ?CND9: PUT GT,GOAL-LDIR,DIR EQUAL? OL,HERE \?ELS24 FSET? PERSON,INVISIBLE /?ELS24 SET 'FLG,TRUE-VALUE CALL THIS-IS-S-HE,PERSON EQUAL? PERSON,STILES \?ELS29 ZERO? DUFFY-WITH-STILES /?ELS29 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI "Sgt. Duffy" JUMP ?CND27 ?ELS29: FSET? PERSON,TOUCHBIT /?ELS35 PRINTI "Someone" JUMP ?CND27 ?ELS35: PRINTD PERSON ?CND27: EQUAL? DIR,P?OUT \?ELS44 EQUAL? PERSON,STILES \?ELS47 ZERO? DUFFY-WITH-STILES /?ELS47 PRINTI " leads " PRINT STI PRINTI " out of the room." CRLF JUMP ?CND22 ?ELS47: PRINTI " leaves the room." CRLF JUMP ?CND22 ?ELS44: EQUAL? DIR,P?IN \?ELS57 ZERO? DR /?CND58 EQUAL? PERSON,STILES /?CND58 PRINTI " opens the " PRINTD DR PRINTI " and" ?CND58: EQUAL? PERSON,STILES \?ELS67 ZERO? DUFFY-WITH-STILES /?ELS67 PRINTI " leads " PRINT STI PRINTI " into another room" JUMP ?CND65 ?ELS67: PRINTI " goes into another room" ?CND65: ZERO? DR /?CND76 FSET? DR,LOCKED \?CND76 EQUAL? PERSON,STILES /?CND76 PRINTI ", locking the door again" ?CND76: PRINTI "." CRLF JUMP ?CND22 ?ELS57: ZERO? DR /?CND87 EQUAL? PERSON,STILES /?CND87 PRINTI " opens the " PRINTD DR PRINTI " and" ?CND87: EQUAL? PERSON,STILES \?ELS96 ZERO? DUFFY-WITH-STILES /?ELS96 PRINTI " leads " PRINT STI PRINTI " off to " JUMP ?CND94 ?ELS96: PRINTI " heads off to " ?CND94: CALL DIR-PRINT,DIR ZERO? DR /?CND105 FSET? DR,LOCKED \?CND105 EQUAL? PERSON,STILES /?CND105 PRINTI ", locking the door again" ?CND105: PRINTI "." CRLF JUMP ?CND22 ?ELS24: EQUAL? WHERE,HERE \?ELS115 FSET? PERSON,INVISIBLE /?ELS115 SET 'FLG,TRUE-VALUE CALL THIS-IS-S-HE,PERSON GET GT,GOAL-F EQUAL? HERE,STACK /?CND22 EQUAL? PERSON,STILES \?ELS123 ZERO? DUFFY-WITH-STILES /?ELS123 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI "Sgt. Duffy" PRINTI " leads " PRINT STI PRINTI " past you." CRLF JUMP ?CND22 ?ELS123: FSET? PERSON,TOUCHBIT /?ELS131 PRINTI "Someone walks past you." CRLF JUMP ?CND22 ?ELS131: PRINTD PERSON PRINTI " walks past you." CRLF JUMP ?CND22 ?ELS115: GETP HERE,P?CORRIDOR >COR ZERO? COR /?CND22 FSET? PERSON,INVISIBLE /?CND22 GETP OL,P?CORRIDOR >PCOR ZERO? PCOR /?ELS144 BAND COR,PCOR ZERO? STACK /?ELS144 SET 'FLG,TRUE-VALUE CALL THIS-IS-S-HE,PERSON GETP WHERE,P?CORRIDOR ZERO? STACK \?ELS149 EQUAL? PERSON,STILES \?ELS152 ZERO? DUFFY-WITH-STILES /?ELS152 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI "Sgt. Duffy" JUMP ?CND150 ?ELS152: FSET? PERSON,TOUCHBIT /?ELS158 PRINTI "Someone" JUMP ?CND150 ?ELS158: PRINTD PERSON ?CND150: PRINTI ", off to " CALL COR-DIR,HERE,OL CALL DIR-PRINT,STACK PRINTI "," ZERO? DR /?CND169 EQUAL? PERSON,STILES /?CND169 PRINTI " opens a door and" ?CND169: EQUAL? PERSON,STILES \?ELS178 ZERO? DUFFY-WITH-STILES /?ELS178 PRINTI " leads " PRINT STI JUMP ?CND176 ?ELS178: CALL OUTSIDE?,HERE ZERO? STACK /?ELS184 PRINTI " leaves your view" JUMP ?CND176 ?ELS184: PRINTI " ducks into a room" ?CND176: PRINTI " to " CALL DIR-FROM,OL,WHERE CALL DIR-PRINT,STACK ZERO? DR /?CND193 FSET? DR,LOCKED \?CND193 EQUAL? PERSON,STILES /?CND193 PRINTI ", locking the door again" ?CND193: PRINTI "." CRLF JUMP ?CND142 ?ELS149: GETP WHERE,P?CORRIDOR BAND COR,STACK ZERO? STACK \?ELS203 EQUAL? PERSON,STILES \?ELS206 ZERO? DUFFY-WITH-STILES /?ELS206 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI "Sgt. Duffy, with " PRINT STI PRINTI " in tow" JUMP ?CND204 ?ELS206: FSET? PERSON,TOUCHBIT /?ELS212 PRINTI "Someone" JUMP ?CND204 ?ELS212: PRINTD PERSON ?CND204: PRINTI ", off to " CALL COR-DIR,HERE,OL CALL DIR-PRINT,STACK PRINTI ", disappears from sight to " CALL DIR-FROM,OL,WHERE >PCOR CALL DIR-PRINT,PCOR PRINTI "." CRLF JUMP ?CND142 ?ELS203: EQUAL? PERSON,STILES \?ELS229 ZERO? DUFFY-WITH-STILES /?ELS229 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI "Sgt. Duffy, with " PRINT STI PRINTI " in tow," JUMP ?CND227 ?ELS229: FSET? PERSON,TOUCHBIT /?ELS235 PRINTI "Someone" JUMP ?CND227 ?ELS235: PRINTD PERSON ?CND227: PRINTI " is to " CALL COR-DIR,HERE,WHERE CALL DIR-PRINT,STACK PRINTI ", heading toward " CALL DIR-FROM,OL,WHERE CALL DIR-PRINT,STACK PRINTI "." CRLF JUMP ?CND142 ?ELS144: GETP WHERE,P?CORRIDOR >PCOR ZERO? PCOR /?CND22 BAND COR,PCOR ZERO? STACK /?CND22 SET 'FLG,TRUE-VALUE CALL THIS-IS-S-HE,PERSON PRINTI "To " CALL COR-DIR,HERE,WHERE CALL DIR-PRINT,STACK EQUAL? PERSON,STILES \?ELS256 ZERO? DUFFY-WITH-STILES /?ELS256 SET 'SEEN-DUFFY?,TRUE-VALUE PRINTI " Sgt. Duffy, with " PRINT STI PRINTI " in tow," JUMP ?CND254 ?ELS256: FSET? PERSON,TOUCHBIT /?ELS262 PRINTI " someone" JUMP ?CND254 ?ELS262: PRINTI " " PRINTD PERSON ?CND254: CALL OUTSIDE?,WHERE ZERO? STACK /?ELS271 PRINTI " comes into view from " JUMP ?CND269 ?ELS271: PRINTI " enters the hallway from " ?CND269: EQUAL? OL,LIMBO \?ELS280 PRINTI "the south" JUMP ?CND278 ?ELS280: CALL DIR-FROM,WHERE,OL CALL DIR-PRINT,STACK ?CND278: PRINTI "." CRLF ?CND142: ?CND22: CALL WHERE-UPDATE,PERSON,FLG MOVE PERSON,WHERE GET GT,GOAL-F EQUAL? STACK,WHERE \?CND287 CALL GOAL-REACHED,PERSON >VAL ZERO? VAL \?CND287 EQUAL? HERE,WHERE \?CND287 FSET? PERSON,INVISIBLE /?CND287 CALL THIS-IS-S-HE,PERSON PRINTD PERSON CALL OUTSIDE?,HERE ZERO? STACK /?ELS299 PRINTI " stops here." CRLF JUMP ?CND290 ?ELS299: PRINTI " steps into the room." CRLF ?CND290: ?CND287: EQUAL? PERSON,STILES \?CND306 CALL I-MEET-DUFFY? ?CND306: ZERO? DEBUG /?CND309 PRINTI "[" PRINTD PERSON PRINTI " just went into" CALL THE?,WHERE PRINTI " " PRINTD WHERE PRINTI ".]" CRLF ?CND309: EQUAL? VAL,M-FATAL \?ELS321 RETURN VAL ?ELS321: RETURN FLG .FUNCT DIR-FROM,HERE,THERE,P=0,L,TBL,O ?PRG1: NEXTP HERE,P >P ZERO? P /FALSE EQUAL? P,P?IN,P?OUT \?ELS7 JUMP ?PRG1 ?ELS7: LESS? P,LOW-DIRECTION /?PRG1 GETPT HERE,P >TBL PTSIZE TBL >L EQUAL? L,DEXIT,UEXIT,CEXIT \?PRG1 GETB TBL,REXIT EQUAL? STACK,THERE \?PRG1 RETURN P .FUNCT TRANSFER,PERSON,IGOAL,FGOAL,V,FLG=0 EQUAL? IGOAL,FRONT-PORCH \?ELS5 CALL MOVE-PERSON,PERSON,ENTRY JUMP ?CND1 ?ELS5: EQUAL? IGOAL,ENTRY \?ELS7 CALL MOVE-PERSON,PERSON,FRONT-PORCH JUMP ?CND1 ?ELS7: EQUAL? IGOAL,MONICA-ROOM \?ELS9 FSET MONICA-DOOR,OPENBIT CALL MOVE-PERSON,PERSON,HALL-2 JUMP ?CND1 ?ELS9: EQUAL? IGOAL,HALL-2 \?ELS11 FSET MONICA-DOOR,OPENBIT CALL MOVE-PERSON,PERSON,MONICA-ROOM JUMP ?CND1 ?ELS11: EQUAL? IGOAL,HALL-4 \?ELS13 CALL MOVE-PERSON,PERSON,HALL-3 JUMP ?CND1 ?ELS13: CALL MOVE-PERSON,PERSON,HALL-4 ?CND1: SET 'V,STACK CALL ESTABLISH-GOAL,PERSON,FGOAL RETURN V .FUNCT WHERE-UPDATE,PERSON,FLG=0,WT,NC,CNT=0,?TMP1 GETP PERSON,P?CHARACTER >NC GET WHERE-TABLES,NC >WT ?PRG1: GRTR? CNT,CHARACTER-MAX /TRUE EQUAL? CNT,NC \?ELS7 JUMP ?CND3 ?ELS7: ZERO? CNT \?ELS13 ZERO? FLG \?THN10 ?ELS13: GET CHARACTER-TABLE,CNT >?TMP1 LOC PERSON IN? ?TMP1,STACK \?CND3 ?THN10: PUT WT,CNT,PRESENT-TIME GET WHERE-TABLES,CNT PUT STACK,NC,PRESENT-TIME ?CND3: INC 'CNT JUMP ?PRG1 .FUNCT I-PHONG-UNCALLED GET GOAL-TABLES,PHONG-C GET STACK,GOAL-S ZERO? STACK \FALSE CALL ESTABLISH-GOAL,PHONG,PHONG-OLD-LOC LOC PHONG EQUAL? STACK,HERE \FALSE CALL SAID-TO,PHONG PRINTI "Inscrutably, Phong turns to leave." ZERO? PLAYER-HIDING /?THN16 CALL FIND-FLAG,HERE,PERSON,PHONG ZERO? STACK /?CND13 ?THN16: PRINTI " ""If you need me again, just ring.""" ?CND13: CRLF RTRUE .FUNCT I-PHONG,GARG=0,L,MPB LOC PHONG >L SET 'MPB,MONICA-PUSHED-BUTTON ZERO? GARG \?ELS5 CALL IMOVEMENT,PHONG,I-PHONG RSTACK ?ELS5: EQUAL? GARG,G-REACHED \FALSE ZERO? PHONG-CALLED /?ELS12 SET 'PHONG-CALLED,FALSE-VALUE SET 'MONICA-PUSHED-BUTTON,FALSE-VALUE CALL QUEUE,I-PHONG-UNCALLED,3 PUT STACK,0,1 EQUAL? L,HERE \FALSE ZERO? PLAYER-HIDING /?ELS21 CALL FIND-FLAG,HERE,PERSON,PHONG ZERO? STACK \?ELS21 PRINTI "Suddenly Phong appears and " PRINTR "looks around to see who pushed the button." ?ELS21: CALL SAID-TO,PHONG PRINTI "Suddenly Phong appears and " PRINTI "says, ""You rang?""" CRLF ZERO? MPB /TRUE PRINTI "Monica says, ""Yes, Phong, I was testing a new twist on the household wiring that I thought of during the film." ZERO? MONICA-TIED-TO /?ELS38 PRINTR " Can't you talk this copper into letting me loose?"" Phong opens his eyes wide for a moment but says nothing." ?ELS38: PRINTI """" CRLF RTRUE ?ELS12: EQUAL? L,OFFICE \?ELS47 ZERO? PHONG-SEEN-CORPSE? \?THN53 FSET? CORPSE,INVISIBLE \?ELS52 ?THN53: EQUAL? HERE,OFFICE \FALSE CALL SAID-TO,PHONG PRINTR "Suddenly Phong enters the office. ""I believe you called for me, Detective.""" ?ELS52: SET 'PHONG-SEEN-CORPSE?,TRUE-VALUE EQUAL? HERE,OFFICE \FALSE PRINTR "Suddenly Phong enters the office. When he sees that Linder has cashed in his chips, he turns away for a minute and bows his head." ?ELS47: EQUAL? L,OFFICE-PATH \?ELS72 CALL QUEUE,I-STILES-ARRIVE,4 PUT STACK,0,1 MOVE OUTSIDE-GUN,OFFICE-PATH FCLEAR OUTSIDE-GUN,INVISIBLE FCLEAR SIDE-FOOTPRINTS,INVISIBLE CALL ESTABLISH-GOAL,PHONG,FRONT-PORCH RSTACK ?ELS72: EQUAL? L,FRONT-PORCH \?ELS74 EQUAL? HERE,FRONT-PORCH \?ELS77 PRINTI "The butler comes up to you, looking agitated." CRLF JUMP ?CND75 ?ELS77: PRINTI "You hear the door bell ring." CRLF ?CND75: MOVE PHONG,ENTRY FCLEAR MUDDY-SHOES,INVISIBLE CALL ESTABLISH-GOAL,PHONG,OFFICE RSTACK ?ELS74: EQUAL? L,ENTRY \?ELS85 EQUAL? HERE,ENTRY \?CND86 PRINTI "Phong arrives and lets Sergeant Duffy in." CRLF ?CND86: CALL ESTABLISH-GOAL,PHONG,LIVING-ROOM CALL ESTABLISH-GOAL,STILES,LIVING-ROOM RSTACK ?ELS85: EQUAL? L,LIVING-ROOM \?ELS92 CALL ESTABLISH-GOAL,PHONG,KITCHEN RSTACK ?ELS92: EQUAL? L,BUTLER-ROOM \FALSE CALL META-LOC,RECURSIVE-BOOK EQUAL? STACK,BUTLER-ROOM \?CND95 IN? RECURSIVE-BOOK,PLAYER /?CND95 MOVE RECURSIVE-BOOK,PHONG ?CND95: IN? PLAYER,BUTLER-ROOM \TRUE PRINTR "Suddenly Phong comes in, lies down, and starts reading a book." .FUNCT I-STILES,GARG=0,L LOC STILES >L ZERO? GARG \?ELS5 CALL IMOVEMENT,STILES,I-STILES RSTACK ?ELS5: EQUAL? GARG,G-REACHED \FALSE EQUAL? L,OFFICE-PORCH \?ELS12 ZERO? WELCOMED /?ELS17 EQUAL? HERE,OFFICE \FALSE CRLF PRINTI "Linder looks toward the window and says, ""I don't think Phong has answered the door bell yet."" He reaches toward the butler's button and at the same instant shouts ""Stiles!"" You turn around and dimly see a figure outside." CALL FIRE-SHOT PRINTI " The figure outside turns and runs before you can see the face. When you turn back around, you see Linder slumping down in his chair, with a bloody stain spreading across his silk shirt. He teeters on the edge of the seat, then falls onto the floor, quite dead." CRLF REMOVE LINDER SET 'QCONTEXT,FALSE-VALUE SET 'LINDER-FOLLOWS-YOU,FALSE-VALUE CALL ROB,LINDER,CORPSE FCLEAR CORPSE,INVISIBLE SET 'LINDER-FOLLOWS-YOU,FALSE-VALUE CALL INT,I-LINDER-IN-OFFICE PUT STACK,0,0 CALL INT,I-PHONG-RETIRES PUT STACK,0,0 CALL INT,I-LINDER-RETIRES PUT STACK,0,0 CALL QUEUE,I-AMBULANCE,150 PUT STACK,0,1 MOVE STILES,LIMBO FSET STILES,INVISIBLE GET GOAL-TABLES,STILES-C PUT STACK,GOAL-S,FALSE-VALUE FCLEAR BACK-FOOTPRINTS,INVISIBLE CALL QUEUE,I-DUFFY-ARRIVE,3 PUT STACK,0,1 SET 'MURDER-TIME,PRESENT-TIME RETURN 2 ?ELS17: FCLEAR BACK-GATE,LOCKED SET 'TOO-LATE,TRUE-VALUE CALL ESTABLISH-GOAL,STILES,OFFICE-PATH CALL QUEUE,I-DUFFY-ARRIVE,5 PUT STACK,0,1 EQUAL? HERE,BACK-YARD,ROCK-GARDEN \?ELS36 FSET? STILES,TOUCHBIT \?ELS39 PRINTI "Stiles" JUMP ?CND37 ?ELS39: PRINTI "The visitor" ?CND37: PRINTI " comes up to Linder's office entrance. A tall man opens the office door and steps out. They speak briefly, then the tall man counts out some money and sends " FSET? STILES,TOUCHBIT \?ELS50 PRINTI "Stiles" JUMP ?CND48 ?ELS50: PRINTI "the person" ?CND48: PRINTR " away." ?ELS36: EQUAL? HERE,OFFICE-PORCH \?ELS60 FSET? STILES,TOUCHBIT \?ELS63 PRINTI "Stiles" JUMP ?CND61 ?ELS63: PRINTI "The visitor" ?CND61: PRINTI " pushes you out of the way and" PRINTR " knocks on the door of Linder's office. A tall man opens it, speaks to him briefly, hands him some money, and sends him away." ?ELS60: EQUAL? HERE,OFFICE-PATH \FALSE FSET? STILES,TOUCHBIT \?ELS76 PRINTI "Stiles" JUMP ?CND74 ?ELS76: PRINTI "The visitor" ?CND74: PRINTR " knocks on the door of Linder's office. A tall man opens it, speaks to him briefly, hands him some money, and sends him away." ?ELS12: EQUAL? L,OFFICE-PATH \?ELS86 REMOVE STILES GET GOAL-TABLES,STILES-C PUT STACK,GOAL-S,FALSE-VALUE GETP HERE,P?CORRIDOR BAND STACK,3 ZERO? STACK /FALSE FSET? STILES,TOUCHBIT \?ELS94 PRINTI "Stiles" JUMP ?CND92 ?ELS94: PRINTI "The visitor" ?CND92: PRINTR " disappears out the back gate." ?ELS86: EQUAL? L,FRONT-PORCH \?ELS104 EQUAL? HERE,FRONT-PORCH \?ELS107 CALL I-MEET-DUFFY? JUMP ?CND105 ?ELS107: PRINTI "You hear the door bell ring." CRLF ?CND105: CALL ESTABLISH-GOAL,PHONG,ENTRY RSTACK ?ELS104: EQUAL? L,LIVING-ROOM \FALSE SET 'DUFFY-WITH-STILES,FALSE-VALUE EQUAL? HERE,LIVING-ROOM \?ELS118 ZERO? MET-DUFFY? /?ELS123 PRINTI "Duffy brings a prisoner into the room and fastens him to the davenport." PRINTR " He goes quickly to work, disappearing down the hall." ?ELS123: PRINTI "Suddenly " PRINTI "Duffy brings a prisoner into the room and fastens him to the davenport." PRINTI " Then he notices you." CALL DUFFY-GREETING PRINTI """" PRINTR " He goes quickly to work, disappearing down the hall." ?ELS118: ZERO? MET-DUFFY? \?ELS136 PRINTI "Suddenly your assistant, Sgt. Duffy, " ZERO? SEEN-DUFFY? /?ELS141 PRINTI "runs up to you." JUMP ?CND139 ?ELS141: PRINTI "appears from out of nowhere." ?CND139: CALL DUFFY-GREETING PRINTR " I've stowed him in the living room. I'll stand by to help you."" He scurries off to go about his work." ?ELS136: EQUAL? HERE,HALL-1,HALL-2 /?THN153 EQUAL? HERE,HALL-3,HALL-4 \FALSE ?THN153: PRINTR "Duffy goes quickly to work, disappearing down the hall." .FUNCT ROB,WHAT,THIEF,PROB=0,N,X,ROBBED?=0 FIRST? WHAT >X /?KLU13 ?KLU13: ?PRG1: ZERO? X \?CND3 RETURN ROBBED? ?CND3: NEXT? X >N /?KLU14 ?KLU14: FSET? X,INVISIBLE /?CND6 ZERO? PROB /?THN11 RANDOM 100 GRTR? PROB,STACK \?CND6 ?THN11: MOVE X,THIEF SET 'ROBBED?,TRUE-VALUE ?CND6: SET 'X,N JUMP ?PRG1 .FUNCT I-MONICA,GARG=0,L,HR,?TMP1 LOC MONICA >L ZERO? GARG \?ELS5 CALL IMOVEMENT,MONICA,I-MONICA RSTACK ?ELS5: EQUAL? GARG,G-REACHED \FALSE EQUAL? L,OFFICE \?ELS12 LESS? PRESENT-TIME,540 \?ELS12 CALL ESTABLISH-GOAL,MONICA,GARAGE LOC PLAYER EQUAL? OFFICE,HERE,STACK /?THN20 EQUAL? HERE,OFFICE-PORCH \FALSE EQUAL? PRSA,V?LOOK-INSIDE \FALSE ?THN20: LOC PLAYER EQUAL? OFFICE,HERE,STACK \?ELS26 PRINTI "Monica" JUMP ?CND24 ?ELS26: EQUAL? HERE,OFFICE-PORCH \?CND24 PRINTI "A young woman" ?CND24: PRINTI " bursts into the office, wearing a felt hat and wool coat, and struggling to get her driving gloves on. " LOC PLAYER EQUAL? OFFICE,HERE,STACK \?ELS39 CALL QUEUE,I-MONICA-GOES,5 PUT STACK,0,1 CALL THIS-IS-S-HE,MONICA PRINTR "She glances icily in your direction and then back to her father. ""I'm off to the pictures with Terry, Dad. Good-bye."" She hugs him briefly but firmly, burying her head in his shoulder. He pushes her away and says, ""You're leaving now?! I thought you'd be talking to the detective here. What about the threat on my life?"" He has the hurt look of an orphan pup. She answers, ""You don't need me here. I need to get away now and then. I'm not like Mother, you know."" Tears well up in her eyes but she brushes them away before they drop. She turns to leave." ?ELS39: EQUAL? HERE,OFFICE-PORCH \FALSE PRINTR "She glances quickly around the room, then turns to leave." ?ELS12: EQUAL? L,GARAGE \?ELS47 LESS? PRESENT-TIME,540 \?ELS47 CALL UNPRIORITIZE,MONICA SET 'FILM-SEEN,TRUE-VALUE FSET GARAGE-DOOR,LOCKED FCLEAR GARAGE-DOOR,OPENBIT MOVE MONICA,LIMBO FSET MONICA,INVISIBLE GET GOAL-TABLES,MONICA-C PUT STACK,GOAL-S,FALSE-VALUE GET GOAL-TABLES,MONICA-C PUT STACK,GOAL-ENABLE,FALSE-VALUE FSET MONICA-CAR,INVISIBLE SUB 670,PRESENT-TIME >?TMP1 RANDOM 20 SUB ?TMP1,STACK CALL QUEUE,I-MONICA-RETURN,STACK PUT STACK,0,1 EQUAL? HERE,GARAGE,DRIVEWAY /?THN55 EQUAL? HERE,DRIVEWAY-ENTRANCE,WORKSHOP \?ELS54 ?THN55: PRINTI "Someone" PRINTR " jumps into her car, starts it up, and races out the driveway, leaving a wake of peastone behind her." ?ELS54: GETP HERE,P?LINE EQUAL? OUTSIDE-LINE-C,STACK \?ELS62 PRINTR "Without warning, a car roars to life and speeds out of the driveway." ?ELS62: PRINTR "Outside somewhere, a car roars to life and speeds away." ?ELS47: EQUAL? L,WORKSHOP \?ELS70 SET 'BUTTON-FIXED,TRUE-VALUE CALL ESTABLISH-GOAL,MONICA,OFFICE EQUAL? HERE,WORKSHOP \FALSE CALL SAID-TO,MONICA CALL THIS-IS-S-HE,MONICA SET 'SEEN-MONICA-AT-J-BOX,TRUE-VALUE PRINTI "Suddenly Monica rushes in, goes to the junction box, and fiddles with the wires for a minute. Then she turns, sees you, gasps and grabs her throat. ""My" CALL TANDY? ZERO? STACK \?CND78 PRINTI " God" ?CND78: PRINTR ", you gave me a start!"" Her face is ashen." ?ELS70: EQUAL? L,OFFICE \?ELS86 ZERO? MONICA-SEEN-CORPSE? \?ELS86 CALL ESTABLISH-GOAL,MONICA,TOILET-ROOM ZERO? TOO-LATE \?THN92 FSET? CORPSE,INVISIBLE /?CND89 ?THN92: SET 'MONICA-SEEN-CORPSE?,TRUE-VALUE ?CND89: EQUAL? HERE,OFFICE,OFFICE-PORCH \FALSE CALL THIS-IS-S-HE,MONICA FSET? MONICA,TOUCHBIT \?ELS101 PRINTI "Monica" JUMP ?CND99 ?ELS101: PRINTI "Someone" ?CND99: PRINTI " walks gingerly into the office, " FSET? CORPSE,INVISIBLE /?ELS112 PRINTI "opens her eyes wide in horror, and then puts her hand over her mouth and" JUMP ?CND110 ?ELS112: PRINTI "looks around quickly, and then" ?CND110: PRINTR " rushes toward the door." ?ELS86: EQUAL? L,TOILET-ROOM \?ELS122 EQUAL? HERE,TOILET-ROOM \?ELS127 CALL SAID-TO,MONICA CALL THIS-IS-S-HE,MONICA PRINTR "Monica rushes in. ""Stand aside, flatfoot, I'm going to be sick."" She leans over the toilet and gives in to an attack of dry heaves." ?ELS127: EQUAL? HERE,BATHROOM,TUB-ROOM /?THN132 EQUAL? HERE,LINDER-ROOM,MONICA-ROOM \FALSE ?THN132: FCLEAR TOILET-DOOR,OPENBIT PRINTR "The door to the toilet room slams shut. You hear sounds of dry heaving inside." ?ELS122: EQUAL? L,MONICA-ROOM \?ELS137 ZERO? CLOCK-FIXED \?ELS137 EQUAL? HERE,MONICA-ROOM \?ELS144 CALL SAID-TO,MONICA CALL THIS-IS-S-HE,MONICA PRINTR "Monica comes in, sits down on her bed, and buries her face in her hands. ""Leave me alone for a while. I'm really not well."" She begins to sob." ?ELS144: EQUAL? HERE,BATHROOM /?THN149 EQUAL? HERE,HALL-1,HALL-2,HALL-3 \FALSE ?THN149: FCLEAR MONICA-DOOR,OPENBIT FCLEAR MONICA-BATH-DOOR,OPENBIT FCLEAR MONICA-BACK-DOOR,OPENBIT PRINTR "Monica slams shut her bedroom doors." ?ELS137: EQUAL? L,OFFICE \?ELS154 EQUAL? HERE,OFFICE \?ELS159 ZERO? PLAYER-HIDING \?ELS159 GET MOVEMENT-GOALS,MONICA-C SUB STACK,MG-LENGTH PUT MOVEMENT-GOALS,MONICA-C,STACK CALL ESTABLISH-GOAL,MONICA,MONICA-ROOM CALL THIS-IS-S-HE,MONICA PRINTR "Monica comes into the office quietly and, seeing you, steps over to the desk and shuffles some papers. Then she sighs, rubs her eyes, and turns to leave without saying a word." ?ELS159: MOVE INSIDE-GUN,MONICA FSET CLOCK,LOCKED FCLEAR CLOCK,OPENBIT SET 'CLOCK-FIXED,TRUE-VALUE SET 'MONICA-PUSHED-BUTTON,TRUE-VALUE SET 'HR,HERE SET 'HERE,OFFICE CALL YOU-RANG SET 'HERE,HR EQUAL? HERE,OFFICE-PORCH \?ELS174 EQUAL? PRSA,V?LOOK-INSIDE /?THN171 ?ELS174: ZERO? PLAYER-HIDING /?ELS170 EQUAL? HERE,OFFICE \?ELS170 ?THN171: FCLEAR CLOCK-KEY,INVISIBLE SET 'SEEN-MONICA-AT-CLOCK,TRUE-VALUE FSET? MONICA,TOUCHBIT \?ELS179 PRINTI "Monica" JUMP ?CND177 ?ELS179: PRINTI "Someone" ?CND177: CALL THIS-IS-S-HE,MONICA PRINTR " quietly sticks her head in the door, looks quickly around the room, and then steps over to the desk. She pushes the butler's button and seems to listen for the bell. She takes another look around, then crosses the room to the clock. Looking well rehearsed, she produces a key, opens the door of the case, takes something out and puts it in the pocket of her slacks, and then shuts and locks the case." ?ELS170: CRLF PRINTR "You barely hear a bell ring in the distance." ?ELS154: EQUAL? L,MONICA-ROOM \FALSE EQUAL? HERE,ROCK-GARDEN,BACK-YARD,OFFICE-PORCH \?ELS198 PRINTR "The lights go out in the middle bedroom." ?ELS198: EQUAL? HERE,MONICA-ROOM \?ELS202 CALL THIS-IS-S-HE,MONICA CALL SAID-TO,MONICA PRINTR "Monica comes in and sits down at her dressing table. Her eyes are red from crying. ""Go peddle your cookies somewhere else. I'm going to have some Ovaltine and go to bed.""" ?ELS202: EQUAL? HERE,BATHROOM /?THN207 EQUAL? HERE,HALL-1,HALL-2,HALL-3 \FALSE ?THN207: FCLEAR MONICA-DOOR,OPENBIT FCLEAR MONICA-BATH-DOOR,OPENBIT FCLEAR MONICA-BACK-DOOR,OPENBIT PRINTR "Monica slams shut her bedroom doors." .FUNCT I-MONICA-GOES IN? MONICA,OFFICE \FALSE CALL ESTABLISH-GOAL,MONICA,GARAGE,TRUE-VALUE SET 'MONICA-DASHED-OUT-DOOR,TRUE-VALUE PRINTR "Monica looks more nervous. ""I really must go now, or I'll be late for the film."" She hugs her father again and dashes out the door." .FUNCT I-MONICA-RETURN FCLEAR MONICA,INVISIBLE MOVE MONICA,GARAGE MOVE STUB,GARAGE FCLEAR MONICA-CAR,INVISIBLE CALL ESTABLISH-GOAL,MONICA,WORKSHOP GET GOAL-TABLES,MONICA-C PUT STACK,GOAL-ENABLE,TRUE-VALUE EQUAL? HERE,GARAGE,DRIVEWAY,DRIVEWAY-ENTRANCE \?ELS5 FSET? MONICA,TOUCHBIT \?ELS8 PRINTI "Monica" JUMP ?CND6 ?ELS8: PRINTI "Someone" ?CND6: PRINTR " drives into the garage, stops her car, jumps out, and slams the door." ?ELS5: PRINTR "Suddenly you hear a car drive into the garage and stop. Its door slams." .FUNCT I-AMBULANCE REMOVE CORPSE ZERO? PLAYER-HIDING /?ELS3 PRINTI "Out of the blue, " PRINTI "two" PRINTI " of the coroner's men run" PRINTI " in to the office with a stretcher and carry Linder's body out." JUMP ?CND1 ?ELS3: EQUAL? HERE,OFFICE,OFFICE-PORCH,OFFICE-PATH \?ELS11 PRINTI "Out of the blue, " PRINTI "two" PRINTI " of the coroner's men run" PRINTI " in to the office with a stretcher and carry Linder's body out. " PRINTI "One of them shouts to you, """ JUMP ?CND9 ?ELS11: PRINTI "Out of the blue, " PRINTI "one" PRINTI " of the coroner's men run" PRINTI "s up to you and says, ""We just removed the body. " ?CND9: PRINTI "Haven't time to chat. Busy night at the morgue! Carry on, Detective.""" ?CND1: ZERO? FINGERPRINT-OBJ \?CND20 ZERO? DUFFY-AT-CORONER \?CND20 SET 'DUFFY-AT-CORONER,TRUE-VALUE CALL QUEUE,I-DUFFY-RETURNS,69 PUT STACK,0,1 PRINTI " Then Duffy appears, saying, ""I'm glad they finally showed up! When I called, they seemed very busy. I think I should go along and make sure they give this autopsy top priority." ZERO? PLAYER-HIDING /?CND27 PRINTI " Don't worry, I won't tell anyone you're hiding." ?CND27: PRINTI " See you later!""" ?CND20: PRINTR " They head for the street." .FUNCT I-DUFFY-RETURNS SET 'DUFFY-AT-CORONER,FALSE-VALUE PRINTI "Without warning, Duffy comes running up to you and says, ""I just got back from the morgue. The coroner " ZERO? DUFFY-SAW-MEDICAL-REPORT /?CND3 CALL META-LOC,MONICA EQUAL? STACK,HERE \?CND7 SET 'MONICA-SAW-CORONER-REPORT,TRUE-VALUE ?CND7: PRINTI "found no evidence of the alleged stomach tumor. In fact, he could find no organic disease that would either explain the death or support the theory that Linder wanted to die. He " ?CND3: PRINTI "concluded that Linder died of a single small-caliber bullet through the heart. And here's something peculiar: there were no traceable rifle marks on the bullet." PRINTR """" .FUNCT DUFFY-HINT ZERO? MET-DUFFY? \?ELS3 PRINTI "You'd better wait until Duffy " PRINTR "sees you." ?ELS3: ZERO? DUFFY-WITH-STILES /?CND1 PRINTI "You'd better wait until Duffy " PRINTR "stows his prisoner." ?CND1: PRINTI "Duffy appears and says, " FSET? CORPSE,INVISIBLE \?CND13 PRINTR """If I were you, I'd wait until some crime occurred.""" ?CND13: INC 'DUFFY-HINT-NUM PRINTI """I don't know if it means anything, Detective, but I noticed " FSET? PIECE-OF-WIRE,TOUCHBIT /?ELS24 PRINTR "a piece of green wire on the broken office window.""" ?ELS24: ZERO? NO-WIRE-HINT /?ELS28 SET 'NO-WIRE-HINT,FALSE-VALUE PRINTR "a green spool in the workshop.""" ?ELS28: ZERO? BUTTON-FIXED \?ELS33 ZERO? PLAYER-PUSHED-BUTTON \?ELS33 PRINTR "that the butler's button in the office wasn't working right.""" ?ELS33: ZERO? POWDER-ANALYZED \?ELS39 PRINTR "something funny about the clock in the office.""" ?ELS39: FSET? GUN-RECEIPT,TOUCHBIT /?ELS43 PRINTR "a very interesting book in Phong's room.""" ?ELS43: FSET? MEDICAL-REPORT,TOUCHBIT /?ELS47 PRINTR "some kind of medical report in Monica's room.""" ?ELS47: ZERO? MONICA-HAS-MOTIVE \?ELS51 PRINTR "Monica's reaction when I asked her about her mother.""" ?ELS51: ZERO? SEEN-MONICA-AT-J-BOX \?ELS55 PRINTR "that Monica went in the workshop right when she got home.""" ?ELS55: PRINTR "that I've run out of ideas on this case.""" .FUNCT ARREST,PERSON,HELPER=0,FLG ZERO? HELPER /?CND1 EQUAL? PERSON,MONICA \?THN10 EQUAL? HELPER,PHONG /?ELS7 ?THN10: EQUAL? HELPER,MONICA \?THN12 EQUAL? PERSON,PHONG /?ELS7 ?THN12: PRINTR "You think it over. You realize that this arrest is pretty far-fetched. It could only mean humiliation for you." ?ELS7: SET 'PERSON,MONICA SET 'HELPER,PHONG ?CND1: EQUAL? PERSON,MONICA \?CND18 IN? MONICA,LIMBO \?CND18 PRINTI "Duffy appears with a solemn look." PRINTR " He says, ""I can't find Monica around here anywhere. I guess you'll have to wait for her to return."" He disappears again." ?CND18: PRINTI "(If you want to continue from this point at another time, you must ""SUSPEND"" first.) Do you want to " PRINTI "make an arrest and " PRINTI "stop your investigation now?" CALL YES? ZERO? STACK /TRUE EQUAL? PERSON,GLOBAL-LINDER,CORPSE \?ELS34 PRINTI "Duffy appears, to escort you from the grounds. " PRINTI """So you believe that Linder's death was suicide? I'm not convinced. But if you'll " PRINTI "file a deposition, we can see what the D.A. and coroner think."" " CRLF JUMP ?CND32 ?ELS34: ZERO? HELPER /?ELS41 CALL META-LOC,MONICA EQUAL? HERE,STACK \?ELS45 IN? HELPER,HERE \?ELS45 PRINTI "Duffy appears with a solemn look." ZERO? MONICA-TIED-TO /?CND50 PRINTI " He unfastens Monica from the " PRINTD MONICA-TIED-TO PRINTI "." ?CND50: PRINTI " He puts nippers on the wrists of both " PRINTD PERSON PRINTI " and " PRINTD HELPER PRINTI ", who stand stiff and quiet." JUMP ?CND39 ?ELS45: CALL META-LOC,MONICA EQUAL? HERE,STACK \?ELS59 PRINTI "Duffy appears with " PRINTD HELPER PRINTI " in tow." ZERO? MONICA-TIED-TO /?CND62 PRINTI " He unfastens Monica from the " PRINTD MONICA-TIED-TO PRINTI "." ?CND62: PRINTI " He puts nippers on the wrists of " PRINTD PERSON PRINTI ", who stands stiff and quiet." JUMP ?CND39 ?ELS59: IN? HELPER,HERE \?ELS71 PRINTI "Duffy appears with " PRINTD PERSON PRINTI " in tow." PRINTI " He puts nippers on the wrists of " PRINTD HELPER PRINTI ", who stands stiff and quiet." JUMP ?CND39 ?ELS71: PRINTI "Duffy seems to read your thoughts, as he appears with " PRINTD PERSON PRINTI " and " PRINTD HELPER PRINTI " in handcuffs." JUMP ?CND39 ?ELS41: CALL META-LOC,PERSON EQUAL? HERE,STACK \?ELS81 PRINTI "Duffy appears with a solemn look." EQUAL? PERSON,STILES \?ELS86 PRINTI " He unfastens his nippers from the davenport and pulls Stiles to his feet." JUMP ?CND39 ?ELS86: EQUAL? PERSON,MONICA \?ELS90 ZERO? MONICA-TIED-TO /?ELS90 PRINTI " He unfastens Monica from the " PRINTD MONICA-TIED-TO PRINTI ", pulls her to her feet, and puts his own nippers on her wrists." JUMP ?CND39 ?ELS90: PRINTI " He puts nippers on the wrists of " PRINTD PERSON PRINTI ", who stands stiff and quiet." JUMP ?CND39 ?ELS81: PRINTI "Duffy seems to read your thoughts, as he appears with " PRINTD PERSON PRINTI " in handcuffs." ?CND39: ZERO? MONICA-TIED-TO /?CND103 EQUAL? PERSON,MONICA \?CND103 CALL RELEASE-MONICA ?CND103: PRINTI " ""Let's not have any trouble, now,"" says Duffy, in his unique way. They head for the driveway, where a police car waits with engine purring. " CRLF ?CND32: CALL END-HEADER,STR?201 ZERO? MONICA-ADMITTED-HELPING? \?THN117 ZERO? PHONG-ADMITTED-HELPING? \?THN117 ZERO? PLAYER-PUSHED-BUTTON /?ELS112 ZERO? POWDER-ANALYZED \?THN117 FSET? INSIDE-GUN,TOUCHBIT \?ELS112 ?THN117: PRINTI "The elaborate set-up in Mr. Linder's office was ingenious. You deserve congratulations for your work in detecting it. " CRLF EQUAL? PERSON,STILES \?ELS123 PRINTI "I am sorry to report that the trial jury acquitted Ralph Stiles of the murder of his rival, Freeman Linder. In view of the available evidence, they apparently believed that his lack of access to the Linder house made it doubtful that he could construct the hidden gun mechanism." JUMP ?CND110 ?ELS123: EQUAL? PERSON,GLOBAL-LINDER \?ELS127 FSET? MEDICAL-REPORT,TOUCHBIT \?ELS130 PRINTI "At the inquest, the coroner ruled that " PRINTI "Mr. Linder's death was suicide, based on all the available evidence. However, my knowledge of Linder's personality makes me doubt that, knowing he would be killed, he would devise such an elaborate scheme to try to punish Mr. Stiles for the affair with Mrs. Linder. " JUMP ?CND128 ?ELS130: PRINTI "At the inquest, the coroner ruled that " PRINTI "the available evidence was inconclusive, in that Linder appears to have had no motive for suicide. " ?CND128: PRINTI "I think that, if you had been more careful in observing the people in Linder's household, you would have discovered that he had an accomplice, at least. " JUMP ?CND110 ?ELS127: ZERO? HELPER /?ELS140 FSET? GUN-RECEIPT,TOUCHBIT \?ELS140 ZERO? MONICA-HAS-MOTIVE /?ELS140 ZERO? SEEN-MONICA-AT-CLOCK \?THN143 ZERO? USED-CLOCK-KEY /?ELS140 ?THN143: PRINTI "The web of evidence certainly seems to implicate both Monica Linder and Mr. Phong. During interrogation, Phong admitted helping Mr. Linder carry out the plan to frame Mr. Stiles for attempted murder, but he repeatedly denied that Linder's death was intended. He bargained with the District Attorney and entered a plea of guilty to charges of conspiracy and extortion. After a short trial, the judge gave him a suspended sentence and recommended him for deportation to his home country. " CRLF PRINTI "Monica turned out to be a tougher nut to crack. She refused to talk during interrogation, and she was awaiting trial when she heard about Phong's suspended sentence. She then made a plea like his, and the judge had little choice but to give her the same sentence. Instead of deportation, she will be on probation for five years. " CRLF PRINTI "I can't help thinking that everyone in the Linder household conspired in the original plan, but that Monica acted alone in turning the plan into murder. I suppose we'll never know the real truth now." JUMP ?CND110 ?ELS140: EQUAL? PHONG,PERSON,HELPER \?ELS148 PRINTI "I am sorry to report that the trial jury acquitted Mr. Phong of the murder of his employer. Apparently they believed that " FSET? GUN-RECEIPT,TOUCHBIT /?CND151 PRINTI "the available evidence against him was circumstantial, since there was no definite link between him and the murder weapon. In addition, it seems that " ?CND151: PRINTI "he lacks the mechanical skills necessary to construct the hidden gun mechanism. " CRLF ZERO? HELPER /?CND110 PRINTI "While Monica could have conspired with him and aided him, she too was acquitted of conspiracy, because " FSET? GUN-RECEIPT,TOUCHBIT /?ELS166 PRINTI "he was. If only we had tried her for plain murder instead of conspiracy! " CRLF JUMP ?CND110 ?ELS166: ZERO? MONICA-HAS-MOTIVE /?ELS170 PRINTI "the available evidence against her was circumstantial, since there was no definite link between her and the hidden gun mechanism. " CRLF JUMP ?CND110 ?ELS170: ZERO? SEEN-MONICA-AT-CLOCK \?THN176 ZERO? USED-CLOCK-KEY /?CND110 ?THN176: PRINTI "she had no apparent motive. " CRLF JUMP ?CND110 ?ELS148: EQUAL? PERSON,MONICA \?CND110 ZERO? MONICA-HAS-MOTIVE /?ELS184 ZERO? SEEN-MONICA-AT-CLOCK \?THN189 ZERO? USED-CLOCK-KEY /?ELS188 ?THN189: PRINTI "I am glad to report that the trial jury, based on your testimony and her confession in court, convicted Monica Linder of the murder of her father in revenge for the death of her mother. Congratulations " ZERO? DUFFY-HINT-NUM \?ELS197 PUSH STR?202 JUMP ?CND193 ?ELS197: GRTR? 3,DUFFY-HINT-NUM \?ELS199 PUSH STR?203 JUMP ?CND193 ?ELS199: PUSH STR?204 ?CND193: PRINT STACK CRLF PRINTI "Which reminds me of another fascinating case I would like to assign you to... Coming soon: Another INTERLOGIC Mystery from Infocom. " CALL EPILOGUE JUMP ?CND110 ?ELS188: PRINTI "I am sorry to report that the trial jury acquitted Monica Linder of the murder of her father. Apparently they believed that " PRINTI "the available evidence against her was circumstantial, since there was no definite link between her and the hidden gun mechanism. " CRLF JUMP ?CND110 ?ELS184: PRINTI "I am sorry to report that the trial jury acquitted Monica Linder of the murder of her father, because " PRINTI "she had no apparent motive. " CRLF JUMP ?CND110 ?ELS112: EQUAL? PERSON,GLOBAL-LINDER \?CND212 PRINTI "According to your report and deposition and the available physical evidence, you seem to believe that Mr. Linder shot himself through the window of his office. If you continue to come up with such odd conclusions, I will be forced to transfer you to the traffic-control department. " CRLF CALL CASE-OVER ?CND212: PRINTI "According to your report and deposition, the only question in this case is who shot Mr. Linder through the window of his office. However, I believe that the real story is not so simple. " CRLF EQUAL? PERSON,STILES /?CND219 PRINTI "In fact, in view of the flimsy evidence available, the District Attorney has decided not to indict " PRINTD PERSON ZERO? HELPER /?CND224 PRINTI " and " PRINTD HELPER ?CND224: PRINTI " in this case." ?CND219: EQUAL? PERSON,STILES \?ELS234 SET 'STILES-CONVICTED,TRUE-VALUE PRINTI "But, despite my reservations, the trial jury did convict Mr. Stiles of the murder. Through plea-bargaining, his sentence was reduced from execution to twenty years." JUMP ?CND110 ?ELS234: EQUAL? PERSON,MONICA \?ELS238 ZERO? SEEN-MONICA-AT-J-BOX \?THN241 ZERO? HELPER /?ELS238 ?THN241: ZERO? HELPER /?ELS245 SET 'FLG,TRUE-VALUE ZERO? SIDE-FOOTPRINTS-MATCHED /?CND247 SET 'FLG,FALSE-VALUE PRINTI " In his opinion, Phong's foot prints outside are not incriminating, even though they were apparently made at the time of the shooting. After all, Phong's household duties could easily have taken him there for any number of reasons. In Phong's own deposition, he claimed to have heard noises outside, which could have been made by Mr. Stiles." ?CND247: ZERO? SEEN-MONICA-AT-J-BOX /?ELS255 ZERO? FLG /?CND257 PRINTI " There is no evidence that " PRINTI "Phong" PRINTI " was at the scene of the shooting." ?CND257: PRINTI " Monica's actions in the workshop may be suspicious, but she claimed that she thought of a new twist on the household wiring during the film, and she seems to be enough of a tinkerer to make that believable." JUMP ?CND110 ?ELS255: ZERO? FLG /?ELS266 PRINTI " There is no evidence that " PRINTI "either one" PRINTI " was at the scene of the shooting." JUMP ?CND110 ?ELS266: PRINTI " There is no evidence that " PRINTI "Monica" PRINTI " was at the scene of the shooting." JUMP ?CND110 ?ELS245: ZERO? SEEN-MONICA-AT-J-BOX /?CND232 PRINTI " Monica's actions in the workshop may be suspicious, but she claimed that she thought of a new twist on the household wiring during the film, and she seems to be enough of a tinkerer to make that believable." JUMP ?CND232 ?ELS238: EQUAL? PERSON,PHONG \?ELS280 ZERO? SIDE-FOOTPRINTS-MATCHED /?ELS280 PRINTI " In his opinion, Phong's foot prints outside are not incriminating, even though they were apparently made at the time of the shooting. After all, Phong's household duties could easily have taken him there for any number of reasons. In Phong's own deposition, he claimed to have heard noises outside, which could have been made by Mr. Stiles." JUMP ?CND110 ?ELS280: PRINTI " There is no evidence that " EQUAL? PERSON,MONICA \?CND289 PRINTI "s" ?CND289: PRINTI "he" PRINTI " was at the scene of the shooting." ?CND232: ?CND110: CALL CASE-OVER RSTACK .FUNCT END-HEADER,STR PRINTI "Text of a letter from Police Chief Klutz dated " PRINT STR PRINTI ": Dear Detective: " RTRUE .FUNCT CASE-OVER ZERO? STILES-CONVICTED /?CND1 PRINTI " Post script: A few months later, after you are transferred to another department, you get a memo from your former boss. It says that new evidence was discovered in the Linder case, causing the court to reverse Stiles's conviction and set him free. Let's hope he doesn't come around bent on revenge!" CRLF ?CND1: PRINTI " The case has come to an end. Would you like to start your investigation over from scratch?" CALL YES? ZERO? STACK /?CND9 RESTART ?CND9: QUIT RTRUE .FUNCT EPILOGUE PRINTI " You have reached a complete solution to the story. If you like, you may see the author's summary of the case. Of course, you should come up with your own first! Would you like to see the author's summary?" CALL YES? ZERO? STACK /?CND3 PRINTI " Freeman Linder discovered about a year ago that his wife had taken a lover, Ralph Stiles. This discovery made their marriage deteriorate, with growing bitterness and belligerence, until Mrs. Linder recently took her own life with a gun. Linder planned to take revenge on Stiles by framing him for attempted murder. He enlisted the help of his butler, Phong, and his daughter, Monica. " CRLF PRINTI "Linder simultaneously sent two messages, a telegram to you and a phone call to Stiles. He wanted you to come to the house, witness the alleged crime, and then arrest Stiles. In the phone call he told Stiles to come discreetly to the office door at 9:00 to get some pay-off money. " CRLF PRINTI "Linder planned an elaborate set-up inside the office. A gun was put in the clock, aiming through the keyhole toward him, who would be sitting behind his desk on the opposite side of the room. Using the butler's button, he would trigger both the gun and the detonation of some explosive attached to the window, thus simulating a shot fired through the window at him. " CRLF PRINTI "Monica bought two identical small handguns for this plan. She hid one in the clock, and Phong planted the other, which was fired in secret beforehand, in the back yard just before 9:00, where you could find it later. " CRLF PRINTI "When Stiles's car appeared, Phong went to the front door, rang the door bell as a signal to Linder, and sneaked into the house. Linder kept an eye on the window and, when Stiles appeared, pushed the button to fire the shot. Stiles panicked and fled out the back of the yard but was brought back inside by Sgt. Duffy. " CRLF PRINTI "The plot thickened, however, because Monica decided to take this opportunity to murder her father. Her mother and she were very close. Mr. Linder was often away on business during Monica's childhood, and Mrs. Linder imbued her daughter with a love/hatred for him, saying that he abandoned them. Monica helped her father construct the remote-controlled gun, but she also blamed him for her mother's death and had lost all love for him. She therefore aimed the gun to kill her father when fired. Her idea was to convict Stiles of the murder and go free herself. " CRLF PRINTI "Phong had no idea of Monica's plan until he saw Linder's corpse. He did not spill the beans on Linder's plan, since he also had reason to want Linder removed from the scene. Monica, as a last resort, may have attempted to convince you that her father was dying of a stomach tumor and had planned his own death. But Monica is the only one who could have twisted Linder's plan into murder: the key to the clock was hidden on her person, so she had final control of the gun's aim. " ?CND3: QUIT RTRUE .FUNCT TOO-LATE-F PRINTI " A few days pass, and you don't hear from Linder. But a small item in the newspaper catches your eye: a grifter named Stiles was found dead on the beach one morning, with a cheap handgun lying near and a single small bullet wound through his heart. Does this death have anything to do with Linder and your visit? Well, no need to lose sleep over it. Everyone sleeps the big sleep sooner or later. " RTRUE .ENDI