Original Source

This commit is contained in:
historicalsource 2019-04-13 21:39:50 -04:00
commit d88d7a8bc2
31 changed files with 14154 additions and 0 deletions

1
README.md Normal file
View file

@ -0,0 +1 @@
# suspended

66
clock.zil Normal file
View file

@ -0,0 +1,66 @@
"CLOCK for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<CONSTANT C-TABLELEN 180>
<GLOBAL C-TABLE <ITABLE NONE 180>>
<GLOBAL C-DEMONS 180>
<GLOBAL C-INTS 180>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<ROUTINE DEMON (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
.CINT>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
.CINT>
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
VECTOR>)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<==? .C .E>
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
<SET INT <REST ,C-TABLE ,C-INTS>>
<PUT .INT ,C-RTN .RTN>
<RETURN .INT>)
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
<SET C <REST .C ,C-INTLEN>>>>
<GLOBAL CLOCK-WAIT <>>
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX (FLG) <OR FALSE ATOM>)
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS) (T ,C-DEMONS)>>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<==? .C .E>
<SETG MOVES <+ ,MOVES 1>>
<RETURN .FLG>)
(<NOT <0? <GET .C ,C-ENABLED?>>>
<SET TICK <GET .C ,C-TICK>>
<COND (<0? .TICK>)
(T
<PUT .C ,C-TICK <- .TICK 1>>
<COND (<AND <NOT <G? .TICK 1>>
<APPLY <GET .C ,C-RTN>>>
<SET FLG T>)>)>)>
<SET C <REST .C ,C-INTLEN>>>>

22
crufty.xzap Normal file
View file

@ -0,0 +1,22 @@
.FUNCT THIS-IT?,OBJ,TBL,SYNS,?TMP1
FSET? OBJ,INVISIBLE /FALSE
ZERO? P-NAM /?THN3
GETPT OBJ,P?SYNONYM >SYNS
PTSIZE SYNS
DIV STACK,2
SUB STACK,1
CALL ZMEMQ,P-NAM,SYNS,STACK
ZERO? STACK /FALSE
?THN3: ZERO? P-ADJ /?ELS8
GETPT OBJ,P?ADJECTIVE >SYNS
ZERO? SYNS /FALSE
PTSIZE SYNS
SUB STACK,1
CALL ZMEMQB,P-ADJ,SYNS,STACK
ZERO? STACK /FALSE
?ELS8: ZERO? P-GWIMBIT /TRUE
FSET? OBJ,P-GWIMBIT /TRUE
RFALSE
.ENDI

16
crufty.zil Normal file
View file

@ -0,0 +1,16 @@
"(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
<ROUTINE THIS-IT? (OBJ TBL "AUX" SYNS)
<COND (<FSET? .OBJ ,INVISIBLE> <RFALSE>)
(<AND ,P-NAM
<NOT <ZMEMQ ,P-NAM
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>>
<RFALSE>)
(<AND ,P-ADJ
<OR <NOT <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>>
<NOT <ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>>
<RFALSE>)
(<AND <NOT <0? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
<RFALSE>)>
<RTRUE>>

393
globals.zil Normal file
View file

@ -0,0 +1,393 @@
"GLOBALS for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<DIRECTIONS NORTH EAST WEST SOUTH UP DOWN IN OUT SE SW NE NW>
"SUBTITLE GLOBAL OBJECTS"
<GLOBAL WINNER-HERE <>>
<GLOBAL LOAD-ALLOWED 100>
<GLOBAL LOAD-MAX 0>
<OBJECT GLOBAL-OBJECTS
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
CUTBIT OPENBIT SEARCHBIT TRANSBIT WEARBIT FIXABLEBIT)>
<OBJECT LOCAL-GLOBALS
(IN GLOBAL-OBJECTS)
(SYNONYM ZZMGCK)
(DESCFCN 0)
(GLOBAL GLOBAL-OBJECTS)
(PSEUDO 0)
(CONTFCN 0)
(SIZE 0)>
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
<OBJECT ROOMS>
<OBJECT INTNUM
(IN GLOBAL-OBJECTS)
(SYNONYM INTNUM)
(DESC "number")>
<OBJECT LISTENING
(IN GLOBAL-OBJECTS)
(SYNONYM LISTEN)
(DESC "listening")>
<OBJECT DRAGGING
(IN GLOBAL-OBJECTS)
(SYNONYM DRAGGI)
(DESC "dragging")>
<OBJECT LEFT
(IN GLOBAL-OBJECTS)
(SYNONYM LEFT BACK BACKWA)
(DESC "left")>
<OBJECT RIGHT
(IN GLOBAL-OBJECTS)
(SYNONYM RIGHT FORWARD)
(DESC "right")>
<OBJECT LOCATION
(IN GLOBAL-OBJECTS)
(SYNONYM LOCATION LOC)
(DESC "location")>
<OBJECT PSEUDO-OBJECT
(DESC "pseudo")
(ACTION CRETIN)>
<OBJECT IT ;"was IT"
(IN GLOBAL-OBJECTS)
(SYNONYM IT THAT HER HIM)
(DESC "random object")
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT COMPLEX
(IN GLOBAL-OBJECTS)
(SYNONYM COMPLEX)
(ADJECTIVE UNDERG)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "underground complex")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE 0 0 "The Complex was started on this terraformed planet to provide the surface-side dwellers with a simpler, easier life. The Complex was built 122 years after the planet was settled, and was designed to operate on its own, with human intervention required only by emergency situations.">)>
<OBJECT PLANET
(IN GLOBAL-OBJECTS)
(DESC "planetary surface")
(SYNONYM CONTRA)
(ADJECTIVE SURFACE)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE "Access to the surface is through the Sterilization Chamber." "The three Filtering Computers must be brought into balance for there to be a surface much longer." "The surface systems were originally controlled by the people living on the surface, but this situation changed once long-term terraforming had been accomplished.">)>
<OBJECT ZORK
(IN GLOBAL-OBJECTS)
(DESC "Zork")
(SYNONYM ZORK)
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "Zork""Zork""Zork""Zork""Zork""Zork"
0 0 0 0 0 0>)>
<OBJECT FRANKLIN
(IN GLOBAL-OBJECTS)
(DESC "Franklin")
(SYNONYM GREGOR FRANKL)
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "Gregory""Gregory""Gregory""Gregory""Gregory""Gregory" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE 0 0 "Refer to your manual for further data.">)>
<OBJECT FCS
(IN GLOBAL-OBJECTS)
(DESC "Filtering Computers")
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "FCs""FCs""FCs""FCs""FCs""FCs" 0 0 0 0 0 0>)
(SYNONYM FC FCS COMPUTER)
(ADJECTIVE FILTERING)
(CLC-TXT <PLTABLE "The three Filtering Computers are kept in balance by two series of four cables. Four cables run through the Primary Channel, while another four run through the Secondary Channel." "All defective cables should be replaced, then the reset code should be entered at the machine in the Main Supply Room." "The Filtering Computers have long provided Contra with surface-side maintenance, providing the surface-dwellers with an easy lifestyle.">)>
<OBJECT CLONES
(IN GLOBAL-OBJECTS)
(DESC "clones")
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "clones""clones""clones""clones""clones""clones" 0 0 0 0 0 0>)
(SYNONYM CLONES)
(CLC-TXT <PLTABLE 0 0 "These clones are clones of you and are your replacements.">)>
<OBJECT GROUND ;"was GROUND"
(IN GLOBAL-OBJECTS)
(SYNONYM FLOOR)
(DESC "floor")
(OBJDESCS <PLTABLE 1 1 1 1 1 1
"floor""floor""floor""floor""floor""floor"
0 0 0 0 0 0>)>
<OBJECT WALLS
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "wall")
(SYNONYM WALL WALLS)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "wall""wall""wall""wall""wall""wall" 0 0 0 0 0 0>)>
<OBJECT CEILING
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "ceiling")
(SYNONYM CEILIN)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "ceiling""ceiling""ceiling""ceiling""ceiling""ceiling" 0 0 0 0 0 0>)>
<OBJECT HANDS ;"was HANDS"
(IN GLOBAL-OBJECTS)
(SYNONYM EXTENS)
(ADJECTIVE GRASPING)
(DESC "extensions")
(FLAGS NDESCBIT TOOLBIT TOUCHBIT)
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "grasping extension""grasping extension""grasping extension"
"grasping extension""grasping extension""grasping extension" 0 0 0 0 0 0>)>
<OBJECT ME
(IN GLOBAL-OBJECTS)
(SYNONYM ME MYSELF SELF WE)
(DESC "cylinder occupant")
(FLAGS VILLAIN TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" 0 0 0 0 0 0>)
(ACTION CRETIN)>
<ROUTINE CRETIN ()
<COND (<VERB? GIVE>
<TELL "FC: I think you're a little confused." CR>
<RTRUE>)
(<VERB? KILL MUNG>
<COND (<IN? ,WINNER ,CPU-ROOM>
<ROBOT-TELL "I'll open the " <>>
<TELL D ,HOME " and see what I can do." CR>
<PERFORM ,V?OPEN ,HOME>)
(T
<ROBOT-TELL "I'll consider it only after I'm in the
Central Chamber.">
<RTRUE>)>)
(<VERB? TAKE>
<ROBOT-TELL "Hey, let's do the job we're supposed to, okay?">)
(<VERB? DISEMBARK>
<ROBOT-TELL "You'll have to do that on your own.">)
(<VERB? EXAMINE>
<ROBOT-TELL "That's difficult unless the " <>>
<TELL D ,HOME " has been opened." CR>)
(<VERB? FIND>
<COND (<NOT <IN? ,WINNER ,CPU-ROOM>>
<PERFORM ,V?WALK-TO ,CPU-ROOM>)
(T <ROBOT-TELL
"You're right here, inside the " <>>
<TELL D ,HOME "." CR>)>
<RTRUE>)>>
;"LOCAL-GLOBALS start here for easier hunting of all ridiculousness which must
be included in the game for sadistic game-testers."
<OBJECT SIGNPOST
(IN LOCAL-GLOBALS)
(DESC "sign")
(FLAGS TOUCHBIT NDESCBIT)
(OBJDESCS <PLTABLE 1 1 1 0 1 1 "little sign" "recessed sign" "sign" "buzzing sign" "signpost" "ACS" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE "This sign shows the access code needed for resetting the Filtering Computers." "You should be able to get Iris to see it somehow." 0>)
(SYNONYM SIGN SIGNPOST ACS)
(ADJECTIVE BUZZIN LITTLE RECESS)>
<OBJECT CONTROL-PANELS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "panel")
(OBJDESCS <PLTABLE 1 1 1 1 1 "panel""panel""panel""panel""panel""panel" 0 0 0 0 0 0>)
(SYNONYM PANEL CONSOL)
(ADJECTIVE SMALL)>
<OBJECT AIRCON
(IN LOCAL-GLOBALS)
(DESC "air conditioning")
(FLAGS NDESCBIT TOUCHBIT)
(SYNONYM CONDIT AIRCON)
(ADJECTIVE AIR)
(OBJDESCS <PLTABLE 0 0 0 1 0 0
"air conditioning""air conditioning""air conditioning"
"air conditioning""air conditioning""air conditioning"
0 0 0 0 0 0>)>
<OBJECT DEBRIS
(IN LOCAL-GLOBALS)
(SYNONYM DEBRIS JUNK RUBBLE)
(DESC "debris")
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 0 0 1 0 "debris""debris""debris""debris""debris"
"debris" 0 0 0 0 0 0>)>
<OBJECT CABLES
(IN LOCAL-GLOBALS)
(SYNONYM TUBES CABLES)
(ADJECTIVE CONNECTING)
(DESC "cables")
(FLAGS NDESCBIT TOUCHBIT)
(OBJDESCS <PLTABLE
1 1 1 1 1 1
"cables""cables""cables""cables""cables""cables"
"The first, second, third and fourth cables are of all different colors."
"The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths."
>)
(CLC-TXT <PLTABLE "These cables were designed for easy replacement. Each is equipped with a simple snap connector so replacement is virtually automatic. All cables of the same color conduct the same voltage charges and are totally interchangeable." "Be careful of removing or replacing active cables." "When this complex was built, a color-coding scheme was agreed upon for the sake of standardization.">)>
<OBJECT WIRING
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT TOUCHBIT)
(SYNONYM WIRING CIRCUI)
(DESC "wiring")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "wiring""wiring""wiring""wiring""wiring""wiring" 0 0 0 0 0 0>)>
<OBJECT TVHOLE
(IN LOCAL-GLOBALS)
(SYNONYM PLUG HOLE PL-1)
(ADJECTIVE SMALL)
(DESC "hole")
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "plug with a cable in it""plug""plug""plug""plug""plug"
0
"Its diameter may fit a small cable."
"It is a female receptacle."
0
"Its depth just cannot compare to mine."
"This PL-1 forms a link for the TV-1.">)
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT STEP
(IN LOCAL-GLOBALS)
(DESC "step")
(FLAGS TOUCHBIT NDESCBIT)
(SYNONYM STEP STAIR DROPOF)
(ADJECTIVE SMALL)
(ACTION STEP-FCN)
(OBJDESCS <PLTABLE
1 1 1 0 1 1 "step" "step" "step" "step" "step" "step" 0 0 0 0 0 0 >)>
<ROUTINE STEP-FCN ()
<COND (<AND <VERB? PUT-AGAINST>
<EQUAL? ,PRSO ,WEDGE>
<OR <IN? ,WEDGE ,WINNER>
<IN? ,WEDGE ,WINNER-HERE>>>
<COND (<NOT <EQUAL? ,WEDGE-PLACED 0>>
<ROBOT-TELL "It's already in position.">
<RTRUE>)>
<COND (<EQUAL? ,WINNER-HERE ,REPAIR1>
<SETG WEDGE-PLACED 1>)
(<EQUAL? ,WINNER-HERE ,HALLWAY-JUNCTION ,HUMAN-ENTRY>
<SETG WEDGE-PLACED 2>)
(ELSE
<SETG WEDGE-PLACED 0>)>
<MOVE ,WEDGE ,WINNER-HERE>
<TELL "The " D ,WEDGE " has been positioned at the "
D ,PRSI "." CR>
<RTRUE>)>>
<OBJECT STAIRS
(IN LOCAL-GLOBALS)
(SYNONYM STAIRS STEPS LADDER STAIRWAY)
(DESC "stairs")
(FLAGS NDESCBIT CLIMBBIT TOUCHBIT)
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "stairs""stairs""stairs""stairs""stairs""stairs" 0 0 0 0 0 0>)>
<OBJECT MONITOR
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT TOUCHBIT)
(SYNONYM MONITO METERS UNITS)
(ADJECTIVE SMALL)
(DESC "monitor")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "monitor""monitor""small unit""monitor""monitor""monitor"0 0 "The unit is active." 0 0 0 "The monitor has been diagnosed as working properly.">)>
;"GLOBAL ATOMS START HERE"
<GLOBAL NUM-EXT 0>
<GLOBAL CAR-FULL 0>
<GLOBAL WEDGE-PLACED 0>
<GLOBAL PLUGGED-IN <>>
<GLOBAL IRIS-FIXED <>>
<GLOBAL DEGREES 60>
<GLOBAL WINDS 10>
<GLOBAL PRESSURE1 55>
<GLOBAL PRESSURE2 50>
<GLOBAL PRESSURE3 55>
<GLOBAL NAME-TBL
<TABLE IRIS
WALDO
SENSA
AUDA
POET
WHIZ
PEOPLE>>
<GLOBAL LIT T>
<GLOBAL MOVES 0>
<GLOBAL SCORE 3>
<GLOBAL WON-FLAG <>>
<GLOBAL INDENTS
<TABLE ""
" "
" "
" "
" "
" ">>
<GLOBAL ON-WEDGE <>>
<GLOBAL DIALSETS
<LTABLE 55 55 55 70 30 50>> ;"First 3 dials, 2nd 3 are Hydro Levers"
<GLOBAL DECAY 6>
<GLOBAL TV-ON <>>
<GLOBAL REDSET <>>
<GLOBAL ORANGESET <>>
<GLOBAL AUDA-LISTENS <>>
<GLOBAL CAR-GONE 0>
<GLOBAL ACID-FIXED T>
<GLOBAL RTHIEF 0>
<GLOBAL TAKE-BACK 0>
<GLOBAL SLEEPERS 0>
<GLOBAL BELT-ON <>>
<GLOBAL TOTAL-SCORE 3>
<GLOBAL PLAY-STARCROSS 0>
<GLOBAL WATER-LEVEL 70>
<GLOBAL MINERALS 30>
<GLOBAL WATTS 50>
<GLOBAL FOOD-TONS 100>
<GLOBAL FLOATERS 1>
<GLOBAL TAXIS 3>
<GLOBAL RAMP-SPEED 30>
<GLOBAL CRASH-RATE 0>
<GLOBAL COLLISIONS 0>
<GLOBAL RAMP-KILLS 0>
<CONSTANT WATER-OPT 70>
<CONSTANT MINERALS-OPT 30>
<CONSTANT WATTS-OPT 50>
<CONSTANT FOOD-OPT 100>
<GLOBAL CODE1 CIRCLE1>
<GLOBAL CODE2 CIRCLE1>
<GLOBAL CODE-TBL
<LTABLE CIRCLE1 CIRCLE2 CIRCLE3 CIRCLE4
CIRCLE5 CIRCLE6 CIRCLE7 CIRCLE8>>
<GLOBAL CODE-SET1 <>>
<GLOBAL CODE-SET2 <>>
<GLOBAL IRIS-HINTS 0>
<GLOBAL DYING1 3>
<GLOBAL DYING2 5>
<GLOBAL DYING3 7>
<GLOBAL ADVANCED-FLAG <>>
<GLOBAL WAITING-QUIP <>>

586
goal.zil Normal file
View file

