hitchhikersguide-gold/earth.zap

2075 lines
62 KiB
Plaintext

.FUNCT HOME-F
ZERO? HOUSE-DEMOLISHED /?CCL3
EQUAL? PRSA,V?ENJOY \?CCL3
PRINT ZEN
PRINTI " You can't enjoy a "
PRINTD RUBBLE
PRINTR " properly till it's at least a hundred years old. Also, you are haunted by the tragic vision of your favourite teapot lying shattered among the dust.
There is also the matter of all your clothes."
?CCL3: EQUAL? PRSA,V?BOARD,V?WALK-TO,V?THROUGH \?CCL9
EQUAL? HERE,FRONT-OF-HOUSE,FRONT-PORCH \?CCL12
CALL2 DO-WALK,P?NORTH
RSTACK
?CCL12: EQUAL? HERE,BEDROOM \?CCL14
PRINT LOOK-AROUND
CRLF
RTRUE
?CCL14: CALL1 V-WALK-AROUND
RSTACK
?CCL9: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL18
EQUAL? HERE,FRONT-PORCH \?CCL21
CALL2 DO-WALK,P?SOUTH
RSTACK
?CCL21: EQUAL? HERE,BEDROOM \?PRG24
CALL1 V-WALK-AROUND
RSTACK
?PRG24: PRINT LOOK-AROUND
CRLF
RTRUE
?CCL18: EQUAL? PRSA,V?LIE-DOWN \?CCL27
EQUAL? HERE,FRONT-OF-HOUSE \?CCL27
ZERO? IN-FRONT-FLAG /?CCL27
ICALL PERFORM,V?LIE-DOWN,GROUND
RTRUE
?CCL27: EQUAL? PRSA,V?EXAMINE \?CCL32
ZERO? HOUSE-DEMOLISHED /?CCL32
PRINTI "It is now a "
PRINTD RUBBLE
PRINTR "."
?CCL32: EQUAL? IDENTITY-FLAG,FORD \FALSE
CALL1 UNIMPORTANT-THING-F
RSTACK
.FUNCT HOUSE-F
EQUAL? PRSO,HOUSE \?CCL3
ICALL PERFORM,PRSA,HOME,PRSI
RTRUE
?CCL3: ICALL PERFORM,PRSA,PRSO,HOME
RTRUE
.FUNCT I-HOUSEWRECK
EQUAL? HERE,BEDROOM,FRONT-PORCH \FALSE
CRLF
PRINTI "Astoundingly, a "
PRINTD BULLDOZER
PRINTI " pokes through your wall. However, you have no time for surprise because the ceiling is collapsing on you as"
CALL1 BETTER-LUCK
RSTACK
.FUNCT BETTER-LUCK
PRINTI " your home is unexpectedly demolished to make way for a new bypass. You are seriously injured in the process, but on your way to the hospital"
ICALL1 MAKE-WAY-FOR
CRLF
FSET? BEDROOM,ONBIT /?CCL5
PRINTI "Next time, try turning on the light."
CRLF
JUMP ?CND3
?CCL5: FSET? GOWN,OPENBIT /?PRG14
ZERO? HEADACHE /?PRG14
PRINTI "Too bad you never found an aspirin for your hangover."
CRLF
JUMP ?CND3
?PRG14: PRINTI "Better luck next life."
CRLF
?CND3: CALL1 FINISH
RSTACK
.FUNCT HANGOVER-F
EQUAL? PRSA,V?ASK-ABOUT \?CCL3
EQUAL? PRSI,HANGOVER /FALSE
?CCL3: ZERO? HEADACHE \?CCL7
EQUAL? IDENTITY-FLAG,ZAPHOD /?CCL7
PRINTI "You can't feel any"
EQUAL? HANGOVER,PRSO \?CCL14
ICALL1 PRSO-PRINT
JUMP ?PRG15
?CCL14: ICALL1 PRSI-PRINT
?PRG15: PRINTR " here."
?CCL7: EQUAL? PRSA,V?EXAMINE \?CCL18
CALL1 V-DIAGNOSE
RSTACK
?CCL18: EQUAL? PRSA,V?DROP,V?THROW,V?GIVE \FALSE
CALL1 V-COUNT
RSTACK
.FUNCT BEDROOM-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "The bedroom is a mess.
It is a small bedroom with a faded carpet and old wallpaper. There is a washbasin, a chair"
FSET? GOWN,NDESCBIT \?PRG10
PRINTI " with a tatty dressing gown slung over it"
?PRG10: PRINTR ", and a window with the curtains drawn. Near the exit leading south is a phone."
.FUNCT BEDROOM-EXIT-F
FSET? BEDROOM-DOOR,OPENBIT /?CCL3
PRINTI "The door is closed."
CRLF
SET 'P-IT-OBJECT,BEDROOM-DOOR
RFALSE
?CCL3: ZERO? HEADACHE /?CCL7
PRINTI "You miss the doorway by a good eighteen inches. The wall jostles you rather rudely."
CRLF
RFALSE
?CCL7: FSET? BULLDOZER,INVISIBLE \?PRG14
PRINTI "You make your way down to the front porch."
CRLF
CRLF
JUMP ?CND1
?PRG14: PRINTI "You rush down the stairs in panic."
CRLF
CRLF
?CND1: FCLEAR LIGHT,LIGHTBIT
RETURN FRONT-PORCH
.FUNCT PHONE-F
EQUAL? PRSA,V?TAKE \?CCL3
FSET? PHONE,TOUCHBIT \?CCL6
ICALL PERFORM,V?CALL,DAIS
RTRUE
?CCL6: FSET PHONE,TOUCHBIT
PRINTI "You pick up the receiver."
PRINT DIALING-TONE
FSET? TOOTHBRUSH,TOUCHBIT \?CND9
ICALL1 TWO-TREES
?CND9: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?REPLY \FALSE
PRINTR "It isn't ringing."
.FUNCT GLOBAL-BED-F
EQUAL? GLOBAL-BED,PRSO \?CCL3
ICALL PERFORM,PRSA,BED,PRSI
RTRUE
?CCL3: ICALL PERFORM,PRSA,PRSO,BED
RTRUE
.FUNCT BED-F,RARG
EQUAL? RARG,M-BEG \?CCL3
EQUAL? PRSA,V?TAKE \?CCL6
FSET? PRSO,TAKEBIT \?CCL6
IN? PRSO,BED /?CCL6
CALL2 HELD?,PRSO
ZERO? STACK \?CCL6
PRINTI "You can't reach it from the bed."
ZERO? HEADACHE /?CND13
PRINTR " The effort almost kills you."
?CND13: CRLF
RTRUE
?CCL6: EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?CCL18
EQUAL? PRSO,CURTAINS \?CCL18
ICALL PERFORM,V?TAKE,PHONE
SET 'P-IT-OBJECT,CURTAINS
RTRUE
?CCL18: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL22
EQUAL? PRSO,BEDROOM-DOOR \?CCL22
ICALL PERFORM,V?TAKE,PHONE
SET 'P-IT-OBJECT,BEDROOM-DOOR
RTRUE
?CCL22: EQUAL? PRSA,V?WALK \FALSE
CALL2 OUT-OF-FIRST,BED
RSTACK
?CCL3: ZERO? RARG \FALSE
EQUAL? PRSA,V?DISEMBARK \?CCL30
ZERO? HEADACHE /?CCL30
LOC PROTAGONIST
EQUAL? STACK,BED \?CCL30
MOVE PROTAGONIST,HERE
SET 'OHERE,FALSE-VALUE
SET 'LYING-DOWN,FALSE-VALUE
PRINTR "Very difficult, but you manage it. The room is still spinning. It dips and sways a little."
?CCL30: EQUAL? PRSA,V?LOOK-UNDER \?CCL37
MOVE STUFF-UNDER-BED,HERE
PRINTR "There's nothing there. Well, there are a few soiled handkerchiefs, a book you thought you'd lost, a couple of foreign coins, and something else which can't be fully described in a family game, but nothing you'd actually want."
?CCL37: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
EQUAL? PRSO,BED \FALSE
CALL1 TELL-ME-HOW
RSTACK
.FUNCT CURTAINS-F
EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \FALSE
FCLEAR BULLDOZER,INVISIBLE
PRINTI "As you part "
PRINTD CURTAINS
PRINTI " you see that i"
PRINT NICE-DAY
PRINTI ", and a large yellow "
PRINTD BULLDOZER
PRINTI " is advancing on "
PRINTD HOME
PRINTR "."
.FUNCT GOWN-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
FSET? GOWN,WORNBIT /?CCL3
PRINTR "It's hard to open or close the pocket unless you're wearing the gown."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL9
PRINTI "The dressing gown is faded and battered, and is clearly a garment which has seen better decades. It has a pocket which is "
FSET? GOWN,OPENBIT \?PRG17
PRINTI "open"
JUMP ?CND12
?PRG17: PRINTI "closed"
?CND12: ZERO? GOWN-HUNG /?PRG24
PRINTI ". It is hanging from a "
PRINTD HOOK
PRINTC 46
JUMP ?CND19
?PRG24: PRINTI ", and a small loop at the back of the collar."
?CND19: ZERO? SLEEVE-TIED /?CND26
PRINTR " The sleeves are tied closed."
?CND26: CRLF
RTRUE
?CCL9: EQUAL? PRSA,V?TAKE \?CCL31
EQUAL? GOWN,PRSO \?CCL31
ZERO? HEADACHE /?CCL31
FCLEAR GOWN,TRYTAKEBIT
FCLEAR GOWN,NDESCBIT
MOVE GOWN,PROTAGONIST
PRINTR "Luckily, this is large enough for you to get hold of. You notice something in the pocket."
?CCL31: EQUAL? PRSA,V?WEAR \?CCL38
ZERO? SLEEVE-TIED /?CCL38
PRINTR "You'll have to untie the sleeve first."
?CCL38: EQUAL? PRSA,V?UNTIE,V?TIE \FALSE
ICALL PERFORM,PRSA,SLEEVES
RTRUE
.FUNCT SLEEVES-F
CALL2 VISIBLE?,GOWN
ZERO? STACK \?CCL3
CALL2 CANT-SEE,SLEEVES
RSTACK
?CCL3: EQUAL? PRSA,V?TAKE,V?WEAR \?CCL5
ICALL PERFORM,PRSA,GOWN
RTRUE
?CCL5: EQUAL? PRSA,V?CLOSE,V?TIE \?CCL7
SET 'PRSO,GOWN
CALL1 IDROP
ZERO? STACK \TRUE
ZERO? SLEEVE-TIED /?CCL12
PRINTR "It is."
?CCL12: SET 'SLEEVE-TIED,TRUE-VALUE
PRINTR "The sleeves are now tied closed."
?CCL7: EQUAL? PRSA,V?OPEN,V?UNTIE \FALSE
ZERO? SLEEVE-TIED /?PRG24
SET 'SLEEVE-TIED,FALSE-VALUE
PRINTR "Untied."
?PRG24: PRINTR "It isn't tied!"
.FUNCT TWO-TREES
SET 'AWAITING-REPLY,9
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINTI " Shouldn't you be taking more interest in events in the world around you? While you've got it...?"
RTRUE
.FUNCT THING-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "Apart from a label on the bottom saying ""Made in Ibiza"" it furnishes you with no clue as to its purpose, if indeed it has one. You are surprised to see it because you thought you'd thrown it away. Like most gifts from your aunt,"
PRINT GET-RID
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?DROP \?CCL7
EQUAL? HERE,MAZE,ACCESS-SPACE /?CCL7
MOVE THING,HERE
PRINTR "It falls to the ground with a light ""thunk."" It doesn't do anything else at all."
?CCL7: EQUAL? PRSA,V?CLOSE \FALSE
PRINTR "Come to think of it, you vaguely remember an instruction booklet with directions for that. You never read it and lost it months ago."
.FUNCT I-THING
RANDOM 4
ADD 4,STACK
CALL QUEUE,I-THING,STACK
PUT STACK,0,1
EQUAL? IDENTITY-FLAG,ARTHUR \FALSE
EQUAL? HERE,ENGINE-ROOM \?PRD5
LESS? LOOK-COUNTER,3 /FALSE
?PRD5: EQUAL? HERE,DARK,ACCESS-SPACE,MAZE /FALSE
CALL2 VISIBLE?,THING
ZERO? STACK \FALSE
CALL HELD?,THING,PROTAGONIST
ZERO? STACK \FALSE
IN? FLEET,HERE /FALSE
FCLEAR THING,NDESCBIT
FCLEAR THING,INVISIBLE
RANDOM 100
LESS? 40,STACK /?CCL13
MOVE THING,HERE
RFALSE
?CCL13: FSET? GOWN,WORNBIT \?CCL15
FSET? GOWN,OPENBIT \?CCL15
RANDOM 100
LESS? 65,STACK /?CCL15
MOVE THING,GOWN
RFALSE
?CCL15: MOVE THING,PROTAGONIST
RFALSE
.FUNCT TABLET-F
EQUAL? PRSA,V?DRINK,V?TAKE,V?EAT \FALSE
MOVE TABLET,LOCAL-GLOBALS
FCLEAR SCREWDRIVER,TRYTAKEBIT
FCLEAR TOOTHBRUSH,TRYTAKEBIT
SET 'HEADACHE,FALSE-VALUE
ADD SCORE,10 >SCORE
PRINTR "You swallow the tablet. After a few seconds the room begins to calm down and behave in an orderly manner. Your terrible headache goes."
.FUNCT CLOTHES-EXIT-F
FSET? GOWN,WORNBIT \?CCL3
RETURN FRONT-OF-HOUSE
?CCL3: SET 'AWAITING-REPLY,10
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINT ARRESTED
CRLF
RFALSE
.FUNCT MAIL-F
EQUAL? PRSA,V?TAKE \?CCL3
FSET? MAIL,TOUCHBIT /?CCL3
FSET MAIL,TOUCHBIT
FCLEAR MAIL,TRYTAKEBIT
MOVE MAIL,PROTAGONIST
PRINTR "You gather up the pile of mail."
?CCL3: EQUAL? PRSA,V?OPEN \FALSE
ICALL PERFORM,V?READ,MAIL
RTRUE
.FUNCT HOUSE-ENTER-F
ZERO? HOUSE-DEMOLISHED /?CCL3
PRINTI "You can't enter a "
PRINTD RUBBLE
PRINTC 46
CRLF
RFALSE
?CCL3: EQUAL? IDENTITY-FLAG,FORD \?CCL7
EQUAL? PRSA,V?THROUGH /?CND8
PRINTI "Enter the house? "
?CND8: ICALL2 PRIVATE,STR?68
RFALSE
?CCL7: ZERO? PROSSER-LYING \?CCL13
PRINTI "The "
PRINTD BULLDOZER
ICALL2 JIGS-UP,STR?69
RFALSE
?CCL13: CALL QUEUE,I-HOUSEWRECK,5
PUT STACK,0,1
RETURN FRONT-PORCH
.FUNCT FRONT-OF-HOUSE-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
FCLEAR BULLDOZER,INVISIBLE
IN? DOG,COUNTRY-LANE \?CCL6
ZERO? DOG-FED \?CND7
ICALL1 I-DOG
?CND7: CALL QUEUE,I-VOGONS,3
PUT STACK,0,1
PRINTI "You reach the site of what was "
EQUAL? IDENTITY-FLAG,FORD \?PRG16
PRINTI "Arthur's"
JUMP ?PRG18
?PRG16: PRINTI "your"
?PRG18: PRINTI " home. It is now a "
PRINTD RUBBLE
PRINTI ". "
PRINTD PROSSER
PRINTI " looks sheepishly triumphant, a trick few people can do, as it requires a lot of technically complex deltoid muscle work."
CRLF
CRLF
RTRUE
?CCL6: EQUAL? IDENTITY-FLAG,FORD /FALSE
ZERO? PROSSER-LYING \FALSE
CALL QUEUE,I-BULLDOZER,-1
PUT STACK,0,1
RFALSE
?CCL3: EQUAL? RARG,M-LOOK \?CCL25
EQUAL? IDENTITY-FLAG,FORD \?CCL28
FSET? FRONT-OF-HOUSE,NDESCBIT /?CCL28
FSET BEER,NDESCBIT
SET 'DRUNK-LEVEL,0
FSET ARTHUR,NDESCBIT
FSET FRONT-OF-HOUSE,NDESCBIT
PRINTI "Before you is the house of your friend, "
PRINTD ARTHUR
PRINTI ", who is lying in front of a "
PRINTD BULLDOZER
PRINTI "; you have no idea why. You have no idea about most things about Arthur, even why you regard him as a friend, but you do, and must therefore return his towel before you leave."
JUMP ?CND26
?CCL28: ZERO? HOUSE-DEMOLISHED /?CCL35
PRINTI "There is a huge "
PRINTD RUBBLE
JUMP ?PRG44
?CCL35: EQUAL? IDENTITY-FLAG,FORD \?PRG42
PRINTI "Arthur's house is"
JUMP ?PRG44
?PRG42: PRINTI "You can enter your home"
?PRG44: PRINTI " to the north. A path leads around it to the northeast and northwest, and a country lane is visible to the south."
?CND26: FSET? FRONT-OF-HOUSE,NDESCBIT /?CND46
EQUAL? IDENTITY-FLAG,ARTHUR \?CND46
FSET FRONT-OF-HOUSE,NDESCBIT
PRINTI " All that lies between your home and the huge yellow "
PRINTD BULLDOZER
PRINTR " bearing down on it is a few yards of mud."
?CND46: CRLF
RTRUE
?CCL25: EQUAL? RARG,M-END \FALSE
EQUAL? IDENTITY-FLAG,FORD \FALSE
FSET? ARTHUR,NDESCBIT \FALSE
FCLEAR ARTHUR,NDESCBIT
RFALSE
.FUNCT I-BULLDOZER
ZERO? LYING-DOWN \?CCL2
ZERO? HOUSE-DEMOLISHED /?CND1
?CCL2: CALL2 INT,I-BULLDOZER
PUT STACK,0,0
RFALSE
?CND1: FSET PROSSER,TOUCHBIT
IGRTR? 'BULLDOZER-COUNTER,4 \?CCL7
CALL2 INT,I-BULLDOZER
PUT STACK,0,0
PRINT BULLDOZER-PILES
CRLF
CALL1 BRICK-DEATH
RSTACK
?CCL7: EQUAL? HERE,FRONT-OF-HOUSE \FALSE
CRLF
PRINTI "The "
PRINTD BULLDOZER
PRINTR " rumbles slowly toward your home."
.FUNCT BRICK-DEATH
CRLF
PRINTI "Your home collapses in a cloud of dust, and a stray flying brick hits you squarely on the back of the head. You try to think of some suitable last words, but what with the confusion of the moment and the spinning of your head, you are unable to compose anything pithy and expire in silence."
?PRG3: CRLF
CRLF
PRINTC 62
PUTB P-INBUF,1,0
READ P-INBUF,P-LEXV
INC 'DEAD-COUNTER
EQUAL? DEAD-COUNTER,1,2 \?CCL7
PRINTI "You keep out of this, you're dead"
EQUAL? DEAD-COUNTER,1 \?PRG15
PRINTI ". An ambulance arrives."
JUMP ?PRG3
?PRG15: PRINTI " and should be concentrating on developing a good firm rigor mortis. You are put in the ambulance, which drives away."
JUMP ?PRG3
?CCL7: EQUAL? DEAD-COUNTER,3 \?PRG3
PRINTI "For a dead person you are talking too much. As the ambulance reaches the mortuary"
ICALL1 MAKE-WAY-FOR
ICALL1 FINISH
JUMP ?PRG3
.FUNCT BULLDOZER-DRIVER-F
EQUAL? PRSA,V?HELLO,V?TELL \FALSE
PRINTI "The "
PRINTD BULLDOZER-DRIVER
PRINTI ", perusing a booklet of union rules, ignores you."
CRLF
CALL1 FUCKING-CLEAR
RSTACK
.FUNCT BULLDOZER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It's one of those really big "
PRINTD BULLDOZER
PRINTI "s that can actually crush other "
PRINTD BULLDOZER
PRINTR "s, let alone houses."
?CCL3: EQUAL? HERE,FRONT-OF-HOUSE /?CCL7
EQUAL? PRSA,V?MOVE,V?PUSH,V?RUB /?PRG13
EQUAL? PRSA,V?BLOCK,V?KICK,V?TAKE /?PRG13
EQUAL? PRSA,V?WALK-AROUND \?CCL7
?PRG13: PRINTI "The "
PRINTD BULLDOZER
PRINTR " isn't here."
?CCL7: EQUAL? PRSA,V?LIE-DOWN \?CCL16
ICALL PERFORM,V?BLOCK,BULLDOZER
RTRUE
?CCL16: EQUAL? PRSA,V?BLOCK \?CCL18
EQUAL? IDENTITY-FLAG,ARTHUR \?CCL18
ZERO? HOUSE-DEMOLISHED /?CCL23
PRINTR "Too late now."
?CCL23: ZERO? LYING-DOWN /?CCL27
ICALL PERFORM,V?LIE-DOWN,GROUND
RTRUE
?CCL27: ZERO? PROSSER-LYING /?CCL29
PRINTR "Prosser's doing that for you."
?CCL29: SET 'LYING-DOWN,TRUE-VALUE
SET 'OHERE,FALSE-VALUE
CALL QUEUE,I-PROSSER,2
PUT STACK,0,1
PRINTI "You lie down in the path of the advancing "
PRINTD BULLDOZER
PRINTR ". Prosser yells at you to for crissake move!!!"
?CCL18: EQUAL? PRSA,V?WALK-AROUND \?CCL35
EQUAL? IDENTITY-FLAG,ARTHUR \?CCL38
CALL1 V-DIG
RSTACK
?CCL38: ZERO? TOWEL-OFFERED \?CCL40
PRINTR "Didn't you come here for a purpose? Something about a towel?"
?CCL40: ZERO? GONE-AROUND /?CCL44
PRINTR "You already did. It's not a merry-go-round."
?CCL44: SET 'GONE-AROUND,TRUE-VALUE
PRINTI "You walk around the "
PRINTD BULLDOZER
PRINTR ". Prosser is standing here, looking cross and frustrated. Realising that you are a friend of Arthur's he starts to talk at you. He says that this sort of protest is all very well, but what Mr. Dent must realise is that he's had plenty of time to make a formal protest at the proper time and place, and that spending months going through the appropriate official channels, filling in the appropriate official forms, and going to the appropriate official public hearings is the right way of going about it, and lying around whimsically in the mud is not. He says that he personally hates mud and despises the sort of people who lie in it."
?CCL35: EQUAL? PRSA,V?LISTEN \FALSE
CALL2 RUNNING?,I-PROSSER
ZERO? STACK /FALSE
PRINTR """Rumble...rumble..."""
.FUNCT I-PROSSER
ZERO? LYING-DOWN \?CND1
CALL2 INT,I-PROSSER
PUT STACK,0,0
ICALL1 I-BULLDOZER
RTRUE
?CND1: CALL QUEUE,I-PROSSER,-1
PUT STACK,0,1
INC 'PROSSER-COUNTER
CRLF
EQUAL? PROSSER-COUNTER,1 \?CCL5
PRINTI "The "
PRINTD BULLDOZER
PRINTR " thunders toward you. The ground is shaking beneath you as you lie in the mud."
?CCL5: EQUAL? PROSSER-COUNTER,2 \?CCL9
PRINTI "The noise of the giant "
PRINTD BULLDOZER
PRINTR " is now so violently loud that you can't even hear Prosser yelling to warn you that you will be killed if you don't get the hell out of the way. You just see him gesticulating wildly."
?CCL9: EQUAL? PROSSER-COUNTER,3 \FALSE
CALL2 INT,I-PROSSER
PUT STACK,0,0
CALL QUEUE,I-FORD,-1
PUT STACK,0,1
MOVE FORD,HERE
SET 'P-IT-OBJECT,TOWEL
PRINTI "With a terrible grinding of gears the "
PRINTD BULLDOZER
PRINTI " comes to an abrupt halt just in front of you. It shakes, shudders, and emits noxious substances all over your rose bed. Prosser is incoherent with rage.
Moments later, your friend "
PRINTD FORD
PRINTR " arrives. He hardly seems to notice your predicament, but keeps glancing nervously at the sky. He says, ""Hello, Arthur,"" takes a towel from his battered leather satchel, and offers it to you."
.FUNCT PROSSER-DESCFCN,X
EQUAL? IDENTITY-FLAG,FORD \?PRG8
FSET? PROSSER,TOUCHBIT /?PRG8
FSET PROSSER,TOUCHBIT
PRINTR "Nearby stands an impatient man. There seems to be a bit of an atmosphere."
?PRG8: PRINTD PROSSER
PRINTI ", from the local council, is "
ZERO? PROSSER-LYING /?CCL12
PRINTI "lying in front"
JUMP ?PRG21
?CCL12: ZERO? GONE-AROUND /?PRG19
PRINTI "standing at the side"
JUMP ?PRG21
?PRG19: PRINT ON-OTHER-SIDE
?PRG21: PRINTI " of the "
PRINTD BULLDOZER
PRINTI ". He seems to be wearing a "
PRINTD DIGITAL-WATCH
PRINTC 46
FSET? PROSSER,TOUCHBIT /?CND1
FSET PROSSER,TOUCHBIT
PRINTR " He looks startled to see you emerge, and yells at you to get out of the way."
?CND1: CRLF
RTRUE
.FUNCT PROSSER-F
EQUAL? PROSSER,WINNER \?CCL3
IN? FLEET,HERE \?CCL6
PRINTI "Prosser is too preoccupied with recent events to give your remarks much consideration. He is running off and saying a number of things about his mother in a high voice."
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL6: EQUAL? PRSA,V?TELL-ABOUT \?CCL10
EQUAL? PRSO,ME \?CCL10
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,PROSSER,PRSI
SET 'WINNER,PROSSER
RTRUE
?CCL10: EQUAL? PRSA,V?HELLO \?CCL14
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?HELLO,PROSSER
SET 'WINNER,PROSSER
RTRUE
?CCL14: EQUAL? PRSA,V?WHAT \?CCL16
EQUAL? PRSO,OBJECT-OF-GAME \?CCL16
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,PROSSER,OBJECT-OF-GAME
SET 'WINNER,PROSSER
RTRUE
?CCL16: EQUAL? PRSA,V?WHAT \?PRD22
EQUAL? PRSO,TIME /?CTR19
?PRD22: EQUAL? PRSA,V?TELL-TIME \?PRD25
EQUAL? PRSO,ME \?PRD25
EQUAL? PRSI,TIME /?CTR19
?PRD25: EQUAL? PRSA,V?WHAT-TIME \?CCL20
EQUAL? PRSO,TIME \?CCL20
?CTR19: SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-FOR,PROSSER,TIME
SET 'WINNER,PROSSER
RTRUE
?CCL20: EQUAL? PRSA,V?WHAT \?CCL32
EQUAL? PRSO,OBJECT-OF-GAME \?CCL32
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,PROSSER,PRSO
SET 'WINNER,PROSSER
RTRUE
?CCL32: EQUAL? IDENTITY-FLAG,FORD \?CCL36
EQUAL? PRSA,V?LIE-DOWN \?PRD41
EQUAL? PRSO,BULLDOZER \?PRD41
ZERO? IN-FRONT-FLAG \?CTR38
?PRD41: EQUAL? PRSA,V?LIE-DOWN \?PRD45
EQUAL? PRSO,ROOMS,GROUND \?PRD45
ZERO? HOUSE-DEMOLISHED /?CTR38
?PRD45: EQUAL? PRSA,V?REPLACE \?CCL39
EQUAL? PRSO,ARTHUR \?CCL39
ZERO? HOUSE-DEMOLISHED \?CCL39
?CTR38: ZERO? PROSSER-LYING /?CND52
PRINTR "He's already lying there!"
?CND52: SET 'PROSSER-LYING,TRUE-VALUE
CALL QUEUE,I-ARTHUR,-1
PUT STACK,0,1
PRINTR "Prosser blinks in astonishment. ""You mean, go and lie in the mud in his place...?"" You explain that Arthur will only move if someone else takes over for him. Prosser shakes his head in such a manner as to suggest that he is very weary of the world, and you tactfully forebear from mentioning that it won't be troubling him much longer. Reluctantly, he follows you back toward Arthur.
You rapidly conclude the business. Prosser lies in the mud. Arthur, bewildered, nevertheless stands up and appears ready to follow you to the Pub."
?CCL39: ICALL1 STAND-ASIDE
CALL1 FUCKING-CLEAR
RSTACK
?CCL36: EQUAL? PRSA,V?WHAT-ABOUT \?CCL59
EQUAL? PRSO,HOME,HOUSE \?CCL59
ZERO? HOUSE-DEMOLISHED /?CCL59
PRINTR "Prosser explains the local planning regulations and says, by way of reassurance, that you will probably be rehoused within a couple of years."
?CCL59: EQUAL? PRSA,V?BLOCK \?CCL66
EQUAL? PRSO,BULLDOZER \?CCL66
CALL2 RUNNING?,I-BULLDOZER
ZERO? STACK /?CCL66
CALL1 V-PROTEST
RSTACK
?CCL66: ICALL1 STAND-ASIDE
CALL1 FUCKING-CLEAR
RSTACK
?CCL3: ZERO? GONE-AROUND \?CCL71
EQUAL? IDENTITY-FLAG,FORD \?CCL71
EQUAL? PRSA,V?ASK-FOR,V?HELLO,V?TELL /?PRD75
EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?CCL71
?PRD75: EQUAL? PRSO,PROSSER \?CCL71
IN? FLEET,HERE /?CCL71
PRINTI "Prosser can't hear you from here."
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL71: EQUAL? PRSA,V?SHOW,V?GIVE \?CCL82
EQUAL? PRSO,THING \?CCL85
PRINTR "He is much impressed and says, ""You must have the same aunt I have."""
?CCL85: EQUAL? PRSO,TOWEL \?CCL89
SET 'TOWEL-MUDDY,TRUE-VALUE
PRINTR "Prosser thanks you, wipes the mud off his boots, and hands it back."
?CCL89: EQUAL? PRSO,GUIDE \?CCL93
PRINTI "Prosser takes a quick look at "
PRINTD GUIDE
PRINTR ", says he doesn't read that kind of rubbish, and hands it back."
?CCL93: EQUAL? PRSO,SATCHEL \FALSE
PRINTR "Prosser says he wouldn't be seen dead with that kind of thing slung over his shoulder."
?CCL82: EQUAL? PRSA,V?WALK-TO \?CCL101
EQUAL? HERE,FRONT-OF-HOUSE \?CCL101
EQUAL? IDENTITY-FLAG,FORD \?PRG109
ZERO? GONE-AROUND \?PRG109
ICALL PERFORM,V?WALK-AROUND,BULLDOZER
RTRUE
?PRG109: PRINTR "You're already as close as any reasonable person would want to get."
?CCL101: EQUAL? PRSA,V?KICK,V?KILL \?CCL112
ZERO? LYING-DOWN /?CCL112
PRINT WHILE-LYING
CRLF
RTRUE
?CCL112: EQUAL? PRSA,V?KILL \?CCL118
EQUAL? PRSO,PROSSER \?CCL118
ZERO? HOUSE-DEMOLISHED /?CCL118
PRINTR "You muck up all his fancy facial work. This is the last moment of satisfaction you will experience for some time."
?CCL118: EQUAL? PRSA,V?KICK,V?KILL \?CCL125
EQUAL? PRSO,PROSSER \?CCL125
PRINTR "He dodges, insisting that this is incorrect procedure."
?CCL125: EQUAL? PRSA,V?THROW \?CCL131
EQUAL? PRSI,PROSSER \?CCL131
MOVE PRSO,HERE
ICALL PERFORM,V?KILL,PROSSER
RTRUE
?CCL131: EQUAL? PRSA,V?EXAMINE \?CCL135
CALL1 PROSSER-DESCFCN
RSTACK
?CCL135: EQUAL? PRSA,V?LISTEN \?CCL137
FSET? CONVERSATION,INVISIBLE /?CCL137
ICALL PERFORM,V?LISTEN,CONVERSATION
RTRUE
?CCL137: EQUAL? PRSA,V?ASK-ABOUT \?CCL141
EQUAL? PRSI,OBJECT-OF-GAME \?CCL141
PRINTR "Prosser pulls a booklet out of his back pocket. ""My game manual says that the goal is getting this here house knocked down."""
?CCL141: EQUAL? PRSA,V?ASK-ABOUT \?CCL147
EQUAL? PRSI,DIGITAL-WATCH \?CCL147
ICALL PERFORM,V?ASK-FOR,PROSSER,TIME
RTRUE
?CCL147: EQUAL? PRSA,V?ASK-FOR \FALSE
EQUAL? PRSI,TIME \FALSE
PRINTI "Prosser shakes the "
PRINTD DIGITAL-WATCH
PRINTI ". ""Hasn't worked for months. I keep wearing it only because I think "
PRINTD DIGITAL-WATCH
PRINTR "es are neat."""
.FUNCT STAND-ASIDE
ZERO? PROSSER-LYING /?PRG5
PRINTR """Leave me alone,"" Prosser whimpers miserably."
?PRG5: PRINTI """Please step aside as I need to be able to "
ZERO? HOUSE-DEMOLISHED /?PRG12
PRINTI "clear this "
PRINTD RUBBLE
PRINTR " away."""
?PRG12: PRINTI "knock "
EQUAL? IDENTITY-FLAG,ARTHUR \?PRG19
PRINTI "your"
JUMP ?PRG21
?PRG19: PRINTI "that"
?PRG21: PRINTR " house down."""
.FUNCT DIGITAL-WATCH-F
EQUAL? PRSA,V?READ,V?TAKE \FALSE
CALL2 PRIVATE,STR?70
RSTACK
.FUNCT FORD-DESCFCN,X
ZERO? FORD-SLEEPING /?PRG6
PRINTR "Ford is in the corner, snoring loudly."
?PRG6: PRINTD FORD
PRINTR " is here."
.FUNCT FORD-F
EQUAL? IDENTITY-FLAG,FORD \?CCL3
EQUAL? FORD,PRSO \?CCL6
ICALL PERFORM,PRSA,ME,PRSI
RTRUE
?CCL6: ICALL PERFORM,PRSA,PRSO,ME
RTRUE
?CCL3: EQUAL? FORD,WINNER \?CCL8
IN? FLEET,HERE \?CCL11
PRINT ABOVE-NOISE
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL11: EQUAL? PRSI,HOUSE /?PRG18
EQUAL? PRSO,HOUSE \?CCL15
?PRG18: PRINTI """It's not a house, it's a home."" (Footnote 2)"
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL15: EQUAL? PRSA,V?TELL-ABOUT \?CCL21
EQUAL? PRSO,ME \?CCL21
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,FORD,PRSI
SET 'WINNER,FORD
RTRUE
?CCL21: EQUAL? PRSA,V?HELLO \?CCL25
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?HELLO,FORD
SET 'WINNER,FORD
RTRUE
?CCL25: EQUAL? PRSA,V?WHAT \?CCL27
EQUAL? PRSO,OBJECT-OF-GAME \?CCL27
PRINT ASK-ABOUT-OBJECT
CRLF
RTRUE
?CCL27: EQUAL? PRSA,V?WHAT-ABOUT \?CCL33
LESS? FORD-COUNTER,2 \?CCL33
EQUAL? HERE,FRONT-OF-HOUSE \?CCL33
EQUAL? PRSO,HOME \?CCL33
PRINTI "Ford"
CALL1 FORD-DECIDES
RSTACK
?CCL33: EQUAL? PRSA,V?WHAT-ABOUT \?CCL41
EQUAL? PRSO,THIRD-PLANET,HOME \?CCL41
ZERO? EARTH-DEMOLISHED /?CCL41
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,FORD,THIRD-PLANET
SET 'WINNER,FORD
RTRUE
?CCL41: ZERO? EARTH-DEMOLISHED \?PRG73
LESS? DRUNK-LEVEL,3 \?PRG54
EQUAL? HERE,PUB \?PRG54
PRINTI """Shut up and drink your beer. You're going to need it."""
CRLF
JUMP ?CND47
?PRG54: PRINTI "Ford, busy "
EQUAL? FORD-COUNTER,2 \?PRG61
PRINTI "talking to Prosser"
JUMP ?CND56
?PRG61: PRINTI "scanning the sky "
?CND56: EQUAL? HERE,PUB \?CCL65
PRINTI "through the window"
JUMP ?PRG71
?CCL65: EQUAL? FORD-COUNTER,2 /?PRG71
PRINTI "for something"
?PRG71: PRINTI ", ignores you."
CRLF
?CND47: CALL QUEUE,I-FORD,2
PUT STACK,0,1
RTRUE
?PRG73: PRINTI "Ford seems deep in thought."
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL8: EQUAL? PRSA,V?HELLO,V?TELL-ABOUT,V?TELL /?PRD78
EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR \?CCL76
?PRD78: EQUAL? PRSO,FORD \?CCL76
ZERO? FORD-SLEEPING /?CCL76
PRINTI "Ford is sleeping!"
CRLF
CALL1 FUCKING-CLEAR
RSTACK
?CCL76: EQUAL? PRSA,V?GIVE \?CCL85
EQUAL? PRSI,FORD \?CCL85
ZERO? FORD-SLEEPING /?CCL85
ICALL PERFORM,V?HELLO,FORD
RTRUE
?CCL85: EQUAL? FOLLOW-FLAG,1 \?CCL90
IN? FORD,HERE /?CCL90
EQUAL? PRSA,V?FOLLOW \?CCL90
PRINTI "In a state of anxiety and confusion you follow Ford down the lane..."
CRLF
CRLF
LOC FORD
CALL2 GOTO,STACK
RSTACK
?CCL90: EQUAL? FOLLOW-FLAG,3 \?CCL97
EQUAL? PRSA,V?FOLLOW \?CCL97
CALL2 DO-WALK,P?WEST
RSTACK
?CCL97: EQUAL? PRSA,V?FOLLOW \?CCL101
EQUAL? FOLLOW-FLAG,5 \?CCL101
CALL2 DO-WALK,P?SOUTH
RSTACK
?CCL101: EQUAL? PRSA,V?SHAKE,V?ALARM \?CCL105
ZERO? FORD-SLEEPING /?CCL105
PRINTR "Rather like trying to wake the dead."
?CCL105: EQUAL? PRSA,V?ASK-ABOUT \?CCL111
EQUAL? PRSI,OBJECT-OF-GAME \?CCL111
PRINT ASK-ABOUT-OBJECT
CRLF
RTRUE
?CCL111: EQUAL? PRSA,V?ASK-ABOUT \?CCL117
EQUAL? PRSI,THIRD-PLANET \?CCL117
PRINTR "Ford explains that the Earth has been demolished. To cheer you up, he points out that there are an awful lot of little planets like that around, and the Earth wasn't even a particularly nice one."
?CCL117: EQUAL? PRSA,V?GIVE \?CCL123
EQUAL? PRSO,THUMB \?CCL123
IN? FLEET,HERE \?CCL123
PRINTR "You can't reach him in this wind."
?CCL123: EQUAL? PRSA,V?LISTEN \?CCL130
FSET? CONVERSATION,INVISIBLE /?CCL133
ICALL PERFORM,V?LISTEN,CONVERSATION
RTRUE
?CCL133: ZERO? FORD-SLEEPING /FALSE
PRINTR """Zzzzzzz..."""
?CCL130: EQUAL? PRSA,V?EXAMINE \?CCL139
ZERO? FORD-SLEEPING /?CCL139
PRINTR "He's sleeping."
?CCL139: EQUAL? PRSA,V?ASK-FOR \FALSE
EQUAL? PRSI,TOWEL \FALSE
EQUAL? FORD-COUNTER,0,1 \FALSE
ICALL PERFORM,V?TAKE,TOWEL
RTRUE
.FUNCT FORD-DECIDES
FCLEAR CONVERSATION,INVISIBLE
CALL QUEUE,I-FORD,2
PUT STACK,0,1
SET 'FORD-COUNTER,2
PRINTI " looks startled, then guilty. He starts to say something and stops. He starts to say something else and stops. Suddenly, he seems to see the "
PRINTD BULLDOZER
PRINTI " for the first time, stops starting to say things and starts.
He seems to come to a momentous decision, says he has something of Earth-shattering importance to tell you, and stresses the importance of a quick drink at the Horse 'n Groom.
"
ICALL2 BUT-THAT-MAN,STR?71
PRINTI " Ford goes off for a quiet word with Prosser. From where you're lying, you cannot hear what's happening, although they seem deeply engrossed in "
PRINTD CONVERSATION
PRINTR "."
.FUNCT I-FORD
CALL QUEUE,I-FORD,-1
PUT STACK,0,1
CALL2 IN-HEART?,PROTAGONIST
ZERO? STACK /?CCL3
INC 'HEART-COUNTER
EQUAL? HEART-COUNTER,1 \?CCL6
MOVE FORD,HERE
CRLF
PRINTI """This looks like that incredible new"
PRINT IID
PRINTI " spaceship, "
PRINTD HEART-OF-GOLD
PRINTI "!"" says Ford, with growing excitement."
CRLF
CRLF
PRINT ANNOUNCEMENT
PRINTD EDDIE
PRINTI ". We have just picked up two hitchhikers"
ICALL2 FACTOR,STR?72
PRINTR """"
?CCL6: EQUAL? HEART-COUNTER,2 \?CCL12
CRLF
PRINTI """Come on, let's look for the Bridge."" You follow Ford, and eventually come to the..."
CRLF
CRLF
ICALL2 GOTO,BRIDGE
MOVE FORD,HERE
RTRUE
?CCL12: EQUAL? HEART-COUNTER,3 \?CCL16
EQUAL? HERE,BRIDGE \FALSE
CRLF
PRINTI """Hey, Zaphod, how ya doing?"" says Ford. He's cool. ""Not bad, Ford. Great to see you,"" replies Zaphod. He's cooler. You suddenly realise that the woman is Tricia MacMillan (""Call me "
PRINTD TRILLIAN
PRINTR """), whom you were trying to pick up at a party in Islington just a few weeks ago, and that Zaphod is the guy she eventually left the party with! Odd."
?CCL16: EQUAL? HEART-COUNTER,4 \FALSE
MOVE FORD,LOCAL-GLOBALS
MOVE ZAPHOD,LOCAL-GLOBALS
MOVE TRILLIAN,LOCAL-GLOBALS
MOVE HANDBAG,BRIDGE
MOVE SATCHEL,BRIDGE
FCLEAR HANDBAG,NDESCBIT
FCLEAR HANDBAG,TRYTAKEBIT
CALL2 INT,I-FORD
PUT STACK,0,0
CALL QUEUE,I-MARVIN,-1
PUT STACK,0,1
EQUAL? HERE,BRIDGE \FALSE
SET 'FOLLOW-FLAG,3
CALL QUEUE,I-FOLLOW,2
PUT STACK,0,1
CRLF
PRINTI """Like my spaceship, Ford?"" Zaphod asks. ""YOUR spaceship?"" says Ford, losing his cool for a second. ""Yeah, I stole it,"" Zaphod admits. ""I'm gonna use it to find"
PRINT LOST-PLANET
PRINTI ". Let's go sit in the sauna while I explain."" Zaphod, Ford, and "
PRINTD TRILLIAN
PRINTR " all head off to port."
?CCL3: EQUAL? HERE,HOLD \?CCL29
FSET? CAPTAINS-QUARTERS,TOUCHBIT \?CCL32
INC 'GUARDS-COUNTER
EQUAL? GUARDS-COUNTER,1 \?CCL35
CRLF
PRINTR "The guard releases you and Ford and begins cycling the air in the airlock. ""Hey, guard!"" shouts Ford, ""do you really enjoy this sort of thing? Shouting, stomping around, shooting people, is it really a fulfilling career?"""
?CCL35: EQUAL? GUARDS-COUNTER,6 \?PRG51
CALL2 INT,I-FORD
PUT STACK,0,0
MOVE SATCHEL,FORD
FCLEAR SATCHEL,NDESCBIT
SET 'PANEL-BLOCKER,FALSE-VALUE
FSET HOLD,REVISITBIT
CRLF
PRINTI "The guard says, """
CALL HELD?,BABEL-FISH,PROTAGONIST
ZERO? STACK /?PRG47
PRINTI "Well, all things considered, I guess I like being a guard. Especially the shouting. Resistance is useless!"""
JUMP ?PRG49
?PRG47: PRINTC 73
ICALL2 PRODUCE-GIBBERISH,3
?PRG49: PRINTI " He throws you and Ford into the airlock and closes the door."
CRLF
CRLF
ICALL2 GOTO,AIRLOCK
MOVE FORD,AIRLOCK
RTRUE
?PRG51: CRLF
PRINTR "Ford continues trying to talk the guard into a sudden career change."
?CCL32: MOVE GUIDE,PROTAGONIST
CALL2 INT,I-FORD
PUT STACK,0,0
SET 'FORD-SLEEPING,TRUE-VALUE
IN? MINERAL-WATER,FORD \?CND53
MOVE MINERAL-WATER,SATCHEL
?CND53: IN? TOWEL,FORD \?CND55
MOVE TOWEL,HERE
?CND55: MOVE SATCHEL,HERE
FCLEAR SATCHEL,TRYTAKEBIT
CRLF
PRINTI "Ford yawns. ""Matter transference always tires me out. I'm going to take a nap."" He places something on top of his satchel. ""If you have any questions, here's "
PRINT GUIDE-NAME
PRINTI """ (Footnote 14). Ford lowers his voice to a whisper. ""I'm not supposed to tell you this, but you'll never be able to finish the game without consulting the Guide about lots of stuff."" As he curls up in a corner and begins snoring, you pick up "
PRINTD GUIDE
PRINTR "."
?CCL29: ZERO? FORD-COUNTER \?CCL60
SET 'FORD-COUNTER,1
CRLF
PRINTR "Ford glances uncomfortably at the sky. He offers you the towel again."
?CCL60: EQUAL? FORD-COUNTER,1 \?CCL64
CRLF
PRINTI "Ford seems oblivious to your trouble, so you ask ""Ford, what about my home?"" He"
CALL1 FORD-DECIDES
RSTACK
?CCL64: EQUAL? FORD-COUNTER,2 \?CCL68
SET 'FORD-COUNTER,3
SET 'LYING-DOWN,FALSE-VALUE
SET 'PROSSER-LYING,TRUE-VALUE
CALL QUEUE,I-FORD,2
PUT STACK,0,1
FSET CONVERSATION,INVISIBLE
CRLF
PRINTI "Ford and Prosser stop talking and approach you. Ford says that Prosser has agreed to lie in your place so that the two of you can go off to the Pub. Reluctantly, Prosser steps forward and lies down in front of the "
PRINTD BULLDOZER
PRINTR ". You stand up."
?CCL68: EQUAL? FORD-COUNTER,3 \?CCL72
MOVE FORD,COUNTRY-LANE
SET 'FORD-COUNTER,4
EQUAL? HERE,FRONT-OF-HOUSE \?CCL75
SET 'FOLLOW-FLAG,1
CALL QUEUE,I-FOLLOW,2
PUT STACK,0,1
CRLF
PRINTR "Ford, urging you to follow, hurries toward the country lane."
?CCL75: EQUAL? HERE,COUNTRY-LANE \FALSE
CRLF
PRINTR "Ford enters from the north."
?CCL72: EQUAL? FORD-COUNTER,4 \?CCL83
EQUAL? HERE,COUNTRY-LANE \?CCL83
FSET? PUB,TOUCHBIT /?CCL83
SET 'FORD-COUNTER,5
SET 'FOLLOW-FLAG,1
CALL QUEUE,I-FOLLOW,2
PUT STACK,0,1
MOVE FORD,PUB
CRLF
PRINTR """Come along, Arthur,"" says Ford impatiently, and enters the Pub."
?CCL83: IN? FORD,HERE /?CCL90
FSET? PUB,TOUCHBIT \?CCL90
MOVE FORD,HERE
CRLF
PRINTR "Ford hurries after you."
?CCL90: LESS? DRUNK-LEVEL,3 \FALSE
EQUAL? PRSO,BEER \?CCL99
EQUAL? PRSA,V?ENJOY,V?DRINK /FALSE
?CCL99: EQUAL? HERE,PUB \FALSE
FSET? BEER,NDESCBIT /FALSE
CRLF
PRINTI """Drink the beer,"" urges Ford. ""It will help"
ICALL1 CUSHION
PRINTR """"
.FUNCT SATCHEL-DESCFCN,X
PRINTI "There is a satchel here"
EQUAL? PANEL-BLOCKER,SATCHEL \?PRG7
PRINTI ", resting in front of the "
PRINTD ROBOT-PANEL
?PRG7: PRINTC 46
ICALL1 ITEM-ON-SATCHEL-DESCRIPTION
CRLF
RTRUE
.FUNCT ITEM-ON-SATCHEL-DESCRIPTION
ZERO? ITEM-ON-SATCHEL /FALSE
PRINTI " Sitting on top of it is"
ICALL2 ARTICLE,ITEM-ON-SATCHEL
PRINTC 46
RTRUE
.FUNCT SATCHEL-F
EQUAL? PRSA,V?OPEN \?CCL3
EQUAL? IDENTITY-FLAG,FORD /?CCL3
CALL2 PRIVATE,STR?73
RSTACK
?CCL3: EQUAL? PRSA,V?PUT-ON \?CCL7
EQUAL? SATCHEL,PRSI \?CCL7
CALL2 HELD?,SATCHEL
ZERO? STACK /?CCL12
PRINTR "Put down the satchel first."
?CCL12: ZERO? ITEM-ON-SATCHEL /?CCL16
PRINTI "But"
ICALL ARTICLE,ITEM-ON-SATCHEL,TRUE-VALUE
PRINTR " is already on the satchel."
?CCL16: SET 'ITEM-ON-SATCHEL,PRSO
MOVE PRSO,HERE
FSET PRSO,NDESCBIT
FSET PRSO,TRYTAKEBIT
PRINTI "Okay,"
ICALL ARTICLE,PRSO,TRUE-VALUE
PRINTR " is now sitting on the satchel."
?CCL7: EQUAL? PRSA,V?EXAMINE \?CCL26
PRINTI "The satchel, which is "
FSET? SATCHEL,OPENBIT \?PRG34
PRINTI "open"
JUMP ?PRG36
?PRG34: PRINTI "closed"
?PRG36: PRINTI ", is fairly bulky."
ICALL1 ITEM-ON-SATCHEL-DESCRIPTION
CRLF
RTRUE
?CCL26: EQUAL? PRSA,V?TAKE \FALSE
IN? SATCHEL,FORD \FALSE
PRINTI "Ford says, ""Hey, Arthur, keep "
PRINTD HANDS
PRINTR "s off my satchel!"""
.FUNCT TOWEL-F
EQUAL? PRSA,V?TAKE \?CCL3
FSET? TOWEL,TRYTAKEBIT \?CCL3
EQUAL? HERE,FRONT-OF-HOUSE \?CCL3
ZERO? LYING-DOWN /?CCL3
FCLEAR TOWEL,TRYTAKEBIT
MOVE TOWEL,PROTAGONIST
MOVE FORD,LOCAL-GLOBALS
SET 'FORD-GONE,TRUE-VALUE
SET 'FOLLOW-FLAG,5
CALL QUEUE,I-FOLLOW,2
PUT STACK,0,1
CALL2 INT,I-FORD
PUT STACK,0,0
PRINTI "As you take it, Ford says, ""Er, look, thanks for lending me the towel... been nice knowing you... got to go now..."" He smiles oddly and walks down the "
PRINTD COUNTRY-LANE
PRINTR "."
?CCL3: EQUAL? PRSA,V?MOVE,V?TAKE \?CCL11
EQUAL? PRSO,TOWEL \?CCL11
FSET? TOWEL,SURFACEBIT \?CCL11
FCLEAR TOWEL,TRYTAKEBIT
FCLEAR TOWEL,SURFACEBIT
ICALL ROB,TOWEL,HERE
FCLEAR TOWEL,CONTBIT
FCLEAR TOWEL,OPENBIT
FCLEAR TOWEL,NDESCBIT
EQUAL? PRSA,V?MOVE \FALSE
PRINTR "Okay, it's no longer covering the drain."
?CCL11: EQUAL? PRSA,V?TIE,V?PUT-ON \?CCL21
EQUAL? PRSI,BEAST \?CCL21
PRINTR "The effect is decorative rather than helpful."
?CCL21: EQUAL? PRSA,V?TIE,V?PUT-ON \?CCL27
EQUAL? PRSI,EYES,HEAD \?CCL27
FSET? TOWEL,WORNBIT \?CCL32
PRINTR "It already is."
?CCL32: IN? BEAST,HERE \?PRG39
FSET TOWEL,WORNBIT
MOVE TOWEL,PROTAGONIST
CALL QUEUE,I-BEAST,11
PUT STACK,0,1
PRINTI "The "
PRINTD BEAST
PRINTR " is completely bewildered. It is so dim it thinks that if you can't see it, it can't see you. You have a few seconds before it realises its mistake."
?PRG39: PRINTI "There's no need for that. It's not like there's a "
PRINTD BEAST
PRINTR " around, or something."
?CCL27: FSET? TOWEL,WORNBIT \?CCL42
EQUAL? PRSA,V?UNTIE,V?REMOVE,V?TAKE-OFF \?CCL42
FCLEAR TOWEL,WORNBIT
PRINTI "You unwrap the towel from your head."
FSET? BEAST,MUNGEDBIT \?CND47
CRLF
CRLF
ICALL1 V-LOOK
RTRUE
?CND47: ZERO? BEARINGS-LOST /?PRG59
PRINTI " You see that you have wandered in circles"
EQUAL? HERE,OUTER-LAIR \?PRG57
PRINTI " and ended right beside the "
PRINTD MEMORIAL
?PRG57: PRINTC 46
?PRG59: PRINTI " Unfortunately, the Beast has also caught sight of you again. All this fooling around has made it doubly angry and hungry. "
ICALL1 BEAST-DEATH
RTRUE
?CCL42: EQUAL? PRSA,V?EXAMINE \?CCL62
FSET? TOWEL,SURFACEBIT \?CCL65
ICALL PERFORM,V?EXAMINE,DRAIN
FIRST? TOWEL /FALSE
RTRUE
?CCL65: ZERO? TOWEL-MUDDY /?PRG72
PRINTR "It is caked with mud."
?PRG72: PRINTR "It's covered with little pink and blue flowers."
?CCL62: EQUAL? PRSA,V?LIE-DOWN \FALSE
FSET? TOWEL,SURFACEBIT \FALSE
ICALL PERFORM,V?STAND-BEFORE,HOOK
RTRUE
.FUNCT BACK-OF-HOUSE-F,RARG
EQUAL? RARG,M-END \?CCL3
CALL2 RUNNING?,I-VOGONS
ZERO? STACK \?CCL3
ZERO? HOUSE-DEMOLISHED /?CCL3
ICALL1 I-VOGONS
CALL QUEUE,I-VOGONS,2
PUT STACK,0,1
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "The rear garden is a pleasant place. I"
PRINT NICE-DAY
PRINTR ", and it's a lovely day for a walk. A path leads around the house to the southeast and southwest."
.FUNCT TREE-PSEUDO
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
PRINTR "You were never very good at that."
.FUNCT COUNTRY-LANE-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
ZERO? PROSSER-LYING \?CCL6
ZERO? HOUSE-DEMOLISHED \?CCL6
FSET? HOLD,TOUCHBIT /?CCL6
SET 'BULLDOZER-COUNTER,3
CALL1 I-BULLDOZER
RSTACK
?CCL6: EQUAL? IDENTITY-FLAG,FORD \?CCL11
ZERO? HOUSE-DEMOLISHED /?CCL11
CALL QUEUE,I-DOG,1
PUT STACK,0,1
RFALSE
?CCL11: EQUAL? DRUNK-LEVEL,3 \?CCL15
EQUAL? IDENTITY-FLAG,ARTHUR \?CCL15
CALL QUEUE,I-DOG,1
PUT STACK,0,1
RFALSE
?CCL15: FSET? HOLD,TOUCHBIT \FALSE
FSET? COUNTRY-LANE,NDESCBIT /FALSE
LOC SATCHEL
PUT FORD-TABLE,0,STACK
LOC THUMB
PUT FORD-TABLE,1,STACK
LOC GUIDE
PUT FORD-TABLE,2,STACK
LOC TOWEL
PUT FORD-TABLE,3,STACK
LOC MINERAL-WATER
PUT FORD-TABLE,5,STACK
FSET? THUMB,MUNGEDBIT \?CND22
PUT FORD-TABLE,4,TRUE-VALUE
FCLEAR THUMB,MUNGEDBIT
?CND22: FSET COUNTRY-LANE,NDESCBIT
ICALL ROB,PROTAGONIST,MEMORIAL
MOVE SATCHEL,PROTAGONIST
MOVE THUMB,SATCHEL
MOVE GUIDE,SATCHEL
MOVE TOWEL,SATCHEL
MOVE MINERAL-WATER,SATCHEL
MOVE ARTHUR,FRONT-OF-HOUSE
SET 'IDENTITY-FLAG,FORD
MOVE FORD,GLOBAL-OBJECTS
MOVE PEANUTS,PUB
FSET PEANUTS,TRYTAKEBIT
FSET PEANUTS,NDESCBIT
SET 'PEANUTS-BOUGHT,FALSE-VALUE
SET 'DREAMING,TRUE-VALUE
CALL QUEUE,I-VOGONS,38
PUT STACK,0,1
PRINTI "You are hurrying up a country lane. The sky is light and clear, but you keep glancing at it with apprehension because you know that it will shortly be torn apart by Vogon ships, and that the hills and trees around you will just burn up and blow away, and you hope there's time for a quick drink beforehand.
You want to hitch a ride aboard the Vogon fleet, but are anxious because it's so long since you were through a"
PRINT BEAM
PRINTC 46
CRLF
CRLF
RTRUE
?CCL3: EQUAL? RARG,M-END \?CCL27
FSET? COUNTRY-LANE,REVISITBIT \?CCL27
SET 'DREAMING,TRUE-VALUE
CRLF
PRINTI "Suddenly, a shadow passes in front of the sun. You look up. The shadow is a "
PRINTD FLEET
PRINTI ". You fumble for "
ICALL2 JIGS-UP,STR?74
RTRUE
?CCL27: EQUAL? RARG,M-LOOK \FALSE
PRINTI "The road runs from "
EQUAL? IDENTITY-FLAG,ARTHUR \?PRG41
PRINTI "your"
JUMP ?PRG43
?PRG41: PRINTI "Arthur's"
?PRG43: PRINTR " home, to the north, toward the village Pub, to the west."
.FUNCT I-DOG
EQUAL? HERE,WAR-CHAMBER \?CCL3
INC 'DOG-COUNTER
LESS? DOG-COUNTER,13 \?CND4
EQUAL? PRSA,V?WAIT /FALSE
?CND4: CRLF
LESS? DOG-COUNTER,13 \?CCL10
PRINTR "The fleet continues to hurtle sunwards."
?CCL10: ZERO? DOG-FED /?PRG17
SET 'LYING-DOWN,FALSE-VALUE
PRINTI "Your simple act of kindness at a moment of great personal anxiety (you fed the dog, remember?) now brings rich rewards. "
PRINT FLEET-PLUNGES
PRINTI " spots the dog (which appears to them as a gigantic monster) cheerfully tucking into a "
PRINTD SANDWICH
PRINTI ".
The Vl'Hurgs and the G'Gugvunts are moved by this simple picture of happiness, compared with the furious savagery of their own lives. They think back to a day when they used to relax over an odd "
PRINTD SANDWICH
PRINTI " themselves, often at sunset after a hearty day working in the fields back in Vl'Hurgon and G'Gugvia, and decide to return and rebuild their homes in a new spirit of harmony and cooperation.
Grateful, they offer to drop you at "
PRINTD HEART-OF-GOLD
PRINTI " on the way home. After a brief 900 parsec trip, you are escorted into the Transporter Chamber of the warship. The transporter glows, and your surroundings change..."
CRLF
CRLF
CALL2 GOTO,MAZE
RSTACK
?PRG17: PRINT FLEET-PLUNGES
ICALL2 JIGS-UP,STR?75
RTRUE
?CCL3: EQUAL? IDENTITY-FLAG,FORD \?CCL20
MOVE DOG,HERE
CALL2 INT,I-DOG
PUT STACK,0,0
PRINTI "You run up the lane after Arthur. You pass a"
ZERO? DOG-FED /?PRG28
PRINTR " serene dog. Fate cannot harm him, he has dined today."
?PRG28: PRINTR "n irritable dog who yaps at you."
?CCL20: IN? DOG,HERE /?CCL31
IN? FLEET,HERE /?CCL31
EQUAL? HERE,COUNTRY-LANE \?CCL31
MOVE DOG,HERE
CALL QUEUE,I-DOG,2
PUT STACK,0,1
PRINTI "You see the huge "
PRINTD BULLDOZER
PRINTI " heaving itself among the cloud of brick dust which is all that remains of "
PRINTD HOME
PRINTR ". As you start up the lane, a small dog runs up to you, yapping."
?CCL31: ZERO? DOG-FED \FALSE
IN? DOG,HERE \FALSE
FSET? DOG,TOUCHBIT /FALSE
FSET DOG,TOUCHBIT
PRINTR "The dog carries on yapping for a moment and then gulps uncomfortably."
.FUNCT DOG-F
EQUAL? PRSA,V?THROW,V?GIVE \?CCL3
EQUAL? PRSO,SANDWICH \?CCL6
EQUAL? IDENTITY-FLAG,FORD \?CCL9
MOVE SANDWICH,HERE
PRINTI "The dog is in a bad mood and tries to bite "
PRINTD HANDS
PRINTI ". The "
PRINTD SANDWICH
PRINTR " lies ignored in the roadside dust."
?CCL9: FSET? DOG,TOUCHBIT \?CCL13
PRINTI "The dog, which seems to have a slight case of indigestion, ignores the "
PRINTD SANDWICH
PRINTR "."
?CCL13: MOVE SANDWICH,LOCAL-GLOBALS
SET 'DOG-FED,TRUE-VALUE
PRINTI "The dog is deeply moved. With powerful sweeps of its tail it indicates that it regards this "
PRINTD SANDWICH
PRINTI " as one of the great "
PRINTD SANDWICH
PRINTI "es. Nine out of ten pet owners could happen by at this point expressing any preference they pleased, but this dog would spurn both them and all their tins. This is a dog which has met its main sandwich. It eats"
PRINT WITH-PASSION
CRLF
RTRUE
?CCL6: EQUAL? PRSO,PEANUTS \FALSE
PRINTR "This is a dog, not an elephant."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL23
ZERO? DOG-FED \?CCL23
PRINTR "The mongrel looks hungry."
?CCL23: EQUAL? PRSA,V?PUSH,V?KICK,V?RUB \FALSE
PRINTI "The dog tries to bite your "
EQUAL? PRSA,V?KICK \?PRG37
PRINTI "foot"
JUMP ?PRG39
?PRG37: PRINTI "hand"
?PRG39: PRINTR "."
.FUNCT PUB-OBJECT-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \?CCL3
EQUAL? HERE,PUB \?CCL6
PRINT LOOK-AROUND
CRLF
RTRUE
?CCL6: EQUAL? HERE,COUNTRY-LANE \?CCL10
CALL2 DO-WALK,P?WEST
RSTACK
?CCL10: CALL1 V-WALK-AROUND
RSTACK
?CCL3: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \FALSE
EQUAL? HERE,PUB \?PRG16
CALL2 DO-WALK,P?EAST
RSTACK
?PRG16: PRINT LOOK-AROUND
CRLF
RTRUE
.FUNCT PUB-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
ZERO? TOWEL-OFFERED \?CCL3
EQUAL? IDENTITY-FLAG,FORD \?CCL3
CALL QUEUE,I-UNEASY,-1
PUT STACK,0,1
RFALSE
?CCL3: EQUAL? RARG,M-LOOK \?CCL8
PRINTR "The Pub is pleasant and cheerful and full of pleasant and cheerful people who don't know they've got about twelve minutes to live and are therefore having a spot of lunch. Some music is playing on an old jukebox. The exit is east."
?CCL8: EQUAL? RARG,M-END \FALSE
FSET? BEER,NDESCBIT \FALSE
IN? FORD,HERE \FALSE
EQUAL? IDENTITY-FLAG,FORD /FALSE
FCLEAR BEER,NDESCBIT
CALL QUEUE,I-FORD,2
PUT STACK,0,1
SET 'FORD-COUNTER,5
CRLF
PRINTI "Ford buys "
PRINTD BEER
PRINTR " and offers half to you. ""Muscle relaxant..."" he says, impenetrably."
.FUNCT BAR-F
EQUAL? PRSA,V?LOOK-BEHIND \FALSE
ICALL PERFORM,V?EXAMINE,PUB-SHELF
RTRUE
.FUNCT PUB-SHELF-F
EQUAL? PRSA,V?EXAMINE \FALSE
FSET PUB-SHELF,NDESCBIT
PRINTI "On the shelf behind the bar is the usual array of bottles, glasses and soggy beermats"
ZERO? PEANUTS-BOUGHT \?CND6
FSET PEANUTS,TAKEBIT
FSET PEANUTS,TRYTAKEBIT
ZERO? SANDWICH-BOUGHT /?PRG13
PRINTI ", and"
JUMP ?PRG15
?PRG13: PRINTC 44
?PRG15: PRINTI " some packets of peanuts"
?CND6: ZERO? SANDWICH-BOUGHT \?PRG21
FSET SANDWICH,TAKEBIT
FSET SANDWICH,TRYTAKEBIT
PRINTI ", and a plate of uninviting "
PRINTD SANDWICH
PRINTI "es"
?PRG21: PRINTR "."
.FUNCT MUSIC-F
EQUAL? PRSA,V?ENJOY,V?LISTEN \FALSE
ICALL PERFORM,V?LISTEN,JUKEBOX
RTRUE
.FUNCT JUKEBOX-F
EQUAL? PRSA,V?LISTEN \?CCL3
PRINTI "The song is "
RANDOM 100
LESS? 25,STACK /?CCL8
PRINTR "a Walker Brothers single, ""The Sun Ain't Gonna Shine Anymore."""
?CCL8: RANDOM 100
LESS? 33,STACK /?CCL12
PRINTR """Get Back"" by the Beatles."
?CCL12: RANDOM 100
LESS? 50,STACK /?PRG19
PRINTR """Hey Jude"" by the Beatles (Footnote 4). It's a particular favourite, and listening to it calms you down, and cheers you up."
?PRG19: PRINTI """Tie a Yellow Ribbon."""
EQUAL? IDENTITY-FLAG,FORD \?CND21
PRINTR " You can't stand it, and are pleased to think that this is probably the last time it will ever be heard."
?CND21: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?LAMP-OFF \FALSE
CALL2 PRIVATE,STR?77
RSTACK
.FUNCT BARMAN-F
EQUAL? BARMAN,WINNER \?CCL3
EQUAL? PRSA,V?TELL-ABOUT \?CCL6
EQUAL? PRSO,ME \?CCL6
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-ABOUT,BARMAN,PRSI
SET 'WINNER,BARMAN
RTRUE
?CCL6: EQUAL? PRSA,V?HELLO \?CCL10
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?HELLO,BARMAN
SET 'WINNER,BARMAN
RTRUE
?CCL10: EQUAL? PRSA,V?GIVE \?PRG16
EQUAL? PRSO,ME \?PRG16
EQUAL? PRSI,PEANUTS,BEER,SANDWICH \?PRG16
ICALL PERFORM,V?BUY,PRSI
RTRUE
?PRG16: PRINTR "The barman ignores you and keeps polishing the other end of the bar."
?CCL3: EQUAL? PRSA,V?ASK-FOR \FALSE
EQUAL? PRSI,PEANUTS,BEER,SANDWICH \FALSE
ICALL PERFORM,V?BUY,PRSI
RTRUE
.FUNCT BEER-F
EQUAL? PRSA,V?COUNT,V?ENJOY,V?DRINK /?PRD5
EQUAL? PRSA,V?TAKE,V?RUB,V?SMELL \?CCL3
?PRD5: FSET? BEER,NDESCBIT \?CCL3
PRINTR "You'd better buy some first."
?CCL3: EQUAL? PRSA,V?COUNT \?CCL11
PRINTR "Lots."
?CCL11: EQUAL? PRSA,V?TAKE \?CCL15
PRINTR "Just drink it!"
?CCL15: EQUAL? IDENTITY-FLAG,FORD \?CCL19
EQUAL? PRSA,V?BUY \?CCL22
FSET? BEER,NDESCBIT /?CND23
PRINTR "You already did!"
?CND23: FCLEAR BEER,NDESCBIT
IN? ARTHUR,HERE \?PRG34
PRINTI "You order six pints of bitter -- three for you, three for Arthur. According to "
PRINTD GUIDE
PRINTI " this should"
ICALL1 CUSHION
CRLF
CRLF
PRINTR "As you drink the first pint, you mention to Arthur that you are from a different planet, but it makes little impression. This surprises you, because you thought it was the sort of thing that would interest people."
?PRG34: PRINTI "You buy yourself three pints, which you calculate you will need to"
ICALL1 CUSHION
PRINTI " This is a tip you picked up from "
PRINTD GUIDE
PRINTR "."
?CCL22: EQUAL? PRSA,V?ENJOY,V?DRINK \FALSE
INC 'DRUNK-LEVEL
IN? ARTHUR,HERE /?CCL42
PRINT DOWN-WELL
CRLF
RTRUE
?CCL42: EQUAL? DRUNK-LEVEL,1 \?CCL46
ADD SCORE,FORD-POINT >SCORE
SET 'FORD-POINT,0
PRINT DOWN-WELL
PRINTR " At least they managed to get something right on this benighted planet. You decide it's time to tell Arthur that the world is about to end. You tell him. Arthur is completely unperturbed. Curious. You wonder what sort of news it would take to disturb him."
?CCL46: EQUAL? DRUNK-LEVEL,2 \?PRG53
PRINT DOWN-WELL
CALL1 SCENE-THROUGH-WINDOW
RSTACK
?PRG53: PRINTR "You've had enough."
?CCL19: EQUAL? PRSA,V?ENJOY,V?DRINK \?CCL57
ADD SCORE,5 >SCORE
INC 'DRUNK-LEVEL
EQUAL? DRUNK-LEVEL,4 \?CCL60
PRINTI "You can hear the muffled noise of your home being demolished, and the taste of the beer sours in your mouth."
CRLF
CRLF
ICALL PERFORM,V?GET-DRUNK,ROOMS
RTRUE
?CCL60: EQUAL? DRUNK-LEVEL,3 \?CCL64
CALL QUEUE,I-FORD,-1
PUT STACK,0,1
SET 'HOUSE-DEMOLISHED,TRUE-VALUE
SET 'PROSSER-LYING,FALSE-VALUE
PRINTR "There is a distant crash which Ford explains is nothing to worry about, probably just your house being knocked down."
?CCL64: EQUAL? DRUNK-LEVEL,2 \?CCL68
PRINTR "It is really very pleasant stuff, with a very good dry, nutty flavour, some light froth on top, and a deep colour. It is at exactly room temperature. You reflect that the world cannot be all bad when there are such pleasures in it.
Ford mentions that the world is going to end in about twelve minutes."
?CCL68: EQUAL? DRUNK-LEVEL,1 \FALSE
PRINTR "It's very good beer, brewed by a small local company. You particularly like its flavour, which is why you woke up feeling so wretched this morning. You were at somebody's birthday party here in the Pub last night.
You begin to relax and enjoy yourself, so when Ford mentions that he's from a small planet in the vicinity of Betelgeuse, not from Guildford as he usually claims, you take it in your stride, and say, ""Oh yes, which part?"""
?CCL57: EQUAL? PRSA,V?BUY \FALSE
FSET? BEER,NDESCBIT \?PRG80
ICALL PERFORM,V?BUY,PEANUTS
RTRUE
?PRG80: PRINTD FORD
PRINTR " has already bought an enormous quantity for you!"
.FUNCT PEANUTS-F
EQUAL? IDENTITY-FLAG,FORD \?CCL3
EQUAL? PRSA,V?BUY \?CCL3
ZERO? PEANUTS-BOUGHT /?CND6
PRINTR "You did!"
?CND6: SET 'PEANUTS-BOUGHT,TRUE-VALUE
MOVE PEANUTS,PROTAGONIST
FCLEAR PEANUTS,TRYTAKEBIT
FCLEAR PEANUTS,NDESCBIT
PRINTI "You buy some peanuts, which you'll need to replace protein loss from the"
PRINT BEAM
PRINTI ", a tip you picked up from "
PRINTD GUIDE
PRINTR "."
?CCL3: EQUAL? PRSA,V?OPEN \?CCL13
PRINTR "Just eat 'em."
?CCL13: EQUAL? PRSA,V?ENJOY,V?EAT \?CCL17
ZERO? EARTH-DEMOLISHED /?CCL17
ZERO? GROGGY /?CCL17
SET 'GROGGY,FALSE-VALUE
MOVE PEANUTS,PUB
FSET PEANUTS,TRYTAKEBIT
FSET PEANUTS,NDESCBIT
PRINTI "You feel stronger as the peanuts replace some of the protein you lost in the"
PRINT BEAM
PRINTR "."
?CCL17: EQUAL? PRSA,V?BUY \?CCL24
EQUAL? HERE,PUB \?CCL24
PRINTR "However much you clear your throat, wave your forefinger, or wiggle your eyebrows, the barman pays no attention, but carries on wiping another part of the bar."
?CCL24: EQUAL? PRSA,V?EAT,V?TAKE \FALSE
FSET? PEANUTS,TRYTAKEBIT \FALSE
EQUAL? HERE,PUB \FALSE
PRINT HANDS-OFF
CRLF
RTRUE
.FUNCT SANDWICH-F
EQUAL? PRSA,V?BUY \?CCL3
ZERO? SANDWICH-BOUGHT \?CCL3
MOVE SANDWICH,PROTAGONIST
FSET SANDWICH,TAKEBIT
FCLEAR SANDWICH,TRYTAKEBIT
FCLEAR SANDWICH,NDESCBIT
SET 'SANDWICH-BOUGHT,TRUE-VALUE
PRINTI "The barman gives you a "
PRINTD SANDWICH
PRINTR ". The bread is like the stuff that stereos come packed in, the cheese would be great for rubbing out spelling mistakes, and margarine and pickle have performed an unedifying chemical reaction to produce something that shouldn't be, but is, turquoise. Since it is clearly unfit for human consumption you are grateful to be charged only a pound for it."
?CCL3: EQUAL? PRSA,V?BUY \?CCL9
PRINTR "You already did."
?CCL9: EQUAL? PRSA,V?ENJOY,V?EAT,V?TAKE \?CCL13
FSET? SANDWICH,TRYTAKEBIT \?CCL13
EQUAL? HERE,PUB \?CCL13
PRINT HANDS-OFF
CRLF
RTRUE
?CCL13: EQUAL? PRSA,V?ENJOY,V?EAT \FALSE
MOVE SANDWICH,LOCAL-GLOBALS
SUB SCORE,30 >SCORE
EQUAL? IDENTITY-FLAG,FORD \?PRG26
PRINTI "You swallow with revulsion, astonished that life forms which have spent 4.6 billion years evolving cannot produce a better "
PRINTD SANDWICH
PRINTR " than this."
?PRG26: PRINTR "It is one of the least rewarding taste experiences you can recall."
.FUNCT I-VOGONS
CALL QUEUE,I-VOGONS,-1
PUT STACK,0,1
INC 'VOGON-COUNTER
EQUAL? VOGON-COUNTER,1 \?CCL3
EQUAL? HERE,PUB \?CND4
ICALL1 GO-TO-LANE
?CND4: MOVE FLEET,HERE
CRLF
EQUAL? IDENTITY-FLAG,FORD \?PRG11
MOVE ARTHUR,HERE
PRINTI "Right on schedule (according to the news you picked up last night on your Sub-Etha Sens-O-Matic), a huge "
PRINTD FLEET
PRINTR " hurtles noisily through the sky. Time is very, very short. Storms break in the wake of the ships, the wind whips at you and makes it difficult to stand. You grab hold of a tree."
?PRG11: PRINTI "With a noise like a cross between Led Zeppelin's farewell concert and the eruption of Krakatoa, a huge "
PRINTD FLEET
PRINTI " flies overhead and announces that the Earth will be demolished to make way for a new hyperspace bypass in ""two of your Earth minutes."""
CRLF
IN? FORD,HERE \?CND13
ZERO? FORD-COUNTER \?CND13
MOVE FORD,LOCAL-GLOBALS
CALL2 INT,I-FORD
PUT STACK,0,0
SET 'FORD-GONE,TRUE-VALUE
MOVE TOWEL,HERE
FCLEAR TOWEL,TRYTAKEBIT
CRLF
PRINTI "Ford drops the towel and dashes away."
CRLF
?CND13: CALL2 HELD?,THING
ZERO? STACK /FALSE
MOVE THING,LOCAL-GLOBALS
CRLF
PRINTI "In all the turmoil, "
IN? THING,GOWN \?PRG29
PRINTI "the "
PRINTD THING
PRINTI " drops out of your pocket and rolls away."
JUMP ?PRG31
?PRG29: PRINTI "you drop the "
PRINTD THING
PRINTI " and it rolls away."
?PRG31: PRINTI " It is the least of your worries. Anyway,"
PRINT GET-RID
CRLF
RTRUE
?CCL3: EQUAL? VOGON-COUNTER,2 \?CCL34
CRLF
PRINTI "The vast yellow ships thunder across the sky, spreading waves of terror and panic in their wake. The voice of the "
PRINTD VOGON-CAPTAIN
PRINTI " slams across the country, insisting that the planning charts and demolition orders have been available at the local planning office in Alpha Centauri for fifty years and it's too late to start making a fuss about it now."
CRLF
ZERO? FORD-GONE \TRUE
CRLF
EQUAL? IDENTITY-FLAG,FORD \?CCL41
CALL HELD?,THUMB,PROTAGONIST
ZERO? STACK /?PRG54
IN? THUMB,PROTAGONIST \?PRG50
PRINTI "The "
PRINTD THUMB
PRINTI " in "
PRINTD HANDS
PRINTI " begins to whine."
JUMP ?PRG52
?PRG50: PRINTI "You remove the "
PRINTD THUMB
PRINTI " from your satchel."
?PRG52: PRINTI " Lights pulsate across its surface. "
PRINT THUMB-FUMBLE
MOVE THUMB,HERE
SET 'P-IT-OBJECT,THUMB
JUMP ?PRG56
?PRG54: PRINTI "You wish you were holding your "
PRINTD THUMB
PRINTC 46
?PRG56: PRINTR " Arthur is struggling desperately towards you. The end of this planet is now only seconds away."
?CCL41: MOVE THUMB,HERE
SET 'P-IT-OBJECT,THUMB
PRINTR "Throughout the noise, Ford is shouting at you. He removes a small black device from his satchel, but accidentally drops it at your feet."
?CCL34: EQUAL? VOGON-COUNTER,3 \?CCL61
CRLF
PRINTI "Fierce gales whip across the land, and thunder bangs continuously through the air in the wake of the giant ships. "
EQUAL? IDENTITY-FLAG,ARTHUR \?CCL66
ZERO? FORD-GONE \?CCL66
PRINTI "Ford fights to reach you, but the wind is too fierce. Further announcements from the "
PRINTD VOGON-CAPTAIN
PRINTR " make it clear that demolition will begin in just a few seconds.
Through the blinding rain, you see lights flickering on the small device."
?CCL66: EQUAL? IDENTITY-FLAG,FORD \?CCL72
IN? THUMB,HERE \?CCL72
ZERO? FLUFF-TO-GOWN /?PRG77
FSET COUNTRY-LANE,REVISITBIT
?PRG77: PRINT DRIVEN-BACK
PRINTI " Fortunately, at this point, Arthur picks up the Thumb, and somehow manages to push the right button"
FSET? THUMB,MUNGEDBIT \?PRG88
PRINTI ". Unfortunately, the"
PRINT THUMB-CLICKS
SET 'VOGON-COUNTER,4
PRINTC 32
ICALL1 I-VOGONS
RTRUE
?PRG88: PRINTC 46
CRLF
CRLF
ICALL2 JIGS-UP,STR?79
RTRUE
?CCL72: CRLF
RTRUE
?CCL61: EQUAL? VOGON-COUNTER,5 \FALSE
PRINTI "The Earth is destroyed by the "
PRINTD FLEET
ZERO? FLUFF-TO-GOWN /?CND94
FSET COUNTRY-LANE,REVISITBIT
?CND94: ICALL2 JIGS-UP,STR?36
RTRUE
.FUNCT GO-TO-LANE
SET 'LYING-DOWN,FALSE-VALUE
CRLF
PRINTI "You hear sounds of panic from the street. You "
EQUAL? IDENTITY-FLAG,FORD \?CCL5
IN? ARTHUR,HERE /?CCL5
PRINTI "leave the Pub and run into Arthur..."
CRLF
CRLF
JUMP ?CND3
?CCL5: EQUAL? IDENTITY-FLAG,FORD \?PRG15
PRINTI "and Arthur"
JUMP ?PRG17
?PRG15: PRINTI "and Ford"
?PRG17: PRINTI " rush outside..."
CRLF
CRLF
?CND3: ICALL2 GOTO,COUNTRY-LANE
EQUAL? IDENTITY-FLAG,FORD \?CCL21
MOVE ARTHUR,COUNTRY-LANE
RTRUE
?CCL21: MOVE FORD,COUNTRY-LANE
RTRUE
.FUNCT FLEET-F
EQUAL? PRSA,V?ENJOY \?CCL3
PRINT ZEN
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?CCL7
SET 'AWAITING-REPLY,11
CALL QUEUE,I-REPLY,2
PUT STACK,0,1
PRINTR "From here?"
?CCL7: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,HOLD,AIRLOCK,CAPTAINS-QUARTERS /FALSE
PRINTR "The fleet consists of terrifying numbers of huge, ugly, yellow ships, all scarred with the results of many such past demolition jobs. Chicago's John Hancock tower, knocked about a bit and painted yellow, is what they each look like. That is, knocked about a bit, painted yellow, and flying."
.FUNCT LEAVE-EARTH
CALL2 INT,I-HOUSEWRECK
PUT STACK,0,0
CALL2 INT,I-BULLDOZER
PUT STACK,0,0
CALL2 INT,I-PROSSER
PUT STACK,0,0
CALL2 INT,I-FORD
PUT STACK,0,0
CALL2 INT,I-VOGONS
PUT STACK,0,0
SET 'HEADACHE,FALSE-VALUE
SET 'BULLDOZER-COUNTER,0
SET 'PROSSER-COUNTER,0
SET 'PROSSER-LYING,FALSE-VALUE
SET 'FORD-COUNTER,0
SET 'DRUNK-LEVEL,0
SET 'HOUSE-DEMOLISHED,FALSE-VALUE
SET 'VOGON-COUNTER,0
SET 'EARTH-DEMOLISHED,TRUE-VALUE
SET 'IDENTITY-FLAG,ARTHUR
MOVE ARTHUR,GLOBAL-OBJECTS
MOVE DOG,LOCAL-GLOBALS
MOVE FLEET,LOCAL-GLOBALS
MOVE FORD,LOCAL-GLOBALS
CALL2 HELD?,SANDWICH
ZERO? STACK \?CND1
ZERO? SANDWICH-BOUGHT /?CND1
MOVE SANDWICH,LOCAL-GLOBALS
?CND1: FSET BEER,NDESCBIT
FCLEAR PROSSER,TOUCHBIT
FCLEAR FRONT-OF-HOUSE,NDESCBIT
FCLEAR FRONT-OF-HOUSE,TOUCHBIT
FCLEAR COUNTRY-LANE,TOUCHBIT
RTRUE
.FUNCT ARTHUR-F
EQUAL? IDENTITY-FLAG,ARTHUR \?CCL3
EQUAL? ARTHUR,PRSO \?CCL6
ICALL PERFORM,PRSA,ME,PRSI
RTRUE
?CCL6: ICALL PERFORM,PRSA,PRSO,ME
RTRUE
?CCL3: EQUAL? ARTHUR,WINNER \?CCL8
IN? FLEET,HERE \?CCL11
PRINT ABOVE-NOISE
CRLF
JUMP ?CND9
?CCL11: EQUAL? PRSA,V?FOLLOW \?CCL15
EQUAL? HERE,FRONT-OF-HOUSE \?CCL15
EQUAL? PRSO,ME \?CCL15
ZERO? PROSSER-LYING /?CCL21
PRINTI "Arthur seems willing to do so."
CRLF
JUMP ?CND9
?CCL21: ICALL2 BUT-THAT-MAN,STR?81
CRLF
JUMP ?CND9
?CCL15: EQUAL? PRSA,V?DRINK \?PRG33
EQUAL? PRSO,BEER \?PRG33
FSET? BEER,NDESCBIT \?PRG31
SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?DRINK,BEER
SET 'WINNER,ARTHUR
RTRUE
?PRG31: PRINTI "Arthur seems to be waiting to follow your lead."
CRLF
JUMP ?CND9
?PRG33: PRINTI "Arthur looks too confused to respond."
CRLF
?CND9: CALL1 FUCKING-CLEAR
RSTACK
?CCL8: EQUAL? PRSA,V?ASK-FOR,V?TELL,V?HELLO /?PRD38
EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?CCL36
?PRD38: EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL36
EQUAL? PRSO,ARTHUR \?CCL36
ZERO? FLUFF-REMOVED /?PRG45
FSET ARTHUR,RLANDBIT
ICALL1 I-ARTHUR
JUMP ?CND42
?PRG45: PRINTI "You approach Arthur. He seems to find your tone a little cool, smiles unhappily, and wanders to the other end of the room."
CRLF
?CND42: CALL QUEUE,I-ARTHUR,2
PUT STACK,0,1
CALL1 FUCKING-CLEAR
RSTACK
?CCL36: EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT,V?TELL-ABOUT \?CCL48
EQUAL? PRSO,ARTHUR \?CCL48
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL48
ICALL PERFORM,V?HELLO,ARTHUR
RTRUE
?CCL48: EQUAL? PRSA,V?CARVE \?CCL53
EQUAL? PRSI,MEMORIAL \?CCL53
ICALL PERFORM,V?CARVE,YOUR-NAME,MEMORIAL
RTRUE
?CCL53: EQUAL? PRSA,V?GIVE \?CCL57
EQUAL? PRSO,TOWEL \?CCL57
EQUAL? HERE,FRONT-OF-HOUSE \?CCL57
ZERO? TOWEL-OFFERED \?CCL57
SET 'TOWEL-OFFERED,TRUE-VALUE
PRINTI "Inexplicably, Arthur takes no notice of the towel which, magnificently, you are trying to return to him. Instead, he says, ""Ford, what about my home?""
You start guiltily. Does he actually KNOW that the Earth is about to be destroyed? You start to ask him, then stop. If he knows, what the Zark is he doing lying here in the mud in front of...
You look around. You notice the "
PRINTD BULLDOZER
PRINTI " properly for the first time. You notice Arthur's house. You notice the workmen. The penny drops. His HOUSE is about to be demolished. You feel like a complete...what's the word?"
CALL1 IDIOT?
ZERO? STACK /?PRG69
PRINTI "Thank you. An idiot is exactly what you feel like."
JUMP ?PRG71
?PRG69: PRINTI "No, actually, ""idiot"" was the word I was looking for."
?PRG71: CRLF
CRLF
PRINTI "In a reckless moment you go completely mad and decide that you ought to take Arthur with you. You try to tell Arthur about the importance of getting a drink, but he's rambling on about a man called Prosser."
CRLF
RETURN 2
?CCL57: EQUAL? PRSO,SANDWICH \?CCL76
EQUAL? PRSA,V?GIVE \?CCL76
MOVE SANDWICH,ARTHUR
PRINTR "Arthur takes it, sniffs it suspiciously, and wisely decides that it's safer in his pocket than in his stomach."
?CCL76: EQUAL? PRSA,V?GIVE \?CCL82
EQUAL? PRSO,SATCHEL-FLUFF \?CCL82
ZERO? HOUSE-DEMOLISHED /?PRG90
MOVE SATCHEL-FLUFF,LOCAL-GLOBALS
SET 'FLUFF-TO-GOWN,TRUE-VALUE
PRINTR "Arthur hiccups, takes the fluff, and sticks it in his pocket."
?PRG90: PRINTR "Arthur blinks several times, but doesn't take the fluff. Perhaps if he had a few drinks in him..."
?CCL82: EQUAL? PRSA,V?EXAMINE \?CCL93
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL93
PRINTI "Arthur seems nice and well meaning, but also terribly shy."
ZERO? FLUFF-REMOVED \?CND98
MOVE JACKET-FLUFF,HERE
CALL QUEUE,I-ARTHUR,-1
PUT STACK,0,1
PRINTI " He has tried to start a "
PRINTD CONVERSATION
PRINTR " with you several times, but still hasn't gotten past ""Hello."" He has an enormous, unsightly ball of fluff on his jacket."
?CND98: CRLF
RTRUE
?CCL93: EQUAL? PRSA,V?FOLLOW \?CCL103
EQUAL? FOLLOW-FLAG,4 \?CCL103
CALL2 DO-WALK,P?EAST
RSTACK
?CCL103: EQUAL? PRSA,V?PICK-UP \?CCL107
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL107
ICALL PERFORM,V?PICK-UP,ZAPHOD
RTRUE
?CCL107: EQUAL? PRSA,V?LISTEN \FALSE
EQUAL? IDENTITY-FLAG,TRILLIAN \FALSE
ZERO? FLUFF-REMOVED /FALSE
PRINTR "Unfortunately, you seem to have no choice."
.FUNCT IDIOT?
CRLF
CRLF
PRINTC 62
PUTB P-INBUF,1,0
READ P-INBUF,P-LEXV
GET P-LEXV,1
EQUAL? STACK,W?IDIOT /TRUE
RFALSE
.FUNCT I-UNEASY
INC 'UNEASY-COUNTER
EQUAL? HERE,PUB /?CND1
CALL2 INT,I-UNEASY
PUT STACK,0,0
RFALSE
?CND1: CRLF
EQUAL? UNEASY-COUNTER,1 \?CCL5
PRINTR "You feel uneasy about something."
?CCL5: EQUAL? UNEASY-COUNTER,2,3,4 \?PRG12
PRINTR "You still feel uneasy."
?PRG12: PRINTI "The sense of uneasiness you've been so busy ignoring now utterly engulfs you, as you realise that you've broken the fundamental rule of time travel: ""Do as you would have done by."" The rational foundation of the Universe crashes and within a few seconds the whole of creation ceases ever to have exis"
CRLF
CRLF
CRLF
QUIT
RTRUE
.FUNCT I-ARTHUR
CALL QUEUE,I-ARTHUR,-1
PUT STACK,0,1
EQUAL? IDENTITY-FLAG,TRILLIAN \?CCL3
ZERO? FLUFF-REMOVED /?CCL6
FSET? ARTHUR,RLANDBIT /?CND7
CRLF
?CND7: FCLEAR ARTHUR,RLANDBIT
IN? ARTHUR,HERE /?PRG14
MOVE ARTHUR,HERE
PRINTR "Arthur follows you like an eager puppy."
?PRG14: PRINTI "Arthur tries, unsuccessfully, to interest you by talking about "
CALL2 PICK-ONE,BORES
PRINT STACK
CRLF
RTRUE
?CCL6: RANDOM 100
LESS? 20,STACK /FALSE
MOVE ARTHUR,HERE
MOVE JACKET-FLUFF,HERE
CRLF
PRINTR "Arthur walks up and says, ""Hello, again."" He looks shy, embarrassed and stuck for anything else to say, and quickly walks to the other end of the room."
?CCL3: IN? ARTHUR,HERE /FALSE
MOVE ARTHUR,HERE
PRINTR "Arthur follows you."
.FUNCT SCENE-THROUGH-WINDOW
MOVE ARTHUR,FRONT-OF-HOUSE
CALL2 INT,I-ARTHUR
PUT STACK,0,0
SET 'HOUSE-DEMOLISHED,TRUE-VALUE
SET 'PROSSER-LYING,FALSE-VALUE
SET 'FOLLOW-FLAG,4
CALL QUEUE,I-FOLLOW,2
PUT STACK,0,1
PRINTI " You hear a muffled crash. It's probably Arthur's little house getting knocked down, which you tell him. This DOES upset him, and he tears out the door.
Through the window, you see him running up the lane. A small dog chases after him, yapping, "
ZERO? DOG-FED \?CTR4
IN? SANDWICH,ARTHUR \?PRG10
?CTR4: SET 'DOG-FED,TRUE-VALUE
PRINTI "and he throws it a "
PRINTD SANDWICH
PRINTI ". The dog devours the sandwich"
PRINT WITH-PASSION
CRLF
RTRUE
?PRG10: PRINTR "but he ignores it. The dog gulps uncomfortably."
.ENDI