Solid-Gold Edition

This commit is contained in:
historicalsource 2019-04-18 23:01:30 -04:00
commit c858e1e756
41 changed files with 50250 additions and 0 deletions

238
earth.zabstr Normal file
View File

@ -0,0 +1,238 @@
<OBJECT HOME (LOC LOCAL-GLOBALS) (DESC "your home") (SYNONYM HOME) (ADJECTIVE
MY YOUR) (FLAGS NARTICLEBIT) (ACTION HOME-F)>
<DEFINE-ROUTINE HOME-F>
<OBJECT HOUSE (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM HOUSE) (ADJECTIVE MY
YOUR) (FLAGS NARTICLEBIT) (ACTION HOUSE-F)>
<DEFINE-ROUTINE HOUSE-F>
<OBJECT RUBBLE (LOC LOCAL-GLOBALS) (DESC "pile of rubble") (SYNONYM PILE RUBBLE
DEBRIS) (FLAGS NDESCBIT) (ACTION HOME-F)>
<DEFINE-ROUTINE I-HOUSEWRECK>
<DEFINE-ROUTINE BETTER-LUCK>
<GLOBAL HOUSE-DEMOLISHED <>>
<GLOBAL HEADACHE T>
<GLOBAL SLEEVE-TIED <>>
<OBJECT HANGOVER (LOC GLOBAL-OBJECTS) (DESC "splitting headache") (SYNONYM
HEADACHE HANGOVER THROBBER) (ADJECTIVE SPLITTING BIG BLINDING) (ACTION
HANGOVER-F)>
<DEFINE-ROUTINE HANGOVER-F>
<ROOM BEDROOM (LOC ROOMS) (SYNONYM TRAVEL) (ADJECTIVE TIME) (DESC "Bedroom") (
SOUTH PER BEDROOM-EXIT-F) (OUT PER BEDROOM-EXIT-F) (DOWN PER BEDROOM-EXIT-F) (
FLAGS RLANDBIT) (GLOBAL HOUSE HOME GLOBAL-BED BULLDOZER WINDOW STAIRS
BEDROOM-DOOR THIRD-PLANET WATER) (ACTION BEDROOM-F)>
<OBJECT BEDROOM-PSEUDO (LOC BEDROOM) (SYNONYM BEDROOM) (ADJECTIVE SMALL) (DESC
"bedroom") (FLAGS NDESCBIT) (ACTION GLOBAL-ROOM-F)>
<DEFINE-ROUTINE BEDROOM-F>
<DEFINE-ROUTINE BEDROOM-EXIT-F>
<OBJECT PHONE (LOC BEDROOM) (DESC "telephone") (SYNONYM PHONE TELEPHONE
RECEIVER) (FLAGS NDESCBIT TAKEBIT TRYTAKEBIT) (ACTION PHONE-F)>
<DEFINE-ROUTINE PHONE-F>
<OBJECT BEDROOM-DOOR (LOC LOCAL-GLOBALS) (DESC "door") (SYNONYM DOOR) (FLAGS
DOORBIT OPENBIT NDESCBIT)>
<OBJECT GLOBAL-BED (LOC LOCAL-GLOBALS) (DESC "bed") (SYNONYM BED) (FLAGS VEHBIT
) (ACTION GLOBAL-BED-F)>
<DEFINE-ROUTINE GLOBAL-BED-F>
<OBJECT BED (LOC BEDROOM) (DESC "bed") (SYNONYM BED) (FLAGS VEHBIT CONTBIT
SURFACEBIT SEARCHBIT OPENBIT NDESCBIT) (ACTION BED-F)>
<DEFINE-ROUTINE BED-F>
<OBJECT STUFF-UNDER-BED (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM BOOK COIN
HANDKERCH COINS) (ADJECTIVE SOILED FOREIGN) (FLAGS NDESCBIT NARTICLEBIT) (
ACTION UNIMPORTANT-THING-F)>
<OBJECT CURTAINS (LOC BEDROOM) (DESC "your curtains") (SYNONYM CURTAIN CURTAINS
SHADE SHADES) (ADJECTIVE YOUR) (FLAGS NDESCBIT NARTICLEBIT) (ACTION CURTAINS-F)
>
<DEFINE-ROUTINE CURTAINS-F>
<OBJECT GOWN (LOC BEDROOM) (DESC "your gown") (LDESC "Your gown is here.") (
SYNONYM GOWN POCKET ROBE LOOP) (ADJECTIVE MY YOUR DRESSING TATTY FADED BATTERED
) (FLAGS WEARBIT TRYTAKEBIT TAKEBIT CONTBIT NDESCBIT NARTICLEBIT SEARCHBIT) (
SIZE 15) (CAPACITY 14) (ACTION GOWN-F)>
<DEFINE-ROUTINE GOWN-F>
<OBJECT SLEEVES (LOC GLOBAL-OBJECTS) (DESC "sleeve") (SYNONYM SLEEVE SLEEVES) (
ACTION SLEEVES-F)>
<DEFINE-ROUTINE SLEEVES-F>
<DEFINE-ROUTINE TWO-TREES>
<OBJECT THING (LOC GOWN) (DESC
"thing your aunt gave you which you don't know what it is") (SYNONYM THING GIFT
) (ADJECTIVE AUNT\'S) (FLAGS TAKEBIT CONTBIT SEARCHBIT OPENBIT) (SIZE 6) (
CAPACITY 200) (ACTION THING-F)>
<DEFINE-ROUTINE THING-F>
<DEFINE-ROUTINE I-THING>
<OBJECT POCKET-FLUFF (LOC GOWN) (DESC "pocket fluff") (SYNONYM FLUFF LINT) (
ADJECTIVE POCKET) (FLAGS TAKEBIT NARTICLEBIT) (SIZE 1) (GENERIC POCKET-FLUFF)>
<OBJECT TABLET (LOC GOWN) (DESC "buffered analgesic") (SYNONYM ANALGESIC TABLET
ASPIRIN PILL) (ADJECTIVE LARGE BUFFERED) (FLAGS TAKEBIT EATBIT) (SIZE 2) (
ACTION TABLET-F)>
<DEFINE-ROUTINE TABLET-F>
<OBJECT SINK (LOC BEDROOM) (DESC "it") (SYNONYM BASIN WASHBASIN SINK) (
ADJECTIVE WASH) (FLAGS NDESCBIT NARTICLEBIT) (ACTION UNIMPORTANT-THING-F)>
<OBJECT BEDROOM-FURNISHINGS (LOC BEDROOM) (DESC "it") (SYNONYM CARPET WALLPAPER
PAPER CHAIR) (ADJECTIVE WALL FADED OLD) (FLAGS NDESCBIT NARTICLEBIT) (ACTION
UNIMPORTANT-THING-F)>
<ROOM FRONT-PORCH (LOC ROOMS) (SYNONYM BEAM BEAMS) (ADJECTIVE MATTER TRANSFERE)
(DESC "Front Porch") (LDESC
"This is the enclosed front porch of your home. Your front garden lies to
the south, and you can reenter your home to the north.") (UP TO BEDROOM) (NORTH
TO BEDROOM) (SOUTH PER CLOTHES-EXIT-F) (OUT PER CLOTHES-EXIT-F) (FLAGS RLANDBIT
ONBIT) (GLOBAL HOUSE HOME STAIRS THIRD-PLANET BEDROOM-DOOR)>
<OBJECT DOORMAT (LOC FRONT-PORCH) (SYNONYM DOORMAT MAT) (ADJECTIVE DOOR) (DESC
"doormat") (FLAGS NDESCBIT) (ACTION UNIMPORTANT-THING-F)>
<DEFINE-ROUTINE CLOTHES-EXIT-F>
<OBJECT MAIL (LOC FRONT-PORCH) (DESC "loose pile of junk mail") (FDESC
"On the doormat is a pile of junk mail.") (SYNONYM ORDER MAIL PILE LETTER
LETTERS) (ADJECTIVE DEMOLISHI JUNK MY OFFICIAL LOOSE) (FLAGS TAKEBIT READBIT
TRYTAKEBIT) (SIZE 4) (TEXT
"There are many pieces of mail. Most are from some computer company called
Infocom which wants you to buy their games. Hidden underneath is an official
letter from the local council, dated some two years ago and inexplicably not
delivered till now, explaining that a demolition order has been served on your
home. The date of demolition is today's date.") (ACTION MAIL-F)>
<DEFINE-ROUTINE MAIL-F>
<ROOM FRONT-OF-HOUSE (LOC ROOMS) (SYNONYM WOONBEAM) (ADJECTIVE GALAXIA) (DESC
"Front of House") (NORTH PER HOUSE-ENTER-F) (SOUTH TO COUNTRY-LANE) (NE TO
BACK-OF-HOUSE) (NW TO BACK-OF-HOUSE) (FLAGS RLANDBIT ONBIT OUTSIDEBIT) (GLOBAL
HOUSE HOME BULLDOZER CONVERSATION THIRD-PLANET RUBBLE TREE) (ACTION
FRONT-OF-HOUSE-F)>
<OBJECT TREE (LOC LOCAL-GLOBALS) (SYNONYM TREE TREES) (DESC "tree") (ACTION
TREE-PSEUDO)>
<DEFINE-ROUTINE HOUSE-ENTER-F>
<DEFINE-ROUTINE FRONT-OF-HOUSE-F>
<OBJECT ROSES (LOC FRONT-OF-HOUSE) (DESC "it") (SYNONYM ROSE ROSES ROSEBED BED)
(ADJECTIVE ROSE) (FLAGS NDESCBIT NARTICLEBIT) (ACTION UNIMPORTANT-THING-F)>
<GLOBAL BULLDOZER-COUNTER 0>
<DEFINE-ROUTINE I-BULLDOZER>
<DEFINE-ROUTINE BRICK-DEATH>
<GLOBAL DEAD-COUNTER 0>
<OBJECT BULLDOZER-DRIVER (LOC FRONT-OF-HOUSE) (DESC "bulldozer driver") (
SYNONYM DRIVER) (ADJECTIVE BULLDOZER DOZER) (FLAGS NDESCBIT ACTORBIT) (ACTION
BULLDOZER-DRIVER-F)>
<DEFINE-ROUTINE BULLDOZER-DRIVER-F>
<OBJECT BULLDOZER (LOC LOCAL-GLOBALS) (DESC "bulldozer") (SYNONYM BULLDOZER
DOZER) (ADJECTIVE LARGE YELLOW BULL HUGE) (FLAGS NDESCBIT INVISIBLE) (ACTION
BULLDOZER-F)>
<DEFINE-ROUTINE BULLDOZER-F>
<GLOBAL PROSSER-COUNTER 0>
<GLOBAL PROSSER-LYING <>>
<GLOBAL GONE-AROUND <>>
<DEFINE-ROUTINE I-PROSSER>
<OBJECT PROSSER (LOC FRONT-OF-HOUSE) (DESC "Mr. Prosser") (DESCFCN
PROSSER-DESCFCN) (SYNONYM PROSSER FOREMAN CREW) (ADJECTIVE WRECKING MR MISTER)
(FLAGS NARTICLEBIT ACTORBIT CONTBIT OPENBIT) (ACTION PROSSER-F)>
<DEFINE-ROUTINE PROSSER-DESCFCN>
<DEFINE-ROUTINE PROSSER-F>
<DEFINE-ROUTINE STAND-ASIDE>
<OBJECT DIGITAL-WATCH (LOC PROSSER) (DESC "digital watch") (SYNONYM WATCH
WATCHES) (ADJECTIVE DIGITAL) (FLAGS NDESCBIT TRYTAKEBIT) (ACTION
DIGITAL-WATCH-F)>
<DEFINE-ROUTINE DIGITAL-WATCH-F>
<OBJECT TIME (LOC GLOBAL-OBJECTS) (DESC "time") (SYNONYM TIME)>
<OBJECT FORD (LOC LOCAL-GLOBALS) (DESC "Ford Prefect") (DESCFCN FORD-DESCFCN) (
SYNONYM FORD PREFECT) (ADJECTIVE FORD) (FLAGS ACTORBIT CONTBIT SEARCHBIT
OPENBIT NARTICLEBIT) (ACTION FORD-F)>
<DEFINE-ROUTINE FORD-DESCFCN>
<DEFINE-ROUTINE FORD-F>
<DEFINE-ROUTINE FORD-DECIDES>
<GLOBAL FORD-COUNTER 0>
<GLOBAL FORD-SLEEPING <>>
<GLOBAL GUARDS-COUNTER 0>
<GLOBAL HEART-COUNTER 0>
<DEFINE-ROUTINE I-FORD>
<OBJECT SATCHEL (LOC FORD) (DESC "satchel") (DESCFCN SATCHEL-DESCFCN) (SYNONYM
SATCHEL) (ADJECTIVE BATTERED LEATHER BULKY) (FLAGS CONTBIT SEARCHBIT TAKEBIT
TRYTAKEBIT) (CAPACITY 30) (SIZE 20) (ACTION SATCHEL-F)>
<DEFINE-ROUTINE SATCHEL-DESCFCN>
<DEFINE-ROUTINE ITEM-ON-SATCHEL-DESCRIPTION>
<DEFINE-ROUTINE SATCHEL-F>
<OBJECT SATCHEL-FLUFF (LOC SATCHEL) (DESC "satchel fluff") (SYNONYM FLUFF LINT)
(ADJECTIVE SATCHEL) (FLAGS TAKEBIT NARTICLEBIT) (SIZE 1) (GENERIC POCKET-FLUFF)
>
<GLOBAL FLUFF-TO-GOWN <>>
<GLOBAL TOWEL-MUDDY <>>
<GLOBAL TOWEL-OFFERED <>>
<OBJECT TOWEL (LOC FORD) (DESC "towel") (SYNONYM TOWEL TOWELS) (FLAGS TAKEBIT
TRYTAKEBIT) (SIZE 7) (CAPACITY 40) (ACTION TOWEL-F)>
<DEFINE-ROUTINE TOWEL-F>
<ROOM BACK-OF-HOUSE (LOC ROOMS) (SYNONYM LIST QUESTION QUESTIONS) (ADJECTIVE
GREAT UNANSWERE) (DESC "Back of House") (SE TO FRONT-OF-HOUSE) (SW TO
FRONT-OF-HOUSE) (FLAGS RLANDBIT ONBIT OUTSIDEBIT) (GLOBAL HOUSE HOME
THIRD-PLANET RUBBLE TREE) (ACTION BACK-OF-HOUSE-F)>
<OBJECT BIRDS (LOC BACK-OF-HOUSE) (SYNONYM BIRD BIRDS) (DESC "bird") (FLAGS
NDESCBIT) (ACTION UNIMPORTANT-THING-F)>
<DEFINE-ROUTINE BACK-OF-HOUSE-F>
<DEFINE-ROUTINE TREE-PSEUDO>
<ROOM COUNTRY-LANE (LOC ROOMS) (SYNONYM SPACE) (DESC "Country Lane") (NORTH TO
FRONT-OF-HOUSE) (WEST TO PUB) (IN TO PUB) (FLAGS RLANDBIT ONBIT OUTSIDEBIT) (
GLOBAL HOUSE HOME PUB-OBJECT BULLDOZER THIRD-PLANET TREE) (ACTION
COUNTRY-LANE-F)>
<DEFINE-ROUTINE COUNTRY-LANE-F>
<DEFINE-ROUTINE I-DOG>
<OBJECT DOG (LOC LOCAL-GLOBALS) (DESC "dog") (SYNONYM DOG MONGREL) (ADJECTIVE
SMALL SERENE IRRITABLE) (ACTION DOG-F)>
<DEFINE-ROUTINE DOG-F>
<OBJECT PUB-OBJECT (LOC LOCAL-GLOBALS) (DESC "Pub") (SYNONYM PUB GROOM) (
ADJECTIVE HORSE \'N) (ACTION PUB-OBJECT-F)>
<DEFINE-ROUTINE PUB-OBJECT-F>
<ROOM PUB (LOC ROOMS) (SYNONYM ALCOHOL) (DESC "Pub") (EAST TO COUNTRY-LANE) (
OUT TO COUNTRY-LANE) (FLAGS RLANDBIT ONBIT OUTSIDEBIT) (GLOBAL PUB-OBJECT
WINDOW THIRD-PLANET PUB-FURNISHINGS PEOPLE) (ACTION PUB-F)>
<OBJECT PEOPLE (LOC LOCAL-GLOBALS) (SYNONYM PEOPLE) (DESC "people") (ACTION
PEOPLE-PSEUDO)>
<DEFINE-ROUTINE PUB-F>
<OBJECT BAR (LOC PUB) (DESC "bar") (SYNONYM BAR COUNTER) (FLAGS NDESCBIT
CONTBIT SURFACEBIT OPENBIT) (CAPACITY 60) (ACTION BAR-F)>
<DEFINE-ROUTINE BAR-F>
<OBJECT PUB-SHELF (LOC PUB) (DESC "shelf of items") (LDESC
"Behind the bar is a shelf. It is full of the sort of items you find on shelves
behind bars in pubs.") (SYNONYM SHELF ITEMS SHELVES) (ACTION PUB-SHELF-F)>
<DEFINE-ROUTINE PUB-SHELF-F>
<OBJECT MUSIC (LOC PUB) (DESC "music") (SYNONYM MUSIC SONG SONGS) (FLAGS
NARTICLEBIT NDESCBIT) (ACTION MUSIC-F)>
<DEFINE-ROUTINE MUSIC-F>
<OBJECT JUKEBOX (LOC PUB) (DESC "jukebox") (SYNONYM JUKEBOX BOX) (ADJECTIVE
JUKE OLD) (FLAGS NDESCBIT LIGHTBIT ONBIT) (ACTION JUKEBOX-F)>
<DEFINE-ROUTINE JUKEBOX-F>
<OBJECT PUB-FURNISHINGS (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM BEERMAT
BEERMATS GLASS GLASSES BOTTLE BOTTLES) (ADJECTIVE USUAL SOGGY) (FLAGS NDESCBIT
NARTICLEBIT) (GENERIC MINERAL-WATER) (ACTION UNIMPORTANT-THING-F)>
<OBJECT BARMAN (LOC PUB) (DESC "barman") (LDESC
"There is a barman serving at the bar.") (SYNONYM BARMAN BARTENDER) (FLAGS
ACTORBIT) (ACTION BARMAN-F)>
<DEFINE-ROUTINE BARMAN-F>
<OBJECT BEER (LOC PUB) (DESC "lots of beer") (SYNONYM LOTS BITTER BITTERS PINT
BEER) (FLAGS DRINKBIT NARTICLEBIT NDESCBIT) (ACTION BEER-F)>
<GLOBAL DRUNK-LEVEL 0>
<GLOBAL FORD-POINT 15>
<DEFINE-ROUTINE BEER-F>
<OBJECT PEANUTS (LOC PUB) (DESC "peanuts") (SYNONYM PACKET PEANUT PEANUTS NUT
NUTS) (FLAGS TRYTAKEBIT NDESCBIT NARTICLEBIT EATBIT) (ACTION PEANUTS-F)>
<DEFINE-ROUTINE PEANUTS-F>
<OBJECT SANDWICH (LOC PUB) (DESC "cheese sandwich") (SYNONYM PLATE SANDWICH) (
ADJECTIVE CHEESE UNINVITIN) (FLAGS NDESCBIT EATBIT TRYTAKEBIT) (SIZE 10) (
ACTION SANDWICH-F)>
<DEFINE-ROUTINE SANDWICH-F>
<GLOBAL DOG-FED <>>
<GLOBAL PEANUTS-BOUGHT <>>
<GLOBAL SANDWICH-BOUGHT <>>
<GLOBAL VOGON-COUNTER 0>
<GLOBAL FORD-GONE <>>
<DEFINE-ROUTINE I-VOGONS>
<DEFINE-ROUTINE GO-TO-LANE>
<GLOBAL FORD-TABLE <TABLE 0 0 0 0 0 0>>
<OBJECT FLEET (LOC LOCAL-GLOBALS) (DESC "fleet of Vogon Constructor ships") (
SYNONYM FLEET SHIP SHIPS SPACESHIP) (ADJECTIVE VOGON CONSTRUCT HUGE UGLY YELLOW
) (FLAGS NDESCBIT) (ACTION FLEET-F)>
<DEFINE-ROUTINE FLEET-F>
<GLOBAL EARTH-DEMOLISHED <>>
<DEFINE-ROUTINE LEAVE-EARTH>
<OBJECT ARTHUR (LOC LOCAL-GLOBALS) (DESC "Arthur Dent") (LDESC
"Arthur Dent is here.") (SYNONYM ARTHUR DENT) (ADJECTIVE ARTHUR) (FLAGS
NARTICLEBIT VOWELBIT ACTORBIT) (ACTION ARTHUR-F)>
<DEFINE-ROUTINE ARTHUR-F>
<DEFINE-ROUTINE IDIOT?>
<GLOBAL UNEASY-COUNTER 0>
<GLOBAL IDENTITY-FLAG <>>
<DEFINE-ROUTINE I-UNEASY>
<DEFINE-ROUTINE I-ARTHUR>
<GLOBAL BORES <PLTABLE "newts he has known." "cricket."
"how badly Americans make tea." "the deteriorating condition of the motorways."
"a recent visit to Tiverton." "a new book by Douglas Adams." "computers.">>
<DEFINE-ROUTINE SCENE-THROUGH-WINDOW>

2074
earth.zap Normal file

File diff suppressed because it is too large Load Diff

2491
earth.zil Normal file

File diff suppressed because it is too large Load Diff

338
globals.zabstr Normal file
View File

@ -0,0 +1,338 @@
<CONSTANT S-TEXT 0>
<CONSTANT S-WINDOW 1>
<CONSTANT H-NORMAL 0>
<CONSTANT H-INVERSE 1>
<CONSTANT H-BOLD 2>
<CONSTANT H-ITALIC 4>
<CONSTANT D-SCREEN-ON 1>
<CONSTANT D-SCREEN-OFF -1>
<CONSTANT D-PRINTER-ON 2>
<CONSTANT D-PRINTER-OFF -2>
<CONSTANT D-TABLE-ON 3>
<CONSTANT D-TABLE-OFF -3>
<CONSTANT D-RECORD-ON 4>
<CONSTANT D-RECORD-OFF -4>
<GLOBAL HOST:NUMBER 0>
<GLOBAL WIDTH:NUMBER 0>
<DEFINE-ROUTINE INIT-STATUS-LINE>
<CONSTANT SL-TABLE:TABLE <ITABLE NONE 80>>
<GLOBAL OHERE:OBJECT <>>
<GLOBAL OLD-LEN:NUMBER 0>
<DEFINE-ROUTINE UPDATE-STATUS-LINE>
<DEFINE-ROUTINE PRINT-SPACES>
<DEFINE-ROUTINE SAY-HERE>
<GLOBAL LYING-DOWN <>>
<GLOBAL HERE <>>
<GLOBAL LIT <>>
<GLOBAL MOVES 0>
<GLOBAL SCORE 0>
<CONSTANT INDENTS <PTABLE "" " " " " " " " " " ">>
<OBJECT GLOBAL-OBJECTS (FLAGS INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT OPENBIT
REVISITBIT SEARCHBIT TRANSBIT WEARBIT MUNGEDBIT ONBIT RLANDBIT WORNBIT)>
<OBJECT LOCAL-GLOBALS (LOC GLOBAL-OBJECTS) (SYNONYM ZZMGCK) (DESCFCN 0) (GLOBAL
GLOBAL-OBJECTS) (FDESC "F") (LDESC "F") (SIZE 0) (TEXT "") (CAPACITY 0)>
<OBJECT FOOBAR (LOC LOCAL-GLOBALS) (SYNONYM FOOBAR) (ACTION V-WALK)>
<OBJECT ROOMS (IN TO ROOMS)>
<OBJECT IT (LOC GLOBAL-OBJECTS) (SYNONYM IT THEM HER HIM) (DESC "it") (FLAGS
VOWELBIT NARTICLEBIT NDESCBIT TOUCHBIT)>
<OBJECT INTNUM (LOC GLOBAL-OBJECTS) (DESC "number") (SYNONYM INTNUM) (ADJECTIVE
NUMBER)>
<OBJECT NOT-HERE-OBJECT (DESC "it") (FLAGS NARTICLEBIT) (ACTION
NOT-HERE-OBJECT-F)>
<DEFINE-ROUTINE NOT-HERE-OBJECT-F>
<DEFINE-ROUTINE FIND-NOT-HERE>
<DEFINE-ROUTINE NOT-HERE-PRINT>
<OBJECT LIGHT (LOC GLOBAL-OBJECTS) (DESC "light") (SYNONYM LIGHT LIGHTS LAMP) (
FLAGS LIGHTBIT) (ACTION LIGHT-F)>
<DEFINE-ROUTINE LIGHT-F>
<OBJECT GLOBAL-SLEEP (LOC GLOBAL-OBJECTS) (DESC "sleep") (SYNONYM SLEEP NAP
SNOOZE) (FLAGS NARTICLEBIT) (ACTION GLOBAL-SLEEP-F)>
<DEFINE-ROUTINE GLOBAL-SLEEP-F>
<OBJECT SPEECH (LOC GLOBAL-OBJECTS) (DESC "speech") (SYNONYM SPEECH) (ACTION
SPEECH-F)>
<DEFINE-ROUTINE SPEECH-F>
<OBJECT GROUND (LOC GLOBAL-OBJECTS) (SYNONYM FLOOR GROUND MUD) (DESC "ground")
(ACTION GROUND-F)>
<DEFINE-ROUTINE GROUND-F>
<OBJECT WALLS (LOC GLOBAL-OBJECTS) (FLAGS NDESCBIT TOUCHBIT) (DESC "wall") (
SYNONYM WALL WALLS) (ACTION WALLS-F)>
<DEFINE-ROUTINE WALLS-F>
<OBJECT CEILING (LOC GLOBAL-OBJECTS) (FLAGS NDESCBIT TOUCHBIT) (DESC "ceiling")
(SYNONYM CEILING ROOF) (ACTION CEILING-F)>
<DEFINE-ROUTINE CEILING-F>
<OBJECT WINDOW (LOC LOCAL-GLOBALS) (DESC "window") (SYNONYM WINDOW) (FLAGS
TRANSBIT) (ACTION WINDOW-F)>
<DEFINE-ROUTINE WINDOW-F>
<OBJECT STAIRS (LOC LOCAL-GLOBALS) (DESC "stairs") (SYNONYM STAIR STAIRS
STAIRWAY GANGWAY) (FLAGS NARTICLEBIT NDESCBIT) (ACTION STAIRS-F)>
<DEFINE-ROUTINE STAIRS-F>
<OBJECT AIR (LOC GLOBAL-OBJECTS) (DESC "air") (SYNONYM AIR) (FLAGS VOWELBIT)>
<OBJECT SKY (LOC GLOBAL-OBJECTS) (DESC "sky") (SYNONYM SKY) (ACTION SKY-F)>
<DEFINE-ROUTINE SKY-F>
<OBJECT STAR (LOC GLOBAL-OBJECTS) (DESC "sun") (SYNONYM STAR SUN SYSTEM SOL) (
ADJECTIVE APPROACHI STAR SOLAR SMALL UNREGARDE YELLOW ORANGE) (FLAGS NDESCBIT)
(ACTION STAR-F)>
<DEFINE-ROUTINE STAR-F>
<OBJECT HANDS (LOC GLOBAL-OBJECTS) (SYNONYM HANDS HAND) (ADJECTIVE BARE MY YOUR
) (DESC "your hand") (FLAGS NDESCBIT TOUCHBIT NARTICLEBIT) (ACTION HANDS-F)>
<DEFINE-ROUTINE HANDS-F>
<OBJECT TEETH (LOC GLOBAL-OBJECTS) (DESC "your teeth") (SYNONYM TEETH TOOTH) (
ADJECTIVE YOUR MY) (FLAGS NARTICLEBIT)>
<OBJECT HEAD (LOC GLOBAL-OBJECTS) (DESC "your head") (SYNONYM HEAD FACE) (
ADJECTIVE YOUR MY) (FLAGS NARTICLEBIT)>
<OBJECT EYES (LOC GLOBAL-OBJECTS) (DESC "your eyes") (SYNONYM EYE EYES) (
ADJECTIVE YOUR MY) (FLAGS NARTICLEBIT) (ACTION EYES-F)>
<DEFINE-ROUTINE EYES-F>
<OBJECT EARS (LOC GLOBAL-OBJECTS) (DESC "your ears") (SYNONYM EAR EARS) (
ADJECTIVE YOUR MY) (FLAGS NARTICLEBIT)>
<OBJECT PROTAGONIST (SYNONYM PROTAGONI) (DESC "it") (FLAGS NDESCBIT INVISIBLE)
(ACTION PROTAGONIST-F)>
<DEFINE-ROUTINE PROTAGONIST-F>
<OBJECT ME (LOC GLOBAL-OBJECTS) (SYNONYM I ME MYSELF SELF) (DESC "yourself") (
FLAGS ACTORBIT TOUCHBIT NARTICLEBIT) (ACTION ME-F)>
<DEFINE-ROUTINE ME-F>
<OBJECT GLOBAL-ROOM (LOC GLOBAL-OBJECTS) (DESC "room") (SYNONYM ROOM CHAMBER
PLACE HALL) (ADJECTIVE AREA) (ACTION GLOBAL-ROOM-F)>
<DEFINE-ROUTINE GLOBAL-ROOM-F>
<OBJECT OBJECT-OF-GAME (LOC GLOBAL-OBJECTS) (DESC "object of the game") (
SYNONYM OBJECT GAME GOAL) (FLAGS VOWELBIT) (ACTION OBJECT-OF-GAME-F)>
<DEFINE-ROUTINE OBJECT-OF-GAME-F>
<OBJECT CONTROLS (LOC LOCAL-GLOBALS) (DESC "the controls") (SYNONYM CONTROLS
PANEL CONSOLE) (ADJECTIVE CONTROL) (FLAGS NARTICLEBIT) (ACTION CONTROLS-F)>
<DEFINE-ROUTINE CONTROLS-F>
<OBJECT CONVERSATION (LOC LOCAL-GLOBALS) (DESC "conversation") (SYNONYM
CONVERSAT) (FLAGS DARKBIT INVISIBLE) (ACTION CONVERSATION-F)>
<DEFINE-ROUTINE CONVERSATION-F>
<OBJECT GUARDS (LOC LOCAL-GLOBALS) (DESC "one of the guards") (SYNONYM ONE
GUARD GUARDS) (ADJECTIVE VOGON) (FLAGS VOWELBIT NARTICLEBIT NDESCBIT ACTORBIT
CONTBIT SEARCHBIT OPENBIT) (ACTION GUARDS-F)>
<DEFINE-ROUTINE GUARDS-F>
<DEFINE-ROUTINE WEAPON-PSEUDO>
<OBJECT FRUSTATION (LOC GLOBAL-OBJECTS) (DESC "problem") (SYNONYM FRUSTRATI
PROBLEM PUZZLE) (ACTION FRUSTRATION-F)>
<DEFINE-ROUTINE FRUSTRATION-F>
<DEFINE-ROUTINE UNIMPORTANT-THING-F>
<DEFINE-ROUTINE DONT-F>
<GLOBAL VOGON-PROB 100>
<GLOBAL HEART-PROB 0>
<GLOBAL TRAAL-PROB 60>
<GLOBAL FLEET-PROB 0>
<GLOBAL WHALE-PROB 0>
<GLOBAL TRILLIAN-PROB 15>
<GLOBAL ZAPHOD-PROB 0>
<GLOBAL FORD-PROB 15>
<GLOBAL DREAMING <>>
<GLOBAL DARK-COUNTER 0>
<GLOBAL DARK-FLAG <>>
<GLOBAL CURRENT-EXIT 0>
<GLOBAL GROGGY <>>
<GLOBAL LYING-COUNTER 0>
<GLOBAL GUTS-ROOM <>>
<ROOM DARK (LOC ROOMS) (SYNONYM SUNGLASSE GLASSES JANTA) (ADJECTIVE JOO JANTA
PERIL SENSITIVE) (DESC "Dark") (FLAGS RLANDBIT ONBIT) (ACTION DARK-F)>
<DEFINE-ROUTINE DARK-F>
<OBJECT DARK-OBJECT (LOC GLOBAL-OBJECTS) (DESC "darkness") (SYNONYM DARK
DARKNESS NOTHING) (FLAGS NDESCBIT NARTICLEBIT)>
<OBJECT SHADOW (LOC LOCAL-GLOBALS) (DESC "shadow") (SYNONYM SHADOW) (FLAGS
NDESCBIT)>
<OBJECT LIQUID (LOC LOCAL-GLOBALS) (DESC "liquid") (SYNONYM LIQUID) (ADJECTIVE
HOT COLD WARM WET SQUISHY) (FLAGS NDESCBIT DRINKBIT)>
<OBJECT PAINFUL-LIGHT (LOC LOCAL-GLOBALS) (DESC "light") (SYNONYM LIGHT) (
ADJECTIVE PAINFUL BRIGHT) (FLAGS NDESCBIT)>
<OBJECT STAR-DRIVE (LOC LOCAL-GLOBALS) (DESC "star drive") (SYNONYM DRIVE HUM)
(ADJECTIVE STAR DEEP DISTANT) (FLAGS NDESCBIT)>
<DEFINE-ROUTINE DARK-FUNCTION>
<CONSTANT DARK-EXIT-TABLE <PTABLE HOLD COUNTRY-LANE LIVING-ROOM ENTRY-BAY LAIR
SPEEDBOAT INSIDE-WHALE WAR-CHAMBER>>
<DEFINE-ROUTINE LEAVE-DARK>
<DEFINE-ROUTINE MISSING?>
<DEFINE-ROUTINE DARK-ONE>
<DEFINE-ROUTINE DARK-TWO>
<DEFINE-ROUTINE DARK-THREE>
<DEFINE-ROUTINE DARK-FOUR>
<DEFINE-ROUTINE BEAST-GUARD-FORD>
<DEFINE-ROUTINE I-BRAIN-DEATH>
<OBJECT TOOTHBRUSH (LOC BEDROOM) (DESC "toothbrush") (SYNONYM TOOTHBRUS BRUSH
TOOL TOOLS) (ADJECTIVE TOOTH MY PROPER) (FLAGS TAKEBIT TRYTAKEBIT TOOLBIT) (
SIZE 3) (GENERIC TWEEZERS) (ACTION TOOTHBRUSH-F)>
<DEFINE-ROUTINE TOOTHBRUSH-F>
<OBJECT SCREWDRIVER (LOC BEDROOM) (DESC "flathead screwdriver") (SYNONYM
SCREWDRIV TOOL TOOLS) (ADJECTIVE FLATHEAD PROPER) (FLAGS TAKEBIT TRYTAKEBIT
TOOLBIT) (SIZE 3) (GENERIC TWEEZERS)>
<OBJECT WRENCH (LOC TOOLBOX) (DESC "laser-assisted monkey wrench") (SYNONYM
WRENCH TOOL TOOLS) (ADJECTIVE LASER ASSISTED LASER-ASS MONKEY PROPER) (FLAGS
TAKEBIT TOOLBIT) (SIZE 3) (GENERIC TWEEZERS)>
<OBJECT CHISEL (LOC PANTRY) (DESC "thermo-fusion chisel") (SYNONYM CHISEL TOOL
TOOLS) (ADJECTIVE THERMO FUSION THERMO-FU PROPER) (FLAGS TAKEBIT TOOLBIT) (SIZE
3) (GENERIC TWEEZERS)>
<OBJECT AWL (LOC WAR-CHAMBER) (DESC "ultra-plasmic vacuum awl") (SYNONYM AWL
TOOL TOOLS) (ADJECTIVE ULTRA PLASMIC ULTRA-PLA VACUUM PROPER) (FLAGS TAKEBIT
VOWELBIT TOOLBIT) (SIZE 3) (GENERIC TWEEZERS)>
<OBJECT PLIERS (LOC LOCAL-GLOBALS) (DESC "pair of hypersonic pliers") (SYNONYM
PAIR PLIERS TOOL TOOLS) (ADJECTIVE HYPERSONI PROPER) (FLAGS TAKEBIT TOOLBIT) (
SIZE 3) (GENERIC TWEEZERS)>
<OBJECT TWEEZERS (LOC HANDBAG) (DESC "pair of tweezers") (SYNONYM TWEEZERS
TWEEZER PAIR TOOL TOOLS) (ADJECTIVE PROPER) (FLAGS TAKEBIT TOOLBIT) (SIZE 3) (
GENERIC TWEEZERS)>
<OBJECT PINCER (LOC BRIDGE) (DESC "molecular hyperwave pincer") (SYNONYM PINCER
TOOL TOOLS) (ADJECTIVE MOLECULAR HYPERWAVE PROPER) (FLAGS TAKEBIT TOOLBIT) (
SIZE 3) (GENERIC TWEEZERS)>
<OBJECT RASP (LOC LOCAL-GLOBALS) (DESC "ionic diffusion rasp") (SYNONYM RASP
TOOL TOOLS) (ADJECTIVE IONIC DIFFUSION PROPER) (FLAGS TAKEBIT VOWELBIT TOOLBIT)
(SIZE 3) (GENERIC TWEEZERS)>
<OBJECT CHIPPER (LOC LOCAL-GLOBALS) (DESC
"number twelve asteroid paint chipper") (SYNONYM CHIPPER TOOL TOOLS) (ADJECTIVE
NUMBER TWELVE ASTEROID PAINT PROPER) (FLAGS TAKEBIT TOOLBIT) (SIZE 3) (GENERIC
TWEEZERS)>
<CONSTANT TOOL-LIST <PLTABLE SCREWDRIVER WRENCH CHISEL AWL PLIERS TWEEZERS
PINCER RASP CHIPPER TOOTHBRUSH>>
<GLOBAL HOLDING-NO-TEA T>
<DEFINE-ROUTINE LIQUID-SPILL>
<DEFINE-ROUTINE ANTI-LITTER>
<OBJECT TEA (LOC PAD) (DESC "tea") (DESCFCN TEA-DESCFCN) (SYNONYM TEA CUP) (
ADJECTIVE REAL NICE HOT) (FLAGS NARTICLEBIT TAKEBIT TRYTAKEBIT DRINKBIT) (
ACTION TEA-F)>
<DEFINE-ROUTINE TEA-DESCFCN>
<DEFINE-ROUTINE DESCRIBE-DRINK>
<DEFINE-ROUTINE TEA-F>
<OBJECT NO-TEA (LOC GLOBAL-OBJECTS) (DESC "no tea") (SYNONYM TEA) (ADJECTIVE NO
) (FLAGS NARTICLEBIT TRYTAKEBIT) (ACTION NO-TEA-F)>
<DEFINE-ROUTINE NO-TEA-F>
<DEFINE-ROUTINE TEA-PRINT>
<OBJECT THUMB (LOC SATCHEL) (DESC "electronic Sub-Etha signaling device") (
SYNONYM THUMB DEVICE SENSO) (ADJECTIVE ELECTRONI SUB-ETHA SIGNALING SMALL BLACK
LITTLE BLINKING) (SIZE 10) (FLAGS TAKEBIT VOWELBIT CONTBIT OPENBIT) (ACTION
THUMB-F)>
<DEFINE-ROUTINE THUMB-F>
<OBJECT RED-BUTTON (LOC THUMB) (DESC "red button") (SYNONYM BUTTON) (ADJECTIVE
RED SMALL) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 1) (ACTION RED-BUTTON-F)>
<DEFINE-ROUTINE RED-BUTTON-F>
<OBJECT GREEN-BUTTON (LOC THUMB) (DESC "green button") (SYNONYM BUTTON) (
ADJECTIVE GREEN SMALL HITCHHIKE) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 1) (ACTION
GREEN-BUTTON-F)>
<DEFINE-ROUTINE GREEN-BUTTON-F>
<OBJECT GUARANTEE (LOC THUMB) (DESC "guarantee") (SYNONYM GUARANTEE WARRANTY
PLAQUE) (ADJECTIVE LIFETIME) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 2) (ACTION
GUARANTEE-F)>
<DEFINE-ROUTINE GUARANTEE-F>
<OBJECT ENGINEER (LOC LOCAL-GLOBALS) (DESC "Engineer robot") (SYNONYM ROBOT
ENGINEER) (ADJECTIVE ENGINE) (FLAGS VOWELBIT ACTORBIT CONTBIT OPENBIT SEARCHBIT
) (ACTION ENGINEER-F)>
<DEFINE-ROUTINE ENGINEER-F>
<GLOBAL ENGINEER-COUNTER 0>
<GLOBAL THUMB-SHOWN 0>
<DEFINE-ROUTINE ENGINEER-LEAVE>
<DEFINE-ROUTINE I-ENGINEER>
<OBJECT BIKE (LOC LOCAL-GLOBALS) (DESC "bike") (SYNONYM BIKE CYCLE) (ADJECTIVE
ION) (FLAGS NDESCBIT TRYTAKEBIT)>
<OBJECT GUIDE (LOC SATCHEL) (DESC "The Hitchhiker's Guide") (DESCFCN
GUIDE-DESCFCN) (SYNONYM COPY GUIDE) (ADJECTIVE HITCHHIKE SUB-ETHA) (SIZE 10) (
FLAGS NARTICLEBIT TAKEBIT READBIT) (TEXT
"Try: CONSULT GUIDE ABOUT (something).") (ACTION GUIDE-F)>
<DEFINE-ROUTINE GUIDE-DESCFCN>
<DEFINE-ROUTINE GUIDE-F>
<CONSTANT SPACE-TEXT
"If you hyperventilate and then empty your lungs, you will last about thirty
seconds in the vacuum of space. However, because space is so vastly hugely
mind-bogglingly big, getting picked up by another ship within those thirty
seconds is almost infinitely improbable.">
<DEFINE-ROUTINE CANT-SEE>
<DEFINE-ROUTINE TELL-ME-HOW>
<DEFINE-ROUTINE OUT-OF-FIRST>
<DEFINE-ROUTINE PRIVATE>
<DEFINE-ROUTINE NOT-VERY-GOOD>
<DEFINE-ROUTINE FACTOR>
<DEFINE-ROUTINE REMOVING-BIT>
<DEFINE-ROUTINE PART-OF>
<DEFINE-ROUTINE BUT-THAT-MAN>
<DEFINE-ROUTINE CUSHION>
<DEFINE-ROUTINE FINE-PRODUCT>
<DEFINE-ROUTINE MAKE-WAY-FOR>
<DEFINE-ROUTINE OWN-FEET>
<CONSTANT DOWN-WELL "It goes down well.">
<CONSTANT NOT-PLUGGED "It's not plugged into anything!">
<CONSTANT LYING-ABOUT-EXIT "(We were lying about the exit to port.) ">
<CONSTANT ROARS-OFF " roars off on his ion bike into the Sub-Etha">
<CONSTANT FIDDLES
"He fiddles with the Thumb for a moment or two before handing it back. ">
<CONSTANT LOOK-AROUND "Look around you.">
<CONSTANT TOO-DARK "It's too dark to see!">
<CONSTANT CANT-GO "You can't go that way.">
<CONSTANT YOU-ARE "You already are!">
<CONSTANT ALREADY-OPEN "It is already open.">
<CONSTANT ALREADY-CLOSED "It is already closed.">
<CONSTANT REFERRING "I don't see what you're referring to.">
<CONSTANT WHILE-LYING "You can't do that while you're lying down!">
<CONSTANT WITH-TOWEL "With a towel wrapped around your head!?!">
<CONSTANT ZEN "A brave, Zen-like effort. It fails.">
<CONSTANT BULLDOZER-PILES "The bulldozer piles into the side of your home.">
<CONSTANT IT-LOOKS-LIKE "It looks like">
<CONSTANT CLAWS " its tungsten carbide Vast-Pain claws">
<CONSTANT PRESIDENT " President of the Galaxy">
<CONSTANT SCC "Sirius Cybernetics Corporation">
<CONSTANT BEAM " matter transference beam">
<CONSTANT FLEET-PLUNGES "The battle fleet plunges toward Earth and">
<CONSTANT ABOVE-NOISE "He can't hear you above the noise.">
<CONSTANT BATTLE-SHORTS " black jewelled battle shorts, ">
<CONSTANT CLOUD-OF-STEAM " in a cloud of green, sweet-smelling steam. ">
<CONSTANT GUIDE-NAME "The Hitchhiker's Guide to the Galaxy">
<CONSTANT ALREADY-KNOW-THAT
" But then again you must already know that, since you bought one.">
<CONSTANT THUMB-CLICKS " Thumb merely makes a few feeble clicking noises.">
<CONSTANT BROWNIAN " Brownian motion">
<CONSTANT ASK-ABOUT-OBJECT
"\"Oh...you're trying to figure that out also? The
manual's not much help, is it? By the way, do you know your score? I don't.
My computer doesn't have a status line.\"">
<CONSTANT DRIVEN-BACK
"You struggle to reach the Thumb, but the wind is too
fierce and you are driven back.">
<CONSTANT GUARDS-REALIZE
"A wisp of an inkling of a thought penetrates the
three-inch thickness of solid bone surrounding the guards' very tiny brains
that something suspicious is going on. ">
<CONSTANT GETTING-CLOSE " You're getting close, though.">
<CONSTANT GPP "Genuine People Personalities">
<CONSTANT ALSO-SEE ". Also see the entries on ">
<CONSTANT JUST-AS
"Just as the Beast is trying to work out where you've disappeared to, it ">
<CONSTANT BUDGE "It won't budge.">
<CONSTANT BEAST-DESC
"You notice the Beast's Lasero-Zap eyes, its Swivel Shear Teeth, and its
several dozen tungsten carbide Vast-Pain claws, forged in the sun furnaces
of Zangrijad. It has skin like a motorway and breath like a 747.">
<CONSTANT NOT-HOLDING "You're not holding">
<CONSTANT WITH-PASSION
" with passion, and ignores a passing microscopic space fleet.">
<CONSTANT DIALING-TONE
" A moment later, the dialing tone is suddenly cut off.
Glancing through the window you can't help but notice the large old oak tree of
which you are particularly fond crashing down through the phone cable.">
<CONSTANT ANNOUNCEMENT "\"Announcement, announcement. This is ">
<CONSTANT HANDS-OFF "The barman snaps \"Hands off until you pay for it!\"">
<CONSTANT ARRESTED "Do you want to get arrested for indecent exposure?">
<CONSTANT AGENCY "Galactic Security Agency">
<CONSTANT LOST-PLANET " the legendary lost planet of Magrathea">
<CONSTANT DONT-MIX
"Despite your hangover, you recall that Zaphod and water don't mix.">
<CONSTANT CROWD-CHEERS "The crowd cheers wildly! It thinks you're terrific.">
<CONSTANT HUMANS "Humans are so depressingly ">
<CONSTANT EYE-STALK "electronic eye stalk shoots up from the hood, ">
<CONSTANT SLOWLY-DAWNS
" Slowly it dawns on the creature that someone is trying to make a fool
of it. It starts to look for you again.">
<CONSTANT IID " Infinite Improbability Drive">
<CONSTANT FIG "finite Improbability Generator">
<CONSTANT ROBOT-FLIES-IN
"A small upper-half-of-the-room cleaning robot flies into the room, ">
<CONSTANT ON-OTHER-SIDE "standing on the other side">
<CONSTANT MOP " the manual override receptacle">
<CONSTANT NICE-DAY
"t's a bright morning, the sun is shining, the birds are
singing, the meadows are blooming">
<CONSTANT GET-RID " you've been trying to get rid of it for years.">
<CONSTANT THUMB-FUMBLE
"You fumble with the Thumb as you hold onto the tree
against the fierce wind. It falls to the ground near Arthur's feet.">
<CONSTANT ENGAGED " all circuits are currently engaged by the ">

1753
globals.zap Normal file

File diff suppressed because it is too large Load Diff

2304
globals.zil Normal file

File diff suppressed because it is too large Load Diff

216
heart.zabstr Normal file
View File

@ -0,0 +1,216 @@
<DEFINE-ROUTINE IN-HEART?>
<OBJECT HEART-OF-GOLD (LOC LOCAL-GLOBALS) (DESC "the Heart of Gold") (SYNONYM
HEART GOLD SHIP SPACES) (ADJECTIVE SPACE INCREDIBL NEW) (FLAGS NARTICLEBIT) (
ACTION HEART-OF-GOLD-F)>
<DEFINE-ROUTINE HEART-OF-GOLD-F>
<GLOBAL TEA-SHOWN <>>
<GLOBAL SUBSTITUTE-DRUNK <>>
<ROOM PANTRY (LOC ROOMS) (SYNONYM INTELLIGE) (DESC "Marvin's Pantry") (LDESC
"This is a small closet with an exit to starboard.") (EAST TO AFT-CORRIDOR) (
OUT TO AFT-CORRIDOR) (FLAGS RLANDBIT ONBIT NARTICLEBIT) (GLOBAL HEART-OF-GOLD
SCREENING-DOOR) (ACTION PANTRY-F)>
<OBJECT PANTRY-PSEUDO (LOC PANTRY) (SYNONYM PANTRY CLOSET) (ADJECTIVE MARVIN\'S
) (DESC "pantry") (FLAGS NDESCBIT) (ACTION GLOBAL-ROOM-F)>
<DEFINE-ROUTINE PANTRY-F>
<OBJECT SCREENING-DOOR (LOC LOCAL-GLOBALS) (DESC "screening door") (SYNONYM
DOOR) (ADJECTIVE SCREENING) (FLAGS DOORBIT NDESCBIT ACTORBIT) (ACTION
SCREENING-DOOR-F)>
<DEFINE-ROUTINE SCREENING-DOOR-F>
<OBJECT MARVIN (LOC PANTRY) (DESC "Marvin") (LDESC
"Marvin, the Paranoid Android, is here.") (SYNONYM MARVIN MARV ROBOT ANDROID) (
ADJECTIVE DEPRESSED PARANOID) (FLAGS NARTICLEBIT ACTORBIT) (ACTION MARVIN-F)>
<DEFINE-ROUTINE MARVIN-F>
<DEFINE-ROUTINE I-MARVIN>
<DEFINE-ROUTINE MARVIN-BITCH>
<GLOBAL MARVIN-COUNTER 0>
<GLOBAL TOOL-REQUIRED <>>
<GLOBAL FLUFF-COUNTER 0>
<GLOBAL PLANT-BLOOMED <>>
<OBJECT FLOWERPOT (LOC INSIDE-WHALE) (DESC "flowerpot") (SYNONYM FLOWERPOT POT
SOIL DIRT) (ADJECTIVE FLOWER FERTILE) (CAPACITY 1) (SIZE 15) (FLAGS TAKEBIT
CONTBIT OPENBIT) (ACTION FLOWERPOT-F)>
<DEFINE-ROUTINE FLOWERPOT-F>
<DEFINE-ROUTINE I-PLANT>
<OBJECT PLANT (LOC LOCAL-GLOBALS) (DESC "plant") (SYNONYM PLANT SPROUT STEM
STALK) (ADJECTIVE SMALL LARGE LEAFY) (FLAGS NDESCBIT INTEGRALBIT) (ACTION
PLANT-F)>
<DEFINE-ROUTINE PLANT-F>
<OBJECT FRUIT (LOC LOCAL-GLOBALS) (DESC "fruit") (SYNONYM FRUIT) (ADJECTIVE
LARGE SUCCULENT) (FLAGS NDESCBIT TRYTAKEBIT TAKEBIT EATBIT) (ACTION FRUIT-F)>
<DEFINE-ROUTINE FRUIT-F>
<ROOM GALLEY (LOC ROOMS) (SYNONYM CORPORATI SCC) (ADJECTIVE SIRIUS CYBERNETI) (
DESC "Galley") (EAST TO FORE-CORRIDOR) (OUT TO FORE-CORRIDOR) (FLAGS RLANDBIT
ONBIT) (GLOBAL HEART-OF-GOLD) (ACTION GALLEY-F)>
<OBJECT GALLEY-PSEUDO (LOC GALLEY) (SYNONYM GALLEY) (DESC "galley") (FLAGS
NDESCBIT) (ACTION GLOBAL-ROOM-F)>
<DEFINE-ROUTINE GALLEY-F>
<OBJECT NUTRIMAT (LOC GALLEY) (DESC "Nutrimat") (SYNONYM NUTRIMAT MACHINE PANEL
) (ADJECTIVE SERVICE) (FLAGS NDESCBIT ACTORBIT CONTBIT LIGHTBIT SEARCHBIT) (
ACTION NUTRIMAT-F)>
<DEFINE-ROUTINE NUTRIMAT-F>
<OBJECT PAD (LOC GALLEY) (DESC "touch-sensitive pad") (SYNONYM PAD) (ADJECTIVE
TOUCH SENSITIVE TOUCH-SEN) (FLAGS NDESCBIT) (ACTION PAD-F)>
<DEFINE-ROUTINE PAD-F>
<OBJECT SLOT (LOC GALLEY) (DESC "slot") (SYNONYM SLOT) (ADJECTIVE DISPENSER) (
FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT) (CAPACITY 20) (ACTION SLOT-F)>
<DEFINE-ROUTINE SLOT-F>
<OBJECT BOARD (LOC NUTRIMAT) (DESC "circuit board") (SYNONYM BOARD MESSAGE
LETTER MICROCHIP) (ADJECTIVE CIRCUIT MICROSCOP PRINTED) (FLAGS TAKEBIT CONTBIT
TRANSBIT) (ACTION BOARD-F)>
<DEFINE-ROUTINE BOARD-F>
<OBJECT DIPSWITCH (LOC BOARD) (DESC "dipswitch") (SYNONYM SWITCH DIPSWITCH) (
ADJECTIVE DIP FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENT EIGHTH) (FLAGS
NDESCBIT SWITCHBIT) (ACTION DIPSWITCH-F)>
<DEFINE-ROUTINE DIPSWITCH-F>
<OBJECT SUBSTITUTE (LOC PAD) (DESC "Advanced Tea Substitute") (DESCFCN
SUBSTITUTE-DESCFCN) (SYNONYM CUP CUPFUL SUBSTITUT ATS) (ADJECTIVE TEA ADVANCED
NICE HOT) (FLAGS NARTICLEBIT VOWELBIT TAKEBIT DRINKBIT) (ACTION SUBSTITUTE-F)>
<DEFINE-ROUTINE SUBSTITUTE-DESCFCN>
<DEFINE-ROUTINE SUBSTITUTE-F>
<OBJECT INTERFACE-BOX (LOC GALLEY) (DESC "shipping carton") (LDESC
"A carton labelled \"Nutrimat/Computer Interface\" is sitting here.") (SYNONYM
CARTON BOX) (ADJECTIVE SHIPPING) (FLAGS CONTBIT TAKEBIT SEARCHBIT READBIT) (
SIZE 15) (CAPACITY 14) (ACTION INTERFACE-BOX-F)>
<DEFINE-ROUTINE INTERFACE-BOX-F>
<OBJECT BEAST-GUN (LOC INTERFACE-BOX) (DESC "strange gun") (SYNONYM GUN WEAPON)
(ADJECTIVE STRANGE RAY ANTI-BUGB BEAST) (FLAGS TAKEBIT) (SIZE 4) (ACTION
BEAST-GUN-F)>
<DEFINE-ROUTINE BEAST-GUN-F>
<GLOBAL GUN-COUNTER 0>
<GLOBAL TEA-COUNTER 0>
<GLOBAL LANDED <>>
<DEFINE-ROUTINE I-TEA>
<DEFINE-ROUTINE I-LANDING>
<ROOM BRIDGE (LOC ROOMS) (SYNONYM MOVEMENT MOTION RANDOM) (ADJECTIVE BROWNIAN)
(DESC "Bridge") (DOWN TO FORE-CORRIDOR) (WEST PER SAUNA-ENTER-F) (FLAGS ONBIT
RLANDBIT) (GLOBAL STAIRS CONTROLS HEART-OF-GOLD PEOPLE) (ACTION BRIDGE-F)>
<OBJECT SAUNA (LOC BRIDGE) (SYNONYM SAUNA) (DESC "sauna") (FLAGS NDESCBIT) (
ACTION SAUNA-PSEUDO)>
<DEFINE-ROUTINE SAUNA-ENTER-F>
<DEFINE-ROUTINE BRIDGE-F>
<DEFINE-ROUTINE SAUNA-PSEUDO>
<DEFINE-ROUTINE PEOPLE-PSEUDO>
<OBJECT EDDIE (LOC BRIDGE) (DESC "Eddie (the shipboard computer)") (SYNONYM
EDDIE ED COMPUTER) (ADJECTIVE SHIP\'S SHIPBOARD) (FLAGS VOWELBIT NARTICLEBIT
NDESCBIT ACTORBIT LIGHTBIT ONBIT) (ACTION EDDIE-F)>
<DEFINE-ROUTINE EDDIE-F>
<OBJECT LARGE-RECEPTACLE (LOC BRIDGE) (DESC "large receptacle") (SYNONYM
RECEPTACL) (ADJECTIVE LARGE MANUAL OVERRIDE) (FLAGS NDESCBIT) (ACTION
LARGE-RECEPTACLE-F)>
<DEFINE-ROUTINE LARGE-RECEPTACLE-F>
<OBJECT PHIL (LOC LOCAL-GLOBALS) (DESC "Phil") (LDESC "Phil is here.") (SYNONYM
PHIL) (FLAGS NARTICLEBIT ACTORBIT) (ACTION ZAPHOD-F)>
<OBJECT ZAPHOD (LOC BRIDGE) (DESC "Zaphod Beeblebrox") (SYNONYM BEEBLEBRO
ZAPHOD PRESIDENT) (ADJECTIVE ZAPHOD PRESIDENT) (FLAGS NARTICLEBIT ACTORBIT
NDESCBIT) (ACTION ZAPHOD-F)>
<DEFINE-ROUTINE ZAPHOD-F>
<DEFINE-ROUTINE I-ZAPHOD>
<OBJECT TRILLIAN (LOC BRIDGE) (DESC "Trillian") (SYNONYM TRILLIAN MCMILLAN
WOMAN TRICIA) (ADJECTIVE TRICIA DARK-HAIR DARK HAIRED) (FLAGS NARTICLEBIT
ACTORBIT NDESCBIT CONTBIT OPENBIT) (ACTION TRILLIAN-F)>
<DEFINE-ROUTINE TRILLIAN-F>
<OBJECT HANDBAG (LOC TRILLIAN) (DESC "handbag") (SYNONYM HANDBAG BAG PURSE) (
FLAGS CONTBIT TAKEBIT TRYTAKEBIT SEARCHBIT NDESCBIT) (SIZE 15) (CAPACITY 10) (
ACTION HANDBAG-F)>
<DEFINE-ROUTINE HANDBAG-F>
<ROOM FORE-CORRIDOR (LOC ROOMS) (DESC "Corridor, Fore End") (UP TO BRIDGE) (
NORTH TO ENTRY-BAY) (WEST TO GALLEY) (SOUTH TO AFT-CORRIDOR) (FLAGS ONBIT
RLANDBIT) (GLOBAL STAIRS HEART-OF-GOLD) (ACTION FORE-CORRIDOR-F)>
<DEFINE-ROUTINE FORE-CORRIDOR-F>
<ROOM AFT-CORRIDOR (LOC ROOMS) (SYNONYM ROBOT ROBOTS) (ADJECTIVE CLEANING UPPER
LOWER) (DESC "Corridor, Aft End") (SOUTH PER ENGINE-ROOM-ENTER-F) (NORTH TO
FORE-CORRIDOR) (WEST TO PANTRY IF SCREENING-DOOR IS OPEN) (DOWN TO HATCHWAY) (
FLAGS RLANDBIT ONBIT) (GLOBAL STAIRS HEART-OF-GOLD SCREENING-DOOR) (ACTION
AFT-CORRIDOR-F)>
<DEFINE-ROUTINE AFT-CORRIDOR-F>
<DEFINE-ROUTINE I-REPLY>
<GLOBAL AWAITING-REPLY <>>
<GLOBAL ARGUMENT-COUNTER 0>
<GLOBAL LOOK-COUNTER 0>
<DEFINE-ROUTINE ENGINE-ROOM-ENTER-F>
<DEFINE-ROUTINE I-ARGUMENT>
<ROOM ENTRY-BAY (LOC ROOMS) (SYNONYM BLASTER) (ADJECTIVE PAN-GALACT GARGLE) (
DESC "Entry Bay Number Two") (LDESC
"This is an entry bay for the Heart of Gold. A corridor lies aft of here.") (
SOUTH TO FORE-CORRIDOR) (FLAGS RLANDBIT ONBIT NARTICLEBIT) (GLOBAL
HEART-OF-GOLD) (ACTION ENTRY-BAY-F)>
<DEFINE-ROUTINE ENTRY-BAY-F>
<OBJECT SALES-BROCHURE (LOC ENTRY-BAY) (DESC "sales brochure") (SYNONYM
BROCHURE) (ADJECTIVE SALES) (FLAGS TAKEBIT READBIT) (ACTION SALES-BROCHURE-F)>
<DEFINE-ROUTINE SALES-BROCHURE-F>
<ROOM ENGINE-ROOM (LOC ROOMS) (SYNONYM IMPROBABI PHYSICS DRIVES PROBABILI) (
ADJECTIVE IMPROBABI INFINITY) (DESC "Engine Room") (NORTH TO AFT-CORRIDOR) (OUT
TO AFT-CORRIDOR) (FLAGS RLANDBIT ONBIT) (GLOBAL HEART-OF-GOLD) (ACTION
ENGINE-ROOM-F)>
<DEFINE-ROUTINE ENGINE-ROOM-F>
<OBJECT MAIN-DRIVE (LOC LOCAL-GLOBALS) (DESC "main Improbability Drive") (
SYNONYM DRIVE GENERATOR) (ADJECTIVE MAIN INFININY IMPROBABI) (FLAGS NDESCBIT
LIGHTBIT) (GENERIC SPARE-DRIVE) (ACTION MAIN-DRIVE-F)>
<DEFINE-ROUTINE MAIN-DRIVE-F>
<GLOBAL DRIVE-TO-CONTROLS <>>
<GLOBAL DRIVE-TO-PLOTTER <>>
<GLOBAL BROWNIAN-SOURCE <>>
<GLOBAL DARK-CONTROLLED <>>
<OBJECT SPARE-DRIVE (LOC LOCAL-GLOBALS) (DESC "spare Improbability Drive") (
FDESC "Sitting in the corner is a spare, portable Improbability Generator.") (
SYNONYM DRIVE GENERATOR) (ADJECTIVE SPARE PORTABLE INFINITY IMPROBABI) (FLAGS
TAKEBIT TRANSBIT CONTBIT LIGHTBIT) (SIZE 50) (GENERIC SPARE-DRIVE) (ACTION
SPARE-DRIVE-F)>
<DEFINE-ROUTINE SPARE-DRIVE-F>
<OBJECT LARGE-PLUG (LOC SPARE-DRIVE) (DESC "large plug") (SYNONYM CORD PLUG) (
ADJECTIVE LARGE LONG) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 1) (ACTION
LARGE-PLUG-F)>
<DEFINE-ROUTINE LARGE-PLUG-F>
<OBJECT SMALL-PLUG (LOC SPARE-DRIVE) (DESC "small plug") (SYNONYM CORD PLUG) (
ADJECTIVE SMALL SHORT) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 1) (ACTION
SMALL-PLUG-F)>
<DEFINE-ROUTINE SMALL-PLUG-F>
<OBJECT SWITCH (LOC SPARE-DRIVE) (DESC "generator switch") (SYNONYM SWITCH) (
ADJECTIVE GENERATOR) (FLAGS NDESCBIT SWITCHBIT) (SIZE 1) (ACTION SWITCH-F)>
<DEFINE-ROUTINE SWITCH-F>
<GLOBAL DARK-ENTRANCES <PLTABLE
"You are disoriented. Blackness swims toward you like a shoal of eels who
have just seen something that eels like a lot..."
"Like fog rolling in off the ocean, a shroud of blackness billows toward
you. Unlike fog rolling in off the ocean, the blackness hits you like
a sixteen-tonne truck..."
"A mist spins round your head. You fall into what seems like a bottomless
pit. Suddenly, you hit the bottom so hard that you wish it had been
bottomless...">>
<OBJECT PLOTTER (LOC GLASS-CASE) (DESC "atomic vector plotter") (DESCFCN
PLOTTER-DESCFCN) (SYNONYM PLOTTER) (ADJECTIVE ATOMIC VECTOR) (FLAGS VOWELBIT
TAKEBIT CONTBIT TRANSBIT TRYTAKEBIT) (SIZE 20) (ACTION PLOTTER-F)>
<DEFINE-ROUTINE PLOTTER-DESCFCN>
<DEFINE-ROUTINE PLOTTER-F>
<OBJECT SMALL-RECEPTACLE (LOC PLOTTER) (DESC "small receptacle") (SYNONYM
RECEPTACL) (ADJECTIVE SMALL) (SIZE 1) (FLAGS NDESCBIT INTEGRALBIT)>
<OBJECT DANGLY-BIT (LOC PLOTTER) (DESC "long, dangly bit") (SYNONYM BIT) (
ADJECTIVE LONG DANGLY) (FLAGS NDESCBIT INTEGRALBIT) (SIZE 1) (ACTION
DANGLY-BIT-F)>
<DEFINE-ROUTINE DANGLY-BIT-F>
<ROOM HATCHWAY (LOC ROOMS) (SYNONYM GPP PERSONALI) (ADJECTIVE GENUINE PEOPLE) (
DESC "Hatchway") (UP TO AFT-CORRIDOR) (DOWN TO RAMP IF HATCH IS OPEN) (OUT TO
RAMP IF HATCH IS OPEN) (EAST PER ACCESS-SPACE-ENTER-F) (FLAGS ONBIT RLANDBIT) (
GLOBAL STAIRS HEART-OF-GOLD) (ACTION HATCHWAY-F)>
<DEFINE-ROUTINE HATCHWAY-F>
<DEFINE-ROUTINE ACCESS-SPACE-ENTER-F>
<DEFINE-ROUTINE ACCESS-SPACE-LOOP>
<OBJECT HATCH (LOC LOCAL-GLOBALS) (DESC "hatch") (SYNONYM HATCH HATCHWAY) (
ACTION HATCH-F)>
<DEFINE-ROUTINE HATCH-F>
<OBJECT MECHANISM (LOC LOCAL-GLOBALS) (DESC "mechanism") (SYNONYM MECHANISM) (
ADJECTIVE HATCH HATCHWAY) (ACTION MECHANISM-F)>
<DEFINE-ROUTINE MECHANISM-F>
<ROOM ACCESS-SPACE (LOC ROOMS) (SYNONYM AGENCY) (ADJECTIVE GALACTIC SECURITY) (
DESC "Access Space") (OUT TO HATCHWAY) (WEST TO HATCHWAY) (FLAGS ONBIT RLANDBIT
) (GLOBAL HEART-OF-GOLD) (ACTION ACCESS-SPACE-F)>
<OBJECT MESH (LOC ACCESS-SPACE) (SYNONYM MESH) (DESC "mesh") (FLAGS NDESCBIT) (
ACTION MESH-PSEUDO)>
<DEFINE-ROUTINE ACCESS-SPACE-F>
<DEFINE-ROUTINE MESH-PSEUDO>
<ROOM RAMP (LOC ROOMS) (SYNONYM PLANET MAGRATHEA) (ADJECTIVE LEGENDARY) (DESC
"Ramp") (LDESC "The wind moans. Dust drifts across the surface of the alien world. Zaphod,
Ford, and Trillian appear and urge you forward.") (FLAGS RLANDBIT ONBIT) (
ACTION RAMP-F)>
<DEFINE-ROUTINE RAMP-F>

1640
heart.zap Normal file

File diff suppressed because it is too large Load Diff

1950
heart.zil Normal file

File diff suppressed because it is too large Load Diff

771
hints.zabstr Normal file
View File

@ -0,0 +1,771 @@
<FILE-FLAGS CLEAN-STACK?>
<GLOBAL HINT-WARNING <>>
<GLOBAL HINTS-OFF <>>
<DEFINE-ROUTINE V-HINTS-NO>
<DEFINE-ROUTINE V-HINTS>
<DEFINE-ROUTINE PICK-QUESTION>
<GLOBAL LINE-TABLE <PTABLE 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22>>
<GLOBAL COLUMN-TABLE <PTABLE 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4>>
<GLOBAL CUR-POS 0>
<GLOBAL QUEST-NUM 1>
<GLOBAL CHAPT-NUM 1>
<DEFINE-ROUTINE ERASE-CURSOR>
<DEFINE-ROUTINE NEW-CURSOR>
<DEFINE-ROUTINE INVERSE-LINE>
<DEFINE-ROUTINE DISPLAY-HINT>
<DEFINE-ROUTINE PUT-UP-QUESTIONS>
<DEFINE-ROUTINE PUT-UP-CHAPTERS>
<DEFINE-ROUTINE INIT-HINT-SCREEN>
<DEFINE-ROUTINE CENTER-LINE>
<DEFINE-ROUTINE LEFT-LINE>
<DEFINE-ROUTINE RIGHT-LINE>
<GLOBAL DIROUT-TBL <TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL HINTS <PLTABLE <PLTABLE "ON THE EARTH" <LTABLE 3
"How do I get out of the dark?" "TURN ON THE LIGHT."> <LTABLE 3
"Why can't I pick things up?" "Are you out of the bed with the light on?"
"The room is spinning because you have a hangover."
"There is ONE thing you can pick up." "It's the gown."> <LTABLE 3
"How can I get out of the bedroom?"
"You bounce off the doorframe because the room is spinning from your hangover."
"You'll have to get rid of it." "See the previous question."
"There's an aspirin in the pocket of the gown."
"TAKE GOWN. PUT IT ON. OPEN THE POCKET. TAKE THE ANALGESIC."> <LTABLE 3
"Is the pile of mail important?" "Have you read the mail?"
"Now you know what's going on outside."
"Take it along, it might prove useful later."> <LTABLE 3
"What's that bulldozer doing outside?"
"Have you read the pile of mail on your Front Porch?"
"It's there to knock down your house to make way for a new highway bypass."> <
LTABLE 3 "How do I stop the bulldozer?"
"There's a tried and true method for stopping bulldozers."
"Have you tried phoning the police?"
"Have you tried to PROTEST or asked PROSSER, STOP THE BULLDOZER?"
"Have you tried to STAND IN FRONT OF THE BULLDOZER?"
"In case you haven't figured it out from these subtle clues, you want to LIE DOWN IN FRONT OF THE BULLDOZER."
"BLOCK THE BULLDOZER, STOP THE BULLDOZER, or LIE DOWN also work."
"You'll have to wait a few turns after you lie down before the bulldozer finally grinds to a halt."
> <LTABLE 3 "What should I do with Ford Prefect?"
"If you take the towel he's trying to give you, he'll walk away."
"Standing up to follow him is fatal."
"Without Ford you'll never survive the upcoming destruction of the Earth."
"Ford is oblivious to your problem. If you wait, he'll notice the bulldozer, and help you out."
"Or you can say FORD, WHAT ABOUT MY HOME? as soon as he arrives."> <LTABLE 3
"Should I go with Ford to the Pub?"
"Don't stand up until Prosser is lying down in your place."
"This will happen if you wait a few turns after Ford shows up."
"At this point, listen to Ford and follow him to the Pub."> <LTABLE 3
"What should I do in the Pub?" "You came here because of Ford, right?"
"Why not do as he says?" "Drink some beer."
"Also, have you noticed the shelf of items behind the bar?"> <LTABLE 3
"How much beer should I drink?"
"Ford will keep urging you to drink beer until you've had enough."
"If you have fewer than three beers, the shock of the matter transference beam will kill you."
"If you have more than three beers, you'll get drunk and end up partying through the end of the world."
"Drink the beer three times."> <LTABLE 3 "How can I buy beer?" "You can't."
"But so what? Ford buys some for you."> <LTABLE 3
"How can I buy a packet of peanuts?" "You can't."
"At least, not when you're Arthur."> <LTABLE 3
"How can I buy a cheese sandwich?" "How about BUY A CHEESE SANDWICH."
"Or BARTENDER, GIVE ME A CHEESE SANDWICH."
"Perhaps ASK BARTENDER FOR A SANDWICH is more up your alley."> <LTABLE 3
"My home's being wrecked. What now?" "There's not much you can do about it."
"You might return to survey the rubble, or to have it out with Prosser."> <
LTABLE 3 "What should I do about the dog?" "Have you examined the dog?"
"If you haven't figured it out, you'll find out more later."> <LTABLE 3
"How do I survive Earth's demolition?" "DON'T PANIC."
"Read everything carefully."
"Remember Ford's reason for drinking all that beer?"
"It has to do with that small black device that Ford drops after the fleet arrives."
"Have you tried picking it up?" "Have you tried examining it?"
"You want to hitch a ride aboard one of the Vogon ships."
"PUSH THE GREEN BUTTON."> <LTABLE 3 "Why do I die during transference?"
"You didn't drink enough beer."
"See the question about how much beer to drink.">> <PLTABLE "IN THE DARK" <
LTABLE 3 "Help! I'm stuck in the Dark!"
"If this \"Dark\" is at the very beginning of the game, you're in the wrong place. Look at the very first question."
"You've been through a matter transference beam, and still haven't recovered from the shock of it."
"Recovery takes time..."
"...but in this case, you'll have to do more than just wait."> <LTABLE 3
"How do I get out of this Dark?" "Have patience." "Read carefully."
"If you've waited enough you'll begin to get some clues."
"Read each response to WAITing in the Dark very carefully."
"There's an important difference between the third and fourth responses."
"You are no longer told that you can't smell anything."
"Try SMELL THE DARKNESS or SMELL NOTHING or even just SMELL."> <LTABLE 3
"What's this shadow I see?" "That's your way out of Dark."
"EXAMINE THE SHADOW."> <LTABLE 3 "Help! I'm in the blasted Dark AGAIN!"
"Unless you've been to the Vogon Hold, you're at the wrong question."
"You've been through Dark at least once before, so you know what's going on."
"This time, though, it isn't smell that goes away on the fourth description."
"It's hearing." "Try HEAR NOTHING or LISTEN TO DARKNESS."
"There is an exit to port. Try going that way."
"Be persistent. Try going PORT a few more times."
"Perhaps AFT would be more productive, come to think of it."> <LTABLE 3
"Exactly how does Dark work?"
"You enter Dark when Earth is destroyed, and other times throughout the game."
"At the fourth turn in Dark, one of your five senses will disappear."
"You should type the sense that no longer appears, such as SMELL or SEE."
"The first time, smell will go away. See the first question in this section."
"The second time, hearing will go away. See the third question in this section."
"On subsequent visits to Dark, the sense that disappears will be fairly random. See the following question for more details."
> <LTABLE 3 "Can I control my exit from Darkness?" "Not usually."
"Don't continue until you have a cup of tea."
"Don't continue until you have real tea, not merely Advanced Tea Substitute."
"Have you ever examined the cup of tea?"
"Tea is a better source of Brownian Motion for the Improbability Drive than the Advanced Tea Substitute (ATS). Try it."
"Notice anything different about Dark when you use tea instead of ATS?"
"For one thing, a sense is missing right away, rather than after three WAITs."
"More importantly, with tea, a different sense will be missing each time you WAIT. Thus, you can \"control Dark.\""
"There are eight exits from Dark (taste never goes away), so there are two Dark exits for each missing sense."
"There is a way to differentiate between each pair."
"For example, when smell disappears, type SMELL DARK. If the object is \"being waved,\" then the exit leads to the Vogon Hold. If the object is \"waving,\" the exit is the Lair of the Ravenous Bugblatter Beast of Traal."
"When hearing is missing: If the sound is \"far above you,\" then your exit is Entry Bay Number Two of the Heart of Gold. If it's \"far below you,\" then it's the War Chamber of the battle fleet."
"If seeing is the missing sense: When the light stabs at the \"front\" of your eyes, then your exit is the Country Lane. When it's at the \"back\" of your eyes, then you go onto the Presidential Speedboat."
"When feel is missing: If it feels \"cold\" and wet and squishy, the exit is to the Living Room party. When it's \"warm,\" your exit is into the sperm whale."
"When you are controlling dark and have determined your current exit, but you don't want to go there, simply WAIT and you will get a new missing sense. NOTE: You will never get the whale exit unless you are using real tea for your Brownian Motion source."
>> <PLTABLE "THE VOGON SHIP" <LTABLE 3 "Where the heck am I?"
"As your status line says, you are in the Vogon Hold."
"ASK FORD ABOUT THE EARTH."
"The Earth has been destroyed by the Vogon fleet. You and Ford have hitched a ride aboard one of the ships of the Vogon Fleet by using the electronic Sub-Etha signaling device, also known as a Thumb."
> <LTABLE 3 "Why do I get groggy and die?"
"This is caused by your protein loss during the matter transference beams."
"Do you have anything with a lot of protein in it?"
"It's something that Ford just gave you."
"It's frequently found on shelves behind bars in Pubs." "EAT THE PEANUTS."> <
LTABLE 3 "What's this Guide Ford gives me?"
"That's the Hitchhiker's Guide to the Galaxy."
"It's the single most useful thing an intergalactic hitchhiker (or Infocom game player) can have."
"See the Hitchhiker's Guide question in the General Questions section for more information."
> <LTABLE 3 "How can I wake Ford?" "Have you tried WAKE FORD?"
"You can't wake Ford." "You'll have to get the babel fish on your own."> <
LTABLE 3 "How do I open the case?"
"There's a switch and a keyboard attached to the case."
"SAVE first, then try typing on the keyboard. For example, TYPE \"HELLO.\""
"Well, perhaps that wasn't such a great idea. Try flipping the switch."
"If the recording was gibberish, you'll have to find a way to translate it."
"See the question about the babel fish."
"Once you have the babel fish, flip the switch again."
"Now you know what to type. Just wait around to hear the captain's poetry reading and see the question about what's going on in the Captain's Quarters."
> <LTABLE 3 "What is the tall dispensing machine?" "Examine it."> <LTABLE 3
"Why does the machine go \"click\"?" "It's out of fish. Time to RESTORE."> <
LTABLE 3 "What is a babel fish?" "Consult the Guide."> <LTABLE 3
"How can I get a babel fish?" "Have you pressed the dispenser button?"
"You need to block the small hole." "Use the hook above the hole."
"Hang something on the hook." "Examine the gown."
"Hang the gown on the hook, then press the button again."
"You'll have to block the drain."
"There's only one thing large enough to completely cover the drain."
"Cover the drain with the towel, then push the button again."
"You have to block the tiny robot panel."
"Standing or lying in front of the panel won't work."
"You have to put some object in front of the panel."
"If it isn't bulky enough, the cleaning robot dashes around it."
"The satchel is bulky. Put it in front of the panel, then push the button again."
"At this point, brave men have been known to break down and cry."
"Read, very carefully, the paragraph when Ford goes to sleep."
"When you placed the satchel in front of the panel, the satchel is now LYING ON ITS SIDE in front of the panel."
"You can put an object on top of the satchel."
"Put something on the satchel, then push the button again."
"The upper-half-of-the-room cleaning robot just manages to catch the second item."
"If there were several items on the satchel, they would all fly into the air and confuse the flying robot."
"Unfortunately, there's only room for one object on the satchel."
"Is there an object that when flung into the air might act as many items?"
"When the upper-half-of-the-room cleaning robot grabbed the babel fish the first time it said that the fish was \"the only flying junk\" that the robot found."
"Put the junk mail on the satchel, then press the button one last time."> <
LTABLE 3 "What's the gibberish I hear?" "It's an announcement in Vogonese."
"If you want to understand the announcement, you'll have to discover a way to translate it."
"See the questions about the babel fish."
"The announcement will begin 18 turns after you enter the Vogon Hold, or 3 turns after you obtain the babel fish."
> <LTABLE 3 "Why are the guards dragging me away?"
"See the question about the gibberish from the intercom."
"The guards will arrive 36 turns after you arrive in the Vogon Hold, or 5 turns after you obtain a babel fish."
> <LTABLE 3 "What happens in Captain's Quarters?"
"Don't go on unless you've translated the garbled announcement."
"Don't go on until you've figured out what's going on with the glass case and switch and keyboard."
"You are at a Vogon Poetry Appreciation Session. The Vogon Captain is about to read you his favourite poem. The Guide's entry on Vogon Poetry makes clear that this is extremely nasty."
"You should now know that you have to listen to the second verse (not line) of the poem in order to get the atomic vector plotter."
"This poetry is painfully awful. Have you tried to STOP THE POETRY or COVER MY EARS or DON'T LISTEN TO THE VOGON POETRY."
"When he finishes the first verse the Captain says, \"You didn't look like you enjoyed my poetry at all!\" and then has you thrown into space."
"Why not relax and enjoy it?"
"ENJOY THE POETRY while the Captain reads the first verse. He will continue on and read the second verse."
"Now that you've heard the glass case's recording AND the second verse of the poem, you know what to type on the keyboard to get the atomic vector plotter. (When the guards drag you back into the Vogon Hold, of course.)"
"For example, if the recording asked you to type the second word from the second verse, and the word was \"lyshus,\" you should type TYPE \"LYSHUS\" when you get back to the Vogon Hold. NOTE: Each time you play the game, the lines of the second verse come in different orders. Similarly, the glass case's recording asks for a different number word each time you play."
> <LTABLE 3 "Can I stop being put in the airlock?"
"There's no way to prevent this."
"However, you should make sure that you've accomplished everything that needs to be accomplished aboard the Vogon ship before this occurs."
"You should have gotten the atomic vector plotter."> <LTABLE 3
"Can I survive in outer space?"
"Yes. In fact, there's no way to NOT survive it."
"If you wait, you'll find yourself in the Dark again."
"Examine the Thumb while in the Airlock."
"Apparently, there's another spaceship nearby. Try hitchhiking by pressing the green button."
"This sends you through a matter transference beam, and you find yourself in the Dark again."
"Both methods of surviving the Airlock are equivalent.">> <PLTABLE
"THE HEART OF GOLD" <LTABLE 3 "Who picked us up hitchhiking?" "Listen to Ford."
"Read the sales brochure that's in the Entry Bay."
"You've just been picked up by a fantastic new spaceship powered by something called an Infinite Improbability Drive. Find out more about the drive."
"To find out who owns the ship, stick around on the bridge and pay attention to what everyone is saying."
"The woman is Tricia MacMillan, known as Trillian. She's an Earthwoman whom you met at a party in Islington not too long ago, at which time you totally failed to impress her. She eventually left the party with a guy named Phil...who is, you realize, the two-headed man standing next to her."
"The man is Zaphod Beeblebrox, current President of the Galaxy, who has stolen this revolutionary new Infinite Improbability Drive-powered spaceship in order to locate the legendary lost planet of Magrathea. Zaphod and Ford know each other."
"That you should be picked up in the vast emptiness of space by a ship inhabited by an acquaintance from your now destroyed native planet as well as your travelling companion's semi-cousin, can only be considered highly improbable. But then, with Infinite Improbability Drives at work, the infinitely improbable is not only possible but quite likely."
> <LTABLE 3 "How can I enter the sauna?" "From the Bridge, walk to port."
"There is no way to actually STAY in the sauna."
"Therefore, once Ford, Zaphod, and Trillian enter the sauna, they will be effectively inaccessible to you for the remainder of the game."
> <LTABLE 3 "Is Eddie, the ship computer, of use?"
"Without Eddie, who would make all those fun announcements?"
"Eddie is the only one who can turn on the main drive."
"But he won't obey your order to do that, only Zaphod's."
"Eddie's help is indirectly necessary to obtain a cup of tea."
"But in terms of solving puzzles, you can basically ignore Eddie."> <LTABLE 3
"Are the Bridge controls useful?" "Have you examined them?"
"The large receptacle is important."
"Don't go on until you've figured out how to set up and use the spare Improbability Drive."
"The large plug from the spare Drive can be plugged into the large receptacle."
"But that isn't necessarily the right thing to do."
"In fact, when you plug in the spare Drive at the wrong time, Eddie warns you that it's only for emergencies."
"When you use the drive while it's plugged into the large receptacle, both the large receptacle and the large plug are destroyed."
"You can only use the drive while connected to the controls ONCE during the course of the game."
"See the question about the missile attack at the end of this section."> <
LTABLE 3 "How does the Nutrimat work?"
"All you have to do is touch the touch-sensitive pad."
"The Nutrimat does all the rest, and in seconds you'll have your very own cup of incredibly delicious Advanced Tea Substitute (ATS)."
"Well, maybe not so delicious. But at least useful."
"Actually, there is a way to get something else from the Nutrimat."
"It's a cup of tea (REAL tea, not ATS)."
"But first, you'll need something that isn't in the Galley."
"In fact, it isn't even in the Heart of Gold."
"Don't go on unless you have the Nutrimat/Computer Interface (not to be confused with the shipping carton for the interface)."
"Use the interface."
"Open the service panel and remove the circuit board. Now, put the interface inside the Nutrimat. Finally, touch the pad!"
"Still having trouble getting tea? See the question about the missile attack. It's the last question in this section."
> <LTABLE 3 "What is the Advanced Tea Substitute?"
"ATS is useful, although drinking it is a bad idea."
"Have you ever examined it?"
"Have you discovered a need for a source of Brownian Motion?"
"See the question about the spare Improbability Drive."> <LTABLE 3
"Is the cup of tea important?"
"Don't go on unless you actually have the cup of tea."
"Don't go on unless this cup of tea is REAL tea, not just Advanced Tea Substitute (ATS)."
"Have you ever examined the tea?"
"Because it has even more Brownian Motion than the ATS, it will make a better source of it for the spare Improbability Drive. Try it."
"See the question about controlling where you go when you leave Dark, in the section called \"In the Dark\"."
> <LTABLE 3 "How do I adjust the circuit board?"
"You can remove it from the Nutrimat." "Have you examined it?"
"You can flip any of the eight dipswitches."
"You can even flip them while the circuit board is still in the Nutrimat."
"Have you noticed the message in tiny letters on the board?"
"There IS a way to read that message."
"Don't go on until you've been on Damogran."
"Don't go on until you've opened the toolbox."
"READ THE MESSAGE THROUGH THE MAGNIFYING GLASS."> <LTABLE 3
"Is the shipping carton important?" "Try examining or reading it."
"Have you opened the carton?"
"The Sirius Cybernetics Corporation has apparently screwed up (a common occurrence) and put the wrong item inside the shipping carton."
"You'll be able to find the Nutrimat/Computer Interface elsewhere in the game."
> <LTABLE 3 "Is the strange gun important?" "Have you examined or read it?"
"Don't go on unless you've been in the Lair."
"Have you tried shooting the gun at the Beast?"
"Have you tried it several times?"
"The gun is completely worthless, useless, and unimportant."> <LTABLE 3
"Can I go aft from Corridor, Aft End?" "Yes, but not without a fight."
"You'll have to argue with the game for a few turns."
"Usually, YES or NO responses are sufficient."
"The proper sequence, from the Corridor, Aft End is AFT. YES. YES. AFT. NO."> <
LTABLE 3 "Is anything in the Engine Room?"
"Have you gotten into the Engine Room? If not, you should do so before looking at the next hint."
"The game claims that there's nothing interesting there."
"However, after losing that argument with you, the game is probably a bit peeved and is acting petulant."
"You'll have to be persistent if you want to find out what's in the Engine Room."
"Type LOOK three times. The game will then give in and describe the room and the stuff there."
> <LTABLE 3 "Is the spare Drive important?"
"Read the Guide entry on Improbability Physics."
"You'll need the atomic vector plotter from the Vogon Hold. If you never got it while you were aboard the Vogon ship, you'll have to start the game over or go back to a saved position."
"You'll also need a good source of Brownian Motion."
"Consult the Hitchhiker's Guide about Brownian Motion."
"Have you seen any hot liquids?"
"You'll need the cup of Advanced Tea Substitute (ATS), which you can get from the Nutrimat in the Galley."
"Now that you have all three items (spare Drive, plotter, and cup of ATS), you should be able to figure out how to hook them together."
"Examine all three items."
"You want to plug the small plug (from the drive) into the small receptacle (in the atomic vector plotter). Put the plotter's long dangly bit into the cup of ATS."
"That still leaves the drive's large plug unattached. See the question about the controls on the Bridge."
> <LTABLE 3 "How can I open the screening door?"
"This is a very difficult problem."
"Furthermore, you won't be able to tackle it until you're pretty far into the game. Don't let it worry you until you get up around 200 points."
"Don't develop any further unless you've gotten the cup of tea (real tea, not Advanced Tea Substitute)."
"Presumably you've tried OPEN THE DOOR."
"You have to show an example of your intelligence to the screening door."
"Read the Guide entry on INTELLIGENCE."
"Can you think of anything contradictory that you could have or do?"
"To show your intelligence, there are two specific items that you must be holding at the same time."
"Have you noticed what happens when you take or drop the (real) tea?"
"To prove your intelligence to the door, you must be holding TEA and NO TEA at the same time."
"Try going back to the beginning of the game and taking or dropping NO TEA."
"Does the response to that ring any bells?"
"Have you ever read or examined the black particle in the Maze?"
"Do you know where you are when you are in the Maze? If not, see the questions on the Maze."
"The Maze is your own brain, and the particle is your common sense. Once you have removed the particle, you will no longer be fettered by common sense and can take NO TEA."
"Spelling it out step by step: First, acquire a cup of tea. Then get rid of the common sense particle in the Maze. TAKE TEA THEN TAKE NO TEA. Finally, SHOW THE TEA AND THE NO TEA TO THE SCREENING DOOR."
"Did you die upon passing through the screening door? It's because Marvin lives in the room beyond the door, and his awesome depression pervades the place."
"You'll have to make yourself very happy before entering."
"Have you ever done anything that made you very happy and contented?"
"Drink the cup of tea before you enter."> <LTABLE 3 "Is Marvin important?"
"Yes, but not right away."
"Until a point, he won't do anything you tell him to do."
"After that point, he'll grudgingly consent to ONE task."
"Have you ever followed Marvin when he appears around the Heart of Gold?"
"He always disappears through a certain door."
"Before Marvin will perform his one task, you must get past the screening door near the aft end of the corridor."
"Don't go on until you've been in Marvin's Pantry."
"Congratulations. You've now impressed Marvin enough for him to listen to one request from you. Do you have any idea what order to give him?"
"What puzzles or obstacles still remain that he might help with?"
"Try examining the mechanism in the Access Space."
"If you've ever seen the fruit, eating it would provide a big hint."
"You want to order Marvin to open the hatch (as in MARVIN, OPEN THE HATCH). See the question about opening the hatch for more information."
> <LTABLE 3 "How can I open the hatch?" "Have you tried OPEN THE HATCH?"
"If sirens and lights went off when you tried to open the hatch, then the ship is still in space. Wait until the ship has landed."
"Do you remember an announcement when the Heart of Gold landed on Magrathea?"
"Eddie (the shipboard computer) jammed the hatch to prevent anyone from leaving the ship until he's checked to make sure the environment is safe."
"If you wait the 14.9 years such a check will take, you'll probably die of boredom."
"You'll have to figure out how to override Eddie's wishes by fixing the hatchway mechanism in the Access Space."
"You don't have the necessary intelligence for the task." "Someone else does."
"Marvin. See the question about Marvin to figure out how to get him to open the hatch."
"Once Marvin has agreed to open the hatch, he tells you to meet him in the Access Space in twelve turns. Make sure you're on hand for that meeting. (Hell hath no depression like a paranoid android scorned.)"
"Marvin will ask you for the tool he needs to fix the mechanism."
"You must give him the proper tool or you've blown your one chance to get the hatchway open."
"There are a total of ten tools scattered throughout the game. For a complete list of them, see the quesion about the tools in the General Questions section."
"Even if you've collected all ten tools, you can only carry one at a time into the Access Space..."
"...and you don't have time to go out and get a different one before Marvin gives up and leaves..."
"...and Marvin will NEVER ask for the tool you happen to be holding."
"There's a way to figure out in advance what tool Marvin will ask you for."
"See the question about the fluff." "Don't go on until you've seen the fruit."
"Eat the fruit."
"The glimpse of the future provided by the fruit tells you what tool to bring into the Access Space."
"If you meet Marvin there and give him that tool when he asks for it, he will fix the mechanism and open the hatch."
"You're now awesomely close to the end of the game."
"Go down through the hatch."
"Start waiting for the next exciting Hitchhiker's game."> <LTABLE 3
"How do I stop the missile attack?" "This is a good point for a SAVE."
"The computer is helpless because you've tied it up with the Nutrimat interface."
"You'll have to save the ship yourself."
"The computer is tied up, so it can't turn on the main Drive during this emergency."
"There's a spare Drive for use during emergencies." "Turn on the spare Drive."
"That didn't work? Have you examined the spare Drive and the control console on the Bridge?"
"If there are fused spots where the large plug and large receptacle used to be, you plugged the drive in at the wrong time."
"Note that when the spare Drive is NOT connected to the control console and you turn it on, the effect is always directed at you personally. When the spare Drive IS connected to the console, activating it has an effect on the entire ship."
"Turning on the spare Drive while it's plugged into the control console destroys the large plug and large receptacle, so you can only do it once during the game. The one time you want to activate the drive while plugged into the control console is during the missile attack."
>> <PLTABLE "ON TRAAL" <LTABLE 3 "How do I go southwest from the Lair?"
"Figuring out how to subdue the Beast would help."> <LTABLE 3
"Can I stop the Beast from eating me?"
"The Beast will devour you about five turns after you pop up in its Lair."
"Leaving the room (EAST) will buy you some time."
"Have you read the Guide entry on the Ravenous Bugblatter Beast of Traal?"
"You must find a way to prevent yourself from seeing the Beast. The Beast will then decide that since you can't see it, it can't see you!"
"Closing your eyes isn't obvious enough for the Beast to notice."
"You have to cover your head with something."
"It's something important, which no interstellar hitchhiker should ever be without."
"The towel. COVER MY HEAD WITH THE TOWEL or PUT THE TOWEL OVER MY EYES or WRAP THE TOWEL AROUND MY HEAD."
"Unfortunately, you can't move around very well with a towel over your eyes. Furthermore, as you may have already noticed, this method is also only temporarily effective."
> <LTABLE 3 "Why does the beast ask me my name?"
"A good question. Have you tried figuring out the answer yourself?"
"Have you been in the Beast's Outer Lair?"
"Have you ever tried saying your name as the Beast demands?"
"There are at least a dozen ways to say your name: SAY MY NAME or SAY \"ARTHUR DENT\" or SAY \"MY NAME IS ARTHUR DENT\" are some."
"You have to give your correct name to the Beast, or (in a rare moment of Bugblatter Beast perceptivity) it will be able to tell that you're lying. In addition, you can't tell the Beast your name if the Beast thinks it can't see you."
"The Beast's response when you told it your name should provide an additional hint toward why the Beast wants to know your name and how to solve this entire Traal puzzle."
"Still stuck? Go on to the next question."> <LTABLE 3
"What use is the sandstone memorial?"
"Have you figured out why the Beast wants to know your name?"
"The Beast wants to carve your name in this, his memorial of remembrance, after he has devoured you."
"Have you figured out how to stop the Beast from attacking you, at least on a temporary basis?"
"Don't go on until you have figured out how to convince the Beast that it can't see you."
"There's a way to confuse the Beast into thinking that it has already eaten you."
"You want to carve your name in the memorial, as in CARVE MY NAME ON THE SANDSTONE MEMORIAL."
"Of course, you'll need something to carve with." "It's not any of the tools."
"It's something found on Traal."
"Use one of the sharp stones that are lying on the ground."
"First you have to tell the Beast your name and cover your head with the towel."
"It is now safe to remove the towel from your head, and to go southwest from the Lair."
> <LTABLE 3 "Are the tall walls important?"
"If you could climb them, you might be able to escape the Beast."
"If you could collapse them onto the Beast, that just might do it in."
"If you could transmute them into steaming mounds of Qurmeesian Mega-Rhino flank steaks, the Beast might start in on those and ignore your few measly pounds of stringy flesh."
"Unfortunately, you can't do any of the above."> <LTABLE 3
"Are the bleached bones important?"
"Don't go on until you've found the black paint."
"Have you tried painting the bones with the paint?"
"Where does the Beast go when he sees the black bones?"
"Black paint? There's no black paint. You're looking at answers you shouldn't be."
> <LTABLE 3 "Are the sharp stones important?" "Have you examined them?"
"See the question about the sandstone memorial."> <LTABLE 3
"What's the point of the Traal scene?"
"First you'll have to figure out how to \"neutralize\" the Beast."
"Don't go on until the Beast is sleeping." "Have you been in the Inner Lair?"
"Go southwest from the Lair."
"The entire point of this scene is to get that Nutrimat/Computer Interface."
"You have a limited number of moves to get the interface, after the Beast falls asleep and before the Fronurbdian Beasthunters arrive."
>> <PLTABLE "ON DAMOGRAN" <LTABLE 3 "Who am I?"
"Ask the game! (Type WHO AM I?)"> <LTABLE 3 "Where am I?"
"You're on Damogran. If you'd like to know more about it, consult the Hitchhiker's Guide."
> <LTABLE 3 "How can I open the toolbox?"
"Since it's locked, you'll need to find a key."
"Try typing WHERE IS THE KEY while on the speedboat."
"There aren't a lot of hiding places around the boat."
"SEARCH THE PILOT SEAT or LOOK UNDER THE CUSHION."> <LTABLE 3
"Can I stop the boat from crashing?" "EXAMINE THE CONTROLS."
"PUSH THE AUTOPILOT BUTTON."
"The autopilot doesn't seem concerned about your situation, since it just takes a look around and then shuts itself off."
"You need to give the autopilot some impetus to go to work."
"Instead of steering toward the channel, try steering toward the cliff or the rocky spire."
"After three turns of heading toward an obstacle, the autopilot will kick on and navigate you safely to your destination."
> <LTABLE 3 "What do I do when the boat docks?"
"Leave the boat. Type NORTH or LEAVE THE BOAT."> <LTABLE 3
"What do I do when I reach the Dais?"
"You're here for the dedication ceremonies of the Heart of Gold. You obviously have the crowd eating out of your hands."
"You might try smiling, or waving, or making a speech."
"Mainly, though, you just need to wait until Trillian shows up."> <LTABLE 3
"What do I do about the Guards?"
"Don't go on unless you're on the Dais and Trillian is there."
"Trillian isn't really attacking you. It's just part of your plan to steal the Heart of Gold."
"The guards don't know that you're planning to steal the Heart of Gold, so they're on your side."
"You're President of the Galaxy! The guards will probably listen to your orders."
"You should say GUARDS, DON'T SHOOT or GUARDS, DROP THE PHOTON RIFLES."
"If you're still having troubles with the guards, see the next question."> <
LTABLE 3 "How can I enter the Heart of Gold?"
"Until Trillian shows up, the game won't even let you try."
"After Trillian shows up, attempting to enter the Heart of Gold is deadly."
"Don't go on unless you've disarmed the guards (see the previous question)."
"This isn't helpful all by itself, since the guards pick up their rifles and still shoot you if you break for the ship."
"You have to figure out a way to get rid of the guards or the rifles permanently."
"The guards will NOT leave the scene, no matter what you do."
"Trying to shoot the guards doesn't work either."
"There is, however, a way to dispose of the rifles."
"Take the blaster from Trillian and shoot the rifles. Alternatively you can just ASK TRILLIAN TO SHOOT THE PILE OF RIFLES."
"Once you've destroyed the rifles, it's safe to enter the ship."> <LTABLE 3
"What's the point of Damogran?"
"Don't go on until you ended the scene by successfully entering the Heart of Gold. (If you were killed by the guards, you were NOT successful.)"
"Have you opened the toolbox?"
"If you've opened the toolbox, then you've certainly found both the seat cushion fluff and the laser-assisted monkey wrench. Getting these two items are the ultimate goal of the Damogran scene."
>> <PLTABLE "AT THE PARTY" <LTABLE 3 "Who am I?"
"Ask the game. (Type WHO AM I?)"> <LTABLE 3 "Where am I?"
"Remember what happened when you first reached the Bridge of the Heart of Gold?"
"This is the Party where Arthur Dent tried to pick up Tricia MacMillan (but, you'll recall, failed completely)."
"Thanks to the wild vagaries of Improbability Physics, you have not only travelled back in time, you have changed your identity as well."
> <LTABLE 3 "What should I do about Phil?"
"If you try to talk to Phil, he doesn't notice, and invariably leaves the room."
"Have you examined him?"
"The draped cage on his shoulder does NOT contain a bird."
"The cage is hiding Phil's second head."
"Phil is actually Zaphod Beeblebrox in disguise. He has undoubtedly dropped by this Islington party as part of some interstellar party-crashing hop."
"If you recall from the events on the Bridge of the Heart of Gold, you (Trillian) eventually left ... er, will leave ... the party with Zaphod/Phil."
"But that won't happen until you do something else. See the question about the point of the party scene."
> <LTABLE 3 "What should I do about Arthur?"
"Arthur keeps trying to start a conversation with you, but he's too shy and embarrassed. If you try to talk to him, he finds your tone rather cool, and moves away."
"Have you examined him?" "Notice the fluff?"
"If you take the fluff from his jacket, it will \"break the ice\" and Arthur will begin jabbering."
"Did you notice that you can't take the fluff until you drop one of the other things you're carrying (handbag, wine, hors d'oeuvres)? You can't hold more than three things while you're at the party."
> <LTABLE 3 "What should I do about the hostess?"
"You're usually able to avoid her."
"If you try to talk to her, you'll learn the meaning of the phrase \"bored to death.\""
"If you drop your glass of wine, your handbag, or your plate of hors d'oeuvres, the hostess will come over and pester you about it. She won't leave you alone until you take the item that you dropped."
> <LTABLE 3 "How can I leave the apartment?"
"Try going south from the Living Room."
"Dying will get you back to Dark, but that's probably not what you had in mind."
"There is a way to leave the apartment, but you'll have to solve a puzzle first. See the next question."
> <LTABLE 3 "What's the point of the party scene?"
"There's an item at the party that you have to get back to the Heart of Gold."
"That item is the unsightly piece of jacket fluff."
"See the previous questions in this section of the hint booklet."
"You want to get \"picked up\" by Phil. However, he won't take any notice of you until you take the fluff and get Arthur talking to you."
"In order to take the fluff, though, you'll have to drop something. This will cause the hostess to start hovering around you. Phil is much too smart to approach you when you're with the hostess."
"So, to get Phil to come over, you'll have to take the item that the hostess keeps offering you. To do so, you'll have to drop something, and the piece of fluff is the only thing you have that you can drop without setting off the hostess again."
"There IS a way to stop holding the fluff WITHOUT dropping it."
"Look at what you're carrying again." "You can put the fluff in your handbag."
"Naturally, the fluff is still in the handbag when you eventually get back to the Heart of Gold. You need only go to the Bridge or wherever you left the handbag, open it, and take the jacket fluff."
"If you're still confused, one sequence of moves that will \"solve\" the party scene is: EXAMINE ARTHUR. DROP THE WINE. TAKE THE JACKET FLUFF. OPEN THE HANDBAG. PUT THE FLUFF IN THE HANDBAG. TAKE THE WINE. Then just WAIT until Phil comes up and escorts you away. You will end up in Dark."
>> <PLTABLE "EARTH, REVISITED" <LTABLE 3 "Who am I?"
"Ask the game. (Type WHO AM I?)"> <LTABLE 3 "Where should I go?"
"You are reliving the last few minutes before the destruction of the Earth."
"But this time as Ford Prefect rather than Arthur Dent."
"The Improbability Drive has sent you back in time and has also changed your identity."
"You want to do what Ford did when you were Arthur."
"Go north to Front of House."> <LTABLE 3 "How can I lose my uneasy feeling?"
"Have you tried waiting a few turns?"
"Obviously, you're doing the wrong thing."
"You shouldn't be in the Pub at this point." "See the previous question."> <
LTABLE 3 "What should I do about Arthur?"
"According to the introductory text for this scene, why did you come here?"
"What did Ford do at this point when you were Arthur?"
"Try to give the towel to Arthur." "The towel is inside your satchel."> <LTABLE
3 "What should I do about Prosser?"
"Don't go on until you've done the step called for by the previous question."
"You want Arthur to come with you to the Pub."
"If you recall from when you were Arthur, it would mean the destruction of Arthur's house if he stood up at this point."
"He won't stand up until you've safeguarded his house."
"You have to talk to Prosser." "But he can't hear you from here."
"So you have to APPROACH PROSSER or WALK AROUND THE BULLDOZER. Now you can talk to him."
"You want him to lie down in front of the bulldozer."
"Try PROSSER, LIE DOWN IN FRONT OF THE BULLDOZER."
"Arthur is now willing to follow you to the Pub."> <LTABLE 3
"What should I do in the Pub?"
"Unless Arthur is with you, you are here prematurely."
"Once again, think back to what Ford did when you were Arthur."
"The first thing to do is BUY SOME BEER."
"Then DRINK THE BEER. Arthur will follow your example. You need to do this twice."
"You can BUY SOME PEANUTS, but it isn't necessary to do so."
"When Arthur's house is destroyed, he will rush out of the Pub. It would be a good idea to stay with him."
> <LTABLE 3 "What should I do about the dog?"
"There's not much you can do about the dog at this point."
"You may find out more about the dog later."> <LTABLE 3
"What's the point of this scene?"
"You learn a lot about Ford's motivations, thus making for a more cohesive, internally consistent story line."
"Oh, right. You're more interested in puzzle solutions. The entire point of this scene is acquiring one particular item for use on the Heart of Gold."
"It's in the satchel." "It's the satchel fluff."
"There's a way to transfer it to something, other than the satchel, so that it will be accessible when you get back to the Heart of Gold."
"That something is Arthur Dent." "Give the fluff to Arthur."
"This is a rather weird action, and Arthur won't accept the fluff until he's had enough beer."
"After Arthur runs back to his house (now rubble), follow him and give him the fluff. He'll accept it at this point and put it in his pocket. Then just wait for events to run their course, and you'll soon find yourself back in Dark. When you get back to the Heart of Gold, the satchel fluff should be in the pocket of your gown."
>> <PLTABLE "WAR CHAMBER/MAZE" <LTABLE 3 "What's going on in the War Chamber?"
"Have you tried listening to the conversation?"
"Have you examined the approaching star system?"
"Do you remember the long piece of text that appeared when your careless words set off an interstellar war?"
"Those two warring races have now set off on a quest for vengeance against the world (Earth) that spawned the person (you) whose remark set off their war."
> <LTABLE 3 "How can I get the awl?" "Just TAKE AWL!"
"Then solve the puzzle involving the giant dog."> <LTABLE 3
"How do I not get eaten by the dog?" "The dog really isn't a giant dog."
"It's a normal-sized dog. The spaceship you're aboard is microscopic."
"Have you seen a dog anywhere else?"
"This is the very same dog you ran into in the Country Lane back at the beginning of the game."
"The dog swallows the space fleet for one particular reason."
"If you examine the dog at the beginning of the game, you'll notice that it's very hungry."
"You need to feed the dog back at the beginning of the game."
"If you want to avoid starting over from the beginning, there's another way to feed the dog."
"You must become Ford Prefect first."
"During the scene where you're Ford, buy a sandwich, then give the sandwich to Arthur. When Arthur dashes out of the Pub, he'll feed the sandwich to the dog."
"Once the dog has been fed, you can survive the War Chamber scene and go on to the Maze."
> <LTABLE 3 "Where is this Maze?" "Synapses? Gray Matter?"
"Remember you were just teleported over from a microscopic space fleet..."
"...so you must be microscopic-sized yourself." "You're inside a brain."
"Ah, but whose brain?"
"Remember, the Vl'Hurgs and G'Gugvunts were teleporting you back to the Heart of Gold."
"You are, improbably enough, inside your own brain!"> <LTABLE 3
"Can the Maze be mapped?" "No. The Maze is totally unmappable."
"In fact, the directions in the Maze are totally random, so it makes no difference which direction you move in."
"The third time you successfully move to a new Maze room (as opposed to being blocked by a synaptic discharge), you'll run across the black particle."
"If you ignore the particle, you'll run across it again later."> <LTABLE 3
"What is this black particle for?"
"Have you read the markings on the particle?"
"The particle is your own common sense!"
"You have an opportunity here to remove your own common sense."
"Does that ring a bell?"
"See the question about no tea in the General Questions section."
"Taking the particle also has the beneficial side effect of getting you out of the Maze."
> <LTABLE 3 "Where did the black particle go?"
"Particle physicists have two theories on what happened to the particle."
"The first theory states that the particle is too small to see when you recover from being microscopic."
"The second theory states that the particle was destroyed in the electrical impulse that resulted when you reopened the synapse."
"Take your pick."> <LTABLE 3 "What's the point of this section?"
"You should be able to figure it out for yourself."
"Do you know the answers to all the other questions in this section?"
"There are two goals for the War Chamber/Maze scene."
"The first goal is to get the awl."
"The second goal is to remove your particle of common sense.">> <PLTABLE
"INSIDE THE WHALE" <LTABLE 3 "Who am I?" "You're still Arthur in this scene.">
<LTABLE 3 "Where am I?" "You're inside a sperm whale, obviously."
"Note the sound of rushing air."
"The Improbability Drive, in one of its nastier coincidences, has transported you inside the very same whale you created when you used the Drive to save the ship during the missile attack."
"If you recall, the missiles were turned into a sperm whale, which was last seen plummeting through the atmosphere of Magrathea. This explains why, after a few turns, the whale invariably splats (and you along with it)."
> <LTABLE 3 "How can I get out of the whale?"
"There are no exits in any direction."
"If you wait long enough, you'll splat and return to Dark."
"There's one other way to get out of the whale."
"It's a method you've used before." "It will also leave you in Dark."
"Hitchhike using the Thumb."
"The Thumb is probably broken, though. You'll have to get it fixed by an Engineer robot."
> <LTABLE 3 "Can I stop the whale from splatting?" "You can't."
"No matter what you do, you've only got ten moves in the whale before it splats."
> <LTABLE 3 "How do I get the pot from the whale?"
"There are two ways to do this." "One way involves the Thumb."
"The other method involves the thing your aunt gave you which you don't know what it is."
"To obtain the flowerpot using the thumb, just pick up the pot and hitchhike."
"For more details, see the question on getting out of the whale."
"To obtain the flowerpot using the aunt's gift: the aunt's gift has an unusual property you may not have discovered. See the question about the aunt's gift."
"Just put the flowerpot inside the aunt's gift and then wait until the whale splats. Within a few turns after leaving Dark, the aunt's gift should reappear, containing the pot."
> <LTABLE 3 "What's the point of the whale?" "Isn't it obvious?"
"There really isn't much here."
"The only point of this scene is to get the flowerpot.">> <PLTABLE
"GENERAL QUESTIONS" <LTABLE 3 "Is there a significance to \"no tea\"?" "Yes."
"It's a hint that at some point, getting tea will be important."
"Also, see the question about the screening door in the HEART OF GOLD section."
> <LTABLE 3 "What is the thing my aunt gave me?" "Have you tried examining it?"
"Have you tried getting rid of it?"
"You've probably noticed that it keeps turning up."
"If you leave it behind, it will pop up about a dozen moves later, sometimes on the ground where you are, sometimes in your inventory, and sometimes in your gown pocket. (The thing will only \"follow\" you when you are Arthur.)"
"There's something else that you probably haven't noticed about the thing your aunt gave you."
"You can put things in it. In fact, you can put almost every takeable item into the thing at the same time."
"This is useful for transporting more objects than you can carry, but it isn't ever necessary to do so."
"Because of these two properties (auto-return and containment) the thing your aunt gave you provides an alternate solution of one of the puzzles in the game."
"It's a puzzle toward the very end of the game."
"It's the puzzle of getting the flowerpot out of the whale."> <LTABLE 3
"Is the Hitchhiker's Guide important?" "Well, the game IS named after it..."
"The various entries in the Guide contain all sorts of useful information and hints that you'll need to solve the puzzles in the game."
"The proper syntax for reading a particular Guide entry is CONSULT GUIDE ABOUT (item). For example, you could type CONSULT GUIDE ABOUT MUSHROOMS."
"Once you know the solutions to all the puzzles, you could play to the end of the game without ever using the Guide."
"There are 39 Guide entries in the game. A complete list of the topics appears in the MISCELLANEOUS section."
> <LTABLE 3 "How does the Thumb work?"
"The Thumb is an electronic Sub-Etha Auto-Hitching Device. If used properly, it will allow you to hitch rides aboard passing spaceships."
"You should read the Guide entry on the Thumb."
"You can examine the Thumb to determine whether a spaceship is within range. (If the lights are flashing, a ship is nearby.)"
"If a ship is within range, you can transport yourself to the ship (via a matter transference beam) by pushing the green button."
"If you press the green button when there is no ship around, you'll break the Thumb."
"Also, the Thumb will break down on its own over the course of the game."
"If the Thumb is broken, you will not be transported when you press the green button, even if a ship is nearby."
"A broken Thumb can be mended."
"To do so, push the red button to summon a repair robot. See the following question for further details on repairing the Thumb."
"There are three points in the game when you can use the Thumb."
"The first is near the beginning of the game, when you use it to get to the Vogon ship."
"The second is in the Airlock of the Vogon ship. It isn't necessary to use the Thumb here, because simply waiting a few turns has the same result."
"The third is Inside the Sperm Whale. Once again, there's an alternative to using the Thumb, but in this case it's not as simple as just waiting. See the INSIDE THE WHALE section for more information."
> <LTABLE 3 "How do I fix the thumb?"
"You can't. Only the Engineer robot can fix the Thumb."
"Once you've summoned the Engineer robot, SHOW (or GIVE) THE THUMB TO THE ENGINEER ROBOT."
"If the robot claims that there's nothing wrong with the Thumb, then it wasn't broken."
"If the Thumb is broken, the Engineer robot won't agree to fix it unless you also SHOW THE GUARANTEE TO THE ENGINEER ROBOT."
"Actually, you can shortcut by showing the guarantee first."> <LTABLE 3
"What's this nonsense about fluff?"
"There does seem to be a lot of it scattered throughout the game."
"Have you consulted the Guide about fluff?"
"The ancient legend is of particular interest."
"There are a total of four pieces of fluff in the game. You'll have to find and obtain all four."
"Try finding them yourself. When you're stumped, return to this question."
"Hint: You have four different roles over the course of the game: Arthur, Ford, Trillian, and Zaphod."
"You can obtain one piece of fluff during each role."
"A list of all four fluff, and their locations, follows. You shouldn't look at this list unless you're completely stumped, because it will give away a lot."
"Pocket fluff: in the pocket of your gown at the start of the game. Satchel fluff: inside Ford's satchel (see EARTH, REVISITED). Jacket fluff: on Arthur's jacket (see AT THE PARTY). Seat cushion fluff: under the pilot seat of the speedboat (see ON DAMOGRAN)."
"Now that you have all four pieces of fluff, any idea what to do with them?"
"Don't continue until you have the flowerpot."
"You should plant each piece of fluff in the flowerpot." "Now wait."
"A tiny plant will sprout around ten moves later."
"For more information, see the next question."> <LTABLE 3
"What do I do about the plant?"
"Left to itself, the tiny sprout will never grow any further."
"You have nothing to water the plant with."
"Read the Guide entry on fluff again."
"Notice that this rare plant once grew on a tropical world."
"Can you think of anything around that's similar to a tropical environment?"
"Carry the plant into the sauna." "Now examine the plant."
"Now see the question about opening the hatch in the Heart of Gold section."> <
LTABLE 3 "What are all these tools for?" "Have you examined them?"
"Many of them are rather excitingly high-tech, aren't they?"
"They don't really have much use..." "...until the very end of the game."
"See the question about opening the hatch in the Heart of Gold section."
"Marvin will ask for one of ten different tools."
"A list of all ten, and their locations, follows. You shouldn't look at this list unless you're completely stumped, because it will give away a lot."
"Flathead screwdriver: in your Bedroom. Toothbrush: in your Bedroom. Tweezers: inside Trillian's handbag. Molecular hyperwave pincer: on the Bridge. Ionic diffusion rasp: in the Engine Room. Hypersonic pliers: in the Engine Room. Thermo-fusion chisel: in Marvin's Pantry. Laser-assisted monkey wrench: inside the toolbox on the speedboat. Ultra-plasmic vacuum awl: in the War Chamber. Number twelve asteroid paint chipper: you're holding it when you return from your adventure at the end of the Traal scene."
> <LTABLE 3 "What is the goal of the game?"
"Have you tried asking some of the other characters in the story?"
"Have fun, be happy." "Solve all the puzzles, reach the end."
"The ultimate goal of the game is to step out onto the surface of Magrathea."
"Knowing this fact is of virtually no help in getting through the game."> <
LTABLE 3 "How can I read the footnotes?"
"You obviously didn't read your manual very carefully. That's explained in the section entitled Important Commands."
>> <PLTABLE "MISCELLANEOUS" <LTABLE 3 "HOW ALL THE POINTS ARE SCORED"
"This section should only be used as a last resort, or for your own interest after you've completed the game."
"SCORE ACTION" " 10 Take the buffered analgesic"
" 5 Drinking the beer (1st time)" " 5 Drinking the beer (2nd time)"
" 5 Drinking the beer (3rd time)" " 8 Arriving at the Vogon Hold"
" 12 Getting the babel fish" " 15 Enjoying the Vogon poetry"
" 25 Opening the glass case" " 25 Entering the Engine Room"
" 25 Getting the Interface" " 15 Drinking the beer (as Ford)"
" 25 Leaving the party with Phil" " 25 Stealing the Heart of Gold"
" 25 Taking the black particle" " 100 Drinking the tea"
" 25 Entering Marvin's Pantry" " 25 Blooming the plant"
" 25 Get Marvin to open the hatch" " 400 TOTAL POINTS"
"NOTE: You LOSE 30 points each for eating the cheese sandwich, drinking the Advanced Tea Substitute, or turning on the spare Drive while plugged into the large receptacle before the missile attack begins."
> <LTABLE 3 "FOR YOUR AMUSEMENT"
"You shouldn't develop anything in this section until you've finished the game. Things in the section will invariably give away the answers to puzzles in the game."
"Have you tried..." "looking under your bed?"
"enjoying the mud while you're lying in front of the bulldozer?"
"to PHONE HOME from your bedroom?" "asking Prosser for the time?"
"to GET DRUNK in the pub?" "buying peanuts (as Arthur)?"
"listening to the jukebox music (several times, then again when you're Ford)?"
"petting or kicking the dog?"
"feeding peanuts to the dog? (You can only do this as Ford, of course.)"
"hitting Prosser (before and after your house is demolished)?"
"enjoying your house after it's been demolished?"
"asking PROSSER, WHAT ABOUT MY HOME after it's been demolished?"
"giving the towel, the thing your aunt gave you, or the satchel to Prosser? (You can only do the last one when you're Ford, of course.)"
"talking to Prosser after the Vogon fleet has arrived?"
"eating the cheese sandwich when you're Ford?"
"going straight to the Pub when you're Ford, instead of giving Arthur the towel, and then waiting a few turns?"
"yelling in the Dark?"
"waiting about 60 turns in Dark to see the hints you get?"
"not eating the peanuts in the Vogon Hold?"
"drinking the Santraginean Mineral Water?"
"asking FORD, WHAT ABOUT THE EARTH once it's been destroyed?"
"enjoying the Vogon poetry without the babel fish?"
"opening the hatch in the Heart of Gold before landing on Magrathea?"
"kicking the screening door, then entering Marvin's Pantry?"
"closing the screening door once you've opened it?"
"reading the tiny message on the circuit board with the magnifying glass?"
"smashing the circuit board?"
"turning on the spare Drive, plugged into the control panel, before the missile attack begins?"
"turning on the spare Drive during the missile attack, without first plugging it into the control panel?"
"asking Eddie to open the hatch after the ship has landed?"
"not going to the Access Space after asking Marvin to fix the hatch?"
"saying something other than your name when the Beast asks for it?"
"saying your name with the towel over your eyes?"
"to CARVE NAME ON MEMORIAL (rather than CARVE MY NAME ON MEMORIAL)?"
"carving one of the names suggested by the previous item?"
"carving the Beast's name on the memorial?"
"reading the memorial (both before and after carving your name)?"
"showing the thing your aunt gave you to the Beast?"
"waking the sleeping Beast?" "drinking the wine at the party?"
"eating one of the hors d'oeuvres? (Try several times.)"
"throwing the glass of wine or the plate of hors d'oeuvres?"
"to PICK UP ARTHUR or PICK UP PHIL at the party?"
"jumping into the water from the Presidential Speedboat?"
"throwing something into the water from the boat?"
"shooting the crowd, the guards, Trillian, yourself, the toolbox?"
"ordering GUARDS, SHOOT both before and after they've dropped their photon rifles?"
"examining the approaching star system and the third planet from the War Chamber of the battle fleet?"
"talking to the Vl'Hurg leader or G'Gugvunt leader?"
"dropping something in the Maze (your brain) and then walking around once you've gotten out?"
"talking to the bulldozer driver, the Vogon Captain, or the hostess?"
"closing the thing your aunt gave you?"
"wrapping the towel around your head anywhere except Traal?"
"typing I AM ARTHUR DENT to the game (as opposed to while talking to a character in the game)?"
"pushing the red button on the Thumb when an Engineer robot is already present?"
"counting the hors d'oeuvres, the crowd at the Dais, or the guards (at various points)?"
"typing PANIC? How about DON'T PANIC?"
"typing DON'T LOOK or DON'T WAIT or DON'T (anything else)?"
"typing GIVE UP or THROW IN THE TOWEL or PULL MYSELF TOGETHER?"
"brushing your teeth with the toothbrush?" "typing ESCAPE at any point?"
"filling anything?"
"returning to various scenes after you've successfully completed them? Examples: returning to Damogran after stealing the Heart of Gold. Returning to Traal after getting the interface."
"typing APPLAUD at any point (other than during the poetry reading)?"
"answering the game's various rhetorical questions, such as \"Did you have a particular direction in mind?\" or \"Don't you think it would be a bad idea to leave the ceremonies?\", by typing YES or NO?"
"typing APPRECIATE [something]?"
"asking various characters about the object of the game? (Especially Prosser, Ford, Marvin, Eddie, the Nutrimat, the screening door, and the Beast.)"
> <LTABLE 3 "GUIDE ENTRIES"
"Here's a complete list of things that you can CONSULT the Hitchhiker's Guide about. You should use it only as a last resort, or for your interest once you've finished the game."
"ALCOHOL" "ATOMIC VECTOR PLOTTER" "BABEL FISH" "BROWNIAN MOTION" "DAMOGRAN"
"EARTH" "FLUFF" "FRANCE" "GALACTIC SECURITY AGENCY" "GALAXIA WOONBEAM"
"GENUINE PEOPLE PERSONALITIES" "GREEN BUTTON" "HEART OF GOLD"
"HITCHHIKER'S GUIDE" "IMPROBABILITY DRIVES" "INFOCOM" "INTELLIGENCE"
"LARGE PLUG" "LONG DANGLY BIT" "MAGRATHEA" "MATTER TRANSFERENCE BEAMS"
"NUTRIMAT" "PAN-GALACTIC GARGLE BLASTER" "PERIL-SENSITIVE SUNGLASSES" "PROTEIN"
"RAVENOUS BUGBLATTER BEAST OF TRAAL" "RED BUTTON" "SANTRAGINEAN MINERAL WATER"
"SIRIUS CYBERNETICS CORPORATION" "SMALL PLUG" "SMALL RECEPTACLE" "SPACE"
"THUMB" "TOWEL" "VOGON POETRY" "VOGONS" "WALKING" "various tools"
"various weapons"> <LTABLE 3 "FOOTNOTES"
"The section tells where each footnote is referenced in the game. Once again, you shouldn't develop this section until you've finished."
"FN# HOW TO GET IT" " 1 ENJOY THE DARKNESS in the Dark"
" 2 Type FORD, WHAT ABOUT MY HOUSE?" " 3 Upon arrival at the Speedboat"
" 4 Listen to the music in the Pub" " 5 Remove the towel (beast asleep)"
" 6 Type FOOTNOTE without any number" " 7 Shoot the Beast three times"
" 8 Consult the Guide about fluff" " 9 ASK GUIDE ABOUT SPACE in space"
"10 Looking in the Engine Room" "11 This footnote is not referenced"
"12 This footnote is self referenced" "13 Push the autopilot button thrice"
"14 When Ford hands you the Guide" "15 Read the banner at the Dais">>>>

320
hints.zap Normal file
View File

@ -0,0 +1,320 @@
.FUNCT V-HINTS-NO
EQUAL? PRSO,ROOMS /?CCL3
PRINTI "I don't understand what you mean."
CRLF
RETURN 2
?CCL3: SET 'HINTS-OFF,TRUE-VALUE
PRINTI "[Hints have been disallowed for this session.]"
CRLF
RETURN 2
.FUNCT V-HINTS,CHR,MAXC,C,Q,WHO
?FCN: ZERO? HINTS-OFF /?CCL3
ICALL PERFORM,V?HINTS-NO,ROOMS
RETURN 2
?CCL3: ZERO? HINT-WARNING \?CND1
SET 'HINT-WARNING,TRUE-VALUE
PRINTI "[Warning: It is recognized that the temptation for help may at times be so exceedingly strong that you might fetch hints prematurely. Therefore, you may at any time during the story type HINTS OFF, and this will disallow the seeking out of help for the present session of the story. If you still want a hint now, indicate HINT.]"
CRLF
RETURN 2
?CND1: GET HINTS,0 >MAXC
ICALL1 INIT-HINT-SCREEN
CURSET 5,1
ICALL1 PUT-UP-CHAPTERS
SUB CHAPT-NUM,1 >CUR-POS
ICALL1 NEW-CURSOR
?PRG11: INPUT 1 >CHR
EQUAL? CHR,81,113 \?CCL15
SET 'Q,TRUE-VALUE
JUMP ?REP12
?CCL15: EQUAL? CHR,78,110 \?CCL17
ICALL1 ERASE-CURSOR
EQUAL? CHAPT-NUM,MAXC \?CCL20
SET 'CUR-POS,0
SET 'CHAPT-NUM,1
SET 'QUEST-NUM,1
JUMP ?CND18
?CCL20: INC 'CUR-POS
INC 'CHAPT-NUM
SET 'QUEST-NUM,1
?CND18: ICALL1 NEW-CURSOR
JUMP ?PRG11
?CCL17: EQUAL? CHR,80,112 \?CCL22
ICALL1 ERASE-CURSOR
EQUAL? CHAPT-NUM,1 \?CCL25
SET 'CHAPT-NUM,MAXC
SUB CHAPT-NUM,1 >CUR-POS
SET 'QUEST-NUM,1
JUMP ?CND23
?CCL25: DEC 'CUR-POS
DEC 'CHAPT-NUM
SET 'QUEST-NUM,1
?CND23: ICALL1 NEW-CURSOR
JUMP ?PRG11
?CCL22: EQUAL? CHR,13,10 \?PRG11
ICALL1 PICK-QUESTION
?REP12: ZERO? Q /?FCN
CLEAR -1
ICALL1 INIT-STATUS-LINE
CRLF
PRINTI "Back to the story..."
CRLF
RETURN 2
.FUNCT PICK-QUESTION,CHR,MAXQ,Q
?FCN: ICALL2 INIT-HINT-SCREEN,FALSE-VALUE
ICALL LEFT-LINE,3,STR?237
ICALL RIGHT-LINE,3,STR?238,13
GET HINTS,CHAPT-NUM
GET STACK,0
SUB STACK,1 >MAXQ
CURSET 5,1
ICALL1 PUT-UP-QUESTIONS
SUB QUEST-NUM,1 >CUR-POS
ICALL1 NEW-CURSOR
?PRG1: INPUT 1 >CHR
EQUAL? CHR,81,113 \?CCL5
SET 'Q,TRUE-VALUE
JUMP ?REP2
?CCL5: EQUAL? CHR,78,110 \?CCL7
ICALL1 ERASE-CURSOR
EQUAL? QUEST-NUM,MAXQ \?CCL10
SET 'CUR-POS,0
SET 'QUEST-NUM,1
JUMP ?CND8
?CCL10: INC 'CUR-POS
INC 'QUEST-NUM
?CND8: ICALL1 NEW-CURSOR
JUMP ?PRG1
?CCL7: EQUAL? CHR,80,112 \?CCL12
ICALL1 ERASE-CURSOR
EQUAL? QUEST-NUM,1 \?CCL15
SET 'QUEST-NUM,MAXQ
SUB QUEST-NUM,1 >CUR-POS
JUMP ?CND13
?CCL15: DEC 'CUR-POS
DEC 'QUEST-NUM
?CND13: ICALL1 NEW-CURSOR
JUMP ?PRG1
?CCL12: EQUAL? CHR,13,10 \?PRG1
ICALL1 DISPLAY-HINT
?REP2: ZERO? Q /?FCN
RFALSE
.FUNCT ERASE-CURSOR,?TMP1
GET LINE-TABLE,CUR-POS >?TMP1
GET COLUMN-TABLE,CUR-POS
SUB STACK,2
CURSET ?TMP1,STACK
PRINTC 32
RTRUE
.FUNCT NEW-CURSOR,?TMP1
GET LINE-TABLE,CUR-POS >?TMP1
GET COLUMN-TABLE,CUR-POS
SUB STACK,2
CURSET ?TMP1,STACK
PRINTC 62
RTRUE
.FUNCT INVERSE-LINE,CENTER-HALF
HLIGHT H-INVERSE
GETB 0,33
ICALL2 PRINT-SPACES,STACK
HLIGHT H-NORMAL
RTRUE
.FUNCT DISPLAY-HINT,H,MX,MXC,CNT,CHR,FLG,N,?TMP1
SET 'CNT,2
SET 'FLG,TRUE-VALUE
CLEAR -1
SPLIT 3
SCREEN S-WINDOW
CURSET 1,1
ICALL1 INVERSE-LINE
ICALL CENTER-LINE,1,STR?239,16
CURSET 3,1
ICALL1 INVERSE-LINE
ICALL LEFT-LINE,3,STR?237
ICALL RIGHT-LINE,3,STR?240,17
CURSET 2,1
ICALL1 INVERSE-LINE
HLIGHT H-BOLD
GET HINTS,CHAPT-NUM >?TMP1
ADD QUEST-NUM,1
GET ?TMP1,STACK >H
GET H,2
ICALL CENTER-LINE,2,STACK
HLIGHT H-NORMAL
GET H,0 >MX
GET HINTS,0 >MXC
SCREEN S-TEXT
CRLF
?PRG1: GET H,1
EQUAL? CNT,STACK /?PRG8
GET H,CNT
PRINT STACK
CRLF
INC 'CNT
JUMP ?PRG1
?PRG8: ZERO? FLG /?CCL12
GRTR? CNT,MX \?CCL12
SET 'FLG,FALSE-VALUE
PRINTI "[That's all.]"
CRLF
JUMP ?CND10
?CCL12: ZERO? FLG /?CND10
SUB MX,CNT
ADD STACK,1 >N
EQUAL? CHAPT-NUM,MXC /?PRG28
PRINTN N
PRINTI " hint"
EQUAL? N,1 /?PRG26
PRINTC 115
?PRG26: PRINTI " left "
?PRG28: PRINTI "-> "
SET 'FLG,FALSE-VALUE
?CND10: INPUT 1 >CHR
EQUAL? CHR,81,113 \?CCL32
PUT H,1,CNT
RTRUE
?CCL32: EQUAL? CHR,13,10 \?PRG8
GRTR? CNT,MX /?PRG8
SET 'FLG,TRUE-VALUE
GET H,CNT
PRINT STACK
CRLF
IGRTR? 'CNT,MX \?PRG8
SET 'FLG,FALSE-VALUE
PRINTI "[That's all.]"
CRLF
JUMP ?PRG8
.FUNCT PUT-UP-QUESTIONS,ST,MXQ,MXL,?TMP1
SET 'ST,1
GET HINTS,CHAPT-NUM
GET STACK,0
SUB STACK,1 >MXQ
GETB 0,32
SUB STACK,1 >MXL
?PRG1: GRTR? ST,MXQ /TRUE
SUB ST,1
GET LINE-TABLE,STACK >?TMP1
SUB ST,1
GET COLUMN-TABLE,STACK
SUB STACK,1
CURSET ?TMP1,STACK
PRINTC 32
GET HINTS,CHAPT-NUM >?TMP1
ADD ST,1
GET ?TMP1,STACK
GET STACK,2
PRINT STACK
INC 'ST
JUMP ?PRG1
.FUNCT PUT-UP-CHAPTERS,ST,MXC,MXL,?TMP1
SET 'ST,1
GET HINTS,0 >MXC
GETB 0,32
SUB STACK,1 >MXL
?PRG1: GRTR? ST,MXC /TRUE
SUB ST,1
GET LINE-TABLE,STACK >?TMP1
SUB ST,1
GET COLUMN-TABLE,STACK
SUB STACK,1
CURSET ?TMP1,STACK
PRINTC 32
GET HINTS,ST
GET STACK,1
PRINT STACK
INC 'ST
JUMP ?PRG1
.FUNCT INIT-HINT-SCREEN,THIRD
ASSIGNED? 'THIRD /?CND1
SET 'THIRD,TRUE-VALUE
?CND1: CLEAR -1
GETB 0,32
SUB STACK,1
SPLIT STACK
SCREEN S-WINDOW
CURSET 1,1
ICALL1 INVERSE-LINE
CURSET 2,1
ICALL1 INVERSE-LINE
CURSET 3,1
ICALL1 INVERSE-LINE
ICALL CENTER-LINE,1,STR?239,16
ICALL LEFT-LINE,2,STR?241
ICALL RIGHT-LINE,2,STR?242,12
ZERO? THIRD /FALSE
ICALL LEFT-LINE,3,STR?243
CALL RIGHT-LINE,3,STR?244,16
RSTACK
.FUNCT CENTER-LINE,LN,STR,LEN,INV
ASSIGNED? 'INV /?CND1
SET 'INV,TRUE-VALUE
?CND1: ZERO? LEN \?CND3
DIROUT D-TABLE-ON,DIROUT-TBL
PRINT STR
DIROUT D-TABLE-OFF
GET DIROUT-TBL,0 >LEN
?CND3: GETB 0,33
SUB STACK,LEN
DIV STACK,2
ADD STACK,1
CURSET LN,STACK
ZERO? INV /?PRG9
HLIGHT H-INVERSE
?PRG9: PRINT STR
ZERO? INV /FALSE
HLIGHT H-NORMAL
RTRUE
.FUNCT LEFT-LINE,LN,STR,INV
ASSIGNED? 'INV /?CND1
SET 'INV,TRUE-VALUE
?CND1: CURSET LN,1
ZERO? INV /?PRG5
HLIGHT H-INVERSE
?PRG5: PRINT STR
ZERO? INV /FALSE
HLIGHT H-NORMAL
RTRUE
.FUNCT RIGHT-LINE,LN,STR,LEN,INV
ASSIGNED? 'INV /?CND1
SET 'INV,TRUE-VALUE
?CND1: ZERO? LEN \?CND3
DIROUT 3,DIROUT-TBL
PRINT STR
DIROUT -3
GET DIROUT-TBL,0 >LEN
?CND3: GETB 0,33
SUB STACK,LEN
CURSET LN,STACK
ZERO? INV /?PRG9
HLIGHT H-INVERSE
?PRG9: PRINT STR
ZERO? INV /FALSE
HLIGHT H-NORMAL
RTRUE
.ENDI

1307
hints.zil Normal file

File diff suppressed because it is too large Load Diff

72
misc.zabstr Normal file
View File

@ -0,0 +1,72 @@
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
<DEFINE-ROUTINE RUNNING?>
<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>>) (<EMPTY? .A> <ERROR INDICATOR-AT-END? .E>) (ELSE <SET O <NTH .A 1>> <
SET A <REST .A>> <COND (<OR <=? <SET P <SPNAME .E>> "DESC"> <=? .P "D"> <=? .P
"OBJ"> <=? .P "O">> <MAPRET <FORM PRINTD .O>>) (<OR <=? .P "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 ZSTRING> <MAPRET <FORM PRINTI .E>>) (<TYPE? .E FORM LVAL GVAL>
<MAPRET <FORM PRINT .E>>) (ELSE <ERROR UNKNOWN-TYPE .E>)>>!>>>
<DEFMAC VERB? ("ARGS" ATMS) <MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS) <MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS) <MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS) <MULTIFROB HERE .ATMS>>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM) <REPEAT () <COND
(<EMPTY? .ATMS> <RETURN <COND (<LENGTH? .OO 1> <ERROR .X>) (<LENGTH? .OO 2> <
NTH .OO 2>) (ELSE <CHTYPE .OO FORM>)>>)> <REPEAT () <COND (<EMPTY? .ATMS> <
RETURN>)> <SET ATM <NTH .ATMS 1>> <SET L (<COND (<TYPE? .ATM ATOM> <FORM GVAL <
COND (<==? .X PRSA> <PARSE <STRING "V?" <SPNAME .ATM>>>) (ELSE .ATM)>>) (ELSE .
ATM)> !.L)> <SET ATMS <REST .ATMS>> <COND (<==? <LENGTH .L> 3> <RETURN>)>> <SET
O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>> <SET L ()>>>
<DEFMAC BSET ('OBJ "ARGS" BITS) <MULTIBITS FSET .OBJ .BITS>>
<DEFMAC BCLEAR ('OBJ "ARGS" BITS) <MULTIBITS FCLEAR .OBJ .BITS>>
<DEFMAC BSET? ('OBJ "ARGS" BITS) <MULTIBITS FSET? .OBJ .BITS>>
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM) <REPEAT () <COND (<EMPTY? .ATMS
> <RETURN <COND (<LENGTH? .O 1> <NTH .O 1>) (<EQUAL? .X FSET?> <FORM OR !.O>) (
ELSE <FORM PROG () !.O>)>>)> <SET ATM <NTH .ATMS 1>> <SET ATMS <REST .ATMS>> <
SET O (<FORM .X .OBJ <COND (<TYPE? .ATM FORM> .ATM) (ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<DEFMAC RMGL-SIZE ('TBL) <COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> <FORM -
<FORM / <FORM PTSIZE .TBL> 2> 1>) (T <FORM - <FORM PTSIZE .TBL> 1>)>>
<DEFMAC RFATAL () '<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE?) <FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
<DEFINE-ROUTINE PICK-ONE>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
<CONSTANT M-FATAL 2>
<CONSTANT M-BEG 1>
<CONSTANT M-END 6>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<DEFINE-ROUTINE GO>
<DEFINE-ROUTINE MAIN-LOOP>
<GLOBAL FIRST-BUFFER <ITABLE BYTE 100>>
<DEFINE-ROUTINE SAVE-INPUT>
<DEFINE-ROUTINE RESTORE-INPUT>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<DEFINE-ROUTINE FAKE-ORPHAN>
<DEFINE-ROUTINE PERFORM>
<DEFINE-ROUTINE THIS-IS-IT>
<DEFINE-ROUTINE D-APPLY>
<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-TABLE <ITABLE NONE 105>>
<CONSTANT C-TABLELEN 210>
<GLOBAL C-INTS 210>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<DEFINE-ROUTINE QUEUE>
<DEFINE-ROUTINE INT>
<DEFINE-ROUTINE CLOCKER>

431
misc.zap Normal file
View File

@ -0,0 +1,431 @@
.FUNCT RUNNING?,RTN,C,E,TICK
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E /FALSE
GET C,C-RTN
EQUAL? STACK,RTN \?CND3
GET C,C-ENABLED?
ZERO? STACK /FALSE
GET C,C-TICK >TICK
ZERO? TICK /FALSE
GRTR? TICK,1 /FALSE
RTRUE
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT PICK-ONE,FROB
GET FROB,0
RANDOM STACK
GET FROB,STACK
RSTACK
.FUNCT GO
START::
?FCN: PUTB P-LEXV,0,59
GETB 0,30 >HOST
GETB 0,33 >WIDTH
CALL QUEUE,I-HOUSEWRECK,20
PUT STACK,0,1
CALL QUEUE,I-THING,21
PUT STACK,0,1
CALL QUEUE,I-VOGONS,50
PUT STACK,0,1
SET 'WINNER,PROTAGONIST
SET 'PLAYER,PROTAGONIST
SET 'HERE,BEDROOM
SET 'IDENTITY-FLAG,ARTHUR
MOVE ARTHUR,GLOBAL-OBJECTS
SET 'LYING-DOWN,TRUE-VALUE
MOVE PROTAGONIST,BED
CLEAR -1
ICALL1 INIT-STATUS-LINE
ICALL1 V-VERSION
CRLF
PRINTI "You wake up. The room is spinning very gently round your head. Or at least it would be if you could see it which you can't."
CRLF
CRLF
ICALL1 V-LOOK
ICALL1 MAIN-LOOP
JUMP ?FCN
.FUNCT MAIN-LOOP,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
?PRG1: SET 'CNT,0
SET 'OBJ,FALSE-VALUE
SET 'PTBL,TRUE-VALUE
CALL1 PARSER >P-WON
ZERO? P-WON /?CCL5
GET P-PRSI,P-MATCHLEN >ICNT
GET P-PRSO,P-MATCHLEN >OCNT
ZERO? P-IT-OBJECT /?CND6
CALL2 ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK /?CND6
SET 'TMP,FALSE-VALUE
?PRG10: IGRTR? 'CNT,ICNT /?REP11
GET P-PRSI,CNT
EQUAL? STACK,IT \?PRG10
PUT P-PRSI,CNT,P-IT-OBJECT
SET 'TMP,TRUE-VALUE
?REP11: ZERO? TMP \?CND17
SET 'CNT,0
?PRG19: IGRTR? 'CNT,OCNT /?CND17
GET P-PRSO,CNT
EQUAL? STACK,IT \?PRG19
PUT P-PRSO,CNT,P-IT-OBJECT
?CND17: SET 'CNT,0
?CND6: ZERO? OCNT \?CCL28
SET 'NUM,OCNT
JUMP ?CND26
?CCL28: GRTR? OCNT,1 \?CCL30
SET 'TBL,P-PRSO
ZERO? ICNT \?CCL33
SET 'OBJ,FALSE-VALUE
JUMP ?CND31
?CCL33: GET P-PRSI,1 >OBJ
?CND31: SET 'NUM,OCNT
JUMP ?CND26
?CCL30: GRTR? ICNT,1 \?CCL35
SET 'PTBL,FALSE-VALUE
SET 'TBL,P-PRSI
GET P-PRSO,1 >OBJ
SET 'NUM,ICNT
JUMP ?CND26
?CCL35: SET 'NUM,1
?CND26: ZERO? OBJ \?CND36
EQUAL? ICNT,1 \?CND36
GET P-PRSI,1 >OBJ
?CND36: EQUAL? PRSA,V?WALK \?CCL42
ZERO? P-WALK-DIR \?CTR41
ZERO? PRSO /?CCL42
?CTR41: CALL PERFORM,PRSA,PRSO >V
JUMP ?CND40
?CCL42: ZERO? NUM \?CCL48
GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
ZERO? STACK \?CCL51
CALL2 PERFORM,PRSA >V
SET 'PRSO,FALSE-VALUE
JUMP ?CND40
?CCL51: ZERO? LIT \?PRG56
PRINT TOO-DARK
CRLF
ICALL1 FUCKING-CLEAR
JUMP ?CND40
?PRG56: PRINTI "There isn't anything to "
GET P-ITBL,P-VERBN >TMP
EQUAL? PRSA,V?TELL \?CCL60
PRINTI "talk to"
JUMP ?PRG67
?CCL60: ZERO? P-OFLAG \?CTR63
ZERO? P-MERGED /?CCL64
?CTR63: GET TMP,0
PRINTB STACK
JUMP ?PRG67
?CCL64: GETB TMP,2 >?TMP1
GETB TMP,3
ICALL WORD-PRINT,?TMP1,STACK
?PRG67: PRINTC 33
CRLF
SET 'V,FALSE-VALUE
ICALL1 FUCKING-CLEAR
JUMP ?CND40
?CCL48: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND69
SET 'P-MULT,TRUE-VALUE
?CND69: SET 'TMP,FALSE-VALUE
?PRG71: IGRTR? 'CNT,NUM \?CCL75
GRTR? P-NOT-HERE,0 \?CCL78
PRINTI "The "
EQUAL? P-NOT-HERE,NUM /?PRG85
PRINTI "other "
?PRG85: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?PRG91
PRINTC 115
?PRG91: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?PRG98
PRINTI "are"
JUMP ?PRG100
?PRG98: PRINTI "is"
?PRG100: PRINTI "n't here."
CRLF
JUMP ?CND40
?CCL78: ZERO? TMP \?CND40
PRINT REFERRING
CRLF
JUMP ?CND40
?CCL75: ZERO? PTBL /?CCL107
GET P-PRSO,CNT >OBJ1
JUMP ?CND105
?CCL107: GET P-PRSI,CNT >OBJ1
?CND105: ZERO? PTBL /?CCL110
SET 'PRSO,OBJ1
JUMP ?CND108
?CCL110: SET 'PRSO,OBJ
?CND108: ZERO? PTBL /?CCL113
SET 'PRSI,OBJ
JUMP ?CND111
?CCL113: SET 'PRSI,OBJ1
?CND111: GRTR? NUM,1 /?CCL115
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL \?CND114
?CCL115: EQUAL? OBJ1,NOT-HERE-OBJECT \?CCL120
INC 'P-NOT-HERE
JUMP ?PRG71
?CCL120: EQUAL? P-GETFLAGS,P-ALL \?CCL122
EQUAL? PRSA,V?PICK-UP,V?TAKE \?CCL122
LOC OBJ1
EQUAL? STACK,WINNER,HERE,PRSI /?PRD127
LOC OBJ1
FSET? STACK,SURFACEBIT \?PRG71
?PRD127: FSET? OBJ1,TAKEBIT /?CCL122
FSET? OBJ1,TRYTAKEBIT \?PRG71
?CCL122: EQUAL? PRSA,V?PICK-UP,V?TAKE \?CCL133
ZERO? PRSI /?CCL133
IN? PRSO,PRSI \?PRG71
?CCL133: EQUAL? P-GETFLAGS,P-ALL \?CCL138
EQUAL? PRSA,V?DROP \?CCL138
IN? OBJ1,WINNER \?PRG71
?CCL138: EQUAL? P-GETFLAGS,P-ALL \?CCL143
ZERO? PRSI /?CCL143
EQUAL? PRSO,PRSI /?PRG71
?CCL143: EQUAL? P-GETFLAGS,P-ALL \?CCL148
EQUAL? PRSA,V?PUT \?CCL148
CALL HELD?,PRSO,PRSI
ZERO? STACK \?PRG71
?CCL148: CALL2 ACCESSIBLE?,OBJ1
ZERO? STACK /?PRG71
EQUAL? OBJ1,IT \?CCL156
PRINTD P-IT-OBJECT
JUMP ?CND154
?CCL156: CALL2 TEA-PRINT,OBJ1
ZERO? STACK /?CND154
PRINTD OBJ1
?CND154: CALL2 TEA-PRINT,OBJ1
ZERO? STACK /?CND114
PRINTI ": "
?CND114: SET 'TMP,TRUE-VALUE
CALL PERFORM,PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG71
?CND40: EQUAL? V,M-FATAL /?CND164
EQUAL? PRSA,V?SUPERBRIEF,V?BRIEF,V?TELL /?CND164
EQUAL? PRSA,V?SAVE,V?HINTS,V?VERBOSE /?CND164
EQUAL? PRSA,V?SCRIPT,V?RESTORE,V?VERSION /?CND164
EQUAL? PRSA,V?UNSCRIPT /?CND164
LOC WINNER
GETP STACK,P?ACTION
CALL STACK,M-END >V
?CND164: EQUAL? V,M-FATAL \?CND3
SET 'P-CONT,FALSE-VALUE
JUMP ?CND3
?CCL5: SET 'P-CONT,FALSE-VALUE
?CND3: ZERO? P-WON /?CCL177
EQUAL? PRSA,V?SUPERBRIEF,V?BRIEF,V?TELL /?CND178
EQUAL? PRSA,V?QUIT,V?VERSION,V?VERBOSE /?CND178
EQUAL? PRSA,V?RESTORE,V?SAVE,V?SCORE /?CND178
EQUAL? PRSA,V?FOOTNOTE,V?UNSCRIPT,V?SCRIPT /?CND178
EQUAL? PRSA,V?RESTART,V?HINTS /?CND178
EQUAL? PRSA,V?WAIT \?CCL187
ZERO? DONT-FLAG \?CND178
?CCL187: CALL1 CLOCKER >V
?CND178: SET 'PRSA,FALSE-VALUE
SET 'PRSO,FALSE-VALUE
SET 'PRSI,FALSE-VALUE
JUMP ?PRG1
?CCL177: GETB P-LEXV,P-LEXWORDS
GRTR? STACK,3 \?PRG1
ZERO? CARELESS-WORDS-FLAG \?PRG1
ZERO? EARTH-DEMOLISHED /?PRG1
CALL2 SAVE-INPUT,FIRST-BUFFER
ZERO? STACK /?PRG1
SET 'CARELESS-WORDS-FLAG,TRUE-VALUE
CALL QUEUE,I-CARELESS-WORDS,3
PUT STACK,0,1
JUMP ?PRG1
.FUNCT SAVE-INPUT,TBL,OFFS,CNT,TMP,?TMP1
MUL 4,P-INPUT-WORDS >TMP
GETB P-LEXV,TMP >?TMP1
ADD TMP,1
GETB P-LEXV,STACK
ADD ?TMP1,STACK >CNT
ZERO? CNT /FALSE
DEC 'CNT
?PRG3: EQUAL? OFFS,CNT \?CCL7
PUTB TBL,OFFS,0
RTRUE
?CCL7: ADD OFFS,1
GETB P-INBUF,STACK
PUTB TBL,OFFS,STACK
INC 'OFFS
JUMP ?PRG3
.FUNCT RESTORE-INPUT,TBL,CHR
INC 'TBL
?PRG1: GETB TBL,0 >CHR
ZERO? CHR /TRUE
PRINTC CHR
INC 'TBL
JUMP ?PRG1
.FUNCT FAKE-ORPHAN,TMP,?TMP1
ICALL ORPHAN,P-SYNTAX,FALSE-VALUE
PRINTI "Be specific: what object do"
ZERO? DONT-FLAG /?PRG7
PRINTI "n't"
?PRG7: PRINTI " you want to "
GET P-OTBL,P-VERBN >TMP
ZERO? TMP \?CCL11
PRINTI "tell"
JUMP ?CND9
?CCL11: GETB P-VTBL,2
ZERO? STACK \?CCL15
GET TMP,0
PRINTB STACK
JUMP ?CND9
?CCL15: GETB TMP,2 >?TMP1
GETB TMP,3
ICALL WORD-PRINT,?TMP1,STACK
PUTB P-VTBL,2,0
?CND9: SET 'P-OFLAG,TRUE-VALUE
SET 'P-WON,FALSE-VALUE
GETB P-SYNTAX,P-SPREP1
ICALL2 PREP-PRINT,STACK
PRINTR "?"
.FUNCT PERFORM,A,O,I,V,OA,OO,OI
SET 'OA,PRSA
SET 'OO,PRSO
SET 'OI,PRSI
SET 'PRSA,A
EQUAL? IT,I,O \?CND1
ZERO? P-WALK-DIR \?CND1
EQUAL? A,V?WALK /?CND1
ZERO? I \?PRG9
ICALL1 FAKE-ORPHAN
RETURN 2
?PRG9: PRINT REFERRING
CRLF
RETURN 2
?CND1: SET 'PRSO,O
SET 'PRSI,I
EQUAL? A,V?WALK /?CND13
ZERO? P-WALK-DIR \?CND13
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CND13
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
ZERO? V /?CND13
SET 'P-WON,FALSE-VALUE
?CND13: SET 'O,PRSO
SET 'I,PRSI
ICALL2 THIS-IS-IT,PRSI
ICALL2 THIS-IS-IT,PRSO
ZERO? V \?CND20
GETP WINNER,P?ACTION
CALL D-APPLY,STR?2,STACK >V
?CND20: ZERO? V \?CND22
ZERO? DONT-FLAG /?CND22
CALL1 DONT-F >V
?CND22: ZERO? V \?CND26
LOC WINNER
ZERO? STACK /?CND26
LOC WINNER
GETP STACK,P?ACTION
CALL D-APPLY,STR?3,STACK,M-BEG >V
?CND26: ZERO? V \?CND30
GET PREACTIONS,A
CALL D-APPLY,STR?4,STACK >V
?CND30: ZERO? V \?CND32
ZERO? I /?CND32
GETP I,P?ACTION
CALL D-APPLY,STR?5,STACK >V
?CND32: ZERO? V \?CND36
ZERO? O /?CND36
EQUAL? A,V?WALK /?CND36
GETP O,P?ACTION
CALL D-APPLY,STR?6,STACK >V
?CND36: ZERO? V \?CND41
GET ACTIONS,A
CALL D-APPLY,FALSE-VALUE,STACK >V
?CND41: SET 'PRSA,OA
SET 'PRSO,OO
SET 'PRSI,OI
RETURN V
.FUNCT THIS-IS-IT,OBJ
EQUAL? OBJ,FALSE-VALUE,PROTAGONIST /TRUE
EQUAL? OBJ,NOT-HERE-OBJECT,ME,GLOBAL-ROOM /TRUE
EQUAL? PRSA,V?WALK \?CCL3
EQUAL? PRSO,OBJ /TRUE
?CCL3: SET 'P-IT-OBJECT,OBJ
RETURN P-IT-OBJECT
.FUNCT D-APPLY,STR,FCN,FOO,RES
ZERO? FCN /FALSE
ZERO? FOO /?CCL6
CALL FCN,FOO >RES
RETURN RES
?CCL6: CALL FCN >RES
RETURN RES
.FUNCT QUEUE,RTN,TICK,CINT
CALL2 INT,RTN >CINT
PUT CINT,C-TICK,TICK
RETURN CINT
.FUNCT INT,RTN,E,C,INT
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E \?CCL5
SUB C-INTS,C-INTLEN >C-INTS
ADD C-TABLE,C-INTS >INT
PUT INT,C-RTN,RTN
RETURN INT
?CCL5: GET C,C-RTN
EQUAL? STACK,RTN \?CND3
RETURN C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT CLOCKER,C,E,TICK,FLG
ZERO? CLOCK-WAIT /?CND1
SET 'CLOCK-WAIT,FALSE-VALUE
RFALSE
?CND1: ZERO? P-WON \?CCL5
PUSH 0
JUMP ?CND3
?CCL5: PUSH C-INTS
?CND3: ADD C-TABLE,STACK >C
ADD C-TABLE,C-TABLELEN >E
?PRG6: EQUAL? C,E \?CCL10
INC 'MOVES
RETURN FLG
?CCL10: GET C,C-ENABLED?
ZERO? STACK /?CND8
GET C,C-TICK >TICK
ZERO? TICK /?CND8
SUB TICK,1
PUT C,C-TICK,STACK
GRTR? TICK,1 /?CND8
GET C,C-RTN
CALL STACK
ZERO? STACK /?CND8
SET 'FLG,TRUE-VALUE
?CND8: ADD C,C-INTLEN >C
JUMP ?PRG6
.ENDI

667
misc.zil Normal file
View File

@ -0,0 +1,667 @@
"MISC for
THE HITCHHIKER'S GUIDE TO THE GALAXY
(c) 1984 by Infocom, Inc. All Rights Reserved."
;"former MACROS.ZIL stuff"
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
<ROUTINE RUNNING? (RTN "AUX" C E TICK)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<==? .C .E> <RFALSE>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<COND (<OR <0? <GET .C ,C-ENABLED?>>
<0? <SET TICK <GET .C ,C-TICK>>>
<G? .TICK 1>>
<RFALSE>)
(T <RTRUE>)>)>
<SET C <REST .C ,C-INTLEN>>>>
<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>>)
(<EMPTY? .A>
<ERROR INDICATOR-AT-END? .E>)
(ELSE
<SET O <NTH .A 1>>
<SET A <REST .A>>
<COND (<OR <=? <SET P <SPNAME .E>>
"DESC">
<=? .P "D">
<=? .P "OBJ">
<=? .P "O">>
<MAPRET <FORM PRINTD .O>>)
(<OR <=? .P "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 ZSTRING>
<MAPRET <FORM PRINTI .E>>)
(<TYPE? .E FORM LVAL GVAL>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS)
<MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS)
<MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
(<LENGTH? .OO 2> <NTH .OO 2>)
(ELSE <CHTYPE .OO FORM>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<COND (<TYPE? .ATM ATOM>
<FORM GVAL
<COND (<==? .X PRSA>
<PARSE
<STRING "V?"
<SPNAME .ATM>>>)
(ELSE .ATM)>>)
(ELSE .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>>
<SET L ()>>>
<DEFMAC BSET ('OBJ "ARGS" BITS)
<MULTIBITS FSET .OBJ .BITS>>
<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
<MULTIBITS FCLEAR .OBJ .BITS>>
<DEFMAC BSET? ('OBJ "ARGS" BITS)
<MULTIBITS FSET? .OBJ .BITS>>
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(<EQUAL? .X FSET?> <FORM OR !.O>)
(ELSE <FORM PROG () !.O>)>>)>
<SET ATM <NTH .ATMS 1>>
<SET ATMS <REST .ATMS>>
<SET O
(<FORM .X
.OBJ
<COND (<TYPE? .ATM FORM> .ATM)
(ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<DEFMAC RMGL-SIZE ('TBL)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>)
(T <FORM - <FORM PTSIZE .TBL> 1>)>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE?)
<FORM NOT <FORM L? .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>>
;"former MAIN.ZIL stuff"
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
<CONSTANT M-FATAL 2>
<CONSTANT M-BEG 1>
<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>
;"read in system parameters"
<SETG HOST <LOWCORE INTID>>
;<SETG CWIDTH <LOWCORE (FWRD 0)>>
;<SETG WIDTH </ <LOWCORE HWRD> ,CWIDTH>>
<SETG WIDTH <LOWCORE SCRH>> ;"C-128 SCRH NOT = HWRD/FWRD"
;"put interrupts on clock chain"
<ENABLE <QUEUE I-HOUSEWRECK 20>>
<ENABLE <QUEUE I-THING 21>>
<ENABLE <QUEUE I-VOGONS 50>>
;"set up and go"
<SETG WINNER ,PROTAGONIST>
<SETG PLAYER ,PROTAGONIST>
<SETG HERE ,BEDROOM>
<SETG IDENTITY-FLAG ,ARTHUR>
<MOVE ,ARTHUR ,GLOBAL-OBJECTS>
<SETG LYING-DOWN T>
<MOVE ,PROTAGONIST ,BED>
<CLEAR -1>
<INIT-STATUS-LINE>
<V-VERSION>
<CRLF>
<TELL
"You wake up. The room is spinning very gently round your head. Or at least
it would be if you could see it which you can't." CR CR>
<V-LOOK>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
<REPEAT ()
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
<SET TMP T>
<RETURN>)>)>>
<COND (<NOT .TMP>
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
<RETURN>)>)>>)>
<SET CNT 0>)>
<SET NUM
<COND (<0? .OCNT> .OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT> <SET OBJ <>>)
(T <SET OBJ <GET ,P-PRSI 1>>)>
.OCNT)
(<G? .ICNT 1>
<SET PTBL <>>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T 1)>>
<COND (<AND <NOT .OBJ>
<1? .ICNT>>
<SET OBJ <GET ,P-PRSI 1>>)>
<COND (<AND <EQUAL? ,PRSA ,V?WALK> ;"modified by GTB per XZIP"
<OR <T? ,P-WALK-DIR>
<T? ,PRSO>>>
<SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM ,PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL ,TOO-DARK CR>
<FUCKING-CLEAR>)
(T
<TELL "There isn't anything to ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (<VERB? TELL>
<TELL "talk to">)
(<OR ,P-OFLAG ,P-MERGED>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2>
<GETB .TMP 3>>)>
<TELL "!" CR>
<SET V <>>
<FUCKING-CLEAR>)>)
(T
<SETG P-NOT-HERE 0>
<SETG P-MULT <>>
<COND (<G? .NUM 1> <SETG P-MULT T>)>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
<COND (<G? ,P-NOT-HERE 0>
<TELL "The ">
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
<TELL "other ">)>
<TELL "object">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "s">)>
<TELL " that you mentioned ">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "are">)
(T <TELL "is">)>
<TELL "n't here." CR>)
(<NOT .TMP>
<TELL ,REFERRING CR>)>
<RETURN>)
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1>
0>
,W?ALL>>
<COND (<EQUAL? .OBJ1
,NOT-HERE-OBJECT>
<SETG P-NOT-HERE
<+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? TAKE PICK-UP>
<OR <AND <NOT <EQUAL?
<LOC .OBJ1>
,WINNER
,HERE
,PRSI>>
<NOT <FSET?
<LOC .OBJ1>
,SURFACEBIT>>>
<AND <NOT <FSET? .OBJ1
,TAKEBIT>>
<NOT <FSET? .OBJ1
,TRYTAKEBIT>>>>>
<AGAIN>)
(<AND <VERB? TAKE PICK-UP>
,PRSI
<NOT <IN? ,PRSO ,PRSI>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? DROP>
<NOT <IN? .OBJ1 ,WINNER>>
;"next frob semied by JW"
;<NOT <IN? ,P-IT-OBJECT
,WINNER>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
,PRSI
<==? ,PRSO ,PRSI>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? PUT>
<HELD? ,PRSO ,PRSI>>
<AGAIN>)
(<NOT <ACCESSIBLE? .OBJ1>>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(<TEA-PRINT .OBJ1>
<PRINTD .OBJ1>)>
<COND (<TEA-PRINT .OBJ1>
<TELL ": ">)>)>)>
<SET TMP T>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<EQUAL? .V ,M-FATAL> <RETURN>)>)>>)>
<COND (<NOT <EQUAL? .V ,M-FATAL>>
<COND (<VERB? TELL BRIEF SUPERBRIEF VERBOSE HINTS
SAVE VERSION RESTORE SCRIPT UNSCRIPT>
T)
(T
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION>
,M-END>>)>)>
;<COND (<VERB? ;AGAIN SAVE RESTORE SCRIPT UNSCRIPT
VERBOSE BRIEF SUPERBRIEF>
T)
(,P-OFLAG T)
;(T
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
<SETG L-PRSI ,PRSI>)>
;<COND (,DONT-FLAG
<SETG L-DONT-FLAG T>)
(T
<SETG L-DONT-FLAG <>>)>
;<COND (,IN-FRONT-FLAG
<SETG L-FRONT-FLAG T>)
(T
<SETG L-FRONT-FLAG <>>)>
<COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>)>)
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPERBRIEF VERBOSE VERSION QUIT SCORE
SAVE RESTORE SCRIPT UNSCRIPT FOOTNOTE HINTS RESTART>
T)
;(<AND <VERB? AGAIN>>
<OR <EQUAL? ,L-PRSA ,V?FIND ,V?FOLLOW ,V?CALL>
<EQUAL? ,L-PRSA ,V?WHAT ,V?WHERE ,V?WAIT-FOR>
<EQUAL? ,L-PRSA ,V?WHO ,V?WALK-TO ,V?WHAT-ABOUT>
<EQUAL? ,L-PRSA ,V?ASK-ABOUT ,V?ASK-FOR ,V?I-AM>
<EQUAL? ,L-PRSA ,V?MY-NAME ,V?CARVE ,V?SCORE>
<EQUAL? ,L-PRSA ,V?VERSION ,V?FOOTNOTE ,V?HINTS>>
T)
(<AND <VERB? WAIT>
,DONT-FLAG>
T)
;(<AND <VERB? AGAIN>
<EQUAL? ,L-PRSA ,V?WAIT>
,L-DONT-FLAG>
T)
(T
<SET V <CLOCKER>>)>
<SETG PRSA <>>
<SETG PRSO <>>
<SETG PRSI <>>)
(<AND <G? <GETB ,P-LEXV ,P-LEXWORDS> 3>
<NOT ,CARELESS-WORDS-FLAG>
,EARTH-DEMOLISHED
<SAVE-INPUT ,FIRST-BUFFER>>
<SETG CARELESS-WORDS-FLAG T>
<ENABLE <QUEUE I-CARELESS-WORDS 3>>)>>>
<GLOBAL FIRST-BUFFER <ITABLE BYTE 100>>
<ROUTINE SAVE-INPUT (TBL "AUX" (OFFS 0) CNT TMP)
<SET CNT <+ <GETB ,P-LEXV <SET TMP <* 4 ,P-INPUT-WORDS>>>
<GETB ,P-LEXV <+ .TMP 1>>>>
<COND (<EQUAL? .CNT 0> ;"failed"
<RFALSE>)>
<SET CNT <- .CNT 1>>
<REPEAT ()
<COND (<EQUAL? .OFFS .CNT>
<PUTB .TBL .OFFS 0>
<RETURN>)
(T
<PUTB .TBL .OFFS <GETB ,P-INBUF <+ .OFFS 1>>>)>
<SET OFFS <+ .OFFS 1>>>
<RTRUE>>
<ROUTINE RESTORE-INPUT (TBL "AUX" CHR)
<SET TBL <REST .TBL>>
<REPEAT ()
<COND (<EQUAL? <SET CHR <GETB .TBL 0>> 0>
<RETURN>)
(T
<PRINTC .CHR>
<SET TBL <REST .TBL>>)>>>
;<GLOBAL L-PRSA <>>
;<GLOBAL L-PRSO <>>
;<GLOBAL L-PRSI <>>
;<GLOBAL L-DONT-FLAG <>>
;<GLOBAL L-FRONT-FLAG <>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<ROUTINE FAKE-ORPHAN ("AUX" TMP)
<ORPHAN ,P-SYNTAX <>>
<TELL "Be specific: what object do">
<COND (,DONT-FLAG
<TELL "n't">)>
<TELL " you want to ">
<SET TMP <GET ,P-OTBL ,P-VERBN>>
<COND (<EQUAL? .TMP 0>
<TELL "tell">)
(<0? <GETB ,P-VTBL 2>>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>
<PUTB ,P-VTBL 2 0>)>
<SETG P-OFLAG T>
<SETG P-WON <>>
<PREP-PRINT
<GETB ,P-SYNTAX ,P-SPREP1>>
<TELL "?" CR>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" (V <>) OA OO OI)
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<SETG PRSA .A>
<COND (<AND <EQUAL? ,IT .I .O>
<ZERO? ,P-WALK-DIR>
<NOT <EQUAL? .A ,V?WALK>>> ;"NE FIX"
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<TELL ,REFERRING CR>)>
<RFATAL>)>
<SETG PRSO .O>
<SETG PRSI .I>
<COND (<AND <NOT <EQUAL? .A ,V?WALK>>
<ZERO? ,P-WALK-DIR>
<EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>
<COND (<T? .V>
<SETG P-WON <>>)>)>
<SET O ,PRSO>
<SET I ,PRSI>
<THIS-IS-IT ,PRSI>
<THIS-IS-IT ,PRSO>
<COND (<ZERO? .V>
<SET V <D-APPLY "Actor" <GETP ,WINNER ,P?ACTION>>>)>
<COND (<AND <ZERO? .V>
,DONT-FLAG>
<SET V <DONT-F>>)>
<COND (<ZERO? .V>
<COND (<T? <LOC ,WINNER>>
<SET V <D-APPLY "M-Beg" <GETP <LOC ,WINNER> ,P?ACTION>
,M-BEG>>)>)>
<COND (<ZERO? .V>
<SET V <D-APPLY "Preaction" <GET ,PREACTIONS .A>>>)>
<COND (<AND <ZERO? .V>
<T? .I>>
<SET V <D-APPLY "PRSI" <GETP .I ,P?ACTION>>>)>
<COND (<AND <ZERO? .V>
<T? .O>
;<ZERO? ,P-WALK-DIR>
<NOT <EQUAL? .A ,V?WALK>>>
<SET V <D-APPLY "PRSO" <GETP .O ,P?ACTION>>>)>
<COND (<ZERO? .V>
<SET V <D-APPLY <> <GET ,ACTIONS .A>>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<ROUTINE THIS-IS-IT (OBJ)
<COND (<OR <EQUAL? .OBJ <> ,PROTAGONIST> ;"is this necessary?"
<EQUAL? .OBJ ,NOT-HERE-OBJECT ,ME ,GLOBAL-ROOM>
<AND <VERB? WALK>
<PRSO? .OBJ>> ;"PRSO is a direction">
<RTRUE>)
;(<FSET? .OBJ ,PERSON>
<SETG P-HIM-OBJECT .OBJ>)
(T
<SETG P-IT-OBJECT .OBJ>)>>
;<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
;<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
(T '<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
<COND (<AND .O <NOT <EQUAL? .A ,V?WALK>>>
<TELL " / PRSO = " D .O>)>
<COND (.I <TELL " / PRSI = " D .I>)>
<TELL "]" CR>
<COND (,IN-FRONT-FLAG
<TELL "[IN-FRONT-FLAG is set]" CR>)>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<SETG PRSA .A>
<COND (<AND <EQUAL? ,IT .O .I>
<NOT <EQUAL? .A ,V?WALK>>>
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<TELL ,REFERRING CR>)>
<RFATAL>)>
<SETG PRSO .O>
<COND (<AND ,PRSO
<NOT <VERB? WALK>>
<NOT <PRSO? ,NOT-HERE-OBJECT>>>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
;<COND (<NOT <EQUAL? .A ,V?AGAIN>>
<SETG L-PRSA .A>
<COND (<EQUAL? .A ,V?WALK> <SETG L-PRSO <>>)
(T <SETG L-PRSO .O>)>
<SETG L-PRSI .I>)>
<COND (<AND <NOT <EQUAL? .A ,V?WALK>>
<EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND (<SET V <D-APPLY "Actor" <GETP ,WINNER ,P?ACTION>>>
.V)
(<AND ,DONT-FLAG <SET V <DONT-F>>>
.V)
(<SET V <D-APPLY "M-Beg" <GETP <LOC ,WINNER> ,P?ACTION>
,M-BEG>>
.V)
(<SET V <D-APPLY "Preaction" <GET ,PREACTIONS .A>>>
.V)
(<AND .I <SET V <D-APPLY "PRSI" <GETP .I ,P?ACTION>>>>
.V)
;(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<LOC .O>
<GETP <LOC .O> ,P?CONTFCN>
<SET V <D-APPLY "Cont" <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<SET V <D-APPLY "PRSO" <GETP .O ,P?ACTION>>>>
.V)
(<SET V <D-APPLY <> <GET ,ACTIONS .A>>>
.V)>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
<COND (<NOT .FCN> <>)
(T
;<COND (,DEBUG
<COND (<NOT .STR>
<TELL CR " Default ->" CR>)
(T <TELL CR " " .STR " -> ">)>)>
<SET RES
<COND (.FOO <APPLY .FCN .FOO>)
(T <APPLY .FCN>)>>
;<COND (<AND ,DEBUG .STR>
<COND (<EQUAL? .RES ,M-FATAL>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
;"former CLOCK.ZIL stuff"
<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-TABLE %<COND (<GASSIGNED? PREDGEN>
'<ITABLE NONE 105>)
(T
'<ITABLE NONE 210>)>>
<CONSTANT C-TABLELEN 210>
<GLOBAL C-INTS 210>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
.CINT>
<ROUTINE INT (RTN "OPTIONAL" E C INT)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
<SET INT <REST ,C-TABLE ,C-INTS>>
<PUT .INT ,C-RTN .RTN>
<RETURN .INT>)
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
<SET C <REST .C ,C-INTLEN>>>>
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS)>>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<EQUAL? .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>>>>

34
nhitch.chart Normal file
View File

@ -0,0 +1,34 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
11/10 -1 158230 26078 236 189 1019
11/10 1 158234 26078 236 189 1019
11/10 2 158118 26081 236 189 1019
11/10 3 158182 26081 236 189 1019
11/10 4 158182 26081 236 189 1019
11/11 5 158182 26081 236 189 1019
11/11 6 157514 26081 236 189 1019
11/11 7 158234 26081 236 189 1019
11/11 8 158234 26081 236 189 1019
11/11 9 158222 26081 236 189 1019
11/11 10 158266 26081 236 189 1019
11/12 11 158226 26071 236 184 1019
11/12 12 158170 26071 236 184 1019
11/12 13 158170 26071 236 184 1019
11/12 14 158194 26071 236 184 1019
11/12 15 158186 26071 236 184 1019
11/13 16 158178 26071 236 184 1019
11/13 17 158178 26071 236 184 1019
11/16 18 158138 26071 236 184 1019
11/16 19 158138 26071 236 184 1019
11/16 20 158434 28285 236 184 1019
11/16 21 158466 28285 236 184 1019
11/16 22 158462 28285 236 184 1019
11/16 23 158462 28285 236 184 1019
11/16 24 158450 28285 236 184 1019
11/16 25 158438 28285 236 184 1019
11/17 26 158438 28285 236 184 1019
11/17 27 158438 28285 236 184 1019
11/17 28 158450 28285 236 184 1019
11/17 29 158430 28281 236 182 1019
11/18 30 158438 28281 236 182 1019
11/18 30 158418 28281 236 182 1019
11/19 31 158410 28281 236 182 1019

24
nhitch.errors Normal file
View File

@ -0,0 +1,24 @@
Assembling NHITCH.ZAP.31 on Thursday, November 19, 1987 15:13:35
Release: 31
64 Inserting NHITCHFREQ.ZAP.1 (640 bytes)
704 Inserting NHITCHDAT.ZAP.31 (27577 bytes)
28281 Inserting NHITCHPUR.ZAP.31 (580 bytes)
28861 Inserting MISC.ZAP.33 (1599 bytes)
30460 Inserting HEART.ZAP.26 (13541 bytes)
44001 Inserting PARSER.ZAP.26 (6557 bytes)
50558 Inserting VERBS.ZAP.31 (14839 bytes)
65397 Inserting EARTH.ZAP.21 (19426 bytes)
84823 Inserting VOGON.ZAP.19 (5784 bytes)
90607 Inserting UNEARTH.ZAP.24 (9726 bytes)
100333 Inserting GLOBALS.ZAP.28 (14665 bytes)
114998 Inserting HINTS.ZAP.25 (1302 bytes)
116300 Inserting NHITCHSTR.ZAP.31 (42110 bytes)
236 objects.
182 globals.
1019 word vocabulary.
158410 bytes (155K).
28281 bytes of preload.
15156 bytes of impure.
Outputting symbol tables

2
nhitch.lowcore Normal file
View File

@ -0,0 +1,2 @@
0

745
nhitch.record Normal file
View File

@ -0,0 +1,745 @@
Combined ZIL Compiler Ver 2.0 (MIM)
-----------------------------------
Input file: SS:<S4.CHEAP>NHITCH.ZIL.2
Compiling routine: RUNNING?
Compiling routine: PICK-ONE
Compiling routine: GO
Compiling routine: MAIN-LOOP
Compiling routine: SAVE-INPUT
Compiling routine: RESTORE-INPUT
Compiling routine: FAKE-ORPHAN
Compiling routine: PERFORM
Compiling routine: THIS-IS-IT
Compiling routine: D-APPLY
Compiling routine: QUEUE
Compiling routine: INT
Compiling routine: CLOCKER
Compiling routine: IN-HEART?
Compiling routine: HEART-OF-GOLD-F
Compiling routine: PANTRY-F
Compiling routine: SCREENING-DOOR-F
Compiling routine: MARVIN-F
Compiling routine: I-MARVIN
Compiling routine: MARVIN-BITCH
Compiling routine: FLOWERPOT-F
Compiling routine: I-PLANT
Compiling routine: PLANT-F
Compiling routine: FRUIT-F
Compiling routine: GALLEY-F
Compiling routine: NUTRIMAT-F
Compiling routine: PAD-F
Compiling routine: SLOT-F
Compiling routine: BOARD-F
Compiling routine: DIPSWITCH-F
Compiling routine: SUBSTITUTE-DESCFCN
Compiling routine: SUBSTITUTE-F
Compiling routine: INTERFACE-BOX-F
Compiling routine: BEAST-GUN-F
Compiling routine: I-TEA
Compiling routine: I-LANDING
Compiling routine: SAUNA-ENTER-F
Compiling routine: BRIDGE-F
Compiling routine: SAUNA-PSEUDO
Compiling routine: PEOPLE-PSEUDO
Compiling routine: EDDIE-F
Compiling routine: LARGE-RECEPTACLE-F
Compiling routine: ZAPHOD-F
Compiling routine: I-ZAPHOD
Compiling routine: TRILLIAN-F
Compiling routine: HANDBAG-F
Compiling routine: FORE-CORRIDOR-F
Compiling routine: AFT-CORRIDOR-F
Compiling routine: I-REPLY
Compiling routine: ENGINE-ROOM-ENTER-F
Compiling routine: I-ARGUMENT
Compiling routine: ENTRY-BAY-F
Compiling routine: SALES-BROCHURE-F
Compiling routine: ENGINE-ROOM-F
Compiling routine: MAIN-DRIVE-F
Compiling routine: SPARE-DRIVE-F
Compiling routine: LARGE-PLUG-F
Compiling routine: SMALL-PLUG-F
Compiling routine: SWITCH-F
Compiling routine: PLOTTER-DESCFCN
Compiling routine: PLOTTER-F
Compiling routine: DANGLY-BIT-F
Compiling routine: HATCHWAY-F
Compiling routine: ACCESS-SPACE-ENTER-F
Compiling routine: ACCESS-SPACE-LOOP
Compiling routine: HATCH-F
Compiling routine: MECHANISM-F
Compiling routine: ACCESS-SPACE-F
Compiling routine: MESH-PSEUDO
Compiling routine: RAMP-F
Compiling routine: PARSER
Compiling routine: NEXT-WORD
Compiling routine: CHANGE-LEXV
Compiling routine: STUFF
Compiling routine: INBUF-STUFF
Compiling routine: INBUF-ADD
Compiling routine: WT?
Compiling routine: CLAUSE
Compiling routine: NUMBER?
Compiling routine: ORPHAN-MERGE
Compiling routine: ACLAUSE-WIN
Compiling routine: NCLAUSE-WIN
Compiling routine: WORD-PRINT
Compiling routine: UNKNOWN-WORD
Compiling routine: CANT-USE
Compiling routine: SYNTAX-CHECK
Compiling routine: CANT-ORPHAN
Compiling routine: ORPHAN
Compiling routine: CLAUSE-PRINT
Compiling routine: BUFFER-PRINT
Compiling routine: NAME?
Compiling routine: CAPITALIZE
Compiling routine: PREP-PRINT
Compiling routine: CLAUSE-COPY
Compiling routine: CLAUSE-ADD
Compiling routine: PREP-FIND
Compiling routine: SYNTAX-FOUND
Compiling routine: GWIM
Compiling routine: SNARF-OBJECTS
Compiling routine: BUT-MERGE
Compiling routine: SNARFEM
Compiling routine: ADJ-CHECK
Compiling routine: GET-OBJECT
Compiling routine: MOBY-FIND
Compiling routine: WHICH-PRINT
Compiling routine: GLOBAL-CHECK
Compiling routine: DO-SL
Compiling routine: SEARCH-LIST
Compiling routine: OBJ-FOUND
Compiling routine: TAKE-CHECK
Compiling routine: ITAKE-CHECK
Compiling routine: MANY-CHECK
Compiling routine: LIT?
Compiling routine: PRSO-PRINT
Compiling routine: PRSI-PRINT
Compiling routine: THIS-IT?
Compiling routine: V-$REFRESH
Compiling routine: V-VERBOSE
Compiling routine: V-BRIEF
Compiling routine: V-SUPERBRIEF
Compiling routine: V-DIAGNOSE
Compiling routine: V-INVENTORY
Compiling routine: V-QUIT
Compiling routine: V-RESTART
Compiling routine: FINISH
Compiling routine: YES?
Compiling routine: V-RESTORE
Compiling routine: V-SAVE
Compiling routine: V-SCORE
Compiling routine: V-SCRIPT
Compiling routine: V-UNSCRIPT
Compiling routine: COPR-NOTICE
Compiling routine: V-$ID
Compiling routine: V-VERSION
Compiling routine: V-$VERIFY
Compiling routine: V-ALARM
Compiling routine: V-ANSWER
Compiling routine: V-APPLAUD
Compiling routine: V-APPRECIATE
Compiling routine: V-ASK-ABOUT
Compiling routine: V-ASK-FOR
Compiling routine: V-BITE
Compiling routine: V-BLOCK
Compiling routine: V-BLOCK-WITH
Compiling routine: PRE-BOARD
Compiling routine: V-BOARD
Compiling routine: V-BRUSH
Compiling routine: V-BUY
Compiling routine: V-CALL
Compiling routine: V-CALL-WITH
Compiling routine: PRE-CARVE
Compiling routine: V-CARVE
Compiling routine: V-CARVE-WITH
Compiling routine: V-CHASTISE
Compiling routine: V-CLEAN
Compiling routine: V-CLIMB-DOWN
Compiling routine: V-CLIMB-FOO
Compiling routine: V-CLIMB-ON
Compiling routine: V-CLIMB-OVER
Compiling routine: V-CLIMB-UP
Compiling routine: V-CLOSE
Compiling routine: V-COUNT
Compiling routine: V-CUT
Compiling routine: V-DIG
Compiling routine: V-DISEMBARK
Compiling routine: V-DOZE
Compiling routine: V-DRINK
Compiling routine: V-DRINK-FROM
Compiling routine: PRE-DROP
Compiling routine: V-DROP
Compiling routine: V-EAT
Compiling routine: V-ENJOY
Compiling routine: V-ENTER
Compiling routine: V-ESCAPE
Compiling routine: V-EXAMINE
Compiling routine: V-EXAMINE-THROUGH
Compiling routine: V-EXIT
Compiling routine: V-FEED
Compiling routine: V-FILL
Compiling routine: V-FIND
Compiling routine: V-FIRST-LOOK
Compiling routine: V-FLIPSWITCH
Compiling routine: V-FOLLOW
Compiling routine: I-FOLLOW
Compiling routine: V-FOOTNOTE
Compiling routine: V-FRIPPING
Compiling routine: V-GET-DRESSED
Compiling routine: V-GET-DRUNK
Compiling routine: V-GET-UNDRESSED
Compiling routine: PRE-GIVE
Compiling routine: V-GIVE
Compiling routine: V-GIVE-UP
Compiling routine: V-HANG
Compiling routine: V-HELLO
Compiling routine: V-HIDE
Compiling routine: V-HITCHHIKE
Compiling routine: V-I-AM
Compiling routine: V-IDIOT
Compiling routine: V-KICK
Compiling routine: V-KILL
Compiling routine: V-KNEEL
Compiling routine: V-KNOCK
Compiling routine: V-KISS
Compiling routine: V-LAMP-OFF
Compiling routine: V-LAMP-ON
Compiling routine: V-LEAP
Compiling routine: V-LEAVE
Compiling routine: V-LIE-DOWN
Compiling routine: V-LISTEN
Compiling routine: V-LOCK
Compiling routine: V-LOOK
Compiling routine: V-LOOK-BEHIND
Compiling routine: V-LOOK-DOWN
Compiling routine: V-LOOK-INSIDE
Compiling routine: V-LOOK-UNDER
Compiling routine: V-LOOK-UP
Compiling routine: V-LOWER
Compiling routine: V-MAKE
Compiling routine: V-MOVE
Compiling routine: V-MUNG
Compiling routine: V-MY-NAME
Compiling routine: V-NO
Compiling routine: V-OPEN
Compiling routine: V-PANIC
Compiling routine: V-PICK
Compiling routine: V-PICK-UP
Compiling routine: V-PLANT
Compiling routine: V-PLUG
Compiling routine: V-POINT
Compiling routine: V-POUR
Compiling routine: V-PROTEST
Compiling routine: V-PULL-TOGETHER
Compiling routine: V-PUSH
Compiling routine: PRE-PUT
Compiling routine: V-PUT
Compiling routine: V-PUT-BEHIND
Compiling routine: V-PUT-IN-FRONT
Compiling routine: V-PUT-ON
Compiling routine: V-PUT-UNDER
Compiling routine: V-RAPE
Compiling routine: V-RAISE
Compiling routine: PRE-READ
Compiling routine: V-READ
Compiling routine: V-REFUSE
Compiling routine: V-RELAX
Compiling routine: V-REMOVE
Compiling routine: V-REPLACE
Compiling routine: V-REPAIR
Compiling routine: V-REPLY
Compiling routine: V-RUB
Compiling routine: V-SAVE-SOMETHING
Compiling routine: V-SAY
Compiling routine: SAID-YOUR-NAME?
Compiling routine: SAID-WITH-TOWEL
Compiling routine: V-SAY-NAME
Compiling routine: V-SEARCH
Compiling routine: V-SGIVE
Compiling routine: V-SHAKE
Compiling routine: V-SHAKE-WITH
Compiling routine: V-SHOOT
Compiling routine: V-SHOW
Compiling routine: V-SIT
Compiling routine: V-SKIP
Compiling routine: V-SLEEP
Compiling routine: V-SMELL
Compiling routine: V-SMILE
Compiling routine: V-SPIN
Compiling routine: V-SPUT-ON
Compiling routine: V-SSHOOT
Compiling routine: V-SSHOW
Compiling routine: V-STAND
Compiling routine: V-STAND-BEFORE
Compiling routine: V-STAND-ON
Compiling routine: V-STEER
Compiling routine: PRE-TAKE
Compiling routine: V-TAKE
Compiling routine: V-TAKE-OFF
Compiling routine: V-TASTE
Compiling routine: V-TELL
Compiling routine: V-TELL-ABOUT
Compiling routine: V-TELL-TIME
Compiling routine: V-TELL-NAME
Compiling routine: V-THANK
Compiling routine: V-THROUGH
Compiling routine: PRE-THROW
Compiling routine: V-THROW
Compiling routine: V-THROW-OFF
Compiling routine: V-THROW-IN-TOWEL
Compiling routine: V-TIE
Compiling routine: V-TIE-TOGETHER
Compiling routine: V-TURN
Compiling routine: V-TYPE
Compiling routine: V-TYPE-ON
Compiling routine: V-UNLOCK
Compiling routine: V-UNPLUG
Compiling routine: V-UNTIE
Compiling routine: V-WALK
Compiling routine: V-WALK-AROUND
Compiling routine: V-WALK-TO
Compiling routine: V-WAIT
Compiling routine: V-WAIT-FOR
Compiling routine: V-WATER
Compiling routine: V-WAVE
Compiling routine: V-WAVE-AT
Compiling routine: V-WEAR
Compiling routine: V-WHAT
Compiling routine: V-WHAT-ABOUT
Compiling routine: V-WHAT-TIME
Compiling routine: V-WHERE
Compiling routine: V-WHO
Compiling routine: V-WHY
Compiling routine: V-YELL
Compiling routine: V-YES
Compiling routine: ITAKE
Compiling routine: IDROP
Compiling routine: CCOUNT
Compiling routine: WEIGHT
Compiling routine: DESCRIBE-ROOM
Compiling routine: DESCRIBE-OBJECTS
Compiling routine: DESCRIBE-OBJECT
Compiling routine: PRINT-CONT
Compiling routine: PRINT-CONTENTS
Compiling routine: FIRSTER
Compiling routine: DESCRIBE-VEHICLE
Compiling routine: GOTO
Compiling routine: UNPLUG-HELD-STUFF
Compiling routine: JIGS-UP
Compiling routine: ACCESSIBLE?
Compiling routine: VISIBLE?
Compiling routine: META-LOC
Compiling routine: OTHER-SIDE
Compiling routine: HELD?
Compiling routine: SEE-INSIDE?
Compiling routine: GLOBAL-IN?
Compiling routine: FIND-IN
Compiling routine: LOC-CLOSED
Compiling routine: DO-WALK
Compiling routine: FUCKING-CLEAR
Compiling routine: ROB
Compiling routine: HOLDING-ONE-BUT-NOT-BOTH?
Compiling routine: HACK-HACK
Compiling routine: ARTICLE
Compiling routine: HOME-F
Compiling routine: HOUSE-F
Compiling routine: I-HOUSEWRECK
Compiling routine: BETTER-LUCK
Compiling routine: HANGOVER-F
Compiling routine: BEDROOM-F
Compiling routine: BEDROOM-EXIT-F
Compiling routine: PHONE-F
Compiling routine: GLOBAL-BED-F
Compiling routine: BED-F
Compiling routine: CURTAINS-F
Compiling routine: GOWN-F
Compiling routine: SLEEVES-F
Compiling routine: TWO-TREES
Compiling routine: THING-F
Compiling routine: I-THING
Compiling routine: TABLET-F
Compiling routine: CLOTHES-EXIT-F
Compiling routine: MAIL-F
Compiling routine: HOUSE-ENTER-F
Compiling routine: FRONT-OF-HOUSE-F
Compiling routine: I-BULLDOZER
Compiling routine: BRICK-DEATH
Compiling routine: BULLDOZER-DRIVER-F
Compiling routine: BULLDOZER-F
Compiling routine: I-PROSSER
Compiling routine: PROSSER-DESCFCN
Compiling routine: PROSSER-F
Compiling routine: STAND-ASIDE
Compiling routine: DIGITAL-WATCH-F
Compiling routine: FORD-DESCFCN
Compiling routine: FORD-F
Compiling routine: FORD-DECIDES
Compiling routine: I-FORD
Compiling routine: SATCHEL-DESCFCN
Compiling routine: ITEM-ON-SATCHEL-DESCRIPTION
Compiling routine: SATCHEL-F
Compiling routine: TOWEL-F
Compiling routine: BACK-OF-HOUSE-F
Compiling routine: TREE-PSEUDO
Compiling routine: COUNTRY-LANE-F
Compiling routine: I-DOG
Compiling routine: DOG-F
Compiling routine: PUB-OBJECT-F
Compiling routine: PUB-F
Compiling routine: BAR-F
Compiling routine: PUB-SHELF-F
Compiling routine: MUSIC-F
Compiling routine: JUKEBOX-F
Compiling routine: BARMAN-F
Compiling routine: BEER-F
Compiling routine: PEANUTS-F
Compiling routine: SANDWICH-F
Compiling routine: I-VOGONS
Compiling routine: GO-TO-LANE
Compiling routine: FLEET-F
Compiling routine: LEAVE-EARTH
Compiling routine: ARTHUR-F
Compiling routine: IDIOT?
Compiling routine: I-UNEASY
Compiling routine: I-ARTHUR
Compiling routine: SCENE-THROUGH-WINDOW
Compiling routine: MINERAL-WATER-F
Compiling routine: HOLD-F
Compiling routine: I-GROGGY
Compiling routine: DISPENSER-F
Compiling routine: DISPENSER-BUTTON-F
Compiling routine: FISH-HOLE-F
Compiling routine: HOOK-F
Compiling routine: DRAIN-F
Compiling routine: ROBOT-PANEL-F
Compiling routine: BABEL-FISH-F
Compiling routine: GLASS-CASE-F
Compiling routine: GLASS-CASE-OPENS
Compiling routine: CASE-SWITCH-F
Compiling routine: PRODUCE-GIBBERISH
Compiling routine: I-ANNOUNCEMENT
Compiling routine: I-GUARDS
Compiling routine: CAPTAINS-QUARTERS-F
Compiling routine: POETRY-APPRECIATION-CHAIR-F
Compiling routine: VOGON-CAPTAIN-F
Compiling routine: I-CAPTAIN
Compiling routine: GUARDS-TO-AIRLOCK
Compiling routine: POETRY-F
Compiling routine: VOGON-CORRIDOR-DOOR-F
Compiling routine: VOGON-AIRLOCK-DOOR-F
Compiling routine: AIRLOCK-OBJECT-F
Compiling routine: AIRLOCK-F
Compiling routine: LAIR-OBJECT-F
Compiling routine: INNER-LAIR-ENTER-F
Compiling routine: LAIR-F
Compiling routine: OUTER-LAIR-F
Compiling routine: MEMORIAL-F
Compiling routine: STONE-F
Compiling routine: BEAST-DESCFCN
Compiling routine: BEAST-F
Compiling routine: I-BEAST
Compiling routine: BEAST-DEATH
Compiling routine: YOUR-NAME-F
Compiling routine: NUT-COM-INTERFACE-F
Compiling routine: I-CARELESS-WORDS
Compiling routine: MICROSCOPIC-FLEET-F
Compiling routine: CANOPY-F
Compiling routine: WAR-CHAMBER-F
Compiling routine: VLHURG-DESCFCN
Compiling routine: VLHURG-F
Compiling routine: GGUGVUNT-F
Compiling routine: THIRD-PLANET-F
Compiling routine: MAZE-EXIT-F
Compiling routine: PARTICLE-F
Compiling routine: APARTMENT-F
Compiling routine: PARTY-DESC
Compiling routine: PARTY-EXIT-F
Compiling routine: LIVING-ROOM-F
Compiling routine: APARTMENT-DOOR-F
Compiling routine: DINING-ROOM-F
Compiling routine: KITCHEN-F
Compiling routine: WINE-F
Compiling routine: APPETIZERS-F
Compiling routine: DROP-AT-PARTY
Compiling routine: SHRIEK
Compiling routine: HOSTESS-F
Compiling routine: I-HOSTESS
Compiling routine: SPEEDBOAT-F
Compiling routine: I-SPEEDBOAT
Compiling routine: BOAT-OBJECT-F
Compiling routine: WATER-PSEUDO
Compiling routine: PILOT-SEAT-F
Compiling routine: KEY-F
Compiling routine: TOOLBOX-F
Compiling routine: MAGNIFYING-GLASS-F
Compiling routine: AUTOPILOT-BUTTON-F
Compiling routine: DESTINATION-F
Compiling routine: DAIS-EXIT-F
Compiling routine: DAIS-F
Compiling routine: DAIS-FUNCTION
Compiling routine: CROWD-PSEUDO
Compiling routine: PLATFORM-F
Compiling routine: BLASTER-F
Compiling routine: BLASTER-HOLD
Compiling routine: RIFLES-F
Compiling routine: GUARD-DEATH
Compiling routine: INSIDE-WHALE-F
Compiling routine: I-WHALE
Compiling routine: WHALE-OBJECT-F
Compiling routine: INIT-STATUS-LINE
Compiling routine: UPDATE-STATUS-LINE
Compiling routine: PRINT-SPACES
Compiling routine: SAY-HERE
Compiling routine: NOT-HERE-OBJECT-F
Compiling routine: FIND-NOT-HERE
Compiling routine: NOT-HERE-PRINT
Compiling routine: LIGHT-F
Compiling routine: GLOBAL-SLEEP-F
Compiling routine: SPEECH-F
Compiling routine: GROUND-F
Compiling routine: WALLS-F
Compiling routine: CEILING-F
Compiling routine: WINDOW-F
Compiling routine: STAIRS-F
Compiling routine: SKY-F
Compiling routine: STAR-F
Compiling routine: HANDS-F
Compiling routine: EYES-F
Compiling routine: PROTAGONIST-F
Compiling routine: ME-F
Compiling routine: GLOBAL-ROOM-F
Compiling routine: OBJECT-OF-GAME-F
Compiling routine: CONTROLS-F
Compiling routine: CONVERSATION-F
Compiling routine: GUARDS-F
Compiling routine: WEAPON-PSEUDO
Compiling routine: FRUSTRATION-F
Compiling routine: UNIMPORTANT-THING-F
Compiling routine: DONT-F
Compiling routine: DARK-F
Compiling routine: DARK-FUNCTION
Compiling routine: LEAVE-DARK
Compiling routine: MISSING?
Compiling routine: DARK-ONE
Compiling routine: DARK-TWO
Compiling routine: DARK-THREE
Compiling routine: DARK-FOUR
Compiling routine: BEAST-GUARD-FORD
Compiling routine: I-BRAIN-DEATH
Compiling routine: TOOTHBRUSH-F
Compiling routine: LIQUID-SPILL
Compiling routine: ANTI-LITTER
Compiling routine: TEA-DESCFCN
Compiling routine: DESCRIBE-DRINK
Compiling routine: TEA-F
Compiling routine: NO-TEA-F
Compiling routine: TEA-PRINT
Compiling routine: THUMB-F
Compiling routine: RED-BUTTON-F
Compiling routine: GREEN-BUTTON-F
Compiling routine: GUARANTEE-F
Compiling routine: ENGINEER-F
Compiling routine: ENGINEER-LEAVE
Compiling routine: I-ENGINEER
Compiling routine: GUIDE-DESCFCN
Compiling routine: GUIDE-F
Compiling routine: CANT-SEE
Compiling routine: TELL-ME-HOW
Compiling routine: OUT-OF-FIRST
Compiling routine: PRIVATE
Compiling routine: NOT-VERY-GOOD
Compiling routine: FACTOR
Compiling routine: REMOVING-BIT
Compiling routine: PART-OF
Compiling routine: BUT-THAT-MAN
Compiling routine: CUSHION
Compiling routine: FINE-PRODUCT
Compiling routine: MAKE-WAY-FOR
Compiling routine: OWN-FEET
Compiling routine: V-HINTS-NO
Compiling routine: V-HINTS
Compiling routine: PICK-QUESTION
Compiling routine: ERASE-CURSOR
Compiling routine: NEW-CURSOR
Compiling routine: INVERSE-LINE
Compiling routine: DISPLAY-HINT
Compiling routine: PUT-UP-QUESTIONS
Compiling routine: PUT-UP-CHAPTERS
Compiling routine: INIT-HINT-SCREEN
Compiling routine: CENTER-LINE
Compiling routine: LEFT-LINE
Compiling routine: RIGHT-LINE
** Note: OBJECT has no properties: GLOBAL-OBJECTS
Vocabulary: 1019
Prepositions: 24
ABOUT AWAY DRESSED IN OVER UNDER
ACROSS BEFORE DRUNK OFF THROUGH UNDRESSED
AROUND BEHIND FOR ON TO UP
AT DOWN FROM OUT TOGETHER WITH
Real globals: 178
AGAIN-DIR GUARDS-COUNTER P-MULT
AGAIN-LEXV GUN-COUNTER P-NAM
AIRLOCK-COUNTER GUTS-ROOM P-NCN
ARGUMENT-COUNTER HEADACHE P-NOT-HERE
AUTOPILOT-COUNTER HEART-COUNTER P-NUMBER
AWAITING-REPLY HEART-PROB P-OCLAUSE
BEARINGS-LOST HERE P-OFLAG
BEAST-COUNTER HINT-WARNING P-ONEOBJ
BOAT-COUNTER HINTS P-OTBL
BOAT-DOCKED HINTS-OFF P-OVTBL
BORES HOLDING-NO-TEA P-PRSA-WORD
BRAIN-DAMAGED HOST P-PRSI
BROWNIAN-SOURCE HOUSE-DEMOLISHED P-PRSO
BULLDOZER-COUNTER IDENTITY-FLAG P-SLOCBITS
C-INTS IN-FRONT-FLAG P-SYNTAX
C-TABLE ITEM-DROPPED-AT-PARTY P-TABLE
CAPTAIN-COUNTER ITEM-ON-SATCHEL P-VTBL
CARELESS-WORDS-FLAG LANDED P-WALK-DIR
CHAPT-NUM LINE-A P-WON
CLOCK-WAIT LINE-B P-XADJ
COLUMN-TABLE LINE-C P-XNAM
CRASH-COUNTER LINE-NUMBER PANEL-BLOCKER
CUR-POS LINE-TABLE PARTY-TABLE
CURRENT-EXIT LIT PEANUTS-BOUGHT
DAIS-COUNTER LOOK-COUNTER PLANT-BLOOMED
DARK-CONTROLLED LYING-COUNTER PLAYER
DARK-COUNTER LYING-DOWN POEM-ENJOYED
DARK-ENTRANCES MARVIN-COUNTER PROSSER-COUNTER
DARK-FLAG MAZE-COUNTER PROSSER-LYING
DEAD-COUNTER MOVES PRSA
DESTINATION NAME-TOLD PRSI
DIROUT-TBL NOUN-MISSING PRSO
DOG-COUNTER OHERE QUEST-NUM
DOG-FED OLD-LEN QUOTE-FLAG
DONT-FLAG OOPS-INBUF RESERVE-INBUF
DREAMING OOPS-TABLE RESERVE-LEXV
DRIVE-TO-CONTROLS P-AADJ RESERVE-PTR
DRIVE-TO-PLOTTER P-ACLAUSE SANDWICH-BOUGHT
DRUNK-LEVEL P-ADJ SCORE
EARTH-DEMOLISHED P-ANAM SLEEVE-TIED
ENGINEER-COUNTER P-AND SUBSTITUTE-DRUNK
FIRST-BUFFER P-BUTS TEA-COUNTER
FISH-COUNTER P-CCTBL TEA-SHOWN
FLEET-PROB P-CEPTR THUMB-SHOWN
FLUFF-COUNTER P-CONT TOOL-REQUIRED
FLUFF-REMOVED P-CSPTR TOWEL-MUDDY
FLUFF-TO-GOWN P-END-ON-PREP TOWEL-OFFERED
FOLLOW-FLAG P-GETFLAGS TRAAL-PROB
FORD-COUNTER P-GWIMBIT TRILLIAN-PROB
FORD-GONE P-INBUF UNEASY-COUNTER
FORD-POINT P-INPUT-WORDS VERBOSITY
FORD-PROB P-IT-OBJECT VOGON-COUNTER
FORD-SLEEPING P-ITBL VOGON-PROB
FORD-TABLE P-LEN WHALE-PROB
GIBBERISH P-LEXV WIDTH
GLASS-CASE-SCORE P-MATCHLEN WINNER
GONE-AROUND P-MERGE WORD-NUMBER
GOWN-HUNG P-MERGED ZAPHOD-PROB
GROGGY P-MOBY-FLAG
GROGGY-COUNTER P-MOBY-FOUND
Objects: 236
ACCESS-SPACE FRUSTATION PLATFORM
AFT-CORRIDOR GALLEY PLIERS
AIR GALLEY-PSEUDO PLOTTER
AIRLOCK GGUGVUNT POCKET-FLUFF
AIRLOCK-OBJECT GLASS-CASE POETRY
APARTMENT GLOBAL-BED POETRY-APPRECIATION-CHAIR
APARTMENT-DOOR GLOBAL-OBJECTS PROSSER
APPETIZERS GLOBAL-ROOM PROTAGONIST
ARTHUR GLOBAL-SLEEP PUB
AUTOPILOT-BUTTON GOWN PUB-FURNISHINGS
AWL GRAY-MATTER PUB-OBJECT
BABEL-FISH GREEN-BUTTON PUB-SHELF
BACK-OF-HOUSE GROUND RAMP
BANNER GUARANTEE RASP
BAR GUARDS RED-BUTTON
BARMAN GUIDE RIFLES
BEAST HANDBAG ROBOT-PANEL
BEAST-GUN HANDS ROOMS
BEAST-NAME HANGOVER ROSES
BED HATCH RUBBLE
BEDROOM HATCHWAY SALES-BROCHURE
BEDROOM-DOOR HEAD SANDWICH
BEDROOM-FURNISHINGS HEART-OF-GOLD SARCASTIC-NAME
BEDROOM-PSEUDO HOLD SATCHEL
BEER HOLD-FURNISHINGS SATCHEL-FLUFF
BIKE HOME SAUNA
BIRDS HOOK SCREENING-DOOR
BLASTER HOSTESS SCREWDRIVER
BOARD HOUSE SHADOW
BOAT-OBJECT INNER-LAIR SINK
BONES INSIDE-WHALE SKELETON
BRAIN INTERFACE-BOX SKY
BRIDGE INTNUM SLEEVES
BULLDOZER IT SLOT
BULLDOZER-DRIVER JACKET-FLUFF SMALL-PLUG
CAGE JUKEBOX SMALL-RECEPTACLE
CANOPY KEY SPARE-DRIVE
CAPTAINS-QUARTERS KEYBOARD SPEECH
CASE-SWITCH KITCHEN SPEEDBOAT
CEILING LAIR SPIRE
CHANNEL LAIR-OBJECT STAIRS
CHIPPER LARGE-PLUG STAR
CHISEL LARGE-RECEPTACLE STAR-DRIVE
CLIFF LIGHT STONE
CONTROLS LIQUID STRAPS
CONVERSATION LIVING-ROOM STUFF-UNDER-BED
COUNTRY-LANE LOCAL-GLOBALS SUBSTITUTE
CROWD MAGNIFYING-GLASS SWITCH
CURTAINS MAIL SYNAPSE
CUSHION-FLUFF MAIN-DRIVE TABLET
DAIS MARVIN TEA
DAMOGRAN MAZE TEETH
DANGLY-BIT ME THING
DARK MECHANISM THIRD-PLANET
DARK-OBJECT MEMORIAL THUMB
DIGITAL-WATCH MESH TIME
DINING-ROOM MICROSCOPIC-FLEET TOOLBOX
DIPSWITCH MINERAL-WATER TOOTHBRUSH
DISPENSER MUSIC TOWEL
DISPENSER-BUTTON NAME TREE
DOG NO-TEA TRILLIAN
DOORMAT NOT-HERE-OBJECT TWEEZERS
DRAIN NUT-COM-INTERFACE VLHURG
EARS NUTRIMAT VOGON-CAPTAIN
EDDIE OBJECT-OF-GAME VOGON-CORRIDOR-DOOR
ENGINE-ROOM OTHER-PLANETS VOGON-INNER-DOOR
ENGINEER OUTER-LAIR VOGON-OUTER-DOOR
ENTRY-BAY PAD WALLS
EQUATIONS PAINFUL-LIGHT WAR-CHAMBER
EYES PANTRY WATER
FISH-HOLE PANTRY-PSEUDO WEAPON
FLEET PARTICLE WHALE-OBJECT
FLOWERPOT PEANUTS WILD-PARTY
FOOBAR PEOPLE WINDOW
FORD PHIL WINE
FORE-CORRIDOR PHONE WRENCH
FRONT-OF-HOUSE PILOT-SEAT YOUR-NAME
FRONT-PORCH PINCER ZAPHOD
FRUIT PLANT
Properties: 24
P?ACTION P?DOWN P?GENERIC P?NE P?SE P?SYNONYM
P?ADJECTIVE P?EAST P?GLOBAL P?NORTH P?SIZE P?TEXT
P?CAPACITY P?FDESC P?IN P?NW P?SOUTH P?UP
P?DESCFCN P?FLAG P?LDESC P?OUT P?SW P?WEST
Flags: 31
ACTORBIT INTEGRALBIT NDESCBIT RLANDBIT TOUCHBIT WORNBIT
CONTBIT INVISIBLE ONBIT SEARCHBIT TRANSBIT
DARKBIT LIGHTBIT OPENBIT SURFACEBIT TRYTAKEBIT
DOORBIT LOCATION OUTSIDEBIT SWITCHBIT VEHBIT
DRINKBIT MUNGEDBIT READBIT TAKEBIT VOWELBIT
EATBIT NARTICLEBIT REVISITBIT TOOLBIT WEARBIT

1
nhitch.serial Normal file
View File

@ -0,0 +1 @@
33

51
nhitch.zap Normal file
View File

@ -0,0 +1,51 @@
.NEW 5
; Low core locations
%ZVERSION:: .BYTE 5
.BYTE FLAGS
%ZORKID:: ZORKID
%ENDLOD:: ENDLOD
%START:: START
%VOCAB:: VOCAB
%OBJECT:: OBJECT
%GLOBAL:: GLOBAL
%PURBOT:: IMPURE
%FLAGS:: .WORD 0
%SERIAL:: .WORD 0
%SERI1:: .WORD 0
%SERI2:: .WORD 0
%FWORDS:: WORDS
%PLENTH:: .WORD 0
%PCHKSM:: .WORD 0
%INTWRD:: .WORD 0
%SCRWRD:: .WORD 0
%HWRD:: .WORD 0
%VWRD:: .WORD 0
%FWRD:: .WORD 0
%LMRG:: .WORD 0
%RMRG:: .WORD 0
%CLRWRD:: .WORD 0
%TCHAR:: TCHARS
%CRCNT:: .WORD 0
%CRFUNC:: .WORD 0
%CHRSET:: .WORD 0
%EXTAB:: 0
.WORD 0
.WORD 0
.WORD 0
.WORD 0
.INSERT "SS:<S4.CHEAP>NHITCHFREQ" ;Frequent word table
.INSERT "SS:<S4.CHEAP>NHITCHDAT" ; Data file
.INSERT "SS:<S4.CHEAP>NHITCHPUR"
.INSERT "SS:<S4.CHEAP>MISC"
.INSERT "SS:<S4.CHEAP>HEART"
.INSERT "SS:<S4.CHEAP>PARSER"
.INSERT "SS:<S4.CHEAP>VERBS"
.INSERT "SS:<S4.CHEAP>EARTH"
.INSERT "SS:<S4.CHEAP>VOGON"
.INSERT "SS:<S4.CHEAP>UNEARTH"
.INSERT "SS:<S4.CHEAP>GLOBALS"
.INSERT "SS:<S4.CHEAP>HINTS"
.INSERT "SS:<S4.CHEAP>NHITCHSTR"
.END

30
nhitch.zil Normal file
View File

@ -0,0 +1,30 @@
"S4 for
THE HITCHHIKER'S GUIDE TO THE GALAXY
(c) Copyright 1984 Infocom, Inc. All Rights Reserved."
<PRINC "
*** THE HITCHHIKER'S GUIDE TO THE GALAXY: Interactive Science Fiction ***
">
<VERSION XZIP>
<FREQUENT-WORDS?>
<SETG PLUS-MODE T>
<SETG NEW-VOC? T>
<SET REDEFINE T>
<DIRECTIONS ;"Do not change the order of the first 8 without consulting MARC!"
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
<INSERT-FILE "MISC" T>
<INSERT-FILE "HEART" T>
<INSERT-FILE "PARSER" T>
<INSERT-FILE "SYNTAX" T>
<INSERT-FILE "VERBS" T>
<INSERT-FILE "EARTH" T>
<INSERT-FILE "VOGON" T>
<INSERT-FILE "UNEARTH" T>
<INSERT-FILE "GLOBALS" T>
<INSERT-FILE "HINTS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>

BIN
nhitch.zip Normal file

Binary file not shown.

15503
nhitchdat.zap Normal file

File diff suppressed because it is too large Load Diff

200
nhitchfreq.zap Normal file
View File

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;3556 1779
.FSTR FSTR?2,"you " ;1320 661
.FSTR FSTR?3,", " ;1216 1217
.FSTR FSTR?4,"You " ;1029 344
.FSTR FSTR?5,"and " ;930 466
.FSTR FSTR?6,"The " ;894 299
.FSTR FSTR?7,"your " ;777 260
.FSTR FSTR?8,". " ;678 679
.FSTR FSTR?9,"that " ;669 224
.FSTR FSTR?10,"to " ;660 661
.FSTR FSTR?11,"of " ;615 616
.FSTR FSTR?12,"is " ;492 493
.FSTR FSTR?13,"have " ;456 153
.FSTR FSTR?14,"can't " ;410 83
.FSTR FSTR?15,"about " ;404 102
.FSTR FSTR?16,"with " ;393 132
.FSTR FSTR?17,"from " ;357 120
.FSTR FSTR?18,"in " ;353 354
.FSTR FSTR?19,"this " ;324 109
.FSTR FSTR?20,"for " ;300 151
.FSTR FSTR?21,"are " ;300 151
.FSTR FSTR?22,"you've " ;300 51
.FSTR FSTR?23,"There " ;290 59
.FSTR FSTR?24,"something " ;280 36
.FSTR FSTR?25,"will " ;264 89
.FSTR FSTR?26,"There's " ;256 33
.FSTR FSTR?27,"you're " ;252 43
.FSTR FSTR?28,"It's " ;250 51
.FSTR FSTR?29,"Beast " ;245 50
.FSTR FSTR?30,"Arthur " ;222 38
.FSTR FSTR?31,"Improbability " ;221 18
.FSTR FSTR?32,"This " ;220 56
.FSTR FSTR?33,"Ford " ;220 56
.FSTR FSTR?34,"through " ;210 36
.FSTR FSTR?35,"already " ;210 36
.FSTR FSTR?36,"which " ;204 52
.FSTR FSTR?37,"Have " ;200 51
.FSTR FSTR?38,"into " ;198 67
.FSTR FSTR?39,"You're " ;196 29
.FSTR FSTR?40,"around " ;195 40
.FSTR FSTR?41,"can " ;188 95
.FSTR FSTR?42,"on " ;187 188
.FSTR FSTR?43,"THE " ;186 63
.FSTR FSTR?44,"you'll " ;186 32
.FSTR FSTR?45,"it " ;180 181
.FSTR FSTR?46,"It " ;180 91
.FSTR FSTR?47,"Don't " ;180 31
.FSTR FSTR?48,"question " ;175 26
.FSTR FSTR?49,"should " ;170 35
.FSTR FSTR?50,"don't " ;170 35
.FSTR FSTR?51,"Prosser " ;168 25
.FSTR FSTR?52,"nothing " ;162 28
.FSTR FSTR?53,"Vogon " ;160 33
.FSTR FSTR?54,"when " ;156 53
.FSTR FSTR?55,"out " ;154 78
.FSTR FSTR?56,"just " ;150 51
.FSTR FSTR?57,"You'll " ;147 22
.FSTR FSTR?58,"not " ;146 74
.FSTR FSTR?59,"it's " ;144 37
.FSTR FSTR?60,"after " ;144 37
.FSTR FSTR?61,"Marvin " ;144 25
.FSTR FSTR?62,"until " ;140 36
.FSTR FSTR?63,"what " ;138 47
.FSTR FSTR?64,"because " ;138 24
.FSTR FSTR?65,"at " ;137 138
.FSTR FSTR?66,"has " ;136 69
.FSTR FSTR?67,"isn't " ;135 28
.FSTR FSTR?68,"anything " ;133 20
.FSTR FSTR?69,"see " ;130 66
.FSTR FSTR?70,"If " ;130 66
.FSTR FSTR?71,"I " ;127 128
.FSTR FSTR?72,"get " ;126 64
.FSTR FSTR?73,"but " ;126 64
.FSTR FSTR?74,"very " ;126 43
.FSTR FSTR?75,"like " ;126 43
.FSTR FSTR?76,"probably " ;126 19
.FSTR FSTR?77,"doesn't " ;126 19
.FSTR FSTR?78,"Arthur" ;125 26
.FSTR FSTR?79,"How " ;120 41
.FSTR FSTR?80,"small " ;120 31
.FSTR FSTR?81,"large " ;120 31
.FSTR FSTR?82,"before " ;120 25
.FSTR FSTR?83,"Heart " ;120 25
.FSTR FSTR?84,"only " ;117 40
.FSTR FSTR?85,"Hitchhiker's " ;117 10
.FSTR FSTR?86,"What " ;116 30
.FSTR FSTR?87,"Guide " ;115 24
.FSTR FSTR?88,"all " ;112 57
.FSTR FSTR?89,"one " ;110 56
.FSTR FSTR?90,"toward " ;110 23
.FSTR FSTR?91,"then " ;108 37
.FSTR FSTR?92,"you" ;105 106
.FSTR FSTR?93,"Ford" ;105 36
.FSTR FSTR?94,"guards " ;105 22
.FSTR FSTR?95,"would " ;104 27
.FSTR FSTR?96,"going " ;104 27
;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

390
nhitchpur.zap Normal file
View File

@ -0,0 +1,390 @@
; PURE TABLES ARE DEFINED HERE
PURTBL::
PT?102::
T?DARK-ENTRANCES:: .TABLE
3
STR?21
STR?22
STR?23
.ENDT
PT?105::
LURCHES:: .TABLE
4
STR?44
STR?45
STR?46
STR?47
.ENDT
PT?205::
HO-HUM:: .TABLE
3
STR?48
STR?49
STR?50
.ENDT
PT?305::
YUKS:: .TABLE
4
STR?51
STR?52
STR?53
STR?54
.ENDT
PT?405::
IMPOSSIBLES:: .TABLE
6
STR?55
STR?56
STR?57
STR?58
STR?59
STR?60
.ENDT
PT?505::
WASTES:: .TABLE
3
STR?61
STR?62
STR?63
.ENDT
PT?106::
T?BORES:: .TABLE
7
STR?82
STR?83
STR?84
STR?85
STR?86
STR?87
STR?88
.ENDT
PT?107::
T?GIBBERISH:: .TABLE
40
STR?95
STR?96
STR?97
STR?98
STR?99
STR?100
STR?101
STR?102
STR?103
STR?104
STR?105
STR?106
STR?107
STR?108
STR?109
STR?110
STR?111
STR?112
STR?113
STR?114
STR?115
STR?116
STR?117
STR?118
STR?119
STR?120
STR?121
STR?122
STR?123
STR?124
STR?125
STR?126
STR?127
STR?128
STR?129
STR?130
STR?131
STR?132
STR?133
STR?134
.ENDT
PT?109::
INDENTS:: .TABLE
STR?162
STR?163
STR?164
STR?165
STR?166
STR?167
.ENDT
PT?209::
DARK-EXIT-TABLE:: .TABLE
HOLD
COUNTRY-LANE
LIVING-ROOM
ENTRY-BAY
LAIR
SPEEDBOAT
INSIDE-WHALE
WAR-CHAMBER
.ENDT
PT?309::
TOOL-LIST:: .TABLE
10
SCREWDRIVER
WRENCH
CHISEL
AWL
PLIERS
TWEEZERS
PINCER
RASP
CHIPPER
TOOTHBRUSH
.ENDT
PT?110::
T?LINE-TABLE:: .TABLE
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.ENDT
PT?210::
T?COLUMN-TABLE:: .TABLE
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
.ENDT
PT?310:: .TABLE
18
STR?320
T?210
T?310
T?410
T?510
T?610
T?710
T?810
T?910
T?1010
T?1110
T?1210
T?1310
T?1410
T?1510
T?1610
T?1710
T?1810
.ENDT
PT?410:: .TABLE
7
STR?369
T?1910
T?2010
T?2110
T?2210
T?2310
T?2410
.ENDT
PT?510:: .TABLE
15
STR?458
T?2510
T?2610
T?2710
T?2810
T?2910
T?3010
T?3110
T?3210
T?3310
T?3410
T?3510
T?3610
T?3710
T?3810
.ENDT
PT?610:: .TABLE
18
STR?624
T?3910
T?4010
T?4110
T?4210
T?4310
T?4410
T?4510
T?4610
T?4710
T?4810
T?4910
T?5010
T?5110
T?5210
T?5310
T?5410
T?5510
.ENDT
PT?710:: .TABLE
9
STR?677
T?5610
T?5710
T?5810
T?5910
T?6010
T?6110
T?6210
T?6310
.ENDT
PT?810:: .TABLE
10
STR?722
T?6410
T?6510
T?6610
T?6710
T?6810
T?6910
T?7010
T?7110
T?7210
.ENDT
PT?910:: .TABLE
8
STR?760
T?7310
T?7410
T?7510
T?7610
T?7710
T?7810
T?7910
.ENDT
PT?1010:: .TABLE
9
STR?804
T?8010
T?8110
T?8210
T?8310
T?8410
T?8510
T?8610
T?8710
.ENDT
PT?1110:: .TABLE
9
STR?856
T?8810
T?8910
T?9010
T?9110
T?9210
T?9310
T?9410
T?9510
.ENDT
PT?1210:: .TABLE
7
STR?884
T?9610
T?9710
T?9810
T?9910
T?10010
T?10110
.ENDT
PT?1310:: .TABLE
11
STR?966
T?10210
T?10310
T?10410
T?10510
T?10610
T?10710
T?10810
T?10910
T?11010
T?11110
.ENDT
PT?1410:: .TABLE
5
STR?1119
T?11210
T?11310
T?11410
T?11510
.ENDT
PT?1510::
T?HINTS:: .TABLE
12
PT?310
PT?410
PT?510
PT?610
PT?710
PT?810
PT?910
PT?1010
PT?1110
PT?1210
PT?1310
PT?1410
.ENDT
PURTND::
.ENDI

1192
nhitchstr.zap Normal file

File diff suppressed because it is too large Load Diff

155
parser.zabstr Normal file
View File

@ -0,0 +1,155 @@
<SETG SIBREAKS ".,\"">
<GLOBAL P-AND <>>
<GLOBAL IN-FRONT-FLAG <>>
<GLOBAL PRSA <>>
<GLOBAL PRSI <>>
<GLOBAL PRSO <>>
<GLOBAL P-TABLE 0>
<GLOBAL P-ONEOBJ 0>
<GLOBAL P-SYNTAX 0>
<GLOBAL P-CCTBL <TABLE 0 0 0 0>>
<CONSTANT CC-SBPTR 0>
<CONSTANT CC-SEPTR 1>
<CONSTANT CC-DBPTR 2>
<CONSTANT CC-DEPTR 3>
<CONSTANT CC-OCLAUSE 2>
<GLOBAL P-LEN 0>
<GLOBAL WINNER 0>
<GLOBAL P-LEXV <ITABLE 60 (LEXV) 0 <BYTE 0> <BYTE 0>>>
<GLOBAL AGAIN-LEXV <ITABLE 60 (LEXV) 0 <BYTE 0> <BYTE 0>>>
<GLOBAL RESERVE-LEXV <ITABLE 60 (LEXV) 0 <BYTE 0> <BYTE 0>>>
<GLOBAL RESERVE-PTR <>>
<CONSTANT P-INBUF-LENGTH 120>
<GLOBAL P-INBUF <ITABLE 120 (BYTE LENGTH) 0>>
<GLOBAL RESERVE-INBUF <ITABLE 120 (BYTE LENGTH) 0>>
<GLOBAL OOPS-INBUF <ITABLE 120 (BYTE LENGTH) 0>>
<GLOBAL OOPS-TABLE <TABLE <> <> <> <>>>
<CONSTANT O-PTR 0>
<CONSTANT O-START 1>
<CONSTANT O-LENGTH 2>
<CONSTANT O-END 3>
<GLOBAL P-CONT <>>
<GLOBAL P-IT-OBJECT <>>
<GLOBAL P-OFLAG <>>
<GLOBAL P-MERGED <>>
<GLOBAL P-ACLAUSE <>>
<GLOBAL P-ANAM <>>
<GLOBAL P-AADJ <>>
<CONSTANT P-LEXWORDS 1>
<CONSTANT P-LEXSTART 1>
<CONSTANT P-LEXELEN 2>
<CONSTANT P-WORDLEN 4>
<CONSTANT P-PSOFF 6>
<CONSTANT P-P1OFF 7>
<CONSTANT P-P1BITS 3>
<CONSTANT P-ITBLLEN 9>
<GLOBAL P-ITBL <TABLE 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL P-OTBL <TABLE 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL P-VTBL <TABLE 0 0 0 0>>
<GLOBAL P-OVTBL <TABLE 0 0 0 0>>
<GLOBAL P-NCN 0>
<CONSTANT P-VERB 0>
<CONSTANT P-VERBN 1>
<CONSTANT P-PREP1 2>
<CONSTANT P-PREP1N 3>
<CONSTANT P-PREP2 4>
<CONSTANT P-NC1 6>
<CONSTANT P-NC1L 7>
<CONSTANT P-NC2 8>
<CONSTANT P-NC2L 9>
<GLOBAL QUOTE-FLAG <>>
<GLOBAL P-INPUT-WORDS <>>
<GLOBAL P-END-ON-PREP <>>
<GLOBAL P-PRSA-WORD <>>
<DEFINE-ROUTINE PARSER>
<DEFINE-ROUTINE NEXT-WORD>
<DEFINE-ROUTINE CHANGE-LEXV>
<GLOBAL DONT-FLAG <>>
<GLOBAL P-WALK-DIR <>>
<GLOBAL AGAIN-DIR <>>
<DEFINE-ROUTINE STUFF>
<DEFINE-ROUTINE INBUF-STUFF>
<DEFINE-ROUTINE INBUF-ADD>
<DEFINE-ROUTINE WT?>
<DEFINE-ROUTINE CLAUSE>
<DEFINE-ROUTINE NUMBER?>
<GLOBAL P-NUMBER 0>
<DEFINE-ROUTINE ORPHAN-MERGE>
<DEFINE-ROUTINE ACLAUSE-WIN>
<DEFINE-ROUTINE NCLAUSE-WIN>
<DEFINE-ROUTINE WORD-PRINT>
<DEFINE-ROUTINE UNKNOWN-WORD>
<DEFINE-ROUTINE CANT-USE>
<GLOBAL P-SLOCBITS 0>
<CONSTANT P-SYNLEN 8>
<CONSTANT P-SBITS 0>
<CONSTANT P-SPREP1 1>
<CONSTANT P-SPREP2 2>
<CONSTANT P-SFWIM1 3>
<CONSTANT P-SFWIM2 4>
<CONSTANT P-SLOC1 5>
<CONSTANT P-SLOC2 6>
<CONSTANT P-SACTION 7>
<CONSTANT P-SONUMS 3>
<DEFINE-ROUTINE SYNTAX-CHECK>
<DEFINE-ROUTINE CANT-ORPHAN>
<DEFINE-ROUTINE ORPHAN>
<DEFINE-ROUTINE CLAUSE-PRINT>
<DEFINE-ROUTINE BUFFER-PRINT>
<DEFINE-ROUTINE NAME?>
<DEFINE-ROUTINE CAPITALIZE>
<DEFINE-ROUTINE PREP-PRINT>
<DEFINE-ROUTINE CLAUSE-COPY>
<DEFINE-ROUTINE CLAUSE-ADD>
<DEFINE-ROUTINE PREP-FIND>
<DEFINE-ROUTINE SYNTAX-FOUND>
<GLOBAL P-GWIMBIT 0>
<DEFINE-ROUTINE GWIM>
<DEFINE-ROUTINE SNARF-OBJECTS>
<DEFINE-ROUTINE BUT-MERGE>
<GLOBAL P-NAM <>>
<GLOBAL P-ADJ <>>
<GLOBAL P-PRSO <ITABLE NONE 50>>
<GLOBAL P-PRSI <ITABLE NONE 50>>
<GLOBAL P-BUTS <ITABLE NONE 50>>
<GLOBAL P-MERGE <ITABLE NONE 50>>
<GLOBAL P-OCLAUSE <ITABLE NONE 50>>
<GLOBAL P-MATCHLEN 0>
<GLOBAL P-GETFLAGS 0>
<CONSTANT P-ALL 1>
<CONSTANT P-ONE 2>
<CONSTANT P-INHIBIT 4>
<GLOBAL P-CSPTR <>>
<GLOBAL P-CEPTR <>>
<DEFINE-ROUTINE SNARFEM>
<DEFINE-ROUTINE ADJ-CHECK>
<CONSTANT SH 128>
<CONSTANT SC 64>
<CONSTANT SIR 32>
<CONSTANT SOG 16>
<CONSTANT STAKE 8>
<CONSTANT SMANY 4>
<CONSTANT SHAVE 2>
<GLOBAL NOUN-MISSING "There seems to be a noun missing in that sentence.">
<DEFINE-ROUTINE GET-OBJECT>
<DEFINE-ROUTINE MOBY-FIND>
<GLOBAL P-MOBY-FOUND <>>
<GLOBAL P-MOBY-FLAG <>>
<GLOBAL P-XNAM <>>
<GLOBAL P-XADJ <>>
<DEFINE-ROUTINE WHICH-PRINT>
<DEFINE-ROUTINE GLOBAL-CHECK>
<DEFINE-ROUTINE DO-SL>
<CONSTANT P-SRCBOT 2>
<CONSTANT P-SRCTOP 0>
<CONSTANT P-SRCALL 1>
<DEFINE-ROUTINE SEARCH-LIST>
<DEFINE-ROUTINE OBJ-FOUND>
<DEFINE-ROUTINE TAKE-CHECK>
<DEFINE-ROUTINE ITAKE-CHECK>
<DEFINE-ROUTINE MANY-CHECK>
<DEFINE-ROUTINE LIT?>
<DEFINE-ROUTINE PRSO-PRINT>
<DEFINE-ROUTINE PRSI-PRINT>
<DEFINE-ROUTINE THIS-IT?>

1682
parser.zap Normal file

File diff suppressed because it is too large Load Diff

1589
parser.zil Normal file

File diff suppressed because it is too large Load Diff

631
syntax.zil Normal file
View File

@ -0,0 +1,631 @@
"SYNTAX for
THE HITCHHIKER'S GUIDE TO THE GALAXY
(c) Copyright 1984 Infocom, Inc. All Rights Reserved."
<BUZZ A AN THE IS ARE AM AND OF THEN ALL EVERYTHING BUT EXCEPT \. \, \"
DON\'T DONT PRY PLEASE HERE SOME MORE FRONT G AGAIN OOPS O>
<SYNONYM ALL EVERYTHING>
<SYNONYM AGAIN G>
<SYNONYM OOPS O>
<SYNONYM TO TOWARD TOWARDS>
<SYNONYM WITH USING>
<SYNONYM THROUGH THRU>
<SYNONYM ON ONTO>
<SYNONYM OUT OUTSIDE>
<SYNONYM IN INSIDE INTO>
<SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<SYNONYM AROUND ALONG>
<SYNONYM BEFORE NEAR NEXT AGAINST>
<SYNONYM ALL BOTH>
<SYNONYM DRUNK BOMBED SMASHED PLASTERED>
<SYNONYM NORTH N FORE F FOREWARD>
<SYNONYM SOUTH S AFT>
<SYNONYM EAST E STARBOARD SB>
<SYNONYM WEST W PORT P>
<SYNONYM DOWN D>
<SYNONYM UP U>
<SYNONYM NW NORTHWEST>
<SYNONYM NE NORTHEAST>
<SYNONYM SW SOUTHWEST>
<SYNONYM SE SOUTHEAST>
;"game commands"
<SYNTAX VERBOSE = V-VERBOSE>
<SYNTAX BRIEF = V-BRIEF>
<SYNTAX SUPER = V-SUPERBRIEF>
<SYNONYM SUPER SUPERBRIEF>
<SYNTAX DIAGNOSE = V-DIAGNOSE>
<SYNTAX INVENT = V-INVENTORY>
<SYNTAX I = V-INVENTORY>
<SYNTAX I OBJECT = V-I-AM>
<SYNONYM I I\'M IM>
<SYNTAX QUIT = V-QUIT>
<SYNONYM QUIT Q>
<SYNTAX RESTART = V-RESTART>
<SYNTAX RESTORE = V-RESTORE>
<SYNTAX SAVE = V-SAVE>
<SYNTAX SCORE = V-SCORE>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX VERSION = V-VERSION>
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
<SYNONYM $VERIFY $VER>
<SYNTAX $REFRESH = V-$REFRESH>
;<SYNTAX $DEBUG = V-$DEBUG>
;<SYNTAX $PROB = V-$PROB>
;"subtitle real verbs"
<SYNTAX ADDRESS OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
;<SYNTAX AGAIN = V-AGAIN>
;<SYNONYM AGAIN G>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNTAX ANSWER TO OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY>
<SYNTAX APPLAUD = V-APPLAUD>
<SYNONYM APPLAUD CLAP CHEER>
<SYNTAX APPRECIAT OBJECT = V-APPRECIATE>
<SYNTAX APPROACH OBJECT = V-WALK-TO>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-ASK-ABOUT>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ON OBJECT = V-ASK-ABOUT>
<SYNTAX ASK OBJECT (FIND ACTORBIT) FOR OBJECT = V-ASK-FOR>
<SYNONYM ASK CONSULT QUERY>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KILL>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED HAVE) = V-KILL>
<SYNONYM ATTACK ASSAULT FIGHT HIT SLAP KILL MURDER STRIKE PUNCH>
<SYNTAX BITE OBJECT = V-BITE>
<SYNTAX BLOCK OBJECT = V-BLOCK>
<SYNTAX BLOCK OBJECT WITH OBJECT = V-BLOCK-WITH>
<SYNONYM BLOCK STOP>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNONYM BOARD EMBARK>
<SYNTAX BRUSH OBJECT = V-BRUSH>
<SYNTAX BRUSH OBJECT WITH OBJECT (HAVE) = V-BRUSH>
<SYNONYM BRUSH>
<SYNTAX ORDER OBJECT = V-BUY>
<SYNONYM ORDER BUY PURCHASE>
<SYNTAX CARVE OBJECT ON OBJECT = V-CARVE PRE-CARVE>
<SYNTAX CARVE OBJECT IN OBJECT = V-CARVE PRE-CARVE>
<SYNTAX CARVE OBJECT WITH OBJECT (HAVE) = V-CARVE-WITH>
<SYNONYM CARVE INSCRIBE SCRATCH WRITE>
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB UP OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OVER OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-OVER>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX CLIMB THROUGH OBJECT = V-THROUGH>
<SYNONYM CLIMB SCALE>
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-CLOSE>
<SYNTAX CLOSE OFF OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-LAMP-OFF>
<SYNONYM CLOSE SHUT>
<SYNTAX CONNECT OBJECT TO OBJECT = V-PLUG>
<SYNTAX COVER OBJECT WITH OBJECT (HELD MANY) = V-SPUT-ON>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNTAX CUT OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<SYNTAX CUT THROUGH OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<SYNONYM CUT SLICE>
<SYNTAX DEMOLISH OBJECT (ON-GROUND IN-ROOM) = V-MUNG>
<SYNTAX DEMOLISH OBJECT WITH OBJECT (HELD CARRIED TAKE) = V-MUNG>
<SYNTAX DEMOLISH DOWN OBJECT = V-KILL>
<SYNONYM DEMOLISH CRACK DESTROY DAMAGE BREAK SMASH WRECK>
<SYNTAX DANGLE OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DESCEND OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG WITH OBJECT = V-DIG>
<SYNTAX DIG THROUGH OBJECT = V-DIG>
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNONYM DISEMBARK DEBARK>
<SYNTAX DISROBE = V-GET-UNDRESSED>
<SYNTAX DOZE = V-DOZE>
<SYNONYM DOZE NAP SNOOZE>
<SYNTAX DRESS = V-GET-DRESSED>
<SYNTAX DRINK OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-DRINK>
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
<SYNONYM DRINK SIP SWALLOW IMBIBE QUAFF GUZZLE SWILL>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP PRE-DROP>
<SYNTAX DROP OBJECT (HELD MANY) BEFORE OBJECT = V-PUT-IN-FRONT PRE-GIVE>
<SYNTAX DROP OBJECT (HELD MANY) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX EAT OBJECT (FIND EATBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-EAT>
<SYNONYM EAT DEVOUR INGEST GOBBLE>
<SYNTAX ENJOY OBJECT = V-ENJOY>
<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT = V-THROUGH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<SYNONYM EXIT DEPART WITHDRAW>
<SYNTAX ESCAPE = V-ESCAPE>
<SYNTAX ESCAPE OBJECT = V-ESCAPE>
<SYNTAX ESCAPE FROM OBJECT = V-ESCAPE>
<SYNONYM ESCAPE FLEE>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM) (FIND DARKBIT)
= V-EXAMINE PRE-READ>
<SYNTAX EXAMINE OBJECT THROUGH OBJECT = V-EXAMINE-THROUGH PRE-READ>
<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE FOR OBJECT = V-FIND>
<SYNONYM EXAMINE X INSPECT DESCRIBE STUDY OBSERVE SEE SCOUR>
<SYNTAX EXTINGUISH OBJECT (FIND ONBIT) = V-LAMP-OFF>
<SYNTAX FEED OBJECT (FIND ACTORBIT) = V-FEED>
<SYNTAX FEED OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX FEED OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX FILL OBJECT = V-FILL>
<SYNTAX FIND OBJECT = V-FIND>
<SYNONYM FIND SEEK>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<SYNONYM FOLLOW PURSUE CHASE>
<SYNTAX FOOTNOTE = V-FOOTNOTE>
<SYNTAX FOOTNOTE OBJECT = V-FOOTNOTE>
<SYNTAX FRIPPING = V-FRIPPING>
<SYNONYM FRIPPING LYSHUS GASHEE MORPHOUSI THOU BLEEM MISERABLE VENCHIT WIMBGUNTS>
<SYNTAX HAND OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX HAND OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX HAND UP OBJECT (FIND RLANDBIT) = V-GIVE-UP>
<SYNONYM HAND GIVE SELL DONATE OFFER>
<SYNTAX HANG OBJECT ON OBJECT = V-HANG>
<SYNTAX HANG OBJECT FROM OBJECT = V-HANG>
<SYNTAX HANG OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX HEAR OBJECT (FIND DARKBIT) = V-LISTEN>
<SYNTAX HELLO = V-HELLO>
<SYNTAX HELLO OBJECT = V-HELLO>
<SYNONYM HELLO HI>
<SYNTAX HIDE = V-HIDE>
<SYNTAX HIDE UNDER OBJECT = V-HIDE>
<SYNTAX HIDE BEHIND OBJECT = V-HIDE>
<SYNTAX HELP = V-HINTS>
<SYNTAX HELP OBJECT = V-SAVE-SOMETHING>
<SYNTAX HELP OFF OBJECT (FIND RLANDBIT) = V-HINTS-NO>
<VERB-SYNONYM HELP HINT HINTS CLUE CLUES VISICLUES INVISICLUES>
<SYNTAX HITCHHIKE = V-HITCHHIKE>
<SYNONYM HITCHHIKE HITCH>
<SYNTAX IDIOT = V-IDIOT>
<SYNONYM IDIOT>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
<SYNTAX JUMP IN OBJECT = V-THROUGH>
<SYNTAX JUMP FROM OBJECT = V-LEAP>
<SYNTAX JUMP OFF OBJECT = V-LEAP>
<SYNTAX JUMP OUT OBJECT = V-THROUGH>
<SYNTAX JUMP THROUGH OBJECT = V-THROUGH>
<SYNONYM JUMP LEAP DIVE>
<SYNTAX KICK OBJECT = V-KICK>
<SYNTAX KISS OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX KNEEL = V-KNEEL>
<SYNONYM KNEEL CRAWL PEEK>
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KILL>
<SYNONYM KNOCK RAP>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-LEAVE>
<SYNTAX LIE ON OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE IN OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE DOWN OBJECT (FIND RLANDBIT) = V-LIE-DOWN>
<SYNTAX LIE BEFORE OBJECT = V-BLOCK>
<SYNONYM LIE RECLINE>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-LAMP-ON>
<SYNTAX LISTEN TO OBJECT (FIND DARKBIT) = V-LISTEN>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) = V-LOCK>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (TAKE) = V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RLANDBIT) = V-LOOK>
<SYNTAX LOOK DOWN OBJECT (FIND RLANDBIT) = V-LOOK-DOWN>
<SYNTAX LOOK UP OBJECT (FIND RLANDBIT) = V-LOOK-UP>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM) (FIND DARKBIT)
= V-EXAMINE PRE-READ>
<SYNTAX LOOK AT OBJECT THROUGH OBJECT = V-EXAMINE-THROUGH PRE-READ>
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK OUT OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER PRE-READ>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND PRE-READ>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-LOOK-INSIDE>
<SYNTAX LOOK ON OBJECT = V-EXAMINE PRE-READ>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNTAX LOOK OBJECT = V-CHASTISE>
<SYNONYM LOOK L STARE GAZE>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX MAKE OBJECT = V-MAKE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
<SYNTAX MOVE OBJECT OBJECT = V-FLIPSWITCH>
<SYNTAX MOVE TOGETHER OBJECT = V-PULL-TOGETHER> ;"pull myself together"
<SYNONYM MOVE PULL>
<SYNTAX MY OBJECT OBJECT = V-MY-NAME>
<SYNTAX NO = V-NO>
<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 (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-OPEN>
<SYNONYM OPEN PART DRAW>
<SYNTAX PANIC = V-PANIC>
<SYNTAX PAY FOR OBJECT = V-BUY>
<SYNTAX PHONE OBJECT = V-CALL>
<SYNTAX PHONE OBJECT WITH OBJECT = V-CALL-WITH>
<SYNTAX PHONE OBJECT ON OBJECT = V-CALL-WITH>
<SYNONYM PHONE CALL>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-PICK-UP PRE-TAKE>
<SYNTAX PLANT OBJECT (HELD MANY) IN OBJECT = V-PLANT>
<SYNONYM PLANT BURY>
<SYNTAX PLUG OBJECT IN OBJECT = V-PLUG>
<SYNTAX PLUG OBJECT TO OBJECT = V-PLUG>
<SYNTAX PLUG IN OBJECT IN OBJECT = V-PLUG>
<SYNTAX PLUG IN OBJECT TO OBJECT = V-PLUG>
<SYNTAX POINT AT OBJECT = V-POINT>
<SYNTAX POINT TO OBJECT = V-POINT>
<SYNTAX POINT OBJECT AT OBJECT = V-STEER>
<SYNTAX POINT OBJECT TO OBJECT = V-STEER>
<SYNONYM POINT STEER>
<SYNTAX POUR OBJECT (HELD CARRIED) = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) OVER OBJECT = V-POUR>
<SYNONYM POUR SPILL SPRINKLE>
<SYNTAX PROTEST = V-PROTEST>
<SYNONYM PROTEST ARGUE>
<SYNTAX PUSH OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT OBJECT = V-FLIPSWITCH>
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND) = V-PUSH>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNONYM PUSH PRESS>
<SYNTAX PUT OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY) AT OBJECT = V-PUT-IN-FRONT PRE-GIVE>
<SYNTAX PUT OBJECT (HELD MANY) BEFORE OBJECT = V-PUT-IN-FRONT PRE-GIVE>
<SYNTAX PUT OBJECT (HELD MANY) DOWN OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY) AROUND OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY) OVER OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY) ACROSS OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT DOWN OBJECT (HELD MANY HAVE) = V-DROP PRE-DROP>
<SYNTAX PUT OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUT ON OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<SYNTAX PUT OBJECT BEHIND OBJECT = V-PUT-BEHIND>
<SYNONYM PUT STUFF INSERT PLACE LAY>
<SYNTAX RAISE OBJECT = V-RAISE>
<SYNTAX RAISE UP OBJECT = V-RAISE>
<SYNONYM RAISE LIFT>
<SYNTAX RAPE OBJECT (FIND ACTORBIT) = V-RAPE>
;<SYNTAX REACH IN OBJECT (ON-GROUND IN-ROOM) = V-REACH-IN>
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-READ PRE-READ>
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
THROUGH OBJECT = V-READ PRE-READ>
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
WITH OBJECT = V-READ PRE-READ>
<SYNONYM READ SKIM>
<SYNTAX REFUSE OBJECT (IN-ROOM) = V-REFUSE>
<SYNTAX RELAX = V-RELAX>
<SYNTAX REMOVE OBJECT (FIND WORNBIT) = V-REMOVE>
<SYNTAX REMOVE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNONYM REMOVE DOFF SHED>
<SYNTAX REPAIR OBJECT = V-REPAIR>
<SYNONYM REPAIR FIX UNJAM>
<SYNTAX REPLACE OBJECT = V-REPLACE>
<SYNTAX SAVE OBJECT = V-SAVE-SOMETHING>
<SYNTAX SAY TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX SAY OBJECT = V-SAY-NAME>
<SYNTAX SAY = V-SAY>
<SYNONYM SAY TALK SPEAK>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNONYM SEARCH RUMMAGE FRISK>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNTAX SHAKE OBJECT WITH OBJECT = V-SHAKE-WITH>
<SYNTAX SHOOT = V-SHOOT>
<SYNTAX SHOOT OBJECT = V-SHOOT>
<SYNTAX SHOOT OBJECT WITH OBJECT (HAVE) = V-SHOOT>
<SYNTAX SHOOT OBJECT (HAVE) AT OBJECT = V-SSHOOT>
<SYNONYM SHOOT FIRE BLAST>
<SYNTAX SHOW OBJECT (HELD MANY HAVE) TO OBJECT (FIND ACTORBIT) = V-SHOW>
<SYNTAX SHOW OBJECT (FIND ACTORBIT) OBJECT (HELD MANY HAVE) = V-SSHOW>
<SYNTAX SIT ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT>
<SYNTAX SIT IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNONYM SIT REST SQUAT>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
<SYNTAX SLEEP = V-SLEEP>
<SYNTAX SLEEP IN OBJECT (IN-ROOM ON-GROUND) = V-BOARD PRE-BOARD>
<SYNTAX SLEEP ON OBJECT (IN-ROOM ON-GROUND) = V-BOARD PRE-BOARD>
<SYNTAX SLIDE OBJECT = V-PUSH>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SMELL OBJECT (FIND DARKBIT) = V-SMELL>
<SYNONYM SMELL SNIFF WHIFF>
<SYNTAX SMILE = V-SMILE>
<SYNTAX SMILE AT OBJECT = V-SMILE>
<SYNTAX SPIN OBJECT = V-SPIN>
<SYNONYM SPIN WHIRL ROTATE>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX STAND ON OBJECT = V-STAND-ON>
<SYNTAX STAND BEFORE OBJECT = V-STAND-BEFORE>
<SYNTAX STAND IN OBJECT = V-STAND-ON>
<SYNONYM STAND RISE>
<SYNTAX START OBJECT = V-LAMP-ON>
<SYNONYM START ACTIVATE>
<SYNTAX SWITCH OBJECT = V-TURN>
<SYNTAX SWITCH OBJECT OBJECT = V-FLIPSWITCH>
<SYNTAX SWITCH AROUND OBJECT (FIND RLANDBIT) = V-TURN>
<SYNTAX SWITCH OBJECT TO OBJECT = V-TURN>
<SYNTAX SWITCH OBJECT WITH OBJECT (HAVE) = V-TURN>
<SYNTAX SWITCH ON OBJECT (FIND LIGHTBIT) = V-LAMP-ON>
<SYNTAX SWITCH ON OBJECT OBJECT = V-FLIPSWITCH>
<SYNTAX SWITCH OFF OBJECT (FIND LIGHTBIT) (TAKE) = V-LAMP-OFF>
<SYNTAX SWITCH OFF OBJECT OBJECT = V-FLIPSWITCH>
<SYNONYM SWITCH TURN FLIP FLICK TOGGLE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX TAKE DRESSED OBJECT (FIND RLANDBIT) = V-GET-DRESSED>
<SYNTAX TAKE UNDRESSED OBJECT (FIND RLANDBIT) = V-GET-UNDRESSED>
<SYNTAX TAKE DRUNK OBJECT (FIND RLANDBIT) = V-GET-DRUNK>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OUT OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
IN OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OFF OBJECT (FIND WORNBIT) (HAVE) = V-TAKE-OFF>
<SYNONYM TAKE GRAB CATCH GET HOLD CARRY>
<SYNTAX TASTE OBJECT (FIND DARKBIT) = V-TASTE>
<SYNONYM TASTE LICK>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX TELL OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-TELL-ABOUT>
<SYNTAX TELL OBJECT OBJECT = V-TELL-TIME>
<SYNTAX TELL OBJECT TO OBJECT = V-TELL-NAME>
<SYNTAX THANK OBJECT = V-THANK>
<SYNONYM THANK THANKS>
<SYNTAX THROW OBJECT (HELD CARRIED) = V-THROW PRE-THROW>
<SYNTAX THROW OBJECT OBJECT = V-FLIPSWITCH>
<SYNTAX THROW OBJECT (HELD CARRIED) UP OBJECT (FIND RLANDBIT)
= V-THROW PRE-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED) AT OBJECT (ON-GROUND IN-ROOM)
= V-THROW PRE-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED) TO OBJECT (ON-GROUND IN-ROOM)
= V-THROW PRE-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED) OFF OBJECT = V-THROW-OFF>
<SYNTAX THROW OBJECT (HELD CARRIED) OVER OBJECT = V-THROW-OFF>
<SYNTAX THROW OBJECT (HELD CARRIED) THROUGH OBJECT (ON-GROUND IN-ROOM)
= V-THROW PRE-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED) IN OBJECT = V-THROW PRE-THROW>
<SYNTAX THROW IN OBJECT = V-THROW-IN-TOWEL>
<SYNONYM THROW HURL TOSS>
<SYNTAX TIE OBJECT = V-TIE>
<SYNTAX TIE TOGETHER OBJECT = V-TIE-TOGETHER>
<SYNTAX TIE OBJECT (HELD MANY) AROUND OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX TIE OBJECT TO OBJECT = V-PLUG>
<SYNONYM TIE FASTEN SECURE ATTACH>
<SYNTAX TOUCH OBJECT (FIND DARKBIT) = V-RUB>
<SYNTAX TOUCH OBJECT WITH OBJECT = V-RUB>
<SYNONYM TOUCH FEEL PAT PET RUB>
<SYNTAX TYPE = V-TYPE>
<SYNTAX TYPE ON OBJECT = V-TYPE-ON>
<SYNTAX UNDRESS = V-GET-UNDRESSED>
<SYNTAX UNLOCK OBJECT = V-UNLOCK>
<SYNTAX UNLOCK OBJECT WITH OBJECT (HAVE) = V-UNLOCK>
<SYNTAX UNPLUG OBJECT = V-UNPLUG>
<SYNONYM UNPLUG DISCONNEC>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
<SYNONYM UNTIE FREE UNFASTEN UNATTACH UNKNOT>
<SYNTAX WAIT = V-WAIT>
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
<SYNONYM WAIT Z STAY>
<SYNTAX WAKE OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNTAX WAKE UP OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNONYM WAKE AWAKE ROUSE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-THROUGH>
<SYNTAX WALK OUT OBJECT = V-THROUGH>
<SYNTAX WALK ON OBJECT = V-WALK-AROUND>
<SYNTAX WALK OVER OBJECT = V-LEAP>
<SYNTAX WALK THROUGH OBJECT = V-THROUGH>
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
<SYNTAX WALK BEHIND OBJECT = V-WALK-AROUND>
<SYNTAX WALK UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNTAX WALK AWAY OBJECT (FIND RLANDBIT) = V-LEAVE>
<SYNONYM WALK GO RUN PROCEED STEP>
<SYNTAX WASH OBJECT = V-CLEAN>
<SYNTAX WASH UP OBJECT (FIND RLANDBIT) = V-CLEAN>
<SYNONYM WASH CLEAN TIDY>
<SYNTAX WATER OBJECT WITH OBJECT (HAVE) = V-WATER>
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
<SYNTAX WAVE = V-WAVE-AT>
<SYNTAX WAVE AT OBJECT = V-WAVE-AT>
<SYNTAX WAVE TO OBJECT = V-WAVE-AT>
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<SYNONYM WEAR DON>
<SYNTAX WHAT OBJECT = V-WHAT>
<SYNTAX WHAT ABOUT OBJECT = V-WHAT-ABOUT>
<SYNTAX WHAT OBJECT OBJECT = V-WHAT-TIME>
<SYNONYM WHAT WHATS WHAT\'S>
<SYNTAX WHERE OBJECT = V-WHERE>
<SYNONYM WHERE WHERES WHERE\'S>
<SYNTAX WHO OBJECT = V-WHO>
<SYNONYM WHO WHOS WHO\'S>
<SYNTAX WHY = V-WHY>
<SYNTAX DRAPE OBJECT IN OBJECT (HELD MANY) = V-SPUT-ON>
<SYNTAX DRAPE OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX DRAPE OBJECT (HELD MANY) AROUND OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX DRAPE OBJECT (HELD MANY) OVER OBJECT = V-PUT-ON PRE-PUT>
<SYNONYM DRAPE WRAP>
<SYNTAX YELL = V-YELL>
<SYNTAX YELL AT OBJECT = V-YELL>
<SYNTAX YELL TO OBJECT = V-YELL>
<SYNONYM YELL SCREAM SHOUT HOWL>
<SYNTAX YES = V-YES>
<SYNONYM YES Y OK OKAY SURE>

230
unearth.zabstr Normal file
View File

@ -0,0 +1,230 @@
<OBJECT LAIR-OBJECT (LOC LOCAL-GLOBALS) (DESC "lair") (SYNONYM LAIR COURTYARD
YARD) (ADJECTIVE COURT INNER OUTER) (ACTION LAIR-OBJECT-F)>
<DEFINE-ROUTINE LAIR-OBJECT-F>
<ROOM LAIR (LOC ROOMS) (DESC "Lair") (EAST TO OUTER-LAIR) (SW PER
INNER-LAIR-ENTER-F) (FLAGS RLANDBIT ONBIT) (GLOBAL LAIR-OBJECT) (ACTION LAIR-F)
>
<DEFINE-ROUTINE INNER-LAIR-ENTER-F>
<DEFINE-ROUTINE LAIR-F>
<GLOBAL NAME-TOLD <>>
<GLOBAL BEARINGS-LOST <>>
<GLOBAL BEAST-COUNTER 0>
<ROOM OUTER-LAIR (LOC ROOMS) (DESC "Beast's Outer Lair") (WEST TO LAIR) (FLAGS
RLANDBIT ONBIT OUTSIDEBIT) (GLOBAL LAIR-OBJECT) (ACTION OUTER-LAIR-F)>
<OBJECT BONES (LOC OUTER-LAIR) (SYNONYM BONE BONES) (ADJECTIVE GNAWED) (DESC
"bone") (FLAGS NDESCBIT) (ACTION UNIMPORTANT-THING-F)>
<DEFINE-ROUTINE OUTER-LAIR-F>
<OBJECT MEMORIAL (LOC OUTER-LAIR) (DESC "sandstone memorial") (SYNONYM MEMORIAL
LIST REMEMBRAN MONUMENT) (ADJECTIVE SANDSTONE) (FLAGS NDESCBIT READBIT) (ACTION
MEMORIAL-F)>
<DEFINE-ROUTINE MEMORIAL-F>
<OBJECT STONE (LOC OUTER-LAIR) (DESC "sharp stone") (SYNONYM STONE STONES ROCK
ROCKS) (ADJECTIVE SHARP) (FLAGS NDESCBIT TAKEBIT TRYTAKEBIT) (SIZE 20) (ACTION
STONE-F)>
<DEFINE-ROUTINE STONE-F>
<OBJECT BEAST (LOC LAIR) (DESC "Ravenous Bugblatter Beast of Traal") (DESCFCN
BEAST-DESCFCN) (SYNONYM BEAST TRAAL) (ADJECTIVE RAVENOUS BUGBLATTE BEAST) (
FLAGS ACTORBIT) (ACTION BEAST-F)>
<DEFINE-ROUTINE BEAST-DESCFCN>
<DEFINE-ROUTINE BEAST-F>
<DEFINE-ROUTINE I-BEAST>
<DEFINE-ROUTINE BEAST-DEATH>
<OBJECT NAME (LOC BEDROOM) (DESC "name") (SYNONYM NAME) (FLAGS NDESCBIT)>
<OBJECT SARCASTIC-NAME (LOC GLOBAL-OBJECTS) (DESC "other name") (SYNONYM NAME
BUDDHA AUNT FRED) (ADJECTIVE AUNT\'S FRED\'S BUDDHA) (FLAGS VOWELBIT INVISIBLE)
>
<OBJECT YOUR-NAME (LOC GLOBAL-OBJECTS) (DESC "your name") (SYNONYM NAME) (
ADJECTIVE YOUR MY ARTHUR) (FLAGS NARTICLEBIT) (ACTION YOUR-NAME-F)>
<DEFINE-ROUTINE YOUR-NAME-F>
<OBJECT BEAST-NAME (LOC GLOBAL-OBJECTS) (DESC "Beast's name") (SYNONYM NAME) (
ADJECTIVE BEAST\'S) (FLAG NARTICLEBIT INVISIBLE)>
<ROOM INNER-LAIR (LOC ROOMS) (DESC "Inner Lair") (LDESC
"This is the heart of the Beast's lair. The only exit leads northeast.") (NE TO
LAIR) (FLAGS ONBIT RLANDBIT) (GLOBAL LAIR-OBJECT)>
<OBJECT SKELETON (LOC INNER-LAIR) (DESC "skeleton") (FDESC
"The skeleton of a dead Beasthunter lies nearby, clutching something labelled
\"Nutrimat/Computer Interface.\"") (SYNONYM SKELETON BEASTHUNT BONE BONES) (
FLAGS RLANDBIT TRYTAKEBIT)>
<OBJECT NUT-COM-INTERFACE (LOC INNER-LAIR) (DESC "Nutrimat/Computer Interface")
(SYNONYM INTERFACE) (ADJECTIVE NUTRIMAT COMPUTER) (FLAGS NDESCBIT TRYTAKEBIT
TAKEBIT) (SIZE 4) (ACTION NUT-COM-INTERFACE-F)>
<DEFINE-ROUTINE NUT-COM-INTERFACE-F>
<DEFINE-ROUTINE I-CARELESS-WORDS>
<GLOBAL CARELESS-WORDS-FLAG <>>
<GLOBAL DOG-COUNTER 0>
<OBJECT MICROSCOPIC-FLEET (LOC WAR-CHAMBER) (DESC "battle fleet") (SYNONYM
FLEET SHIP SHIPS SPACESHIP) (ADJECTIVE BATTLE HORRIBLE BEWEAPONE MICROSCOP
SPACE VAST) (FLAGS NDESCBIT) (ACTION MICROSCOPIC-FLEET-F)>
<DEFINE-ROUTINE MICROSCOPIC-FLEET-F>
<OBJECT CANOPY (LOC WAR-CHAMBER) (DESC "domed canopy") (SYNONYM CANOPY DOME
WINDOW) (ADJECTIVE DOMED) (FLAGS NDESCBIT TRANSBIT) (ACTION CANOPY-F)>
<DEFINE-ROUTINE CANOPY-F>
<ROOM WAR-CHAMBER (LOC ROOMS) (SYNONYM WALKING) (DESC "War Chamber") (FLAGS
RLANDBIT ONBIT) (GLOBAL CONVERSATION) (ACTION WAR-CHAMBER-F)>
<DEFINE-ROUTINE WAR-CHAMBER-F>
<OBJECT VLHURG (LOC WAR-CHAMBER) (DESC "Vl'Hurg leader") (DESCFCN
VLHURG-DESCFCN) (SYNONYM VL\'HURG LEADER CREATURE CREATURES) (ADJECTIVE
VL\'HURG) (FLAGS ACTORBIT) (ACTION VLHURG-F)>
<DEFINE-ROUTINE VLHURG-DESCFCN>
<DEFINE-ROUTINE VLHURG-F>
<OBJECT GGUGVUNT (LOC WAR-CHAMBER) (DESC "G'Gugvunt leader") (SYNONYM
G\'GUGVUNT LEADER CREATURE CREATURES) (ADJECTIVE G\'GUGVUNT) (FLAGS ACTORBIT
NDESCBIT) (ACTION GGUGVUNT-F)>
<DEFINE-ROUTINE GGUGVUNT-F>
<OBJECT OTHER-PLANETS (LOC WAR-CHAMBER) (DESC "other planets") (SYNONYM PLANET
PLANETS) (ADJECTIVE OTHER) (FLAGS NDESCBIT VOWELBIT NARTICLEBIT)>
<OBJECT THIRD-PLANET (LOC LOCAL-GLOBALS) (DESC "third planet") (SYNONYM PLANET
EARTH) (ADJECTIVE THIRD BLUE BLUE-GREE GREEN SMALL) (FLAGS NDESCBIT) (ACTION
THIRD-PLANET-F)>
<DEFINE-ROUTINE THIRD-PLANET-F>
<ROOM MAZE (LOC ROOMS) (SYNONYM INFOCOM ADAMS MERETZKY) (ADJECTIVE DOUGLAS
STEVE STEVEN) (DESC "Maze") (LDESC
"This is part of a spongy gray maze of twisty little synapses, all alike.") (
NORTH PER MAZE-EXIT-F) (NE PER MAZE-EXIT-F) (EAST PER MAZE-EXIT-F) (SE PER
MAZE-EXIT-F) (SOUTH PER MAZE-EXIT-F) (SW PER MAZE-EXIT-F) (WEST PER MAZE-EXIT-F
) (NW PER MAZE-EXIT-F) (UP PER MAZE-EXIT-F) (DOWN PER MAZE-EXIT-F) (IN PER
MAZE-EXIT-F) (OUT PER MAZE-EXIT-F) (FLAGS RLANDBIT ONBIT)>
<OBJECT GRAY-MATTER (LOC MAZE) (SYNONYM MAZE) (ADJECTIVE GRAY GREY SPONGY) (
DESC "maze") (FLAGS NDESCBIT) (ACTION GLOBAL-ROOM-F)>
<GLOBAL MAZE-COUNTER 0>
<GLOBAL BRAIN-DAMAGED <>>
<DEFINE-ROUTINE MAZE-EXIT-F>
<OBJECT BRAIN (LOC MAZE) (DESC "brain") (SYNONYM BRAIN) (ADJECTIVE MY YOUR) (
FLAGS NDESCBIT) (ACTION GLOBAL-ROOM-F)>
<OBJECT SYNAPSE (LOC MAZE) (DESC "synapse") (SYNONYM SYNAPSE GAP) (ADJECTIVE
SYNAPSE) (FLAGS NDESCBIT)>
<OBJECT PARTICLE (LOC LOCAL-GLOBALS) (DESC "particle") (LDESC
"Blocking the gap between two synapses is a large black particle. There seem
to be some faint markings on it.") (SYNONYM PARTICLE SENSE LETTER MARKINGS) (
ADJECTIVE LARGE BLACK COMMON FAINT) (FLAGS TAKEBIT TRYTAKEBIT READBIT) (ACTION
PARTICLE-F)>
<DEFINE-ROUTINE PARTICLE-F>
<OBJECT APARTMENT (LOC LOCAL-GLOBALS) (DESC "apartment") (SYNONYM APARTMENT) (
FLAGS VOWELBIT) (ACTION APARTMENT-F)>
<DEFINE-ROUTINE APARTMENT-F>
<GLOBAL ITEM-DROPPED-AT-PARTY <>>
<GLOBAL FLUFF-REMOVED <>>
<GLOBAL PARTY-TABLE <TABLE 0 0 0>>
<DEFINE-ROUTINE PARTY-DESC>
<ROOM LIVING-ROOM (LOC ROOMS) (DESC "Living Room") (SOUTH PER PARTY-EXIT-F) (
WEST TO DINING-ROOM) (SW TO KITCHEN) (FLAGS RLANDBIT ONBIT) (GLOBAL APARTMENT
WILD-PARTY) (ACTION LIVING-ROOM-F)>
<DEFINE-ROUTINE PARTY-EXIT-F>
<DEFINE-ROUTINE LIVING-ROOM-F>
<OBJECT APARTMENT-DOOR (LOC LIVING-ROOM) (DESC "door") (SYNONYM DOOR) (FLAGS
DOORBIT OPENBIT NDESCBIT) (ACTION APARTMENT-DOOR-F)>
<DEFINE-ROUTINE APARTMENT-DOOR-F>
<ROOM DINING-ROOM (LOC ROOMS) (DESC "Dining Room") (SOUTH TO KITCHEN) (EAST TO
LIVING-ROOM) (FLAGS RLANDBIT ONBIT) (GLOBAL APARTMENT WILD-PARTY) (ACTION
DINING-ROOM-F)>
<OBJECT WILD-PARTY (LOC LOCAL-GLOBALS) (SYNONYM PARTY) (DESC "party") (ACTION
APARTMENT-F)>
<DEFINE-ROUTINE DINING-ROOM-F>
<ROOM KITCHEN (LOC ROOMS) (DESC "Kitchen") (NORTH TO DINING-ROOM) (NE TO
LIVING-ROOM) (FLAGS RLANDBIT ONBIT) (GLOBAL APARTMENT WILD-PARTY) (ACTION
KITCHEN-F)>
<DEFINE-ROUTINE KITCHEN-F>
<OBJECT WINE (LOC LOCAL-GLOBALS) (DESC "glass of white wine") (SYNONYM GLASS
WINE) (ADJECTIVE WHITE) (FLAGS TAKEBIT DRINKBIT) (SIZE 15) (ACTION WINE-F)>
<DEFINE-ROUTINE WINE-F>
<OBJECT APPETIZERS (LOC LOCAL-GLOBALS) (DESC "plate of hors d'oeuvres") (
SYNONYM PLATE D\'OEUVRES APPETIZER SNACKS) (ADJECTIVE HORS) (FLAGS TAKEBIT
EATBIT) (SIZE 15) (ACTION APPETIZERS-F)>
<DEFINE-ROUTINE APPETIZERS-F>
<DEFINE-ROUTINE DROP-AT-PARTY>
<DEFINE-ROUTINE SHRIEK>
<OBJECT HOSTESS (LOC LIVING-ROOM) (DESC "hostess") (LDESC
"You notice the hostess approaching, but, using several mingling couples
as cover, you maneuver away.") (SYNONYM HOSTESS) (FLAGS ACTORBIT) (ACTION
HOSTESS-F)>
<DEFINE-ROUTINE HOSTESS-F>
<DEFINE-ROUTINE I-HOSTESS>
<OBJECT JACKET-FLUFF (LOC LOCAL-GLOBALS) (DESC "jacket fluff") (SYNONYM FLUFF
LINT) (ADJECTIVE JACKET UNSIGHTLY) (FLAGS NARTICLEBIT TAKEBIT TRYTAKEBIT
NDESCBIT) (GENERIC POCKET-FLUFF)>
<OBJECT CAGE (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM DRAPE CAGE BIRDCAGE
SNORING) (ADJECTIVE LARGE BLACK BIRD) (FLAGS NDESCBIT NARTICLEBIT) (ACTION
UNIMPORTANT-THING-F)>
<OBJECT DAMOGRAN (LOC LOCAL-GLOBALS) (DESC "Damogran") (SYNONYM DAMOGRAN)>
<ROOM SPEEDBOAT (LOC ROOMS) (DESC "Presidential Speedboat") (NORTH TO DAIS IF
BOAT-DOCKED) (OUT TO DAIS IF BOAT-DOCKED) (FLAGS ONBIT RLANDBIT OUTSIDEBIT) (
GLOBAL CONTROLS DAMOGRAN PLATFORM CROWD WATER) (ACTION SPEEDBOAT-F)>
<OBJECT CROWD (LOC LOCAL-GLOBALS) (SYNONYM CROWD) (DESC "crowd") (ACTION
CROWD-PSEUDO)>
<OBJECT WATER (LOC LOCAL-GLOBALS) (SYNONYM WATER) (DESC "water") (FLAGS
NARTICLEBIT) (ACTION WATER-PSEUDO)>
<DEFINE-ROUTINE SPEEDBOAT-F>
<DEFINE-ROUTINE I-SPEEDBOAT>
<GLOBAL CRASH-COUNTER 0>
<GLOBAL BOAT-COUNTER 0>
<GLOBAL DESTINATION <>>
<GLOBAL BOAT-DOCKED <>>
<GLOBAL AUTOPILOT-COUNTER 0>
<GLOBAL DAIS-COUNTER 0>
<OBJECT BOAT-OBJECT (LOC SPEEDBOAT) (DESC "speedboat") (SYNONYM SPEEDBOAT BOAT)
(ADJECTIVE PRESIDENT SPEED) (FLAGS NDESCBIT) (ACTION BOAT-OBJECT-F)>
<DEFINE-ROUTINE BOAT-OBJECT-F>
<DEFINE-ROUTINE WATER-PSEUDO>
<OBJECT PILOT-SEAT (LOC SPEEDBOAT) (DESC "pilot seat") (SYNONYM SEAT CHAIR
CUSHION) (ADJECTIVE PILOT SEAT THICK PLUSH) (FLAGS VEHBIT CONTBIT SURFACEBIT
SEARCHBIT OPENBIT) (ACTION PILOT-SEAT-F)>
<DEFINE-ROUTINE PILOT-SEAT-F>
<OBJECT KEY (LOC LOCAL-GLOBALS) (DESC "small key") (SYNONYM KEY) (ADJECTIVE
SMALL) (FLAGS TAKEBIT) (SIZE 2) (ACTION KEY-F)>
<DEFINE-ROUTINE KEY-F>
<OBJECT CUSHION-FLUFF (LOC LOCAL-GLOBALS) (DESC "seat cushion fluff") (SYNONYM
FLUFF LINT) (ADJECTIVE SEAT CUSHION) (FLAGS TAKEBIT NARTICLEBIT) (SIZE 1) (
GENERIC POCKET-FLUFF)>
<OBJECT TOOLBOX (LOC SPEEDBOAT) (DESC "tool box") (SYNONYM TOOLBOX LOCK BOX) (
ADJECTIVE TOOL) (FLAGS CONTBIT TAKEBIT SEARCHBIT) (SIZE 25) (CAPACITY 20) (
ACTION TOOLBOX-F)>
<DEFINE-ROUTINE TOOLBOX-F>
<OBJECT MAGNIFYING-GLASS (LOC TOOLBOX) (DESC "magnifying glass") (SYNONYM GLASS
) (ADJECTIVE MAGNIFYIN) (FLAGS TAKEBIT TRANSBIT) (ACTION MAGNIFYING-GLASS-F)>
<DEFINE-ROUTINE MAGNIFYING-GLASS-F>
<OBJECT AUTOPILOT-BUTTON (LOC SPEEDBOAT) (DESC "autopilot button") (SYNONYM
BUTTON PILOT AUTOPILOT) (ADJECTIVE AUTOPILOT AUTO LARGE RED) (FLAGS VOWELBIT
NDESCBIT LIGHTBIT) (ACTION AUTOPILOT-BUTTON-F)>
<DEFINE-ROUTINE AUTOPILOT-BUTTON-F>
<OBJECT CHANNEL (LOC SPEEDBOAT) (DESC "narrow channel") (SYNONYM CHANNEL
OPENING) (ADJECTIVE NARROW) (FLAGS NDESCBIT)>
<OBJECT SPIRE (LOC SPEEDBOAT) (DESC "rocky spire") (SYNONYM SPIRE ROCK ROCKS) (
ADJECTIVE ROCKY) (FLAGS NDESCBIT) (ACTION DESTINATION-F)>
<OBJECT CLIFF (LOC SPEEDBOAT) (DESC "towering cliffs") (SYNONYM CLIFF CLIFFS
ISLAND FRANCE) (ADJECTIVE TOWERING) (FLAGS NDESCBIT NARTICLEBIT) (ACTION
DESTINATION-F)>
<DEFINE-ROUTINE DESTINATION-F>
<ROOM DAIS (LOC ROOMS) (SYNONYM POLICE COPS) (DESC "Dais") (SOUTH SORRY
"The boat is gone.") (EAST PER DAIS-EXIT-F) (IN PER DAIS-EXIT-F) (OUT PER
DAIS-EXIT-F) (FLAGS RLANDBIT ONBIT OUTSIDEBIT) (GLOBAL HEART-OF-GOLD DAMOGRAN
PLATFORM CROWD) (ACTION DAIS-F)>
<DEFINE-ROUTINE DAIS-EXIT-F>
<DEFINE-ROUTINE DAIS-F>
<DEFINE-ROUTINE DAIS-FUNCTION>
<DEFINE-ROUTINE CROWD-PSEUDO>
<OBJECT PLATFORM (LOC LOCAL-GLOBALS) (DESC "Dais") (SYNONYM DAIS PLATFORM) (
ACTION PLATFORM-F)>
<DEFINE-ROUTINE PLATFORM-F>
<OBJECT BANNER (LOC DAIS) (DESC "banner") (SYNONYM BANNER) (ADJECTIVE HUGE) (
FLAGS NDESCBIT READBIT) (TEXT
"\"President Beeblebrox is a Swell Guy\" (Footnote 15).")>
<OBJECT BLASTER (LOC LOCAL-GLOBALS) (DESC "blaster") (SYNONYM BLASTER WEAPON) (
FLAGS NDESCBIT TAKEBIT TRYTAKEBIT) (ACTION BLASTER-F)>
<DEFINE-ROUTINE BLASTER-F>
<DEFINE-ROUTINE BLASTER-HOLD>
<OBJECT RIFLES (LOC LOCAL-GLOBALS) (DESC "pile of photon rifles") (SYNONYM
RIFLE RIFLES PILE WEAPON WEAPONS) (ADJECTIVE PHOTON YOUR) (FLAGS NDESCBIT
TRYTAKEBIT) (ACTION RIFLES-F)>
<DEFINE-ROUTINE RIFLES-F>
<DEFINE-ROUTINE GUARD-DEATH>
<ROOM INSIDE-WHALE (LOC ROOMS) (SYNONYM TREE FOREKNOWL) (DESC
"Inside the Sperm Whale") (LDESC
"You are in the stomach of a sperm whale. You can hear a distant sound
of rushing wind.") (FLAGS ONBIT RLANDBIT NARTICLEBIT) (ACTION INSIDE-WHALE-F)>
<DEFINE-ROUTINE INSIDE-WHALE-F>
<DEFINE-ROUTINE I-WHALE>
<OBJECT WHALE-OBJECT (LOC INSIDE-WHALE) (DESC "innard of a whale") (SYNONYM
INNARD WHALE STOMACH) (ADJECTIVE SPERM) (FLAGS VOWELBIT NDESCBIT) (ACTION
WHALE-OBJECT-F)>
<DEFINE-ROUTINE WHALE-OBJECT-F>

1142
unearth.zap Normal file

File diff suppressed because it is too large Load Diff

1594
unearth.zil Normal file

File diff suppressed because it is too large Load Diff

249
verbs.zabstr Normal file
View File

@ -0,0 +1,249 @@
<GLOBAL VERBOSITY 1>
<DEFINE-ROUTINE V-$REFRESH>
<DEFINE-ROUTINE V-VERBOSE>
<DEFINE-ROUTINE V-BRIEF>
<DEFINE-ROUTINE V-SUPERBRIEF>
<DEFINE-ROUTINE V-DIAGNOSE>
<DEFINE-ROUTINE V-INVENTORY>
<DEFINE-ROUTINE V-QUIT>
<DEFINE-ROUTINE V-RESTART>
<DEFINE-ROUTINE FINISH>
<DEFINE-ROUTINE YES?>
<DEFINE-ROUTINE V-RESTORE>
<DEFINE-ROUTINE V-SAVE>
<DEFINE-ROUTINE V-SCORE>
<DEFINE-ROUTINE V-SCRIPT>
<DEFINE-ROUTINE V-UNSCRIPT>
<DEFINE-ROUTINE COPR-NOTICE>
<DEFINE-ROUTINE V-$ID>
<DEFINE-ROUTINE V-VERSION>
<DEFINE-ROUTINE V-$VERIFY>
<CONSTANT SERIAL 0>
<DEFINE-ROUTINE V-ALARM>
<DEFINE-ROUTINE V-ANSWER>
<DEFINE-ROUTINE V-APPLAUD>
<DEFINE-ROUTINE V-APPRECIATE>
<DEFINE-ROUTINE V-ASK-ABOUT>
<DEFINE-ROUTINE V-ASK-FOR>
<DEFINE-ROUTINE V-BITE>
<DEFINE-ROUTINE V-BLOCK>
<DEFINE-ROUTINE V-BLOCK-WITH>
<DEFINE-ROUTINE PRE-BOARD>
<DEFINE-ROUTINE V-BOARD>
<DEFINE-ROUTINE V-BRUSH>
<DEFINE-ROUTINE V-BUY>
<DEFINE-ROUTINE V-CALL>
<DEFINE-ROUTINE V-CALL-WITH>
<DEFINE-ROUTINE PRE-CARVE>
<DEFINE-ROUTINE V-CARVE>
<DEFINE-ROUTINE V-CARVE-WITH>
<DEFINE-ROUTINE V-CHASTISE>
<DEFINE-ROUTINE V-CLEAN>
<DEFINE-ROUTINE V-CLIMB-DOWN>
<DEFINE-ROUTINE V-CLIMB-FOO>
<DEFINE-ROUTINE V-CLIMB-ON>
<DEFINE-ROUTINE V-CLIMB-OVER>
<DEFINE-ROUTINE V-CLIMB-UP>
<DEFINE-ROUTINE V-CLOSE>
<DEFINE-ROUTINE V-COUNT>
<DEFINE-ROUTINE V-CUT>
<DEFINE-ROUTINE V-DIG>
<DEFINE-ROUTINE V-DISEMBARK>
<DEFINE-ROUTINE V-DOZE>
<DEFINE-ROUTINE V-DRINK>
<DEFINE-ROUTINE V-DRINK-FROM>
<DEFINE-ROUTINE PRE-DROP>
<DEFINE-ROUTINE V-DROP>
<DEFINE-ROUTINE V-EAT>
<DEFINE-ROUTINE V-ENJOY>
<DEFINE-ROUTINE V-ENTER>
<DEFINE-ROUTINE V-ESCAPE>
<DEFINE-ROUTINE V-EXAMINE>
<DEFINE-ROUTINE V-EXAMINE-THROUGH>
<DEFINE-ROUTINE V-EXIT>
<DEFINE-ROUTINE V-FEED>
<DEFINE-ROUTINE V-FILL>
<DEFINE-ROUTINE V-FIND>
<DEFINE-ROUTINE V-FIRST-LOOK>
<DEFINE-ROUTINE V-FLIPSWITCH>
<DEFINE-ROUTINE V-FOLLOW>
<GLOBAL FOLLOW-FLAG <>>
<DEFINE-ROUTINE I-FOLLOW>
<DEFINE-ROUTINE V-FOOTNOTE>
<DEFINE-ROUTINE V-FRIPPING>
<DEFINE-ROUTINE V-GET-DRESSED>
<DEFINE-ROUTINE V-GET-DRUNK>
<DEFINE-ROUTINE V-GET-UNDRESSED>
<DEFINE-ROUTINE PRE-GIVE>
<DEFINE-ROUTINE V-GIVE>
<DEFINE-ROUTINE V-GIVE-UP>
<DEFINE-ROUTINE V-HANG>
<DEFINE-ROUTINE V-HELLO>
<DEFINE-ROUTINE V-HIDE>
<DEFINE-ROUTINE V-HITCHHIKE>
<DEFINE-ROUTINE V-I-AM>
<DEFINE-ROUTINE V-IDIOT>
<DEFINE-ROUTINE V-KICK>
<DEFINE-ROUTINE V-KILL>
<DEFINE-ROUTINE V-KNEEL>
<DEFINE-ROUTINE V-KNOCK>
<DEFINE-ROUTINE V-KISS>
<DEFINE-ROUTINE V-LAMP-OFF>
<DEFINE-ROUTINE V-LAMP-ON>
<DEFINE-ROUTINE V-LEAP>
<DEFINE-ROUTINE V-LEAVE>
<DEFINE-ROUTINE V-LIE-DOWN>
<DEFINE-ROUTINE V-LISTEN>
<DEFINE-ROUTINE V-LOCK>
<DEFINE-ROUTINE V-LOOK>
<DEFINE-ROUTINE V-LOOK-BEHIND>
<DEFINE-ROUTINE V-LOOK-DOWN>
<DEFINE-ROUTINE V-LOOK-INSIDE>
<DEFINE-ROUTINE V-LOOK-UNDER>
<DEFINE-ROUTINE V-LOOK-UP>
<DEFINE-ROUTINE V-LOWER>
<DEFINE-ROUTINE V-MAKE>
<DEFINE-ROUTINE V-MOVE>
<DEFINE-ROUTINE V-MUNG>
<DEFINE-ROUTINE V-MY-NAME>
<DEFINE-ROUTINE V-NO>
<DEFINE-ROUTINE V-OPEN>
<DEFINE-ROUTINE V-PANIC>
<DEFINE-ROUTINE V-PICK>
<DEFINE-ROUTINE V-PICK-UP>
<DEFINE-ROUTINE V-PLANT>
<DEFINE-ROUTINE V-PLUG>
<DEFINE-ROUTINE V-POINT>
<DEFINE-ROUTINE V-POUR>
<DEFINE-ROUTINE V-PROTEST>
<DEFINE-ROUTINE V-PULL-TOGETHER>
<DEFINE-ROUTINE V-PUSH>
<DEFINE-ROUTINE PRE-PUT>
<DEFINE-ROUTINE V-PUT>
<DEFINE-ROUTINE V-PUT-BEHIND>
<DEFINE-ROUTINE V-PUT-IN-FRONT>
<DEFINE-ROUTINE V-PUT-ON>
<DEFINE-ROUTINE V-PUT-UNDER>
<DEFINE-ROUTINE V-RAPE>
<DEFINE-ROUTINE V-RAISE>
<DEFINE-ROUTINE PRE-READ>
<DEFINE-ROUTINE V-READ>
<DEFINE-ROUTINE V-REFUSE>
<DEFINE-ROUTINE V-RELAX>
<DEFINE-ROUTINE V-REMOVE>
<DEFINE-ROUTINE V-REPLACE>
<DEFINE-ROUTINE V-REPAIR>
<DEFINE-ROUTINE V-REPLY>
<DEFINE-ROUTINE V-RUB>
<DEFINE-ROUTINE V-SAVE-SOMETHING>
<DEFINE-ROUTINE V-SAY>
<DEFINE-ROUTINE SAID-YOUR-NAME?>
<DEFINE-ROUTINE SAID-WITH-TOWEL>
<DEFINE-ROUTINE V-SAY-NAME>
<DEFINE-ROUTINE V-SEARCH>
<DEFINE-ROUTINE V-SGIVE>
<DEFINE-ROUTINE V-SHAKE>
<DEFINE-ROUTINE V-SHAKE-WITH>
<DEFINE-ROUTINE V-SHOOT>
<DEFINE-ROUTINE V-SHOW>
<DEFINE-ROUTINE V-SIT>
<DEFINE-ROUTINE V-SKIP>
<DEFINE-ROUTINE V-SLEEP>
<DEFINE-ROUTINE V-SMELL>
<DEFINE-ROUTINE V-SMILE>
<DEFINE-ROUTINE V-SPIN>
<DEFINE-ROUTINE V-SPUT-ON>
<DEFINE-ROUTINE V-SSHOOT>
<DEFINE-ROUTINE V-SSHOW>
<DEFINE-ROUTINE V-STAND>
<DEFINE-ROUTINE V-STAND-BEFORE>
<DEFINE-ROUTINE V-STAND-ON>
<DEFINE-ROUTINE V-STEER>
<DEFINE-ROUTINE PRE-TAKE>
<CONSTANT LURCHES <PLTABLE
"It slips through your fumbling fingers and hits the carpet with a
nerve-shattering bang." "It dances by you like a thing possessed."
"You lunge for it, but the room spins nauseatingly away. The floor
gives you a light tap on the forehead."
"You're certainly picking the tough tasks. The floor acts like a
trampoline on an ice rink, or like something they've been working
on for years at Disneyland.">>
<DEFINE-ROUTINE V-TAKE>
<DEFINE-ROUTINE V-TAKE-OFF>
<DEFINE-ROUTINE V-TASTE>
<DEFINE-ROUTINE V-TELL>
<DEFINE-ROUTINE V-TELL-ABOUT>
<DEFINE-ROUTINE V-TELL-TIME>
<DEFINE-ROUTINE V-TELL-NAME>
<DEFINE-ROUTINE V-THANK>
<DEFINE-ROUTINE V-THROUGH>
<DEFINE-ROUTINE PRE-THROW>
<DEFINE-ROUTINE V-THROW>
<DEFINE-ROUTINE V-THROW-OFF>
<DEFINE-ROUTINE V-THROW-IN-TOWEL>
<DEFINE-ROUTINE V-TIE>
<DEFINE-ROUTINE V-TIE-TOGETHER>
<DEFINE-ROUTINE V-TURN>
<DEFINE-ROUTINE V-TYPE>
<DEFINE-ROUTINE V-TYPE-ON>
<DEFINE-ROUTINE V-UNLOCK>
<DEFINE-ROUTINE V-UNPLUG>
<DEFINE-ROUTINE V-UNTIE>
<DEFINE-ROUTINE V-WALK>
<DEFINE-ROUTINE V-WALK-AROUND>
<DEFINE-ROUTINE V-WALK-TO>
<DEFINE-ROUTINE V-WAIT>
<DEFINE-ROUTINE V-WAIT-FOR>
<DEFINE-ROUTINE V-WATER>
<DEFINE-ROUTINE V-WAVE>
<DEFINE-ROUTINE V-WAVE-AT>
<DEFINE-ROUTINE V-WEAR>
<DEFINE-ROUTINE V-WHAT>
<DEFINE-ROUTINE V-WHAT-ABOUT>
<DEFINE-ROUTINE V-WHAT-TIME>
<DEFINE-ROUTINE V-WHERE>
<DEFINE-ROUTINE V-WHO>
<DEFINE-ROUTINE V-WHY>
<DEFINE-ROUTINE V-YELL>
<DEFINE-ROUTINE V-YES>
<DEFINE-ROUTINE ITAKE>
<DEFINE-ROUTINE IDROP>
<DEFINE-ROUTINE CCOUNT>
<DEFINE-ROUTINE WEIGHT>
<DEFINE-ROUTINE DESCRIBE-ROOM>
<DEFINE-ROUTINE DESCRIBE-OBJECTS>
<DEFINE-ROUTINE DESCRIBE-OBJECT>
<DEFINE-ROUTINE PRINT-CONT>
<DEFINE-ROUTINE PRINT-CONTENTS>
<DEFINE-ROUTINE FIRSTER>
<DEFINE-ROUTINE DESCRIBE-VEHICLE>
<DEFINE-ROUTINE GOTO>
<DEFINE-ROUTINE UNPLUG-HELD-STUFF>
<DEFINE-ROUTINE JIGS-UP>
<DEFINE-ROUTINE ACCESSIBLE?>
<DEFINE-ROUTINE VISIBLE?>
<DEFINE-ROUTINE META-LOC>
<DEFINE-ROUTINE OTHER-SIDE>
<DEFINE-ROUTINE HELD?>
<DEFINE-ROUTINE SEE-INSIDE?>
<DEFINE-ROUTINE GLOBAL-IN?>
<DEFINE-ROUTINE FIND-IN>
<DEFINE-ROUTINE LOC-CLOSED>
<DEFINE-ROUTINE DO-WALK>
<DEFINE-ROUTINE FUCKING-CLEAR>
<DEFINE-ROUTINE ROB>
<DEFINE-ROUTINE HOLDING-ONE-BUT-NOT-BOTH?>
<DEFINE-ROUTINE HACK-HACK>
<DEFINE-ROUTINE ARTICLE>
<CONSTANT HO-HUM <PLTABLE " doesn't do anything." " accomplishes nothing."
" has no desirable effect.">>
<CONSTANT YUKS <PLTABLE "What a concept." "Nice try." "You can't be serious."
"Not bloody likely.">>
<CONSTANT IMPOSSIBLES <PLTABLE "You have lost your mind."
"You are clearly insane." "You appear to have gone barking mad."
"I'm not convinced you're allowed to be playing with this computer."
"Run out on the street and say that. See what happens."
"No, no, a thousand times no. Go boil an egg.">>
<CONSTANT WASTES <PLTABLE "Complete waste of time." "Useless. Utterly useless."
"A totally unhelpful idea.">>

3272
verbs.zap Normal file

File diff suppressed because it is too large Load Diff

2981
verbs.zil Normal file

File diff suppressed because it is too large Load Diff

117
vogon.zabstr Normal file
View File

@ -0,0 +1,117 @@
<OBJECT MINERAL-WATER (LOC SATCHEL) (DESC "Santraginean Mineral Water") (LDESC
"There is a bottle of mineral water here.") (SYNONYM BOTTLE WATER) (ADJECTIVE
SANTRAGIN MINERAL) (FLAGS NARTICLEBIT DRINKBIT TAKEBIT) (GENERIC MINERAL-WATER)
(ACTION MINERAL-WATER-F)>
<DEFINE-ROUTINE MINERAL-WATER-F>
<ROOM HOLD (LOC ROOMS) (SYNONYM PROTEIN) (DESC "Vogon Hold") (WEST SORRY
"The door to the corridor is locked (from the outside).") (EAST TO AIRLOCK IF
VOGON-INNER-DOOR IS OPEN) (FLAGS RLANDBIT ONBIT) (GLOBAL VOGON-INNER-DOOR
AIRLOCK-OBJECT FLEET HOLD-FURNISHINGS WEAPON) (ACTION HOLD-F)>
<OBJECT WEAPON (LOC LOCAL-GLOBALS) (SYNONYM WEAPON WEAPONS) (DESC "weapon") (
ACTION WEAPON-PSEUDO)>
<DEFINE-ROUTINE HOLD-F>
<OBJECT HOLD-FURNISHINGS (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM MATTRESS CUPS
CUP UNDERWEAR) (ADJECTIVE GRUBBY UNWASHED UNIDENTIF SMELLY ALIEN) (FLAGS
NDESCBIT NARTICLEBIT) (ACTION UNIMPORTANT-THING-F)>
<DEFINE-ROUTINE I-GROGGY>
<GLOBAL GROGGY-COUNTER 0>
<GLOBAL GOWN-HUNG <>>
<GLOBAL PANEL-BLOCKER <>>
<GLOBAL ITEM-ON-SATCHEL <>>
<GLOBAL FISH-COUNTER 5>
<OBJECT DISPENSER (LOC HOLD) (DESC "babel fish dispenser") (LDESC
"Along one wall is a tall dispensing machine.") (SYNONYM DISPENSER MACHINE SLOT
) (ADJECTIVE DISPENSIN BABEL FISH TALL VENDING) (ACTION DISPENSER-F)>
<DEFINE-ROUTINE DISPENSER-F>
<OBJECT DISPENSER-BUTTON (LOC HOLD) (DESC "dispenser button") (SYNONYM BUTTON)
(ADJECTIVE DISPENSER SINGLE BABEL FISH) (FLAGS NDESCBIT) (ACTION
DISPENSER-BUTTON-F)>
<DEFINE-ROUTINE DISPENSER-BUTTON-F>
<OBJECT FISH-HOLE (LOC HOLD) (DESC "small hole") (SYNONYM HOLE) (ADJECTIVE
SMALL) (FLAGS NDESCBIT) (ACTION FISH-HOLE-F)>
<DEFINE-ROUTINE FISH-HOLE-F>
<OBJECT HOOK (LOC HOLD) (DESC "metal hook") (SYNONYM HOOK) (ADJECTIVE METAL) (
FLAGS NDESCBIT) (ACTION HOOK-F)>
<DEFINE-ROUTINE HOOK-F>
<OBJECT DRAIN (LOC HOLD) (DESC "drain") (SYNONYM DRAIN GRATING GRATE) (FLAGS
NDESCBIT) (ACTION DRAIN-F)>
<DEFINE-ROUTINE DRAIN-F>
<OBJECT ROBOT-PANEL (LOC HOLD) (DESC "tiny robot panel") (SYNONYM PANEL) (
ADJECTIVE ROBOT TINY) (FLAGS NDESCBIT) (ACTION ROBOT-PANEL-F)>
<DEFINE-ROUTINE ROBOT-PANEL-F>
<OBJECT BABEL-FISH (LOC LOCAL-GLOBALS) (DESC "babel fish") (SYNONYM FISH) (
ADJECTIVE BABEL) (FLAGS TAKEBIT) (ACTION BABEL-FISH-F)>
<DEFINE-ROUTINE BABEL-FISH-F>
<OBJECT GLASS-CASE (LOC HOLD) (DESC "glass case") (LDESC
"In the corner is a glass case with a switch and a keyboard.") (SYNONYM CASE
LID GLASS) (ADJECTIVE GLASS) (SIZE 40) (FLAGS CONTBIT TRANSBIT SEARCHBIT) (
ACTION GLASS-CASE-F)>
<GLOBAL GLASS-CASE-SCORE <>>
<DEFINE-ROUTINE GLASS-CASE-F>
<DEFINE-ROUTINE GLASS-CASE-OPENS>
<OBJECT KEYBOARD (LOC HOLD) (DESC "keyboard") (SYNONYM KEYBOARD) (FLAGS
NDESCBIT TRYTAKEBIT)>
<OBJECT CASE-SWITCH (LOC HOLD) (DESC "switch") (SYNONYM SWITCH) (FLAGS NDESCBIT
SWITCHBIT) (ACTION CASE-SWITCH-F)>
<DEFINE-ROUTINE CASE-SWITCH-F>
<DEFINE-ROUTINE PRODUCE-GIBBERISH>
<DEFINE-ROUTINE I-ANNOUNCEMENT>
<GLOBAL GIBBERISH <PLTABLE "toy" "r g" "irb" "kwa" "o s" "fim" "p w" "osh"
"flu" "a r" "vup" "d t" "imb" "tha" "i l" "cav" "s g" "ulp" "cho" "u n" "zit"
"z z" "eft" "qui" "e h" "kon" "l m" "ork" "gry" "o t" "huv" "x j" "erl" "tru"
"a b" "fud" "w c" "oll" "wro" "i s">>
<DEFINE-ROUTINE I-GUARDS>
<ROOM CAPTAINS-QUARTERS (LOC ROOMS) (DESC "Captain's Quarters") (FLAGS RLANDBIT
ONBIT) (GLOBAL FLEET WEAPON) (ACTION CAPTAINS-QUARTERS-F)>
<OBJECT STRAPS (LOC CAPTAINS-QUARTERS) (SYNONYM STRAPS STRAP) (DESC "strap") (
FLAGS NDESCBIT) (ACTION UNIMPORTANT-THING-F)>
<DEFINE-ROUTINE CAPTAINS-QUARTERS-F>
<OBJECT POETRY-APPRECIATION-CHAIR (LOC CAPTAINS-QUARTERS) (DESC
"poetry appreciation chair") (SYNONYM CHAIR CHAIRS SEAT) (ADJECTIVE POETRY
APPRECIAT LARGE MENACING) (FLAGS VEHBIT OPENBIT SEARCHBIT SURFACEBIT CONTBIT) (
ACTION POETRY-APPRECIATION-CHAIR-F)>
<DEFINE-ROUTINE POETRY-APPRECIATION-CHAIR-F>
<OBJECT VOGON-CAPTAIN (LOC CAPTAINS-QUARTERS) (DESC "Vogon Captain") (LDESC
"The Captain is indescribably hideous, indescribably blubbery,
and indescribably mid-to-dark green. He is holding samples of his
favourite poetry.") (SYNONYM CAPTAIN VOGONS) (ADJECTIVE VOGON) (FLAGS ACTORBIT)
(ACTION VOGON-CAPTAIN-F)>
<DEFINE-ROUTINE VOGON-CAPTAIN-F>
<GLOBAL CAPTAIN-COUNTER 0>
<DEFINE-ROUTINE I-CAPTAIN>
<GLOBAL LINE-A "\"Fripping lyshus wimbgunts, awhilst moongrovenly kormzibs.\"">
<GLOBAL LINE-B "\"Gashee morphousite, thou expungiest quoopisk!\"">
<GLOBAL LINE-C "\"Bleem miserable venchit! Bleem forever mestinglish asunder frapt.\""
>
<GLOBAL LINE-NUMBER 0>
<GLOBAL WORD-NUMBER 0>
<DEFINE-ROUTINE GUARDS-TO-AIRLOCK>
<OBJECT POETRY (LOC CAPTAINS-QUARTERS) (DESC "Vogon poetry") (SYNONYM POETRY
POEM SAMPLE VERSE) (ADJECTIVE VOGON FIRST SECOND) (FLAGS NDESCBIT NARTICLEBIT
DARKBIT) (ACTION POETRY-F)>
<GLOBAL POEM-ENJOYED <>>
<GLOBAL AIRLOCK-COUNTER 0>
<DEFINE-ROUTINE POETRY-F>
<OBJECT VOGON-CORRIDOR-DOOR (LOC HOLD) (DESC "corridor door") (SYNONYM DOOR) (
ADJECTIVE CORRIDOR) (FLAGS DOORBIT NDESCBIT) (ACTION VOGON-CORRIDOR-DOOR-F)>
<DEFINE-ROUTINE VOGON-CORRIDOR-DOOR-F>
<OBJECT VOGON-INNER-DOOR (LOC LOCAL-GLOBALS) (DESC "inner door") (SYNONYM DOOR)
(ADJECTIVE INNER AIRLOCK MASSIVE) (FLAGS VOWELBIT NDESCBIT DOORBIT) (ACTION
VOGON-AIRLOCK-DOOR-F)>
<OBJECT VOGON-OUTER-DOOR (LOC LOCAL-GLOBALS) (DESC "outer door") (SYNONYM DOOR)
(ADJECTIVE OUTER AIRLOCK MASSIVE) (FLAGS VOWELBIT NDESCBIT DOORBIT) (ACTION
VOGON-AIRLOCK-DOOR-F)>
<DEFINE-ROUTINE VOGON-AIRLOCK-DOOR-F>
<OBJECT AIRLOCK-OBJECT (LOC LOCAL-GLOBALS) (DESC "airlock") (SYNONYM AIRLOCK) (
FLAGS VOWELBIT) (ACTION AIRLOCK-OBJECT-F)>
<DEFINE-ROUTINE AIRLOCK-OBJECT-F>
<OBJECT EQUATIONS (LOC LOCAL-GLOBALS) (DESC "it") (SYNONYM EQUATION EQUATIONS
NUMBER PENCIL) (FLAGS NDESCBIT NARTICLEBIT) (ACTION UNIMPORTANT-THING-F)>
<ROOM AIRLOCK (LOC ROOMS) (SYNONYM BETELGEUS) (DESC "Airlock") (LDESC
"This airlock has massive doors to port and starboard.") (WEST TO HOLD IF
VOGON-INNER-DOOR IS OPEN) (EAST TO HOLD IF VOGON-OUTER-DOOR IS OPEN) (FLAGS
RLANDBIT ONBIT) (GLOBAL VOGON-INNER-DOOR VOGON-OUTER-DOOR AIRLOCK-OBJECT FLEET
EQUATIONS) (ACTION AIRLOCK-F)>
<DEFINE-ROUTINE AIRLOCK-F>

713
vogon.zap Normal file
View File

@ -0,0 +1,713 @@
.FUNCT MINERAL-WATER-F
EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?CCL3
PRINTR "Bad idea. Even Santraginus Five seawater is illegal on most planets. (You can imagine what kind of beach communities they have.)"
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL7
ICALL PERFORM,V?EXAMINE,PRSO
RTRUE
?CCL7: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL9
PRINTR "This is one of those clever new always-open always-closed bottles."
?CCL9: EQUAL? PRSA,V?THROW,V?POUR \FALSE
CALL1 LIQUID-SPILL
RSTACK
.FUNCT HOLD-F,RARG
EQUAL? RARG,M-END \?CCL3
FSET? HOLD,NDESCBIT /?CCL3
FSET HOLD,NDESCBIT
FSET PEANUTS,TAKEBIT
FCLEAR PEANUTS,NDESCBIT
FCLEAR PEANUTS,TRYTAKEBIT
FCLEAR TOWEL,TRYTAKEBIT
MOVE PEANUTS,PROTAGONIST
MOVE FORD,HERE
MOVE MINERAL-WATER,FORD
SET 'GROGGY,TRUE-VALUE
CALL QUEUE,I-GROGGY,3
PUT STACK,0,1
CALL QUEUE,I-FORD,6
PUT STACK,0,1
CALL QUEUE,I-ANNOUNCEMENT,18
PUT STACK,0,1
CALL QUEUE,I-GUARDS,36
PUT STACK,0,1
RANDOM 6 >LINE-NUMBER
RANDOM 3 >WORD-NUMBER
ADD SCORE,8 >SCORE
SET 'P-IT-OBJECT,PEANUTS
CRLF
PRINTI "Ford removes the bottle of "
PRINTD MINERAL-WATER
PRINTR " which he's been waving under your nose. He tells you that you are aboard a Vogon spaceship, and gives you some peanuts."
?CCL3: EQUAL? RARG,M-END \?CCL9
FSET? HOLD,REVISITBIT \?CCL9
SET 'DREAMING,TRUE-VALUE
CRLF
ICALL2 JIGS-UP,STR?91
RTRUE
?CCL9: EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a squalid room filled with grubby mattresses, unwashed cups, and unidentifiable bits of smelly alien underwear. A door lies to port, and an airlock lies to starboard."
ZERO? GOWN-HUNG /?CND16
PRINTI " Your gown is hanging from a hook"
FSET? TOWEL,SURFACEBIT /?CND16
PRINTC 46
?CND16: FSET? TOWEL,SURFACEBIT \?CND24
ZERO? GOWN-HUNG /?PRG31
PRINTI " and a "
JUMP ?PRG33
?PRG31: PRINTI " A "
?PRG33: PRINTI "towel is draped over a drain on the floor."
?CND24: ZERO? PANEL-BLOCKER /?CND35
EQUAL? PANEL-BLOCKER,SATCHEL /?CND35
PRINTI " Resting in front of a "
PRINTD ROBOT-PANEL
PRINTI " at the base of one wall is"
ICALL2 ARTICLE,PANEL-BLOCKER
PRINTR "."
?CND35: CRLF
RTRUE
.FUNCT I-GROGGY
CALL QUEUE,I-GROGGY,-1
PUT STACK,0,1
INC 'GROGGY-COUNTER
ZERO? GROGGY \?CND1
CALL2 INT,I-GROGGY
PUT STACK,0,0
SET 'GROGGY-COUNTER,0
RFALSE
?CND1: CRLF
EQUAL? GROGGY-COUNTER,1,2 \?CCL5
PRINTI "You begin to feel "
EQUAL? GROGGY-COUNTER,2 \?PRG12
PRINTI "in"
?PRG12: PRINTR "distinctly groggy."
?CCL5: EQUAL? GROGGY-COUNTER,3 \?PRG18
PRINTR "You begin to feel very indistinct."
?PRG18: PRINTI "Your serious allergic reaction to protein loss from"
PRINT BEAM
PRINTI "s becomes a cause celebre amongst various holistic pressure groups in the Galaxy and leads to a total ban on dematerialisation. Within fifty years, space travel is replaced by a keen interest in old furniture restoration and market gardening. In this new, quieter Galaxy, the art of telepathy flourishes as never before, creating a new universal harmony which brings all life together, converts all matter into thought and brings about the rebirth of the entire Universe on a higher and better plane of existence.
However, none of this affects you, because you are dead."
CRLF
CALL1 FINISH
RSTACK
.FUNCT DISPENSER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "The dispenser is tall, has a button at around eye-level, and says ""Babel Fish"" in large letters. Anything dispensed would probably come out the slot at around knee-level."
ICALL1 FINE-PRODUCT
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?PUT-IN-FRONT \?CCL7
EQUAL? PRSO,EARS,HEAD \?CCL7
SET 'LYING-DOWN,TRUE-VALUE
PRINTI "You are now lying down with your ear near the "
PRINTD DISPENSER
PRINTR " slot."
?CCL7: EQUAL? PRSA,V?LIE-DOWN \FALSE
ZERO? IN-FRONT-FLAG /FALSE
ICALL PERFORM,V?PUT-IN-FRONT,HEAD,DISPENSER
RTRUE
.FUNCT DISPENSER-BUTTON-F
EQUAL? PRSA,V?PUSH \FALSE
ZERO? LYING-DOWN /?CCL6
PRINTR "You can't reach it from down here."
?CCL6: ZERO? FISH-COUNTER \?CND4
PRINTR "Click."
?CND4: DEC 'FISH-COUNTER
PRINTI "A single "
PRINTD BABEL-FISH
PRINTI " shoots out of the slot. It sails across the room and "
ZERO? GOWN-HUNG \?PRG19
PRINTI "through a "
PRINTD FISH-HOLE
PRINTI " in the wall, just under a "
PRINTD HOOK
PRINTR "."
?PRG19: PRINTI "hits the dressing gown. The fish slides down the "
ZERO? SLEEVE-TIED /?PRG26
PRINTI "inside (nice try, though)"
JUMP ?PRG28
?PRG26: PRINTI "sleeve"
?PRG28: PRINTI " of the gown and falls to the floor, "
FSET? TOWEL,SURFACEBIT /?PRG35
PRINTR "vanishing through the grating of a hitherto unnoticed drain."
?PRG35: PRINTI "landing on the towel. A split second later, a tiny cleaning robot whizzes across the floor, grabs the fish, and continues its breakneck pace toward a "
PRINTD ROBOT-PANEL
PRINTI " at the base of the wall. "
ZERO? PANEL-BLOCKER \?CCL39
PRINTR "The robot zips through the panel, and is gone."
?CCL39: EQUAL? PANEL-BLOCKER,SATCHEL /?PRG48
PRINTI "The robot zips around"
ICALL2 ARTICLE,PANEL-BLOCKER
PRINTR ", through the panel, and is gone."
?PRG48: PRINTI "The robot plows into the satchel, sending the "
PRINTD BABEL-FISH
EQUAL? ITEM-ON-SATCHEL,MAIL /?PRG56
ZERO? ITEM-ON-SATCHEL /?PRG56
PRINTI " and"
ICALL ARTICLE,ITEM-ON-SATCHEL,TRUE-VALUE
?PRG56: PRINTI " flying through the air in a graceful arc"
EQUAL? ITEM-ON-SATCHEL,MAIL /?CCL60
PRINTI ". "
PRINT ROBOT-FLIES-IN
PRINTI "catches the "
PRINTD BABEL-FISH
PRINTC 32
ZERO? ITEM-ON-SATCHEL /?PRG68
MOVE ITEM-ON-SATCHEL,LOCAL-GLOBALS
PRINTI "and also manages to catch"
ICALL ARTICLE,ITEM-ON-SATCHEL,TRUE-VALUE
SET 'ITEM-ON-SATCHEL,FALSE-VALUE
JUMP ?PRG70
?PRG68: PRINTI "(which is all the flying junk it can find)"
?PRG70: PRINTR ", and exits."
?CCL60: EQUAL? ITEM-ON-SATCHEL,MAIL \FALSE
MOVE MAIL,LOCAL-GLOBALS
ADD SCORE,12 >SCORE
MOVE BABEL-FISH,PROTAGONIST
CALL2 RUNNING?,I-ANNOUNCEMENT
ZERO? STACK /?CCL76
CALL QUEUE,I-GUARDS,4
PUT STACK,0,1
JUMP ?CND74
?CCL76: FSET? CAPTAINS-QUARTERS,TOUCHBIT /?CND74
CALL QUEUE,I-ANNOUNCEMENT,4
PUT STACK,0,1
CALL QUEUE,I-GUARDS,7
PUT STACK,0,1
?CND74: SET 'FISH-COUNTER,0
SET 'ITEM-ON-SATCHEL,FALSE-VALUE
PRINTI " surrounded by a cloud of junk mail. Another robot flies in and begins madly collecting the cluttered plume of mail. The "
PRINTD BABEL-FISH
PRINTR " continues its flight, landing with a loud ""squish"" in your ear."
.FUNCT FISH-HOLE-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
PRINTI "You see only "
PRINTD DARK-OBJECT
PRINTR "."
?CCL3: EQUAL? PRSA,V?PUT \?CCL7
EQUAL? PRSI,FISH-HOLE \?CCL7
FSET? PRSO,INTEGRALBIT \?CCL12
CALL1 PART-OF
RSTACK
?CCL12: GETP PRSO,P?SIZE
LESS? STACK,5 \?PRG17
MOVE PRSO,LOCAL-GLOBALS
PRINTR "It falls through the hole and vanishes."
?PRG17: PRINTR "It doesn't fit through the hole."
?CCL7: EQUAL? PRSA,V?PUT-IN-FRONT,V?PUT-ON \?CCL20
EQUAL? PRSI,FISH-HOLE \?CCL20
EQUAL? PRSO,ME,EARS,HANDS /?CCL24
EQUAL? PRSO,HEAD \?CND23
?CCL24: ICALL PERFORM,V?STAND-BEFORE,FISH-HOLE
RTRUE
?CND23: ICALL PERFORM,V?HANG,PRSO,HOOK
RTRUE
?CCL20: EQUAL? PRSA,V?SPUT-ON,V?BLOCK-WITH \?CCL28
EQUAL? PRSO,FISH-HOLE \?CCL28
ICALL PERFORM,V?HANG,PRSI,HOOK
RTRUE
?CCL28: EQUAL? PRSA,V?BLOCK \?CCL32
ICALL PERFORM,V?STAND-BEFORE,FISH-HOLE
RTRUE
?CCL32: EQUAL? PRSA,V?LIE-DOWN \FALSE
ZERO? IN-FRONT-FLAG /FALSE
ICALL PERFORM,V?STAND-BEFORE,FISH-HOLE
RTRUE
.FUNCT HOOK-F
EQUAL? PRSA,V?EXAMINE \?CCL3
ZERO? GOWN-HUNG /?PRG9
PRINTR "Your gown is hanging from it."
?PRG9: PRINTR "The hook is attached to the wall, inches above a tiny hole."
?CCL3: EQUAL? PRSA,V?PUT-ON,V?HANG \FALSE
ZERO? LYING-DOWN /?CCL15
PRINT WHILE-LYING
CRLF
RTRUE
?CCL15: EQUAL? PRSO,GOWN \?CCL19
FSET? GOWN,WORNBIT \?CND20
ICALL1 IDROP
RTRUE
?CND20: SET 'GOWN-HUNG,TRUE-VALUE
MOVE GOWN,HERE
FSET GOWN,NDESCBIT
FSET GOWN,TRYTAKEBIT
FCLEAR GOWN,OPENBIT
PRINTR "The gown is now hanging from the hook, covering a tiny hole."
?CCL19: EQUAL? PRSO,HEAD,EARS,HANDS \?CCL25
ICALL PERFORM,V?STAND-BEFORE,HOOK
RTRUE
?CCL25: FSET? PRSO,TAKEBIT \?CCL27
FSET? PRSO,TRYTAKEBIT \?CCL30
PRINT NOT-HOLDING
ICALL ARTICLE,PRSO,TRUE-VALUE
PRINTR "."
?CCL30: MOVE PRSO,HERE
PRINTR "It slips off the hook."
?CCL27: CALL1 V-COUNT
RSTACK
.FUNCT DRAIN-F
EQUAL? PRSA,V?PUT-ON \?CCL3
FSET? TOWEL,SURFACEBIT \?CCL6
PRINTR "The drain is already covered by the towel."
?CCL6: ZERO? LYING-DOWN /?CCL10
PRINT WHILE-LYING
CRLF
RTRUE
?CCL10: EQUAL? PRSO,TOWEL \?PRG15
FSET TOWEL,CONTBIT
FSET TOWEL,SURFACEBIT
FSET TOWEL,OPENBIT
FSET TOWEL,NDESCBIT
FSET TOWEL,TRYTAKEBIT
MOVE TOWEL,HERE
ICALL PERFORM,V?EXAMINE,DRAIN
RTRUE
?PRG15: PRINTI "The drain is too large to be covered by"
ICALL ARTICLE,PRSO,TRUE-VALUE
PRINTR "."
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL20
ICALL PERFORM,V?LOOK-INSIDE,FISH-HOLE
RTRUE
?CCL20: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? TOWEL,SURFACEBIT \FALSE
PRINTR "The towel completely covers the drain."
.FUNCT ROBOT-PANEL-F
EQUAL? PRSA,V?CLOSE,V?EXAMINE \?CCL3
PRINTR "The panel, only a few inches high, is currently closed."
?CCL3: EQUAL? PRSA,V?OPEN \?CCL7
PRINT BUDGE
CRLF
RTRUE
?CCL7: EQUAL? PRSA,V?BLOCK \?CCL11
SET 'AWAITING-REPLY,6
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINTI "With "
PRINTD HANDS
PRINTR "s? By force of will?"
?CCL11: EQUAL? PRSA,V?LIE-DOWN \?CCL15
ZERO? IN-FRONT-FLAG /?CCL15
ICALL PERFORM,V?STAND-BEFORE,ROBOT-PANEL
RTRUE
?CCL15: EQUAL? PRSA,V?PUT-ON,V?PUT-IN-FRONT,V?PUT-IN-FRONT \?CCL19
EQUAL? PRSI,ROBOT-PANEL \?CCL19
ICALL PERFORM,V?BLOCK-WITH,ROBOT-PANEL,PRSO
RTRUE
?CCL19: EQUAL? PRSA,V?SPUT-ON,V?BLOCK-WITH \FALSE
EQUAL? PRSO,ROBOT-PANEL \FALSE
EQUAL? PRSI,EARS,HANDS,HEAD /?CTR27
EQUAL? PRSI,EYES \?CCL28
?CTR27: CALL1 V-COUNT
RSTACK
?CCL28: CALL2 HELD?,PRSI
ZERO? STACK \?CCL32
PRINT NOT-HOLDING
ICALL ARTICLE,PRSI,TRUE-VALUE
PRINTR "."
?CCL32: ZERO? PANEL-BLOCKER /?CCL38
PRINTI "But"
ICALL ARTICLE,PANEL-BLOCKER,TRUE-VALUE
PRINTI " is already in front of the "
PRINTD ROBOT-PANEL
PRINTR "."
?CCL38: ZERO? LYING-DOWN /?CCL44
PRINT WHILE-LYING
CRLF
RTRUE
?CCL44: MOVE PRSI,HERE
SET 'PANEL-BLOCKER,PRSI
FSET PRSI,TRYTAKEBIT
PRINTI "Okay,"
EQUAL? PRSI,SATCHEL \?CCL51
PRINTI " the satchel is lying on its side"
JUMP ?PRG56
?CCL51: FSET PRSI,NDESCBIT
ICALL ARTICLE,PRSI,TRUE-VALUE
PRINTI " is sitting"
?PRG56: PRINTI " in front of the "
PRINTD ROBOT-PANEL
PRINTR "."
.FUNCT BABEL-FISH-F
EQUAL? PRSA,V?REMOVE,V?TAKE \FALSE
PRINTI "That would be foolish. Having a "
PRINTD BABEL-FISH
PRINTR " in your ear is terribly useful."
.FUNCT GLASS-CASE-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "The "
PRINTD GLASS-CASE
PRINTI " is "
FSET? GLASS-CASE,OPENBIT \?PRG11
PRINTI "open"
JUMP ?PRG13
?PRG11: PRINTI "closed"
?PRG13: PRINTI ". Attached to it are a "
PRINTD KEYBOARD
PRINTR " and a switch."
?CCL3: EQUAL? PRSA,V?OPEN \?CCL16
FSET? GLASS-CASE,OPENBIT /?CCL16
PRINT BUDGE
CRLF
RTRUE
?CCL16: EQUAL? PRSA,V?MUNG \FALSE
PRINTI "The hold of the Vogon ship is virtually undamaged by the explosion of the "
PRINTD GLASS-CASE
ICALL2 JIGS-UP,STR?94
RTRUE
.FUNCT GLASS-CASE-OPENS
FSET? GLASS-CASE,OPENBIT \?CCL3
PRINTI "Nothing happens."
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL3: FSET GLASS-CASE,OPENBIT
PRINTI "The "
PRINTD GLASS-CASE
PRINTI " opens."
CRLF
FCLEAR PLOTTER,TRYTAKEBIT
ZERO? GLASS-CASE-SCORE \?CND8
SET 'GLASS-CASE-SCORE,TRUE-VALUE
ADD SCORE,25 >SCORE
?CND8: CALL1 FUCKING-CLEAR
RSTACK
.FUNCT CASE-SWITCH-F
EQUAL? PRSA,V?PUSH,V?TURN,V?LAMP-ON /?CCL3
EQUAL? PRSA,V?THROW,V?MOVE \FALSE
?CCL3: CALL2 HELD?,BABEL-FISH
ZERO? STACK /?PRG25
PRINTI "A recording plays: ""To open the case, type in the "
EQUAL? WORD-NUMBER,1 \?CCL13
PRINTI "first"
JUMP ?PRG23
?CCL13: EQUAL? WORD-NUMBER,2 \?CCL17
PRINTI "second"
JUMP ?PRG23
?CCL17: EQUAL? WORD-NUMBER,3 \?PRG23
PRINTI "third"
?PRG23: PRINTR " word from the second verse of the Captain's current favourite poem. WARNING: An incorrect input will cause the case to explode."""
?PRG25: PRINTI "A recording plays: ""A"
ICALL2 PRODUCE-GIBBERISH,5
CRLF
RTRUE
.FUNCT PRODUCE-GIBBERISH,N,GIBBERISH-COUNTER,SUPER-COUNTER
SET 'SUPER-COUNTER,0
?PRG1: INC 'SUPER-COUNTER
SET 'GIBBERISH-COUNTER,0
?PRG3: INC 'GIBBERISH-COUNTER
CALL2 PICK-ONE,GIBBERISH
PRINT STACK
EQUAL? GIBBERISH-COUNTER,10 \?PRG3
EQUAL? SUPER-COUNTER,N /?REP4
PRINTI " o"
?REP4: EQUAL? SUPER-COUNTER,N \?PRG1
PRINTI "."""
RTRUE
.FUNCT I-ANNOUNCEMENT
CALL QUEUE,I-ANNOUNCEMENT,-1
PUT STACK,0,1
CRLF
PRINTI "An announcement is coming over the ship's intercom. """
CALL HELD?,BABEL-FISH,PROTAGONIST
ZERO? STACK /?PRG8
PRINTR "This is the Captain. My instruments show that we've picked up a couple of hitchhikers. I hate freeloaders, and when my guards find you I'll have you thrown into space. On second thought, maybe I'll read you some of my poetry first. Repeating..."""
?PRG8: PRINTC 69
ICALL2 PRODUCE-GIBBERISH,10
CRLF
RTRUE
.FUNCT I-GUARDS
EQUAL? HERE,HOLD \?CCL3
CALL2 INT,I-ANNOUNCEMENT
PUT STACK,0,0
CRLF
PRINTI "Guards burst in and grab you and Ford, who comes slowly awake. They drag you down the corridor to a large cabin, where they strap you into large, menacing chairs..."
CRLF
CRLF
SET 'HERE,CAPTAINS-QUARTERS
MOVE NAME,HERE
SET 'LYING-DOWN,FALSE-VALUE
CALL QUEUE,I-CAPTAIN,2
PUT STACK,0,1
SET 'FORD-SLEEPING,FALSE-VALUE
FSET FORD,NDESCBIT
MOVE PROTAGONIST,POETRY-APPRECIATION-CHAIR
SET 'OHERE,FALSE-VALUE
ICALL1 V-LOOK
MOVE FORD,HERE
MOVE GUARDS,HERE
RTRUE
?CCL3: IN? RIFLES,LOCAL-GLOBALS /FALSE
CRLF
PRINT GUARDS-REALIZE
PRINTI "They"
ICALL1 GUARD-DEATH
RTRUE
.FUNCT CAPTAINS-QUARTERS-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is the cabin of the "
PRINTD VOGON-CAPTAIN
PRINTI ". You and Ford are strapped into "
PRINTD POETRY-APPRECIATION-CHAIR
PRINTR "s."
.FUNCT POETRY-APPRECIATION-CHAIR-F,RARG
ZERO? RARG \FALSE
EQUAL? PRSA,V?LEAP,V?WALK,V?DISEMBARK /?CTR4
EQUAL? PRSA,V?WALK-AROUND \?CCL5
?CTR4: SET 'AWAITING-REPLY,7
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINTR "You're strapped in, remember?"
?CCL5: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
EQUAL? PRSO,POETRY-APPRECIATION-CHAIR \FALSE
CALL1 TELL-ME-HOW
RSTACK
.FUNCT VOGON-CAPTAIN-F
EQUAL? PRSA,V?THANK,V?HELLO,V?TELL /?PRG8
EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?CCL3
EQUAL? VOGON-CAPTAIN,PRSO \?CCL3
?PRG8: PRINTI "One of the guards lightly bashes your skull with the butt of his weapon"
CALL2 HELD?,BABEL-FISH
ZERO? STACK /?PRG15
PRINTI ". ""This is a poetry appreciation session, prisoner. No talking!"""
CRLF
JUMP ?CND10
?PRG15: PRINTI " and says, ""A"
ICALL2 PRODUCE-GIBBERISH,2
CRLF
?CND10: CALL1 FUCKING-CLEAR
RSTACK
?CCL3: IN? POETRY,HERE \FALSE
EQUAL? PRSA,V?BLOCK \FALSE
ICALL PERFORM,V?LISTEN,POETRY
RTRUE
.FUNCT I-CAPTAIN
CALL QUEUE,I-CAPTAIN,-1
PUT STACK,0,1
INC 'CAPTAIN-COUNTER
CRLF
EQUAL? CAPTAIN-COUNTER,1 \?CND1
PRINTI """If he's going to read us his poetry,"" mutters Ford, sweating profusely, ""just pray he softens us up with some cudgels first..."""
CRLF
CRLF
?CND1: CALL HELD?,BABEL-FISH,PROTAGONIST
ZERO? STACK \?CCL7
PRINTI "The "
PRINTD VOGON-CAPTAIN
PRINTI " says, ""O"
ICALL2 PRODUCE-GIBBERISH,2
EQUAL? CAPTAIN-COUNTER,6 \?CCL12
CALL1 GUARDS-TO-AIRLOCK
RSTACK
?CCL12: CRLF
RTRUE
?CCL7: EQUAL? CAPTAIN-COUNTER,1 \?CCL14
PRINTI """Hello, hitchhikers!"" begins the "
PRINTD VOGON-CAPTAIN
PRINTR ". ""I've decided to read you a verse of my poetry!"""
?CCL14: EQUAL? CAPTAIN-COUNTER,2 \?CCL18
PRINTR """Oh freddled gruntbuggly, thy nacturations are to me!"""
?CCL18: EQUAL? CAPTAIN-COUNTER,3 \?CCL22
PRINTR """As plurdled gabbleblotchits on a lurgid bee."""
?CCL22: EQUAL? CAPTAIN-COUNTER,4 \?CCL26
PRINTR """Groop I implore thee, my foonting turlingdromes."""
?CCL26: EQUAL? CAPTAIN-COUNTER,5 \?CCL30
PRINTR """And hooptiously drangle me with crinkly bindlewurdles, or I will rend thee in the gobberwarts with my blurglecruncheon, see if I don't!"""
?CCL30: EQUAL? CAPTAIN-COUNTER,6 \?CCL34
ZERO? POEM-ENJOYED /?PRG40
PRINTR """You looked like you enjoyed my poem. I think...yes, I think I'll read the NEXT verse, also!"""
?PRG40: PRINTI """You didn't seem to enjoy my poem at all! Guards, toss them out the airlock!"""
CALL1 GUARDS-TO-AIRLOCK
RSTACK
?CCL34: EQUAL? CAPTAIN-COUNTER,7 \?CCL43
EQUAL? LINE-NUMBER,1,2 \?CCL46
PRINT LINE-A
CRLF
RTRUE
?CCL46: EQUAL? LINE-NUMBER,3,4 \?PRG53
PRINT LINE-B
CRLF
RTRUE
?PRG53: PRINT LINE-C
CRLF
RTRUE
?CCL43: EQUAL? CAPTAIN-COUNTER,8 \?CCL56
EQUAL? LINE-NUMBER,3,5 \?CCL59
PRINT LINE-A
CRLF
RTRUE
?CCL59: EQUAL? LINE-NUMBER,1,6 \?PRG66
PRINT LINE-B
CRLF
RTRUE
?PRG66: PRINT LINE-C
CRLF
RTRUE
?CCL56: EQUAL? CAPTAIN-COUNTER,9 \?CCL69
EQUAL? LINE-NUMBER,4,6 \?CCL72
PRINT LINE-A
CRLF
RTRUE
?CCL72: EQUAL? LINE-NUMBER,2,5 \?PRG79
PRINT LINE-B
CRLF
RTRUE
?PRG79: PRINT LINE-C
CRLF
RTRUE
?CCL69: EQUAL? CAPTAIN-COUNTER,10 \?CCL82
PRINTR """Gerond withoutitude form into formless bloit, why not then? Moose."""
?CCL82: EQUAL? CAPTAIN-COUNTER,11 \FALSE
PRINTI """Since you have somehow managed to survive two verses of my poetry, I have no choice but to space you. Guards!"""
CALL1 GUARDS-TO-AIRLOCK
RSTACK
.FUNCT GUARDS-TO-AIRLOCK
CALL2 INT,I-CAPTAIN
PUT STACK,0,0
PRINTI " A guard grabs you and Ford, and drags you toward the hold. Ford whispers, ""Don't worry, I'll think of something!"""
CRLF
CRLF
FCLEAR HOLD,TOUCHBIT
ICALL2 GOTO,HOLD
FCLEAR FORD,NDESCBIT
MOVE GUARDS,HERE
MOVE FORD,HERE
CALL QUEUE,I-FORD,1
PUT STACK,0,1
RTRUE
.FUNCT POETRY-F
EQUAL? PRSA,V?LISTEN,V?ENJOY \?CCL3
LESS? CAPTAIN-COUNTER,2 \?CCL3
PRINTI "The "
PRINTD VOGON-CAPTAIN
PRINTR " hasn't begun yet!"
?CCL3: EQUAL? PRSA,V?ENJOY \?CCL9
CALL2 HELD?,BABEL-FISH
ZERO? STACK \?CCL12
PRINTR "You can't even understand it, let alone enjoy it!"
?CCL12: ZERO? POEM-ENJOYED /?CCL16
SET 'AWAITING-REPLY,8
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINTR "Hey, let's not overdo it, okay?"
?CCL16: SET 'POEM-ENJOYED,TRUE-VALUE
ADD SCORE,15 >SCORE
PRINTI "You realise that, although the "
PRINTD POETRY
PRINTR " is indeed astoundingly bad, worse things happen at sea, and in fact, at school. With an effort for which Hercules himself would have patted you on the back, you grit your teeth and enjoy the stuff."
?CCL9: EQUAL? PRSA,V?LISTEN \?CCL22
PRINTR "You have no choice. Why not relax and enjoy it?"
?CCL22: IN? POETRY,HERE \?CCL26
EQUAL? PRSA,V?BLOCK \?CCL26
ICALL PERFORM,V?LISTEN,POETRY
RTRUE
?CCL26: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
PRINTR "You can't see it from here."
.FUNCT VOGON-CORRIDOR-DOOR-F
EQUAL? PRSA,V?THROUGH,V?UNLOCK,V?OPEN \FALSE
CALL2 DO-WALK,P?WEST
RSTACK
.FUNCT VOGON-AIRLOCK-DOOR-F
EQUAL? PRSA,V?THROUGH,V?OPEN \FALSE
PRINT BUDGE
CRLF
RTRUE
.FUNCT AIRLOCK-OBJECT-F
EQUAL? PRSA,V?WALK-TO,V?THROUGH \?CCL3
EQUAL? HERE,AIRLOCK \?CCL6
PRINT LOOK-AROUND
CRLF
RTRUE
?CCL6: EQUAL? HERE,HOLD \FALSE
CALL2 DO-WALK,P?WEST
RSTACK
?CCL3: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \FALSE
EQUAL? HERE,AIRLOCK \?PRG16
CALL2 DO-WALK,P?EAST
RSTACK
?PRG16: PRINT LOOK-AROUND
CRLF
RTRUE
.FUNCT AIRLOCK-F,RARG
EQUAL? RARG,M-END \FALSE
INC 'AIRLOCK-COUNTER
CRLF
EQUAL? AIRLOCK-COUNTER,1 \?CCL6
PRINTI "Ford points at the "
PRINTD VOGON-OUTER-DOOR
PRINTR ". ""In about two minutes, it will open and we'll be ejected into the vacuum of space. But don't panic, I'll think of something."""
?CCL6: EQUAL? AIRLOCK-COUNTER,2 \?CCL10
PRINTR "Ford is mumbling to himself."
?CCL10: EQUAL? AIRLOCK-COUNTER,3 \?CCL14
PRINTR "Ford produces a pencil and begins scribbling equations on the wall."
?CCL14: EQUAL? AIRLOCK-COUNTER,4 \FALSE
PRINTI "Ford's eyes light up. ""Do you still have the Electronic Sub-Etha Auto Hitching Thu..."" At that moment, the airlock door opens, and you and Ford are blown out into space.
"
CALL2 HELD?,GUIDE
ZERO? STACK /?PRG25
PRINTI "Your elbow must have struck some key on "
PRINTD GUIDE
PRINTI " because it begins droning out an entry, coincidentally enough the entry on SPACE. """
PRINT SPACE-TEXT
PRINTI """ (Footnote 9)"
CRLF
CRLF
?PRG25: PRINTI "Precisely twenty-nine seconds later, you and Ford are scooped up by a passing ship. Gasping for air, you pass out..."
CRLF
CRLF
SET 'HEART-PROB,100
CALL2 GOTO,DARK
RSTACK
.ENDI

900
vogon.zil Normal file
View File

@ -0,0 +1,900 @@
"VOGON for
THE HITCHHIKER'S GUIDE TO THE GALAXY
(c) Copyright 1984 Infocom, Inc. All Rights Reserved."
<OBJECT MINERAL-WATER
(LOC SATCHEL)
(DESC "Santraginean Mineral Water")
(LDESC "There is a bottle of mineral water here.")
(SYNONYM BOTTLE WATER)
(ADJECTIVE SANTRAGIN MINERAL)
(FLAGS NARTICLEBIT DRINKBIT TAKEBIT)
(GENERIC MINERAL-WATER)
(ACTION MINERAL-WATER-F)>
<ROUTINE MINERAL-WATER-F ()
<COND (<VERB? DRINK DRINK-FROM>
<TELL
"Bad idea. Even Santraginus Five seawater is illegal on most planets. (You can
imagine what kind of beach communities they have.)" CR>)
(<VERB? LOOK-INSIDE>
<PERFORM ,V?EXAMINE ,PRSO>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL
"This is one of those clever new always-open always-closed bottles." CR>)
(<VERB? POUR THROW>
<LIQUID-SPILL>)>>
<ROOM HOLD
(LOC ROOMS)
(SYNONYM PROTEIN)
(DESC "Vogon Hold")
(WEST SORRY "The door to the corridor is locked (from the outside).")
(EAST TO AIRLOCK IF VOGON-INNER-DOOR IS OPEN) ;"shouldn't happen"
(FLAGS RLANDBIT ONBIT)
(GLOBAL VOGON-INNER-DOOR AIRLOCK-OBJECT FLEET HOLD-FURNISHINGS WEAPON)
(ACTION HOLD-F)>
<OBJECT WEAPON
(LOC LOCAL-GLOBALS)
(SYNONYM WEAPON WEAPONS)
(DESC "weapon")
(ACTION WEAPON-PSEUDO)>
<ROUTINE HOLD-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-END>
<NOT <FSET? ,HOLD ,NDESCBIT>>>
<FSET ,HOLD ,NDESCBIT>
<FSET ,PEANUTS ,TAKEBIT>
<FCLEAR ,PEANUTS ,NDESCBIT>
<FCLEAR ,PEANUTS ,TRYTAKEBIT>
<FCLEAR ,TOWEL ,TRYTAKEBIT>
<MOVE ,PEANUTS ,PROTAGONIST>
<MOVE ,FORD ,HERE>
<MOVE ,MINERAL-WATER ,FORD>
<SETG GROGGY T>
<ENABLE <QUEUE I-GROGGY 3>>
<ENABLE <QUEUE I-FORD 6>>
<ENABLE <QUEUE I-ANNOUNCEMENT 18>>
<ENABLE <QUEUE I-GUARDS 36>>
<SETG LINE-NUMBER <RANDOM 6>>
<SETG WORD-NUMBER <RANDOM 3>>
<SETG SCORE <+ ,SCORE 8>>
<SETG P-IT-OBJECT ,PEANUTS>
<TELL CR
"Ford removes the bottle of " D ,MINERAL-WATER " which he's been waving under
your nose. He tells you that you are aboard a Vogon spaceship, and gives you
some peanuts." CR>)
(<AND <EQUAL? .RARG ,M-END>
<FSET? ,HOLD ,REVISITBIT>>
<SETG DREAMING T>
<CRLF>
<JIGS-UP
"A pair of Vogon guards stand nearby, waving acrid-smelling stun guns an inch
away from your face. Simultaneously, they fire.">
<RTRUE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a squalid room filled with grubby mattresses, unwashed cups, and
unidentifiable bits of smelly alien underwear. A door lies to port, and an
airlock lies to starboard.">
<COND (,GOWN-HUNG
<TELL " Your gown is hanging from a hook">
<COND (<NOT <FSET? ,TOWEL ,SURFACEBIT>>
<TELL ".">)>)>
<COND (<FSET? ,TOWEL ,SURFACEBIT>
<COND (,GOWN-HUNG
<TELL " and a ">)
(T
<TELL " A ">)>
<TELL "towel is draped over a drain on the floor.">)>
<COND (<AND ,PANEL-BLOCKER
<NOT <EQUAL? ,PANEL-BLOCKER ,SATCHEL>>>
<TELL
" Resting in front of a " D ,ROBOT-PANEL " at the base of one wall is">
<ARTICLE ,PANEL-BLOCKER>
<TELL ".">)>
<CRLF>)>>
<OBJECT HOLD-FURNISHINGS
(LOC LOCAL-GLOBALS)
(DESC "it")
(SYNONYM MATTRESS CUPS CUP UNDERWEAR)
(ADJECTIVE GRUBBY UNWASHED UNIDENTIF SMELLY ALIEN)
(FLAGS NDESCBIT NARTICLEBIT)
(ACTION UNIMPORTANT-THING-F)>
<ROUTINE I-GROGGY ()
<ENABLE <QUEUE I-GROGGY -1>>
<SETG GROGGY-COUNTER <+ ,GROGGY-COUNTER 1>>
<COND (<NOT ,GROGGY>
<DISABLE <INT I-GROGGY>>
<SETG GROGGY-COUNTER 0>
<RFALSE>)>
<CRLF>
<COND (<EQUAL? ,GROGGY-COUNTER 1 2>
<TELL "You begin to feel ">
<COND (<EQUAL? ,GROGGY-COUNTER 2>
<TELL "in">)>
<TELL "distinctly groggy." CR>)
(<EQUAL? ,GROGGY-COUNTER 3>
<TELL "You begin to feel very indistinct." CR>)
(T
<TELL
"Your serious allergic reaction to protein loss from" ,BEAM "s becomes a cause
celebre amongst various holistic pressure groups in the Galaxy and leads to a
total ban on dematerialisation. Within fifty years, space travel is replaced by
a keen interest in old furniture restoration and market gardening. In this new,
quieter Galaxy, the art of telepathy flourishes as never before, creating a new
universal harmony which brings all life together, converts all matter into
thought and brings about the rebirth of the entire Universe on a higher and
better plane of existence.|
|
However, none of this affects you, because you are dead." CR>
<FINISH>)>>
<GLOBAL GROGGY-COUNTER 0>
<GLOBAL GOWN-HUNG <>>
<GLOBAL PANEL-BLOCKER <>>
<GLOBAL ITEM-ON-SATCHEL <>>
<GLOBAL FISH-COUNTER 5>
<OBJECT DISPENSER
(LOC HOLD)
(DESC "babel fish dispenser")
(LDESC "Along one wall is a tall dispensing machine.")
(SYNONYM DISPENSER MACHINE SLOT)
(ADJECTIVE DISPENSIN BABEL FISH TALL VENDING)
(ACTION DISPENSER-F)>
<ROUTINE DISPENSER-F ()
<COND (<VERB? EXAMINE>
<TELL
"The dispenser is tall, has a button at around eye-level, and says \"Babel
Fish\" in large letters. Anything dispensed would probably come out the slot
at around knee-level.">
<FINE-PRODUCT>
<CRLF>)
(<AND <VERB? PUT-IN-FRONT>
<PRSO? ,HEAD ,EARS>>
<SETG LYING-DOWN T>
<TELL
"You are now lying down with your ear near the " D ,DISPENSER " slot." CR>)
(<AND <VERB? LIE-DOWN>
,IN-FRONT-FLAG>
<PERFORM ,V?PUT-IN-FRONT ,HEAD ,DISPENSER>
<RTRUE>)>>
<OBJECT DISPENSER-BUTTON
(LOC HOLD)
(DESC "dispenser button")
(SYNONYM BUTTON)
(ADJECTIVE DISPENSER SINGLE BABEL FISH)
(FLAGS NDESCBIT)
(ACTION DISPENSER-BUTTON-F)>
<ROUTINE DISPENSER-BUTTON-F ()
<COND (<VERB? PUSH>
<COND (,LYING-DOWN
<TELL "You can't reach it from down here." CR>
<RTRUE>)
(<EQUAL? ,FISH-COUNTER 0>
<TELL "Click." CR>
<RTRUE>)>
<SETG FISH-COUNTER <- ,FISH-COUNTER 1>>
<TELL
"A single " D ,BABEL-FISH " shoots out of the slot. It sails across the
room and ">
<COND (<NOT ,GOWN-HUNG>
<TELL
"through a " D ,FISH-HOLE " in the wall, just under a " D ,HOOK "." CR>)
(T
<TELL "hits the dressing gown. The fish slides down the ">
<COND (,SLEEVE-TIED
<TELL "inside (nice try, though)">)
(T
<TELL "sleeve">)>
<TELL " of the gown and falls to the floor, ">
<COND (<NOT <FSET? ,TOWEL ,SURFACEBIT>>
<TELL
"vanishing through the grating of a hitherto unnoticed drain." CR>)
(T
<TELL
"landing on the towel. A split second later, a tiny cleaning robot whizzes
across the floor, grabs the fish, and continues its breakneck pace toward
a " D ,ROBOT-PANEL " at the base of the wall. ">
<COND (<NOT ,PANEL-BLOCKER>
<TELL
"The robot zips through the panel, and is gone." CR>)
(<NOT <EQUAL? ,PANEL-BLOCKER ,SATCHEL>>
<TELL "The robot zips around">
<ARTICLE ,PANEL-BLOCKER>
<TELL ", through the panel, and is gone." CR>)
(T
<TELL
"The robot plows into the satchel, sending the " D ,BABEL-FISH>
<COND
(<AND <NOT <EQUAL? ,ITEM-ON-SATCHEL ,MAIL>>
,ITEM-ON-SATCHEL>
<TELL " and">
<ARTICLE ,ITEM-ON-SATCHEL T>)>
<TELL
" flying through the air in a graceful arc">
<COND
(<NOT <EQUAL? ,ITEM-ON-SATCHEL ,MAIL>>
<TELL
". " ,ROBOT-FLIES-IN "catches the " D ,BABEL-FISH " ">
<COND (,ITEM-ON-SATCHEL
<MOVE ,ITEM-ON-SATCHEL ,LOCAL-GLOBALS>
<TELL "and also manages to catch">
<ARTICLE ,ITEM-ON-SATCHEL T>
<SETG ITEM-ON-SATCHEL <>>)
(T
<TELL
"(which is all the flying junk it can find)">)>
<TELL ", and exits." CR>)
(<EQUAL? ,ITEM-ON-SATCHEL ,MAIL>
<MOVE ,MAIL ,LOCAL-GLOBALS>
<SETG SCORE <+ ,SCORE 12>>
<MOVE ,BABEL-FISH ,PROTAGONIST>
<COND (<RUNNING? ,I-ANNOUNCEMENT>
<ENABLE <QUEUE I-GUARDS 4>>)
(<NOT
<FSET? ,CAPTAINS-QUARTERS ,TOUCHBIT>>
<ENABLE <QUEUE I-ANNOUNCEMENT 4>>
<ENABLE <QUEUE I-GUARDS 7>>)>
<SETG FISH-COUNTER 0>
<SETG ITEM-ON-SATCHEL <>>
<TELL
" surrounded by a cloud of junk mail. Another robot flies in and begins madly
collecting the cluttered plume of mail. The " D ,BABEL-FISH " continues its
flight, landing with a loud \"squish\" in your ear." CR>)>)>)>)>)>>
<OBJECT FISH-HOLE
(LOC HOLD)
(DESC "small hole")
(SYNONYM HOLE)
(ADJECTIVE SMALL)
(FLAGS NDESCBIT)
(ACTION FISH-HOLE-F)>
<ROUTINE FISH-HOLE-F ()
<COND (<VERB? LOOK-INSIDE>
<TELL "You see only " D ,DARK-OBJECT "." CR>)
(<AND <VERB? PUT>
<PRSI? ,FISH-HOLE>>
<COND (<FSET? ,PRSO ,INTEGRALBIT>
<PART-OF>)
(<L? <GETP ,PRSO ,P?SIZE> 5>
<MOVE ,PRSO ,LOCAL-GLOBALS>
<TELL "It falls through the hole and vanishes." CR>)
(T
<TELL "It doesn't fit through the hole." CR>)>)
(<AND <VERB? PUT-ON PUT-IN-FRONT>
<PRSI? ,FISH-HOLE>>
<COND (<PRSO? ,HANDS ,EARS ,ME ,HEAD>
<PERFORM ,V?STAND-BEFORE ,FISH-HOLE>
<RTRUE>)>
<PERFORM ,V?HANG ,PRSO ,HOOK>
<RTRUE>)
(<AND <VERB? BLOCK-WITH SPUT-ON>
<PRSO? ,FISH-HOLE>>
<PERFORM ,V?HANG ,PRSI ,HOOK>
<RTRUE>)
(<VERB? BLOCK>
<PERFORM ,V?STAND-BEFORE ,FISH-HOLE>
<RTRUE>)
(<AND <VERB? LIE-DOWN>
,IN-FRONT-FLAG>
<PERFORM ,V?STAND-BEFORE ,FISH-HOLE>
<RTRUE>)>>
<OBJECT HOOK
(LOC HOLD)
(DESC "metal hook")
(SYNONYM HOOK)
(ADJECTIVE METAL)
(FLAGS NDESCBIT)
(ACTION HOOK-F)>
<ROUTINE HOOK-F ()
<COND (<VERB? EXAMINE>
<COND (,GOWN-HUNG
<TELL "Your gown is hanging from it." CR>)
(T
<TELL
"The hook is attached to the wall, inches above a tiny hole." CR>)>)
(<VERB? HANG PUT-ON>
<COND (,LYING-DOWN
<TELL ,WHILE-LYING CR>)
(<PRSO?,GOWN>
<COND (<FSET? ,GOWN ,WORNBIT>
<IDROP>
<RTRUE>)>
<SETG GOWN-HUNG T>
<MOVE ,GOWN ,HERE>
<FSET ,GOWN ,NDESCBIT>
<FSET ,GOWN ,TRYTAKEBIT>
<FCLEAR ,GOWN ,OPENBIT>
<TELL
"The gown is now hanging from the hook, covering a tiny hole." CR>)
(<PRSO? ,HANDS ,EARS ,HEAD>
<PERFORM ,V?STAND-BEFORE ,HOOK>
<RTRUE>)
(<FSET? ,PRSO ,TAKEBIT>
<COND (<FSET? ,PRSO ,TRYTAKEBIT>
<TELL ,NOT-HOLDING>
<ARTICLE ,PRSO T>
<TELL "." CR>)
(T
<MOVE ,PRSO ,HERE>
<TELL "It slips off the hook." CR>)>)
(T
<V-COUNT>)>)>>
<OBJECT DRAIN
(LOC HOLD)
(DESC "drain")
(SYNONYM DRAIN GRATING GRATE)
(FLAGS NDESCBIT)
(ACTION DRAIN-F)>
<ROUTINE DRAIN-F ()
<COND (<VERB? PUT-ON>
<COND (<FSET? ,TOWEL ,SURFACEBIT>
<TELL "The drain is already covered by the towel." CR>)
(,LYING-DOWN
<TELL ,WHILE-LYING CR>)
(<PRSO?,TOWEL>
<FSET ,TOWEL ,CONTBIT>
<FSET ,TOWEL ,SURFACEBIT>
<FSET ,TOWEL ,OPENBIT>
<FSET ,TOWEL ,NDESCBIT>
<FSET ,TOWEL ,TRYTAKEBIT>
<MOVE ,TOWEL ,HERE>
<PERFORM ,V?EXAMINE ,DRAIN>
<RTRUE>)
(T
<TELL "The drain is too large to be covered by">
<ARTICLE ,PRSO T>
<TELL "." CR>)>)
(<VERB? LOOK-INSIDE>
<PERFORM ,V?LOOK-INSIDE ,FISH-HOLE>
<RTRUE>)
(<AND <VERB? EXAMINE>
<FSET? ,TOWEL ,SURFACEBIT>>
<TELL "The towel completely covers the drain." CR>)>>
<OBJECT ROBOT-PANEL
(LOC HOLD)
(DESC "tiny robot panel")
(SYNONYM PANEL)
(ADJECTIVE ROBOT TINY)
(FLAGS NDESCBIT)
(ACTION ROBOT-PANEL-F)>
<ROUTINE ROBOT-PANEL-F ()
<COND (<VERB? EXAMINE CLOSE>
<TELL
"The panel, only a few inches high, is currently closed." CR>)
(<VERB? OPEN>
<TELL ,BUDGE CR>)
(<VERB? BLOCK>
<SETG AWAITING-REPLY 6>
<ENABLE <QUEUE I-REPLY 2>>
<TELL "With " D ,HANDS "s? By force of will?" CR>)
(<AND <VERB? LIE-DOWN>
,IN-FRONT-FLAG>
<PERFORM ,V?STAND-BEFORE ,ROBOT-PANEL>
<RTRUE>)
(<AND <VERB? PUT-IN-FRONT PUT-IN-FRONT PUT-ON>
<PRSI? ,ROBOT-PANEL>>
<PERFORM ,V?BLOCK-WITH ,ROBOT-PANEL ,PRSO>
<RTRUE>)
(<AND <VERB? BLOCK-WITH SPUT-ON>
<PRSO? ,ROBOT-PANEL>>
<COND (<PRSI? ,HEAD ,HANDS ,EARS ,EYES>
<V-COUNT>)
(<NOT <HELD? ,PRSI>>
<TELL ,NOT-HOLDING>
<ARTICLE ,PRSI T>
<TELL "." CR>)
(,PANEL-BLOCKER
<TELL "But">
<ARTICLE ,PANEL-BLOCKER T>
<TELL
" is already in front of the " D ,ROBOT-PANEL "." CR>)
(,LYING-DOWN
<TELL ,WHILE-LYING CR>)
(T
<MOVE ,PRSI ,HERE>
<SETG PANEL-BLOCKER ,PRSI>
<FSET ,PRSI ,TRYTAKEBIT>
<TELL "Okay,">
<COND (<PRSI? ,SATCHEL>
<TELL " the satchel is lying on its side">)
(T
<FSET ,PRSI ,NDESCBIT>
<ARTICLE ,PRSI T>
<TELL " is sitting">)>
<TELL " in front of the " D ,ROBOT-PANEL "." CR>)>)>>
<OBJECT BABEL-FISH
(LOC LOCAL-GLOBALS) ;"just for the purpose of MOBY-FIND"
(DESC "babel fish")
(SYNONYM FISH)
(ADJECTIVE BABEL)
(FLAGS TAKEBIT)
(ACTION BABEL-FISH-F)>
<ROUTINE BABEL-FISH-F ()
<COND (<VERB? TAKE REMOVE>
<TELL
"That would be foolish. Having a " D ,BABEL-FISH " in your ear is terribly
useful." CR>)>>
<OBJECT GLASS-CASE
(LOC HOLD)
(DESC "glass case")
(LDESC "In the corner is a glass case with a switch and a keyboard.")
(SYNONYM CASE LID GLASS)
(ADJECTIVE GLASS)
(SIZE 40)
(FLAGS CONTBIT TRANSBIT SEARCHBIT)
(ACTION GLASS-CASE-F)>
<GLOBAL GLASS-CASE-SCORE <>>
<ROUTINE GLASS-CASE-F ()
<COND (<VERB? EXAMINE>
<TELL "The " D ,GLASS-CASE " is ">
<COND (<FSET? ,GLASS-CASE ,OPENBIT>
<TELL "open">)
(T
<TELL "closed">)>
<TELL
". Attached to it are a " D ,KEYBOARD " and a switch." CR>)
(<AND <VERB? OPEN>
<NOT <FSET? ,GLASS-CASE ,OPENBIT>>>
<TELL ,BUDGE CR>)
(<VERB? MUNG>
<TELL
"The hold of the Vogon ship is virtually undamaged by the explosion
of the " D ,GLASS-CASE>
<JIGS-UP
". You, however, are blasted into tiny bits and smeared all over the room.
Several cleaning robots fly in and wipe you neatly off the walls.">
<RTRUE>)>>
<ROUTINE GLASS-CASE-OPENS () ;"see V-TYPE"
<COND (<FSET? ,GLASS-CASE ,OPENBIT>
<TELL "Nothing happens." CR>
<FUCKING-CLEAR>)
(T
<FSET ,GLASS-CASE ,OPENBIT>
<TELL "The " D ,GLASS-CASE " opens." CR>
<FCLEAR ,PLOTTER ,TRYTAKEBIT>
<COND (<NOT ,GLASS-CASE-SCORE>
<SETG GLASS-CASE-SCORE T>
<SETG SCORE <+ ,SCORE 25>>)>
<FUCKING-CLEAR>)>>
<OBJECT KEYBOARD
(LOC HOLD)
(DESC "keyboard")
(SYNONYM KEYBOARD)
(FLAGS NDESCBIT TRYTAKEBIT)>
<OBJECT CASE-SWITCH
(LOC HOLD)
(DESC "switch")
(SYNONYM SWITCH)
(FLAGS NDESCBIT SWITCHBIT)
(ACTION CASE-SWITCH-F)>
<ROUTINE CASE-SWITCH-F ()
<COND (<VERB? LAMP-ON TURN PUSH MOVE THROW>
<COND (<HELD? ,BABEL-FISH>
<TELL
"A recording plays: \"To open the case, type in the ">
<COND (<EQUAL? ,WORD-NUMBER 1>
<TELL "first">)
(<EQUAL? ,WORD-NUMBER 2>
<TELL "second">)
(<EQUAL? ,WORD-NUMBER 3>
<TELL "third">)>
<TELL
" word from the second verse of the Captain's current favourite poem.
WARNING: An incorrect input will cause the case to explode.\"" CR>)
(T
<TELL "A recording plays: \"A">
<PRODUCE-GIBBERISH 5>
<CRLF>)>)>>
<ROUTINE PRODUCE-GIBBERISH (N "AUX" GIBBERISH-COUNTER SUPER-COUNTER)
<SET SUPER-COUNTER 0>
<REPEAT ()
<SET SUPER-COUNTER <+ .SUPER-COUNTER 1>>
<SET GIBBERISH-COUNTER 0>
<REPEAT ()
<SET GIBBERISH-COUNTER <+ .GIBBERISH-COUNTER 1>>
<TELL <PICK-ONE ,GIBBERISH>>
<COND (<EQUAL? .GIBBERISH-COUNTER 10>
<COND (<NOT <EQUAL? .SUPER-COUNTER .N>>
<TELL " o">)>
<RETURN>)>>
<COND (<EQUAL? .SUPER-COUNTER .N>
<TELL ".\"">
<RETURN>)>>>
<ROUTINE I-ANNOUNCEMENT ()
<ENABLE <QUEUE I-ANNOUNCEMENT -1>>
<TELL CR "An announcement is coming over the ship's intercom. \"">
<COND (<HELD? ,BABEL-FISH ,PROTAGONIST>
<TELL
"This is the Captain. My instruments show that we've picked up a couple of
hitchhikers. I hate freeloaders, and when my guards find you I'll have you
thrown into space. On second thought, maybe I'll read you some of my poetry
first. Repeating...\"" CR>)
(T
<TELL "E">
<PRODUCE-GIBBERISH 10>
<CRLF>)>>
<GLOBAL GIBBERISH
<PLTABLE
"toy" "r g" "irb" "kwa" "o s"
"fim" "p w" "osh" "flu" "a r"
"vup" "d t" "imb" "tha" "i l"
"cav" "s g" "ulp" "cho" "u n"
"zit" "z z" "eft" "qui" "e h"
"kon" "l m" "ork" "gry" "o t"
"huv" "x j" "erl" "tru" "a b"
"fud" "w c" "oll" "wro" "i s">>
<ROUTINE I-GUARDS ()
<COND (<EQUAL? ,HERE ,HOLD>
<DISABLE <INT I-ANNOUNCEMENT>>
<TELL CR
"Guards burst in and grab you and Ford, who comes slowly awake. They drag you
down the corridor to a large cabin, where they strap you into large, menacing
chairs..." CR CR>
<SETG HERE ,CAPTAINS-QUARTERS>
<MOVE ,NAME ,HERE>
<SETG LYING-DOWN <>>
<ENABLE <QUEUE I-CAPTAIN 2>>
<SETG FORD-SLEEPING <>>
<FSET ,FORD ,NDESCBIT>
<MOVE ,PROTAGONIST ,POETRY-APPRECIATION-CHAIR>
<SETG OHERE <>>
<V-LOOK>
<MOVE ,FORD ,HERE>
<MOVE ,GUARDS ,HERE>)
(<NOT <IN? ,RIFLES ,LOCAL-GLOBALS>>
<TELL CR ,GUARDS-REALIZE "They">
<GUARD-DEATH>
<RTRUE>)
(T
<RFALSE>)>>
<ROOM CAPTAINS-QUARTERS
(LOC ROOMS)
(DESC "Captain's Quarters")
(FLAGS RLANDBIT ONBIT)
(GLOBAL FLEET WEAPON)
(ACTION CAPTAINS-QUARTERS-F)>
<OBJECT STRAPS
(LOC CAPTAINS-QUARTERS)
(SYNONYM STRAPS STRAP)
(DESC "strap")
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<ROUTINE CAPTAINS-QUARTERS-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the cabin of the " D ,VOGON-CAPTAIN ". You and Ford are strapped
into " D ,POETRY-APPRECIATION-CHAIR "s." CR>)>>
<OBJECT POETRY-APPRECIATION-CHAIR
(LOC CAPTAINS-QUARTERS)
(DESC "poetry appreciation chair")
(SYNONYM CHAIR CHAIRS SEAT)
(ADJECTIVE POETRY APPRECIAT LARGE MENACING)
(FLAGS VEHBIT OPENBIT SEARCHBIT SURFACEBIT CONTBIT)
(ACTION POETRY-APPRECIATION-CHAIR-F)>
<ROUTINE POETRY-APPRECIATION-CHAIR-F ("OPTIONAL" (RARG <>))
<COND (.RARG
<RFALSE>)
(<VERB? DISEMBARK WALK LEAP WALK-AROUND>
<SETG AWAITING-REPLY 7>
<ENABLE <QUEUE I-REPLY 2>>
<TELL "You're strapped in, remember?" CR>)
(<AND <VERB? OPEN CLOSE>
<PRSO? ,POETRY-APPRECIATION-CHAIR>>
<TELL-ME-HOW>)>>
<OBJECT VOGON-CAPTAIN
(LOC CAPTAINS-QUARTERS)
(DESC "Vogon Captain")
(LDESC
"The Captain is indescribably hideous, indescribably blubbery,
and indescribably mid-to-dark green. He is holding samples of his
favourite poetry.")
(SYNONYM CAPTAIN VOGONS)
(ADJECTIVE VOGON)
(FLAGS ACTORBIT)
(ACTION VOGON-CAPTAIN-F)>
<ROUTINE VOGON-CAPTAIN-F ()
<COND (<OR <VERB? TELL HELLO THANK>
<AND <VERB? ASK-ABOUT ASK-FOR>
<EQUAL? ,VOGON-CAPTAIN ,PRSO>>>
<TELL
"One of the guards lightly bashes your skull with the butt of his weapon">
<COND (<HELD? ,BABEL-FISH>
<TELL
". \"This is a poetry appreciation session, prisoner. No talking!\"" CR>)
(T
<TELL " and says, \"A">
<PRODUCE-GIBBERISH 2>
<CRLF>)>
<FUCKING-CLEAR>)
(<AND <IN? ,POETRY ,HERE>
<VERB? BLOCK>>
<PERFORM ,V?LISTEN ,POETRY>
<RTRUE>)>>
<GLOBAL CAPTAIN-COUNTER 0>
<ROUTINE I-CAPTAIN ()
<ENABLE <QUEUE I-CAPTAIN -1>>
<SETG CAPTAIN-COUNTER <+ ,CAPTAIN-COUNTER 1>>
<CRLF>
<COND (<EQUAL? ,CAPTAIN-COUNTER 1>
<TELL
"\"If he's going to read us his poetry,\" mutters Ford, sweating profusely,
\"just pray he softens us up with some cudgels first...\"" CR CR>)>
<COND (<NOT <HELD? ,BABEL-FISH ,PROTAGONIST>>
<TELL "The " D ,VOGON-CAPTAIN " says, \"O">
<PRODUCE-GIBBERISH 2>
<COND (<EQUAL? ,CAPTAIN-COUNTER 6>
<GUARDS-TO-AIRLOCK>)
(T
<CRLF>)>)
(<EQUAL? ,CAPTAIN-COUNTER 1>
<TELL
"\"Hello, hitchhikers!\" begins the " D ,VOGON-CAPTAIN ". \"I've decided to
read you a verse of my poetry!\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 2>
<TELL
"\"Oh freddled gruntbuggly, thy nacturations are to me!\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 3>
<TELL
"\"As plurdled gabbleblotchits on a lurgid bee.\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 4>
<TELL
"\"Groop I implore thee, my foonting turlingdromes.\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 5>
<TELL
"\"And hooptiously drangle me with crinkly bindlewurdles, or I will rend
thee in the gobberwarts with my blurglecruncheon, see if I don't!\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 6>
<COND (,POEM-ENJOYED
<TELL
"\"You looked like you enjoyed my poem. I think...yes, I think I'll read
the NEXT verse, also!\"" CR>)
(T
<TELL
"\"You didn't seem to enjoy my poem at all! Guards, toss
them out the airlock!\"">
<GUARDS-TO-AIRLOCK>)>)
(<EQUAL? ,CAPTAIN-COUNTER 7>
<COND (<EQUAL? ,LINE-NUMBER 1 2>
<TELL ,LINE-A CR>)
(<EQUAL? ,LINE-NUMBER 3 4>
<TELL ,LINE-B CR>)
(T
<TELL ,LINE-C CR>)>)
(<EQUAL? ,CAPTAIN-COUNTER 8>
<COND (<EQUAL? ,LINE-NUMBER 3 5>
<TELL ,LINE-A CR>)
(<EQUAL? ,LINE-NUMBER 1 6>
<TELL ,LINE-B CR>)
(T
<TELL ,LINE-C CR>)>)
(<EQUAL? ,CAPTAIN-COUNTER 9>
<COND (<EQUAL? ,LINE-NUMBER 4 6>
<TELL ,LINE-A CR>)
(<EQUAL? ,LINE-NUMBER 2 5>
<TELL ,LINE-B CR>)
(T
<TELL ,LINE-C CR>)>)
(<EQUAL? ,CAPTAIN-COUNTER 10>
<TELL
"\"Gerond withoutitude form into formless bloit, why not then? Moose.\"" CR>)
(<EQUAL? ,CAPTAIN-COUNTER 11>
<TELL
"\"Since you have somehow managed to survive two verses of my poetry, I have
no choice but to space you. Guards!\"">
<GUARDS-TO-AIRLOCK>)>>
<GLOBAL LINE-A
"\"Fripping lyshus wimbgunts, awhilst moongrovenly kormzibs.\"">
<GLOBAL LINE-B
"\"Gashee morphousite, thou expungiest quoopisk!\"">
<GLOBAL LINE-C
"\"Bleem miserable venchit! Bleem forever mestinglish asunder frapt.\"">
<GLOBAL LINE-NUMBER 0>
;"The line order is set randomly from 1 to 6, with the following result:
1 Line A, Line B, Line C
2 Line A, Line C, Line B
3 Line B, Line A, Line C
4 Line B, Line C, Line A
5 Line C, Line A, Line B
6 Line C, Line B, Line A"
<GLOBAL WORD-NUMBER 0> ;"randomly set between one and three"
<ROUTINE GUARDS-TO-AIRLOCK ()
<DISABLE <INT I-CAPTAIN>>
<TELL
" A guard grabs you and Ford, and drags you toward the hold. Ford whispers,
\"Don't worry, I'll think of something!\"" CR CR>
<FCLEAR ,HOLD ,TOUCHBIT>
<GOTO ,HOLD>
<FCLEAR ,FORD ,NDESCBIT>
<MOVE ,GUARDS ,HERE>
<MOVE ,FORD ,HERE>
<ENABLE <QUEUE I-FORD 1>>>
<OBJECT POETRY
(LOC CAPTAINS-QUARTERS)
(DESC "Vogon poetry")
(SYNONYM POETRY POEM SAMPLE VERSE)
(ADJECTIVE VOGON FIRST SECOND)
(FLAGS NDESCBIT NARTICLEBIT DARKBIT)
(ACTION POETRY-F)>
<GLOBAL POEM-ENJOYED <>>
<GLOBAL AIRLOCK-COUNTER 0>
<ROUTINE POETRY-F ()
<COND (<AND <VERB? ENJOY LISTEN>
<L? ,CAPTAIN-COUNTER 2>>
<TELL "The " D ,VOGON-CAPTAIN " hasn't begun yet!" CR>)
(<VERB? ENJOY>
<COND (<NOT <HELD? ,BABEL-FISH>>
<TELL
"You can't even understand it, let alone enjoy it!" CR>)
(,POEM-ENJOYED
<SETG AWAITING-REPLY 8>
<ENABLE <QUEUE I-REPLY 2>>
<TELL "Hey, let's not overdo it, okay?" CR>)
(T
<SETG POEM-ENJOYED T>
<SETG SCORE <+ ,SCORE 15>>
<TELL
"You realise that, although the " D ,POETRY " is indeed astoundingly bad,
worse things happen at sea, and in fact, at school. With an effort for which
Hercules himself would have patted you on the back, you grit your teeth and
enjoy the stuff." CR>)>)
(<VERB? LISTEN>
<TELL "You have no choice. Why not relax and enjoy it?" CR>)
(<AND <IN? ,POETRY ,HERE>
<VERB? BLOCK>>
<PERFORM ,V?LISTEN ,POETRY>
<RTRUE>)
(<VERB? READ EXAMINE>
<TELL "You can't see it from here." CR>)>>
<OBJECT VOGON-CORRIDOR-DOOR
(LOC HOLD)
(DESC "corridor door")
(SYNONYM DOOR)
(ADJECTIVE CORRIDOR)
(FLAGS DOORBIT NDESCBIT)
(ACTION VOGON-CORRIDOR-DOOR-F)>
<ROUTINE VOGON-CORRIDOR-DOOR-F ()
<COND (<VERB? OPEN UNLOCK THROUGH>
<DO-WALK ,P?WEST>)>>
<OBJECT VOGON-INNER-DOOR
(LOC LOCAL-GLOBALS)
(DESC "inner door")
(SYNONYM DOOR)
(ADJECTIVE INNER AIRLOCK MASSIVE)
(FLAGS VOWELBIT NDESCBIT DOORBIT)
(ACTION VOGON-AIRLOCK-DOOR-F)>
<OBJECT VOGON-OUTER-DOOR
(LOC LOCAL-GLOBALS)
(DESC "outer door")
(SYNONYM DOOR)
(ADJECTIVE OUTER AIRLOCK MASSIVE)
(FLAGS VOWELBIT NDESCBIT DOORBIT)
(ACTION VOGON-AIRLOCK-DOOR-F)>
<ROUTINE VOGON-AIRLOCK-DOOR-F ()
<COND (<VERB? OPEN THROUGH>
<TELL ,BUDGE CR>)>>
<OBJECT AIRLOCK-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "airlock")
(SYNONYM AIRLOCK)
(FLAGS VOWELBIT)
(ACTION AIRLOCK-OBJECT-F)>
<ROUTINE AIRLOCK-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,AIRLOCK>
<TELL ,LOOK-AROUND CR>)
(<EQUAL? ,HERE ,HOLD>
<DO-WALK ,P?WEST>)>)
(<VERB? LEAVE EXIT DISEMBARK>
<COND (<EQUAL? ,HERE ,AIRLOCK>
<DO-WALK ,P?EAST>)
(T
<TELL ,LOOK-AROUND CR>)>)>>
<OBJECT EQUATIONS
(LOC LOCAL-GLOBALS)
(DESC "it")
(SYNONYM EQUATION EQUATIONS NUMBER PENCIL)
(FLAGS NDESCBIT NARTICLEBIT)
(ACTION UNIMPORTANT-THING-F)>
<ROOM AIRLOCK
(LOC ROOMS)
(SYNONYM BETELGEUS)
(DESC "Airlock")
(LDESC "This airlock has massive doors to port and starboard.")
(WEST TO HOLD IF VOGON-INNER-DOOR IS OPEN) ;"this should never happen"
(EAST TO HOLD IF VOGON-OUTER-DOOR IS OPEN) ;"ditto"
(FLAGS RLANDBIT ONBIT)
(GLOBAL VOGON-INNER-DOOR VOGON-OUTER-DOOR AIRLOCK-OBJECT FLEET EQUATIONS)
(ACTION AIRLOCK-F)>
<ROUTINE AIRLOCK-F (RARG)
<COND (<EQUAL? .RARG ,M-END>
<SETG AIRLOCK-COUNTER <+ ,AIRLOCK-COUNTER 1>>
<CRLF>
<COND (<EQUAL? ,AIRLOCK-COUNTER 1>
<TELL
"Ford points at the " D ,VOGON-OUTER-DOOR ". \"In about two minutes, it will
open and we'll be ejected into the vacuum of space. But don't panic, I'll
think of something.\"" CR>)
(<EQUAL? ,AIRLOCK-COUNTER 2>
<TELL "Ford is mumbling to himself." CR>)
(<EQUAL? ,AIRLOCK-COUNTER 3>
<TELL
"Ford produces a pencil and begins scribbling equations on the wall." CR>)
(<EQUAL? ,AIRLOCK-COUNTER 4>
<TELL
"Ford's eyes light up. \"Do you still have the Electronic Sub-Etha Auto
Hitching Thu...\" At that moment, the airlock door opens, and you and Ford
are blown out into space.||">
<COND (<HELD? ,GUIDE>
<TELL
"Your elbow must have struck some key on " D ,GUIDE " because it begins
droning out an entry, coincidentally enough the entry on SPACE. \""
,SPACE-TEXT "\" (Footnote 9)" CR CR>)>
<TELL
"Precisely twenty-nine seconds later, you and Ford are scooped up by a passing
ship. Gasping for air, you pass out..." CR CR>
<SETG HEART-PROB 100>
<GOTO ,DARK>)>)>>

251
zip-to-xzip.txt Normal file
View File

@ -0,0 +1,251 @@
;"HOW TO TURN A ZIP GAME INTO AN XZIP GAME"
;"ADD TO LOAD FILE"
<VERSION XZIP>
<SETG PLUS-MODE T>
<SETG NEW-VOC? T>
<FREQUENT-WORDS?>
;"move directions to load file just before adding new files"
;"status line stuff - add to GLOBALS file"
<CONSTANT S-TEXT 0>
<CONSTANT S-WINDOW 1>
<CONSTANT H-NORMAL 0>
<CONSTANT H-INVERSE 1>
<CONSTANT H-BOLD 2>
<CONSTANT H-ITALIC 4>
<CONSTANT D-SCREEN-ON 1>
<CONSTANT D-SCREEN-OFF -1>
<CONSTANT D-PRINTER-ON 2>
<CONSTANT D-PRINTER-OFF -2>
<CONSTANT D-TABLE-ON 3>
<CONSTANT D-TABLE-OFF -3>
<CONSTANT D-RECORD-ON 4>
<CONSTANT D-RECORD-OFF -4>
<GLOBAL HOST:NUMBER 0> "Host machine."
<GLOBAL WIDTH:NUMBER 0> "Width of screen in chars."
;"put in GO routine"
<SETG HOST <LOWCORE INTID>>
<SETG WIDTH <LOWCORE SCRH>>
<ROUTINE INIT-STATUS-LINE ()
<COND (<L? ,WIDTH 38>
<TELL "[Screen too narrow.]" CR>
<QUIT>)>
<SETG CHEIGHT <LOWCORE (FWRD 1)>>
<SETG OHERE <>>
<SETG OLD-LEN 0>
<SPLIT 1>
<SCREEN ,S-WINDOW>
<HLIGHT ,H-INVERSE>
<CURSET 1 1>
;<ERASE 1> ;"This semi by Jeff"
;<PRINT-SPACES <LOWCORE SCRH>>
<PRINT-SPACES ,WIDTH>
<COND (<G? ,WIDTH 75>
<CURSET 1 51>
<TELL "Score:">
<CURSET 1 64>
<TELL "Moves:">)>
<HLIGHT ,H-NORMAL>
<SCREEN ,S-TEXT>
<RTRUE>>
<CONSTANT SL-TABLE:TABLE <ITABLE NONE 80>> "status line constructed here"
<GLOBAL OHERE:OBJECT <>>
<GLOBAL OLD-LEN:NUMBER 0>
<ROUTINE UPDATE-STATUS-LINE ()
<SCREEN ,S-WINDOW>
;<BUFOUT <>>
<HLIGHT ,H-NORMAL>
<HLIGHT ,H-INVERSE>
<COND (<NOT <EQUAL? ,HERE ,OHERE>>
<SETG OHERE ,HERE>
;<DIROUT ,D-SCREEN-OFF> ; "Screen off."
<DIROUT ,D-TABLE-ON ,SL-TABLE> ; "Table on."
<SAY-HERE>
<DIROUT ,D-TABLE-OFF> ; "Table off."
;<DIROUT ,D-SCREEN-ON> ; "Screen on."
<CURSET 1 2>
<PRINT-SPACES ,OLD-LEN> ; "Erase old HERE desc"
<SETG OLD-LEN <GET ,SL-TABLE 0>> ;"Print new HERE desc."
<CURSET 1 2>
<SAY-HERE>)>
<COND (<G? ,WIDTH 74>
<CURSET 1 58>
<TELL N ,SCORE " "> ;"for 110 to 80 score bug"
<CURSET 1 71>
<TELL N ,MOVES>)
(T
<DIROUT ,D-TABLE-ON ,SL-TABLE>
<TELL N ,SCORE "/" N ,MOVES " ">
<DIROUT ,D-TABLE-OFF>
<CURSET 1 <- ,WIDTH <+ <GET ,SL-TABLE 0> 1>>>
<TELL N ,SCORE "/" N ,MOVES " ">)>
<HLIGHT ,H-NORMAL>
<SCREEN ,S-TEXT> ;"Back to main screen."
<RTRUE>>
<ROUTINE PRINT-SPACES (CNT)
<REPEAT ()
<COND (<L? <SET CNT <- .CNT 1>> 0>
<RETURN>)
(T
<PRINTC 32>)>>>
<ROUTINE SAY-HERE ()
<COND (<ZERO? ,LIT?>
<TELL "Darkness">)
(T
<TELL D ,HERE>
<COND (<AND <G? ,WIDTH 74>
<NOT <IN? ,PROTAGONIST ,HERE>>>
<TELL ", in the " <LOC ,PROTAGONIST>>)>)>
<RTRUE>>
"To update the status line during the game - after all MOVE ,WINNER
(or similar) statements add - also check LIT to NOT LIT cases and vice-versa,
V-BOARD, V-DISEMBARK and wherever else the status line changes in special
cases, e.g. LYING DOWN in HHGG"
<SETG OHERE <>>
;"parser replacements - replace old routine with new"
<CONSTANT P-PSOFF %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 6) (T 4)>>
"Offset to parts of speech byte"
<CONSTANT P-P1OFF %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 7) (T 5)>>
"Offset to first part of speech"
"in ROUTINE PARSER when printing prompt replace with:"
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
'<PROG ()
<UPDATE-STATUS-LINE>
<TELL ">">>)
(T
'<TELL ">">)>
<PUTB ,P-INBUF 1 0>
<READ ,P-INBUF ,P-LEXV>
;"replace in PARSER"
<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>>>
<NOT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
'<ZMEMQ ,P-ADJ .SYNS <RMGL-SIZE .SYNS>>)
(T
'<ZMEMQB ,P-ADJ .SYNS <RMGL-SIZE .SYNS>>)>>>>
<RFALSE>)
(<AND <NOT <ZERO? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
<RFALSE>)>
<RTRUE>>
;"add in MISC"
<DEFMAC RMGL-SIZE ('TBL)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>)
(T <FORM - <FORM PTSIZE .TBL> 1>)>>
;"not needed in VERBS (INCLUDING next comment)"
;"defined in compiler for xzip"
;"when these are referenced, GET (and not GETB) must be used, since it
takes TWO bytes to represent their values"
<CONSTANT REXIT 0>
<CONSTANT UEXIT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 2) (T 1)>>
"Uncondl EXIT: (dir TO rm) = rm"
<CONSTANT NEXIT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 3) (T 2)>>
"Non EXIT: (dir SORRY string) = str-ing"
<CONSTANT FEXIT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 4) (T 3)>>
"Fcnl EXIT: (dir PER rtn) = rou-tine, 0"
<CONSTANT CEXIT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 5) (T 4)>>
"Condl EXIT: (dir TO rm IF f) = rm, f, str-ing"
<CONSTANT DEXIT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 6) (T 5)>>
"Door EXIT: (dir TO rm IF dr IS OPEN)= rm, dr, str-ing, 0"
<CONSTANT CEXITFLAG %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 4) (T 1)>>
;"GETB"
<CONSTANT CEXITSTR 1> ;"GET"
<CONSTANT DEXITOBJ 1> ;"GET"
<CONSTANT DEXITSTR %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 2) (T 1)>>
;"GET"
;"find all GETBs before EXITs (not CEXITFLAG) (usually in VERBS
V-WALK, OTHER-SIDE) and replace with GET"
;"put SORRY in front of Exit Strings."
;"before GO in MISC add"
<CLEAR -1>
<INIT-STATUS-LINE>
;"CHANGE ALL VOCABULARY FROM 6 TO 9 LETTERS in ADJECTIVE, SYNONYM and SYNTAX"
;"convert PSEUDO objects to real objects"
;"give them NDESCBITS, DESCs (for default printouts), LOC, SYNONYM, ADJECTIVE,
ACTION"
;"remove/fix assosciated PSEUDO code"
;"ADD V-ID, change VERSION"
<ROUTINE V-$ID ()
<TELL "Interpreter ">
<PRINTN <GETB 0 30>>
<TELL " Version ">
<PRINTC <GETB 0 31>>
<CRLF>
<RTRUE>>
<ROUTINE V-VERSION ("AUX" (CNT 17) V)
<SET V <BAND <GET 0 1> *3777*>>
<TELL CR
"BORDER ZONE: A Game of Intrigue|
Copyright (c) 1987 by Infocom, Inc. All rights reserved.|
BORDER ZONE is a trademark of Infocom, Inc.|
Release " N .V " / Serial number ">
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> 23>
<RETURN>)
(T
<PRINTC <GETB 0 .CNT>>)>>
<TELL " / ">
<V-$ID>
<CRLF>>
;"object locations have to be changed from (IN to (LOC"
;"add $REFRESH code and modify V-SAVE"
;"CHANGE SCRIPT AND UNSCRIPT CODE"
;"REMOVE REFERENCES TO P1?OBJECT P1?ADJECTIVE"
;"CHANGE ADJN TO ADJ, XADJN TO XADJ, and remove associated code"
;"check NE in perform fix - for movement"
;"CHANGE GLOBALS THAT ARE ONLY STRINGS TO CONSTANTS"
;"added new AGAIN and OOPS code"
;"changed ZMEMQ and ZMEMQB to INTBL? - added argument to BUT-MERGE"
;"fixed RESTORE to INIT-STATUS-LINE rather than Clearing Screen"