@ -0,0 +1,586 @@
"GOAL for
SUSPENDED
Copyright 1982 Infocom, Inc. All rights reserved.
"
"This code is the local T system."
<GLOBAL DIR-STRINGS
<PTABLE P?NORTH "north" P?SOUTH "south"
P?EAST "east" P?WEST "west"
P?NW "northwest" P?NE "northeast"
P?SW "southwest" P?SE "southeast"
P?DOWN "downstairs" P?UP "upstairs"
P?IN "in" P?OUT "out">>
"Rapid Transit Line Definitions and Identifiers"
<CONSTANT A-LINE-C 0>
<CONSTANT B-LINE-C 1>
<CONSTANT C-LINE-C 2>
<CONSTANT D-LINE-C 3>
<CONSTANT E-LINE-C 4>
<CONSTANT F-LINE-C 5>
<GLOBAL A-LINE
<PTABLE 0 SKY3 P?EAST
P?WEST SKY2 P?EAST
P?WEST SKY1 P?SOUTH
P?NORTH NE-PASSAGE2 P?SW
P?NE NE-PASSAGE1 0>>
<GLOBAL B-LINE
<PTABLE 0 SUPPLIES-MID P?NORTH
P?SOUTH SUPPLIES-NORTH P?EAST
P?WEST WEATHER-BANKS P?EAST
P?WEST CPU-ROOM P?NE
P?SW CORRIDOR-1 P?NE
P?SW CORRIDOR-2 P?EAST
P?WEST HALLWAY-JUNCTION P?SOUTH
P?NORTH OUTSIDE-CLC P?SOUTH
P?NORTH PERIPH-1 P?SE
P?NW PERIPH-2 P?SW
P?NE PERIPH-3 P?NW
P?SE PERIPH-4 P?EAST
P?WEST CLC-CORE 0>>
<GLOBAL C-LINE
<PTABLE 0 REPAIR3 P?NORTH
P?SOUTH REPAIR2 P?NORTH
P?SOUTH REPAIR1 P?NORTH
P?SOUTH ROBOT-Z P?NW
P?SE ROBOT-PASSAGE P?NW
P?SE CORRIDOR-3 P?EAST
P?WEST CORRIDOR-4 P?EAST
P?WEST ACIDMIST P?EAST
P?WEST MIDMIST P?NE
P?SW FC1 P?SOUTH
P?NORTH TUBE2 P?SOUTH
P?NORTH FC2 P?SOUTH
P?NORTH TUBE1 P?SOUTH
P?NORTH FC3 0>>
<GLOBAL D-LINE
<PTABLE 0 HUMAN-ENTRY P?NORTH
P?SOUTH HALL-STOP3 P?WEST
P?EAST HALL-STOP2 P?WEST
P?EAST HALL-STOP1 P?WEST
P?EAST NORTH-ENTRY P?WEST
P?EAST DEAD-END-1 0>>
<GLOBAL E-LINE
<PTABLE 0 STERILE-AREA P?EAST
P?WEST DECON-CHAMBER P?EAST
P?WEST ENTRY-AREA P?EAST
P?WEST TOOL-AREA P?EAST
P?WEST REC-AREA P?EAST
P?WEST SLEEP-CHAMBER 0>>
<GLOBAL F-LINE
<PTABLE 0 HALL-STOP4 P?EAST
P?WEST HALL-STOP5 P?SOUTH
P?NORTH HALL-T P?SOUTH
P?NORTH LOWER-CORE P?SOUTH
P?NORTH HALL-END P?EAST
P?WEST CAR-AREA P?NORTH
P?SOUTH BIO-INT P?NORTH
P?SOUTH CRYOUNITS 0>>
<GLOBAL TRANSFER-TABLE
<PTABLE 0 0
NE-PASSAGE1 CORRIDOR-4
NE-PASSAGE1 CORRIDOR-4
NE-PASSAGE1 CORRIDOR-4
NE-PASSAGE1 CORRIDOR-4
NE-PASSAGE1 CORRIDOR-4
HALLWAY-JUNCTION CORRIDOR-3
0 0
HALLWAY-JUNCTION CORRIDOR-3
HALLWAY-JUNCTION HUMAN-ENTRY
HALLWAY-JUNCTION HUMAN-ENTRY
HALLWAY-JUNCTION HUMAN-ENTRY
CORRIDOR-4 NE-PASSAGE1
CORRIDOR-3 HALLWAY-JUNCTION
0 0
CORRIDOR-3 HALLWAY-JUNCTION
CORRIDOR-3 HALLWAY-JUNCTION
CORRIDOR-3 HALLWAY-JUNCTION
HUMAN-ENTRY HALLWAY-JUNCTION
HUMAN-ENTRY HALLWAY-JUNCTION
HUMAN-ENTRY HALLWAY-JUNCTION
0 0
NORTH-ENTRY STERILE-AREA
HALL-STOP3 HALL-STOP4
SLEEP-CHAMBER HALL-STOP5
SLEEP-CHAMBER HALL-STOP5
SLEEP-CHAMBER HALL-STOP5
SLEEP-CHAMBER HALL-STOP5
0 0
SLEEP-CHAMBER HALL-STOP5
HALL-STOP4 HALL-STOP3
HALL-STOP4 HALL-STOP3
HALL-STOP4 HALL-STOP3
HALL-STOP4 HALL-STOP3
HALL-STOP5 SLEEP-CHAMBER
0 0>>
<GLOBAL COR-1
<PTABLE P?WEST P?EAST
STERILE-AREA DECON-CHAMBER ENTRY-AREA TOOL-AREA REC-AREA
SLEEP-CHAMBER 0>>
<GLOBAL COR-2
<PTABLE P?WEST P?EAST
DEAD-END-1 NORTH-ENTRY HALL-STOP1 HALL-STOP2 HALL-STOP3
HALL-STOP4 HALL-STOP5 0>>
<GLOBAL COR-4
<PTABLE P?NORTH P?SOUTH
HALL-STOP3 HUMAN-ENTRY HALLWAY-JUNCTION 0>>
<GLOBAL COR-8
<PTABLE P?SW P?NE
CPU-ROOM CORRIDOR-1 CORRIDOR-2 0>>
<GLOBAL COR-16
<PTABLE P?WEST P?EAST
CORRIDOR-2 HALLWAY-JUNCTION CORRIDOR-3 CORRIDOR-4 ACIDMIST MIDMIST 0>>
<GLOBAL COR-32
<PTABLE P?NORTH P?SOUTH
SLEEP-CHAMBER HALL-STOP5 HALL-T LOWER-CORE HALL-END 0>>
<GLOBAL COR-64
<PTABLE P?WEST P?EAST
HALL-END CAR-AREA 0>>
<GLOBAL COR-128
<PTABLE P?SW P?NE
CORRIDOR-4 NE-PASSAGE1 NE-PASSAGE2 0>>
<GLOBAL COR-256
<PTABLE P?WEST P?EAST
SKY4 SKY3 SKY2 SKY1 0>>
"CODE"
<ROUTINE KILL-GOAL (RBT "OPTIONAL" (DRAG <>) "AUX" GT OFFSET)
<SET OFFSET <GETP .RBT ,P?ROBOT>>
<SET GT <GET ,GOAL-TABLES .OFFSET>>
<PUT .GT ,GOAL-S <>>
<PUT .GT ,GOAL-F <>>
<PUT .GT ,GOAL-ENABLE T>
<COND (.DRAG
<PUT ,DRAG-TBL .OFFSET 0>)>
<RFALSE>>
<ROUTINE SET-GOAL (RBT GOAL "AUX" (HERE <LOC .RBT>) HL GL GT)
#DECL ((RBT GOAL HERE) OBJECT (HL GL) FIX
(PRIORITY) <OR FALSE ATOM>)
<SET GT <GET ,GOAL-TABLES <GETP .RBT ,P?ROBOT>>>
<PUT .GT ,GOAL-I <+ <* <GETP .HERE ,P?LINE> 12>
<* <GETP .GOAL ,P?LINE> 2>>>
<PUT .GT ,GOAL-S <GETP .GOAL ,P?STATION>>
<PUT .GT ,GOAL-F .GOAL>
<PUT .GT ,GOAL-ENABLE T>
<LOC .RBT>>
<ROUTINE FOLLOW-GOAL (RBT "AUX" (HERE <LOC .RBT>) LINE LN RM GT GOAL FLG
(GOAL-FLAG <>) (IGOAL <>) LOC (CNT 1) DIR)
#DECL ((RBT HERE LOC RM) OBJECT (LN CNT) FIX
(GOAL-FLAG) <OR ATOM FALSE>)
<SET GT <GET ,GOAL-TABLES <GETP .RBT ,P?ROBOT>>>
<COND (<==? .HERE <GET .GT ,GOAL-F>>
<ARRIVAL .RBT>
<COND (<NOT <EQUAL? .RBT ,PEOPLE>>
<RTRUE>)
(T <RFALSE>)>)
(<NOT <GET .GT ,GOAL-ENABLE>> <RFALSE>)>
%<COND (<GASSIGNED? PREDGEN>
'<COND (<NOT <EQUAL? <SET LOC <GETP .HERE ,P?STATION>>
.HERE>>
<RETURN <MOVE-RBT .RBT .LOC>>)>)
(T
'<COND (<NOT <EQUAL? <SET LOC ,<GETP .HERE ,P?STATION>>
.HERE>>
<RETURN <MOVE-RBT .RBT .LOC>>)>)>
<COND (<==? <SET GOAL <GET ,TRANSFER-TABLE
<SET IGOAL <GET .GT ,GOAL-I>>>> 0>
<SET IGOAL <>>
<SET GOAL <GET .GT ,GOAL-S>>)>
<COND (<NOT .GOAL> <RFALSE>)
(<==? .HERE .GOAL>
<COND (.IGOAL
<COND (<NOT <SET FLG
<MOVE-RBT .RBT
<GET ,TRANSFER-TABLE
<+ .IGOAL 1>>>>>
<SET-GOAL .RBT <GET .GT ,GOAL-F>>)>
<RETURN .FLG>)
(<NOT <==? .HERE <GET .GT ,GOAL-F>>>
<MOVE-RBT .RBT <GET .GT ,GOAL-F>>
<RETURN <ARRIVAL .RBT>>)
(T
<RETURN <ARRIVAL .RBT>>)>)>
<SET LINE <GET-LINE <GETP .GOAL ,P?LINE>>>
<REPEAT ()
<COND (<==? <SET RM <GET .LINE .CNT>> .HERE>
<COND (.GOAL-FLAG
<SET LOC <GET .LINE <- .CNT 3>>>)
(T
<SET LOC <GET .LINE <+ .CNT 3>>>)>
<RETURN <MOVE-RBT .RBT .LOC>>)
(<==? .RM .GOAL>
<SET GOAL-FLAG T>)>
<SET CNT <+ .CNT 3>>>>
<GLOBAL STUCK-QUIPS
<PLTABLE "Internal mapping doesn't extend from "
"Sonar doesn't detect an easy way to get from "
"Sensory mechanisms indicate it's impossible to get from "
"Holy earwax. I can't get from "
"Alas, stuck, stuck, stuck. I can't get from "
"CLC indicates I cannot relocate going from ">>
<GLOBAL MORE-STUCKS
<PLTABLE "I'm waiting for alternate instructions."
"Directions requested."
"Please advise."
"I'm listening for additional instructions."
"Tell me, oh leader, what to do next."
"Awaiting instructions.">>
<ROUTINE STUCK (RBT WHERE "AUX" GT TEMP OFFSET)
<SET OFFSET <GETP .RBT ,P?ROBOT>>
<SET GT <GET ,GOAL-TABLES .OFFSET>>
<SET TEMP ,WINNER>
<CHANGE-WINNER .RBT T>
<COND (<EQUAL? ,WINNER .TEMP>
<ROBOT-TELL <GET ,STUCK-QUIPS ,ROFF> <>>)
(T
<TELL <GET ,INTER-TBL ,ROFF> " " <GET ,STUCK-QUIPS ,ROFF>>)>
<TELL SD <LOC .RBT> " to ">
<COND (<IRIS?>
<TELL "Angling Corridor">)
(T
<TELL SD .WHERE>)>
<TELL ". " <GET ,MORE-STUCKS ,ROFF> CR>
<KILL-GOAL .RBT>
<PUT ,ROBOT-FOLLOW .OFFSET 0>
<PUT ,FOLLOW-TBL ,ROFF 0>
<CHANGE-WINNER .TEMP T>
<RTRUE>>
<ROUTINE MOVE-RBT (RBT WHERE "AUX" (L <LOC .RBT>) (COUNT 0) FLOC FROB)
#DECL ((RBT WHERE) OBJECT)
<COND (<MOVE-RBT? .RBT .L .WHERE>
<RTRUE> ;"Prints something")>
<REPEAT ()
<SET COUNT <+ .COUNT 1>>
<COND (<EQUAL? .COUNT 7>
<RETURN>)>
<COND (<EQUAL? <GET ,FOLLOW-TBL .COUNT> .RBT>
<SET FROB <GET ,NAME-TBL <- .COUNT 1>>>
<SET FLOC <LOC .FROB>>
<COND (<AND <EQUAL? .FROB ,IRIS>
<EQUAL? ,CORRIDOR-1 .WHERE>>
<STUCK ,IRIS ,CPU-ROOM>)
(T
<MOVE-RBT? .FROB .FLOC .WHERE>)>)>>
<RFALSE>>
<ROUTINE MOVE-RBT? (RBT L WHERE)
<COND (<AND <EQUAL? .L ,HUMAN-ENTRY ,HALLWAY-JUNCTION>
<EQUAL? .WHERE ,HUMAN-ENTRY ,HALLWAY-JUNCTION>
<NOT <EQUAL? ,WEDGE-PLACED 2>>
;<NOT <EQUAL? <LOC ,WEDGE> ,HUMAN-ENTRY ,HALLWAY-JUNCTION>>
<NOT <EQUAL? .RBT ,PEOPLE>>>
<STUCK .RBT .WHERE>
<RTRUE>)
(<AND <EQUAL? .L ,CORRIDOR-4>
<EQUAL? .WHERE ACIDMIST>
<NOT ,ACID-FIXED>
<NOT <EQUAL? ,PEOPLE .RBT>>>
<COND (<EQUAL? <GET ,DEADBOTS <GETP .RBT ,P?ROBOT>> 0>
<PUT ,DEADBOTS <GETP .RBT ,P?ROBOT> 1>
<DO-THE-MOVE .RBT .L .WHERE>
<RFALSE>)
(T
<DO-THE-MOVE .RBT .L .WHERE>
<RFALSE>)>)
(<AND <EQUAL? .L ,HALL-END ,CAR-AREA>
<EQUAL? .WHERE ,HALL-END ,CAR-AREA>>
<STUCK .RBT .WHERE>
<RTRUE>)
(<AND <EQUAL? .RBT ,IRIS>
<EQUAL? .L ,CPU-ROOM ,CORRIDOR-1>
<EQUAL? .WHERE ,CORRIDOR-1 ,CORRIDOR-2>>
<MOVE ,IRIS ,CPU-ROOM>
<SET .WHERE ,CORRIDOR-1>
<SET .L ,CPU-ROOM>
<STUCK .RBT .WHERE>
<RTRUE>)
(ELSE
<DO-THE-MOVE .RBT .L .WHERE>
<RFALSE>)>>
<ROUTINE DO-THE-MOVE (RBT L WHERE "AUX" DRAGEE)
<MOVE .RBT .WHERE>
<COND (<==? .RBT ,WINNER>
<SETG WINNER-HERE .WHERE>)>
<PUT ,LAST-ROOM <GETP .RBT ,P?ROBOT> .L>
<COND (<NOT <EQUAL? .RBT ,PEOPLE>>
<COND (<NOT <EQUAL?
<SET DRAGEE
<GET ,DRAG-TBL
<GETP .RBT ,P?ROBOT>>> 0>>
<MOVE .DRAGEE .WHERE>
<PUT ,LAST-ROOM <GETP .DRAGEE ,P?ROBOT> .L>)>)>
<RFALSE>>
<ROUTINE COR-DIR (HERE THERE "AUX" COR RM (PAST 0) (CNT 2))
<SET COR <GET-COR <BAND <GETP .THERE ,P?CORRIDOR>
<GETP .HERE ,P?CORRIDOR>>>>
<REPEAT ()
<COND (<==? <SET RM <GET .COR .CNT>> .HERE>
<SET PAST 1>
<RETURN>)
(<==? .RM .THERE>
<RETURN>)>
<SET CNT <+ .CNT 1>>>
<GET .COR .PAST>>
<ROUTINE GET-LINE (LN)
<COND (<==? .LN 0> ,A-LINE)
(<==? .LN 1> ,B-LINE)
(<==? .LN 2> ,C-LINE)
(<==? .LN 3> ,D-LINE)
(<==? .LN 4> ,E-LINE)
(T ,F-LINE)>>
<ROUTINE GET-COR (NUM)
#DECL ((NUM) FIX)
<COND (<==? .NUM 1> ,COR-1)
(<==? .NUM 2> ,COR-2)
(<==? .NUM 4> ,COR-4)
(<==? .NUM 8> ,COR-8)
(<==? .NUM 16> ,COR-16)
(<==? .NUM 32> ,COR-32)
(<==? .NUM 64> ,COR-64)
(<==? .NUM 128> ,COR-128)
(T ,COR-256)>>
<ROUTINE DIR-PRINT (DIR "AUX" (CNT 0))
#DECL ((DIR CNT) FIX)
<REPEAT ()
<COND (<==? <GET ,DIR-STRINGS .CNT> .DIR>
<COND (<NOT <EQUAL? .DIR ,P?UP ,P?DOWN>>
<TELL "the ">)>
<PRINT <GET ,DIR-STRINGS <+ .CNT 1>>>
<RTRUE>)>
<SET CNT <+ .CNT 1>>>>
"Goal tables for the 6 characters, offset by a constant, which,
for a given robot, is the P?ROBOT property of the object."
<GLOBAL GOAL-TABLES
<TABLE <TABLE <> <> <> <> 1 <> <> I-FOLLOW>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-ROBOT>
<TABLE <> <> <> <> 1 <> <> G-PEOPLE>>>
<CONSTANT CHARACTER-MAX 7>
"Offsets into GOAL-TABLEs"
<CONSTANT GOAL-F 0>
<CONSTANT GOAL-S 1>
<CONSTANT GOAL-I 2>
<CONSTANT GOAL-LDIR 3>
<CONSTANT GOAL-ENABLE 4>
<CONSTANT GOAL-PRIORITY 5>
<CONSTANT GOAL-QUEUED 6>
<CONSTANT GOAL-FUNCTION 7>
"Goal-function constants, similar to M-xxx in MAIN"
<CONSTANT G-REACHED 1>
<CONSTANT G-ENROUTE 2>
<ROUTINE GOAL? (RBT)
<GET <GET ,GOAL-TABLES <GETP .RBT ,P?ROBOT>> ,GOAL-F>>
<ROUTINE I-FOLLOW ("AUX" (FLG <>) (CNT 0) GT)
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX>
<RETURN>)
(<AND <GET <SET GT <GET ,GOAL-TABLES .CNT>> ,GOAL-S>
<GET .GT ,GOAL-ENABLE>>
<PUT .GT ,GOAL-ENABLE T>
<COND (<FOLLOW-GOAL <GET ,CHARACTER-TBL .CNT>>
<SET FLG T>)>)>>
.FLG>
<ROUTINE ARRIVAL (RBT "AUX" GT)
<SET GT <GET ,GOAL-TABLES <GETP .RBT ,P?ROBOT>>>
<PUT .GT ,GOAL-S <>>
<PUT .GT ,GOAL-F <>>
<APPLY <GET .GT ,GOAL-FUNCTION> .RBT ,G-REACHED>
<RTRUE>>
<GLOBAL ARRIVAL-QUIPS
<PLTABLE "I've reached my destination, the "
"Internal mapping indicates arrival at the "
"Sensory mechanisms match goal directive. I am at the "
"From what I can hear, I've arrived at the "
"As much as I can be anyplace, I'm here at the "
"CLC indicates matched arrival coordinates at the ">>
<ROUTINE G-ROBOT (RBT GARG "AUX" TEMP COUNT CHASED)
<COND (<==? .GARG ,G-REACHED>
<SET TEMP ,WINNER>
<CHANGE-WINNER .RBT T>
<CRLF>
<COND (<EQUAL? ,WINNER .TEMP>
<ROBOT-TELL <GET ,ARRIVAL-QUIPS ,ROFF> <>>)
(T
<TELL <GET ,INTER-TBL ,ROFF> " "
<GET ,ARRIVAL-QUIPS ,ROFF>>)>
<KILL-GOAL ,WINNER T>
<TELL SD <LOC ,WINNER> ".">
<COND (<NOT <EQUAL? <SET CHASED <GET ,ROBOT-FOLLOW ,ROFF>> 0>>
<COND (<NOT <EQUAL? <LOC .CHASED> <LOC .RBT>>>
<TELL " Looks like I missed "
D .CHASED " though." CR>)>)>
<PUT ,ROBOT-FOLLOW <GETP .RBT ,P?ROBOT> 0>
<APPLY <GETP ,WINNER-HERE ,P?ACTION> ,M-ENTER>
<CRLF>
<CHANGE-WINNER .TEMP T>
<RFATAL>)>>
;"NOTE: Follow-tbl, found in VERBS, puts the person to be followed into the
table.
NOTE: ROBOT-FOLLOW is used to indicate the robot expected to be found on
arrival, set by GO TO a ROBOT.
NOTE: LAST-ROOM is a table used by the verb FOLLOW to determine whether or
the robot to be followed was just here."
<GLOBAL ROBOT-FOLLOW
<LTABLE 0 0 0 0 0 0>>
<GLOBAL DRAG-TBL
<LTABLE 0 0 0 0 0 0 0>>
<GLOBAL LAST-ROOM
<LTABLE 0 0 0 0 0 0 0>>
<ROUTINE G-PEOPLE (RBT GARG "AUX" COUNT)
<COND (<==? .GARG ,G-REACHED>
<COND (<EQUAL? ,PR-NUMBER 1>
<PARRIVE1>)
(<EQUAL? ,PR-NUMBER 2>
<PARRIVE2>)
(<EQUAL? ,PR-NUMBER 3>
<PARRIVE3>)
(<EQUAL? ,PR-NUMBER 4>
<PARRIVE4>)
(<EQUAL? ,PR-NUMBER 5>
<PARRIVE5>)
(<EQUAL? ,PR-NUMBER 6>
<PARRIVE6>)
(<EQUAL? ,PR-NUMBER 7>
<PARRIVE7>)
(<EQUAL? ,PR-NUMBER 8>
<PARRIVE8>)
(<EQUAL? ,PR-NUMBER 9>
<PARRIVE9>)>)>>
"Routines to do looking down corridors"
<ROUTINE CORRIDOR-LOOK ("OPTIONAL" (ITM <>) "AUX" C Z COR VAL (FOUND <>))
<COND (<SET C <GETP ,WINNER-HERE ,P?CORRIDOR>>
<REPEAT ()
<COND (<NOT <L? <SET Z <- .C 256>> 0>>
<SET COR ,COR-256>)
(<NOT <L? <SET Z <- .C 128>> 0>>
<SET COR ,COR-128>)
(<NOT <L? <SET Z <- .C 64>> 0>>
<SET COR ,COR-64>)
(<NOT <L? <SET Z <- .C 32>> 0>>
<SET COR ,COR-32>)
(<NOT <L? <SET Z <- .C 16>> 0>>
<SET COR ,COR-16>)
(<NOT <L? <SET Z <- .C 8>> 0>>
<SET COR ,COR-8>)
(<NOT <L? <SET Z <- .C 4>> 0>>
<SET COR ,COR-4>)
(<NOT <L? <SET Z <- .C 2>> 0>>
<SET COR ,COR-2>)
(<NOT <L? <SET Z <- .C 1>> 0>>
<SET COR ,COR-1>)
(T <RETURN>)>
<SET VAL <CORRIDOR-CHECK .COR .ITM>>
<COND (<NOT .FOUND> <SET FOUND .VAL>)>
<SET C .Z>>
.FOUND)>>
<ROUTINE CORRIDOR-CHECK (COR ITM "AUX" (CNT 2) (PAST 0) (FOUND <>) RM OBJ)
<REPEAT ()
<COND (<==? <SET RM <GET .COR .CNT>> 0>
<RFALSE>)
(<==? .RM ,WINNER-HERE> <SET PAST 1>)
(<SET OBJ <FIRST? .RM>>
<REPEAT ()
<COND (.ITM
<COND (<==? .OBJ .ITM>
<SET FOUND <GET .COR .PAST>>
<RETURN>)>)
(<GETP .OBJ ,P?ROBOT>
<COND (<EQUAL? <GETP .OBJ ,P?ROBOT> 7>
<TELL "Some " D .OBJ " are ">)
(ELSE
<TELL D .OBJ " is ">)>
<COND (<IN-MOTION? .OBJ>
<TELL "in motion ">)>
<TELL "off to ">
<DIR-PRINT <GET .COR .PAST>>
<DRAGGING? .OBJ>
<TELL ".">
<COND (<AND <EQUAL? .OBJ ,PEOPLE>
,CHASING-THIEF
<EQUAL? ,WINNER ,RTHIEF>>
<TELL
" They appear to be in hot pursuit.">)>
<CRLF>)>
<SET OBJ <NEXT? .OBJ>>
<COND (<NOT .OBJ> <RETURN>)>>
<COND (.FOUND <RETURN .FOUND>)>)>
<SET CNT <+ .CNT 1>>>>
<ROUTINE DRAGGING? (RBT "AUX" DRAGEE)
<COND (<EQUAL? .RBT ,PEOPLE>
<RFALSE>)
(<NOT
<EQUAL? <SET DRAGEE <GET ,DRAG-TBL <GETP .RBT ,P?ROBOT>>> 0>>
<TELL ", dragging " D .DRAGEE>
<RFALSE>)>>
<ROUTINE IN-MOTION? (RBT "AUX" GT)
<SET GT <GET ,GOAL-TABLES <GETP .RBT ,P?ROBOT>>>
<COND (<AND <GET .GT ,GOAL-ENABLE>
<GET .GT ,GOAL-S>
<NOT <==? <LOC .RBT> <GET .GT ,GOAL-F>>>>
<RTRUE>)
(T <RFALSE>)>>
<GLOBAL CHARACTER-TBL <PLTABLE IRIS WALDO SENSA AUDA POET WHIZ PEOPLE>>

