Beta Version

master
historicalsource 2019-04-14 16:09:16 -04:00
commit 9c713ddb55
23 changed files with 40583 additions and 0 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
# stationfall

1060
globals.zap Normal file

File diff suppressed because it is too large Load Diff

1448
globals.zil Normal file

File diff suppressed because it is too large Load Diff

569
misc.zap Normal file
View File

@ -0,0 +1,569 @@
.FUNCT PICK-ONE,TBL,LENGTH,CNT,RND,MSG,RFROB
GET TBL,0 >LENGTH
GET TBL,1 >CNT
DEC 'LENGTH
ADD TBL,2 >TBL
MUL CNT,2
ADD TBL,STACK >RFROB
SUB LENGTH,CNT
RANDOM STACK >RND
GET RFROB,RND >MSG
GET RFROB,1
PUT RFROB,RND,STACK
PUT RFROB,1,MSG
INC 'CNT
EQUAL? CNT,LENGTH \?CND1
SET 'CNT,0
?CND1: PUT TBL,0,CNT
RETURN MSG
.FUNCT APRINT,OBJ
FSET? OBJ,NARTICLEBIT \?ELS3
PRINTC 32
JUMP ?CND1
?ELS3: FSET? OBJ,VOWELBIT \?ELS5
PRINTI " an "
JUMP ?CND1
?ELS5: PRINTI " a "
?CND1: PRINTD OBJ
RTRUE
.FUNCT TPRINT,OBJ
FSET? OBJ,NARTICLEBIT \?ELS3
PRINTC 32
JUMP ?CND1
?ELS3: PRINTI " the "
?CND1: PRINTD OBJ
RTRUE
.FUNCT TPRINT-PRSO
CALL TPRINT,PRSO
RSTACK
.FUNCT TPRINT-PRSI
CALL TPRINT,PRSI
RSTACK
.FUNCT ARPRINT,OBJ
CALL APRINT,OBJ
PRINT PERIOD-CR
RTRUE
.FUNCT TRPRINT,OBJ
CALL TPRINT,OBJ
PRINT PERIOD-CR
RTRUE
.FUNCT GO
START::
?FCN: SET 'WINNER,PROTAGONIST
SET 'HERE,DECK-FIVE
RANDOM 1220
ADD 4430,STACK >INTERNAL-MOVES
SET 'MOVES,INTERNAL-MOVES
SUB 8100,INTERNAL-MOVES
CALL QUEUE,I-SLEEP-WARNINGS,STACK
CALL QUEUE,I-HUNGER-WARNINGS,1330
PRINTI "It's been five years since your planetfall on Resida. Your heroics in saving that doomed world resulted in a big promotion, but your life of dull scrubwork has been replaced by a life of dull paperwork. Today you find yourself amidst the administrative maze of Deck Five on a typically exciting task: an emergency mission to Space Station Gamma Delta Gamma 777-G 59/59 Sector Alpha-Mu-79 to pick up a supply of "
PRINT FORM-NAME
PRINT ELLIPSIS
CALL V-VERSION
USL
CRLF
CALL V-LOOK
CALL MAIN-LOOP
JUMP ?FCN
.FUNCT MAIN-LOOP,TRASH
?PRG1: CALL MAIN-LOOP-1 >TRASH
JUMP ?PRG1
.FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
SET 'CNT,0
SET 'OBJ,FALSE-VALUE
SET 'PTBL,TRUE-VALUE
CALL PARSER >P-WON
ZERO? P-WON /?ELS3
GET P-PRSI,P-MATCHLEN >ICNT
GET P-PRSO,P-MATCHLEN >OCNT
EQUAL? PRSA,V?WALK /?CND4
ZERO? P-IT-OBJECT /?CND4
CALL ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK /?CND4
SET 'TMP,FALSE-VALUE
?PRG9: IGRTR? 'CNT,ICNT /?REP10
GET P-PRSI,CNT
EQUAL? STACK,IT \?PRG9
PUT P-PRSI,CNT,P-IT-OBJECT
SET 'TMP,TRUE-VALUE
?REP10: ZERO? TMP \?CND19
SET 'CNT,0
?PRG22: IGRTR? 'CNT,OCNT /?CND19
GET P-PRSO,CNT
EQUAL? STACK,IT \?PRG22
PUT P-PRSO,CNT,P-IT-OBJECT
?CND19: SET 'CNT,0
?CND4: ZERO? OCNT \?ELS36
PUSH OCNT
JUMP ?CND32
?ELS36: GRTR? OCNT,1 \?ELS38
SET 'TBL,P-PRSO
ZERO? ICNT \?ELS41
SET 'OBJ,FALSE-VALUE
JUMP ?CND39
?ELS41: GET P-PRSI,1 >OBJ
?CND39: PUSH OCNT
JUMP ?CND32
?ELS38: GRTR? ICNT,1 \?ELS45
SET 'PTBL,FALSE-VALUE
SET 'TBL,P-PRSI
GET P-PRSO,1 >OBJ
PUSH ICNT
JUMP ?CND32
?ELS45: PUSH 1
?CND32: SET 'NUM,STACK
ZERO? OBJ \?CND48
EQUAL? ICNT,1 \?CND48
GET P-PRSI,1 >OBJ
?CND48: EQUAL? PRSA,V?WALK \?ELS55
CALL PERFORM-PRSA,PRSO >V
JUMP ?CND53
?ELS55: ZERO? NUM \?ELS57
GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
ZERO? STACK \?ELS60
CALL PERFORM-PRSA >V
SET 'PRSO,FALSE-VALUE
JUMP ?CND53
?ELS60: ZERO? LIT \?ELS62
PRINT TOO-DARK
CRLF
CALL STOP
JUMP ?CND53
?ELS62: PRINTI "There isn't anything to "
GET P-ITBL,P-VERBN >TMP
EQUAL? PRSA,V?TELL \?ELS67
PRINTI "talk to"
JUMP ?CND65
?ELS67: ZERO? P-OFLAG \?THN70
ZERO? P-MERGED /?ELS69
?THN70: GET TMP,0
PRINTB STACK
JUMP ?CND65
?ELS69: GETB TMP,2 >?TMP1
GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK
?CND65: PRINTC 33
CRLF
SET 'V,FALSE-VALUE
CALL STOP
JUMP ?CND53
?ELS57: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND76
SET 'P-MULT,TRUE-VALUE
?CND76: SET 'TMP,FALSE-VALUE
?PRG79: IGRTR? 'CNT,NUM \?ELS83
GRTR? P-NOT-HERE,0 \?ELS86
PRINTI "[The "
EQUAL? P-NOT-HERE,NUM /?CND87
PRINTI "other "
?CND87: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND90
PRINTC 115
?CND90: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?ELS95
PRINTI "are"
JUMP ?CND93
?ELS95: PRINTI "is"
?CND93: PRINTI "n't here.]"
CRLF
JUMP ?CND53
?ELS86: ZERO? TMP \?CND53
CALL REFERRING
JUMP ?CND53
?ELS83: ZERO? PTBL /?ELS104
GET P-PRSO,CNT >OBJ1
JUMP ?CND102
?ELS104: GET P-PRSI,CNT >OBJ1
?CND102: ZERO? PTBL /?ELS112
PUSH OBJ1
JUMP ?CND108
?ELS112: PUSH OBJ
?CND108: SET 'PRSO,STACK
ZERO? PTBL /?ELS120
PUSH OBJ
JUMP ?CND116
?ELS120: PUSH OBJ1
?CND116: SET 'PRSI,STACK
GRTR? NUM,1 /?THN127
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND124
?THN127: CALL DONT-ALL,OBJ1
ZERO? STACK \?PRG79
EQUAL? OBJ1,IT \?ELS136
PRINTD P-IT-OBJECT
JUMP ?CND134
?ELS136: EQUAL? OBJ1,HIM \?ELS138
PRINTD P-HIM-OBJECT
JUMP ?CND134
?ELS138: PRINTD OBJ1
?CND134: PRINTI ": "
?CND124: SET 'TMP,TRUE-VALUE
CALL PERFORM-PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG79
?CND53: EQUAL? V,M-FATAL \?CND144
SET 'P-CONT,FALSE-VALUE
?CND144: CALL CLOCKER-VERB?
ZERO? STACK /?ELS149
EQUAL? PRSA,V?TELL /?ELS149
ZERO? P-WON /?ELS149
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?ELS154
LESS? SPACETRUCK-COUNTER,5 \?ELS154
SET 'C-ELAPSED,240
JUMP ?CND152
?ELS154: CALL QUEUED?,I-TIMER
ZERO? STACK /?CND152
SET 'C-ELAPSED,10
?CND152: GETP HERE,P?ACTION
CALL STACK,M-END >V
JUMP ?CND1
?ELS149: SET 'C-ELAPSED,0
JUMP ?CND1
?ELS3: SET 'P-CONT,FALSE-VALUE
?CND1: ZERO? P-WON /FALSE
ADD INTERNAL-MOVES,C-ELAPSED >INTERNAL-MOVES
FSET? CHRONOMETER,WORNBIT \?ELS171
LESS? DAY,3 \?ELS174
SET 'MOVES,INTERNAL-MOVES
JUMP ?CND169
?ELS174: SET 'MOVES,9947
JUMP ?CND169
?ELS171: SET 'MOVES,0
?CND169: ZERO? C-ELAPSED /?CND179
CALL CLOCKER >V
?CND179: SET 'POSTPONE-ATTACK,FALSE-VALUE
SET 'C-ELAPSED,7
SET 'P-PRSA-WORD,FALSE-VALUE
SET 'PRSA,FALSE-VALUE
SET 'PRSO,FALSE-VALUE
SET 'PRSI,FALSE-VALUE
RETURN PRSI
.FUNCT DONT-ALL,OBJ1,L
LOC OBJ1 >L
EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS5
INC 'P-NOT-HERE
RTRUE
?ELS5: EQUAL? PRSA,V?TAKE \?ELS7
ZERO? PRSI /?ELS7
IN? PRSO,PRSI \TRUE
?ELS7: CALL ACCESSIBLE?,OBJ1
ZERO? STACK /TRUE
EQUAL? P-GETFLAGS,P-ALL \FALSE
ZERO? PRSI /?ELS18
EQUAL? PRSO,PRSI /TRUE
?ELS18: EQUAL? PRSA,V?TAKE \?ELS22
FSET? OBJ1,TAKEBIT /?ELS27
FSET? OBJ1,TRYTAKEBIT \TRUE
?ELS27: EQUAL? L,WINNER,HERE,PRSI /?ELS31
LOC WINNER
EQUAL? L,STACK /?ELS31
FSET? L,SURFACEBIT \TRUE
FSET? L,TAKEBIT /TRUE
RFALSE
?ELS31: ZERO? PRSI \FALSE
CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /FALSE
RTRUE
?ELS22: EQUAL? PRSA,V?PUT-ON,V?PUT,V?DROP /?THN53
EQUAL? PRSA,V?SGIVE,V?GIVE \?ELS50
?THN53: IN? OBJ1,WINNER \TRUE
?ELS50: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
IN? PRSO,WINNER /FALSE
CALL ULTIMATELY-IN?,PRSO,PRSI
ZERO? STACK \TRUE
RFALSE
.FUNCT CLOCKER-VERB?
EQUAL? PROTAGONIST,WINNER \TRUE
EQUAL? PRSA,V?SCORE,V?HELP,V?VERSION /FALSE
EQUAL? PRSA,V?$COMMAND,V?$UNRECORD,V?$RECORD /FALSE
EQUAL? PRSA,V?RESTORE,V?SAVE,V?$RANDOM /FALSE
EQUAL? PRSA,V?SCRIPT,V?QUIT,V?RESTART /FALSE
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?UNSCRIPT /FALSE
EQUAL? PRSA,V?VERBOSE \TRUE
RFALSE
.FUNCT FAKE-ORPHAN,IT-WAS-USED=0,TMP,?TMP1
CALL ORPHAN,P-SYNTAX,FALSE-VALUE
GET P-OTBL,P-VERBN >TMP
PRINTI "[Be specific: Wh"
ZERO? IT-WAS-USED /?ELS3
PRINTI "at object"
JUMP ?CND1
?ELS3: PRINTC 111
?CND1: PRINTI " do you want to "
ZERO? TMP \?ELS9
PRINTI "tell"
JUMP ?CND7
?ELS9: GETB P-VTBL,2
ZERO? STACK \?ELS11
GET TMP,0
PRINTB STACK
JUMP ?CND7
?ELS11: GETB TMP,2 >?TMP1
GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK
PUTB P-VTBL,2,0
?CND7: SET 'P-OFLAG,TRUE-VALUE
SET 'P-WON,FALSE-VALUE
GETB P-SYNTAX,P-SPREP1
CALL PREP-PRINT,STACK
PRINTR "?]"
.FUNCT PERFORM-PRSA,O=0,I=0
CALL PERFORM,PRSA,O,I
RTRUE
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
ZERO? DEBUG /?CND1
PRINTI "[Perform: "
PRINTN A
ZERO? O /?CND5
PRINTI " / PRSO = "
EQUAL? A,V?WALK /?ELS11
PRINTD O
JUMP ?CND5
?ELS11: PRINTN O
?CND5: ZERO? I /?CND14
PRINTI " / PRSI = "
PRINTD I
?CND14: PRINTC 93
CRLF
?CND1: SET 'OA,PRSA
SET 'OO,PRSO
SET 'OI,PRSI
SET 'PRSA,A
ZERO? P-WALK-DIR \?CND18
EQUAL? IT,O,I \?CND18
CALL VISIBLE?,P-IT-OBJECT
ZERO? STACK /?ELS25
EQUAL? IT,O \?ELS28
SET 'O,P-IT-OBJECT
JUMP ?CND18
?ELS28: SET 'I,P-IT-OBJECT
JUMP ?CND18
?ELS25: ZERO? I \?ELS35
CALL FAKE-ORPHAN,TRUE-VALUE
RETURN 8
?ELS35: CALL REFERRING
RETURN 8
?CND18: ZERO? P-WALK-DIR \?CND40
EQUAL? HIM,O,I \?CND40
CALL VISIBLE?,P-HIM-OBJECT
ZERO? STACK /?ELS47
EQUAL? HIM,O \?ELS50
SET 'O,P-HIM-OBJECT
JUMP ?CND40
?ELS50: SET 'I,P-HIM-OBJECT
JUMP ?CND40
?ELS47: ZERO? I \?ELS57
CALL FAKE-ORPHAN
RETURN 8
?ELS57: CALL REFERRING,TRUE-VALUE
RETURN 8
?CND40: SET 'PRSO,O
SET 'PRSI,I
EQUAL? A,V?WALK /?ELS64
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS64
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
ZERO? V /?ELS64
SET 'P-WON,FALSE-VALUE
JUMP ?CND62
?ELS64: SET 'O,PRSO
SET 'I,PRSI
CALL THIS-IS-IT,PRSI
CALL THIS-IS-IT,PRSO
GETP WINNER,P?ACTION
CALL D-APPLY,STR?2,STACK >V
ZERO? V \?CND62
GET PREACTIONS,A
CALL D-APPLY,STR?3,STACK >V
ZERO? V \?CND62
ZERO? I /?ELS75
GETP I,P?ACTION
CALL D-APPLY,STR?4,STACK >V
ZERO? V \?CND62
?ELS75: ZERO? O /?ELS79
EQUAL? A,V?WALK /?ELS79
GETP O,P?ACTION
CALL D-APPLY,STR?5,STACK >V
ZERO? V \?CND62
?ELS79: GET ACTIONS,A
CALL D-APPLY,FALSE-VALUE,STACK >V
ZERO? V /?CND62
?CND62: SET 'PRSA,OA
SET 'PRSO,OO
SET 'PRSI,OI
RETURN V
.FUNCT D-APPLY,STR,FCN,FOO=0,RES
ZERO? FCN /FALSE
ZERO? DEBUG /?CND8
ZERO? STR \?ELS14
PRINTI " Default ->"
CRLF
JUMP ?CND8
?ELS14: PRINTI " "
PRINT STR
PRINTI " -> "
?CND8: ZERO? FOO /?ELS21
CALL FCN,FOO
JUMP ?CND17
?ELS21: CALL FCN
?CND17: SET 'RES,STACK
ZERO? DEBUG /?CND25
ZERO? STR /?CND25
EQUAL? RES,M-FATAL \?ELS32
PRINTI "Fatal"
CRLF
RETURN RES
?ELS32: ZERO? RES \?ELS34
PRINTI "Not handled"
RETURN RES
?ELS34: PRINTI "Handled"
CRLF
?CND25: RETURN RES
.FUNCT DEQUEUE,RTN
CALL QUEUED?,RTN >RTN
ZERO? RTN /FALSE
PUT RTN,C-RTN,0
RTRUE
.FUNCT QUEUED?,RTN,C,E
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E /FALSE
GET C,C-RTN
EQUAL? STACK,RTN \?CND3
GET C,C-TICK
ZERO? STACK /FALSE
RETURN C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT RUNNING?,RTN,C,E
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E /FALSE
GET C,C-RTN
EQUAL? STACK,RTN \?CND3
GET C,C-TICK
ZERO? STACK /FALSE
GET C,C-TICK
GRTR? STACK,1 \TRUE
RFALSE
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT QUEUE,RTN,TICK,C,E,INT=0
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E \?ELS5
ZERO? INT /?ELS8
SET 'C,INT
JUMP ?CND6
?ELS8: LESS? C-INTS,C-INTLEN \?CND12
PRINTI "Bug2"
CRLF
?CND12: SUB C-INTS,C-INTLEN >C-INTS
LESS? C-INTS,C-MAXINTS \?CND15
SET 'C-MAXINTS,C-INTS
?CND15: ADD C-TABLE,C-INTS >INT
?CND6: PUT INT,C-RTN,RTN
JUMP ?REP2
?ELS5: GET C,C-RTN
EQUAL? STACK,RTN \?ELS19
SET 'INT,C
JUMP ?REP2
?ELS19: GET C,C-RTN
ZERO? STACK \?CND3
SET 'INT,C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
?REP2: GRTR? INT,CLOCK-HAND \?CND22
ADD TICK,3
SUB 0,STACK >TICK
?CND22: PUT INT,C-TICK,TICK
RETURN INT
.FUNCT CLOCKER,E,TICK,RTN,FLG=0,Q?=0,OWINNER
ADD C-TABLE,C-INTS >CLOCK-HAND
ADD C-TABLE,C-TABLELEN >E
SET 'OWINNER,WINNER
SET 'WINNER,PROTAGONIST
?PRG1: EQUAL? CLOCK-HAND,E \?ELS5
SET 'CLOCK-HAND,E
SET 'WINNER,OWINNER
RETURN FLG
?ELS5: GET CLOCK-HAND,C-RTN
ZERO? STACK /?CND3
GET CLOCK-HAND,C-TICK >TICK
LESS? TICK,-1 \?ELS10
SUB 0,TICK
SUB STACK,3
PUT CLOCK-HAND,C-TICK,STACK
SET 'Q?,CLOCK-HAND
JUMP ?CND3
?ELS10: ZERO? TICK /?CND3
GRTR? TICK,0 \?CND13
SUB TICK,C-ELAPSED >TICK
LESS? TICK,0 \?CND16
SET 'TICK,0
?CND16: PUT CLOCK-HAND,C-TICK,TICK
?CND13: ZERO? TICK /?CND19
SET 'Q?,CLOCK-HAND
?CND19: GRTR? TICK,0 /?CND3
GET CLOCK-HAND,C-RTN >RTN
ZERO? TICK \?CND25
PUT CLOCK-HAND,C-RTN,0
?CND25: CALL RTN
ZERO? STACK /?CND28
SET 'FLG,TRUE-VALUE
?CND28: ZERO? Q? \?CND3
GET CLOCK-HAND,C-RTN
ZERO? STACK /?CND3
SET 'Q?,TRUE-VALUE
?CND3: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND
ZERO? Q? \?PRG1
ADD C-INTS,C-INTLEN >C-INTS
JUMP ?PRG1
.ENDI

