1641 lines
46 KiB
Plaintext
1641 lines
46 KiB
Plaintext
|
|
|
|
.FUNCT IN-HEART?,OBJ
|
|
CALL2 META-LOC,OBJ
|
|
EQUAL? STACK,ENTRY-BAY,FORE-CORRIDOR,AFT-CORRIDOR /TRUE
|
|
CALL2 META-LOC,OBJ
|
|
EQUAL? STACK,GALLEY,BRIDGE,ENGINE-ROOM /TRUE
|
|
CALL2 META-LOC,OBJ
|
|
EQUAL? STACK,HATCHWAY,PANTRY,ACCESS-SPACE /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT HEART-OF-GOLD-F
|
|
EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL3
|
|
EQUAL? HERE,HATCHWAY \?CCL6
|
|
CALL2 DO-WALK,P?DOWN
|
|
RSTACK
|
|
?CCL6: EQUAL? HERE,DAIS \?CCL8
|
|
PRINT LOOK-AROUND
|
|
CRLF
|
|
RTRUE
|
|
?CCL8: CALL1 V-WALK-AROUND
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?BOARD,V?WALK-TO,V?THROUGH \FALSE
|
|
EQUAL? HERE,DAIS \?CCL15
|
|
CALL2 DO-WALK,P?EAST
|
|
RSTACK
|
|
?CCL15: CALL2 IN-HEART?,PROTAGONIST
|
|
ZERO? STACK /FALSE
|
|
PRINT LOOK-AROUND
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PANTRY-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
ZERO? LANDED \?CND4
|
|
MOVE MARVIN,HERE
|
|
CALL2 INT,I-MARVIN
|
|
PUT STACK,0,0
|
|
?CND4: FSET? SCREENING-DOOR,MUNGEDBIT \?PRG10
|
|
PRINTI "As you pass the door, it slams against you, bruising your upper arm, and then opens again. ""Take that, door-kicker."""
|
|
CRLF
|
|
CRLF
|
|
?PRG10: PRINTI "Upon entering the room, you are battered by tidal waves of depression. "
|
|
LESS? SCORE,300 \?CCL14
|
|
ICALL2 JIGS-UP,STR?8
|
|
RTRUE
|
|
?CCL14: FSET? PANTRY,REVISITBIT /?PRG17
|
|
FSET PANTRY,REVISITBIT
|
|
ADD SCORE,25 >SCORE
|
|
?PRG17: PRINTI "However, the happiness derived from your high score and that thoroughly excellent cup of tea you had recently help you to survive."
|
|
CRLF
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SCREENING-DOOR-F
|
|
EQUAL? SCREENING-DOOR,WINNER \?CCL3
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL6
|
|
EQUAL? PRSO,ME \?CCL6
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,SCREENING-DOOR,PRSI
|
|
SET 'WINNER,SCREENING-DOOR
|
|
RTRUE
|
|
?CCL6: EQUAL? PRSA,V?HELLO \?CCL10
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,SCREENING-DOOR
|
|
SET 'WINNER,SCREENING-DOOR
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?WHAT \?PRG15
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?PRG15
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,SCREENING-DOOR,OBJECT-OF-GAME
|
|
SET 'WINNER,SCREENING-DOOR
|
|
RTRUE
|
|
?PRG15: PRINTI """Unless you're here to show me some clear sign of your intelligence, please leave me alone. I'm a very busy door."""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL3: FSET? SCREENING-DOOR,OPENBIT \?CCL18
|
|
EQUAL? PRSA,V?KNOCK,V?GIVE,V?SHOW /?PRG23
|
|
EQUAL? PRSA,V?OPEN \?CCL18
|
|
?PRG23: PRINTR "You already induced the door to open."
|
|
?CCL18: FSET? SCREENING-DOOR,OPENBIT \?CCL26
|
|
EQUAL? PRSA,V?CLOSE \?CCL26
|
|
PRINTR "The door snaps, ""Hey! I'm resting. I've had a very busy day."""
|
|
?CCL26: EQUAL? PRSA,V?KICK \?CCL32
|
|
FSET SCREENING-DOOR,MUNGEDBIT
|
|
PRINTR """I suppose you think that since you have legs and I have not, you can get away with that sort of thing. Well,"" the door continues stiffly, ""maybe you can and maybe you can't."""
|
|
?CCL32: EQUAL? PRSA,V?GIVE,V?SHOW \?CCL36
|
|
EQUAL? PRSO,NO-TEA,TEA \?CCL39
|
|
ZERO? TEA-SHOWN /?CCL39
|
|
CALL2 HELD?,TEA
|
|
ZERO? STACK /?CCL39
|
|
ZERO? HOLDING-NO-TEA /?CCL39
|
|
EQUAL? PRSO,TEA-SHOWN /?CCL39
|
|
ICALL PERFORM,V?KNOCK,SCREENING-DOOR
|
|
RTRUE
|
|
?CCL39: EQUAL? PRSO,NO-TEA,TEA \?CND45
|
|
SET 'TEA-SHOWN,PRSO
|
|
?CND45: RANDOM 100
|
|
LESS? 50,STACK /?PRG54
|
|
PRINTI "The door says, ""Big deal. Anyone can have"
|
|
ICALL2 ARTICLE,PRSO
|
|
PRINTR "."""
|
|
?PRG54: PRINTR "The door yawns."
|
|
?CCL36: EQUAL? PRSA,V?KNOCK,V?OPEN \?CCL57
|
|
CALL2 HELD?,TEA
|
|
ZERO? STACK /?PRG65
|
|
ZERO? HOLDING-NO-TEA /?PRG65
|
|
FSET SCREENING-DOOR,OPENBIT
|
|
PRINTR "The door is almost speechless with admiration. ""Wow. Simultaneous tea and no tea. My apologies. You are clearly a heavy-duty philosopher."" It opens respectfully."
|
|
?PRG65: PRINTR "The door explains, in a haughty tone, that the room is occupied by a superintelligent robot and that lesser beings (by which it means you) are not to be admitted. ""Show me some tiny example of your intelligence,"" it says, ""and maybe, just maybe, I might reconsider."""
|
|
?CCL57: EQUAL? PRSA,V?ASK-ABOUT \?CCL68
|
|
EQUAL? PRSI,OBJECT-OF-GAME \?CCL68
|
|
PRINTR """To keep out subintelligent beings."""
|
|
?CCL68: EQUAL? PRSA,V?THROUGH \?CCL74
|
|
EQUAL? HERE,PANTRY \?CCL77
|
|
CALL2 DO-WALK,P?EAST
|
|
RSTACK
|
|
?CCL77: CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL74: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
FCLEAR SCREENING-DOOR,ACTORBIT
|
|
ICALL1 V-LOOK-INSIDE
|
|
FSET SCREENING-DOOR,ACTORBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MARVIN-F
|
|
EQUAL? MARVIN,WINNER \?CCL3
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL6
|
|
EQUAL? PRSO,ME \?CCL6
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,MARVIN,PRSI
|
|
SET 'WINNER,MARVIN
|
|
RTRUE
|
|
?CCL6: EQUAL? PRSA,V?HELLO \?CCL10
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,MARVIN
|
|
SET 'WINNER,MARVIN
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?WHAT \?CCL12
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?CCL12
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,MARVIN,OBJECT-OF-GAME
|
|
SET 'WINNER,MARVIN
|
|
RTRUE
|
|
?CCL12: EQUAL? HERE,PANTRY \?PRG50
|
|
EQUAL? PRSA,V?OPEN,V?REPAIR \?CCL19
|
|
EQUAL? PRSO,MECHANISM,HATCH \?CCL19
|
|
ZERO? LANDED \?CCL24
|
|
PRINTC 34
|
|
PRINT HUMANS
|
|
PRINTR "stupid. Are you aware,"" he asks, ""that this ship is in space, that space is an almost perfect vacuum, and that the hatch is the only thing holding in all the air?"""
|
|
?CCL24: EQUAL? MARVIN-COUNTER,3 \?CCL28
|
|
PRINTI """After the help I got last time? "
|
|
PRINT HUMANS
|
|
PRINTR "ungrateful. Go away."""
|
|
?CCL28: EQUAL? MARVIN-COUNTER,4 \?CCL32
|
|
PRINTR """I did."""
|
|
?CCL32: GRTR? MARVIN-COUNTER,0 \?CCL36
|
|
PRINTI """Yes, I said I'd do it! "
|
|
PRINT HUMANS
|
|
PRINTR "repetitious."""
|
|
?CCL36: SET 'MARVIN-COUNTER,1
|
|
CALL QUEUE,I-MARVIN,12
|
|
PUT STACK,0,1
|
|
PRINTC 34
|
|
PRINT HUMANS
|
|
PRINTI "demanding. Do this. Pick up that. Unjam the opening mechanism of the other. Meet me in the hatchway "
|
|
PRINTD ACCESS-SPACE
|
|
PRINTR " in twelve turns. I suppose,"" he mutters, ""you can count up to twelve. So hard to know with morons. And don't forget to bring the proper tool."""
|
|
?CCL19: EQUAL? PRSA,V?WHAT \?PRG48
|
|
EQUAL? PRSO,TWEEZERS \?PRG48
|
|
GRTR? MARVIN-COUNTER,0 \?PRG48
|
|
PRINTR "Marvin looks scornful. ""How did you get past my door if you're so primordially benighted that you don't even know which tool is needed for a job like this?"""
|
|
?PRG48: PRINTI """Please don't feel you have to take any notice of me. I'm just a menial robot."""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?PRG50: PRINTI """I think you ought to know I'm feeling very depressed."""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?ASK-ABOUT \?CCL53
|
|
EQUAL? PRSI,OBJECT-OF-GAME \?CCL53
|
|
PRINTR """Being clever doesn't always make you happy, you know. Look at me, brain the size of a planet, how many points do you think I've got? Minus thirty zillion at the last count."""
|
|
?CCL53: EQUAL? PRSA,V?FOLLOW \?CCL59
|
|
EQUAL? FOLLOW-FLAG,2 \?CCL59
|
|
IN? MARVIN,PANTRY \?CCL64
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL64: LOC MARVIN
|
|
CALL2 GOTO,STACK
|
|
RSTACK
|
|
?CCL59: EQUAL? PRSA,V?FOLLOW \?CCL66
|
|
EQUAL? FOLLOW-FLAG,7 \?CCL66
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL66: EQUAL? PRSA,V?GIVE \FALSE
|
|
EQUAL? MARVIN-COUNTER,2 \FALSE
|
|
EQUAL? PRSO,TOOL-REQUIRED \?PRG78
|
|
ADD SCORE,25 >SCORE
|
|
SET 'MARVIN-COUNTER,4
|
|
SET 'FOLLOW-FLAG,7
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PUT STACK,0,1
|
|
CALL2 INT,I-MARVIN
|
|
PUT STACK,0,0
|
|
FSET HATCH,OPENBIT
|
|
MOVE MARVIN,PANTRY
|
|
MOVE TOOL-REQUIRED,MARVIN
|
|
PRINTI "Marvin fiddles inside the "
|
|
PRINTD MECHANISM
|
|
PRINTI " with the "
|
|
PRINTD TOOL-REQUIRED
|
|
PRINTR " for about three tenths of a second. You hear the hatchway slide open. ""I don't expect you to be grateful,"" says Marvin, ""or even interested, but that was probably more complicated than every single action you'll ever perform in your entire life put together."" He limps away. ""And me,"" you hear him mutter as he goes, ""with this terrible pain in all the diodes down my left side."""
|
|
?PRG78: PRINTI """That's not"
|
|
ICALL2 ARTICLE,TOOL-REQUIRED
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT I-MARVIN
|
|
CALL QUEUE,I-MARVIN,-1
|
|
PUT STACK,0,1
|
|
EQUAL? MARVIN-COUNTER,2 \?CCL3
|
|
SET 'MARVIN-COUNTER,3
|
|
CRLF
|
|
EQUAL? HERE,HATCHWAY \?PRG8
|
|
PRINTI "Marvin emerges from the "
|
|
PRINTD ACCESS-SPACE
|
|
PRINTI ". "
|
|
?PRG8: PRINTC 34
|
|
ICALL1 MARVIN-BITCH
|
|
SET 'MARVIN-COUNTER,3
|
|
RETURN MARVIN-COUNTER
|
|
?CCL3: IN? MARVIN,ACCESS-SPACE \?CCL11
|
|
EQUAL? HERE,ACCESS-SPACE \?PRG25
|
|
ZERO? TOOL-REQUIRED \?CND15
|
|
?PRG17: CALL2 PICK-ONE,TOOL-LIST >TOOL-REQUIRED
|
|
CALL HELD?,TOOL-REQUIRED,PROTAGONIST
|
|
ZERO? STACK \?PRG17
|
|
?CND15: SET 'P-IT-OBJECT,TOOL-REQUIRED
|
|
SET 'MARVIN-COUNTER,2
|
|
PRINTI "Marvin, looking bored, says, ""Hand me"
|
|
ICALL2 ARTICLE,TOOL-REQUIRED
|
|
PRINTR "."""
|
|
?PRG25: CRLF
|
|
PRINTI "Marvin wanders up to you. ""I went to the "
|
|
PRINTD ACCESS-SPACE
|
|
PRINTI " but you never showed up. "
|
|
ICALL1 MARVIN-BITCH
|
|
SET 'MARVIN-COUNTER,3
|
|
RETURN MARVIN-COUNTER
|
|
?CCL11: EQUAL? MARVIN-COUNTER,1 \?CCL28
|
|
MOVE MARVIN,ACCESS-SPACE
|
|
EQUAL? HERE,ACCESS-SPACE \FALSE
|
|
PRINTR "Marvin shambles in."
|
|
?CCL28: IN? MARVIN,HERE \?CCL35
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PUT STACK,0,1
|
|
SET 'FOLLOW-FLAG,2
|
|
CRLF
|
|
EQUAL? HERE,HATCHWAY,GALLEY,ENTRY-BAY /?PRG41
|
|
EQUAL? HERE,FORE-CORRIDOR,ENGINE-ROOM,BRIDGE \?CCL38
|
|
?PRG41: PRINTI "Marvin wanders off."
|
|
CRLF
|
|
EQUAL? HERE,FORE-CORRIDOR,ENGINE-ROOM,HATCHWAY \?CCL45
|
|
MOVE MARVIN,AFT-CORRIDOR
|
|
RTRUE
|
|
?CCL45: MOVE MARVIN,FORE-CORRIDOR
|
|
RTRUE
|
|
?CCL38: EQUAL? HERE,AFT-CORRIDOR \?PRG50
|
|
MOVE MARVIN,PANTRY
|
|
PRINTR "Marvin enters a room to port, and the door closes behind him."
|
|
?PRG50: PRINTI "Bug #17"
|
|
RTRUE
|
|
?CCL35: IN? MARVIN,PANTRY /?CCL53
|
|
MOVE MARVIN,PANTRY
|
|
RFALSE
|
|
?CCL53: CALL2 IN-HEART?,PROTAGONIST
|
|
ZERO? STACK /FALSE
|
|
EQUAL? HERE,ACCESS-SPACE /FALSE
|
|
FSET? SCREENING-DOOR,OPENBIT /FALSE
|
|
ZERO? AWAITING-REPLY \FALSE
|
|
EQUAL? HERE,ENGINE-ROOM \?CCL61
|
|
LESS? LOOK-COUNTER,3 /FALSE
|
|
?CCL61: RANDOM 100
|
|
LESS? 8,STACK /FALSE
|
|
MOVE MARVIN,HERE
|
|
CRLF
|
|
PRINTR "You feel a wave of depression sweep over you, and you turn to see that Marvin the robot has stalked miserably into the room."
|
|
|
|
|
|
.FUNCT MARVIN-BITCH
|
|
CALL2 INT,I-MARVIN
|
|
PUT STACK,0,0
|
|
MOVE MARVIN,PANTRY
|
|
PRINTI "Ah. I was misled into thinking that you wanted me to open the hatch, probably by the fact that you asked me to. Obviously you changed your mind or I misunderstood you or you are a moronic imbecile. I wonder which"
|
|
EQUAL? HERE,PANTRY /?PRG7
|
|
PRINTI ". I'm going back to my pantry to be alone with my grief"
|
|
?PRG7: PRINTR "."" Marvin stalks miserably away."
|
|
|
|
|
|
.FUNCT FLOWERPOT-F
|
|
EQUAL? PRSA,V?WATER \?CCL3
|
|
EQUAL? PRSO,FLOWERPOT \?CCL3
|
|
IN? PLANT,FLOWERPOT \?CCL3
|
|
ICALL PERFORM,V?WATER,PLANT,PRSI
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?READ,V?EXAMINE \?CCL8
|
|
PRINTI "The pot is filled with fertile soil"
|
|
IN? PLANT,FLOWERPOT \?PRG23
|
|
PRINTI ", out of which has sprouted a "
|
|
ZERO? PLANT-BLOOMED /?PRG21
|
|
PRINTI "large, leafy plant"
|
|
JUMP ?PRG25
|
|
?PRG21: PRINTI "tiny plant stalk"
|
|
JUMP ?PRG25
|
|
?PRG23: PRINTI ". It is inscribed ""Inertial Guidance System -- Magrathean Missile Company."" It must have been created by the same burst of improbability that created the whale itself"
|
|
?PRG25: PRINTR "."
|
|
?CCL8: EQUAL? PRSA,V?PUT \?CCL28
|
|
EQUAL? PRSO,SATCHEL-FLUFF,JACKET-FLUFF,POCKET-FLUFF /?CTR27
|
|
EQUAL? PRSO,CUSHION-FLUFF \?CCL28
|
|
?CTR27: MOVE PRSO,LOCAL-GLOBALS
|
|
INC 'FLUFF-COUNTER
|
|
EQUAL? FLUFF-COUNTER,4 \?PRG35
|
|
CALL QUEUE,I-PLANT,10
|
|
PUT STACK,0,1
|
|
?PRG35: PRINTI "You dig a "
|
|
PRINTD FISH-HOLE
|
|
PRINTR ", gingerly place the fluff at the bottom, and cover it over."
|
|
?CCL28: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
EQUAL? PRSO,FLOWERPOT \FALSE
|
|
CALL1 TELL-ME-HOW
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-PLANT
|
|
MOVE PLANT,FLOWERPOT
|
|
CALL2 VISIBLE?,FLOWERPOT
|
|
ZERO? STACK /FALSE
|
|
CRLF
|
|
PRINTI "You notice a tiny movement from the "
|
|
PRINTD FLOWERPOT
|
|
PRINTR ". You look closely, and see a tiny sprout poking out of the soil."
|
|
|
|
|
|
.FUNCT PLANT-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
ZERO? PLANT-BLOOMED /?PRG15
|
|
PRINTI "The plant is now large and leafy."
|
|
FSET? FRUIT,NDESCBIT \?CND9
|
|
CALL2 VISIBLE?,FRUIT
|
|
ZERO? STACK /?CND9
|
|
PRINTR " Hanging from it is a large, succulent fruit."
|
|
?CND9: CRLF
|
|
RTRUE
|
|
?PRG15: PRINTR "The plant is just a tiny stem."
|
|
?CCL3: EQUAL? PRSA,V?DROP,V?TAKE \?CCL18
|
|
EQUAL? PRSO,PLANT \?CCL18
|
|
ZERO? PRSI /?CCL23
|
|
CALL1 PART-OF
|
|
RSTACK
|
|
?CCL23: ICALL PERFORM,PRSA,FLOWERPOT,PRSI
|
|
RTRUE
|
|
?CCL18: EQUAL? PRSA,V?WATER \FALSE
|
|
ZERO? PLANT-BLOOMED \FALSE
|
|
EQUAL? PRSI,TEA,SUBSTITUTE,MINERAL-WATER \FALSE
|
|
MOVE PRSI,LOCAL-GLOBALS
|
|
MOVE PLANT,LOCAL-GLOBALS
|
|
PRINTI "After several seconds, the plant shrivels up."
|
|
ICALL2 ANTI-LITTER,STR?10
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FRUIT-F,X
|
|
EQUAL? PRSA,V?PICK,V?TAKE \?CCL3
|
|
FSET? FRUIT,TRYTAKEBIT \?CCL3
|
|
FCLEAR FRUIT,TRYTAKEBIT
|
|
FCLEAR FRUIT,NDESCBIT
|
|
MOVE FRUIT,PROTAGONIST
|
|
PRINTR "Done."
|
|
?CCL3: EQUAL? PRSA,V?THROW,V?DROP \?CCL9
|
|
FSET? FRUIT,TRYTAKEBIT \?CCL9
|
|
FCLEAR FRUIT,TRYTAKEBIT
|
|
FCLEAR FRUIT,NDESCBIT
|
|
MOVE FRUIT,HERE
|
|
EQUAL? PRSA,V?DROP \?PRG17
|
|
PRINTR "Dropped."
|
|
?PRG17: PRINTR "Thrown."
|
|
?CCL9: EQUAL? PRSA,V?EAT \FALSE
|
|
?PRG21: CALL2 PICK-ONE,TOOL-LIST >TOOL-REQUIRED
|
|
INC 'X
|
|
CALL2 IN-HEART?,TOOL-REQUIRED
|
|
ZERO? STACK /?REP22
|
|
GRTR? X,50 \?PRG21
|
|
?REP22: MOVE FRUIT,LOCAL-GLOBALS
|
|
PRINTI "The fruit has a zesty taste, and you devour it greedily. Suddenly, your vision wavers, and you see yourself, as though from a distance, standing near Marvin, who asks you for"
|
|
ICALL2 ARTICLE,TOOL-REQUIRED
|
|
PRINTI ". Then, the image vanishes like a movie when the film breaks, and you find yourself still in"
|
|
ICALL ARTICLE,HERE,TRUE-VALUE
|
|
PRINTR ".
|
|
|
|
It seems that this plant is a rare horticultural phenomenon long thought to be extinct: The Tree of Foreknowledge."
|
|
|
|
|
|
.FUNCT GALLEY-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "You are in the Galley area of the ship, containing a machine which is the state of the art in Nutritional Technology, a "
|
|
PRINT SCC
|
|
PRINTC 32
|
|
PRINTD NUTRIMAT
|
|
PRINTR ". There is an exit to starboard."
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK \FALSE
|
|
RANDOM 100
|
|
LESS? 3,STACK /FALSE
|
|
SET 'FOLLOW-FLAG,6
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PUT STACK,0,1
|
|
CRLF
|
|
PRINTD ZAPHOD
|
|
PRINTI " walks in and presses the "
|
|
PRINTD PAD
|
|
PRINTI ". The "
|
|
PRINTD NUTRIMAT
|
|
PRINTR " produces a huge, ice-cold Pan-Galactic Gargle Blaster. Zaphod heads off toward the sauna, sipping loudly."
|
|
|
|
|
|
.FUNCT NUTRIMAT-F
|
|
EQUAL? NUTRIMAT,WINNER \?CCL3
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL6
|
|
EQUAL? PRSO,ME \?CCL6
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,NUTRIMAT,PRSI
|
|
SET 'WINNER,NUTRIMAT
|
|
RTRUE
|
|
?CCL6: EQUAL? PRSA,V?HELLO \?CCL10
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,NUTRIMAT
|
|
SET 'WINNER,NUTRIMAT
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?WHAT \?CCL12
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?CCL12
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,NUTRIMAT,OBJECT-OF-GAME
|
|
SET 'WINNER,NUTRIMAT
|
|
RTRUE
|
|
?CCL12: EQUAL? PRSA,V?SGIVE \?PRD18
|
|
EQUAL? PRSO,ME /?CTR15
|
|
?PRD18: EQUAL? PRSA,V?GIVE \?CCL16
|
|
EQUAL? PRSI,ME \?CCL16
|
|
?CTR15: SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-FOR,NUTRIMAT,PRSI
|
|
SET 'WINNER,NUTRIMAT
|
|
RTRUE
|
|
?CCL16: EQUAL? PRSA,V?MAKE \?PRG27
|
|
EQUAL? PRSO,NO-TEA,TEA \?PRG27
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?RUB,PAD
|
|
SET 'WINNER,NUTRIMAT
|
|
RTRUE
|
|
?PRG27: PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTI " ignores you."
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL30
|
|
PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTI " has a "
|
|
PRINTD PAD
|
|
PRINTI ", a dispensing slot, and a service panel which is "
|
|
FSET? NUTRIMAT,OPENBIT \?PRG38
|
|
PRINTI "open"
|
|
JUMP ?PRG40
|
|
?PRG38: PRINTI "closed"
|
|
?PRG40: PRINTC 46
|
|
ICALL1 FINE-PRODUCT
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL44
|
|
PRINTC 32
|
|
ICALL PERFORM,V?LISTEN,NUTRIMAT
|
|
RTRUE
|
|
?CCL44: CRLF
|
|
RTRUE
|
|
?CCL30: EQUAL? PRSA,V?LISTEN \?CCL48
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL48
|
|
PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTR " is making a faint whirring noise."
|
|
?CCL48: EQUAL? PRSA,V?ASK-FOR \?CCL54
|
|
EQUAL? PRSI,SUBSTITUTE,TEA \?CCL54
|
|
ICALL PERFORM,V?RUB,PAD
|
|
RTRUE
|
|
?CCL54: EQUAL? PRSA,V?LAMP-ON \?CCL58
|
|
ICALL PERFORM,V?RUB,PAD
|
|
RTRUE
|
|
?CCL58: EQUAL? PRSA,V?LAMP-OFF \?CCL60
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL60
|
|
ICALL PERFORM,V?RUB,PAD
|
|
RTRUE
|
|
?CCL60: EQUAL? PRSA,V?SHAKE,V?KICK,V?KILL \?CCL64
|
|
ZERO? SUBSTITUTE-DRUNK /?CCL64
|
|
PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTI " says, "
|
|
RANDOM 100
|
|
LESS? 50,STACK /?PRG74
|
|
PRINTR """Share and Enjoy."""
|
|
?PRG74: PRINTR """If you have enjoyed the experience of this drink, why not share it with your friends?"""
|
|
?CCL64: EQUAL? PRSA,V?PLUG,V?PUT \?CCL77
|
|
EQUAL? PRSI,NUTRIMAT \?CCL77
|
|
FSET? NUTRIMAT,OPENBIT /?CCL82
|
|
PRINTR "The panel is closed."
|
|
?CCL82: FIRST? NUTRIMAT \?CCL86
|
|
PRINTR "There's no room."
|
|
?CCL86: EQUAL? PRSO,NUT-COM-INTERFACE,BOARD \?CCL90
|
|
MOVE PRSO,NUTRIMAT
|
|
PRINTR "Done."
|
|
?CCL90: CALL1 V-PLUG
|
|
RSTACK
|
|
?CCL77: EQUAL? PRSA,V?LOOK-INSIDE \?CCL94
|
|
FSET? NUTRIMAT,OPENBIT /?CCL97
|
|
ICALL PERFORM,V?OPEN,NUTRIMAT
|
|
RTRUE
|
|
?CCL97: IN? BOARD,NUTRIMAT \?CCL99
|
|
PRINTI "There is a "
|
|
PRINTD BOARD
|
|
PRINTR " there."
|
|
?CCL99: IN? NUT-COM-INTERFACE,NUTRIMAT \?PRG106
|
|
PRINTI "There is a "
|
|
PRINTD NUT-COM-INTERFACE
|
|
PRINTR " there."
|
|
?PRG106: PRINTI "There's nothing in the "
|
|
PRINTD NUTRIMAT
|
|
PRINTR "."
|
|
?CCL94: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
|
EQUAL? PRSI,OBJECT-OF-GAME \FALSE
|
|
PRINTR """To provide a nutritious and flavour-enhanced diet."""
|
|
|
|
|
|
.FUNCT PAD-F
|
|
EQUAL? PRSA,V?PUSH,V?RUB \FALSE
|
|
IN? NUT-COM-INTERFACE,NUTRIMAT \?CCL6
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL9
|
|
PRINTI """Please wait..."
|
|
PRINTD NUTRIMAT
|
|
PRINTR " engaged."""
|
|
?CCL9: IN? TEA,PAD \?PRG16
|
|
CALL QUEUE,I-TEA,-1
|
|
PUT STACK,0,1
|
|
PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTI " is puzzled that you want something made by pouring boiling water on dead leaves and squirting stuff from a cow in it, and says that it will need some help from "
|
|
PRINTD EDDIE
|
|
PRINTR "."
|
|
?PRG16: PRINTI """I won't go through that again. If "
|
|
PRINTD SUBSTITUTE
|
|
PRINTR " isn't good enough, too bad."""
|
|
?CCL6: IN? SUBSTITUTE,PAD \?PRG22
|
|
MOVE SUBSTITUTE,SLOT
|
|
SET 'P-IT-OBJECT,SUBSTITUTE
|
|
PRINTI "The "
|
|
PRINTD NUTRIMAT
|
|
PRINTI " makes an instant but highly detailed examination of your taste buds, a spectroscopic analysis of your metabolism and sends tiny experimental signals down your neural pathways to see what you like.
|
|
A cupful of "
|
|
PRINTD SUBSTITUTE
|
|
PRINTR " appears in the dispensing slot."
|
|
?PRG22: PRINTI """You still haven't drunk the nutritious and flavour-enhanced cupful of "
|
|
PRINTD SUBSTITUTE
|
|
PRINTI " I already gave you,"" scolds the "
|
|
PRINTD NUTRIMAT
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT SLOT-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
EQUAL? PRSO,SLOT \FALSE
|
|
CALL1 TELL-ME-HOW
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BOARD-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
|
|
EQUAL? PRSO,BOARD \?CCL3
|
|
CALL1 TELL-ME-HOW
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
|
|
PRINTI "The "
|
|
PRINTD PRSO
|
|
PRINTI " is square, about ten inches on each side. It has a number of microchips, some printed circuitry, and a message printed in microscopic letters. There are also eight "
|
|
PRINTD DIPSWITCH
|
|
PRINTR "es, marked:
|
|
1 Cholesterol Register
|
|
2 MSG Specifier
|
|
3 Thiamin Stack
|
|
4 Piquant-O-Mat
|
|
5 Flavour Dump
|
|
6 Vitamin Interrupts
|
|
7 Nose Sequencer
|
|
8 Bouquet Arbitration Bus"
|
|
?CCL7: EQUAL? PRSA,V?MUNG \?CCL11
|
|
MOVE BOARD,LOCAL-GLOBALS
|
|
PRINTR "It's all the device deserves. It shatters with a satisfying crunch."
|
|
?CCL11: EQUAL? PRSA,V?EXAMINE-THROUGH,V?READ \?CCL15
|
|
EQUAL? PRSI,MAGNIFYING-GLASS \?CCL15
|
|
PRINTR "The message reads ""This is just a satirical device. It has no practical function."""
|
|
?CCL15: EQUAL? PRSA,V?READ \FALSE
|
|
PRINTR "The message is too small for you to read."
|
|
|
|
|
|
.FUNCT DIPSWITCH-F
|
|
EQUAL? PRSA,V?LAMP-ON,V?THROW,V?TURN /?PRG6
|
|
EQUAL? PRSA,V?MOVE,V?PUSH,V?LAMP-OFF \FALSE
|
|
?PRG6: PRINTI "Switched."
|
|
IN? BOARD,NUTRIMAT \?CCL10
|
|
PRINTI " Some lights on the "
|
|
PRINTD NUTRIMAT
|
|
PRINTR " flash briefly. A promising hum quickly dies away."
|
|
?CCL10: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SUBSTITUTE-DESCFCN,X
|
|
CALL2 DESCRIBE-DRINK,SUBSTITUTE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SUBSTITUTE-F
|
|
EQUAL? PRSA,V?DRINK-FROM,V?ENJOY,V?DRINK \?CCL3
|
|
CALL2 HELD?,SUBSTITUTE
|
|
ZERO? STACK \?CCL6
|
|
PRINT NOT-HOLDING
|
|
PRINTR " the cup!"
|
|
?CCL6: GRTR? SCORE,300 \?CCL10
|
|
PRINTR "You'd rather continue savouring that delicious tea."
|
|
?CCL10: ZERO? SUBSTITUTE-DRUNK /?CND4
|
|
SUB SCORE,30 >SCORE
|
|
SET 'DREAMING,FALSE-VALUE
|
|
PRINTI "That last gulp of the vile "
|
|
PRINTD SUBSTITUTE
|
|
ICALL2 JIGS-UP,STR?11
|
|
RTRUE
|
|
?CND4: EQUAL? SUBSTITUTE,BROWNIAN-SOURCE \?CND16
|
|
SET 'BROWNIAN-SOURCE,FALSE-VALUE
|
|
?CND16: SET 'SUBSTITUTE-DRUNK,TRUE-VALUE
|
|
SUB SCORE,30 >SCORE
|
|
MOVE SUBSTITUTE,PAD
|
|
PRINTI "It tastes almost, but not quite, entirely unlike tea. It's absolutely disgusting."
|
|
ICALL2 ANTI-LITTER,STR?10
|
|
EQUAL? HERE,GALLEY \?CND20
|
|
PRINTC 32
|
|
ICALL PERFORM,V?KILL,NUTRIMAT
|
|
RTRUE
|
|
?CND20: CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL25
|
|
PRINTI "About the only characteristic it shares with tea is that of"
|
|
PRINT BROWNIAN
|
|
PRINTC 46
|
|
EQUAL? PRSO,BROWNIAN-SOURCE \?CCL30
|
|
PRINTC 32
|
|
ICALL PERFORM,V?EXAMINE,DANGLY-BIT
|
|
RTRUE
|
|
?CCL30: CRLF
|
|
RTRUE
|
|
?CCL25: EQUAL? PRSA,V?THROW,V?POUR \FALSE
|
|
CALL1 LIQUID-SPILL
|
|
RSTACK
|
|
|
|
|
|
.FUNCT INTERFACE-BOX-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTI "The carton is labelled """
|
|
PRINTD NUT-COM-INTERFACE
|
|
PRINTI "."""
|
|
CRLF
|
|
EQUAL? PRSA,V?EXAMINE /FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BEAST-GUN-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTI "The gun has a large label which reads ""Anti-Bugblatter Beast Ray Gun."""
|
|
ICALL1 FINE-PRODUCT
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-TEA
|
|
INC 'TEA-COUNTER
|
|
EQUAL? HERE,GALLEY /?CND1
|
|
LESS? TEA-COUNTER,7 /FALSE
|
|
?CND1: CRLF
|
|
EQUAL? TEA-COUNTER,1 \?CCL7
|
|
PRINTR "The nutrimat begins to whirr."
|
|
?CCL7: EQUAL? TEA-COUNTER,2 \?CCL11
|
|
PRINTR "A red sign lights up saying:
|
|
MEMORY OVERLOAD"
|
|
?CCL11: EQUAL? TEA-COUNTER,3 \?CCL15
|
|
PRINTR "Another red sign lights up saying:
|
|
RESERVE MEMORY OVERLOAD"
|
|
?CCL15: EQUAL? TEA-COUNTER,4 \?CCL19
|
|
PRINTR "A third sign lights up:
|
|
PROCESSOR OVERLOAD,
|
|
SWITCH TO TERMINAL MODE"
|
|
?CCL19: EQUAL? TEA-COUNTER,5 \?CCL23
|
|
PRINTR "A blue sign lights up:
|
|
NUTRIMAT GOING ON LINE"
|
|
?CCL23: EQUAL? TEA-COUNTER,6 \?CCL27
|
|
PRINTR "More and more signs light up:
|
|
SHIPBOARD COMPUTER ACCESSED
|
|
MAIN MEMORY OVERLOAD
|
|
RESERVE MEMORY ACCESSED
|
|
PARALLEL PROCESSORS ON LINE
|
|
|
|
****************************
|
|
** NUMBERS BEING CRUNCHED **
|
|
****************************"
|
|
?CCL27: EQUAL? TEA-COUNTER,7 \?CCL31
|
|
FSET THUMB,MUNGEDBIT
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". Emergency situation! Nuclear missiles have just been launched at us from the approaching planet, which my data banks indicate is"
|
|
PRINT LOST-PLANET
|
|
PRINTI ". I cannot perform evasive maneuvers because"
|
|
PRINT ENGAGED
|
|
PRINTD NUTRIMAT
|
|
PRINTR ". The missiles will turn this ship into a huge atomic fireball in approximately eight turns. By the way, somebody didn't finish their spinach at dinner."""
|
|
?CCL31: LESS? TEA-COUNTER,15 \?CCL35
|
|
PRINTR "You hear distant sounds of panic: shouts of anger, cries of alarm, pounding feet."
|
|
?CCL35: CALL2 INT,I-TEA
|
|
PUT STACK,0,0
|
|
PRINTI "It seems that the missiles struck "
|
|
PRINTD HEART-OF-GOLD
|
|
ICALL2 JIGS-UP,STR?13
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-LANDING
|
|
CALL2 IN-HEART?,PROTAGONIST
|
|
ZERO? STACK \?CCL3
|
|
CALL QUEUE,I-LANDING,12
|
|
PUT STACK,0,1
|
|
RFALSE
|
|
?CCL3: MOVE MARVIN,PANTRY
|
|
CALL2 INT,I-MARVIN
|
|
PUT STACK,0,0
|
|
SET 'LANDED,TRUE-VALUE
|
|
CRLF
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". We have just landed on"
|
|
PRINT LOST-PLANET
|
|
PRINTR ". I don't want anyone going outside until I've checked the atmosphere, climatic conditions, existence of dangerous wildlife, airborne diseases, volcanic activity, presence of real estate agents, and more than eight thousand other possible dangers. This routine check will take 14.9 years. And don't even think about leaving until I finish, because I'm jamming the hatch."""
|
|
|
|
|
|
.FUNCT SAUNA-ENTER-F
|
|
ICALL1 UNPLUG-HELD-STUFF
|
|
RANDOM 12
|
|
ADD 10,STACK
|
|
ADD MOVES,STACK >MOVES
|
|
PRINTI "You enter the sauna. After several "
|
|
CALL2 RUNNING?,I-FORD
|
|
ZERO? STACK /?PRG8
|
|
PRINTI "minutes"
|
|
JUMP ?PRG10
|
|
?PRG8: PRINTI "hours"
|
|
?PRG10: PRINTI ", you come out a changed man."
|
|
CALL2 HELD?,FLOWERPOT
|
|
ZERO? STACK /?CND12
|
|
IN? PLANT,FLOWERPOT \?CND12
|
|
ZERO? PLANT-BLOOMED \?CND12
|
|
SET 'PLANT-BLOOMED,TRUE-VALUE
|
|
ADD SCORE,25 >SCORE
|
|
MOVE FRUIT,FLOWERPOT
|
|
PRINTI " You have with you a changed plant."
|
|
?CND12: CRLF
|
|
IN? MARVIN,BRIDGE \FALSE
|
|
MOVE MARVIN,PANTRY
|
|
RFALSE
|
|
|
|
|
|
.FUNCT BRIDGE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the bridge of "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTI ". A gangway leads down, and steam comes from an entrance to port. Next to the control console is "
|
|
PRINTD EDDIE
|
|
PRINTC 46
|
|
ZERO? DRIVE-TO-CONTROLS /?CCL8
|
|
PRINTC 32
|
|
ICALL PERFORM,V?EXAMINE,LARGE-RECEPTACLE
|
|
JUMP ?CND6
|
|
?CCL8: CRLF
|
|
?CND6: FSET? BRIDGE,NDESCBIT /FALSE
|
|
FSET BRIDGE,NDESCBIT
|
|
CRLF
|
|
PRINTR "At the controls, apparently expecting you and Ford, are a man with more than the usual number of heads (the name ""Zaphod"" is stitched on his shirt) and a dark-haired woman, holding a handbag. Both seem somehow familiar."
|
|
|
|
|
|
.FUNCT SAUNA-PSEUDO
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?THROUGH \FALSE
|
|
EQUAL? HERE,BRIDGE \FALSE
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PEOPLE-PSEUDO
|
|
IN? ZAPHOD,HERE /?CCL3
|
|
PRINTR "What people?"
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
ICALL PERFORM,V?EXAMINE,ZAPHOD
|
|
ICALL PERFORM,V?EXAMINE,TRILLIAN
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EDDIE-F
|
|
EQUAL? EDDIE,WINNER \?CCL3
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL6
|
|
EQUAL? PRSO,ME \?CCL6
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,EDDIE,PRSI
|
|
SET 'WINNER,EDDIE
|
|
RTRUE
|
|
?CCL6: EQUAL? PRSA,V?HELLO \?CCL10
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,EDDIE
|
|
SET 'WINNER,EDDIE
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?WHAT \?CCL12
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?CCL12
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,EDDIE,OBJECT-OF-GAME
|
|
SET 'WINNER,EDDIE
|
|
RTRUE
|
|
?CCL12: EQUAL? PRSA,V?LAMP-ON \?CCL16
|
|
EQUAL? PRSO,SPARE-DRIVE,MAIN-DRIVE \?CCL16
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?PRG24
|
|
PRINTI """Sorry,"
|
|
PRINT ENGAGED
|
|
PRINTD NUTRIMAT
|
|
PRINTR ". I can't do everything, you know."""
|
|
?PRG24: PRINTI """Sorry, current course for"
|
|
PRINT LOST-PLANET
|
|
PRINTI " can be countermanded only by "
|
|
PRINTD ZAPHOD
|
|
PRINTR "."""
|
|
?CCL16: EQUAL? PRSA,V?OPEN,V?REPAIR \?CCL27
|
|
EQUAL? PRSO,HATCH \?CCL27
|
|
ZERO? LANDED /?CCL27
|
|
PRINTR """Not until I completely check out the safety of this planet. Please wait approximately fourteen years. In the meantime, have you brushed your teeth lately?"""
|
|
?CCL27: EQUAL? PRSA,V?YES \?CCL34
|
|
EQUAL? AWAITING-REPLY,18 \?CCL34
|
|
CALL1 V-YES
|
|
RSTACK
|
|
?CCL34: EQUAL? PRSA,V?NO \?CCL38
|
|
EQUAL? AWAITING-REPLY,18 \?CCL38
|
|
CALL1 V-NO
|
|
RSTACK
|
|
?CCL38: SET 'AWAITING-REPLY,18
|
|
CALL QUEUE,I-REPLY,2
|
|
PUT STACK,0,1
|
|
PRINTI "Eddie sighs deeply. ""I can't talk right now. Do you know how difficult it is to pilot a ship as complicated as this one?"""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?LAMP-OFF \?CCL44
|
|
PRINTR "You don't know how (fortunately)."
|
|
?CCL44: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
|
EQUAL? PRSI,OBJECT-OF-GAME \FALSE
|
|
SET 'AWAITING-REPLY,19
|
|
CALL QUEUE,I-REPLY,2
|
|
PUT STACK,0,1
|
|
PRINTI """To pilot "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTI ", process data requests from the "
|
|
PRINTD NUTRIMAT
|
|
PRINTR " and keep the crew healthy. Read your manual! How do you expect to get anywhere in life? But don't read unless there's enough light."""
|
|
|
|
|
|
.FUNCT LARGE-RECEPTACLE-F
|
|
ZERO? DRIVE-TO-CONTROLS /FALSE
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTI "A "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTR " is plugged into the large receptacle."
|
|
|
|
|
|
.FUNCT ZAPHOD-F
|
|
EQUAL? IDENTITY-FLAG,ZAPHOD \?CCL3
|
|
EQUAL? PRSO,PHIL,ZAPHOD \?CCL6
|
|
ICALL PERFORM,PRSA,ME,PRSI
|
|
RTRUE
|
|
?CCL6: ICALL PERFORM,PRSA,PRSO,ME
|
|
RTRUE
|
|
?CCL3: EQUAL? WINNER,ZAPHOD \?CCL8
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL11
|
|
EQUAL? PRSO,ME \?CCL11
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,ZAPHOD,PRSI
|
|
SET 'WINNER,ZAPHOD
|
|
RTRUE
|
|
?CCL11: EQUAL? PRSA,V?HELLO \?CCL15
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,ZAPHOD
|
|
SET 'WINNER,ZAPHOD
|
|
RTRUE
|
|
?CCL15: EQUAL? PRSA,V?WHAT \?PRG22
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?PRG22
|
|
PRINT ASK-ABOUT-OBJECT
|
|
CRLF
|
|
RTRUE
|
|
?PRG22: PRINTI """Shut up, Earthman."""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL8: EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL25
|
|
EQUAL? PRSI,PHIL \?CCL28
|
|
EQUAL? PRSA,V?GIVE,V?SHOW \?CCL28
|
|
ICALL PERFORM,V?HELLO,PHIL
|
|
RTRUE
|
|
?CCL28: EQUAL? PRSA,V?TELL,V?HELLO,V?SGIVE /?PRD34
|
|
EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?CCL32
|
|
?PRD34: EQUAL? PRSO,PHIL \?CCL32
|
|
IN? PHIL,HERE /?CND37
|
|
PRINTR "Phil's not here anymore!"
|
|
?CND37: FSET? JACKET-FLUFF,TRYTAKEBIT /?PRG43
|
|
CALL QUEUE,I-ZAPHOD,3
|
|
PUT STACK,0,1
|
|
?PRG43: PRINTI "Phil must not have noticed you, because he just moved into the "
|
|
EQUAL? HERE,LIVING-ROOM \?CCL47
|
|
MOVE PHIL,DINING-ROOM
|
|
MOVE CAGE,DINING-ROOM
|
|
PRINTD DINING-ROOM
|
|
JUMP ?PRG56
|
|
?CCL47: EQUAL? HERE,DINING-ROOM \?CCL51
|
|
MOVE PHIL,KITCHEN
|
|
MOVE CAGE,KITCHEN
|
|
PRINTD KITCHEN
|
|
JUMP ?PRG56
|
|
?CCL51: MOVE PHIL,LIVING-ROOM
|
|
MOVE CAGE,LIVING-ROOM
|
|
PRINTD LIVING-ROOM
|
|
?PRG56: PRINTC 46
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL32: EQUAL? PRSA,V?EXAMINE \?CCL59
|
|
PRINTR "He is very attractive, if a little weird, and has a slight otherworldly look. You suspect he's a party crasher, an impression reinforced by his inappropriate garb; he seems clothed for a fancy dress party or something, because he has what appears to be a large birdcage on his shoulder with a black drape over it. The bird inside must be asleep, because you can hear snoring coming from inside it."
|
|
?CCL59: EQUAL? PRSA,V?PICK-UP \FALSE
|
|
PRINTR "You're not that kind of girl."
|
|
?CCL25: EQUAL? PRSA,V?EXAMINE \?CCL67
|
|
PRINTR "Zaphod has two heads."
|
|
?CCL67: EQUAL? PRSA,V?FOLLOW \?CCL71
|
|
EQUAL? FOLLOW-FLAG,3 \?CCL74
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL74: EQUAL? FOLLOW-FLAG,6 \FALSE
|
|
CALL2 DO-WALK,P?EAST
|
|
RSTACK
|
|
?CCL71: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
|
EQUAL? PRSI,OBJECT-OF-GAME \FALSE
|
|
PRINT ASK-ABOUT-OBJECT
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-ZAPHOD
|
|
ZERO? ITEM-DROPPED-AT-PARTY /?CCL3
|
|
CALL QUEUE,I-ZAPHOD,3
|
|
PUT STACK,0,1
|
|
CALL2 RUNNING?,I-HOSTESS
|
|
ZERO? STACK /FALSE
|
|
MOVE PHIL,HERE
|
|
MOVE CAGE,HERE
|
|
CRLF
|
|
PRINTR "Out of the corner of your eye, you see Phil leering at you. He starts to approach, but then notices the hostess with you and veers away."
|
|
?CCL3: ADD SCORE,25 >SCORE
|
|
FSET LIVING-ROOM,REVISITBIT
|
|
FSET HOSTESS,NDESCBIT
|
|
CRLF
|
|
ICALL2 JIGS-UP,STR?15
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TRILLIAN-F
|
|
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL3
|
|
EQUAL? TRILLIAN,PRSO \?CCL6
|
|
ICALL PERFORM,PRSA,ME,PRSI
|
|
RTRUE
|
|
?CCL6: ICALL PERFORM,PRSA,PRSO,ME
|
|
RTRUE
|
|
?CCL3: EQUAL? TRILLIAN,WINNER \?CCL8
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL11
|
|
EQUAL? PRSO,ME \?CCL11
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?ASK-ABOUT,TRILLIAN,PRSI
|
|
SET 'WINNER,TRILLIAN
|
|
RTRUE
|
|
?CCL11: EQUAL? PRSA,V?HELLO \?CCL15
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?HELLO,TRILLIAN
|
|
SET 'WINNER,TRILLIAN
|
|
RTRUE
|
|
?CCL15: EQUAL? PRSA,V?WHAT \?CCL17
|
|
EQUAL? PRSO,OBJECT-OF-GAME \?CCL17
|
|
PRINT ASK-ABOUT-OBJECT
|
|
CRLF
|
|
RTRUE
|
|
?CCL17: EQUAL? PRSA,V?SHOOT \?PRD25
|
|
IN? BLASTER,TRILLIAN \?PRD25
|
|
EQUAL? PRSO,RIFLES /?CTR22
|
|
?PRD25: EQUAL? PRSA,V?SSHOOT \?CCL23
|
|
IN? BLASTER,TRILLIAN \?CCL23
|
|
EQUAL? PRSI,RIFLES \?CCL23
|
|
?CTR22: MOVE BLASTER,PROTAGONIST
|
|
SET 'WINNER,PROTAGONIST
|
|
ICALL PERFORM,V?SHOOT,RIFLES,BLASTER
|
|
SET 'WINNER,TRILLIAN
|
|
MOVE BLASTER,TRILLIAN
|
|
RTRUE
|
|
?CCL23: EQUAL? IDENTITY-FLAG,ZAPHOD \?PRG36
|
|
PRINTI """Shut up, you jerk!"" hisses "
|
|
PRINTD TRILLIAN
|
|
PRINTI ". ""Just get on with the plan."""
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?PRG36: PRINTD TRILLIAN
|
|
PRINTI " smiles disinterestedly at you and looks away."
|
|
CRLF
|
|
CALL1 FUCKING-CLEAR
|
|
RSTACK
|
|
?CCL8: EQUAL? PRSA,V?SHOOT \?CCL39
|
|
EQUAL? PRSI,BLASTER \?CCL39
|
|
PRINTI "How heartless! Fortunately, justice prevails as the guards"
|
|
ICALL1 GUARD-DEATH
|
|
RTRUE
|
|
?CCL39: EQUAL? PRSA,V?ASK-ABOUT \?CCL45
|
|
EQUAL? PRSI,OBJECT-OF-GAME \?CCL45
|
|
PRINT ASK-ABOUT-OBJECT
|
|
CRLF
|
|
RTRUE
|
|
?CCL45: EQUAL? FOLLOW-FLAG,3 \?CCL51
|
|
EQUAL? PRSA,V?FOLLOW \?CCL51
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL51: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
IN? BLASTER,TRILLIAN \FALSE
|
|
PRINTR "She's holding a blaster at your head."
|
|
|
|
|
|
.FUNCT HANDBAG-F
|
|
EQUAL? PRSA,V?THROW,V?DROP \?CCL3
|
|
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL3
|
|
CALL1 DROP-AT-PARTY
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?TAKE \FALSE
|
|
IN? HANDBAG,TRILLIAN \FALSE
|
|
PRINTD TRILLIAN
|
|
PRINTR " pulls it away."
|
|
|
|
|
|
.FUNCT FORE-CORRIDOR-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is one end of a short corridor that continues "
|
|
EQUAL? HERE,FORE-CORRIDOR \?PRG11
|
|
PRINTI "aft"
|
|
JUMP ?PRG13
|
|
?PRG11: PRINTI "fore"
|
|
?PRG13: PRINTI " along the main deck of "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTI ". Doorways lead to "
|
|
EQUAL? HERE,FORE-CORRIDOR \?PRG20
|
|
PRINTI "fore"
|
|
JUMP ?PRG22
|
|
?PRG20: PRINTI "aft"
|
|
?PRG22: PRINTI " and port. In addition, a gangway leads "
|
|
EQUAL? HERE,FORE-CORRIDOR \?PRG29
|
|
PRINTI "up"
|
|
JUMP ?PRG31
|
|
?PRG29: PRINTI "down"
|
|
?PRG31: PRINTR "ward."
|
|
|
|
|
|
.FUNCT AFT-CORRIDOR-F,RARG
|
|
EQUAL? RARG,M-ENTER \?CCL3
|
|
FCLEAR HATCH,DOORBIT
|
|
RFALSE
|
|
?CCL3: EQUAL? RARG,M-LOOK \FALSE
|
|
CALL2 FORE-CORRIDOR-F,M-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-REPLY
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT ENGINE-ROOM-ENTER-F
|
|
INC 'ARGUMENT-COUNTER
|
|
EQUAL? ARGUMENT-COUNTER,1 \?CCL3
|
|
SET 'AWAITING-REPLY,1
|
|
CALL QUEUE,I-ARGUMENT,2
|
|
PUT STACK,0,1
|
|
PRINTI "That entrance leads to the"
|
|
PRINT IID
|
|
PRINTI " chamber. It's supposed to be a terribly dangerous area of the ship. Are you sure you want to go in there?"
|
|
CRLF
|
|
RFALSE
|
|
?CCL3: EQUAL? ARGUMENT-COUNTER,2 \?CCL7
|
|
SET 'AWAITING-REPLY,1
|
|
CALL QUEUE,I-ARGUMENT,2
|
|
PUT STACK,0,1
|
|
PRINTI "Absolutely sure?"
|
|
CRLF
|
|
RFALSE
|
|
?CCL7: EQUAL? ARGUMENT-COUNTER,3 \?CCL11
|
|
CALL2 INT,I-ARGUMENT
|
|
PUT STACK,0,0
|
|
SET 'AWAITING-REPLY,100
|
|
CALL QUEUE,I-REPLY,2
|
|
PUT STACK,0,1
|
|
PRINTI "I can tell you don't want to really. You stride away with a spring in your step, wisely leaving the Drive Chamber safely behind you. Telegrams arrive from well-wishers in all corners of the Galaxy congratulating you on your prudence and wisdom, cheering you up immensely."
|
|
CRLF
|
|
RFALSE
|
|
?CCL11: EQUAL? ARGUMENT-COUNTER,4 \?CCL15
|
|
CALL QUEUE,I-ARGUMENT,2
|
|
PUT STACK,0,1
|
|
CALL QUEUE,I-REPLY,2
|
|
PUT STACK,0,1
|
|
SET 'AWAITING-REPLY,2
|
|
PRINTI "What? You're joking, of course. Can I ask you to reconsider?"
|
|
CRLF
|
|
RFALSE
|
|
?CCL15: GRTR? ARGUMENT-COUNTER,4 \FALSE
|
|
CALL2 INT,I-ARGUMENT
|
|
PUT STACK,0,0
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
RETURN ENGINE-ROOM
|
|
|
|
|
|
.FUNCT I-ARGUMENT
|
|
EQUAL? PRSA,V?NO \?PRD5
|
|
EQUAL? AWAITING-REPLY,1 /?CND1
|
|
?PRD5: EQUAL? PRSA,V?YES \?CCL3
|
|
EQUAL? AWAITING-REPLY,2 /?CND1
|
|
?CCL3: CRLF
|
|
?CND1: SET 'AWAITING-REPLY,FALSE-VALUE
|
|
SET 'ARGUMENT-COUNTER,0
|
|
PRINTR "I knew you weren't serious about entering that extremely dangerous area."
|
|
|
|
|
|
.FUNCT ENTRY-BAY-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
SET 'IDENTITY-FLAG,ARTHUR
|
|
MOVE HATCH,GLOBAL-OBJECTS
|
|
MOVE MECHANISM,GLOBAL-OBJECTS
|
|
MOVE ARTHUR,GLOBAL-OBJECTS
|
|
FSET? ENTRY-BAY,NDESCBIT \?CCL6
|
|
MOVE FORD,LOCAL-GLOBALS
|
|
MOVE TRILLIAN,LOCAL-GLOBALS
|
|
MOVE ZAPHOD,LOCAL-GLOBALS
|
|
RFALSE
|
|
?CCL6: FSET ENTRY-BAY,NDESCBIT
|
|
CALL QUEUE,I-FORD,1
|
|
PUT STACK,0,1
|
|
RFALSE
|
|
|
|
|
|
.FUNCT SALES-BROCHURE-F
|
|
EQUAL? PRSA,V?READ \FALSE
|
|
PRINTI """Equipped with a sensational breakthrough in Improbability Physics, "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTI " will make you the envy of every major government. When the ship's"
|
|
PRINT IID
|
|
PRINTI " is activated, "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTI " passes through every point in the universe simultaneously, making travel to any single location a breeze!""
|
|
|
|
The "
|
|
PRINTD SALES-BROCHURE
|
|
PRINTI " goes on to describe the ship's complement of "
|
|
PRINT SCC
|
|
PRINTI "-designed robots and computers, all equipped with GPP ("
|
|
PRINT GPP
|
|
PRINTR ")."
|
|
|
|
|
|
.FUNCT ENGINE-ROOM-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
INC 'LOOK-COUNTER
|
|
EQUAL? LOOK-COUNTER,1 \?CCL6
|
|
PRINTI "You're in the"
|
|
PRINT IID
|
|
PRINTR " chamber. Nothing happens; there is nothing to see."
|
|
?CCL6: EQUAL? LOOK-COUNTER,2 \?CCL10
|
|
PRINTR "I mean it! There's nothing to see here!"
|
|
?CCL10: GRTR? LOOK-COUNTER,2 \FALSE
|
|
EQUAL? LOOK-COUNTER,3 \?PRG19
|
|
MOVE MAIN-DRIVE,GLOBAL-OBJECTS
|
|
MOVE SPARE-DRIVE,HERE
|
|
MOVE PLIERS,HERE
|
|
MOVE RASP,HERE
|
|
ADD SCORE,25 >SCORE
|
|
PRINTI "Okay, okay, there are a FEW things to see here. "
|
|
?PRG19: PRINTI "This is the room that houses the powerful In"
|
|
PRINT FIG
|
|
PRINTI " that drives "
|
|
PRINTD HEART-OF-GOLD
|
|
PRINTR ". An exit lies fore of here."
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
EQUAL? LOOK-COUNTER,3 \FALSE
|
|
SET 'LOOK-COUNTER,4
|
|
CRLF
|
|
PRINTR "(Footnote 10)"
|
|
|
|
|
|
.FUNCT MAIN-DRIVE-F
|
|
EQUAL? PRSA,V?RUB,V?EXAMINE \?CCL3
|
|
EQUAL? HERE,ENGINE-ROOM /?CCL3
|
|
CALL2 CANT-SEE,MAIN-DRIVE
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?LAMP-ON \FALSE
|
|
PRINTI "Only "
|
|
PRINTD EDDIE
|
|
PRINTR " can activate the drive."
|
|
|
|
|
|
.FUNCT SPARE-DRIVE-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "The "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTI " has a switch"
|
|
IN? LARGE-PLUG,SPARE-DRIVE \?PRG18
|
|
PRINTI ", a long cord "
|
|
ZERO? DRIVE-TO-CONTROLS /?PRG16
|
|
PRINTI "plugged into the control console,"
|
|
JUMP ?PRG20
|
|
?PRG16: PRINTI "ending with a "
|
|
PRINTD LARGE-PLUG
|
|
PRINTC 44
|
|
JUMP ?PRG20
|
|
?PRG18: PRINTI ", a fused spot where a long cord once began,"
|
|
?PRG20: PRINTI " and a short cord "
|
|
ZERO? DRIVE-TO-PLOTTER /?PRG27
|
|
PRINTI "plugged into the "
|
|
PRINTD PLOTTER
|
|
JUMP ?PRG29
|
|
?PRG27: PRINTI "ending with a "
|
|
PRINTD SMALL-PLUG
|
|
?PRG29: PRINTC 46
|
|
ICALL1 FINE-PRODUCT
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?TIE,V?PLUG \?PRD34
|
|
EQUAL? PRSO,SPARE-DRIVE /?CTR31
|
|
?PRD34: EQUAL? PRSA,V?PUT \?CCL32
|
|
EQUAL? PRSI,SMALL-RECEPTACLE,LARGE-RECEPTACLE \?CCL32
|
|
?CTR31: IN? LARGE-PLUG,SPARE-DRIVE \?CCL41
|
|
PRINTI "In case you hadn't noticed, there are two connections leading from the "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTR "..."
|
|
?CCL41: ICALL PERFORM,V?PLUG,SMALL-PLUG,PRSI
|
|
RTRUE
|
|
?CCL32: EQUAL? PRSA,V?UNPLUG \?CCL45
|
|
ZERO? DRIVE-TO-CONTROLS \?CTR47
|
|
ZERO? DRIVE-TO-PLOTTER /?PRG53
|
|
?CTR47: SET 'DRIVE-TO-PLOTTER,FALSE-VALUE
|
|
SET 'DRIVE-TO-CONTROLS,FALSE-VALUE
|
|
FCLEAR SPARE-DRIVE,NDESCBIT
|
|
PRINTR "Done."
|
|
?PRG53: PRINT NOT-PLUGGED
|
|
CRLF
|
|
RTRUE
|
|
?CCL45: EQUAL? PRSA,V?LAMP-ON \?CCL56
|
|
ICALL PERFORM,V?LAMP-ON,SWITCH
|
|
RTRUE
|
|
?CCL56: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
CALL1 V-CARVE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LARGE-PLUG-F
|
|
EQUAL? PRSA,V?TIE,V?PUT,V?PLUG \?CCL3
|
|
EQUAL? PRSI,CONTROLS,LARGE-RECEPTACLE \?CCL3
|
|
ZERO? DRIVE-TO-CONTROLS /?CND6
|
|
PRINTR "It already is!"
|
|
?CND6: SET 'DRIVE-TO-CONTROLS,TRUE-VALUE
|
|
FSET SPARE-DRIVE,NDESCBIT
|
|
PRINTI "Plugged."
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK \?CND12
|
|
PRINTC 32
|
|
PRINTD EDDIE
|
|
PRINTI " says, ""You shouldn't be playing around with a "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTI ". Who knows where it's been?"""
|
|
CRLF
|
|
CRLF
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". Someone has connected a "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTI " to"
|
|
PRINT MOP
|
|
PRINTR ". Better be an emergency, that's all I have to say."""
|
|
?CND12: CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?TAKE \?CCL17
|
|
EQUAL? PRSI,CONTROLS \?CCL17
|
|
ICALL PERFORM,V?UNPLUG,LARGE-PLUG
|
|
RTRUE
|
|
?CCL17: EQUAL? PRSA,V?REMOVE,V?UNPLUG \FALSE
|
|
ZERO? DRIVE-TO-CONTROLS /?PRG27
|
|
SET 'DRIVE-TO-CONTROLS,FALSE-VALUE
|
|
FCLEAR SPARE-DRIVE,NDESCBIT
|
|
PRINTR "Done."
|
|
?PRG27: PRINT NOT-PLUGGED
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SMALL-PLUG-F
|
|
EQUAL? PRSA,V?TIE,V?PUT,V?PLUG \?CCL3
|
|
EQUAL? PRSI,PLOTTER,SMALL-RECEPTACLE \?CCL3
|
|
ZERO? DRIVE-TO-PLOTTER /?CND6
|
|
PRINTR "It already is!"
|
|
?CND6: SET 'DRIVE-TO-PLOTTER,TRUE-VALUE
|
|
PRINTR "Plugged."
|
|
?CCL3: EQUAL? PRSA,V?TAKE \?CCL13
|
|
EQUAL? PRSI,PLOTTER \?CCL13
|
|
ICALL PERFORM,V?UNPLUG,SMALL-PLUG
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSA,V?REMOVE,V?UNPLUG \FALSE
|
|
ZERO? DRIVE-TO-PLOTTER /?PRG23
|
|
SET 'DRIVE-TO-PLOTTER,FALSE-VALUE
|
|
PRINTR "Done."
|
|
?PRG23: PRINT NOT-PLUGGED
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SWITCH-F
|
|
EQUAL? PRSA,V?PUSH,V?TURN,V?LAMP-ON /?CCL3
|
|
EQUAL? PRSA,V?THROW,V?MOVE \FALSE
|
|
?CCL3: ZERO? DRIVE-TO-PLOTTER /?PRG48
|
|
ZERO? BROWNIAN-SOURCE /?PRG48
|
|
MOVE SPARE-DRIVE,HERE
|
|
MOVE PLOTTER,HERE
|
|
MOVE BROWNIAN-SOURCE,HERE
|
|
EQUAL? BROWNIAN-SOURCE,TEA \?CND11
|
|
SET 'HOLDING-NO-TEA,TRUE-VALUE
|
|
?CND11: ZERO? DRIVE-TO-CONTROLS /?CCL15
|
|
PRINTI "As you flip the switch, sparks fly from the large receptacle. "
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?PRG25
|
|
GRTR? TEA-COUNTER,6 \?PRG25
|
|
PRINTI """My new control console!"" wails "
|
|
PRINTD EDDIE
|
|
PRINTI ". ""This is the thanks I get"
|
|
JUMP ?PRG27
|
|
?PRG25: PRINTI """Now look what you've done. You've destroyed"
|
|
PRINT MOP
|
|
PRINTI ". Don't you know it's only for emergencies"
|
|
?PRG27: PRINTI "?"""
|
|
CRLF
|
|
CRLF
|
|
SET 'DRIVE-TO-CONTROLS,FALSE-VALUE
|
|
FCLEAR SPARE-DRIVE,NDESCBIT
|
|
MOVE LARGE-PLUG,LOCAL-GLOBALS
|
|
MOVE LARGE-RECEPTACLE,LOCAL-GLOBALS
|
|
CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL31
|
|
GRTR? TEA-COUNTER,6 \?CCL31
|
|
MOVE TEA,SLOT
|
|
CALL2 INT,I-TEA
|
|
PUT STACK,0,0
|
|
CALL QUEUE,I-LANDING,24
|
|
PUT STACK,0,1
|
|
SET 'FOLLOW-FLAG,3
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PUT STACK,0,1
|
|
PRINTI "The universe goes crazy for a moment."
|
|
CRLF
|
|
CRLF
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". The missiles have turned into a sperm whale"
|
|
ICALL2 FACTOR,STR?18
|
|
PRINTI " The whale is currently plummeting toward"
|
|
PRINT LOST-PLANET
|
|
PRINTI ". I hope this will teach you to listen to me when I say that legendary lost planets can be dangerous. I am proceeding with the preset landing instructions.""
|
|
|
|
Ford, Zaphod, and "
|
|
PRINTD TRILLIAN
|
|
PRINTR " saunter by on their way back to the sauna. ""Good work, kid,"" says Zaphod, slamming you on the back."
|
|
?CCL31: CALL2 INT,I-TEA
|
|
PUT STACK,0,0
|
|
SUB SCORE,30 >SCORE
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". Someone has activated a "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTI " at"
|
|
PRINT MOP
|
|
PRINTI ", moving us 8 billion parsecs away from our destination, adding seven weeks to our trip. As if that isn't bad enough, all 300 members of the Fronurbdi Planetary Senate appeared in the "
|
|
PRINTD HATCHWAY
|
|
ICALL2 FACTOR,STR?19
|
|
PRINTR " I'm flushing them into space now, but who knows what sort of germs they've dragged into the ship? Everyone should take extra vitamins today."""
|
|
?CCL15: CALL2 RUNNING?,I-TEA
|
|
ZERO? STACK /?CCL43
|
|
SET 'DREAMING,TRUE-VALUE
|
|
CALL2 INT,I-TEA
|
|
PUT STACK,0,0
|
|
ICALL2 JIGS-UP,STR?20
|
|
RTRUE
|
|
?CCL43: EQUAL? BROWNIAN-SOURCE,TEA \?CND44
|
|
SET 'DARK-CONTROLLED,TRUE-VALUE
|
|
?CND44: MOVE HATCH,LOCAL-GLOBALS
|
|
MOVE MECHANISM,LOCAL-GLOBALS
|
|
CALL2 PICK-ONE,DARK-ENTRANCES
|
|
PRINT STACK
|
|
CRLF
|
|
CRLF
|
|
ICALL2 GOTO,DARK
|
|
RTRUE
|
|
?PRG48: PRINTR "Nothing happens."
|
|
|
|
|
|
.FUNCT PLOTTER-DESCFCN,X
|
|
PRINTI "Lying on the deck is a plotter"
|
|
ZERO? DRIVE-TO-PLOTTER /?PRG8
|
|
PRINTI " connected to a "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTC 46
|
|
JUMP ?CND3
|
|
?PRG8: PRINTC 46
|
|
?CND3: ZERO? BROWNIAN-SOURCE /?CND10
|
|
PRINTI " The plotter's "
|
|
PRINTD DANGLY-BIT
|
|
PRINTI " is submerged in "
|
|
PRINTD BROWNIAN-SOURCE
|
|
PRINTR "."
|
|
?CND10: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PLOTTER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "The "
|
|
PRINTD PRSO
|
|
PRINTI " has a "
|
|
PRINTD SMALL-RECEPTACLE
|
|
PRINTI " and a "
|
|
PRINTD DANGLY-BIT
|
|
ZERO? BROWNIAN-SOURCE /?CND6
|
|
PRINTI " which is sitting in "
|
|
PRINTD BROWNIAN-SOURCE
|
|
?CND6: ZERO? DRIVE-TO-PLOTTER /?PRG14
|
|
PRINTI ". The short cord from the "
|
|
PRINTD SPARE-DRIVE
|
|
PRINTI " is plugged in the receptacle"
|
|
?PRG14: PRINTC 46
|
|
ICALL1 FINE-PRODUCT
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?PLUG \?CCL17
|
|
EQUAL? PRSI,SPARE-DRIVE \?CCL17
|
|
ICALL PERFORM,V?PLUG,SPARE-DRIVE,PLOTTER
|
|
RTRUE
|
|
?CCL17: EQUAL? PRSA,V?UNPLUG \?CCL21
|
|
ZERO? DRIVE-TO-PLOTTER /?PRG27
|
|
SET 'DRIVE-TO-PLOTTER,FALSE-VALUE
|
|
PRINTR "Unplugged."
|
|
?PRG27: PRINT NOT-PLUGGED
|
|
CRLF
|
|
RTRUE
|
|
?CCL21: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
CALL1 V-CARVE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DANGLY-BIT-F
|
|
EQUAL? PRSA,V?PUT \?CCL3
|
|
EQUAL? PRSI,TEA,SUBSTITUTE \?CCL3
|
|
ZERO? BROWNIAN-SOURCE /?CND6
|
|
PRINTI "But the "
|
|
PRINTD DANGLY-BIT
|
|
PRINTI " is already in"
|
|
ICALL ARTICLE,BROWNIAN-SOURCE,TRUE-VALUE
|
|
PRINTR "!"
|
|
?CND6: SET 'BROWNIAN-SOURCE,PRSI
|
|
EQUAL? PRSI,TEA \?PRG16
|
|
ZERO? CARELESS-WORDS-FLAG \?PRG16
|
|
SET 'CARELESS-WORDS-FLAG,TRUE-VALUE
|
|
ICALL2 SAVE-INPUT,FIRST-BUFFER
|
|
CALL QUEUE,I-CARELESS-WORDS,3
|
|
PUT STACK,0,1
|
|
?PRG16: PRINTR "Done."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL19
|
|
ZERO? BROWNIAN-SOURCE /?CCL19
|
|
PRINTI "The "
|
|
PRINTD DANGLY-BIT
|
|
PRINTI " is suspended in the cup of "
|
|
PRINTD BROWNIAN-SOURCE
|
|
PRINTR "."
|
|
?CCL19: EQUAL? PRSA,V?REMOVE \FALSE
|
|
ZERO? BROWNIAN-SOURCE /FALSE
|
|
PRINTI "The "
|
|
PRINTD DANGLY-BIT
|
|
PRINTI " is no longer suspended in"
|
|
ICALL ARTICLE,BROWNIAN-SOURCE,TRUE-VALUE
|
|
PRINTC 46
|
|
CRLF
|
|
SET 'BROWNIAN-SOURCE,FALSE-VALUE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT HATCHWAY-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "You are at the bottom of a gangway. A hatch below you is "
|
|
FSET? HATCH,OPENBIT \?PRG11
|
|
PRINTI "open"
|
|
JUMP ?PRG13
|
|
?PRG11: PRINTI "closed"
|
|
?PRG13: PRINTR ". There is a small access space to starboard."
|
|
?CCL3: EQUAL? RARG,M-ENTER \FALSE
|
|
FSET HATCH,DOORBIT
|
|
RFALSE
|
|
|
|
|
|
.FUNCT ACCESS-SPACE-ENTER-F
|
|
CALL2 ACCESS-SPACE-LOOP,PROTAGONIST
|
|
GRTR? STACK,1 \?CCL3
|
|
PRINTI "That entrance is so narrow that you probably couldn't pass by holding anything. Well, maybe ONE thing."
|
|
CRLF
|
|
RFALSE
|
|
?CCL3: FCLEAR HATCH,DOORBIT
|
|
RETURN ACCESS-SPACE
|
|
|
|
|
|
.FUNCT ACCESS-SPACE-LOOP,CONT,X,NUMBER
|
|
FIRST? CONT >X /?PRG2
|
|
?PRG2: ZERO? X \?CND4
|
|
RETURN NUMBER
|
|
?CND4: FSET? X,WORNBIT /?CND6
|
|
FSET? X,INTEGRALBIT /?CND6
|
|
EQUAL? X,BABEL-FISH /?CND6
|
|
INC 'NUMBER
|
|
?CND6: FIRST? X \?CND11
|
|
CALL2 ACCESS-SPACE-LOOP,X
|
|
ADD NUMBER,STACK >NUMBER
|
|
?CND11: NEXT? X >X /?PRG2
|
|
JUMP ?PRG2
|
|
|
|
|
|
.FUNCT HATCH-F
|
|
EQUAL? HERE,HATCHWAY /?CCL3
|
|
EQUAL? PRSA,V?EXAMINE,V?CLOSE,V?OPEN /?CTR2
|
|
EQUAL? PRSA,V?RUB \?CCL3
|
|
?CTR2: CALL2 CANT-SEE,HATCH
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?THROUGH,V?OPEN \?CCL9
|
|
ZERO? LANDED \?CCL9
|
|
PRINTR "Loud sirens blare, fantastically bright red lights flash from all sides, and a soft female voice mentions that opening this hatch in space will evacuate the air from the ship."
|
|
?CCL9: EQUAL? PRSA,V?THROUGH,V?OPEN \FALSE
|
|
FSET? HATCH,OPENBIT /FALSE
|
|
PRINTR "The hatch appears to be jammed shut."
|
|
|
|
|
|
.FUNCT MECHANISM-F
|
|
EQUAL? HERE,ACCESS-SPACE /?CCL3
|
|
EQUAL? PRSA,V?RUB,V?SMELL,V?EXAMINE /?CTR2
|
|
EQUAL? PRSA,V?REPAIR \?CCL3
|
|
?CTR2: CALL2 CANT-SEE,MECHANISM
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?REPAIR \?CCL9
|
|
ICALL PERFORM,V?REPAIR,HATCH
|
|
RTRUE
|
|
?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "I don't even understand it, and I'm a computer!"
|
|
|
|
|
|
.FUNCT ACCESS-SPACE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This tiny area, with an exit to port, is for working on the hatch "
|
|
PRINTD MECHANISM
|
|
PRINTI ", which is vastly more complicated than your rather ordinary intelligence can comprehend. "
|
|
ICALL PERFORM,V?EXAMINE,GROUND
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MESH-PSEUDO
|
|
EQUAL? PRSI,MESH \?CCL3
|
|
ICALL PERFORM,PRSA,PRSO,GROUND
|
|
RTRUE
|
|
?CCL3: ICALL PERFORM,PRSA,GROUND,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT RAMP-F,RARG
|
|
EQUAL? RARG,M-ENTER \?CCL3
|
|
ICALL1 INIT-STATUS-LINE
|
|
ICALL1 UPDATE-STATUS-LINE
|
|
PRINTI "You step onto the landing ramp leading down toward the surface of"
|
|
PRINT LOST-PLANET
|
|
PRINTI ". "
|
|
PRINT ANNOUNCEMENT
|
|
PRINTD EDDIE
|
|
PRINTI ". Someone is leaving the ship on a strange planet without wrapping up all nice and warm. It'll all end in tears, I just know it..."" The voice fades behind you."
|
|
CRLF
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
CRLF
|
|
PRINTI "Slowly, nervously, you step downwards, the cold thin air rasping in your lungs. You set one single foot on the ancient dust -- and almost instantly the most incredible adventure starts which you'll have to buy the next game to find out about."
|
|
CRLF
|
|
CRLF
|
|
CRLF
|
|
PRINTI "By the way, there WAS a causal relationship between your taking the "
|
|
PRINTD TOOTHBRUSH
|
|
PRINTI " and the tree collapsing at the very beginning of the game. We apologise for this slight inaccuracy."
|
|
CRLF
|
|
CALL1 FINISH
|
|
RSTACK
|
|
|
|
.ENDI
|