Revision 9 (Original Source)

This commit is contained in:
historicalsource 2019-04-14 13:36:31 -04:00
commit 7dcf75bb74
11 changed files with 16424 additions and 0 deletions

1
README.md Normal file
View file

@ -0,0 +1 @@
# moonmist

912
colors.zil Normal file
View file

@ -0,0 +1,912 @@
"COLORS for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<GLOBAL HERE:OBJECT DRIVEWAY ;CAR>
<GLOBAL OHERE:OBJECT 0>
;<ROUTINE START-MOVEMENT ()
<QUEUE I-LIONEL-SPEAKS %<- ,LIONEL-TIME ,PRESENT-TIME-ATOM>>>
<ROUTINE INTRO ()
<TELL "|
You drove west from London all day in your new little British " 'CAR ". Now at
last you've arrived in the storied land of Cornwall.|
|
Dusk has fallen as you pull up in front of " D ,CASTLE ". A ghostly "
'MOON " is rising, and a tall iron gate between two pillars bars the way
into the " 'COURTYARD ".|">>
<OBJECT YOUR-COLOR
(DESC "your favorite color")
(IN GLOBAL-OBJECTS)
(ADJECTIVE MY FAVORITE F.C F.C)
(SYNONYM COLOR)
(FLAGS NARTICLEBIT)
(ACTION YOUR-COLOR-F)>
<ROUTINE YOUR-COLOR-F ()
<COND (<REMOTE-VERB?>
<RFALSE>)
(<AND <NOT <EQUAL? ,HERE ,YOUR-ROOM>>
<NOT <VISIBLE? ,CAR>>
<NOT <VISIBLE? ,EXERCISE-OUTFIT>>
<NOT <VISIBLE? ,DINNER-OUTFIT>>
<NOT <VISIBLE? ,SLEEP-OUTFIT>>>
<NOT-HERE ,YOUR-COLOR>)
(T <TELL "It's " 'YOUR-COLOR "!" CR>)>>
<ROUTINE GET-COLOR ("AUX" NUM N WD (SUM 0) X)
<PUTB ,P-INBUF 0 30> ;"for CoCo"
<REPEAT ()
<TELL !\>>
<READ ,P-INBUF ,P-LEXV>
<SET NUM <GETB ,P-LEXV ,P-LEXWORDS>>
<COND (<0? .NUM>
<TELL !\" ,BEG-PARDON "\" ">
<AGAIN>)>
<SET N ,P-LEXSTART>
<REPEAT ()
<SET WD <GET ,P-LEXV .N>>
;<COND (<EQUAL? .WD ,W?PURPLE>
<SET WD ,W?VIOLET>)>
<COND (<SET X <ZMEMQ .WD ,COLOR-WORDS>>
<SETG VARIATION .X>
<RETURN>)
(<DLESS? NUM 1>
<RETURN>)
(T <SET N <+ .N ,P-LEXELEN>>)>>
<SET WD <+ ,P-LEXSTART
<* ,P-LEXELEN <- <GETB ,P-LEXV ,P-LEXWORDS> 1>>>>
<COND (<EQUAL? <GET ,P-LEXV .WD> ,W?PERIOD ,W?\! ,W??>
<SET WD <- .WD ,P-LEXELEN>>)>
<SET N <* 2 <+ .WD 1>>>
<SET WD <+ -1 <+ <GETB ,P-LEXV .N> <GETB ,P-LEXV <+ 1 .N>>>>>
;<COND (<G? .WD ,NAME-LENGTH>
<SET WD ,NAME-LENGTH>)>
<NON-BLANK-STUFF ,FAVE-COLOR <REST ,P-INBUF 1> .WD>
<TELL "\"Did you say " 'YOUR-COLOR " is ">
<PRINT-COLOR T>
<TELL "?\"">
<COND (<YES?>
<COND (<0? ,VARIATION>
<SET SUM <GETB ,P-INBUF ;"1st char in 1st word"
<GETB ,P-LEXV <+ 3 <* 2 ,P-LEXSTART>>>>>
;<SET NUM
<* 2 <+ ,P-LEXSTART
<* ,P-LEXELEN
<GETB ,P-LEXV ,P-LEXWORDS>>>>>
;<SET NUM <+ <GETB ,P-LEXV <- .NUM 1>> ;"last+1 char"
<GETB ,P-LEXV <- .NUM 2>>>>
;<REPEAT ()
<COND (<DLESS? NUM 1> <RETURN>)
(T <SET SUM <+ .SUM <GETB ,P-INBUF .NUM>>>)>>
<COND (<SET X <ZMEMQ .SUM ,COLOR-LETTERS>>
<SETG VARIATION .X>)
(T <SETG VARIATION <+ 1 <MOD .SUM ,MAX-VARS>>>)>
<SETG COLOR-FORCED <GET ,COLOR-WORDS ,VARIATION>>)>
<DO-VARIATION>
<PUTB ,P-INBUF 0 80>
<RETURN>)
(T
;<PUTB ,FAVE-COLOR 1 0>
<TELL "\"What, then?\"" CR>
<SETG VARIATION 0>)>>>
<GLOBAL VILLAIN-PER:OBJECT 0>
<GLOBAL TREASURE:OBJECT 0>
<GLOBAL HIDING-PLACE:OBJECT 0>
<GLOBAL COLOR-FORCED:FLAG 0>
<CONSTANT MAX-VARS 4>
<GLOBAL COLOR-WORDS
<PLTABLE <VOC "YELLOW" ADJ> ;FRIEND-C
<VOC "RED" ADJ> ;LORD-C
<VOC "BLUE" ADJ> ;PAINTER-C
<VOC "GREEN" ADJ> ;DOCTOR-C
;<VOC "VIOLET" BUZZ> ;OFFICER-C
;<VOC "ORANGE" BUZZ> ;DEALER-C>>
<GLOBAL COLOR-ADJS
<PLTABLE A?YELLOW ;FRIEND-C
A?RED ;LORD-C
A?BLUE ;PAINTER-C
A?GREEN ;DOCTOR-C
;A?VIOLET ;OFFICER-C
;A?ORANGE ;DEALER-C>>
<GLOBAL COLOR-LETTERS
<PLTABLE %<ASCII !\y>
%<ASCII !\r>
%<ASCII !\b>
%<ASCII !\g>
;%<ASCII !\v>
;%<ASCII !\o>>>
<ROUTINE FIX-COLOR-ADJ (OBJ "AUX" PT N)
<COND (<AND <SET PT <GETPT .OBJ ,P?ADJECTIVE>>
<SET N <ZMEMQB ,A?F.C .PT <RMGL-SIZE .PT>>>>
<PUTB .PT .N <GET ,COLOR-ADJS ,VARIATION>>)>>
<ROUTINE DO-VARIATION ("AUX" C)
<FIX-COLOR-ADJ ,YOUR-COLOR>
<FIX-COLOR-ADJ ,YOUR-ROOM>
<FIX-COLOR-ADJ ,CAR>
<FIX-COLOR-ADJ ,SLEEP-OUTFIT>
<FIX-COLOR-ADJ ,EXERCISE-OUTFIT>
<FIX-COLOR-ADJ ,DINNER-OUTFIT>
<COND (<EQUAL? ,VARIATION ,LORD-C>
<SET C <LOC ,LOVER>>)
(<EQUAL? ,VARIATION ,FRIEND-C>
<SET C ,IRIS-CLOSET>)
(<EQUAL? ,VARIATION ,PAINTER-C>
<SET C ,VIVIEN-BOX>)
(T <SET C ,WENDISH-KIT>)>
<SETG HIDING-PLACE .C>
<MOVE ,COSTUME .C>
<MOVE ,BLOWGUN .C>
<COND (<EQUAL? ,VARIATION ,LORD-C> ;"RED"
<SETG VILLAIN-PER ,LOVER ;,LORD>
<MOVE ,NECKLACE-OF-D ,JACK-ROOM>
;<FSET ,NECKLACE-OF-D ,SECRETBIT>
<MOVE ,JEWEL ,LOCAL-GLOBALS>
;<MOVE ,JOURNAL ,DESK>
<SETG TREASURE ,WAR-CLUB>
<MOVE ,CLUE-2 ,PAINTER>
<FSET ,STAINED-WINDOW ,CONTBIT>
<MOVE ,CLUE-3 ,STAINED-WINDOW>
<MOVE ,CLUE-4 ,GARDEN>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<MOVE ,CURTAIN-ROD ,JACK-ROOM>)
(T <MOVE ,CANE ,UMBRELLA-STAND>)>)
(<EQUAL? ,VARIATION ,FRIEND-C> ;"YELLOW"
<SETG VILLAIN-PER ,FRIEND>
<MOVE ,TAMARA-EVIDENCE ,TAMARA-BED ;,TAMARA-ROOM>
<PUT <GETPT ,FRIEND ,P?WEST> ,NEXITSTR "ignoring you">
<MOVE ,JOURNAL ,TAMARA-BED>
<FSET ,JOURNAL ,NDESCBIT>
<MOVE ,EARRING ,JEWELRY-CASE>
<MOVE ,JEWEL ,LOCAL-GLOBALS>
<SETG TREASURE ,NECKLACE>
<MOVE ,NECKLACE ,SKELETON>
<MOVE ,CLUE-4 ,COFFIN>
<FCLEAR ,CLUE-4 ,NDESCBIT>
<FSET ,CLUE-4 ,TAKEBIT>
<MOVE ,CLUE-3 ,BELL>
<MOVE ,BRICKS ,BASEMENT>
;<COND ;(<FSET? ,PLAYER ,FEMALE>
<MOVE ,NECKLACE ,POND>)
(T
;<FSET ,NECKLACE ,NDESCBIT>
<MOVE ,NECKLACE ,SKELETON>)>)
(<EQUAL? ,VARIATION ,DOCTOR-C> ;"GREEN"
<SETG VILLAIN-PER ,DOCTOR>
<MOVE ,WENDISH-BOOK ,BOOKCASE ;,LIBRARY>
<MOVE ,LENS-BOX ,WENDISH-KIT>
<FCLEAR ,LENS-BOX ,NDESCBIT>
<FSET ,LENS-BOX ,TAKEBIT>
<MOVE ,JOURNAL ,DESK>
<MOVE ,LETTER-DEE ,STUDY>
<SETG TREASURE ,MOONMIST>
<FSET ,MOONMIST ,SECRETBIT>
;<REMOVE ,GAME>
;<FSET ,RHINO-HEAD ,CONTBIT>
;<FSET ,RHINO-HEAD ,OPENBIT>
<MOVE ,CLUE-3 ,RHINO-HEAD>
<MOVE ,CLUE-4 ,GALLERY-CORNER ;,FRONT-GATE>
<FCLEAR ,CLUE-4 ,NDESCBIT>
<FSET ,CLUE-4 ,TAKEBIT>
;<PUTP ,CLUE-4 ,P?FDESC
"A shaft of light from the peephole lands on a fourth clue.">
<COND ;(<FSET? ,PLAYER ,FEMALE>
<MOVE ,MOONMIST ,BOTTLE>)
(T <MOVE ,MOONMIST ,INKWELL>)>)
(<EQUAL? ,VARIATION ,PAINTER-C> ;"BLUE"
<SETG VILLAIN-PER ,PAINTER>
<MOVE ,VIVIEN-DIARY ,VIVIEN-BOX>
<MOVE ,LENS-BOX ,VIVIEN-BOX>
<FCLEAR ,LENS-BOX ,NDESCBIT>
<FSET ,LENS-BOX ,TAKEBIT>
;<REMOVE ,JOURNAL>
;<MOVE ,MAGAZINE ,LUMBER-ROOM>
<SETG TREASURE ,SKULL>
<MOVE ,SKULL ,BELL>
<FSET ,MUSIC ,SECRETBIT>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<MOVE ,SKULL ,COFFIN>)
(T <MOVE ,CLUE-3 ,ARMOR>)>)
;(<EQUAL? ,VARIATION ,DEALER-C>
<SETG VILLAIN-PER ,DEALER>
<MOVE ,HYDE-IOU ,HYDE-ROOM>
<MOVE ,LENS-BOX ,HYDE-ROOM>
<SETG TREASURE ,HEADDRESS>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<MOVE ,HEADDRESS ,BRITANNIA>)
(T <MOVE ,HEADDRESS ,ARMOR>)>)
;(<EQUAL? ,VARIATION ,OFFICER-C>
<SETG VILLAIN-PER ,OFFICER>
<MOVE ,IAN-EVIDENCE ,IAN-ROOM>
<SETG TREASURE ,RUBY>
<COND (<FSET? ,PLAYER ,FEMALE>
<FSET ,STAINED-WINDOW ,CONTBIT>
<MOVE ,RUBY ,STAINED-WINDOW>)
(T
<FSET ,RHINO-HEAD ,CONTBIT>
<MOVE ,RUBY ,RHINO-HEAD>)>)>
<COND (<==? ,VILLAIN-PER ,LOVER>
<SETG SEARCHER ,LORD>)
(T <SETG SEARCHER ,VILLAIN-PER>)>
<COND (<FSET? ,VILLAIN-PER ,FEMALE>
<FSET ,GHOST-NEW ,FEMALE>)>
;<SET C <GETP ,VILLAIN-PER ,P?CHARACTER>>
;<PUTP ,GHOST-NEW ,P?CHARACTER .C> ;"in DRESS-GHOST">
[
<OBJECT CANE
;(IN LOCAL-GLOBALS)
(DESC "cane")
(SYNONYM CANE HANDLE)
(FLAGS TAKEBIT NDESCBIT SURFACEBIT OPENBIT SEARCHBIT SECRETBIT)
(ACTION CANE-F)>
<ROUTINE CANE-F ("AUX" P)
<COND (<ATTACK-VERB?>
<NO-VIOLENCE? ,CANE>
<RTRUE>)
(T <DISCOVER-WAR-CLUB ,CANE>)>>
<OBJECT PAINT
(IN CANE)
(DESC "coat of paint")
(ADJECTIVE NEW)
(SYNONYM PAINT COAT)
(FLAGS NDESCBIT TRYTAKEBIT SEENBIT SECRETBIT)
(ACTION PAINT-F)>
<ROUTINE PAINT-F ()
<COND (<VERB? EXAMINE>
<TELL "It seems to be hiding something." CR>)
(<OR <VERB? BRUSH LOOK-UNDER REMOVE RUB TAKE-OFF>
<AND <VERB? TAKE> <T? ,PRSI>>>
<DISCOVER-WAR-CLUB ,CANE ;<LOC ,PAINT> T>
<RTRUE>)
(<DIVESTMENT? ,PAINT>
<HAR-HAR>)>>
;<OBJECT CURTAIN-ROD
;(IN LOCAL-GLOBALS)
(DESC "curtain rod")
(ADJECTIVE CURTAIN)
(SYNONYM ROD)
(FLAGS NDESCBIT)
(ACTION CURTAIN-ROD-F)>
;<ROUTINE CURTAIN-ROD-F () <DISCOVER-WAR-CLUB ,CURTAIN-ROD>>
<ROUTINE DISCOVER-WAR-CLUB (OBJ "OPTIONAL" (DO-IT <>) "AUX" PER)
<COND (<OR <VERB? BRUSH RUB> <T? .DO-IT>>
<COND (<FSET? ,WAR-CLUB ,SECRETBIT>
<DISCOVER ,WAR-CLUB ,PAINT>
<MOVE ,WAR-CLUB <LOC .OBJ>>
<ROB .OBJ <LOC .OBJ>>
<MOVE .OBJ ,LOCAL-GLOBALS>
<MOVE ,PAINT ,LOCAL-GLOBALS>
<RTRUE>)>)
(<VERB? EXAMINE SEARCH>
<COND (<FSET? ,WAR-CLUB ,SECRETBIT>
<FCLEAR ,PAINT ,SECRETBIT>
<TELL
"There's something strange about this " D .OBJ ".
It's shaped like a baseball bat, but with hard, faceted bumps all over it.
It has a new " 'PAINT "." CR>)
;(T <DESCRIBE-WAR-CLUB>)>)>>
<ROUTINE ATTACK-VERB? ("OPT" (SHOOT <>))
<COND (<VERB? ATTACK KILL SLAP>
<COND (<FSET? ,PRSO ,PERSONBIT>
<RTRUE>)>)
(<VERB? SHOOT>
<COND (<AND <T? .SHOOT>
<FSET? ,PRSO ,PERSONBIT>>
<RTRUE>)>)
(<VERB? RING PUT>
<COND (<AND <T? .SHOOT>
<OR <ZERO? ,PRSI>
<FSET? ,PRSI ,PERSONBIT>>>
<RTRUE>)>)
(<VERB? USE>
<COND (<OR <ZERO? ,PRSI>
<FSET? ,PRSI ,PERSONBIT>>
<RTRUE>)>)>>
<OBJECT WAR-CLUB
;(IN LOCAL-GLOBALS)
(DESC "war club")
(ADJECTIVE WAR ;" ZULU DINGAAN KING\'S DIAMOND")
(SYNONYM CLUB HANDLE CANE ;KNOBKERRIE ;SCEPTER SCEPTRE)
(FLAGS NDESCBIT SECRETBIT SEENBIT)
(ACTION WAR-CLUB-F)>
<ROUTINE WAR-CLUB-F ()
<COND (<VERB? COMPARE>
<COND (<EQUAL? ,JEWEL ,PRSO ,PRSI>
<TELL
CTHE ,WAR-CLUB " has no " 'JEWEL " like this one." CR>)>)
(<VERB? EXAMINE>
<DESCRIBE-WAR-CLUB>)
(<ATTACK-VERB?>
<NO-VIOLENCE? ,WAR-CLUB>
<RTRUE>)
;(T <SHOOTING ,WAR-CLUB>)>>
<ROUTINE DESCRIBE-WAR-CLUB ()
<TELL
"It's a " 'WAR-CLUB " that once belonged to the Zulu king
Dingaan -- and it's studded with large diamonds!"
;"the brilliant diamond-studded knobkerrie, or war club, of Dingaan the
Vulture, the Zulu king who fought the Boers!" CR>>
<OBJECT SKULL
;(IN LOCAL-GLOBALS)
(DESC "fossil skull")
(ADJECTIVE FOSSIL)
(SYNONYM SKULL)
(FLAGS NDESCBIT SECRETBIT)
(SIZE 9)
(ACTION SKULL-F)>
<ROUTINE SKULL-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE SEARCH>
<TELL
"This staring skull is frightfully old -- even older than the castle." CR>)>>
<OBJECT NECKLACE
;(IN SKELETON)
(DESC "black pearl necklace")
(ADJECTIVE BLACK PEARL)
(SYNONYM PEARLS NECKLACE STRING)
(FLAGS TAKEBIT NDESCBIT SECRETBIT WEARBIT ;WORNBIT)
(SIZE 5)
(TEXT
"It's a strand of shiny black pearls, the rarest and most precious kind
in the world!")>
;<OBJECT GAME
(IN GLOBAL-OBJECTS)
(DESC "MOONMIST")
(ADJECTIVE MOON)
(SYNONYM GAME MOONMIST MIST)
(FLAGS NARTICLEBIT)
(ACTION GAME-F)>
;<ROUTINE GAME-F ()
<COND (<VERB? EXAMINE FIND LAMP-ON PLAY READ THROUGH>
<SETG CLOCK-WAIT T>
<TELL "[You're playing it now!]" CR>)>>
<OBJECT MOONMIST
(IN GLOBAL-OBJECTS)
(DESC "Moonmist")
(ADJECTIVE MOON GREEN)
(SYNONYM MOONMIST MIST INK ;DRUG LIQUID ;GAME)
(FLAGS NARTICLEBIT ;SECRETBIT)
(ACTION MOONMIST-F)>
<ROUTINE MOONMIST-F ()
<COND (<OR <VERB? PLAY READ>
<AND <VERB? EXAMINE FIND>
<IN? ,MOONMIST ,GLOBAL-OBJECTS>>>
<SETG CLOCK-WAIT T>
<TELL "[You're playing it now!]" CR>)
(<REMOTE-VERB?>
<RFALSE>)
(<VERB? TAKE>
<COND (<AND <NOT <IN? ,MOONMIST ,GLOBAL-OBJECTS>>
<VISIBLE? ,MOONMIST>>
<PERFORM ,PRSA <LOC ,MOONMIST> ,PRSI>
<RTRUE>)
(T <YOU-CANT>)>)
(<NOT-HOLDING? ,PRSO>
<RTRUE>)
(<VERB? POUR PUT>
<COND (<AND <T? ,PRSI>
<FSET? ,PRSI ,PERSONBIT>
<SHOOTING ,MOONMIST>>
<RFATAL>)>
<MOVE ,MOONMIST ,LOCAL-GLOBALS ;,GLOBAL-OBJECTS>
<TELL CTHE ,MOONMIST " dribbles ">
<COND (<ZERO? ,PRSI> <TELL <GROUND-DESC>>)
(<NOT <FSET? ,PRSI ,SURFACEBIT>>
<TELL "into" THE ,PRSI>)
(T <TELL "on" THE ,PRSI>)>
<TELL ", sizzles, and evaporates." CR>)
(<AND <DIVESTMENT? ,MOONMIST>
;<OR <NOT <VERB? PUT>>
<ZERO? ,PRSI>
<NOT <FSET? ,PRSI ,PERSONBIT>>>>
<PERFORM ,PRSA ,INKWELL ,PRSI>
<RTRUE>)
(<VERB? DRINK EAT>
<COND (<==? ,WINNER ,PLAYER>
<TELL
"First it puts your tongue to sleep. Then your tummy. Then your brain.">
<FINISH>)>)
(<VERB? EXAMINE SMELL>
<TELL "It's a greenish liquid with a strong odor." CR>)
(T <SHOOTING ,MOONMIST>)>>
][
<OBJECT GENERIC-CLUE
(IN GLOBAL-OBJECTS)
(DESC "clue")>
<OBJECT CLUE-1
(IN SIDEBOARD ;"BUTLER ;LOCAL-GLOBALS")
(DESC "first clue")
(ADJECTIVE FIRST 1ST ;IDENTITY CLUE PICTURE)
(SYNONYM CLUE CLUES CARD)
(GENERIC GENERIC-CLUE-FCN)
(FLAGS NDESCBIT ;TAKEBIT SEENBIT SECRETBIT READBIT)
(SIZE 1)
(ACTION CLUE-1-F)>
;<GLOBAL CLUE-1-SHOWN:FLAG <>>
<ROUTINE CLUE-1-F ()
<COND ;(<VERB? SHOW>
<COND (<FSET? ,PRSO ,PERSONBIT>
<PUT ,CLUE-1-KNOWN <GETP ,PRSO ,P?CHARACTER> T>
<RFALSE>)>)
(<VERB? COMPARE>
<COND (<EQUAL? ,TREASURE ,PRSO ,PRSI>
<TELL CTHE ,TREASURE>
<COND (<AND <EQUAL? ,VARIATION ,LORD-C>
<NOT <FSET? ,PLAYER ,FEMALE>>>
<TELL " looks just like the one on">)
(T <TELL " seems to match">)>
<TELL " the " 'CLUE-1 "!" CR>)>)
(<VERB? EXAMINE READ>
<COND (<NOT <FSET? ,CLUE-1 ,TOUCHBIT>>
<TELL "You can't see its face." CR>
<RTRUE>)>
<COND (<NOT-HOLDING? ,PRSO>
<RTRUE>)>
;<PUT ,CLUE-1-KNOWN ,PLAYER-C T>
<TELL "The " D ,CLUE-1 " shows ">
<COND (<EQUAL? ,VARIATION ,LORD-C>
<TELL "the King of ">
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL "Spades, holding a sceptre." CR>)
(T <TELL
"Clubs in one corner, with a picture of an African
chief holding a " 'WAR-CLUB "; in the other corner is the King of Diamonds,
with a picture of a crowned vulture clutching a diamond." CR>)>)
(<EQUAL? ,VARIATION ,FRIEND-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
"a Polynesian diver, holding a knife and plunging
through black water." CR>)
(T <TELL "a photo of singer Pearl Bailey." CR>)>)
(<EQUAL? ,VARIATION ,DOCTOR-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
D ,CASTLE ", with a cloud of mist hiding the " 'MOON "." CR>)
(T <TELL
"an Amazon hunter, aiming a " 'BLOWGUN " at the tree tops." CR>)>)
;(<EQUAL? ,VARIATION ,DEALER-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
"a coiled cobra weaving its head in time to a snake charmer's flute music."
CR>)
(T <TELL
"a woman with yellow headband standing in front of the Sphinx." CR>)>)
(<EQUAL? ,VARIATION ,PAINTER-C>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<TELL
"a man, who looks rather Chinese, peeking around a curtain." CR>)
(T <TELL
"a " 'SKELETON " in Chinese mandarin costume." CR>)>)
;(<EQUAL? ,VARIATION ,OFFICER-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
"a pigeon in flight, shot by an arrow and dripping blood." CR>)
(T <TELL
"a wintry park scene, with a thinly clad mother holding her baby and
shivering violently. A voice balloon from her mouth says, \"BR-R-R-R!\"
A reddish pigeon is perched on a frozen fountain nearby." CR>)>)>)>>
<OBJECT CLUE-2
(IN LORD ;LOCAL-GLOBALS)
(DESC "second clue")
(ADJECTIVE SECOND 2ND ;LOCATION JACK\'S ;JACK HIS VIV\'S ;VIVIEN HER)
(SYNONYM CLUE CLUES CARD POEM)
(GENERIC GENERIC-CLUE-FCN)
(FLAGS NDESCBIT TAKEBIT SEENBIT SECRETBIT READBIT)
(SIZE 1)
(ACTION CLUE-2-F)>
<ROUTINE CLUE-2-F ()
<COND (<VERB? EXAMINE READ>
<COND (<NOT-HOLDING? ,PRSO>
<RTRUE>)>
<FSET ,CLUE-2 ,TOUCHBIT>
<TELL CHE ,CLUE-2 " says," CR>
<COND (<EQUAL? ,VARIATION ,LORD-C>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<TELL
"\"It's curtains for anyone whose head gets in the way of this!\"" CR>)
(T
<SETG CLUE-LOC ,CHAPEL>
<TELL
"\"Forbidden fruit tempted the very first lass.|
'Twas once in a garden but now in a glass.\""
;"\"Look here, friend!\"
on an inscribed photo of British Prime Minister Neville Chamberlain
with his famous umbrella, returning from his meeting with Hitler at
Munich. The last stroke of the pen points to the umbrella." CR>)>)
(<EQUAL? ,VARIATION ,PAINTER-C>
<COND (<NOT <FSET? ,MUSIC ,TOUCHBIT>>
<SETG CLUE-LOC ,SITTING-ROOM>)
(<NOT <FSET? ,BOTTLE ,TOUCHBIT>>
<SETG CLUE-LOC ,BASEMENT>)
(T <SETG CLUE-LOC ,DRAWING-ROOM>)>
<TELL
"\"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 ____!'\"" CR>
;<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
"\"The Road to Mandalay is now underwater, and the only way
to communicate is by submarine cable.\"" CR>)
(T <TELL "\"Get to the root of it!\"" CR>)>)
(<EQUAL? ,VARIATION ,DOCTOR-C>
<SETG CLUE-LOC ,GAME-ROOM>
<TELL
"\"My first is an 'I,' but find an 'eye' that sees not.\"" CR>)
(T ;<EQUAL? ,VARIATION ,FRIEND-C>
<COND ;(<FSET? ,PLAYER ,FEMALE>
<TELL
"\"A woman knows the secret, but to get inside her mind is difficult
and often dangerous.\"" CR>)
(T
<SETG CLUE-LOC ,DECK>
<TELL
"\"... Yet the ear distinctly tells,...|
How the danger sinks and swells,|
By the sinking or the swelling in the anger of the ____s...\"" CR>)>)
;(<EQUAL? ,VARIATION ,DEALER-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL
"\"If Cleopatra ruled the Nile, who ruled the waves -- and what did
they have in common?\"" CR>)
(T <TELL
"\"Know ye that a woman may proudly flaunt her
crowning glory, but the wise man keeps his under his hat.\"" CR>)>)
;(<EQUAL? ,VARIATION ,OFFICER-C>
<COND (<FSET? ,PLAYER ,FEMALE>
<TELL "[to be supplied]" CR>)
(T <TELL
"\"Too much card-playing again!\"
It's a " 'CARTOON " of a red-eyed woozy rhino, clad in rumpled evening
clothes and holding both front hoofs painfully to its head, obviously
\"coming to\" after a night's hard drinking with glasses and bottles
nearby." CR>)>)>)>>
<OBJECT CLUE-3
(DESC "third clue")
(ADJECTIVE THIRD 3RD)
(SYNONYM CLUE CLUES CARD POEM)
(GENERIC GENERIC-CLUE-FCN)
(FLAGS NDESCBIT SECRETBIT ;TAKEBIT READBIT)
(SIZE 1)
(ACTION CLUE-3-F)>
<ROUTINE CLUE-3-F ()
<COND (<VERB? EXAMINE READ>
<COND (<NOT-HOLDING? ,PRSO>
<RTRUE>)>
<FSET ,CLUE-3 ,TOUCHBIT>
<FSET ,CLUE-3 ,TAKEBIT>
<TELL CHE ,CLUE-3 " says,|">
<COND (<EQUAL? ,VARIATION ,LORD-C>
<SETG CLUE-LOC ,GARDEN>
<TELL
"\"Despite its appearance, the fruit was quite sour.|
One bite of the apple drove Eve from her bower.\"" CR>)
(<EQUAL? ,VARIATION ,FRIEND-C>
<SETG CLUE-LOC 0>
<TELL
"\"... 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.\"" CR>)
(<EQUAL? ,VARIATION ,DOCTOR-C>
<SETG CLUE-LOC ,GALLERY>
<TELL
"\"My second is in never but not in ever, and lies in a hidden 'end'.\""
;"but find" CR>)
(T ;<EQUAL? ,VARIATION ,PAINTER-C>
<SETG CLUE-LOC ,DECK>
<TELL
"\"My al___ has no glamour;|
Its '____e' tones do clam___.|
Can you find me?\"" CR>)>)>>
<OBJECT CLUE-4
(DESC "fourth clue")
(ADJECTIVE FOURTH 4TH LAST)
(SYNONYM CLUE CLUES CARD POEM)
(GENERIC GENERIC-CLUE-FCN)
(FLAGS NDESCBIT SECRETBIT ;TAKEBIT READBIT)
(SIZE 1)
;(FDESC 0)
(ACTION CLUE-4-F)>
<ROUTINE CLUE-4-F ()
<COND (<VERB? EXAMINE READ>
<COND (<NOT-HOLDING? ,PRSO>
<RTRUE>)>
<FSET ,CLUE-4 ,TOUCHBIT>
<FSET ,CLUE-4 ,TAKEBIT>
<TELL CHE ,CLUE-4 " says,|">
<COND (<EQUAL? ,VARIATION ,LORD-C>
<SETG CLUE-LOC ,FOYER>
<TELL
"\"Out of the sunshine, into the rain...|
The end of the story is... Abel and CAIN.\"|
The last word is underlined." CR>)
(<EQUAL? ,VARIATION ,FRIEND-C>
<SETG CLUE-LOC ,BASEMENT>
<TELL
"\"If you search for 'A Cask of Amontillado,' don't get
trapped!\"" CR>)
(T ;<EQUAL? ,VARIATION ,DOCTOR-C>
<SETG CLUE-LOC ,OFFICE>
<TELL
"\"My third is the silent side of knight.|
All together I am
what you could use for poison-pen letters.\"" CR>)>)>>
]
<ROUTINE PRINT-COLOR ("OPTIONAL" (X <>))
<COND (<OR <NOT <0? ,VARIATION>> .X>
<WORD-PRINT <GETB ,FAVE-COLOR 0> 1 ,FAVE-COLOR>
<COND (<T? ,COLOR-FORCED>
<TELL " and ">
<PRINTB ,COLOR-FORCED>)>
<RTRUE>)>>
;<CONSTANT NAME-LENGTH <SETG NAME-LENGTH 39>>
<GLOBAL FAVE-COLOR <TABLE #BYTE 3 #BYTE 114 #BYTE 101 #BYTE 100
0 0 0 0 0 0 0 0 0 0 0 0 0 0>> "red"
<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
0 0 0 0 0 0 0 0 0 0 0 0>> "tester"
<GLOBAL SUFFIX <TABLE #BYTE 0 #BYTE 0 0 0>>
<CONSTANT JUNIOR-C 8>
<CONSTANT SENIOR-C 9>
<BUZZ JUNIOR JR SENIOR SR>
<ROUTINE TELL-SUFFIX ("AUX" I (J 1))
<SET I <GETB ,SUFFIX 0>>
<COND (<0? .I>
<RFALSE>)>
<TELL ", ">
<COND (<==? ,JUNIOR-C .I>
<TELL "Junior">
<RTRUE>)
(<==? ,SENIOR-C .I>
<TELL "Senior">
<RTRUE>)>
<REPEAT ()
<PRINTC <GETB ,SUFFIX .J>>
<COND (<DLESS? I 1> <RTRUE>)>
<INC J>>>
<ROUTINE TITLE-NAME ()
<TITLE>
<COND (<OR <EQUAL? ,TITLE-WORD ,W?MRS ,W?MS ,W?MISS>
<EQUAL? ,TITLE-WORD ,W?MISTER ,W?MR>
<EQUAL? ,TITLE-WORD ,W?DOCTOR ,W?DR>>
<TELL LN>)
(T <TELL FN>)>>
<ROUTINE TITLE ()
<COND (<EQUAL? ,TITLE-WORD ,W?MRS> <TELL "Mrs. ">)
(<EQUAL? ,TITLE-WORD ,W?MS> <TELL "Ms. ">)
(<EQUAL? ,TITLE-WORD ,W?MISS> <TELL "Miss ">)
(<EQUAL? ,TITLE-WORD ,W?LADY> <TELL "Lady ">)
(<EQUAL? ,TITLE-WORD ,W?DAME> <TELL "Dame ">)
(<EQUAL? ,TITLE-WORD ,W?MADAME ,W?MADAM> <TELL "Madame ">)
(<EQUAL? ,TITLE-WORD ,W?DOCTOR ,W?DR> <TELL "Dr. ">)
(<EQUAL? ,TITLE-WORD ,W?LORD> <TELL "Lord ">)
(<EQUAL? ,TITLE-WORD ,W?SIR> <TELL "Sir ">)
(<EQUAL? ,TITLE-WORD ,W?MISTER ,W?MR> <TELL "Mr. ">)
(<EQUAL? ,TITLE-WORD ,W?MASTER> <TELL "Master ">)>>
<ROUTINE NON-BLANK-STUFF (DEST SRC CNT "AUX" (ND 1) (NS 0) B (OB 32))
<DEC CNT>
<REPEAT ()
<SET B <GETB .SRC .NS>>
<COND (<NOT <AND <==? .B 32>
<OR <==? .NS .CNT> <==? .OB 32>>>>
<PUTB .DEST .ND .B>
<INC ND>
<SET OB .B>)>
<COND (<IGRTR? NS .CNT> <RETURN>)>>
<PUTB .DEST 0 <- .ND 1>>>
<GLOBAL GENDER-KNOWN:FLAG <>>
<ROUTINE FULL-NAME ("OPT" (NO-TELL <>))
<PUTB ,SUFFIX 0 0>
<PUTB ,LAST-NAME 0 0>
<SETG MIDDLE-WORD 0>
<SETG TITLE-WORD 0>
<COND (<ZERO? .NO-TELL>
<TELL "\"I said: Please state your full name.\"" CR>)>
<RTRUE>>
<GLOBAL MIDDLE-WORD 0>
<ROUTINE GET-NAME ("AUX" NUM N M I BEG END)
<PUTB ,P-INBUF 0 30> ;"for CoCo"
<REPEAT ()
<TELL !\>>
<READ ,P-INBUF ,P-LEXV>
<SET NUM <GETB ,P-LEXV ,P-LEXWORDS>>
<COND (<0? .NUM>
<TELL !\" ,BEG-PARDON "\" ">
<AGAIN>)>
<SET N ,P-LEXSTART>
<SET BEG <GET ,P-LEXV .N>>
<COND (<TITLE-NOUN? .BEG>
<DEC NUM> ;"We found a title!"
<SET N <+ .N ,P-LEXELEN>>
<SETG TITLE-WORD .BEG>
<COND (<AND ;<NOT <EQUAL? .BEG ,W?LT>>
<NOT <EQUAL? .BEG ,W?DOCTOR ,W?DR ,W?DETECT>>>
<SETG GENDER-KNOWN T>)> ;"And a gender!"
<COND (<OR <EQUAL? .BEG ,W?MR ,W?MISTER ,W?MASTER>
<EQUAL? .BEG ,W?LORD ,W?SIR>>
;<TAILOR-OUTFITS ,P?EAST>
<FCLEAR ,PLAYER ,FEMALE>)
;(T
<TAILOR-OUTFITS ,P?WEST>)>
<REPEAT () ;"Skip over period(s) after title."
<COND (<EQUAL? <GET ,P-LEXV .N> ,W?PERIOD>
<DEC NUM>
<SET N <+ .N ,P-LEXELEN>>)
(T <RETURN>)>>)>
<COND (<L? .NUM 2> ;"Too few words?"
<COND (<EQUAL? .BEG ,W?QUIT ,W?Q>
<V-QUIT>)
(<EQUAL? .BEG ,W?RESTART>
<V-RESTART>)
(<EQUAL? .BEG ,W?RESTORE>
<V-RESTORE>)>
<FULL-NAME>
<AGAIN>)>
;%<DEBUG-CODE <COND (,DBUG <TELL !\{ N .NUM " tokens}" CR>)>>
<SET BEG .N> ;"1st word"
<SET END <+ .N <* ,P-LEXELEN <- .NUM 1>>>> ;"last word"
<REPEAT () ;"Ignore final punctuation."
<COND (<EQUAL? <GET ,P-LEXV .END> ,W?PERIOD ,W?\! ,W??>
;<DEC NUM>
<SET END <- .END ,P-LEXELEN>>)
(T <RETURN>)>>
<COND (<G=? .BEG .END> ;"Too few words?"
<FULL-NAME>
<AGAIN>)>
<COND (<EQUAL? <GET ,P-LEXV .END> ,W?SR ,W?SENIOR>
<SET END <- .END ,P-LEXELEN>>
<PUTB ,SUFFIX 0 ,SENIOR-C>)
(<EQUAL? <GET ,P-LEXV .END> ,W?JR ,W?JUNIOR>
<SET END <- .END ,P-LEXELEN>>
<PUTB ,SUFFIX 0 ,JUNIOR-C>)
(<L? <SET NUM <GETB ,P-LEXV <SET N <* 2 <+ .END 1>>>>> 6>
;"no. chars in last word"
<SET M <GETB ,P-LEXV <+ 1 .N>>> ;"start of last word"
<SET I 0>
<REPEAT ()
<COND (<NOT <DLESS? NUM 0>>
<COND (<NOT <EQUAL? <GETB ,P-INBUF .M>
%<ASCII !\i>
%<ASCII !\v>
%<ASCII !\x>>>
<RETURN>)>
<INC I>
<PUTB ,SUFFIX .I <- <GETB ,P-INBUF .M> 32>>
<INC M>)
(T
<PUTB ,SUFFIX 0 .I>
<SET END <- .END ,P-LEXELEN>> ;"back over suffix"
<RETURN>)>>)>
<REPEAT () ;"Ignore pre-suffix punctuation."
<COND (<EQUAL? <GET ,P-LEXV .END> ,W?PERIOD ,W?COMMA ,W?THE>
<SET END <- .END ,P-LEXELEN>>)
(T <RETURN>)>>
<COND (<G=? .BEG .END> ;"Too few words?"
<FULL-NAME>
<AGAIN>)>
<SET N <* 2 <+ .END 1>>>
<SET NUM <GETB ,P-LEXV .N>> ;"no. chars in last word"
<SET END <- .END ,P-LEXELEN>> ;"penultimate word"
<COND (<EQUAL? <GET ,P-LEXV .END> ,W?APOSTROPHE>
<SET END <- .END ,P-LEXELEN>> ;"antepenultimate word"
<SET N <* 2 <+ .END 1>>> ;"update"
<SET NUM <+ .NUM <GETB ,P-LEXV .N>>>
<INC NUM> ;"for apostrophe")>
<COND (<G? .BEG .END> ;"Too few words?"
<FULL-NAME>
<AGAIN>)>
<SET I <+ .BEG ,P-LEXELEN>> ;"second word"
<REPEAT ()
<COND (<G? .I .END>
<SETG MIDDLE-WORD 0>
<RETURN>)
(<NOT <EQUAL? <SET M <GET ,P-LEXV .I>>
,W?THE ,W?OF ,W?COMMA>>
<SET I <+ .I ,P-LEXELEN>>)
(T
<SETG MIDDLE-WORD .M>
<SET M <* 2 <+ 1 <+ .I ,P-LEXELEN>>>>;"1st wd last name"
<SET NUM <+ .NUM <- <GETB ,P-LEXV <+ 1 .N>>
<GETB ,P-LEXV <+ 1 .M>>>>>
<SET N .M>
<RETURN>)>>
;<COND (<G? .NUM ,NAME-LENGTH>
<SET NUM ,NAME-LENGTH>)>
<NON-BLANK-STUFF ,LAST-NAME ;"Copy last name"
<REST ,P-INBUF <GETB ,P-LEXV <+ 1 .N>>>
.NUM>
<SET N <- .N ,P-WORDLEN>> ;"last token in 1st name"
;<SET END <- <GETB ,P-LEXV <+ 1 .N>> 2>>;"last char in 1st name"
<COND (<T? ,MIDDLE-WORD>
<SET N <- .N ,P-WORDLEN>>
;<SET END <- .END <+ 1 <GETB ,P-LEXV <- .M ,P-WORDLEN>>>>>)>
<SET BEG <GETB ,P-LEXV <+ 3 <* 2 .BEG>>>>;"1st char in 1st name"
<SET END <+ -1 <+ <GETB ,P-LEXV .N> <GETB ,P-LEXV <+ 1 .N>>>>>
;"last char in 1st name"
<SET N <+ 1 <- .END .BEG>>> ;"no. chars in 1st name"
;<COND (<G? .N ,NAME-LENGTH>
<SET N ,NAME-LENGTH>)>
<NON-BLANK-STUFF ,FIRST-NAME ;"Copy 1st name"
<REST ,P-INBUF .BEG ;<GETB ,P-LEXV <- .N 1>>>
.N>
<TELL "\"Did you say your name is ">
<TELL-FULL-NAME>
<TELL "?\"">
<COND (<YES?>
<PUTB ,P-INBUF 0 80>
<RETURN>)
(T
<TELL "\"Then please speak up.\"|">
<FULL-NAME T>)>>>
<BUZZ ;"DUKE DUCHESS" DAME MADAME ;MASTER>
<GLOBAL TITLE-WORD 0>
<ROUTINE PRINT-NAME (TBL "AUX" (PTR 0) LEN CH OCH (SP? T))
<SET LEN <GETB .TBL 0>>
<REPEAT ()
<COND (<IGRTR? PTR .LEN> <RETURN>)>
<SET OCH .CH>
<SET CH <GETB .TBL .PTR>>
<COND (<OR <L? .CH 97> <G? .CH 122>>
<PRINTC .CH>)
(<T? .SP?>
<PRINTC <- .CH 32>>)
(<OR <NOT <EQUAL? .OCH 39>> ;"'"
<EQUAL? .PTR .LEN>
<EQUAL? 32 <GETB .TBL <+ 1 .PTR>>>>
<PRINTC .CH>)
(T <PRINTC <- .CH 32>>)>
<COND (<OR <EQUAL? .CH 32 46> ;" ."
<EQUAL? .CH 45 38>> ;"-&"
<SET SP? T>)
(T <SET SP? <>>)>>
<COND (<EQUAL? .CH 46> <RFALSE>) ;"Don't TELL period next."
(T <RTRUE>)>>

2017
goal.zil Normal file

File diff suppressed because it is too large Load diff

28
m5.errors Normal file
View file

@ -0,0 +1,28 @@
Assembling M5.XZAP.1 on Wednesday, October 22, 1986 09:45:48
Release: 9
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.
230 globals.
955 word vocabulary.
128866 bytes (126K).
24439 bytes of preload.
13860 bytes of impure.
Outputting symbol tables

1353
m5.record Normal file

File diff suppressed because it is too large Load diff

BIN
m5.zip Normal file

Binary file not shown.

236
macros.zil Normal file
View file

@ -0,0 +1,236 @@
"MACROS for MOONMIST
Copyright (c) 1986 Infocom, Inc. All rights reserved."
;<TELL-TOKENS CR <CRLF>
N * <PRINTN .X>
C * <PRINTC .X>
D * <PRINTD .X>
A * <PRINTA .X>
FN <PRINT-NAME ,FIRST-NAME>
LN <PRINT-NAME ,LAST-NAME>
TN <TITLE-NAME>
THE * <PRINTT .X>
CTHE * <START-SENTENCE .X>
CHE * *:ATOM <HE-SHE-IT .X 1 .Y>
CHE * <HE-SHE-IT .X 1>
HE * *:ATOM <HE-SHE-IT .X 0 .Y>
HE * <HE-SHE-IT .X>
V * * <HE-SHE-IT .X -1 .Y>
HIM * <HIM-HER-IT .X>
HIS * <HIM-HER-IT .X 0 T>
CHIS * <HIM-HER-IT .X 1 T>>
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(ELSE <FORM OR !.O>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<CHTYPE <PARSE <STRING "V?"<SPNAME .ATM>>> GVAL>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
<SET L ()>>>
<DEFMAC DOBJ? ("TUPLE" ATMS "AUX" (O ()) (L ()))
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(ELSE <FORM OR !.O>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L (<COND (<TYPE? .ATM ATOM>
<CHTYPE .ATM GVAL>)
(T .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O (<FORM EQUAL? ',PRSO !.L> !.O)>
<SET L ()>>>
<DEFMAC IOBJ? ("TUPLE" ATMS "AUX" (O ()) (L ()))
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(ELSE <FORM OR !.O>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L (<COND (<TYPE? .ATM ATOM>
<CHTYPE .ATM GVAL>)
(T .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O (<FORM EQUAL? ',PRSI !.L> !.O)>
<SET L ()>>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE?)
<FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
<DEFMAC TELL ("ARGS" A)
<FORM PROG ()
!<MAPF ,LIST
<FUNCTION ("AUX" E P O)
<COND (<EMPTY? .A> <MAPSTOP>)
(<SET E <NTH .A 1>>
<SET A <REST .A>>)>
<COND (<TYPE? .E ATOM>
<COND (<OR <=? <SET P <SPNAME .E>>
"CRLF">
<=? .P "CR">>
<MAPRET '<CRLF>>)
(<=? .P "FN">
<MAPRET '<PRINT-NAME ,FIRST-NAME>>)
(<=? .P "LN">
<MAPRET '<PRINT-NAME ,LAST-NAME>>)
(<=? .P "TN">
<MAPRET '<TITLE-NAME>>)
(<EMPTY? .A>
<ERROR INDICATOR-AT-END? .E>)
(ELSE
<SET O <NTH .A 1>>
<SET A <REST .A>>
<COND (<OR <=? <SET P <SPNAME .E>>
"DESC">
<=? .P "D">
<=? .P "OBJ">
<=? .P "O">>
<MAPRET <FORM PRINTD .O>>)
(<OR <=? .P "A">
<=? .P "AN">>
<MAPRET <FORM PRINTA .O>>)
(<OR ;<=? .P "T">
<=? .P "THE">>
<MAPRET <FORM PRINTT .O>>)
(<OR ;<=? .P "CT">
<=? .P "CTHE">>
<MAPRET <FORM START-SENTENCE .O>>)
(<=? .P "CHE">
<COND (<OR <EMPTY? .A>
<NOT <TYPE? <NTH .A 1> ATOM>>>
<MAPRET <FORM HE-SHE-IT .O T>>)
(T
<SET P <SPNAME <NTH .A 1>>>
<SET A <REST .A>>
<MAPRET <FORM HE-SHE-IT .O T .P>>)>)
(<=? .P "HE">
<COND (<OR <EMPTY? .A>
<NOT <TYPE? <NTH .A 1> ATOM>>>
<MAPRET <FORM HE-SHE-IT .O>>)
(T
<SET P <SPNAME <NTH .A 1>>>
<SET A <REST .A>>
<MAPRET <FORM HE-SHE-IT .O 0 .P>>)>)
(<=? .P "V">
<SET P <SPNAME <NTH .A 1>>>
<SET A <REST .A>>
<MAPRET <FORM HE-SHE-IT .O -1 .P>>)
(<=? .P "HIM">
<MAPRET <FORM HIM-HER-IT .O>>)
;(<=? .P "CHIM">
<MAPRET <FORM HIM-HER-IT .O T>>)
(<=? .P "HIS">
<MAPRET <FORM HIM-HER-IT .O '<> T>>)
(<=? .P "CHIS">
<MAPRET <FORM HIM-HER-IT .O T T>>)
(<OR <=? .P "NUM">
<=? .P "N">>
<MAPRET <FORM PRINTN .O>>)
(<OR ;<=? .P "CHAR">
;<=? .P "CHR">
<=? .P "C">>
<MAPRET <FORM PRINTC <ASCII .O>>>)
(ELSE
<MAPRET <FORM PRINT <FORM GETP .O .E>>>)>)>)
(<TYPE? .E CHARACTER>
<MAPRET <FORM PRINTC <ASCII .E>>>)
(<TYPE? .E STRING ZSTRING>
<MAPRET <FORM PRINTI .E>>)
(<AND <TYPE? .E FORM>
<==? <NTH .E 1> QUOTE>>
<MAPRET <FORM PRINTD <FORM GVAL <NTH .E 2>>>>)
(<TYPE? .E FORM LVAL GVAL>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<DEFMAC ONE? ('TERM)
<FORM EQUAL? .TERM 1 T>>
;<ROUTINE ONE? (NUM) <EQUAL? .NUM 1 T>>
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
;<DEFMAC FLAMING? ('OBJ)
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
<FORM FSET? .OBJ ',ONBIT>>>
<DEFMAC OPENABLE? ('OBJ)
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
<FORM FSET? .OBJ ',CONTBIT>>>
<DEFMAC ABS ('NUM)
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
(T .NUM)>>
<DEFMAC GET-REXIT-ROOM ('PT)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM GET .PT ',REXIT>)
(T <FORM GETB .PT ',REXIT>)>>
<DEFMAC GET-DOOR-OBJ ('PT)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM GET .PT ',DEXITOBJ>)
(T <FORM GETB .PT ',DEXITOBJ>)>>
<DEFMAC GET/B ('TBL 'PTR)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM GET .TBL .PTR>)
(T <FORM GETB .TBL .PTR>)>>
<DEFMAC PUT/B ('TBL 'PTR 'OBJ)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM PUT .TBL .PTR .OBJ>)
(T <FORM PUTB .TBL .PTR .OBJ>)>>
<DEFMAC ZMEMQ/B ('OBJ 'TBL)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM ZMEMQ .OBJ .TBL>)
(T <FORM ZMEMQB .OBJ .TBL>)>>
<DEFMAC RMGL-SIZE ('TBL)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>)
(T <FORM - <FORM PTSIZE .TBL> 1>)>>
<DEFMAC GT-O ('OBJ)
<FORM GET ',GOAL-TABLES <FORM GETP .OBJ ',P?CHARACTER>>>
<DEFMAC T? ('TERM)
<FORM NOT <FORM ZERO? .TERM>>>
<DEFINE PSEUDO ("TUPLE" V)
<MAPF ,PLTABLE
<FUNCTION (OBJ)
<COND (<N==? <LENGTH .OBJ> 3>
<ERROR BAD-THING .OBJ>)>
<MAPRET <COND (<NTH .OBJ 2>
<VOC <SPNAME <NTH .OBJ 2>> NOUN>)>
<COND (<NTH .OBJ 1>
<VOC <SPNAME <NTH .OBJ 1>> ADJECTIVE>)>
<3 .OBJ>>>
.V>>

3329
parser.zil Normal file

File diff suppressed because it is too large Load diff

3210
people.zil Normal file

File diff suppressed because it is too large Load diff

863
syntax.zil Normal file
View file

@ -0,0 +1,863 @@
"SYNTAX for MOONMIST
Copyright (C) 1986 Infocom, Inc. All rights reserved."
<PREP-SYNONYM WITH USING ;BY>
<PREP-SYNONYM THROUGH THRU>
<PREP-SYNONYM ON ONTO>
<PREP-SYNONYM UNDER BELOW UNDERNEATH BENEATH>
<PREP-SYNONYM UNTIL TILL>
<PREP-SYNONYM TO TOWARD>
<SYNONYM IN INSIDE INTO>
<SYNONYM OUT OUTSIDE>
<SYNONYM NORTH N>
<SYNONYM EAST E>
<SYNONYM SOUTH S>
<SYNONYM WEST W>
<SYNONYM DOWN D DOWNSTAIRS>
<SYNONYM UP U>
<DIR-SYNONYM UP UPSTAIRS>
<SYNONYM NW NORTHWEST>
<SYNONYM NE NORTHEAST>
<SYNONYM SW SOUTHWEST>
<SYNONYM SE SOUTHEAST>
<BUZZ A AN THE AND OF THEN \. \, \" \! \? \'
NOW SOON ;WELL THERE PLEASE ;MAYBE BACK ANYWAY OH
ALL ;BOTH SOME BUT EXCEPT>
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
%<DEBUG-CODE
[ <SYNTAX $CHEAT OBJECT = V-$CHEAT>
<SYNTAX $GENDER OBJECT (FIND RMUNGBIT) = V-$GENDER>
<SYNTAX \#GOAL = V-$GOAL>
<SYNTAX \#QUEUE = V-$QUEUE>
<SYNTAX \#VARIATION OBJECT (FIND RMUNGBIT) = V-$VARIATION>
<SYNTAX \#RANDOM OBJECT = V-$RANDOM>
<SYNTAX \#COMMAND = V-$COMMAND>
<SYNTAX \#RECORD = V-$RECORD>
<SYNTAX \#UNRECORD = V-$UNRECORD>
<SYNTAX \#DBG = V-DEBUG>
"<SYNTAX \#WHERE = V-$WHERE>
<SYNTAX \#WHERE OBJECT = V-$WHERE>
<SYNTAX \#WHERE OBJECT OBJECT = V-$WHERE>"]>
<VERB-SYNONYM POINT AIM>
<SYNTAX POINT OBJECT AT OBJECT = V-AIM ;PRE-AIM>
<SYNTAX POINT OBJECT TO OBJECT = V-AIM ;PRE-AIM>
<SYNTAX POINT OBJECT OBJECT = V-AIM ;PRE-AIM>
<SYNTAX POINT AT OBJECT = V-SSHOW PRE-SSHOW>
<SYNTAX POINT AT OBJECT WITH OBJECT = V-SAIM PRE-SAIM>
<SYNTAX POINT TO OBJECT = V-SSHOW PRE-SSHOW>
<VERB-SYNONYM CHECK TEST ANALYSE ANALYZE>
<SYNTAX CHECK OBJECT = V-ANALYZE PRE-ANALYZE>
<SYNTAX CHECK OBJECT FOR OBJECT = V-ANALYZE PRE-ANALYZE>
<SYNTAX CHECK OUT OBJECT = V-ANALYZE PRE-ANALYZE>
<SYNTAX CHECK UNDER OBJECT = V-LOOK-UNDER PRE-LOOK-UNDER>
<SYNTAX CHECK OBJECT IN OBJECT = V-LOOK-UP>
<SYNTAX CHECK OBJECT ON OBJECT = V-SANALYZE PRE-SANALYZE>
<VERB-SYNONYM ANSWER REPLY RESPOND>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNTAX ANSWER TO OBJECT = V-REPLY>
<VERB-SYNONYM ARREST ACCUSE CAPTURE ;CONVICT ;SUBDUE>
<SYNTAX ARREST OBJECT (FIND PERSONBIT) = V-ARREST PRE-ARREST>
<SYNTAX ARREST OBJECT FOR OBJECT = V-ARREST PRE-ARREST>
<VERB-SYNONYM ASK QUESTION INQUIRE CONSULT>
<SYNTAX ASK OBJECT (FIND PERSONBIT) = V-ASK PRE-ASK-ABOUT>
<SYNTAX ASK ABOUT OBJECT = V-ASK-CONTEXT-ABOUT PRE-ASK-CONTEXT-ABOUT>
<SYNTAX ASK FOR OBJECT = V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR>
<SYNTAX ASK OBJECT ABOUT OBJECT ;(MANY) = V-ASK-ABOUT PRE-ASK-ABOUT>
<SYNTAX ASK OBJECT FOR OBJECT = V-ASK-FOR PRE-ASK-ABOUT>
<VERB-SYNONYM ATTACK FIGHT RAPE MOLEST ASSAULT REPEL>
<SYNTAX ATTACK OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNTAX ATTACK OFF OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNTAX ATTACK OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT ;(FIND WEAPONBIT) (HELD ;CARRIED HAVE TAKE)
= V-ATTACK>
;<SYNTAX BACK UP OBJECT (FIND RMUNGBIT) = V-BACK-UP>
;<SYNTAX BLAST OBJECT = V-RING>
<VERB-SYNONYM BOW CURTSY CURTSEY>
<SYNTAX BOW TO OBJECT (FIND PERSONBIT) = V-BOW>
<SYNTAX BRIEF = V-BRIEF>
;<SYNTAX BRIBE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (MANY HELD HAVE TAKE)
= V-SGIVE PRE-SGIVE>
"<VERB-SYNONYM BRING FETCH>
<SYNTAX BRING OBJECT = V-BRING PRE-BRING>
<SYNTAX BRING OBJECT OBJECT = V-SBRING PRE-SBRING>
<SYNTAX BRING OBJECT TO OBJECT = V-BRING PRE-BRING>"
<VERB-SYNONYM ;BRUSH CLEAN WIPE WASH SCRAPE SCRATCH FRESHEN>
<SYNTAX CLEAN OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM MANY)
= V-BRUSH PRE-BRUSH>
<SYNTAX CLEAN IN OBJECT (ON-GROUND IN-ROOM) = V-BOARD> "WASH IN OBJECT"
<SYNTAX CLEAN OBJECT
OFF ;OF OBJECT (ON-GROUND IN-ROOM ;MANY)
= V-BRUSH PRE-BRUSH>
<SYNTAX CLEAN OBJECT (ON-GROUND IN-ROOM MANY)
WITH OBJECT (HELD CARRIED TAKE HAVE)
= V-BRUSH PRE-BRUSH>
<SYNTAX CLEAN OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM MANY)
= V-BRUSH PRE-BRUSH>
<SYNTAX CLEAN UP OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM MANY)
= V-BRUSH PRE-BRUSH>
<VERB-SYNONYM CALL SUMMON>
<SYNTAX $CALL OBJECT (FIND PERSONBIT) = V-$CALL PRE-ASK-ABOUT>
<SYNTAX CALL OBJECT (FIND PERSONBIT) = V-$CALL PRE-ASK-ABOUT>
<SYNTAX CALL TO OBJECT (FIND PERSONBIT) = V-$CALL PRE-ASK-ABOUT>
<SYNTAX CHANGE OBJECT (FIND RMUNGBIT) = V-CHANGE>
<SYNTAX CHANGE IN OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
<SYNTAX CHANGE FOR OBJECT = V-DRESS>
<SYNTAX CHANGE TO OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
<VERB-SYNONYM CLIMB BOARD>
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-BOARD>
<SYNTAX CLIMB DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD>
<SYNTAX CLIMB OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB OUT OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB OVER OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB THROUGH OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX CLIMB UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<VERB-SYNONYM CLOSE ;DRAW>
<SYNTAX CLOSE OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE>
<SYNTAX CLOSE OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-CLOSE>
<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>
<SYNTAX COMPARE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE>
<SYNTAX CONFRONT OBJECT (FIND PERSONBIT) WITH OBJECT = V-CONFRONT>
<VERB-SYNONYM DAMAGE DESTROY BREAK SMASH CRUSH ;CRUMBLE HURT ;KICK>
<SYNTAX DAMAGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
= V-MUNG>
<SYNTAX DAMAGE UP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
= V-MUNG>
<SYNTAX DAMAGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED HAVE TAKE)
= V-MUNG>
<SYNTAX DAMAGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
DOWN ;WITH OBJECT (HELD CARRIED HAVE TAKE)
= V-MUNG>
<SYNTAX DAMAGE DOWN OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED HAVE TAKE)
= V-MUNG>
;<SYNTAX DANCE = V-DANCE>
<SYNTAX DANCE WITH OBJECT (FIND PERSONBIT) = V-DANCE>
<SYNTAX DESCRIBE OBJECT TO OBJECT (FIND RMUNGBIT) = V-DESCRIBE PRE-DESCRIBE>
"<SYNTAX DESCRIBE OBJECT TO OBJECT = V-STELL-ABOUT PRE-STELL-ABOUT>"
;<SYNTAX DIAGNOSE = V-DIAGNOSE>
;<SYNTAX DIAGNOSE OBJECT = V-DIAGNOSE>
<SYNTAX DINE ON OBJECT (FIND RMUNGBIT)
(HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE ;MANY)
= V-EAT PRE-EAT>
;<SYNTAX DISCUSS OBJECT = V-DISCUSS PRE-DISCUSS>
;<SYNTAX DISCUSS OBJECT WITH OBJECT = V-DISCUSS PRE-DISCUSS>
<SYNTAX DRESS FOR OBJECT (FIND RMUNGBIT) = V-DRESS>
;<SYNTAX DRESS FOR OBJECT = V-DRESS-FOR>
<SYNTAX DRESS IN OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
<VERB-SYNONYM DRINK SWALLOW SIP>
<SYNTAX DRINK OBJECT ;(FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-DRINK>
<SYNTAX DROP OBJECT (HELD MANY ;HAVE) = V-DROP>
<SYNTAX DROP OBJECT (HELD ;CARRIED MANY HAVE TAKE) DOWN ;ON OBJECT
= V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<SYNTAX DROP OBJECT (HELD ;CARRIED MANY HAVE TAKE) ON OBJECT
= V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD ;CARRIED MANY HAVE TAKE)
THROUGH OBJECT (ON-GROUND IN-ROOM)
= V-THROW-THROUGH PRE-THROW-THROUGH>
<VERB-SYNONYM EAT TASTE ;CONSUME>
<SYNTAX EAT OBJECT (FIND RMUNGBIT)
(HELD ;CARRIED ON-GROUND IN-ROOM HAVE TAKE ;MANY)
= V-EAT PRE-EAT>
<VERB-SYNONYM EMPTY DRAIN UNPACK>
<SYNTAX EMPTY OBJECT (FIND RMUNGBIT) = V-EMPTY PRE-EMPTY>
<SYNTAX EMPTY OBJECT (FIND CONTBIT) IN ;TO OBJECT = V-EMPTY PRE-EMPTY>
<SYNTAX ENTER OBJECT (FIND RMUNGBIT) = V-THROUGH PRE-THROUGH>
<VERB-SYNONYM EXAMINE X INSPECT ;"SCRUTINIZE STUDY" OBSERVE EXPLORE>
<SYNTAX EXAMINE OBJECT ;(FIND READBIT) ;(HELD CARRIED IN-ROOM ON-GROUND ;MANY)
= V-EXAMINE PRE-EXAMINE>
<SYNTAX EXAMINE OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
THROUGH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-READ PRE-READ>
<SYNTAX EXAMINE OBJECT ;(FIND READBIT) ;(HELD CARRIED IN-ROOM ON-GROUND ;MANY)
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-READ PRE-READ>
<SYNTAX EXAMINE UNDER OBJECT = V-LOOK-UNDER PRE-LOOK-UNDER>
<SYNTAX EXPLAIN OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
<SYNTAX EXPLAIN OBJECT TO OBJECT = V-STELL-ABOUT PRE-STELL-ABOUT>
<SYNTAX EXPLAIN ABOUT OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
<SYNTAX EXPLAIN TO OBJECT (IN-ROOM) ABOUT OBJECT
= V-TELL-ABOUT PRE-TELL-ABOUT>
<VERB-SYNONYM SLEEP FAINT ;NAP SNOOZE>
<SYNTAX SLEEP = V-FAINT>
<SYNTAX SLEEP IN OBJECT (ON-GROUND IN-ROOM) = V-FAINT>
<SYNTAX SLEEP ON OBJECT (ON-GROUND IN-ROOM) = V-FAINT>
<SYNTAX FIDDLE WITH OBJECT = V-RUB>
<VERB-SYNONYM FILL FLOOD>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-FILL ;PRE-FILL>
<SYNTAX FILL OBJECT ;(FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-FILL ;PRE-FILL>
<VERB-SYNONYM FIND DETECT DISCOVER LOCATE>
<SYNTAX FIND OBJECT ;(MANY) = V-FIND PRE-FIND>
"<SYNTAX FIND OBJECT ;(MANY) WITH OBJECT = V-FIND-WITH>"
<SYNTAX FIND OBJECT IN OBJECT = V-SSEARCH-FOR PRE-SSEARCH-FOR>
<SYNTAX FIND OBJECT ON OBJECT = V-SSEARCH-FOR PRE-SSEARCH-FOR>
<SYNTAX FIND OUT OBJECT = V-ASK-CONTEXT-ABOUT PRE-ASK-CONTEXT-ABOUT>
;<SYNTAX FINGER OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-FINGERPRINT>
<VERB-SYNONYM FIX REPAIR ADJUST>
<SYNTAX FIX OBJECT = V-FIX>
<SYNTAX FIX OBJECT WITH OBJECT ;(FIND TOOLBIT) = V-FIX>
<VERB-SYNONYM FOLLOW PURSUE CHASE STALK ;TRACE>
<SYNTAX FOLLOW OBJECT (FIND PERSONBIT) = V-FOLLOW>
<SYNTAX FOLLOW OBJECT (FIND PERSONBIT) OBJECT = V-FOLLOW> "Follow me north."
<SYNTAX FOLLOW OBJECT (FIND PERSONBIT) TO OBJECT = V-FOLLOW> "F. me to office."
<VERB-SYNONYM FORGIVE PARDON EXCUSE>
<SYNTAX FORGIVE OBJECT (FIND PERSONBIT) = V-FORGIVE>
<SYNTAX GET OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
= V-TAKE PRE-TAKE>
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT
= V-TAKE PRE-TAKE>
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
IN OBJECT
= V-TAKE PRE-TAKE>
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OFF OBJECT
= V-TAKE PRE-TAKE>
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OUT ;OF OBJECT ;(FIND CONTBIT)
= V-TAKE PRE-TAKE>
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (MANY TAKE) TO OBJECT = V-TAKE-TO>
;<SYNTAX GET OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY)
WITH OBJECT = V-TAKE-WITH PRE-TAKE-WITH>
<SYNTAX GET IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD>
<SYNTAX GET OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX GET ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX GET OUT ;OF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX GET RID ;OF OBJECT = V-DROP>
<SYNTAX GET UP OBJECT (FIND RMUNGBIT) = V-STAND>
<VERB-SYNONYM GIVE OFFER PASS ;" HAND DONATE ASSIGN FEED">
<SYNTAX GIVE OBJECT (MANY HELD HAVE ;" TAKE CARRIED ON-GROUND IN-ROOM")
TO OBJECT (FIND PERSONBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX GIVE OBJECT ;(FIND PERSONBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE ;TAKE)
= V-SGIVE PRE-SGIVE>
<SYNTAX GIVE OUT OBJECT (FIND RMUNGBIT) = V-FAINT>
<SYNTAX GIVE UP OBJECT (FIND RMUNGBIT) = V-QUIT>
"<VERB-SYNONYM GOODBYE GOOD-BYE BYE>
;<SYNTAX GOODBYE = V-GOODBYE PRE-GOODBYE>
<SYNTAX GOODBYE OBJECT (FIND RMUNGBIT) = V-GOODBYE PRE-GOODBYE>"
<SYNTAX HANG ;UP OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
;<SYNTAX HEAT OBJECT (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
WITH OBJECT ;(FIND FLAMEBIT) (HELD CARRIED TAKE HAVE)
= V-HEAT PRE-HEAT>
<VERB-SYNONYM HELLO HI GREET GREETINGS ; HOWDY>
;<SYNTAX HELLO = V-HELLO PRE-HELLO>
<SYNTAX HELLO OBJECT (FIND RMUNGBIT) = V-HELLO PRE-HELLO>
<SYNTAX HELP = V-HELP>
<SYNTAX HELP OBJECT (FIND PERSONBIT) = V-HELP>
<VERB-SYNONYM HIDE CONCEAL ;CROUCH>
"<SYNTAX HIDE = V-HIDE>
<SYNTAX HIDE BEHIND OBJECT = V-HIDE-BEHIND>"
<SYNTAX HIDE IN OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX HIDE ON OBJECT = V-THROUGH PRE-THROUGH>
"<SYNTAX HIDE UNDER OBJECT = V-THROUGH PRE-THROUGH>"
<SYNTAX HIDE OBJECT (HELD ;CARRIED MANY HAVE TAKE) UNDER OBJECT
= V-PUT-UNDER>
<SYNTAX HIDE OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<SYNTAX HOLD OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
= V-TAKE PRE-TAKE>
<SYNTAX HOLD OBJECT (IN-ROOM CARRIED TAKE HAVE) TO OBJECT = V-HOLD-UP>
<SYNTAX HOLD OBJECT (IN-ROOM CARRIED TAKE HAVE) UP ;TO OBJECT = V-HOLD-UP>
<SYNTAX HOLD UP OBJECT (IN-ROOM CARRIED TAKE HAVE) = V-HOLD-UP>
<VERB-SYNONYM I INVENT>
<SYNTAX I = V-INVENTORY>
<VERB-SYNONYM JUMP LEAP>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT (ON-GROUND IN-ROOM) = V-LEAP>
<SYNTAX JUMP FROM OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX JUMP IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD ;V-LEAP>
<SYNTAX JUMP OUT ;OF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX JUMP OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX JUMP OVER OBJECT (ON-GROUND IN-ROOM) = V-LEAP>
<VERB-SYNONYM MURDER KILL STAB WASTE ;STRANGLE>
<SYNTAX MURDER OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE ;TAKE)
= V-KILL>
<VERB-SYNONYM CONSOLE KISS HUG COMFORT FLIRT>
<SYNTAX CONSOLE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX CONSOLE WITH OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-KISS>
<VERB-SYNONYM KNOCK RAP BANG>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNTAX KNOCK OFF OBJECT (FIND PERSONBIT) (IN-ROOM ON-GROUND) = V-PUSH>
<SYNTAX KNOCK OUT OBJECT (FIND PERSONBIT) (IN-ROOM ON-GROUND) = V-SLAP>
<SYNTAX KNOCK OBJECT (IN-ROOM ON-GROUND MANY) OFF ;OF OBJECT (FIND RMUNGBIT)
= V-PUSH>
<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 FROM OBJECT = V-LEAVE>
<SYNTAX LIE DOWN ;ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
<SYNTAX LIE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
<SYNTAX LIE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-ON>
;<SYNTAX LIGHT OBJECT (FIND LIGHTBIT)(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
WITH OBJECT ;(FIND FLAMEBIT) (HELD CARRIED TAKE HAVE)
= V-BURN PRE-BURN>
<SYNTAX LISTEN TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LISTEN PRE-LISTEN>
;<SYNTAX LOAD OBJECT (HELD HAVE TAKE) WITH OBJECT (CARRIED HELD HAVE TAKE)
= V-SPUT-IN PRE-SPUT-IN>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) = V-LOCK>
<VERB-SYNONYM PEEP LOOK L STARE GAZE PEEK PEER SEE ;REACH>
<SYNTAX PEEP = V-LOOK>
<SYNTAX PEEP OBJECT = V-CHASTISE>
<SYNTAX PEEP AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
<SYNTAX PEEP AT OBJECT ;(HELD CARRIED ON-GROUND IN-ROOM ;MANY)
= V-EXAMINE PRE-EXAMINE>
"<SYNTAX PEEP AT OBJECT (HELD ;CARRIED MANY)
THROUGH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-READ PRE-READ>
;<SYNTAX PEEP AT OBJECT (HELD ;CARRIED MANY)
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-READ PRE-READ>"
<SYNTAX PEEP BEHIND OBJECT = V-LOOK-BEHIND>
<SYNTAX PEEP DOWN OBJECT (FIND RMUNGBIT) = V-LOOK-DOWN>
<SYNTAX PEEP FOR OBJECT ;(MANY) = V-FIND PRE-FIND>
<SYNTAX PEEP IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) (FIND RMUNGBIT)
= V-LOOK-INSIDE PRE-LOOK-INSIDE>
<SYNTAX PEEP IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) FOR OBJECT
= V-SEARCH-FOR PRE-SEARCH-FOR>
<SYNTAX PEEP ON OBJECT (ON-GROUND IN-ROOM) = V-LOOK-ON>
<SYNTAX PEEP OUT OBJECT (FIND RMUNGBIT) = V-LOOK-OUTSIDE>
<SYNTAX PEEP OVER OBJECT ;(HELD CARRIED ON-GROUND IN-ROOM)
= V-EXAMINE PRE-EXAMINE>
<SYNTAX PEEP UNDER OBJECT = V-LOOK-UNDER PRE-LOOK-UNDER>
<SYNTAX PEEP UP OBJECT (FIND RMUNGBIT) = V-LOOK-UP>
<SYNTAX PEEP UP OBJECT IN OBJECT = V-LOOK-UP>
<SYNTAX PEEP THROUGH OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LOOK-THROUGH>
<SYNTAX MEET OBJECT (ON-GROUND IN-ROOM) (FIND PERSONBIT) = V-MEET PRE-MEET>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-MOVE-DIR PRE-MOVE-DIR>
<VERB-SYNONYM NO NOPE ;" NAY NEGATIVE N">
<SYNTAX NO = V-NO>
<SYNTAX NOD OBJECT (FIND RMUNGBIT) = V-NOD>
<SYNTAX NOD AT OBJECT = V-HELLO PRE-HELLO>
<SYNTAX NOD TO OBJECT = V-HELLO PRE-HELLO>
<SYNTAX OPEN OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN>
<SYNTAX OPEN UP OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN>
<SYNTAX OPEN OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT ;(FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-OPEN-WITH PRE-OPEN-WITH>
<SYNTAX PICK OBJECT (FIND TAKEBIT) (ON-GROUND MANY)
= V-TAKE PRE-TAKE>
;<SYNTAX PICK OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY) WITH OBJECT
= V-TAKE-WITH PRE-TAKE-WITH>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY)
= V-TAKE PRE-TAKE>
;<SYNTAX PICK UP OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY) WITH OBJECT
= V-TAKE-WITH PRE-TAKE-WITH>
<SYNTAX PLAY OBJECT = V-PLAY>
<SYNTAX PLAY WITH OBJECT = V-PLAY>
<SYNTAX PLAY OBJECT WITH OBJECT (FIND PERSONBIT) = V-PLAY>
"<SYNTAX POCKET OBJECT (HELD CARRIED HAVE TAKE) = V-POCKET PRE-POCKET>"
<VERB-SYNONYM POUR SPILL>
<SYNTAX POUR OBJECT (HELD CARRIED HAVE TAKE) = V-POUR ;V-DROP>
<SYNTAX POUR OBJECT (HELD CARRIED HAVE TAKE) FROM OBJECT = V-POUR ;V-DROP>
<SYNTAX POUR OBJECT (HELD ;CARRIED ;MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<SYNTAX POUR OBJECT (HELD ;CARRIED ;MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
<SYNTAX POUR OBJECT(HELD ;CARRIED ;MANY HAVE TAKE) OVER OBJECT = V-PUT PRE-PUT>
;<SYNTAX PRAY = V-PRAY>
<SYNTAX PRAY FOR OBJECT (FIND RMUNGBIT) = V-PRAY>
<VERB-SYNONYM PULL TUG>
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-MOVE-DIR PRE-MOVE-DIR>
<SYNTAX PULL OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<VERB-SYNONYM PUSH PRESS SHOVE>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND ;MANY) = V-PUSH>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND ;MANY) OBJECT
= V-MOVE-DIR PRE-MOVE-DIR>
<SYNTAX PUSH OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT ;(FIND CONTBIT)
= V-PUT-IN PRE-PUT-IN>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) OFF ;OF OBJECT (FIND RMUNGBIT)
= V-PUSH>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) TO OBJECT
= V-MOVE-DIR PRE-MOVE-DIR>
<SYNTAX PUSH OBJECT (HELD ;CARRIED MANY HAVE TAKE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
<VERB-SYNONYM PLACE PUT LAY INSERT SET ;" INSTALL DEPOSIT DIP STUFF">
<SYNTAX PLACE OBJECT (HELD ;CARRIED MANY HAVE TAKE)
ON OBJECT (FIND SURFACEBIT)
= V-PUT PRE-PUT>
<SYNTAX PLACE OBJECT (HELD ;CARRIED MANY HAVE TAKE)
DOWN ;ON OBJECT (FIND SURFACEBIT)
= V-PUT PRE-PUT>
<SYNTAX PLACE OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT ;(FIND CONTBIT)
= V-PUT-IN PRE-PUT-IN>
<SYNTAX PLACE OBJECT (HELD MANY HAVE TAKE) THROUGH OBJECT (ON-GROUND IN-ROOM)
= V-THROW-THROUGH PRE-THROW-THROUGH>
<SYNTAX PLACE OBJECT (HELD ;CARRIED MANY HAVE TAKE) UNDER OBJECT
= V-PUT-UNDER>
<SYNTAX PLACE AWAY OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<SYNTAX PLACE DOWN OBJECT (HELD MANY HAVE TAKE) = V-DROP>
<SYNTAX PLACE IN OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR> "PUT IN LENS"
<SYNTAX PLACE ON OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR> "PUT ON OBJ"
<VERB-SYNONYM QUIT Q LOGOUT LOGOFF>
<SYNTAX QUIT = V-QUIT>
<VERB-SYNONYM READ SKIM ;PERUSE> ;"Must TAKE HISTORY BOOK explicitly."
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM ;TAKE HAVE)
= V-READ PRE-READ>
<SYNTAX READ OBJECT ;(FIND PERSONBIT)
OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM ;TAKE HAVE)
= V-SREAD PRE-SREAD>
<SYNTAX READ OBJECT ;(FIND READBIT)(HELD CARRIED ON-GROUND IN-ROOM ;TAKE HAVE)
TO OBJECT ;(FIND PERSONBIT)
= V-READ PRE-READ>
<SYNTAX READ ABOUT OBJECT
IN OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM ;TAKE HAVE)
= V-LOOK-UP>
<VERB-SYNONYM REMOVE DOFF ;SHED>
<SYNTAX REMOVE OBJECT (FIND WORNBIT) = V-REMOVE>
<SYNTAX REMOVE OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX REQUEST OBJECT = V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR>
<SYNTAX RESTART = V-RESTART>
<VERB-SYNONYM RESTORE ;CONTINUE RESUME>
<SYNTAX RESTORE = V-RESTORE>
<VERB-SYNONYM RING ;PEAL BLOW BLAST HONK TOOT BEEP>
<SYNTAX RING OBJECT ;(FIND RMUNGBIT) = V-RING>
<SYNTAX RING ON OBJECT = V-RING>
<SYNTAX RING OBJECT (HELD CARRIED HAVE TAKE) AT OBJECT
= V-SSHOOT PRE-SSHOOT> "BLOW BLOWGUN AT person"
<SYNTAX RING OBJECT WITH OBJECT = V-RING>
"<VERB-SYNONYM RIP TEAR>
<SYNTAX RIP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
= V-RIP>
<SYNTAX RIP UP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
= V-RIP>"
"<VERB-SYNONYM RISE ASCEND>
<SYNTAX RISE = V-RISE>
<SYNTAX RISE OBJECT = V-CLIMB-UP>
<SYNTAX RISE WITH ;BY OBJECT = V-CLIMB-UP>
<SYNTAX RISE TO OBJECT = V-RISE>"
<VERB-SYNONYM RUB TOUCH FEEL ;" PAT PET SHADE">
<SYNTAX RUB OBJECT = V-RUB>
<SYNTAX RUB OBJECT WITH OBJECT (TAKE HAVE) = V-RUB>
<SYNTAX SAVE = V-SAVE>
<SYNTAX SAVE OBJECT ;(FIND PERSONBIT) = V-HELP>
<VERB-SYNONYM SAY TALK SPEAK WHISPER STATE CHAT GAB>
<SYNTAX SAY = V-SAY>
<SYNTAX SAY ABOUT OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
<SYNTAX SAY TO OBJECT (IN-ROOM) = V-TELL PRE-ASK-ABOUT>
<SYNTAX SAY TO OBJECT (IN-ROOM) ABOUT OBJECT
= V-TELL-ABOUT PRE-TELL-ABOUT>
<SYNTAX SAY WITH OBJECT (IN-ROOM) = V-TELL PRE-ASK-ABOUT>
<SYNTAX SAY WITH OBJECT (IN-ROOM) ABOUT OBJECT
= V-ASK-ABOUT PRE-ASK-ABOUT>
<SYNTAX SCORE = V-SCORE>
<SYNTAX SCRIPT = V-SCRIPT>
<VERB-SYNONYM SEARCH DIG>
<SYNTAX SEARCH OBJECT = V-SEARCH PRE-SEARCH>
<SYNTAX SEARCH OBJECT FOR OBJECT ;(HELD CARRIED HAVE)
= V-SEARCH-FOR PRE-SEARCH-FOR>
<SYNTAX SEARCH FOR OBJECT ;(MANY) = V-FIND PRE-FIND>
<SYNTAX SEARCH IN OBJECT = V-SEARCH PRE-SEARCH>
<SYNTAX SEARCH UNDER OBJECT = V-LOOK-UNDER PRE-LOOK-UNDER>
<SYNTAX SEARCH UP OBJECT = V-SEARCH PRE-SEARCH>
"<SYNTAX SEND OBJECT = V-SEND>
;<SYNTAX SEND FOR OBJECT = V-SEND-FOR>
<SYNTAX SEND OUT OBJECT = V-SEND-OUT>
<SYNTAX SEND OBJECT OBJECT = V-SSEND PRE-SSEND>
<SYNTAX SEND OBJECT TO OBJECT = V-SEND-TO PRE-SEND-TO>"
;<SYNTAX SET OBJECT (HELD ;CARRIED MANY HAVE TAKE) ON OBJECT (FIND RMUNGBIT)
= V-PUT PRE-PUT>
<VERB-SYNONYM SHAKE RATTLE>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNTAX SHAKE OBJECT WITH OBJECT (FIND PERSONBIT) = V-SHAKE> ;"SHAKE HANDS"
<VERB-SYNONYM FIRE SHOOT SPRAY>
<SYNTAX FIRE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-SHOOT>
<SYNTAX FIRE AT OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-SHOOT>
<SYNTAX FIRE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
WITH OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE ;TAKE)
= V-SHOOT>
<SYNTAX FIRE OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE ;TAKE)
AT OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-SSHOOT PRE-SSHOOT>
<SYNTAX FIRE OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE ;TAKE)
ON OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-SSHOOT PRE-SSHOOT>
<VERB-SYNONYM SHOW DISPLAY>
<SYNTAX SHOW OBJECT ;(TAKE HAVE HELD CARRIED)
= V-SSHOW PRE-SSHOW>
<SYNTAX SHOW OBJECT ;(TAKE HAVE HELD CARRIED) TO OBJECT ;(FIND PERSONBIT)
= V-SSHOW PRE-SSHOW>
<SYNTAX SHARE OBJECT ;(TAKE HAVE HELD CARRIED)
= V-SSHOW PRE-SSHOW>
<SYNTAX SHARE OBJECT ;(TAKE HAVE HELD CARRIED) WITH OBJECT (FIND PERSONBIT)
= V-SSHOW PRE-SSHOW>
<SYNTAX SHOW OBJECT ;(FIND PERSONBIT) OBJECT ;(TAKE HAVE HELD CARRIED)
= V-SHOW ;PRE-SHOW>
<SYNTAX SHUT OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE>
<SYNTAX SHUT OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-CLOSE>
<SYNTAX SHUT OFF OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-OFF>
;<SYNTAX SHUT OFF OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-LAMP-OFF>
<SYNTAX SIGN OBJECT (TAKE HAVE HELD CARRIED) = V-SIGN>
<VERB-SYNONYM SIT ;" CROUCH HUNKER SQUAT STOOP">
<SYNTAX SIT ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
<SYNTAX SIT AT OBJECT (ON-GROUND IN-ROOM) = V-SIT-AT>
<SYNTAX SIT BESIDE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-SIT-AT>
<SYNTAX SIT DOWN ;ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
<SYNTAX SIT IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
<VERB-SYNONYM PUNCH SLAP HIT KICK ;" HURT INJURE STRIKE BITE BEAT">
<SYNTAX PUNCH OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-SLAP>
<SYNTAX PUNCH OBJECT (ON-GROUND IN-ROOM) AROUND OBJECT (FIND RMUNGBIT)= V-SLAP>
<SYNTAX PUNCH OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE) = V-SLAP>
;<SYNTAX SLIDE OBJECT = V-SLIDE>
<SYNTAX SLIDE OBJECT (HELD ;CARRIED MANY HAVE TAKE) UNDER OBJECT
= V-PUT-UNDER>
<SYNTAX SLIDE OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<VERB-SYNONYM SMELL SNIFF>
<SYNTAX SMELL OBJECT = V-SMELL>
<VERB-SYNONYM SMILE GRIN WINK>
<SYNTAX SMILE AT OBJECT (FIND PERSONBIT) = V-SMILE>
;<SYNTAX SMOKE OBJECT (HELD CARRIED TAKE HAVE) = V-SMOKE>
<VERB-SYNONYM SORRY APOLOGIZE>
<SYNTAX SORRY OBJECT ;(MANY) (FIND RMUNGBIT) = V-SORRY PRE-HELLO>
<SYNTAX SORRY TO OBJECT ;(MANY) (FIND RMUNGBIT) = V-SORRY PRE-HELLO>
<SYNTAX SOUND OBJECT = V-RING>
<SYNTAX SOUND OBJECT ON OBJECT = V-SOUND>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX STAND UP OBJECT (FIND RMUNGBIT) = V-STAND>
<VERB-SYNONYM START ;" ACTIVATE ENGAGE">
<SYNTAX START OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX START OVER OBJECT (FIND RMUNGBIT) = V-RESTART>
<VERB-SYNONYM STOP PARK>
<SYNTAX STOP OBJECT (FIND RMUNGBIT) = V-STOP>
<SYNTAX SUPERBRIEF = V-SUPER-BRIEF>
<VERB-SYNONYM SWIM WADE BATHE>
"<SYNTAX SWIM = V-SWIM>"
<SYNTAX SWIM IN OBJECT = V-SWIM>
<VERB-SYNONYM TAKE CARRY STEAL SEIZE GRAB ;CONFISCATE PRY RAISE LIFT>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
= V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
IN OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
ON OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
OUT ;OF OBJECT ;(FIND CONTBIT) = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (MANY TAKE) TO OBJECT = V-TAKE-TO>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED TAKE HAVE) UP ;TO OBJECT = V-HOLD-UP>
;<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY)
WITH OBJECT = V-TAKE-WITH PRE-TAKE-WITH>
<SYNTAX TAKE OFF OBJECT (FIND WORNBIT) ;(HAVE) = V-TAKE-OFF>
<SYNTAX TAKE OUT OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
= V-TAKE PRE-TAKE>
<SYNTAX TAKE UP OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
= V-TAKE PRE-TAKE>
<SYNTAX TELL OBJECT (FIND PERSONBIT) (IN-ROOM) = V-TELL PRE-ASK-ABOUT>
<SYNTAX TELL OBJECT (IN-ROOM) OBJECT = V-TELL-ABOUT PRE-TELL-ABOUT>
<SYNTAX TELL ABOUT OBJECT ;(MANY) = V-TALK-ABOUT PRE-TALK-ABOUT>
<SYNTAX TELL OBJECT (IN-ROOM) ABOUT OBJECT ;(MANY)
= V-TELL-ABOUT PRE-TELL-ABOUT>
<VERB-SYNONYM THANKS THANK>
<SYNTAX THANKS = V-THANKS>
<SYNTAX THANKS OBJECT = V-THANKS>
<VERB-SYNONYM THROW ;HURL ;CHUCK TOSS>
<SYNTAX THROW AWAY OBJECT (HELD CARRIED HAVE) = V-DROP>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
AGAINST OBJECT (ON-GROUND IN-ROOM)
= V-THROW-AT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
AT OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-THROW-AT>
<SYNTAX THROW OBJECT (HELD ;CARRIED MANY HAVE TAKE) IN OBJECT
= V-PUT-IN PRE-PUT-IN>
<SYNTAX THROW OBJECT (HELD ;CARRIED MANY HAVE TAKE)
ON OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
OUT ;OF OBJECT (ON-GROUND IN-ROOM)
= V-THROW-THROUGH PRE-THROW-THROUGH>
<SYNTAX THROW OBJECT (HELD ;CARRIED MANY HAVE TAKE)
OVER OBJECT (ON-GROUND IN-ROOM)
= V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
THROUGH OBJECT (ON-GROUND IN-ROOM)
= V-THROW-THROUGH PRE-THROW-THROUGH>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
TO OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
= V-THROW-AT>
"<VERB-SYNONYM TIE FASTEN SECURE ATTACH>
<SYNTAX TIE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
TO OBJECT ;(FIND FURNITURE) (ON-GROUND IN-ROOM)
= V-TIE-TO PRE-TIE-TO>
<SYNTAX TIE UP OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
TO OBJECT ;(FIND FURNITURE) (ON-GROUND IN-ROOM)
= V-TIE-TO PRE-TIE-TO>
<SYNTAX TIE OBJECT ;(FIND PERSONBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-TIE-WITH PRE-TIE-WITH>
<SYNTAX TIE UP OBJECT ;(FIND PERSONBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
= V-TIE-WITH PRE-TIE-WITH>"
<VERB-SYNONYM TIME ;T>
<SYNTAX TIME = V-TIME>
<SYNTAX TRY ON OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
<VERB-SYNONYM SWITCH TURN FLIP SWING>
<SYNTAX SWITCH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-TURN>
"<SYNTAX SWITCH OBJECT IN ;FOR OBJECT (FIND RMUNGBIT) = V-ARREST PRE-ARREST>"
<SYNTAX SWITCH OFF OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-OFF>
;<SYNTAX SWITCH OFF OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-LAMP-OFF>
<SYNTAX SWITCH ON OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-ON>
;<SYNTAX SWITCH ON OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT
= V-LAMP-ON>
;<SYNTAX SWITCH TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-TURN>
<SYNTAX SWITCH OBJECT TO OBJECT = V-AIM ;PRE-AIM>
<VERB-SYNONYM UNDRESS UNMASK STRIP>
<SYNTAX UNDRESS OBJECT (FIND RMUNGBIT) = V-UNDRESS>
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) = V-UNLOCK>
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-UNLOCK>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
"<VERB-SYNONYM UNTIE FREE UNFASTEN UNATTACH UNHOOK UNCUFF>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
= V-UNTIE>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
FROM OBJECT
= V-UNTIE>"
<SYNTAX USE OBJECT = V-USE>
<SYNTAX USE OBJECT AGAINST OBJECT = V-USE>
<SYNTAX USE OBJECT ON OBJECT = V-USE>
<SYNTAX VERBOSE = V-VERBOSE>
<VERB-SYNONYM RELEASE REVISION VERSION ;EDITION VARIATION>
<SYNTAX RELEASE = V-VERSION>
;<SYNTAX RELEASE OBJECT = V-UNTIE>
<VERB-SYNONYM WAIT Z STAY MEDITATE RELAX REST PAUSE>
"<SYNTAX WAIT = V-WAIT>"
<SYNTAX WAIT OBJECT (FIND RMUNGBIT) = V-WAIT-FOR>
<SYNTAX WAIT FOR OBJECT (FIND RMUNGBIT) = V-WAIT-FOR>
<SYNTAX WAIT UNTIL OBJECT = V-WAIT-UNTIL>
<VERB-SYNONYM WAKE AWAKE SURPRISE STARTLE>
<SYNTAX WAKE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<SYNTAX WAKE UP OBJECT (FIND RMUNGBIT ;PERSONBIT) (ON-GROUND IN-ROOM)
= V-ALARM>
<VERB-SYNONYM HEAD WALK GO COME RUN PROCEED STEER DRIVE RETURN STEP>
<SYNTAX HEAD OBJECT = V-WALK>
<SYNTAX HEAD AFTER OBJECT = V-FOLLOW>
<SYNTAX HEAD AROUND OBJECT = V-WALK-AROUND>
<SYNTAX HEAD AWAY ;FROM OBJECT (FIND RMUNGBIT) = V-LEAVE>
<SYNTAX HEAD BEHIND OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX HEAD DOWN OBJECT ;(ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX HEAD IN OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX HEAD OFF ;TO OBJECT = V-WALK-TO>
<SYNTAX HEAD OUT ;OF OBJECT = V-LEAVE>
<SYNTAX HEAD THROUGH OBJECT = V-THROUGH PRE-THROUGH>
<SYNTAX HEAD TO OBJECT = V-WALK-TO>
"<SYNTAX HEAD UNDER OBJECT = V-WALK-UNDER>"
<SYNTAX HEAD UP OBJECT ;(ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX HEAD WITH OBJECT = V-FOLLOW>
<SYNTAX HEAD OBJECT OBJECT = V-DRIVE-TO PRE-DRIVE-TO>
<SYNTAX HEAD OBJECT OVER OBJECT = V-RUN-OVER>
<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>
<VERB-SYNONYM WEAR DON>
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
"<VERB-SYNONYM WIND COCK ADVANCE>
<SYNTAX WIND OBJECT (TAKE HAVE HELD CARRIED) = V-WIND>"
;<VERB-SYNONYM NAME IDENTITY>
"<SYNTAX NAME OBJECT ;(HELD CARRIED HAVE) = V-WHAT>"
<SYNTAX WRITE OBJECT (TAKE HAVE HELD CARRIED) = V-SIGN>
<SYNTAX WRITE ON OBJECT (TAKE HAVE HELD CARRIED) = V-SIGN>
<VERB-SYNONYM YELL SCREAM SHOUT>
<SYNTAX YELL = V-YELL>
<SYNTAX YELL AT OBJECT (ON-GROUND IN-ROOM) = V-TELL PRE-ASK-ABOUT>
"<SYNTAX YELL FOR OBJECT = V-YELL-FOR>"
<SYNTAX YELL IN OBJECT = V-YELL>
<SYNTAX YELL TO OBJECT (ON-GROUND IN-ROOM) = V-TELL PRE-ASK-ABOUT>
<VERB-SYNONYM YES Y OK OKAY SURE YUP YEP YEAH AYE INDEED>
<SYNTAX YES = V-YES>

4475
verbs.zil Normal file

File diff suppressed because it is too large Load diff