.SEGMENT "CASTLE" .FUNCT LOWER-HALL-ENTER-F,RARG FSET? OUTER-GATE,OPENBIT /?CTR2 ZERO? TIME-STOPPED /?CCL3 ?CTR2: ZERO? RARG \FALSE ICALL1 RETURN-FROM-MAP PRINTI "Near the bottom of the flight, the steps are blocked by newly-fallen rubble!" CRLF RFALSE ?CCL3: RETURN LOWER-HALL .FUNCT PROCLAMATION-F EQUAL? PRSA,V?TAKE \FALSE FSET? PROCLAMATION,TRYTAKEBIT \FALSE CALL2 ITAKE,TRUE-VALUE EQUAL? STACK,M-FATAL /TRUE PUTP PROCLAMATION,P?ACTION,FALSE-VALUE PUTP PROCLAMATION,P?OWNER,FALSE-VALUE FCLEAR PROCLAMATION,TRYTAKEBIT PRINTR "You rip the decree from the wall." .FUNCT ENTRANCE-HALL-F,RARG EQUAL? RARG,M-LOOK \?CCL3 PRINTI "This is where visitors enter the castle proper, through the wide doorway to the north. " FSET? PORTCULLIS,OPENBIT /?CND4 PRINTI "The doorway is currently blocked by a sturdy portcullis. " ?CND4: PRINTI "Oddly, there is a doorbell on the inside of the doorway. Other doorways lead east, west, and south." RTRUE ?CCL3: EQUAL? RARG,M-END \FALSE IN? JESTER,HERE \FALSE FSET? PORTCULLIS,OPENBIT /FALSE CALL2 SETUP-ORPHAN,STR?44 RSTACK .FUNCT DOORBELL-F EQUAL? PRSA,V?TOUCH,V?PUSH \FALSE PRINTI """Ding, dong!""" CRLF IN? JESTER,HERE /TRUE SET 'DO-J,TRUE-VALUE ICALL2 I-JESTER,TRUE-VALUE RTRUE .FUNCT PORTCULLIS-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTI "The portcullis, which is a heavy iron latticework used to block this entrance doorway, is " ICALL2 OPEN-CLOSED,PORTCULLIS PRINT PERIOD-CR RTRUE ?CCL3: EQUAL? PRSA,V?OPEN \?CCL5 FSET? PORTCULLIS,OPENBIT /?CCL5 PRINTR "You try to lift the portcullis, but with no effect (aside from nearly breaking your back)." ?CCL5: EQUAL? PRSA,V?CLOSE \FALSE FSET? PORTCULLIS,OPENBIT \FALSE PRINT WONT-BUDGE RTRUE .ENDSEG .SEGMENT "VILLAGE" .FUNCT MOAT-F CALL2 TOUCHING?,MOAT ZERO? STACK /FALSE EQUAL? HERE,PARAPET,UPPER-BARBICAN \FALSE CALL2 CANT-REACH,MOAT RSTACK .FUNCT INNER-BAILEY-F,RARG ZERO? DEMO-VERSION? /FALSE EQUAL? RARG,M-END \FALSE CALL1 END-DEMO RSTACK .SEGMENT "0" .FUNCT WORM-F EQUAL? PRSA,V?EAT \?CCL3 EQUAL? TURNED-INTO,ROOSTER \?CCL6 CALL2 GOOD-MEAL,WORM RSTACK ?CCL6: PRINTR "Yukko!" ?CCL3: EQUAL? PRSA,V?RESEARCH \FALSE CALL NOUN-USED?,WORM,W?WORM,W?EARTHWORM ZERO? STACK /FALSE PRINTR """A low form of ground-dwelling animal life.""" .FUNCT I-W-WORM,L LOC WORM >L FSET WORM,ANIMATEDBIT IN? WORM,LAKE-BOTTOM \?CCL3 REMOVE WORM RTRUE ?CCL3: CALL2 META-LOC,WORM EQUAL? STACK,HERE \?CCL5 ICALL1 RETURN-FROM-MAP PRINTI " The worm " EQUAL? L,PROTAGONIST,HERE /?CCL8 FSET? L,DROPBIT /?CCL8 MOVE WORM,HERE FSET L,OPENBIT PRINTI "wriggles out of" ICALL2 TPRINT,L JUMP ?CND6 ?CCL8: PRINTI "has resumed wriggling" ?CND6: PRINT PERIOD-CR RTRUE ?CCL5: CALL2 META-LOC,WORM MOVE WORM,STACK RFALSE .ENDSEG .SEGMENT "VILLAGE" .FUNCT TREE-F,ARG EQUAL? ARG,M-WINNER \?CCL3 CALL1 PLANT-STUNNED RSTACK ?CCL3: EQUAL? PRSA,V?GET-NEAR \?CCL5 PRINTR "You are now standing at the base of the tree." ?CCL5: EQUAL? PRSA,V?LISTEN \?CCL7 ZERO? PLANT-TALKER /?CCL7 EQUAL? PRSO,MIGHTY-ELM \?CCL12 PRINTR "The mighty elm rumbles in a voice that bespeaks great age and weariness. It seems to be pining for its simple, happier, younger days. Most particularly, it seems to be fondly recalling a playful squirrel named ""Rosebud.""" ?CCL12: EQUAL? PRSO,SMALL-ELM \?CCL14 PRINTR "The little elm's roots have, apparently, just reached down to a particularly yummy patch of decayed mulch, and the young elm is humming rhapsodically about the yumminess of the minerals therein." ?CCL14: PRINTR "The two elms are exchanging off-color jokes, most of which seem to involve various methods of pollen transfer." ?CCL7: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?CCL16 EQUAL? PRSO,SMALL-ELM \?CCL19 PRINTR "Your weight is too much for this little tree." ?CCL19: PRINT POORLY-CONFIGURED RTRUE ?CCL16: EQUAL? PRSA,V?LISTEN \?CCL21 ZERO? PLANT-TALKER /?CCL21 PRINTR "The tree's speech is very childlike and difficult to understand, but it seems to be fantasizing about the day when it will be tall enough to see over the castle walls." ?CCL21: EQUAL? PRSA,V?MEASURE \FALSE PRINTI "You can" EQUAL? PRSO,MIGHTY-ELM \?CCL28 PRINTI "'t come close to getting" JUMP ?CND26 ?CCL28: EQUAL? PRSO,SMALL-ELM \?CCL31 PRINTI " easily" JUMP ?CND29 ?CCL31: PRINTI " just barely" ?CND29: PRINTI " get" ?CND26: PRINTR " your arms around the tree." .FUNCT BARBICAN-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This dimly lit room is the bottom level of the gate-tower which guards the castle's drawbridge. It lies at the tip of a peninsula into the moat; the rest of the peninsula is to the southeast. A drawbridge to the northwest is " ICALL2 OPEN-CLOSED,DRAWBRIDGE PRINTI ", and a ladder leads to an upper level." RTRUE .SEGMENT "0" .FUNCT CANNONBALL-F EQUAL? PRSA,V?PUT-ON \FALSE EQUAL? P-PRSA-WORD,W?DROP \FALSE EQUAL? PRSO,CANNONBALL \FALSE MOVE CANNONBALL,HERE FSET? PRSI,PARTBIT \?CCL9 PRINTR "Ouch!!!" ?CCL9: GETP PRSI,P?SIZE GRTR? STACK,10 \?CCL11 PRINTR "This has no effect." ?CCL11: PRINTI "Miraculously," ICALL1 TPRINT-PRSI PRINTR " survives." .ENDSEG .SEGMENT "VILLAGE" .FUNCT MURDER-HOLE-F,TAKER EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 PRINTR "You can just make out the barbican below." ?CCL3: EQUAL? PRSA,V?REACH-IN \?CCL5 PRINT NOTHING-IN-REACH RTRUE ?CCL5: EQUAL? PRSA,V?PUT-THROUGH,V?PUT \FALSE EQUAL? PRSI,MURDER-HOLE \FALSE EQUAL? PRSO,CANNONBALL \?CCL12 CALL2 VISIBLE?,CANDLE ZERO? STACK /?CCL12 FSET? CANDLE,ONBIT \?CCL12 CALL2 ULTIMATELY-IN?,CANDLE ZERO? STACK \?CND16 MOVE CANDLE,PROTAGONIST ?CND16: PRINTI "As you drop the cannonball through the murder hole, you hear a sickening ""splat,"" followed by a woman's scream! ""Emily, what is it!"" ""It's Victor -- he's been murdered!"" ""I'll summon the Inspector! Ah, here he is now!"" You hear whispered questions and answers from the room below, followed by footsteps on the stairs. The jester enters, wearing a trenchcoat and smoking a large pipe. ""I'm afraid I'm going to have to order Sgt. Duffy to place you under arrest, sir."" You grow dizzy with confusion, and your surroundings swirl wildly about you" PRINT ELLIPSIS ICALL2 GOTO,DUNGEON JUMP ?CND10 ?CCL12: PRINTI "You hear a ""thunk"" from down below." CRLF ?CND10: CALL FIND-IN,BARBICAN,WHITEBIT >TAKER ZERO? TAKER \?CTR19 CALL FIND-IN,BARBICAN,BLACKBIT >TAKER ZERO? TAKER /?CCL20 ?CTR19: MOVE PRSO,TAKER EQUAL? PRSO,PIGEON \TRUE ICALL2 MOVE-TO-PERCH,TAKER RTRUE ?CCL20: MOVE PRSO,BARBICAN RTRUE .FUNCT WHEEL-F EQUAL? PRSA,V?SET-DIR,V?SET \FALSE FSET? DRAWBRIDGE,OPENBIT \?CCL6 FCLEAR DRAWBRIDGE,OPENBIT JUMP ?CND4 ?CCL6: FSET DRAWBRIDGE,OPENBIT ?CND4: FSET BARBICAN,REDESCBIT PRINTI "You hear a clattering clanking noise from below." CRLF ICALL ROB,DRAWBRIDGE,BARBICAN RTRUE .FUNCT DRAWBRIDGE-F,RARG EQUAL? RARG,M-LOOK \?CCL3 PRINTI "You are standing on a sturdy wooden drawbridge across a moat. " ZERO? TIME-STOPPED \?CND4 PRINTI "The surface of the moat roils from the thrashing of countless ravenous beasts. " ?CND4: PRINTI "The drawbridge runs from a tall barbican at the southeast to a wide meadow at the northwest." RTRUE ?CCL3: ZERO? RARG \FALSE EQUAL? PRSA,V?EXAMINE \?CCL9 PRINTI "The drawbridge is " ICALL2 OPEN-CLOSED,DRAWBRIDGE PRINT PERIOD-CR RTRUE ?CCL9: EQUAL? PRSA,V?LOWER,V?OPEN \?PRD13 FSET? DRAWBRIDGE,OPENBIT \?CCL11 ?PRD13: EQUAL? PRSA,V?RAISE,V?CLOSE \FALSE FSET? DRAWBRIDGE,OPENBIT \FALSE ?CCL11: PRINTR "There's no apparent way to do that." .ENDSEG .SEGMENT "CASTLE" .FUNCT PARLOR-F,RARG EQUAL? RARG,M-ENTER \FALSE MOVE SPENSEWEED,FISH-TANK FCLEAR SPENSEWEED,NDESCBIT RTRUE .FUNCT FISH-TANK-F EQUAL? PRSA,V?TAKE \?CCL3 EQUAL? PRSO,FISH-TANK \?CCL3 ZERO? DESCRIBED-TANK-AS-SMALL /?CCL8 PRINTR "The fish tank is much too large to carry! [Okay, I was exaggerating when I called the tank ""itsy-bitsy.""]" ?CCL8: SET 'DESCRIBED-TANK-AS-LARGE,TRUE-VALUE PRINTR "This tank is bigger than a lot of swimming pools!" ?CCL3: EQUAL? PRSO,FLAMINGO,ROOSTER,FOX \FALSE FSET? PRSO,ANIMATEDBIT \FALSE PRINTI "The " ICALL2 DPRINT,PRSO PRINTR " raises such a fuss that it becomes impossible." .FUNCT SPENSEWEED-F,ARG EQUAL? ARG,M-WINNER \?CCL3 CALL1 PLANT-STUNNED RSTACK ?CCL3: IN? PROTAGONIST,DB \?CCL5 CALL2 TOUCHING?,SPENSEWEED ZERO? STACK /?CCL5 CALL2 CANT-REACH,SPENSEWEED RSTACK ?CCL5: EQUAL? PRSA,V?DIG,V?TAKE \?CCL9 EQUAL? PRSO,SPENSEWEED \?CCL9 PRINT DEEPLY-ROOTED RTRUE ?CCL9: EQUAL? PRSA,V?LISTEN \FALSE ZERO? PLANT-TALKER /FALSE PRINTR "It's difficult to interpret the gurgly voice of the spenseweed, but it seems to be fretting about the possibility of plant-eating fish being introduced into the aquarium." .SEGMENT "0" .FUNCT LOBSTER-F EQUAL? PRSA,V?RESEARCH \?CCL3 CALL NOUN-USED?,LOBSTER,W?LOBSTER ZERO? STACK /?CCL3 PRINT STR?304 CRLF RTRUE ?CCL3: EQUAL? PRSA,V?TAKE \?CCL7 FSET? LOBSTER,ANIMATEDBIT \?CCL7 ZERO? TIME-STOPPED /?CCL12 ICALL QUEUE,I-LOBSTER-PINCH,-1 RFALSE ?CCL12: FSET? GLOVE,WORNBIT \?CCL14 ICALL QUEUE,I-LOBSTER-PINCH,2 MOVE LOBSTER,PROTAGONIST PRINTR "Your gloved hand moves with blazing speed, lifting the lobster and avoiding its snapping pincers." ?CCL14: PRINTR "The lobster snaps its pincers at you. You snatch your hand away just in time." ?CCL7: EQUAL? PRSA,V?MUNG,V?KILL \?CCL16 EQUAL? PRSI,HAMMER,CANNONBALL \?CCL16 PRINTR "You pulverize the lobster into invisible jelly. Heartless; but then again, I understand there are a large group of people who release boiling these creatures alive." ?CCL16: EQUAL? PRSA,V?EAT \FALSE FSET? LOBSTER,ANIMATEDBIT \FALSE PRINTR "1) It's not cooked. 2) It would probably bite your nose off if you tried. 3) You don't have any tableware. 4) You don't have any melted butter. 5) It isn't kosher." .FUNCT I-W-LOBSTER ZERO? TIME-STOPPED /?CND1 ICALL QUEUE,I-W-LOBSTER,3 RFALSE ?CND1: FSET LOBSTER,ANIMATEDBIT IN? LOBSTER,LAKE-BOTTOM \?CCL5 REMOVE LOBSTER RTRUE ?CCL5: IN? LOBSTER,PROTAGONIST \?CCL7 IN? LOBSTER,WALDO /?CCL7 ICALL1 RETURN-FROM-MAP PRINTI " Youch! The nutcracker just pinched you! As you drop it, you realize that it has turned back into a lobster." EQUAL? HERE,HANGING-FROM-ROOTS,UNDER-THE-WORLD \?CCL12 REMOVE LOBSTER PRINTR " The poor creature plunges into the void." ?CCL12: MOVE LOBSTER,HERE CRLF RTRUE ?CCL7: CALL2 VISIBLE?,LOBSTER ZERO? STACK /FALSE ICALL1 RETURN-FROM-MAP PRINTR " You notice the nutcracker waving its pincers. It seems that the nutcracker is once again a lobster." .FUNCT I-LOBSTER-PINCH ZERO? TIME-STOPPED \FALSE FSET? LOBSTER,ANIMATEDBIT \FALSE ICALL2 DEQUEUE,I-LOBSTER-PINCH CALL2 ULTIMATELY-IN?,LOBSTER ZERO? STACK /FALSE IN? LOBSTER,WALDO /FALSE ICALL1 RETURN-FROM-MAP PRINTI " Youch! The lobster gives you a painful nip, and you drop it like a hot potato." EQUAL? HERE,HANGING-FROM-ROOTS,UNDER-THE-WORLD \?CCL12 REMOVE LOBSTER PRINTR " The poor creature plunges into the void." ?CCL12: MOVE LOBSTER,HERE CRLF RTRUE .FUNCT STARFISH-F EQUAL? PRSA,V?RESEARCH \FALSE CALL NOUN-USED?,STARFISH,W?STARFISH ZERO? STACK /FALSE PRINT STR?304 CRLF RTRUE .FUNCT I-W-STARFISH ZERO? TIME-STOPPED /?CND1 ICALL QUEUE,I-W-STARFISH,3 RFALSE ?CND1: FSET STARFISH,ANIMATEDBIT IN? STARFISH,LAKE-BOTTOM \?CCL5 REMOVE STARFISH RTRUE ?CCL5: CALL2 VISIBLE?,STARFISH ZERO? STACK /FALSE ICALL1 RETURN-FROM-MAP PRINTR " With the tiniest wiggle, the star gives evidence that it is once again a starfish." .ENDSEG .SEGMENT "0" .SEGMENT "CASTLE" .FUNCT BICKERING-TORCH-F EQUAL? PRSA,V?TAKE \?CCL3 ICALL QUEUE,I-BICKERING-TORCH,-1 RFALSE ?CCL3: EQUAL? PRSA,V?BURN,V?ON,V?EXAMINE \FALSE CALL2 BURNED-OUT,BICKERING-TORCH RSTACK .FUNCT BURNED-OUT,OBJ PRINTI "The " ICALL2 DPRINT,OBJ PRINTR " has burned out and cannot be rekindled." .FUNCT I-BICKERING-TORCH ZERO? TIME-STOPPED \FALSE CALL2 ULTIMATELY-IN?,BICKERING-TORCH ZERO? STACK \?CCL5 ICALL2 DEQUEUE,I-BICKERING-TORCH RFALSE ?CCL5: RANDOM 100 LESS? 30,STACK /FALSE EQUAL? CURRENT-SPLIT,MAP-TOP-LEFT-LOC /FALSE PRINTI " The bickering torch says, """ CALL2 PICK-ONE,BITCHES PRINT STACK PRINTR """" .FUNCT FLICKERING-TORCH-F EQUAL? PRSA,V?TAKE \?CCL3 FSET? FLICKERING-TORCH,ONBIT \?CCL3 ZERO? FLICKERING-TORCH-COUNT \?CCL3 RANDOM 3 ADD STACK,9 >FLICKERING-TORCH-COUNT ICALL QUEUE,I-FLICKERING-TORCH,-1 RFALSE ?CCL3: EQUAL? PRSA,V?OFF \?CCL8 FSET? FLICKERING-TORCH,ONBIT \?CCL8 FCLEAR FLICKERING-TORCH,ONBIT FCLEAR FLICKERING-TORCH,FLAMEBIT ICALL2 DEQUEUE,I-FLICKERING-TORCH PRINTI """Pffft.""" CRLF CALL1 NOW-DARK? RSTACK ?CCL8: EQUAL? PRSA,V?OFF,V?ON,V?EXAMINE /?PRD14 EQUAL? PRSA,V?BURN \FALSE ?PRD14: FSET? FLICKERING-TORCH,ONBIT /FALSE CALL2 BURNED-OUT,FLICKERING-TORCH RSTACK .FUNCT I-FLICKERING-TORCH DEC 'FLICKERING-TORCH-COUNT FSET? FLICKERING-TORCH,ONBIT /?CCL3 PUTP FLICKERING-TORCH,P?SDESC,STR?316 ICALL2 DEQUEUE,I-FLICKERING-TORCH RFALSE ?CCL3: ZERO? FLICKERING-TORCH-COUNT \?CND1 PUTP FLICKERING-TORCH,P?SDESC,STR?316 FCLEAR FLICKERING-TORCH,ONBIT FCLEAR FLICKERING-TORCH,FLAMEBIT ICALL2 DEQUEUE,I-FLICKERING-TORCH ?CND1: CALL2 VISIBLE?,FLICKERING-TORCH ZERO? STACK /FALSE FSET? FLICKERING-TORCH,ONBIT /?CCL9 ICALL1 RETURN-FROM-MAP CALL2 IN-THE-SKY,STR?317 RSTACK ?CCL9: RANDOM 100 LESS? 40,STACK /FALSE ICALL1 RETURN-FROM-MAP PRINTR " The flame of the flickering torch dances wildly on the brink of extinction." .FUNCT IN-THE-SKY,STRING PRINTI " The " PRINT STRING PRINTI "ering torch gives its last " PRINT STRING PRINTI "er before going to that great Torch Room in the sky." CRLF CALL1 NOW-DARK? RSTACK .FUNCT MUTTERING-TORCH-F EQUAL? PRSA,V?TAKE \?CCL3 ICALL QUEUE,I-MUTTERING-TORCH,-1 RFALSE ?CCL3: EQUAL? PRSA,V?BURN,V?ON,V?EXAMINE \FALSE CALL2 BURNED-OUT,MUTTERING-TORCH RSTACK .FUNCT I-MUTTERING-TORCH ZERO? TIME-STOPPED \FALSE CALL2 ULTIMATELY-IN?,MUTTERING-TORCH ZERO? STACK \?CCL5 ICALL2 DEQUEUE,I-MUTTERING-TORCH RFALSE ?CCL5: RANDOM 100 LESS? 30,STACK /FALSE EQUAL? CURRENT-SPLIT,MAP-TOP-LEFT-LOC /FALSE PRINTI " The muttering torch mutters something about " CALL2 PICK-ONE,MUTTERS PRINT STACK PRINT PERIOD-CR RTRUE .FUNCT GUTTERING-TORCH-F EQUAL? PRSA,V?TAKE \?CCL3 FSET? GUTTERING-TORCH,ONBIT \?CCL3 ZERO? GUTTERING-TORCH-COUNT \?CCL3 RANDOM 3 ADD STACK,9 >GUTTERING-TORCH-COUNT ICALL QUEUE,I-GUTTERING-TORCH,-1 RFALSE ?CCL3: EQUAL? PRSA,V?OFF \?CCL8 FSET? GUTTERING-TORCH,ONBIT \?CCL8 FCLEAR GUTTERING-TORCH,ONBIT FCLEAR GUTTERING-TORCH,FLAMEBIT ICALL2 DEQUEUE,I-GUTTERING-TORCH PRINTI """Pffft.""" CRLF CALL1 NOW-DARK? RSTACK ?CCL8: EQUAL? PRSA,V?OFF,V?ON,V?EXAMINE /?PRD14 EQUAL? PRSA,V?BURN \FALSE ?PRD14: FSET? GUTTERING-TORCH,ONBIT /FALSE CALL2 BURNED-OUT,GUTTERING-TORCH RSTACK .FUNCT I-GUTTERING-TORCH DEC 'GUTTERING-TORCH-COUNT FSET? GUTTERING-TORCH,ONBIT /?CCL3 PUTP GUTTERING-TORCH,P?SDESC,STR?324 ICALL2 DEQUEUE,I-GUTTERING-TORCH RFALSE ?CCL3: ZERO? GUTTERING-TORCH-COUNT \?CND1 PUTP GUTTERING-TORCH,P?SDESC,STR?324 FCLEAR GUTTERING-TORCH,ONBIT FCLEAR GUTTERING-TORCH,FLAMEBIT ICALL2 DEQUEUE,I-GUTTERING-TORCH ?CND1: CALL2 VISIBLE?,GUTTERING-TORCH ZERO? STACK /FALSE FSET? GUTTERING-TORCH,ONBIT /?CCL9 ICALL1 RETURN-FROM-MAP CALL2 IN-THE-SKY,STR?325 RSTACK ?CCL9: RANDOM 100 LESS? 40,STACK /FALSE ICALL1 RETURN-FROM-MAP PRINTR " The guttering torch sputters on the verge of burning out, but then decides to keep burning for at least another minute." .ENDSEG .SEGMENT "CASTLE" .FUNCT GARDEN-FLOWER-PS EQUAL? PRSA,V?PICK \?CCL3 PRINTR "Ouch! Thorns!" ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5 PRINTR "Breathtakingly beautiful." ?CCL5: EQUAL? PRSA,V?LISTEN \FALSE ZERO? PLANT-TALKER /FALSE CALL2 PERFORM-PRSA,FLORA RSTACK .FUNCT FLORA-F,ARG EQUAL? ARG,M-WINNER \?CCL3 CALL1 PLANT-STUNNED RSTACK ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5 PRINTR "Breathtakingly beautiful." ?CCL5: EQUAL? PRSA,V?LISTEN \FALSE ZERO? PLANT-TALKER /FALSE PRINTR "The many shrub and trees and flowers create a cacophony of plant-talk that makes it impossible to understand any of it!" .SEGMENT "0" .FUNCT FLAMINGO-F,ARG FSET? FLAMINGO,ANIMATEDBIT \FALSE EQUAL? PRSA,V?RESEARCH \?CCL5 CALL NOUN-USED?,FLAMINGO,W?FLAMINGO ZERO? STACK /?CCL5 PRINTR """A common garden animal.""" ?CCL5: EQUAL? PRSA,V?FEED \?CCL9 CALL2 ULTIMATELY-IN?,BAR-OF-FOOD ZERO? STACK /?CCL9 ICALL PERFORM,V?GIVE,BAR-OF-FOOD,FLAMINGO RTRUE ?CCL9: EQUAL? PRSA,V?SHOW \?CCL13 EQUAL? PRSO,BAR-OF-FOOD \?CCL13 PRINTR "The flamingo feigns disinterest, but vast volumes of drool betray its true feelings." ?CCL13: EQUAL? PRSA,V?GIVE \?CCL17 EQUAL? PRSO,BAR-OF-FOOD \?CCL17 REMOVE BAR-OF-FOOD PRINTI "The flamingo greedily snatches" ICALL2 TPRINT,BAR-OF-FOOD PRINTR " in its beak and gulps it down." ?CCL17: ZERO? TIME-STOPPED \FALSE EQUAL? PRSA,V?CATCH,V?TAKE \?CCL23 PRINTR "The flamingo prances away, leaving you clutching at air." ?CCL23: EQUAL? PRSA,V?TOUCH \FALSE PRINTR "The bird nearly nips off a finger." .FUNCT I-W-FLAMINGO,L LOC FLAMINGO >L ZERO? TIME-STOPPED /?CND1 ICALL QUEUE,I-W-FLAMINGO,3 RFALSE ?CND1: FSET FLAMINGO,ANIMATEDBIT IN? FLAMINGO,LAKE-BOTTOM \?CCL5 REMOVE FLAMINGO RTRUE ?CCL5: CALL2 META-LOC,FLAMINGO EQUAL? STACK,HERE \?CCL7 ICALL1 RETURN-FROM-MAP PRINTI " Based on its angry squawks, the lawn ornament has returned to its former state" IN? FLAMINGO,FISH-TANK \?CCL10 PRINTI ". The flamingo sprays you with water as it leaps out of the fish tank" JUMP ?CND8 ?CCL10: EQUAL? L,PROTAGONIST,HERE /?CCL12 FSET? L,DROPBIT /?CCL12 MOVE FLAMINGO,HERE FSET L,OPENBIT PRINTI " and popped out of" ICALL2 TPRINT,L JUMP ?CND8 ?CCL12: CALL2 ULTIMATELY-IN?,FLAMINGO ZERO? STACK /?CND8 IN? FLAMINGO,WALDO /?CND8 PRINTI ". The flamingo gives you a vicious peck and hops to the ground" ?CND8: CALL2 ULTIMATELY-IN?,FLAMINGO ZERO? STACK /?CCL20 LOC PROTAGONIST FSET? STACK,DROPBIT \?CCL20 LOC PROTAGONIST MOVE FLAMINGO,STACK JUMP ?CND18 ?CCL20: LOC FLAMINGO FSET? STACK,DROPBIT /?CND18 MOVE FLAMINGO,HERE ?CND18: PRINT PERIOD-CR RTRUE ?CCL7: CALL2 ULTIMATELY-IN?,FLAMINGO ZERO? STACK /?CCL26 LOC PROTAGONIST FSET? STACK,DROPBIT \?CCL26 LOC PROTAGONIST MOVE FLAMINGO,STACK RFALSE ?CCL26: LOC FLAMINGO FSET? STACK,DROPBIT /FALSE CALL2 META-LOC,FLAMINGO MOVE FLAMINGO,STACK RFALSE .ENDSEG .SEGMENT "CASTLE" .FUNCT COURTYARD-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This open area is paved with marble and surrounded by imposing stone walls. " CALL2 RUNNING?,I-PROLOGUE ZERO? STACK /?CCL6 PRINTI "Servants are cleaning up after a tremendous carnival" JUMP ?CND4 ?CCL6: PRINTI "Dimwit would occasionally order carnivals to be set up in this court, on totally cloudless days" ?CND4: PRINTI ". At the distant edges of the courtyard, you can see exits to the north, west, and southeast." RTRUE .FUNCT BANNER-F EQUAL? PRSA,V?EXAMINE,V?READ \?CCL3 PRINTR "These colorful banners display various royal crests and insignias." ?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \FALSE PRINTI "Okay, but for future reference, the stairs are easier" PRINT ELLIPSIS CALL2 GOTO,GREAT-HALL RSTACK .FUNCT REBUS-F,OARG,CNT CALL2 CCOUNT,REBUS >CNT ZERO? OARG /?CCL3 EQUAL? OARG,M-OBJDESC? /TRUE PRINTI " A large framed rebus occupies a central position at the far end of the gallery. It appears to have been recently hung." GRTR? CNT,0 \TRUE PRINTI " The rebus is " GRTR? CNT,3 \?CCL10 PRINTI "mostly" JUMP ?CND8 ?CCL10: PRINTI "partially" ?CND8: PRINTI " obscured by a" EQUAL? CNT,1 \?CCL13 PRINTI "n animal -- or a representation of an animal" JUMP ?CND11 ?CCL13: PRINTI " number of animals -- or representations of animals" ?CND11: PRINTI " -- which appear" EQUAL? CNT,1 \?CND14 PRINTC 115 ?CND14: PRINTI " to be magically layered onto its surface:" FCLEAR REBUS-CAMEL,NDESCBIT FCLEAR REBUS-MOUSE,NDESCBIT FCLEAR REBUS-GOOSE,NDESCBIT FCLEAR REBUS-SNAKE,NDESCBIT FCLEAR REBUS-FISH,NDESCBIT FCLEAR REBUS-SLIME-MONSTER,NDESCBIT ICALL D-CONTENTS,REBUS,2 FSET REBUS-CAMEL,NDESCBIT FSET REBUS-MOUSE,NDESCBIT FSET REBUS-GOOSE,NDESCBIT FSET REBUS-SNAKE,NDESCBIT FSET REBUS-FISH,NDESCBIT FSET REBUS-SLIME-MONSTER,NDESCBIT RTRUE ?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL17 PRINT HUH RTRUE ?CCL17: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL19 EQUAL? PRSI,REBUS \?CCL19 PRINT HUH RTRUE ?CCL19: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE CLEAR -1 SCREEN S-FULL IN? REBUS-MOUSE,REBUS \?CCL26 PUSH REBUS-6 JUMP ?CND24 ?CCL26: IN? REBUS-GOOSE,REBUS \?CCL28 PUSH REBUS-5 JUMP ?CND24 ?CCL28: IN? REBUS-SLIME-MONSTER,REBUS \?CCL30 PUSH REBUS-4 JUMP ?CND24 ?CCL30: IN? REBUS-CAMEL,REBUS \?CCL32 PUSH REBUS-3 JUMP ?CND24 ?CCL32: IN? REBUS-SNAKE,REBUS \?CCL34 PUSH REBUS-2 JUMP ?CND24 ?CCL34: IN? REBUS-FISH,REBUS \?CCL36 PUSH REBUS-1 JUMP ?CND24 ?CCL36: PUSH REBUS-0 ?CND24: DISPLAY STACK,1,1 ZERO? DEMO-VERSION? /?CCL39 ICALL2 INPUT-DEMO,1 JUMP ?CND37 ?CCL39: INPUT 1 ?CND37: ICALL1 MOUSE-INPUT? ICALL1 V-$REFRESH RTRUE .FUNCT REBUS-ANIMAL-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTI "The " PRINTD PRSO PRINTR " seems to be magically flattened upon the rebus surface." ?CCL3: EQUAL? PRSA,V?MOVE,V?TAKE \?CCL5 PRINT WONT-BUDGE RTRUE ?CCL5: EQUAL? PRSA,V?TOUCH \FALSE PRINTI "The " PRINTD PRSO PRINTR " feels cold to the touch." .FUNCT PAINTINGS-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTR "These are Leonardo Flathead's famous portraits of the Twelve Flatheads, including his own self-portrait, which been have reproduced in many places [such as the ""Lives of the Twelve Flatheads Calendar"" which you'll find in your Zork Zero package]." ?CCL3: EQUAL? PRSA,V?MOVE,V?TAKE \?CCL5 PRINTR "The portraits are all securely fastened to the wall." ?CCL5: EQUAL? PRSA,V?COUNT \FALSE PRINTR "12." .FUNCT PAINTING-F EQUAL? PRSA,V?MOVE,V?TAKE,V?EXAMINE \?CCL3 CALL2 PERFORM-PRSA,PAINTINGS RSTACK ?CCL3: EQUAL? PRSA,V?RESEARCH \FALSE PRINTR """One of the Twelve Flatheads. For more information, we recommend Boswell Barwell's 'The Lives of the Twelve Flatheads.'"" [Excerpts of which can be found in the calendar from your Zork Zero package.]" .SEGMENT "VILLAGE" .SEGMENT "LAKE" .SEGMENT "ORACLE" .FUNCT REBUS-BUTTON-F EQUAL? PRSA,V?PUSH \FALSE FSET? PRSO,TOUCHBIT /?CTR5 ZERO? TIME-STOPPED /?CCL6 ?CTR5: PRINT NOTHING-HAPPENS RTRUE ?CCL6: FSET PRSO,TOUCHBIT PUTP PRSO,P?SDESC,STR?270 PRINTI "The button produces a " IN? REBUS-MOUSE,REBUS \?CCL11 REMOVE REBUS-MOUSE PRINTI "squeak" JUMP ?CND9 ?CCL11: IN? REBUS-GOOSE,REBUS \?CCL13 REMOVE REBUS-GOOSE PRINTI "honk" JUMP ?CND9 ?CCL13: IN? REBUS-SLIME-MONSTER,REBUS \?CCL15 REMOVE REBUS-SLIME-MONSTER PRINTI "squish" JUMP ?CND9 ?CCL15: IN? REBUS-CAMEL,REBUS \?CCL17 REMOVE REBUS-CAMEL PRINTI "bray" JUMP ?CND9 ?CCL17: IN? REBUS-SNAKE,REBUS \?CCL19 REMOVE REBUS-SNAKE PRINTI "hiss" JUMP ?CND9 ?CCL19: REMOVE REBUS-FISH PRINTI "splash" ?CND9: PRINTR "ing noise and stops blinking." .ENDSEG .SEGMENT "0" .FUNCT BAG-F EQUAL? PRSA,V?EXAMINE \FALSE PRINTI "There's writing on the outside of the bag. " RFALSE .FUNCT BAR-OF-FOOD-F EQUAL? PRSA,V?EAT \FALSE EQUAL? TURNED-INTO,FLAMINGO \?CCL6 CALL2 GOOD-MEAL,BAR-OF-FOOD RSTACK ?CCL6: CALL2 JIGS-UP,STR?339 RSTACK .ENDSEG .SEGMENT "CASTLE" .FUNCT TOWER-PS CALL2 TOUCHING?,PSEUDO-OBJECT ZERO? STACK /FALSE CALL2 CANT-REACH,PSEUDO-OBJECT RSTACK .FUNCT THRONE-ROOM-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This is a smaller version of the room to the north, meaning that a person can walk all the way across it without stopping to rest. The throne, though smaller and more comfortable looking, is just as gaudy. It is in this chamber that Dimwit would meet with his ""advisors,"" raising taxes and plotting grandiose schemes. A doorway leads north" ZERO? SECRET-PASSAGE-OPEN /?CND4 PRINTI ", and a secret passage is open to the south" ?CND4: PRINTC 46 RTRUE .FUNCT THRONE-F,VARG ZERO? DEMO-VERSION? /?CCL3 EQUAL? VARG,M-ENTER \?CCL3 EQUAL? PRSO,SMALL-THRONE \?CCL3 PRINTC 32 ICALL1 OPEN-SECRET-PASSAGE? RETURN 2 ?CCL3: ZERO? VARG \FALSE EQUAL? PRSA,V?CLIMB-UP \?CCL12 ICALL PERFORM,V?ENTER,PRSO RTRUE ?CCL12: EQUAL? PRSA,V?LOOK-BEHIND \FALSE PRINTI "Behind the throne" EQUAL? HERE,AUDIENCE-CHAMBER \?CCL17 PRINTR ", a doorway leads south." ?CCL17: ZERO? SECRET-PASSAGE-OPEN /?CCL19 PRINTR ", a secret passage beckons to the south!" ?CCL19: PRINTR " is nothing but a blank wall." .ENDSEG .SEGMENT "SECRET" .FUNCT SECRET-PASSAGE-F,RARG ZERO? DEMO-VERSION? /FALSE EQUAL? RARG,M-END \FALSE CALL1 END-DEMO RSTACK .SEGMENT "0" .FUNCT CANDLE-F,FLAME EQUAL? PRSA,V?EXAMINE \?CCL3 FSET? CANDLE,ONBIT \?CCL6 PRINTR "The flame burns tall and bright." ?CCL6: PRINTR "The candle has been snuffed." ?CCL3: EQUAL? PRSA,V?ON \FALSE FSET? CANDLE,FLAMEBIT /FALSE CALL FIND-IN,HERE,FLAMEBIT,STR?202 >FLAME ZERO? FLAME /?CCL13 FSET CANDLE,FLAMEBIT FSET CANDLE,ONBIT PRINTR "You re-light the candle." ?CCL13: PRINTR "You have no flame to light the candle." .ENDSEG .SEGMENT "SECRET" .FUNCT SOLAR-F,RARG EQUAL? RARG,M-END \FALSE IN? EAST-KEY,JESTER \FALSE IN? JESTER,HERE \FALSE CALL2 SETUP-ORPHAN,STR?44 RSTACK .SEGMENT "0" .FUNCT EAST-KEY-F EQUAL? PRSA,V?TAKE \FALSE FSET? EAST-KEY,TRYTAKEBIT \FALSE IN? EAST-KEY,JESTER \?CCL8 PRINT ANSWER-MY-RIDDLE RTRUE ?CCL8: PRINTI "You begin reaching for the key..." CRLF SET 'DO-J,TRUE-VALUE CALL1 I-JESTER RSTACK .ENDSEG .SEGMENT "0" .SEGMENT "SECRET" .FUNCT CLOAK-F EQUAL? PRSA,V?EXAMINE \?CCL3 CALL NOUN-USED?,CLOAK,W?CLOAK ZERO? STACK /?CCL6 PRINTR "The colors of the cloak seem to shimmer like a Mithican chameleon. There's a small label with writing on it." ?CCL6: ICALL PERFORM,V?READ,CLOAK RTRUE ?CCL3: EQUAL? PRSA,V?READ \?CCL8 PRINTR """Frobozz Magic Cloak Company.""" ?CCL8: EQUAL? HERE,OUBLIETTE \?CCL10 EQUAL? PRSA,V?TAKE-OFF,V?WEAR \?CCL10 PRINTR "There's not enough elbow room here." ?CCL10: EQUAL? PRSA,V?WEAR \?CCL14 EQUAL? HERE,PLAIN /?CCL14 FSET? CLOAK,WORNBIT /?CCL14 FSET? OUTER-GATE,OPENBIT /?CCL14 IN? CLOAK,WALDO /?CCL14 ZERO? TIME-STOPPED \?CCL14 EQUAL? HERE,CONSTRUCTION \?CCL23 ICALL STORE,CONSTRUCTION-OFFSET,CONSTRUCTION-LOC,CONSTRUCTION JUMP ?CND21 ?CCL23: EQUAL? HERE,FR-OFFICES \?CCL25 ICALL STORE,OFFICES-OFFSET,FLOOR-NUMBER,FR-OFFICES JUMP ?CND21 ?CCL25: EQUAL? HERE,OFFICES-NORTH \?CCL27 ICALL STORE,OFFICES-N-OFFSET,FLOOR-NUMBER,OFFICES-NORTH JUMP ?CND21 ?CCL27: EQUAL? HERE,OFFICES-SOUTH \?CCL29 ICALL STORE,OFFICES-S-OFFSET,FLOOR-NUMBER,OFFICES-SOUTH JUMP ?CND21 ?CCL29: EQUAL? HERE,OFFICES-EAST \?CCL31 ICALL STORE,OFFICES-E-OFFSET,FLOOR-NUMBER,OFFICES-EAST JUMP ?CND21 ?CCL31: EQUAL? HERE,OFFICES-WEST \?CND21 ICALL STORE,OFFICES-W-OFFSET,FLOOR-NUMBER,OFFICES-WEST ?CND21: FSET CLOAK,WORNBIT LOC PROTAGONIST FSET? STACK,TAKEBIT \?CCL35 SET 'CLOAK-LOC,HERE JUMP ?CND33 ?CCL35: LOC PROTAGONIST >CLOAK-LOC ?CND33: MOVE PROTAGONIST,HERE DIV PLAIN-LOC,8 ADD STACK,1 >RANK MOD PLAIN-LOC,8 ADD STACK,1 >FILE ICALL1 CAST-HUNGER-SPELL PRINTI "As you wrap the cloak around you, the world changes" PRINT ELLIPSIS ICALL UNSTORE,PLAIN-OFFSET,PLAIN-LOC,PLAIN CALL2 GOTO,PLAIN RSTACK ?CCL14: EQUAL? PRSA,V?TAKE-OFF \FALSE FSET? CLOAK,WORNBIT \FALSE EQUAL? HERE,PLAIN \FALSE FCLEAR CLOAK,WORNBIT ICALL STORE,PLAIN-OFFSET,PLAIN-LOC,PLAIN PRINTI "As the cloak is removed, the world changes again" PRINT ELLIPSIS EQUAL? CLOAK-LOC,CONSTRUCTION \?CCL43 DIV CONSTRUCTION-LOC,8 ADD STACK,1 >RANK MOD CONSTRUCTION-LOC,8 ADD STACK,1 >FILE ICALL UNSTORE,CONSTRUCTION-OFFSET,CONSTRUCTION-LOC,CLOAK-LOC JUMP ?CND41 ?CCL43: EQUAL? CLOAK-LOC,FR-OFFICES,OFFICES-NORTH,OFFICES-SOUTH /?CCL44 EQUAL? CLOAK-LOC,OFFICES-EAST,OFFICES-WEST \?CND41 ?CCL44: ICALL2 OFFICE-UNSTORE,FLOOR-NUMBER ?CND41: ICALL2 GOTO,CLOAK-LOC EQUAL? CLOAK-LOC,ORACLE-OBJECT \TRUE IN? RUBY,DEPRESSION \TRUE PRINTI " You have only a moment to take in your surroundings. " ICALL PERFORM,V?ENTER,ORACLE-OBJECT RTRUE .FUNCT GLOVE-F EQUAL? PRSA,V?EXAMINE \?CCL3 FSET? GOGGLES,WORNBIT \?CCL6 FSET? GLOVE,WORNBIT \?CCL6 ICALL1 DISCOVER-X-RAY PRINTR "You can see your hand within the glove." ?CCL6: CALL NOUN-USED?,GLOVE,W?GLOVE ZERO? STACK /?CCL10 PRINTR "Tiny writing is embroidered at the edge of the glove." ?CCL10: ICALL PERFORM,V?READ,GLOVE RTRUE ?CCL3: EQUAL? PRSA,V?READ \FALSE PRINTR """Frobozz Magic Glove Company.""" .ENDSEG .SEGMENT "SECRET" .FUNCT MACHICOLATION-F EQUAL? PRSA,V?PUT-THROUGH,V?PUT \?CCL3 EQUAL? PRSI,MACHICOLATION \?CCL3 REMOVE PRSO EQUAL? PRSO,PERCH /?CCL7 CALL ULTIMATELY-IN?,PERCH,PRSO ZERO? STACK /?CND6 ?CCL7: SET 'REMOVED-PERCH-LOC,GROUND ?CND6: PRINTI "You hear a distant ""thunk,"" as" ICALL1 TPRINT-PRSO PRINTR " imbeds itself into the ground. The lack of an accompanying distant ""ouch!"" would seem to indicate that there are no invaders below." ?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL11 PRINT YOU-SEE PRINTR " light at the bottom of the hole." ?CCL11: EQUAL? PRSA,V?REACH-IN \FALSE PRINT NOTHING-IN-REACH RTRUE .FUNCT CRYPT-F,RARG ZERO? DEMO-VERSION? /?CCL3 EQUAL? RARG,M-END \?CCL3 CALL1 END-DEMO RSTACK ?CCL3: EQUAL? RARG,M-LOOK \FALSE PRINTI "The remains of generations of royalty lie arranged on slabs through this underground tomb. A passage leads off to the south. In the center of the low ceiling is a small trap door, which is " ICALL2 OPEN-CLOSED,TRAP-DOOR FSET? HOLEY-SLAB,TOUCHBIT \?CND8 PRINTI ". Barely visible beneath one of the slabs, a dark moist opening leads downward" ?CND8: PRINTC 46 RTRUE .FUNCT BODIES-F CALL2 TOUCHING?,BODIES ZERO? STACK /FALSE CALL2 PERFORM-PRSA,BONES RSTACK .FUNCT ORACLE-ENTER-F,RARG FSET? OUTER-GATE,OPENBIT /?CTR2 ZERO? TIME-STOPPED /?CCL3 ?CTR2: ZERO? RARG \FALSE ICALL1 RETURN-FROM-MAP PRINTI "The hole under the slab has vanished!" CRLF RFALSE ?CCL3: FSET? HOLEY-SLAB,TOUCHBIT \?CCL9 RETURN ORACLE ?CCL9: ZERO? RARG \FALSE ICALL1 CANT-GO RFALSE .FUNCT SLAB-F EQUAL? PRSA,V?LOOK-UNDER \FALSE EQUAL? PRSO,HOLEY-SLAB \FALSE FSET? OUTER-GATE,OPENBIT /?CTR7 ZERO? TIME-STOPPED /?CCL8 ?CTR7: CALL2 DO-WALK,P?DOWN RSTACK ?CCL8: FSET HOLEY-SLAB,TOUCHBIT SET 'COMPASS-CHANGED,TRUE-VALUE PRINTR "Under the slab is a craggy hole, dripping with slime, leading downward. It looks just barely large enough to enter." .FUNCT TRAP-DOOR-F EQUAL? PRSA,V?OPEN \FALSE FSET? TRAP-DOOR,OPENBIT /FALSE EQUAL? HERE,CRYPT \FALSE PRINTR "The trap door can't be opened from this side." .FUNCT DUNGEON-HOLE-F EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 CALL2 LIT?,OUBLIETTE ZERO? STACK /?CCL6 PRINT SOME-LIGHT RTRUE ?CCL6: PRINT ONLY-BLACKNESS RTRUE ?CCL3: EQUAL? PRSA,V?PUT \?CCL8 GETP PRSO,P?SIZE GRTR? STACK,4 \?CCL11 EQUAL? PRSO,PERCH /?CCL13 CALL ULTIMATELY-IN?,PERCH,PRSO ZERO? STACK /?CND12 ?CCL13: SET 'REMOVED-PERCH-LOC,OUBLIETTE ?CND12: REMOVE PRSO JUMP ?CND9 ?CCL11: MOVE PRSO,OUBLIETTE ?CND9: PRINTR "Done." ?CCL8: EQUAL? PRSA,V?EXAMINE \?CCL17 PRINTR "It's big enough to drop through, but a return trip doesn't look at all assured." ?CCL17: EQUAL? PRSA,V?REACH-IN \?CCL19 PRINT NOTHING-IN-REACH RTRUE ?CCL19: EQUAL? PRSA,V?ENTER \FALSE CALL2 DO-WALK,P?DOWN RSTACK .FUNCT OUBLIETTE-F,RARG EQUAL? RARG,M-LOOK \?CCL3 PRINTI "You're trapped in a narrow prison cell accessible only from above. The upper portion of the cell is lost in gloom. The floor is muddy, and you sink almost to your " ZERO? ALLIGATOR /?CCL6 PRINTI "alligatorish nostrils." RTRUE ?CCL6: PRINTI "knees." RTRUE ?CCL3: EQUAL? RARG,M-ENTER \?CCL8 ZERO? TIME-STOPPED \?CCL8 SET 'DO-J,TRUE-VALUE CALL QUEUE,I-JESTER,3 RSTACK ?CCL8: EQUAL? RARG,M-END \FALSE IN? JESTER,HERE \FALSE CALL2 SETUP-ORPHAN,STR?44 RSTACK .SEGMENT "0" .FUNCT G-HAT-F,TBL,LEN,?TMP1 ADD TBL,8 >?TMP1 GET TBL,1 INTBL? DOORBELL,?TMP1,STACK \?CCL3 RETURN DOORBELL ?CCL3: EQUAL? PRSA,V?REMOVE,V?TAKE-OFF \?CCL5 FSET? HARDHAT,WORNBIT \?CCL8 FSET? SEAMANS-CAP,WORNBIT /FALSE ?CCL8: FSET? HARDHAT,WORNBIT \?CCL12 RETURN HARDHAT ?CCL12: FSET? SEAMANS-CAP,WORNBIT \FALSE RETURN SEAMANS-CAP ?CCL5: ADD TBL,8 >?TMP1 GET TBL,1 INTBL? J-HAT,?TMP1,STACK \FALSE EQUAL? HERE,GAMING-ROOM \FALSE RETURN J-HAT .ENDSEG .SEGMENT "SECRET" .FUNCT CELL-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This cell is the height of luxury for this dungeon -- the floor isn't covered with spikes, and there are actually a few corners which aren't dominated by giant spiders." IN? COBWEBS,HERE \?CND4 PRINTC 32 PRINT CELL-WALL-DESC ?CND4: PRINTI " The only exit is northwest." RTRUE .FUNCT GIANT-SPIDERS-F CALL2 TOUCHING?,GIANT-SPIDERS ZERO? STACK /FALSE PRINTR "There's only one thing you need to remember in connection with giant spiders: You leave them alone, they'll leave you alone." .FUNCT COBWEBS-F EQUAL? PRSA,V?ENTER \?CCL3 PRINTR "Walk face first into a thick wall of yukko cobwebs? Mucho disgusto! Maybe if you cleared them away, first..." ?CCL3: EQUAL? PRSA,V?CLEAN,V?TAKE-WITH,V?REMOVE /?CCL5 EQUAL? PRSA,V?MOVE \FALSE ?CCL5: ZERO? PRSI \?CND8 CALL2 ULTIMATELY-IN?,BROOM ZERO? STACK /?CND8 SET 'PRSI,BROOM ?CND8: ZERO? PRSI \?CCL14 PRINTI "Yuk! Bleh! Ukky-poo! T" FSET? GLOVE,WORNBIT /?CND15 PRINTI "hese cobwebs are way too gross to touch with your bare hands. Furthermore, t" ?CND15: PRINTR "here are way too many to clean away without some kind of cleaning accessory." ?CCL14: EQUAL? PRSI,BROOM /?CCL18 PRINTR "Don't bother to apply for any jobs as a maid." ?CCL18: REMOVE COBWEBS ICALL2 THIS-IS-IT,FLASK MOVE FLASK,HERE PRINTI "It's a dirty job, but someone's gotta do it. You clear away most of the cobwebs, revealing a blank wall. Sitting at the base of the wall is a " PRINTD FLASK PRINTC 33 CRLF CALL2 INC-SCORE,12 RSTACK .SEGMENT "0" .FUNCT FLASK-F EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 PRINTR "You notice that objects behind the flask appear to be magnified." ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5 EQUAL? PRSI,FLASK \?CCL5 PRINTI "The flask distorts and magnifies the " ICALL2 DPRINT,PRSO PRINTI ", showing details not noticed earlier." CRLF PRINTI " " RFALSE ?CCL5: EQUAL? PRSA,V?DRINK-FROM \?CCL9 CALL DO-FIRST,STR?140,FLASK RSTACK ?CCL9: EQUAL? PRSA,V?THROW,V?MUNG,V?OPEN \FALSE EQUAL? PRSA,V?OPEN /?CCL14 PRINTI "The flask breaks into pieces. " JUMP ?CND12 ?CCL14: PRINTI "You remove the stopper. " ?CND12: PRINTI "As you pass out, you realize that the vapors from the flask's contents are " FSET? CLOWN-NOSE,WORNBIT \?CND15 PRINTI "potent enough to get past your clown nose, and are also quite " ?CND15: CALL2 JIGS-UP,STR?365 RSTACK .FUNCT LIQUID-F EQUAL? PRSA,V?DRINK \FALSE CALL DO-FIRST,STR?140,FLASK RSTACK .ENDSEG .SEGMENT "SECRET" .FUNCT TORTURE-CHAMBER-F,RARG EQUAL? RARG,M-ENTER \?CCL3 ZERO? METRONOME-LOC \?CND4 RANDOM 100 LESS? 33,STACK /?CCL8 SET 'METRONOME-LOC,IRON-MAIDEN JUMP ?CND4 ?CCL8: RANDOM 100 LESS? 50,STACK /?CCL10 SET 'METRONOME-LOC,SNAKE-PIT JUMP ?CND4 ?CCL10: SET 'METRONOME-LOC,WATER-CHAMBER ?CND4: SET 'METRONOME-COUNTER,0 RETURN METRONOME-COUNTER ?CCL3: EQUAL? RARG,M-END \FALSE FSET? METRONOME,TRYTAKEBIT \FALSE CALL2 METRONOME-TORTURE,TRUE-VALUE RSTACK .FUNCT METRONOME-TORTURE,INDENT INC 'METRONOME-COUNTER EQUAL? METRONOME-COUNTER,1 /FALSE ICALL1 RETURN-FROM-MAP ZERO? INDENT /?CND3 PRINTI " " ?CND3: EQUAL? METRONOME-COUNTER,2 \?CCL7 PRINTR "You hear a ticking sound." ?CCL7: EQUAL? METRONOME-COUNTER,3 \?CCL9 PRINTR "The ticking grows louder." ?CCL9: EQUAL? METRONOME-COUNTER,4 \?CCL11 PRINTR "The ticking is really getting to you. It seems to be controlling your heartbeat!" ?CCL11: PRINTI "The ticking is unbearably deafening! You run screaming from the Torture Chamber!" CRLF CRLF CALL2 GOTO,DUNGEON RSTACK .SEGMENT "0" .FUNCT METRONOME-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTI "The metronome is" ZERO? METRONOME-ON /?CCL6 PRINTR " ticking insistently." ?CCL6: PRINTR "n't on." ?CCL3: EQUAL? PRSA,V?ON \?CCL8 ZERO? METRONOME-ON /?CCL11 PRINTR "It is!" ?CCL11: SET 'METRONOME-ON,TRUE-VALUE ICALL QUEUE,I-METRONOME,-1 PRINTR "The metronome begins to tick." ?CCL8: EQUAL? PRSA,V?OFF \FALSE ZERO? METRONOME-ON /?CCL16 SET 'METRONOME-ON,FALSE-VALUE ICALL2 DEQUEUE,I-METRONOME PRINTR "The metronome stops ticking." ?CCL16: PRINTR "It is!" .FUNCT I-METRONOME,CALLED-BY-LISTEN,CNT LOC METRONOME EQUAL? STACK,FALSE-VALUE \?CND1 ICALL2 DEQUEUE,I-METRONOME ?CND1: CALL2 VISIBLE?,METRONOME ZERO? STACK /FALSE EQUAL? CURRENT-SPLIT,MAP-TOP-LEFT-LOC /FALSE RANDOM 30 ADD 3,STACK >CNT ZERO? CALLED-BY-LISTEN \?CND8 PRINTI " " ?CND8: PRINTI "The metronome insistently declares, ""Tick" ?PRG10: PRINTI ", tick" DEC 'CNT ZERO? CNT \?PRG10 PRINTR ".""" .ENDSEG .SEGMENT "SECRET" .FUNCT TORTURE-DEVICE-F EQUAL? PRSA,V?ENTER \?CCL3 EQUAL? PRSO,COMFY-CHAIR /?CND4 FSET? PRSO,OPENBIT /?CND4 ICALL DO-FIRST,STR?140,PRSO RTRUE ?CND4: PRINTI "You climb into the " PRINTD PRSO PRINTI ". " EQUAL? PRSO,COMFY-CHAIR \?CCL10 CALL2 JIGS-UP,STR?367 RSTACK ?CCL10: EQUAL? PRSO,IRON-MAIDEN \?CCL12 CALL2 JIGS-UP,STR?368 RSTACK ?CCL12: EQUAL? PRSO,WATER-CHAMBER \?CCL14 CALL2 JIGS-UP,STR?369 RSTACK ?CCL14: CALL2 JIGS-UP,STR?370 RSTACK ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL16 EQUAL? PRSO,COMFY-CHAIR \?CCL19 PRINTR "It sure looks comfortable!" ?CCL19: EQUAL? PRSO,WATER-CHAMBER \?CCL21 PRINTI "It's a small chamber where water is slowly dripped onto the victim's head until he or she goes mad." JUMP ?CND17 ?CCL21: EQUAL? PRSO,IRON-MAIDEN \?CCL23 PRINTI "It's similar to a suit of armor, except that the inside is lined with sharp spikes." JUMP ?CND17 ?CCL23: FSET? SNAKE-PIT,OPENBIT /?CCL26 PRINTI "Beneath the lid of the snake pit y" JUMP ?CND24 ?CCL26: PRINTC 89 ?CND24: PRINTI "ou hear the hissing of a thousand hungry snakes." ?CND17: PRINTI " The " PRINTD PRSO PRINTI " is " ICALL2 OPEN-CLOSED,PRSO PRINT PERIOD-CR RTRUE ?CCL16: EQUAL? PRSA,V?LOOK-INSIDE \?CCL28 FSET? METRONOME,TRYTAKEBIT \?CCL28 EQUAL? PRSO,METRONOME-LOC \?CCL33 ICALL PERFORM,V?OPEN,PRSO RTRUE ?CCL33: EQUAL? PRSO,COMFY-CHAIR \?CCL35 PRINTR "There's no one in the chair." ?CCL35: FSET PRSO,OPENBIT PRINTI "You open" ICALL1 TPRINT-PRSO PRINTR ", and find no one within." ?CCL28: EQUAL? PRSA,V?OPEN \?CCL37 EQUAL? PRSO,METRONOME-LOC \?CCL37 FSET? METRONOME,TRYTAKEBIT \?CCL37 FCLEAR METRONOME,TRYTAKEBIT MOVE METRONOME,HERE FSET PRSO,OPENBIT PRINTI "As you open the " PRINTD PRSO PRINTI ", a metronome falls from the shadowy recesses of the ceiling and lands with a muffled thud in the center of the room." GRTR? METRONOME-COUNTER,1 \?CND41 PRINTI " Thankfully, the fall seems to have shut it off." ?CND41: CRLF CALL2 INC-SCORE,12 RSTACK ?CCL37: EQUAL? PRSA,V?OPEN \FALSE ZERO? TIME-STOPPED /FALSE PRINT WONT-BUDGE RTRUE .ENDSEG .SEGMENT "CASTLE" .FUNCT WEST-HALL-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "The castle's newest wing can be found beyond the huge oak door which lies " ICALL2 OPEN-CLOSED,WEST-DOOR PRINTI " to the west. The only other exit is northeast." RTRUE .FUNCT WEST-DOOR-F EQUAL? PRSA,V?UNLOCK \?CCL3 FSET? WEST-DOOR,LOCKEDBIT \?CCL3 EQUAL? PRSI,WEST-KEY \?CCL3 FCLEAR WEST-DOOR,LOCKEDBIT CALL LOCKED-UNLOCKED,WEST-DOOR,TRUE-VALUE RSTACK ?CCL3: EQUAL? PRSA,V?LOCK \FALSE FSET? WEST-DOOR,LOCKEDBIT /FALSE EQUAL? PRSI,WEST-KEY \FALSE FSET WEST-DOOR,LOCKEDBIT CALL2 LOCKED-UNLOCKED,WEST-DOOR RSTACK .FUNCT WEST-WING-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This wing exhibits more recent styling: smoothly dressed stone inlaid with marble patterns. Through the " ICALL2 OPEN-CLOSED,WEST-DOOR PRINTI " oak door to the east lie the primary halls of the castle. Other exits lead north, west, and south. " PRINT FUDGE RTRUE .FUNCT DIRIGIBLE-HANGAR-ENTER-F,RARG ZERO? NUT-EATEN /?CCL3 RETURN DIRIGIBLE-HANGAR ?CCL3: ZERO? RARG \FALSE IN? JESTER,HERE /?CCL7 ICALL1 RETURN-FROM-MAP PRINTI "An invisible hand seems to stop you" SUB MOVES,J-DISPOSED LESS? STACK,4 \?CCL10 PRINTI ", and a familiar voice says, ""Surely you didn't think you'd be rid of me so easily!""" CRLF JUMP ?CND8 ?CCL10: PRINT PERIOD-CR ?CND8: SET 'DO-J,TRUE-VALUE ICALL1 I-JESTER RFALSE ?CCL7: ICALL1 RETURN-FROM-MAP PRINT ERE-YOU-PASS RFALSE .FUNCT PEG-ROOM-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You're in a nondescript room with an exit to the south. " ZERO? PEG-PASSAGE-OPENED /?CND4 PRINTI "A previously hidden passage leads north. " ?CND4: PRINTI "In the center of the room is a pegboard. Hanging on the wall are a set of instructions." RTRUE .FUNCT PBOZ-OBJECT-F EQUAL? PRSA,V?PLAY \FALSE EQUAL? HERE,PEG-ROOM \?CCL6 ICALL1 PEG-GAME RTRUE ?CCL6: PRINT YOU-CANT PRINTR "play Peggleboz without a pegboard!" .FUNCT PEGBOARD-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTR "The board has 21 holes, 20 of them filled with pegs. The holes are arranged in a roughly triangular shape." ?CCL3: EQUAL? PRSA,V?TAKE \FALSE PRINTR "The pegboard is an unmovable feature of the room." .FUNCT PEGBOARD-PEGS-F EQUAL? PRSA,V?TAKE,V?MOVE \FALSE PRINTR "It would behoove you to read the instructions that are posted on the wall here." .FUNCT PEG-GAME,FIRST-MOVE,PEG-SELECTED,CHAR,JUMPED-PEG,DONT-CLEAR,WON,CNT,?TMP2,?TMP1 SET 'FIRST-MOVE,TRUE-VALUE CLEAR S-FULL ICALL SPLIT-BY-PICTURE,PBOZ-SPLIT,TRUE-VALUE ICALL2 ADJUST-TEXT-WINDOW,PBOZ-BOTTOM ICALL1 SETUP-PBOZ ?PRG1: ZERO? WON \?CND3 ZERO? PEG-SELECTED /?CCL7 ZERO? DONT-CLEAR \?CCL10 CLEAR S-TEXT JUMP ?CND8 ?CCL10: SET 'DONT-CLEAR,FALSE-VALUE ?CND8: PRINTI "You are moving the peg at letter " HLIGHT H-BOLD ADD LETTER-OFFSET,PEG-SELECTED PRINTC STACK HLIGHT H-NORMAL PRINTI ". Select the letter for the destination point of that peg, or hit " HLIGHT H-BOLD ADD LETTER-OFFSET,PEG-SELECTED PRINTC STACK HLIGHT H-NORMAL PRINTI " again to ""unselect"" that peg." JUMP ?CND3 ?CCL7: ZERO? FIRST-MOVE \?CND11 ZERO? DONT-CLEAR \?CND11 CLEAR S-TEXT ?CND11: ZERO? DONT-CLEAR \?CND3 CALL1 PEG-COUNT EQUAL? STACK,1 \?CCL19 PRINTI "Type X to exit, Y to display your moves, and Z to start again" ZERO? ACTIVE-MOUSE /?CND20 PRINTI " (or simply click on the appropriate spot with your mouse)" ?CND20: PRINTC 46 JUMP ?CND3 ?CCL19: PRINTI "Type the letter corresponding to the peg you'd like to move" ZERO? ACTIVE-MOUSE /?CND22 PRINTI ", or use your mouse to click on it" ?CND22: PRINTC 46 ZERO? FIRST-MOVE /?CND3 SET 'FIRST-MOVE,FALSE-VALUE PRINTI " Type X to exit Peggleboz, Y to display your moves so far, Z to reset the board" ZERO? ACTIVE-MOUSE /?CND26 PRINTI " (or you can use your mouse to click on the appropriate spot)" ?CND26: PRINTC 46 ?CND3: SET 'DONT-CLEAR,FALSE-VALUE ZERO? PEG-SELECTED /?CCL30 MUL PEG-SELECTED,2 GET BOARD-TABLE,STACK >?TMP1 MUL PEG-SELECTED,2 ADD STACK,1 GET BOARD-TABLE,STACK CALL BLINK,UNHL-PEG,HL-PEG,?TMP1,STACK,S-WINDOW >CHAR JUMP ?CND28 ?CCL30: ZERO? DEMO-VERSION? /?CCL33 CALL2 INPUT-DEMO,1 >CHAR JUMP ?CND28 ?CCL33: INPUT 1 >CHAR ?CND28: ICALL1 MOUSE-INPUT? EQUAL? CHAR,CLICK1,CLICK2 \?CND34 CALL1 PBOZ-CLICK >CHAR ?CND34: GRTR? CHAR,96 \?CND36 LESS? CHAR,123 \?CND36 SUB CHAR,32 >CHAR ?CND36: EQUAL? CHAR,88 \?CCL42 ICALL1 RESET-PEGBOARD ICALL2 INIT-SL-WITH-SPLIT,TEXT-WINDOW-PIC-LOC CLEAR S-TEXT RTRUE ?CCL42: EQUAL? CHAR,89 \?CCL44 SET 'DONT-CLEAR,TRUE-VALUE ICALL1 DISPLAY-MOVES JUMP ?PRG1 ?CCL44: EQUAL? CHAR,90 \?CCL46 ICALL1 RESET-PEGBOARD SET 'WON,FALSE-VALUE SET 'CNT,4 SCREEN S-WINDOW ICALL1 DRAW-PEGS SCREEN S-TEXT CLEAR S-TEXT SET 'PEG-SELECTED,FALSE-VALUE JUMP ?PRG1 ?CCL46: ZERO? PEG-SELECTED \?CCL48 SUB CHAR,64 >PEG-SELECTED GRTR? PEG-SELECTED,21 /?CTR50 LESS? PEG-SELECTED,1 \?CCL51 ?CTR50: CLEAR S-TEXT SOUND 1 SET 'PEG-SELECTED,FALSE-VALUE SET 'DONT-CLEAR,TRUE-VALUE PRINTI "Illegal choice. Type a letter from A thru U to select a peg. Or, type X to exit, Y to display your moves, or Z to reset the board." JUMP ?PRG1 ?CCL51: GET PEG-TABLE,PEG-SELECTED ZERO? STACK \?PRG1 CLEAR S-TEXT SOUND 1 SET 'DONT-CLEAR,TRUE-VALUE PRINTI "There's no peg at point " ADD LETTER-OFFSET,PEG-SELECTED PRINTC STACK PRINTC 46 SET 'PEG-SELECTED,FALSE-VALUE JUMP ?PRG1 ?CCL48: SUB CHAR,64 EQUAL? PEG-SELECTED,STACK \?CCL56 SET 'DONT-CLEAR,TRUE-VALUE SET 'PEG-SELECTED,FALSE-VALUE CLEAR S-TEXT PRINTI "Unselected." JUMP ?PRG1 ?CCL56: CALL LEGAL-MOVE,PEG-SELECTED,CHAR >JUMPED-PEG ZERO? JUMPED-PEG /?CCL58 PUT PEG-MOVE-TABLE,PEG-MOVE-NUMBER,PEG-SELECTED ADD PEG-MOVE-NUMBER,1 >?TMP1 SUB CHAR,64 PUT PEG-MOVE-TABLE,?TMP1,STACK ADD PEG-MOVE-NUMBER,2 >PEG-MOVE-NUMBER PUT PEG-TABLE,JUMPED-PEG,0 PUT PEG-TABLE,PEG-SELECTED,0 SUB CHAR,64 PUT PEG-TABLE,STACK,1 SCREEN S-WINDOW GET PEG-BG-PIC-TBL,PEG-SELECTED >?TMP2 MUL PEG-SELECTED,2 GET BOARD-TABLE,STACK >?TMP1 MUL PEG-SELECTED,2 ADD STACK,1 GET BOARD-TABLE,STACK DISPLAY ?TMP2,?TMP1,STACK GET PEG-BG-PIC-TBL,JUMPED-PEG >?TMP2 MUL JUMPED-PEG,2 GET BOARD-TABLE,STACK >?TMP1 MUL JUMPED-PEG,2 ADD STACK,1 GET BOARD-TABLE,STACK DISPLAY ?TMP2,?TMP1,STACK SUB CHAR,64 MUL STACK,2 GET BOARD-TABLE,STACK >?TMP1 SUB CHAR,64 MUL STACK,2 ADD STACK,1 GET BOARD-TABLE,STACK DISPLAY UNHL-PEG,?TMP1,STACK EQUAL? PEG-MOVE-NUMBER,2 \?CND59 ZERO? ACTIVE-MOUSE /?CND59 ICALL2 PICINF-PLUS-ONE,PBOZ-RESTART-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY RESTART-BOX,?TMP1,STACK ICALL2 PICINF-PLUS-ONE,PBOZ-SHOW-MOVES-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY SHOW-MOVES-BOX,?TMP1,STACK ?CND59: SET 'PEG-SELECTED,FALSE-VALUE SCREEN S-TEXT CLEAR S-TEXT CALL1 PBOZ-WIN-CHECK ZERO? STACK /?PRG1 SET 'WON,TRUE-VALUE SET 'PEG-PASSAGE-OPENED,TRUE-VALUE SOUND 1 SOUND 1 SOUND 1 PRINTI "A secret doorway to the north slides open. (Hit X to exit)." CRLF ICALL2 INC-SCORE,16 JUMP ?PRG1 ?CCL58: SET 'DONT-CLEAR,TRUE-VALUE JUMP ?PRG1 .FUNCT PBOZ-CLICK,TL-X,TL-Y,BR-X,BR-Y,CNT,PEG-WIDTH,PEG-HEIGHT,EXPAND-X,EXPAND-Y SET 'CNT,2 ICALL2 PICINF-PLUS-ONE,PBOZ-RESTART-BOX-LOC GET PICINF-TBL,1 >TL-X GET PICINF-TBL,0 >TL-Y PICINF RESTART-BOX,PICINF-TBL /?BOGUS1 ?BOGUS1: GET PICINF-TBL,1 ADD TL-X,STACK >BR-X GET PICINF-TBL,0 ADD TL-Y,STACK >BR-Y CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND2 RETURN 90 ?CND2: ICALL2 PICINF-PLUS-ONE,PBOZ-SHOW-MOVES-BOX-LOC GET PICINF-TBL,1 >TL-X GET PICINF-TBL,0 >TL-Y PICINF SHOW-MOVES-BOX,PICINF-TBL /?BOGUS4 ?BOGUS4: GET PICINF-TBL,1 ADD TL-X,STACK >BR-X GET PICINF-TBL,0 ADD TL-Y,STACK >BR-Y CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND5 RETURN 89 ?CND5: ICALL2 PICINF-PLUS-ONE,PBOZ-EXIT-BOX-LOC GET PICINF-TBL,1 >TL-X GET PICINF-TBL,0 >TL-Y PICINF EXIT-BOX,PICINF-TBL /?BOGUS7 ?BOGUS7: GET PICINF-TBL,1 ADD TL-X,STACK >BR-X GET PICINF-TBL,0 ADD TL-Y,STACK >BR-Y CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND8 RETURN 88 ?CND8: PICINF EXPAND-HOT-SPOT,PICINF-TBL /?BOGUS10 ?BOGUS10: GET PICINF-TBL,0 >EXPAND-Y GET PICINF-TBL,1 >EXPAND-X PICINF UNHL-PEG,PICINF-TBL /?BOGUS11 ?BOGUS11: GET PICINF-TBL,0 >PEG-HEIGHT GET PICINF-TBL,1 >PEG-WIDTH ?PRG12: GET BOARD-TABLE,CNT >TL-Y ADD CNT,1 GET BOARD-TABLE,STACK >TL-X ADD TL-Y,PEG-HEIGHT >BR-Y ADD TL-X,PEG-WIDTH >BR-X SUB TL-X,EXPAND-X >TL-X ADD BR-X,EXPAND-X >BR-X ADD BR-Y,EXPAND-Y >BR-Y CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK \?REP13 ADD CNT,2 >CNT GRTR? CNT,43 \?PRG12 SOUND 1 ?REP13: GRTR? CNT,43 \?CCL20 RETURN CLICK1 ?CCL20: DIV CNT,2 ADD STACK,64 RSTACK .FUNCT SETUP-PBOZ,I,TT,?TMP1 SET 'I,2 FSET PBOZ-OBJECT,TOUCHBIT SET 'TT,PBOZ-PIC-TABLE ?PRG1: GET TT,0 ICALL2 PICINF-PLUS-ONE,STACK GET PICINF-TBL,0 PUT BOARD-TABLE,I,STACK ADD I,1 >?TMP1 GET PICINF-TBL,1 PUT BOARD-TABLE,?TMP1,STACK ADD I,2 >I GRTR? I,43 /?REP2 ADD TT,2 >TT JUMP ?PRG1 ?REP2: SCREEN S-FULL DISPLAY PBOZ-BORDER,1,1 SCREEN S-WINDOW PICSET PBOZ-PICSET-TBL ICALL1 DRAW-PEGS ZERO? ACTIVE-MOUSE /?CND5 ICALL2 PICINF-PLUS-ONE,PBOZ-RESTART-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY DIM-RESTART-BOX,?TMP1,STACK ICALL2 PICINF-PLUS-ONE,PBOZ-SHOW-MOVES-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY DIM-SHOW-MOVES-BOX,?TMP1,STACK ICALL2 PICINF-PLUS-ONE,PBOZ-EXIT-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY EXIT-BOX,?TMP1,STACK ?CND5: SCREEN S-TEXT RTRUE .FUNCT DRAW-PEGS,NUM,?TMP2,?TMP1 SET 'NUM,1 ?PRG1: GET PEG-TABLE,NUM EQUAL? STACK,1 \?CCL5 MUL NUM,2 GET BOARD-TABLE,STACK >?TMP1 MUL NUM,2 ADD STACK,1 GET BOARD-TABLE,STACK DISPLAY UNHL-PEG,?TMP1,STACK JUMP ?CND3 ?CCL5: GET PEG-BG-PIC-TBL,NUM >?TMP2 MUL NUM,2 GET BOARD-TABLE,STACK >?TMP1 MUL NUM,2 ADD STACK,1 GET BOARD-TABLE,STACK DISPLAY ?TMP2,?TMP1,STACK ?CND3: IGRTR? 'NUM,21 \?PRG1 RTRUE .FUNCT RESET-PEGBOARD,CNT,?TMP1 ZERO? ACTIVE-MOUSE /?CND1 SCREEN S-WINDOW ICALL2 PICINF-PLUS-ONE,PBOZ-RESTART-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY DIM-RESTART-BOX,?TMP1,STACK ICALL2 PICINF-PLUS-ONE,PBOZ-SHOW-MOVES-BOX-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 DISPLAY DIM-SHOW-MOVES-BOX,?TMP1,STACK SCREEN S-TEXT ?CND1: SET 'PEG-MOVE-NUMBER,0 PUT PEG-TABLE,1,1 ADD PEG-TABLE,2 >?TMP1 ADD PEG-TABLE,4 COPYT ?TMP1,STACK,-40 PUT PEG-TABLE,7,0 COPYT PEG-MOVE-TABLE,0,80 RTRUE .FUNCT LEGAL-MOVE,SELECTED-PEG,CHAR,TBL,TBL-SPOT,JUMPED-PEG SUB CHAR,64 >CHAR GET LEGAL-MOVE-TABLE,SELECTED-PEG >TBL GET TBL,0 EQUAL? STACK,CHAR \?CCL3 SET 'TBL-SPOT,0 JUMP ?CND1 ?CCL3: GET TBL,2 EQUAL? STACK,CHAR \?CCL5 SET 'TBL-SPOT,2 JUMP ?CND1 ?CCL5: GET TBL,4 EQUAL? STACK,CHAR \?CCL7 SET 'TBL-SPOT,4 JUMP ?CND1 ?CCL7: GET TBL,6 EQUAL? STACK,CHAR \?CCL9 SET 'TBL-SPOT,6 ?CND1: ADD TBL-SPOT,1 GET TBL,STACK >JUMPED-PEG GET PEG-TABLE,CHAR EQUAL? STACK,1 \?CCL12 CLEAR S-TEXT SOUND 1 PRINTI "Illegal move. There's already a peg at spot " ADD LETTER-OFFSET,CHAR PRINTC STACK PRINTC 46 RFALSE ?CCL9: CLEAR S-TEXT SOUND 1 PRINTI "Illegal move. You can jump a peg only to a spot which is two spots away." RFALSE ?CCL12: GET PEG-TABLE,JUMPED-PEG ZERO? STACK /?CCL13 RETURN JUMPED-PEG ?CCL13: CLEAR S-TEXT SOUND 1 PRINTI "Illegal move. There's no peg at spot " ADD LETTER-OFFSET,JUMPED-PEG PRINTC STACK PRINTI " to jump." RFALSE .FUNCT PBOZ-WIN-CHECK,CNT,PEG-NUM SET 'CNT,1 ZERO? PEG-PASSAGE-OPENED \FALSE ?PRG3: EQUAL? CNT,22 /?REP4 GET PEG-TABLE,CNT EQUAL? STACK,1 \?CND7 INC 'PEG-NUM ?CND7: INC 'CNT JUMP ?PRG3 ?REP4: EQUAL? PEG-NUM,1 \FALSE GET PEG-TABLE,7 EQUAL? STACK,1 /TRUE RFALSE .FUNCT PEG-COUNT,CNT,PEG-NUM SET 'CNT,1 ?PRG1: EQUAL? CNT,22 /?REP2 GET PEG-TABLE,CNT EQUAL? STACK,1 \?CND5 INC 'PEG-NUM ?CND5: INC 'CNT JUMP ?PRG1 ?REP2: RETURN PEG-NUM .FUNCT DISPLAY-MOVES,X,Y,CNT CLEAR S-TEXT ZERO? PEG-MOVE-NUMBER \?CND1 PRINTI "You haven't moved yet!" RTRUE ?CND1: FONT 4 ?PRG3: MOD CNT,10 DIV STACK,2 ADD STACK,1 >Y DIV CNT,10 MUL STACK,12 ADD STACK,1 >X ICALL CCURSET,Y,X DIV CNT,2 ADD STACK,1 PRINTN STACK PRINTI ") " GET PEG-MOVE-TABLE,CNT ADD LETTER-OFFSET,STACK PRINTC STACK PRINTI " -> " ADD CNT,1 GET PEG-MOVE-TABLE,STACK ADD LETTER-OFFSET,STACK PRINTC STACK SUB PEG-MOVE-NUMBER,2 EQUAL? CNT,STACK /?REP4 ADD CNT,2 >CNT JUMP ?PRG3 ?REP4: FONT 1 RSTACK .FUNCT GAMING-ROOM-F,RARG EQUAL? RARG,M-ENTER \FALSE FSET? ZORKMID-BILL,TOUCHBIT /FALSE SET 'DO-J,TRUE-VALUE CALL QUEUE,I-JESTER,1 RSTACK .FUNCT CARPET-F EQUAL? PRSA,V?RAISE,V?LOOK-UNDER,V?MOVE /?CCL3 EQUAL? PRSA,V?ROLL \FALSE ?CCL3: PRINTR "The carpet is quite well attached to the floor." .SEGMENT "0" .FUNCT DUMBELL-F EQUAL? PRSA,V?RAISE \?CCL3 PRINTR "You can barely get them off the ground, let alone press them." ?CCL3: EQUAL? PRSA,V?PUSH-DIR \?CCL5 ICALL PERFORM,V?ROLL-DIR,PRSO,PRSI RTRUE ?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "It's a set of 100-ugh weights, small enough to hold in one hand (but unless you a pretty awesome athleter, not nearly light enough to hold in one hand)." .ENDSEG .SEGMENT "CASTLE" .FUNCT EAST-HALL-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "The castle's east wing lies through a massive door to the east, which is " ICALL2 OPEN-CLOSED,EAST-DOOR PRINTI ". The only other exit from the hall is northwest." RTRUE .FUNCT EAST-DOOR-F EQUAL? PRSA,V?UNLOCK \?CCL3 FSET? EAST-DOOR,LOCKEDBIT \?CCL3 EQUAL? PRSI,EAST-KEY \?CCL3 FCLEAR EAST-DOOR,LOCKEDBIT CALL LOCKED-UNLOCKED,EAST-DOOR,TRUE-VALUE RSTACK ?CCL3: EQUAL? PRSA,V?LOCK \FALSE FSET? EAST-DOOR,LOCKEDBIT /FALSE EQUAL? PRSI,EAST-KEY \FALSE FSET EAST-DOOR,LOCKEDBIT CALL2 LOCKED-UNLOCKED,EAST-DOOR RSTACK .SEGMENT "0" .FUNCT WAND-F EQUAL? PRSA,V?READ,V?EXAMINE \?CCL3 PRINTR "The name ""Fisha"" is engraved on the wand in tiny script, followed by the phrase ""16 minute model.""" ?CCL3: EQUAL? PRSA,V?POINT \FALSE EQUAL? PRSO,WAND \FALSE MOVE WAND,PROTAGONIST EQUAL? PRSI,WAND \?CCL10 PRINTR "Point the wand at itself!?! It isn't made of rubber!" ?CCL10: ZERO? TIME-STOPPED /?CCL12 PRINTR "The wand's magic seems as frozen as time itself." ?CCL12: ZERO? WAND-LIFE \?CND8 PRINTR "Nothing. The wand seems to be used up." ?CND8: DEC 'WAND-LIFE GETP PRSI,P?INANIMATE-DESC ZERO? STACK /?CCL16 FSET? PRSI,ANIMATEDBIT \?CCL16 EQUAL? PRSI,FOX \?CND19 FSET PRSI,WEARBIT ?CND19: GETP PRSI,P?ANIMATE-ROUTINE ICALL QUEUE,STACK,17 FCLEAR PRSI,ANIMATEDBIT FCLEAR PRSI,ACTORBIT FSET PRSI,TOUCHBIT ICALL2 THIS-IS-IT,PRSI GETP PRSI,P?WAND-TEXT PRINT STACK CRLF RTRUE ?CCL16: FSET? PRSI,BLACKBIT /?CTR21 FSET? PRSI,WHITEBIT \?CCL22 ?CTR21: PRINTI "The " ICALL2 DPRINT,PRSO PRINTR " seems to grow sluggish for a moment, but there is no other effect." ?CCL22: EQUAL? PRSA,V?POINT \?CCL26 EQUAL? PRSI,JESTER \?CCL26 PRINTI "The jester's expression turns stony. In fact, the jester himself turns stony, as he becomes a statue! After a moment, hairline cracks begin forming across the statue. The cracks widen and multiply, and the entire statue collapses into a cloud of dust! You hear an echo of laughter as the dust disperses." IN? SHELL-TABLE,HERE \?CND29 PRINTI " The table and shells disappear as well." ?CND29: CRLF ICALL1 REMOVE-J SET 'J-DISPOSED,MOVES RTRUE ?CCL26: EQUAL? PRSI,BEDBUG \?CCL32 REMOVE BEDBUG PRINTR "The bedbug freezes, becoming a small armored tank. You are surrounded by raucous laughter from an invisible source, and the bedbug/tank disappears!" ?CCL32: EQUAL? PRSI,EVEN-LARGER-FLY,LARGER-FLY,LARGE-FLY /?CTR33 EQUAL? PRSI,LARGEST-FLY \?CCL34 ?CTR33: PRINTR "Zap! A bolt of magic just misses the fly. Oh, well. It seems that even though it's large for a fly, it's small for a magic wand target." ?CCL34: EQUAL? PRSI,OTTO \?CCL38 REMOVE OTTO ICALL QUEUE,I-STONE-TO-OTTO,17 PRINTI "Otto " FSET? SPYGLASS,TRYTAKEBIT \?CND39 IN? SPYGLASS,OTTO /?CND39 MOVE SPYGLASS,OTTO PRINTI "grabs the spyglass just before he " ?CND39: PRINTR "transforms into a massive stone toad, just like the ones that flank the Flatheadia Courthouse. His weight is now too much for even the largest of lily pads to bear, and he sinks into the swamp with a sickening slurp." ?CCL38: EQUAL? PRSI,BROGMOID \?CCL44 PRINTR "A few of the brogmoid's cells may have frozen; if the wand were twenty bloits long, it might have a chance of affecting this enormous brogmoid." ?CCL44: EQUAL? PRSI,PRICKLY-WITCH,SICKLY-WITCH \?CCL46 PRINTR "A magical shield springs up around the witch. ""Your weak powers are useless against us, simple adventurer!"" cackles the crone." ?CCL46: FSET? PRSI,PLANTBIT \?CCL48 PRINTI "No effect;" ICALL1 TPRINT-PRSI PRINTR " wasn't all that animate to begin with." ?CCL48: EQUAL? PRSI,UNICORNS \?CCL50 CALL2 JIGS-UP,STR?381 RSTACK ?CCL50: EQUAL? PRSI,THOUSANDS-OF-SNAKES \?CCL52 PRINTR "One of the snakes stops moving, but is instantly swallowed up by the writhing mass." ?CCL52: EQUAL? PRSI,ME \?CCL54 CALL2 JIGS-UP,STR?382 RSTACK ?CCL54: EQUAL? PRSI,EXECUTIONER \?CCL56 CALL2 JIGS-UP,STR?383 RSTACK ?CCL56: PRINTI "You feel a crackle of magical energy, but there doesn't seem to be any effect on" CALL2 TRPRINT,PRSI RSTACK .ENDSEG .SEGMENT "LOWER" .FUNCT G-BOOTH-F,TBL,LEN IN? PROTAGONIST,LEFT-BOOTH \?CCL3 RETURN LEFT-BOOTH ?CCL3: IN? PROTAGONIST,RIGHT-BOOTH \FALSE RETURN RIGHT-BOOTH .FUNCT BOOTH-F,VARG ZERO? VARG /?CCL3 EQUAL? VARG,M-ENTER \FALSE ?CCL3: ZERO? VARG /?CCL7 FSET? PRSO,TOUCHBIT /FALSE PRINTC 32 ICALL PERFORM,V?EXAMINE,PRSO RTRUE ?CCL7: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "The only feature of the booth is an ominous black button." .FUNCT G-BUTTON-F,TBL,LEN IN? PROTAGONIST,RIGHT-BOOTH \?CCL3 RETURN RIGHT-BOOTH-BUTTON ?CCL3: IN? PROTAGONIST,LEFT-BOOTH \?CCL5 RETURN LEFT-BOOTH-BUTTON ?CCL5: RETURN NOT-HERE-OBJECT .FUNCT BOOTH-BUTTON-F,OTHER-BOOTH,THE-FLY EQUAL? PRSA,V?PUSH \FALSE ZERO? ALLIGATOR /?CND4 PRINTR "Impossible, in your current state." ?CND4: REMOVE LEFT-BOOTH-BUTTON REMOVE RIGHT-BOOTH-BUTTON IN? PROTAGONIST,RIGHT-BOOTH \?CCL8 SET 'OTHER-BOOTH,LEFT-BOOTH JUMP ?CND6 ?CCL8: SET 'OTHER-BOOTH,RIGHT-BOOTH ?CND6: FIRST? OTHER-BOOTH >THE-FLY /?BOGUS9 ?BOGUS9: ZERO? THE-FLY /?CTR11 NEXT? THE-FLY \?CCL12 ?CTR11: PRINT NOTHING-HAPPENS JUMP ?CND10 ?CCL12: ICALL QUEUE,I-UNTURN,5 SET 'TURNED-INTO,THE-FLY ICALL2 DEQUEUE,I-UNALLIGATOR PRINTI "You turn into" ICALL2 APRINT,THE-FLY EQUAL? THE-FLY,WORM \?CCL17 CALL2 VISIBLE?,ROOSTER ZERO? STACK /?CCL17 FSET? ROOSTER,ANIMATEDBIT \?CCL17 ICALL2 JIGS-UP,STR?390 JUMP ?CND15 ?CCL17: EQUAL? THE-FLY,ROOSTER \?CCL22 CALL2 VISIBLE?,FOX ZERO? STACK /?CCL22 FSET? FOX,ANIMATEDBIT \?CCL22 ICALL2 JIGS-UP,STR?391 JUMP ?CND15 ?CCL22: FIRST? PROTAGONIST \?CCL27 PRINTI ", dropping your possessions." LOC PROTAGONIST ICALL ROB,PROTAGONIST,STACK JUMP ?CND15 ?CCL27: PRINTC 46 ?CND15: CRLF ?CND10: MOVE LEFT-BOOTH-BUTTON,LEFT-BOOTH MOVE RIGHT-BOOTH-BUTTON,RIGHT-BOOTH RTRUE .FUNCT I-UNTURN ICALL1 RETURN-FROM-MAP PRINTI " Waves of relief. You're no longer" ICALL2 ARPRINT,TURNED-INTO SET 'TURNED-INTO,FALSE-VALUE RTRUE .FUNCT TO-SPEAK-OF,STRING PRINTI "Ummm..." ICALL2 APRINT,TURNED-INTO PRINTI " has no " PRINT STRING PRINTR " to speak of." .FUNCT GOOD-MEAL,OBJ REMOVE OBJ PRINTI "Yum!" GRTR? HUNGER-COUNT,0 \?CCL3 PRINTI " Your hunger fades." CRLF ICALL2 DEQUEUE,I-HUNGER SET 'HUNGER-COUNT,0 CALL2 INC-SCORE,20 RSTACK ?CCL3: CRLF RTRUE .SEGMENT "0" .FUNCT TOBOGGAN-F,VARG ZERO? VARG \FALSE EQUAL? PRSA,V?EXAMINE \?CCL5 CALL NOUN-USED?,TOBOGGAN,W?INSCRIPTION ZERO? STACK /?CCL8 ICALL PERFORM,V?READ,TOBOGGAN RTRUE ?CCL8: PRINTI "This one-person sled bears a small inscription. " RFALSE ?CCL5: EQUAL? PRSA,V?ENTER \FALSE EQUAL? HERE,GLACIER \FALSE MOVE TOBOGGAN,MIRROR-LAKE ZERO? ENCHANTED-ORB \?CND13 RANDOM 100 LESS? 25,STACK /?CCL17 SET 'ENCHANTED-ORB,MILKY-ORB JUMP ?CND13 ?CCL17: RANDOM 100 LESS? 33,STACK /?CCL19 SET 'ENCHANTED-ORB,SMOKY-ORB JUMP ?CND13 ?CCL19: RANDOM 100 LESS? 50,STACK /?CCL21 SET 'ENCHANTED-ORB,FIERY-ORB JUMP ?CND13 ?CCL21: SET 'ENCHANTED-ORB,GLITTERY-ORB ?CND13: PRINTI "As you sit on the toboggan, it begins to slide down the mountain, gathering speed as it goes. The passing landscape begins to blur, and then even the blur is gone as the icy wind forces your eyes shut. Suddenly, with a jolt like a mighty hand grabbing you, you are still! You open your eyes" PRINT ELLIPSIS CALL2 GOTO,TOBOGGAN RSTACK .ENDSEG .SEGMENT "LOWER" .FUNCT CAGE-F EQUAL? PRSA,V?OPEN \?CCL3 IN? SNAKE,CAGE \?CCL6 FSET? SNAKE,ANIMATEDBIT \?CCL6 CALL2 JIGS-UP,STR?396 RSTACK ?CCL6: FSET CAGE,TOUCHBIT RFALSE ?CCL3: EQUAL? PRSA,V?COUNT \?CCL10 PRINTR "Thousands." ?CCL10: EQUAL? PRSA,V?ENTER \FALSE PRINTR "The cage is too small for a human." .SEGMENT "0" .FUNCT SNAKE-F EQUAL? PRSA,V?RESEARCH \?CCL3 CALL NOUN-USED?,SNAKE,W?SNAKE ZERO? STACK /?CCL3 PRINTR """A common animal, best kept caged.""" ?CCL3: FSET? SNAKE,ANIMATEDBIT \?CCL7 EQUAL? PRSA,V?LET-OUT \?CCL10 ICALL PERFORM,V?OPEN,CAGE RTRUE ?CCL10: EQUAL? PRSA,V?MEASURE,V?EXAMINE \FALSE PRINTR "The snake is thin and perhaps as much as twenty feet long." ?CCL7: EQUAL? PRSA,V?TIE \?CCL14 EQUAL? PRSO,SNAKE \?CCL14 EQUAL? PRSI,SPIRE \?CCL19 SET 'ROPE-PLACED,TRUE-VALUE MOVE SNAKE,HERE PRINTR "You tie the rope to the spire, dropping the other end down the cliff face. It reaches most of the way toward the lower ledge." ?CCL19: FSET? PRSI,PLANTBIT \?CCL21 CALL1 WASTES RSTACK ?CCL21: PRINT YOU-CANT PRINTI "tie the rope to" CALL2 TRPRINT,PRSI RSTACK ?CCL14: EQUAL? PRSA,V?UNTIE \?CCL23 ZERO? ROPE-PLACED /?CCL23 SET 'ROPE-PLACED,FALSE-VALUE PRINTR "You untie the rope from the spire." ?CCL23: EQUAL? PRSA,V?CLIMB-DOWN \?CCL27 ZERO? ROPE-PLACED /?CCL27 CALL2 DO-WALK,P?DOWN RSTACK ?CCL27: EQUAL? PRSA,V?MEASURE,V?EXAMINE \FALSE PRINTR "The rope is about twenty feet long." .FUNCT I-W-SNAKE,TOLD FSET SNAKE,ANIMATEDBIT IN? SNAKE,LAKE-BOTTOM \?CCL3 REMOVE SNAKE JUMP ?CND1 ?CCL3: CALL2 VISIBLE?,SNAKE ZERO? STACK /?CCL5 ICALL1 RETURN-FROM-MAP SET 'TOLD,TRUE-VALUE PRINTI " The rope ripples with increasing force. It has returned to the form of a snake! The snake squirms with anger" EQUAL? HERE,UPPER-LEDGE \?CCL8 ZERO? ROPE-PLACED /?CCL8 PRINTI ", uncurls from the spire, and drops out of sight!" CRLF JUMP ?CND1 ?CCL8: IN? SNAKE,CAGE \?CCL12 FSET? CAGE,OPENBIT /?CCL12 PRINT PERIOD-CR JUMP ?CND1 ?CCL12: CALL2 ULTIMATELY-IN?,SNAKE ZERO? STACK /?CCL16 IN? SNAKE,WALDO /?CCL16 ICALL2 JIGS-UP,STR?399 JUMP ?CND1 ?CCL16: LOC SNAKE FSET? STACK,ACTORBIT \?CND19 PRINTI ", nearly bites" LOC SNAKE ICALL2 TPRINT,STACK PRINTI " on the wrist, drops to the ground," ?CND19: PRINTI " and wriggles quickly out of sight." CRLF JUMP ?CND1 ?CCL5: EQUAL? HERE,LOWER-LEDGE \?CND1 ZERO? ROPE-PLACED /?CND1 ICALL1 RETURN-FROM-MAP SET 'TOLD,TRUE-VALUE PRINTI " A writhing snake drops from above! It strikes out at you but, fortunately, misses. Hissing angrily, it disappears into a narrow crack." CRLF ?CND1: SET 'ROPE-PLACED,FALSE-VALUE IN? SNAKE,CAGE \?CCL25 FSET? CAGE,OPENBIT \?CND24 ?CCL25: REMOVE SNAKE ?CND24: ZERO? TOLD \TRUE RFALSE .ENDSEG .SEGMENT "LOWER" .FUNCT VAULT-DOOR-F EQUAL? PRSA,V?EXAMINE \?CCL3 EQUAL? HERE,LOWEST-HALL \?CCL3 PRINTI "A large dial is set into the center of the door. " RFALSE ?CCL3: EQUAL? PRSA,V?LOCK \?CCL7 EQUAL? PRSO,VAULT-DOOR \?CCL7 FSET? VAULT-DOOR,OPENBIT \?CCL12 CALL DO-FIRST,STR?402,VAULT-DOOR RSTACK ?CCL12: FSET? VAULT-DOOR,LOCKEDBIT \?CCL14 PRINTR "It is!" ?CCL14: RANDOM 2570 >P-NUMBER ICALL PERFORM,V?SET,DIAL,INTNUM RTRUE ?CCL7: EQUAL? PRSA,V?UNLOCK \FALSE FSET? PRSI,KEYBIT \FALSE PRINTR "This is a combination lock, not a key lock." .FUNCT DIAL-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTI "The dial is currently turned to " PRINTN DIAL-NUMBER PRINTR ". It can be set to any number between 1 and 2570." ?CCL3: EQUAL? PRSA,V?SET-DIR \?CCL5 EQUAL? PRSI,LEFT-RIGHT \?CCL5 ICALL PERFORM,V?SET,DIAL RTRUE ?CCL5: EQUAL? PRSA,V?SET \FALSE ZERO? PRSI \?CCL12 PRINTR "[You must say what number to turn the dial to, as in TURN DIAL TO 920.]" ?CCL12: EQUAL? PRSI,INTNUM /?CCL14 CALL1 IMPOSSIBLES RSTACK ?CCL14: GRTR? P-NUMBER,2570 /?CTR15 LESS? P-NUMBER,1 \?CCL16 ?CTR15: PRINTR "That's not one of the numbers on the dial." ?CCL16: EQUAL? DIAL-NUMBER,P-NUMBER \?CCL20 PRINTI "The dial is already set to " PRINTN P-NUMBER PRINT PERIOD-CR RTRUE ?CCL20: FSET? VAULT-DOOR,OPENBIT /?CCL22 FSET? VAULT-DOOR,LOCKEDBIT /?CCL22 SET 'DIAL-NUMBER,P-NUMBER FSET VAULT-DOOR,LOCKEDBIT PRINTR "The tumblers tumble as the vault door re-locks." ?CCL22: FSET? GLOVE,WORNBIT \?CCL26 FSET? VAULT-DOOR,LOCKEDBIT \?CCL26 RANDOM 2570 >DIAL-NUMBER FCLEAR VAULT-DOOR,LOCKEDBIT PRINTI "As you turn the dial with your gloved hand, you can almost feel the tumblers turning as though they were an extension of your own fingers! Fascinated, you keep spinning, and as you pass " PRINTN DIAL-NUMBER PRINTR ", you feel a sense of tactile perfection, and stop. A faint click ripples up your arm." ?CCL26: SET 'DIAL-NUMBER,P-NUMBER PRINTI "The dial is now set to " PRINTN DIAL-NUMBER PRINT PERIOD-CR RTRUE .FUNCT VAULT-F,RARG ZERO? RARG \FALSE EQUAL? PRSA,V?LOCK,V?CLOSE,V?OPEN /?PRD7 EQUAL? PRSA,V?UNLOCK \FALSE ?PRD7: EQUAL? PRSO,GLOBAL-HERE,VAULT \FALSE CALL PERFORM-PRSA,VAULT-DOOR,PRSI RSTACK .SEGMENT "0" .FUNCT NW-SE-PASSAGE-F,OARG EQUAL? OARG,M-OBJDESC? /TRUE PRINTI " " CALL2 D-PASSAGE,NW-SE-PASSAGE RSTACK .FUNCT N-S-PASSAGE-F,OARG EQUAL? OARG,M-OBJDESC? /TRUE PRINTI " " CALL2 D-PASSAGE,N-S-PASSAGE RSTACK .FUNCT PASSAGE-F EQUAL? PRSA,V?TAKE \?CCL3 FSET? PRSO,TRYTAKEBIT \?CCL3 MOVE PRSO,PROTAGONIST MOVE NOTICE,HERE FCLEAR N-S-PASSAGE,TRYTAKEBIT FCLEAR NW-SE-PASSAGE,TRYTAKEBIT FSET PRSO,TOUCHBIT PRINTI "As you take" ICALL1 TPRINT-PRSO PRINTR ", a notice flutters to the ground." ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7 FSET? PRSO,TAKEBIT \?CCL10 PRINTR "The passage is made out of the same material as donut holes. Once installed, it should be wide enough to walk through, and it's probably about a hundredth of a bloit long." ?CCL10: ICALL2 D-PASSAGE,PRSO CRLF RTRUE ?CCL7: EQUAL? PRSA,V?ENTER \FALSE FSET? PRSO,TAKEBIT \?CCL15 PRINTR "The passage hasn't been installed yet!" ?CCL15: EQUAL? PRSO,N-S-PASSAGE \?CCL17 CALL2 DO-WALK,N-S-PASSAGE-DIR RSTACK ?CCL17: CALL2 DO-WALK,NW-SE-PASSAGE-DIR RSTACK .FUNCT D-PASSAGE,PASSAGE,?TMP1 FSET? PASSAGE,TOUCHBIT /?CCL3 EQUAL? PASSAGE,N-S-PASSAGE \?CCL6 PRINTI "Discarded in the corner is a north-south passage, slightly damaged but perfectly usable." RTRUE ?CCL6: PRINTI "A northwest-southeast passage is lying here. It is marked as being slightly irregular, but nobody other than one of the bureaucratic Passage Inspectors would ever notice." RTRUE ?CCL3: FSET? PASSAGE,TAKEBIT \?CCL8 PRINTI "A magic " ICALL2 DPRINT,PASSAGE PRINTI " is just lying around in the middle of the room, uninstalled." RTRUE ?CCL8: PRINTI "A magic " ICALL2 DPRINT,PASSAGE PRINTI " has been installed in the " EQUAL? PASSAGE,N-S-PASSAGE \?CCL11 EQUAL? HERE,CONSTRUCTION \?CCL14 GET NORTH-EXITS,0 >?TMP1 ADD CONSTRUCTION-LOC,100 EQUAL? ?TMP1,STACK \?CCL17 PRINTI "north" JUMP ?CND9 ?CCL17: PRINTI "south" JUMP ?CND9 ?CCL14: EQUAL? N-S-PASSAGE-DIR,P?NORTH \?CCL19 PRINTI "north" JUMP ?CND9 ?CCL19: PRINTI "south" JUMP ?CND9 ?CCL11: EQUAL? HERE,CONSTRUCTION \?CCL22 GET SE-EXITS,0 >?TMP1 ADD CONSTRUCTION-LOC,100 EQUAL? ?TMP1,STACK \?CCL25 PRINTI "southeast" JUMP ?CND9 ?CCL25: PRINTI "northwest" JUMP ?CND9 ?CCL22: EQUAL? NW-SE-PASSAGE-DIR,P?NW \?CCL27 PRINTI "northwest" JUMP ?CND9 ?CCL27: PRINTI "southeast" ?CND9: PRINTI " wall." RTRUE .ENDSEG .SEGMENT "LOWER" .FUNCT PITS-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This cavern, deep in the bowels of the Great Underground Empire, " ICALL1 D-PITS-FLOOR PRINTI ". A rickety ladder leads upward." RTRUE .FUNCT D-PITS-FLOOR FSET? LANTERN,TRYTAKEBIT \?CCL3 PRINTI "is spotted with an incredible quantity of pits. Judging from the closest of them, the pits are bottomless" RTRUE ?CCL3: PRINTI "has a large number of bottomless pits, all of which have been filled in" FSET? HERE,TOUCHBIT \?CCL6 PRINTI ", except one." JUMP ?CND4 ?CCL6: PRINTI " -- no, wait! It seems that one pit did not become filled in!" ?CND4: PRINTI " The open pit seems to have handholds leading downward" RTRUE .FUNCT PIT-ENTER-F,RARG FSET? LANTERN,TRYTAKEBIT \?CCL3 ZERO? RARG \FALSE ICALL1 RETURN-FROM-MAP PRINTI "Entering a bottomless pit means certain death!" CRLF RFALSE ?CCL3: RETURN LEDGE-IN-PIT .FUNCT PITS-OBJECT-F EQUAL? PRSA,V?EXAMINE \?CCL3 EQUAL? HERE,PITS \?CCL3 PRINTI "The floor " ICALL1 D-PITS-FLOOR PRINT PERIOD-CR RTRUE ?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL7 PRINTR "The pit looks bottomless." ?CCL7: EQUAL? PRSA,V?PUT,V?THROW \?CCL9 EQUAL? P-PRSA-WORD,W?THROW,W?HURL,W?TOSS /?PRD12 EQUAL? P-PRSA-WORD,W?CAST \?CCL9 ?PRD12: EQUAL? PRSO,PIT-BOMB \?CCL9 ICALL PERFORM,V?THROW,PIT-BOMB,FALSE-VALUE RTRUE ?CCL9: EQUAL? PRSA,V?PUT,V?THROW \?CCL16 EQUAL? PRSI,PITS-OBJECT \?CCL16 REMOVE PRSO EQUAL? PRSO,PERCH /?CCL20 CALL ULTIMATELY-IN?,PERCH,PRSO ZERO? STACK /?CND19 ?CCL20: SET 'REMOVED-PERCH-LOC,BROGMOID ?CND19: PRINTI "Bottomless or not, the pit swallows" ICALL1 TPRINT-PRSO PRINTR " forever." ?CCL16: EQUAL? PRSA,V?LEAP /?CTR23 EQUAL? PRSA,V?ENTER \?CCL24 EQUAL? P-PRSA-WORD,W?JUMP,W?LEAP \?CCL24 ?CTR23: CALL2 JIGS-UP,STR?407 RSTACK ?CCL24: EQUAL? PRSA,V?ENTER \FALSE CALL2 DO-WALK,P?DOWN RSTACK .SEGMENT "0" .FUNCT LANTERN-F EQUAL? PRSA,V?EXAMINE \?CCL3 FSET? LANTERN,TRYTAKEBIT \?CCL6 PRINTR "You can't see much from this distance." ?CCL6: CALL NOUN-USED?,LANTERN,W?MONOGRAM ZERO? STACK /?CCL8 ICALL PERFORM,V?READ,LANTERN RTRUE ?CCL8: FSET? LANTERN,LIGHTBIT /?CCL10 PRINTR "The lamp is either broken or burned out." ?CCL10: PRINTI "There seems to be a faint monogram engraved on it. " RFALSE ?CCL3: EQUAL? PRSA,V?READ \?CCL12 FSET? LANTERN,TRYTAKEBIT \?CCL12 ICALL PERFORM,V?EXAMINE,LANTERN RTRUE ?CCL12: EQUAL? PRSA,V?WALK-TO,V?TAKE \?CCL16 FSET? LANTERN,TRYTAKEBIT \?CCL16 PRINTR "The pits make the cavern uncrossable; ergo, you can't reach the lantern." ?CCL16: EQUAL? PRSA,V?THROW-TO,V?THROW \?CCL20 EQUAL? PRSI,LANTERN \?CCL20 FSET? LANTERN,TRYTAKEBIT \?CCL20 REMOVE PRSO EQUAL? PRSO,PERCH /?CCL25 CALL ULTIMATELY-IN?,PERCH,PRSO ZERO? STACK /?CND24 ?CCL25: SET 'REMOVED-PERCH-LOC,BROGMOID ?CND24: PRINTI "Sigh. Your throw is just short of the lamp, and" ICALL1 TPRINT-PRSO PRINTR " disappears into one of the pits." ?CCL20: EQUAL? PRSA,V?THROW \?CCL29 EQUAL? PRSO,LANTERN \?CCL29 ICALL2 DEQUEUE,I-LANTERN FCLEAR LANTERN,ONBIT FCLEAR LANTERN,LIGHTBIT PRINTI "The lamp smashes into the floor, breaking it." CRLF CALL1 NOW-DARK? RSTACK ?CCL29: EQUAL? PRSA,V?ON \FALSE FSET? LANTERN,LIGHTBIT \?CCL36 ICALL QUEUE,I-LANTERN,-1 RFALSE ?CCL36: PRINTR "The lamp refuses to light." .FUNCT I-LANTERN FSET? LANTERN,ONBIT /?CND1 ICALL2 DEQUEUE,I-LANTERN RFALSE ?CND1: DEC 'LANTERN-COUNTER ZERO? LANTERN-COUNTER \?CND3 FCLEAR LANTERN,ONBIT FCLEAR LANTERN,LIGHTBIT ?CND3: EQUAL? LANTERN-COUNTER,200,100,50 /?PRD9 EQUAL? LANTERN-COUNTER,25,0 \FALSE ?PRD9: CALL2 VISIBLE?,LANTERN ZERO? STACK /FALSE ICALL1 RETURN-FROM-MAP PRINTI " " EQUAL? LANTERN-COUNTER,200 \?CCL14 PRINTR "The lamp appears a bit dimmer." ?CCL14: EQUAL? LANTERN-COUNTER,100 \?CCL16 PRINTR "The lamp is definitely dimmer now." ?CCL16: EQUAL? LANTERN-COUNTER,50 \?CCL18 PRINTR "The lamp is nearly out." ?CCL18: EQUAL? LANTERN-COUNTER,25 \?CCL20 PRINTI "You'd better have more light than from the " ICALL2 DPRINT,LANTERN PRINT PERIOD-CR RTRUE ?CCL20: PRINTI "The lantern flickers and dies." CRLF CALL1 NOW-DARK? RSTACK .ENDSEG .SEGMENT "LOWER" .FUNCT LEDGE-IN-PIT-PS EQUAL? PRSA,V?EXIT \FALSE CALL1 V-WALK-AROUND RSTACK .FUNCT UNDER-THE-WORLD-F,RARG EQUAL? RARG,M-ENTER \FALSE ZERO? ALLIGATOR /?CCL6 ICALL1 RETURN-FROM-MAP CALL2 JIGS-UP,STR?418 RSTACK ?CCL6: FSET? UNDER-THE-WORLD,TOUCHBIT /FALSE ICALL1 RETURN-FROM-MAP PRINTI "The well suddenly opens onto a vast abyss! You grab onto a few protruding roots, preventing a terrible fall..." CRLF CRLF RTRUE .FUNCT ROOTS-F EQUAL? HERE,OUTER-BAILEY \?CCL3 CALL2 PERFORM-PRSA,TREE-STUMP RSTACK ?CCL3: EQUAL? PRSA,V?TELL,V?LISTEN \FALSE ZERO? PLANT-TALKER /FALSE PRINTR "It is as unlikely for these roots to speak as it is for your toes to begin conversing with each other." .FUNCT EAR-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You are sitting in one of the folds of a giant ear belonging to the giant brogmoid who is holding up the world. A wide channel leading deeper into the ear is blocked by a virtual forest of ear fungus" ZERO? EAR-PASSAGE-OPEN /?CND4 PRINTI ", except for a small tunnel through the fungus which leads farther in" ?CND4: PRINTI ". The only exit is down." RTRUE .FUNCT EAR-FUNGUS-F,ARG EQUAL? ARG,M-WINNER \?CCL3 CALL1 PLANT-STUNNED RSTACK ?CCL3: EQUAL? PRSA,V?PUSH,V?CLEAN,V?MOVE /?CTR4 EQUAL? PRSA,V?MUNG,V?KICK \?CCL5 ?CTR4: PRINTR "The fungi wall doesn't budge." ?CCL5: EQUAL? PRSA,V?LISTEN \FALSE ZERO? PLANT-TALKER /FALSE EQUAL? FUNGUS-NUMBER,12 \?CND12 RANDOM 12 SUB STACK,1 >FUNGUS-NUMBER ?CND12: PRINTI "You hear a vast murmur of fungi, discussing such topics as the woeful lack of moisture within this ear" ZERO? EAR-PASSAGE-OPEN \?CND14 PRINTI ". One conversation catches your attention: a family of fungi bewailing their long lost cousin, " GET FUNGUS-TABLE,FUNGUS-NUMBER PRINT STACK ?CND14: PRINT PERIOD-CR RTRUE .FUNCT G-FUNGUS-F,STR,LEN EQUAL? PRSA,V?RESEARCH \FALSE RETURN EAR-FUNGUS .FUNCT BROGMOID-F EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL3 EQUAL? HERE,UNDER-THE-WORLD,HANGING-FROM-ROOTS \?CCL6 CALL2 DO-WALK,P?EAST RSTACK ?CCL6: EQUAL? HERE,SHOULDER \?CCL8 CALL2 DO-WALK,P?UP RSTACK ?CCL8: CALL2 DO-WALK,P?IN RSTACK ?CCL3: CALL2 TOUCHING?,BROGMOID ZERO? STACK /?CCL10 EQUAL? HERE,UNDER-THE-WORLD,HANGING-FROM-ROOTS \?CCL10 CALL2 CANT-REACH,BROGMOID RSTACK ?CCL10: EQUAL? PRSA,V?EXAMINE \?CCL14 EQUAL? HERE,ON-TOP-OF-THE-WORLD \?CCL17 PRINTR "Most of the brogmoid is lost in the mists which stretch above the world." ?CCL17: PRINTR "The brogmoid is fairly ordinary, other than the fact that it's about a zillion times as large as any brogmoid you've ever seen before." ?CCL14: EQUAL? PRSA,V?CLEAN \?CCL19 CALL NOUN-USED?,BROGMOID,W?EAR ZERO? STACK /?CCL19 ICALL PERFORM,V?CLEAN,EAR-FUNGUS RTRUE ?CCL19: EQUAL? PRSA,V?RESEARCH \FALSE CALL NOUN-USED?,BROGMOID,W?BROGMOID,W?BROGMOIDS ZERO? STACK /FALSE PRINTR """In rare cases, these squat creatures can achieve the intelligence levels of a three-year-old human. Domesticated brogmoids are tame and can even be taught to perform simple tasks. In the wild, they can be seen in huge packs sorting through rock piles for edible rocks. (See also BROGMOIDISM.)""" .ENDSEG .ENDI