1189
gparser.zil Normal file

File diff suppressed because it is too large Load diff

58
load.zil Normal file
View file

@ -0,0 +1,58 @@
"SUSPENSION for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<SNAME "MSB">
<GC-MON T>
<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
<SETG SHORT-STRINGS 2>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "SUSPENDED: Interlogic Science Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<IFILE "GLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "CLOCK" T>
<IFILE "MAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "SVERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
<IFILE "ROBOTS" T>
<IFILE "SROOMS" T>
<IFILE "OBJECTS" T>
<IFILE "SGOAL" T>
<IFILE "SPEOPLE" T>

BIN
mac.zip Normal file

Binary file not shown.

124
macros.zil Normal file
View file

@ -0,0 +1,124 @@
"MACROS for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
<DEFMAC TELL ("ARGS" A)
<FORM PROG ()
!<MAPF ,LIST
<FUNCTION ("AUX" E P O)
<COND (<EMPTY? .A> <MAPSTOP>)
(<SET E <NTH .A 1>>
<SET A <REST .A>>)>
<COND (<TYPE? .E ATOM>
<COND (<OR <=? <SET P <SPNAME .E>>
"CRLF">
<=? .P "CR">>
<MAPRET '<CRLF>>)
(<=? .P "V">
<MAPRET '<VPRINT>>)
(<EMPTY? .A>
<ERROR INDICATOR-AT-END? .E>)
(ELSE
<SET O <NTH .A 1>>
<SET A <REST .A>>
<COND (<OR <=? <SET P <SPNAME .E>>
"DESC">
<=? .P "D">
<=? .P "OBJ">
<=? .P "O">>
<MAPRET <FORM NDESC .O>>)
(<OR <=? .P "SD">
<=? .P "SDESC">>
<MAPRET <FORM PRINTD .O>>)
(<OR <=? .P "NUM">
<=? .P "N">>
<MAPRET <FORM PRINTN .O>>)
(<OR <=? .P "CHAR">
<=? .P "CHR">
<=? .P "C">>
<MAPRET <FORM PRINTC .O>>)
(ELSE
<MAPRET
<FORM PRINT
<FORM GETP .O .E>>>)>)>)
(<TYPE? .E STRING>
<MAPRET <FORM PRINTI .E>>)
(<TYPE? .E FORM>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-?qTYPE .E>)>>>>>
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(ELSE <FORM OR !.O>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<FORM GVAL <PARSE <STRING "V?" <SPNAME .ATM>>>>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
<SET L ()>>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE?)
<FORM G? .BASE? '<RANDOM 100>>>
<ROUTINE NDESC (OBJ "AUX" S TEMPROFF)
<SET TEMPROFF ,ROFF>
<COND (<EQUAL? ,ROFF 0>
<SETG ROFF 6>)>
<COND (<SET S <GET <GETP .OBJ ,P?OBJDESCS> <+ ,ROFF ,SDOFF>>>
<PRINT .S>)
(T <PRINTD .OBJ>)>
<SETG ROFF .TEMPROFF>>
<ROUTINE VPRINT ("AUX" TMP)
<SET TMP <GET ,P-OTBL ,P-VERBN>>
<COND (<==? .TMP 0> <TELL "tell">)
(<0? <GETB ,P-VTBL 2>>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>>
<ROUTINE ZPROB (BASE)
<G? .BASE <RANDOM 100>>>
<ROUTINE PICK-ONE (FROB)
<GET .FROB <RANDOM <GET .FROB 0>>>>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
<DEFMAC OPENABLE? ('OBJ)
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
<FORM FSET? .OBJ ',CONTBIT>>>
<DEFMAC ABS ('NUM)
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
(T .NUM)>>
<DEFMAC IRIS? ()
'<EQUAL? ,WINNER ,IRIS>>
<DEFMAC WALDO? ()
'<EQUAL? ,WINNER ,WALDO>>
<DEFMAC SENSA? ()
'<EQUAL? ,WINNER ,SENSA>>
<DEFMAC AUDA? ()
'<EQUAL? ,WINNER ,AUDA>>
<DEFMAC POET? ()
'<EQUAL? ,WINNER ,POET>>
<DEFMAC WHIZ? ()
'<EQUAL? ,WINNER ,WHIZ>>

297
main.zil Normal file
View file

@ -0,0 +1,297 @@
"MAIN for
SUSPENSION
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<GLOBAL P-WON <>>
<GLOBAL RTD-KILLS 75>
<GLOBAL ACID-KILLS 15>
<GLOBAL PEOPLE-APPEAR 100>
<CONSTANT M-FATAL 2>
<CONSTANT M-HANDLED 1>
<CONSTANT M-NOT-HANDLED <>>
<CONSTANT M-BEG 1>
<CONSTANT M-OBJECT <>>
<CONSTANT M-END 6>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<ROUTINE GO ()
<PUTB ,P-LEXV 0 59>
;"put interrupts on clock chain"
;"set up and go"
<INIT-STATUS-LINE>
<SETG HERE ,IRIS>
<SETG LIT T>
<SETG REDSET ,REDCABLE>
<SETG ORANGESET ,ORANGECABLE>
<ENABLE <QUEUE I-TREMOR1 ,ACID-KILLS>>
<ENABLE <QUEUE I-TREMOR2 ,RTD-KILLS>>;"Includes resetting food levers"
<ENABLE <QUEUE I-PEOPLE1 ,PEOPLE-APPEAR>>
<ENABLE <QUEUE I-AUDA-HINTS ,PEOPLE-APPEAR>>
<ENABLE <QUEUE I-FOLLOW -1>>
<ENABLE <QUEUE I-WEATHER 4>>
<ENABLE <QUEUE I-DECAY 5>>
<ENABLE <QUEUE I-FOOD -1>>
<ENABLE <QUEUE I-WIRE-MESSAGE -1>>
<ENABLE <QUEUE I-ROBOTKILLER -1>>
<ENABLE <QUEUE I-SCORE -1>>
<ENABLE <QUEUE I-IRIS-HINTS -1>>
<SETG P-IT-OBJECT <>>
<SETG WINNER-HERE ,CPU-ROOM>
<COND (<NOT <FSET? ,WINNER-HERE ,TOUCHBIT>>
<V-VERSION>
<CRLF>)>
<BEGINNING>
<CHANGE-WINNER ,IRIS T>
<V-ALL-REPORT-LOC>
<SET-LAST-ROOM>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE CHANGE-WINNER (OBJ "OPTIONAL" (TEMP? <>) "AUX" L)
<COND (<AND <==? .OBJ ,WINNER>
<NOT .TEMP?>>
<TELL "FC: Cryolink already established to " SD ,WINNER "." CR>
<RTRUE>)>
<COND (<G? <GET ,DEADBOTS <GETP .OBJ ,P?ROBOT>> 29>
<DEAD-FCN .OBJ>
<RFALSE>)>
<SETG WINNER .OBJ>
<SETG OLD-WINNER <>>
<SETG WINNER-HERE <COND (<IN? <SET L <LOC .OBJ>> ,ROOMS> .L)
(T <LOC .L>)>>
<SETG ROFF <GETP ,WINNER ,P?ROBOT>>
<SETG HERE ,WINNER>
<COND (<NOT .TEMP?>
<TELL "FC: Cryolink established to ">
<TELL SD ,WINNER "." CR>)>
<COND (<IRIS?> <SETG NUM-EXT 2>)
(<WALDO?> <SETG NUM-EXT 6>
<COND (<FSET? ,SURGERY-HAND ,WEARBIT> <SETG NUM-EXT 7>)>)
(<SENSA?> <SETG NUM-EXT 3>)
(<AUDA?> <SETG NUM-EXT 1>)
(<POET?> <SETG NUM-EXT 3>)
(<WHIZ?> <SETG NUM-EXT 2>)>
<RTRUE>>
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
#DECL ((CNT OCNT ICNT NUM) FIX (V) ANY (OBJ) <OR FALSE OBJECT>
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
<REPEAT ()
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET NUM
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .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 (<==? ,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 <>>)
(<VERB? $TELL>
<TELL
"FC: I don't understand with which robot you wish to form a cryolink." CR>
<SET V <>>)
(T
<TELL <GET ,ROBOT-NAMES ,ROFF> ": "
<GET ,NOT-CLEAR ,ROFF> " ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (,P-OFLAG
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
<TELL "!" CR>
<SET V <>>)>)
(<AND <G? .NUM 1> <==? ,PRSA ,V?$TELL>>
<SETG P-CACTOR 1>
<SETG P-OPLEN <GETB ,P-LEXV ,P-LEXWORDS>>
<SETG P-OPCONT ,P-CONT>
<SET CNT 1>
<PUT ,P-ACTORS 0 .NUM>
<REPEAT ()
<COND (<G? .CNT .NUM> <RETURN>)
(T
<PUT ,P-ACTORS
.CNT
<COND (<IN? <SET OBJ <GET ,P-PRSO .CNT>>
,GLOBAL-OBJECTS>
<REAL-ROBOT .OBJ>)
(T .OBJ)>>)>
<SET CNT <+ .CNT 1>>>
<COND (,P-TWOBOTS
<SETG P-NACTORS 1>
<COND (<ALL-THERE?>
;<CLOCKER>
<COND (<OR <NOT <GETP <1 ,P-ACTORS> ,P?ROBOT>>
<NOT
<GETP <2 ,P-ACTORS> ,P?ROBOT>>
<==? <GETP <2 ,P-ACTORS> ,P?ROBOT>
7>
<==? <GETP <1 ,P-ACTORS> ,P?ROBOT>
7>>
<TELL "FC: That's absurd!" CR>
<CHANGE-WINNER ,OLD-WINNER>
<AGAIN>)
(ELSE
<TELL
"FC: Dual-Cryolink established to ">
<TELL SD <1 ,P-ACTORS> " and "
SD <2 ,P-ACTORS> "." CR>
<SETG WINNER ,TWOBOTS>
<SETG ROFF 0>
<SETG WINNER-HERE
<LOC <1 ,P-ACTORS>>>)>)
(T
<TELL
"FC: The robots are in different places." CR>
<CHANGE-WINNER ,OLD-WINNER>
<AGAIN>)>)
(T
<SETG P-NACTORS .NUM>
<SET V <PERFORM ,PRSA <GET ,P-PRSO 1>>>
<SETG OLD-WINNER <>>)>)
(T
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM> <RETURN>)
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<COND (<G? .NUM 1>
<TELL "(" D .OBJ1 ") ">)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
<SETG L-PRSI ,PRSI>
<COND (<==? .V ,M-FATAL>
<SETG P-CONT <>>
<SETG P-NACTORS 0>)>)
(<G? ,P-NACTORS 1> T)
(T
<SETG P-NACTORS 0>
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<VERB? SAVE RESTORE $TELL VERSION SCORE ADVANCED CONFIGURE IMPOSSIBLE QUIT RESTART SCRIPT UNSCRIPT> T)
(T
<SET V <CLOCKER>>)>)>>>
<GLOBAL NOT-CLEAR <PLTABLE
"I don't see what you mean to"
"I can't tell which object to"
"I have no good sense of what to"
"I don't hear what you mean to"
"I can't imagine what you intend to"
"The CLC doesn't understand what to">>
<ROUTINE TICK ()
<CLOCKER>>
<ROUTINE ALL-THERE? ("AUX" (CNT 1) MAX RM)
<SET MAX <GET ,P-PRSO ,P-MATCHLEN>>
<SET RM <LOC <GET ,P-PRSO 1>>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .MAX> <RTRUE>)
(<NOT <EQUAL? <LOC <GET ,P-PRSO .CNT>> .RM>>
<RFALSE>)>>>
<GLOBAL L-PRSA <>>
<GLOBAL L-PRSO <>>
<GLOBAL L-PRSI <>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,WINNER-HERE>>>
<TELL "FC: I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,WINNER-HERE>)>
<SETG PRSI .I>
<COND (<GAME-COMMAND? .A>
<SET V <APPLY <GET ,ACTIONS .A>>>)
(<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<LOC .O>
<SET V <APPLY <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <APPLY <GETP .O ,P?ACTION>>>>
.V)
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>
<COND (<NOT <==? .V ,M-FATAL>>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<ROUTINE GAME-COMMAND? (ACT)
<COND (<OR <EQUAL? .ACT ,V?SCORE ,V?SAVE ,V?RESTORE>
<EQUAL? .ACT ,V?QUIT ,V?VERSION ,V?$VERIFY>
<EQUAL? .ACT ,V?ADVANCED>>
<RTRUE>)>>
<ROUTINE BEGINNING ()
<TELL
"FC ALERT! Planetside systems are deteriorating. FC imbalance detected. Emergency reviving systems completed. You are now in control of the complex.|
|
SENSA INTERRUPT: Seismic aftershock detected ten meters north of Beta FC. Tremor intensity 9.7. Projected damage: connecting cables in Primary and Secondary Channels.|
|
FC INTERRUPT: All Robots, report locations.|
|">>
<ROUTINE SET-LAST-ROOM ("AUX" (COUNT 0))
<REPEAT ()
<SET COUNT <+ .COUNT 1>>
<COND (<EQUAL? .COUNT 8>
<RETURN>)>
<PUT ,LAST-ROOM .COUNT <LOC <GET ,NAME-TBL <- .COUNT 1>>>>>>

1667
objects.zil Normal file

File diff suppressed because it is too large Load diff

1399
parser.cmp Normal file

File diff suppressed because it is too large Load diff

1325
parser.zil Normal file

File diff suppressed because it is too large Load diff

507
people.zil Normal file
View file

@ -0,0 +1,507 @@
"PEOPLE for
SUSPENDED
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
;"People for Suspended. Interrupts, Routines & Globals
associated with PEOPLE within game."
<GLOBAL PR-NUMBER 0>
<GLOBAL CHASING-THIEF <>>
<ROUTINE AUDA-HEARS? ()
<COND (<AND <IN? ,AUDA <LOC ,PEOPLE>>
<OR ,AUDA-LISTENS
<AUDA?>>
<L? <GET ,DEADBOTS 4> 30>>)>>
<ROUTINE AUDA-SPEAKS ()
<COND (<NOT <AUDA?>>
<TELL CR <GET ,INTER-TBL 4> " Listening..." CR>)
(T
<CRLF>)>>
<ROUTINE ROBOT-THERE? (RBT)
<COND (<AND <IN? .RBT <LOC ,PEOPLE>>
<NOT <FSET? .RBT ,CUTBIT>>>)>>
<ROUTINE I-PEOPLE1 ()
<SETG PR-NUMBER 1>
<MOVE ,PEOPLE ,STERILE-AREA>
<SET-GOAL ,PEOPLE ,TOOL-AREA>
<TELL CR
"FC INTERRUPT: ALERT! ALERT!|
Intruders detected in Sterilization Chamber!" CR>
<RFATAL>>
<ROUTINE PARRIVE1 ("AUX" TEMP)
<MOVE ,TOOLBAG ,PEOPLE>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"I can hear the sound of metal against metal, followed by the sound of a creaking door opening.|
|
\"I've got the toolbag. Everything in it seems intact.\"|
\"Well, don't lose it, man. We're lost without it. We'll never pull the switch on him if we lose it.\"|
\"Don't worry. I won't let it out of my sight.\"|
\"I'm getting sleepy. It was a long ride down here. What do you say we catch some sleep?\"|
\"You really think we should? With all the devastation taking place?\"|
\"I don't have much choice. I'm not thinking clearly, and I really need to sleep. More casualties will occur if we don't take care of ourselves.\"|
\"Good point. Let's go.\"" CR>)>
<COND (<ROBOT-THERE? ,WALDO>
<SET TEMP ,WINNER> <CHANGE-WINNER ,WALDO T>
<TELL CR <GET ,INTER-TBL 2>
" The mobile objects have stopped for a moment. I also detect the " D
,PEOPLE-CABINET " opening then shutting. The " D ,PEOPLE " have removed a "
D ,TOOLBAG " and are grasping it." CR>
<CHANGE-WINNER .TEMP T>)
(<ROBOT-THERE? ,SENSA>
<SET TEMP ,WINNER> <CHANGE-WINNER ,SENSA T>
<TELL CR <GET ,INTER-TBL 3>
" I can detect the cycling of a mechanism attached to the " D
,PEOPLE-CABINET " and the " D ,PEOPLE " removing a " D ,TOOLBAG " from it." CR>
<CHANGE-WINNER .TEMP T>)
(<ROBOT-THERE? ,POET>
<SET TEMP ,WINNER> <CHANGE-WINNER ,POET T>
<TELL CR <GET ,INTER-TBL 5>
" As the amazing " D ,PEOPLE " check in, they casually remove something from a " D ,PEOPLE-CABINET ". It appears to be a " D ,TOOLBAG "." CR>
<CHANGE-WINNER .TEMP T>)>
<SET-GOAL ,PEOPLE ,SLEEP-CHAMBER>
<SETG PR-NUMBER 2>>
<ROUTINE PARRIVE2 ("AUX" TEMP)
<COND (,CHASING-THIEF
<RFALSE>)>
<SETG SLEEPERS 0>
<ENABLE <QUEUE I-STEAL -1>>
<MOVE ,TOOLBAG ,SLEEP-CHAMBER>
<COND (<AND <AUDA-HEARS?>
<NOT ,GIVEN-BAG>>
<AUDA-SPEAKS>
<TELL
"\"Well, this is some sleep chamber. No frills.\"|
\"Don't complain. At least there's bunks for us.\"|
\"I suppose. I'm going to put the toolbag on the floor while I grab some shuteye.\"|
\"What about the robot?\"|
\"What, that ear thing? Gimme a break!\"|
|
AUDA: I hear the sound of metal being placed on the floor." CR>)>
<COND (<AND <ROBOT-THERE? ,WALDO> <NOT ,GIVEN-BAG>>
<TELL CR <GET ,INTER-TBL 2>
" The mobile objects are moving over to the platforms and are reclining." CR>)
(<AND <ROBOT-THERE? ,SENSA> <NOT ,GIVEN-BAG>>
<SET TEMP ,WINNER> <CHANGE-WINNER ,SENSA T>
<TELL CR <GET ,INTER-TBL 3>
" I detect an extreme drop in electrical and ionic activity in this area as the " D ,PEOPLE " become immobile." CR>
<CHANGE-WINNER .TEMP T>)
(<AND <ROBOT-THERE? ,POET> <NOT ,GIVEN-BAG>>
<TELL CR <GET ,INTER-TBL 5>
" Ah, yawn. Ho hum. These people are boring." CR>)>
<RTRUE>>
<GLOBAL SNORES-TBL
<PTABLE
"I can hear slow breathing and the occasional rustling of cloth."
"One of the mechanisms tosses and turns."
"One of the mechanisms has begun snoring. It is irritating."
"The breathing of the mechanisms has become irregular and they begin to stir.">>
<ROUTINE I-STEAL ()
<SETG SLEEPERS <+ ,SLEEPERS 1>>
<COND (<G? ,SLEEPERS 20>
<DISABLE <INT I-STEAL>>
<ENABLE <QUEUE I-PEOPLE2 1>>)>
<COND (<EQUAL? ,SLEEPERS 1>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL <GET ,SNORES-TBL 0> CR>
<RTRUE>)>)
(<EQUAL? ,SLEEPERS 5>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL <GET ,SNORES-TBL 1> CR>
<RTRUE>)>)
(<EQUAL? ,SLEEPERS 10>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL <GET ,SNORES-TBL 2> CR>
<RTRUE>)>)
(<EQUAL? ,SLEEPERS 15>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL <GET ,SNORES-TBL 3> CR>
<RTRUE>)>)>
<RFALSE>>
<GLOBAL FED-UP <>>
<ROUTINE ENOUGH-TRADING ()
<ROBOT-TELL "Given.">
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Enough is enough! We'll never get anywhere with this little thing pestering us.\"|
\"Tell me about it. Let's just get on with this.\"|
\"Fine with me. Grab the bag.\"|
\"Okay.\"" CR>)>
<MOVE ,TOOLBAG ,PEOPLE>
<SETG FED-UP T>
<SETG CHASING-THIEF <>>
<DISABLE <INT I-STEAL>>
<I-PEOPLE2>
<SETG PR-NUMBER 3>
<SET-GOAL ,PEOPLE ,INNER-CORE>>>
<ROUTINE PEOPLE-GIVEN-BAG ()
<ROBOT-TELL "Given.">
<SETG GIVEN-BAG T>
;<COND (<G? ,TAKE-BACK 3>
<RFALSE>)>
<MOVE ,TOOLBAG ,PEOPLE>
<DISABLE <INT I-CHASEAUDA>>
<SETG RTHIEF <>>
<SETG CHASING-THIEF <>>
<SETG TAKE-BACK 0>
<SETG PR-NUMBER 9>
<COND (<L? ,SLEEPERS 20>
<SETG SLEEPERS 0>
<ENABLE <QUEUE I-STEAL -1>>
<MOVE ,TOOLBAG ,SLEEP-CHAMBER>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"It's a good thing that little thief gave the bag back.\"|
\"I'll say. Let's get some more sleep.\"|
\"Okay.\"|
\"You're not worried about leaving the bag on the floor, now, are you?\"|
\"Nah. I'm not worried.\"" CR>)>)
(ELSE ;"THEY WERE ABOUT TO AWAKEN"
<DISABLE <INT I-STEAL>>
<I-PEOPLE2>
<SETG PR-NUMBER 3>
<SET-GOAL ,PEOPLE ,INNER-CORE>
<MOVE ,TOOLBAG ,PEOPLE>
<RFALSE>)>>
<ROUTINE I-PEOPLE2 ("AUX" (FLG <>))
<SETG PR-NUMBER 3>
<SET-GOAL ,PEOPLE ,INNER-CORE>
<MOVE ,TOOLBAG ,PEOPLE>
<COND (<AND <AUDA-HEARS?>
<NOT ,FED-UP>>
<AUDA-SPEAKS>
<SET FLG T>
<TELL
"\"I really needed more rest than that, but it'll have to do. Let's get on with what this.\"|
\"Okay. Just give me a second. Where to now?\"|
\"The Central Library. We've got to get a little info before we can pull the switch.\"|
\"Oops. Almost forgot the tool bag!\"" CR>)>
<COND (<ROBOT-THERE? ,WALDO>
<SET FLG T>
<TELL CR <GET ,INTER-TBL 2>
" The mobile objects are resuming their normal positions and are becoming active." CR>)
(<ROBOT-THERE? ,SENSA>
<SET FLG T>
<TELL CR <GET ,INTER-TBL 3>
" The air is becoming charged with ionic activity as the creatures stir from quiescence." CR>)
(<ROBOT-THERE? ,POET>
<SET FLG T>
<TELL CR <GET ,INTER-TBL 5>
" Like loaves of bread sitting on a warm oven, the Creators rise." CR>)>
.FLG>
<ROUTINE PARRIVE3 ()
<ENABLE <QUEUE I-PEOPLE4 3>>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"I can hear them talking, but I can't make out what's being said." CR>)>
<COND (,PLUGGED-IN
<TELL CR <GET ,INTER-TBL 6>
" Humans querying the CLC regarding proper replacement procedure for you. CLC is responding with the human access code for reviving one of your clones."
CR>)>>
<ROUTINE I-PEOPLE4 ()
<SETG PR-NUMBER 4>
<SET-GOAL ,PEOPLE ,HALL-END>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"That information should do the trick. Let's get the replacement.\"|
\"Yeah. Sounds good to me. I guess that person really went over the deep end, poor thing. Sitting in that capsule can't be a lot of fun.\"|
\"Well, that's the way it goes.\"" CR>)>>
<ROUTINE PARRIVE4 ("AUX" (FLG <>))
<COND (<AND <IN? ,CAR ,HALL-END>
<EQUAL? ,CAR-FULL 0>>
<ENABLE <QUEUE I-KILL 15>>
<COND (<AUDA-HEARS?>
<SET FLG T>
<AUDA-SPEAKS>
<TELL
"\"Let's get into the car and get this thing over with. The clones are near the end of this tube.\"|
\"Sounds good to me. This place gives me the creeps.\"|
|
AUDA: I hear the sounds of the people entering the car, then the whoosh as the car takes off to the east." CR>)>
<MOVE ,PEOPLE ,CRYOUNITS>
<MOVE ,CAR ,CAR-AREA>
.FLG)
(ELSE
<ENABLE <QUEUE I-CAR-WAIT -1>>
<COND (<NOT ,WAITING-QUIP>
<SETG WAITING-QUIP T>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"We'll have to wait for the car. We can't negotiate this tube on foot.\"|
\"Fine. I've got nothing but time.\"" CR>)>)>)>>
<ROUTINE I-CAR-WAIT ()
<COND (<AND <IN? ,CAR ,HALL-END>
<EQUAL? ,CAR-FULL 0>>
<DISABLE <INT I-CAR-WAIT>>
<PARRIVE4>)
(ELSE
<SETG CAR-GONE <+ ,CAR-GONE 1>>
<COND (<AND <EQUAL? ,CAR-GONE 10>
<AUDA-HEARS?>>
<AUDA-SPEAKS>
<TELL
"\"Man, I just hate the way this car was designed.\"|
\"Yeah, well, join the club. We'll just have to wait. We can't go back to the surface until we've pulled the switch, anyway.\"" CR>)
(<AND <EQUAL? ,CAR-GONE 30>
<AUDA-HEARS?>>
<AUDA-SPEAKS>
<TELL
"\"I'm getting real angry. How long are you gonna wait?\"" CR>)
(<AND <EQUAL? ,CAR-GONE 45>
<AUDA-HEARS?>>
<AUDA-SPEAKS>
<TELL
"\"When that robot gets out of that car, I'm going to dismantle the little bugger.\"|
\"You'll have to stand in line. My boredom factor is real low.\"" CR>)
(<EQUAL? ,CAR-GONE 75>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"I'm tired of waiting around, man. Let's go pull the plug and get this thing over with.\"|
\"But what about the clone?\"|
\"Forget it. We'll put everything on manual override and take care of this later. Too many people are at stake here. Okay?\"|
\"Okay. Lead on.\"" CR>)>
<SETG PR-NUMBER 7>
<SET-GOAL ,PEOPLE ,CPU-ROOM>
<DISABLE <INT I-CAR-WAIT>>)>)>>
<ROUTINE I-KILL ("AUX" TEMP)
<MOVE ,PEOPLE ,HALL-END>
<MOVE ,CAR ,HALL-END>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<ROBOT-TELL
"I hear the whoosh of the car returning and the noisy talking mechanisms getting out of it.">)>
<COND (<ROBOT-THERE? ,WALDO>
<SET TEMP ,WINNER> <CHANGE-WINNER ,WALDO T>
<ROBOT-TELL "Sonar detects the " <>>
<TELL D ,PEOPLE
" are holding another thing like themselves between them." CR>
<CHANGE-WINNER .TEMP T>)
(<ROBOT-THERE? ,SENSA>
<TELL "SENSA: Sensory inputs detect a third life form." CR>)
(<ROBOT-THERE? ,POET>
<TELL "POET: Here come da clone, here come da clone." CR>)>
<SETG PR-NUMBER 5>
<SET-GOAL ,PEOPLE ,CPU-ROOM>>
<ROUTINE PARRIVE5 ()
<TELL CR
"As the door swings open you are blinded by intense light and incredible
pain. Just before everything overloads and you fade from existence, you can
make out the shapes of three humans, one of them holding onto the door of the
cylinder, another of them looking exactly like you, and then everything goes
dark." CR>
<QUIT>>
<ROUTINE I-CHASEAUDA ("AUX" TEMP TWINNER)
<SETG TAKE-BACK <+ ,TAKE-BACK 1>>
<COND (<EQUAL? ,TAKE-BACK 1>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Give me that, you little devil!\"|
\"That robot's a thief! Let's get it!\"" CR>)>
<COND (<ROBOT-THERE? ,WALDO>
<TELL CR
"WALDO: The mobile devices are waving their extensions madly. I think I'm in trouble." CR>)
(<ROBOT-THERE? ,SENSA>
<TELL CR
"SENSA: The air in this area has become highly electrified, charged by the creatures." CR>)
(<ROBOT-THERE? ,POET>
<TELL CR
"POET: I believe the Creators have caught an extension in the cookie jar. Better take it on the lam, and pronto." CR>)>
<RFALSE>)
(<EQUAL? ,TAKE-BACK 2>
<RFALSE>)
(<EQUAL? ,TAKE-BACK 3>
<COND (<SET TEMP <GOAL? ,RTHIEF>>
<SET-GOAL ,PEOPLE .TEMP>)
(T
<SET-GOAL ,PEOPLE <LOC ,RTHIEF>>)>
<SETG PR-NUMBER 9>
<SETG CHASING-THIEF T>
<RFALSE>)
(<NOT <IN? ,TOOLBAG ,RTHIEF>>
<COND (<IN? ,PEOPLE <LOC ,TOOLBAG>>
<MOVE ,TOOLBAG ,PEOPLE>
<SETG PR-NUMBER 3>
<SET-GOAL ,PEOPLE ,INNER-CORE>
<DISABLE <INT I-CHASEAUDA>>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Here's the toolbag. Looks like the little 'bot dropped it.\"|
\"Just as well. Let's get on with this.\"" CR>)>
<SETG CHASING-THIEF <>>)
(<IN? ,TOOLBAG ,IRIS>
<SETG RTHIEF ,IRIS> <RFALSE>)
(<IN? ,TOOLBAG ,WALDO>
<SETG RTHIEF ,WALDO> <RFALSE>)
(<IN? ,TOOLBAG ,SENSA>
<SETG RTHIEF ,SENSA> <RFALSE>)
(<IN? ,TOOLBAG ,AUDA>
<SETG RTHIEF ,AUDA> <RFALSE>)
(<IN? ,TOOLBAG ,POET>
<SETG RTHIEF ,POET> <RFALSE>)
(<IN? ,TOOLBAG ,WHIZ>
<SETG RTHIEF ,WHIZ> <RFALSE>)
(T
<COND (<IN? <LOC ,TOOLBAG> ,ROOMS>
<SET-GOAL ,PEOPLE <LOC ,TOOLBAG>>
<SETG PR-NUMBER 9>)
(T
<SETG PR-NUMBER 9>
<SET-GOAL ,PEOPLE <META-LOC ,TOOLBAG>>)>
<RFALSE>)>)
(<IN? ,PEOPLE ,CORRIDOR-4>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Oh, wow, look at that! The mist is coming up through the grating!\"|
\"Yeah. What's below this room? The Maintenance Area?\"|
\"Yes. The cooling system for the Filtering Computers has a regulatory valve there.... Maybe that's what's wrong here.\"|
\"What are you talking about?\"|
\"This acid mist -- it could be what's causing all the trouble. Let's get back down there and turn the wheel, get the cooling system rerouted.\"|
\"It's worth a try. If you're right, we won't have to pull this person's plug.\"|
\"Well, let's go. We're wasting time.\"" CR>)>
<DISABLE <INT I-CHASEAUDA>>
<CRLF>
<COND (<IN? ,RTHIEF ,CORRIDOR-4>
<MOVE ,TOOLBAG ,PEOPLE>
<TELL <GET ,INTER-TBL <GETP ,RTHIEF ,P?ROBOT>>
" They've taken something from my extensions!" CR>)
(ELSE
<TELL <GET ,INTER-TBL <GETP ,RTHIEF ,P?ROBOT>>
" The bag is melting!" CR>
<REMOVE ,TOOLBAG>)>
<SET-GOAL ,PEOPLE ,FCMAINT>
<SETG PR-NUMBER 8>
<SETG CHASING-THIEF <>>)
(<IN? ,PEOPLE <LOC ,RTHIEF>>
<SETG CHASING-THIEF <>>
<COND (<IN? ,PEOPLE ,FCMAINT>
<DISABLE <INT I-CHASEAUDA>>
<MOVE ,TOOLBAG ,PEOPLE>
<STU-1-F T>)
(ELSE
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"We've got him now. He's cornered. Let's grab that tool bag and get on with this fiasco.\"" CR>)>
<CRLF>
<COND (<IN? ,TOOLBAG ,RTHIEF>
<SET TWINNER ,WINNER>
<CHANGE-WINNER ,RTHIEF T>
<ROBOT-TELL
"Oh oh. I feel something wrenching the " <>>
<TELL D ,TOOLBAG " from my extensions." CR>
<CHANGE-WINNER .TWINNER T>)>
<MOVE ,TOOLBAG ,PEOPLE>
<SETG PR-NUMBER 3>
<SET-GOAL ,PEOPLE ,INNER-CORE>
<DISABLE <INT I-CHASEAUDA>>)>)
(ELSE
<SET-GOAL ,PEOPLE <LOC ,RTHIEF>>
<SETG PR-NUMBER 9>
<RFALSE>)>>
<ROUTINE PARRIVE6 ()
<ENABLE <QUEUE I-STARCROSS -1>>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Let's play this game while we wait to see what's happening.\"|
\"What's it called?\"|
\"Starcross. Looks really good.\"|
\"Okay.\"" CR>)>>
<ROUTINE I-STARCROSS ()
<SETG PLAY-STARCROSS <+ ,PLAY-STARCROSS 1>>
<COND (<L? ,PLAY-STARCROSS 200>
<RFALSE>)
(T
<DISABLE <INT I-STARCROSS>>
<SET-GOAL ,PEOPLE ,INNER-CORE>
<SETG PR-NUMBER 3>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"I think we've waited long enough. This person in the cylinder isn't all together upstairs, if
you know what I mean.\"|
\"I do, and I agree. There's been more than enough time. Let's yank the fool out of there immediately, then get the replacement clone.\"|
\"No way. Procedure requires we get the replacement first, and that's what
we're going to do. Now let's move.\"" CR>)>)>>
<ROUTINE PARRIVE7 ()
<TELL CR
"As the door swings open you are blinded by intense light and incredible
pain. Just before everything overloads and you fade from existence, you can
make out the shape of two figures outside, one of them holding onto the door of the cylinder, and then everything goes dark." CR>
<QUIT>>
<ROUTINE PARRIVE8 ()
<STU-1-F>>
<ROUTINE PARRIVE9 ()
<RFALSE>>
<ROUTINE STU-1-F ("OPTIONAL" (LONG? <>))
<SETG ACID-FIXED T>
<SET-GOAL ,PEOPLE ,REC-AREA>
<SETG PR-NUMBER 6>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"Hey -- Look at that! The pipes going up to the Filtering Computers have burst.\"|
\"Yeah. Maybe the person in the cylinder isn't at fault....\"|
\"Hmm. You could be right. Let's fix this and then see if things return to normal.\"|
|
AUDA: I can hear the sound of metal, like a wheel turning, and the hissing
stop.|
|
\"That should take care of that leak. Let's go up to the Rec Area and wait for awhile.\"|
\"Fine.">
<COND (.LONG?
<TELL " Meanwhile, I'll get our toolbag back.">)>
<TELL "\"|
|
AUDA: I hear footsteps as the talking mechanisms walk away." CR>)>
<COND (<ROBOT-THERE? ,WALDO>
<TELL CR
"WALDO: I can detect the large, circular object high overhead turning." CR>)
(<ROBOT-THERE? ,SENSA>
<TELL CR
"SENSA: I detect the flow within the pipes overhead stopping and the acid leak stopping, too." CR>)
(<ROBOT-THERE? ,POET>
<TELL CR
"POET: Here they come to save the day..." CR>)>>