713
misc.zil Normal file
View File

@ -0,0 +1,713 @@
"MISC for
STATIONFALL
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
;"macros"
<TELL-TOKENS (CRLF CR) <CRLF>
D * <PRINTD .X>
A * <APRINT .X>
T ,PRSO <TPRINT-PRSO>
T ,PRSI <TPRINT-PRSI>
T * <TPRINT .X>
AR * <ARPRINT .X>
TR * <TRPRINT .X>
N * <PRINTN .X>
C * <PRINTC .X>>
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS)
<MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS)
<MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
(<LENGTH? .OO 2> <NTH .OO 2>)
(ELSE <CHTYPE .OO FORM>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<COND (<TYPE? .ATM ATOM>
<CHTYPE <COND (<==? .X PRSA>
<PARSE
<STRING "V?"
<SPNAME .ATM>>>)
(ELSE .ATM)> GVAL>)
(ELSE .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O <REST <PUTREST .O
(<FORM EQUAL? <CHTYPE .X GVAL> !.L>)>>>
<SET L ()>>>
<DEFMAC BSET ('OBJ "ARGS" BITS)
<MULTIBITS FSET .OBJ .BITS>>
<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
<MULTIBITS FCLEAR .OBJ .BITS>>
<DEFMAC BSET? ('OBJ "ARGS" BITS)
<MULTIBITS FSET? .OBJ .BITS>>
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(<EQUAL? .X FSET?> <FORM OR !.O>)
(ELSE <FORM PROG () !.O>)>>)>
<SET ATM <NTH .ATMS 1>>
<SET ATMS <REST .ATMS>>
<SET O
(<FORM .X
.OBJ
<COND (<TYPE? .ATM FORM> .ATM)
(ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 8> <RSTACK>>>
<DEFMAC PROB ('BASE?)
<FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
;<ROUTINE PICK-ONE (FROB)
<GET .FROB <RANDOM <GET .FROB 0>>>>
;"this new PICK-ONE won't begin repeating any of the items in the table until
they've all been used."
<ROUTINE PICK-ONE (TBL "AUX" LENGTH CNT RND MSG RFROB)
<SET LENGTH <GET .TBL 0>>
<SET CNT <GET .TBL 1>>
<SET LENGTH <- .LENGTH 1>>
<SET TBL <REST .TBL 2>>
<SET RFROB <REST .TBL <* .CNT 2>>>
<SET RND <RANDOM <- .LENGTH .CNT>>>
<SET MSG <GET .RFROB .RND>>
<PUT .RFROB .RND <GET .RFROB 1>>
<PUT .RFROB 1 .MSG>
<SET CNT <+ .CNT 1>>
<COND (<==? .CNT .LENGTH>
<SET CNT 0>)>
<PUT .TBL 0 .CNT>
.MSG>
;<ROUTINE DPRINT (OBJ)
<COND (<GETP .OBJ ,P?SDESC>
<TELL <GETP .OBJ ,P?SDESC>>)
(T
<PRINTD .OBJ>)>>
<ROUTINE APRINT (OBJ)
<COND (<FSET? .OBJ ,NARTICLEBIT>
<TELL " ">)
(<FSET? .OBJ ,VOWELBIT>
<TELL " an ">)
(T
<TELL " a ">)>
<PRINTD .OBJ>>
<ROUTINE TPRINT (OBJ)
<COND (<FSET? .OBJ ,NARTICLEBIT>
<TELL " ">)
(T
<TELL " the ">)>
<PRINTD .OBJ>>
<ROUTINE TPRINT-PRSO ()
<TPRINT ,PRSO>>
<ROUTINE TPRINT-PRSI ()
<TPRINT ,PRSI>>
<ROUTINE ARPRINT (OBJ)
<APRINT .OBJ>
<TELL ,PERIOD-CR>>
<ROUTINE TRPRINT (OBJ)
<TPRINT .OBJ>
<TELL ,PERIOD-CR>>
<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>>
;"MAIN-LOOP and associated routines"
<CONSTANT M-BEG 1>
<CONSTANT M-END 2>
<CONSTANT M-ENTER 3>
<CONSTANT M-EXIT 4>
<CONSTANT M-LOOK 5>
<CONSTANT M-FATAL 6>
<CONSTANT M-OBJDESC 7>
<CONSTANT M-OBJDESC? 8>
<ZSTART GO> ;"else, ZIL gets confused between verb-word GO and routine GO"
;"As if on cue, a landing party from the S.P.S. Flathead materializes nearby.
Blather is with them, having been picked up from deep space in another escape
pod, babbling cravenly. Captain Sterling of the Flathead acknowledges your
heroic actions, and informs you of your promotion to Lieutenant First Class.|
|
As a team of mutant hunters head for the cryo-elevator, Veldina mentions that
the grateful people of Resida offer you leadership of their world. Captain
Sterling points out that, even if you choose to remain on Resida, Blather
(demoted to Ensign Twelfth Class) has been assigned as your personal toilet
attendant.|
|
You feel a sting from your arm and turn to see a medical robot moving away
after administering the antidote for The Disease.|
|
A team of robot technicians step into the anteroom. They part their ranks, and
a familiar figure comes bounding toward you! \"Hi!\" shouts Floyd, with
uncontrolled enthusiasm. \"Floyd feeling better now!\" Smiling from ear to
ear, he says, \"Look what Floyd found!\" He hands you a helicopter key,
a reactor elevator card, and a paddleball set. \"Maybe we can use them in
the sequel...\""
<ROUTINE GO () ;"NOTE: this routine CANNOT have any local variables"
<SETG WINNER ,PROTAGONIST>
<SETG HERE ,DECK-FIVE>
<SETG INTERNAL-MOVES <+ 4430 <RANDOM 1220>>>
<SETG MOVES ,INTERNAL-MOVES>
;<COND (<EQUAL? <GETB 0 56> 0>
<SETG INTERNAL-MOVES <+ 5030 <RANDOM 2440>>>)
(T
<SETG INTERNAL-MOVES 6860>)>
<QUEUE I-SLEEP-WARNINGS <- 8100 ,INTERNAL-MOVES>>
<QUEUE I-HUNGER-WARNINGS 1330>
<TELL
"It's been five years since your planetfall on Resida. Your heroics in saving
that doomed world resulted in a big promotion, but your life of dull scrubwork
has been replaced by a life of dull paperwork. Today you find yourself amidst
the administrative maze of Deck Five on a typically exciting task: an emergency
mission to Space Station Gamma Delta Gamma 777-G 59/59 Sector Alpha-Mu-79 to
pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<V-VERSION>
<USL>
<CRLF>
<V-LOOK>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE MAIN-LOOP ("AUX" TRASH)
<REPEAT ()
<SET TRASH <MAIN-LOOP-1>>>>
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
<COND (<AND <NOT <VERB? WALK>>
,P-IT-OBJECT
<ACCESSIBLE? ,P-IT-OBJECT>>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
;<COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
<SET TMP T>
<RETURN>)>)>>
<COND (<NOT .TMP>
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
;<COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
<RETURN>)>)>>)>
<SET CNT 0>)>
<SET NUM <COND (<0? .OCNT>
.OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT>
<SET OBJ <>>)
(T
<SET OBJ <GET ,P-PRSI 1>>)>
.OCNT)
(<G? .ICNT 1>
<SET PTBL <>>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T
1)>>
<COND (<AND <NOT .OBJ>
<1? .ICNT>>
<SET OBJ <GET ,P-PRSI 1>>)>
<COND (<EQUAL? ,PRSA ,V?WALK>
<SET V <PERFORM-PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM-PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL ,TOO-DARK CR>
<STOP>)
(T
<TELL "There isn't anything to ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (<VERB? TELL>
<TELL "talk to">)
(<OR ,P-OFLAG ,P-MERGED>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
<TELL "!" CR>
<SET V <>>
<STOP>)>)
(T
<SETG P-NOT-HERE 0>
<SETG P-MULT <>>
<COND (<G? .NUM 1>
<SETG P-MULT T>)>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
<COND (<G? ,P-NOT-HERE 0>
<TELL "[The ">
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
<TELL "other ">)>
<TELL "object">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "s">)>
<TELL " that you mentioned ">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "are">)
(T
<TELL "is">)>
<TELL "n't here.]" CR>)
(<NOT .TMP>
<REFERRING>)>
<RETURN>)
(T
<COND (.PTBL
<SET OBJ1 <GET ,P-PRSO .CNT>>)
(T
<SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL
.OBJ1)
(T
.OBJ)>>
<SETG PRSI <COND (.PTBL
.OBJ)
(T
.OBJ1)>>
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0>
,W?ALL ,W?BOTH ,W?EVERYT>>
<COND (<DONT-ALL .OBJ1>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<TELL D ,P-IT-OBJECT>)
(<EQUAL? .OBJ1 ,HIM>
<TELL D ,P-HIM-OBJECT>)
;(<EQUAL? .OBJ1 ,HER>
<TELL D ,P-HER-OBJECT>)
(T
<TELL D .OBJ1>)>
<TELL ": ">)>)>
<SET TMP T>
<SET V <PERFORM-PRSA ,PRSO ,PRSI>>
<COND (<EQUAL? .V ,M-FATAL>
<RETURN>)>)>>)>
<COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>)>
<COND (<AND <CLOCKER-VERB?>
<NOT <VERB? TELL>>
,P-WON ;"fake YOU CANT SEE responses set P-WON to false">
<COND (<AND <RUNNING? ,I-SPACETRUCK>
<L? ,SPACETRUCK-COUNTER 5>>
<SETG C-ELAPSED 240>)
(<QUEUED? ,I-TIMER>
<SETG C-ELAPSED 10>)>
<SET V <APPLY <GETP ,HERE ,P?ACTION> ,M-END>>)
(T
<SETG C-ELAPSED 0>)>)
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<SETG INTERNAL-MOVES <+ ,INTERNAL-MOVES ,C-ELAPSED>>
<COND (<FSET? ,CHRONOMETER ,WORNBIT>
<COND (<L? ,DAY 3>
<SETG MOVES ,INTERNAL-MOVES>)
(T
<SETG MOVES 9947>)>)
(T
<SETG MOVES 0>)>
<COND (<NOT <EQUAL? ,C-ELAPSED 0>>
<SET V <CLOCKER>>)>
<SETG POSTPONE-ATTACK <>>
<SETG C-ELAPSED 7> ;"default length of move"
<SETG P-PRSA-WORD <>>
;"else, when input is just a direction, P-PRSA-WORD will remain
whatever it was for the previous turn"
<SETG PRSA <>>
<SETG PRSO <>>
<SETG PRSI <>>)>>
;<ROUTINE TOO-DARK-FOR-IT? ()
<COND (<AND <NOT ,LIT>
<NOT <ULTIMATELY-IN? ,P-IT-OBJECT ,WINNER>>
<NOT <IN? ,WINNER ,P-IT-OBJECT>>>
<TELL ,TOO-DARK CR>
<RTRUE>)>>
<ROUTINE DONT-ALL (OBJ1 "AUX" (L <LOC .OBJ1>))
;"RFALSE if OBJ1 should be included in the ALL, otherwise RTRUE"
<COND (<EQUAL? .OBJ1 ,NOT-HERE-OBJECT>
<SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
<RTRUE>)
(<AND <VERB? TAKE> ;"TAKE prso FROM prsi and prso isn't in prsi"
,PRSI
<NOT <IN? ,PRSO ,PRSI>>>
<RTRUE>)
(<NOT <ACCESSIBLE? .OBJ1>> ;"can't get at object"
<RTRUE>)
(<EQUAL? ,P-GETFLAGS ,P-ALL> ;"cases for ALL"
<COND (<AND ,PRSI
<PRSO? ,PRSI>>
<RTRUE>)
(<VERB? TAKE>
;"TAKE ALL and object not accessible or takeable"
<COND (<AND <NOT <FSET? .OBJ1 ,TAKEBIT>>
<NOT <FSET? .OBJ1 ,TRYTAKEBIT>>>
<RTRUE>)
(<AND <NOT <EQUAL? .L ,WINNER ,HERE ,PRSI>>
<NOT <EQUAL? .L <LOC ,WINNER>>>>
<COND (<AND <FSET? .L ,SURFACEBIT>
<NOT <FSET? .L ,TAKEBIT>>> ;"tray"
<RFALSE>)
(T
<RTRUE>)>)
(<AND <NOT ,PRSI>
<ULTIMATELY-IN? ,PRSO>> ;"already have it"
<RTRUE>)
(T
<RFALSE>)>)
(<AND <VERB? DROP PUT PUT-ON GIVE SGIVE>
;"VERB ALL, object not held"
<NOT <IN? .OBJ1 ,WINNER>>>
<RTRUE>)
(<AND <VERB? PUT PUT-ON> ;"PUT ALL IN X,obj already in x"
<NOT <IN? ,PRSO ,WINNER>>
<ULTIMATELY-IN? ,PRSO ,PRSI>>
<RTRUE>)>)>>
<ROUTINE CLOCKER-VERB? ()
<COND (<NOT <EQUAL? ,PROTAGONIST ,WINNER>>
<RTRUE> ;"or else FLOYD, HELP doesn't run the clock")
(<VERB? VERSION HELP SCORE $RECORD $UNRECORD $COMMAND $RANDOM
SAVE RESTORE RESTART QUIT SCRIPT UNSCRIPT
BRIEF SUPER-BRIEF VERBOSE>
<RFALSE>)
(T
<RTRUE>)>>
<GLOBAL P-WON <>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<ROUTINE FAKE-ORPHAN ("OPTIONAL" (IT-WAS-USED <>) "AUX" TMP)
<ORPHAN ,P-SYNTAX <>>
<SET TMP <GET ,P-OTBL ,P-VERBN>>
<TELL "[Be specific: Wh">
<COND (.IT-WAS-USED
<TELL "at object">)
(T
<TELL "o">)>
<TELL " do you want to ">
<COND (<EQUAL? .TMP 0>
<TELL "tell">)
(<0? <GETB ,P-VTBL 2>>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>
<PUTB ,P-VTBL 2 0>)>
<SETG P-OFLAG T>
<SETG P-WON <>>
<PREP-PRINT <GETB ,P-SYNTAX ,P-SPREP1>>
<TELL "?]" CR>>
<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>))
<PERFORM ,PRSA .O .I>
<RTRUE>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? ZILCH>
'<TELL N .A>)
(T
'<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
<COND (.O
<TELL " / PRSO = ">
<COND (<NOT <EQUAL? .A ,V?WALK>>
<TELL D .O>)
(T
<TELL N .O>)>)>
<COND (.I <TELL " / PRSI = " D .I>)>
<TELL "]" CR>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<SETG PRSA .A>
<COND (<AND <NOT ,P-WALK-DIR> <EQUAL? ,IT .O .I>>
<COND (<VISIBLE? ,P-IT-OBJECT>
<COND (<EQUAL? ,IT .O>
<SET O ,P-IT-OBJECT>)
(T
<SET I ,P-IT-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN T>)
(T
<REFERRING>)>
<RFATAL>)>)>
<COND (<AND <NOT ,P-WALK-DIR> <EQUAL? ,HIM .O .I>>
<COND (<VISIBLE? ,P-HIM-OBJECT>
<COND (<EQUAL? ,HIM .O>
<SET O ,P-HIM-OBJECT>)
(T
<SET I ,P-HIM-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<REFERRING T>)>
<RFATAL>)>)>
;<COND (<AND <NOT ,P-WALK-DIR> <EQUAL? ,HER .O .I>>
<COND (<VISIBLE? ,P-HER-OBJECT>
<COND (<EQUAL? ,HER .O>
<SET O ,P-HER-OBJECT>)
(T
<SET I ,P-HER-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<REFERRING T>)>
<RFATAL>)>)>
<SETG PRSO .O>
<SETG PRSI .I>
<COND (<AND <NOT <EQUAL? .A ,V?WALK>>
<EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<THIS-IS-IT ,PRSI>
<THIS-IS-IT ,PRSO>
<COND (<SET V <D-APPLY "Actor" <GETP ,WINNER ,P?ACTION>>>
T)
;(<SET V <D-APPLY "M-Beg" <GETP ,HERE ,P?ACTION> ,M-BEG>>
T)
(<SET V <D-APPLY "Preaction" <GET ,PREACTIONS .A>>>
T)
(<AND .I <SET V <D-APPLY "PRSI" <GETP .I ,P?ACTION>>>>
T)
;(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<LOC .O>
<GETP <LOC .O> ,P?CONTFCN>
<SET V <D-APPLY "Cont" <GETP <LOC .O> ,P?CONTFCN>>>>
T)
(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<SET V <D-APPLY "PRSO" <GETP .O ,P?ACTION>>>>
T)
(<SET V <D-APPLY <> <GET ,ACTIONS .A>>>
T)>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
<COND (<NOT .FCN> <>)
(T
<COND (,DEBUG
<COND (<NOT .STR>
<TELL " Default ->" CR>)
(T
<TELL " " .STR " -> ">)>)>
<SET RES <COND (.FOO
<APPLY .FCN .FOO>)
(T
<APPLY .FCN>)>>
<COND (<AND ,DEBUG
.STR>
<COND (<EQUAL? .RES ,M-FATAL>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
;"CLOCKER and related routines"
<GLOBAL C-TABLE %<COND (<GASSIGNED? ZILCH>
'<ITABLE NONE 30>)
(T
'<ITABLE NONE 60>)>>
;<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-INTS 60>
<GLOBAL C-MAXINTS 60>
<GLOBAL CLOCK-HAND <>>
<GLOBAL C-ELAPSED 7>
;<GLOBAL ELAPSED-MOVES 0>
<CONSTANT C-TABLELEN 60>
<CONSTANT C-INTLEN 4> ;"length of an interrupt entry"
<CONSTANT C-RTN 0> ;"offset of routine name"
<CONSTANT C-TICK 1> ;"offset of count"
<ROUTINE DEQUEUE (RTN)
<COND (<SET RTN <QUEUED? .RTN>>
<PUT .RTN ,C-RTN 0>)>>
<ROUTINE QUEUED? (RTN "AUX" C E)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<RFALSE>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<COND (<ZERO? <GET .C ,C-TICK>>
<RFALSE>)
(T
<RETURN .C>)>)>
<SET C <REST .C ,C-INTLEN>>>>
<ROUTINE RUNNING? (RTN "AUX" C E)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<RFALSE>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<COND (<OR <ZERO? <GET .C ,C-TICK>>
<G? <GET .C ,C-TICK> 1>>
<RFALSE>)
(T
<RTRUE>)>)>
<SET C <REST .C ,C-INTLEN>>>>
<ROUTINE QUEUE (RTN TICK "AUX" C E (INT <>)) ;"automatically enables as well"
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<COND (.INT
<SET C .INT>)
(T
<COND (<L? ,C-INTS ,C-INTLEN>
<TELL "Bug2" CR>)> ;"too many interrupts"
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
<COND (<L? ,C-INTS ,C-MAXINTS>
<SETG C-MAXINTS ,C-INTS>)>
<SET INT <REST ,C-TABLE ,C-INTS>>)>
<PUT .INT ,C-RTN .RTN>
<RETURN>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<SET INT .C>
<RETURN>)
(<ZERO? <GET .C ,C-RTN>>
<SET INT .C>)>
<SET C <REST .C ,C-INTLEN>>>
<COND (%<COND (<GASSIGNED? ZILCH>
'<G? .INT ,CLOCK-HAND>)
(T
'<L? <LENGTH .INT> <LENGTH ,CLOCK-HAND>>)>
<SET TICK <- <+ .TICK 3>>>)>
<PUT .INT ,C-TICK .TICK>
.INT>
<ROUTINE CLOCKER ("AUX" E TICK RTN (FLG <>) (Q? <>) OWINNER)
;<SETG ELAPSED-MOVES <+ ,ELAPSED-MOVES 1>>
;<COND (,DEBUG
<TELL " [Elapsed time: " N ,C-ELAPSED " millichrons.]|">)>
;<COND (,CLOCK-WAIT
<SETG CLOCK-WAIT <>>
<RFALSE>)>
<SETG CLOCK-HAND <REST ,C-TABLE ,C-INTS>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET OWINNER ,WINNER>
<SETG WINNER ,PROTAGONIST>
<REPEAT ()
<COND (<EQUAL? ,CLOCK-HAND .E>
<SETG CLOCK-HAND .E>
<SETG WINNER .OWINNER>
<RETURN .FLG>)
(<NOT <ZERO? <GET ,CLOCK-HAND ,C-RTN>>>
<SET TICK <GET ,CLOCK-HAND ,C-TICK>>
<COND (<L? .TICK -1>
<PUT ,CLOCK-HAND ,C-TICK <- <- .TICK> 3>>
<SET Q? ,CLOCK-HAND>)
(<NOT <ZERO? .TICK>>
<COND (<G? .TICK 0>
<SET TICK <- .TICK ,C-ELAPSED>>
<COND (<L? .TICK 0>
<SET TICK 0>)>
<PUT ,CLOCK-HAND ,C-TICK .TICK>)>
<COND (<NOT <ZERO? .TICK>>
<SET Q? ,CLOCK-HAND>)>
<COND (<NOT <G? .TICK 0>>
<SET RTN
%<COND (<GASSIGNED? ZILCH>
'<GET ,CLOCK-HAND ,C-RTN>)
(ELSE
'<NTH ,CLOCK-HAND
<+ <* ,C-RTN 2>
1>>)>>
<COND (<ZERO? .TICK>
<PUT ,CLOCK-HAND ,C-RTN 0>)>
<COND (<APPLY .RTN>
<SET FLG T>)>
<COND (<AND <NOT .Q?>
<NOT
<ZERO?
<GET ,CLOCK-HAND
,C-RTN>>>>
<SET Q? T>)>)>)>)>
<SETG CLOCK-HAND <REST ,CLOCK-HAND ,C-INTLEN>>
<COND (<NOT .Q?>
<SETG C-INTS <+ ,C-INTS ,C-INTLEN>>)>>>

1869
parser.zap Normal file

File diff suppressed because it is too large Load Diff

1811
parser.zil Normal file

File diff suppressed because it is too large Load Diff

15
s6.zap Normal file
View File

@ -0,0 +1,15 @@
.INSERT "PS:<S6>S6FREQ" ; Frequent word table
.INSERT "PS:<S6>S6DAT" ; Data file
.INSERT "PS:<S6>S6PUR"
.INSERT "PS:<S6>MISC"
.INSERT "PS:<S6>PARSER"
.INSERT "PS:<S6>SYNTAX"
.INSERT "PS:<S6>VERBS"
.INSERT "PS:<S6>GLOBALS"
.INSERT "PS:<S6>SHIP"
.INSERT "PS:<S6>STATION"
.INSERT "PS:<S6>VILLAGE"
.INSERT "PS:<S6>S6STR"
.END

28
s6.zil Normal file
View File

@ -0,0 +1,28 @@
"S6 for
STATIONFALL
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
<PRINC "
*** S6: Stationfall ***
">
ON!-INITIAL
OFF!-INITIAL ;"makes debugging possible -- pdl"
<SET REDEFINE T>
<SETG NEW-VOC? T>
<FREQUENT-WORDS?>
<INSERT-FILE "MISC" T>
<INSERT-FILE "PARSER" T>
<INSERT-FILE "SYNTAX" T>
<INSERT-FILE "VERBS" T>
<INSERT-FILE "GLOBALS" T>
<INSERT-FILE "SHIP" T>
<INSERT-FILE "STATION" T>
<INSERT-FILE "VILLAGE" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 5>

BIN
s6.zip Normal file

Binary file not shown.

14037
s6dat.zap Normal file

File diff suppressed because it is too large Load Diff

167
s6pur.zap Normal file
View File

@ -0,0 +1,167 @@
; PURE TABLES ARE DEFINED HERE
PURTBL::
PT?1::
PT?15:: .TABLE
6
W?FORM
0
BOXED-FORMS-F
W?FORMS
0
BOXED-FORMS-F
.ENDT
PT?2:: .TABLE
12
W?SLOT
0
SLOT-F
W?BIN
W?FIRST
BIN-F
W?BIN
W?SECOND
BIN-F
W?BIN
W?THIRD
BIN-F
.ENDT
PT?3:: .TABLE
6
W?SLOT
0
SLOT-F
W?BUTTON
W?RED
RED-BUTTON-F
.ENDT
PT?4:: .TABLE
9
W?SCREEN
W?DISPEN
DISPENSER-SCREEN-F
W?SLOT
W?COIN
COIN-SLOT-F
W?HOLE
W?DISPEN
DISPENSER-HOLE-F
.ENDT
PT?5:: .TABLE
6
W?CELL
W?CELLS
CELL-F
W?LOCK
0
BRIG-LOCK-F
.ENDT
PT?6::
PT?10:: .TABLE
3
W?SLOT
0
SLOT-F
.ENDT
PT?7:: .TABLE
3
W?BUTTON
W?RED
COMM-BUTTON-F
.ENDT
PT?8:: .TABLE
3
W?BUTTON
W?RED
LOG-READER-BUTTON-F
.ENDT
PT?9:: .TABLE
3
W?DIAL
0
DIAL-F
.ENDT
PT?11:: .TABLE
3
W?SEAT
0
THEATRE-SEAT-F
.ENDT
PT?12:: .TABLE
3
W?DOME
W?TRANSPARENT
DOME-OBJECT-F
.ENDT
PT?13::
PT?14:: .TABLE
6
W?SHIP
W?ALIEN
ALIEN-SHIP-PSEUDO-F
W?SHIP
W?SPACE
ALIEN-SHIP-PSEUDO-F
.ENDT
PT?16:: .TABLE
3
W?BOX
W?CONTROL
CONTROL-BOX-F
.ENDT
PT?17:: .TABLE
6
W?SHOP
W?REC
REC-SHOP-OBJECT-F
W?AREA
W?REC
REC-SHOP-OBJECT-F
.ENDT
PT?18:: .TABLE
3
W?POSTER
0
RECRUITMENT-POSTER-F
.ENDT
PT?19:: .TABLE
3
W?POSTER
0
TRAVEL-AGENCY-POSTER-F
.ENDT
PT?20:: .TABLE
3
W?HOLE
W?SMALL
DOC-HOLE-F
.ENDT
PT?21:: .TABLE
3
W?SLOT
0
ID-CHANGER-SLOT-F
.ENDT
PURTND::
.ENDI

433
s6str.zap Normal file
View File

@ -0,0 +1,433 @@
; STRINGS ARE DEFINED HERE
STRBEG::
.GSTR STR?1,"Not Here"
.GSTR STR?2,"Actor"
.GSTR STR?3,"Preaction"
.GSTR STR?4,"PRSI"
.GSTR STR?5,"PRSO"
.GSTR STR?6,"OOPS"
.GSTR STR?7,"AGAIN"
.GSTR STR?8,"begins"
.GSTR STR?9,"ends"
.GSTR STR?10,"leave the game"
.GSTR STR?11,"restart"
.GSTR STR?12,"Biting"
.GSTR STR?13,"climb into"
.GSTR STR?14,"climb onto"
.GSTR STR?15,"close"
.GSTR STR?16,"disconnect the timer"
.GSTR STR?17,"disconnect the explosive"
.GSTR STR?18,"dress"
.GSTR STR?19,"open"
.GSTR STR?20,"get onto"
.GSTR STR?21,"get into"
.GSTR STR?22,"look"
.GSTR STR?23,"Kicking"
.GSTR STR?24,"Knocking on"
.GSTR STR?25,"sound"
.GSTR STR?26,"look inside"
.GSTR STR?27,"look through"
.GSTR STR?28,"indecis"
.GSTR STR?29,"Pulling"
.GSTR STR?30,"move"
.GSTR STR?31,"Trying to destroy"
.GSTR STR?32,"negat"
.GSTR STR?33,"ff"
.GSTR STR?34,"n"
.GSTR STR?35,"pick"
.GSTR STR?36,"put it in the presser"
.GSTR STR?37,"Pushing"
.GSTR STR?38,"Playing in this way with"
.GSTR STR?39,"read"
.GSTR STR?40,"roll"
.GSTR STR?41,"search"
.GSTR STR?42,"Turning"
.GSTR STR?43,"Shaking"
.GSTR STR?44,"."
.GSTR STR?45,"smell"
.GSTR STR?46,"spray"
.GSTR STR?47,"move that much"
.GSTR STR?48,"taste"
.GSTR STR?49,"Touching"
.GSTR STR?50,"Keyboard is only active following authorization"
.GSTR STR?51,"You have already made your selection"
.GSTR STR?52,"That bin is unoccupied"
.GSTR STR?53,"Error"
.GSTR STR?54,"Fuel levels at zero"
.GSTR STR?55,"Course set. Launch in approximately 30 millichrons"
.GSTR STR?56,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied"
.GSTR STR?57,"You are already at that level"
.GSTR STR?58,"Select a level between 1 and 9"
.GSTR STR?59,"The instant you press the button, the elevator begins plunging down the shaft! It's worse than just free-fall; the elevator is actually in a power dive!!! You punch frantically at the keypad..."
.GSTR STR?60,"You have not deposited a coin"
.GSTR STR?61,"This dispenser offers only 9 selections"
.GSTR STR?62,"Sorry, that items is sold out. Please contact your PX Officer regarding re-stocking of dispenser"
.GSTR STR?63,"walk"
.GSTR STR?64,"wear"
.GSTR STR?65,"posit"
.GSTR STR?66,"remove"
.GSTR STR?67," is as worthwhile as cleaning a grotch cage."
.GSTR STR?68," accomplishes nothing."
.GSTR STR?69," has no desirable effect."
.GSTR STR?70,"Fat chance."
.GSTR STR?71,"A valiant attempt."
.GSTR STR?72,"You can't be serious."
.GSTR STR?73,"Not bloody likely."
.GSTR STR?74,"What a concept."
.GSTR STR?75,"Nice try."
.GSTR STR?76,"You are behaving like a demented Denebian slime devil."
.GSTR STR?77,"Dream on."
.GSTR STR?78,"It's the looney bin for you!"
.GSTR STR?79,"You have lost your mind."
.GSTR STR?80,"A waste of time."
.GSTR STR?81,"A worthless action -- and much too difficult for a poorly-written program like this one to handle."
.GSTR STR?82,"Useless. Unhelpful."
.GSTR STR?83,"There's another turn down the drain."
.GSTR STR?84,"Why bother?"
.GSTR STR?85,"with"
.GSTR STR?86,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not."
.GSTR STR?87,"Okay."
.GSTR STR?88,"Wow! A hole where your torso used to be!"
.GSTR STR?89,"I was going to ask you the same question!"
.GSTR STR?90,"Floyd loves games! Let's play!"
.GSTR STR?91,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied"
.GSTR STR?92,"This form has not been validated by the station commander"
.GSTR STR?93,"Authorization approved. Use keypad to enter the bin number of the desired robot"
.GSTR STR?94,"Spacecraft activated. Type in the course heading"
.GSTR STR?95,"slot"
.GSTR STR?96,"The quiet, dusty corridors stir disturbing memories. You're back on Resida, the deserted, plague-stricken world where you met Floyd. A hot flush creeps over you, indicating that the virulent disease that conquered this planet is beginnning its insidious work on you"
.GSTR STR?97,"You find yourself on Deck Five of the Duffy, walking nonchalantly along, when suddenly you remember that you were supposed to have Handwriting Legibility Evaluation Forms -- all nine parts, for every member of the crew -- on Captain Fussbottom's desk by 7800. It's 7790, and those forms are stored on the other side of the ship. You begin running down the corridor, but the floor is turning into a thick syrup. You can hear the Captain calling your name, louder and louder, as you struggle to move your legs"
.GSTR STR?98,"You gulp down the last of your Ramosian Fire Nectar and ask the andro-waiter for another pitcher. This pub makes the finest Nectar on all of Ramos Two, and you and your shipmates are having a pretty rowdy time. Through the windows of the pub you can see a mighty, ancient castle, shining in the light of the three Ramosian moons. The Fire Nectar spreads through your blood and you begin to feel drowsy"
.GSTR STR?99,"You wake up in a huge stadium, watching an important ceremony. It's a Stellar Patrol promotion ceremony on Tremain! Suddenly you hear your name echoing over the PA system -- and down below you see YOURSELF walking up the steps to the stage! The presiding admiral describes your heroic deeds on Resida, mentioning that you were awarded the key to the planet, and then asks the ceremonial question, ""Do you accept promotion to Lieutenant First Class?"" You try to yell ""No!"" from your seat in the stands, but the words catch in your throat"
.GSTR STR?100,"You find yourself floating in a spacepod outside the docking bays of a large space station. All the doors are closed. You snap on the radio, and discover that Floyd is in charge within the station. ""Open the pod bay doors, Floyd,"" you tell him, but he replies, ""I'm sorry, I can't do that,"" and begins laughing and your air is beginning to run out"
.GSTR STR?101,"At last, the Duffy is approaching Space Station Delta Upsilon Upsilon Phi for the ship's first rec leave in almost six months. It's even worth the six solid days of paperwork necessary for a standard half-day leave. Stationfall is only millichrons away, but suddenly you realize that you're all alone on the Duffy! Frantic, you dash to the deserted bridge, but it's too late to keep the out-of-control Duffy from ramming the massive space station! The hull of the station falls toward you"
.GSTR STR?102,"You dream of being buried alive in an ancient Egyptian pyramid, inside the sarcophagus with some long-dead pharaoh. Phew, does he stink! You gasp and gag as the air in the coffin runs low.
This dream, incidentally, is not a particularly unusual one among people who go to sleep inside space suits with limited oxygen supplies."
.GSTR STR?103,"A movement awakens you in the middle of the night! Through unfocused eyes you see a large machine rolling menacingly closer! A bright light leaps from it, straight toward..."
.GSTR STR?104,"You collapse from extreme thirst and hunger."
.GSTR STR?105,"A powerful arc of raw energy bridges the gap between two of the monster's welding extensions. Unfortunately, you were pretty much right between the same two extensions at that moment."
.GSTR STR?106,"It's too dark to see a thing."
.GSTR STR?107,"You're not holding"
.GSTR STR?108,"There's nothing "
.GSTR STR?109,"You can see"
.GSTR STR?110,"It seems that"
.GSTR STR?111,"You can't "
.GSTR STR?112,"You'll have to "
.GSTR STR?113,"Look around you.
"
.GSTR STR?114,"You can't do that from here.
"
.GSTR STR?115,"You're holding it!
"
.GSTR STR?116,"[There seems to be a noun missing in that sentence.]
"
.GSTR STR?117,"You see only blackness.
"
.GSTR STR?118,"You already did that. Senility strikes again!
"
.GSTR STR?119,".
"
.GSTR STR?120,"...
"
.GSTR STR?121,"Nothing happens.
"
.GSTR STR?122,"Failed.
"
.GSTR STR?123,"Okay.
"
.GSTR STR?124,"Huh?
"
.GSTR STR?125,"You can't go that way.
"
.GSTR STR?126,"It already is!
"
.GSTR STR?127,"""Floyd does not one of those have!""
"
.GSTR STR?128,"Like most fromitz boards, it is a twisted maze of silicon circuits. It is square, approximately seventeen centimeters on each side.
"
.GSTR STR?129,"You're neither hungry nor thirsty.
"
.GSTR STR?130,"Floyd is leaning against the wall, his head lolling to the side. Apparently, someone has heartlessly turned him off."
.GSTR STR?131,"The only part of the complex robot authorization equipment that is visible to you is a slot (for inserting your form) and a keypad (for typing your selection)."
.GSTR STR?132,"Request for Stellar Patrol Issue Regulation Black Form Binders Request Form Forms"
.GSTR STR?133,"[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]
"
.GSTR STR?134,"The thick side wall of the tank has been blasted open"
.GSTR STR?135,"Next time, say what number to set it to.
"
.GSTR STR?136,", hopping mad. ""Why you turn Floyd off?"" he asks accusingly."
.GSTR STR?137,"Spanning the entire garden is a transparent dome, providing a breathtaking view of the heavens in all their splendor."
.GSTR STR?138,"The control box contains a keypad for typing the number of the level you want to go to."
.GSTR STR?139," strike the machine's power source, inducing an overload implosion in said power source."
.GSTR STR?140,"""The Galaxy's Best Zero-Gee Restaurant"""
.GSTR STR?141,"The eternal flame has been extinguished!"
.GSTR STR?142,"Lieutenant First Class"
.GSTR STR?143,"Through the large, dirty window, you can see Dan's used spaceship lot. The spaceships floating in Dan's lot all have their prices whitewashed on their viewports, along with phrases like ""A steal!"" and ""Just reduced!"""
.GSTR STR?144,"You are in the heart of the administrative level of the ship, the largest level of the S.P.S. Duffy or any other Stellar Patrol ship for that matter. The corridor continues port and starboard, and a room lies aft of here."
.GSTR STR?145,"An Ensign appears and informs you that access to this section of Deck Five is restricted to those with a validated Assignment Completion Form QX-17-T. Saluting crisply, she retreats to her unseen guard post."
.GSTR STR?146,"""STELLAR PATROL
Paperwork Task Force
ID Number: 1451-352-716"""
.GSTR STR?147,"A slightly wrinkled Patrol uniform is lying here."
.GSTR STR?148,"This is the largest space in the ship, three decks tall and with the floor area of seven Rigellian buzzball fields. The only exit is fore."
.GSTR STR?149,"The room is filled to the ceiling with row upon row of pallets filled with boxes. Each box has some writing stamped on the side."
.GSTR STR?150,"The deck five corridor ends here at the entrance to the cargo bay, to starboard. A smaller entrance leads fore."
.GSTR STR?151,"He's an amusing and friendly little fellow."
.GSTR STR?152,"That's me!"
.GSTR STR?153,"Floyd, he"
.GSTR STR?154,"paces impatiently"
.GSTR STR?155,"absent-mindedly recites the first six hundred digits of pi"
.GSTR STR?156,"recalls the time he bruised his knee"
.GSTR STR?157,"tells you how much it hurts to repair dents"
.GSTR STR?158,"chants the death scene from ""Carmen"""
.GSTR STR?159,"cranes his neck to see what you are doing"
.GSTR STR?160,"rubs his head affectionately against your shoulder"
.GSTR STR?161,"examines himself for signs of rust"
.GSTR STR?162,"absent-mindedly oils one of his joints"
.GSTR STR?163,"wanders restlessly around the room"
.GSTR STR?164,"notices a mouse scurrying by and tries to hide behind you"
.GSTR STR?165,"sings an ancient ballad, totally out of key"
.GSTR STR?166,"frets about the possibility of his batteries failing"
.GSTR STR?167,"whistles tunelessly"
.GSTR STR?168,"boasts about the time he helped someone sharpen a pencil"
.GSTR STR?169,"yawns and looks bored"
.GSTR STR?170,"complains about a recent assignment in the forms filing department"
.GSTR STR?171,"produces a crayon from one of his compartments and scrawls his name on the wall"
.GSTR STR?172,"Floyd tells Plato about a neat shortcut for calculating seventh order differentials"
.GSTR STR?173,"Plato tells Floyd one of the ancient legends about the early days of the settlement of the galaxy"
.GSTR STR?174,"Floyd and Plato discuss their favorite battery recharging techniques"
.GSTR STR?175,"Plato helps polish a hard-to-reach spot on Floyd's back"
.GSTR STR?176,"""You like Floyd, don't you, Plato?"" asks Floyd. ""Yes,"" replies the taller robot, ""you're the only robot I've ever met who doesn't call me a nerd."" Floyd smiles"
.GSTR STR?177,"In a very sad voice, Floyd talks of his friend Lazarus, a medical robot on Resida who was tragically disassembled. Plato responds, ""Now, Floyd, don't fill your head with the sad memories of Lazarus' death. Think instead about the joy-filled times when you and your friend were together."" Floyd seems awed by such wisdom"
.GSTR STR?178,"Floyd gives Plato a friendly hug"
.GSTR STR?179,"Floyd stubs his toe and begins to whimper. ""There, there,"" says Plato, ""such a reaction will not reduce the level of pain."" He gives Floyd a little tickle, and Floyd begins giggling and forgets the injury"
.GSTR STR?180,"Bin number two holds a spindly little robot, a specialized model designed for bursting and decollating multi-part forms. A tiny nameplate on her perforating extension reads ""Helen."""
.GSTR STR?181,"In the first bin is a bulky robot, obviously intended for heavy-lifting. A brass plate on one of his pneumatic arm lifts says ""Rex."""
.GSTR STR?182," Rex trundles after you. Unfortunately, Rex is not too bright on his best days, and today is not one of them. He forgets to stop when you do; sixteen tons of Rex turn you into a human pancake."
.GSTR STR?183,"open the hatch"
.GSTR STR?184,"If you're in spacelane 630-461, keep it down to 26000 kilometers per millichron. There's a stakeout there."
.GSTR STR?185,"Anyone seen any smokeys in the Nebulon sector?"
.GSTR STR?186,"I'm looking for a traffic report on spacelane 317-455."
.GSTR STR?187,"At the conclusion of this recording, your emergency message will be sent. In the meantime, stay calm. Nothing can go wrong <skip> go wrong <skip> go wrong <skip> go wrong.."
.GSTR STR?188," filling the bay with hot ion gasses. Since you slept through most lectures at boot camp, you may not recall that hot ion gasses are pretty deadly."
.GSTR STR?189,". Once in space, the truck's air gushes out through the open hatch."
.GSTR STR?190,", leaving an impressive cloud of ion dust. However, you're in no condition to admire it, since you are now smeared all over the rear wall of the truck."
.GSTR STR?191,"Fuel level at three-quarters"
.GSTR STR?192,"Fuel level at one-quarter"
.GSTR STR?193,"Docking bay one is occupied. Defaulting to bay two"
.GSTR STR?194,"Arrival at terminus of inputted course. Fuel levels now effectively at zero. Oxygen supply for one person: approximately two chrons"
.GSTR STR?195," As the oxygen runs low, Floyd becomes quite chipper. Never before has he been in such a rust-inhibiting atmosphere. You, on the other hand, are dead."
.GSTR STR?196," Ramosian tree-mold custard"
.GSTR STR?197," apricot yogurt"
.GSTR STR?198," blueberry ice cream"
.GSTR STR?199,"This is a fairly large space where much of the maintenance work for the station takes place. Some repair work for visiting ships is also done here. The room is filled with all sorts of repair and fabrication machinery. A door leads south, and there's an opening to the north."
.GSTR STR?200,"I'm really not at all mechanically inclined. My sincerest apologies."
.GSTR STR?201,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis."
.GSTR STR?202,"This is one of the storage areas. Exits lie to the east and south."
.GSTR STR?203,"twenty tiny sockets"
.GSTR STR?204,"The central corridor continues around to the southeast and southwest, but another corridor joins from the north. There's a door to the east and a doorway to the northeast."
.GSTR STR?205,"The corridor widens here as it approaches the skin of the space station at the point where a Scientific Sub-Module would connect. Sure enough, the connecting tube of a Sub-Module begins just to the north! An auto-door lies to the west. Opposite it, a doorway leads east."
.GSTR STR?206,"This is the shop for station personnel, selling everything from postcards to chewing gum at inflated prices. Exits lead west and southwest."
.GSTR STR?207,"In the corner of the PX is a Stellar Patrol dispensing machine, consisting of a screen (displaying the dispenser's ""exciting"" offerings), a slot (for coin insertion), a keypad (for typing your selection), and a hole (where the dispensed item hopefully -- but rarely -- arrives)."
.GSTR STR?208,"coin slot"
.GSTR STR?209," In case you were napping during Demolitions Training, this means that you're now a fine layer of ash all over the walls of the PX."
.GSTR STR?210,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis."
.GSTR STR?211,"This infirmary has the finest diagnostic equipment that unlimited Stellar Patrol budgets can buy. To the east, an ID reader indicates a security door. You can leave to the west or southeast."
.GSTR STR?212,"This is a modest prison, with three cells. The only exit is west."
.GSTR STR?213,"The corridor continues around to the northwest and southwest, and an adjoining one heads east."
.GSTR STR?214,"This central corridor turns northeast and northwest of here. A second corridor begins here and leads south. There are doorways to the southwest, southeast, and east."
.GSTR STR?215,"This is the Deep-Space Communication Center, which keeps the station in touch with the Stellar Patrol Command and the rest of the Third Galactic Union. Although regulations state that the Comm Center must me monitored around the clock, ten chrons per day, there's no one on duty.
Most of the equipment here is too complicated for anyone without Deep-Space Communications Training to use. However, the red button of the wide-band emergency beacon is well-marked. The only exit is north."
.GSTR STR?216," The shock seems to have been a bit too much for your heart."
.GSTR STR?217,"This is the room where octuplet copies of important forms are stored. Since it is only about a hundred square meters, this room cannot hold more than a few days worth of storage before being dumped to nanofilm. Mercifully, there is an exit to the northeast."
.GSTR STR?218,"reader"
.GSTR STR?219," The log reader explodes!"
.GSTR STR?220,"These are by far the nicest living quarters on the station, with separate sleeping, changing, and working cubicles, and a private SanFac. The only exit is west."
.GSTR STR?221,"Sitting on the Commander's desk is an ordinary-looking log tape. There's a notation printed on it."
.GSTR STR?222,"""Commander's Log -- 11349.12.2 through 11349.12.4"""
.GSTR STR?223,"A sturdy safe is welded to the deck next to the desk."
.GSTR STR?224,"The safe has been blown open! The area around the safe is blackened, and a burnt odor hangs in the air."
.GSTR STR?225,"hole"
.GSTR STR?226,"This is the Station Commander's conference room. Doors point north and west."
.GSTR STR?227,"This is secondary weapons storage deck, but the only weapon deck on a station without a Military Sub-Module. Exit: south."
.GSTR STR?228,"This is a wide but not very tall docking bay. The station entrance lies to the east."
.GSTR STR?229,"This cramped dormitory, composed of approximately twenty private cubicles, curves around the northern half of this level, with exits to the southeast and southwest."
.GSTR STR?230,"You enter one of the cubicles but find nothing of interest."
.GSTR STR?231,"This warren of tiny cubicles fills the southern half of this level, curving toward exits in the northeast and northwest corners."
.GSTR STR?232,"This is a crowded but otherwise typical sanitary facility, with rows of showers, toilet stalls, and sinks. There are exits both north and south."
.GSTR STR?233,"A multiple-function exercise machine sits imposingly on one side of the gym. There is a sign above it."
.GSTR STR?234,"The exercise machine hums encouraging platitudes as it exercises you to death."
.GSTR STR?235,"In the corner, next to the dryer, is a large empty spot where the washer should be."
.GSTR STR?236,"lurches forward and slams shut on your arm. Before you pass out from the pain, you hear a rumbling sound from the presser, but you can't decide whether it sounds more like a chuckle or a burp."
.GSTR STR?237,"This sixty-seat auditorium is used for lectures, certain large briefings, an occasional live entertainment, and a rare live broadcast over deep-space channels. A projection booth dominates the rear of the room. The only entrance is on the north side of the theatre."
.GSTR STR?238,"Aaarghhh! The soup is poisoned! It's burning up your insides!!"
.GSTR STR?239,"This is the primary storage room of the station, with large stockpiles of important items. For example, basic organic materials are needed to supplement the food supply due to the tiny inefficiencies of the recycling process. This is nearly the top level of the Command Module, and the ceiling curves in sharply over the supply room, which curves around to doors at the northwestern and southwestern ends."
.GSTR STR?240,"detonator"
.GSTR STR?241,"This is a medium-sized conference room with doors to the south and west."
.GSTR STR?242,"This is a fairly large conference room with north and south exits."
.GSTR STR?243,"This station's library has some printed material, such as recently transmitted magazines, but primarily it is a location for reading nanofilm spools, via the spool reader, and accessing the main computer's data banks, via the small computer terminal. There's a door to the north and an exit to the west."
.GSTR STR?244,"Magazines are not to be removed from the library"
.GSTR STR?245,"""Collater Repair Manual"""
.GSTR STR?246,"""Food Processing Unit Repair Manual"""
.GSTR STR?247,"You stroll down one of the pebbled paths. It circles the garden, passing more exotic plants, and returns to the area near the elevator."
.GSTR STR?248,"""Emergency Elevator Override Controls
(See Station Commander
for access key)"""
.GSTR STR?249,"open the grating"
.GSTR STR?250,"These cubicles are for use by any visitors or station personnel beyond the normal complement. The entire barracks seem to be unused as well as deserted. The exit lies to the south, and the barracks curve around to the east."
.GSTR STR?251,"This is the rather ordinary sanitary facility for the barracks to the north."
.GSTR STR?252,"This is the station's largest docking bay. A huge door to the east leads into the station.
Resting in the docking bay is a small ship of obviously alien origin. An open hatch seems to beckon you inward."
.GSTR STR?253,"Must be a connect-the-dots! And a real easy one, too! None of those dumb numbers to confuse you! Where's my crayon?"
.GSTR STR?254,"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor is an expert on that subject."
.GSTR STR?255,"Lying under the dots is a skeleton, the brittle remains of a member of some unfamiliar alien race."
.GSTR STR?256,"This is the station's smallest docking bay. You can enter the station to the east."
.GSTR STR?257,"The corridor, which widens off to the west, ends here. There are doorways north and east of you, and doors to the south and southwest. The door to the north must be a security door, because there's an ID reader next to it."
.GSTR STR?258,"This is a room where new robots are constructed, old robots are repaired, and unused robots are stored. There's a door to the east."
.GSTR STR?259,"There's a little robot here who is in the final, training phase of its construction. It is ""sleeping"" on a table, connected to wires which are ""feeding"" it information. The young-looking robot has the name ""Oliver"" engraved on its chestplate."
.GSTR STR?260,"If we be here when Oliver wakes up, Floyd would like to teach Oliver to play paddle-ball. Paddle-ball helped Floyd forget how lonely and scared he was until he found friends...like you."
.GSTR STR?261,"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by the older robots. Such is our lot."
.GSTR STR?262,"This is the place where a station's exports are prepared before transfer to the docking bays and subsequent shipment throughout the regional sector. The only exit is west."
.GSTR STR?263,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. There's a door to the north, and an opening leads southeast."
.GSTR STR?264,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A door leads north and a doorway south."
.GSTR STR?265,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A doorway lies to the southwest, and there's an auto-door to the north."
.GSTR STR?266,"A moderately luxurious SanFac, with a pair of bathtubs in addition to the regular fixtures. Exits lead north, northeast, and northwest."
.GSTR STR?267,"Partway down, you discover discover that the ladder passage to Level Eight is sealed off -- apparently from below."
.GSTR STR?268,"Outdated forms and expired files are reduced to pulp by this machinery. In addition, raw pulp is constantly being ferried into the station from nearby forest worlds. The output from this plant feeds the station's printing plant, which lies to the southeast."
.GSTR STR?269,"Someone has presumably been attempting to repair some of the machinery in this room, because they left a drill lying around."
.GSTR STR?270,"drill"
.GSTR STR?271,"remove the bit that's in the drill"
.GSTR STR?272,"Oh, no! The elevator isn't at this floor! It's a long plunge..."
.GSTR STR?273,"Magnetically-stored data has been damaged; see the Security Officer to have data restored"
.GSTR STR?274,"This shiny cylindrical corridor is the connector between the Command Module, to the south, and the Scientific Sub-Module, to the north."
.GSTR STR?275,"This laboratory, which fills most of the middle level of the Sub-Module, is for the study of applications of the various space-related research that takes place on the other levels. Gangways lead up and down, and a door leads north. A connecting tube opens to the south."
.GSTR STR?276,"This is a small office associated with the lab to the south."
.GSTR STR?277,"This is the notebook of a certain Professor Schmidt, who was studying a strange pyramid discovered aboard a derelict alien ship and brought here.
Schmidt traced back the path of the alien ship; the path points out of the galaxy without nearing any star system. Further, extending the path leads straight to one of our smaller neighboring galaxies. Schmidt concludes that the ship and the pyramid are probably well over one billion years old!
Next, Schmidt studied the wall markings in the alien ship. A series of identical dots, they defied every computerized model of linguistic decipherment! Then, in an inspiration, Schmidt studied the dots for nonvisual properties. His diary vaguely refers to a breakthrough, saying, ""I guess my pal, the mayor, will get to show off his linguistic training.""
Finally, Schmidt began concentrating his studies on the pyramid itself. He was able to discover very little, blaming this primarily on the unexplained failures of several crucial pieces of lab machinery."
.GSTR STR?278,"This laboratory conducts research into various space-related physical sciences. Gangways lead up and down, a there's a door to the north."
.GSTR STR?279,"Various biological sciences, as they related to the environment of space, are studied in this laboratory. There is a gangway leading up, another leading down, and a door leading north."
.GSTR STR?280,"Lying on one of the desks is a scribbled note."
.GSTR STR?281,"""Schmidt -- Why didn't I see it until now! Just think of this station as a cell and the pyramid as a mechanized bacterioph"" The note ends at that point; there seem to be some reddish-brown stains on it."
.GSTR STR?282,"This cramped living area has cubicles for the dozen or so scientists and engineers working in this Sub-Module. The only exit is a gangway leading down."
.GSTR STR?283,"I don't have a very specific function in the station's robotic organizational scheme, but I do keep the library organized."
.GSTR STR?284,"Floyd's best friend! Oh, except you, of course!"
.GSTR STR?285,"Some early poems by Ignatius Tomato. He's my current favorite."
.GSTR STR?286,"burst into tears and dashes out of the room. A beam leaps from the gun..."
.GSTR STR?287," the station's reactor turns into a good old-fashioned H-bomb."
.GSTR STR?288,"You are at the top of an air shaft. There is no gravity here. Handholds lead downward, and a partially open air grate leads out of the shaft."
.GSTR STR?289,"You are in a large, vertical air duct. Handholds lead up and down."
.GSTR STR?290,"You have reached the bottom of the air vent. Ducts too small for you to enter lead off laterally. Handholds lead upward, and the entire floor of the duct is another large grating."
.GSTR STR?291,"The sides ducts are too small to enter!"
.GSTR STR?292,"This tiny control station allows access to the massive memory banks of the station's computer. Ever since the formation of the Third Galactic Union ended the great interstellar dark age, every Stellar Patrol spaceship, every Patrol space station, has been equipped with a computer bulging with the entire accumulated knowledge of mankind. Never again will humanity be permitted to slip back into the ignorance and savagery of the dark age.
A ladder leads up to Level Eight, and there's a call button next to the elevator shaft to the north."
.GSTR STR?293,"The exercise machine reaches you, and performs various repetitions all over your body, proving that exercise isn't always good for you."
.GSTR STR?294,"You are standing on the bottom of the elevator shaft. The elevator is not in sight. The only place to go is back to the computer room to the south."
.GSTR STR?295,"There's no way to climb the shaft."
.GSTR STR?296,"Floyd fires his stun ray nonchalantly in your direction, laughing, as though taunting you. You feel your leg go numb"
.GSTR STR?297,"Smoke is trickling from the tails of the tiny rockets, as though the duplicate pyramids were preparing for activation and launch"
.GSTR STR?298,"A blinking light on the reactor goes from yellow to red"
.GSTR STR?299,"the pyramid, Floyd"
.GSTR STR?300,"This is an east-west tube, widening as it gets farther from the Command Module."
.GSTR STR?301,"This is a wide, cheaply constructed space tube, narrowing to the west. There are openings off this ""street"" in virtually every direction, including one leading downward."
.GSTR STR?302,"Well, there are openings in ALMOST every direction."
.GSTR STR?303,"This is a tiny living bubble beneath Broadway. The inhabitant, who is nowhere in sight, seems to be in the profession of reading the future for superstitious spacemen."
.GSTR STR?304,"You have entered a ramshackle, deserted house of worship for one of the many nondescript space-based religions. The decor was obviously intended, but fails, to make the church look larger and less shoddy than it really is. The only exit is south."
.GSTR STR?305,"This moderately large store sells all kinds of games and other recreational materials. There is also an in-house rec area, featuring a group of simulation booths. The ""street"" lies to the southwest."
.GSTR STR?306,"groof hunting on Septurion Seven"
.GSTR STR?307,"a little-known incident during the signing of the Treaty of Gishen IV"
.GSTR STR?308,"a torrid romance on the tropical planet of San Cupidor"
.GSTR STR?309,"searching for treasure in a magical underground kingdom"
.GSTR STR?310,"bullfighting, skydiving, and dental hygiene"
.GSTR STR?311,"A fine example of trans-molecular platinum foil. The most perfectly reflective material know to man, I am told, and not just on the visual wavelengths! There was a recent rumor that the Rec Shop was to be redecorated using such foil."
.GSTR STR?312,"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy for days!"
.GSTR STR?313,"The huge galactic mining conglomerates often open field offices in these space villages, and this is one of those. Miners will haul some promising hunk of space rock into the vicinity, and then come here to sell the rights to it. You can leave to the west."
.GSTR STR?314,"Some miner has left a headlamp here."
.GSTR STR?315,"You have entered a surprisingly old-fashioned looking tonsorial parlor. A space village seems to be the last place in the civilized galaxy where someone can go to have their hair or fur trimmed by an actual human being. The barber isn't here, though. Doors lead northwest and west."
.GSTR STR?316,"This is a small convenience store, the main source of food and living supplies for this village, as well as a supplement supply for personnel from the space station proper. The shelves are pretty bare, and there is no one in sight. Exits lead north, east, southeast and south."
.GSTR STR?317,"A small, translucent plastic bag is sitting on one of the shelves."
.GSTR STR?318,", delectable, moist boysenberry-flavored taffy"
.GSTR STR?319,"This shop, with exits to the northeast and southeast, sells a variety of animals. Many a lonely spacer has discovered the joys a pet can bring, and this shop features animals of both terrestrial and alien origin. A large sign advertises this month's special."
.GSTR STR?320,"You can see the faint outline of a panel in the ceiling."
.GSTR STR?321,"This sprawling old cargo ship, its engines long ago cannibalized for spare parts, has been converted into a store for supplies and curios. There's an eye-catching sign on the wall. Passageways lead in many directions, and there's an opening in the floor."
.GSTR STR?322,"""FREZONE (tm) Liquid Gorzium Explosive
Instructions for use:
1. Insert explosive in hole of appropriate diameter.
2. Attach detonator to explosive and timer.
3. Set timer.
4. Vamoose.
NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for period of more than 100 millichrons."""
.GSTR STR?323,"Carbon dioxide! Don't use it myself. The only form I've ever seen it in is dry ice."
.GSTR STR?324,"open the bottle"
.GSTR STR?325,"This living bubble has been set up as an artist's loft. Most of the space is taken up by a large scrap sculpture floating in the center of the bubble. It is, of course, pretty impossible to tell how close the sculpture is to completion. The way out is to the east."
.GSTR STR?326,"The most recognizable item in the sculpture is a twenty-prong fromitz board."
.GSTR STR?327,"From your experience with tawdry, space village bars, they are crowded every millichron of the day and night. So it's quite unusual that this saloon is totally deserted. Despite the current solitude, you can almost hear the tinny music, the loud voices, the fistfights. Openings lead west and northwest, and to the east is a partially disguised exit."
.GSTR STR?328,"This is a tiny room, smelling strongly of various synthesized opium variants. There's a sign on the wall a door to the south."
.GSTR STR?329,"You've always wondered what a back-room zero-gee space village bordello was like. Well, now you know. Next to the nearest bed is a locker. The exit leads down."
.GSTR STR?330,"Your lungs rupture, not to mention all sorts of even nastier stuff that you're lucky if you can't imagine."
.GSTR STR?331,"This filthy north-south tube is quite a change from the gleaming, well-scrubbed metal of the space station."
.GSTR STR?332,"This large spacetube is the main thoroughfare of a space village which has sprung up here on the outskirts of the space station, which lies to the north. Rather than the bustling thoroughfare you might expect, however, there isn't a soul in sight. Openings lead up, northeast, south and west. To the southeast, the ""street"" narrows and ramps downward."
.GSTR STR?333," fire nectar - thick and warming"
.GSTR STR?334,"This permanently-docked one-man ship serves as the office for Hizzoner the Mayor, the unofficial leader of the village. Main Street is below."
.GSTR STR?335,"You spot a copy of a book entitled ""Deciphering Alien Speech."""
.GSTR STR?336,"""(bitter/salty/bitter) softness/weakness
(sweet/very-sour) Hunji (noun form)
(bland/salty/sour) Zeenak (adj form)
(bland/bitter) air/atmosphere
(very-salty) however
(sweet/very-sweet) legal destruction (sabotage?)
(very-sweet/bland/sour) I have shined light upon
(sour/bland/sour/sweet) turn back
(bland) (definite article?)
(slightly-sour) solitary
(very-sweet/very-salty) element/substance
(sweet/slightly-bitter) brethren (adj form)
(sour/bland/bland/sour) died/failed
(bland/sour/very-sour) is souring/turning bad
(spicy-hot/bland/bland) (a number) (78? 7/8?)
(bitter/sour/very-sour) weapon (poss form)
(very-sweet) (emphasis mark?)
(very-salty/salty/sour) bad/evil/deadly radiation (plur form)"""
.GSTR STR?337,"The Stellar Patrol has opened a recruitment office off Main Street, thus giving tacit approval to this technically nonregulation space village. Posters showing a rose-colored view of Patrol life are plastered all over the walls. A door leads east."
.GSTR STR?338,"This is a branch office of the First Galactic Bank of Nebulon. There are doors to the north, west and southwest."
.GSTR STR?339,"This small space bubble, with openings to the east and south, is decorated with posters of exotic locales, but it's hard to imagine that anyone in this rundown spacetown would be able to afford an interstellar pleasure jaunt."
.GSTR STR?340,"Since there's no one here to milk you for some worthless life insurance or spaceship insurance, you might as well use the exits to the north or northeast."
.GSTR STR?341,"There's no doubt that ""alley"" is the best word to describe this winding, garbage-strewn connector. Dark passages branch off in almost every direction, and the alley slopes upward to the northwest."
.GSTR STR?342,"This is the home of some kook, a proselytizer of the fringe religion which believes that humankind has angered God by venturing out into space, and the universe will end sometime next week. Next week never seems to come, but there are enough kooks in the galaxy to keep the belief going. You can exit to the south."
.GSTR STR?343,", taking you along for the ride.
Lost in Space
You spend several chrons tumbling into the starry depths, the station dwindling to a dot of light behind you. Eventually, your air runs out."
.GSTR STR?344,"As you swivel the headlamp around, you discover a tiny cylinder with an even tinier label."
.GSTR STR?345,"""FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed demolitionist. Instruction sheet available from vendor; read thoroughly before use!"""
.GSTR STR?346,"The three balls hanging by the (northeastern) entrance to this space hut indicate that a villager down on his or her luck could come here to hock some valuable possession."
.GSTR STR?347,"Some destitute spacer was so hard up that he or she actually pawned a spray can. It's sitting here in the shop, and has some lettering on it."
.GSTR STR?348,"Some seedy loan shark has moored his dilapidated vessel here, on the south side of the alley."
.GSTR STR?349,"""ONE GALAKMID
Third Galactic Union"""
.GSTR STR?350,"This physician's bubble is owned by the village quack, known to his friends as ""Doc"" Schuster, but known to the vast majority of the villagers as Schuster the Shyster. There's a small hole in the wall, probably the opening for a disposal chute. The Doc is out, and in this case, out is northwest."
.GSTR STR?351,"There is a large pile of intoxicated ostrich here."
.GSTR STR?352,"[This is pretty gross, but you asked for it!] As the drill penetrates the unconscious ostrich, geysers of blood spout out, inundating you and the drill, causing a short circuit and electrocuting you. You collapse into a fried heap among a spreading puddle of blood."
.GSTR STR?353,"""Doc -- that ostrich nip you've been waiting for finally came in. Drop by and pick it up. If I'm not in, you'll find it in my ceiling panel."""
.GSTR STR?354,"In the corner of the office is a rather plain-looking machine with a keypad. It looks a bit jerry-rigged."
.GSTR STR?355,"opening"
.GSTR STR?356,"A scrambled card cannot be altered"
.GSTR STR?357,"Ensign, Sixth Class or lower"
.GSTR STR?358,"Ensign, Fifth through Second Class"
.GSTR STR?359,"Ensign First Class"
.GSTR STR?360,"Midshipman"
.GSTR STR?361,"Lieutenant Second Class"
.GSTR STR?362,"Lieutentant Commander"
.GSTR STR?363,"Commander or Captain"
.GSTR STR?364,"Admiral"
.GSTR STR?365,"Fleet Admiral"
.GSTR STR?366,"This outdated drydock is now a messy junk yard. A huge pile of floating junk fills the center of the bubble. Passages lead upwards and west."
.GSTR STR?367,"Of all the items floating in the scrap heap, the pair of magnetic spaceboots looks to be in the best shape."
.ENDI

1050
ship.zap Normal file

File diff suppressed because it is too large Load Diff

1385
ship.zil Normal file

File diff suppressed because it is too large Load Diff

2074
station.zap Normal file

File diff suppressed because it is too large Load Diff

3633
station.zil Normal file

File diff suppressed because it is too large Load Diff

2
syntax.zap Normal file
View File

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

654
syntax.zil Normal file
View File

@ -0,0 +1,654 @@
"SYNTAX for
STATIONFALL
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
<BUZZ A AN THE IS ARE AM AND OF THEN ALL ;ONE BUT EXCEPT \. \, \" PLEASE
THIS THAT PRY HERE SOME MORE G AGAIN OOPS>
<PREP-SYNONYM TO TOWARD>
<PREP-SYNONYM WITH USING>
<PREP-SYNONYM THROUGH THRU>
<PREP-SYNONYM ON ONTO>
<PREP-SYNONYM OUT OUTSIDE>
<PREP-SYNONYM IN INSIDE INTO>
<PREP-SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<PREP-SYNONYM AROUND ALONG>
<PREP-SYNONYM OVER ACROSS>
<SYNONYM ALL BOTH EVERYT>
<SYNONYM NORTH N FORE F>
<SYNONYM SOUTH S AFT>
<SYNONYM EAST E STARBOARD SB>
<SYNONYM WEST W PORT P>
<SYNONYM DOWN D DOWNSTAIRS>
<SYNONYM UP U UPSTAIRS>
<SYNONYM NW NORTHWEST>
<SYNONYM NE NORTHE>
<SYNONYM SW SOUTHWEST>
<SYNONYM SE SOUTHE>
;"game commands"
<SYNTAX VERBOSE = V-VERBOSE>
<SYNTAX BRIEF = V-BRIEF>
<SYNTAX SUPER = V-SUPER-BRIEF>
<VERB-SYNONYM SUPER SUPERBRIEF>
<SYNTAX DIAGNO = V-DIAGNOSE>
<SYNTAX INVENT = V-INVENTORY>
<VERB-SYNONYM INVENT I>
<SYNTAX QUIT = V-QUIT>
<VERB-SYNONYM QUIT Q>
<SYNTAX RESTAR = V-RESTART>
<SYNTAX RESTOR = V-RESTORE>
<SYNTAX SAVE = V-SAVE>
<SYNTAX SCORE = V-SCORE>
<VERB-SYNONYM SCORE STATUS>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX VERSION = V-VERSION>
<SYNTAX \#RANDOM OBJECT = V-$RANDOM>
<SYNTAX \#COMMAND = V-$COMMAND>
<SYNTAX \#RECORD = V-$RECORD>
<SYNTAX \#UNRECORD = V-$UNRECORD>
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
<SYNTAX $DEBUG = V-$DEBUG>
<SYNTAX $STATION = V-$STATION>
<SYNTAX $KEY = V-$KEY>
;"subtitle real verbs"
<SYNTAX ANSWER = V-ANSWER>
<VERB-SYNONYM ANSWER REPLY>
<SYNTAX APPLAUD = V-APPLAUD>
<SYNTAX APPLAUD OBJECT = V-APPLAUD>
<VERB-SYNONYM APPLAUD CLAP>
<SYNTAX APPLY OBJECT (HELD TAKE) = V-APPLY>
<SYNTAX APPLY OBJECT (HELD MANY) TO OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX APPROA OBJECT = V-WALK-TO>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-ASK-ABOUT>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ON OBJECT = V-ASK-ABOUT>
<SYNTAX ASK OBJECT (FIND ACTORBIT) FOR OBJECT = V-ASK-FOR>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KILL PRE-MUNG>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED HAVE) = V-KILL PRE-MUNG>
<VERB-SYNONYM ATTACK KILL MURDER FIGHT HIT SLAY SLAP STRIKE STAB>
<SYNTAX ATTRACT OBJECT WITH OBJECT (HELD CARRIED HAVE) = V-ATTRACT>
<SYNTAX BITE OBJECT = V-BITE>
<SYNTAX BLOW OUT OBJECT (FIND ONBIT) = V-OFF PRE-TOUCH>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-ENTER PRE-ENTER>
<SYNTAX BURN OBJECT (FIND BURNBIT) = V-BURN PRE-TOUCH>
<SYNTAX BURN UP OBJECT (FIND BURNBIT) = V-BURN PRE-TOUCH>
<SYNTAX BURN OBJECT (FIND BURNBIT) WITH OBJECT (HAVE) = V-BURN PRE-TOUCH>
<SYNTAX BURN UP OBJECT (FIND BURNBIT) WITH OBJECT (HAVE) = V-BURN PRE-TOUCH>
;<SYNTAX BUY OBJECT = V-BUY>
;<SYNTAX BUY OBJECT FROM OBJECT = V-BUY>
;<SYNTAX BUY OBJECT WITH OBJECT = V-BUY-WITH>
;<VERB-SYNONYM BUY PURCHASE>
<SYNTAX CALL OBJECT = V-CALL>
<SYNTAX CALL TO OBJECT = V-CALL>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) = V-CATCH>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) IN OBJECT = V-CATCH>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-CATCH>
<VERB-SYNONYM CATCH TRAP>
<SYNTAX CIRCLE OBJECT = V-WALK-AROUND>
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB UP OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB OFF OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
;<SYNTAX CLIMB OVER OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-OVER>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-ENTER PRE-ENTER>
<SYNTAX CLIMB THROUGH OBJECT = V-ENTER PRE-ENTER>
<SYNTAX CLIMB UNDER OBJECT = V-CRAWL-UNDER>
<VERB-SYNONYM CLIMB SCALE>
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE PRE-TOUCH>
<SYNTAX CLOSE OFF OBJECT (FIND ACTIVEBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM CLOSE SHUT SEAL>
<SYNTAX COME WITH OBJECT = V-FOLLOW>
<SYNTAX COMFORT OBJECT (FIND ACTORBIT) = V-COMFORT>
<SYNTAX CONNECT OBJECT TO OBJECT = V-CONNECT>
<VERB-SYNONYM CONNECT ATTACH>
<SYNTAX COVER OBJECT WITH OBJECT (HELD MANY) = V-SPUT-ON>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNTAX CROSS OBJECT = V-CROSS>
<VERB-SYNONYM CROSS FORD>
<SYNTAX DEMOLI OBJECT (ON-GROUND IN-ROOM) = V-MUNG PRE-MUNG>
<SYNTAX DEMOLI OBJECT WITH OBJECT (HELD CARRIED TAKE) = V-MUNG PRE-MUNG>
<SYNTAX DEMOLI OUT OBJECT (FIND RLANDBIT) = V-MUNG PRE-MUNG>
<SYNTAX DEMOLI DOWN OBJECT = V-MUNG PRE-MUNG>
<VERB-SYNONYM DEMOLI DESTRO DAMAGE BREAK SMASH WRECK POP>
<SYNTAX DESCEN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG THROUGH OBJECT = V-DIG>
<SYNTAX DISCONNECT OBJECT = V-DISCONNECT>
<SYNTAX DISCONNECT OBJECT FROM OBJECT = V-DISCONNECT>
<VERB-SYNONYM DISCONNECT DETACH UNPLUG>
<SYNTAX DISEMBARK = V-DISEMBARK>
<SYNTAX DISEMBARK OBJECT (ON-GROUND IN-ROOM) = V-DISEMBARK>
<VERB-SYNONYM DISEMBARK DEBARK DISMOUNT>
<SYNTAX DRESS = V-DRESS>
<SYNTAX DRESS OBJECT = V-DRESS>
<SYNTAX DRILL OBJECT = V-DRILL PRE-DRILL>
<SYNTAX DRILL OBJECT WITH OBJECT = V-DRILL PRE-DRILL>
<SYNTAX DRILL OBJECT IN OBJECT = V-DRILL-HOLE>
;<SYNTAX DRIVE OBJECT = V-DRIVE>
;<SYNTAX DRIVE OBJECT OBJECT = V-DRIVE-DIR>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX DROP OBJECT (HELD MANY) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<VERB-SYNONYM DROP DUMP RELEASE>
<SYNTAX EAT OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EAT PRE-EAT>
<SYNTAX EAT OBJECT FROM OBJECT = V-EAT PRE-EAT>
<SYNTAX EAT FROM OBJECT = V-EAT-FROM>
<VERB-SYNONYM EAT DRINK SWALLOW DEVOUR INGEST GOBBLE>
<SYNTAX EMPTY OBJECT (HAVE TAKE) = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OUT OBJECT (HAVE TAKE) = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) OVER OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) ON OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) IN OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) TO OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (MANY) FROM OBJECT (HAVE TAKE) = V-EMPTY-FROM>
<SYNTAX EMPTY OBJECT (MANY) OUT OBJECT (HAVE TAKE) = V-EMPTY-FROM>
<SYNTAX EMPTY OBJECT (HAVE TAKE) THROUGH OBJECT = V-EMPTY-FROM>
<SYNTAX ENTER = V-IN>
<SYNTAX ENTER OBJECT = V-ENTER>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EXAMINE PRE-LOOK>
;<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE PRE-LOOK>
;<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE PRE-LOOK>
;<SYNTAX EXAMINE FOR OBJECT = V-FIND>
<VERB-SYNONYM EXAMINE INSPECT DESCRIBE STUDY OBSERVE WATCH>
<SYNTAX EXERCISE = V-EXERCISE>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<VERB-SYNONYM EXIT DEPART WITHDR>
<SYNTAX EXTINGUISH OBJECT (FIND ACTIVEBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM EXTINGUISH DEACTIVATE STOP>
<SYNTAX FEED OBJECT (FIND ACTORBIT) = V-FEED>
<SYNTAX FEED OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX FEED OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED HAVE) = V-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED HAVE) WITH OBJECT = V-FILL>
<SYNTAX FIND OBJECT = V-FIND>
<VERB-SYNONYM FIND SEEK>
<SYNTAX FLATTEN OBJECT = V-FLATTEN>
<VERB-SYNONYM FLATTEN UNCRUMPLE STRAIGHTEN>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<VERB-SYNONYM FOLLOW PURSUE CHASE>
<SYNTAX GREET OBJECT (FIND ACTORBIT) = V-GREET>
<SYNTAX GO OBJECT = V-WALK>
<SYNTAX GO IN OBJECT = V-ENTER>
<SYNTAX GO OUT OBJECT = V-ENTER>
<SYNTAX GO THROUGH OBJECT = V-ENTER>
<SYNTAX GO AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX GO UNDER OBJECT = V-CRAWL-UNDER>
<SYNTAX GO BEHIND OBJECT = V-HIDE>
<SYNTAX GO UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX GO DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX GO TO OBJECT = V-WALK-TO>
<SYNTAX GO AWAY OBJECT (FIND RLANDBIT) = V-LEAVE>
<SYNTAX GO WITH OBJECT = V-FOLLOW>
<SYNTAX HAND OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX HAND OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX HAND UP OBJECT (FIND RLANDBIT) = V-GIVE-UP>
<SYNTAX HAND OBJECT (MANY HELD HAVE) BACK OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<VERB-SYNONYM HAND GIVE SELL DONATE OFFER>
<SYNTAX HEAR OBJECT = V-LISTEN>
<SYNTAX HELLO = V-HELLO>
<SYNTAX HELLO OBJECT = V-HELLO>
<VERB-SYNONYM HELLO HI>
<SYNTAX HELP = V-HELP>
<SYNTAX HELP OBJECT = V-SAVE-SOMETHING>
<VERB-SYNONYM HELP HINT HINTS>
<SYNTAX HIDE = V-HIDE>
<SYNTAX HIDE UNDER OBJECT = V-HIDE>
<SYNTAX HIDE BEHIND OBJECT = V-HIDE>
<SYNTAX HUG OBJECT (FIND ACTORBIT) = V-HUG PRE-TOUCH>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP IN OBJECT = V-ENTER>
<SYNTAX JUMP FROM OBJECT = V-LEAP-OFF>
<SYNTAX JUMP OFF OBJECT = V-LEAP-OFF>
<SYNTAX JUMP ON OBJECT = V-STAND-ON>
<SYNTAX JUMP OUT OBJECT = V-LEAP-OFF>
<SYNTAX JUMP THROUGH OBJECT = V-ENTER>
<SYNTAX JUMP UP OBJECT (FIND RLANDBIT) = V-LEAP>
<SYNTAX JUMP DOWN OBJECT (FIND RLANDBIT) = V-LEAP>
<SYNTAX JUMP TO OBJECT = V-LEAP>
<VERB-SYNONYM JUMP LEAP DIVE VAULT>
<SYNTAX KICK OBJECT = V-KICK PRE-TOUCH>
<SYNTAX KISS OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KISS PRE-TOUCH>
<SYNTAX KNOCK ON OBJECT (FIND DOORBIT) = V-KNOCK>
<SYNTAX KNOCK AT OBJECT (FIND DOORBIT) = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
= V-KILL PRE-MUNG>
<VERB-SYNONYM KNOCK RAP>
<SYNTAX LAUNCH OBJECT = V-LAUNCH>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-LEAVE>
<SYNTAX LEAVE OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX LEAVE OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX LET GO OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX LIE ON OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE IN OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE DOWN OBJECT (FIND RLANDBIT) = V-LIE-DOWN>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-ON PRE-TOUCH>
<SYNTAX LISTEN = V-LISTEN>
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
<SYNTAX LOCK OBJECT = V-LOCK>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RLANDBIT) = V-LOOK>
<SYNTAX LOOK DOWN OBJECT (FIND RLANDBIT) = V-LOOK-DOWN PRE-LOOK>
<SYNTAX LOOK UP OBJECT (FIND RLANDBIT) = V-LOOK-UP PRE-LOOK>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK OUT OBJECT = V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER PRE-LOOK>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND PRE-LOOK>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK ON OBJECT = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK TO OBJECT = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNTAX LOOK OVER OBJECT = V-LOOK-OVER PRE-LOOK>
<SYNTAX LOOK OBJECT = V-CHASTISE>
<VERB-SYNONYM LOOK L>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX MAYBE = V-MAYBE>
<SYNTAX MEASURE OBJECT = V-MEASURE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-TOUCH>
<SYNTAX MOVE OBJECT OBJECT = V-PUSH-DIR>
<SYNTAX MOVE AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX MOVE UP OBJECT (ON-GROUND IN-ROOM) = V-RAISE PRE-TOUCH>
<SYNTAX MOVE IN OBJECT = V-MOVE PRE-TOUCH>
<SYNTAX MOVE OBJECT TO OBJECT = V-MOVE PRE-TOUCH>
<VERB-SYNONYM MOVE PULL LEAD>
<SYNTAX NO = V-NO>
<VERB-SYNONYM NO NOPE UH-UH NAH>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN PRE-TOUCH>
<SYNTAX OPEN UP OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN PRE-TOUCH>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-OPEN PRE-TOUCH>
<VERB-SYNONYM OPEN UNSEAL>
;<SYNTAX PAY FOR OBJECT = V-BUY>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-PICK-UP PRE-TAKE>
<SYNTAX PLAY WITH OBJECT (FIND ACTORBIT) = V-PLAY-WITH>
<SYNTAX PLAY OBJECT WITH OBJECT (FIND ACTORBIT) = V-SPLAY-WITH>
<SYNTAX PLUG OBJECT IN OBJECT = V-CONNECT>
<SYNTAX POINT AT OBJECT = V-POINT>
<SYNTAX POINT TO OBJECT = V-POINT>
<SYNTAX POINT OBJECT AT OBJECT = V-POINT>
<SYNTAX POINT OBJECT ON OBJECT = V-POINT>
<SYNTAX POINT OBJECT IN OBJECT = V-POINT>
<VERB-SYNONYM POINT SHINE AIM>
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR>
<SYNTAX POUR OUT OBJECT (HELD CARRIED) IN OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) OUT OBJECT = V-POUR>
<VERB-SYNONYM POUR SPILL>
<SYNTAX PRAY = V-PRAY>
<SYNTAX PRAY FOR OBJECT = V-PRAY>
<SYNTAX PUSH OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT OBJECT = V-PUSH-DIR>
<SYNTAX PUSH UP OBJECT = V-RAISE PRE-TOUCH>
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND) = V-PUSH>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUSH OBJECT IN OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT TO OBJECT = V-PUSH>
<VERB-SYNONYM PUSH PRESS IRON>
<SYNTAX RAISE OBJECT = V-RAISE PRE-TOUCH>
<SYNTAX RAISE UP OBJECT = V-RAISE PRE-TOUCH>
<VERB-SYNONYM RAISE LIFT BOOST>
;<SYNTAX RAPE OBJECT (FIND ACTORBIT) = V-RAPE>
<SYNTAX REACH IN OBJECT (ON-GROUND IN-ROOM) = V-REACH-IN>
<SYNTAX REACH UP OBJECT (ON-GROUND IN-ROOM) = V-REACH-IN>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) = V-READ PRE-LOOK>
<SYNTAX READ THROUGH OBJECT (FIND READBIT) (TAKE) = V-READ PRE-LOOK>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) THROUGH OBJECT = V-READ PRE-LOOK>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) WITH OBJECT = V-READ PRE-LOOK>
<VERB-SYNONYM READ SKIM BROWSE>
<SYNTAX REMOVE OBJECT (FIND WORNBIT) (MANY) = V-REMOVE>
<SYNTAX REMOVE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX ROLL OBJECT (TAKE) = V-ROLL>
<SYNTAX SAVE OBJECT = V-SAVE-SOMETHING>
<VERB-SYNONYM SAVE RESCUE>
<SYNTAX SAY = V-SAY>
<SYNTAX SCARE OBJECT (FIND ACTORBIT) = V-SCARE>
<SYNTAX SCOLD OBJECT (FIND ACTORBIT) = V-SCOLD>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX SEARCH THROUGH OBJECT = V-SEARCH>
<VERB-SYNONYM SEARCH RUMMAG>
<SYNTAX SHAKE OBJECT (TAKE) = V-SHAKE>
<SYNTAX SHAKE OBJECT WITH OBJECT = V-SHAKE-WITH>
<SYNTAX SHOOT OBJECT = V-SHOOT PRE-SHOOT>
<SYNTAX SHOOT OBJECT WITH OBJECT (HELD CARRIED) = V-SHOOT PRE-SHOOT>
<SYNTAX SHOOT OBJECT (HELD CARRIED) AT OBJECT = V-SSHOOT>
<VERB-SYNONYM SHOOT FIRE BLAST ZAP>
<SYNTAX SHOW OBJECT (HELD MANY) TO OBJECT (FIND ACTORBIT) = V-SHOW>
<SYNTAX SHOW OBJECT (FIND ACTORBIT) OBJECT (HELD MANY) = V-SSHOW>
<SYNTAX SIT ON OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT>
<SYNTAX SIT IN OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SKIP = V-SKIP>
<VERB-SYNONYM SKIP HOP>
<SYNTAX SLEEP = V-SLEEP>
<SYNTAX SLEEP IN OBJECT (IN-ROOM ON-GROUND) = V-ENTER PRE-ENTER>
<SYNTAX SLEEP ON OBJECT (IN-ROOM ON-GROUND) = V-ENTER PRE-ENTER>
<VERB-SYNONYM SLEEP DOZE NAP SNOOZE>
<SYNTAX SLICE OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<SYNTAX SLICE THROUGH OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<VERB-SYNONYM SLICE CUT>
<SYNTAX SLIDE DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX SMELL = V-SMELL>
<SYNTAX SMELL OBJECT = V-SMELL>
<VERB-SYNONYM SMELL SNIFF WHIFF>
<SYNTAX SPRAY OBJECT (TAKE) = V-SPRAY>
<SYNTAX SPRAY OBJECT (TAKE HAVE) AT OBJECT = V-SPRAY>
<SYNTAX SPRAY OBJECT (TAKE HAVE) IN OBJECT = V-SPRAY>
<SYNTAX SPRAY OBJECT WITH OBJECT (TAKE HAVE) = V-SSPRAY>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX STAND ON OBJECT = V-STAND-ON>
<SYNTAX STAND IN OBJECT = V-STAND-ON>
<SYNTAX STAND BEHIND OBJECT = V-HIDE>
<VERB-SYNONYM STAND RISE>
<SYNTAX START OBJECT = V-ON PRE-TOUCH>
<VERB-SYNONYM START ACTIVA>
<SYNTAX STICK OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) DOWN OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD CARRIED) AROUND OBJECT = V-SWRAP>
<SYNTAX STICK OBJECT (HELD MANY) OVER OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK DOWN OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX STICK OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX STICK ON OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<SYNTAX STICK OBJECT BEHIND OBJECT = V-PUT-BEHIND>
<SYNTAX STICK OUT OBJECT (FIND ONBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM STICK PUT STUFF INSERT PLACE>
<SYNTAX SWING OBJECT (HELD CARRIED HAVE) = V-SWING>
<SYNTAX SWING OBJECT (HELD CARRIED HAVE) AT OBJECT (FIND ACTORBIT) = V-SWING>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-ENTER PRE-ENTER>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-ENTER PRE-ENTER>
<SYNTAX TAKE UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX TAKE DRESSE OBJECT (FIND RLANDBIT) = V-GET-DRESSED>
<SYNTAX TAKE UNDRES OBJECT (FIND RLANDBIT) = V-GET-UNDRESSED>
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OUT OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) IN OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) ON OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) WITH OBJECT (HAVE) = V-TAKE-WITH>
<SYNTAX TAKE OFF OBJECT (FIND RLANDBIT) (MANY) = V-TAKE-OFF>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE DOWN OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<VERB-SYNONYM TAKE GET GRAB HOLD CARRY>
<SYNTAX TALK TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<VERB-SYNONYM TALK SPEAK>
<SYNTAX TAP OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TAP ON OBJECT = V-KNOCK>
<SYNTAX TASTE OBJECT = V-TASTE>
<VERB-SYNONYM TASTE NIBBLE LICK>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX TELL OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-TELL-ABOUT>
<SYNTAX TELL OBJECT OBJECT = V-STELL>
<SYNTAX THANKS OBJECT = V-THANK>
<SYNTAX THANKS = V-THANK>
<VERB-SYNONYM THANKS THANK>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE) = V-THROW IDROP>
<SYNTAX THROW AWAY OBJECT (HELD CARRIED TAKE) = V-THROW IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE) DOWN OBJECT = V-THROW IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE) AT OBJECT (ON-GROUND IN-ROOM)
= V-THROW IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE) TO OBJECT (ON-GROUND IN-ROOM)
= V-THROW-TO IDROP>
<SYNTAX THROW OBJECT (HELD MANY) OVER OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX THROW OBJECT (ON-GROUND IN-ROOM) OBJECT (HELD CARRIED TAKE) = V-STHROW>
<VERB-SYNONYM THROW HURL TOSS>
<SYNTAX TICKLE OBJECT (FIND ACTORBIT) = V-TICKLE>
<SYNTAX TIE OBJECT (HELD) TO OBJECT = V-TIE>
<SYNTAX TIE OBJECT (HELD) AROUND OBJECT = V-TIE>
<SYNTAX TIME = V-TIME>
<VERB-SYNONYM TIME T>
<SYNTAX TOUCH OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TOUCH OBJECT WITH OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TOUCH OBJECT ON OBJECT = V-TOUCH PRE-TOUCH>
<VERB-SYNONYM TOUCH FONDLE FEEL PAT PET POKE SCRATCH STROKE>
<SYNTAX TURN OBJECT = V-SET PRE-TOUCH>
<SYNTAX TURN AROUND OBJECT (FIND RLANDBIT) = V-SET PRE-TOUCH>
<SYNTAX TURN OBJECT TO OBJECT = V-SET PRE-TOUCH>
<SYNTAX TURN OBJECT AT OBJECT = V-SET PRE-TOUCH>
<SYNTAX TURN OBJECT OBJECT = V-SET PRE-TOUCH>
<SYNTAX TURN ON OBJECT (FIND LIGHTBIT) = V-ON PRE-TOUCH>
<SYNTAX TURN OFF OBJECT (FIND ACTIVEBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM TURN SET SPIN DIAL SWITCH ROTATE FLIP FLICK>
<SYNTAX TYPE = V-TYPE>
<SYNTAX TYPE OBJECT = V-TYPE>
<SYNTAX TYPE IN OBJECT = V-TYPE>
<SYNTAX TYPE ON OBJECT = V-PUSH> ;"see KEYPAD-F"
<SYNTAX TYPE OBJECT ON OBJECT = V-TYPE>
<SYNTAX UNDRES = V-UNDRESS>
<SYNTAX UNDRES OBJECT = V-UNDRESS>
<VERB-SYNONYM UNDRES STRIP>
<SYNTAX UNLOCK OBJECT = V-UNLOCK>
<SYNTAX UNLOCK OBJECT WITH OBJECT (HAVE) = V-UNLOCK>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
<SYNTAX USE OBJECT = V-USE>
<SYNTAX VALIDA OBJECT = V-VALIDATE PRE-VALIDATE>
<SYNTAX VALIDA OBJECT WITH OBJECT (HAVE TAKE) = V-VALIDATE PRE-VALIDATE>
<VERB-SYNONYM VALIDA STAMP>
<SYNTAX WAIT = V-WAIT>
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
<VERB-SYNONYM WAIT Z>
<SYNTAX WAKE OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNTAX WAKE UP OBJECT (FIND RLANDBIT) = V-ALARM>
<VERB-SYNONYM WAKE AWAKE ROUSE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-ENTER>
<SYNTAX WALK OUT OBJECT = V-ENTER>
<SYNTAX WALK ON OBJECT = V-STAND-ON>
<SYNTAX WALK OVER OBJECT = V-ENTER>
<SYNTAX WALK THROUGH OBJECT = V-ENTER>
<SYNTAX WALK AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX WALK UNDER OBJECT = V-CRAWL-UNDER>
<SYNTAX WALK BEHIND OBJECT = V-HIDE>
<SYNTAX WALK UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNTAX WALK AWAY OBJECT (FIND RLANDBIT) = V-LEAVE>
<SYNTAX WALK OBJECT OVER OBJECT = V-RUN-OVER> ;"run tongue over dots"
<VERB-SYNONYM WALK SIDLE RUN PROCEE STEP>
<SYNTAX WASH OBJECT = V-CLEAN>
<SYNTAX WASH UP OBJECT (FIND RLANDBIT) = V-CLEAN>
<SYNTAX WASH OFF OBJECT = V-CLEAN>
<VERB-SYNONYM WASH CLEAN WIPE>
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<VERB-SYNONYM WEAR DON>
<SYNTAX WHAT OBJECT = V-WHAT>
<VERB-SYNONYM WHAT WHATS WHAT\' WHO WHOS>
<SYNTAX WHERE OBJECT = V-WHERE>
<VERB-SYNONYM WHERE WHERES>
<SYNTAX WRAP OBJECT IN OBJECT (HELD CARRIED) = V-WRAP>
<SYNTAX WRAP OBJECT (HELD CARRIED) AROUND OBJECT = V-SWRAP>
<SYNTAX YELL = V-YELL>
<SYNTAX YELL AT OBJECT = V-YELL>
<SYNTAX YELL TO OBJECT = V-YELL>
<VERB-SYNONYM YELL SCREAM SHOUT>
<SYNTAX YES = V-YES>
<VERB-SYNONYM YES Y YUP OK OKAY SURE>
<SYNTAX ZORK = V-ZORK>
<VERB-SYNONYM ZORK SNEEZE>

3544
verbs.zap Normal file

File diff suppressed because it is too large Load Diff

3026
verbs.zil Normal file

File diff suppressed because it is too large Load Diff

1138
village.zap Normal file

File diff suppressed because it is too large Load Diff

1926
village.zil Normal file

File diff suppressed because it is too large Load Diff