300 lines
8.4 KiB
Plaintext
300 lines
8.4 KiB
Plaintext
|
|
|
|
.FUNCT RANDOM-PSEUDO
|
|
EQUAL? PRSA,V?TELL-ABOUT,V?LOOK-UNDER /FALSE
|
|
EQUAL? PRSA,V?LOOK-BEHIND,V?ASK-CONTEXT-ABOUT,V?ASK-ABOUT /FALSE
|
|
EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \?CCL7
|
|
CALL NOTHING-SPECIAL
|
|
RTRUE
|
|
?CCL7: CALL WONT-HELP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LUGGAGE-F,RARG=0
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
EQUAL? PRSA,V?MOVE,V?TAKE \?CCL5
|
|
EQUAL? PRSO,LUGGAGE \?CCL5
|
|
LOC LUGGAGE
|
|
FSET? STACK,PERSONBIT /FALSE
|
|
?CCL5: LOC LUGGAGE
|
|
FSET? STACK,PERSONBIT \FALSE
|
|
CALL NOT-HOLDING?,LUGGAGE
|
|
ZERO? STACK \TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT BROCHURE-F,X
|
|
EQUAL? PRSA,V?TELL-ABOUT,V?READ,V?OPEN /?PRG8
|
|
EQUAL? PRSA,V?LOOK-UP,V?LOOK-INSIDE,V?EXAMINE /?PRG8
|
|
EQUAL? PRSA,V?DESCRIBE,V?ASK-FOR,V?ASK-CONTEXT-FOR /?PRG8
|
|
EQUAL? PRSA,V?ASK-CONTEXT-ABOUT,V?ASK-ABOUT,V?ANALYZE \FALSE
|
|
?PRG8: PRINTI "[You'll find the "
|
|
PRINTD BROCHURE
|
|
PRINTI " in your "
|
|
PRINTD MOONMIST
|
|
PRINTR " package.]"
|
|
|
|
|
|
.FUNCT BLOWGUN-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
CALL QUEUED?,I-SHOT
|
|
ZERO? STACK /?PRG9
|
|
PRINTR "It's pointing right at you!"
|
|
?PRG9: PRINTR "It's a bamboo tube, two feet long and as thin as a small snake."
|
|
?CCL3: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?CCL12
|
|
FSET? BLOWGUN,MUNGBIT \?PRG18
|
|
PRINTR "It's empty."
|
|
?PRG18: PRINTI "There's a"
|
|
PRINT POISON-DART
|
|
PRINTR " inside."
|
|
?CCL12: EQUAL? PRSA,V?EMPTY \?CND20
|
|
SET 'PRSA,V?USE
|
|
?CND20: CALL SHOOTING,BLOWGUN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT NO-VIOLENCE?,OBJ,P
|
|
EQUAL? PRSA,V?SLAP /?CTR2
|
|
EQUAL? PRSA,V?SHOOT,V?KILL,V?ATTACK \?CCL3
|
|
?CTR2: SET 'P,PRSO
|
|
JUMP ?CND1
|
|
?CCL3: SET 'P,PRSI
|
|
?CND1: ZERO? P \?CND6
|
|
CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,WINNER >P
|
|
?CND6: ZERO? P \?CND8
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTI "(You didn't say whom to use it on!)"
|
|
CRLF
|
|
RFALSE
|
|
?CND8: EQUAL? P,GHOST-NEW /?CCL14
|
|
ZERO? VILLAIN-KNOWN? /?PRG19
|
|
EQUAL? P,VILLAIN-PER /?CCL14
|
|
?PRG19: PRINT NO-VIOLENCE
|
|
RFALSE
|
|
?CCL14: FSET? P,MUNGBIT \?CCL22
|
|
PRINT NO-VIOLENCE
|
|
RFALSE
|
|
?CCL22: EQUAL? VILLAIN-PER,LOVER /?CCL26
|
|
CALL QUEUED?,I-SHOT
|
|
ZERO? STACK \?CCL26
|
|
PRINT NO-VIOLENCE
|
|
RFALSE
|
|
?CCL26: ZERO? LIONEL-SPEAKS-COUNTER /?CCL32
|
|
CALL TELL-BAD-FORM
|
|
RFALSE
|
|
?CCL32: SET 'SHOOTER,FALSE-VALUE
|
|
CALL QUEUE,I-SHOT,0
|
|
EQUAL? VILLAIN-PER,LOVER \?CND33
|
|
CALL GHOST-FLEES
|
|
RFALSE
|
|
?CND33: FSET P,MUNGBIT
|
|
FCLEAR P,NDESCBIT
|
|
PUTP P,P?LDESC,19
|
|
GETP P,P?CHARACTER
|
|
GET GOAL-TABLES,STACK
|
|
PUT STACK,ATTENTION,0
|
|
EQUAL? P,GHOST-NEW \?CND35
|
|
GETP VILLAIN-PER,P?CHARACTER
|
|
GET GOAL-TABLES,STACK
|
|
PUT STACK,ATTENTION,0
|
|
?CND35: EQUAL? OBJ,CANE,WAR-CLUB,MACE \?CCL39
|
|
RANDOM 6
|
|
ADD 9,STACK
|
|
CALL QUEUE,I-COME-TO,STACK
|
|
JUMP ?CND37
|
|
?CCL39: GETP P,P?CHARACTER
|
|
PUT SHOT,STACK,TRUE-VALUE
|
|
EQUAL? P,GHOST-NEW \?CND37
|
|
GETP VILLAIN-PER,P?CHARACTER
|
|
PUT SHOT,STACK,TRUE-VALUE
|
|
?CND37: GETP P,P?LINE
|
|
ADD 3,STACK
|
|
PUTP P,P?LINE,STACK
|
|
CALL HE-SHE-IT,P,TRUE-VALUE
|
|
IN? BLOWGUN,P \?CND44
|
|
FSET BLOWGUN,TAKEBIT
|
|
FCLEAR BLOWGUN,NDESCBIT
|
|
MOVE BLOWGUN,HERE
|
|
PRINTI " drops"
|
|
CALL PRINTT,BLOWGUN
|
|
PRINTI " and"
|
|
?CND44: EQUAL? OBJ,MACE \?PRG53
|
|
PRINTI " claps both hands over"
|
|
CALL HIM-HER-IT,P,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " mouth and nose. "
|
|
CALL HIM-HER-IT,P,TRUE-VALUE,TRUE-VALUE
|
|
PRINTI " face takes on a greenish pallor, and strangled noises issue from"
|
|
CALL HIM-HER-IT,P,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " throat"
|
|
JUMP ?PRG55
|
|
?PRG53: PRINTI " looks surprised and stunned. Then"
|
|
CALL HIM-HER-IT,P,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " eyes flutter"
|
|
?PRG55: PRINTI ". Next moment"
|
|
CALL HE-SHE-IT,P
|
|
PRINTI " collapses "
|
|
CALL GROUND-DESC
|
|
PRINT STACK
|
|
PRINTI "!
|
|
"
|
|
RETURN P
|
|
|
|
|
|
.FUNCT SHOOTING,OBJ,P=0
|
|
CALL ATTACK-VERB?,TRUE-VALUE
|
|
ZERO? STACK /FALSE
|
|
CALL NO-VIOLENCE?,OBJ
|
|
ZERO? STACK /TRUE
|
|
EQUAL? OBJ,BLOWGUN \TRUE
|
|
FSET BLOWGUN,MUNGBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MACE-F,P=0
|
|
EQUAL? PRSA,V?PUSH \?CCL3
|
|
CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,PLAYER >P
|
|
CALL QUEUED?,I-SHOT
|
|
ZERO? STACK /?PRG8
|
|
ZERO? P /?PRG8
|
|
CALL PERFORM,V?SHOOT,P,MACE
|
|
RTRUE
|
|
?PRG8: PRINTI "The "
|
|
PRINTD MACE
|
|
PRINTI " emits a foul-smelling spray."
|
|
ZERO? P /?CND10
|
|
PRINTC 32
|
|
CALL HE-SHE-IT,P,TRUE-VALUE
|
|
PRINTR " says, ""Have a care! You almost shot me!"""
|
|
?CND10: CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?SMELL \?CCL15
|
|
PRINTR "It smells foul!"
|
|
?CCL15: CALL SHOOTING,MACE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT NECKLACE-OF-D-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
|
|
CALL YOU-CANT
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?PUT-IN /?PRD7
|
|
EQUAL? PRSA,V?PUT,V?HOLD-UP,V?COMPARE \?CCL5
|
|
?PRD7: EQUAL? JEWEL,PRSO,PRSI \?CCL5
|
|
EQUAL? PRSA,V?PUT-IN \?PRG12
|
|
MOVE JEWEL,NECKLACE-OF-D
|
|
?PRG12: PRINTI "The "
|
|
PRINTD JEWEL
|
|
PRINTR " fits the empty socket and matches the other red stones."
|
|
?CCL5: EQUAL? PRSA,V?PUT-IN \?CCL15
|
|
EQUAL? PRSI,NECKLACE-OF-D \FALSE
|
|
CALL TOO-BAD-BUT,PRSO,STR?277
|
|
RSTACK
|
|
?CCL15: EQUAL? PRSA,V?FIX \?CCL20
|
|
CALL YOU-CANT
|
|
RSTACK
|
|
?CCL20: EQUAL? PRSA,V?EXAMINE \?CCL22
|
|
PRINTI "It's a slender string of small, sparkling red, nonprecious stones. You notice that"
|
|
PRINT CLASP-MUNGED
|
|
PRINTI ", as if the clasp had been pulled open by force."
|
|
IN? JEWEL,NECKLACE-OF-D /?CND25
|
|
PRINTR " You also notice an empty socket or setting, from which one of the red stones is missing."
|
|
?CND25: CRLF
|
|
RTRUE
|
|
?CCL22: EQUAL? PRSA,V?WEAR /?CCL31
|
|
EQUAL? PRSA,V?PUT \FALSE
|
|
FSET? PRSI,PERSONBIT \FALSE
|
|
?CCL31: CALL WEAR-SCARE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LENS-2-F
|
|
EQUAL? PRSA,V?COMPARE \FALSE
|
|
EQUAL? LENS-1,PRSO,PRSI \FALSE
|
|
PRINTR "As near as you can tell, they're a matched set."
|
|
|
|
|
|
.FUNCT LENS-BOX-F,X
|
|
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
|
FSET? LENS,SEENBIT \?CND4
|
|
LOC LENS >X
|
|
ZERO? X /?CND4
|
|
MOVE LENS-1,X
|
|
REMOVE LENS
|
|
?CND4: FSET LENS-BOX,OPENBIT
|
|
PRINTI "You lift the hinged cover. Inside is a bed of moist foam rubber"
|
|
FIRST? LENS-BOX >X /?KLU16
|
|
?KLU16: ZERO? X /?PRG14
|
|
PRINTI ", holding"
|
|
CALL PRINT-CONTENTS,LENS-BOX
|
|
?PRG14: PRINTR ". It's obvious that the box will hold two lenses."
|
|
|
|
|
|
.FUNCT LETTER-F
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE /?CCL3
|
|
EQUAL? PRSA,V?SHOW \FALSE
|
|
FSET? LETTER,TOUCHBIT /FALSE
|
|
?CCL3: CALL NOT-HOLDING?,LETTER
|
|
ZERO? STACK \TRUE
|
|
FSET LETTER-MAID,SEENBIT
|
|
PRINTI "It says,
|
|
""Your Lordship:
|
|
Following instructions in your late Uncle Lionel's will, the other servants and I have left the castle after sounding the dinner gong. We shall remain away until tomorrow morning.
|
|
I regret to inform you that Gladys, the "
|
|
PRINTD MAID
|
|
PRINTI ", will not return with the rest of us. She wrote a note to Your Lordship explaining the reason. She told me that she put it on the "
|
|
PRINTD WRITING-DESK
|
|
PRINTI " in the "
|
|
PRINTD SITTING-ROOM
|
|
PRINTI ".
|
|
(signed) "
|
|
PRINTD BUTLER
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT LETTER-MAID-F
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
FCLEAR LETTER-MAID,NDESCBIT
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE /?CCL5
|
|
EQUAL? PRSA,V?SHOW \FALSE
|
|
FSET? LETTER-MAID,TOUCHBIT /FALSE
|
|
?CCL5: CALL NOT-HOLDING?,LETTER-MAID
|
|
ZERO? STACK \TRUE
|
|
PRINTI "It says, ""Today while cleaning the room of a certain person who shall be nameless, I was SHOCKED to discover SUMMING DREDFUL!
|
|
I hope I knows me place, Your Lordship, but I was brought up to be a PERFECKLY RESPECTABLE young woman, and I cannot go on working under the same roof where such WICKEDNESS takes place.
|
|
I am not the type of girl given to idle gossip, so I will only say this. Maybe there is more reason than ANYONE SUSPECKS why that so-called ghost prowls about the castle at night, if you know what I mean.
|
|
"
|
|
EQUAL? VARIATION,LORD-C \?CCL16
|
|
PRINTI "I am not the type who peeks through "
|
|
PRINTD KEYHOLE
|
|
PRINTI "s, either, but maybe it is high time someone did"
|
|
JUMP ?PRG26
|
|
?CCL16: EQUAL? VARIATION,FRIEND-C \?CCL20
|
|
PRINTI "Maybe you will also be surprised to learn that a certain pet shop in Frobzance sells more than just harmless puppies, kittens, and budgies"
|
|
JUMP ?PRG26
|
|
?CCL20: EQUAL? VARIATION,PAINTER-C,DOCTOR-C \?PRG26
|
|
PRINTI "Me Dad always says that the first sign of a nut case is when a person starts talking to hisself. Well, if you was to ask me, there is more than one way to talk to "
|
|
PRINTD PLAYER
|
|
PRINTI ". Some does it on paper, and that is the type person to watch out for"
|
|
?PRG26: PRINTR "!"""
|
|
|
|
|
|
.FUNCT LETTER-DEE-F
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE /?CCL3
|
|
EQUAL? PRSA,V?SHOW \FALSE
|
|
FSET? LETTER-DEE,TOUCHBIT /FALSE
|
|
?CCL3: CALL NOT-HOLDING?,LETTER-DEE
|
|
ZERO? STACK \TRUE
|
|
PRINTI "The writing is thick with loops and curls. It says,
|
|
""Dear Uncle Lionel,
|
|
I'm writing this on the train, coming up from London, where I saw Grandpapa in the clinic. He's so frightfully ill! I know "
|
|
PRINTD DOCTOR
|
|
PRINTI " is your old friend, but I can't help thinking his 'special treatments' are making Grandpapa worse, not better. Would you be a dear and find out just what he's doing there? I'd be ever so grateful!
|
|
Love,
|
|
"
|
|
PRINTD LOVER
|
|
PRINTR "."""
|
|
|
|
.ENDI
|