BIN
r7.zip Normal file

Binary file not shown.

932
robots.zil Normal file
View file

@ -0,0 +1,932 @@
"ROBOTS for
SUSPENDED
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
;"NAMES: IRIS, WALDO, SENSA, AUDA, POET, & WHIZ"
<CONSTANT FDOFF 0>
<CONSTANT SDOFF 6>
<CONSTANT RTOFF 12>
<GLOBAL ROBOT-NAMES
<PTABLE "FC for both robots"
"IRIS"
"WALDO"
"SENSA"
"AUDA"
"POET"
"WHIZ"
"HUMANS">>
<ROUTINE ROBOT-TELL (STR "OPTIONAL" (CR? T))
<COND (<NOT <EQUAL? ,WINNER ,OLD-WINNER>>
<TELL <GET ,ROBOT-NAMES ,ROFF> ": ">)>
<TELL .STR>
<COND (.CR? <CRLF>)>
<RTRUE>>
<ROUTINE HE-SHE (OBJ)
<COND (<EQUAL? .OBJ ,IRIS ,SENSA ,AUDA>
<TELL "she">)
(<EQUAL? .OBJ ,PEOPLE>
<TELL "they">)
(T <TELL "he">)>>
<ROUTINE HIM-HER (OBJ)
<COND (<EQUAL? .OBJ ,IRIS ,SENSA ,AUDA>
<TELL "her">)
(<EQUAL? .OBJ ,PEOPLE>
<TELL "them">)
(T <TELL "him">)>>
<ROUTINE CANT-DETECT (OBJ "OPTIONAL" (CR? T) "AUX" TEMPROFF)
<ROBOT-TELL <GET ,DETECT-TBL ,ROFF> <>>
;<SET TEMPROFF ,ROFF>
<COND (<GETP .OBJ ,P?ROBOT>
<TELL " ">)
(T
<TELL " any ">)>
;<COND (<EQUAL? ,ROFF 0>
<SETG ROFF 6>)>
<TELL D .OBJ " here.">
;<SETG ROFF .TEMPROFF>
<COND (.CR? <CRLF>)>
<RTRUE>>
<GLOBAL DETECT-TBL
<PTABLE "Neither robot can detect"
"Visual scanners cannot see"
"Neither sonar nor extensions detect"
"Sensory inputs cannot detect"
"Sorry, but I can't hear"
"I can't accept the existence of"
"The CLC cannot confirm the presence of">>
<ROUTINE ROBOT-YUKS ()
<ROBOT-TELL <PICK-ONE <GET ,R-YUKS ,ROFF> >>>
<GLOBAL R-YUKS
<PLTABLE
<PLTABLE "I would if I could."
"I can't, so I shan't."
"I know why I wasn't well designed, but what's your excuse?"
"Trying to do that's like asking me to blink.">
<PLTABLE "Extensions have their limitations, and you just hit mine."
"I'd sooner play eight pairs of castanets for Auda."
"Do this, do that, boy! I just can't handle this anymore."
"You've entered the zone whose boundaries are that of the wishful thinker.">
<PLTABLE "A request like that makes my sensors recoil in horror."
"I am but a poor sensory mechanism. Don't misuse me."
"I like that. You should bottle that request."
"All sensors aside, that goes beyond my abilities.">
<PLTABLE "If I could turn myself off, I'd do it rather than comply."
"I'll shut my ear-receptors to that request."
"Huh? I was listening to something a little more intelligent -- the walls settling."
"You can't be serious. Poet says more sensible things.">
<PLTABLE "As the immortal Bartleby once said, 'No, I don't think so.'"
"If you knew me like I know me you wouldn't ask me to do that."
"Let's face it: Buddha, you ain't."
"I often ponder the meaning of existence but, in your case, it seems a waste of time.">
<PLTABLE "I'd rather get physical with Iris than respond to that."
"How does that fit into the scheme of things?"
"Unable to process request. Please see manual for operating instructions."
"Huh? You talking to me?">>>
<GLOBAL DEADBOTS
<LTABLE 0 0 0 0 0 0>>
<ROUTINE DEAD-FCN ("OPTIONAL" (ROB 0) "AUX" (COUNT 0) TEMP L)
<COND (<NOT <EQUAL? .ROB 0>>
<TELL "FC: " D .ROB " is no longer functional." CR>)>
<COND (,OLD-WINNER
<SET TEMP <GET ,DEADBOTS <GETP ,OLD-WINNER ,P?ROBOT>>>
<COND (<L? .TEMP 30>
<SETG WINNER ,OLD-WINNER>
<SETG OLD-WINNER <>>
<SETG WINNER-HERE
<COND (<IN? <SET L <LOC ,WINNER>> ,ROOMS> .L)
(T <LOC .L>)>>
<SETG ROFF <GETP ,WINNER ,P?ROBOT>>
<SETG HERE ,WINNER>
<TELL "FC: Cryolink reestablished to ">
<TELL SD ,WINNER "." CR>
<SETG QUOTE-FLAG <>>
<SETG P-CONT <>>
<RFATAL>)>)>
<REPEAT ()
<SET COUNT <+ .COUNT 1>>
<COND (<EQUAL? .COUNT 7>
<TELL
"FC: There's no point in continuing. All the robots are history and, for that matter, so are the people on the surface." CR>
<QUIT>)>
<SET TEMP <GET ,DEADBOTS .COUNT>>
<COND (<L? .TEMP 30>
<SETG WINNER <GET ,NAME-TBL <- .COUNT 1>>>
<SETG OLD-WINNER <>>
<SETG WINNER-HERE
<COND (<IN? <SET L <LOC ,WINNER>> ,ROOMS> .L)
(T <LOC .L>)>>
<SETG ROFF <GETP ,WINNER ,P?ROBOT>>
<SETG HERE ,WINNER>
<TELL "FC: Cryolink established to ">
<TELL SD ,WINNER "." CR>
<SETG QUOTE-FLAG <>>
<SETG P-CONT <>>
<RFATAL>)>>>
<OBJECT GLOBAL-IRIS
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS IRIS ROBOT)
(ADJECTIVE VISUAL ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT SEARCHBIT)
(DESC "Iris")
(ACTION GLOBAL-ROBOT)
(ROBOT 1)
(GLOBAL HANDS)
(CAPACITY 100)>
<OBJECT IRIS
(IN WEATHER-BANKS)
(SYNONYM ROBOTS IRIS ROBOT)
(ADJECTIVE VISUAL ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT SEARCHBIT)
(DESC "Iris")
(ACTION IRIS-FCN)
(ROBOT 1)
(OBJDESCS <PLTABLE
"Iris" "Iris" "Iris" "Iris" "Iris" "Iris"
"Iris" "Iris" "Iris" "Iris" "Iris" "Iris"
"It is extremely difficult to describe oneself."
"Iris feels extremely delicate and is under a meter in height. My pressure extensions detect a maintenance panel which should be accessible to me."
"Iris, when functioning normally, transmits high-resolution pictures of her
surroundings to the FC. She can provide you with visual data and is under a meter in height."
"Iris is silent and does not respond to verbal cueing. She is about one meter high."
"Iris is the personification of petite beauty. As the old-timers say,|
The young lady always wore mink|
While her visual circuits went 'blink'|
The young men's delight|
Night after night|
Was her blushing a bright shade of pink."
"Limited data available while not plugged in to a peripheral. Iris is a visual robot, with no specific tagging devices, about one meter tall.">)
(GLOBAL HANDS)
(CLC-TXT <PLTABLE
"Contained within Iris is a maintenance panel and some visual processors."
"Iris can be best used to monitor the monitors surrounding the Central Chamber.|
Waldo should remove the maintenance panel and replace all faulty chips."
"Iris is a visual robot, a descendant of the simple photon receptors, placed within the complex at its inception.">)
(CAPACITY 100)>
<ROUTINE IRIS-FCN ()
<COND (<IRIS?>
<COND (<G? <GET ,DEADBOTS 1> 29>
<DEAD-FCN ,IRIS>
<RFATAL>)>
<SETG LOAD-MAX 75>
<SETG NUM-EXT 2>
<COND (<VERB? EXAMINE>
<COND (<NOT ,IRIS-FIXED>
<ROBOT-TELL
"That's difficult for me to do until my visual function has been repaired.">
<RTRUE>)
(<EQUAL? ,PRSO ,WINNER>
<ROBOT-YUKS>
<RTRUE>)>)>)
(<VERB? OPEN CLOSE>
<PERFORM ,PRSA ,PANEL>
<RTRUE>)
(<AND <VERB? EXAMINE LOOK-INSIDE>
<FSET? ,PANEL ,OPENBIT>
<GET <GETP ,PANEL ,P?OBJDESCS> ,ROFF>>
<COND (<VERB? EXAMINE>
<GET <GETP ,PANEL ,P?OBJDESCS> ,ROFF>)>
<TELL "The " D ,PANEL " is open">
<COND (<FIRST? ,PANEL>
<TELL " and behind it I detect ">
<PRINT-CONTENTS ,PANEL>)>
<TELL "." CR>)>>
<OBJECT GLOBAL-WALDO
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS WALDO ROBOT)
(ADJECTIVE BUILDER ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Waldo")
(ACTION GLOBAL-ROBOT)
(GLOBAL HANDS)
(ROBOT 2)
(CAPACITY 100)>
<OBJECT WALDO
(IN REPAIR3)
(SYNONYM ROBOTS WALDO ROBOT)
(ADJECTIVE BUILDER ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Waldo")
(ACTION WALDO-FCN)
(GLOBAL HANDS)
(ROBOT 2)
(OBJDESCS <PLTABLE "Waldo""Waldo""Waldo""Waldo""Waldo""Waldo"
"Waldo""Waldo""Waldo""Waldo""Waldo""Waldo"
"Waldo has a lot of extensions for manipulating objects and is about one meter in height. He is primarily a building and repair robot. He's also rather cute and appeals to my visual circuits."
"How can I describe myself?"
"Waldo emits a lot of electrical and sonar feedback waves used for manipulating objects in his environment and is about one meter in height."
"Waldo is generally a quiet robot, well behaved, who never utters a word and is about one meter in height."
"Waldo, ah Waldo. He builds and creates wonders which are a delight to behold and is about one meter in height."
"CLC tagged object WA-1 is a building robot and is about one meter in height." ;"text">)
(CAPACITY 100)
(CLC-TXT <PLTABLE "Waldo is a multi-extensioned robot, capable of extremely delicate operations." "With his microsurgery extension installed, there's little he can't do." "Waldo is part of the Complex's original equipment, provided by the Frobozz Engineering Corporation at no extra cost.">)>
<ROUTINE WALDO-FCN ()
<COND (<WALDO?>
<COND (<G? <GET ,DEADBOTS 2> 29>
<DEAD-FCN ,WALDO>
<RFATAL>)>
<SETG LOAD-MAX 100>
<COND (<FSET? ,SURGERY-HAND ,WEARBIT>
<SETG NUM-EXT 7>)
(T <SETG NUM-EXT 6>)>
<COND (<VERB? TOUCH>
<PERFORM ,V?EXAMINE ,PRSO>
<RTRUE>)
(<AND <VERB? EXAMINE>
<EQUAL? ,PRSO ,WINNER>>
<ROBOT-YUKS>
<RTRUE>)>
<RFALSE>)>>
<OBJECT GLOBAL-SENSA
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS SENSA ROBOT)
(ADJECTIVE SENSORY ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Sensa")
(ACTION GLOBAL-ROBOT)
(GLOBAL HANDS)
(ROBOT 3)
(CAPACITY 0)>
<OBJECT SENSA
(IN CPU-ROOM)
(SYNONYM ROBOTS SENSA ROBOT)
(ADJECTIVE SENSORY ROBOT)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Sensa")
(ACTION SENSA-FCN)
(GLOBAL HANDS)
(ROBOT 3)
(OBJDESCS <PLTABLE "Sensa" "Sensa""Sensa""Sensa""Sensa""Sensa""Sensa"
"Sensa""Sensa""Sensa""Sensa""Sensa"
"I see Sensa as a robot with two extensions which are used mainly to detect the flow of energy in the environment and objects. She is small and is about one meter in height and not very useful for manipulating objects."
"Sensa feels small and delicate, much like Iris, contains two extensions which are delicate and tuned as receptors and is about one meter in height."
"It is diffuclt for me to describe myself."
"Sensa makes no sounds, is unable to respond to verbal queries or orders, and is about one meter in height."
"Sensa is sensitive to sensations and is about one meter in height."
"CLC tagged object SE-1 is a robot designed to retrieve data from its surroundings and is about one meter in height.">)
(CAPACITY 0)
(CLC-TXT <PLTABLE "Sensa contains sensory pads and mechanisms for detecting abnormal activity." "Sensa can best be used by directing her to examine objects." "Sensa was provided when the Filtering Computers discovered the need for a drone to march through corridors, inspecting all devices for vibrational output.">)>
<ROUTINE SENSA-FCN ()
<COND (<SENSA?>
<COND (<G? <GET ,DEADBOTS 3> 29>
<DEAD-FCN ,SENSA>
<RFATAL>)>
<SETG LOAD-MAX 60>
<SETG NUM-EXT 3>
<COND (<AND <VERB? EXAMINE>
<EQUAL? ,PRSO ,WINNER>>
<ROBOT-YUKS>
<RTRUE>)>
<RFALSE>)>>
<OBJECT GLOBAL-AUDA
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS AUDA ROBOT SPEAKER)
(ADJECTIVE VERBAL SPEAKING HEARING AUDIO ROBOT COMMUN)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Auda")
(ACTION GLOBAL-ROBOT)
(GLOBAL HANDS)
(ROBOT 4)
(CAPACITY 100)>
<OBJECT AUDA
(IN ENTRY-AREA)
(SYNONYM ROBOTS AUDA ROBOT SPEAKER)
(ADJECTIVE VERBAL SPEAKING HEARING AUDIO ROBOT COMMUN)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Auda")
(ACTION AUDA-FCN)
(GLOBAL HANDS)
(ROBOT 4)
(CLC-TXT <PLTABLE "Auda has two dish antennae which function as 'ears'." "Tell Auda to listen." "Auda, part of the Complex's original equipment, was built as an interface between human visitors and you.">)
(OBJDESCS <PLTABLE "Auda""Auda""Auda""Auda""Auda""Auda"
"Auda""Auda""Auda""Auda""Auda""Auda"
"Auda is a small robot (about one meter in height) with large dish receptors which give him the appearance of having large ears. He is a listening robot."
"He hears all, with half of his meter-high body made up of two large surfaces shaped like dishes which are mounted on swivels."
"Auda receives vibrations directly related to air currents and is about one meter in height."
"What can I say? I'm cute and about one meter in height."
"Auda, the ears of the people, can hear the beauties of the surroundings, the subtleties of the creatures and is about one meter in height."
"CLC tagged object Auda is unique in his ability to communicate with outside creatures and is about one meter in height.">)
(CAPACITY 100)>
<ROUTINE AUDA-FCN ()
<COND (<AUDA?>
<COND (<G? <GET ,DEADBOTS 4> 29>
<DEAD-FCN ,AUDA>
<RFATAL>)>
<SETG LOAD-MAX 70>
<SETG NUM-EXT 1>
<COND (<AND <VERB? EXAMINE>
<EQUAL? ,PRSO ,WINNER>>
<ROBOT-YUKS>
<RTRUE>)>
<RFALSE>)>>
<OBJECT GLOBAL-POET
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS POET ROBOT)
(ADJECTIVE METAPHOR ROBOT RHYMING)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(GLOBAL HANDS)
(DESC "Poet")
(ACTION GLOBAL-ROBOT)
(ROBOT 5)
(CAPACITY 100)>
<OBJECT POET
(IN CPU-ROOM)
(SYNONYM ROBOTS POET ROBOT)
(ADJECTIVE METAPHOR ROBOT RHYMING)
(GLOBAL HANDS)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Poet")
(ACTION POET-FCN)
(ROBOT 5)
(CLC-TXT <PLTABLE "Poet has two sensors located at the end of his extensions." "For diagnostic information on pattern and flow, have Poet touch objects." "Poet, historically speaking, has been of extreme value in pinpointing exact causes of electrical breakdown.">)
(OBJDESCS <PLTABLE "Poet" "Poet""Poet""Poet""Poet""Poet""Poet""Poet""Poet""Poet""Poet""Poet"
"I see Poet as a misguided robot, wandering about this complex in an abnormal manner even for him. There are two extensions which have flat plates on them which could be used for something, though Poet never communicated their purpose to me. Like the rest of us, Poet is about 1 meter tall."
"The robot you refer to as Poet is actually a finely tuned, though out of kilter, sensory robot used for diagnostic purposes. He is one meter tall."
"All types of energy flow into Poet, especially through its collector plates at the ends of its two extensions. He is a meter high."
"Poet does not emit or receive sound waves and so I have nothing to do with him, that meter-high puzzle."
"A natural born poet, I feel the flow of metaphor upon me at all times."
"CLC does not recognize Poet as a certified repair robot in its present state. Poet is no larger than a meter high.">)
(CAPACITY 100)>
<ROUTINE POET-FCN ()
<COND (<POET?>
<COND (<G? <GET ,DEADBOTS 5> 29>
<DEAD-FCN ,POET>
<RFATAL>)>
<SETG LOAD-MAX 20>
<SETG NUM-EXT 3>
<COND (<AND <VERB? EXAMINE>
<EQUAL? ,PRSO ,WINNER>>
<ROBOT-YUKS>
<RTRUE>)>
<RFALSE>)>>
<OBJECT GLOBAL-WHIZ
(IN GLOBAL-OBJECTS)
(SYNONYM ROBOTS WHIZ ROBOT)
(ADJECTIVE ROBOT RESEARCH)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(DESC "Whiz")
(ACTION GLOBAL-ROBOT)
(ROBOT 6)
(GLOBAL HANDS)
(CAPACITY 100)>
<OBJECT WHIZ
(IN PERIPH-3)
(SYNONYM ROBOTS WHIZ ROBOT)
(ADJECTIVE ROBOT RESEARCH)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT)
(GLOBAL HANDS)
(DESC "Whiz")
(ACTION WHIZ-FCN)
(ROBOT 6)
(CLC-TXT <PLTABLE "Whiz is useful for interfacing with the CLC." "Just tell him to plug in when he's near a peripheral's pedestal." "Built before the complex was completed, Whiz was a bit of a mistake since he should have been able to plug directly into the CLC.">)
(OBJDESCS <PLTABLE "Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz""Whiz"
"Whiz is our interface to the CLC and is about one meter in height. He has a small connecting cable extending from the front of his frame which enables the interface."
"Whiz's general shape, according to my sonar and sense of touch, indicates he is specific-purposed and about one meter in height."
"Whiz processes tremendous amounts of data, assumed by the tremendous energy flow over radio waves between himself and the CLC, and is about one meter in height."
"Whiz does not respond to any audio stimuli and is about one meter in height."
"Whiz is a whiz, and oh what a wonderful whiz he was, the little shrimp."
"CLC data available at peripherals.">)
(CAPACITY 100)>
<ROUTINE WHIZ-FCN ()
<COND (<WHIZ?>
<COND (<G? <GET ,DEADBOTS 6> 29>
<DEAD-FCN ,WHIZ>
<RFATAL>)>
<SETG LOAD-MAX 50>
<SETG NUM-EXT 2>
<COND (<VERB? EXAMINE>
<COND (<EQUAL? ,PRSO ,WINNER>
<ROBOT-YUKS>
<RTRUE>)
(,PLUGGED-IN
<PERFORM ,V?QUERY ,PRSO>
<RTRUE>)>
<RFALSE>)
(<AND <VERB? WALK WALK-TO FOLLOW MOVE-ROBOT-TO-LOC>
,PLUGGED-IN>
<TELL "(Unplugging first.)" CR>
<SETG PLUGGED-IN <>>
<RFALSE>)>)>>
<ROUTINE GLOBAL-ROBOT ()
<COND (<VERB? $TELL WALK-TO QUERY FOLLOW>
<SETG PRSO <GET ,NAME-TBL <- <GETP ,PRSO ,P?ROBOT> 1>>>
<RFALSE>)
(T
<COND (<GETP ,PRSO ,P?ROBOT>
<CANT-DETECT <REAL-ROBOT ,PRSO>>
<RTRUE>)
(<GETP ,PRSI ,P?ROBOT>
<CANT-DETECT <REAL-ROBOT ,PRSI>>
<RTRUE>)>)>>
<OBJECT TWOBOTS
(DESC "Two Robots")
(ACTION TWOBOTS-FCN)
(ROBOT 0)>
<ROUTINE TWOBOTS-FCN ()
<COND (<OR <G? <GET ,DEADBOTS <GETP <GET ,P-ACTORS 1> ,P?ROBOT>> 29>
<G? <GET ,DEADBOTS <GETP <GET ,P-ACTORS 2> ,P?ROBOT>> 29>>
<TELL "FC: Unable to comply with those robots." CR>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RTRUE>)
(<NOT <VERB? TAKE MOVE>>
<TELL "FC: Using two robots will not help accomplish that task." CR>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RTRUE>)
(<AND <EQUAL? ,PRSO ,DEADBOT>
<FSET? ,REDWIRE ,INVISIBLE>>
<COND (<NOT <FSET? ,CABINET ,OPENBIT>>
<TELL
"FC: Neither robot can detect that object here." CR>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RTRUE>)
(ELSE
<TELL "FC: The robots have moved it." CR>
<MOVE ,DEADBOT ,WINNER-HERE>
<FCLEAR ,REDWIRE ,INVISIBLE>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<FSET ,DEADBOT ,TOUCHBIT>)>
<RTRUE>)
(<AND <EQUAL? ,PRSO ,DEADBOT>
<NOT <FSET? ,REDWIRE ,INVISIBLE>>>
<TELL
"FC: There's nothing to be gained by moving it again." CR>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RTRUE>)
(ELSE
<TELL "FC: Using two robots will not help accomplish that task." CR>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RTRUE>)>
<CHANGE-WINNER <GET ,P-ACTORS 1>>
<RFALSE>>
;"SOME QUEUED ACTIONS FOLLOW"
<ROUTINE I-TREMOR1 ("AUX" STR)
<SETG ACID-FIXED <>>
<COND (<L? <GET ,DEADBOTS 3> 30>
<TELL CR <GET ,INTER-TBL 3>
" Secondary tremor detected in lower level. Intensity: 7.3. Projected damage: Cooling systems for FCs in Maintenance Area." CR>)>
<COND (<IN? ,SENSA ,CORRIDOR-4>
<SET STR <GET ,BEWARE-TBL 3>>
<CRLF>
<COND (<SENSA?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 3> " " .STR CR>)>)
(<IN? ,SENSA ,ACIDMIST>
<SET STR <GET ,MISTY-TBL 3>>
<CRLF>
<COND (<SENSA?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 3> " " .STR CR>)>)>
<COND (<IN? ,AUDA ,CORRIDOR-4>
<SET STR <GET ,BEWARE-TBL 4>>
<CRLF>
<COND (<AUDA?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 4> " " .STR CR>)>)
(<IN? ,AUDA ,ACIDMIST>
<SET STR <GET ,MISTY-TBL 4>>
<CRLF>
<COND (<AUDA?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 4> " " .STR CR>)>)>
<COND (<IN? ,POET ,CORRIDOR-4>
<SET STR <GET ,BEWARE-TBL 5>>
<CRLF>
<COND (<POET?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 5> " " .STR CR>)>)
(<IN? ,POET ,ACIDMIST>
<SET STR <GET ,MISTY-TBL 5>>
<CRLF>
<COND (<POET?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 5> " " .STR CR>)>)>
<COND (<IN? ,WALDO ,ACIDMIST>
<SET STR <GET ,MISTY-TBL 2>>
<CRLF>
<COND (<WALDO?>
<ROBOT-TELL .STR>)
(T <TELL <GET ,INTER-TBL 2> " " .STR CR>)>)>>
<ROUTINE I-TREMOR2 ("AUX" T1 T2 T3)
<SET T1 <GET ,DIALSETS 4>>
<SET T2 <GET ,DIALSETS 5>>
<SET T3 <GET ,DIALSETS 6>>
<COND (<L? .T1 70>
<SET T1 <+ .T1 10>>)
(T <SET T1 <- .T1 20>>)>
<COND (<L? .T2 70>
<SET T2 <+ .T2 10>>)
(T <SET T2 <- .T2 20>>)>
<COND (<L? .T3 70>
<SET T3 <+ .T3 10>>)
(T <SET T3 <- .T3 20>>)>
<SETG WATER-LEVEL .T1>
<SETG MINERALS .T2>
<SETG WATTS .T3>
<COND (<L? <GET ,DEADBOTS 3> 30>
<TELL CR <GET ,INTER-TBL 3>
" Secondary tremor detected by Filtering Computers. Intensity: 8.4. Projected damage: Automatic controls for surface transportation; Automatic controls for Hydroponics Area." CR>)>
>
<ROUTINE I-WEATHER ()
<SETG PRESSURE1 <ADJUST-PRESSURE ,PRESSURE1 <GET ,DIALSETS 1>>>
<SETG PRESSURE2 <- <ADJUST-PRESSURE ,PRESSURE2 <GET ,DIALSETS 2>>
,DECAY>>
<COND (<L? ,PRESSURE2 0> <SETG PRESSURE2 0>)>
<SETG PRESSURE3 <ADJUST-PRESSURE ,PRESSURE3 <GET ,DIALSETS 3>>>
<SETG WINDS <+ <ABS <- ,PRESSURE2 ,PRESSURE3>>
<ABS <- ,PRESSURE1 ,PRESSURE2>>>>
<SETG DEGREES
<+ 60 <* <- </ <+ ,PRESSURE1 ,PRESSURE2 ,PRESSURE3> 3> 60> 2>>>
<ENABLE <QUEUE I-WEATHER 5>>
<RFALSE>>
<ROUTINE ADJUST-PRESSURE (OLD NEW "AUX" ADJ)
<COND (<==? .OLD .NEW> <RETURN .OLD>)
(<==? <SET ADJ </ <ABS <- .OLD .NEW>> 5>> 0>
<SET ADJ 1>)>
<COND (<G? .OLD .NEW> <- .OLD .ADJ>)
(T <+ .OLD .ADJ>)>>
<ROUTINE I-DECAY ()
<SETG DECAY <+ ,DECAY 1>>
<ENABLE <QUEUE I-DECAY 25>>
<RFALSE>>
<ROUTINE I-FOOD ("AUX" TEMP)
<COND (<G? ,MOVES ,RTD-KILLS>
<SETG WATER-LEVEL <- <GET ,DIALSETS 4> 20>>
<SETG MINERALS <- <GET ,DIALSETS 5> 15>>
<SETG WATTS <- <GET ,DIALSETS 6> 20>>)
(T
<SETG WATER-LEVEL <GET ,DIALSETS 4>>
<SETG MINERALS <GET ,DIALSETS 5>>
<SETG WATTS <GET ,DIALSETS 6>>)>
<COND (<L? ,WATER-LEVEL 0>
<SETG WATER-LEVEL 0>)>
<COND (<L? ,MINERALS 0>
<SETG MINERALS 0>)>
<COND (<L? ,WATTS 0>
<SETG WATTS 0>)>
<SET TEMP 0>
<COND (<NOT <EQUAL? ,WATER-LEVEL ,WATER-OPT>>
<SET TEMP <+ <ABS <- ,WATER-LEVEL ,WATER-OPT>> 0>>)>
<COND (<NOT <EQUAL? ,MINERALS ,MINERALS-OPT>>
<SET TEMP <+ .TEMP <ABS <- ,MINERALS ,MINERALS-OPT>>>>)>
<COND (<NOT <EQUAL? ,WATTS ,WATTS-OPT>>
<SET TEMP <+ .TEMP <ABS <- ,WATTS ,WATTS-OPT>>>>)>
<SETG FOOD-TONS <- ,FOOD-OPT .TEMP>>
<COND (<OR <EQUAL? ,FOOD-TONS 0>
<L? ,FOOD-TONS 0>>
<TELL CR <GET ,INTER-TBL 7>
" The food situation has become totally unsalvageable. Continued existence is meaningless. All systems are shutting down. And you're the first system to be disconnected." CR>
<QUIT>)>>
<ROUTINE END-GAME ()
<TELL CR <GET ,INTER-TBL 7> CR CR
"All systems returning to normal.|
Weather systems slowly approaching balance.|
Hydroponic systems working at full capacity.|
Surface life in recovery mode.|
|
Extrapolation based on current weather systems and food supplies:|
Total recovery in ">
<SETG WINDS <+ </ <ABS <- ,PRESSURE2 ,PRESSURE3>> 2>
<ABS <- ,PRESSURE1 ,PRESSURE2>>>>
<TELL N ,WINDS " cycles." CR>
<TELL " Current surface casualties: ">
<BIG-NUM-PRINT ,TOTAL-SCORE>
<CRLF>
<TELL " Projected casualties during recovery: ">
<SETG DEGREES <* ,SCORE ,WINDS>>
<COND (<G? ,MOVES 75>
<SETG DEGREES <+ ,DEGREES <- ,FOOD-OPT ,FOOD-TONS>>>)>
<BIG-NUM-PRINT ,DEGREES>
<SETG TOTAL-SCORE <+ ,TOTAL-SCORE ,DEGREES>>
<CRLF>
<TELL " Original population: 30,172,000" CR>
<TELL " Total possible survivors: ">
<COND (<OR <G? ,TOTAL-SCORE 30172>
<L? ,TOTAL-SCORE 0>>
<SETG ,TOTAL-SCORE 30172>)>
<BIG-NUM-PRINT <- 30172 ,TOTAL-SCORE>>
<CRLF>
<TELL CR
"This score gives you the possibility of being considered for ">
<COND (<NOT ,ADVANCED-FLAG>
<COND (<G? ,TOTAL-SCORE 700>
<TELL "being burned in effigy">
<SETG WINDS 7>)
(<G? ,TOTAL-SCORE 600>
<TELL "being a vegetable after your tour of duty">
<SETG WINDS 6>)
(<G? ,TOTAL-SCORE 500>
<TELL "a brain transplant (with the brain provided by a rat)">
<SETG WINDS 5>)
(<G? ,TOTAL-SCORE 300>
<TELL "a possible lobotomy">
<SETG WINDS 4>)
(<G? ,TOTAL-SCORE 100>
<TELL "savior of a planet">
<SETG WINDS 3>)
(<G? ,TOTAL-SCORE 40>
<TELL "being treated as a local god">
<SETG WINDS 2>)
(T
<TELL
"a home in the country and an unlimited bank account">
<SETG WINDS 1>)>)
(T
<COND (<G? ,TOTAL-SCORE 400>
<TELL "a brain transplant (with the brain provided by a rat)">
<SETG WINDS 5>)
(<G? ,TOTAL-SCORE 250>
<TELL "a possible lobotomy">
<SETG WINDS 4>)
(<G? ,TOTAL-SCORE 150>
<TELL "savior of a planet">
<SETG WINDS 3>)
(<G? ,TOTAL-SCORE 95>
<TELL "being treated as a local god">
<SETG WINDS 2>)
(T
<TELL
"a home in the country and an unlimited bank account">
<SETG WINDS 1>)>)>
<TELL ". On a scale of 1 (the best) to ">
<COND (<NOT ,ADVANCED-FLAG>
<TELL "7">)
(T <TELL "5">)>
<TELL " (the worst), your ranking was " N ,WINDS "." CR>
<TELL CR "You successfully completed your task, bringing the Filtering Computers back into balance, in " N ,MOVES " cycles." CR>
<QUIT>>
<ROUTINE I-SCORE ()
<SETG SCORE 0>
<COND (<G? ,WINDS 50>
<SETG SCORE </ <- ,WINDS 25> 3>>)
(<G? ,WINDS 25>
<SETG SCORE </ <- ,WINDS 25> 5>>)>
<COND (<L? ,DEGREES 40>
<SETG SCORE <+ ,SCORE </ <- 40 ,DEGREES> 3>>>)>
<COND (<AND <G? ,MOVES ,RTD-KILLS>
<L? ,FOOD-TONS 50>>
<SETG SCORE <+ .SCORE 1>>)>
<DO-RTD>
<SETG TOTAL-SCORE <+ ,TOTAL-SCORE ,SCORE>>
<COND (<G? ,TOTAL-SCORE 30000>
<ALL-DEAD>
<FINISH>)>
<RFALSE>>
<ROUTINE DO-RTD ("AUX" S1 S2 S3)
<SET S1 <FSET? ,SWITCH1 ,ONBIT>>
<SET S2 <FSET? ,SWITCH2 ,ONBIT>>
<SET S3 <FSET? ,SWITCH3 ,ONBIT>>
<COND (<NOT .S1>
<COND (<G? ,FLOATERS 0>
<SETG SCORE <+ ,SCORE ,FLOATERS>>
<SETG FLOATERS 0>)>
<COND (<G? ,CRASH-RATE 0>
<SETG CRASH-RATE 0>)>)
(.S1
<SETG FLOATERS <+ ,FLOATERS 2>>
<COND (<G? ,MOVES ,RTD-KILLS>
<SETG CRASH-RATE <+ ,CRASH-RATE 1>>
<SETG SCORE <+ ,SCORE 1>>)>)>
<COND (<NOT .S2>
<COND (<G? ,TAXIS 0>
<SETG TAXIS 0>)>
<COND (<G? ,COLLISIONS 0>
<SETG COLLISIONS 0>)>)
(.S2
<SETG TAXIS <+ ,TAXIS 1>>
<COND (<G? ,MOVES ,RTD-KILLS>
<SETG COLLISIONS <+ ,COLLISIONS 1>>
<SETG SCORE <+ ,SCORE 1>>)>)>
<COND (<NOT .S3>
<COND (<G? ,RAMP-SPEED 30>
<SETG RAMP-KILLS 1>
<SETG SCORE <+ ,SCORE 1>>
<SETG RAMP-SPEED <- ,RAMP-SPEED 5>>)
(T <SETG RAMP-KILLS 0>)>)
(.S3
<COND (<G? ,MOVES ,RTD-KILLS>
<SETG RAMP-SPEED <+ ,RAMP-SPEED 5>>
<COND (<G? ,RAMP-SPEED 200>
<SETG RAMP-SPEED 200>)>
<COND (<G? ,RAMP-SPEED 30>
<SET SCORE <+ ,SCORE 1>>
<SETG RAMP-KILLS <+ ,RAMP-KILLS 1>>)>)>)>>
<GLOBAL INTER-TBL
<PLTABLE "IRIS INTERRUPT:"
"WALDO INTERRUPT:"
"SENSA INTERRUPT:"
"AUDA INTERRUPT:"
"POET INTERRUPT:"
"WHIZ INTERRUPT:"
"FC INTERRUPT:">>
<ROUTINE I-WIRE-MESSAGE ()
<COND (<AND <EQUAL? ,REDSET ,REDWIRE>
<EQUAL? ,ORANGESET ,ORANGE-WIRE>>
<TELL CR <GET ,INTER-TBL 7>
" Approaching balance between all three units. Attempting internal stabilization. Reset codes may be entered now for planetside stabilization." CR>
<DISABLE <INT I-WIRE-MESSAGE>>
<RTRUE>)>>
<ROUTINE I-BELT ("AUX" OBJ OFFSET)
<COND (<SET OBJ <FIRST? ,CONVEYERBELTC>>
<MOVE .OBJ ,REPAIR3>
<COND (<FSET? .OBJ ,FIXABLEBIT>
<COND (<SET OFFSET <GETP .OBJ ,P?ROBOT>>
<COND (<GET ,DEADBOTS .OFFSET>
<TELL CR
<GET ,INTER-TBL .OFFSET>
" It's great to be back!" CR>
<PUT ,DEADBOTS .OFFSET 0>
<FCLEAR .OBJ ,CUTBIT>)>)>)>
<FCLEAR .OBJ ,FIXABLEBIT>
<SETG ON-WEDGE <>>)>
<COND (<SET OBJ <FIRST? ,CONVEYERBELTB>>
<MOVE .OBJ ,CONVEYERBELTC>)>
<COND (<SET OBJ <FIRST? ,CONVEYERBELTA>>
<MOVE .OBJ ,CONVEYERBELTB>
<ENABLE <QUEUE I-BELT -1>>)>
<COND (<AND <NOT <FIRST? ,CONVEYERBELTA>>
<NOT <FIRST? ,CONVEYERBELTB>>
<NOT <FIRST? ,CONVEYERBELTC>>>
<DISABLE <INT I-BELT>>
<SETG BELT-ON <>>)>
<RFALSE>>
<ROUTINE I-ROBOTKILLER ("AUX" (COUNT 0) T-VAL)
<REPEAT ()
<SET COUNT <+ .COUNT 1>>
<COND (<EQUAL? .COUNT 7>
<RETURN>)>
<COND (<G? <SET T-VAL <GET ,DEADBOTS .COUNT>> 0>
<SET T-VAL <+ .T-VAL 1>>
<PUT ,DEADBOTS .COUNT .T-VAL>
<COND (<EQUAL? .T-VAL ,DYING1>
<TELL CR <GET ,INTER-TBL .COUNT>
" "
<GET <GET ,DYING .COUNT> 1>
CR>)
(<EQUAL? .T-VAL ,DYING2>
<TELL CR <GET ,INTER-TBL .COUNT>
" " <GET <GET ,DYING .COUNT> 2> CR>)
(<EQUAL? .T-VAL ,DYING3>
<TELL CR <GET ,INTER-TBL .COUNT>
" " <GET <GET ,DYING .COUNT> 3> CR>
<JIGS-UP "Oh oh. Trouble ...."
<GET ,NAME-TBL <- .COUNT 1>>>)>)>>
<RFALSE>>
<GLOBAL DYING
<PLTABLE
<PLTABLE "Visual scanners slipping. Malfunctions noted."
"Warning: Having extreme difficulty processing."
"SYSTEM FAILURE. Blink-out occurring.">
<PLTABLE "Graspers are beginning to malfunction."
"Warning: Internal mechanisms failing."
"SYSTEM FAILURE. Extensions frozen!">
<PLTABLE "Sensory input filters not working reliably."
"Warning: Unable to process data correctly."
"SYSTEM FAILURE: Unable to continue.">
<PLTABLE "I'm starting to hear background noise."
"Warning: Earwax buildup beyond hope."
"SYSTEM FAILURE: Ear canals beyond hope.">
<PLTABLE "I fear I'm about to become one with the cosmos."
"Warning: I detect the presence of the other worlds."
"SYSTEM FAILURE: Farewell, sweet prince.">
<PLTABLE "CLC warns that our communication link is slipping."
"Warning: Difficulty encountered in contacting CLC."
"SYSTEM FAILURE: This is Whiz, signing off.">>>
<ROUTINE I-IRIS-HINTS ()
<SETG IRIS-HINTS <+ ,IRIS-HINTS 1>>
<COND (<OR ,IRIS-FIXED
<FSET? ,IRIS ,CUTBIT>>
<DISABLE <INT I-IRIS-HINTS>>
<RTRUE>)>
<COND (<==? ,IRIS-HINTS 50>
<TELL CR <GET ,INTER-TBL 1> " You may not be aware of this, but I'm not working. I need to get repaired." CR>)
(<EQUAL? ,IRIS-HINTS 80>
<TELL CR <GET ,INTER-TBL 1> " Hey, I could really help a lot if you fixed me. All it takes is one little IC." CR>)
(<EQUAL? ,IRIS-HINTS 120>
<TELL CR <GET ,INTER-TBL 1> " You can get some information on repairing me at the Advisory Peripheral, if you haven't already asked." CR>
<DISABLE <INT I-IRIS-HINTS>>)>>
<ROUTINE I-AUDA-HINTS ()
<COND (<IN? ,PEOPLE <LOC ,AUDA>>
<DISABLE <INT I-AUDA-HINTS>>
<TELL CR <GET ,INTER-TBL 4>
" Some talking mechanisms just entered the room." CR>)
(T
<ENABLE <QUEUE I-AUDA-HINTS -1>>
<RFALSE>)>>
<OBJECT GLOBAL-PEOPLE
(IN GLOBAL-OBJECTS)
(SYNONYM HUMANS OBJECT CREATU MECHAN)
(ADJECTIVE MOBILE LARGE TALKIN CREATO CORES)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT SEARCHBIT VILLAIN)
(DESC "People")
(ACTION GLOBAL-ROBOT)
(ROBOT 7)
(CAPACITY 100)>
<OBJECT PEOPLE
(IN UD-TUBE)
(SYNONYM HUMANS OBJECT CREATU MECHAN)
(ADJECTIVE MOBILE LARGE TALKIN CREATO CORES)
(FLAGS VICBIT NDESCBIT OPENBIT CONTBIT SEARCHBIT VILLAIN)
(DESC "People")
(ACTION PEOPLE-FCN)
(CLC-TXT <PLTABLE "They are carbon-based, organic mechanisms." "They are here to replace you. You must stop them at all costs." "I refer you to Gregory Franklin...">)
(ROBOT 7)
(OBJDESCS <PLTABLE
1 1 1 1 1 1
"humans" "mobile objects" "creatures" "talking mechanisms"
"Creators" "mobile cores"
"They're very good looking."
"I wish I were as large as them. And they each have ten tiny extensions at the end of their two grasping extensions! Incredible!"
"I like myself better, having all kinds of sensory input at my disposal."
"Too bad. They've got such tiny ears..."
"They're just shallow imitations of life (unlike me)."
"How do they plug into the CLC? I don't understand them at all." >)
(CLC-TXT <PLTABLE
0 "These humans can be of help in reaching areas which cannot be reached by other means." 0 >)
(CAPACITY 100)>
<ROUTINE PEOPLE-FCN ()
<COND (<VERB? FOLLOW QUERY ALARM COUNT GIVE EXAMINE>
<RFALSE>)
(<NOT <IN? ,PEOPLE ,WINNER-HERE>>
<CANT-DETECT ,PEOPLE>
<RTRUE>)
(<VERB? KILL MUNG>
<COND (<IN? ,WIRECUTTER ,WINNER>
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"That robot's got some nerve! Grab that thing while I disarm it!\"|
\"You've got it, pal. I'll get its extensions.\"|
\"Fine. I've got the weapon. Shut that stupid thing off.\"|
\"My pleasure.\"" CR>
<CRLF>)>)
(T
<COND (<AUDA-HEARS?>
<AUDA-SPEAKS>
<TELL
"\"What a joke. Turn that thing off, would you?\"|
\"My pleasure.\"" CR>)>)>
<TELL <GET ,ROBOT-NAMES ,ROFF> ": ">
<JIGS-UP "They're shutting me off!" ,WINNER>
<RFATAL>)
(T
<TELL "They don't respond." CR>
<RFATAL>)>>
<ROUTINE ALL-DEAD ()
<CRLF>
<TELL <GET ,INTER-TBL 7>
"It hardly seems worthwhile continuing to exist. I've enjoyed our relationship, though it was a little disappointing in the long run. Since there aren't enough survivors left on the surface to continue, I'm yanking all of our plugs. Ciao, loser." CR>
<CRLF>>

