Final Revision

This commit is contained in:
historicalsource 2019-04-14 13:37:43 -04:00
parent 7dcf75bb74
commit a2025f6d6c
42 changed files with 46891 additions and 1323 deletions

1795
castle.zap Normal file

File diff suppressed because it is too large Load diff

2804
castle.zil Normal file

File diff suppressed because it is too large Load diff

754
colors.zap Normal file
View file

@ -0,0 +1,754 @@
.FUNCT INTRO
PRINTI "
You drove west from London all day in your new little British "
PRINTD CAR
PRINTI ". Now at last you've arrived in the storied land of Cornwall.
Dusk has fallen as you pull up in front of "
PRINTD CASTLE
PRINTI ". A ghostly "
PRINTD MOON
PRINTI " is rising, and a tall iron gate between two pillars bars the way into the "
PRINTD COURTYARD
PRINTI ".
"
RTRUE
.FUNCT YOUR-COLOR-F
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? HERE,YOUR-ROOM /?PRG11
CALL VISIBLE?,CAR
ZERO? STACK \?PRG11
CALL VISIBLE?,EXERCISE-OUTFIT
ZERO? STACK \?PRG11
CALL VISIBLE?,DINNER-OUTFIT
ZERO? STACK \?PRG11
CALL VISIBLE?,SLEEP-OUTFIT
ZERO? STACK \?PRG11
CALL NOT-HERE,YOUR-COLOR
RSTACK
?PRG11: PRINTI "It's "
PRINTD YOUR-COLOR
PRINTR "!"
.FUNCT GET-COLOR,NUM,N,WD,SUM=0,X,?TMP1
PUTB P-INBUF,0,30
?PRG1: PRINTC 62
READ P-INBUF,P-LEXV
GETB P-LEXV,P-LEXWORDS >NUM
ZERO? NUM \?CND5
PRINTC 34
PRINT BEG-PARDON
PRINTI """ "
JUMP ?PRG1
?CND5: SET 'N,P-LEXSTART
?PRG9: GET P-LEXV,N >WD
CALL ZMEMQ,WD,COLOR-WORDS >X
ZERO? X /?CCL13
SET 'VARIATION,X
?REP10: GETB P-LEXV,P-LEXWORDS
SUB STACK,1
MUL P-LEXELEN,STACK
ADD P-LEXSTART,STACK >WD
GET P-LEXV,WD
EQUAL? STACK,W?PERIOD,W?!,W?? \?CND16
SUB WD,P-LEXELEN >WD
?CND16: ADD WD,1
MUL 2,STACK >N
GETB P-LEXV,N >?TMP1
ADD 1,N
GETB P-LEXV,STACK
ADD ?TMP1,STACK
ADD -1,STACK >WD
ADD P-INBUF,1
CALL NON-BLANK-STUFF,FAVE-COLOR,STACK,WD
PRINTI """Did you say "
PRINTD YOUR-COLOR
PRINTI " is "
CALL PRINT-COLOR,TRUE-VALUE
PRINTI "?"""
CALL YES?
ZERO? STACK /?PRG32
ZERO? VARIATION \?CND25
GETB P-LEXV,5
GETB P-INBUF,STACK >SUM
CALL ZMEMQ,SUM,COLOR-LETTERS >X
ZERO? X /?CCL29
SET 'VARIATION,X
JUMP ?CND27
?CCL13: DLESS? 'NUM,1 /?REP10
ADD N,P-LEXELEN >N
JUMP ?PRG9
?CCL29: EQUAL? SUM,112 \?CCL31
SET 'VARIATION,PAINTER-C
JUMP ?CND27
?CCL31: MOD SUM,MAX-VARS
ADD 1,STACK >VARIATION
?CND27: GET COLOR-WORDS,VARIATION >COLOR-FORCED
?CND25: CALL DO-VARIATION
PUTB P-INBUF,0,80
RTRUE
?PRG32: PRINTI """What, then?"""
CRLF
SET 'VARIATION,0
JUMP ?PRG1
.FUNCT FIX-COLOR-ADJ,OBJ,PT,N
GETPT OBJ,P?ADJECTIVE >PT
ZERO? PT /FALSE
PTSIZE PT
SUB STACK,1
CALL ZMEMQB,A?F.C,PT,STACK >N
ZERO? N /FALSE
GET COLOR-ADJS,VARIATION
PUTB PT,N,STACK
RTRUE
.FUNCT DO-VARIATION,C
CALL FIX-COLOR-ADJ,YOUR-COLOR
CALL FIX-COLOR-ADJ,YOUR-ROOM
CALL FIX-COLOR-ADJ,CAR
CALL FIX-COLOR-ADJ,SLEEP-OUTFIT
CALL FIX-COLOR-ADJ,EXERCISE-OUTFIT
CALL FIX-COLOR-ADJ,DINNER-OUTFIT
EQUAL? VARIATION,LORD-C \?CCL3
LOC LOVER >C
JUMP ?CND1
?CCL3: EQUAL? VARIATION,FRIEND-C \?CCL5
SET 'C,IRIS-CLOSET
JUMP ?CND1
?CCL5: EQUAL? VARIATION,PAINTER-C \?CCL7
SET 'C,VIVIEN-BOX
JUMP ?CND1
?CCL7: SET 'C,WENDISH-KIT
?CND1: SET 'HIDING-PLACE,C
MOVE COSTUME,C
MOVE BLOWGUN,C
EQUAL? VARIATION,LORD-C \?CCL10
SET 'VILLAIN-PER,LOVER
MOVE NECKLACE-OF-D,JACK-ROOM
MOVE JEWEL,LOCAL-GLOBALS
SET 'TREASURE,WAR-CLUB
MOVE CLUE-2,PAINTER
FSET STAINED-WINDOW,CONTBIT
MOVE CLUE-3,STAINED-WINDOW
MOVE CLUE-4,GARDEN
MOVE CANE,UMBRELLA-STAND
JUMP ?CND8
?CCL10: EQUAL? VARIATION,FRIEND-C \?CCL13
SET 'VILLAIN-PER,FRIEND
MOVE TAMARA-EVIDENCE,TAMARA-BED
GETPT FRIEND,P?WEST
PUT STACK,NEXITSTR,STR?212
MOVE JOURNAL,TAMARA-BED
FSET JOURNAL,NDESCBIT
MOVE EARRING,JEWELRY-CASE
MOVE JEWEL,LOCAL-GLOBALS
SET 'TREASURE,NECKLACE
MOVE NECKLACE,SKELETON
MOVE CLUE-4,COFFIN
FCLEAR CLUE-4,NDESCBIT
FSET CLUE-4,TAKEBIT
MOVE CLUE-3,BELL
MOVE BRICKS,BASEMENT
JUMP ?CND8
?CCL13: EQUAL? VARIATION,DOCTOR-C \?CCL15
SET 'VILLAIN-PER,DOCTOR
MOVE WENDISH-BOOK,BOOKCASE
MOVE LENS-BOX,WENDISH-KIT
FCLEAR LENS-BOX,NDESCBIT
FSET LENS-BOX,TAKEBIT
MOVE JOURNAL,DESK
MOVE LETTER-DEE,STUDY
SET 'TREASURE,MOONMIST
FSET MOONMIST,SECRETBIT
MOVE CLUE-3,RHINO-HEAD
MOVE CLUE-4,GALLERY-CORNER
FCLEAR CLUE-4,NDESCBIT
FSET CLUE-4,TAKEBIT
MOVE MOONMIST,INKWELL
JUMP ?CND8
?CCL15: EQUAL? VARIATION,PAINTER-C \?CND8
SET 'VILLAIN-PER,PAINTER
MOVE VIVIEN-DIARY,VIVIEN-BOX
MOVE LENS-BOX,VIVIEN-BOX
FCLEAR LENS-BOX,NDESCBIT
FSET LENS-BOX,TAKEBIT
SET 'TREASURE,SKULL
MOVE SKULL,BELL
FSET MUSIC,SECRETBIT
MOVE CLUE-3,ARMOR
?CND8: EQUAL? VILLAIN-PER,LOVER \?CCL21
SET 'SEARCHER,LORD
JUMP ?CND19
?CCL21: SET 'SEARCHER,VILLAIN-PER
?CND19: FSET? VILLAIN-PER,FEMALE \FALSE
FSET GHOST-NEW,FEMALE
RTRUE
.FUNCT CANE-F,P
CALL ATTACK-VERB?
ZERO? STACK /?CCL3
CALL NO-VIOLENCE?,CANE
RTRUE
?CCL3: CALL DISCOVER-WAR-CLUB,CANE
RSTACK
.FUNCT PAINT-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "It seems to be hiding something."
?CCL3: EQUAL? PRSA,V?TAKE-OFF,V?RUB /?CTR6
EQUAL? PRSA,V?REMOVE,V?LOOK-UNDER,V?BRUSH /?CTR6
EQUAL? PRSA,V?TAKE \?CCL7
ZERO? PRSI /?CCL7
?CTR6: CALL DISCOVER-WAR-CLUB,CANE,TRUE-VALUE
RTRUE
?CCL7: CALL DIVESTMENT?,PAINT
ZERO? STACK /FALSE
CALL HAR-HAR
RSTACK
.FUNCT DISCOVER-WAR-CLUB,OBJ,DO-IT=0,PER
EQUAL? PRSA,V?RUB,V?BRUSH /?CTR2
ZERO? DO-IT /?CCL3
?CTR2: FSET? WAR-CLUB,SECRETBIT \FALSE
CALL DISCOVER,WAR-CLUB,PAINT
LOC OBJ
MOVE WAR-CLUB,STACK
LOC OBJ
CALL ROB,OBJ,STACK
MOVE OBJ,LOCAL-GLOBALS
MOVE PAINT,LOCAL-GLOBALS
RTRUE
?CCL3: EQUAL? PRSA,V?SEARCH,V?EXAMINE \FALSE
FSET? WAR-CLUB,SECRETBIT \FALSE
FCLEAR PAINT,SECRETBIT
PRINTI "There's something strange about this "
PRINTD OBJ
PRINTI ". It's shaped like a baseball bat, but with hard, faceted bumps all over it. It has a new "
PRINTD PAINT
PRINTR "."
.FUNCT ATTACK-VERB?,SHOOT=0
EQUAL? PRSA,V?SLAP,V?KILL,V?ATTACK \?CCL3
FSET? PRSO,PERSONBIT /TRUE
RFALSE
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL8
ZERO? SHOOT /FALSE
FSET? PRSO,PERSONBIT /TRUE
RFALSE
?CCL8: EQUAL? PRSA,V?PUT,V?RING \?CCL15
ZERO? SHOOT /FALSE
ZERO? PRSI /TRUE
FSET? PRSI,PERSONBIT /TRUE
RFALSE
?CCL15: EQUAL? PRSA,V?USE \FALSE
ZERO? PRSI /TRUE
FSET? PRSI,PERSONBIT /TRUE
RFALSE
.FUNCT WAR-CLUB-F
EQUAL? PRSA,V?COMPARE \?CCL3
EQUAL? JEWEL,PRSO,PRSI \FALSE
CALL START-SENTENCE,WAR-CLUB
PRINTI " has no "
PRINTD JEWEL
PRINTR " like this one."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL10
CALL DESCRIBE-WAR-CLUB
RSTACK
?CCL10: CALL ATTACK-VERB?
ZERO? STACK /FALSE
CALL NO-VIOLENCE?,WAR-CLUB
RTRUE
.FUNCT DESCRIBE-WAR-CLUB
PRINTI "It's a "
PRINTD WAR-CLUB
PRINTR " that once belonged to the Zulu king Dingaan -- and it's studded with large diamonds!"
.FUNCT SKULL-F
EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \FALSE
PRINTR "This staring skull is frightfully old -- even older than the castle."
.FUNCT MOONMIST-F
EQUAL? PRSA,V?READ,V?PLAY /?CTR2
EQUAL? PRSA,V?FIND,V?EXAMINE \?CCL3
IN? MOONMIST,GLOBAL-OBJECTS \?CCL3
?CTR2: SET 'CLOCK-WAIT,TRUE-VALUE
PRINTR "[You're playing it now!]"
?CCL3: CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?TAKE \?CCL13
IN? MOONMIST,GLOBAL-OBJECTS /?CCL16
CALL VISIBLE?,MOONMIST
ZERO? STACK /?CCL16
LOC MOONMIST
CALL PERFORM,PRSA,STACK,PRSI
RTRUE
?CCL16: CALL YOU-CANT
RSTACK
?CCL13: CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
EQUAL? PRSA,V?PUT,V?POUR \?CCL22
ZERO? PRSI /?CND23
FSET? PRSI,PERSONBIT \?CND23
CALL SHOOTING,MOONMIST
ZERO? STACK /?CND23
RETURN 2
?CND23: MOVE MOONMIST,LOCAL-GLOBALS
CALL START-SENTENCE,MOONMIST
PRINTI " dribbles "
ZERO? PRSI \?CCL34
CALL GROUND-DESC
PRINT STACK
JUMP ?PRG43
?CCL34: FSET? PRSI,SURFACEBIT /?PRG41
PRINTI "into"
CALL PRINTT,PRSI
JUMP ?PRG43
?PRG41: PRINTI "on"
CALL PRINTT,PRSI
?PRG43: PRINTR ", sizzles, and evaporates."
?CCL22: CALL DIVESTMENT?,MOONMIST
ZERO? STACK /?CCL46
CALL PERFORM,PRSA,INKWELL,PRSI
RTRUE
?CCL46: EQUAL? PRSA,V?EAT,V?DRINK \?CCL49
EQUAL? WINNER,PLAYER \FALSE
PRINTI "First it puts your tongue to sleep. Then your tummy. Then your brain."
CALL FINISH
RSTACK
?CCL49: EQUAL? PRSA,V?SMELL,V?EXAMINE \?CCL56
PRINTR "It's a greenish liquid with a strong odor."
?CCL56: CALL SHOOTING,MOONMIST
RSTACK
.FUNCT CLUE-1-F
EQUAL? PRSA,V?COMPARE \?CCL3
EQUAL? TREASURE,PRSO,PRSI \FALSE
CALL START-SENTENCE,TREASURE
EQUAL? VARIATION,LORD-C \?PRG16
FSET? PLAYER,FEMALE /?PRG16
PRINTI " looks just like the one on"
JUMP ?PRG18
?PRG16: PRINTI " seems to match"
?PRG18: PRINTI " the "
PRINTD CLUE-1
PRINTR "!"
?CCL3: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
FSET? CLUE-1,TOUCHBIT /?CND22
PRINTR "You can't see its face."
?CND22: CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
PRINTI "The "
PRINTD CLUE-1
PRINTI " shows "
EQUAL? VARIATION,LORD-C \?CCL32
PRINTI "the King of "
FSET? PLAYER,FEMALE \?PRG40
PRINTR "Spades, holding a sceptre."
?PRG40: PRINTI "Clubs in one corner, with a picture of an African chief holding a "
PRINTD WAR-CLUB
PRINTR "; in the other corner is the King of Diamonds, with a picture of a crowned vulture clutching a diamond."
?CCL32: EQUAL? VARIATION,FRIEND-C \?CCL43
FSET? PLAYER,FEMALE \?PRG49
PRINTR "a Polynesian diver, holding a knife and plunging through black water."
?PRG49: PRINTR "a photo of singer Pearl Bailey."
?CCL43: EQUAL? VARIATION,DOCTOR-C \?CCL52
FSET? PLAYER,FEMALE \?PRG58
PRINTD CASTLE
PRINTI ", with a cloud of mist hiding the "
PRINTD MOON
PRINTR "."
?PRG58: PRINTI "an Amazon hunter, aiming a "
PRINTD BLOWGUN
PRINTR " at the tree tops."
?CCL52: EQUAL? VARIATION,PAINTER-C \FALSE
PRINTI "a "
PRINTD SKELETON
PRINTR " in Chinese mandarin costume."
.FUNCT CLUE-2-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
FSET CLUE-2,TOUCHBIT
CALL HE-SHE-IT,CLUE-2,TRUE-VALUE
PRINTI " says,"
CRLF
EQUAL? VARIATION,LORD-C \?CCL10
SET 'CLUE-LOC,CHAPEL
PRINTR """Forbidden fruit tempted the very first lass.
'Twas once in a garden but now in a glass."""
?CCL10: EQUAL? VARIATION,PAINTER-C \?CCL15
FSET? MUSIC,TOUCHBIT /?CCL18
SET 'CLUE-LOC,SITTING-ROOM
JUMP ?PRG21
?CCL18: FSET? BOTTLE,TOUCHBIT /?CCL20
SET 'CLUE-LOC,BASEMENT
JUMP ?PRG21
?CCL20: SET 'CLUE-LOC,DRAWING-ROOM
?PRG21: PRINTR """Three fellows argued about life:
1. 'Using this motto, no chap can go wrong:
Leave the wench and the grape, but go with a ____!'
2. 'On the seas of my life sails a ship that is laden
Not with bottles or tunes, but with innocent ______s!'
3. 'Women and singing are both very fine,
But for me there is nothing to equal good ____!'"""
?CCL15: EQUAL? VARIATION,DOCTOR-C \?CCL24
SET 'CLUE-LOC,GAME-ROOM
PRINTR """My first is an 'I,' but find an 'eye' that sees not."""
?CCL24: SET 'CLUE-LOC,DECK
PRINTR """... Yet the ear distinctly tells,...
How the danger sinks and swells,
By the sinking or the swelling in the anger of the ____s..."""
.FUNCT CLUE-3-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
FSET CLUE-3,TOUCHBIT
FSET CLUE-3,TAKEBIT
CALL HE-SHE-IT,CLUE-3,TRUE-VALUE
PRINTI " says,
"
EQUAL? VARIATION,LORD-C \?CCL10
SET 'CLUE-LOC,GARDEN
PRINTR """Despite its appearance, the fruit was quite sour.
One bite of the apple drove Eve from her bower."""
?CCL10: EQUAL? VARIATION,FRIEND-C \?CCL14
SET 'CLUE-LOC,0
PRINTR """... And so, all the night-tide, I lie down by the side
Of my darling -- my darling -- my life and my bride,...
In her tomb by the sounding sea."""
?CCL14: EQUAL? VARIATION,DOCTOR-C \?CCL18
SET 'CLUE-LOC,GALLERY
PRINTR """My second is in never but not in ever, and lies in a hidden 'end'."""
?CCL18: SET 'CLUE-LOC,DECK
PRINTR """My al___ has no glamour;
Its '____e' tones do clam___.
Can you find me?"""
.FUNCT CLUE-4-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
FSET CLUE-4,TOUCHBIT
FSET CLUE-4,TAKEBIT
CALL HE-SHE-IT,CLUE-4,TRUE-VALUE
PRINTI " says,
"
EQUAL? VARIATION,LORD-C \?CCL10
SET 'CLUE-LOC,FOYER
PRINTR """Out of the sunshine, into the rain...
The end of the story is... Abel and CAIN.""
The last word is underlined."
?CCL10: EQUAL? VARIATION,FRIEND-C \?CCL14
SET 'CLUE-LOC,BASEMENT
PRINTR """If you search for 'A Cask of Amontillado,' don't get trapped!"""
?CCL14: SET 'CLUE-LOC,OFFICE
PRINTR """My third is the silent side of knight.
All together I am what you could use for poison-pen letters."""
.FUNCT PRINT-COLOR,X=0
ZERO? VARIATION \?CCL3
ZERO? X /FALSE
?CCL3: GETB FAVE-COLOR,0
CALL WORD-PRINT,STACK,1,FAVE-COLOR
ZERO? COLOR-FORCED /TRUE
PRINTI " and "
PRINTB COLOR-FORCED
RTRUE
.FUNCT TELL-SUFFIX,I,J=1
GETB SUFFIX,0 >I
ZERO? I /FALSE
PRINTI ", "
EQUAL? JUNIOR-C,I \?CCL7
PRINTI "Junior"
RTRUE
?CCL7: EQUAL? SENIOR-C,I \?PRG13
PRINTI "Senior"
RTRUE
?PRG13: GETB SUFFIX,J
PRINTC STACK
DLESS? 'I,1 /TRUE
INC 'J
JUMP ?PRG13
.FUNCT TITLE-NAME
CALL TITLE
EQUAL? TITLE-WORD,W?MRS,W?MS,W?MISS /?PRG7
EQUAL? TITLE-WORD,W?MISTER,W?MR /?PRG7
EQUAL? TITLE-WORD,W?DOCTOR,W?DR \?PRG9
?PRG7: CALL PRINT-NAME,LAST-NAME
RSTACK
?PRG9: CALL PRINT-NAME,FIRST-NAME
RSTACK
.FUNCT TITLE
EQUAL? TITLE-WORD,W?MRS \?CCL3
PRINTI "Mrs. "
RTRUE
?CCL3: EQUAL? TITLE-WORD,W?MS \?CCL7
PRINTI "Ms. "
RTRUE
?CCL7: EQUAL? TITLE-WORD,W?MISS \?CCL11
PRINTI "Miss "
RTRUE
?CCL11: EQUAL? TITLE-WORD,W?LADY \?CCL15
PRINTI "Lady "
RTRUE
?CCL15: EQUAL? TITLE-WORD,W?DAME \?CCL19
PRINTI "Dame "
RTRUE
?CCL19: EQUAL? TITLE-WORD,W?MADAME,W?MADAM \?CCL23
PRINTI "Madame "
RTRUE
?CCL23: EQUAL? TITLE-WORD,W?DOCTOR,W?DR \?CCL27
PRINTI "Dr. "
RTRUE
?CCL27: EQUAL? TITLE-WORD,W?LORD \?CCL31
PRINTI "Lord "
RTRUE
?CCL31: EQUAL? TITLE-WORD,W?SIR \?CCL35
PRINTI "Sir "
RTRUE
?CCL35: EQUAL? TITLE-WORD,W?MISTER,W?MR \?CCL39
PRINTI "Mr. "
RTRUE
?CCL39: EQUAL? TITLE-WORD,W?MASTER \FALSE
PRINTI "Master "
RTRUE
.FUNCT NON-BLANK-STUFF,DEST,SRC,CNT,ND=1,NS=0,B,OB=32
DEC 'CNT
?PRG1: GETB SRC,NS >B
EQUAL? B,32 \?CCL4
EQUAL? NS,CNT /?CND3
EQUAL? OB,32 /?CND3
?CCL4: PUTB DEST,ND,B
INC 'ND
SET 'OB,B
?CND3: IGRTR? 'NS,CNT \?PRG1
SUB ND,1
PUTB DEST,0,STACK
RTRUE
.FUNCT FULL-NAME,NO-TELL=0
PUTB SUFFIX,0,0
PUTB LAST-NAME,0,0
SET 'MIDDLE-WORD,0
SET 'TITLE-WORD,0
ZERO? NO-TELL \TRUE
PRINTR """I said: Please state your full name."""
.FUNCT GET-NAME,NUM,N,M,I,BEG,END,?TMP1
PUTB P-INBUF,0,30
?PRG1: PRINTC 62
READ P-INBUF,P-LEXV
GETB P-LEXV,P-LEXWORDS >NUM
ZERO? NUM \?CND5
PRINTC 34
PRINT BEG-PARDON
PRINTI """ "
JUMP ?PRG1
?CND5: SET 'N,P-LEXSTART
GET P-LEXV,N >BEG
CALL TITLE-NOUN?,BEG
ZERO? STACK /?CND9
DEC 'NUM
ADD N,P-LEXELEN >N
SET 'TITLE-WORD,BEG
EQUAL? BEG,W?DOCTOR,W?DR,W?DETECT /?CND11
SET 'GENDER-KNOWN,TRUE-VALUE
?CND11: EQUAL? BEG,W?MR,W?MISTER,W?MASTER /?CCL15
EQUAL? BEG,W?LORD,W?SIR \?PRG18
?CCL15: FCLEAR PLAYER,FEMALE
?PRG18: GET P-LEXV,N
EQUAL? STACK,W?PERIOD \?CND9
DEC 'NUM
ADD N,P-LEXELEN >N
JUMP ?PRG18
?CND9: LESS? NUM,2 \?CND23
EQUAL? BEG,W?QUIT,W?Q \?CCL27
CALL V-QUIT
JUMP ?CND25
?CCL27: EQUAL? BEG,W?RESTART \?CCL29
CALL V-RESTART
JUMP ?CND25
?CCL29: EQUAL? BEG,W?RESTORE \?CND25
CALL V-RESTORE
?CND25: CALL FULL-NAME
JUMP ?PRG1
?CND23: SET 'BEG,N
SUB NUM,1
MUL P-LEXELEN,STACK
ADD N,STACK >END
?PRG31: GET P-LEXV,END
EQUAL? STACK,W?PERIOD,W?!,W?? \?REP32
SUB END,P-LEXELEN >END
JUMP ?PRG31
?REP32: LESS? BEG,END /?CND36
CALL FULL-NAME
JUMP ?PRG1
?CND36: GET P-LEXV,END
EQUAL? STACK,W?SR,W?SENIOR \?CCL40
SUB END,P-LEXELEN >END
PUTB SUFFIX,0,SENIOR-C
JUMP ?PRG51
?CCL40: GET P-LEXV,END
EQUAL? STACK,W?JR,W?JUNIOR \?CCL42
SUB END,P-LEXELEN >END
PUTB SUFFIX,0,JUNIOR-C
JUMP ?PRG51
?CCL42: ADD END,1
MUL 2,STACK >N
GETB P-LEXV,N >NUM
LESS? NUM,6 \?PRG51
ADD 1,N
GETB P-LEXV,STACK >M
SET 'I,0
?PRG44: DLESS? 'NUM,0 /?CCL48
GETB P-INBUF,M
EQUAL? STACK,105,118,120 \?PRG51
INC 'I
GETB P-INBUF,M
SUB STACK,32
PUTB SUFFIX,I,STACK
INC 'M
JUMP ?PRG44
?CCL48: PUTB SUFFIX,0,I
SUB END,P-LEXELEN >END
?PRG51: GET P-LEXV,END
EQUAL? STACK,W?PERIOD,W?COMMA,W?THE \?REP52
SUB END,P-LEXELEN >END
JUMP ?PRG51
?REP52: LESS? BEG,END /?CND56
CALL FULL-NAME
JUMP ?PRG1
?CND56: ADD END,1
MUL 2,STACK >N
GETB P-LEXV,N >NUM
SUB END,P-LEXELEN >END
GET P-LEXV,END
EQUAL? STACK,W?APOSTROPHE \?CND58
SUB END,P-LEXELEN >END
ADD END,1
MUL 2,STACK >N
GETB P-LEXV,N
ADD NUM,STACK >NUM
INC 'NUM
?CND58: GRTR? BEG,END \?CND60
CALL FULL-NAME
JUMP ?PRG1
?CND60: ADD BEG,P-LEXELEN >I
?PRG62: GRTR? I,END \?CCL66
SET 'MIDDLE-WORD,0
JUMP ?REP63
?CCL66: GET P-LEXV,I >M
EQUAL? M,W?THE,W?OF,W?COMMA /?CCL68
ADD I,P-LEXELEN >I
JUMP ?PRG62
?CCL68: SET 'MIDDLE-WORD,M
ADD I,P-LEXELEN
ADD 1,STACK
MUL 2,STACK >M
ADD 1,N
GETB P-LEXV,STACK >?TMP1
ADD 1,M
GETB P-LEXV,STACK
SUB ?TMP1,STACK
ADD NUM,STACK >NUM
SET 'N,M
?REP63: ADD 1,N
GETB P-LEXV,STACK
ADD P-INBUF,STACK
CALL NON-BLANK-STUFF,LAST-NAME,STACK,NUM
SUB N,P-WORDLEN >N
ZERO? MIDDLE-WORD /?CND69
SUB N,P-WORDLEN >N
?CND69: MUL 2,BEG
ADD 3,STACK
GETB P-LEXV,STACK >BEG
GETB P-LEXV,N >?TMP1
ADD 1,N
GETB P-LEXV,STACK
ADD ?TMP1,STACK
ADD -1,STACK >END
SUB END,BEG
ADD 1,STACK >N
ADD P-INBUF,BEG
CALL NON-BLANK-STUFF,FIRST-NAME,STACK,N
PRINTI """Did you say your name is "
CALL TELL-FULL-NAME
PRINTI "?"""
CALL YES?
ZERO? STACK /?PRG78
PUTB P-INBUF,0,80
RTRUE
?PRG78: PRINTI """Then please speak up.""
"
CALL FULL-NAME,TRUE-VALUE
JUMP ?PRG1
.FUNCT PRINT-NAME,TBL,PTR=0,LEN,CH,OCH,SP?=1
GETB TBL,0 >LEN
?PRG1: IGRTR? 'PTR,LEN /?REP2
SET 'OCH,CH
GETB TBL,PTR >CH
LESS? CH,97 /?CTR6
GRTR? CH,122 \?CCL7
?CTR6: PRINTC CH
JUMP ?CND5
?CCL7: ZERO? SP? /?CCL11
SUB CH,32
PRINTC STACK
JUMP ?CND5
?CCL11: EQUAL? OCH,39 \?CTR12
EQUAL? PTR,LEN /?CTR12
ADD 1,PTR
GETB TBL,STACK
EQUAL? 32,STACK \?CCL13
?CTR12: PRINTC CH
JUMP ?CND5
?CCL13: SUB CH,32
PRINTC STACK
?CND5: EQUAL? CH,32,46 /?CTR18
EQUAL? CH,45,38 \?CCL19
?CTR18: SET 'SP?,TRUE-VALUE
JUMP ?PRG1
?CCL19: SET 'SP?,FALSE-VALUE
JUMP ?PRG1
?REP2: EQUAL? CH,46 /FALSE
RTRUE
.ENDI

View file

@ -82,6 +82,8 @@ into the " 'COURTYARD ".|">>
(T <SET SUM <+ .SUM <GETB ,P-INBUF .NUM>>>)>>
<COND (<SET X <ZMEMQ .SUM ,COLOR-LETTERS>>
<SETG VARIATION .X>)
(<EQUAL? .SUM %<ASCII !\p>> ;"pink => blue"
<SETG VARIATION ,PAINTER-C>)
(T <SETG VARIATION <+ 1 <MOD .SUM ,MAX-VARS>>>)>
<SETG COLOR-FORCED <GET ,COLOR-WORDS ,VARIATION>>)>
<DO-VARIATION>
@ -681,7 +683,7 @@ what you could use for poison-pen letters.\"" CR>)>)>>
<GLOBAL FIRST-NAME <TABLE #BYTE 0 #BYTE 120
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> "x"
<GLOBAL LAST-NAME <TABLE #BYTE 0 #BYTE 116 #BYTE 101 #BYTE 115
#BYTE 116 #BYTE 101 #BYTE 114
#BYTE 116 #BYTE 101 #BYTE 114 #BYTE 0
0 0 0 0 0 0 0 0 0 0 0 0>> "tester"
<GLOBAL SUFFIX <TABLE #BYTE 0 #BYTE 0 0 0>>

667
global.zap Normal file
View file

@ -0,0 +1,667 @@
.FUNCT LOCAL-GLOBALS-F
CALL REMOTE-VERB?
ZERO? STACK \FALSE
CALL CREEPY?,HERE
ZERO? STACK \?CTR4
CALL OUTSIDE?,HERE
ZERO? STACK /?CCL5
?CTR4: CALL RANDOM-PSEUDO
RSTACK
?CCL5: CALL NOT-HERE,LOCAL-GLOBALS
RSTACK
.FUNCT UPSTAIRS-DOWNSTAIRS,N,TBL,HR,?TMP1
LOC WINNER >HR
EQUAL? PRSA,V?WALK-TO,V?WALK,V?THROUGH /?CCL3
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-DOWN,V?BOARD \FALSE
?CCL3: FSET? HR,SECRETBIT /FALSE
FSET? HR,WEARBIT \?CCL10
SET 'TBL,WING-STAIRS
JUMP ?CND6
?CCL10: SET 'TBL,TOWER-STAIRS
?CND6: EQUAL? PRSA,V?CLIMB-UP,V?BOARD \?CCL13
GETPT HR,P?UP
ZERO? STACK /?CCL17
CALL DO-WALK,P?UP
RTRUE
?CCL17: GETP HR,P?CHARACTER >N
ZERO? N /FALSE
GET TBL,0 >?TMP1
INC 'N
LESS? ?TMP1,N /FALSE
GET TBL,N >N
CALL PERFORM,V?WALK-TO,N
RTRUE
?CCL13: GETPT HR,P?DOWN
ZERO? STACK /?CCL24
CALL DO-WALK,P?DOWN
RTRUE
?CCL24: GETP HR,P?CHARACTER >N
ZERO? N /FALSE
DEC 'N
LESS? 0,N \FALSE
GET TBL,N >N
CALL PERFORM,V?WALK-TO,N
RTRUE
.FUNCT DO-INSTEAD-OF,OBJ1,OBJ2
EQUAL? PRSI,OBJ2 \?CCL3
CALL PERFORM,PRSA,PRSO,OBJ1
RTRUE
?CCL3: EQUAL? PRSO,OBJ2 \?CCL5
CALL PERFORM,PRSA,OBJ1,PRSI
RTRUE
?CCL5: CALL V-FOO
RSTACK
.FUNCT TURN-F
EQUAL? PRSA,V?USE \FALSE
CALL PERFORM,V?WAIT-FOR,PRSO
RTRUE
.FUNCT IT-F
EQUAL? PRSI,IT \?PRD5
EQUAL? PRSA,V?TELL-ABOUT /?PRG12
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?PRG12
?PRD5: EQUAL? PRSO,IT \FALSE
EQUAL? PRSA,V?FIND,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT \FALSE
?PRG12: PRINTR """I'm not sure what you're talking about."""
.FUNCT FLOOR-F,OBJ=0,N
EQUAL? PRSA,V?CLIMB-ON \?CCL3
CALL ALREADY,WINNER,STR?278
RSTACK
?CCL3: EQUAL? PRSA,V?THROW-AT,V?PUT \?CCL5
EQUAL? PRSO,MOONMIST /?CCL5
EQUAL? PRSI,FLOOR \?CCL5
MOVE PRSO,HERE
PRINTR "Okay."
?CCL5: EQUAL? PRSA,V?SEARCH-FOR /?CTR11
EQUAL? PRSA,V?SEARCH,V?LOOK-ON,V?EXAMINE \?CCL12
?CTR11: EQUAL? HERE,DRAWING-ROOM \?CCL17
PRINTI "The carpet ends flush with the archway to the "
PRINTD GREAT-HALL
PRINTI ", where the footsteps of visitors have begun to wear it thin. It's a magnificent red Brussels carpet with deep pile and a medieval design."
CRLF
JUMP ?CND15
?CCL17: EQUAL? HERE,GREAT-HALL \?CND15
CALL GREAT-HALL-IS-FLOORED
?CND15: EQUAL? HERE,GARDEN \?CCL23
EQUAL? VARIATION,LORD-C \?CCL23
FSET? CLUE-4,SECRETBIT \?CCL23
SET 'OBJ,CLUE-4
JUMP ?CND21
?CCL23: EQUAL? HERE,DRAWING-ROOM \?CCL28
EQUAL? VARIATION,LORD-C,FRIEND-C \?CCL28
FSET? JEWEL,TOUCHBIT /?CCL28
SET 'OBJ,JEWEL
JUMP ?CND21
?CCL28: EQUAL? HERE,GREAT-HALL \?CND21
EQUAL? VARIATION,DOCTOR-C,PAINTER-C \?CND21
EQUAL? FOUND-IT-PERM,LENS,LENS-2 /?CND21
SET 'OBJ,LENS
?CND21: CALL START-SEARCH,OBJ
RTRUE
?CCL12: CALL ADJ-USED?,W?DRAWING
ZERO? STACK /?CCL37
EQUAL? HERE,DRAWING-ROOM /FALSE
CALL DO-INSTEAD-OF,DRAWING-ROOM,FLOOR
RTRUE
?CCL37: CALL ADJ-USED?,W?GREAT
ZERO? STACK /FALSE
EQUAL? HERE,GREAT-HALL /FALSE
CALL DO-INSTEAD-OF,GREAT-HALL,FLOOR
RTRUE
.FUNCT START-SEARCH,OBJ=0
PRINTI "Nothing suspicious meets your eye after a moment's scrutiny. Do you want to continue?"
CALL YES?
ZERO? STACK \?CCL5
CALL OKAY
RTRUE
?CCL5: SET 'FOUND-IT,OBJ
SET 'FOUND-LOC,HERE
RANDOM 7
CALL QUEUE,I-FOUND-IT,STACK
CALL V-WAIT,8,FALSE-VALUE,TRUE-VALUE
RTRUE
.FUNCT I-FOUND-IT,GARG=0,OBJ
EQUAL? FOUND-LOC,HERE \FALSE
EQUAL? FOUND-IT,JEWEL \?CCL5
MOVE FOUND-IT,HERE
PRINTI "Suddenly you notice a glittering speck. Probing for it with your fingers, you discover a "
PRINTD JEWEL
PRINTC 46
CRLF
JUMP ?CND1
?CCL5: EQUAL? FOUND-IT,LENS \?CCL9
FSET? LENS,SEENBIT /?CCL12
LOC LENS
MOVE LENS-2,STACK
JUMP ?CND10
?CCL12: FSET? LENS-2,SEENBIT /FALSE
SET 'FOUND-IT,LENS-2
LOC LENS
MOVE LENS-1,STACK
REMOVE LENS
?CND10: MOVE FOUND-IT,HERE
PRINTI "Suddenly you find something small, smooth and slippery -- a "
PRINTD FOUND-IT
PRINTI "! Its transparency, of course, made it practically invisible."
ZERO? BUTLER-GHOST-STORY-TOLD /?CND17
PRINTI " No wonder you and the ghost had such a hard time finding it!"
?CND17: CRLF
JUMP ?CND1
?CCL9: ZERO? FOUND-IT \?CCL22
PRINT NOTHING-NEW
RETURN 2
?CCL22: FSET? FOUND-IT,SECRETBIT \?PRG29
CALL DISCOVER,FOUND-IT
JUMP ?CND1
?PRG29: PRINTC 89
PRINT OU-STOP-SEARCHING
PRINTI " when you find"
CALL PRINTT,FOUND-IT
PRINTI ".
"
?CND1: FSET FOUND-IT,TOUCHBIT
FSET FOUND-IT,SEENBIT
EQUAL? FOUND-IT,YOUR-SWITCH /?CND32
FCLEAR FOUND-IT,NDESCBIT
?CND32: EQUAL? FOUND-IT,LENS,LENS-2 \?CND34
SET 'FOUND-IT-PERM,FOUND-IT
?CND34: SET 'FOUND-IT,FALSE-VALUE
RETURN 2
.FUNCT YOU-F,X
EQUAL? WINNER,PLAYER /?CCL3
CALL DO-INSTEAD-OF,WINNER,YOU
RTRUE
?CCL3: EQUAL? PRSA,V?ASK-ABOUT \?CCL5
EQUAL? PRSI,YOU \?CCL5
CALL PERFORM,V?ASK-ABOUT,PRSO,PRSO
RTRUE
?CCL5: EQUAL? PRSA,V?THANKS \FALSE
CALL QCONTEXT-GOOD? >X
ZERO? X /FALSE
CALL PERFORM,V?THANKS,X
RTRUE
.FUNCT WALL-F,OBJ
EQUAL? VARIATION,FRIEND-C \?CCL3
EQUAL? HERE,BASEMENT,CRYPT \?CCL3
CALL BRICKS-F
RSTACK
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL7
CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT >OBJ
ZERO? OBJ /?CCL7
CALL DO-INSTEAD-OF,OBJ,WALL
RTRUE
?CCL7: EQUAL? PRSA,V?KNOCK \FALSE
FSET? HERE,WEARBIT \?PRG17
CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT
ZERO? STACK /?PRG19
?PRG17: PRINTR "You hear a hollow sound."
?PRG19: PRINTR "Knocking on the walls reveals nothing unusual."
.FUNCT GLOBAL-HERE-F,OBJ,X=0
EQUAL? PRSA,V?WALK-TO,V?SMELL /?CTR2
EQUAL? PRSA,V?SIT,V?LIE,V?EXAMINE \?CCL3
?CTR2: CALL DO-INSTEAD-OF,HERE,GLOBAL-HERE
RTRUE
?CCL3: EQUAL? PRSA,V?PUT-IN,V?PUT \?CCL7
CALL MORE-SPECIFIC
RSTACK
?CCL7: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \FALSE
IN? MAGAZINE,HERE \?CCL12
FSET? MAGAZINE,NDESCBIT \?CCL12
SET 'X,MAGAZINE
JUMP ?CND10
?CCL12: IN? BRICKS,HERE \?CCL16
FSET? BRICKS,NDESCBIT \?CCL16
SET 'X,BRICKS
JUMP ?CND10
?CCL16: ZERO? PRSI /?CCL20
CALL META-LOC,PRSI
EQUAL? STACK,HERE \?CCL20
SET 'X,PRSI
JUMP ?CND10
?CCL20: FIRST? HERE >OBJ /?PRG24
?PRG24: ZERO? OBJ /?CND10
FSET? OBJ,SECRETBIT \?CCL30
SET 'X,OBJ
JUMP ?CND10
?CCL30: FSET? OBJ,PERSONBIT /?CCL32
FSET? OBJ,CONTBIT /?PRD35
FSET? OBJ,SURFACEBIT \?CCL32
?PRD35: CALL FIND-FLAG,OBJ,SECRETBIT >X
ZERO? X \?CTR31
CALL FIND-FLAG,OBJ,RMUNGBIT >X
ZERO? X /?CCL32
?CTR31: FSET OBJ,OPENBIT
?CND10: CALL START-SEARCH,X
RTRUE
?CCL32: NEXT? OBJ >OBJ /?PRG24
JUMP ?PRG24
.FUNCT CHAIR-F
EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?SIT \?CCL3
CALL WONT-HELP
RSTACK
?CCL3: CALL RANDOM-PSEUDO
RSTACK
.FUNCT CLOTHES-FCN
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
EQUAL? PRSO,TWEED-OUTFIT \?CCL6
PRINTI "These are sensible clothes for this clammy climate: your new tweed "
ZERO? GENDER-KNOWN \?PRG14
PRINTI "suit"
JUMP ?PRG23
?PRG14: PRINTI "blazer and "
FSET? PLAYER,FEMALE \?PRG21
PRINTI "skirt"
JUMP ?PRG23
?PRG21: PRINTI "pants"
?PRG23: PRINTR ", with woolen sweater, should keep you warm enough."
?CCL6: EQUAL? PRSO,EXERCISE-OUTFIT \?CCL26
PRINTI "This is your favorite outfit for workouts: a cotton sweatsuit with a sporty "
CALL PRINT-COLOR
ZERO? STACK /?PRG33
PRINTC 32
?PRG33: PRINTR "stripe."
?CCL26: EQUAL? PRSO,DINNER-OUTFIT \?PRG70
ZERO? GENDER-KNOWN \?PRG42
PRINTI "You have a decent formal ensemble, with frills in the right places"
JUMP ?PRG53
?PRG42: PRINTI "Your new "
FSET? PLAYER,FEMALE \?PRG49
PRINTI "floor-length dinner gown"
JUMP ?PRG51
?PRG49: PRINTI "tuxedo"
?PRG51: PRINTI " is particularly good-looking"
?PRG53: PRINTI " and a perfect fit"
ZERO? VARIATION /?PRG68
PRINTI ", "
FSET? PLAYER,FEMALE \?PRG64
PRINTI "not to mention that it's all"
JUMP ?PRG66
?PRG64: PRINTI "with shirt and accessories"
?PRG66: PRINTI " in "
CALL PRINT-COLOR
?PRG68: PRINTR "."
?PRG70: PRINTI "Your new "
CALL PRINT-COLOR
ZERO? STACK /?PRG76
PRINTC 32
?PRG76: PRINTD SLEEP-OUTFIT
PRINTI " is "
ZERO? GENDER-KNOWN \?CCL80
PRINTR "nothing to write home about, but it is so-o-o comfy for sleeping."
?CCL80: FSET? PLAYER,FEMALE \?PRG87
PRINTR "made of fine Chinese silk."
?PRG87: PRINTR "decorated with a Union Jack flag."
?CCL3: EQUAL? PRSA,V?DISEMBARK \?CCL90
CALL PERFORM,V?TAKE-OFF,PRSO
RTRUE
?CCL90: EQUAL? PRSA,V?EMPTY \FALSE
CALL META-LOC,LUGGAGE
EQUAL? STACK,HERE \?CCL95
CALL PERFORM,V?EMPTY,LUGGAGE
RTRUE
?CCL95: CALL NOT-HERE,LUGGAGE
RSTACK
.FUNCT SLEEP-GLOBAL-F
EQUAL? PRSA,V?DRESS \?CCL3
CALL META-LOC,SLEEP-OUTFIT
EQUAL? HERE,STACK \FALSE
CALL PERFORM,V?WEAR,SLEEP-OUTFIT
RTRUE
?CCL3: EQUAL? PRSA,V?WALK-TO \FALSE
CALL PERFORM,V?FAINT
RTRUE
.FUNCT ROB,WHAT,THIEF,TELL?=0,N,X,TOLD?=0
FIRST? WHAT >X /?PRG2
?PRG2: ZERO? X /TRUE
NEXT? X >N /?BOGUS6
?BOGUS6: ZERO? N \?CND7
ZERO? TOLD? /?CND7
ZERO? TELL? /?CND7
PRINTI " and"
?CND7: SET 'TOLD?,TRUE-VALUE
ZERO? TELL? /?CND14
CALL PRINTT,X
ZERO? N /?PRG23
PRINTC 44
JUMP ?CND14
?PRG23: PRINTI ". "
?CND14: MOVE X,THIEF
SET 'X,N
JUMP ?PRG2
.FUNCT LIGHT-GLOBAL-F,P
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \FALSE
CALL CREEPY?,HERE
ZERO? STACK /?CCL8
CALL ACCESSIBLE?,LAMP
ZERO? STACK /?CCL11
CALL PERFORM,PRSA,LAMP
RTRUE
?CCL11: CALL NOT-HERE,LIGHT-GLOBAL
RSTACK
?CCL8: CALL OUTSIDE?,HERE
ZERO? STACK /?CCL13
PRINTR "You can't reach it from here."
?CCL13: EQUAL? PRSA,V?LAMP-ON \?CCL18
FSET? HERE,ONBIT \?CCL21
CALL ALREADY,LIGHT-GLOBAL,STR?64
RSTACK
?CCL21: FSET HERE,ONBIT
CALL OKAY,LIGHT-GLOBAL,STR?64
RSTACK
?CCL18: EQUAL? PRSA,V?LAMP-OFF \FALSE
FSET? HERE,ONBIT /?CCL26
CALL ALREADY,LIGHT-GLOBAL,STR?65
RSTACK
?CCL26: CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,PLAYER >P
ZERO? P /?CCL28
PRINTD P
PRINTR " says, ""Please don't leave us in the dark."""
?CCL28: FCLEAR HERE,ONBIT
CALL OKAY,LIGHT-GLOBAL,STR?65
RSTACK
.FUNCT HAUNTING-F
EQUAL? PRSA,V?PLAY,V?LAMP-ON \FALSE
CALL PERFORM,PRSA,COMPUTER
RTRUE
.FUNCT KEYHOLE-F,P,RM
CALL REMOTE-VERB?
ZERO? STACK /?CCL3
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \FALSE
?CCL3: CALL ADJ-USED?,FALSE-VALUE
ZERO? STACK /?CCL7
CALL ZMEMQ,HERE,CHAR-ROOM-TABLE
ZERO? STACK /?CCL10
GETPT HERE,P?OUT
GETB STACK,REXIT >RM
JUMP ?CND1
?CCL10: EQUAL? HERE,CORR-2 /?PRG15
EQUAL? HERE,WEST-HALL,GALLERY,EAST-HALL \?CCL12
?PRG15: PRINT YOU-DIDNT-SAY-W
PRINTI "hose "
PRINTD KEYHOLE
PRINTR "!]"
?CCL12: CALL NOT-HERE,KEYHOLE
RTRUE
?CCL7: CALL ADJ-USED?
CALL ZMEMQ,STACK,CHAR-POSS-TABLE >P
ZERO? P /?CND1
GET CHAR-ROOM-TABLE,P >RM
EQUAL? HERE,RM \?CCL21
GETPT HERE,P?OUT
GETB STACK,REXIT >RM
?CND1: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CCL25
EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE,V?EXAMINE \FALSE
?CCL25: EQUAL? JACK-ROOM,HERE,RM \?CCL30
EQUAL? VARIATION,LORD-C \?CCL30
PRINTI "You see a microphone with its wires leading toward the "
PRINTD CREST
PRINTR "."
?CCL21: GETPT RM,P?OUT
GETB STACK,REXIT
EQUAL? HERE,STACK /?CND1
CALL NOT-HERE,KEYHOLE
RTRUE
?CCL30: CALL ROOM-PEEK,RM,TRUE-VALUE
RTRUE
.FUNCT HANDS-F,P,A
CALL FIND-BODY,HANDS >P
ZERO? P /TRUE
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?KISS \?CCL7
FSET? P,FEMALE \?CCL10
ZERO? GENDER-KNOWN /?CCL10
FSET? PLAYER,FEMALE /?CCL10
CALL PERFORM,V?HELLO,P
RTRUE
?CCL10: CALL PERFORM,V?KISS,P
RTRUE
?CCL7: EQUAL? PRSA,V?TAKE,V?SHAKE \FALSE
EQUAL? PRSO,HANDS \FALSE
ZERO? PRSI /?CND18
SET 'P,PRSI
?CND18: CALL PERFORM,V?HELLO,P
RTRUE
.FUNCT HEAD-F,P,P2
CALL FIND-BODY,HEAD >P
ZERO? P /TRUE
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?NOD \?CCL7
CALL PERFORM,V?YES
RTRUE
?CCL7: EQUAL? PRSA,V?SHAKE \FALSE
CALL PERFORM,V?NO
RTRUE
.FUNCT EYE-F,P,P2
CALL FIND-BODY,EYE >P
ZERO? P /TRUE
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?OPEN \?CCL7
SET 'WINNER,PLAYER
CALL PERFORM,V?ALARM,P
RTRUE
?CCL7: EQUAL? PRSA,V?CLOSE \?CCL9
SET 'WINNER,P
CALL PERFORM,V?FAINT
RTRUE
?CCL9: EQUAL? PRSA,V?LOOK-INSIDE,V?FIND,V?EXAMINE \FALSE
EQUAL? P,PLAYER \?CCL14
FSET? HERE,WORNBIT /?CCL14
CALL NOT-HERE,MIRROR-GLOBAL
RSTACK
?CCL14: EQUAL? GHOST-NEW,P \?CCL18
CALL PERFORM,PRSA,GHOST-NEW
RTRUE
?CCL18: FSET? LENS,SEENBIT /?PRG37
FSET? P,MUNGBIT \?CCL24
CALL HE-SHE-IT,P,TRUE-VALUE
PRINTR " has closed eyes."
?CCL24: GETP P,P?CHARACTER
EQUAL? VARIATION,STACK \?CCL28
CALL HE-SHE-IT,P,TRUE-VALUE
PRINTR " turns away from you."
?CCL28: LESS? BED-TIME,PRESENT-TIME \?PRG35
CALL HE-SHE-IT,P,TRUE-VALUE,STR?84
PRINTR " sleepy."
?PRG35: CALL HE-SHE-IT,P,TRUE-VALUE,STR?218
PRINTR " at you."
?PRG37: CALL HE-SHE-IT,P,TRUE-VALUE,STR?1
EQUAL? P,DEALER \?PRG43
EQUAL? VARIATION,PAINTER-C \?PRG45
?PRG43: PRINTI " not"
?PRG45: PRINTI " wearing a "
PRINTD LENS
PRINTR "."
.FUNCT OTHER-OUTFIT-F,P,P2
CALL FIND-BODY,OTHER-OUTFIT >P
ZERO? P /TRUE
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?LOOK-INSIDE,V?FIND,V?EXAMINE \?CCL7
EQUAL? GHOST-NEW,P \FALSE
CALL PERFORM,PRSA,GHOST-NEW
RTRUE
?CCL7: EQUAL? PRSA,V?TAKE-OFF,V?REMOVE,V?DISEMBARK \FALSE
CALL YOU-SHOULDNT
RTRUE
.FUNCT FIND-BODY,OBJ,A,P
CALL ADJ-USED? >A
ZERO? A \?CCL3
PRINT I-ASSUME
PRINTC 32
EQUAL? PRSA,V?SEARCH-FOR,V?FIND,V?CLOSE /?CTR7
EQUAL? PRSA,V?SLAP /?PRD12
EQUAL? PRSA,V?MUNG,V?KILL,V?ATTACK \?CCL8
?PRD12: ZERO? NOW-PRSI /?CCL8
?CTR7: SET 'P,PLAYER
PRINTI "your"
JUMP ?CND6
?CCL8: EQUAL? PRSA,V?SHAKE \?PRD20
ZERO? PRSI /?PRD20
SET 'P,PRSI
FSET? P,PERSONBIT /?PRG25
?PRD20: CALL QCONTEXT-GOOD? >P
ZERO? P \?PRG25
CALL FIND-FLAG-HERE,PERSONBIT,PLAYER >P
ZERO? P /?CCL18
?PRG25: PRINTD P
PRINTI "'s"
JUMP ?CND6
?CCL18: SET 'P,PLAYER
PRINTI "your"
?CND6: GETP P,P?CHARACTER
ADD 1,STACK
GET CHAR-POSS-TABLE,STACK
PUT P-ADJW,NOW-PRSI,STACK
PRINTC 32
GET P-NAMW,NOW-PRSI >A
ZERO? A /?PRG34
PRINTB A
JUMP ?PRG36
?PRG34: PRINTD OBJ
?PRG36: PRINTI ".]"
CRLF
JUMP ?CND1
?CCL3: CALL ZMEMQ,A,CHAR-POSS-TABLE >P
ZERO? P /?CCL39
SUB P,1
GET CHARACTER-TABLE,STACK >P
JUMP ?CND1
?CCL39: EQUAL? A,W?HER \?CCL41
SET 'P,P-HER-OBJECT
JUMP ?CND1
?CCL41: EQUAL? A,W?HIS \?CND1
SET 'P,P-HIM-OBJECT
?CND1: ZERO? P \?CND43
CALL DONT-UNDERSTAND
RFALSE
?CND43: CALL THIS-IS-IT,P
CALL META-LOC,P
EQUAL? STACK,HERE /?CCL47
CALL NOT-HERE,P
RFALSE
?CCL47: CALL DIVESTMENT?,OBJ
ZERO? STACK /?CCL49
CALL HAR-HAR
RFALSE
?CCL49: RETURN P
.FUNCT PASSAGE-F,RM
CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT >RM
EQUAL? PRSA,V?WALK-TO,V?TAKE \?CCL3
CALL PERFORM,V?THROUGH,PRSO
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
ZERO? RM /?CCL5
CALL DO-INSTEAD-OF,RM,PASSAGE
RTRUE
?CCL5: FSET? HERE,SECRETBIT \?CCL9
CALL DO-INSTEAD-OF,HERE,PASSAGE
RTRUE
?CCL9: CALL REMOTE-VERB?
ZERO? STACK \FALSE
ZERO? RM /?CCL14
CALL DOOR-ROOM,HERE,RM >RM
ZERO? RM /?CCL14
FSET? RM,SEENBIT \?CCL14
CALL DO-INSTEAD-OF,RM,PASSAGE
RTRUE
?CCL14: CALL GENERIC-CLOSET,0 >RM
ZERO? RM /?CCL19
CALL DO-INSTEAD-OF,RM,PASSAGE
RTRUE
?CCL19: CALL NOT-HERE,PASSAGE
RSTACK
.FUNCT CORPSE-F
EQUAL? PRSA,V?FIND \FALSE
CALL WHO-KNOWS?,CORPSE
RSTACK
.FUNCT UNDRESSED-F
CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? PRSA,V?TAKE /FALSE
EQUAL? PRSA,V?LOOK-ON /?CTR6
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?SEARCH-FOR /?CTR6
EQUAL? PRSA,V?SEARCH,V?CLOSE,V?OPEN \?CCL7
?CTR6: CALL GLOBAL-IN?,DRESSING-TABLE-LG,HERE
ZERO? STACK /?CCL13
CALL DO-INSTEAD-OF,DRESSING-TABLE-LG,UNDRESSED
RTRUE
?CCL13: CALL NOT-HERE,DRESSING-TABLE-LG
RSTACK
?CCL7: CALL DONT-UNDERSTAND
RSTACK
.FUNCT ARTIFACT-F
ZERO? TREASURE-FOUND /?CCL3
CALL DO-INSTEAD-OF,TREASURE,ARTIFACT
RTRUE
?CCL3: EQUAL? PRSA,V?TAKE-TO,V?SSHOW,V?SHOW /?CCL5
CALL REMOTE-VERB?
ZERO? STACK \FALSE
?CCL5: CALL NOT-FOUND,ARTIFACT
RTRUE
.FUNCT TIMES-UP
PRINTI "At first light, the police arrive and take over the investigation."
CRLF
CALL FINISH
RSTACK
.ENDI

906
global.zil Normal file
View file

@ -0,0 +1,906 @@
"GLOBALS for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<OBJECT GLOBAL-OBJECTS
(DESC "GO")
;(FDESC 0)
(TEXT 0)
(FLAGS CONTBIT DOORBIT FEMALE
INVISIBLE LIGHTBIT LOCKED MUNGBIT
NARTICLEBIT NDESCBIT ONBIT OPENBIT
;PERSONBIT READBIT RMUNGBIT
SEARCHBIT SECRETBIT SEENBIT SURFACEBIT
TAKEBIT TOOLBIT TOUCHBIT TRANSBIT TRYTAKEBIT
VEHBIT VOWELBIT WEAPONBIT WEARBIT WORNBIT)>
<OBJECT LOCAL-GLOBALS
(IN GLOBAL-OBJECTS)
(DESC "stone" ;"LG")
(SYNONYM STONE ;L.G)
(FLAGS NARTICLEBIT)
(ACTION LOCAL-GLOBALS-F)>
<ROUTINE LOCAL-GLOBALS-F ()
<COND (<REMOTE-VERB?>
<RFALSE>)
(<OR <CREEPY? ,HERE> <OUTSIDE? ,HERE>>
<RANDOM-PSEUDO>)
(T <NOT-HERE ,LOCAL-GLOBALS>)>>
<OBJECT STAIRS
(IN LOCAL-GLOBALS)
(DESC "stairs")
(SYNONYM STAIRS STAIRW STAIR)
(GENERIC GENERIC-STAIRS)
(FLAGS SEENBIT)
(ACTION UPSTAIRS-DOWNSTAIRS)>
<GLOBAL WING-STAIRS <PLTABLE KITCHEN GREAT-HALL GALLERY>>
<GLOBAL TOWER-STAIRS <PLTABLE BASEMENT OLD-GREAT-HALL CORR-2 CORR-3>>
<ROUTINE UPSTAIRS-DOWNSTAIRS ("AUX" N TBL (HR <LOC ,WINNER>))
<COND (<VERB? BOARD CLIMB-DOWN CLIMB-UP THROUGH WALK WALK-TO>
<COND (<FSET? .HR ,SECRETBIT>
<RFALSE>)
(<FSET? .HR ,WEARBIT> ;"WING-ROOMS"
<SET TBL ,WING-STAIRS>)
(T <SET TBL ,TOWER-STAIRS>)>
<COND (<OR <VERB? BOARD CLIMB-UP>
;<NOUN-USED? ,W?UPSTAIRS>>
<COND (<T? <GETPT .HR ,P?UP>>
<DO-WALK ,P?UP>
<RTRUE>)
(<AND <SET N <GETP .HR ,P?CHARACTER>>
<NOT <L? <GET .TBL 0> <SET N <+ .N 1>>>>>
<SET N <GET .TBL .N>>
;<TELL-I-ASSUME .N " Walk to">
<PERFORM ,V?WALK-TO .N>
<RTRUE>)>)
(T ;<NOUN-USED? ,W?DOWNSTAIRS>
<COND (<T? <GETPT .HR ,P?DOWN>>
<DO-WALK ,P?DOWN>
<RTRUE>)
(<AND <SET N <GETP .HR ,P?CHARACTER>>
<L? 0 <SET N <- .N 1>>>>
<SET N <GET .TBL .N>>
;<TELL-I-ASSUME .N " Walk to">
<PERFORM ,V?WALK-TO .N>
<RTRUE>)>)>)>>
<ROUTINE DO-INSTEAD-OF (OBJ1 OBJ2)
<COND (<EQUAL? ,PRSI .OBJ2> <PERFORM ,PRSA ,PRSO .OBJ1> <RTRUE>)
(<EQUAL? ,PRSO .OBJ2> <PERFORM ,PRSA .OBJ1 ,PRSI> <RTRUE>)
;(T <PERFORM ,PRSA ,PRSO ,PRSI> <RTRUE>)
(T <V-FOO>)>>
<OBJECT TURN
(IN GLOBAL-OBJECTS)
(ADJECTIVE INT.NUM ;NUMBER FULL)
(SYNONYM TURN TURNS MINUTE)
(DESC "minute")
(ACTION TURN-F)>
<ROUTINE TURN-F ()
<COND (<VERB? USE>
<PERFORM ,V?WAIT-FOR ,PRSO>
<RTRUE>)>>
<OBJECT IT
(IN GLOBAL-OBJECTS)
(SYNONYM IT THIS ;"FUCKER SUCKER")
(DESC "it")
(FLAGS VOWELBIT NARTICLEBIT)
(ACTION IT-F)>
<ROUTINE IT-F ()
<COND (<OR <AND <IOBJ? IT>
;<FSET? ,PRSO ,PERSONBIT>
<VERB? ASK-ABOUT ASK-FOR SEARCH-FOR TELL-ABOUT>>
<AND <DOBJ? IT>
<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR FIND ;WHAT>>>
<TELL "\"I'm not sure what you're talking about.\"" CR>)>>
<OBJECT FLOOR
(IN GLOBAL-OBJECTS)
(DESC "floor")
(ADJECTIVE DRAWING ;ROOM GREAT ;HALL)
(SYNONYM FLOOR ;AREA GROUND CARPET RUG)
(FLAGS SEENBIT SURFACEBIT OPENBIT)
(ACTION FLOOR-F)>
<ROUTINE FLOOR-F ("AUX" (OBJ <>) N)
<COND ;(<REMOTE-VERB?> <RFALSE>)
(<VERB? CLIMB-ON>
<ALREADY ,WINNER "on it">)
(<AND <VERB? PUT THROW-AT>
<NOT <DOBJ? MOONMIST>>
<IOBJ? FLOOR>>
<MOVE ,PRSO ,HERE>
<TELL "Okay." CR>
<RTRUE>)
(<VERB? EXAMINE LOOK-ON SEARCH SEARCH-FOR>
<COND (<EQUAL? ,HERE ,DRAWING-ROOM>
<TELL
"The carpet ends flush with the archway to the " 'GREAT-HALL ",
where the footsteps of visitors have begun to wear it thin.
It's a magnificent red Brussels carpet with deep pile and a medieval
design." CR>)
(<EQUAL? ,HERE ,GREAT-HALL>
<GREAT-HALL-IS-FLOORED>)>
<COND (<AND <EQUAL? ,HERE ,GARDEN>
<EQUAL? ,VARIATION ,LORD-C>
<FSET? ,CLUE-4 ,SECRETBIT>>
<SET OBJ ,CLUE-4>)
(<AND <EQUAL? ,HERE ,DRAWING-ROOM>
<EQUAL? ,VARIATION ,LORD-C ,FRIEND-C ;,OFFICER-C>
<NOT <FSET? ,JEWEL ,TOUCHBIT>>>
<SET OBJ ,JEWEL>)
(<AND <EQUAL? ,HERE ,GREAT-HALL>
<EQUAL? ,VARIATION ,DOCTOR-C ;,DEALER-C ,PAINTER-C>
<NOT <EQUAL? ,FOUND-IT-PERM ,LENS ;,LENS-1 ,LENS-2>>>
<SET OBJ ,LENS>)>
<START-SEARCH .OBJ>
<RTRUE>)
(<ADJ-USED? ,W?DRAWING>
<COND (<NOT <==? ,HERE ,DRAWING-ROOM>>
<DO-INSTEAD-OF ,DRAWING-ROOM ,FLOOR>
<RTRUE>)>)
(<ADJ-USED? ,W?GREAT>
<COND (<NOT <==? ,HERE ,GREAT-HALL>>
<DO-INSTEAD-OF ,GREAT-HALL ,FLOOR>
<RTRUE>)>)>>
<ROUTINE START-SEARCH ("OPTIONAL" (OBJ <>))
<TELL
"Nothing suspicious meets your eye after a moment's scrutiny. Do you want
to continue?">
<COND (<NOT <YES?>>
<OKAY>
<RTRUE>)
(T
<COND (T ;<T? .OBJ>
<SETG FOUND-IT .OBJ>)>
<SETG FOUND-LOC ,HERE>
<QUEUE I-FOUND-IT <RANDOM 7>>
<V-WAIT 8 <> T>
<RTRUE>)>>
<GLOBAL FOUND-IT:OBJECT <>>
<GLOBAL FOUND-IT-PERM:OBJECT <>>
<GLOBAL FOUND-LOC:OBJECT <>>
<GLOBAL NOTHING-NEW "You don't find anything new there.|">
<ROUTINE I-FOUND-IT ("OPTIONAL" (GARG <>) "AUX" OBJ)
%<DEBUG-CODE <COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[I-FOUND-IT:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<COND (<NOT <EQUAL? ,FOUND-LOC ,HERE>>
<RFALSE>)
(<EQUAL? ,FOUND-IT ,JEWEL>
<MOVE ,FOUND-IT ,HERE>
<TELL
"Suddenly you notice a glittering speck. Probing for it with your fingers,
you discover a " 'JEWEL "." ;"extract from the strands of carpet pile" CR>)
(<EQUAL? ,FOUND-IT ,LENS>
<COND (<NOT <FSET? ,LENS ,SEENBIT>>
<MOVE ,LENS-2 <LOC ,LENS>>
;<REMOVE ,LENS>)
(<NOT <FSET? ,LENS-2 ,SEENBIT>>
<SETG FOUND-IT ,LENS-2>
<MOVE ,LENS-1 <LOC ,LENS>>
<REMOVE ,LENS>)
(T <RFALSE>)>
<MOVE ,FOUND-IT ,HERE>
<TELL
"Suddenly you find something small, smooth and slippery -- a "
D ,FOUND-IT "! Its transparency, of course, made it practically invisible.">
<COND (<T? ,BUTLER-GHOST-STORY-TOLD>
<TELL
" No wonder you and the ghost had such a hard time finding it!">)>
<CRLF>)
(<ZERO? ,FOUND-IT>
<TELL ,NOTHING-NEW>
<RFATAL>)
(<FSET? ,FOUND-IT ,SECRETBIT>
;<SET OBJ <FIND-FLAG ,HERE ,SECRETBIT>>
<DISCOVER ,FOUND-IT ;.OBJ>
;<RFATAL>)
(T
<TELL
!\Y ,OU-STOP-SEARCHING " when you find" THE ,FOUND-IT ".|">)>
<COND (T ;<NOT <EQUAL? ,FOUND-IT ,MOONMIST ,YOUR-SWITCH>>
;<MOVE ,FOUND-IT ,PLAYER>
<FSET ,FOUND-IT ,TOUCHBIT>)>
<FSET ,FOUND-IT ,SEENBIT>
<COND (<NOT <EQUAL? ,FOUND-IT ,YOUR-SWITCH>>
<FCLEAR ,FOUND-IT ,NDESCBIT>)>
<COND (<EQUAL? ,FOUND-IT ,LENS ;,LENS-1 ,LENS-2>
<SETG FOUND-IT-PERM ,FOUND-IT>)>
<SETG FOUND-IT <>>
<RFATAL>>
<OBJECT DANGER
(IN GLOBAL-OBJECTS)
(DESC "danger")
(SYNONYM DANGER THREAT ATTACK)>
<OBJECT INTNUM
(IN GLOBAL-OBJECTS)
(SYNONYM INT.NUM ;NUMBER)
(DESC "number")>
<OBJECT YOU
(IN GLOBAL-OBJECTS)
(SYNONYM YOU YOURSELF HIMSELF HERSELF)
(DESC "self" ;"himself or herself")
(FLAGS ;NARTICLEBIT)
(ACTION YOU-F)>
<ROUTINE YOU-F ("AUX" X)
<COND (<NOT <==? ,WINNER ,PLAYER>>
<DO-INSTEAD-OF ,WINNER ,YOU>
<RTRUE>)
(<AND <VERB? ASK-ABOUT> <IOBJ? YOU>>
<PERFORM ,V?ASK-ABOUT ,PRSO ,PRSO>
<RTRUE>)
(<AND <VERB? THANKS>
<SET X <QCONTEXT-GOOD?>>>
<PERFORM ,V?THANKS .X>
<RTRUE>)>>
;<OBJECT HINT
(DESC "hint")
(IN GLOBAL-OBJECTS)
(SYNONYM HINT HELP)
(ACTION HINT-F)>
;<ROUTINE HINT-F ()
<COND (<VERB? FIND>
<HELP-TEXT>)
(<VERB? ASK-FOR ASK-CONTEXT-FOR TAKE>
<MORE-SPECIFIC>)>>
;<OBJECT CORRIDOR-GLOBAL
(IN GLOBAL-OBJECTS)
(DESC "corridor")
(SYNONYM CORRIDOR)
(ACTION CORRIDOR-GLOBAL-F)>
;<ROUTINE CORRIDOR-GLOBAL-F ("AUX" RM)
<COND (<VERB? ANALYZE EXAMINE LOOK-INSIDE LOOK-DOWN LOOK-UP>
<COND (<SET RM <NEXT-ROOM ,HERE ,P?OUT>>
<ROOM-PEEK .RM T>)>)>>
<OBJECT WALL
(IN GLOBAL-OBJECTS)
(DESC "wall")
(ADJECTIVE CASTLE TOWER BRICK)
(SYNONYM WALL WALLS BRICK BRICKS)
(FLAGS SEENBIT SURFACEBIT OPENBIT)
(ACTION WALL-F)>
<ROUTINE WALL-F ("AUX" OBJ)
<COND (<AND <EQUAL? ,VARIATION ,FRIEND-C>
<EQUAL? ,HERE ,BASEMENT ,CRYPT>
;<VERB? ;DIG EXAMINE KNOCK MUNG OPEN RUB SEARCH>>
<BRICKS-F>)
(<AND <VERB? OPEN CLOSE>
<T? <SET OBJ <FIND-FLAG-LG ,HERE ,DOORBIT ,SECRETBIT>>>>
<DO-INSTEAD-OF .OBJ ,WALL>
<RTRUE>)
(<VERB? KNOCK>
<COND (<OR <NOT <FSET? ,HERE ,WEARBIT> ;"WING-ROOMS">
<FIND-FLAG-LG ,HERE ,DOORBIT ,SECRETBIT>>
<TELL "You hear a hollow sound." CR>)
(T <TELL
"Knocking on the walls reveals nothing unusual." CR>)>)>>
<OBJECT GLOBAL-HERE
(IN GLOBAL-OBJECTS)
(DESC "here")
(ADJECTIVE THIS)
(SYNONYM HERE AREA ROOM PLACE)
(GENERIC GENERIC-ROOM)
(FLAGS NARTICLEBIT)
(ACTION GLOBAL-HERE-F)>
<ROUTINE GLOBAL-HERE-F ("AUX" OBJ (X <>))
<COND (<VERB? EXAMINE LIE SIT SMELL WALK-TO>
<DO-INSTEAD-OF ,HERE ,GLOBAL-HERE>
<RTRUE>)
(<VERB? PUT PUT-IN ;TIE-TO>
<MORE-SPECIFIC>)
(<VERB? SEARCH SEARCH-FOR>
<COND (<AND <IN? ,MAGAZINE ,HERE>
;<EQUAL? ,VARIATION ,PAINTER-C>
<FSET? ,MAGAZINE ,NDESCBIT>>
<SET X ,MAGAZINE>)
(<AND <IN? ,BRICKS ,HERE>
;<EQUAL? ,VARIATION ,FRIEND-C>
<FSET? ,BRICKS ,NDESCBIT>>
<SET X ,BRICKS>)
;(<AND <EQUAL? ,HERE ,COURTYARD>
<SET X <FIRST? ,FRONT-GATE>>> ;"for CLUE-4"
T)
(<AND <T? ,PRSI>
<==? <META-LOC ,PRSI> ,HERE>>
<SET X ,PRSI>)
(T
<SET OBJ <FIRST? ,HERE>>
<REPEAT ()
<COND (<ZERO? .OBJ>
<RETURN>)
(<FSET? .OBJ ,SECRETBIT>
<SET X .OBJ>
<RETURN>)
(<AND <NOT <FSET? .OBJ ,PERSONBIT>>
<OR <FSET? .OBJ ,CONTBIT>
<FSET? .OBJ ,SURFACEBIT>>
<OR <SET X <FIND-FLAG .OBJ ,SECRETBIT>>
<SET X <FIND-FLAG .OBJ ,RMUNGBIT>>>>
<FSET .OBJ ,OPENBIT>
<RETURN>)
(T <SET OBJ <NEXT? .OBJ>>)>>)>
<START-SEARCH .X>
<RTRUE>)>>
<OBJECT CHAIR
(IN LOCAL-GLOBALS)
(DESC "chair")
(ADJECTIVE WING)
(SYNONYM CHAIR SEAT CHAIRS BENCH)
(FLAGS SEENBIT SURFACEBIT ;VEHBIT)
(ACTION CHAIR-F)>
<ROUTINE CHAIR-F () ;("OPT" (ARG 0))
<COND ;(<T? .ARG> <RFALSE>)
(<VERB? SIT ;LOOK-UNDER CLIMB-ON ;CLIMB-DOWN BOARD>
<WONT-HELP>
;<SETG PLAYER-SEATED ,CHAIR>
;<TELL "Okay." ;"That's just a waste of time." CR>)
(T <RANDOM-PSEUDO>)>>
<OBJECT TABLE-RANDOM
(IN LOCAL-GLOBALS)
(DESC "table")
(ADJECTIVE BILLIARD CARD)
(SYNONYM TABLE DESK)
(FLAGS SEENBIT)
(ACTION RANDOM-PSEUDO)>
[
<OBJECT TWEED-OUTFIT
(IN PLAYER)
(DESC "tweed outfit")
(ADJECTIVE MY TWEED WOOLEN WOOL)
(SYNONYM CLOTHES OUTFIT TWEEDS SUIT ;" SWEATER CLOTHING")
(GENERIC GENERIC-CLOTHES)
(FLAGS WORNBIT WEARBIT TAKEBIT MUNGBIT SEENBIT)
(SIZE 20)
(ACTION CLOTHES-FCN)>
<OBJECT SLEEP-OUTFIT
(IN LUGGAGE)
(DESC "nightshirt" ;"set of pajamas, sleeping outfit")
(ADJECTIVE MY NIGHT F.C F.C ;" FINE INDIAN SILK SLEEPING")
(SYNONYM CLOTHES OUTFIT NIGHTS SHIRT ;" PAJAMA NIGHTG")
(GENERIC GENERIC-CLOTHES)
(FLAGS WEARBIT TAKEBIT)
(SIZE 20)
(ACTION CLOTHES-FCN)>
<OBJECT EXERCISE-OUTFIT
(IN LUGGAGE)
(DESC "exercise outfit")
(ADJECTIVE MY EXERCISE F.C F.C ;"COTTON COMFORT RUNNING")
(SYNONYM CLOTHES OUTFIT SWEATS SUIT ;"SHOES CLOTHING")
(GENERIC GENERIC-CLOTHES)
(FLAGS WEARBIT TAKEBIT VOWELBIT)
(SIZE 20)
(ACTION CLOTHES-FCN)>
<OBJECT DINNER-OUTFIT
(IN LUGGAGE)
(DESC "dinner outfit")
(ADJECTIVE MY DINNER FORMAL F.C F.C ;"FRILLY PERFECT")
(SYNONYM CLOTHES OUTFIT ;"ENSEMBLE CLOTHING" DRESS GOWN)
(GENERIC GENERIC-CLOTHES)
(FLAGS WEARBIT TAKEBIT)
(SIZE 20)
(ACTION CLOTHES-FCN)>
<ROUTINE CLOTHES-FCN ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<DOBJ? TWEED-OUTFIT>
<TELL
"These are sensible clothes for this clammy climate: your new tweed ">
<COND (<ZERO? ,GENDER-KNOWN>
<TELL "suit">)
(T
<TELL "blazer and ">
<COND (<FSET? ,PLAYER ,FEMALE> <TELL "skirt">)
(T <TELL "pants">)>)>
<TELL ", with woolen sweater, should keep you warm enough.">)
(<DOBJ? EXERCISE-OUTFIT>
<TELL
"This is your favorite outfit for workouts: a cotton sweatsuit with a sporty ">
<COND (<PRINT-COLOR> <TELL !\ >)>
<TELL "stripe." ;", and comfortable running shoes.">)
(<DOBJ? DINNER-OUTFIT>
<COND (<ZERO? ,GENDER-KNOWN>
<TELL
"You have a decent formal ensemble, with frills in the right places">)
(T
<TELL "Your new ">
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL "floor-length dinner gown">)
(T <TELL "tuxedo">)>
<TELL " is particularly good-looking">)>
<TELL " and a perfect fit">
<COND (<NOT <0? ,VARIATION>>
<TELL ", ">
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL "not to mention that it's all">)
(T <TELL "with shirt and accessories">)>
<TELL " in ">
<PRINT-COLOR>)>
<TELL ".">)
(T ;<DOBJ? SLEEP-OUTFIT>
<TELL "Your new ">
<COND (<PRINT-COLOR> <TELL !\ >)>
<TELL D ,SLEEP-OUTFIT ;"nightshirt" " is ">
<COND (<ZERO? ,GENDER-KNOWN>
<TELL
"nothing to write home about, but it is so-o-o comfy for sleeping.">)
(<FSET? ,PLAYER ,FEMALE>
<TELL "made of fine Chinese silk.">)
(T <TELL "decorated with a Union Jack flag.">)>)>
<CRLF>)
(<VERB? DISEMBARK ;TAKE> ;"GET OUT OF MY CLOTHES"
<PERFORM ,V?TAKE-OFF ,PRSO>
<RTRUE>)
(<VERB? EMPTY> ;"UNPACK MY CLOTHES"
<COND (<EQUAL? <META-LOC ,LUGGAGE> ,HERE>
<PERFORM ,V?EMPTY ,LUGGAGE>
<RTRUE>)
(T <NOT-HERE ,LUGGAGE>)>)>>
]
<OBJECT SLEEP-GLOBAL
(IN GLOBAL-OBJECTS)
;(ADJECTIVE ;SOME MY)
(SYNONYM SLEEP)
(DESC "sleep")
(FLAGS NARTICLEBIT)
(ACTION SLEEP-GLOBAL-F)>
<ROUTINE SLEEP-GLOBAL-F ()
<COND (<VERB? DRESS ;-FOR>
<COND (<EQUAL? ,HERE <META-LOC ,SLEEP-OUTFIT>>
<PERFORM ,V?WEAR ,SLEEP-OUTFIT>
<RTRUE>)>)
(<VERB? WALK-TO>
<PERFORM ,V?FAINT>
<RTRUE>)>>
<GLOBAL NOW-WEARING:OBJECT TWEED-OUTFIT>
<ROUTINE ROB (WHAT THIEF "OPTIONAL" (TELL? <>) "AUX" N X (TOLD? <>))
<SET X <FIRST? .WHAT>>
<REPEAT ()
<COND (<NOT .X> <RETURN>)>
<SET N <NEXT? .X>>
;<COND (<NOT <FSET? .X ,TAKEBIT>>
<SET X .N>
<AGAIN>)>
<COND (<AND <NOT .N> .TOLD? .TELL?>
<TELL " and">)>
<SET TOLD? T>
<COND (.TELL?
<TELL THE .X>
<COND (.N <TELL !\,>)
(T <TELL ". ">)>)>
<MOVE .X .THIEF>
;<FCLEAR .X ,TAKEBIT>
<SET X .N>>>
<OBJECT LIGHT-GLOBAL
(IN GLOBAL-OBJECTS)
(DESC "light")
(ADJECTIVE FLOOD MOON)
(SYNONYM LIGHT LIGHTS LAMP MOONLIGHT)
(FLAGS SEENBIT TRYTAKEBIT)
(ACTION LIGHT-GLOBAL-F)>
<ROUTINE LIGHT-GLOBAL-F ("AUX" P)
<COND (<REMOTE-VERB?> <RFALSE>)
(<VERB? LAMP-ON LAMP-OFF>
<COND (<CREEPY? ,HERE>
<COND (<ACCESSIBLE? ,LAMP>
<PERFORM ,PRSA ,LAMP>
<RTRUE>)
(T <NOT-HERE ,LIGHT-GLOBAL>)>)
(<AND <OUTSIDE? ,HERE> ;<NOT <EQUAL? ,HERE ,CAR>>>
<TELL "You can't reach it from here." CR>)
(<VERB? LAMP-ON>
<COND (<FSET? ,HERE ,ONBIT>
<ALREADY ,LIGHT-GLOBAL "on">)
(T
<FSET ,HERE ,ONBIT>
<OKAY ,LIGHT-GLOBAL "on">)>)
(<VERB? LAMP-OFF>
<COND (<NOT <FSET? ,HERE ,ONBIT>>
<ALREADY ,LIGHT-GLOBAL "off">)
(<SET P <FIND-FLAG-HERE-NOT ,PERSONBIT ,MUNGBIT ,PLAYER>>
<TELL
D .P " says, \"Please don't leave us in the dark.\"" CR>)
(T
<FCLEAR ,HERE ,ONBIT>
<OKAY ,LIGHT-GLOBAL "off">)>)>)>>
<OBJECT HAUNTING
(DESC "haunting")
(IN OFFICE)
(SYNONYM MYSTERY HAUNTING ATTEMPTS CASE)
(FLAGS NDESCBIT SEENBIT)
(ACTION HAUNTING-F)>
<ROUTINE HAUNTING-F ()
<COND (<VERB? LAMP-ON PLAY>
<PERFORM ,PRSA ,COMPUTER>
<RTRUE>)>>
<OBJECT KEYHOLE
(IN GLOBAL-OBJECTS)
(DESC "keyhole")
(ADJECTIVE MY TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S)
(SYNONYM KEYHOLE HOLE)
;(FLAGS NARTICLEBIT ;PLURALBIT)
(ACTION KEYHOLE-F)>
<ROUTINE KEYHOLE-F ("AUX" P RM)
<COND (<AND <REMOTE-VERB?>
<NOT <VERB? SEARCH SEARCH-FOR>>>
<RFALSE>)
(<ADJ-USED? <>>
;<ZERO? ,P-ADJN>
<COND (<ZMEMQ ,HERE ,CHAR-ROOM-TABLE>
<SET RM <GET-REXIT-ROOM <GETPT ,HERE ,P?OUT>>>)
(<OR <EQUAL? ,HERE ,CORR-2>
<EQUAL? ,HERE ,WEST-HALL ,GALLERY ,EAST-HALL>>
<TELL ,YOU-DIDNT-SAY-W "hose " 'KEYHOLE "!]" CR>
<RTRUE>)
(T <NOT-HERE ,KEYHOLE> <RTRUE>)>)
(<OR <SET P <ZMEMQ <ADJ-USED?> ;,P-ADJN ,CHAR-POSS-TABLE>>
;<AND <==? <ADJ-USED?> ,OTHER-POSS>
<SET P <GETP ,OTHER-CHAR ,P?CHARACTER>>>>
<SET RM <GET ,CHAR-ROOM-TABLE .P>>
<COND (<EQUAL? ,HERE .RM>
<SET RM <GET-REXIT-ROOM <GETPT ,HERE ,P?OUT>>>)
(<NOT <EQUAL? ,HERE <GET-REXIT-ROOM <GETPT .RM ,P?OUT>>>>
<NOT-HERE ,KEYHOLE>
<RTRUE>)>)>
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-THROUGH SEARCH SEARCH-FOR>
<COND (<AND <EQUAL? ,JACK-ROOM ,HERE .RM>
<EQUAL? ,VARIATION ,LORD-C>>
<TELL
"You see a microphone with its wires leading toward the " 'CREST "." CR>
;<TELL
"Total darkness greets your eye. Something is obstructing your view
through the " 'KEYHOLE "." CR>)
(T <ROOM-PEEK .RM T>)>
<RTRUE>)>>
[
<OBJECT HANDS
(IN GLOBAL-OBJECTS)
(DESC "hand" ;"your hands")
(ADJECTIVE TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S MY
;"ordering same as HEAD & EYE for UN/DRESS-GHOST"
;" B\'S DEE\'S")
(SYNONYM HANDS HAND)
(FLAGS TRYTAKEBIT ;NARTICLEBIT ;PLURALBIT SEENBIT)
(ACTION HANDS-F)>
<ROUTINE HANDS-F ("AUX" P A)
<COND (<NOT <SET P <FIND-BODY ,HANDS>>>
<RTRUE>)
(<REMOTE-VERB?>
<RFALSE>)>
<COND ;(<EQUAL? .P ,PLAYER>
<COND (<VERB? BRUSH>
<RFALSE>)>)
(<VERB? KISS>
<COND (<AND <FSET? .P ,FEMALE>
<T? ,GENDER-KNOWN>
<NOT <FSET? ,PLAYER ,FEMALE>>>
<PERFORM ,V?HELLO .P>)
(T
<PERFORM ,V?KISS .P>)>
<RTRUE>)
(<AND <VERB? SHAKE TAKE> <DOBJ? HANDS>>
<COND (<T? ,PRSI> ;<ZERO? .P>
<SET P ,PRSI>)>
;<COND (<ZERO? .P>
<COND ;(<ADJ-USED? ,W?HER>
<SET P <FIND-FLAG-HERE-BOTH ,PERSONBIT ,FEMALE ,WINNER>>
<COND (<ZERO? .P>
<TELL "There's no woman here!" CR>
<RTRUE>)>)
;(<ADJ-USED? ,W?HIS>
<SET P <FIND-FLAG-HERE-NOT ,PERSONBIT ,FEMALE ,WINNER>>
<COND (<ZERO? .P>
<TELL "There's no man here!" CR>
<RTRUE>)>)
(T
<SET P <FIND-FLAG-HERE ,PERSONBIT ,WINNER>>
<COND (<ZERO? .P>
<TELL "There's no one here!" CR>
<RTRUE>)>)>)>
<PERFORM ,V?HELLO .P>
<RTRUE>)>>
<OBJECT HEAD
(IN GLOBAL-OBJECTS)
(DESC "head" ;"your head")
(ADJECTIVE TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S B\'S
;" MY DEE\'S")
(SYNONYM HEAD ;FACE)
(FLAGS ;NARTICLEBIT SEENBIT)
(ACTION HEAD-F)>
<ROUTINE HEAD-F ("AUX" P P2)
<COND (<NOT <SET P <FIND-BODY ,HEAD>>>
<RTRUE>)
(<REMOTE-VERB?>
<RFALSE>)
;(<AND <EQUAL? .P ,PLAYER>
<NOT <FSET? ,HERE ,WORNBIT>>>
<NOT-HERE ,MIRROR-GLOBAL ;,HEAD>)
(<VERB? NOD>
<PERFORM ,V?YES>
<RTRUE>)
(<VERB? SHAKE>
<PERFORM ,V?NO>
<RTRUE>)>>
<OBJECT EYE
(IN GLOBAL-OBJECTS)
(DESC "eye")
(ADJECTIVE TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S B\'S
;" MY DEE\'S")
(SYNONYM EYE EYES)
(FLAGS VOWELBIT ;PLURALBIT SEENBIT)
(ACTION EYE-F)>
<ROUTINE EYE-F ("AUX" P P2)
<COND (<NOT <SET P <FIND-BODY ,EYE>>>
<RTRUE>)
(<REMOTE-VERB?>
<RFALSE>)
;(<AND <EQUAL? .P ,PLAYER>
<NOT <FSET? ,HERE ,WORNBIT>>>
<COND (<VERB? OPEN>
<TELL "Your eyes are wide open." CR>)
(T <NOT-HERE ,MIRROR-GLOBAL ;,EYE>)>)
(<VERB? OPEN>
<SETG WINNER ,PLAYER>
<PERFORM ,V?ALARM .P>
<RTRUE>)
(<VERB? CLOSE>
<SETG WINNER .P>
<PERFORM ,V?FAINT>
<RTRUE>)
(<VERB? EXAMINE FIND LOOK-INSIDE>
<COND (<AND <EQUAL? .P ,PLAYER>
<NOT <FSET? ,HERE ,WORNBIT>>>
<NOT-HERE ,MIRROR-GLOBAL ;,EYE>)
(<==? ,GHOST-NEW .P>
<PERFORM ,PRSA ,GHOST-NEW>
<RTRUE>)
(T
<COND (<NOT <FSET? ,LENS ;-1 ,SEENBIT>>
<COND (<FSET? .P ,MUNGBIT>
<TELL CHE .P " has closed eyes." CR>)
(<==? ,VARIATION <GETP .P ,P?CHARACTER>>
<TELL CHE .P " turns away from you." CR>)
(<L? ,BED-TIME ,PRESENT-TIME>
<TELL CHE .P look " sleepy." CR>)
(T
<TELL CHE .P smile " at you." CR>)>)
(T
<TELL CHE .P is>
<COND (<OR <NOT <EQUAL? .P ,DEALER>>
<EQUAL? ,VARIATION ,PAINTER-C>>
<TELL " not">)>
<TELL " wearing a " D ,LENS "." CR>)>)
;(T
<TELL
"Despite some initial demurrals and questioning glances, ">
<COND (<ZERO? <SET P2 <FIND-FLAG-HERE ,PERSONBIT ,PLAYER .P>>>
<TELL D .P>)
(T <TELL "everyone">)>
<TELL " allows your examination">
<COND (<OR <EQUAL? ,VARIATION ,PAINTER-C>
<NOT <IN? ,DEALER ,HERE>>>
<TELL ". You discover that">
<COND (<ZERO? .P2>
<TELL HE .P " is not">)
(T <TELL " no one is">)>
<TELL " wearing a " D ,LENS "." CR>)
(T <TELL
" -- except " 'DEALER ", who is wearing " D ,LENS "es
but confesses that he hates even to admit that he needs them." CR>)>)>)>>
<OBJECT OTHER-OUTFIT
(IN GLOBAL-OBJECTS)
(DESC "clothes")
(ADJECTIVE TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S B\'S
;" MY DEE\'S")
(SYNONYM CLOTHES OUTFIT DRESS GOWN ; SUIT)
;(GENERIC GENERIC-CLOTHES)
(FLAGS SEENBIT)
;(SIZE 20)
(ACTION OTHER-OUTFIT-F)>
<ROUTINE OTHER-OUTFIT-F ("AUX" P P2)
<COND (<NOT <SET P <FIND-BODY ,OTHER-OUTFIT>>>
<RTRUE>)
(<REMOTE-VERB?>
<RFALSE>)
(<VERB? EXAMINE FIND LOOK-INSIDE>
<COND (<==? ,GHOST-NEW .P>
<PERFORM ,PRSA ,GHOST-NEW>
<RTRUE>)>)
(<VERB? DISEMBARK REMOVE TAKE-OFF>
<YOU-SHOULDNT>
<RTRUE>)>>
<ROUTINE FIND-BODY (OBJ "AUX" A P)
<SET A <ADJ-USED?> ;,P-ADJN>
<COND (<ZERO? .A>
<TELL ,I-ASSUME !\ >
<COND (<OR <VERB? CLOSE FIND SEARCH-FOR>
<AND <VERB? ATTACK KILL MUNG SLAP>
<T? ,NOW-PRSI>>>
<SET P ,PLAYER>
<TELL "your">)
(<OR <AND <VERB? SHAKE> ;"SHAKE HANDS WITH JACK"
<T? ,PRSI>
<FSET? <SET P ,PRSI> ,PERSONBIT>>
<SET P <QCONTEXT-GOOD?>>
<SET P <FIND-FLAG-HERE ,PERSONBIT ,PLAYER>>>
<TELL D .P "'s">)
(T
<SET P ,PLAYER>
<TELL "your">)>
<PUT ,P-ADJW ,NOW-PRSI
<GET ,CHAR-POSS-TABLE <+ 1 <GETP .P ,P?CHARACTER>>>>
<TELL !\ >
<COND (<SET A <GET ,P-NAMW ,NOW-PRSI>>
<PRINTB .A>)
(T <TELL D .OBJ>)>
<TELL ".]" CR>)
(<SET P <ZMEMQ .A ,CHAR-POSS-TABLE>>
<SET P <GET ,CHARACTER-TABLE <- .P 1>>>)
;(<==? .A ,OTHER-POSS>
<SET P ,OTHER-CHAR>)
(<==? .A ,W?HER>
<SET P ,P-HER-OBJECT>)
(<==? .A ,W?HIS>
<SET P ,P-HIM-OBJECT>)>
<COND (<ZERO? .P>
<DONT-UNDERSTAND>
<RFALSE>)>
<THIS-IS-IT .P>
<COND (<NOT <==? <META-LOC .P> ,HERE>>
<NOT-HERE .P>
<RFALSE>)
(<DIVESTMENT? .OBJ>
<HAR-HAR>
<RFALSE>)
(T .P)>>
]
<OBJECT PASSAGE
(DESC "secret passage")
(IN GLOBAL-OBJECTS)
(ADJECTIVE SECRET HIDING HIDDEN)
(SYNONYM PASSAGE ROOM PLACE PLACES)
(GENERIC GENERIC-ROOM)
(ACTION PASSAGE-F)>
<ROUTINE PASSAGE-F ("AUX" (RM <FIND-FLAG-LG ,HERE ,DOORBIT ,SECRETBIT>))
<COND (<VERB? TAKE WALK-TO>
<PERFORM ,V?THROUGH ,PRSO>
<RTRUE>)
(<AND <VERB? OPEN CLOSE>
<T? .RM>>
<DO-INSTEAD-OF .RM ,PASSAGE>
<RTRUE>)
(<FSET? ,HERE ,SECRETBIT>
<DO-INSTEAD-OF ,HERE ,PASSAGE>
<RTRUE>)
(<REMOTE-VERB?> ;"includes LEAVE"
<RFALSE>)
(T ;<VERB? BOARD CLOSE EXAMINE FOLLOW LOOK-INSIDE OPEN THROUGH WALK-TO>
<COND (<AND <T? .RM>
<SET RM <DOOR-ROOM ,HERE .RM>>
<FSET? .RM ,SEENBIT>>
<DO-INSTEAD-OF .RM ,PASSAGE>
<RTRUE>)
(<SET RM <GENERIC-CLOSET 0>>
<DO-INSTEAD-OF .RM ,PASSAGE>
<RTRUE>)
(T <NOT-HERE ,PASSAGE>)>)>>
<OBJECT ROMANCE
(DESC "Tamara's romance")
(IN GLOBAL-OBJECTS)
(ADJECTIVE TAM\'S JACK\'S HER HIS)
(SYNONYM ROMANCE ENGAGE MARRIAGE LOVE ;AFFAIR)
(FLAGS NARTICLEBIT)
;(ACTION ROMANCE-F)>
;<ROUTINE ROMANCE-F ()
<COND (<AND <VERB? MAKE>
<FSET? ,PRSI ,PERSONBIT>>
<PERFORM ,V?RUB ,PRSI>
<RTRUE>)>>
<OBJECT ACCIDENT
(DESC "Deirdre's accident")
(IN GLOBAL-OBJECTS)
(ADJECTIVE ;DEIRDRE DEE\'S HER)
(SYNONYM ACCIDENT DROWNING DEATH)
(FLAGS NARTICLEBIT)>
<OBJECT CORPSE
(DESC "Deirdre's body")
(IN LOCAL-GLOBALS ;GLOBAL-OBJECTS ;"not really anywhere")
(ADJECTIVE ;DEIRDRE DEE\'S HER DEAD)
(SYNONYM CORPSE ;BODY ;"foo's body")
(FLAGS NARTICLEBIT)
(ACTION CORPSE-F)>
<ROUTINE CORPSE-F ()
<COND ;(<REMOTE-VERB?> <RFALSE>)
(<VERB? ;EXAMINE FIND>
<WHO-KNOWS? ,CORPSE>)
;(T <NOT-HERE ,CORPSE>)>>
<OBJECT UNDRESSED
(DESC "undressed")
(IN GLOBAL-OBJECTS)
(SYNONYM DRESSE UNDRESS)
(FLAGS NARTICLEBIT)
(ACTION UNDRESSED-F)>
<ROUTINE UNDRESSED-F ()
<COND (<REMOTE-VERB?> <RFALSE>)
(<VERB? TAKE> <RFALSE>) ;"GET UN/DRESSED"
(<VERB? OPEN CLOSE SEARCH SEARCH-FOR EXAMINE LOOK-INSIDE LOOK-ON>
<COND (<GLOBAL-IN? ,DRESSING-TABLE-LG ,HERE>
<DO-INSTEAD-OF ,DRESSING-TABLE-LG ,UNDRESSED>
<RTRUE>)
(T <NOT-HERE ,DRESSING-TABLE-LG>)>)
(T <DONT-UNDERSTAND>)>>
<OBJECT ARTIFACT
(IN GLOBAL-OBJECTS ;LOCAL-GLOBALS)
(DESC "hidden treasure" ;"artifact")
(ADJECTIVE VALUABLE MISSING HIDDEN)
(SYNONYM ARTIFACT TREASURE)
(FLAGS SEENBIT VOWELBIT)
(ACTION ARTIFACT-F)>
<ROUTINE ARTIFACT-F ()
<COND (<T? ,TREASURE-FOUND>
<DO-INSTEAD-OF ,TREASURE ,ARTIFACT>
<RTRUE>)
(<OR <VERB? SHOW SSHOW TAKE-TO>
<NOT <REMOTE-VERB?>>>
<NOT-FOUND ,ARTIFACT>
<RTRUE>)>>
<ROUTINE TIMES-UP ()
<TELL
"At first light, the police arrive and take over the investigation." CR>
<FINISH>>

2106
goal.zap Normal file

File diff suppressed because it is too large Load diff

View file

@ -562,6 +562,7 @@ hop into " 'YOUR-BATHROOM ".|">
<OR <VERB? ASK-FOR>
<T? <GET .GT ,GOAL-S>>>
<NOT <VERB? SORRY TAKE THANKS>>
<NOT <VERB? YES NO>>
<NOT <DOBJ? LUGGAGE DINNER>>>
<BUTLER-SORRY>
<RFALSE>)
@ -1754,6 +1755,8 @@ CHE ,GOAL-PERSON " says, \"I'm dead tired. Good night.\"" CR>)>)
<PUTB <GETPT ,HANDS ,P?ADJECTIVE>
,OTHER-POSS-POS ,A?G\'S>
<PUTB <GETPT ,EYE ,P?ADJECTIVE>
,OTHER-POSS-POS ,A?G\'S>
<PUTB <GETPT ,OTHER-OUTFIT ,P?ADJECTIVE>
,OTHER-POSS-POS ,A?G\'S>)>)>
<FSET ,COSTUME ,NDESCBIT>
<FCLEAR ,COSTUME ,TAKEBIT>

910
lumber.ozil Normal file
View file

@ -0,0 +1,910 @@
"Excess baggage from Moomnist"
;<OBJECT DRAWING
(IN DESK)
(DESC "drawing")
(ADJECTIVE LIONEL)
(SYNONYM DRAWING DOODLE)
(FLAGS TAKEBIT READBIT)
(ACTION DRAWING-F)>
;<ROUTINE DRAWING-F ()
<COND (<VERB? EXAMINE READ>
<TELL "[The drawing portrays ">
<COND (<EQUAL? ,VARIATION ,LORD-C>
<TELL
"the King of Spades, holding a scepter." CR>)
(<EQUAL? ,VARIATION ,FRIEND-C>
<TELL
"a bird in flight, shot by an arrow and dripping blood." CR>)
(<EQUAL? ,VARIATION ,DOCTOR-C>
<TELL
"a " 'SKELETON " in Chinese mandarin costume." CR>)
;(<EQUAL? ,VARIATION ,DEALER-C>
<TELL
"a coiled cobra rearing its head in response to a snake charmer's flute music."
CR>)
(<EQUAL? ,VARIATION ,PAINTER-C>
<TELL
"an underwater diver, naked except for a loincloth." CR>)>)>>
;<OBJECT TOWER-DOOR
(IN LOCAL-GLOBALS)
(DESC "tower door")
(ADJECTIVE TOWER)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)>
;<ROOM ANTE-ROOM
(IN ROOMS)
(FLAGS ONBIT SEENBIT VOWELBIT OPENBIT DOORBIT)
(DESC "anteroom")
(ADJECTIVE ANTE NEW TOWER)
(SYNONYM ANTEROOM ROOM DOOR)
(LDESC "[NE to courtyard, SW to old great hall]")
(LINE 3)
(STATION OLD-GREAT-HALL)
(CHARACTER 2) ;"floor number"
(GLOBAL ANTE-ROOM FIREPLACE ;TOWER-DOOR CHAIR)
(NE TO COURTYARD IF ANTE-ROOM ;TOWER-DOOR IS OPEN)
(NORTH TO COURTYARD IF ANTE-ROOM ;TOWER-DOOR IS OPEN)
(EAST TO COURTYARD IF ANTE-ROOM ;TOWER-DOOR IS OPEN)
(OUT TO COURTYARD IF ANTE-ROOM ;TOWER-DOOR IS OPEN)
(IN TO OLD-GREAT-HALL)
(SW TO OLD-GREAT-HALL)
(SOUTH TO OLD-GREAT-HALL)
(WEST TO OLD-GREAT-HALL)>
;<ROUTINE AFRICA-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It depicts the Battle of Blood River, during the Boer War." CR>)>>
;<ROUTINE BURMA-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It's a piece of the bridge over the River Kwai." CR>)>>
;<ROUTINE PHILIPPINE-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It shows Lionel at the American Museum of Natural History." CR>)>>
;<ROUTINE EGYPT-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It's a model of the Egyptian Sphinx, made of real sandstone." CR>)>>
;<ROUTINE PACIFIC-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It's an oyster shell, almost two feet across, with a lining of very dark
mother-of-pearl." CR>)>>
;<ROUTINE AMAZON-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"It's a wooden model of an Amazon river steamer." CR>)>>
;<PSEUDO (<> PAINTING AFRICA-PSEUDO)
(<> WOOD BURMA-PSEUDO)
(<> PHOTO PHILIPPINE-PSEUDO)
( MODEL SPHINX EGYPT-PSEUDO)
( GIANT OYSTER PACIFIC-PSEUDO)
( MODEL BOAT AMAZON-PSEUDO)>
;<OBJECT BRITANNIA
(IN OLD-GREAT-HALL)
(DESC "statue of Britannia")
(LDESC
"A life-size gilt statue of Britannia with trident reclines over the archway
leading to the wing.")
;(ADJECTIVE LIFE-SIZE GILT)
(SYNONYM BRITANNIA STATUE)
(FLAGS SURFACEBIT OPENBIT NDESCBIT)
(CAPACITY 5)
(ACTION BRITANNIA-F)>
;<ROUTINE BRITANNIA-F ()
<COND (<VERB? EXAMINE SEARCH SEARCH-FOR>
<COND (<NOT <==? ,PLAYER-SEATED ,LIBRARY-STOOL>>
<COND (<VERB? EXAMINE>
<RFALSE>)
(T
<YOU-CANT "reach">
<RTRUE>)>)
;(<AND <IN? ,HEADDRESS ,BRITANNIA>
<FSET? ,HEADDRESS ,SECRETBIT>>
<DISCOVER ,HEADDRESS>
<RTRUE>)>)
(<REMOTE-VERB?>
<RFALSE>)
(<NOT <==? ,PLAYER-SEATED ,LIBRARY-STOOL>>
<YOU-CANT "reach">
<RTRUE>)>>
;<ROOM STAIRS-0
(IN ROOMS)
(FLAGS ONBIT SEENBIT)
(DESC "basement stairway")
(ADJECTIVE BASEMENT)
(SYNONYM STAIR STAIRS STAIRWAY ;ROOM)
(GENERIC GENERIC-STAIRS-F)
(LDESC
"The stairs curve up to the southeast and down to the northwest.")
(LINE 3)
(STATION STAIRS-0)
(UP TO JUNCTION)
(EAST TO JUNCTION)
(SOUTH TO JUNCTION)
(SE TO JUNCTION)
(OUT TO JUNCTION)
(DOWN TO BASEMENT)
(NORTH TO BASEMENT)
(WEST TO BASEMENT)
(NW TO BASEMENT)
(IN TO BASEMENT)>
;<ROOM STAIRS-1
(IN ROOMS)
(FLAGS ONBIT SEENBIT)
(DESC "first stairway")
(ADJECTIVE FIRST)
(SYNONYM STAIR STAIRS STAIRWAY)
(GENERIC GENERIC-STAIRS-F)
(LDESC
"The stairs curve up to the northeast and down to the southwest.")
(LINE 3)
(STATION STAIRS-1)
(UP TO CORR-2)
(NORTH TO CORR-2)
(EAST TO CORR-2)
(NE TO CORR-2)
(IN TO CORR-2)
(DOWN TO OLD-GREAT-HALL)
(SOUTH TO OLD-GREAT-HALL)
(WEST TO OLD-GREAT-HALL)
(SW TO OLD-GREAT-HALL)
(OUT TO OLD-GREAT-HALL)>
;<OBJECT JACK-DOOR
(IN LOCAL-GLOBALS)
(DESC "Lord Jack's door")
(ADJECTIVE JACK\'S HIS BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-JACK-DOOR-F)>
;<ROUTINE MAKE-VISIBLE (OBJ)
<TELL "You find" THE .OBJ>
<FCLEAR .OBJ ,NDESCBIT>
<FSET .OBJ ,TAKEBIT>
<FSET .OBJ ,TOUCHBIT>
<MOVE .OBJ ,PLAYER>
<THIS-IS-IT .OBJ>
<TELL " and pick it up." CR>>
;<ROUTINE WAR-CLUB-HACK ("OPTIONAL" (SP? T))
<COND (<AND <EQUAL? ,HERE ,JACK-ROOM>
<IN? ,CURTAIN-ROD ,HERE>
<FSET? ,CURTAIN-ROD ,NDESCBIT>>
<FCLEAR ,CURTAIN-ROD ,NDESCBIT>
<FSET ,CURTAIN-ROD ,TAKEBIT>
<FSET ,CURTAIN-ROD ,TOUCHBIT>
<MOVE ,CURTAIN-ROD ,WINNER>
<COND (.SP? <TELL !\ >)>
<TELL "By accident," HE ,WINNER pull THE ,CURTAIN-ROD>
<THIS-IS-IT ,CURTAIN-ROD>
<TELL
" loose, and it winds up in" HIS ,WINNER " hands, with the curtains
on the floor.">)>>
;<OBJECT DRAPES
(IN JACK-ROOM ;LOCAL-GLOBALS)
(DESC "set of drapes")
(ADJECTIVE WINDOW)
(SYNONYM SET CURTAIN DRAPES DRAPERIES)
(FLAGS NDESCBIT)
(ACTION DRAPES-F)>
;<ROUTINE DRAPES-F ()
<COND (<VERB? OPEN CLOSE MOVE MOVE-DIR PUSH TURN>
<COND (<WAR-CLUB-HACK <>>
<RTRUE>)
(T <WONT-HELP>)>)
(<VERB? EXAMINE TAKE>
<TELL "The curtains are of heavy damask material.">
<WAR-CLUB-HACK>
<CRLF>)>>
;<OBJECT STUDY-DOOR
(IN LOCAL-GLOBALS)
(DESC "study door")
(ADJECTIVE STUDY)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)>
;<OBJECT LIBRARY-DOOR
(IN LOCAL-GLOBALS)
(DESC "library door")
(ADJECTIVE LIBRARY)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)
(GENERIC GENERIC-LIBRARY-DOOR-F)>
;<OBJECT LIBRARY-STOOL
(IN LIBRARY)
(DESC "stepstool")
(ADJECTIVE STEP)
(SYNONYM STOOL STEPSTOOL)
(FLAGS SURFACEBIT OPENBIT NDESCBIT TAKEBIT)
(SIZE 100)
(CAPACITY 99)
(ACTION LIBRARY-STOOL-F)>
;<ROUTINE LIBRARY-STOOL-F ()
<COND (<VERB? SIT CLIMB-ON BOARD>
<SETG PLAYER-SEATED ,LIBRARY-STOOL>
<TELL "Okay." CR>)>>
;<OBJECT OFFICE-DOOR
(IN LOCAL-GLOBALS)
(DESC "office door")
(ADJECTIVE OFFICE)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT VOWELBIT SEENBIT)>
;<OBJECT TAMARA-DOOR
(IN LOCAL-GLOBALS)
(DESC "Tamara's door")
(ADJECTIVE TAMARA TAMMY BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-TAMARA-DOOR-F)>
;<ROOM STAIRS-2
(IN ROOMS)
(FLAGS ;ONBIT SEENBIT)
(DESC "second stairway")
(ADJECTIVE SECOND)
(SYNONYM STAIR STAIRS STAIRWAY)
(GENERIC GENERIC-STAIRS-F)
(LDESC
"The stairs curve up to the northwest and down to the southeast."
;"[UP/E to second floor, DOWN/N to first floor]")
(LINE 3)
(STATION STAIRS-2)
(UP TO CORR-3)
(NORTH TO CORR-3)
(WEST TO CORR-3)
(NW TO CORR-3)
(IN TO CORR-3)
(DOWN TO CORR-2)
(SOUTH TO CORR-2)
(EAST TO CORR-2)
(SE TO CORR-2)
(OUT TO CORR-2)>
;<OBJECT SECRET-LUMBER-DOOR
(IN ROOMS ;LOCAL-GLOBALS)
(DESC "secret door")
(ADJECTIVE SECRET)
(SYNONYM DOOR)
(FLAGS SECRETBIT DOORBIT)
(GENERIC GENERIC-LUMBER-DOOR-F)>
;<OBJECT LUMBER-DOOR
(IN LOCAL-GLOBALS)
(DESC "lumber-room door")
(ADJECTIVE LUMBER ROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)
(GENERIC GENERIC-LUMBER-DOOR-F)>
;<OBJECT CHAPEL-DOOR
(IN LOCAL-GLOBALS)
(DESC "chapel door")
(ADJECTIVE CHAPEL)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)>
;<OBJECT GAME-DOOR
(IN LOCAL-GLOBALS)
(DESC "game-room door")
(ADJECTIVE GAME GAME-ROOM ROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)>
;<ROOM STAIRS-3
(IN ROOMS)
(FLAGS ;ONBIT SEENBIT)
(DESC "third stairway")
(ADJECTIVE THIRD)
(SYNONYM STAIR STAIRS STAIRWAY)
(GENERIC GENERIC-STAIRS-F)
(LDESC
"The stairs curve up to the southwest and down to the northeast."
;"[UP/N to top floor, DOWN/W to second floor]")
(LINE 3)
(STATION STAIRS-3)
(UP TO DECK)
(SOUTH TO DECK)
(WEST TO DECK)
(SW TO DECK)
(OUT TO DECK)
(DOWN TO CORR-3)
(NORTH TO CORR-3)
(EAST TO CORR-3)
(NE TO CORR-3)
(IN TO CORR-3)>
;<ROOM CURTAIN-WALL
(IN ROOMS)
(FLAGS ONBIT SEENBIT SURFACEBIT OPENBIT)
(DESC "curtain wall")
(ADJECTIVE CURTAIN)
(SYNONYM WALL)
(LDESC "[S to fighting deck]")
(GLOBAL MOON OCEAN)
(LINE 3)
(STATION DECK)
(SOUTH TO DECK)
(IN TO DECK)
(OUT TO DECK)>
;<OBJECT BLAST
(IN CAR)
(DESC "blast")
(ADJECTIVE INT.NUM SHORT LONG)
(SYNONYM BLAST BLASTS)
(FLAGS NDESCBIT)>
;<OBJECT FOYER-DOOR
(IN LOCAL-GLOBALS)
(DESC "foyer door")
(ADJECTIVE FOYER DOUBLE BRONZE)
(SYNONYM DOOR DOORS)
(FLAGS DOORBIT SEENBIT)>
;<OBJECT DRAWING-DOOR
(IN LOCAL-GLOBALS)
(DESC "drawing-room door")
(ADJECTIVE DRAWING ROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)
(GENERIC GENERIC-DRAWING-DOOR)>
;<OBJECT CARTOON
(IN DRAWING-ROOM)
(DESC "framed cartoon")
;(ADJECTIVE FRAMED DRUNK HUNGOVER)
(SYNONYM CARTOON PICTURE RHINO RHINOCEROS)
;(GENERIC GENERIC-PAINTING)
(FLAGS NDESCBIT SEENBIT)
(ACTION PICTURE-F)>
;<OBJECT FLAGGS
(IN GREAT-HALL)
(DESC "bunch of flags")
(SYNONYM BUNCH FLAGS)
(FLAGS CONTBIT OPENBIT NDESCBIT)
(CAPACITY 99)
(LDESC
"In the southeast corner of the Great Hall, on a raised dais, is a
circular metal stand, containing various flags on their standards.")
(TEXT
"The flags include the Union Jack, the flag of the Duchy of Cornwall,
the regimental colors of the Duke of Cornwall's Light Infantry
blazoned with the regiment's battle honors, and an embroidered
yellow household flag.")
(ACTION FLAGGS-F)>
;<ROUTINE FLAGGS-F () <FCLEAR ,FLAGGS ,NDESCBIT> <RFALSE>>
;<ROOM STAIRS-NEW
(IN ROOMS)
(FLAGS ONBIT SEENBIT SURFACEBIT OPENBIT WEARBIT)
(DESC "landing")
(ADJECTIVE NEW)
(SYNONYM LANDING STAIR STAIRS STAIRWAY)
(GENERIC GENERIC-LANDING)
(LINE 1)
(STATION GREAT-HALL)
(GLOBAL FIREPLACE WINDOW STAIRS)
(UP TO GALLERY)
(IN TO GALLERY)
(NORTH "Do you want to go up or down?")
(DOWN TO GREAT-HALL)
(OUT TO GREAT-HALL)
(ACTION STAIRS-NEW-F)>
;<ROUTINE STAIRS-NEW-F ("OPTIONAL" (RARG 0))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL-LIKE-BROCHURE>)>>
;<OBJECT SITTING-DOOR
(IN LOCAL-GLOBALS)
(DESC "sitting-room door")
(ADJECTIVE SITTING ROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT SEENBIT)
(GENERIC GENERIC-SITTING-DOOR)>
;<ROUTINE WRITING-DESK-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-ON SEARCH SEARCH-FOR>
<COND (<IN? ,LETTER-MAID ,WRITING-DESK>
<FCLEAR ,LETTER-MAID ,NDESCBIT>
<FSET ,LETTER-MAID ,TAKEBIT>
<RFALSE>)>)>>
;<OBJECT TAPE-LIONEL
(IN RECORDER)
(DESC "Lionel's tape")
(ADJECTIVE LI\'S HIS)
(SYNONYM TAPE LIONEL)
(FLAGS NARTICLEBIT ;TAKEBIT)
(SIZE 2)>
;<OBJECT CONTROL-PANEL
(IN KITCHEN)
(ADJECTIVE CONTROL)
(SYNONYM PANEL BUTTON SWITCH)
(DESC "control panel")
(FLAGS SEARCHBIT)
(TEXT "It has several buttons and a speaker.")
(ACTION CONTROL-PANEL-F)>
;<OBJECT GATE-BUTTON
(IN CONTROL-PANEL)
(DESC "gate button")
(ADJECTIVE ;"FRONT TALL WROUGHT SECURITY" GATE)
(SYNONYM BUTTON)
(ACTION GATE-BUTTON-F)>
;<ROUTINE CONTROL-PANEL-F ;GATE-BUTTON-F ()
<COND (<VERB? LAMP-ON MOVE MOVE-DIR PUSH RUB TURN>
<TELL "Nothing seems to happen." CR>)>>
;<OBJECT BROKEN-LAMP
(ADJECTIVE BROKEN BRASS)
(SYNONYM LAMP LANTERN)
(DESC "broken lantern")
(FLAGS TAKEBIT)>
;<OBJECT NIGHTLAMP-LG
(IN LOCAL-GLOBALS ;NIGHTSTAND-LG)
(DESC "lamp")
(ADJECTIVE TAM\'S JACK\'S VIV\'S HYDE\'S IAN\'S DOC\'S IRIS\'S)
(SYNONYM LAMP LIGHT LIGHTS)
(FLAGS ONBIT LIGHTBIT SEENBIT)>
;<OBJECT YOUR-DOOR
(IN LOCAL-GLOBALS)
(DESC "your door")
(ADJECTIVE MY ;YOUR BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-YOUR-DOOR)>
;<OBJECT IRIS-DOOR
(IN LOCAL-GLOBALS)
(DESC "Iris's door")
(ADJECTIVE IRIS\'S HER BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-IRIS-DOOR-F)>
;<OBJECT WENDISH-DOOR
(IN LOCAL-GLOBALS)
(DESC "Wendish's door")
(ADJECTIVE DOC\'S HIS ;WENDISH BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-WENDISH-DOOR-F)>
;<OBJECT VIVIEN-DOOR
(IN LOCAL-GLOBALS)
(DESC "Vivien's door")
(ADJECTIVE VIV\'S HER BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-VIVIEN-DOOR)>
;<OBJECT IAN-DOOR
(IN LOCAL-GLOBALS)
(DESC "Ian's door")
(ADJECTIVE IAN\'S HIS BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-IAN-DOOR)>
;<OBJECT HYDE-DOOR
(IN LOCAL-GLOBALS)
(DESC "Hyde's door")
(ADJECTIVE HYDE\'S HIS BED ROOM BEDROOM)
(SYNONYM DOOR)
(FLAGS OPENBIT DOORBIT NARTICLEBIT)
(GENERIC GENERIC-HYDE-DOOR)>
;<ROUTINE DONT-KNOW (PER OBJ) <TELL "\"Dunno.\"" CR>>
;<ROOM UNCONSCIOUS
(IN ROOMS)
(DESC "limbo")
(FLAGS NARTICLEBIT)>
;<ROUTINE UNCONSCIOUS-FCN ("OPTIONAL" (TIM 0) "AUX" HR NXT ;PS)
<COND (<0? .TIM> <SET TIM <+ 9 <RANDOM 6>>>)>
;<SETG MUNGED-PERSON ,PLAYER>
<SET HR <FIRST? ,PLAYER>>
<REPEAT ()
<SET NXT <NEXT? .HR>>
<COND (<NOT <FSET? .HR ,WORNBIT>>
<MOVE .HR <LOC ,PLAYER>>)
(<NOT <EQUAL? .HR ,SLEEP-OUTFIT>>
<FSET .HR ,MUNGBIT>)>
<COND (<ZERO? .NXT> <RETURN>)
(T <SET HR .NXT>)>>
<SET HR ,HERE>
<MOVE ,PLAYER ,UNCONSCIOUS>
<SETG HERE ,UNCONSCIOUS>
<TELL "...||">
<USL>
<QUEUE I-COME-TO .TIM>
<V-WAIT .TIM <> T>
;<INT-WAIT .TIM>
<QUEUE I-COME-TO 0>
<MOVE ,PLAYER .HR>
<SETG HERE .HR>
<COND (<ZERO? ,PLAYER-SEATED>
<SETG PLAYER-SEATED <- 0 ,HERE> ;.PS>)>
<RTRUE>>
;<ROUTINE ANYONE-VISIBLE? ("OPTIONAL" (VICTIM <>) "AUX" CNT X (VAL <>))
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX>
<SET VAL <>>
<RETURN>)
(<EQUAL? .VICTIM <SET VAL <GET ,CHARACTER-TABLE .CNT>>>
<AGAIN>)
(<VISIBLE? .VAL>
<RETURN>)>>
.VAL>
"<CONSTANT PASS1-LINE-C 4>
<CONSTANT PASS2-LINE-C 5>"
"<GLOBAL PASS1-LINE
<PTABLE 0 SECRET-LANDING-JACK P?DOWN
P?WEST PASSAGE-1 P?UP
P?DOWN SECRET-LANDING-TAM P?NE
P?SOUTH DINING-LANDING P?NORTH
P?DOWN SECRET-LANDING-LIB 0>>
<GLOBAL PASS2-LINE
<PTABLE 0 SECRET-VIVIEN-PASSAGE P?UP
P?DOWN GARRET-PASSAGE P?EAST
P?WEST GARRET-CORNER P?NORTH
P?SOUTH NORTH-CORNER P?DOWN
P?UP IRIS-CLOSET P?WEST
P?EAST WENDISH-CORNER P?SOUTH
P?NORTH DRAWING-CLOSET P?SOUTH
P?NORTH GALLERY-CORNER P?WEST
P?EAST HYDE-CLOSET 0>>"
;<
DRAWING-CLOSET DRAWING-ROOM ;"transfers from PASS2-LINE"
YOUR-CLOSET YOUR-ROOM
SECRET-LANDING-LIB LIBRARY
SECRET-VIVIEN-PASSAGE SECRET-LANDING-TAM
0 0>
;<ROUTINE I-PRE-DINNER ("OPTIONAL" (GARG <>) "AUX" N CH RM ;(SAID <>) GT)
%<DEBUG-CODE
<COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[I-PRE-DINNER:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<COND (<EQUAL? ,FOLLOWER ,FRIEND ,LORD>
<SETG FOLLOWER 0>)>
;<SET GT <GT-O ,BUTLER>>
;<COND (<NOT <==? <GET .GT ,GOAL-FUNCTION> ,BUTLER-COOKS>>
<PUT .GT ,GOAL-FUNCTION ,BUTLER-COOKS>
<ESTABLISH-GOAL ,BUTLER ,KITCHEN>)>
<SET N ,MASS-COUNTER>
<COND (<IGRTR? N ,CHARACTER-MAX>
<SETG MASS-SAID <>>
<SETG MASS-COUNTER 0>
<RFALSE>)
;(<EQUAL? .N ,LOVER-C>
<INC N>)>
<QUEUE I-PRE-DINNER 1>
<SETG MASS-COUNTER .N>
<SET CH <GET ,CHARACTER-TABLE .N>>
<SET RM <GET ,CHAR-ROOM-TABLE <+ 1 .N>>>
<PUT <GET ,GOAL-TABLES .N> ,GOAL-FUNCTION ,X-WASHES>
<ESTABLISH-GOAL .CH .RM>
<COND (<AND <EQUAL? <META-LOC .CH> ,HERE>
<ZERO? ,MASS-SAID>>
<SETG MASS-SAID T>
<TELL
D .CH " says, \"It's time to wash up for dinner now.
I'll see you in the " 'DINING-ROOM ".\"" CR>)>
%<DEBUG-CODE
<COND (,IDEBUG <TELL N ,MASS-SAID !\] CR>)>>
<RETURN ,MASS-SAID>>
;<ROUTINE X-WASHES ("OPTIONAL" (GARG <>))
%<DEBUG-CODE <COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[X-WASHES:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<COND (<==? .GARG ,G-REACHED>
<PUTP ,GOAL-PERSON ,P?LDESC 8 ;"washing up">
<RFALSE>)>>
;<ROUTINE I-WITHDRAW ("OPTIONAL" (GARG <>) "AUX" (N 0) CH (SAID <>))
%<DEBUG-CODE <COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[I-WITHDRAW:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<QUEUE I-BEDTIME <- ,BED-TIME ,PRESENT-TIME>>
<COND (<EQUAL? ,DINING-ROOM ,HERE>
<SET SAID T>
<TELL
D ,LORD " says, \"If you ladies will join Tammy in the " D ,SITTING-ROOM
", we'll try to puzzle this one out.\"" CR>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
D ,FRIEND " says, \"Won't you join us, "FN"?\"" CR>)>
<ESTABLISH-GOAL ,FRIEND ,SITTING-ROOM>
<ESTABLISH-GOAL ,DEB ,SITTING-ROOM>
<ESTABLISH-GOAL ,PAINTER ,SITTING-ROOM>)>
%<DEBUG-CODE
<COND (,IDEBUG <TELL N .SAID !\] CR>)>>
<RETURN .SAID>>
;<ROUTINE GHOST-DRESSES ("OPTIONAL" (GARG <>) "AUX" L X GT (VAL <>))
%<DEBUG-CODE <COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[GHOST-DRESSES:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<SET L <LOC ,FRIEND>>
<COND (<EQUAL? .L ,HERE>
<TELL
"Suddenly" HE ,FRIEND " runs smack into you!|
\"Oh, do pardon me, "FN", but I just discovered this " D ,PASSAGE ",
and I couldn't resist exploring a little.\"|">
<SET VAL ,M-FATAL>
<PUT <GT-O ,FRIEND> ,GOAL-ENABLE 0>)
(<==? .GARG ,G-REACHED>
<SET VAL <DRESS-GHOST .L ,FRIEND-C>>
<ESTABLISH-GOAL ,GHOST-NEW ,YOUR-CLOSET>)>
%<DEBUG-CODE <COND (,IDEBUG <TELL N .VAL "]|">)>>
<RETURN .VAL>>
;<OBJECT RUBY
;(IN LOCAL-GLOBALS)
(DESC "pigeon's-blood ruby")
(ADJECTIVE PIGEON BLOOD RED)
(SYNONYM RUBY EYE)
(FLAGS NDESCBIT SECRETBIT)
(SIZE 3)
(TEXT
"a large pigeon's-blood ruby, possibly the most priceless of all gems")
(ACTION RUBY-F)>
;<ROUTINE RUBY-F ()
<COND (<VERB? EXAMINE>
<FCLEAR ,RUBY ,SECRETBIT>
<SETG TREASURE-FOUND ,RUBY>
<TELL "It's " <GETP ,RUBY ,P?TEXT> "!" CR>)
(<AND <VERB? TAKE>
<IN? ,RUBY ,RHINO-HEAD>
<FSET? ,RUBY ,NDESCBIT>>
<FCLEAR ,RUBY ,NDESCBIT>
<FCLEAR ,RUBY ,SECRETBIT>
<FSET ,RUBY ,TAKEBIT>
<SETG TREASURE-FOUND ,RUBY>
<MOVE ,RUBY ,PLAYER>
<TELL
"It's stuck pretty tightly in its socket, but eventually you pry it loose.
Your own eyes pop a bit as you examine your find more closely. It's "
<GETP ,RUBY ,P?TEXT> "!" CR>)>>
;<OBJECT HEADDRESS
;(IN LOCAL-GLOBALS)
(DESC "Egyptian headdress")
(ADJECTIVE EGYPTIAN ;HEAD)
(SYNONYM HEADDRESS DRESS)
(FLAGS WEARBIT VOWELBIT SECRETBIT)
(SIZE 9)
(TEXT
"the gold headdress of a Pharaoh's daughter, in the shape of a coiled
cobra")
(ACTION HEADDRESS-F)>
;<ROUTINE HEADDRESS-F ()
<COND (<VERB? EXAMINE>
<FCLEAR ,HEADDRESS ,SECRETBIT>
<SETG TREASURE-FOUND ,HEADDRESS>
<TELL "It's obviously " <GETP ,HEADDRESS ,P?TEXT> "!" CR>)>>
;<OBJECT IAN-EVIDENCE
(DESC "Ian's note")
(ADJECTIVE IAN\'S JACK\'S HIS)
(SYNONYM EVIDENCE NOTE)
(FLAGS NDESCBIT READBIT NARTICLEBIT SECRETBIT RMUNGBIT ;"= is evidence")
(CHARACTER 5) ;"for this char"
(TEXT
"It's a note from Jack to Ian, offering to pay off his gambling IOU if
he will take Deirdre off Jack's hands."
;"It clearly shows how Ian wanted to break up Tamara's romance.")
(SIZE 2)>
;<OBJECT HYDE-IOU
(DESC "museum report")
(ADJECTIVE HYDE\'S HIS MUSEUM)
(SYNONYM EVIDENCE REPORT)
(FLAGS NDESCBIT READBIT SECRETBIT RMUNGBIT ;"= is evidence")
(CHARACTER 6) ;"for this char"
(TEXT
"It's a report from the British Museum, saying their tests have proved
that a valuable painting from the castle is a very recent fake.
While it was in his shop for cleaning, Hyde sold the original to one
of his customers.")
(SIZE 4)>
;<OBJECT POCKET
(IN ;PLAYER GLOBAL-OBJECTS)
(DESC "your pocket")
(ADJECTIVE MY)
(SYNONYM POCKET)
(FLAGS CONTBIT OPENBIT NARTICLEBIT NDESCBIT SEARCHBIT)
(CAPACITY 5)
(ACTION POCKET-F)>
;<ROUTINE POCKET-F ("AUX" X)
<COND ;(<DIVESTMENT? ,POCKET>
<HAR-HAR>)
(<VERB? EXAMINE LOOK-INSIDE LOOK-THROUGH>
<TELL "Your pocket ">
<COND (<NOT <FIRST? ,POCKET>>
<TELL "is empty." CR>)
(T
<TELL "contains">
<PRINT-CONTENTS ,POCKET>
<TELL "." CR>
;<SET X <PRINT-CONT ,POCKET ;T>>)>
<RTRUE>)
(<VERB? EMPTY>
<COND (<FIRST? ,POCKET>
<TELL "You are now holding">
<ROB ,POCKET ,PLAYER T>
<CRLF>)>)
(<VERB? OPEN CLOSE>
<TELL "You don't need to do that." CR>)>>
;<OBJECT CLOTHES
(IN GLOBAL-OBJECTS ;ADVENTURER)
(DESC "your clothes")
(ADJECTIVE ;YOUR MY)
(SYNONYM CLOTHES)
(FLAGS WORNBIT WEARBIT NARTICLEBIT)
;(ACTION CLOTHES-F)>
;<ROUTINE CLOTHES-F ("AUX" X)
<COND (<VERB? EXAMINE>
<TELL <GETP ,NOW-WEARING ,P?TEXT> CR>)>>
<ROUTINE COMMON-ASK-ABOUT (PER OBJ)
<COND
;(<OR <AND <==? .PER ,LORD> <==? .OBJ ,OFFICER>>
<AND <==? .PER ,OFFICER> <==? .OBJ ,LORD>>>
<TELL
"\"We've been mates for years, since serving together in the
Coldstream Guards.\"" CR>)
;(<EQUAL? .OBJ ,LORD>
<TELL "\"A fine young man, and he seems very happy recently.\"" CR>)
;(<EQUAL? .OBJ ,DEB>
<DISCRETION .PER .OBJ>
<TELL
"\"She's a kittenish Mayfair deb, who
comes on as an affectionate girl friend of ">
<COND (<==? .PER ,FRIEND> <TELL "mine.\"" CR> <RTRUE>)>
<TELL 'FRIEND "'s.">
<COND (<==? .PER ,LORD> <TELL "\"" CR> <RTRUE>)>
<TELL " But she radiates
bitchy overtones which suggest that she may have secret designs of her
own on " 'LORD " Tresyllian, and that she secretly hates " 'FRIEND " for
beating her time with his lordship.\"" CR>)
;(<EQUAL? .OBJ ,OFFICER>
<DISCRETION .PER .OBJ>
<TELL
"\"He's a sporty young London man-about-town and officer in the
Coldstream Guards. He's a close buddy of " 'LORD "'s, who is himself an
ex-Guards officer. Belowstairs gossip at the castle hints that Ian was
madly in love with " 'LOVER ", and that it was a quarrel over him which led
to her breakup with " 'LORD ".\"" CR>)
;(<EQUAL? .OBJ ,DOCTOR>
<TELL
"\"Nicholas Wendish was, in fact, a classmate of Lionel Tresyllian's at
Cambridge University, and over the years the two kept in close touch.
Trained as a medical man and biochemist, " 'DOCTOR " is a leading
authority on drugs derived from plants and their use in the treatment
of disease.\"" CR>)
;(<EQUAL? .OBJ ,DEALER>
<TELL
"\"He's a London antique dealer who has come to Cornwall to discuss with ">
<COND (<==? .PER ,LORD> <TELL "me">) (T <TELL D ,LORD>)>
<TELL
" the possible sale of Tresyllian family portraits and other objets d'art.\""
CR>)
;(<EQUAL? .OBJ ,PAINTER>
<DISCRETION .PER .OBJ>
<TELL
"\"She's a local painter of vintage beauty and uncertain age,
who is reputed to have been the mistress of ">
<COND (<==? .PER ,LORD> <TELL "my">) (T <TELL "Jack's">)>
<TELL " late kinsman Lionel, the previous Lord Tresyllian.\"" CR>)>>
;<GLOBAL EXPLAINED-JEWEL:OBJECT <>>
;<ROUTINE FIND-JEWEL-EXPLAINER ("AUX" O)
<SET O <FIRST? ,HERE>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O ,PERSONBIT>
<NOT <FSET? .O ,RMUNGBIT>>
<NOT <FSET? .O ,MUNGBIT>>
<NOT <EQUAL? .O ,PLAYER ,OFFICER>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
;<ROUTINE PRE-APOLOGIZE ("AUX" P)
<COND (<NOT <DOBJ? ROOMS>>
<RFALSE>)
(<QCONTEXT-GOOD?>
<PERFORM ,PRSA ,QCONTEXT>
<RTRUE>)
(<SET P <FIND-FLAG-HERE-NOT ,PERSONBIT ,MUNGBIT ,WINNER>>
<TELL-I-ASSUME .P " to">
<PERFORM ,PRSA .P>
<RTRUE>)>>
;<ROUTINE V-HIDE ()
<COND ;(<EQUAL? ,HERE ,OFFICE>
<TELL "You could hide behind the lounge." CR>)
(T <TELL "There's no good hiding place here." CR>)>>
;<ROUTINE V-HIDE-BEHIND ()
<COND (<FIND-FLAG-HERE-NOT ,PERSONBIT ,MUNGBIT ,WINNER>
<TELL "As you start to hide">
<COND (<T? ,PRSI> <HIM-HER-IT ,PRSO>)>
<TELL ", you realize that someone may be watching you." CR>)
(T
<TELL "There's no room to hide">
<COND (<T? ,PRSI> <HIM-HER-IT ,PRSO>)>
<TELL " behind">
<COND (<T? ,PRSI> <HIM-HER-IT ,PRSI>)
(T <HIM-HER-IT ,PRSO>)>
<TELL "." CR>)>>
;<ROUTINE V-KICK () <HACK-HACK "Kicking">>
;<ROUTINE PRE-SHOOT ("AUX" X)
<COND (<ZERO? ,PRSI>
<COND (<FSET? ,PRSO ,PERSONBIT>
<COND (<SET X <FIND-FLAG ,WINNER ,WEAPONBIT>>
<TELL-I-ASSUME .X " with">
<PERFORM ,V?SHOOT ,PRSO .X>
<RTRUE>)
(T
<SETG CLOCK-WAIT T>
<TELL ,YOU-DIDNT-SAY-W "ith what!]" CR>)>)
(T
<COND (<SET X <FIND-FLAG-HERE ,PERSONBIT ,WINNER>>
<TELL-I-ASSUME .X " at">
<PERFORM ,V?SHOOT .X ,PRSO>
<RTRUE>)
(T
<SETG CLOCK-WAIT T>
<TELL ,YOU-DIDNT-SAY-W "hom!]" CR>)>)>)>>

455
m5.chart Normal file
View file

@ -0,0 +1,455 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
6/07 4 51052 11911 39 113 611
6/10 5 49336 12543 39 114 617
6/11 6 49334 12543 39 114 617
6/11 7 49328 12543 39 114 617
6/11 8 49338 12546 39 114 617
6/12 9 49482 12546 39 114 617
6/12 10 49482 12546 39 114 617
6/12 11 49490 12546 39 114 617
6/12 12 49492 12546 39 114 617
6/12 13 50296 12756 42 115 630
6/12 14 50296 12756 42 115 630
6/14 15 50320 12756 42 115 630
6/24 16 51950 13445 50 115 666
7/01 17 51900 13435 50 114 666
7/02 18 51950 13446 51 114 666
7/02 19 51822 13446 51 114 666
7/26 20 52074 13556 51 116 664
8/29 21 53858 14758 78 116 691
9/03 22 55452 15834 102 116 704
9/03 23 55468 15876 103 116 705
9/04 23 55498 15876 103 116 705
9/04 23 55504 15876 103 116 705
9/10 24 54940 15814 103 113 703
9/13 25 57082 17263 138 113 709
9/16 26 57412 17545 137 113 709
9/16 27 57412 17545 137 113 709
9/17 28 57804 17721 138 113 712
9/17 29 59476 18228 149 113 738
9/17 -1 59574 18234 149 116 738
9/18 2 59184 18375 149 118 737
9/18 3 59182 18375 149 118 737
9/18 4 62304 18375 149 118 737
9/19 5 61812 18371 149 116 737
9/20 6 62002 18641 149 116 738
9/20 6 61850 18619 149 116 738
9/20 7 62002 18641 149 116 738
9/23 7 62074 18692 149 117 738
9/23 8 62112 18695 149 117 738
9/24 9 62980 18819 151 117 744
9/25 10 62988 18822 151 117 744
9/25 11 64686 19463 165 118 766
9/30 12 65926 19583 168 119 771
10/01 13 67020 20167 180 119 801
10/02 14 67272 20158 179 119 801
10/03 15 67988 20234 181 119 805
10/03 16 68032 20234 181 119 805
10/03 17 68032 20234 181 119 805
10/03 17 68032 20234 181 119 805
10/03 18 68520 20363 183 121 812
10/04 19 68520 20363 183 121 812
10/04 20 68506 20331 182 121 811
10/04 21 68522 20331 182 121 811
10/04 22 68630 20357 182 122 811
10/07 23 69342 20373 182 124 811
10/09 24 69460 20395 184 124 811
10/09 25 69930 20511 187 126 814
10/09 26 70422 20534 185 127 820
10/10 27 70748 20498 185 127 819
10/10 28 70748 20497 185 127 819
10/10 29 70742 20497 185 127 819
10/14 30 70776 20497 185 127 819
10/17 31 74274 20718 189 130 827
10/17 -1 74274 20718 189 130 827
10/17 32 74274 20718 189 130 827
10/17 33 74494 20883 189 132 823
10/17 34 74494 20856 188 131 822
10/18 35 74924 20937 189 131 826
10/18 36 74922 20937 189 131 826
10/18 37 75914 21285 200 131 832
10/21 38 75944 21285 200 131 832
10/21 39 76000 21285 200 131 832
10/21 40 76440 21422 201 134 840
10/22 41 77906 22054 214 136 867
10/22 42 77904 22054 214 136 867
10/22 43 79042 22054 214 136 867
10/23 44 79414 22246 215 138 869
10/23 45 81376 22246 215 138 869
10/23 46 81342 22255 215 138 869
10/23 0 81342 22255 215 138 869
10/23 47 81326 22255 215 138 869
10/23 48 81228 22255 215 138 869
10/24 49 81240 22255 215 138 869
10/24 50 81240 22255 215 138 869
10/24 50 81438 22269 215 138 869
10/24 51 81568 22304 215 138 869
10/28 52 81554 22304 215 138 869
10/28 53 81544 22304 215 138 869
10/28 54 81834 22438 218 138 872
10/29 55 81522 22468 218 137 873
10/29 56 81532 22468 218 137 873
10/29 57 81596 22468 218 137 873
10/30 58 81494 22486 218 137 874
10/31 59 81394 22498 218 137 874
10/31 60 81446 22441 218 135 875
10/31 61 81440 22441 218 135 875
10/31 62 81440 22441 218 135 875
10/31 63 81402 22401 218 134 875
11/01 64 87920 22753 224 134 893
11/04 65 88014 22758 224 135 893
11/05 66 88120 22758 224 135 893
11/05 67 87912 0 224 135 893
11/05 68 87826 22732 224 136 893
11/05 69 87826 22732 224 136 893
11/06 70 87104 22797 225 136 897
11/06 71 87108 22797 225 136 897
11/06 72 87112 22797 225 136 897
11/06 73 90074 23068 232 137 910
11/06 74 90652 23123 232 137 914
11/07 75 90638 23116 232 137 913
11/07 76 90638 23116 232 137 913
11/07 77 90638 23116 232 137 913
...
11/08 84 91902 23318 233 137 924
11/08 85 91902 23318 233 137 924
11/08 86 92556 23236 233 139 914
11/11 87 91932 23306 233 139 924
11/11 88 91932 23306 233 139 924
11/11 89 92032 23306 233 139 924
11/11 90 92032 23306 233 139 924
11/11 91 92236 23340 233 139 924
11/12 92 92236 23340 233 139 924
11/12 93 92190 23345 233 140 925
11/12 94 92176 23345 233 140 925
11/13 95 92142 23347 233 141 925
11/13 96 92140 23347 233 141 925
11/13 97 92054 23366 233 142 925
11/13 98 92676 23373 233 144 925
11/14 99 91634 23135 233 144 925
11/14 100 92826 23556 243 144 943
11/15 101 92826 23556 243 144 943
11/15 102 93186 23601 243 146 945
11/15 103 93122 23550 243 144 943
11/15 103 93182 23601 243 146 945
11/15 104 93430 23610 243 146 945
11/19 105 95464 23723 245 146 952
11/20 106 95468 23723 245 146 952
11/20 107 98378 23837 247 146 957
11/21 108 98728 24036 251 146 965
11/22 109 99356 24155 253 146 970
11/22 110 99190 24146 253 145 969
11/25 111 96860 23160 251 142 872
11/25 112 96382 22866 251 142 847
11/26 113 96872 22868 251 143 847
11/29 114 97082 22885 251 143 849
12/02 115 97056 22885 251 143 849
12/02 116 97332 22981 253 145 854
12/03 117 97376 22994 253 145 855
12/03 118 97374 22994 253 145 855
12/03 119 97398 23016 253 145 855
12/04 120 100438 23116 255 145 857
12/04 121 104542 23183 256 145 860
12/06 122 104166 22743 238 145 860
12/06 123 104130 22743 238 145 860
12/06 124 104086 22743 238 145 860
12/07 125 104084 22743 238 145 860
12/07 126 105980 22866 240 145 868
12/11 127 107528 23003 244 145 870
12/11 128 107484 23003 244 145 870
12/11 129 107484 23003 244 145 870
12/11 130 107496 23007 244 145 870
12/12 131 108562 23183 247 147 877
12/12 132 108502 23183 247 147 877
12/13 133 108534 23150 246 147 877
12/13 134 111280 23317 248 149 886
12/17 135 112264 23325 248 149 887
12/17 136 112264 23324 248 149 887
12/17 137 112264 23324 248 149 887
12/18 138 112508 23301 246 150 889
12/18 139 112942 23365 247 153 889
12/19 140 112972 23383 247 154 890
12/20 141 112972 23383 247 154 890
12/20 142 112924 23383 247 154 890
12/20 143 112928 23383 247 154 890
1/02 144 113658 23393 247 155 890
1/03 145 113026 23400 247 155 890
1/03 146 113112 23405 247 155 891
1/03 147 113112 23405 247 155 891
1/06 148 113464 23397 247 154 890
1/07 149 114084 23380 246 154 888
1/08 150 114298 23469 247 155 892
1/09 151 115208 23478 247 157 892
1/10 151 115202 23478 247 157 892
1/10 152 115324 23447 246 157 891
1/13 153 116086 23517 246 158 897
1/13 153 116086 23517 246 158 897
1/15 154 116468 23593 246 158 904
1/15 155 116558 23559 244 159 903
1/16 156 116862 23647 244 159 903
1/16 156 116838 23647 244 159 903
1/17 157 115978 23749 245 160 906
1/20 157 115910 23749 245 160 906
1/20 157 115998 23698 245 160 902
1/20 157 115994 23698 245 160 902
1/21 157 116004 23698 245 160 902
1/21 157 116018 23698 245 160 902
1/21 157 116030 23698 245 160 902
1/21 157 116034 23698 245 160 902
1/21 157 116048 23698 245 160 902
1/21 158 116058 23698 245 160 902
1/22 159 117290 23641 243 160 903
1/23 160 117736 23648 243 161 903
1/23 9 117722 23648 243 161 903
1/23 9 117748 23648 243 161 903
1/23 9 117750 23648 243 161 903
1/23 10 117870 23661 243 162 903
1/24 11 118290 23727 243 161 906
1/24 11 118282 23720 243 161 905
1/30 0 118302 23720 243 161 905
1/30 12 118438 23691 244 161 909
1/30 13 119104 23708 244 161 912
1/30 12 119104 23708 244 161 912
1/30 12 119110 23708 244 161 912
1/31 13 119920 23739 244 161 915
2/03 14 119608 23770 245 162 912
2/04 15 119868 23741 245 163 912
2/04 15 119864 23741 245 163 912
2/04 16 119882 23748 245 163 913
2/04 0 119744 23800 245 163 913
2/04 17 120064 23870 245 164 917
2/05 18 120284 23891 241 166 931
2/06 18 120290 23891 241 166 931
2/06 19 120176 23860 240 164 935
2/07 19 120176 23860 240 164 935
2/07 20 120016 23853 242 164 930
2/07 20 120008 23853 242 164 930
2/10 21 120332 23917 242 165 936
2/10 21 120320 23917 242 165 936
2/11 22 120746 24030 243 166 947
2/11 22 120746 24030 243 166 947
2/12 23 120554 24009 243 167 944
2/13 23 120554 24009 243 167 944
2/13 24 121344 24088 245 169 940
2/14 24 121342 24088 245 169 940
2/14 0 121386 24088 245 169 940
2/14 0 121380 24088 245 169 940
2/14 0 121496 24088 245 169 940
2/14 0 121490 24088 245 169 940
2/14 0 121494 24088 245 169 940
2/14 0 121494 24088 245 169 940
2/14 25 121582 24113 244 170 945
2/17 26 121754 24142 244 170 945
2/17 26 121626 24142 244 170 945
2/18 27 121638 24145 244 169 945
2/19 28 121766 24180 243 169 948
2/20 29 121728 24241 244 170 949
2/21 30 121914 24298 244 170 950
2/23 31 121924 24298 244 170 950
2/24 1 121924 24298 244 170 950
2/24 32 121468 24268 243 170 954
2/25 33 121562 24287 243 170 954
2/26 34 121436 24221 242 171 953
2/27 34 121442 24221 242 171 953
2/27 35 121770 24237 242 171 954
3/02 36 121646 24012 242 171 953
3/04 36 119858 23830 241 176 948
3/05 36 119772 23830 241 176 948
3/05 37 119740 23713 238 179 955
3/06 38 119870 23729 240 178 954
3/07 38 119868 23729 240 178 954
3/07 39 119908 23715 240 178 952
3/10 40 120506 23821 241 178 957
3/11 41 120756 23858 241 178 960
3/12 42 120854 23886 241 178 963
3/13 43 122384 24001 243 179 970
3/14 43 122382 24001 243 179 970
3/14 -1 122422 24001 243 179 970
3/17 2 122526 24001 243 179 970
3/17 3 123346 24112 246 179 975
3/18 4 123278 23988 246 179 965
3/19 5 124852 24196 246 182 968
3/20 5 124848 24196 246 182 968
3/20 6 126202 24283 247 183 971
3/21 7 126644 24354 247 183 978
3/25 8 127158 24439 247 184 979
3/25 8 127164 24442 247 184 979
3/26 9 127166 24274 242 185 972
3/27 9 127166 24274 242 185 972
3/27 10 126636 24297 243 185 971
3/28 10 126866 24288 243 185 970
3/29 11 127072 24295 243 185 971
4/01 12 127300 24398 244 186 976
4/02 13 127708 24450 245 186 979
4/02 14 127994 24450 246 187 978
4/04 15 127558 24276 246 187 972
4/04 15 127558 24276 246 187 972
4/04 15 127560 24276 246 187 972
4/09 16 127438 24312 246 187 974
4/15 17 128204 24148 244 189 970
4/16 17 128196 24155 244 189 971
4/16 17 128552 24176 245 190 970
4/16 18 128656 24180 245 192 970
4/17 18 128658 24180 245 192 970
4/18 19 128668 24142 245 192 970
4/18 20 128154 24082 245 189 964
4/23 21 128218 24081 245 189 964
4/24 22 128324 24128 246 191 965
4/25 23 128724 24177 247 192 967
4/25 23 128532 24030 247 192 946
4/28 24 128356 24020 247 193 948
4/29 24 128494 24167 247 193 969
4/29 24 128548 24180 248 194 965
4/29 24 128542 24180 248 194 965
4/29 24 128542 24180 248 194 965
4/30 25 128628 24182 248 195 965
5/01 25 128628 24182 248 195 965
5/01 25 128632 24182 248 195 965
5/02 26 128714 24209 248 199 965
5/06 27 128964 24209 248 199 965
5/08 28 128980 24207 248 198 965
5/14 29 129424 24229 248 198 968
5/14 29 129130 24301 248 198 968
5/14 30 128780 24267 247 199 967
5/19 31 128644 24267 247 199 967
5/20 31 128612 24267 247 199 967
5/20 31 128616 24267 247 199 967
5/20 31 128620 24267 247 199 967
5/20 31 128288 24267 247 199 967
5/21 32 128766 24307 248 200 969
5/26 33 129080 24377 249 201 970
5/26 33 129076 24377 249 201 970
5/27 34 128896 24494 253 199 977
5/28 35 129052 24533 253 199 981
5/29 35 129048 24531 253 199 981
5/29 35 129062 24531 253 199 981
5/29 35 129062 24531 253 199 981
6/06 36 129370 24563 253 198 985
6/06 36 129550 24585 253 198 985
6/06 37 129598 24593 253 198 985
6/09 37 129598 24593 253 198 985
6/09 38 129680 24688 254 198 992
6/10 39 126516 24504 254 198 984
6/10 39 126570 24504 254 198 984
6/10 40 126806 24531 254 198 986
6/10 40 126800 24531 254 198 986
6/11 40 126800 24531 254 198 986
6/12 40 126800 24531 254 198 986
6/12 40 126800 24531 254 198 986
6/12 40 126800 24531 254 198 986
6/16 40 126800 24531 254 198 986
6/16 41 130134 24735 254 202 994
6/16 41 130124 24735 254 202 994
6/18 42 130410 24744 254 204 997
6/18 42 130378 24744 254 204 997
6/27 43 130818 24989 255 206 1001
6/30 44 52768 24989 255 206 1001
7/01 44 131408 25019 255 209 1004
7/01 44 131262 24987 255 210 1004
7/01 44 131176 24987 255 210 1004
7/01 44 131108 24987 255 210 1004
7/01 44 131070 24987 255 210 1004
7/02 45 130964 24965 255 211 1004
7/03 45 130966 24965 255 211 1004
7/03 45 130966 24965 255 211 1004
7/03 0 130966 24965 255 211 1004
7/03 1 130972 24965 255 211 1004
7/08 46 131184 24946 254 212 1005
7/08 46 131104 24946 254 212 1005
7/08 46 131048 24946 254 212 1005
7/09 0 131028 24946 254 212 1005
7/09 2 131050 24946 254 212 1005
7/09 3 131050 24946 254 212 1005
7/09 47 131996 24936 254 215 1004
7/10 47 131614 24940 254 217 1004
7/10 47 130876 24944 254 219 1004
7/10 47 130876 24944 254 219 1004
7/11 47 130890 24944 254 219 1004
7/14 48 131370 25022 254 219 1013
7/14 48 131144 25022 254 219 1013
7/14 48 131116 25022 254 219 1013
7/14 48 131066 25022 254 219 1013
7/16 49 131108 24933 253 219 1009
7/16 49 130944 24933 253 219 1009
7/16 49 130944 24933 253 219 1009
7/16 50 131110 24937 253 221 1009
7/16 50 130940 24937 253 221 1009
7/17 50 130938 24937 253 221 1009
7/17 50 130940 24937 253 221 1009
7/17 50 130936 24937 253 221 1009
7/17 50 130940 24937 253 221 1009
7/17 51 130934 24935 253 222 1010
7/18 52 131028 24966 253 222 1010
7/18 52 131042 24966 253 222 1010
7/26 53 131220 24980 253 223 1010
7/26 53 128596 24796 253 223 1002
7/29 54 131284 24974 253 222 1009
7/30 54 128662 24790 253 222 1001
7/30 1 128672 24790 253 222 1001
7/31 2 128680 24790 253 222 1001
7/31 55 128542 24798 253 222 1001
8/01 56 128498 24760 253 221 998
8/04 57 128524 24781 254 221 998
8/06 1 128530 24781 254 221 998
8/06 2 128530 24781 254 221 998
8/06 58 129092 24806 254 223 998
8/11 59 129136 24770 254 222 997
8/11 59 128992 24770 254 222 997
8/13 60 128844 24795 254 218 998
8/15 61 128824 24700 253 219 991
8/18 62 129190 24736 254 221 991
8/19 -1 128966 24727 254 221 991
8/19 63 128966 24727 254 221 991
8/19 64 129074 24735 254 221 991
8/19 64 129016 24713 254 221 991
8/20 65 128986 24669 253 221 992
8/21 65 128986 24669 253 221 992
8/21 65 128986 24669 253 221 992
8/21 65 128986 24669 253 221 992
8/23 66 128984 24652 253 222 991
8/24 66 128964 24652 253 222 991
8/24 66 128954 24652 253 222 991
8/24 66 128954 24652 253 222 991
8/25 67 128872 24655 253 222 991
8/26 67 128872 24655 253 222 991
8/26 67 128872 24655 253 222 991
8/27 68 129096 24673 253 223 992
8/28 68 129078 24673 253 223 992
8/28 68 129040 24673 253 223 992
8/28 68 129020 24673 253 223 992
9/03 69 129300 24690 253 224 992
9/03 69 129094 24697 253 225 992
9/03 69 129096 24697 253 225 992
9/03 69 129022 24697 253 225 992
9/05 70 129062 24712 253 228 990
9/05 70 129018 24712 253 228 990
9/11 71 129128 24690 253 230 986
9/11 71 129034 24690 253 230 986
9/11 71 129022 24690 253 230 986
9/12 71 129022 24690 253 230 986
9/15 72 129134 24705 253 229 985
9/15 72 128812 24495 253 229 955
9/16 73 128892 24480 253 229 954
9/16 3 128886 24480 253 229 954
9/18 4 129020 24528 253 230 955
9/18 4 129002 24528 253 230 955
9/22 5 128768 24294 253 230 955
9/22 6 27027 24528 253 230 955
9/22 5 128690 24216 253 230 955
9/22 5 128690 24216 253 230 955
9/23 6 128682 24216 253 230 955
9/23 6 128674 24207 253 230 955
9/24 7 128896 24439 253 230 955
10/21 8 128916 24439 253 230 955
10/21 9 128866 24439 253 230 955
10/22 -1 128866 24439 253 230 955
10/22 9 128866 24439 253 230 955
10/31 10 128872 24439 253 230 955
12/02 10 128796 24477 254 230 955
12/03 11 128830 24478 254 230 955
12/05 10 128832 24470 254 230 955
2/26 11 128832 24472 254 230 955
8/28 12 128822 24470 254 230 955
8/28 12 128822 24470 254 230 955
8/28 12 128826 24470 254 230 955
5/01 13 128828 24470 254 230 955

View file

@ -1,28 +1,27 @@
Assembling M5.XZAP.1 on Wednesday, October 22, 1986 09:45:48
Release: 9
Assembling M5.ZAP.13 on Sunday, May 1, 1988 13:55:06
Release: 13
64 Inserting M5FREQ.XZAP.1 (594 bytes)
658 Inserting M5DAT.ZAP.9 (25035 bytes)
25693 Inserting MACROS.ZAP.4 (0 bytes)
25693 Inserting MISC.ZAP.4 (1236 bytes)
26929 Inserting SYNTAX.ZAP.4 (0 bytes)
26929 Inserting PARSER.ZAP.4 (13085 bytes)
40014 Inserting VERBS.ZAP.5 (21161 bytes)
61175 Inserting GOAL.ZAP.1 (11194 bytes)
72369 Inserting PEOPLE.ZAP.1 (23137 bytes)
95506 Inserting CASTLE.ZAP.1 (10616 bytes)
106122 Inserting TOWER.ZAP.1 (8181 bytes)
114303 Inserting THINGS.ZAP.1 (2553 bytes)
116856 Inserting PLACES.ZAP.1 (848 bytes)
117704 Inserting GLOBAL.ZAP.1 (3165 bytes)
120869 Inserting COLORS.ZAP.1 (4243 bytes)
125112 Inserting M5STR.ZAP.9 (3754 bytes)
253 objects.
658 Inserting M5DAT.ZAP.13 (23812 bytes)
24470 Inserting M5PUR.ZAP.13 (1254 bytes)
25724 Inserting MISC.ZAP.9 (1226 bytes)
26950 Inserting PARSER.ZAP.12 (13044 bytes)
39994 Inserting VERBS.ZAP.10 (21117 bytes)
61111 Inserting GOAL.ZAP.7 (11204 bytes)
72315 Inserting PEOPLE.ZAP.6 (23145 bytes)
95460 Inserting CASTLE.ZAP.6 (10608 bytes)
106068 Inserting TOWER.ZAP.7 (8177 bytes)
114245 Inserting THINGS.ZAP.6 (2553 bytes)
116798 Inserting PLACES.ZAP.6 (846 bytes)
117644 Inserting GLOBAL.ZAP.7 (3193 bytes)
120837 Inserting COLORS.ZAP.6 (4237 bytes)
125074 Inserting M5STR.ZAP.13 (3754 bytes)
254 objects.
230 globals.
955 word vocabulary.
128866 bytes (126K).
24439 bytes of preload.
13860 bytes of impure.
128828 bytes (126K).
24470 bytes of preload.
13899 bytes of impure.
Outputting symbol tables

1339
m5.record

File diff suppressed because it is too large Load diff

1
m5.serial Normal file
View file

@ -0,0 +1 @@
67

53
m5.zap Normal file
View file

@ -0,0 +1,53 @@
.TIME
; Low core locations
%ZVERSION:: .BYTE 0
.BYTE FLAGS
%ZORKID:: ZORKID
%ENDLOD:: ENDLOD
%START:: START
%VOCAB:: VOCAB
%OBJECT:: OBJECT
%GLOBAL:: GLOBAL
%PURBOT:: IMPURE
%FLAGS:: .WORD 64
%SERIAL:: .WORD 0
%SERI1:: .WORD 0
%SERI2:: .WORD 0
%FWORDS:: WORDS
%PLENTH:: .WORD 0
%PCHKSM:: .WORD 0
%INTWRD:: .WORD 0
%SCRWRD:: .WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.INSERT "SS:<MOONMIST>M5FREQ" ;Frequent word table
.INSERT "SS:<MOONMIST>M5DAT" ; Data file
.INSERT "SS:<MOONMIST>M5PUR"
.INSERT "SS:<MOONMIST>MISC"
.INSERT "SS:<MOONMIST>PARSER"
.INSERT "SS:<MOONMIST>VERBS"
.INSERT "SS:<MOONMIST>GOAL"
.INSERT "SS:<MOONMIST>PEOPLE"
.INSERT "SS:<MOONMIST>CASTLE"
.INSERT "SS:<MOONMIST>TOWER"
.INSERT "SS:<MOONMIST>THINGS"
.INSERT "SS:<MOONMIST>PLACES"
.INSERT "SS:<MOONMIST>GLOBAL"
.INSERT "SS:<MOONMIST>COLORS"
.INSERT "SS:<MOONMIST>M5STR"
.END

48
m5.zil Normal file
View file

@ -0,0 +1,48 @@
"COMPILE/LOAD FILE for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<SETG ZDEBUGGING? <>>
<DEFINE DEBUG-CODE ('X "OPTIONAL" ('Y T))
<COND (,ZDEBUGGING? .X) (ELSE .Y)>>
<SETG NEW-VOC? T>
<FREQUENT-WORDS?>
<VERSION ZIP TIME>
<COND (<GASSIGNED? PREDGEN>
<PRINC "Compiling">
<ID 0>)
(T <PRINC "Loading">)>
<PRINC " MOONMIST: interactive fiction from Infocom!
">
ON!-INITIAL "for DEBUGR"
OFF!-INITIAL
ENABLE!-INITIAL
DISABLE!-INITIAL
<SET REDEFINE T>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<DIRECTIONS ;"Do not change the order of the first eight
without consulting Marc! -- per ENCHANTER"
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
<INSERT-FILE "MACROS">
<INSERT-FILE "MISC">
<INSERT-FILE "SYNTAX">
<INSERT-FILE "PARSER">
<INSERT-FILE "VERBS">
<INSERT-FILE "GOAL">
<INSERT-FILE "PEOPLE">
<INSERT-FILE "CASTLE">
<INSERT-FILE "TOWER">
<INSERT-FILE "THINGS">
<INSERT-FILE "PLACES">
<INSERT-FILE "GLOBAL">
<INSERT-FILE "COLORS">
<PROPDEF SIZE 5>

BIN
m5.zip

Binary file not shown.

16526
m5dat.zap Normal file

File diff suppressed because it is too large Load diff

200
m5freq.xzap Normal file
View file

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1294 648
.FSTR FSTR?2,", " ;769 770
.FSTR FSTR?3,"and " ;496 249
.FSTR FSTR?4,"you " ;486 244
.FSTR FSTR?5,". " ;385 386
.FSTR FSTR?6,"You " ;345 116
.FSTR FSTR?7,"that " ;330 111
.FSTR FSTR?8,"The " ;318 107
.FSTR FSTR?9,"to " ;312 313
.FSTR FSTR?10,"It's " ;265 54
.FSTR FSTR?11,"with " ;261 88
.FSTR FSTR?12,"of " ;228 229
.FSTR FSTR?13,"I " ;228 229
.FSTR FSTR?14,"your " ;210 71
.FSTR FSTR?15,"was " ;196 99
.FSTR FSTR?16,"There's " ;192 25
.FSTR FSTR?17,"in " ;179 180
.FSTR FSTR?18,"for " ;170 86
.FSTR FSTR?19,"can't " ;165 34
.FSTR FSTR?20,"don't " ;155 32
.FSTR FSTR?21,"is " ;149 150
.FSTR FSTR?22,"from " ;147 50
.FSTR FSTR?23,"about " ;132 34
.FSTR FSTR?24,"I'm " ;132 34
.FSTR FSTR?25,"just " ;120 41
.FSTR FSTR?26,"it " ;112 113
.FSTR FSTR?27,"something " ;112 15
.FSTR FSTR?28,"but " ;110 56
.FSTR FSTR?29,"her " ;108 55
.FSTR FSTR?30,"You're " ;105 16
.FSTR FSTR?31,"have " ;102 35
.FSTR FSTR?32,"ghost " ;100 26
.FSTR FSTR?33,"you're " ;96 17
.FSTR FSTR?34,"not " ;90 46
.FSTR FSTR?35,"Lionel's " ;90 11
.FSTR FSTR?36,"can " ;88 45
.FSTR FSTR?37,"this " ;87 30
.FSTR FSTR?38,"down " ;84 29
.FSTR FSTR?39,"This " ;84 22
.FSTR FSTR?40,"nothing " ;84 15
.FSTR FSTR?41,"Please " ;84 15
.FSTR FSTR?42,"are " ;82 42
.FSTR FSTR?43,"It " ;82 42
.FSTR FSTR?44,"secret " ;80 17
.FSTR FSTR?45,"figure " ;80 17
.FSTR FSTR?46,"one " ;78 40
.FSTR FSTR?47,"as " ;77 78
.FSTR FSTR?48,"That's " ;77 12
.FSTR FSTR?49,"Jack " ;76 20
.FSTR FSTR?50,"on " ;75 76
.FSTR FSTR?51,"But " ;75 26
.FSTR FSTR?52,"she " ;72 37
.FSTR FSTR?53,"all " ;72 37
.FSTR FSTR?54,"Your " ;72 19
.FSTR FSTR?55,"didn't " ;72 13
.FSTR FSTR?56,"see " ;70 36
.FSTR FSTR?57,"into " ;69 24
.FSTR FSTR?58,"find " ;69 24
.FSTR FSTR?59,"would " ;68 18
.FSTR FSTR?60,"looks " ;68 18
.FSTR FSTR?61,"his " ;66 34
.FSTR FSTR?62,"you've " ;66 12
.FSTR FSTR?63,"looking " ;66 12
.FSTR FSTR?64,"like " ;63 22
.FSTR FSTR?65,"know " ;63 22
.FSTR FSTR?66,"She " ;63 22
.FSTR FSTR?67,"at " ;62 63
.FSTR FSTR?68,"says" ;62 32
.FSTR FSTR?69,"has " ;62 32
.FSTR FSTR?70,"when " ;60 21
.FSTR FSTR?71,"what " ;60 21
.FSTR FSTR?72,"it's " ;60 16
.FSTR FSTR?73,"through " ;60 11
.FSTR FSTR?74,"you" ;59 60
.FSTR FSTR?75,"here" ;58 30
.FSTR FSTR?76,"says " ;57 20
.FSTR FSTR?77,"! " ;56 57
.FSTR FSTR?78,"too " ;56 29
.FSTR FSTR?79,"my " ;55 56
.FSTR FSTR?80,"dinner " ;55 12
.FSTR FSTR?81,"around " ;55 12
.FSTR FSTR?82,"want " ;54 19
.FSTR FSTR?83,"time " ;54 19
.FSTR FSTR?84,"look " ;54 19
.FSTR FSTR?85,"Lionel " ;54 10
.FSTR FSTR?86,"door" ;52 27
.FSTR FSTR?87,"young " ;52 14
.FSTR FSTR?88,"white " ;52 14
.FSTR FSTR?89,"think " ;52 14
.FSTR FSTR?90,"there " ;52 14
.FSTR FSTR?91,"seems " ;52 14
.FSTR FSTR?92,"right " ;52 14
.FSTR FSTR?93,"never " ;52 14
.FSTR FSTR?94,"dinner" ;52 14
.FSTR FSTR?95,"What " ;52 14
.FSTR FSTR?96,"out " ;50 26
;word frequency table of 96 most common words
WORDS:: .TABLE
FSTR?1
FSTR?2
FSTR?3
FSTR?4
FSTR?5
FSTR?6
FSTR?7
FSTR?8
FSTR?9
FSTR?10
FSTR?11
FSTR?12
FSTR?13
FSTR?14
FSTR?15
FSTR?16
FSTR?17
FSTR?18
FSTR?19
FSTR?20
FSTR?21
FSTR?22
FSTR?23
FSTR?24
FSTR?25
FSTR?26
FSTR?27
FSTR?28
FSTR?29
FSTR?30
FSTR?31
FSTR?32
FSTR?33
FSTR?34
FSTR?35
FSTR?36
FSTR?37
FSTR?38
FSTR?39
FSTR?40
FSTR?41
FSTR?42
FSTR?43
FSTR?44
FSTR?45
FSTR?46
FSTR?47
FSTR?48
FSTR?49
FSTR?50
FSTR?51
FSTR?52
FSTR?53
FSTR?54
FSTR?55
FSTR?56
FSTR?57
FSTR?58
FSTR?59
FSTR?60
FSTR?61
FSTR?62
FSTR?63
FSTR?64
FSTR?65
FSTR?66
FSTR?67
FSTR?68
FSTR?69
FSTR?70
FSTR?71
FSTR?72
FSTR?73
FSTR?74
FSTR?75
FSTR?76
FSTR?77
FSTR?78
FSTR?79
FSTR?80
FSTR?81
FSTR?82
FSTR?83
FSTR?84
FSTR?85
FSTR?86
FSTR?87
FSTR?88
FSTR?89
FSTR?90
FSTR?91
FSTR?92
FSTR?93
FSTR?94
FSTR?95
FSTR?96
.ENDT
.ENDI

823
m5pur.zap Normal file
View file

@ -0,0 +1,823 @@
; PURE TABLES ARE DEFINED HERE
PURTBL::
PT?104::
T?QWP1-TABLE:: .TABLE
25
W?AREN
W?COULDN
W?DIDN
W?DON
W?HASN
W?HAVEN
W?HE
W?I
W?I
W?I
W?I
W?ISN
W?IT
W?LET
W?SHE
W?SHOULD
W?THAT
W?THEY
W?WASN
W?WE
W?WE
W?WEREN
W?WON
W?WOULDN
W?YOU
.ENDT
PT?204::
T?QWP2-TABLE:: .TABLE
25
W?T
W?T
W?T
W?T
W?T
W?T
W?S
W?D
W?LL
W?M
W?VE
W?T
W?S
W?S
W?S
W?T
W?S
W?RE
W?T
W?RE
W?LL
W?T
W?T
W?T
W?RE
.ENDT
PT?304::
T?QUESTION-WORD-TABLE:: .TABLE
21
W?AM
W?ARE
W?CAN
W?COULD
W?DID
W?DO
W?HAS
W?HAVE
W?HOW
W?IS
W?LIKE
W?MAY
W?SHALL
W?SHOULD
W?WANT
W?WAS
W?WERE
W?WHEN
W?WHICH
W?WHY
W?WOULD
.ENDT
PT?404::
T?NUMBER-WORD-TABLE:: .TABLE
20
W?ZERO
W?ONE
W?TWO
W?THREE
W?FOUR
W?FIVE
W?SIX
W?SEVEN
W?EIGHT
W?NINE
W?TEN
W?ELEVEN
W?TWELVE
W?TWENTY
W?THIRTY
W?FORTY
W?FIFTY
W?SIXTY
W?HUNDRED
W?THOUSAND
.ENDT
PT?504::
T?NAUGHTY-WORD-TABLE:: .TABLE
25
W?ASSHOLE
W?BASTARD
W?BITCH
W?COCK
W?COCKSUCKER
W?CRAP
W?CUNT
W?CURSE
W?CUSS
W?DAMN
W?DAMNED
W?DARN
W?FUCK
W?FUCKED
W?FUCKING
W?FUDGE
W?GODDAMN
W?HELL
W?PEE
W?PISS
W?SCREW
W?SHIT
W?SHITHEAD
W?SUCK
W?SUCKS
.ENDT
PT?105::
T?TRAILS-ALONG:: .TABLE
4
STR?50
STR?51
STR?52
STR?53
.ENDT
PT?205::
T?HO-HUM:: .TABLE
2
STR?59
STR?60
.ENDT
PT?305::
T?WHO-CARES-VERB:: .TABLE
4
STR?5
STR?5
STR?71
STR?72
.ENDT
PT?405::
T?WHO-CARES-TBL:: .TABLE
4
STR?73
STR?74
STR?75
STR?76
.ENDT
PT?106::
T?MAIN-LINE:: .TABLE
0
GARDEN
P?OUT
P?IN
MAZE
P?OUT
P?EAST
COURTYARD
P?SOUTH
P?NORTH
FOYER
P?SOUTH
P?NORTH
GREAT-HALL
P?WEST
P?EAST
CORR-1
P?NORTH
P?SOUTH
DINING-ROOM
P?IN
P?OUT
BACKSTAIRS
P?DOWN
P?UP
KITCHEN
0
.ENDT
PT?206::
T?BED-LINE:: .TABLE
0
WEST-HALL
P?SOUTH
P?NW
GALLERY
P?NE
P?SOUTH
EAST-HALL
0
.ENDT
PT?306::
T?TOWER-LINE:: .TABLE
0
LOVER-PATH
P?IN
P?NW
DUNGEON
P?EAST
P?WEST
BASEMENT
P?UP
P?DOWN
JUNCTION
P?WEST
P?EAST
OLD-GREAT-HALL
P?UP
P?DOWN
CORR-2
P?UP
P?DOWN
CORR-3
P?UP
P?DOWN
DECK
0
.ENDT
PT?406::
T?PASS-LINE:: .TABLE
0
SECRET-LANDING-JACK
P?DOWN
P?WEST
PASSAGE-1
P?UP
P?DOWN
SECRET-LANDING-TAM
P?NORTH
P?SOUTH
SECRET-LANDING-LIB
P?EAST
P?WEST
SECRET-IAN-PASSAGE
P?EAST
P?WEST
HYDE-CLOSET
P?EAST
P?WEST
MIDPOINT
P?EAST
P?WEST
WENDISH-CORNER
P?EAST
P?NORTH
IRIS-CLOSET
P?SOUTH
P?NORTH
YOUR-CLOSET
P?DOWN
P?UP
DRAWING-CLOSET
0
.ENDT
PT?506::
T?TRANSFER-TABLE:: .TABLE
0
0
GREAT-HALL
GALLERY
CORR-1
JUNCTION
GREAT-HALL
GALLERY
GALLERY
GREAT-HALL
0
0
GALLERY
GREAT-HALL
YOUR-ROOM
YOUR-CLOSET
JUNCTION
CORR-1
JUNCTION
CORR-1
0
0
LIBRARY
SECRET-LANDING-LIB
YOUR-CLOSET
YOUR-ROOM
YOUR-CLOSET
YOUR-ROOM
SECRET-LANDING-LIB
LIBRARY
0
0
.ENDT
PT?606::
T?DIR-STRINGS:: .TABLE
P?SOUTH
STR?148
P?NORTH
STR?149
P?EAST
STR?150
P?WEST
STR?151
P?UP
STR?152
P?DOWN
STR?153
P?IN
STR?154
P?OUT
STR?155
P?SE
STR?156
P?NW
STR?157
P?SW
STR?158
P?NE
STR?159
0
.ENDT
PT?706::
T?GOAL-TABLES:: .TABLE
T?206
T?306
T?406
T?506
T?606
T?706
T?806
T?906
T?1006
T?1106
T?1206
.ENDT
PT?806::
T?TOUR-PATH:: .TABLE
FOYER
DRAWING-ROOM
GREAT-HALL
GALLERY
YOUR-ROOM
0
.ENDT
PT?906::
T?SEARCH-ROOMS:: .TABLE
19
OLD-GREAT-HALL
BASEMENT
STUDY
LIBRARY
OFFICE
LUMBER-ROOM
CHAPEL
GAME-ROOM
DECK
COURTYARD
MAZE
GARDEN
GALLERY
FOYER
DRAWING-ROOM
GREAT-HALL
SITTING-ROOM
DINING-ROOM
KITCHEN
.ENDT
PT?107::
T?QUESTIONERS:: .TABLE
.BYTE 9
.BYTE FRIEND
.BYTE BUTLER
.BYTE BUTLER
.BYTE DOCTOR
.BYTE OFFICER
.BYTE BUTLER
.BYTE DEB
.BYTE OFFICER
.BYTE BUTLER
.ENDT
PT?207::
T?CHARACTER-TABLE:: .TABLE
PLAYER
FRIEND
LORD
PAINTER
DOCTOR
OFFICER
DEALER
DEB
BUTLER
LOVER
GHOST-NEW
COUSIN
MAID
DRAGON
BUFFALO-HEAD
RHINO-HEAD
GHOST-OLD
.ENDT
PT?307::
T?GUEST-TABLE:: .TABLE
6
FRIEND
DEB
OFFICER
DOCTOR
DEALER
PAINTER
.ENDT
PT?407::
T?CHAR-ROOM-TABLE:: .TABLE
15
YOUR-ROOM
TAMARA-ROOM
JACK-ROOM
VIVIEN-ROOM
WENDISH-ROOM
IAN-ROOM
HYDE-ROOM
IRIS-ROOM
KITCHEN
LIMBO
LIMBO
DRAWING-ROOM
LIBRARY
SITTING-ROOM
BACKSTAIRS
.ENDT
PT?507::
T?LDESC-STRINGS:: .TABLE
25
STR?197
STR?198
STR?199
STR?200
0
STR?201
STR?202
STR?203
STR?204
STR?205
STR?206
STR?207
STR?208
STR?145
0
STR?209
STR?210
STR?211
STR?146
STR?212
STR?213
STR?214
STR?215
STR?216
STR?217
.ENDT
PT?108::
PT?208:: .TABLE
3
W?DOOR
W?CAR
CAR-DOOR-PSEUDO
.ENDT
PT?308:: .TABLE
12
W?RADIO
0
RANDOM-PSEUDO
W?ARMS
W?TRESYLLIAN
BROCHURE-PSEUDO
W?CREST
W?TRESYLLIAN
BROCHURE-PSEUDO
W?CARVING
W?WOOD
BROCHURE-PSEUDO
.ENDT
PT?408::
T?PIANO-PIECES:: .TABLE
STR?233
STR?234
STR?235
STR?236
STR?237
STR?238
STR?239
STR?240
.ENDT
PT?508:: .TABLE
12
W?VASE
W?PORCEL
BROCHURE-PSEUDO
W?VASES
W?PORCEL
BROCHURE-PSEUDO
W?SHELF
0
BROCHURE-PSEUDO
W?SHELVES
0
BROCHURE-PSEUDO
.ENDT
PT?608:: .TABLE
3
W?SINK
W?KITCHEN
RANDOM-PSEUDO
.ENDT
PT?708:: .TABLE
18
W?BATH
W?MY
BATH-PSEUDO
W?TUB
W?BATH
BATH-PSEUDO
W?BATHTUB
W?MY
BATH-PSEUDO
W?TUB
W?MY
BATH-PSEUDO
W?TOILET
W?MY
TOILET-PSEUDO
W?SINK
W?MY
RANDOM-PSEUDO
.ENDT
PT?808:: .TABLE
6
W?BED
W?IRIS'S
BED-PSEUDO
W?BED
W?HER
BED-PSEUDO
.ENDT
PT?908:: .TABLE
6
W?BED
W?DOC'S
BED-PSEUDO
W?BED
W?HIS
BED-PSEUDO
.ENDT
PT?1008:: .TABLE
12
W?BOOK
0
RANDOM-PSEUDO
W?BOOKS
0
RANDOM-PSEUDO
W?BED
W?VIV'S
BED-PSEUDO
W?BED
W?HER
BED-PSEUDO
.ENDT
PT?1108:: .TABLE
6
W?BED
W?IAN'S
BED-PSEUDO
W?BED
W?HIS
BED-PSEUDO
.ENDT
PT?1208:: .TABLE
6
W?BED
W?HYDE'S
BED-PSEUDO
W?BED
W?HIS
BED-PSEUDO
.ENDT
PT?109:: .TABLE
3
W?GEAR
0
RANDOM-PSEUDO
.ENDT
PT?209:: .TABLE
15
W?BED
W?JACK'S
BED-PSEUDO
W?BED
W?HIS
BED-PSEUDO
W?TV
W?COLOR
TV-PSEUDO
W?TELEVI
W?COLOR
TV-PSEUDO
W?CHAIR
W?OVERST
RANDOM-PSEUDO
.ENDT
PT?309:: .TABLE
6
W?PRINT
W?HUNTING
RANDOM-PSEUDO
W?PRINTS
W?HUNTING
RANDOM-PSEUDO
.ENDT
PT?409:: .TABLE
3
W?STOOL
W?TALL
RANDOM-PSEUDO
.ENDT
PT?509:: .TABLE
6
W?KIT
0
RANDOM-PSEUDO
W?MIRROR
W?HAND
DRESSING-MIRROR-F
.ENDT
PT?609:: .TABLE
9
W?CAGE
W?ORNATE
CAGE-PSEUDO
W?CAGE
W?BIRD
CAGE-PSEUDO
W?HORSE
W?HOBBY
RANDOM-PSEUDO
.ENDT
PT?709:: .TABLE
15
W?ALTAR
0
RANDOM-PSEUDO
W?PULPIT
0
RANDOM-PSEUDO
W?FONT
0
RANDOM-PSEUDO
W?PEW
W?FAMILY
RANDOM-PSEUDO
W?PEWS
W?FAMILY
RANDOM-PSEUDO
.ENDT
PT?809:: .TABLE
24
W?TABLE
W?CARD
BILLIARD-PSEUDO
W?TABLE
W?BILLIARD
BILLIARD-PSEUDO
W?RACK
W?CUE
RANDOM-PSEUDO
W?CUE
0
RANDOM-PSEUDO
W?RACK
W?GUN
RANDOM-PSEUDO
W?GUN
0
RANDOM-PSEUDO
W?TRAY
W?ASH
RANDOM-PSEUDO
W?TRAYS
W?ASH
RANDOM-PSEUDO
.ENDT
PT?111::
T?COR-1:: .TABLE
P?EAST
P?WEST
CORR-1
JUNCTION
0
.ENDT
PT?211::
T?COR-2:: .TABLE
P?NORTH
P?SOUTH
GALLERY-CORNER
GALLERY
0
.ENDT
PT?311::
T?COR-4:: .TABLE
P?UP
P?DOWN
LUMBER-ROOM
TAMARA-ROOM
0
.ENDT
PT?112::
T?WING-STAIRS:: .TABLE
3
KITCHEN
GREAT-HALL
GALLERY
.ENDT
PT?212::
T?TOWER-STAIRS:: .TABLE
4
BASEMENT
OLD-GREAT-HALL
CORR-2
CORR-3
.ENDT
PT?113::
T?COLOR-WORDS:: .TABLE
4
W?YELLOW
W?RED
W?BLUE
W?GREEN
.ENDT
PT?213::
T?COLOR-ADJS:: .TABLE
4
A?YELLOW
A?RED
A?BLUE
A?GREEN
.ENDT
PT?313::
T?COLOR-LETTERS:: .TABLE
4
121
114
98
103
.ENDT
PURTND::
.ENDI

309
m5str.zap Normal file
View file

@ -0,0 +1,309 @@
; STRINGS ARE DEFINED HERE
STRBEG::
.GSTR STR?14,"PRSO"
.GSTR STR?25,"Step outside and say that!"
.GSTR STR?52," stays at your side."
.GSTR STR?97,"dressed"
.GSTR STR?176,"""I won't say what I think of her, but it rhymes with 'rich.'"""
.GSTR STR?250," a bunch of nasty-looking instruments"
.GSTR STR?259,"swing"
.GSTR STR?12,"Preaction"
.GSTR STR?44,"turn off"
.GSTR STR?45,"turn on"
.GSTR STR?90,"a sink"
.GSTR STR?132,"reach"
.GSTR STR?260,"Lord Jack's private study has rich mahogany furniture and hunting prints on the walls."
.GSTR STR?48,"extraordinary"
.GSTR STR?88,"attack"
.GSTR STR?107," Greet"
.GSTR STR?147,"too sleepy to listen"
.GSTR STR?155,"outer"
.GSTR STR?189," glasses for closeup art work"
.GSTR STR?212,"ignoring you"
.GSTR STR?265,"too small"
.GSTR STR?247," remember that you're not dressed"
.GSTR STR?264,"rusted shut"
.GSTR STR?272,"A ladder leads down, a passage leads east, and a walkway leads "
.GSTR STR?65,"off"
.GSTR STR?115,"look inside"
.GSTR STR?116,"look outside"
.GSTR STR?117,"look through"
.GSTR STR?118,"look up"
.GSTR STR?198,"sipping sherry"
.GSTR STR?162," the bedpost"
.GSTR STR?227,"Tall dark hedges surround you like walls, with walkways in all directions."
.GSTR STR?245," the remains of dinner"
.GSTR STR?270," the clapper"
.GSTR STR?276," the lips of the clasp are sprung apart"
.GSTR STR?16," (something).]
"
.GSTR STR?43,"pick up"
.GSTR STR?46,"unusual"
.GSTR STR?111,"[You didn't say w"
.GSTR STR?161,"turn"
.GSTR STR?238,"sex"
.GSTR STR?23,"You ought to be ashamed of yourself!"
.GSTR STR?94,"dance"
.GSTR STR?139,"remove"
.GSTR STR?173,"Are there more girl sleuths like you in the States, my dear?"
.GSTR STR?202,"sobbing quietly"
.GSTR STR?236,"quar"
.GSTR STR?278,"on it"
.GSTR STR?21,"What charming language!"
.GSTR STR?33,"begin"
.GSTR STR?47,"interesting"
.GSTR STR?73,"n't appear interested"
.GSTR STR?81,"What a concept!"
.GSTR STR?127,"ou stop searching"
.GSTR STR?192," discovered a strand of fabric from her gown, snagged on a jagged bit of brickwork."
.GSTR STR?243,"This room is impeccably furnished, but it's too formal for relaxing.
"
.GSTR STR?244,"The clockwork timer prevents it.
"
.GSTR STR?246,"You peek in and see nothing interesting in there."
.GSTR STR?257,"Which direction do you want to go in?"
.GSTR STR?31,"noun"
.GSTR STR?92,"hurt"
.GSTR STR?223,"The dark stone turrets rise toward the misty sky.
"
.GSTR STR?54,"feel a cold shiver run down your back."
.GSTR STR?57,"feel a cobweb brush your face."
.GSTR STR?74,"n't care"
.GSTR STR?125,"Rubbing"
.GSTR STR?138,"Before you unfasten even the first button, you decide that this isn't a good place to undress.
"
.GSTR STR?151,"west"
.GSTR STR?9,"Not Here"
.GSTR STR?18,"FIND"
.GSTR STR?39,"identified the ghost"
.GSTR STR?140,"Reached"
.GSTR STR?150,"east"
.GSTR STR?178,"Tresyllian"
.GSTR STR?197,"dancing"
.GSTR STR?41,"drive"
.GSTR STR?105,"refuse"
.GSTR STR?112,"You think it over. There's no need to get violent.
"
.GSTR STR?172,"Are you one of those brutally fascinating American private eyes?"
.GSTR STR?182,"The girl is a stylish London deb type. Her dark hair is cut boyishly short. Her height and figure would make her a perfect high-fashion model."
.GSTR STR?195,"The ghost only cackles in response.
"
.GSTR STR?268,"The game room has a billiard table and card table, with various chairs and standing ash trays. On the wall are a cue rack, gun rack, and mounted heads of a rhino and a cape buffalo."
.GSTR STR?32,"[I assume you mean:"
.GSTR STR?77,"That's ridiculous!"
.GSTR STR?84,"look"
.GSTR STR?149,"north"
.GSTR STR?157,"northwest"
.GSTR STR?159,"northeast"
.GSTR STR?186,"examining objects"
.GSTR STR?255,"That's not the way to go up from here."
.GSTR STR?37,"verbose"
.GSTR STR?82,"Like, totally grody, for sure."
.GSTR STR?110,"kill"
.GSTR STR?124,"in"
.GSTR STR?229," an assortment of umbrellas"
.GSTR STR?254," an assortment of wine"
.GSTR STR?262," an assortment of jewelry"
.GSTR STR?60," is a waste of time."
.GSTR STR?120,"Pushing"
.GSTR STR?263,"The jewel is missing from its setting!"
.GSTR STR?104,"here"
.GSTR STR?133," to"
.GSTR STR?153,"downstairs"
.GSTR STR?208,"lounging and chatting"
.GSTR STR?10,"Actor"
.GSTR STR?19,"ask about"
.GSTR STR?50," walks a few steps behind."
.GSTR STR?53," walks along with you."
.GSTR STR?87," Ask"
.GSTR STR?122," in"
.GSTR STR?174,"You've seen that room, have you not?"
.GSTR STR?222,"""Yes, the oldest parts of the castle hold ancient secrets, some fascinating and some not."""
.GSTR STR?35,"superbrief"
.GSTR STR?136,"(The castle is south of here.)
"
.GSTR STR?214,"playing the piano"
.GSTR STR?249,"lift"
.GSTR STR?1,"is"
.GSTR STR?22,"Computers aren't impressed by naughty words!"
.GSTR STR?24,"Hey, save that talk for the locker room!"
.GSTR STR?67,"locked"
.GSTR STR?91,"get in"
.GSTR STR?113,"standing up"
.GSTR STR?160,"Lionel's voice"
.GSTR STR?163,"stand up"
.GSTR STR?240,"oc"
.GSTR STR?271," into darkness.
"
.GSTR STR?75," out a loud yawn"
.GSTR STR?179," a glimpse of a whitish figure from the rear"
.GSTR STR?232,"tug at"
.GSTR STR?280,"It's a strand of shiny black pearls, the rarest and most precious kind in the world!"
.GSTR STR?61,"closed"
.GSTR STR?213,"searching"
.GSTR STR?273,"The passage leads east and west into darkness.
"
.GSTR STR?4,"empti"
.GSTR STR?15,"Container"
.GSTR STR?66,"open"
.GSTR STR?148,"south"
.GSTR STR?156,"southeast"
.GSTR STR?158,"southwest"
.GSTR STR?185,"""Dear me,"" he giggles nervously, ""I'm afraid you've found out my little secret! A lady friend, you see, begged me to shave off my mustache. I did so just before coming to Cornwall. But then I felt so naked without it, that I bought a hair piece until I could grow back my own.""
"
.GSTR STR?230," introduces "
.GSTR STR?261,"move"
.GSTR STR?17,"locate"
.GSTR STR?68,"unlocked"
.GSTR STR?119,"unlock"
.GSTR STR?142,"appear"
.GSTR STR?203,"poised to attack"
.GSTR STR?204,"waiting patiently"
.GSTR STR?6,"kiss"
.GSTR STR?26,"And so's your old man!"
.GSTR STR?27,"I beg your pardon?"
.GSTR STR?252,"The stairs curve up to the right.
"
.GSTR STR?253,"The stairs curve down to the left.
"
.GSTR STR?55,"hear footsteps behind you, but no one is there."
.GSTR STR?56,"hear a door creak open... or was it the wind?"
.GSTR STR?58,"hear a scurrying sound underfoot."
.GSTR STR?69,"angry"
.GSTR STR?123,"There's not enough room.
"
.GSTR STR?187,"studying colors"
.GSTR STR?226,"The thickening mist has made it too slippery.
"
.GSTR STR?248,"There are bedrooms to the east and west. The gallery lies south."
.GSTR STR?258,"There's a telescope mounted on a swinging wall bracket near a small uncurtained window."
.GSTR STR?135,"not asleep"
.GSTR STR?169,"Is it a case that brings you to Cornwall?"
.GSTR STR?2,"has"
.GSTR STR?29,"AGAIN"
.GSTR STR?38,"arrested the villain"
.GSTR STR?85,"arrested"
.GSTR STR?102,"bang"
.GSTR STR?219,"""I can't say that I ever noticed her much.""
"
.GSTR STR?137,"move around within"
.GSTR STR?154,"inner"
.GSTR STR?167,"Do you wish me to do so before I leave?"
.GSTR STR?177,"surveying his domain"
.GSTR STR?196,"long blonde hair"
.GSTR STR?36,"brief"
.GSTR STR?76," impatient"
.GSTR STR?143," gets in your way"
.GSTR STR?188,"She is a tall, tawny-haired woman of vintage beauty and uncertain age."
.GSTR STR?206,"preparing dinner"
.GSTR STR?210,"preparing to leave"
.GSTR STR?215,"following you"
.GSTR STR?224,"leave"
.GSTR STR?225,"do that to"
.GSTR STR?64,"on"
.GSTR STR?134,"""You're quite welcome, I'm sure.""
"
.GSTR STR?164,"looking at you hopefully"
.GSTR STR?168,"Am I right in assuming that you are the well-known young American detective?"
.GSTR STR?181,"looking coy"
.GSTR STR?183,"looking debonair"
.GSTR STR?184,"looking muddled"
.GSTR STR?190,"awaiting orders"
.GSTR STR?193,"Can you see where I mean?"
.GSTR STR?200,"looking at you with suspicion"
.GSTR STR?217,"looking sleepy"
.GSTR STR?256,"start"
.GSTR STR?275,"It says, ""JUST PRESS THE BUTTON."""
.GSTR STR?78,"Surely you jest."
.GSTR STR?93,"too busy"
.GSTR STR?242,"play"
.GSTR STR?277,"too big"
.GSTR STR?5,"do"
.GSTR STR?7,"push"
.GSTR STR?59," won't help any."
.GSTR STR?89,"Ahhh! How refreshing!
"
.GSTR STR?108," Apologize to"
.GSTR STR?51," trails along."
.GSTR STR?70,"peeved"
.GSTR STR?131,"smell"
.GSTR STR?199,"watching you"
.GSTR STR?20,"TELL ME ABOUT"
.GSTR STR?106,"accept"
.GSTR STR?128,"shoot"
.GSTR STR?152,"upstairs"
.GSTR STR?211,"deep in thought"
.GSTR STR?96," Wear"
.GSTR STR?103,"too far away"
.GSTR STR?130," Show"
.GSTR STR?141,"Enroute"
.GSTR STR?201,"walking along"
.GSTR STR?231,"in this room"
.GSTR STR?234,"duet"
.GSTR STR?266,"It portrays, in vividly glowing colors, Eve tempting Adam with the forbidden apple in the Garden of Eden."
.GSTR STR?63,"try to enter"
.GSTR STR?80,"Not bloody likely."
.GSTR STR?175,"hug"
.GSTR STR?3,"tri"
.GSTR STR?100,"empty"
.GSTR STR?146,"out cold"
.GSTR STR?269,"too heavy"
.GSTR STR?11,"Room (M-BEG)"
.GSTR STR?86," famous young detective"
.GSTR STR?121,"being worn"
.GSTR STR?170,"Have you a theory about the castle ghost?"
.GSTR STR?30,"verb"
.GSTR STR?79,"Don't be silly."
.GSTR STR?98,"on the floor"
.GSTR STR?99,"on the ground"
.GSTR STR?114,"a way to lock"
.GSTR STR?220,"""I'm shocked!""
"
.GSTR STR?228," dark water"
.GSTR STR?235,"trio"
.GSTR STR?237,"quin"
.GSTR STR?13,"PRSI"
.GSTR STR?28,"OOPS"
.GSTR STR?34,"end"
.GSTR STR?40,"go"
.GSTR STR?71,"let"
.GSTR STR?101,"an opening in"
.GSTR STR?8,"Impatient"
.GSTR STR?83,"You can't be serious!"
.GSTR STR?165,"She's a beautiful red-haired young woman of average height."
.GSTR STR?221,"""Hmm... That certainly is interesting.""
"
.GSTR STR?251," Vivien's brushes and thinner"
.GSTR STR?49,"special"
.GSTR STR?72,"seem"
.GSTR STR?144," says hello"
.GSTR STR?166,"You did read my letter, and not just give it a hasty glance?"
.GSTR STR?191,"He's a short white-haired gentle man, impeccably dressed tonight in white gloves and tails."
.GSTR STR?207,"listening to you"
.GSTR STR?209,"listening"
.GSTR STR?274," poison dart"
.GSTR STR?279,"You don't find anything new there.
"
.GSTR STR?42,"wait until"
.GSTR STR?95,"undressed"
.GSTR STR?205,"eating with relish"
.GSTR STR?216,"brushing her hair"
.GSTR STR?241,"sit"
.GSTR STR?62,"take"
.GSTR STR?109,"nod"
.GSTR STR?145,"asleep"
.GSTR STR?180,"""Dashed if I'm going to have my digestion upset by Gladys's whining, the odious little twit!"
.GSTR STR?194,"lurking in the shadows"
.GSTR STR?218,"smile"
.GSTR STR?239,"sep"
.GSTR STR?267,"knock"
.GSTR STR?126," Say to"
.GSTR STR?129," Ask about"
.GSTR STR?171,"May I offer one last suggestion?"
.GSTR STR?233,"solo"
.ENDI

2
macros.zap Normal file
View file

@ -0,0 +1,2 @@
.ENDI

349
misc.zap Normal file
View file

@ -0,0 +1,349 @@
.FUNCT GO
START::
?FCN: CALL V-VERSION
CALL INTRO
CALL MAIN-LOOP
JUMP ?FCN
.FUNCT PRINTT,OBJ
EQUAL? OBJ,TURN \?CCL3
LESS? 1,P-NUMBER \?CCL3
PRINTC 32
PRINTN P-NUMBER
PRINTI " minutes"
RTRUE
?CCL3: EQUAL? OBJ,WINDOW \?CCL9
PRINTI " the window"
RTRUE
?CCL9: CALL THE?,OBJ
PRINTC 32
PRINTD OBJ
RTRUE
.FUNCT THE?,OBJ
FSET? OBJ,NARTICLEBIT /?CND1
IN? OBJ,ROOMS /?PRG8
FSET? OBJ,SEENBIT \?CCL5
?PRG8: PRINTI " the"
JUMP ?CND1
?CCL5: FSET? OBJ,VOWELBIT \?PRG14
PRINTI " an"
JUMP ?CND1
?PRG14: PRINTI " a"
?CND1: FSET OBJ,SEENBIT
RTRUE
.FUNCT START-SENTENCE,OBJ
CALL THIS-IS-IT,OBJ
EQUAL? OBJ,PLAYER \?CCL3
PRINTI "You"
RTRUE
?CCL3: EQUAL? OBJ,NIGHTLAMP \?CCL7
PRINTI "Your lamp"
RTRUE
?CCL7: EQUAL? OBJ,LUGGAGE \?CCL11
PRINTI "Your luggage"
RTRUE
?CCL11: EQUAL? OBJ,BED \?CCL15
PRINTI "Your bed"
RTRUE
?CCL15: EQUAL? OBJ,YOUR-COLOR \?CCL19
PRINTI "Your favorite color"
RTRUE
?CCL19: EQUAL? OBJ,YOUR-ROOM \?CCL23
PRINTI "Your room"
RTRUE
?CCL23: EQUAL? OBJ,YOUR-BATHROOM \?CCL27
PRINTI "Your bathroom"
RTRUE
?CCL27: EQUAL? OBJ,YOUR-CLOSET \?CCL31
PRINTI "Your secret entrance"
RTRUE
?CCL31: EQUAL? OBJ,DINNER \?CND1
PRINTI "Your dinner"
RTRUE
?CND1: FSET? OBJ,NARTICLEBIT /?CND37
FSET? OBJ,SEENBIT \?CCL41
PRINTI "The "
JUMP ?CND37
?CCL41: FSET? OBJ,VOWELBIT \?PRG49
PRINTI "An "
JUMP ?CND37
?PRG49: PRINTI "A "
?CND37: FSET OBJ,SEENBIT
PRINTD OBJ
RTRUE
.FUNCT PRINTA,O
FSET? O,NARTICLEBIT /?PRG11
FSET? O,VOWELBIT \?PRG9
PRINTI "an "
JUMP ?PRG11
?PRG9: PRINTI "a "
?PRG11: PRINTD O
RTRUE
.FUNCT THIS-IS-IT,OBJ
EQUAL? OBJ,FALSE-VALUE,NOT-HERE-OBJECT,PLAYER /TRUE
EQUAL? OBJ,INTDIR,GLOBAL-HERE,ROOMS /TRUE
EQUAL? PRSA,V?WALK \?CND1
EQUAL? OBJ,PRSO /TRUE
?CND1: FSET? OBJ,PERSONBIT /?CCL11
GET P-ADJW,NOW-PRSI
PUT P-IT-WORDS,0,STACK
GET P-NAMW,NOW-PRSI
PUT P-IT-WORDS,1,STACK
FSET IT,TOUCHBIT
SET 'P-IT-OBJECT,OBJ
RTRUE
?CCL11: FSET? OBJ,FEMALE \?CCL13
FSET HER,TOUCHBIT
SET 'P-HER-OBJECT,OBJ
RTRUE
?CCL13: FSET HIM,TOUCHBIT
SET 'P-HIM-OBJECT,OBJ
RTRUE
.FUNCT NO-PRONOUN?,OBJ,CAP=0
EQUAL? OBJ,PLAYER /FALSE
FSET? OBJ,PERSONBIT /?CCL5
EQUAL? OBJ,P-IT-OBJECT \?CND1
FSET? IT,TOUCHBIT \?CND1
RFALSE
?CCL5: FSET? OBJ,FEMALE \?CCL11
EQUAL? OBJ,P-HER-OBJECT \?CND1
FSET? HER,TOUCHBIT \?CND1
RFALSE
?CCL11: EQUAL? OBJ,P-HIM-OBJECT \?CND1
FSET? HIM,TOUCHBIT /FALSE
?CND1: ZERO? CAP \?CCL22
CALL PRINTT,OBJ
JUMP ?CND20
?CCL22: EQUAL? CAP,1,TRUE-VALUE \?CND20
CALL START-SENTENCE,OBJ
?CND20: CALL THIS-IS-IT,OBJ
RTRUE
.FUNCT HE-SHE-IT,OBJ,CAP=0,VERB=0
CALL NO-PRONOUN?,OBJ,CAP
ZERO? STACK \?CND1
FSET? OBJ,PERSONBIT /?CCL5
ZERO? CAP \?CCL8
PRINTI " it"
JUMP ?CND1
?CCL8: EQUAL? CAP,1,TRUE-VALUE \?CND1
PRINTI "It"
JUMP ?CND1
?CCL5: EQUAL? OBJ,PLAYER \?CCL15
ZERO? CAP \?CCL18
PRINTI " you"
JUMP ?CND1
?CCL18: EQUAL? CAP,1,TRUE-VALUE \?CND1
PRINTI "You"
JUMP ?CND1
?CCL15: FSET? OBJ,FEMALE \?CCL25
ZERO? CAP \?CCL28
PRINTI " she"
JUMP ?CND1
?CCL28: EQUAL? CAP,1,TRUE-VALUE \?CND1
PRINTI "She"
JUMP ?CND1
?CCL25: ZERO? CAP \?CCL36
PRINTI " he"
JUMP ?CND1
?CCL36: EQUAL? CAP,1,TRUE-VALUE \?CND1
PRINTI "He"
?CND1: ZERO? VERB /FALSE
PRINTC 32
EQUAL? OBJ,PLAYER \?PRG68
EQUAL? VERB,STR?1 \?CCL51
PRINTI "are"
RTRUE
?CCL51: EQUAL? VERB,STR?2 \?CCL55
PRINTI "have"
RTRUE
?CCL55: EQUAL? VERB,STR?3 \?CCL59
PRINTI "try"
RTRUE
?CCL59: EQUAL? VERB,STR?4 \?PRG66
PRINTI "empty"
RTRUE
?PRG66: PRINT VERB
RTRUE
?PRG68: PRINT VERB
EQUAL? VERB,STR?5,STR?6,STR?7 /?PRG74
EQUAL? VERB,STR?3,STR?4 \?CND70
?PRG74: PRINTC 101
?CND70: EQUAL? VERB,STR?1,STR?2 /FALSE
PRINTC 115
RTRUE
.FUNCT HIM-HER-IT,OBJ,CAP=0,POSSESS?=0
CALL NO-PRONOUN?,OBJ,CAP
ZERO? STACK /?CCL3
ZERO? POSSESS? /TRUE
PRINTI "'s"
RTRUE
?CCL3: FSET? OBJ,PERSONBIT /?CCL9
ZERO? CAP \?PRG15
PRINTI " it"
JUMP ?CND10
?PRG15: PRINTI "It"
?CND10: ZERO? POSSESS? /TRUE
PRINTC 115
RTRUE
?CCL9: EQUAL? OBJ,PLAYER \?CCL22
ZERO? CAP \?PRG28
PRINTI " you"
JUMP ?CND23
?PRG28: PRINTI "You"
?CND23: ZERO? POSSESS? /TRUE
PRINTC 114
RTRUE
?CCL22: FSET? OBJ,FEMALE \?CCL35
ZERO? CAP \?PRG41
PRINTI " her"
RTRUE
?PRG41: PRINTI "Her"
RTRUE
?CCL35: ZERO? POSSESS? /?CCL45
ZERO? CAP \?PRG51
PRINTI " his"
RTRUE
?PRG51: PRINTI "His"
RTRUE
?CCL45: ZERO? CAP \?PRG58
PRINTI " him"
RTRUE
?PRG58: PRINTI "Him"
RTRUE
.FUNCT QUEUE,RTN,TICK,CINT
CALL INT,RTN >CINT
PUT CINT,C-TICK,TICK
PUT CINT,C-ENABLED?,1
RETURN CINT
.FUNCT INT,RTN,DEMON=0,E,C,INT
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E \?CCL5
SUB C-INTS,C-INTLEN >C-INTS
ADD C-TABLE,C-INTS >INT
PUT INT,C-RTN,RTN
RETURN INT
?CCL5: GET C,C-RTN
EQUAL? STACK,RTN \?CND3
RETURN C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT QUEUED?,RTN,C
CALL INT,RTN >C
GET C,C-ENABLED?
ZERO? STACK /FALSE
GET C,C-TICK
RSTACK
.FUNCT CLOCKER,C,E,TICK,FLG=0,VAL
ZERO? CLOCK-WAIT /?CND1
SET 'CLOCK-WAIT,FALSE-VALUE
RFALSE
?CND1: IGRTR? 'PRESENT-TIME,1139 \?CND3
CALL TIMES-UP
?CND3: IGRTR? 'MOVES,59 \?CND5
SET 'MOVES,0
IGRTR? 'SCORE,23 \?CND5
SET 'SCORE,0
?CND5: ADD C-TABLE,C-INTS >C
ADD C-TABLE,C-TABLELEN >E
?PRG9: EQUAL? C,E \?CCL13
RETURN FLG
?CCL13: GET C,C-ENABLED?
ZERO? STACK /?CND11
GET C,C-TICK >TICK
ZERO? TICK /?CND11
SUB TICK,1
PUT C,C-TICK,STACK
GRTR? TICK,1 /?CND11
GET C,C-RTN
CALL STACK >VAL
ZERO? VAL /?CND11
ZERO? FLG /?CCL22
EQUAL? VAL,M-FATAL \?CND11
?CCL22: SET 'FLG,VAL
?CND11: ADD C,C-INTLEN >C
JUMP ?PRG9
.FUNCT I-FOLLOW,GARG=0,FLG=0,CNT=0,GT,VAL=0
?PRG1: IGRTR? 'CNT,GHOST-NEW-C /?REP2
GET GOAL-TABLES,CNT >GT
GET GT,GOAL-S
ZERO? STACK /?PRG1
GET GT,GOAL-ENABLE
ZERO? STACK /?PRG1
GET CHARACTER-TABLE,CNT
CALL FOLLOW-GOAL,STACK >VAL
ZERO? VAL /?PRG1
EQUAL? FLG,M-FATAL /?PRG1
SET 'FLG,VAL
JUMP ?PRG1
?REP2: RETURN FLG
.FUNCT I-ATTENTION,GARG=0,FLG=0,CNT=0,ATT,GT,PER,RM
?PRG1: IGRTR? 'CNT,GHOST-NEW-C /?REP2
GET GOAL-TABLES,CNT >GT
GET GT,ATTENTION >ATT
GRTR? ATT,0 \?PRG1
DEC 'ATT
GET CHARACTER-TABLE,CNT >PER
EQUAL? PER,CONFESSED,CAPTOR,FOLLOWER /?PRG1
SET 'GOAL-PERSON,PER
ZERO? ATT \?CCL11
LESS? BED-TIME,PRESENT-TIME /?CTR13
GET GT,GOAL-FUNCTION
EQUAL? STACK,X-RETIRES \?CCL14
?CTR13: ADD 1,CNT
GET CHAR-ROOM-TABLE,STACK >RM
IN? PER,RM \?CCL19
CALL GOODNIGHT,RM,PER
JUMP ?CND9
?CCL19: PUT GT,GOAL-FUNCTION,X-RETIRES
CALL ESTABLISH-GOAL,PER,RM
JUMP ?CND9
?CCL14: GET GT,GOAL-QUEUED >RM
ZERO? RM /?CCL21
PUT GT,GOAL-QUEUED,0
CALL ESTABLISH-GOAL,PER,RM
JUMP ?CND9
?CCL21: PUTP PER,P?LDESC,17
PUT GT,GOAL-ENABLE,1
JUMP ?CND9
?CCL11: EQUAL? ATT,1 \?CND9
IN? PER,HERE \?CND9
GET GT,GOAL-FUNCTION
CALL D-APPLY,STR?8,STACK,G-IMPATIENT
ZERO? STACK /?CND9
SET 'FLG,TRUE-VALUE
?CND9: PUT GT,ATTENTION,ATT
JUMP ?PRG1
?REP2: RETURN FLG
.ENDI

362
misc.zil Normal file
View file

@ -0,0 +1,362 @@
"MISC for MOONMIST
Copyright (c) 1986 Infocom, Inc. All rights reserved."
<ROUTINE GO ()
;<SETG WINNER ,PLAYER>
;<START-MOVEMENT>
<V-VERSION>
<INTRO>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE PRINTT (OBJ) ;"THE"
<COND (<AND <EQUAL? .OBJ ,TURN> <L? 1 ,P-NUMBER>>
<TELL !\ N ,P-NUMBER " minutes">)
(<EQUAL? .OBJ ,WINDOW>
<TELL " the window">)
;(<AND <EQUAL? .OBJ ,P-IT-OBJECT>
<FSET? ,IT ,TOUCHBIT>>
<TELL " it">
<RTRUE>)
(T
<THE? .OBJ>
<TELL !\ D .OBJ>)>
;<THIS-IS-IT .OBJ>>
<ROUTINE THE? (OBJ)
<COND (<NOT <FSET? .OBJ ,NARTICLEBIT>>
<COND (<OR ;<NOT <FSET? .OBJ ,PERSONBIT>>
<IN? .OBJ ,ROOMS>
<FSET? .OBJ ,SEENBIT>>
<TELL " the">)
(<FSET? .OBJ ,VOWELBIT>
<TELL " an">)
(T <TELL " a">)>)>
<COND (T ;<FSET? .OBJ ,PERSONBIT>
<FSET .OBJ ,SEENBIT>)>>
<ROUTINE START-SENTENCE (OBJ) ;"CTHE"
<THIS-IS-IT .OBJ>
<COND (<EQUAL? .OBJ ,PLAYER> <TELL "You"> <RTRUE>)
(<EQUAL? .OBJ ,NIGHTLAMP> <TELL "Your lamp"> <RTRUE>)
(<EQUAL? .OBJ ,LUGGAGE> <TELL "Your luggage"> <RTRUE>)
(<EQUAL? .OBJ ,BED> <TELL "Your bed"> <RTRUE>)
(<EQUAL? .OBJ ,YOUR-COLOR><TELL "Your favorite color"><RTRUE>)
(<EQUAL? .OBJ ,YOUR-ROOM> <TELL "Your room"> <RTRUE>)
(<EQUAL? .OBJ ,YOUR-BATHROOM><TELL "Your bathroom"><RTRUE>)
(<EQUAL? .OBJ ,YOUR-CLOSET><TELL "Your secret entrance"><RTRUE>)
(<EQUAL? .OBJ ,DINNER> <TELL "Your dinner"> <RTRUE>)>
<COND (<NOT <FSET? .OBJ ,NARTICLEBIT>>
<COND (<OR ;<NOT <FSET? .OBJ ,PERSONBIT>>
<FSET? .OBJ ,SEENBIT>>
<TELL "The ">)
(<FSET? .OBJ ,VOWELBIT>
<TELL "An ">)
(T <TELL "A ">)>)>
<COND (T ;<FSET? .OBJ ,PERSONBIT>
<FSET .OBJ ,SEENBIT>)>
<TELL D .OBJ>>
<ROUTINE PRINTA (O) ;"A"
<COND (<OR ;<FSET? .O ,PERSONBIT> <FSET? .O ,NARTICLEBIT>> T)
(<FSET? .O ,VOWELBIT> <TELL "an ">)
(T <TELL "a ">)>
<TELL D .O>>
<GLOBAL P-IT-WORDS <TABLE 0 0>> "adj & noun for IT"
<ROUTINE THIS-IS-IT (OBJ)
<COND (<EQUAL? .OBJ <> ,NOT-HERE-OBJECT ,PLAYER>
<RTRUE>)
(<EQUAL? .OBJ ,INTDIR ,GLOBAL-HERE ,ROOMS>
<RTRUE>)
(<AND <VERB? WALK ;"WALK-TO FACE"> <==? .OBJ ,PRSO>>
<RTRUE>)>
<COND (<NOT <FSET? .OBJ ,PERSONBIT>>
<PUT ,P-IT-WORDS 0 <GET ,P-ADJW ,NOW-PRSI>>
<PUT ,P-IT-WORDS 1 <GET ,P-NAMW ,NOW-PRSI>>
<FSET ,IT ,TOUCHBIT> ;"to cause pronoun 'it' in output"
<SETG P-IT-OBJECT .OBJ>)
(<FSET? .OBJ ,FEMALE>
<FSET ,HER ,TOUCHBIT>
<SETG P-HER-OBJECT .OBJ>)
;(<FSET? .OBJ ,PLURALBIT>
<FSET ,THEM ,TOUCHBIT>
<SETG P-THEM-OBJECT .OBJ>)
(T
<FSET ,HIM ,TOUCHBIT>
<SETG P-HIM-OBJECT .OBJ>)>
<RTRUE>>
<ROUTINE NO-PRONOUN? (OBJ "OPTIONAL" (CAP 0))
<COND (<EQUAL? .OBJ ,PLAYER>
<RFALSE>)
(<NOT <FSET? .OBJ ,PERSONBIT>>
<COND (<AND <EQUAL? .OBJ ,P-IT-OBJECT>
<FSET? ,IT ,TOUCHBIT>>
<RFALSE>)>)
(<FSET? .OBJ ,FEMALE>
<COND (<AND <EQUAL? .OBJ ,P-HER-OBJECT>
<FSET? ,HER ,TOUCHBIT>>
<RFALSE>)>)
;(<FSET? .OBJ ,PLURALBIT>
<COND (<AND <EQUAL? .OBJ ,P-THEM-OBJECT>
<FSET? ,THEM ,TOUCHBIT>>
<RFALSE>)>)
(T
<COND (<AND <EQUAL? .OBJ ,P-HIM-OBJECT>
<FSET? ,HIM ,TOUCHBIT>>
<RFALSE>)>)>
<COND (<ZERO? .CAP> <TELL THE .OBJ>)
(<ONE? .CAP> <TELL CTHE .OBJ>)>
<THIS-IS-IT .OBJ>
<RTRUE>>
<ROUTINE HE-SHE-IT (OBJ "OPTIONAL" (CAP 0) (VERB <>)) ;"C/HE"
<COND (<NO-PRONOUN? .OBJ .CAP>
T)
(<NOT <FSET? .OBJ ,PERSONBIT>>
<COND (<ZERO? .CAP> <TELL " it">)
(<ONE? .CAP> <TELL "It">)>)
(<==? .OBJ ,PLAYER>
<COND (<ZERO? .CAP> <TELL " you">)
(<ONE? .CAP> <TELL "You">)>)
(<FSET? .OBJ ,FEMALE>
<COND (<ZERO? .CAP> <TELL " she">)
(<ONE? .CAP> <TELL "She">)>)
;(<FSET? .OBJ ,PLURALBIT>
<COND (<ZERO? .CAP> <TELL " they">)
(<ONE? .CAP> <TELL "They">)>)
(T
<COND (<ZERO? .CAP> <TELL " he">)
(<ONE? .CAP> <TELL "He">)>)>
<COND (<NOT <ZERO? .VERB>>
<PRINTC 32>
<COND (<OR <EQUAL? .OBJ ,PLAYER>
;<FSET? .OBJ ,PLURALBIT>>
<COND (<=? .VERB "is"> <TELL "are">)
(<=? .VERB "has"><TELL "have">)
(<=? .VERB "tri"><TELL "try">)
(<=? .VERB "empti"><TELL "empty">)
(T <TELL .VERB>)>)
(T
<TELL .VERB>
<COND (<OR <EQUAL? .VERB "do" "kiss" "push">
<EQUAL? .VERB "tri" "empti">>
<TELL !\e>)>
<COND (<NOT <EQUAL? .VERB "is" "has">>
<TELL !\s>)>)>)>>
<ROUTINE HIM-HER-IT (OBJ "OPTIONAL" (CAP 0) (POSSESS? <>)) ;"C/HIS/M"
<COND (<NO-PRONOUN? .OBJ .CAP>
<COND (<NOT <ZERO? .POSSESS?>> <TELL "'s">)>)
(<NOT <FSET? .OBJ ,PERSONBIT>>
<COND (<ZERO? .CAP> <TELL " it">) (T <TELL "It">)>
<COND (<NOT <ZERO? .POSSESS?>> <TELL !\s>)>)
(<==? .OBJ ,PLAYER>
<COND (<ZERO? .CAP> <TELL " you">) (T <TELL "You">)>
<COND (<NOT <ZERO? .POSSESS?>> <TELL !\r>)>)
;(<FSET? .OBJ ,PLURALBIT>
<COND (<NOT <ZERO? .POSSESS?>>
<COND (<ZERO? .CAP> <TELL " their">)
(T <TELL "Their">)>)
(T
<COND (<ZERO? .CAP> <TELL " them">)
(T <TELL "Them">)>)>)
(<FSET? .OBJ ,FEMALE>
<COND (<ZERO? .CAP> <TELL " her">) (T <TELL "Her">)>)
(T
<COND (<NOT <ZERO? .POSSESS?>>
<COND (<ZERO? .CAP> <TELL " his">)
(T <TELL "His">)>)
(T
<COND (<ZERO? .CAP> <TELL " him">)
(T <TELL "Him">)>)>)>
<RTRUE>>
"CLOCK for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
"List of 22 queued routines:
I-ATTENTION
I-BEDTIME
I-BUTLER-COOKS
I-BUTLER-HINTS
I-BUTLER-SERVES
I-COME-TO
I-DINNER
I-DINNER-SIT
I-DINNER-TALK
I-DISCOVERED
I-DRAGON-EYE
I-FOLLOW
I-FOUND-IT
I-FOUND-PASSAGES
I-FRIEND-GREETS
I-LIONEL-SPEAKS
I-PROMPT
I-REPLY
I-SEARCH
I-SHOT
I-TOUR
I-WITHDRAW"
"SCORE INDICATES HOURS / MOVES = MINUTES"
<GLOBAL SCORE:NUMBER 19>
<GLOBAL MOVES:NUMBER 0>
<GLOBAL PRESENT-TIME:NUMBER <SETG PRESENT-TIME-ATOM 420 ;1140>>
<GLOBAL CLOCKER-RUNNING:NUMBER 0>
<CONSTANT DINNER-TIME <SETG DINNER-TIME 480>>
<CONSTANT LIONEL-TIME <SETG LIONEL-TIME 510>>
<CONSTANT SEARCH-TIME 600>
<CONSTANT BED-TIME 720>
<CONSTANT C-TABLELEN 138> ;"and one for good measure"
<GLOBAL C-TABLE
<TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 I-SHOT ;"first to run"
0 0 I-COME-TO
0 0 I-REPLY
0 0 I-TOUR
0 0 I-BUTLER-COOKS
0 0 I-BUTLER-HINTS
1 %<- ,DINNER-TIME ,PRESENT-TIME-ATOM 10> I-DINNER
0 0 I-DINNER-SIT
1 10 I-DRAGON-EYE
1 -1 I-ATTENTION
1 -1 I-FOLLOW ;"last to run"
1 1 I-PROMPT>>
<GLOBAL C-INTS:NUMBER <- 138 <* 12 6>>>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
;#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
<PUT .CINT ,C-ENABLED? 1>
.CINT>
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
;#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
VECTOR>)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<==? .C .E>
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
;<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
<SET INT <REST ,C-TABLE ,C-INTS>>
<PUT .INT ,C-RTN .RTN>
<RETURN .INT>)
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
<SET C <REST .C ,C-INTLEN>>>>
;<ROUTINE ENABLED? (RTN)
<NOT <ZERO? <GET <INT .RTN> ,C-ENABLED?>>>>
<ROUTINE QUEUED? (RTN "AUX" C)
<SET C <INT .RTN>>
<COND (<ZERO? <GET .C ,C-ENABLED?>> <RFALSE>)
(T <GET .C ,C-TICK>)>>
<GLOBAL CLOCK-WAIT:FLAG <>>
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>) VAL)
;#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX ;(FLG) ;<OR FALSE ATOM>)
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
<SETG PRESENT-TIME <+ ,PRESENT-TIME 1>>
<COND (<G? ,PRESENT-TIME 1139 ;1859>
<TIMES-UP>)>
<COND (<G? <SETG MOVES <+ ,MOVES 1>> 59>
<SETG MOVES 0>
<COND (<G? <SETG SCORE <+ ,SCORE 1>> 23>
<SETG SCORE 0>)>)>
<SET C <REST ,C-TABLE ,C-INTS>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<==? .C .E>
<RETURN .FLG>)
(<NOT <ZERO? <GET .C ,C-ENABLED?>>>
<SET TICK <GET .C ,C-TICK>>
<COND (<NOT <ZERO? .TICK>>
<PUT .C ,C-TICK <- .TICK 1>>
<COND (<AND <NOT <G? .TICK 1>>
<SET VAL <APPLY <GET .C ,C-RTN>>>>
<COND (<OR <ZERO? .FLG>
<==? .VAL ,M-FATAL>>
<SET FLG .VAL>)>)>)>)>
<SET C <REST .C ,C-INTLEN>>>>
"These routines were moved here from GOAL:"
<ROUTINE I-FOLLOW ("OPTIONAL" (GARG <>) "AUX" (FLG <>) (CNT 0) GT (VAL 0))
%<DEBUG-CODE
<COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[I-FOLLOW:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> ,GHOST-NEW-C ;,CHARACTER-MAX>
<RETURN>)
(<AND <GET <SET GT <GET ,GOAL-TABLES .CNT>> ,GOAL-S>
<OR <NOT <ZERO? <GET .GT ,GOAL-ENABLE>>>
;<0? <GET .GT ,ATTENTION>>>>
;<PUT .GT ,GOAL-ENABLE 1>
<COND (<SET VAL
<FOLLOW-GOAL <GET ,CHARACTER-TABLE .CNT>>>
<COND (<NOT <==? .FLG ,M-FATAL>>
<SET FLG .VAL>)>)>)>>
%<DEBUG-CODE <COND (,IDEBUG <TELL N .FLG !\] CR>)>>
.FLG>
<ROUTINE I-ATTENTION ("OPTIONAL" (GARG <>)
"AUX" (FLG <>) (CNT 0) ATT GT PER RM)
%<DEBUG-CODE <COND (<OR ,IDEBUG <==? .GARG ,G-DEBUG>>
<TELL "[I-ATTENTION:">
<COND (<==? .GARG ,G-DEBUG> <RFALSE>)>)>>
<REPEAT ()
<COND (<IGRTR? CNT ,GHOST-NEW-C ;,CHARACTER-MAX>
<RETURN>)>
<SET GT <GET ,GOAL-TABLES .CNT>>
<SET ATT <GET .GT ,ATTENTION>>
<COND (<NOT <G? .ATT 0>> <AGAIN>)>
<DEC ATT>
<SET PER <GET ,CHARACTER-TABLE .CNT>>
<COND (<EQUAL? .PER ,CONFESSED ,CAPTOR ,FOLLOWER>
<AGAIN>)>
<SETG GOAL-PERSON .PER>
<COND ;(<0? .PER>
<TELL "[!! I-ATT: PER=0]" CR>)
(<0? .ATT>
;<FCLEAR .PER ,TOUCHBIT>
<COND ;(<==? .PER ,BUTLER>
<SET FLG T>
<MOVE ,BUTLER <GET .GT ,GOAL-F>>
<TELL
'BUTLER " says, \"You really must excuse me now, "TN",\" and leaves." CR>)
(<OR <L? ,BED-TIME ,PRESENT-TIME>
<==? <GET .GT ,GOAL-FUNCTION> ,X-RETIRES>>
<SET RM <GET ,CHAR-ROOM-TABLE <+ 1 .CNT>>>
<COND (<IN? .PER .RM>
<GOODNIGHT .RM .PER>)
(T
<PUT .GT ,GOAL-FUNCTION ,X-RETIRES>
<ESTABLISH-GOAL .PER .RM>)>)
(<T? <SET RM <GET .GT ,GOAL-QUEUED>>>
<PUT .GT ,GOAL-QUEUED 0>
<ESTABLISH-GOAL .PER .RM>)
(T
<PUTP .PER ,P?LDESC 17 ;"preparing to leave">
<PUT .GT ,GOAL-ENABLE 1>)>)
(<AND <==? .ATT 1>
<IN? .PER ,HERE>
<D-APPLY "Impatient"<GET .GT ,GOAL-FUNCTION>,G-IMPATIENT>>
<SET FLG T>)>
<PUT .GT ,ATTENTION .ATT>>
%<DEBUG-CODE <COND (,IDEBUG <TELL N .FLG !\] CR>)>>
.FLG>

6
moon.mud Normal file
View file

@ -0,0 +1,6 @@
<USE "CELEST">
<SETG LONGITUDE!-ICELEST '(- 5 30 0)>
<SETG LATITUDE!-ICELEST (+ 50 10 0)>
<SETG GMT-OFFSET!-ICELEST <+ 0 <DAY-SAVE-CROCK!-ICELEST <1 <DTNOW>>>>>
"SUNSET on May 3 @ 19:37 GMT"

1239
moonmist.man Normal file

File diff suppressed because it is too large Load diff

48
moonmist.zil Normal file
View file

@ -0,0 +1,48 @@
"COMPILE/LOAD FILE for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<SETG ZDEBUGGING? <>>
<DEFINE DEBUG-CODE ('X "OPTIONAL" ('Y T))
<COND (,ZDEBUGGING? .X) (ELSE .Y)>>
<SETG NEW-VOC? T>
<FREQUENT-WORDS?>
<VERSION ZIP TIME>
<COND (<GASSIGNED? PREDGEN>
<PRINC "Compiling">
<ID 0>)
(T <PRINC "Loading">)>
<PRINC " MOONMIST: interactive fiction from Infocom!
">
ON!-INITIAL "for DEBUGR"
OFF!-INITIAL
ENABLE!-INITIAL
DISABLE!-INITIAL
<SET REDEFINE T>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<DIRECTIONS ;"Do not change the order of the first eight
without consulting Marc! -- per ENCHANTER"
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
<INSERT-FILE "MACROS">
<INSERT-FILE "MISC">
<INSERT-FILE "SYNTAX">
<INSERT-FILE "PARSER">
<INSERT-FILE "VERBS">
<INSERT-FILE "GOAL">
<INSERT-FILE "PEOPLE">
<INSERT-FILE "CASTLE">
<INSERT-FILE "TOWER">
<INSERT-FILE "THINGS">
<INSERT-FILE "PLACES">
<INSERT-FILE "GLOBAL">
<INSERT-FILE "COLORS">
<PROPDEF SIZE 5>

302
parser.cmp Normal file
View file

@ -0,0 +1,302 @@
;COMPARISON OF SS:<MOONMIST>PARSER.ZIL.466 AND SS:<MOONMIST>PARSER.ZIL.467
;OPTIONS ARE /1
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-2 (55185)
<ROUTINE ORPHAN-MERGE ("AUX" (CNT -1) TEMP VERB BEG END (ADJ <>) WRD)
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-2 (55185)
<ROUTINE ORPHAN-MERGE ("AUX" (CNT -1) TEMP VERB BEG END
(ADJ <>) (ADJB <>) (VRB <>) (NOUN <>) ADJE WRD)
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-4 (55279)
<COND (<OR <EQUAL? <WT? <SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>>
<WT? .WRD ,PS?ADJECTIVE>>
<SET ADJ T>)
(<AND <WT? .WRD ,PS?OBJECT ,P1?OBJECT>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-5 (55323)
<COND (<SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
<COND (<EQUAL? <WT? .WRD ,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>>
<SET VRB T>)>
<COND (<WT? .WRD ,PS?ADJECTIVE>
<SET ADJ T>)>
<COND (<WT? .WRD ,PS?OBJECT>
<SET NOUN T>)>)>
<COND (<AND <NOT .VRB> ;"convert apparent verb into noun clause"
<NOT .ADJ>
<WT? .WRD ,PS?OBJECT ,P1?OBJECT>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-13 (55584)
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-19 (55793)
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV <+ ,P-WORDLEN <* 2 ,P-LEXSTART>>>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-18 (55773)
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-24 (56029)
<NOT .VRB>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-22 (55908)
<COND (<OR <ZERO? <SET TEMP <GET ,P-ITBL ,P-PREP1>>>
<EQUAL? .TEMP <GET ,P-OTBL ,P-PREP1>>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-29 (56184)
<COND (<EQUAL? <GET ,P-ITBL ,P-PREP1>
0
<GET ,P-OTBL ,P-PREP1>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-25 (56028)
<PUT ,P-OTBL ,P-NC1 <REST ,P-LEXV 2>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-33 (56278)
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-27 (56111)
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
<COND (<ZERO? ,P-NCN> <SETG P-NCN 1>)>)
(T
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>
;<PUT ,P-OTBL ,P-NC1L <GET ,P-ITBL ,P-NC1L>>)>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-35 (56377)
<PUT ,P-ITBL ,P-NC1L
<REST ,P-LEXV <+ ,P-WORDLEN
<* 2 ,P-LEXSTART>>>>)>
<COND (<ZERO? ,P-NCN> <SETG P-NCN 1>)>)>
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-35 (56420)
<COND (<OR <ZERO? <SET TEMP <GET ,P-ITBL ,P-PREP1>>>
<EQUAL? .TEMP <GET ,P-OTBL ,P-PREP2>>>
<COND (.ADJ
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-43 (56675)
<COND (<EQUAL? <GET ,P-ITBL ,P-PREP1>
<>
<GET ,P-OTBL ,P-PREP2>>
<COND (<OR .ADJ
<AND <ZERO? ,P-NCN> .NOUN>>
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-40 (56623)
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>)>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-50 (56909)
<PUT ,P-ITBL ,P-NC1L
<REST ,P-LEXV <+ ,P-WORDLEN
<* 2 ,P-LEXSTART>>>>)>)>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-51 (56955)
<COND (.ADJ <SET BEG <REST ,P-LEXV 2>> <SET ADJ <>>)>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-63 (57293)
<COND (.ADJ
<SET BEG <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<PUT ,P-ITBL ,P-NC1 .BEG>
<SET ADJ <>>)>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-54 (57064)
<SET WRD <GET .BEG 0>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-69 (57456)
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-56 (57123)
<COND (.ADJ <CLAUSE-WIN .ADJ> <RETURN>)
(T <SETG P-ACLAUSE <>> <RFALSE>)>)
(<OR <EQUAL? .WRD ,W?ALL ;,W?EVERYT ,W?ONE>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-70 (57487)
<COND (.ADJB <CLAUSE-WIN .ADJB .ADJE> <RETURN>)
(T
<SETG P-ACLAUSE <>>
<RFALSE>)>)>
<SET WRD <GET .BEG 0>>
<COND (<OR <EQUAL? .WRD ,W?ALL ,W?ONE>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-62 (57390)
<SET ADJ .WRD>)
(<EQUAL? .WRD ,W?ONE>
<CLAUSE-WIN .ADJ>
<RETURN>)
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-79 (57804)
<COND (<NOT .ADJB> <SET ADJB .BEG>)>
<SET ADJ .WRD>
<SET ADJE <REST .BEG ,P-WORDLEN>>)
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-68 (57583)
<COND (<EQUAL? .WRD ,P-ANAM>
<CLAUSE-WIN .ADJ>)
(T
<CLAUSE-WIN>)>
<RETURN>)>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-84 (58007)
<COND (<AND ,P-ANAM
<NOT <EQUAL? .WRD ,P-ANAM>>>
<SETG P-ANAM <>>
<SET ADJB <GET ,P-ITBL ,P-NC1>>
<SET ADJE .END>)>)>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-77 (57811)
<PUT ,P-ITBL ,P-NC1 <BACK .BEG 4>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-93 (58282)
<PUT ,P-ITBL ,P-NC1 <BACK .BEG ,P-WORDLEN>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-92 (58285)
<ROUTINE CLAUSE-WIN ("OPT" (ADJ <>))
<COND (.ADJ
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>)
(ELSE <SET ADJ T>)>
<PUT ,P-CCTBL ,CC-SBPTR ,P-ACLAUSE>
<PUT ,P-CCTBL ,CC-SEPTR <+ ,P-ACLAUSE 1>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-108 (58765)
<ROUTINE CLAUSE-WIN ("OPT" (ADJB <>) (ADJE <>))
<COND (.ADJB
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>)>
<PUT ,P-CCTBL ,CC-BEG ,P-ACLAUSE>
<PUT ,P-CCTBL ,CC-END <+ ,P-ACLAUSE 1>>
<PUT ,P-CCTBL ,CC-IBEG .ADJB>
<PUT ,P-CCTBL ,CC-IEND .ADJE>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-99 (58538)
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL1>)
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-116 (59063)
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL1>)
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 7-101 (58597)
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL2>)>
<CLAUSE-COPY ,P-OTBL ,P-OTBL .ADJ>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 7-118 (59121)
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL2>)>
<CLAUSE-COPY ,P-OTBL ,P-OTBL>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-13 (65387)
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC2>
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC2L>
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL2>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 10-13 (65905)
<PUT ,P-CCTBL ,CC-BEG ,P-NC2>
<PUT ,P-CCTBL ,CC-END ,P-NC2L>
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL2>
<PUT ,P-CCTBL ,CC-IBEG <>>
<PUT ,P-CCTBL ,CC-IEND <>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-18 (65584)
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL1>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 10-20 (66169)
<PUT ,P-CCTBL ,CC-BEG ,P-NC1>
<PUT ,P-CCTBL ,CC-END ,P-NC1L>
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL1>
<PUT ,P-CCTBL ,CC-IBEG <>>
<PUT ,P-CCTBL ,CC-IEND <>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-157 (70200)
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers):"
<CONSTANT CC-SBPTR 0>
<CONSTANT CC-SEPTR 1>
<CONSTANT CC-OCLAUSE 2>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-2 (70853)
"CLAUSE-COPY"
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-164 (70388)
<ROUTINE CLAUSE-COPY (SRC DEST "OPT" (INSRT <>)
"AUX" OCL BEG END BB EE OBEG CNT B E)
<SET BB <GET ,P-CCTBL ,CC-SBPTR>>
<SET EE <GET ,P-CCTBL ,CC-SEPTR>>
<SET OCL <GET ,P-CCTBL ,CC-OCLAUSE>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-6 (70908)
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)"
<CONSTANT CC-BEG 0> "slot in source to start from"
<CONSTANT CC-END 1> "slot in source to end at"
<CONSTANT CC-CLAUSE 2> "which orphan table to use"
<CONSTANT CC-IBEG 3> "insertion beginning (from lexv)"
<CONSTANT CC-IEND 4> "insertion ending"
"do something about duplicate words in clause?"
<ROUTINE CLAUSE-COPY (SRC DEST
"AUX" (IBEG <>) IEND OCL BEG END BB EE OBEG CNT B E)
<SET BB <GET ,P-CCTBL ,CC-BEG>>
<SET EE <GET ,P-CCTBL ,CC-END>>
<SET OCL <GET ,P-CCTBL ,CC-CLAUSE>>
<SET IBEG <GET ,P-CCTBL ,CC-IBEG>>
<SET IEND <GET ,P-CCTBL ,CC-IEND>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-173 (70698)
<COND (<EQUAL? .BEG .END> <RETURN>)>
<COND (<AND .INSRT
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-26 (71663)
<COND (<EQUAL? .BEG .END>
<COND (<AND .IBEG <NOT ,P-ANAM>>
<CLAUSE-SUBSTRUC .IBEG .IEND>)>
<RETURN>)>
<COND (<AND .IBEG
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-176 (70799)
<COND (<EQUAL? .INSRT T>
<SET B <GET ,P-ITBL ,P-NC1>>
<SET E <GET ,P-ITBL ,P-NC1L>>
<REPEAT ()
<COND (<EQUAL? .B .E> <RETURN>)>
<CLAUSE-ADD <GET .B 0>>
<SET B <REST .B ,P-WORDLEN>>>)
(ELSE
<COND (<NOT <EQUAL? .INSRT <GET .OCL 1>>>
<CLAUSE-ADD .INSRT>)>
<CLAUSE-ADD ,P-ANAM>)>)
(ELSE
<CLAUSE-ADD <GET .BEG 0>>)>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-32 (71858)
<CLAUSE-SUBSTRUC .IBEG .IEND>)>
<CLAUSE-ADD <GET .BEG 0>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-190 (71278)
<COND (<AND <EQUAL? .SRC .DEST>
<G? .OBEG 0>
<L? 0 <SET CNT <- <GET .OCL ,P-MATCHLEN> .OBEG>>>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-35 (71966)
<COND (<AND <G? .OBEG 0>
<G? <SET CNT <- <GET .OCL ,P-MATCHLEN> .OBEG>> 0>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-209 (71811)
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-53 (72472)
<ROUTINE CLAUSE-SUBSTRUC (B E)
<REPEAT ()
<COND (<EQUAL? .B .E> <RETURN>)>
<CLAUSE-ADD <GET .B 0>>
<SET B <REST .B ,P-WORDLEN>>>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-210 (71870)
<SET OCL <GET ,P-CCTBL ,CC-OCLAUSE>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-60 (72679)
<SET OCL <GET ,P-CCTBL ,CC-CLAUSE>>
***************
**** FILE SS:<MOONMIST>PARSER.ZIL.466, 10-218 (72130)
<PUT .OCL ,P-MATCHLEN .PTR>)>>
**** FILE SS:<MOONMIST>PARSER.ZIL.467, 11-68 (72938)
<PUT .OCL ,P-MATCHLEN .PTR>)>>
***************

3161
parser.zap Normal file

File diff suppressed because it is too large Load diff

View file

@ -171,7 +171,7 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
;<SET TBL ,P-PRSI>
<SET OBJ <GET/B ,P-PRSO 1>>
.ICNT)
(T 1)>>
(T ;.ICNT 1)>>
<COND (<AND <NOT .OBJ> <1? .ICNT>>
<SET OBJ <GET/B ,P-PRSI 1>>)>
<COND (<EQUAL? ,PRSA ,V?WALK ;,V?FACE>
@ -1339,10 +1339,7 @@ Now you can try again">)
<COND (<L? <SETG P-LEN <- ,P-LEN 1>> 0>
<SETG QUOTE-FLAG <>>
<RETURN>)
(<AND <SET WRD <GET ,P-LEXV .PTR>>
<BUZZER-WORD? .WRD .PTR>>
<RFALSE>)
(<OR <T? .WRD>
(<OR <T? <SET WRD <GET ,P-LEXV .PTR>>>
<SET WRD <NUMBER? .PTR>>
<SET WRD <NAME? .PTR>>>
<COND (<0? ,P-LEN> <SET NW 0>)
@ -1403,7 +1400,8 @@ Now you can try again">)
<RETURN>)>)
(<AND <SET VAL <WT? .WRD ,PS?VERB ,P1?VERB>>
<ZERO? .VERB>>
<SETG P-PRSA-WORD .WRD>
<COND (<ZERO? ,P-OFLAG>
<SETG P-PRSA-WORD .WRD>)>
<SET VERB .VAL>
<PUT ,P-ITBL ,P-VERB .VAL>
<PUT ,P-ITBL ,P-VERBN ,P-VTBL>
@ -1417,7 +1415,7 @@ Now you can try again">)
;<EQUAL? .WRD ,W?BOTH>
<WT? .WRD ,PS?ADJECTIVE>
<WT? .WRD ,PS?OBJECT>>
<SET VAL 0>>>
;<SET VAL 0>>>
<COND (<AND <G? ,P-LEN 1 ;0>
<==? .NW ,W?OF>
;<NOT <EQUAL? .VERB
@ -1462,7 +1460,9 @@ Now you can try again">)
<RFALSE>)
(T
<SET OF-FLAG <>>)>)
(<WT? .WRD ,PS?BUZZ-WORD>)
(<WT? .WRD ,PS?BUZZ-WORD>
<COND (<BUZZER-WORD? .WRD .PTR>
<RFALSE>)>)
(<AND <EQUAL? .VERB ,ACT?TELL>
<WT? .WRD ,PS?VERB ;,P1?VERB>>
<TELL
@ -1677,14 +1677,14 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
<COND (<L? <SETG P-LEN <- ,P-LEN 1>> 0>
<PUT ,P-ITBL <+ .NUM 1> <REST ,P-LEXV <* .PTR 2>>>
<RETURN -1>)>
<COND (<AND <SET WRD <GET ,P-LEXV .PTR>>
<BUZZER-WORD? .WRD .PTR>>
<RFALSE>)
(<OR <T? .WRD>
<COND (<OR <T? <SET WRD <GET ,P-LEXV .PTR>>>
<SET WRD <NUMBER? .PTR>>
<SET WRD <NAME? .PTR>>>
<COND (<0? ,P-LEN> <SET NW 0>)
(T <SET NW <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>)>
(T
<SET NW <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>
<COND (<ZERO? .NW> ;"added 8/14/86 SWG"
<SET NW <NUMBER? <+ .PTR ,P-LEXELEN>>>)>)>
;<COND (<AND <==? .WRD ,W?OF>
<EQUAL? <GET ,P-ITBL ,P-VERB>
,ACT?MAKE ,ACT?TAKE>>
@ -1735,15 +1735,10 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
<REST ,P-LEXV <* <+ .PTR 2> 2>>>
<RETURN .PTR>)
(T <SET ANDFLG <>>)>)
;"Next clause replaced by following one to allow
ATTRACTIVE MAN, VERB - JW 2/15/85"
;(<AND <OR ,P-MERGED
,P-OFLAG
<NOT <EQUAL? <GET ,P-ITBL ,P-VERB> 0>>>
<OR <WT? .WRD ,PS?ADJECTIVE>
<WT? .WRD ,PS?BUZZ-WORD>>>)
(<OR <WT? .WRD ,PS?ADJECTIVE>
<WT? .WRD ,PS?BUZZ-WORD>>)
(<WT? .WRD ,PS?ADJECTIVE>)
(<WT? .WRD ,PS?BUZZ-WORD>
<COND (<BUZZER-WORD? .WRD .PTR>
<RFALSE>)>)
(<AND .ANDFLG
<EQUAL? <GET ,P-ITBL ,P-VERB> 0>>
<SET PTR <- .PTR 4>>
@ -1796,45 +1791,58 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
<GLOBAL P-TIME:FLAG <>>
<GLOBAL P-DIRECTION 0>
<ROUTINE ORPHAN-MERGE ("AUX" (CNT -1) TEMP VERB BEG END (ADJ <>) WRD)
<ROUTINE ORPHAN-MERGE ("AUX" (CNT -1) TEMP VERB BEG END
(ADJ <>) (ADJB <>) (VRB <>) (NOUN <>) ADJE WRD)
<SETG P-OFLAG <>>
<COND (<OR <EQUAL? <WT? <SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>>
<WT? .WRD ,PS?ADJECTIVE>>
<SET ADJ T>)
(<AND <WT? .WRD ,PS?OBJECT ,P1?OBJECT>
<COND (<AND <SET WRD <GET ,P-ITBL ,P-VERBN>>
<SET WRD <GET .WRD 0>>>
<COND (<EQUAL? <WT? .WRD ,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>>
<SET VRB T>)>
<COND (<WT? .WRD ,PS?ADJECTIVE>
<SET ADJ T>)>
<COND (<WT? .WRD ,PS?OBJECT>
<SET NOUN T>)>)>
<COND (<AND <NOT .VRB> ;"convert apparent verb into noun clause"
<NOT .ADJ>
<WT? .WRD ,PS?OBJECT ,P1?OBJECT>
<EQUAL? ,P-NCN 0>>
<PUT ,P-ITBL ,P-VERB 0>
<PUT ,P-ITBL ,P-VERBN 0>
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV <+ ,P-WORDLEN <* 2 ,P-LEXSTART>>>>
<SETG P-NCN 1>)>
<COND (<AND <NOT <ZERO? <SET VERB <GET ,P-ITBL ,P-VERB>>>>
<NOT .ADJ>
<NOT .VRB>
<NOT <EQUAL? .VERB <GET ,P-OTBL ,P-VERB>>>>
<RFALSE>)
(<EQUAL? ,P-NCN 2> <RFALSE>)
(<EQUAL? <GET ,P-OTBL ,P-NC1> 1>
<COND (<OR <ZERO? <SET TEMP <GET ,P-ITBL ,P-PREP1>>>
<EQUAL? .TEMP <GET ,P-OTBL ,P-PREP1>>>
<COND (<EQUAL? <GET ,P-ITBL ,P-PREP1>
0
<GET ,P-OTBL ,P-PREP1>>
<COND (.ADJ
<PUT ,P-OTBL ,P-NC1 <REST ,P-LEXV 2>>
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<COND (<ZERO? <GET ,P-ITBL ,P-NC1L>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
<COND (<ZERO? ,P-NCN> <SETG P-NCN 1>)>)
(T
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>
;<PUT ,P-OTBL ,P-NC1L <GET ,P-ITBL ,P-NC1L>>)>
<PUT ,P-ITBL ,P-NC1L
<REST ,P-LEXV <+ ,P-WORDLEN
<* 2 ,P-LEXSTART>>>>)>
<COND (<ZERO? ,P-NCN> <SETG P-NCN 1>)>)>
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>
<PUT ,P-OTBL ,P-NC1L <GET ,P-ITBL ,P-NC1L>>)
(T <RFALSE>)>)
(<EQUAL? <GET ,P-OTBL ,P-NC2> 1>
<COND (<OR <ZERO? <SET TEMP <GET ,P-ITBL ,P-PREP1>>>
<EQUAL? .TEMP <GET ,P-OTBL ,P-PREP2>>>
<COND (.ADJ
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>
<COND (<EQUAL? <GET ,P-ITBL ,P-PREP1>
<>
<GET ,P-OTBL ,P-PREP2>>
<COND (<OR .ADJ
<AND <ZERO? ,P-NCN> .NOUN>>
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<COND (<ZERO? <GET ,P-ITBL ,P-NC1L>>
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>)>
<PUT ,P-ITBL ,P-NC1L
<REST ,P-LEXV <+ ,P-WORDLEN
<* 2 ,P-LEXSTART>>>>)>)>
<PUT ,P-OTBL ,P-NC2 <GET ,P-ITBL ,P-NC1>>
<PUT ,P-OTBL ,P-NC2L <GET ,P-ITBL ,P-NC1L>>
<SETG P-NCN 2>)
@ -1845,33 +1853,37 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
<RFALSE>)
(T
<SET BEG <GET ,P-ITBL ,P-NC1>>
<COND (.ADJ <SET BEG <REST ,P-LEXV 2>> <SET ADJ <>>)>
<COND (.ADJ
<SET BEG <REST ,P-LEXV <* 2 ,P-LEXSTART>>>
<PUT ,P-ITBL ,P-NC1 .BEG>
<SET ADJ <>>)>
<SET END <GET ,P-ITBL ,P-NC1L>>
<REPEAT ()
<SET WRD <GET .BEG 0>>
<COND (<EQUAL? .BEG .END>
<COND (.ADJ <CLAUSE-WIN .ADJ> <RETURN>)
(T <SETG P-ACLAUSE <>> <RFALSE>)>)
(<OR <EQUAL? .WRD ,W?ALL ;,W?EVERYT ,W?ONE>
<COND (.ADJB <CLAUSE-WIN .ADJB .ADJE> <RETURN>)
(T
<SETG P-ACLAUSE <>>
<RFALSE>)>)>
<SET WRD <GET .BEG 0>>
<COND (<OR <EQUAL? .WRD ,W?ALL ,W?ONE>
<AND <BTST <GETB .WRD ,P-PSOFF>
,PS?ADJECTIVE> ;"same as WT?"
<ADJ-CHECK .WRD .ADJ .ADJ>>>
<SET ADJ .WRD>)
(<EQUAL? .WRD ,W?ONE>
<CLAUSE-WIN .ADJ>
<RETURN>)
<COND (<NOT .ADJB> <SET ADJB .BEG>)>
<SET ADJ .WRD>
<SET ADJE <REST .BEG ,P-WORDLEN>>)
(<AND <BTST <GETB .WRD ,P-PSOFF> ,PS?OBJECT>
<EQUAL? <+ .BEG ,P-WORDLEN> .END>>
<COND (<EQUAL? .WRD ,P-ANAM>
<CLAUSE-WIN .ADJ>)
(T
<CLAUSE-WIN>)>
<RETURN>)>
<COND (<AND ,P-ANAM
<NOT <EQUAL? .WRD ,P-ANAM>>>
<SETG P-ANAM <>>
<SET ADJB <GET ,P-ITBL ,P-NC1>>
<SET ADJE .END>)>)>
<SET BEG <REST .BEG ,P-WORDLEN>>
<COND (<EQUAL? .END 0>
<SET END .BEG>
<SETG P-NCN 1>
<PUT ,P-ITBL ,P-NC1 <BACK .BEG 4>>
<PUT ,P-ITBL ,P-NC1 <BACK .BEG ,P-WORDLEN>>
<PUT ,P-ITBL ,P-NC1L .BEG>)>>)>)>
<PUT ,P-VTBL 0 <GET ,P-OVTBL 0>>
<PUTB ,P-VTBL 2 <GETB ,P-OVTBL 2>>
@ -1886,17 +1898,18 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
(T <PUT ,P-ITBL .CNT <GET ,P-OTBL .CNT>>)>>
T>
<ROUTINE CLAUSE-WIN ("OPT" (ADJ <>))
<COND (.ADJ
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>)
(ELSE <SET ADJ T>)>
<PUT ,P-CCTBL ,CC-SBPTR ,P-ACLAUSE>
<PUT ,P-CCTBL ,CC-SEPTR <+ ,P-ACLAUSE 1>>
<ROUTINE CLAUSE-WIN ("OPT" (ADJB <>) (ADJE <>))
<COND (.ADJB
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>)>
<PUT ,P-CCTBL ,CC-BEG ,P-ACLAUSE>
<PUT ,P-CCTBL ,CC-END <+ ,P-ACLAUSE 1>>
<PUT ,P-CCTBL ,CC-IBEG .ADJB>
<PUT ,P-CCTBL ,CC-IEND .ADJE>
<COND (<EQUAL? ,P-ACLAUSE ,P-NC1>
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL1>)
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL1>)
(ELSE
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL2>)>
<CLAUSE-COPY ,P-OTBL ,P-OTBL .ADJ>
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL2>)>
<CLAUSE-COPY ,P-OTBL ,P-OTBL>
<AND <NOT <EQUAL? <GET ,P-OTBL ,P-NC2> 0>> <SETG P-NCN 2>>
<SETG P-ACLAUSE <>>
<RTRUE>>
@ -2100,14 +2113,18 @@ something else.]" CR>>
<COND (<IGRTR? CNT ,P-ITBLLEN> <RETURN>)
(T <PUT ,P-OTBL .CNT <GET ,P-ITBL .CNT>>)>>
<COND (<EQUAL? ,P-NCN 2>
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC2>
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC2L>
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL2>
<PUT ,P-CCTBL ,CC-BEG ,P-NC2>
<PUT ,P-CCTBL ,CC-END ,P-NC2L>
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL2>
<PUT ,P-CCTBL ,CC-IBEG <>>
<PUT ,P-CCTBL ,CC-IEND <>>
<CLAUSE-COPY ,P-ITBL ,P-OTBL>)>
<COND (<NOT <L? ,P-NCN 1>>
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
<PUT ,P-CCTBL ,CC-OCLAUSE ,P-OCL1>
<PUT ,P-CCTBL ,CC-BEG ,P-NC1>
<PUT ,P-CCTBL ,CC-END ,P-NC1L>
<PUT ,P-CCTBL ,CC-CLAUSE ,P-OCL1>
<PUT ,P-CCTBL ,CC-IBEG <>>
<PUT ,P-CCTBL ,CC-IEND <>>
<CLAUSE-COPY ,P-ITBL ,P-OTBL>)>
<COND (.D1
<PUT ,P-OTBL ,P-PREP1 <GETB .D1 ,P-SPREP1>>
@ -2243,43 +2260,42 @@ something else.]" CR>>
<EQUAL? .WRD ,W?OUT>>
<TELL " of">)>
<RTRUE>)>>
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers):"
<CONSTANT CC-SBPTR 0>
<CONSTANT CC-SEPTR 1>
<CONSTANT CC-OCLAUSE 2>
"CLAUSE-COPY"
<GLOBAL P-CCTBL <TABLE 0 0 0 0 0>>
<ROUTINE CLAUSE-COPY (SRC DEST "OPT" (INSRT <>)
"AUX" OCL BEG END BB EE OBEG CNT B E)
<SET BB <GET ,P-CCTBL ,CC-SBPTR>>
<SET EE <GET ,P-CCTBL ,CC-SEPTR>>
<SET OCL <GET ,P-CCTBL ,CC-OCLAUSE>>
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)"
<CONSTANT CC-BEG 0> "slot in source to start from"
<CONSTANT CC-END 1> "slot in source to end at"
<CONSTANT CC-CLAUSE 2> "which orphan table to use"
<CONSTANT CC-IBEG 3> "insertion beginning (from lexv)"
<CONSTANT CC-IEND 4> "insertion ending"
"do something about duplicate words in clause?"
<ROUTINE CLAUSE-COPY (SRC DEST
"AUX" (IBEG <>) IEND OCL BEG END BB EE OBEG CNT B E)
<SET BB <GET ,P-CCTBL ,CC-BEG>>
<SET EE <GET ,P-CCTBL ,CC-END>>
<SET OCL <GET ,P-CCTBL ,CC-CLAUSE>>
<SET IBEG <GET ,P-CCTBL ,CC-IBEG>>
<SET IEND <GET ,P-CCTBL ,CC-IEND>>
<SET BEG <GET .SRC .BB>>
<SET END <GET .SRC .EE>>
<SET OBEG <GET .OCL ,P-MATCHLEN>>
<REPEAT ()
<COND (<EQUAL? .BEG .END> <RETURN>)>
<COND (<AND .INSRT
<COND (<EQUAL? .BEG .END>
<COND (<AND .IBEG <NOT ,P-ANAM>>
<CLAUSE-SUBSTRUC .IBEG .IEND>)>
<RETURN>)>
<COND (<AND .IBEG
<EQUAL? ,P-ANAM <GET .BEG 0>>>
<COND (<EQUAL? .INSRT T>
<SET B <GET ,P-ITBL ,P-NC1>>
<SET E <GET ,P-ITBL ,P-NC1L>>
<REPEAT ()
<COND (<EQUAL? .B .E> <RETURN>)>
<CLAUSE-ADD <GET .B 0>>
<SET B <REST .B ,P-WORDLEN>>>)
(ELSE
<COND (<NOT <EQUAL? .INSRT <GET .OCL 1>>>
<CLAUSE-ADD .INSRT>)>
<CLAUSE-ADD ,P-ANAM>)>)
(ELSE
<CLAUSE-ADD <GET .BEG 0>>)>
<CLAUSE-SUBSTRUC .IBEG .IEND>)>
<CLAUSE-ADD <GET .BEG 0>>
<SET BEG <REST .BEG ,P-WORDLEN>>>
<COND (<AND <EQUAL? .SRC .DEST>
<G? .OBEG 0>
<L? 0 <SET CNT <- <GET .OCL ,P-MATCHLEN> .OBEG>>>>
<COND (<AND <G? .OBEG 0>
<G? <SET CNT <- <GET .OCL ,P-MATCHLEN> .OBEG>> 0>>
<PUT .OCL ,P-MATCHLEN 0>
<SET OBEG <+ .OBEG 1>>
<REPEAT ()
@ -2296,8 +2312,14 @@ something else.]" CR>>
<REST .OCL
<+ <* <GET .OCL ,P-MATCHLEN> ,P-LEXELEN> 2>>>>
<ROUTINE CLAUSE-SUBSTRUC (B E)
<REPEAT ()
<COND (<EQUAL? .B .E> <RETURN>)>
<CLAUSE-ADD <GET .B 0>>
<SET B <REST .B ,P-WORDLEN>>>>
<ROUTINE CLAUSE-ADD (WRD "OPT" (CHECK? <>) "AUX" OCL PTR)
<SET OCL <GET ,P-CCTBL ,CC-OCLAUSE>>
<SET OCL <GET ,P-CCTBL ,CC-CLAUSE>>
<SET PTR <GET .OCL ,P-MATCHLEN>>
<COND (<AND .CHECK? <NOT <ZERO? .PTR>> <ZMEMQ .WRD .OCL>>
<RFALSE>)
@ -2305,8 +2327,8 @@ something else.]" CR>>
<SET PTR <+ .PTR 2>>
<PUT .OCL <- .PTR 1> .WRD>
<PUT .OCL .PTR 0>
<PUT .OCL ,P-MATCHLEN .PTR>)>>
<PUT .OCL ,P-MATCHLEN .PTR>)>>
<ROUTINE PREP-FIND (PREP "AUX" (CNT 0) SIZE)
;#DECL ((PREP CNT SIZE) FIX)
<SET SIZE <* <GET ,PREPOSITIONS 0> 2>>
@ -2460,8 +2482,6 @@ something else.]" CR>>
<RFALSE>)>
<SET BUT ,P-BUTS>
<PUT/B .BUT ,P-MATCHLEN 0>)
(<BUZZER-WORD? .WRD .PTR>
<RFALSE>)
(<EQUAL? .WRD ,W?A ,W?ONE>
<COND (<ZERO? ,P-ADJ>
<SETG P-GETFLAGS ,P-ONE>
@ -2479,7 +2499,9 @@ something else.]" CR>>
<COND (<NOT <GET-OBJECT <OR .BUT .TBL>>>
<RFALSE>)>
T)
(<WT? .WRD ,PS?BUZZ-WORD>)
(<WT? .WRD ,PS?BUZZ-WORD>
<COND (<BUZZER-WORD? .WRD .PTR>
<RFALSE>)>)
(<EQUAL? .WRD ,W?AND ,W?COMMA>)
(<==? .WRD ,W?OF>
<COND (<0? ,P-GETFLAGS>
@ -2764,35 +2786,39 @@ something else.]" CR>>
<ROUTINE GENERIC-BEDROOM (TBL "OPTIONAL" (N 0) "AUX" RM)
<COND (<ZERO? .N>
<SET N <GET/B .TBL ,P-MATCHLEN>>)>
<COND (<ZMEMQ/B ,P-IT-OBJECT .TBL>
<RETURN ,P-IT-OBJECT>)
(<ZMEMQ/B ,HERE .TBL>
<RETURN ,HERE>)
<COND (<SET RM <ZMEMQ ,HERE ,CHAR-CLOSET-TABLE>>
<COND (<EQUAL? ,W?DOOR ,P-NAM ,P-XNAM>
<RETURN <FIND-FLAG-LG ,HERE ,DOORBIT>>)
(T <RETURN <GET ,CHAR-ROOM-TABLE .RM>>)>)
(<AND <EQUAL? ,A?JACK\'S ,P-ADJ ,P-XADJ>
<EQUAL? ,W?DOOR ,P-NAM ,P-XNAM>>
<RETURN ,JACK-ROOM>)
(<ZMEMQ/B ,P-IT-OBJECT .TBL>
<RETURN ,P-IT-OBJECT>)
(<ZMEMQ/B ,HERE .TBL>
<RETURN ,HERE>)
(<REMOTE-VERB?>
<COND (<EQUAL? ,A?BATH ,P-ADJ ,P-XADJ>
<RETURN ,YOUR-BATHROOM>)
(<EQUAL? ,W?ROOM ,P-NAM ,P-XNAM>
<RETURN ,YOUR-ROOM>)>)
<RETURN ,YOUR-ROOM>)
(T <SET RM <>>)>)
(<EQUAL? ,HERE ,GALLERY ,YOUR-BATHROOM>
<RETURN ,YOUR-ROOM>)
(<ZMEMQ ,HERE ,CHAR-ROOM-TABLE>
<RETURN ,HERE>)
(<SET RM <ZMEMQ ,HERE ,CHAR-CLOSET-TABLE>>
<COND (<EQUAL? ,W?DOOR ,P-NAM ,P-XNAM>
<RETURN <FIND-FLAG-LG ,HERE ,DOORBIT>>)
(T <RETURN <GET ,CHAR-ROOM-TABLE .RM>>)>)
(<VERB? CLIMB-DOWN CLIMB-UP WALK-TO>
<RETURN ,YOUR-ROOM>)
(T
<REPEAT ()
<COND (<EQUAL? ,HERE <GETP <SET RM <GET/B .TBL .N>>,P?STATION>>
<RETURN .RM>)
(<DLESS? N 1>
<RETURN>)>>)>
<COND (<EQUAL? ,WINNER ,FRIEND ,LORD>
<COND (<EQUAL? ,HERE <GETP <SET RM <GET/B .TBL .N>> ,P?STATION>>
<RETURN>)
(<DLESS? N 1>
<SET RM <>>
<RETURN>)>>)>
<COND (<T? .RM>
<RETURN .RM>)
(<EQUAL? ,WINNER ,FRIEND ,LORD>
<RETURN ,YOUR-ROOM>)
(T <RFALSE>)>>
@ -2803,18 +2829,12 @@ something else.]" CR>>
,GREAT-HALL)
(T ,OLD-GREAT-HALL)>>
;<ROUTINE GENERIC-CAR (X "OPTIONAL" Y) ,CAR>
<ROUTINE GENERIC-LENS (X "OPTIONAL" Y)
<COND (<REMOTE-VERB?>
,LENS)
(<NOT <FSET? ,LENS-2 ,SEENBIT>>
,LENS-1)>>
;<ROUTINE GENERIC-PAINTING (X "OPTIONAL" Y)
<COND (<FSET? ,HYDE-IOU ,TOUCHBIT>
,OIL-PAINTING)>>
<ROUTINE GENERIC-RECORDER (X "OPTIONAL" Y)
<COND (<NOT <FSET? ,JACK-TAPE ,SEENBIT>>
,RECORDER)>>
@ -2885,8 +2905,9 @@ something else.]" CR>>
(T
<TELL "[Which">
<COND (<OR <T? ,P-OFLAG> <T? ,P-MERGED> <T? ,P-AND>>
<TELL !\ >
<PRINTB ,P-NAM>)
<COND (<T? ,P-NAM>
<TELL !\ >
<PRINTB ,P-NAM>)>)
(<EQUAL? .TBL ,P-PRSO>
<CLAUSE-PRINT ,P-NC1 ,P-NC1L <>>)
(T

2891
people.zap Normal file

File diff suppressed because it is too large Load diff

View file

@ -2039,10 +2039,13 @@ CHE ,GHOST-NEW " is wearing heavy white makeup with black eyes and lips. ">
<RTRUE>)
(<VERB? SMILE> ;"friendly"
<RTRUE>)
(<SPEAKING-VERB? ,GHOST-NEW> ;"friendly"
(<SPEAKING-VERB? ,GHOST-NEW> ;"friendly"
<RTRUE>)
(<VERB? ARREST MUNG PUSH SLAP STOP TAKE YELL> ;"unfriendly"
<RETURN 2>)>>
(<VERB? ARREST MUNG PUSH SLAP STOP YELL> ;"unfriendly"
<RETURN 2>)
(<VERB? TAKE> ;"unfriendly"
<COND (<NOT <FSET? ,GHOST-NEW ,MUNGBIT>>
<RETURN 2>)>)>>
<GLOBAL VILLAIN-KNOWN?:FLAG <>>
@ -2067,10 +2070,12 @@ CHE ,GHOST-NEW " is wearing heavy white makeup with black eyes and lips. ">
<PUTB <GETPT ,HANDS ,P?ADJECTIVE>
,OTHER-POSS-POS .ADJ>
<PUTB <GETPT ,EYE ,P?ADJECTIVE>
,OTHER-POSS-POS .ADJ>
<PUTB <GETPT ,OTHER-OUTFIT ,P?ADJECTIVE>
,OTHER-POSS-POS .ADJ>)>)>
<THIS-IS-IT ,VILLAIN-PER>
<FSET ,VILLAIN-PER ,MUNGBIT>
<PUTP ,VILLAIN-PER ,P?LDESC 19 ;"out cold" ;<GETP ,GHOST-NEW ,P?LDESC>>
<PUTP ,VILLAIN-PER ,P?LDESC 19 ;"out cold">
<SETG VILLAIN-KNOWN? T>
<TELL
"When you remove the " D ,COSTUME ", you discover " D ,VILLAIN-PER
@ -2117,34 +2122,35 @@ CHE ,GHOST-NEW " is wearing heavy white makeup with black eyes and lips. ">
<SETG CLOCK-WAIT T>
<TELL "(There is no wig!)" CR>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<NOT <NOUN-USED? ,W?WIG>>
<DESCRIBE-GOWN>
<COND (<EQUAL? <LOC ,COSTUME> ,GHOST-NEW ,VILLAIN-PER>
<TELL " It's on">)
(T <TELL
" When you hold it up, you can see it would fit">)>
<TELL " a ">
<COND (<EQUAL? ,VARIATION ,LORD-C ,FRIEND-C ,DOCTOR-C>
<TELL "person of average height.">)
(T ;<EQUAL? ,VARIATION ;,DEALER-C ,PAINTER-C ;,OFFICER-C>
<TELL "tall person.">)>
<CRLF>)>
<COND (<AND <NOT <NOUN-USED? ,W?GOWN>>
<NOT <EQUAL? ,VARIATION ,LORD-C>>>
<TELL
"It's obvious that the wig was designed to resemble " 'LOVER "'s long, flowing
hair.">
hair." CR>
<COND (<NOT <EQUAL? <LOC ,COSTUME> ,GHOST-NEW ,VILLAIN-PER>>
<TELL " Inside, you notice several individual ">
<TELL "Inside, you notice several individual ">
<COND (<EQUAL? ,VARIATION ,FRIEND-C> <TELL "red">)
(<EQUAL? ,VARIATION ,DOCTOR-C> <TELL "grayish">)
;(<EQUAL?,VARIATION ,DEALER-C><TELL "sandy-brown">)
;(<EQUAL?,VARIATION,DEALER-C><TELL "sandy-brown">)
(T ;<EQUAL? ,VARIATION ,PAINTER-C> <TELL "tawny">)
;(<EQUAL?,VARIATION,OFFICER-C><TELL "dark blond">)>
;(<EQUAL?,VARIATION,OFFICER-C><TELL"dark blond">)>
<TELL " hairs, the same color as ">
<COND ;(<EQUAL? ,VARIATION ,LORD-C> <TELL 'LOVER>)
(T <TELL D <GET ,CHARACTER-TABLE ,VARIATION>>)>
<TELL "'s hair.">)>
<CRLF>)>
<COND (<NOT <NOUN-USED? ,W?WIG>>
<DESCRIBE-GOWN>
<COND (<EQUAL? <LOC ,COSTUME> ,GHOST-NEW ,VILLAIN-PER>
<TELL " It's on a ">)
(T <TELL
" When you hold it up, you can see it would fit a ">)>
<COND (<EQUAL? ,VARIATION ,LORD-C ,FRIEND-C ,DOCTOR-C>
<TELL "person of average height." CR>)
(T ;<EQUAL? ,VARIATION ;,DEALER-C ,PAINTER-C ;,OFFICER-C>
<TELL "tall person." CR>)>)>
<CONGRATS ,COSTUME>
<TELL "'s hair." CR>
<CONGRATS ,COSTUME>)>)>
<RTRUE>)
;(<VERB? FIND>
<COND (<IN? ,COSTUME ,HERE>
@ -2157,7 +2163,9 @@ hair.">
<PERFORM ,V?UNDRESS ,GHOST-NEW>
<RTRUE>)>)
(<OR <VERB? WEAR>
<AND <VERB? PUT> <FSET? ,PRSI ,PERSONBIT>>>
<AND <VERB? PUT>
<T? ,PRSI>
<FSET? ,PRSI ,PERSONBIT>>>
<WEAR-SCARE>)>>
<ROUTINE WEAR-SCARE ()

216
places.zap Normal file
View file

@ -0,0 +1,216 @@
.FUNCT NULL-F,A1,A2
RFALSE
.FUNCT DOOR-ROOM,RM,DR,P=0,TBL
?PRG1: NEXTP RM,P >P
ZERO? P /FALSE
LESS? P,LOW-DIRECTION /FALSE
GETPT RM,P >TBL
PTSIZE TBL
EQUAL? DEXIT,STACK \?PRG1
GETB TBL,DEXITOBJ
EQUAL? DR,STACK \?PRG1
GETB TBL,REXIT
RSTACK
.FUNCT FIND-FLAG,RM,FLAG,EXCLUDED=0,O
FIRST? RM >O /?PRG1
?PRG1: ZERO? O /FALSE
FSET? O,FLAG \?CCL7
FSET? O,INVISIBLE /?CCL7
EQUAL? O,EXCLUDED /?CCL7
RETURN O
?CCL7: NEXT? O >O /?PRG1
JUMP ?PRG1
.FUNCT FIND-FLAG-NOT,RM,FLAG,O
FIRST? RM >O /?PRG1
?PRG1: ZERO? O /FALSE
FSET? O,FLAG /?CCL7
FSET? O,INVISIBLE /?CCL7
RETURN O
?CCL7: NEXT? O >O /?PRG1
JUMP ?PRG1
.FUNCT FIND-FLAG-LG,RM,FLAG,FLAG2=0,TBL,O,CNT=0,SIZE
GETPT RM,P?GLOBAL >TBL
ZERO? TBL /FALSE
PTSIZE TBL
SUB STACK,1 >SIZE
?PRG4: GETB TBL,CNT >O
FSET? O,FLAG \?CCL8
FSET? O,INVISIBLE /?CCL8
ZERO? FLAG2 /?CTR7
FSET? O,FLAG2 \?CCL8
?CTR7: RETURN O
?CCL8: IGRTR? 'CNT,SIZE \?PRG4
RFALSE
.FUNCT FIND-FLAG-HERE,FLAG,NOT1=0,NOT2=0,O
FIRST? HERE >O /?PRG1
?PRG1: ZERO? O /FALSE
FSET? O,FLAG \?CCL7
FSET? O,INVISIBLE /?CCL7
EQUAL? O,NOT1,NOT2 /?CCL7
RETURN O
?CCL7: NEXT? O >O /?PRG1
JUMP ?PRG1
.FUNCT FIND-FLAG-HERE-NOT,FLAG,NFLAG,NOT2=0,O
FIRST? HERE >O /?PRG1
?PRG1: ZERO? O /FALSE
FSET? O,FLAG \?CCL7
FSET? O,NFLAG /?CCL7
FSET? O,INVISIBLE /?CCL7
EQUAL? O,NOT2 /?CCL7
RETURN O
?CCL7: NEXT? O >O /?PRG1
JUMP ?PRG1
.FUNCT LEVER-F,X=0
FSET? HERE,SECRETBIT \?CCL3
CALL FIND-FLAG-LG,HERE,DOORBIT >X
JUMP ?CND1
?CCL3: EQUAL? HERE,DUNGEON,LOVER-PATH \?CND1
SET 'X,PRIEST-DOOR
?CND1: ZERO? X \?CCL7
CALL NOT-HERE,LEVER
RTRUE
?CCL7: EQUAL? PRSA,V?TURN,V?TAKE,V?RUB /?CTR8
EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \?CCL9
?CTR8: FSET X,TOUCHBIT
CALL OPEN-CLOSE,X
RSTACK
?CCL9: EQUAL? PRSA,V?OPEN \?CCL13
FSET X,TOUCHBIT
CALL OKAY,X,STR?66
RTRUE
?CCL13: EQUAL? PRSA,V?CLOSE \FALSE
FSET X,TOUCHBIT
CALL OKAY,X,STR?61
RTRUE
.FUNCT OPEN-CLOSE,DR,SAY-NAME=1,X
ZERO? SAY-NAME /?PRG5
CALL START-SENTENCE,DR
?PRG5: PRINTI " creaks "
FSET? DR,OPENBIT \?CCL9
FCLEAR DR,OPENBIT
CALL THIS-IS-IT,DR
PRINTI "closed.
"
CALL REMOVE-CAREFULLY
RTRUE
?CCL9: CALL DOOR-ROOM,HERE,DR >X
ZERO? X /FALSE
FSET DR,OPENBIT
CALL THIS-IS-IT,X
PRINTI "open, revealing"
FSET? HERE,SECRETBIT \?CCL18
CALL PRINTT,X
JUMP ?CND16
?CCL18: EQUAL? HERE,LOVER-PATH \?PRG25
CALL PRINTT,DUNGEON
JUMP ?CND16
?PRG25: PRINTI " a "
PRINTD PASSAGE
?CND16: FSET DR,SEENBIT
FSET X,SEENBIT
PRINTR "!"
.FUNCT OUTSIDE?,RM
CALL GLOBAL-IN?,MOON,RM
RSTACK
.FUNCT WINDOW-F
EQUAL? PRSA,V?UNLOCK /?CTR2
EQUAL? PRSA,V?LOCK,V?CLOSE,V?OPEN \?CCL3
?CTR2: EQUAL? HERE,DRIVEWAY /?CTR7
LOC PLAYER
EQUAL? STACK,CAR \?CCL8
?CTR7: CALL NO-NEED
RTRUE
?CCL8: EQUAL? PRSA,V?OPEN \?CCL12
PRINTR "The night air is too damp and chilly."
?CCL12: CALL ALREADY,WINDOW,STR?61
RTRUE
?CCL3: EQUAL? PRSA,V?THROUGH,V?LEAVE,V?DISEMBARK \?CCL16
PRINTR "It's closed tight against the mist."
?CCL16: EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-THROUGH,V?LOOK-INSIDE \FALSE
LOC WINNER
EQUAL? STACK,CAR \?PRG24
CALL V-LOOK
RSTACK
?PRG24: PRINTR "All you can see are grey shapes in the moonlight."
.FUNCT CORRIDOR-LOOK,ITM=0,C,Z,COR,VAL,FOUND=0
GETP HERE,P?CORRIDOR >C
ZERO? C /FALSE
?PRG5: SUB C,4 >Z
LESS? Z,0 /?CCL9
SET 'COR,COR-4
JUMP ?CND7
?CCL9: SUB C,2 >Z
LESS? Z,0 /?CCL11
SET 'COR,COR-2
JUMP ?CND7
?CCL11: SUB C,1 >Z
LESS? Z,0 /?REP6
SET 'COR,COR-1
?CND7: CALL CORRIDOR-CHECK,COR,ITM >VAL
ZERO? FOUND \?CND14
SET 'FOUND,VAL
?CND14: SET 'C,Z
JUMP ?PRG5
?REP6: RETURN FOUND
.FUNCT CORRIDOR-CHECK,COR,ITM,CNT=1,PAST=0,FOUND=0,RM,OBJ
?PRG1: INC 'CNT
GET COR,CNT >RM
ZERO? RM /FALSE
EQUAL? RM,ITM \?CCL7
GET COR,PAST
RSTACK
?CCL7: EQUAL? ITM,ROOMS \?CCL9
CALL THIS-IT?,RM
ZERO? STACK /?CCL9
RETURN RM
?CCL9: CALL LIT?,RM
ZERO? STACK \?CCL13
EQUAL? ITM,ROOMS \?PRG1
?CCL13: EQUAL? RM,HERE \?CCL17
SET 'PAST,1
JUMP ?PRG1
?CCL17: FIRST? RM >OBJ \?PRG1
?PRG19: ZERO? ITM /?CCL23
EQUAL? OBJ,ITM \?CND21
GET COR,PAST >FOUND
JUMP ?REP20
?CCL23: FSET? OBJ,PERSONBIT \?CND21
CALL IN-MOTION?,OBJ,TRUE-VALUE
ZERO? STACK \?CND21
PRINTD OBJ
PRINTI " is in"
CALL PRINTT,RM
PRINTC 46
CRLF
?CND21: NEXT? OBJ >OBJ /?KLU35
?KLU35: ZERO? OBJ \?PRG19
?REP20: ZERO? FOUND /?PRG1
RETURN FOUND
.ENDI

249
places.zil Normal file
View file

@ -0,0 +1,249 @@
"PLACES for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
"The usual globals"
<OBJECT ROOMS
(DESC "that")
(FLAGS NARTICLEBIT)>
<ROUTINE NULL-F ("OPTIONAL" A1 A2)
<RFALSE>>
<ROUTINE DOOR-ROOM (RM DR "AUX" (P 0) TBL)
;<COND (<==? .RM ,CAR>
<SET RM <GETP ,CAR ,P?STATION>>)>
<REPEAT ()
<COND (<OR <0? <SET P <NEXTP .RM .P>>>
<L? .P ,LOW-DIRECTION>>
<RFALSE>)
(<AND <==? ,DEXIT <PTSIZE <SET TBL <GETPT .RM .P>>>>
<==? .DR <GET-DOOR-OBJ .TBL>>>
<RETURN <GET-REXIT-ROOM .TBL>>)>>>
;<ROUTINE DOOR-DIR (RM DR "AUX" (P 0) TBL)
<REPEAT ()
<COND (<OR <0? <SET P <NEXTP .RM .P>>>
<L? .P ,LOW-DIRECTION>>
<RFALSE>)
(<AND <==? ,DEXIT <PTSIZE <SET TBL <GETPT .RM .P>>>>
<==? .DR <GET-DOOR-OBJ .TBL>>
<OR <EQUAL? .P ,P?NORTH ,P?EAST>
<EQUAL? .P ,P?SOUTH ,P?WEST>>>
<RETURN .P>)>>>
<ROUTINE FIND-FLAG (RM FLAG "OPTIONAL" (EXCLUDED <>) "AUX" O)
<SET O <FIRST? .RM>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O .FLAG>
<NOT <FSET? .O ,INVISIBLE>>
<NOT <==? .O .EXCLUDED>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
<ROUTINE FIND-FLAG-NOT (RM FLAG ;"OPTIONAL" ;(EXCLUDED <>) "AUX" O)
<SET O <FIRST? .RM>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <NOT <FSET? .O .FLAG>>
<NOT <FSET? .O ,INVISIBLE>>
;<NOT <==? .O .EXCLUDED>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
<ROUTINE FIND-FLAG-LG (RM FLAG "OPTIONAL" (FLAG2 0) "AUX" TBL O (CNT 0) SIZE)
<COND (<SET TBL <GETPT .RM ,P?GLOBAL>>
<SET SIZE <RMGL-SIZE .TBL>>
<REPEAT ()
<SET O <GET/B .TBL .CNT>>
<COND (<AND <FSET? .O .FLAG>
<NOT <FSET? .O ,INVISIBLE>>
<OR <0? .FLAG2> <FSET? .O .FLAG2>>>
<RETURN .O>)
(<IGRTR? CNT .SIZE> <RFALSE>)>>)>>
<ROUTINE FIND-FLAG-HERE (FLAG "OPTIONAL" (NOT1 <>) (NOT2 <>) "AUX" O)
<SET O <FIRST? ,HERE>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O .FLAG>
<NOT <FSET? .O ,INVISIBLE>>
<NOT <EQUAL? .O .NOT1 .NOT2>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
;<ROUTINE FIND-FLAG-HERE-BOTH (FLAG FLAG2 "OPTIONAL" (NOT2 <>) "AUX" O)
<SET O <FIRST? ,HERE>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O .FLAG>
<FSET? .O .FLAG2>
<NOT <FSET? .O ,INVISIBLE>>
<NOT <EQUAL? .O .NOT2>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
<ROUTINE FIND-FLAG-HERE-NOT (FLAG NFLAG "OPTIONAL" (NOT2 <>) "AUX" O)
<SET O <FIRST? ,HERE>>
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O .FLAG>
<NOT <FSET? .O .NFLAG>>
<NOT <FSET? .O ,INVISIBLE>>
<NOT <EQUAL? .O .NOT2>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
<OBJECT LEVER
(IN LOCAL-GLOBALS)
(DESC "lever")
(SYNONYM LEVER HANDLE)
(FLAGS TRYTAKEBIT SEENBIT)
(ACTION LEVER-F)>
<ROUTINE LEVER-F ("AUX" (X <>))
<COND (<FSET? ,HERE ,SECRETBIT>
<SET X <FIND-FLAG-LG ,HERE ,DOORBIT>>)
(<EQUAL? ,HERE ,DUNGEON ,LOVER-PATH>
<SET X ,PRIEST-DOOR>)>
<COND (<ZERO? .X>
<NOT-HERE ,LEVER>
<RTRUE>)
(<VERB? MOVE MOVE-DIR PUSH RUB TAKE TURN>
<FSET .X ,TOUCHBIT ;,SEENBIT>
<OPEN-CLOSE .X>)
(<VERB? OPEN>
<FSET .X ,TOUCHBIT ;,SEENBIT>
<OKAY .X "open">
<RTRUE>)
(<VERB? CLOSE>
<FSET .X ,TOUCHBIT ;,SEENBIT>
<OKAY .X "closed">
<RTRUE>)>>
<ROUTINE OPEN-CLOSE (DR "OPTIONAL" (SAY-NAME T) X)
<COND (.SAY-NAME
<TELL CTHE .DR>)>
<TELL " creaks ">
<COND (<FSET? .DR ,OPENBIT>
<FCLEAR .DR ,OPENBIT>
<THIS-IS-IT .DR>
<TELL "closed.|">
<REMOVE-CAREFULLY>
<RTRUE>)
(<SET X <DOOR-ROOM ,HERE .DR>>
<FSET .DR ,OPENBIT>
<THIS-IS-IT .X>
<TELL "open, revealing">
<COND (<FSET? ,HERE ,SECRETBIT>
<TELL THE .X>)
(<==? ,HERE ,LOVER-PATH>
<TELL THE ,DUNGEON>)
(T
<TELL " a " D ,PASSAGE>
;<PRINTB <GET <GETPT .X ,P?SYNONYM> 0>>)>
<FSET .DR ,SEENBIT>
<FSET .X ,SEENBIT>
<TELL "!" CR>)>>
<ROUTINE OUTSIDE? (RM) <GLOBAL-IN? ,MOON .RM>>
;<OBJECT CAR-WINDOW
(IN CAR ;LOCAL-GLOBALS)
(DESC "car window")
(ADJECTIVE CAR)
(SYNONYM WINDOW WINDSHIELD WINDSCREEN DOOR)
(GENERIC GENERIC-WINDOW)
(FLAGS SEENBIT NDESCBIT)
(ACTION WINDOW-F)>
<OBJECT WINDOW
(IN LOCAL-GLOBALS)
(DESC ;"room " "window")
;(ADJECTIVE ROOM)
(SYNONYM WINDOW WINDSHIELD WINDSCREEN DOOR)
;(GENERIC GENERIC-WINDOW)
(FLAGS SEENBIT NDESCBIT)
(ACTION WINDOW-F)>
<ROUTINE WINDOW-F ()
<COND (<VERB? OPEN CLOSE LOCK UNLOCK>
<COND (<OR <EQUAL? ,HERE ,DRIVEWAY>
<EQUAL? <LOC ,PLAYER> ,CAR>>
;<DOBJ? CAR-WINDOW>
<NO-NEED ;"do that">
;<CAR-DOOR-PSEUDO>
<RTRUE>)
(<VERB? OPEN>
<TELL "The night air is too damp and chilly." CR>)
(T ;<VERB? CLOSE>
<ALREADY ,WINDOW "closed">
<RTRUE>)>)
(<VERB? DISEMBARK ;"CLIMB OUT" LEAVE THROUGH>
<TELL "It's closed tight against the mist." CR>)
(<VERB? LOOK-INSIDE LOOK-THROUGH LOOK-OUTSIDE>
<COND (<EQUAL? <LOC ,WINNER> ,CAR>
<V-LOOK>
;<ROOM-PEEK <GETP ,CAR ,P?STATION> T>)
(T <TELL
"All you can see are grey shapes in the moonlight." CR>)>)>>
"Other stuff"
<GLOBAL COR-1 <PTABLE P?EAST P?WEST CORR-1 JUNCTION 0>>
<GLOBAL COR-2 <PTABLE P?NORTH P?SOUTH GALLERY-CORNER GALLERY 0>>
<GLOBAL COR-4 <PTABLE P?UP P?DOWN LUMBER-ROOM TAMARA-ROOM 0>>
<ROUTINE CORRIDOR-LOOK ("OPTIONAL" (ITM <>) ;(GRAB <>)
"AUX" C Z COR VAL (FOUND <>))
<COND ;(<EQUAL? .ITM ,PLAYER>
<RFALSE>)
(<T? <SET C <GETP ,HERE ,P?CORRIDOR>>>
<COND ;(<L? .C 0>
<CORRIDOR-CHECK <> .ITM .GRAB>)
(T
<REPEAT ()
<COND (<NOT <L? <SET Z <- .C 4>> 0>>
<SET COR ,COR-4>)
(<NOT <L? <SET Z <- .C 2>> 0>>
<SET COR ,COR-2>)
(<NOT <L? <SET Z <- .C 1>> 0>>
<SET COR ,COR-1>)
(T <RETURN>)>
<SET VAL <CORRIDOR-CHECK .COR .ITM ;.GRAB>>
<COND (<NOT .FOUND> <SET FOUND .VAL>)>
<SET C .Z>>
.FOUND)>)>>
<ROUTINE CORRIDOR-CHECK (COR ITM "AUX" (CNT 1) (PAST 0) (FOUND <>) RM OBJ)
<REPEAT ()
<SET CNT <+ .CNT 1>>
<SET RM <GET .COR .CNT>>
<COND (<==? .RM 0>
<RFALSE>)
(<==? .RM .ITM>
<RETURN <GET .COR .PAST> ;.RM>)
(<AND <==? .ITM ,ROOMS>
<THIS-IT? .RM> ;"ROOM-SEARCH">
<RETURN .RM>
;<COND (
<SET FOUND .RM>
<RETURN>)>)
(<AND <ZERO? <LIT? .RM>>
<NOT <==? .ITM ,ROOMS>>>
<AGAIN>)
(<==? .RM ,HERE>
<SET PAST 1>)
(<SET OBJ <FIRST? .RM>>
<REPEAT ()
<COND (.ITM
<COND (<==? .OBJ .ITM>
<SET FOUND <GET .COR .PAST>>
<RETURN>)>)
(<AND <FSET? .OBJ ,PERSONBIT>
<NOT <IN-MOTION? .OBJ T>>>
<TELL D ;CTHE .OBJ " is in" THE .RM "." CR>)>
<SET OBJ <NEXT? .OBJ>>
<COND (<NOT .OBJ> <RETURN>)>>
<COND (.FOUND <RETURN .FOUND>)>)>>>

2
syntax.zap Normal file
View file

@ -0,0 +1,2 @@
.ENDI

View file

@ -148,9 +148,9 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
<VERB-SYNONYM COMPARE MATCH>
<SYNTAX COMPARE OBJECT (MANY) = V-COMPARE PRE-COMPARE>
<SYNTAX COMPARE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE>
TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE PRE-COMPARE>
<SYNTAX COMPARE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE>
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE PRE-COMPARE>
<SYNTAX CONFRONT OBJECT (FIND PERSONBIT) WITH OBJECT = V-CONFRONT>
@ -369,8 +369,8 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
<SYNTAX KNOCK OBJECT ;(FIND PERSONBIT) (IN-ROOM ON-GROUND) ON OBJECT = V-SLAP>
<VERB-SYNONYM LEAVE EXIT ;" EMERGE ABANDON EVACUATE DEBARK DISEMBARK SCRAM">
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-LEAVE>
;<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT (FIND RMUNGBIT) = V-LEAVE>
<SYNTAX LEAVE FROM OBJECT = V-LEAVE>
<SYNTAX LIE DOWN ;ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
@ -838,7 +838,7 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
<SYNTAX HEAD OBJECT THROUGH OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX HEAD OBJECT TO OBJECT = V-DRIVE-TO PRE-DRIVE-TO>
<SYNTAX WATCH OBJECT = V-EXAMINE>
<SYNTAX WATCH OBJECT = V-EXAMINE PRE-EXAMINE>
<VERB-SYNONYM WEAR DON>
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>

299
things.zap Normal file
View file

@ -0,0 +1,299 @@
.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

432
things.zil Normal file
View file

@ -0,0 +1,432 @@
"THINGS for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<OBJECT PSEUDO-OBJECT
(IN LOCAL-GLOBALS)
(DESC "pseudo") ;"Place holder (MUST BE 6 CHARACTERS!!!!!)"
(ACTION NULL-F) ;"Place holder"
(FLAGS SEENBIT)>
<ROUTINE RANDOM-PSEUDO ()
<COND (<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT LOOK-BEHIND LOOK-UNDER TELL-ABOUT>
<RFALSE>)
(<VERB? EXAMINE LOOK-INSIDE SEARCH>
<NOTHING-SPECIAL>
<RTRUE>)
(T
<WONT-HELP>
;<TELL "You can't do anything useful with that." CR>)>>
<OBJECT LUGGAGE
(IN CAR)
(DESC "your luggage")
(ADJECTIVE MY)
(SYNONYM LUGGAGE BAG CASE SUITCASE)
(FLAGS CONTBIT SEARCHBIT TAKEBIT NARTICLEBIT)
;(LDESC "Your luggage is here.")
(CAPACITY 88)
(SIZE 30)
(ACTION LUGGAGE-F)>
<ROUTINE LUGGAGE-F ("OPTIONAL" (RARG <>))
<COND (<REMOTE-VERB?> <RFALSE>)
(<AND <VERB? TAKE MOVE>
<EQUAL? ,PRSO ,LUGGAGE>
<FSET? <LOC ,LUGGAGE> ,PERSONBIT>
;<NOT <IN? ,LUGGAGE ,PLAYER>>>
<RFALSE>)
(<AND <FSET? <LOC ,LUGGAGE> ,PERSONBIT>
<NOT-HOLDING? ,LUGGAGE>>
<RTRUE>)>>
<OBJECT BROCHURE
(IN LUGGAGE)
(DESC "tourist brochure")
(ADJECTIVE TOURIST)
(SYNONYM BROCHURE BOOK BOOKS ;BOOKLET ;GUIDE)
(GENERIC GENERIC-BOOK)
(FLAGS TAKEBIT READBIT ;BURNBIT)
(SIZE 2)
(ACTION BROCHURE-F)>
;<ROUTINE SCREENPLAY () <TELL "Screenplay by Jim Lawrence" CR>>
<ROUTINE BROCHURE-F ("AUX" X)
<COND (<VERB? ANALYZE ASK-ABOUT ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR ASK-FOR
DESCRIBE EXAMINE LOOK-INSIDE LOOK-UP OPEN READ TELL-ABOUT>
<TELL
"[You'll find the " D ,BROCHURE " in your " D ,MOONMIST " package.]" CR>
;"<TELL '|
But this copy has a scribbled note:||'>
<SET X <RANDOM 2>>
<COND (<1? .X> <SCREENPLAY>)>
<TELL ' Directed by Stu Galley|'>
<COND (<NOT <1? .X>> <SCREENPLAY>)>")>>
;<OBJECT PRINT-KIT
(IN LUGGAGE)
(DESC "fingerprint kit")
(ADJECTIVE FINGER)
(SYNONYM KIT)
(FLAGS TAKEBIT)
(SIZE 6)
(ACTION PRINT-KIT-F)>
;<ROUTINE PRINT-KIT-F ()
<COND (<VERB? OPEN CLOSE>
<NO-NEED>)
(<VERB? USE>
<COND (,PRSI
<PERFORM ,V?ANALYZE ,PRSI ,FINGERPRINTS>
<RTRUE>)
(T
<SETG CLOCK-WAIT T>
<TELL "(You didn't say what to use it on.)" CR>)>)>>
<OBJECT BLOWGUN
(DESC "blowgun")
;(IN VILLAIN)
(ADJECTIVE BLOW ;POISON)
(SYNONYM GUN BLOWGUN ;DART)
(FLAGS WEAPONBIT TAKEBIT SECRETBIT)
(SIZE 9)
(ACTION BLOWGUN-F)>
<ROUTINE BLOWGUN-F ()
<COND (<VERB? EXAMINE>
<COND ;(<NOUN-USED? ,W?DART>
)
(<QUEUED? ,I-SHOT>
<TELL "It's pointing right at you!" CR>)
(T <TELL
"It's a bamboo tube, two feet long and as thin as a small snake." CR>)>)
(<VERB? LOOK-INSIDE LOOK-THROUGH ;OPEN>
<COND (<FSET? ,BLOWGUN ,MUNGBIT>
<TELL "It's empty." CR>)
(T <TELL "There's a" ,POISON-DART " inside." CR>)>)
(T
<COND (<VERB? EMPTY>
<SETG PRSA ,V?USE>)>
<SHOOTING ,BLOWGUN>)>>
<GLOBAL POISON-DART " poison dart">
<ROUTINE NO-VIOLENCE? (OBJ "AUX" P)
<COND (<VERB? ATTACK KILL SHOOT SLAP>
<SET P ,PRSO>)
(T <SET P ,PRSI>)>
<COND (<ZERO? .P>
<SET P <FIND-FLAG-HERE-NOT ,PERSONBIT ,MUNGBIT ,WINNER>>)>
<COND (<ZERO? .P>
<SETG CLOCK-WAIT T>
<TELL "(You didn't say whom to use it on!)" CR>
<RFALSE>)>
<COND (<AND <NOT <EQUAL? .P ,GHOST-NEW>>
<OR <NOT ,VILLAIN-KNOWN?>
<NOT <EQUAL? .P ,VILLAIN-PER>>>>
<TELL ,NO-VIOLENCE>
<RFALSE>)
(<FSET? .P ,MUNGBIT>
<TELL ,NO-VIOLENCE>
<RFALSE>)
(<AND <NOT <EQUAL? ,VILLAIN-PER ,LOVER ;,LORD>>
<NOT <QUEUED? ,I-SHOT>>>
<TELL ,NO-VIOLENCE>
<RFALSE>)
(<NOT <ZERO? ,LIONEL-SPEAKS-COUNTER>>
<TELL-BAD-FORM>
<RFALSE>)
(T
<SETG SHOOTER <>>
<QUEUE I-SHOT 0>
<COND (<EQUAL? ,VILLAIN-PER ,LOVER ;,LORD>
<GHOST-FLEES>
<RFALSE>)>
;<COND (<==? .P ,FOLLOWER>
<SETG FOLLOWER 0>)>
<FSET .P ,MUNGBIT>
<FCLEAR .P ,NDESCBIT>
<PUTP .P ,P?LDESC 19 ;"out cold">
<PUT <GT-O .P> ,ATTENTION 0>
<COND (<==? .P ,GHOST-NEW>
<PUT <GT-O ,VILLAIN-PER> ,ATTENTION 0>)>
<COND (<EQUAL? .OBJ ,CANE ,WAR-CLUB ,MACE>
<QUEUE I-COME-TO <+ 9 <RANDOM 6>>>)
(T
<PUT ,SHOT <GETP .P ,P?CHARACTER> T>
<COND (<==? .P ,GHOST-NEW>
<PUT ,SHOT <GETP ,VILLAIN-PER ,P?CHARACTER> T>)>)>
<PUTP .P ,P?LINE <+ 3 <GETP .P ,P?LINE>>>
<TELL CHE .P>
<COND (<IN? ,BLOWGUN .P>
<FSET ,BLOWGUN ,TAKEBIT>
<FCLEAR ,BLOWGUN ,NDESCBIT>
<MOVE ,BLOWGUN ,HERE>
<TELL " drops" THE ,BLOWGUN " and">)>
<COND (<==? .OBJ ,MACE>
<TELL
" claps both hands over" HIS .P " mouth and nose. " CHIS .P " face
takes on a greenish pallor, and strangled noises issue from" HIS .P
" throat">)
(T <TELL
" looks surprised and stunned. Then" HIS .P " eyes flutter">)>
<TELL ". Next moment" HE .P " collapses " <GROUND-DESC> "!|">
.P)>>
<ROUTINE SHOOTING (OBJ "AUX" (P <>) ;GT)
<COND (<ATTACK-VERB? T>
<COND ;(<EQUAL? .P ,PLAYER>
<HAR-HAR>
<RTRUE>)
(<ZERO? <NO-VIOLENCE? .OBJ>>
<RTRUE>)>
<COND (<==? .OBJ ,BLOWGUN>
<FSET ,BLOWGUN ,MUNGBIT>)>
;<COND (<T? <SET P <FIND-FLAG-HERE ,PERSONBIT ,PLAYER .P>>>
<TELL
CHE .P " can hardly believe" HIS .P " eyes. " CHE .P " holds you from behind,
saying, \"I do believe you're mad! But we can detain you until the police
arrive.\"|
As indeed they do. You ought to be more careful with weapons!|">
<FINISH>)>
<RTRUE>)>>
<OBJECT MACE
(DESC "aerosol device")
(IN BUTLER)
(ADJECTIVE AEROSOL DOG ;DETERRENT)
(SYNONYM DEVICE SPRAY BUTTON WEAPON ;MACE)
(FLAGS TAKEBIT VOWELBIT WEAPONBIT NDESCBIT)
(TEXT "It says, \"JUST PRESS THE BUTTON.\"")
(SIZE 2)
(ACTION MACE-F)>
<ROUTINE MACE-F ("AUX" (P <>))
<COND (<VERB? PUSH>
<SET P <FIND-FLAG-HERE-NOT ,PERSONBIT ,MUNGBIT ,PLAYER>>
<COND (<AND <QUEUED? ,I-SHOT>
<T? .P>>
<PERFORM ,V?SHOOT .P ,MACE>
<RTRUE>)>
<TELL "The " 'MACE " emits a foul-smelling spray.">
<COND (<T? .P>
<TELL !\ CHE .P" says, \"Have a care! You almost shot me!\"">)>
<CRLF>)
(<VERB? SMELL>
<TELL "It smells foul!" CR>)
(T <SHOOTING ,MACE>)>>
<OBJECT NECKLACE-OF-D
(IN LOCAL-GLOBALS)
(DESC "Deirdre's necklace")
(ADJECTIVE ;DEIRDRE DEE\'S HER RED)
(SYNONYM NECKLACE STRING SETTING SOCKET)
(FLAGS NARTICLEBIT TAKEBIT NDESCBIT ;WEARBIT CONTBIT SECRETBIT OPENBIT)
(CAPACITY 1)
(SIZE 5)
(ACTION NECKLACE-OF-D-F)>
<GLOBAL CLASP-MUNGED " the lips of the clasp are sprung apart">
<ROUTINE NECKLACE-OF-D-F ()
<COND (<VERB? OPEN CLOSE>
<YOU-CANT>)
(<AND <VERB? COMPARE HOLD-UP PUT PUT-IN>
;<EQUAL? ,VARIATION ,LORD-C>
<EQUAL? ,JEWEL ,PRSO ,PRSI>>
<COND (<VERB? PUT-IN>
<MOVE ,JEWEL ,NECKLACE-OF-D>)>
<TELL
"The " 'JEWEL " fits the empty socket and matches the other red stones." CR>)
(<VERB? PUT-IN>
<COND (<IOBJ? NECKLACE-OF-D>
<TOO-BAD-BUT ,PRSO "too big">)>)
(<VERB? FIX>
<YOU-CANT>)
(<VERB? EXAMINE>
<TELL
"It's a slender string of small, sparkling red, nonprecious stones. You
notice that" ,CLASP-MUNGED ", as if the clasp had been pulled open by
force.">
<COND (<AND <NOT <IN? ,JEWEL ,NECKLACE-OF-D>>
;<EQUAL? ,VARIATION ,LORD-C>>
<TELL
" You also notice an empty socket or setting, from which one of the red stones
is missing.">)>
<CRLF>)
(<OR <VERB? WEAR>
<AND <VERB? PUT> <FSET? ,PRSI ,PERSONBIT>>>
<WEAR-SCARE>)>>
<OBJECT JEWEL
(DESC "tiny red jewel")
(ADJECTIVE TINY RED ;GLITTERING MISSING)
(SYNONYM JEWEL SPECK GEM STONE)
(FLAGS TAKEBIT SEENBIT)
(SIZE 1)>
[
<OBJECT LENS
(IN LENS-BOX)
(DESC "contact lens")
(ADJECTIVE CONTACT FIRST)
(SYNONYM LENS LENSES)
(FLAGS TAKEBIT ;SEENBIT ;NDESCBIT WEARBIT TRANSBIT)
(SIZE 1)
;(ACTION LENS-F)>
<OBJECT LENS-1
(DESC "first contact lens")
(ADJECTIVE FIRST CONTACT)
(SYNONYM LENS LENSES)
(GENERIC GENERIC-LENS)
(FLAGS TAKEBIT SEENBIT ;NDESCBIT WEARBIT TRANSBIT ;TOUCHBIT)
(SIZE 1)
;(ACTION LENS-F)>
;<ROUTINE LENS-F ()
<COND (<VERB? WEAR>
<TELL "Your head starts to ache, so you remove it." CR>)>>
<OBJECT LENS-2
(DESC "second contact lens")
(ADJECTIVE SECOND CONTACT)
(SYNONYM LENS LENSES)
(GENERIC GENERIC-LENS)
(FLAGS TAKEBIT ;SEENBIT ;NDESCBIT WEARBIT TRANSBIT ;TOUCHBIT)
(SIZE 1)
(ACTION LENS-2-F)>
<ROUTINE LENS-2-F ()
<COND (<AND <VERB? COMPARE>
<EQUAL? ,LENS-1 ,PRSO ,PRSI>>
<TELL "As near as you can tell, they're a matched set." CR>)
;(T <LENS-F>)>>
<OBJECT LENS-BOX
(DESC "small plastic box")
(ADJECTIVE SMALL PLASTIC LENS)
(SYNONYM BOX)
(GENERIC GENERIC-BOX)
(FLAGS NDESCBIT CONTBIT SEARCHBIT ;TRANSBIT SECRETBIT)
(CAPACITY 2)
(SIZE 3)
(ACTION LENS-BOX-F)>
<ROUTINE LENS-BOX-F ("AUX" X)
<COND (<VERB? EXAMINE LOOK-INSIDE OPEN>
<COND (<AND <FSET? ,LENS ;-1 ,SEENBIT>
<T? <SET X <LOC ,LENS>>>
;<NOT <IN? ,LENS ,LENS-BOX>>>
<MOVE ,LENS-1 .X>
<REMOVE ,LENS>)>
<FSET ,LENS-BOX ,OPENBIT>
<TELL
"You lift the hinged cover. Inside is a bed of moist foam rubber">
<SET X <FIRST? ,LENS-BOX>>
<COND (<T? .X>
<TELL ", holding">
<PRINT-CONTENTS ,LENS-BOX>)>
<TELL
". It's obvious that the box will hold two lenses." ;" You close it again."
CR>)>>
]
<OBJECT LETTER
(IN BUTLER)
(DESC "butler's note")
(ADJECTIVE B\'S HIS JACK\'S ;"BUTLER BOLITHO JACK")
(SYNONYM ;LETTER NOTE NOTES)
(FLAGS SEENBIT NDESCBIT ;TAKEBIT READBIT)
(SIZE 2)
(ACTION LETTER-F)>
<ROUTINE LETTER-F ()
<COND (<OR <VERB? EXAMINE LOOK-INSIDE READ>
<AND <VERB? SHOW> <NOT <FSET? ,LETTER ,TOUCHBIT>>>>
<COND (<NOT-HOLDING? ,LETTER>
<RTRUE>)>
<FSET ,LETTER-MAID ,SEENBIT>
<TELL
"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 " 'MAID ", 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 " 'WRITING-DESK " in the " 'SITTING-ROOM ".|
(signed) " 'BUTLER ".\"" CR>)>>
<OBJECT LETTER-MAID
(IN WRITING-DESK)
(DESC "maid's note")
(ADJECTIVE MAID\'S HER ;"MAID GLADYS")
(SYNONYM ;LETTER NOTE NOTES)
(FLAGS NDESCBIT ;TRYTAKEBIT TAKEBIT READBIT)
(SIZE 2)
(ACTION LETTER-MAID-F)>
<ROUTINE LETTER-MAID-F ()
<COND (<REMOTE-VERB?>
<RFALSE>)>
<FCLEAR ,LETTER-MAID ,NDESCBIT>
<COND (<OR <VERB? EXAMINE LOOK-INSIDE READ>
<AND <VERB? SHOW> <NOT <FSET? ,LETTER-MAID ,TOUCHBIT>>>>
<COND (<NOT-HOLDING? ,LETTER-MAID>
<RTRUE>)>
<TELL
"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.|">
<COND (<EQUAL? ,VARIATION ,LORD-C>
<TELL
"I am not the type who peeks through " 'KEYHOLE "s, either, but maybe it is
high time someone did">)
(<EQUAL? ,VARIATION ,FRIEND-C>
<TELL
"Maybe you will also be surprised to learn that a certain pet shop in
Frobzance sells more than just harmless puppies, kittens, and budgies">)
;(<EQUAL? ,VARIATION ,DEALER-C>
<TELL
"I like a pretty picture meself, but at least I know what's mine and
what's not">)
(<EQUAL? ,VARIATION ,PAINTER-C ,DOCTOR-C>
<TELL
"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 " 'PLAYER ". Some does it on paper, and that is the type
person to watch out for">)
;(<EQUAL? ,VARIATION ,OFFICER-C>
<TELL
"I lay a wager meself now and again, but at least I use me own money">)>
<TELL "!\"" CR>)>>
<OBJECT LETTER-DEE
;(IN BUTLER)
(DESC "Deirdre's note")
(ADJECTIVE DEE\'S HER ;"DEE DEIRDRE")
(SYNONYM NOTE NOTES)
(FLAGS NARTICLEBIT NDESCBIT SECRETBIT ;TAKEBIT READBIT)
(SIZE 2)
(ACTION LETTER-DEE-F)>
<ROUTINE LETTER-DEE-F ()
<COND (<OR <VERB? EXAMINE LOOK-INSIDE READ>
<AND <VERB? SHOW> <NOT <FSET? ,LETTER-DEE ,TOUCHBIT>>>>
<COND (<NOT-HOLDING? ,LETTER-DEE>
<RTRUE>)>
<TELL
"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 " 'DOCTOR " 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,|
" 'LOVER ".\"" CR>)>>

1309
tower.zap Normal file

File diff suppressed because it is too large Load diff

2194
tower.zil Normal file

File diff suppressed because it is too large Load diff

179
verbs.indicative Normal file
View file

@ -0,0 +1,179 @@
W?AIM:: .ZWORD "aim"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?POINT!.BYTE 0
W?ASK:: .ZWORD "ask"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ASK!.BYTE 0
W?AWAKE:: .ZWORD "awake"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAKE!.BYTE 0
W?BACK:: .ZWORD "back"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?BACK!.BYTE ACT?BACK
W?BANG:: .ZWORD "bang"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?KNOCK!.BYTE 0
W?BATHE:: .ZWORD "bathe"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SWIM!.BYTE 0
W?BEEP:: .ZWORD "beep"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BLOW!.BYTE 0
W?BLAST:: .ZWORD "blast"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?BLAST
W?BLOW:: .ZWORD "blow"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?BLOW!.BYTE ACT?BLOW
W?BOARD:: .ZWORD "board"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?CLIMB
W?BOW:: .ZWORD "bow"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BOW!.BYTE 0
W?BREAK:: .ZWORD "break"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DAMAGE!.BYTE 0
W?BRING:: .ZWORD "bring"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRING!.BYTE 0
W?BRUSH:: .ZWORD "brush"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRUSH!.BYTE 0
W?CALL:: .ZWORD "call"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CALL!.BYTE 0
W?CARRY:: .ZWORD "carry"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?CHASE:: .ZWORD "chase"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?FOLLOW!.BYTE 0
W?CHAT:: .ZWORD "chat"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?CHECK:: .ZWORD "check"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CHECK!.BYTE 0
W?CHUCK:: .ZWORD "chuck"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?THROW!.BYTE 0
W?CLEAN:: .ZWORD "clean"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRUSH!.BYTE 0
W?CLIMB:: .ZWORD "climb"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CLIMB!.BYTE 0
W?CLOSE:: .ZWORD "close"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CLOSE!.BYTE 0
W?COME:: .ZWORD "come"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?CRUSH:: .ZWORD "crush"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DAMAGE!.BYTE 0
W?DANCE:: .ZWORD "dance"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DANCE!.BYTE 0
W?DIG:: .ZWORD "dig"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SEARCH!.BYTE 0
W?DINE:: .ZWORD "dine"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DINE!.BYTE 0
W?DOFF:: .ZWORD "doff"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?REMOVE!.BYTE 0
W?DON:: .ZWORD "don"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WEAR!.BYTE 0
W?DRAIN:: .ZWORD "drain"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?EMPTY!.BYTE 0
W?DRAW:: .ZWORD "draw"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CLOSE!.BYTE 0
W?DRESS:: .ZWORD "dress"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?DRESS
W?DRINK:: .ZWORD "drink"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DRINK!.BYTE 0
W?DRIVE:: .ZWORD "drive"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?DRIVE!.BYTE ACT?HEAD
W?DROP:: .ZWORD "drop"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DROP!.BYTE 0
W?EAT:: .ZWORD "eat"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?EAT!.BYTE 0
W?EMPTY:: .ZWORD "empty"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?EMPTY!.BYTE 0
W?ENTER:: .ZWORD "enter"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ENTER!.BYTE 0
W?EXIT:: .ZWORD "exit"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LEAVE!.BYTE 0
W?FAINT:: .ZWORD "faint"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SLEEP!.BYTE 0
W?FEEL:: .ZWORD "feel"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?RUB!.BYTE 0
W?FETCH:: .ZWORD "fetch"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRING!.BYTE 0
W?FIGHT:: .ZWORD "fight"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ATTACK!.BYTE 0
W?FILL:: .ZWORD "fill"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?FILL!.BYTE 0
W?FIND:: .ZWORD "find"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?FIND!.BYTE 0
W?FIRE:: .ZWORD "fire"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?FIRE!.BYTE ACT?FIRE
W?FIX:: .ZWORD "fix"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?FIX!.BYTE 0
W?FLIP:: .ZWORD "flip"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SWITCH!.BYTE 0
W?FLOOD:: .ZWORD "flood"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?FLOOD!.BYTE ACT?FILL
W?GAB:: .ZWORD "gab"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?GAZE:: .ZWORD "gaze"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?GET:: .ZWORD "get"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?GET!.BYTE 0
W?GIVE:: .ZWORD "give"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?GIVE!.BYTE 0
W?GO:: .ZWORD "go"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?GRAB:: .ZWORD "grab"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?GREET:: .ZWORD "greet"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HELLO!.BYTE 0
W?GRIN:: .ZWORD "grin"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SMILE!.BYTE 0
W?HANG:: .ZWORD "hang"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HANG!.BYTE 0
W?HEAD:: .ZWORD "head"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?HEAD
W?HELP:: .ZWORD "help"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HELP!.BYTE 0
W?HIDE:: .ZWORD "hide"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HIDE!.BYTE 0
W?HIT:: .ZWORD "hit"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SLAP!.BYTE 0
W?HOLD:: .ZWORD "hold"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HOLD!.BYTE 0
W?HONK:: .ZWORD "honk"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BLOW!.BYTE 0
W?HUG:: .ZWORD "hug"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CONSOLE!.BYTE 0
W?HURL:: .ZWORD "hurl"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?THROW!.BYTE 0
W?JUMP:: .ZWORD "jump"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?JUMP!.BYTE 0
W?KICK:: .ZWORD "kick"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DAMAGE!.BYTE 0
W?KILL:: .ZWORD "kill"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?MURDER!.BYTE 0
W?KISS:: .ZWORD "kiss"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CONSOLE!.BYTE 0
W?KNOCK:: .ZWORD "knock"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?KNOCK!.BYTE 0
W?LEAP:: .ZWORD "leap"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?JUMP!.BYTE 0
W?LEAVE:: .ZWORD "leave"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LEAVE!.BYTE 0
W?LIE:: .ZWORD "lie"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LIE!.BYTE 0
W?LIFT:: .ZWORD "lift"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?LIGHT:: .ZWORD "light"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?LIGHT
W?LOCK:: .ZWORD "lock"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOCK!.BYTE 0
W?LOOK:: .ZWORD "look"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?MAKE:: .ZWORD "make"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?MAKE!.BYTE 0
W?MATCH:: .ZWORD "match"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?COMPARE!.BYTE 0
W?MOVE:: .ZWORD "move"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?MOVE!.BYTE 0
W?NAME:: .ZWORD "name"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?NAME!.BYTE 0
W?NAP:: .ZWORD "nap"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SLEEP!.BYTE 0
W?NOD:: .ZWORD "nod"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?NOD!.BYTE 0
W?OFFER:: .ZWORD "offer"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?GIVE!.BYTE 0
W?OPEN:: .ZWORD "open"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?OPEN!.BYTE 0
W?PASS:: .ZWORD "pass"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PASS!.BYTE 0
W?PAUSE:: .ZWORD "pause"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAIT!.BYTE 0
W?PEEK:: .ZWORD "peek"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?PEER:: .ZWORD "peer"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?PICK:: .ZWORD "pick"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PICK!.BYTE 0
W?PLACE:: .ZWORD "place"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?PLACE
W?PLAY:: .ZWORD "play"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PLAY!.BYTE 0
W?POINT:: .ZWORD "point"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?POINT!.BYTE 0
W?POUR:: .ZWORD "pour"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?POUR!.BYTE 0
W?PRAY:: .ZWORD "pray"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PRAY!.BYTE 0
W?PRESS:: .ZWORD "press"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?PUSH
W?PRY:: .ZWORD "pry"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?PULL:: .ZWORD "pull"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PULL!.BYTE 0
W?PUNCH:: .ZWORD "punch"!.BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE!.BYTE A?PUNCH!.BYTE ACT?SLAP
W?PUSH:: .ZWORD "push"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PUSH!.BYTE 0
W?PUT:: .ZWORD "put"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PLACE!.BYTE 0
W?RAISE:: .ZWORD "raise"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?RAP:: .ZWORD "rap"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?KNOCK!.BYTE 0
W?RAPE:: .ZWORD "rape"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ATTACK!.BYTE 0
W?READ:: .ZWORD "read"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?READ!.BYTE 0
W?RELAX:: .ZWORD "relax"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAIT!.BYTE 0
W?REPEL:: .ZWORD "repel"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ATTACK!.BYTE 0
W?REPLY:: .ZWORD "reply"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?ANSWER!.BYTE 0
W?REST:: .ZWORD "rest"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAIT!.BYTE 0
W?RING:: .ZWORD "ring"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?RING!.BYTE 0
W?RUB:: .ZWORD "rub"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?RUB!.BYTE 0
W?RUN:: .ZWORD "run"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?SAVE:: .ZWORD "save"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAVE!.BYTE 0
W?SAY:: .ZWORD "say"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?SEE:: .ZWORD "see"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?SEIZE:: .ZWORD "seize"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?SET:: .ZWORD "set"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SET!.BYTE 0
W?SHAKE:: .ZWORD "shake"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SHAKE!.BYTE 0
W?SHARE:: .ZWORD "share"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SHARE!.BYTE 0
W?SHOOT:: .ZWORD "shoot"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?FIRE!.BYTE 0
W?SHOUT:: .ZWORD "shout"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?YELL!.BYTE 0
W?SHOVE:: .ZWORD "shove"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PUSH!.BYTE 0
W?SHOW:: .ZWORD "show"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SHOW!.BYTE 0
W?SHUT:: .ZWORD "shut"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SHUT!.BYTE 0
W?SIGN:: .ZWORD "sign"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SIGN!.BYTE 0
W?SIP:: .ZWORD "sip"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DRINK!.BYTE 0
W?SIT:: .ZWORD "sit"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SIT!.BYTE 0
W?SKIM:: .ZWORD "skim"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?READ!.BYTE 0
W?SLAP:: .ZWORD "slap"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SLAP!.BYTE 0
W?SLEEP:: .ZWORD "sleep"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?SLEEP
W?SLIDE:: .ZWORD "slide"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SLIDE!.BYTE 0
W?SMASH:: .ZWORD "smash"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?DAMAGE!.BYTE 0
W?SMELL:: .ZWORD "smell"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SMELL!.BYTE 0
W?SMILE:: .ZWORD "smile"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SMILE!.BYTE 0
W?SNIFF:: .ZWORD "sniff"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SMELL!.BYTE 0
W?SOUND:: .ZWORD "sound"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SOUND!.BYTE 0
W?SPEAK:: .ZWORD "speak"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?SPILL:: .ZWORD "spill"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?POUR!.BYTE 0
W?SPRAY:: .ZWORD "spray"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?SPRAY
W?STAB:: .ZWORD "stab"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?MURDER!.BYTE 0
W?STAND:: .ZWORD "stand"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?STAND
W?STARE:: .ZWORD "stare"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?LOOK!.BYTE 0
W?START:: .ZWORD "start"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?START!.BYTE 0
W?STATE:: .ZWORD "state"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?STAY:: .ZWORD "stay"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAIT!.BYTE 0
W?STEAL:: .ZWORD "steal"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?STEER:: .ZWORD "steer"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?STEP:: .ZWORD "step"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?STOP:: .ZWORD "stop"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?STOP!.BYTE 0
W?STRIP:: .ZWORD "strip"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?UNDRESS!.BYTE 0
W?SWIM:: .ZWORD "swim"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SWIM!.BYTE 0
W?SWING:: .ZWORD "swing"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SWITCH!.BYTE 0
W?TAKE:: .ZWORD "take"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TAKE!.BYTE 0
W?TALK:: .ZWORD "talk"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SAY!.BYTE 0
W?TASTE:: .ZWORD "taste"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?EAT!.BYTE 0
W?TELL:: .ZWORD "tell"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TELL!.BYTE 0
W?TEST:: .ZWORD "test"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?CHECK!.BYTE 0
W?THROW:: .ZWORD "throw"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?THROW!.BYTE 0
W?TOOT:: .ZWORD "toot"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BLOW!.BYTE 0
W?TOSS:: .ZWORD "toss"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?THROW!.BYTE 0
W?TOUCH:: .ZWORD "touch"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?RUB!.BYTE 0
W?TRY:: .ZWORD "try"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?TRY!.BYTE 0
W?TUG:: .ZWORD "tug"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?PULL!.BYTE 0
W?TURN:: .ZWORD "turn"!.BYTE PS?OBJECT+PS?VERB+P1?OBJECT!.BYTE O?ANY!.BYTE ACT?SWITCH
W?USE:: .ZWORD "use"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?USE!.BYTE 0
W?WADE:: .ZWORD "wade"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SWIM!.BYTE 0
W?WAIT:: .ZWORD "wait"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAIT!.BYTE 0
W?WAKE:: .ZWORD "wake"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WAKE!.BYTE 0
W?WALK:: .ZWORD "walk"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?HEAD!.BYTE 0
W?WASH:: .ZWORD "wash"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRUSH!.BYTE 0
W?WASTE:: .ZWORD "waste"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?MURDER!.BYTE 0
W?WATCH:: .ZWORD "watch"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WATCH!.BYTE 0
W?WEAR:: .ZWORD "wear"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WEAR!.BYTE 0
W?WINK:: .ZWORD "wink"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?SMILE!.BYTE 0
W?WIPE:: .ZWORD "wipe"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?BRUSH!.BYTE 0
W?WRITE:: .ZWORD "write"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?WRITE!.BYTE 0
W?YELL:: .ZWORD "yell"!.BYTE PS?VERB+P1?VERB!.BYTE ACT?YELL!.BYTE 0

4859
verbs.zap Normal file

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
<TELL "Here " .STR "s a transcript of interaction with" CR>>
<ROUTINE V-SCRIPT ()
<PUT 0 8 <BOR <GET 0 8> 1>>
<LOWCORE FLAGS <BOR <LOWCORE FLAGS> 1>>
<TRANSCRIPT "begin">
<V-VERSION>
<RTRUE>>
@ -13,7 +13,7 @@ Copyright (C) 1986 Infocom, Inc. All rights reserved."
<ROUTINE V-UNSCRIPT ()
<TRANSCRIPT "end">
<V-VERSION>
<PUT 0 8 <BAND <GET 0 8> -2>>
<LOWCORE FLAGS <BAND <LOWCORE FLAGS> -2>>
<RTRUE>>
<ROUTINE V-$VERIFY ()
@ -313,21 +313,13 @@ Card can tell you why.]" CR>>
<DESCRIBE-OBJECTS>)>)>>
<ROUTINE V-VERSION ("AUX" (CNT 17) V)
<SET V <BAND <GET 0 1> *3777*>>
<SET V <BAND <LOWCORE ZORKID> *3777*>>
<TELL D ,MOONMIST "|
Infocom interactive fiction - a mystery story|
Copyright (c) 1986 by Infocom, Inc. All rights reserved." CR>
;<COND (<NOT <==? <BAND <GETB 0 1> 8> 0>>
<TELL
"Licensed to Tandy Corporation. Version 00.00." N .V CR>)>
<TELL
Copyright (c) 1986 by Infocom, Inc. All rights reserved." CR
D ,MOONMIST " is a trademark of Infocom, Inc.|
Release number " N .V " / Serial number ">
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> 23>
<RETURN>)
(T
<PRINTC <GETB 0 .CNT>>)>>
<LOWCORE-TABLE SERIAL 6 PRINTC>
<COND (<NOT <0? ,VARIATION>>
<TELL " / ">
<PRINTB <GET ,COLOR-WORDS ,VARIATION>>
@ -2146,7 +2138,7 @@ HIM ,PRSO " nor any other preposition.]" CR>)>
<COND (<DOBJ? INTDIR>
<SETG CLOCK-WAIT T>
<TELL "(If you want to see what's there, go there!)" CR>)
(<DOBJ? CASTLE HANDS HEAD ;POCKET TOWER WALL LIGHT-GLOBAL>
(<DOBJ? CASTLE HANDS HEAD OTHER-OUTFIT TOWER WALL LIGHT-GLOBAL>
<NOTHING-SPECIAL>)
;(<DOBJ? NOW-WEARING>
<TELL <GETP ,PRSO ,P?TEXT> CR>)
@ -2561,7 +2553,7 @@ from your dealer or via mail with the form in your package.]" CR>>
<ROUTINE V-LEAVE ("AUX" GT)
<COND (<==? ,WINNER ,FOLLOWER>
<SETG FOLLOWER 0>)>
<COND (<EQUAL? ,PRSO <> ,ROOMS ,HERE>
<COND (<EQUAL? ,PRSO ;<> ,ROOMS ,HERE ,GLOBAL-HERE>
<DO-WALK ,P?OUT>
<PUTP ,WINNER ,P?LDESC 9 ;"waiting patiently">
<COND (<AND <EQUAL? ,WINNER ,FRIEND>
@ -2959,7 +2951,7 @@ And things that go bump in the night, Good Lord, deliver us!\"" CR>>
;(<NOT <FSET? ,PRSO ,TAKEBIT>> ;"SYNTAX says TAKE"
<YOU-CANT "pick up">
<RTRUE>)
(<DOBJ? HEAD HANDS>
(<DOBJ? HEAD HANDS OTHER-OUTFIT>
<WONT-HELP>
<RTRUE>)
(<IN? ,PRSO ,GLOBAL-OBJECTS>
@ -3533,7 +3525,7 @@ THE ,PRSI " hidden on" HIS ,PRSO " person." CR>)>)>
<T? ,TREASURE-FOUND>>
<SET L <LOC ,INKWELL>>)>
<COND (<DOBJ? CASTLE MOON OCEAN
NOW-WEARING ;POCKET TOWER FLOOR
NOW-WEARING OTHER-OUTFIT TOWER FLOOR
WALL KEYHOLE>
<HAR-HAR>)
(<DOBJ? ARTIFACT HANDS PASSAGE TREASURE YOU>
@ -3936,7 +3928,7 @@ CHE ,PRSO is !\ <GET ,LDESC-STRINGS 12> ;"listening to you" "." CR>)>)
<RETURN>)
(T
<SET WHO-WAIT <+ .WHO-WAIT 1>>
<COND (<NOT <==? <BAND <GETB 0 1> 16> 0>>
<COND (<T? <BAND <LOWCORE ZVERSION> 16>>
<TELL !\(>
<SET VAL <TIME-PRINT ,PRESENT-TIME>>
<TELL ") ">)>