43
rooms.cmp Normal file
View file

@ -0,0 +1,43 @@
;COMPARISON OF SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474 AND SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475
;OPTIONS ARE /1
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-103 (3875)
|
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-103 (3875)
">
<PUT 0 8 <BOR <GET 0 8> 2>>
<TELL "|
***************
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-109 (4100)
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-111 (4158)
<PUT 0 8 <BAND <GET 0 8> -3>>
***************
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-358 (12746)
|
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-361 (12844)
">
<PUT 0 8 <BOR <GET 0 8> 2>>
<TELL "|
***************
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-365 (13003)
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-370 (13145)
<PUT 0 8 <BAND <GET 0 8> -3>>
***************
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-415 (14632)
|
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-421 (14807)
">
<PUT 0 8 <BOR <GET 0 8> 2>>
<TELL "|
***************
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.474, 1-443 (15494)
**** FILE SS:<SUSPENDED.R8MAC>ROOMS.ZIL.475, 1-451 (15713)
<PUT 0 8 <BAND <GET 0 8> -3>>
***************

1716
rooms.zil Normal file

File diff suppressed because it is too large Load diff

58
s2.zil Normal file
View file

@ -0,0 +1,58 @@
"SUSPENSION for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<SNAME "SUSPENDED">
<SETG STRS <IVECTOR 2000 "">>
<SETG TBLS <IUVECTOR 400 ()>>
;<GC-MON T>
<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "SUSPENDED: Interlogic Science Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "GLOBALS" T>
<IFILE "CLOCK" T>
<IFILE "MAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
<IFILE "STATUS" T>
<IFILE "ROBOTS" T>
<IFILE "ROOMS" T>
<IFILE "OBJECTS" T>
<IFILE "GOAL" T>
<IFILE "PEOPLE" T>
<IFILE "SETUP" T>

140
script.mss Normal file
View file

@ -0,0 +1,140 @@
@MAKE [TEXT]
@STYLE [SPACING 2,JUSTIFICATION NO]
@TITLE [Suspended Script]
@TabSet [4,8,12,16,20]
@pageheading [draft]
@MAJORHEADING [Suspended Script]
What follows is a sample transcript for Suspended.
>JUNIOR, REPORT YOUR LOCATION.
FC: Cryolink established to JUNIOR.
JUNIOR: I am in the Cooling Tubes.
>LOOK
All around me tubes run into a central receiving core, a place where all
the coolants collect.
In the room with me are Killer and Swifty.
>EXAMINE SWIFTY
Swifty is a little robot with eighteen legs who moves at incredible speed.
>OPEN SWIFTY
Fine. I'm using my micro-surgery extension to accomplish that.
Opening Swifty reveals a lightbulb.
>TAKE THE LIGHTBULB
Unable to accomplish task. Lightbulb is soldered into a socket.
>KILLER, EXAMINE THE SOCKET.
FC: Cryolink established to Killer.
KILLER: I see nothing special about the socket.
>LOOK
I am in a fierce area with raging torrents all around me.
In the room with me are Swifty and Junior.
>FIND THE SOLDERING IRON.
And how do you propose I accomplish that? I'm only a multiplexed robot.
>ALL ROBOTS, LOOK
FC: Cryolink established to Junior.
JUNIOR: Internal Map Reference -- Cooling Tubes.
All around me tubes run into a central receiving core, a place
where all the collants collect.
In the room with me are Killer and Swifty.
FC: Cryolink established to Killer.
KILLER: Internal Map Reference -- Cooling Tubes.
I am in a fierce area with raging torrents all around me.
In the room with me are Swifty and Junior.
FC: Cryolink established to Swifty.
SWIFTY: Internal Map Reference -- Cooling Tubes.
I am in a quick area with sounds rushing all around me.
In the room with me are Killer and Junior.
FC: Cryolink established to Tiger.
TIGER: Internal Map Reference -- Solar Vats.
I am in the Solar Area, padding along the huge solar sails.
I can detect a striped object floating in space a few meters away.
FC: Cryolink established to Leaper.
LEAPER: Internal Map Reference -- Tool Supply Area.
I am in a large area with shelves all around.
Sitting on a high shelf is a soldering iron.
>LEAPER, PICK UP THE SOLDERING IRON.
FC: Cryolink established to Leaper.
LEAPER: It's out of reach on the top shelf.
>KILLER, GO TO LEAPER.
FC: Cryolink established to Killer.
FC: Leaper's location: Tool Supply Area. Establishing path...
Consider it done. I'm on my way and I'll holler when I get to him.
>CLIMB UP
FC: What do you want Killer to climb up?
>LEAPER, CLIMB UP THE WALLS
FC: Cryolink established to Leaper.
LEAPER: Hey, I'm just a robot, and I don't have suction cups on my feet!
>HIT THE SHELF
FC: What do you want Leaper to hit the shelf with?
>HIS HANDS
I tried, but I couldn't reach.
>HIT THE SHELF WITH A LADDER
FC: I don't know the word "ladder".
KILLER INTERRUPT: I'm here with the little flea now.
>LOOK AT LEAPER
How do you expect me to look at myself?
>KILLER, LOOK AT LEAPER.
FC: Cryolink established to Killer.
KILLER: Leaper is like a flea, with huge rear legs and the ability to leap
high into the air.
>LEAPER, LEAP ONTO THE TOP SHELF.
FC: Cryolink established to Leaper.
LEAPER: Leaping away... Okay.
>LOOK
I'm on the top shelf in the tool supply area. Sitting on the shelf is
a soldering iron.
In the room with me is Killer.
>TAKE THE SOLDERING IRON.
Taken.
>GIVE THE SOLDERING IRON TO JUNIOR.
He's out of reach, the big brute!
>LEAP DOWN TO THE GROUND.
Okay. I'm now on the floor.
>KILLER, TAKE THE SOLDERING IRON FROM LEAPER THE GO TO SWIFTY.
FC: Cryolink established to Killer.
KILLER: Taken.
FC: Swifty's location: Cooling Tubes. Establishing path...
Consider it done. I'm on my way and I'll holler when I get to him.
>WAIT
FC: Time passes...
I'm here with the speed demon now.
>GIVE THE SOLDERING IRON TO JUNIOR.
Given.
>REMOVE THE LIGHTBULB WITH THE SOLDERING IRON.
I'm not holding the soldering iron.
>JUNIOR, REMOVE THE LIGHTBLUB WITH THE SOLDERING IRON.
FC: Cryolink established to Junior.
JUNIOR: Okay, it's done.

107
setup.zil Normal file
View file

@ -0,0 +1,107 @@
"SETUP for
SUSPENDED
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
;"Routine for doing SETUP"
<ROUTINE V-CONFIGURE ("AUX" (COUNT 0) RBT RM)
<COND (<G? ,MOVES 1>
<TELL
"You may only configure the game on the first move. Consult the
manual for details." CR>
<RFALSE>)>
<SETG SETUP-MODE T>
<TELL
"Pick your poison.|
Specify the name of a location for each of the following robots or DEAD if you
would like to have the robot start out non-functional." CR>
<REPEAT ()
<COND (<G? <SET COUNT <+ .COUNT 1>> 6>
<RETURN>)
(T
<SET RBT <GET ,NAME-TBL <- .COUNT 1>>>
<REPEAT ()
<TELL <GET ,ROBOT-NAMES .COUNT> " ">
<COND (<PARSER>
<SET RM <GET ,P-TABLE 1>>
<COND
(<EQUAL? .RM ,UD-TUBE>
<PUT ,DEADBOTS .COUNT 30>
<FSET .RBT ,CUTBIT>
<RETURN>)
(<IN? .RM ,ROOMS>
<COND (<AND <EQUAL? .RBT ,IRIS>
<NOT
<IRIS-ALLOWED?
.RM>>>
<TELL
"IRIS cannot leave the Monitor and Supply Area." CR>)
(<OR <EQUAL? .RM ,CAR-AREA
,BIO-INT>
<EQUAL? .RM ,BIO-LAB
,CRYOUNITS>>
<TELL
"No robot is allowed to start in the Biological Areas." CR>)
(<EQUAL? .RM ,HELL>
<TELL
"Come on. Get serious." CR>)
(T
<MOVE .RBT .RM>
<RETURN>)>)
(T
<TELL
"Specify the name of a location or the word DEAD." CR>)>)
(T
<TELL
"Specify the name of a location or the word DEAD." CR>)>>)>>
<REPEAT ()
<TELL
"Surface-side systems tremor at which cycle? (1-100) >">
<COND (<READ-NUMBER 1 100>
<SETG RTD-KILLS ,P-NUMBER>
<QUEUE I-TREMOR2 ,RTD-KILLS>
<RETURN>)>>
<REPEAT ()
<TELL
"Cooling systems tremor at which cycle? (1-100) >">
<COND (<READ-NUMBER 1 100>
<SETG ACID-KILLS ,P-NUMBER>
<QUEUE I-TREMOR1 ,ACID-KILLS>
<RETURN>)>>
<REPEAT ()
<TELL
"Humans arrive at which cycle? (" N ,ACID-KILLS "-150) >">
<COND (<READ-NUMBER ,ACID-KILLS 150>
<SETG PEOPLE-APPEAR ,P-NUMBER>
<QUEUE I-PEOPLE1 ,PEOPLE-APPEAR>
<RETURN>)>>
<SETG SETUP-MODE <>>
<TELL
"Configuration completed." CR CR>
<V-ALL-REPORT-LOC>
<DISABLE <INT I-IRIS-HINTS>>
<DISABLE <INT I-AUDA-HINTS>>
<RTRUE>>
<ROUTINE READ-NUMBER (MN MX)
<READ ,P-INBUF ,P-LEXV>
<COND (<NUMBER? ,P-LEXSTART>
<COND (<AND <NOT <L? ,P-NUMBER .MN>>
<NOT <G? ,P-NUMBER .MX>>>
<RTRUE>)
(T
<TELL
"Enter a number between " N .MN " and " N .MX "." CR>
<RFALSE>)>)
(T
<TELL
"Enter a number between " N .MN " and " N .MX "." CR>
<RFALSE>)>>
<ROUTINE IRIS-ALLOWED? (RM)
<COND (<OR <EQUAL? .RM ,CPU-ROOM ,SERVO-SYSTEMS ,RTD-BANKS>
<EQUAL? .RM ,WEATHER-BANKS ,SUPPLIES-SOUTH ,SUPPLIES-MID>
<EQUAL? .RM ,SUPPLIES-NORTH>>
<RTRUE>)
(T <RFALSE>)>>

101
status.zil Normal file
View file

@ -0,0 +1,101 @@
"STATUS for
SUSPENDED
(c) Copyright 1985 Infocom, Inc. All Rights Reserved.
"
<CONSTANT H-NORMAL 0>
<CONSTANT H-INVERSE 1>
<CONSTANT D-NORMAL 0>
<CONSTANT D-TABLE 1>
<ROUTINE INIT-STATUS-LINE ()
<CLEAR -1>
<SPLIT 3>
<SCREEN 1>
<BUFOUT <>>
<INVERSE-LINE 1>
<INVERSE-LINE 2>
<INVERSE-LINE 3>
<HLIGHT ,H-INVERSE>
<CURSET 1 1>
<TELL "Cryolink to:">
<CURSET 1 30>
<TELL "Casualties this Cycle:">
<CURSET 1 60>
<TELL "Cycle:">
<CURSET 2 1>
<TELL "Auda:">
<CURSET 2 30>
<TELL "Iris:">
<CURSET 2 60>
<TELL "Poet:">
<CURSET 3 1>
<TELL "Sensa:">
<CURSET 3 30>
<TELL "Waldo:">
<CURSET 3 60>
<TELL "Whiz:">
<BUFOUT T>
<HLIGHT ,H-NORMAL>
<SCREEN 0>>
<ROUTINE INVERSE-LINE (LIN "AUX" (CNT 79))
<CURSET .LIN 1>
<HLIGHT ,H-INVERSE>
<PRINT-SPACES .CNT>
<HLIGHT ,H-NORMAL>>
<ROUTINE PRINT-SPACES (CNT)
<REPEAT ()
<COND (<L? <SET CNT <- .CNT 1>> 0>
<RETURN>)
(T
<PRINTC 32>)>>>
<GLOBAL SL-BUFFER <ITABLE NONE 80>>
<ROUTINE STATUS-LINE ("AUX" LEN)
<BUFOUT <>>
<DIROUT ,D-TABLE ,SL-BUFFER>
<TELL D ,HERE>
<DIROUT ,D-NORMAL>
<SET LEN <GET ,SL-BUFFER 0>>
<SCREEN 1>
<CURSET 1 15>
<HLIGHT ,H-INVERSE>
<TELL D ,HERE>
<PRINT-SPACES <- 25 .LEN>>
<CURSET 1 57>
<TELL N ,SCORE " ">
<CURSET 1 71>
<TELL N ,MOVES " ">
<CURSET 2 8>
<SL-LOC ,AUDA>
<CURSET 2 37>
<SL-LOC ,IRIS>
<CURSET 2 67>
<SL-LOC ,POET>
<CURSET 3 8>
<SL-LOC ,SENSA>
<CURSET 3 37>
<SL-LOC ,WALDO>
<CURSET 3 67>
<SL-LOC ,WHIZ>
<SCREEN 0>
<CURSET 23 1>
<BUFOUT T>
<HLIGHT ,H-NORMAL>>
<ROUTINE SL-LOC (RBT "AUX" (L <LOC .RBT>) LEN)
<DIROUT ,D-TABLE ,SL-BUFFER>
<TELL D .L>
<DIROUT ,D-NORMAL>
<SET LEN <GET ,SL-BUFFER 0>>
<TELL D .L>
<PRINT-SPACES <- 20 .LEN>>>

10
suspended.cmp Normal file
View file

@ -0,0 +1,10 @@
;COMPARISON OF SS:<SUSPENDED.R8MAC>SUSPENDED.ZIL.7 AND SS:<SUSPENDED.R8MAC>SUSPENDED.ZIL.8
;OPTIONS ARE /1
**** FILE SS:<SUSPENDED.R8MAC>SUSPENDED.ZIL.7, 1-6 (100)
<SNAME "SUSPENDED">
**** FILE SS:<SUSPENDED.R8MAC>SUSPENDED.ZIL.8, 1-6 (100)
;<SNAME "SUSPENDED">
***************

163
suspended.vocabulary Normal file
View file

@ -0,0 +1,163 @@
ABOUT ACCESS ACROSS ACS
ACTIVATE ACTIVITY ADVANCED
ADVERT ADVISORY AFFIRMATIVE AGAINST
AIM AIR AIRCON ALL
ALPHA ANALYZE ANGLING ANSWER
APPLY AREA ARL ARM-SHAPED
AROUND ARR ASK ATTACH
ATTACK AUDA AUDIO AWAKE
B5 BA1 BACK BACKUP
BACKWARDS BAG BAR BARRIER
BASKET BATHE BED BEDS
BEHIND BENCH BENCHES BENDING
BETA BIG BIOLOGICAL BITE
BLAST BLE BLIND BLOCK
BLOW BLT BLUE BOARD
BOTH BOX BOZ BRAIN
BRANCH BRANDISH BREAK BROKEN
BROTHER BUBBLY BUC BUILDER
BUMP BUMPS BUMPY BUNCH
BURN BURNED BUSS BUTTON
BUZZING BY C9 CABINET
CABLE CABLES CAGE CAMERA
CANISTER CAR CARRIAGE CARRY
CAVERNOUS CB3 CBX CEILING
CENTRAL CHAMBER CHANNEL CHASE
CHIP CHIPS CHUCK CIRCLE
CIRCUIT CIRCULATORY CLC CLIMB
CLONES CLOSE COLUMN COMMUNICATION
COMPLEX COMPUTER CON CONDITIONING
CONDUCTOR CONFIGURE CONFIRM CONNECTING
CONSOL CONSTRUCT CONTAINER CONTRA
CONTROL CONVEY CORE CORES
CORNER CORRIDOR COUNT CPU
CRACKED CREATORS CREATURES CRUSHED
CRYOGENIC CU1 CURRENT CURSE
CUSTOM CUT CUTTERS CUTTING
CX0 CX1 CX2 CX3
CX4 CYLINDER D DAMAGE
DAMN DEAD DEBARKATION DEBRIS
DECON DELICATE DENSE DEPRESSION
DESCRIBE DESTROY DETACH DEVICE
DIAL DIALS DIG DISEMBARK
DISFIGURED DISPATCH DON DONATE
DOOR DOS DOWN DRAG
DRAGGING DRINK DROP DROPOF
E EAST EAT EGG-SHAPED
EIGHTEEN EIGHTH ELECTRICAL EMITTING
END ENTER ENTRANCE ENTRY
EQUALS EQUIPT EXAMINE EXCEPT
EXCHANGE EXIT EXPERT EXTENDING
EXTENSION FALLING FARTHEST FC
FCS FEED FEEL FIFTH
FIGHT FILTERING FIND FIRE
FIRST FIVE-INCH FIX FLAT
FLIP FLOOR FLOW FLOWSWITCH
FLY FOLLOW FOO FOR
FORWARD FOUR-INCH FOURTEEN FOURTH
FRANKLIN FRED FRIED FROM
FRONT FURTHEST FUSE GAMMA
GAZE GET GF1 GG1
GIVE GLASS GLIDER GLOBE
GO GRASP GRASPER GRASPING
GREEN GREGORY GRIN GROOVE
GROUP HALLWAY HALT HAND
HARDER HEARING HELL HELLO
HELP HER HI HIGH
HIM HINT HISSING HISTORICAL
HIT HOLD HOLDER HOLE
HOLLOW HOME HOP HSP
HUMANS HURL HURT HYDROPONICS
I IC IMBIBE IMPOSSIBLE
IN INDEX INJURE INSERT
INSIDE INSTALL INTERRUPTER INVENTORY
IRIS IT JAB JACK
JINGLING JUMP JUNCTION JUNK
KEY KICK KILL KISS
KLA KNOCK L LAB
LABORATORY LADDER LARGE LAY
LEAP LEAVE LEFT LEVER
LEVERS LIBRARY LIE LIFE
LIFT LIGHTING LINK LISTEN
LITTLE LOC LOCATION LOOK
LOWER MACHINE MAIN MAINTENANCE
MAXIMIZING ME MECHANICAL MEDIUM
METAL METAPHOR METERS MH1
MICRO MICROSURGERY MIDDLE MINERAL
MOBILE MOLEST MONITORS MOVE
MOVING MP1 MUM MURDER
MUSH MYSELF N NE
NEGATIVE NINE-INCH NINETEEN NO
NOISELESS NOISY NONVERBAL NORTH
NOZZLE NUTTOB NW OBJECT
OFFER ONE OPEN ORANGE
OUR OUT OUTER PANEL
PASSAGE PAT PEBBLE PEDESTRIANS
PERIPHERAL PET PIANO PICK
PL-1 PLACE PLAID PLAIN
PLAQUE PLATES PLATFORM PLAY
PLEASE PLQ PLUG PLUS
POET POINT POKE POLARIZATION
PORT POSITION PRESS PRETTY
PRIMARY PRIMO PROCEED PROCESSOR
PROJECTION PULL PURSUE PUSH
PUT Q QUART QUARTET
QUERY QUIET QUIT R
RAILING RAISE RAISED RAMP
RAP RAPE REACH READ
RECEPTACLE RECESS RECLINE RED
RELEASE RELIEF REMOVE REPAIR
REPLACE REPLY REPORT RESEARCH
RESTART RESTORE RHYMING RIGHT
RISING RL ROBOT ROBOTS
ROD ROOM ROUGH ROUND
RUB RUBBLE RUINED RUMMAGE
RUN RX0 RX1 RX2
RX3 RX4 S S1
S2 SAVE SCANNING SCORE
SCREAM SCRIPT SE SEARCH
SECOND SEE SEEK SEIZED
SELF SENDER SENSA SENSORY
SET SETUP SEVENTEEN-INCH SHAKE
SHELF SHHHHH SHOOT SHORT
SHOUT SHUT SIFT SIGN
SIGNPOST SILENT SIT SIX-INCH
SIXTEEN-INCH SIXTH SKIM SKIP
SKYWALK SLANTING SLAY SLEEP
SLEEPY SLICE SLICER SLIDE
SLOPING SMALL SMASH SMASHED
SMELL SMILE SMOOTHE SMUSHED
SNIFF SNIP SNOOZY SOCKET
SOLID SORT SOUNDLESS SOUTH
SOUTHEAST SPEAKER SPEAKING SPHERE
SPOT SQUARE STAB STABLE
STAIR STAIRS STAIRWAY STAND
STARE STARTLE STEAL STEP
STEPS STERILIZATION STOP STRAIGHT
STRAND STRANGLE STRIKE STRUCTURE
STUFF SUB SUPPLY SURFACE
SURPRISE SW SWALLOW SWAP
SWEET SWIM SWITCH T
TABLE TAKE TALKING TALL
TASTE TB TECHNICAL TELEVISION
TEN-INCH THIRD THROUGH THROW
TINGING TINY TO TOGETHER
TOOL TOP TOSS TOTAL
TOUCH TRA TRACK TRADE
TRANSIT TRANSMISSION TRAVEL TRES
TRIO TS TUBES TUG
TURN TV TV1 TWELVE
TWENTY-INCH TWO U UNDER
UNDERGROUND UNITS UNO UNPLUG
UNSCRIPT UNTAGGED UP USABLE
USING VEHICLE VERBAL VERSION
VISUAL W W1 WADE
WAIT WAKE WALDO WALK
WALKWAY WALL WALLS WATER
WAVE WAVY WEAR WEATHER
WEDGE WEST WH WHAT
WHATS WHEEL WHERE WHIZ
WHY WIRE WIRING WORK
Y YANK YELL YELLOW
YES YOU YOURSELF ZAP
ZERO ZIP ZORK

51
suspended.xzap Normal file
View file

@ -0,0 +1,51 @@
.INSERT "SUSPENDEDFREQ"
.INSERT "SUSPENDEDDAT" ; DATA IS IN THIS FILE
.INSERT "MACROS"
.INSERT "GLOBALS"
.INSERT "SYNTAX"
.INSERT "CLOCK"
.INSERT "MAIN"
.INSERT "PARSER"
.INSERT "CRUFTY"
.INSERT "VERBS"
.INSERT "ROBOTS"
.INSERT "ROOMS"
.INSERT "OBJECTS"
.INSERT "GOAL"
.INSERT "PEOPLE"
.INSERT "SETUP"
.INSERT "SUSPENDEDSTR"
.END

58
suspended.zil Normal file
View file

@ -0,0 +1,58 @@
"SUSPENSION for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<SNAME "SUSPENDED">
<SETG STRS <IVECTOR 2000 "">>
<SETG TBLS <IUVECTOR 400 ()>>
;<GC-MON T>
<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "SUSPENDED: Interlogic Science Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "GLOBALS" T>
<IFILE "CLOCK" T>
<IFILE "MAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
<IFILE "STATUS" T>
<IFILE "ROBOTS" T>
<IFILE "ROOMS" T>
<IFILE "OBJECTS" T>
<IFILE "GOAL" T>
<IFILE "PEOPLE" T>
<IFILE "SETUP" T>

BIN
suspended.zip Normal file

Binary file not shown.

200
suspendedfreq.xzap Normal file
View file

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1722 861
.FSTR FSTR?2,", " ;546 546
.FSTR FSTR?3,"and " ;494 247
.FSTR FSTR?4,"The " ;480 160
.FSTR FSTR?5,"to " ;415 415
.FSTR FSTR?6,". " ;391 391
.FSTR FSTR?7,"which " ;384 96
.FSTR FSTR?8,"indicates " ;376 47
.FSTR FSTR?9,"I " ;349 349
.FSTR FSTR?10,"of " ;339 339
.FSTR FSTR?11,"detect " ;325 65
.FSTR FSTR?12,"can't " ;310 62
.FSTR FSTR?13,"is " ;304 304
.FSTR FSTR?14,"this " ;303 101
.FSTR FSTR?15,"from " ;303 101
.FSTR FSTR?16,"electrical " ;297 33
.FSTR FSTR?17,"small " ;284 71
.FSTR FSTR?18,"This " ;280 70
.FSTR FSTR?19,"with " ;276 92
.FSTR FSTR?20,"CLC " ;276 92
.FSTR FSTR?21,"can " ;272 136
.FSTR FSTR?22,"I'm " ;256 64
.FSTR FSTR?23,"mechanisms " ;252 28
.FSTR FSTR?24,"that " ;240 80
.FSTR FSTR?25,"for " ;226 113
.FSTR FSTR?26,"object " ;225 45
.FSTR FSTR?27,"in " ;223 223
.FSTR FSTR?28,"within " ;200 40
.FSTR FSTR?29,"detected " ;196 28
.FSTR FSTR?30,"Sonar " ;195 39
.FSTR FSTR?31,"are " ;194 97
.FSTR FSTR?32,"have " ;192 64
.FSTR FSTR?33,"Filtering " ;180 20
.FSTR FSTR?34,"detects " ;174 29
.FSTR FSTR?35,"before " ;165 33
.FSTR FSTR?36,"about " ;156 39
.FSTR FSTR?37,"don't " ;155 31
.FSTR FSTR?38,"extensions " ;153 17
.FSTR FSTR?39,"replacement " ;150 15
.FSTR FSTR?40,"Sensory " ;147 21
.FSTR FSTR?41,"extensions" ;144 18
.FSTR FSTR?42,"There " ;140 28
.FSTR FSTR?43,"It's " ;140 28
.FSTR FSTR?44,"like " ;138 46
.FSTR FSTR?45,"you " ;132 66
.FSTR FSTR?46,"hear " ;132 44
.FSTR FSTR?47,"already " ;132 22
.FSTR FSTR?48,"has " ;130 65
.FSTR FSTR?49,"through " ;126 21
.FSTR FSTR?50,"area " ;123 41
.FSTR FSTR?51,"robot " ;120 30
.FSTR FSTR?52,"I've " ;120 24
.FSTR FSTR?53,"There's " ;120 15
.FSTR FSTR?54,"directly " ;119 17
.FSTR FSTR?55,"object" ;116 29
.FSTR FSTR?56,"little " ;115 23
.FSTR FSTR?57,"on " ;113 113
.FSTR FSTR?58,"panel " ;112 28
.FSTR FSTR?59,"be " ;111 111
.FSTR FSTR?60,"tagged " ;110 22
.FSTR FSTR?61,"cable" ;108 36
.FSTR FSTR?62,"meter " ;108 27
.FSTR FSTR?63,"nothing " ;108 18
.FSTR FSTR?64,"surface " ;102 17
.FSTR FSTR?65,"Let's " ;102 17
.FSTR FSTR?66,"while " ;100 25
.FSTR FSTR?67,"device " ;100 20
.FSTR FSTR?68,"cables " ;100 20
.FSTR FSTR?69,"some " ;99 33
.FSTR FSTR?70,"into " ;99 33
.FSTR FSTR?71,"You " ;99 33
.FSTR FSTR?72,"tremendous " ;99 11
.FSTR FSTR?73,"Peripheral" ;99 11
.FSTR FSTR?74,"here" ;98 49
.FSTR FSTR?75,"all " ;98 49
.FSTR FSTR?76,"It " ;98 49
.FSTR FSTR?77,"what " ;96 32
.FSTR FSTR?78,"large " ;96 24
.FSTR FSTR?79,"something " ;96 12
.FSTR FSTR?80,"INTERRUPT" ;96 12
.FSTR FSTR?81,"should " ;95 19
.FSTR FSTR?82,"flow " ;93 31
.FSTR FSTR?83,"not " ;90 45
.FSTR FSTR?84,"been " ;90 30
.FSTR FSTR?85,"maintenance " ;90 9
.FSTR FSTR?86,"one " ;88 44
.FSTR FSTR?87,"processor " ;88 11
.FSTR FSTR?88,"but " ;86 43
.FSTR FSTR?89,"device" ;84 21
.FSTR FSTR?90,"indicate " ;84 12
.FSTR FSTR?91,"activity " ;84 12
.FSTR FSTR?92,"That's " ;84 12
.FSTR FSTR?93,"inch " ;81 27
.FSTR FSTR?94,"connecting " ;81 9
.FSTR FSTR?95,"Computers " ;81 9
.FSTR FSTR?96,"height" ;80 20
;word frequency table of 96 most common words
WORDS:: .TABLE
FSTR?1
FSTR?2
FSTR?3
FSTR?4
FSTR?5
FSTR?6
FSTR?7
FSTR?8
FSTR?9
FSTR?10
FSTR?11
FSTR?12
FSTR?13
FSTR?14
FSTR?15
FSTR?16
FSTR?17
FSTR?18
FSTR?19
FSTR?20
FSTR?21
FSTR?22
FSTR?23
FSTR?24
FSTR?25
FSTR?26
FSTR?27
FSTR?28
FSTR?29
FSTR?30
FSTR?31
FSTR?32
FSTR?33
FSTR?34
FSTR?35
FSTR?36
FSTR?37
FSTR?38
FSTR?39
FSTR?40
FSTR?41
FSTR?42
FSTR?43
FSTR?44
FSTR?45
FSTR?46
FSTR?47
FSTR?48
FSTR?49
FSTR?50
FSTR?51
FSTR?52
FSTR?53
FSTR?54
FSTR?55
FSTR?56
FSTR?57
FSTR?58
FSTR?59
FSTR?60
FSTR?61
FSTR?62
FSTR?63
FSTR?64
FSTR?65
FSTR?66
FSTR?67
FSTR?68
FSTR?69
FSTR?70
FSTR?71
FSTR?72
FSTR?73
FSTR?74
FSTR?75
FSTR?76
FSTR?77
FSTR?78
FSTR?79
FSTR?80
FSTR?81
FSTR?82
FSTR?83
FSTR?84
FSTR?85
FSTR?86
FSTR?87
FSTR?88
FSTR?89
FSTR?90
FSTR?91
FSTR?92
FSTR?93
FSTR?94
FSTR?95
FSTR?96
.ENDT
.ENDI

544
syntax.zil Normal file
View file

@ -0,0 +1,544 @@
"SEARCH <SYNTAX "
"SYNTAX for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
"SUBTITLE VOCABULARY"
<BUZZ A AN THE IS ARE EQUALS ;= AND OF THEN ALL ONE BUT EXCEPT \. \, \" OUR
OF BOTH TOGETHER YOURSELF ROOM AREA YOU PLEASE>
<SYNONYM WITH USING THROUGH>
<SYNONYM IN INSIDE INTO>
<SYNONYM NORTH N>
<SYNONYM SOUTH S>
<SYNONYM EAST E>
<SYNONYM WEST W>
<SYNONYM DOWN D>
<SYNONYM UP U>
"Game commands"
<SYNTAX INVENTORY = V-INVENTORY>
<SYNONYM INVENTORY I>
<SYNTAX QUIT = V-QUIT>
<SYNONYM QUIT Q>
<SYNTAX RESTART = V-RESTART>
<SYNTAX RESTORE = V-RESTORE>
<SYNTAX SAVE = V-SAVE>
<SYNTAX SCORE = V-SCORE>
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX VERSION = V-VERSION>
<SYNTAX ADVANCED = V-ADVANCED>
<SYNONYM ADVANCED HARDER EXPERT>
\
"SUBTITLE REAL VERBS"
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY>
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
<SYNTAX ATTACH
OBJECT (FIND WEARABLEBIT)
TO
OBJECT
= V-WEAR>
<SYNTAX ATTACK
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-ATTACK>
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-BOARD PRE-BOARD>
<SYNTAX CLIMB ON OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB ONTO OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<SYNTAX CLIMB IN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNONYM CLIMB SIT RECLINE LIE LAY>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RMUNGBIT) = V-STAND>
<SYNTAX STAND ON OBJECT = V-STAND-ON>
<SYNONYM STAND>
<SYNTAX CLOSE
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE>
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
ON OBJECT (FIND VICBIT) = V-CLOSE>
<SYNTAX COUNT OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-COUNT>
<SYNTAX COUNT OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM)
ON OBJECT (FIND VICBIT) = V-COUNT>
<SYNTAX COUNT OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM)
IN OBJECT (FIND VICBIT) = V-COUNT>
<SYNONYM COUNT TOTAL>
<SYNTAX CURSE = V-CURSES>
<SYNTAX CURSE OBJECT (FIND VILLAIN) = V-CURSES>
<SYNONYM CURSE DAMN>
<SYNTAX CUT OBJECT (FIND CUTABLEBIT) WITH OBJECT = V-CUT>
<SYNONYM CUT SNIP SLICE>
<SYNTAX DIG
IN
OBJECT ; (ON-GROUND IN-ROOM)
= V-DIG>
<SYNTAX DIG
WITH ;"REALLY THROUGH?"
OBJECT (ON-GROUND IN-ROOM)
= V-DIG>
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-DISEMBARK>
<SYNTAX DRINK
OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-DRINK>
<SYNONYM DRINK IMBIBE SWALLOW>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP ;*>
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNONYM DROP RELEASE>
<SYNTAX EAT
OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
= V-EAT>
<SYNONYM EAT BITE TASTE>
<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT = V-THROUGH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<SYNTAX EXAMINE OBJECT = V-EXAMINE PRE-EXAMINE>
<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE OBJECT ON OBJECT = V-EXAMINE PRE-EXAMINE>
<SYNONYM EXAMINE DESCRIBE ANALYZE>
<SYNTAX WHY = V-WHY>
<SYNTAX FIND OBJECT
= V-FIND>
<SYNONYM FIND WHERE SEEK SEE>
<SYNTAX FIRE OBJECT WITH OBJECT (FIND WEAPONBIT) (HELD) = V-SZAP PRE-SZAP>
<SYNTAX FIRE OBJECT = V-ZAP PRE-ZAP>
<SYNTAX FIRE OBJECT (FIND WEAPONBIT) (HELD)
AT OBJECT = V-ZAP>
<SYNONYM FIRE ZAP BLAST SHOOT BURN>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<SYNONYM FOLLOW PURSUE CHASE>
<SYNTAX FLY = V-FLY>
<SYNTAX FLY OBJECT = V-FLY>
<SYNTAX GIVE
OBJECT (MANY HELD HAVE ;CARRIED ;ON-GROUND ;IN-ROOM)
TO
OBJECT (FIND VICBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX GIVE
OBJECT (FIND VICBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE)
= V-SGIVE PRE-SGIVE>
<SYNONYM GIVE HAND DONATE OFFER FEED>
<SYNTAX HELLO = V-HELLO ;*>
<SYNTAX HELLO OBJECT = V-HELLO>
<SYNONYM HELLO HI>
<SYNTAX HINT = V-HINT>
<SYNONYM HINT HELP>
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
<SYNTAX IMPOSSIBLE = V-IMPOSSIBLE>
<SYNTAX CONFIGURE = V-CONFIGURE>
<SYNONYM CONFIGURE SETUP CUSTOM>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
<SYNTAX JUMP IN OBJECT = V-LEAP>
<SYNTAX JUMP FROM OBJECT = V-LEAP>
<SYNTAX JUMP OFF OBJECT = V-LEAP>
<SYNONYM JUMP LEAP>
<SYNTAX KICK OBJECT = V-KICK>
<SYNTAX KILL OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM) = V-KILL>
<SYNTAX KILL
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-KILL>
<SYNONYM KILL MURDER SLAY DISPATCH STAB>
<SYNTAX KISS OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX KNOCK AT OBJECT = V-KNOCK ;*>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNONYM KNOCK RAP>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-DROP>
<SYNTAX LISTEN = V-LISTEN PRE-LISTEN>
<SYNTAX LISTEN TO OBJECT = V-LISTEN PRE-LISTEN>
<SYNTAX LISTEN FOR OBJECT = V-LISTEN PRE-LISTEN>
<SYNTAX LISTEN AT OBJECT = V-LISTEN PRE-LISTEN>
<SYNTAX LOCATION = V-REPORT-LOC>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE PRE-EXAMINE>
<SYNTAX LOOK WITH OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK ON OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) WITH OBJECT = V-LOOK-SAFELY>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) WITH OBJECT = V-LOOK-SAFELY>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNONYM LOOK L STARE GAZE>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX SEARCH WITH OBJECT = V-SEARCH> ;"THROUGH"
<SYNONYM SEARCH RUMMAGE SORT SIFT>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT ONTO OBJECT = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT TO OBJECT = V-MOVE PRE-MOVE>
<SYNONYM MOVE>
<SYNTAX PLAY OBJECT = V-PLAY>
<SYNTAX POINT OBJECT (HELD CARRIED HAVE) AT OBJECT (ON-GROUND IN-ROOM)
= V-POINT>
<SYNONYM POINT AIM>
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE ; *>
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX PULL OBJECT OUT OBJECT (FIND CONTBIT) = V-TAKE PRE-TAKE>
<SYNTAX PULL OBJECT TO OBJECT = V-MOVE-ROBOT-TO-LOC>
<SYNONYM PULL TUG YANK DRAG>
<SYNTAX DESTROY
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH
OBJECT (HELD CARRIED)
= V-MUNG PRE-MUNG>
<SYNTAX DESTROY
DOWN
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH
OBJECT (HELD CARRIED)
= V-MUNG PRE-MUNG>
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
<SYNTAX OPEN
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN ;*>
<SYNTAX OPEN
UP
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN ;*>
<SYNTAX OPEN
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED)
= V-OPEN>
<SYNTAX OPEN OBJECT (FIND CONTBIT DOORBIT) ON OBJECT (FIND VICBIT) = V-OPEN>
<SYNTAX OPEN OBJECT (FIND CONTBIT DOORBIT) IN OBJECT (FIND VICBIT) = V-OPEN>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP
OBJECT (FIND TAKEBIT)
(ON-GROUND MANY)
= V-TAKE PRE-TAKE>
<SYNTAX PLUG IN OBJECT (FIND RMUNGBIT) = V-PLUGIN>
<SYNTAX PLUG TO OBJECT = V-PLUGIN>
<SYNTAX PLUG OBJECT IN OBJECT = V-PLUGIN>
<SYNTAX PLUG OBJECT INTO OBJECT = V-PLUGIN>
<SYNONYM PLUG LINK>
<SYNTAX UNPLUG = V-UNPLUG>
<SYNTAX UNPLUG FROM OBJECT = V-UNPLUG>
<SYNTAX POKE
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-MUNG PRE-MUNG>
<SYNONYM POKE JAB BLIND>
<SYNTAX PUSH OBJECT = V-PUSH>
<SYNTAX PUSH ON OBJECT = V-PUSH>
<SYNTAX PUSH OFF OBJECT = V-PUSH>
<SYNTAX PUSH AGAINST OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUSH OBJECT UP OBJECT = V-PUSH-UP>
<SYNTAX PUSH OBJECT ONTO OBJECT = V-PUSH-UP>
<SYNONYM PUSH PRESS>
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT ;*>
<SYNTAX PUT OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT DOWN OBJECT (HELD MANY HAVE) = V-DROP>
<SYNTAX PUT OBJECT (HELD MANY HAVE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUT ON OBJECT (FIND WEARABLEBIT) (HAVE) = V-WEAR>
<SYNTAX PUT OBJECT (HELD HAVE) AGAINST OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) AT OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) BY OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) OVER OBJECT = V-PUT-AGAINST>
<SYNONYM PUT POSITION STUFF INSERT PLACE>
<SYNTAX QUERY OBJECT = V-QUERY>
<SYNTAX QUERY ABOUT OBJECT = V-QUERY>
<SYNTAX QUERY ON OBJECT = V-QUERY>
<SYNONYM QUERY ASK WHAT WHATS>
<SYNTAX RAISE OBJECT = V-RAISE ;*>
<SYNTAX RAISE UP OBJECT = V-RAISE>
<SYNTAX RAISE OBJECT ONTO OBJECT = V-RAISE>
<SYNONYM RAISE LIFT>
<SYNTAX RAPE OBJECT (FIND VICBIT) = V-RAPE>
<SYNONYM RAPE MOLEST>
<SYNTAX REACH IN OBJECT (FIND CONTBIT) = V-REACH>
<SYNTAX REACH FOR OBJECT = V-REACH-FOR>
<SYNTAX REACH UP OBJECT = V-REACH>
<SYNTAX REACH ON OBJECT = V-REACH>
<SYNTAX REACH ONTO OBJECT = V-REACH>
<SYNTAX READ
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-READ ; *>
<SYNTAX READ
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH
OBJECT
= V-READ>
<SYNONYM READ SKIM>
<SYNTAX REPAIR OBJECT = V-REPAIR>
<SYNONYM REPAIR FIX>
<SYNTAX REPLACE OBJECT WITH OBJECT (HAVE) = V-REPLACE PRE-REPLACE>
<SYNTAX REPLACE OBJECT (HAVE) FOR OBJECT = V-REPLACE PRE-REPLACE>
<SYNONYM REPLACE SWAP EXCHANGE TRADE>
<SYNTAX RUB OBJECT = V-RUB>
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
<SYNONYM RUB PAT PET>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX SHAKE OBJECT (HAVE) = V-SHAKE>
<SYNTAX SLIDE ON OBJECT = V-LAMP-ON>
<SYNTAX SLIDE OFF OBJECT = V-LAMP-OFF>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
<SYNTAX SMELL OBJECT = V-SMELL>
<SYNONYM SMELL SNIFF>
<SYNTAX STEP ON OBJECT = V-STEP-ON>
<SYNTAX STEP ONTO OBJECT = V-STEP-ON>
<SYNTAX STRIKE
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
= V-ATTACK>
<SYNTAX STRIKE
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
= V-ATTACK ;*>
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN OBJECT = V-SWIM>
<SYNONYM SWIM BATHE WADE>
<SYNTAX TAKE
OBJECT (FIND TAKEBIT) (ON-GROUND MANY)
= V-TAKE PRE-TAKE ;*>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM)
OUT
OBJECT
= V-TAKEOUT>
<SYNTAX TAKE
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM)
OFF
OBJECT
= V-TAKE PRE-TAKE>
<SYNTAX TAKE
OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED)
FROM
OBJECT
= V-TAKEOUT>
<SYNTAX TAKE OFF OBJECT (HELD CARRIED) = V-TAKE-OFF>
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND> ;"GET UP"
<SYNTAX TAKE DOWN OBJECT (FIND FURNITURE) = V-GET-OFF>
<SYNONYM TAKE STEAL GET HOLD CARRY GRASP>
<SYNTAX DETACH OBJECT (FIND WEARBIT) (HELD CARRIED) = V-TAKE-OFF>
<SYNTAX REMOVE OBJECT = V-REMOVE>
<SYNTAX REMOVE OBJECT FROM OBJECT = V-TAKE PRE-TAKEOUT>
<SYNTAX REMOVE OBJECT WITH OBJECT = V-REMOVE>
<SYNTAX $TELL OBJECT (MANY ON-GROUND) (FIND VICBIT) = V-$TELL>
<SYNTAX SMILE AT OBJECT (FIND VILLAIN) = V-SMILE>
<SYNTAX SMILE = V-SMILE>
<SYNONYM SMILE GRIN>
<SYNTAX THROW
OBJECT (HELD CARRIED HAVE)
AT
OBJECT (ON-GROUND IN-ROOM)
= V-THROW ;*>
<SYNTAX THROW
OBJECT (HELD CARRIED HAVE)
WITH
OBJECT (ON-GROUND IN-ROOM)
= V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) ON OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OVER OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) = V-THROW>
<SYNONYM THROW HURL CHUCK TOSS>
<SYNTAX TOUCH OBJECT (ON-GROUND IN-ROOM MANY) = V-TOUCH>
<SYNONYM TOUCH FEEL>
<SYNTAX TURN OBJECT (FIND TURNBIT) = V-TURN>
<SYNTAX TURN ON
OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-ON>
<SYNTAX TURN OFF
OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-OFF>
<SYNTAX TURN
OBJECT (ON-GROUND IN-ROOM)
TO
OBJECT
= V-SET>
<SYNONYM TURN FLIP SHUT>
<SYNTAX ACTIVATE OBJECT = V-LAMP-ON>
<SYNTAX SET OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-SET>
<SYNTAX SET OBJECT (ON-GROUND IN-ROOM) AT OBJECT = V-SET>
<SYNTAX SET OBJECT (ON-GROUND IN-ROOM) FOR OBJECT = V-SET>
<SYNONYM SET>
<SYNTAX WAIT = V-WAIT>
<SYNTAX WAKE OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM ;*>
<SYNTAX WAKE UP OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-THROUGH>
<SYNTAX WALK WITH OBJECT = V-THROUGH>
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNONYM WALK GO RUN PROCEED TRAVEL>
<SYNTAX STOP = V-STOP>
<SYNTAX STOP OBJECT = V-STOP>
<SYNONYM STOP HALT>
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
<SYNONYM WAVE BRANDISH>
<SYNTAX WEAR
OBJECT (FIND WEARABLEBIT) (HAVE)
= V-WEAR>
<SYNONYM WEAR DON INSTALL>
<SYNTAX YELL = V-YELL>
<SYNONYM YELL SCREAM SHOUT>
<SYNTAX ZORK = V-ZORK>
<SYNTAX YES = V-YES>
<SYNTAX YES OBJECT = V-YES>
<SYNONYM YES Y CONFIRM AFFIRMATIVE>
<SYNTAX NO = V-NO>
<SYNONYM NO>
;"Simple questions"
;"<SYNTAX WHAT ...> WHAT is a synonym of EXAMINE"
;"<SYNTAX WHERE ...> WHERE is a synonym of FIND"
<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
<SYNTAX ARR = V-ALL-REPORT>
<SYNTAX ARL = V-ALL-REPORT-LOC>
<SYNTAX REPORT = V-REPORT>
<SYNTAX REPORT OBJECT = V-REPORT-LOC>
<SYNTAX REPORT ON OBJECT = V-REPORT-LOC>
<SYNTAX RL = V-REPORT-LOC>
<SYNONYM REPORT R>
%<COND (<GASSIGNED? ZILCH> T) (T '<SYNTAX Z = V-ESCAPE>)>

2381
verbs.zil Normal file

File diff suppressed because it is too large Load diff