.FUNCT SWORD-FCN EQUAL? PRSA,V?TAKE \FALSE EQUAL? WINNER,ADVENTURER \FALSE CALL QUEUE,I-SWORD,-1 PUT STACK,0,1 RFALSE .FUNCT I-SWORD,DEM,NG=0,G,P,TX,L CALL INT,I-SWORD >DEM SET 'G,SWORD-GLOW IN? SWORD,ADVENTURER \?ELS5 CALL INFESTED?,HERE ZERO? STACK /?ELS8 SET 'NG,2 JUMP ?CND6 ?ELS8: SET 'P,0 ?PRG11: NEXTP HERE,P >P ZERO? P \?ELS15 JUMP ?CND6 ?ELS15: LESS? P,LOW-DIRECTION /?PRG11 GETPT HERE,P >TX PTSIZE TX >L EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG11 GETB TX,0 CALL INFESTED?,STACK ZERO? STACK /?PRG11 SET 'NG,1 ?CND6: EQUAL? NG,G /FALSE EQUAL? NG,2 \?ELS28 PRINTI "Your sword has begun to glow very brightly." CRLF JUMP ?CND24 ?ELS28: EQUAL? NG,1 \?ELS32 PRINTI "Your sword is glowing with a faint blue glow." CRLF JUMP ?CND24 ?ELS32: ZERO? NG \?CND24 PRINTI "Your sword is no longer glowing." CRLF ?CND24: SET 'SWORD-GLOW,NG RTRUE ?ELS5: PUT DEM,C-ENABLED?,0 RFALSE .FUNCT INFESTED?,R,F FIRST? R >F /?KLU12 ?KLU12: ?PRG1: ZERO? F /FALSE FSET? F,ACTORBIT \?ELS7 FSET? F,INVISIBLE /?ELS7 EQUAL? F,ROBOT /?ELS7 RETURN F ?ELS7: NEXT? F >F /?PRG1 RFALSE .FUNCT CAROUSEL-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You are in a large circular room whose high ceiling is lost in gloom. Eight identical passages leave the room." CRLF ZERO? CAROUSEL-FLIP-FLAG \TRUE PRINTR "A loud whirring sound comes from all around, and you feel sort of disoriented in here." ?ELS5: ZERO? CAROUSEL-FLIP-FLAG \FALSE EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?WALK \FALSE EQUAL? PRSO,P?UP,P?DOWN /FALSE EQUAL? PRSO,P?OUT \?ELS22 PRINTI "Feeling dizzy, you pick a direction at random." CRLF CRLF SET 'PRSO,P?EAST JUMP ?CND20 ?ELS22: PRINTI "You're not sure which direction is which. This room is very disorienting." CRLF CRLF ?CND20: EQUAL? PRSO,P?WEST /?THN32 RANDOM 100 GRTR? 80,STACK \?CND29 ?THN32: RANDOM 7 SUB STACK,1 GET EIGHT-DIRECTIONS,STACK >PRSO ?CND29: CALL V-WALK RTRUE .FUNCT VIOLIN-FCN EQUAL? PRSA,V?PLAY \FALSE EQUAL? PRSO,VIOLIN \FALSE PRINTR "An amazingly offensive noise issues from the violin." .FUNCT OPEN-CLOSE,OBJ,STROPN,STRCLS EQUAL? PRSA,V?OPEN \?ELS5 FSET? OBJ,OPENBIT \?ELS8 CALL RANDOM-ELEMENT,DUMMY PRINT STACK JUMP ?CND6 ?ELS8: PRINT STROPN FSET OBJ,OPENBIT ?CND6: CRLF RTRUE ?ELS5: EQUAL? PRSA,V?CLOSE \FALSE FSET? OBJ,OPENBIT \?ELS19 PRINT STRCLS FCLEAR OBJ,OPENBIT JUMP ?CND17 ?ELS19: CALL RANDOM-ELEMENT,DUMMY PRINT STACK CRLF ?CND17: CRLF RTRUE .FUNCT BALLOON-FCN,RARG=0,M,R,RC EQUAL? RARG,M-LOOK \?ELS5 ZERO? BINF-FLAG /?ELS8 PRINTI "The cloth bag is inflated and " FSET? RECEPTACLE,OPENBIT \?ELS14 PRINTI "there is a " PRINTD BINF-FLAG PRINTI " burning in the receptacle." JUMP ?CND6 ?ELS14: PRINTI "some smoke is leaking out of the closed receptacle." JUMP ?CND6 ?ELS8: PRINTI "The cloth bag is draped over the side of the basket. Directly in the middle of the basket is a metal receptacle which is " FSET? RECEPTACLE,OPENBIT \?ELS27 PRINTI "open" FIRST? RECEPTACLE >RC /?KLU148 ?KLU148: ZERO? RC /?CND25 PRINTI ". A " PRINTD RC PRINTI " is " EQUAL? BINF-FLAG,RC \?ELS40 PUSH STR?204 JUMP ?CND36 ?ELS40: PUSH STR?205 ?CND36: PRINT STACK PRINTI " inside" JUMP ?CND25 ?ELS27: PRINTI "closed" ?CND25: PRINTI "." ?CND6: ZERO? BTIE-FLAG /?ELS51 PRINTR " The balloon is tied to a hook by the braided wire." ?ELS51: PRINTR " A braided wire is dangling over the side of the basket." ?ELS5: EQUAL? RARG,M-OBJDESC \?ELS60 PRINTI "There is a large and extremely heavy wicker basket here. An enormous cloth bag " ZERO? BINF-FLAG /?ELS65 PRINTI "attached to the basket is inflated. A metal receptacle is fastened to the center of the basket. " FSET? RECEPTACLE,OPENBIT \?ELS71 PRINTI "In it is a burning " PRINTD BINF-FLAG JUMP ?CND63 ?ELS71: PRINTI "Some smoke leaks out around its closed lid" JUMP ?CND63 ?ELS65: PRINTI "is draped over the side and is firmly attached to the basket. A metal receptacle is fastened to the center of the basket" ?CND63: ZERO? BTIE-FLAG /?ELS86 PRINTR ". A piece of wire tied to a hook holds the balloon in place." ?ELS86: PRINTR ". Dangling from the basket is a piece of braided wire." ?ELS60: EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?WALK \?ELS100 GETPT HERE,PRSO >M ZERO? M /?ELS105 ZERO? BTIE-FLAG /?ELS110 PRINTR "You are tied to the ledge." ?ELS110: PTSIZE M EQUAL? STACK,1 \?ELS117 GETB M,0 >R FSET? R,RMUNGBIT /?ELS117 SET 'BLOC,R ?ELS117: CALL QUEUE,I-BALLOON,3 PUT STACK,0,1 RFALSE ?ELS105: PRINTR "You can't control the balloon this way." ?ELS100: EQUAL? PRSA,V?OPEN \?ELS123 ZERO? BINF-FLAG /?ELS123 EQUAL? PRSO,RECEPTACLE \?ELS123 FIRST? RECEPTACLE \?ELS123 PRINTI "Opening it reveals a burning " PRINTD BINF-FLAG PRINTI "." CRLF FSET RECEPTACLE,OPENBIT RTRUE ?ELS123: EQUAL? PRSA,V?TAKE \?ELS129 EQUAL? BINF-FLAG,PRSO \?ELS129 PRINTI "You don't really want to hold a burning " PRINTD PRSO PRINTR "." ?ELS129: EQUAL? PRSA,V?PUT \?ELS135 EQUAL? PRSI,RECEPTACLE \?ELS135 FIRST? RECEPTACLE \?ELS135 PRINTR "The receptacle is already occupied." ?ELS135: EQUAL? PRSA,V?PUT \?ELS141 EQUAL? PRSI,RECEPTACLE \?ELS141 FSET PRSO,NDESCBIT RFALSE ?ELS141: EQUAL? PRSA,V?INFLATE \FALSE PRINTR "It takes more than words to inflate a balloon." .FUNCT I-BALLOON FSET? RECEPTACLE,OPENBIT \?ELS5 ZERO? BINF-FLAG /?ELS5 CALL RISE-AND-SHINE RSTACK ?ELS5: EQUAL? HERE,LEDGE-1,LEDGE-2 \?ELS9 CALL RISE-AND-SHINE RSTACK ?ELS9: CALL DECLINE-AND-FALL RSTACK .FUNCT BALLOON-BURN PRINTI "The " PRINTD PRSO PRINTI " burns inside the receptacle." CRLF GETP PRSO,P?SIZE MUL STACK,20 CALL QUEUE,I-BURNUP,STACK PUT STACK,0,1 FSET PRSO,FLAMEBIT FSET PRSO,ONBIT FCLEAR PRSO,TAKEBIT FCLEAR PRSO,READBIT ZERO? BINF-FLAG \TRUE PRINTI "The cloth bag inflates as it fills with hot air." CRLF ZERO? BLAB-FLAG \?CND13 PRINTI "A small label drops from the bag into the basket." CRLF MOVE BALLOON-LABEL,BALLOON ?CND13: SET 'BLAB-FLAG,TRUE-VALUE SET 'BINF-FLAG,PRSO CALL QUEUE,I-BALLOON,3 PUT STACK,0,1 RTRUE .FUNCT PUT-BALLOON,THERE,STR EQUAL? HERE,LEDGE-1,LEDGE-2,VOLCANO-BOTTOM \?CND1 PRINTI "You watch as the balloon slowly " PRINT STR CRLF ?CND1: MOVE BALLOON,THERE SET 'BLOC,THERE RETURN BLOC .FUNCT RISE-AND-SHINE,IN,R IN? WINNER,BALLOON /?PRD1 PUSH 0 JUMP ?PRD2 ?PRD1: PUSH 1 ?PRD2: SET 'IN,STACK CALL QUEUE,I-BALLOON,3 PUT STACK,0,1 EQUAL? BLOC,VAIR-4 \?ELS7 CALL INT,I-BURNUP PUT STACK,0,0 CALL INT,I-BALLOON PUT STACK,0,0 REMOVE BALLOON ZERO? IN /?ELS10 CALL JIGS-UP,STR?206 JUMP ?CND8 ?ELS10: EQUAL? HERE,LEDGE-1,LEDGE-2,VOLCANO-BOTTOM \?CND8 PRINTI "You watch the balloon drift out over the rim and away on the wind." CRLF ?CND8: SET 'BLOC,VOLCANO-BOTTOM RETURN BLOC ?ELS7: CALL LKP,BLOC,BALLOON-UPS >R ZERO? R /?ELS17 ZERO? IN /?ELS22 PRINTI "The balloon ascends." CRLF CRLF SET 'BLOC,R CALL GOTO,R RSTACK ?ELS22: CALL PUT-BALLOON,R,STR?207 RSTACK ?ELS17: CALL LKP,BLOC,BALLOON-FLOATS >R ZERO? R /?ELS29 ZERO? IN /?ELS34 PRINTI "The balloon leaves the ledge." CRLF CRLF SET 'BLOC,R CALL GOTO,R RSTACK ?ELS34: CALL QUEUE,I-GNOME,10 PUT STACK,0,1 CALL PUT-BALLOON,R,STR?208 FSET RECEPTACLE,OPENBIT RTRUE ?ELS29: ZERO? IN /?ELS41 SET 'BLOC,VAIR-1 PRINTI "The balloon rises slowly from the ground." CRLF CRLF CALL GOTO,VAIR-1 RSTACK ?ELS41: CALL PUT-BALLOON,VAIR-1,STR?209 RSTACK .FUNCT DECLINE-AND-FALL,IN,R IN? WINNER,BALLOON /?PRD1 PUSH 0 JUMP ?PRD2 ?PRD1: PUSH 1 ?PRD2: SET 'IN,STACK CALL QUEUE,I-BALLOON,3 PUT STACK,0,1 EQUAL? BLOC,VAIR-1 \?ELS7 ZERO? IN /?ELS12 SET 'BLOC,VOLCANO-BOTTOM ZERO? BINF-FLAG /?ELS18 PRINTI "The balloon has landed." CRLF CRLF CALL GOTO,VOLCANO-BOTTOM RSTACK ?ELS18: REMOVE BALLOON MOVE DEAD-BALLOON,BLOC MOVE WINNER,HERE CALL INT,I-BALLOON PUT STACK,0,0 PRINTI "You have landed, but the balloon did not survive." CRLF CRLF CALL GOTO,VOLCANO-BOTTOM RSTACK ?ELS12: CALL PUT-BALLOON,VOLCANO-BOTTOM,STR?210 RSTACK ?ELS7: CALL LKP,BLOC,BALLOON-DOWNS >R ZERO? R /FALSE ZERO? IN /?ELS34 PRINTI "The balloon descends." CRLF CRLF SET 'BLOC,R CALL GOTO,R RSTACK ?ELS34: CALL PUT-BALLOON,R,STR?211 RSTACK .FUNCT BCONTENTS EQUAL? PRSA,V?TAKE \?ELS5 PRINTI "The " PRINTD PRSO PRINTI " is an integral part of the basket and cannot be removed." EQUAL? PRSO,BRAIDED-WIRE \?CND8 PRINTI " The wire might possibly be tied, though." ?CND8: CRLF RTRUE ?ELS5: EQUAL? PRSO,CLOTH-BAG \?ELS14 EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE \?ELS14 EQUAL? PRSA,V?OPEN \?ELS21 PRINTR "The bag is enormous. The concept of opening it here is ludicrous." ?ELS21: PRINTR "It doesn't appear that there's anything inside." ?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS29 EQUAL? PRSO,RECEPTACLE \?ELS29 PRINTI "The receptacle is " FSET? PRSO,OPENBIT \?ELS38 PRINTR "open." ?ELS38: PRINTR "closed." ?ELS29: EQUAL? PRSA,V?EXAMINE,V?FIND \FALSE PRINTI "The " PRINTD PRSO PRINTR " is part of the basket. It may be manipulated within the basket but cannot be removed." .FUNCT WIRE-FCN EQUAL? PRSA,V?EXAMINE,V?FIND,V?TAKE \?ELS5 CALL BCONTENTS RSTACK ?ELS5: EQUAL? PRSA,V?TIE \?ELS7 EQUAL? PRSO,BRAIDED-WIRE \FALSE EQUAL? PRSI,HOOK-1,HOOK-2 \FALSE SET 'BTIE-FLAG,PRSI FSET PRSI,NDESCBIT CALL INT,I-BALLOON PUT STACK,0,0 PRINTR "The balloon is fastened to the hook." ?ELS7: EQUAL? PRSA,V?UNTIE \FALSE EQUAL? PRSO,BRAIDED-WIRE \FALSE ZERO? BTIE-FLAG /?ELS25 CALL QUEUE,I-BALLOON,3 PUT STACK,0,1 FCLEAR BTIE-FLAG,NDESCBIT SET 'BTIE-FLAG,FALSE-VALUE PRINTR "The wire falls off of the hook." ?ELS25: PRINTR "The wire is not tied to anything." .FUNCT I-BURNUP,OBJ FIRST? RECEPTACLE >OBJ /?KLU6 ?KLU6: EQUAL? HERE,BLOC \?CND1 PRINTI "The " PRINTD OBJ PRINTI " has now burned out, and the cloth bag starts to deflate." CRLF ?CND1: REMOVE OBJ SET 'BINF-FLAG,FALSE-VALUE RTRUE .FUNCT SAFE-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You are in a dusty old room which is featureless, except for an exit on the north side." CRLF ZERO? SAFE-FLAG \?ELS12 PRINTR "Imbedded in the far wall is a rusty box. It appears to be somewhat damaged, since an oblong hole has been chipped out of the front of it." ?ELS12: PRINTR "On the far wall is a rusty box, whose door has been blown off." .FUNCT SAFE-FCN EQUAL? PRSA,V?TAKE \?ELS5 EQUAL? PRSO,SAFE \?ELS5 PRINTR "The box is imbedded in the wall." ?ELS5: EQUAL? PRSA,V?OPEN \?ELS11 ZERO? SAFE-FLAG /?ELS16 PRINTR "The box has no door!" ?ELS16: PRINTR "The box is rusted and will not open." ?ELS11: EQUAL? PRSA,V?CLOSE \FALSE ZERO? SAFE-FLAG /?ELS30 PRINTR "The box has no door!" ?ELS30: PRINTR "The box isn't open!" .FUNCT BRICK-FCN EQUAL? PRSA,V?BURN \FALSE REMOVE BRICK CALL JIGS-UP,OTHER-PROPERTIES RSTACK .FUNCT FUSE-FCN EQUAL? PRSA,V?BURN /?THN6 EQUAL? PRSA,V?LAMP-ON \FALSE IN? MATCH,WINNER \FALSE FSET? MATCH,ONBIT \FALSE ?THN6: PRINTI "The string starts to burn." CRLF CALL QUEUE,I-FUSE,2 PUT STACK,0,1 RTRUE .FUNCT I-FUSE,BRICK-ROOM,F LOC BRICK >BRICK-ROOM IN? FUSE,BRICK \?ELS3 ?PRG4: ZERO? BRICK-ROOM /FALSE IN? BRICK-ROOM,ROOMS \?ELS10 JUMP ?REP5 ?ELS10: LOC BRICK-ROOM >BRICK-ROOM JUMP ?PRG4 ?REP5: MOVE EXPLOSION,BRICK-ROOM FCLEAR BRICK-ROOM,TOUCHBIT EQUAL? BRICK-ROOM,HERE \?ELS15 CALL MUNG-ROOM,BRICK-ROOM,STR?213 CALL JIGS-UP,OTHER-PROPERTIES JUMP ?CND13 ?ELS15: EQUAL? BRICK-ROOM,SAFE-ROOM \?ELS17 CALL QUEUE,I-SAFE,5 PUT STACK,0,1 SET 'MUNGED-ROOM,SAFE-ROOM PRINTI "There is an explosion nearby." CRLF IN? BRICK,SLOT \?CND13 FSET SLOT,INVISIBLE FSET SAFE,OPENBIT FCLEAR SAFE-ROOM,TOUCHBIT SET 'SAFE-FLAG,TRUE-VALUE JUMP ?CND13 ?ELS17: PRINTI "There is an explosion nearby." CRLF CALL QUEUE,I-SAFE,5 PUT STACK,0,1 SET 'MUNGED-ROOM,BRICK-ROOM FIRST? BRICK-ROOM >F \?CND13 ?PRG30: FSET? F,TAKEBIT \?CND32 FSET F,INVISIBLE ?CND32: NEXT? F >F /?PRG30 ?CND13: REMOVE BRICK JUMP ?CND1 ?ELS3: LOC FUSE EQUAL? STACK,WINNER,HERE \?CND1 PRINTI "The string rapidly burns into nothingness." CRLF ?CND1: REMOVE FUSE RTRUE .FUNCT I-SAFE EQUAL? HERE,MUNGED-ROOM \?ELS3 CALL JIGS-UP,STR?214 JUMP ?CND1 ?ELS3: ZERO? DEAD \?CND1 PRINTI "You may recall that recent explosion. Probably as a result of it, you hear an ominous rumbling, as if a nearby room had collapsed." CRLF EQUAL? MUNGED-ROOM,SAFE-ROOM \?CND1 CALL QUEUE,I-LEDGE,8 PUT STACK,0,1 ?CND1: CALL MUNG-ROOM,MUNGED-ROOM,STR?213 RSTACK .FUNCT I-LEDGE,RM=LEDGE-2 EQUAL? HERE,LEDGE-2 \?ELS3 IN? WINNER,BALLOON \?ELS6 ZERO? BTIE-FLAG /?ELS9 SET 'BLOC,VOLCANO-BOTTOM REMOVE BALLOON MOVE DEAD-BALLOON,VOLCANO-BOTTOM SET 'BTIE-FLAG,FALSE-VALUE SET 'BINF-FLAG,FALSE-VALUE CALL INT,I-BALLOON PUT STACK,0,0 CALL INT,I-BURNUP PUT STACK,0,0 CALL JIGS-UP,STR?215 JUMP ?CND1 ?ELS9: PRINTI "The ledge collapses, leaving you with no place to land." CRLF JUMP ?CND1 ?ELS6: CALL JIGS-UP,STR?216 JUMP ?CND1 ?ELS3: ZERO? DEAD \?CND1 PRINTI "The ledge collapses. (That was a narrow escape!)" CRLF ?CND1: CALL MUNG-ROOM,RM,STR?217 RSTACK .FUNCT LEDGE-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You are on a wide ledge high in the volcano. The rim of the volcano is about 200 feet above and there is a precipitous drop to the bottom." FSET? SAFE-ROOM,RMUNGBIT \?ELS12 PRINTR " The way to the south is blocked by rubble." ?ELS12: PRINTR " There is a small door to the south." .FUNCT I-GNOME EQUAL? HERE,LEDGE-1,LEDGE-2 \?ELS5 PRINTI "A volcano gnome seems to walk straight out of the wall and " IN? WAND,WINNER \?ELS12 PRINTR "noticing the wand, straight back in." ?ELS12: PRINTI "says ""I have a busy appointment schedule and little time to waste on trespassers, but for a small fee I'll show you the way out."" You notice the gnome nervously glancing at his watch." CRLF MOVE GNOME,HERE RTRUE ?ELS5: CALL QUEUE,I-GNOME,1 PUT STACK,0,1 RFALSE .FUNCT GNOME-FCN EQUAL? PRSA,V?TELL \?ELS5 SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE ZERO? GNOME-FLAG \?CND6 CALL QUEUE,I-NERVOUS,5 PUT STACK,0,1 ?CND6: SET 'GNOME-FLAG,TRUE-VALUE PRINTR "The gnome appears increasingly nervous." ?ELS5: EQUAL? PRSA,V?THROW,V?GIVE \?ELS12 EQUAL? PRSI,GNOME \?ELS12 GETPT PRSO,P?VALUE ZERO? STACK /?ELS19 PRINTI """Thank you very much for the " PRINTD PRSO PRINTI ". I don't believe I've ever seen one as beautiful. Follow me,"" he says, and a door appears on the west end of the ledge. Through the door, you can see a narrow chimney sloping steeply downward. The gnome moves quickly, and disappears from sight." CRLF REMOVE PRSO REMOVE GNOME SET 'GNOME-DOOR-FLAG,TRUE-VALUE RETURN GNOME-DOOR-FLAG ?ELS19: CALL BOMB?,PRSO ZERO? STACK /?ELS23 MOVE BRICK,HERE REMOVE GNOME CALL INT,I-GNOME PUT STACK,0,0 CALL INT,I-NERVOUS PUT STACK,0,0 PRINTR """That certainly wasn't what I had in mind,"" he says, and disappears." ?ELS23: CALL REMOVE-CAREFULLY,PRSO PRINTI """That wasn't quite what I had in mind,"" he says, crunching the " PRINTD PRSO PRINTR " in his rock-hard hands." ?ELS12: PRINTI "The gnome appears increasingly nervous." CRLF ZERO? GNOME-FLAG \?CND34 CALL QUEUE,I-NERVOUS,5 PUT STACK,0,1 ?CND34: SET 'GNOME-FLAG,TRUE-VALUE RETURN GNOME-FLAG .FUNCT I-NERVOUS IN? GNOME,HERE \?CND1 PRINTI "The gnome glances at his watch. ""Oops. I'm late for an appointment!"" He disappears, leaving you alone on the ledge." CRLF ?CND1: REMOVE GNOME RTRUE .FUNCT PURPLE-BOOK-FCN EQUAL? PRSA,V?READ \?ELS5 IN? STAMP,PURPLE-BOOK \?ELS5 FSET? PURPLE-BOOK,OPENBIT /?ELS5 GETP PURPLE-BOOK,P?TEXT PRINT STACK CRLF CALL PERFORM,V?OPEN,PURPLE-BOOK RTRUE ?ELS5: CALL RANDOM-BOOK RSTACK .FUNCT RANDOM-BOOK EQUAL? PRSA,V?PUT,V?MOVE,V?TAKE \FALSE FSET WHITE-BOOK,TOUCHBIT FSET PURPLE-BOOK,TOUCHBIT FSET GREEN-BOOK,TOUCHBIT FSET BLUE-BOOK,TOUCHBIT RFALSE .FUNCT HEAD-FCN EQUAL? PRSA,V?HELLO \?ELS5 PRINTR "The Flatheads are dead; therefore they do not respond." ?ELS5: EQUAL? PRSA,V?RUB,V?ATTACK,V?KICK /?THN10 EQUAL? PRSA,V?BURN,V?TAKE,V?OPEN \FALSE ?THN10: CALL JIGS-UP,STR?218 RSTACK .FUNCT CRYPT-ANTEROOM-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "The anteroom is large and empty. Marble bas reliefs depict the stirring times and afterlife of the Flatheads (the latter a bit optimistically). The exit is to the west. A huge marble door stands to the south. " PRINTI "The door is " FSET? CRYPT-DOOR,OPENBIT \?ELS12 PRINTI "open." JUMP ?CND10 ?ELS12: PRINTI "closed." ?CND10: PRINTR " Above the door is the cryptic inscription: ""Feel Free""." .FUNCT CRYPT-ROOM-FCN,RARG,CLIT? EQUAL? RARG,M-LOOK \?ELS5 FCLEAR HERE,ONBIT CALL LIT?,HERE ZERO? STACK /?ELS8 PRINTI "The room contains the earthly remains of the mighty Flatheads, twelve somewhat flat heads mounted securely on poles. While the room might be expected to contain funerary urns or other evidence of the ritual practices of the ancient Zorkers, it is empty of all such objects. There is writing carved on the crypt. The only apparent exit is to the north through the door to the anteroom. The door is " FSET? CRYPT-DOOR,OPENBIT \?ELS13 PRINTI "open." JUMP ?CND11 ?ELS13: PRINTI "closed." ?CND11: CRLF FSET? DIM-DOOR,INVISIBLE /?CND6 PRINTI "Looking closely at the south wall, you can see the dim outline of a secret door labelled with the letter ""F""." CRLF JUMP ?CND6 ?ELS8: CALL DIM-DOOR-APPEARS ?CND6: FSET HERE,ONBIT RTRUE ?ELS5: EQUAL? RARG,M-END \FALSE SET 'CLIT?,CRYPT-LIT? FCLEAR CRYPT-ROOM,ONBIT CALL LIT?,CRYPT-ROOM >CRYPT-LIT? ZERO? CLIT? /?CND29 ZERO? CRYPT-LIT? \?CND29 CALL DIM-DOOR-APPEARS ?CND29: FSET CRYPT-ROOM,ONBIT RTRUE .FUNCT DIM-DOOR-APPEARS PRINTI "It is dark, but on the south wall is a faint outline of a rectangle, as though light were shining around a doorway. You can also make out a faintly glowing letter in the center of this area. It might be an ""F""." CRLF FCLEAR DIM-DOOR,INVISIBLE RTRUE .FUNCT CRYPT-OBJECT EQUAL? PRSA,V?OPEN \?ELS5 PRINTR "The crypt is sealed for all time." ?ELS5: EQUAL? PRSA,V?RUB \FALSE PRINTR "The marble is cool." .FUNCT CRYPT-DOOR-FCN EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE CALL OPEN-CLOSE,PRSO,STR?219,STR?220 RSTACK .FUNCT TOMB-PSEUDO EQUAL? PRSA,V?THROUGH \FALSE CALL DO-WALK,P?EAST RTRUE .FUNCT DIM-DOOR-FCN EQUAL? PRSA,V?KNOCK \?ELS5 PRINTR "A hollow echo responds." ?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE EQUAL? PRSA,V?OPEN \?ELS12 SET 'DIM-DOOR-FLAG,TRUE-VALUE JUMP ?CND10 ?ELS12: SET 'DIM-DOOR-FLAG,FALSE-VALUE ?CND10: CALL OPEN-CLOSE,PRSO,STR?221,STR?222 RSTACK .FUNCT REPELLENT-FCN EQUAL? PRSA,V?SHAKE \?ELS5 ZERO? SPRAY-USED? /?ELS10 PRINTR "The can seems empty." ?ELS10: PRINTR "There is a sloshing sound from inside." ?ELS5: EQUAL? PRSA,V?PUT,V?SPRAY \FALSE EQUAL? PRSO,REPELLENT \FALSE ZERO? SPRAY-USED? /?ELS26 PRINTR "The repellent is all gone." ?ELS26: ZERO? PRSI \?ELS31 SET 'SPRAY-USED?,TRUE-VALUE PRINTR "The spray stinks amazingly for a few moments, then drifts away." ?ELS31: EQUAL? PRSI,ME \?CND36 CALL QUEUE,I-SPRAY,8 PUT STACK,0,1 SET 'SPRAYED?,TRUE-VALUE ?CND36: SET 'SPRAY-USED?,TRUE-VALUE PRINTR "The spray smells like a mixture of old socks and burning rubber. If I were a grue I'd sure stay clear!" .FUNCT I-SPRAY SET 'SPRAYED?,FALSE-VALUE PRINTR "That horrible smell is much less pungent now." .FUNCT ZORK3-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "Beyond the door is a roughly hewn staircase leading down into darkness. The landing on which you stand is covered with carefully drawn magical runes like those sketched upon the workbench of the Wizard of Frobozz. These have been overlaid with sweeping green lines of enormous power, which undulate back and forth across the landing. " IN? WAND,WINNER \?ELS12 PRINTI "The wand begins to vibrate in harmony with the motion of the lines. You feel yourself compelled downward, and you yield, stepping onto the staircase. As you pass the green lines, they flare and disappear with a burst of light, and you tumble down the staircase! At the bottom, a vast red-lit hall stretches off into the distance. Sinister statues guard the entrance to a dimly visible room far ahead. With courage and cunning you have conquered the Wizard of Frobozz and become the master of his domain, but the final challenge awaits! (The ultimate adventure concludes in ""Zork III: The Dungeon Master"".) " CRLF SET 'WON-FLAG,TRUE-VALUE CALL FINISH RSTACK ?ELS12: CALL JIGS-UP,STR?223 RSTACK .FUNCT I-BUCKET IN? WATER,BUCKET \FALSE SET 'EVAPORATED,TRUE-VALUE REMOVE WATER RFALSE .FUNCT WATER-FCN,AV,W,PI? EQUAL? PRSA,V?SGIVE /FALSE EQUAL? PRSA,V?THROUGH \?ELS5 CALL PERFORM,V?SWIM,PRSO RTRUE ?ELS5: EQUAL? PRSA,V?FILL \?ELS7 SET 'W,PRSI SET 'PRSA,V?PUT SET 'PRSI,PRSO SET 'PRSO,W SET 'PI?,FALSE-VALUE JUMP ?CND1 ?ELS7: EQUAL? PRSO,GLOBAL-WATER,WATER \?ELS9 SET 'W,PRSO SET 'PI?,FALSE-VALUE JUMP ?CND1 ?ELS9: ZERO? PRSI /?CND1 SET 'W,PRSI SET 'PI?,TRUE-VALUE ?CND1: EQUAL? W,GLOBAL-WATER \?CND13 SET 'W,WATER EQUAL? PRSA,V?PUT,V?TAKE \?CND13 REMOVE W ?CND13: ZERO? PI? /?ELS21 SET 'PRSI,W JUMP ?CND19 ?ELS21: SET 'PRSO,W ?CND19: LOC WINNER >AV FSET? AV,VEHBIT /?CND25 SET 'AV,FALSE-VALUE ?CND25: EQUAL? PRSA,V?PUT,V?TAKE \?ELS32 ZERO? PI? \?ELS32 ZERO? AV /?ELS39 EQUAL? AV,PRSI \?ELS39 CALL PUDDLE,AV RSTACK ?ELS39: ZERO? AV /?ELS43 ZERO? PRSI \?ELS43 IN? W,AV /?ELS43 CALL PUDDLE,AV RSTACK ?ELS43: ZERO? PRSI /?ELS47 EQUAL? PRSI,TEAPOT /?ELS47 PRINTI "The water leaks out of the " PRINTD PRSI PRINTI " and evaporates immediately." CRLF REMOVE W RTRUE ?ELS47: IN? TEAPOT,WINNER \?ELS53 FIRST? TEAPOT /?ELS58 EQUAL? HERE,POOL-ROOM \?ELS61 MOVE SALTY-WATER,TEAPOT JUMP ?CND59 ?ELS61: MOVE WATER,TEAPOT ?CND59: PRINTR "The teapot is now full of water." ?ELS58: PRINTR "The teapot isn't currently empty." ?ELS53: IN? PRSO,TEAPOT \?ELS71 EQUAL? PRSA,V?TAKE \?ELS71 ZERO? PRSI \?ELS71 SET 'PRSO,TEAPOT CALL ITAKE SET 'PRSO,W RETURN PRSO ?ELS71: PRINTR "The water slips through your fingers." ?ELS32: ZERO? PI? /?ELS79 PRINTR "Nice try." ?ELS79: EQUAL? PRSA,V?GIVE,V?DROP \?ELS84 EQUAL? PRSO,WATER \?CND85 CALL HELD?,WATER ZERO? STACK \?CND85 PRINTR "You don't have any water." ?CND85: REMOVE WATER ZERO? AV /?ELS96 CALL PUDDLE,AV RSTACK ?ELS96: PRINTI "The water spills to the floor and evaporates." CRLF REMOVE WATER RTRUE ?ELS84: EQUAL? PRSA,V?THROW \FALSE PRINTI "The water splashes on the walls and evaporates." CRLF REMOVE WATER RTRUE .FUNCT PUDDLE,AV PRINTI "There is now a puddle in the bottom of the " PRINTD AV PRINTI "." CRLF MOVE PRSO,AV RTRUE .FUNCT BUCKET-FCN,RARG=M-BEG EQUAL? RARG,M-BEG \?ELS5 EQUAL? PRSA,V?BURN \?ELS10 EQUAL? PRSO,BUCKET \?ELS10 PRINTR "The bucket is fireproof, and won't burn." ?ELS10: EQUAL? PRSA,V?PUT,V?DROP \?ELS16 EQUAL? PRSO,WATER \?ELS16 EQUAL? PRSI,BUCKET \?ELS16 IN? BUCKET,WELL-BOTTOM \?ELS16 IN? WINNER,BUCKET /?ELS16 PRINTI "The bucket swiftly rises up, and is gone." CRLF MOVE BUCKET,WELL-TOP MOVE WATER,BUCKET SET 'BUCKET-TOP-FLAG,TRUE-VALUE CALL QUEUE,I-BUCKET,100 PUT STACK,0,1 RTRUE ?ELS16: EQUAL? PRSA,V?KICK \FALSE CALL JIGS-UP,STR?224 RSTACK ?ELS5: EQUAL? RARG,M-END \?ELS24 IN? WATER,BUCKET \?ELS29 ZERO? BUCKET-TOP-FLAG \?ELS29 PRINTI "The bucket rises and comes to a stop." CRLF CRLF SET 'BUCKET-TOP-FLAG,TRUE-VALUE SET 'EVAPORATED,FALSE-VALUE CALL PASS-THE-BUCKET,WELL-TOP CALL QUEUE,I-BUCKET,100 PUT STACK,0,1 RTRUE ?ELS29: ZERO? BUCKET-TOP-FLAG /FALSE IN? WATER,BUCKET /FALSE ZERO? EVAPORATED /?ELS40 PRINTI "The last of the water evaporates, and the bucket descends." CRLF CRLF JUMP ?CND38 ?ELS40: PRINTI "The bucket descends and comes to a stop." CRLF CRLF ?CND38: SET 'BUCKET-TOP-FLAG,FALSE-VALUE CALL PASS-THE-BUCKET,WELL-BOTTOM RSTACK ?ELS24: EQUAL? PRSA,V?CLIMB-ON \FALSE CALL PERFORM,V?BOARD,PRSO RTRUE .FUNCT PASS-THE-BUCKET,R MOVE BUCKET,R IN? WINNER,BUCKET \FALSE CALL GOTO,R RSTACK .FUNCT POSTS-ROOM-FCN,RARG EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?TAKE \FALSE FSET? PRSO,NONLANDBIT \FALSE PRINTI "The " PRINTD PRSO PRINTR " is now much larger than you are. You have no hope of taking it." .FUNCT EATME-FCN,F,N EQUAL? PRSA,V?EAT \?ELS5 EQUAL? PRSO,EAT-ME-CAKE \?ELS5 EQUAL? HERE,TEA-ROOM \?ELS5 PRINTI "Suddenly, the room appears to have become very large (although everything you are carrying seems to be its normal size)." CRLF CRLF REMOVE EAT-ME-CAKE FSET ROBOT,INVISIBLE FSET ALICE-TABLE,INVISIBLE FIRST? HERE >F /?KLU24 ?KLU24: ?PRG10: ZERO? F \?ELS14 JUMP ?REP11 ?ELS14: NEXT? F >N /?KLU25 ?KLU25: EQUAL? F,ADVENTURER /?CND12 FSET? F,TAKEBIT \?CND12 FSET F,NONLANDBIT FSET F,TRYTAKEBIT MOVE F,POSTS-ROOM ?CND12: SET 'F,N JUMP ?PRG10 ?REP11: CALL GOTO,POSTS-ROOM RSTACK ?ELS5: CALL CAKE-CRUMBLE RSTACK .FUNCT CAKE-CRUMBLE,CAKE FSET? PRSO,FOODBIT \?ELS3 SET 'CAKE,PRSO JUMP ?CND1 ?ELS3: SET 'CAKE,PRSI ?CND1: EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM /FALSE EQUAL? HERE,MACHINE-ROOM,MAGNET-ROOM,CAGE-ROOM /FALSE EQUAL? HERE,WELL-TOP,IN-CAGE /FALSE REMOVE CAKE PRINTI "The " PRINTD CAKE PRINTR " has crumbled to dust." .FUNCT CAKE-FCN,F,N EQUAL? PRSA,V?READ \?ELS5 FSET? PRSO,NONLANDBIT \?ELS10 PRINTR "The cake is much too tall now for you to read the lettering." ?ELS10: ZERO? PRSI /?ELS14 EQUAL? PRSI,PALANTIR-1,PALANTIR-2,PALANTIR-3 \?ELS20 CALL PERFORM,V?LOOK-INSIDE,PRSI RSTACK ?ELS20: EQUAL? PRSI,FLASK \?ELS22 PRINTI "The letters, now visible, say """ EQUAL? PRSO,RED-ICING \?ELS27 PRINTI "Evaporate" JUMP ?CND25 ?ELS27: EQUAL? PRSO,ORANGE-ICING \?ELS31 PRINTI "Explode" JUMP ?CND25 ?ELS31: PRINTI "Enlarge" ?CND25: PRINTR """." ?ELS22: PRINTR "You can't see through that!" ?ELS14: PRINTR "The first letter is a capital E. The rest is too small to read." ?ELS5: EQUAL? PRSA,V?EAT \?ELS49 EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM \?ELS49 EQUAL? PRSO,ORANGE-ICING \?ELS56 REMOVE PRSO CALL ICEBOOM RSTACK ?ELS56: EQUAL? PRSO,RED-ICING \?ELS58 REMOVE PRSO CALL JIGS-UP,STR?225 RSTACK ?ELS58: EQUAL? PRSO,BLUE-ICING \FALSE REMOVE PRSO PRINTI "The room around you seems to be getting smaller." CRLF CRLF EQUAL? HERE,POSTS-ROOM \?ELS67 FCLEAR ROBOT,INVISIBLE FCLEAR ALICE-TABLE,INVISIBLE FSET POSTS,INVISIBLE FIRST? HERE >F /?KLU99 ?KLU99: ?PRG68: ZERO? F \?ELS72 JUMP ?REP69 ?ELS72: NEXT? F >N /?KLU100 ?KLU100: EQUAL? F,ADVENTURER /?CND70 FSET? F,TAKEBIT \?CND70 FCLEAR F,NONLANDBIT FCLEAR F,TRYTAKEBIT MOVE F,TEA-ROOM ?CND70: SET 'F,N JUMP ?PRG68 ?REP69: CALL GOTO,TEA-ROOM RSTACK ?ELS67: CALL JIGS-UP,STR?226 RSTACK ?ELS49: EQUAL? PRSA,V?PUT,V?THROW \?ELS83 EQUAL? PRSO,ORANGE-ICING \?ELS83 EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM \?ELS83 REMOVE PRSO CALL ICEBOOM RSTACK ?ELS83: EQUAL? PRSA,V?PUT,V?THROW \?ELS87 EQUAL? PRSO,RED-ICING,BLUE-ICING,ORANGE-ICING \?ELS87 EQUAL? PRSI,POOL \?ELS87 EQUAL? PRSO,BLUE-ICING,ORANGE-ICING \?CND90 PRINTI "The cake sinks majestically into the pool." CRLF REMOVE PRSO RTRUE ?CND90: MOVE PRSO,HERE REMOVE PRSI PRINTI "Most of the pool evaporates, revealing a (slightly damp but still valuable) package of rare candies. The red cake must be pretty strong stuff, since it remains intact!" CRLF FCLEAR CANDY,INVISIBLE RTRUE ?ELS87: CALL CAKE-CRUMBLE RSTACK .FUNCT CANDY-FCN EQUAL? PRSA,V?READ,V?EXAMINE \?ELS5 CALL FIXED-FONT-ON PRINTI " Frobozz Magic Candy Company >>Special Assortment<< Candied Grasshoppers Chocolated Ants Worms Glacee (By Appointment to His Majesty, Dimwit I) " CALL FIXED-FONT-OFF RTRUE ?ELS5: EQUAL? PRSA,V?OPEN,V?EAT \FALSE PRINTR "Such rich food would probably not be good for you." .FUNCT TOP-ETCHINGS-F EQUAL? PRSA,V?READ,V?EXAMINE \FALSE CALL FIXED-FONT-ON PRINTI " o b o r z f M A G I C z c W E L L y o n m p a " CALL FIXED-FONT-OFF RTRUE .FUNCT BOTTOM-ETCHINGS-F EQUAL? PRSA,V?READ,V?EXAMINE \FALSE CALL FIXED-FONT-ON PRINTI " o b o A G I E L m p a " CALL FIXED-FONT-OFF RTRUE .FUNCT CUBE-F EQUAL? PRSA,V?READ,V?EXAMINE \FALSE CALL FIXED-FONT-ON PRINTI " Bank of Zork VAULT *722 GUE* Frobozz Magic Vault Company " CALL FIXED-FONT-OFF RTRUE .FUNCT FIXED-FONT-ON GET 0,8 BOR STACK,2 PUT 0,8,STACK RTRUE .FUNCT FIXED-FONT-OFF GET 0,8 BAND STACK,-3 PUT 0,8,STACK RTRUE .FUNCT POOL-FCN EQUAL? PRSA,V?DRINK \?ELS5 PRINTR "The water is extremely salty." ?ELS5: EQUAL? PRSA,V?LOOK-UNDER \?ELS9 PRINTR "You'd probably have to enter the pool to see what's below the surface." ?ELS9: EQUAL? PRSA,V?THROUGH \FALSE CALL JIGS-UP,STR?227 RSTACK .FUNCT FLASK-FCN EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 PRINTR "You notice that objects behind the flask appear to be magnified. You might try looking at something through the flask." ?ELS5: EQUAL? PRSA,V?READ \?ELS9 EQUAL? PRSI,FLASK \?ELS9 PRINTI "The flask distorts and magnifies the " PRINTD PRSO PRINTI ", showing details not noticed earlier." CRLF RFALSE ?ELS9: EQUAL? PRSA,V?OPEN \?ELS15 CALL MUNG-ROOM,HERE,STR?228 CALL JIGS-UP,FATAL-VAPORS RSTACK ?ELS15: EQUAL? PRSA,V?THROW,V?MUNG \FALSE PRINTI "The flask breaks into pieces." CRLF REMOVE PRSO CALL JIGS-UP,FATAL-VAPORS RSTACK .FUNCT PLEAK EQUAL? PRSA,V?TAKE \?ELS5 CALL PICK-ONE,YUKS PRINT STACK CRLF RTRUE ?ELS5: EQUAL? PRSA,V?PLUG \FALSE PRINTR "The leak is too high above you to reach." .FUNCT ICEBOOM CALL MUNG-ROOM,HERE,STR?230 CALL JIGS-UP,STR?231 RSTACK .FUNCT MAGNET-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTR "You are in a circular room with a low ceiling. There are exits to the east and southeast." ?ELS5: EQUAL? RARG,M-ENTER \FALSE ZERO? CAROUSEL-FLIP-FLAG /FALSE ZERO? CAROUSEL-ZOOM-FLAG /?ELS16 EQUAL? ADVENTURER,WINNER \?ELS22 PUSH STR?232 JUMP ?CND18 ?ELS22: PUSH STR?233 ?CND18: CALL JIGS-UP,STACK RSTACK ?ELS16: EQUAL? WINNER,ADVENTURER \FALSE PRINTI "As you enter, your compass starts spinning wildly." CRLF ZERO? COMPASS-KLUDGE \?CND29 PRINTI "What compass, you ask? The one which allows you to specify compass directions for movement." SET 'COMPASS-KLUDGE,TRUE-VALUE ?CND29: CRLF RTRUE .FUNCT MAGNET-ROOM-EXIT ZERO? CAROUSEL-FLIP-FLAG /?ELS5 EQUAL? WINNER,ADVENTURER \?ELS5 PRINTI "You cannot get your bearings..." CRLF CRLF RANDOM 100 GRTR? 50,STACK \?ELS14 RETURN MACHINE-ROOM ?ELS14: RETURN TEA-ROOM ?ELS5: EQUAL? PRSO,P?EAST \?ELS18 RETURN MACHINE-ROOM ?ELS18: EQUAL? PRSO,P?SE /?THN21 EQUAL? PRSO,P?OUT \?ELS20 ?THN21: RETURN TEA-ROOM ?ELS20: PRINTI "You can't go that way." CRLF RFALSE .FUNCT BUTTONS EQUAL? PRSA,V?PUSH \FALSE EQUAL? WINNER,ADVENTURER \?ELS10 CALL JIGS-UP,STR?234 RSTACK ?ELS10: EQUAL? PRSO,SQUARE-BUTTON \?ELS12 ZERO? CAROUSEL-ZOOM-FLAG /?ELS17 PRINTR "Nothing seems to happen." ?ELS17: SET 'CAROUSEL-ZOOM-FLAG,TRUE-VALUE PRINTR "The whirring increases in intensity." ?ELS12: EQUAL? PRSO,ROUND-BUTTON \?ELS26 ZERO? CAROUSEL-ZOOM-FLAG /?ELS31 SET 'CAROUSEL-ZOOM-FLAG,FALSE-VALUE PRINTR "The whirring decreases in intensity." ?ELS31: PRINTR "Nothing seems to happen." ?ELS26: EQUAL? PRSO,TRIANGULAR-BUTTON \FALSE ZERO? CAROUSEL-FLIP-FLAG \?PRD41 PUSH 1 JUMP ?PRD42 ?PRD41: PUSH 0 ?PRD42: SET 'CAROUSEL-FLIP-FLAG,STACK IN? IRON-BOX,CAROUSEL-ROOM \?ELS47 PRINTI "A dull thump is heard in the distance." CRLF FSET? IRON-BOX,INVISIBLE \?ELS52 FCLEAR IRON-BOX,INVISIBLE JUMP ?CND50 ?ELS52: FSET IRON-BOX,INVISIBLE ?CND50: FSET? IRON-BOX,INVISIBLE /TRUE FCLEAR CAROUSEL-ROOM,TOUCHBIT RTRUE ?ELS47: PRINTR "Click." .FUNCT SPHERE-FCN,FL ZERO? CAGE-SOLVE-FLAG \?ELS3 EQUAL? PRSA,V?PUT,V?MOVE,V?TAKE \?ELS3 SET 'FL,TRUE-VALUE JUMP ?CND1 ?ELS3: SET 'FL,FALSE-VALUE ?CND1: ZERO? FL /?ELS12 EQUAL? ADVENTURER,WINNER \?ELS12 PRINTI "As you reach for the sphere, a solid steel cage falls from the ceiling to entrap you. To make matters worse, poisonous gas starts coming into the room." CRLF CRLF IN? ROBOT,HERE \?CND17 MOVE ROBOT,IN-CAGE FSET ROBOT,NDESCBIT ?CND17: CALL GOTO,IN-CAGE MOVE CAGE,HERE FSET CAGE,NDESCBIT FCLEAR CAGE,INVISIBLE CALL QUEUE,I-SPHERE,6 PUT STACK,0,1 RTRUE ?ELS12: ZERO? FL /?ELS21 FSET PALANTIR-1,INVISIBLE REMOVE ROBOT FSET PRSO,INVISIBLE MOVE CAGE,CAGE-ROOM FCLEAR CAGE,INVISIBLE CALL JIGS-UP,STR?235 RTRUE ?ELS21: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE CALL PALANTIR RSTACK .FUNCT I-SPHERE EQUAL? HERE,CAGE-ROOM,IN-CAGE \FALSE FSET PALANTIR-1,INVISIBLE CALL MUNG-ROOM,CAGE-ROOM,STR?236 CALL JIGS-UP,STR?237 RSTACK .FUNCT IN-CAGE-FCN,RARG ZERO? CAGE-SOLVE-FLAG /FALSE SET 'HERE,CAGE-ROOM RETURN HERE .FUNCT ROBOT-FCN,RARG=M-OBJECT EQUAL? WINNER,ROBOT \?ELS5 EQUAL? PRSA,V?SGIVE /FALSE EQUAL? PRSA,V?FOLLOW \?ELS12 PRINTR """My memory circuits are not that advanced. I can move as directed, though.""" ?ELS12: EQUAL? PRSA,V?MOVE,V?TAKE,V?RAISE \?ELS16 EQUAL? PRSO,CAGE \?ELS16 PRINTI "The cage shakes and is hurled across the room. It's hard to say, but the robot appears to be smiling." CRLF CRLF CALL INT,I-SPHERE PUT STACK,0,0 SET 'WINNER,ADVENTURER CALL GOTO,CAGE-ROOM MOVE MANGLED-CAGE,CAGE-ROOM FCLEAR ROBOT,NDESCBIT FSET PALANTIR-1,TAKEBIT MOVE ROBOT,CAGE-ROOM SET 'CAGE-SOLVE-FLAG,TRUE-VALUE RETURN CAGE-SOLVE-FLAG ?ELS16: EQUAL? PRSA,V?DRINK,V?EAT \?ELS22 IN? ADVENTURER,HERE \TRUE PRINTR """I am sorry but that is difficult for a being with no mouth.""" ?ELS22: RANDOM 100 GRTR? 2,STACK \?ELS29 CALL META-LOC,ADVENTURER EQUAL? STACK,HERE \?ELS29 PRINTR """Buzz! Buzz! Buzz! My circuits are getting rusty. Try again.""" ?ELS29: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS35 CALL META-LOC,ADVENTURER EQUAL? STACK,HERE \TRUE PRINTR """My vision is not sufficiently acute to do that.""" ?ELS35: EQUAL? PRSA,V?THROW,V?PUT,V?DROP \?ELS42 CALL META-LOC,ADVENTURER EQUAL? STACK,HERE \FALSE IN? PRSO,ROBOT \?ELS49 PRINTI """Whirr, buzz, click!""" CRLF RFALSE ?ELS49: PRINTR """Click! I don't have that. Buzz! Whirr!""" ?ELS42: EQUAL? PRSA,V?WALK /?THN58 EQUAL? PRSA,V?TURN,V?PUSH,V?TAKE \?ELS57 FSET? PRSO,ACTORBIT /?ELS57 ?THN58: CALL META-LOC,ADVENTURER EQUAL? STACK,HERE \FALSE RANDOM 100 GRTR? 80,STACK \?ELS66 PRINTI """Whirr, buzz, click!""" CRLF RFALSE ?ELS66: PRINTI """Buzz, click, whirr!""" CRLF RFALSE ?ELS57: CALL META-LOC,ADVENTURER EQUAL? STACK,HERE \TRUE PRINTR """My programming is insufficient to allow me to perform that task.""" ?ELS5: EQUAL? PRSA,V?CLOSE,V?LOOK-INSIDE,V?OPEN \?ELS81 PRINTR "There's no access panel or door on the robot." ?ELS81: EQUAL? PRSA,V?GIVE \?ELS85 EQUAL? PRSI,ROBOT \?ELS85 MOVE PRSO,ROBOT PRINTI "The robot gladly takes the " PRINTD PRSO PRINTR " and nods his head-like appendage in thanks." ?ELS85: EQUAL? PRSA,V?MUNG,V?THROW \FALSE PRINTI "The robot falls to the ground and (being of shoddy construction) disintegrates before your eyes." CRLF EQUAL? PRSA,V?THROW \?ELS98 PUSH PRSI JUMP ?CND94 ?ELS98: ZERO? PRSO /?PRD96 PUSH 1 JUMP ?CND94 ?PRD96: PUSH 0 ?CND94: REMOVE STACK RTRUE .FUNCT BILLS-OBJECT SET 'BANK-SOLVE-FLAG,TRUE-VALUE EQUAL? PRSA,V?BURN \?ELS5 PRINTI "Nothing like having money to burn!" CRLF RFALSE ?ELS5: EQUAL? PRSA,V?EAT \FALSE PRINTR "Talk about eating rich foods!" .FUNCT BKLEAVEE,RM=TELLER-EAST CALL HELD?,BILLS ZERO? STACK \?THN6 CALL HELD?,PORTRAIT ZERO? STACK /?ELS5 ?THN6: PRINTI "An alarm rings briefly, and an invisible force bars your way." CRLF RFALSE ?ELS5: RETURN RM .FUNCT BKLEAVEW CALL BKLEAVEE,TELLER-WEST RSTACK .FUNCT DEPOSITORY-FCN,RARG EQUAL? RARG,M-ENTER \FALSE CALL LKP,PRSO,SCOL-ROOMS >SCOL-ROOM RETURN SCOL-ROOM .FUNCT TELLER-ROOM,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You are in a small room, which was used by a bank officer who retrieved safety deposit boxes for the customer. On the north side of the room is a sign which reads ""Viewing Room"". On the " EQUAL? HERE,TELLER-WEST \?ELS10 PRINTI "west" JUMP ?CND8 ?ELS10: PRINTI "east" ?CND8: PRINTR " side of the room, above an open door, is a sign reading: BANK PERSONNEL ONLY " .FUNCT SCOL-OBJECT,OBJ=0 EQUAL? PRSA,V?TAKE,V?MOVE,V?PUSH /?THN6 EQUAL? PRSA,V?RUB \?ELS5 ?THN6: PRINTR "As you try, your hand seems to go through it." ?ELS5: EQUAL? PRSA,V?ATTACK \?ELS11 ZERO? PRSI /?ELS11 PRINTI "The " PRINTD PRSI PRINTR " goes through it." ?ELS11: EQUAL? PRSA,V?OVERBOARD,V?THROW \FALSE EQUAL? PRSI,CURTAIN,OBJ \FALSE IN? PRSO,WINNER \?ELS24 CALL V-THROUGH,PRSO RSTACK ?ELS24: PRINTR "You don't have that!" .FUNCT GET-WALL,RM,W SET 'W,SCOL-WALLS ?PRG1: GET W,0 EQUAL? STACK,RM \?ELS5 RETURN W ?ELS5: ADD W,6 >W JUMP ?PRG1 .FUNCT SCOLWALL EQUAL? PRSA,V?PUT,V?OVERBOARD,V?THROW \FALSE EQUAL? HERE,SCOL-ACTIVE \FALSE CALL GET-WALL,HERE GET STACK,1 EQUAL? PRSI,STACK \FALSE CALL SCOL-OBJECT,PRSI RSTACK .FUNCT SCOL-GO,OBJ SET 'SCOL-ACTIVE,SCOL-ROOM ZERO? OBJ /?ELS5 CALL SCOL-OBJ,OBJ,0,SCOL-ROOM RSTACK ?ELS5: CALL SCOL-THROUGH,12,SCOL-ROOM RSTACK .FUNCT SCOL-OBJ,OBJ,CINT,RM CALL QUEUE,I-CURTAIN,CINT PUT STACK,0,1 MOVE OBJ,RM EQUAL? RM,DEPOSITORY \?ELS5 PRINTI "The " PRINTD OBJ PRINTR " passes through the wall and vanishes." ?ELS5: PRINTI "The curtain dims slightly as the " PRINTD OBJ PRINTI " passes through." CRLF SET 'SCOL-ROOM,FALSE-VALUE RTRUE .FUNCT SCOL-THROUGH,CINT,RM CALL QUEUE,I-CURTAIN,CINT PUT STACK,0,1 PRINTI "You feel somewhat disoriented as you pass through..." CRLF CRLF CALL GOTO,RM RSTACK .FUNCT I-CURTAIN SET 'SCOL-ACTIVE,FALSE-VALUE EQUAL? HERE,VAULT \?ELS5 CALL JIGS-UP,STR?238 RSTACK ?ELS5: EQUAL? HERE,VIEWING-EAST,VIEWING-WEST,SMALL-ROOM \FALSE PRINTI "You hear a faint voice say ""Curtain Door Closed.""" CRLF EQUAL? HERE,SMALL-ROOM \FALSE ZERO? ZGNOME-FLAG \TRUE CALL QUEUE,I-ZGNOME,3 PUT STACK,0,1 SET 'ZGNOME-FLAG,TRUE-VALUE RETURN ZGNOME-FLAG .FUNCT I-ZGNOME EQUAL? HERE,SMALL-ROOM \FALSE CALL QUEUE,I-ZGNOME-OUT,12 PUT STACK,0,1 PRINTI "An epicene gnome of Zurich wearing a three-piece suit and carrying a safety deposit box materializes in the room." IN? WAND,WINNER \?ELS12 PRINTR " He notices the wand and dematerializes speedily." ?ELS12: PRINTI " ""You seem to have forgotten to deposit your valuables,"" he says, tapping the lid of the box impatiently. ""We don't usually allow customers to use the boxes here, but we can make this ONE exception, I suppose..."" He looks askance at you over his wire-rimmed bifocals." CRLF MOVE GNOME-OF-ZURICH,HERE RTRUE .FUNCT BOX-F PRINTR "The gnome clutches it possessively." .FUNCT ZGNOME-FCN EQUAL? PRSA,V?TELL \?ELS5 SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE PRINTR "The gnome appears increasingly impatient." ?ELS5: EQUAL? PRSA,V?THROW,V?GIVE \?ELS9 EQUAL? PRSI,GNOME-OF-ZURICH \?ELS9 GETPT PRSO,P?VALUE ZERO? STACK /?ELS16 PRINTI "The gnome carefully places the " PRINTD PRSO PRINTI " in the deposit box. ""Let me show you the way out,"" he says, making it clear he will be pleased to see the last of you. Then, you are momentarily disoriented, and when you recover you are back at the Bank Entrance." CRLF REMOVE GNOME-OF-ZURICH REMOVE PRSO CALL INT,I-ZGNOME-OUT PUT STACK,0,0 CALL GOTO,BANK-ENTRANCE RTRUE ?ELS16: CALL BOMB?,PRSO ZERO? STACK /?ELS20 REMOVE GNOME-OF-ZURICH MOVE PRSO,HERE CALL INT,I-ZGNOME PUT STACK,0,0 CALL INT,I-ZGNOME-OUT PUT STACK,0,0 PRINTR """You are so very gracious. I really cannot accept."" he says. He disappears, a wry smile on his lips." ?ELS20: PRINTI """I wouldn't put THAT in a safety deposit box,"" remarks the gnome with disdain, tossing it over his shoulder, where it disappears with an understated ""pop""." CRLF CALL REMOVE-CAREFULLY,PRSO RTRUE ?ELS9: EQUAL? PRSA,V?ATTACK \?ELS28 PRINTI "The gnome says ""Well, I never..."" and disappears with a snap of his fingers, leaving you alone." CRLF REMOVE GNOME-OF-ZURICH CALL INT,I-ZGNOME-OUT PUT STACK,0,0 RTRUE ?ELS28: PRINTR "The gnome appears increasingly impatient." .FUNCT I-ZGNOME-OUT REMOVE GNOME-OF-ZURICH EQUAL? HERE,SMALL-ROOM \FALSE PRINTR "The gnome looks impatient: ""I may have another customer waiting; you'll just have to fend for yourself, I'm afraid."" He disappears, leaving you alone." .FUNCT BOMB?,O EQUAL? O,BRICK \FALSE IN? FUSE,BRICK \FALSE CALL INT,I-FUSE GET STACK,C-ENABLED? ZERO? STACK /FALSE RTRUE .FUNCT GO&LOOK,RM,OHERE,OLIT,OSEEN=0 SET 'OHERE,HERE FSET? OHERE,TOUCHBIT \?CND1 SET 'OSEEN,TRUE-VALUE ?CND1: SET 'OLIT,LIT SET 'HERE,RM CALL LIT?,RM >LIT CALL PERFORM,V?LOOK ZERO? OSEEN \?CND4 FCLEAR OHERE,TOUCHBIT ?CND4: SET 'HERE,OHERE SET 'LIT,OLIT RTRUE .FUNCT TINY-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTI "This is a tiny room carved out of the wall of the ravine. There is an exit down a precarious climb. " CALL P-DOOR,STR?239,LID-1,KEYHOLE-1 RTRUE ?ELS5: EQUAL? PRSA,V?LOOK /FALSE CALL PCHECK RFALSE .FUNCT DREARY-ROOM-FCN,RARG,?TMP1 EQUAL? RARG,M-LOOK \?CND1 PRINTI "This is a small and rather dreary room, eerily illuminated by a red glow emanating from a crack in one wall. The light falls upon a dusty wooden table in the center of the room. " CALL P-DOOR,STR?240,LID-2,KEYHOLE-2 RTRUE ?CND1: CALL PCHECK >?TMP1 RFALSE .FUNCT PCHECK,LID CALL PLID >LID SET 'PLOOK-FLAG,FALSE-VALUE IN? KEY,KEYHOLE-1 /?THN4 IN? KEY,KEYHOLE-2 \?ELS3 ?THN4: FSET KEY,NDESCBIT JUMP ?CND1 ?ELS3: FCLEAR KEY,NDESCBIT ?CND1: CALL HELD?,PLACE-MAT ZERO? STACK /?CND8 SET 'MUD-FLAG,FALSE-VALUE ?CND8: ZERO? MUD-FLAG /?ELS15 MOVE PLACE-MAT,HERE FSET PLACE-MAT,NDESCBIT RTRUE ?ELS15: FCLEAR PLACE-MAT,NDESCBIT RTRUE .FUNCT P-DOOR,STR,LID,KEYHOLE,F ZERO? PLOOK-FLAG /?CND1 SET 'PLOOK-FLAG,FALSE-VALUE RFALSE ?CND1: PRINTI "On the " PRINT STR PRINTI " side of the room is a massive wooden door, which has a small window barred with iron. A formidable bolt lock is set within the door frame. A keyhole " FSET? LID,OPENBIT /?CND7 PRINTI "covered by a thin metal lid " ?CND7: PRINTI "lies within the lock." FIRST? KEYHOLE >F \?CND14 PRINTI " A " PRINTD F PRINTI " is in place within the keyhole." ?CND14: ZERO? MUD-FLAG /?CND19 PRINTI " The edge of a place mat is visible under the door." ZERO? MATOBJ /?CND19 PRINTI " Lying on the place mat is a " PRINTD MATOBJ PRINTI "." ?CND19: CRLF RTRUE .FUNCT PLID,OBJ1=LID-1,OBJ2=LID-2 IN? OBJ1,HERE \?ELS5 RETURN OBJ1 ?ELS5: RETURN OBJ2 .FUNCT PKH,KEYHOLE,THIS=0 EQUAL? KEYHOLE,KEYHOLE-1 \?ELS5 ZERO? THIS \?ELS5 RETURN KEYHOLE-2 ?ELS5: EQUAL? KEYHOLE,KEYHOLE-1 /?ELS9 ZERO? THIS /?ELS9 RETURN KEYHOLE-2 ?ELS9: RETURN KEYHOLE-1 .FUNCT PKH-FCN,OBJ,KH EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 FSET? LID-1,OPENBIT \?ELS10 FSET? LID-2,OPENBIT \?ELS10 FIRST? KEYHOLE-1 /?ELS10 FIRST? KEYHOLE-2 /?ELS10 EQUAL? HERE,DREARY-ROOM \?ELS17 PUSH TINY-ROOM JUMP ?CND13 ?ELS17: PUSH DREARY-ROOM ?CND13: CALL LIT?,STACK ZERO? STACK /?ELS10 PRINTR "You can see a lighted room at the other end." ?ELS10: PRINTR "No light can be seen through the keyhole." ?ELS5: EQUAL? PRSA,V?PUT \FALSE CALL PLID FSET? STACK,OPENBIT \?ELS32 CALL PKH,PRSI,TRUE-VALUE FIRST? STACK \?ELS37 PRINTR "The keyhole is blocked." ?ELS37: EQUAL? PRSO,LETTER-OPENER,KEY \?ELS41 CALL PKH,PRSI >KH FIRST? KH \FALSE PRINTI "There is a faint noise from behind the door and a small cloud of dust rises from beneath it." CRLF FIRST? KH >OBJ /?KLU61 ?KLU61: REMOVE OBJ ZERO? MUD-FLAG /FALSE SET 'MATOBJ,OBJ RFALSE ?ELS41: PRINTI "The " PRINTD PRSO PRINTR " doesn't fit." ?ELS32: PRINTR "The lid is in the way." .FUNCT PLID-FCN EQUAL? PRSA,V?MOVE,V?RAISE,V?OPEN \?ELS5 FSET? PRSO,OPENBIT \?ELS8 CALL RANDOM-ELEMENT,DUMMY PRINT STACK CRLF JUMP ?CND6 ?ELS8: PRINTI "The lid is now open." CRLF ?CND6: FSET PRSO,OPENBIT RTRUE ?ELS5: EQUAL? PRSA,V?LOWER,V?CLOSE \?ELS16 EQUAL? HERE,DREARY-ROOM \?ELS26 PUSH KEYHOLE-2 JUMP ?CND22 ?ELS26: PUSH KEYHOLE-1 ?CND22: FIRST? STACK \?ELS21 PRINTR "The keyhole is occupied." ?ELS21: PRINTI "The lid covers the keyhole." CRLF FCLEAR PRSO,OPENBIT RTRUE ?ELS16: EQUAL? PRSA,V?LOOK-BEHIND \FALSE PRINTR "There's a keyhole behind the lid." .FUNCT ROOM?,OBJ,NOBJ ?PRG1: LOC OBJ >NOBJ ZERO? NOBJ /FALSE EQUAL? NOBJ,WINNER /FALSE EQUAL? NOBJ,ROOMS \?CND3 RETURN OBJ ?CND3: SET 'OBJ,NOBJ JUMP ?PRG1 .FUNCT PALANTIR EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 EQUAL? PRSO,PALANTIR-1 \?ELS10 PUSH PALANTIR-2 JUMP ?CND6 ?ELS10: EQUAL? PRSO,PALANTIR-2 \?ELS12 PUSH PALANTIR-3 JUMP ?CND6 ?ELS12: EQUAL? PRSO,PALANTIR-3 \?ELS14 PUSH PALANTIR-1 JUMP ?CND6 ?ELS14: PUSH PALANTIR-4 ?CND6: CALL PALANTIR-LOOK,STACK RSTACK ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS18 PRINTR "There is something misty in the sphere. Perhaps if you were to look into it..." ?ELS18: EQUAL? PRSA,V?TAKE \FALSE EQUAL? PRSO,PALANTIR-3 \FALSE PUTP PRSO,P?LDESC,FALSE-VALUE RFALSE .FUNCT DEAD-PALANTIR,RARG,P EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You are inside a huge crystalline sphere filled with thin " EQUAL? HERE,DEAD-PALANTIR-1 \?ELS12 SET 'P,PALANTIR-1 PUSH STR?241 JUMP ?CND8 ?ELS12: EQUAL? HERE,DEAD-PALANTIR-2 \?ELS14 SET 'P,PALANTIR-2 PUSH STR?242 JUMP ?CND8 ?ELS14: SET 'P,PALANTIR-3 PUSH STR?243 ?CND8: PRINT STACK PRINTI " mist. The mist becomes " EQUAL? HERE,DEAD-PALANTIR-1 \?ELS21 PUSH STR?242 JUMP ?CND17 ?ELS21: EQUAL? HERE,DEAD-PALANTIR-2 \?ELS23 PUSH STR?243 JUMP ?CND17 ?ELS23: PUSH STR?244 ?CND17: PRINT STACK PRINTI " to the west." CRLF PRINTI "You strain to look out through the mist... " CRLF FSET? P,TOUCHBIT \?ELS30 CALL PALANTIR-LOOK,P,TRUE-VALUE RTRUE ?ELS30: EQUAL? P,PALANTIR-1 \?ELS32 PRINTR "You see a small room with a sign on the wall, but it is too blurry to read." ?ELS32: EQUAL? P,PALANTIR-2 \?ELS36 PRINTR "You look out into a large, dreary room with a great door and a huge table. There is an odd glow to the mist." ?ELS36: EQUAL? P,PALANTIR-3 \TRUE PRINTI "A strange blurry room is barely visible." IN? SERPENT,AQUARIUM \?CND43 RANDOM 100 GRTR? 25,STACK \?CND43 PRINTI " An odd sinuous shadow crosses the mist as you look." ?CND43: CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \FALSE EQUAL? HERE,DEAD-PALANTIR-4 \FALSE PRINTI "You follow a corridor of black mist into a black walled spherical room." IN? GENIE,PENTAGRAM-ROOM \?CND56 PRINTI " The room is empty. A huge face looks down on you from outside and laughs sardonically. It doesn't look like you're getting out of this predicament!" CRLF CALL FINISH ?CND56: PRINTI " As you enter, a huge and horrible face materializes out of the mist. ""What brings you here to trouble my imprisonment, wanderer?"" it asks. Hearing no immediate answer, it studies you for a moment." CRLF LESS? DEATHS,3 /?ELS67 PRINTI """Not you again! This is getting tedious. You'll obviously never be much help to me. Better luck next time, oh wondrous adventurer."" The face disappears and everything goes black." CRLF CALL FINISH RSTACK ?ELS67: PRINTI """Perhaps you may be of some use to me in gaining my freedom from this place. Return to your foolish quest! I shall not destroy you this time. Mayhap you will repay this favor in kind someday."" The face vanishes and the mist begins to swirl. When it clears you are returned to the world of life." CRLF SET 'DEAD,FALSE-VALUE CALL GOTO,INSIDE-BARROW RTRUE .FUNCT GLOBAL-PALANTIRS EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?ELS5 CALL DEAD-PALANTIR,M-LOOK RSTACK ?ELS5: EQUAL? PRSA,V?MUNG \FALSE PRINTR "The sphere is unbreakable." .FUNCT PALANTIR-LOOK,OBJ,INSIDE?=0,RM,OHERE EQUAL? OBJ,PALANTIR-4 \?CND1 PRINTR "As you peer into the sphere, a strange vision takes shape...a huge and fearful face with yellow eyes. The face peers out at you expectantly." ?CND1: EQUAL? HERE,OBJ /?PRD6 PUSH 0 JUMP ?PRD7 ?PRD6: PUSH 1 ?PRD7: SET 'RM,STACK ZERO? RM /?THN11 CALL LIT?,RM ZERO? STACK \?ELS10 ?THN11: PRINTR "You see only darkness." ?ELS10: IN? OBJ,RM /?THN17 LOC OBJ CALL SEE-INSIDE?,STACK ZERO? STACK /?ELS16 ?THN17: SET 'OHERE,HERE ZERO? INSIDE? /?ELS21 PRINTI "As you peer through the mist, a strangely colored vision of a huge room takes shape..." CRLF CRLF JUMP ?CND19 ?ELS21: PRINTI "As you peer into the sphere, a strange vision takes shape of a distant room, which can be described clearly...." CRLF CRLF ?CND19: FSET OBJ,INVISIBLE CALL GO&LOOK,RM EQUAL? OHERE,RM \?CND29 PRINTI "An astonished adventurer is staring into a crystal sphere." CRLF ?CND29: FCLEAR OBJ,INVISIBLE ZERO? INSIDE? \TRUE PRINTR "The vision fades, revealing only an ordinary crystal sphere." ?ELS16: PRINTR "You see only darkness." .FUNCT PWINDOW-FCN EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 SET 'PLOOK-FLAG,TRUE-VALUE FSET? PDOOR,OPENBIT \?ELS10 PRINTR "The door is open, dummy." ?ELS10: EQUAL? HERE,DREARY-ROOM \?ELS14 CALL GO&LOOK,TINY-ROOM RSTACK ?ELS14: CALL GO&LOOK,DREARY-ROOM RSTACK ?ELS5: EQUAL? PRSA,V?THROUGH \FALSE PRINTR "Perhaps if you were diced...." .FUNCT PDOOR-FCN,K EQUAL? PRSA,V?LOOK-UNDER \?ELS5 ZERO? MUD-FLAG /?ELS5 PRINTR "The place mat is under the door." ?ELS5: EQUAL? PRSA,V?UNLOCK \?ELS11 EQUAL? PRSI,KEY \?ELS16 CALL PLID,KEYHOLE-1,KEYHOLE-2 FIRST? STACK >K \?ELS21 EQUAL? K,KEY /?ELS21 PRINTR "The keyhole is blocked." ?ELS21: PRINTI "The door is now unlocked." CRLF SET 'PUNLOCK-FLAG,TRUE-VALUE RETURN PUNLOCK-FLAG ?ELS16: EQUAL? PRSI,GOLD-KEY \?ELS31 PRINTR "It doesn't fit the lock." ?ELS31: PRINTR "It can't be unlocked with that." ?ELS11: EQUAL? PRSA,V?LOCK \?ELS39 EQUAL? PRSI,KEY \?ELS44 PRINTI "The door is locked." CRLF SET 'PUNLOCK-FLAG,FALSE-VALUE RTRUE ?ELS44: EQUAL? PRSI,GOLD-KEY \?ELS48 PRINTR "It doesn't fit the lock." ?ELS48: PRINTR "It can't be locked with that." ?ELS39: EQUAL? PRSA,V?PUT-UNDER \?ELS56 EQUAL? PRSO,ROBOT-LABEL \?ELS61 PRINTI "The paper is very small and vanishes under the door." CRLF EQUAL? HERE,TINY-ROOM \?ELS68 PUSH DREARY-ROOM JUMP ?CND64 ?ELS68: PUSH TINY-ROOM ?CND64: MOVE PRSO,STACK RTRUE ?ELS61: EQUAL? PRSO,NEWSPAPER \FALSE PRINTR "The newspaper crumples up and won't go under the door." ?ELS56: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE ZERO? PUNLOCK-FLAG /?ELS81 CALL OPEN-CLOSE,PRSO,STR?245,STR?246 RSTACK ?ELS81: PRINTR "The door is locked." .FUNCT PKEY-FCN EQUAL? PRSA,V?TURN \FALSE ZERO? PUNLOCK-FLAG /?ELS10 CALL PERFORM,V?LOCK,PDOOR,PRSO RSTACK ?ELS10: CALL PERFORM,V?UNLOCK,PDOOR,PRSO RSTACK .FUNCT PLACE-MAT-FCN EQUAL? PRSA,V?PUT-UNDER \?ELS5 EQUAL? PRSI,PDOOR \?ELS10 PRINTI "The place mat fits easily under the door." CRLF MOVE PRSO,HERE SET 'MUD-FLAG,TRUE-VALUE RETURN MUD-FLAG ?ELS10: EQUAL? PRSI,WIZ-DOOR,RIDDLE-DOOR,CRYPT-DOOR \FALSE PRINTR "There's not enough room under this door." ?ELS5: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE ZERO? MATOBJ /FALSE MOVE MATOBJ,HERE PRINTI "As the place mat is moved, a " PRINTD MATOBJ PRINTI " falls from it and onto the floor." CRLF SET 'MATOBJ,FALSE-VALUE SET 'MUD-FLAG,FALSE-VALUE RTRUE .FUNCT WISH-FCN EQUAL? PRSA,V?MAKE \FALSE EQUAL? HERE,WELL-BOTTOM \?ELS10 IN? COIN,HERE \?ELS10 PRINTI "A whispering voice replies: ""Water makes the bucket go."" Unfortunately, wishing makes the coin go...." CRLF REMOVE COIN RTRUE ?ELS10: PRINTR "No one is listening." .FUNCT WELL-FCN FSET? PRSO,TAKEBIT \?ELS5 EQUAL? PRSA,V?DROP,V?PUT,V?THROW \?ELS5 PRINTI "The " PRINTD PRSO PRINTI " is now sitting at the bottom of the well." CRLF MOVE PRSO,WELL-BOTTOM RTRUE ?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE PRINTR "You can't climb the well." .FUNCT MATCH-FCN,CNT EQUAL? PRSA,V?BURN,V?LAMP-ON \?ELS5 EQUAL? PRSO,MATCH \?ELS5 GRTR? MATCH-COUNT,0 \?CND8 DEC 'MATCH-COUNT ?CND8: GRTR? MATCH-COUNT,0 /?ELS15 PRINTR "I'm afraid you have run out of matches." ?ELS15: FSET MATCH,FLAMEBIT FSET MATCH,ONBIT CALL QUEUE,I-MATCH,2 PUT STACK,0,1 PRINTR "One of the matches starts to burn." ?ELS5: EQUAL? PRSA,V?LAMP-OFF \?ELS23 FSET? MATCH,FLAMEBIT \?ELS23 PRINTI "The match is out." CRLF FCLEAR MATCH,FLAMEBIT FCLEAR MATCH,ONBIT CALL QUEUE,I-MATCH,0 RTRUE ?ELS23: EQUAL? PRSA,V?COUNT \?ELS29 PRINTI "You have " SUB MATCH-COUNT,1 >CNT PRINTN CNT PRINTI " match" EQUAL? CNT,1 /?ELS36 PRINTI "es." JUMP ?CND34 ?ELS36: PRINTI "." ?CND34: CRLF RTRUE ?ELS29: EQUAL? PRSA,V?EXAMINE \FALSE FSET? MATCH,ONBIT \?ELS47 PRINTI "A match is burning." JUMP ?CND45 ?ELS47: PRINTI "No match is burning." ?CND45: CRLF RTRUE .FUNCT I-MATCH PRINTI "The match has gone out." CRLF FCLEAR MATCH,FLAMEBIT FCLEAR MATCH,ONBIT RTRUE .FUNCT LANTERN EQUAL? PRSA,V?THROW \?ELS5 EQUAL? PRSO,LAMP \?ELS5 PRINTI "The lamp has smashed into the floor, and the light has gone out." CRLF CALL INT,I-LANTERN PUT STACK,0,0 REMOVE LAMP MOVE BROKEN-LAMP,HERE RTRUE ?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS11 FSET? LAMP,RMUNGBIT \?ELS16 PRINTR "A burned-out lamp won't light." ?ELS16: CALL INT,I-LANTERN PUT STACK,0,1 RFALSE ?ELS11: EQUAL? PRSA,V?LAMP-OFF \?ELS22 FSET? LAMP,RMUNGBIT \?ELS27 PRINTR "The lamp has already burned out." ?ELS27: CALL INT,I-LANTERN PUT STACK,0,0 RFALSE ?ELS22: EQUAL? PRSA,V?EXAMINE \FALSE FSET? LAMP,RMUNGBIT \?ELS36 PRINTI "The lamp has burned out." JUMP ?CND34 ?ELS36: FSET? LAMP,ONBIT \?ELS40 PRINTI "The lamp is on." JUMP ?CND34 ?ELS40: PRINTI "The lamp is turned off." ?CND34: CRLF RTRUE .FUNCT I-LANTERN,TICK,TBL VALUE 'LAMP-TABLE >TBL GET TBL,0 >TICK CALL QUEUE,I-LANTERN,TICK PUT STACK,0,1 CALL LIGHT-INT,LAMP,TBL,TICK ZERO? TICK /FALSE ADD TBL,4 >LAMP-TABLE RETURN LAMP-TABLE .FUNCT LIGHT-INT,OBJ,TBL,TICK ZERO? TICK \?CND1 FCLEAR OBJ,ONBIT FSET OBJ,RMUNGBIT ?CND1: CALL HELD?,OBJ ZERO? STACK \?THN9 IN? OBJ,HERE \FALSE ?THN9: ZERO? TICK \?ELS15 PRINTI "You'd better have more light than from the " PRINTD OBJ PRINTR "." ?ELS15: GET TBL,1 PRINT STACK CRLF RTRUE .FUNCT RIDDLE-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTI "This is a room which is bare on all sides. There is an exit down in the northwest corner of the room. To the east is a great " FSET? RIDDLE-DOOR,OPENBIT \?ELS10 PRINTI "open" JUMP ?CND8 ?ELS10: PRINTI "closed" ?CND8: PRINTI " door made of stone. Above the stone, the following words are written: ""No man shall pass this door without solving this riddle: What is tall as a house, round as a cup, and all the king's horses can't draw it up?"" " RTRUE ?ELS5: EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?SAY,V?ANSWER \FALSE FSET? RIDDLE-DOOR,OPENBIT /FALSE GET P-LEXV,P-CONT EQUAL? STACK,W?WELL /?THN31 ADD P-CONT,2 GET P-LEXV,STACK EQUAL? STACK,W?WELL \?ELS30 ?THN31: PRINTI "There is a deafening clap of thunder and the stone door quietly swings open to reveal a passageway beyond." CRLF CALL SCORE-UPD,5 FSET RIDDLE-DOOR,OPENBIT JUMP ?CND26 ?ELS30: PRINTI "A hollow laugh seems to come from the stone door." CRLF ?CND26: SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE RTRUE .FUNCT RIDDLE-DOOR-FCN EQUAL? PRSA,V?OPEN \?ELS5 FSET? RIDDLE-DOOR,OPENBIT \?ELS10 PRINTR "It is open!" ?ELS10: PRINTR "The door can only be opened by answering the riddle." ?ELS5: EQUAL? PRSA,V?CLOSE \FALSE FSET? RIDDLE-DOOR,OPENBIT \?ELS23 PRINTR "Not a chance. The door weighs many tons." ?ELS23: PRINTR "It is closed!" .FUNCT RIDDLE-PSEUDO EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "Use the ""Look"" command." .FUNCT MAGIC-ACTOR,V ZERO? SPELL? /FALSE EQUAL? SPELL?,S-FALL \?ELS11 EQUAL? PRSA,V?CROSS,V?CLIMB-DOWN,V?CLIMB-UP /?THN17 EQUAL? PRSA,V?WALK \?ELS16 GETPT HERE,P?DOWN ZERO? STACK /?ELS16 ?THN17: GETPT HERE,P?GLOBAL >V PTSIZE V CALL ZMEMQB,BRIDGE,V,STACK ZERO? STACK /?ELS25 CALL JIGS-UP,STR?252 RSTACK ?ELS25: RANDOM 100 GRTR? 25,STACK \?ELS27 CALL JIGS-UP,STR?253 RSTACK ?ELS27: PRINTR "You just tripped on an invisible cord, or perhaps your own feet. But this must be your lucky day, as you managed to regain your balance before what could have been a fatal fall." ?ELS16: EQUAL? PRSA,V?BOARD \FALSE PRINTI "You get in the " PRINTD PRSO PRINTR " but you fall out again, almost as though an invisible hand had tipped it over." ?ELS11: EQUAL? SPELL?,S-FLOAT \?ELS37 EQUAL? PRSA,V?WAIT,V?DIAGNOSE /FALSE EQUAL? PRSA,V?WALK \?ELS44 PRINTR "I suppose you plan to do that by flapping your arms?" ?ELS44: EQUAL? PRSA,V?DROP \?ELS48 MOVE PRSO,HERE PRINTI "The " PRINTD PRSO PRINTR " drops to the ground." ?ELS48: EQUAL? PRSA,V?TAKE \FALSE IN? PRSO,HERE \FALSE PRINTR "You can't reach that! It's on the ground." ?ELS37: EQUAL? SPELL?,S-FREEZE \?ELS58 EQUAL? PRSA,V?WAIT,V?DIAGNOSE /FALSE PRINTR "You are frozen solid. You might as well wait it out, because you can't do anything else in this state." ?ELS58: EQUAL? SPELL?,S-FENCE \?ELS69 EQUAL? PRSA,V?WALK \?ELS69 PRINTR "An invisible fence of magical force bars your way." ?ELS69: EQUAL? SPELL?,S-FIERCE \?ELS75 CALL INFESTED?,HERE >V ZERO? V /?ELS75 EQUAL? PRSA,V?MUNG,V?ATTACK /FALSE CALL FORCE-FIGHT,V RTRUE ?ELS75: EQUAL? SPELL?,S-FERMENT \?ELS86 EQUAL? PRSA,V?WALK \?ELS86 IN? WINNER,HERE \?ELS86 PRINTI "Oops, you seem a little unsteady... I'm not sure you got where you intended going." CRLF CRLF CALL RANDOM-WALK RSTACK ?ELS86: EQUAL? SPELL?,S-FEAR \FALSE CALL INFESTED?,HERE >V ZERO? V /FALSE PRINTI "All at once, you are overcome by fear! There's is a " PRINTD V PRINTI " in here! Maybe it's after you! " LOC WINNER FSET? STACK,VEHBIT \?ELS101 PRINTR "You huddle in the corner, terrified." ?ELS101: PRINTI "You run from the room screaming in terror!" CRLF CRLF CALL RANDOM-WALK RSTACK .FUNCT RANDOM-WALK,P,TX,L,S,D=0 SET 'P,0 ?PRG1: NEXTP HERE,P >P LESS? P,LOW-DIRECTION \?ELS5 ZERO? D /TRUE SET 'S,SPELL? SET 'SPELL?,FALSE-VALUE SET 'WINNER,ADVENTURER MOVE WINNER,HERE CALL DO-WALK,D SET 'SPELL?,S RTRUE ?ELS5: GETPT HERE,P >TX PTSIZE TX >L EQUAL? L,UEXIT /?THN15 EQUAL? L,CEXIT \?ELS18 GETB TX,CEXITFLAG VALUE STACK ZERO? STACK \?THN15 ?ELS18: EQUAL? L,DEXIT \?PRG1 GETB TX,DEXITOBJ FSET? STACK,OPENBIT \?PRG1 ?THN15: ZERO? D \?ELS23 SET 'D,P JUMP ?PRG1 ?ELS23: RANDOM 100 GRTR? 50,STACK \?PRG1 SET 'D,P JUMP ?PRG1 .FUNCT FORCE-FIGHT,V,W CALL FIND-IN,ADVENTURER,WEAPONBIT >W ZERO? W \?CND1 SET 'W,HANDS ?CND1: PRINTI "You are maddened by an overwhelming ferocity, and attack the " PRINTD V PRINTI " instead." CRLF CALL PERFORM,V?ATTACK,V,W RSTACK .FUNCT DWINDOW-DESC PRINTI "On the floor is a very small diamond shaped window which is " ZERO? DIAMOND-SOLVE /?ELS5 PRINTI "glowing serenely" JUMP ?CND3 ?ELS5: GET DWDESCS,DIAMOND-COUNT PRINT STACK ?CND3: PRINTR "." .FUNCT DWINDOW-FCN EQUAL? PRSA,V?TAKE \?ELS5 PRINTR "The window is an integral part of the floor." ?ELS5: EQUAL? PRSA,V?MUNG \?ELS9 PRINTR "The window is diamond-hard and cannot be broken." ?ELS9: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE CALL DWINDOW-DESC RSTACK .FUNCT DIAMOND-MOTION,RARG,DC,DIR,RM EQUAL? RARG,M-LOOK \?ELS5 PRINTI "This is a room with oddly angled walls and passages in all directions. The walls are made of some glassy substance." CRLF EQUAL? HERE,DIAMOND-5 \?ELS10 PRINTI "A marble stairway leads upward." ZERO? DIAMOND-SOLVE /?CND13 PRINTI " The floor has swung down at the end of the stairway to reveal a secret passage leading down into unrelieved darkness." ?CND13: CRLF RTRUE ?ELS10: CALL DWINDOW-DESC RTRUE ?ELS5: EQUAL? RARG,M-FLASH \?ELS22 CALL DWINDOW-DESC RTRUE ?ELS22: EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?WALK \FALSE ZERO? DIAMOND-SOLVE \FALSE EQUAL? HERE,DIAMOND-2,DIAMOND-4 /?THN32 EQUAL? HERE,DIAMOND-6,DIAMOND-8 \?ELS31 ?THN32: SUB DIAMOND-COUNT,1 GET DIDIRS,STACK >DIR EQUAL? PRSO,DIR \?ELS36 INC 'DIAMOND-COUNT GRTR? DIAMOND-COUNT,DIAMOND-BASE \?CND37 SET 'DIAMOND-BASE,DIAMOND-COUNT SET 'DIAMOND-MOVES,0 ?CND37: EQUAL? DIAMOND-COUNT,5 \?CND40 PRINTI "You hear a strange rusty squeal echoing in the distance." CRLF FCLEAR DIAMOND-5,TOUCHBIT CALL SCORE-UPD,5 SET 'DIAMOND-SOLVE,TRUE-VALUE ?CND40: EQUAL? HERE,DIAMOND-2 \?ELS47 SET 'DIR,DIAMOND-4 JUMP ?CND45 ?ELS47: EQUAL? HERE,DIAMOND-4 \?ELS49 SET 'DIR,DIAMOND-8 JUMP ?CND45 ?ELS49: EQUAL? HERE,DIAMOND-8 \?ELS51 SET 'DIR,DIAMOND-6 JUMP ?CND45 ?ELS51: EQUAL? HERE,DIAMOND-6 \?CND45 SET 'DIR,DIAMOND-2 ?CND45: CALL GOTO,DIR RTRUE ?ELS36: CALL DIAMOND-LOSS RTRUE ?ELS31: EQUAL? HERE,DIAMOND-5 \?ELS57 EQUAL? PRSO,P?UP /FALSE ?ELS57: SET 'DIAMOND-COUNT,0 RANDOM 100 GRTR? 33,STACK \?ELS66 PRINTR "There is no way to go in that direction." ?ELS66: RANDOM 100 GRTR? 25,STACK \?ELS70 CALL DIAMOND-LOSS RTRUE ?ELS70: SET 'DIAMOND-COUNT,1 GRTR? DIAMOND-COUNT,DIAMOND-BASE \?CND73 SET 'DIAMOND-BASE,DIAMOND-COUNT SET 'DIAMOND-MOVES,0 ?CND73: RANDOM 4 SUB STACK,1 GET DIAMOND-ROOMS,STACK >RM FSET? BAT,INVISIBLE \?CND76 FCLEAR BAT,INVISIBLE MOVE BAT,RM ?CND76: CALL GOTO,RM RTRUE .FUNCT DIAMOND-LOSS INC 'DIAMOND-MOVES EQUAL? DIAMOND-MOVES,20 \?CND1 PRINTI "As you thrash about in the maze, the mirthful voice of the Wizard taunts you: ""Fool! You'll never get past " GET BASES,DIAMOND-BASE PRINT STACK PRINTI " base at this rate!""" CRLF ?CND1: RANDOM 5 ADD 3,STACK GET DIAMOND-ROOMS,STACK CALL GOTO,STACK RSTACK .FUNCT CERBERUS-FCN EQUAL? PRSA,V?RAISE,V?RUB,V?WAVE \?ELS5 EQUAL? PRSO,WAND \?ELS5 PRINTI "The dog looks puzzled." CRLF RFALSE ?ELS5: ZERO? WAND-ON /?ELS11 EQUAL? PRSA,V?INCANT,V?SAY /FALSE ?ELS11: CALL HELLO?,CERBERUS ZERO? STACK /?ELS15 ZERO? CERBERUS-LEASHED /?ELS20 PRINTR """Arf! Arf! Arf!""" ?ELS20: PRINTR """Grrrr!""" ?ELS15: EQUAL? PRSA,V?STAB,V?MUNG,V?ATTACK \?ELS29 ZERO? CERBERUS-LEASHED /?ELS34 REMOVE CERBERUS PRINTR "With a quiet bark of disappointment, the creature expires. Its six eyes look at you reproachfully. As it dies, it collapses into a small pile of dust which blows away into nothing." ?ELS34: RANDOM 100 GRTR? 50,STACK \?ELS39 CALL JIGS-UP,STR?263 RSTACK ?ELS39: PRINTR "The maddened dog-thing snaps viciously at you." ?ELS29: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS45 EQUAL? PRSO,COLLAR \?ELS45 MOVE COLLAR,CERBERUS FSET COLLAR,NDESCBIT FSET COLLAR,TRYTAKEBIT PUTP CERBERUS,P?LDESC,STR?264 SET 'CERBERUS-LEASHED,TRUE-VALUE PRINTR "The creature whines happily, then the center head licks your face (which is roughly like experiencing a sandpaper washcloth). The other two heads look about, as though the monster felt a sudden need to find a pair of slippers somewhere. Its huge tail wags enthusiastically, knocking small rocks around and almost blowing you over from the breeze it creates." ?ELS45: EQUAL? PRSA,V?ENCHANT \?ELS51 EQUAL? SPELL-USED,W?FLOAT \?ELS56 SET 'SPELL-HANDLED?,TRUE-VALUE PRINTR "The huge dog rises about an inch off the ground, for a moment." ?ELS56: EQUAL? SPELL-USED,W?FIERCE \?ELS60 SET 'SPELL-HANDLED?,TRUE-VALUE CALL JIGS-UP,STR?265 RSTACK ?ELS60: EQUAL? SPELL-USED,W?FEEBLE \FALSE PRINTR "What an effect! He now has the strength of just one elephant, rather than ten!" ?ELS51: ZERO? CERBERUS-LEASHED \?ELS66 PRINTR "The three-headed dog snaps at you viciously!" ?ELS66: ZERO? CERBERUS-LEASHED /FALSE EQUAL? PRSA,V?RUB \FALSE PRINTR "The dog is now insanely happy, slobbering all over the place and whining with uncontained doggish joy." .FUNCT COLLAR-FCN EQUAL? PRSA,V?TAKE \?ELS5 ZERO? CERBERUS-LEASHED /?ELS5 CALL JIGS-UP,STR?266 RSTACK ?ELS5: EQUAL? PRSA,V?ENCHANT \FALSE EQUAL? SPELL-USED,W?FLOAT \FALSE CALL PERFORM,V?ENCHANT,CERBERUS RTRUE .FUNCT GLACIER-FCN EQUAL? PRSA,V?MELT \FALSE PRINTR "This is a big glacier; you'll need a lot of heat." .FUNCT GLACIER-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This is a large hall of ancient lava, since worn smooth by the movement of a glacier. A large passage exits to the east and an upward lava tube is at the top of a jumble of fallen rocks." CRLF ZERO? ICE-MELTED /TRUE PRINTR "A damp and scorched passage leads west. It is still partly full of steam." .FUNCT DRAGON-FCN CALL QUEUE,I-DRAGON,-1 PUT STACK,0,1 CALL HELLO?,DRAGON ZERO? STACK /?ELS5 PRINTI "The dragon looks amused. He speaks in a voice so deep you feel it rather than hear it, but the tongue is unknown to you. You find yourself almost hypnotized." CRLF ADD DRAGON-ANGER,2 >DRAGON-ANGER RETURN DRAGON-ANGER ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 PRINTI "He turns and looks back at you, his cat's eyes yellow in the gloom. You start to feel weak, and quickly turn away." CRLF INC 'DRAGON-ANGER RETURN DRAGON-ANGER ?ELS9: EQUAL? PRSA,V?KICK,V?MUNG,V?ATTACK /?THN14 EQUAL? PRSA,V?LAMP-ON \?ELS13 ?THN14: EQUAL? PRSA,V?LAMP-ON /?THN19 EQUAL? PRSA,V?ATTACK \?ELS18 ZERO? PRSI \?ELS18 ?THN19: PRINTI "With your bare hands? I doubt the dragon even noticed." CRLF JUMP ?CND16 ?ELS18: CALL RANDOM-ELEMENT,DRAGON-ATTACKS PRINT STACK CRLF ?CND16: ADD DRAGON-ANGER,4 >DRAGON-ANGER RETURN DRAGON-ANGER ?ELS13: EQUAL? PRSA,V?GIVE \?ELS30 EQUAL? PRSI,DRAGON \?ELS30 INC 'DRAGON-ANGER GETPT PRSO,P?VALUE ZERO? STACK /?ELS37 MOVE PRSO,CHEST PRINTR "The dragon is pleased by your gift, excuses himself for a moment, and returns without it." ?ELS37: CALL BOMB?,PRSO ZERO? STACK /?ELS41 ADD DRAGON-ANGER,2 >DRAGON-ANGER REMOVE BRICK PRINTR "The dragon snakes his long red tongue around the bomb and politely swallows it. A few moments later he belches and smoke curls out of his nostrils." ?ELS41: PRINTR "The dragon refuses your gift." ?ELS30: EQUAL? PRSA,V?WALK \FALSE EQUAL? HERE,DRAGON-ROOM \FALSE EQUAL? PRSO,P?NORTH \FALSE ADD DRAGON-ANGER,3 >DRAGON-ANGER PRINTR "The dragon puts out a claw, grins (all of his sword-sharp teeth glinting in the light), and blocks your way." .FUNCT HELLO?,WHO EQUAL? WINNER,WHO /?THN6 EQUAL? PRSA,V?REPLY,V?ANSWER,V?TELL /?THN6 EQUAL? PRSA,V?INCANT,V?HELLO,V?SAY \FALSE ?THN6: EQUAL? PRSA,V?SAY,V?ANSWER,V?TELL /?THN11 EQUAL? PRSA,V?REPLY,V?INCANT \TRUE ?THN11: SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE RTRUE .FUNCT FIND-TARGET,TARGET,P,TX,L,ROOM IN? TARGET,HERE \?ELS5 RETURN HERE ?ELS5: SET 'P,0 ?PRG8: NEXTP HERE,P >P ZERO? P /FALSE LESS? P,LOW-DIRECTION /?PRG8 GETPT HERE,P >TX PTSIZE TX >L EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG8 GETB TX,0 >ROOM IN? TARGET,ROOM \?PRG8 RETURN ROOM .FUNCT I-DRAGON,ROOM GRTR? DRAGON-ANGER,6 \?ELS3 PRINTI "The dragon tires of this game. With an almost bored yawn, he opens his mouth and " EQUAL? SPELL?,S-FIREPROOF \?ELS8 PRINTI "blasts you with a great gout of fire, but it washes over you harmlessly." CRLF JUMP ?CND1 ?ELS8: CALL DRAGON-LEAVES CALL JIGS-UP,STR?272 JUMP ?CND1 ?ELS3: IN? WINNER,DRAGON-ROOM \?ELS14 IN? DRAGON,DRAGON-ROOM /?ELS14 MOVE DRAGON,DRAGON-ROOM PRINTI "The dragon doubles back and charges into the room, maddened by your attempt to sneak past him. His eyes glow with a white heat of anger." CRLF EQUAL? SPELL?,S-FIREPROOF \?ELS21 CALL JIGS-UP,STR?273 JUMP ?CND1 ?ELS21: CALL JIGS-UP,STR?274 JUMP ?CND1 ?ELS14: GRTR? DRAGON-ANGER,0 /?ELS25 RANDOM 100 GRTR? 50,STACK \?ELS28 IN? DRAGON,HERE \?ELS28 PRINTI "The dragon looks bored." CRLF JUMP ?CND1 ?ELS28: CALL DRAGON-LEAVES EQUAL? HERE,GLACIER-ROOM \?ELS37 PRINTI "The dragon is no longer around. He must have become bored with you." CRLF JUMP ?CND1 ?ELS37: EQUAL? HERE,OLD-HERE \?CND1 PRINTI "The dragon seems to have lost interest in you." EQUAL? OLD-HERE,DRAGON-ROOM \?ELS46 CRLF JUMP ?CND1 ?ELS46: PRINTI " He wanders off." CRLF JUMP ?CND1 ?ELS25: CALL FIND-TARGET,WINNER >ROOM ZERO? ROOM \?ELS55 RANDOM 100 GRTR? 25,STACK \?CND53 CALL DRAGON-LEAVES JUMP ?CND53 ?ELS55: EQUAL? ROOM,CAROUSEL-ROOM,TINY-ROOM /?THN61 EQUAL? ROOM,RAVINE-LEDGE,FRESCO-ROOM \?ELS60 ?THN61: RANDOM 100 GRTR? 25,STACK \?CND63 CALL DRAGON-LEAVES ?CND63: PRINTI "The dragon will follow no further." CRLF JUMP ?CND1 ?ELS60: EQUAL? ROOM,GLACIER-ROOM \?ELS69 CRLF PRINTI "As the dragon enters, he sees his reflection on the icy surface of the glacier at its western end. He becomes enraged: There is another dragon here, behind that glass, he thinks! Dragons are smart, but sometimes naive, and this one has never seen ice before. He rears up to his full height to challenge this intruder into his territory. He roars a challenge! The intruder responds! The dragon takes a deep breath, and out of his mouth pours a massive gout of flame. It washes over the ice, which melts rapidly, sending out torrents of water and a huge cloud of steam! You manage to clamber up to a small shelf, but the dragon is terrified! A huge splash goes down his throat! There is a muffled explosion and the dragon, a puzzled expression on his face, dies. He is carried away by the water. When the flood recedes you climb gingerly down. While no trace of the dragon can be found, the melting of the ice has revealed a passage leading west." CRLF REMOVE DRAGON REMOVE ICE MOVE DEAD-DRAGON,DEEP-FORD CALL INT,I-DRAGON PUT STACK,0,0 CALL SCORE-UPD,5 SET 'ICE-MELTED,TRUE-VALUE JUMP ?CND1 ?ELS69: EQUAL? ROOM,OLD-HERE /?ELS76 MOVE DRAGON,ROOM PRINTI "The dragon follows you, out of mingled curiosity and anger." CRLF JUMP ?CND74 ?ELS76: PRINTI "The dragon continues to watch you carefully." CRLF ?CND74: GRTR? DRAGON-ANGER,0 /?CND53 SET 'DRAGON-ANGER,0 CALL INT,I-DRAGON PUT STACK,0,0 ?CND53: ?CND1: LOC DRAGON >OLD-HERE SUB DRAGON-ANGER,2 >DRAGON-ANGER LESS? DRAGON-ANGER,0 \TRUE SET 'DRAGON-ANGER,0 RTRUE .FUNCT DRAGON-LEAVES LOC DEAD-DRAGON ZERO? STACK \FALSE MOVE DRAGON,DRAGON-ROOM SET 'DRAGON-ANGER,0 CALL INT,I-DRAGON PUT STACK,0,0 RTRUE .FUNCT I-GARDEN EQUAL? HERE,GARDEN-NORTH,GAZEBO-ROOM /?THN6 EQUAL? HERE,TOPIARY-ROOM,FORMAL-GARDEN \?ELS5 ?THN6: IN? UNICORN,GARDEN-NORTH \?ELS12 RANDOM 100 GRTR? 33,STACK \?ELS12 REMOVE UNICORN EQUAL? HERE,TOPIARY-ROOM /FALSE PRINTR "The unicorn bounds lightly away." ?ELS12: IN? PRINCESS,DRAGON-LAIR \?ELS23 IN? UNICORN,GARDEN-NORTH /?ELS23 RANDOM 100 GRTR? 25,STACK \?ELS23 EQUAL? HERE,TOPIARY-ROOM /?ELS23 ZERO? UNICORN-FRIGHTENED /?CND26 SET 'UNICORN-FRIGHTENED,FALSE-VALUE RFALSE ?CND26: MOVE UNICORN,GARDEN-NORTH EQUAL? HERE,GARDEN-NORTH \?ELS34 CALL RANDOM-ELEMENT,UNICORN-MSGS PRINT STACK CRLF RTRUE ?ELS34: PRINTR "A unicorn is peacefully cropping grass at the north end of the garden. There is something hanging around its neck." ?ELS23: EQUAL? HERE,TOPIARY-ROOM \FALSE ZERO? TOPIARY-MOVED \?ELS47 RANDOM 100 GRTR? 12,STACK \?ELS47 SET 'TOPIARY-MOVED,TRUE-VALUE PRINTR "You look around, and strangely, the topiary animals seem to have changed position slightly." ?ELS47: ZERO? TOPIARY-MOVED /?ELS53 ZERO? TOPIARY-NEAR \?ELS53 RANDOM 100 GRTR? 8,STACK \?ELS53 SET 'TOPIARY-NEAR,TRUE-VALUE PRINTR "The topiary animals seem to close in on you. You turn and they are very close. They seem to be leering at you." ?ELS53: ZERO? TOPIARY-NEAR /FALSE RANDOM 100 GRTR? 4,STACK \FALSE SET 'TOPIARY-MOVED,FALSE-VALUE SET 'TOPIARY-NEAR,FALSE-VALUE CALL JIGS-UP,STR?275 RSTACK ?ELS5: REMOVE UNICORN CALL INT,I-GARDEN PUT STACK,0,0 RFALSE .FUNCT GARDEN-ROOM-FCN,RARG EQUAL? RARG,M-ENTER \FALSE CALL QUEUE,I-GARDEN,-1 PUT STACK,0,1 RTRUE .FUNCT GLOBAL-UNICORN-FCN IN? UNICORN,GARDEN-NORTH \?ELS5 PRINTR "The unicorn is way up at the north end of the garden." ?ELS5: EQUAL? PRSA,V?FOLLOW,V?FIND \?ELS9 FSET? UNICORN,TOUCHBIT \?ELS14 PRINTR "I don't know where it is now." ?ELS14: PRINTR "The unicorn is a mythical beast." ?ELS9: PRINTR "Unicorn? What unicorn?" .FUNCT UNICORN-FCN CALL HELLO?,UNICORN ZERO? STACK /?ELS5 PRINTR "The unicorn listens distractedly, then goes back to cropping grass." ?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS9 PRINTR "The unicorn shies away as you approach." ?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13 EQUAL? PRSO,UNICORN \?ELS13 PRINTR "The unicorn shies away as you approach for a closer look, but you do notice a tiny gold key hanging from a red satin ribbon looped around the animal's neck." ?ELS13: EQUAL? PRSA,V?EXAMINE \?ELS19 PRINTR "The unicorn shies away as you approach." ?ELS19: EQUAL? PRSA,V?RUB,V?PUT,V?TAKE /?THN24 EQUAL? PRSA,V?ATTACK,V?MUNG \FALSE ?THN24: REMOVE UNICORN SET 'UNICORN-FRIGHTENED,TRUE-VALUE PRINTR "The unicorn, unsurprised by this evidence that you are indeed the uncouth sort of vagabond it suspected you were, melts into the hedges and is gone." .FUNCT GAZEBO-FCN EQUAL? HERE,GARDEN-NORTH \?ELS5 EQUAL? PRSA,V?THROUGH \?ELS5 CALL DO-WALK,P?IN RTRUE ?ELS5: EQUAL? HERE,GAZEBO-ROOM \?ELS9 EQUAL? PRSA,V?THROUGH \?ELS9 PRINTR "You're already in it." ?ELS9: EQUAL? HERE,GAZEBO-ROOM \FALSE EQUAL? PRSA,V?EXIT,V?LEAVE \FALSE CALL DO-WALK,P?OUT RTRUE .FUNCT CHEST-FCN EQUAL? PRSA,V?OPEN \FALSE RANDOM 100 GRTR? 25,STACK \?ELS8 CALL V-OPEN IN? PRINCESS,HERE \?CND6 ZERO? PRINCESS-AWAKE \?CND6 PRINTI "The opening of the squeaky lid startles the young woman." CRLF JUMP ?CND6 ?ELS8: PRINTI "The hinges are very rusty, but they seem to be starting to give. You can probably open it if you try again. There is something bumping around inside." IN? PRINCESS,HERE \?CND20 ZERO? PRINCESS-AWAKE \?CND20 PRINTI " All this rummaging around has startled the young woman." ?CND20: CRLF ?CND6: PUTP CHEST,P?ACTION,0 IN? PRINCESS,HERE \TRUE ZERO? PRINCESS-AWAKE \TRUE CALL PERFORM,V?ALARM,PRINCESS RTRUE .FUNCT PRINCESS-FCN,DEM CALL INT,I-PRINCESS >DEM EQUAL? PRSA,V?FOLLOW \?ELS5 IN? PRINCESS,HERE \?ELS8 PRINTR "You can't follow her until she leaves..." ?ELS8: ZERO? PRFOLLOW /?ELS12 CALL DO-WALK,PRFOLLOW RTRUE ?ELS12: PRINTR "I seem to have lost track of her." ?ELS5: IN? PRINCESS,HERE /?ELS19 PRINTR "There is no princess here." ?ELS19: EQUAL? PRSA,V?RAPE,V?MUNG,V?ATTACK \?ELS23 REMOVE PRINCESS PRINTI "The princess screams as you approach. ""Won't someone deliver me from this awful fate?"" she cries. " IN? WIZARD,HERE \?ELS28 PRINTI "Shocked, the Wizard of Frobozz turns toward you." JUMP ?CND26 ?ELS28: PRINTI "Just in time, the Wizard of Frobozz appears, seeming to unroll himself out of nothing like a window shade." ?CND26: PRINTI " ""Fry!"" he intones, and a massive bolt of lightning reduces you to a pile of smoking ashes. (Serves you right, too, if you ask me.)" CALL JIGS-UP RSTACK ?ELS23: CALL HELLO?,PRINCESS ZERO? STACK \?THN39 EQUAL? PRSA,V?EXAMINE,V?KISS,V?ALARM /?THN39 EQUAL? PRSA,V?RUB \?ELS38 ?THN39: IN? PRINCESS,DRAGON-LAIR \?ELS45 GET DEM,C-ENABLED? ZERO? STACK \?ELS45 PUTP PRINCESS,P?LDESC,STR?280 CALL QUEUE,I-PRINCESS,2 PUT STACK,0,1 SET 'PRINCESS-AWAKE,TRUE-VALUE PRINTR "The princess (for she is obviously one) shakes herself awake, then notices you for the first time. She smiles. ""Thank you for rescuing me from that horrid worm,"" she says. ""I must depart. My parents will be worried about me."" With that, she arises, looking purposefully out of the lair." ?ELS45: PRINTI "The princess ignores you. She looks about the room, but her eyes fix on the " EQUAL? HERE,GAZEBO-ROOM \?ELS56 PRINTI "garden outside" JUMP ?CND54 ?ELS56: EQUAL? HERE,GARDEN-NORTH \?ELS60 PRINTI "gazebo" JUMP ?CND54 ?ELS60: EQUAL? HERE,RAVINE-LEDGE \?ELS64 PRINTI "ledge" JUMP ?CND54 ?ELS64: MUL PRCOUNT,4 GET PRDIRS,STACK PRINT STACK ?CND54: PRINTR "." ?ELS38: ZERO? PRINCESS-AWAKE \FALSE PRINTR "She's in a trance!" .FUNCT I-PRINCESS,DEM,OLDP,PC CALL INT,I-PRINCESS >DEM LOC PRINCESS >OLDP MUL PRCOUNT,4 >PC ADD PC,1 GET PRDIRS,STACK MOVE PRINCESS,STACK SET 'PRFOLLOW,FALSE-VALUE IN? PRINCESS,STREAM-PATH \?ELS3 IN? WINNER,MARBLE-HALL \?ELS3 PRINTI "The princess presses a loose piece of marble in the wall and a large section of the wall slides away, revealing a passage to the east. She enters it." CRLF IN? WINNER,OLDP \?CND8 ADD PC,3 GET PRDIRS,STACK >PRFOLLOW ?CND8: SET 'SECRET-DOOR,TRUE-VALUE JUMP ?CND1 ?ELS3: IN? PRINCESS,STREAM-PATH \?ELS12 IN? WINNER,STREAM-PATH \?ELS12 SET 'SECRET-DOOR,TRUE-VALUE PRINTI "The princess appears from behind some rocks, as though she had walked through a wall." CRLF JUMP ?CND1 ?ELS12: IN? WINNER,OLDP \?ELS18 ADD PC,3 GET PRDIRS,STACK >PRFOLLOW EQUAL? OLDP,GARDEN-NORTH \?ELS21 PRINTI "The princess enters the gazebo" FSET? GAZEBO-ROOM,RMUNGBIT \?CND24 PRINTI ", although you would never get past the debris. She must be magically protected." ?CND24: PRINTI "." CRLF JUMP ?CND1 ?ELS21: EQUAL? OLDP,RAVINE-LEDGE \?ELS32 PRINTI "The princess climbs daintily down the rock face." CRLF JUMP ?CND1 ?ELS32: PRINTI "The princess walks " GET PRDIRS,PC PRINT STACK PRINTI ". She glances back at you as she goes." CRLF JUMP ?CND1 ?ELS18: IN? PRINCESS,HERE \?CND1 EQUAL? HERE,GAZEBO-ROOM \?ELS47 PRINTI "The princess joins you in the gazebo." CRLF JUMP ?CND1 ?ELS47: EQUAL? HERE,DEEP-FORD \?ELS51 PRINTI "The princess climbs down the rock wall onto the beach." CRLF JUMP ?CND1 ?ELS51: PRINTI "The princess enters from the " ADD 2,PC GET PRDIRS,STACK PRINT STACK PRINTI ". She seems surprised to see you." CRLF ?CND1: IN? PRINCESS,GAZEBO-ROOM \?ELS64 PUT DEM,0,0 CALL QUEUE,I-UNICORN,6 PUT STACK,0,1 RTRUE ?ELS64: INC 'PRCOUNT RANDOM 100 GRTR? 75,STACK \?ELS71 PUSH 1 JUMP ?CND67 ?ELS71: PUSH 2 ?CND67: CALL QUEUE,I-PRINCESS,STACK PUT STACK,0,1 RTRUE .FUNCT I-UNICORN EQUAL? HERE,GAZEBO-ROOM,GARDEN-NORTH \?ELS5 MOVE ROSE,WINNER FCLEAR GOLD-KEY,NDESCBIT MOVE GOLD-KEY,WINNER CALL SCORE-OBJ,GOLD-KEY PUTP GOLD-KEY,P?ACTION,0 PRINTI "Shyly, a unicorn peeks out of the hedges. It notices the princess and seems captivated. It approaches her and bows its head as though curtseying to her. Around its neck is a red satin ribbon on which is strung a delicate gold key. The princess takes the ribbon and uses it to tie up her hair. She looks at you and then, smiling, hands you the key and a fresh rose which she plucks from the arbor. ""You may have use of such a thing,"" she says. ""It is the least I can do for one who rescued me from a fate I dare not contemplate."" With that, she mounts the unicorn (side-saddle, of course) and rides off into the gloom." CRLF REMOVE PRINCESS RTRUE ?ELS5: REMOVE PRINCESS MOVE ROSE,GAZEBO-ROOM RFALSE .FUNCT MENHIR-ROOM-FCN,RARG EQUAL? RARG,M-FLASH \?ELS5 ZERO? MENHIR-POSITION /?ELS5 CALL DESCRIBE-MENHIR RSTACK ?ELS5: EQUAL? RARG,M-LOOK \FALSE PRINTI "This is a large room which was evidently used once as a quarry. Many large limestone chunks lie helter-skelter around the room. Some are rough-hewn and unworked, others smooth and well-finished. One side of the room appears to have been used to quarry building blocks, the other to produce menhirs (standing stones). Obvious passages lead north and south." CRLF IN? MENHIR,LOCAL-GLOBALS \TRUE CALL DESCRIBE-MENHIR RTRUE .FUNCT DESCRIBE-MENHIR EQUAL? HERE,MENHIR-ROOM \?ELS5 EQUAL? MENHIR-POSITION,FALSE-VALUE \?ELS8 PRINTI "One particularly large menhir, at least twenty feet tall and eight feet thick, is leaning against the wall blocking a dark opening leading southwest. On this side of the menhir is carved an ornate letter ""F""." CRLF JUMP ?CND6 ?ELS8: EQUAL? MENHIR-POSITION,1 \?ELS12 PRINTI "There is a huge menhir lying on the floor near a southwest passage." CRLF JUMP ?CND6 ?ELS12: EQUAL? MENHIR-POSITION,2 \?ELS16 PRINTI "A dark opening leads southwest." CRLF JUMP ?CND6 ?ELS16: EQUAL? MENHIR-POSITION,3 \?ELS20 PRINTI "There is a huge menhir here." CRLF JUMP ?CND6 ?ELS20: PRINTI "There is a huge menhir floating like a feather in midair here. A passage to the southwest opens beneath it." CRLF ?CND6: EQUAL? HERE,MUNGED-ROOM \TRUE PRINTR "The explosion appears to have had no effect on the menhir." ?ELS5: PRINTR "A dark opening leads southwest." .FUNCT MENHIR-FCN EQUAL? PRSA,V?LOOK-BEHIND,V?LOOK-UNDER \?ELS5 ZERO? MENHIR-POSITION /?ELS10 PRINTR "Behind the menhir is some air and then a wall." ?ELS10: PRINTR "The gap between the menhir and the wall is very narrow, but it is clear that there is a sizeable room in there. Your light only reveals a part of the far wall." ?ELS5: EQUAL? PRSA,V?TURN,V?MOVE,V?TAKE \?ELS19 PRINTR "The menhir weighs many tons and is eight feet wide. You can't even get a grip on it, much less move it." ?ELS19: EQUAL? PRSA,V?READ \?ELS23 PRINTR """F""" ?ELS23: EQUAL? PRSA,V?EXAMINE \?ELS27 PRINTR "It is nicely finished, and the letter ""F"" on it is particularly well carved." ?ELS27: EQUAL? PRSA,V?ENCHANT \?ELS31 EQUAL? SPELL-USED,W?FLOAT \?ELS31 PRINTI "The menhir floats majestically into the air, rising about ten feet. The passage beneath it beckons invitingly." CRLF SET 'MENHIR-POSITION,3 RETURN MENHIR-POSITION ?ELS31: EQUAL? PRSA,V?DISENCHANT \FALSE EQUAL? SPELL-USED,W?FLOAT \FALSE SET 'MENHIR-POSITION,FALSE-VALUE EQUAL? HERE,MENHIR-ROOM,KENNEL \FALSE PRINTR "The menhir sinks to the ground." .FUNCT DOOR-KEEPER-FCN EQUAL? PRSA,V?ALARM \?ELS5 ZERO? GUARDIAN-FED /?ELS5 PRINTR "Try as you may, you can't wake it." ?ELS5: EQUAL? PRSA,V?GIVE \?ELS11 EQUAL? PRSI,DOOR-KEEPER \?ELS11 ZERO? GUARDIAN-FED /?ELS18 PRINTR "He is asleep, at least for the moment." ?ELS18: EQUAL? PRSO,CANDY \?ELS23 SET 'GUARDIAN-FED,TRUE-VALUE REMOVE CANDY PRINTR "The guardian greedily wolfs down the candy, including the package. (It seemed to enjoy the grasshoppers particularly.) It then becomes quiet and its eyes close. (Lizards are known to sleep a long time while digesting their meals.)" ?ELS23: EQUAL? PRSO,FLASK \?ELS27 PRINTR "The lizard sniffs it experimentally, then looks at you angrily, hissing and snapping." ?ELS27: CALL BOMB?,PRSO ZERO? STACK /?ELS31 REMOVE PRSO PRINTR "The guardian greedily wolfs it down. After a while, you hear a very small pop and the guardian's eyes bulge out. It hisses nastily at you." ?ELS31: EQUAL? PRSO,PALANTIR-1,PALANTIR-2,PALANTIR-3 \?ELS35 PRINTI "The guardian greedily gobbles the sphere, but finds it unchewable. He then tries repeatedly to swallow it whole, with disappointing results. Finally, he spits it on the ground." CRLF MOVE PRSO,HERE RTRUE ?ELS35: REMOVE PRSO PRINTI "The lizard wolfs down the " PRINTD PRSO PRINTR ", crunching greedily." ?ELS11: EQUAL? PRSA,V?MUNG,V?ATTACK \FALSE PRINTR "The guardian seems impervious to your attack. In fact, your blows don't even seem to be landing." .FUNCT WIZ-DOOR-FCN ZERO? GUARDIAN-FED \?ELS5 EQUAL? PRSA,V?OPEN \?ELS10 PRINTR "The lizard comes to life and snaps at you as you reach for the handle." ?ELS10: EQUAL? PRSA,V?UNLOCK \FALSE PRINTI "The lizard door keeper comes awake and bites at your hand. You jerk away just in time." EQUAL? PRSI,GOLD-KEY \?ELS21 RANDOM 100 GRTR? 5,STACK \?ELS21 REMOVE GOLD-KEY PRINTR " The guardian does get the key, though. It grins maniacally." ?ELS21: RANDOM 100 GRTR? 20,STACK \?ELS27 MOVE GOLD-KEY,HERE PRINTR " You drop the key, though." ?ELS27: CRLF RTRUE ?ELS5: EQUAL? PRSA,V?UNLOCK \?ELS33 ZERO? WIZ-DOOR-FLAG /?ELS38 PRINTR "It is already!" ?ELS38: EQUAL? PRSI,GOLD-KEY \?ELS43 SET 'WIZ-DOOR-FLAG,TRUE-VALUE PRINTR "The key turns and the bolt clicks. The door is unlocked." ?ELS43: SET 'WIZ-DOOR-FLAG,FALSE-VALUE PRINTR "That won't unlock it." ?ELS33: EQUAL? PRSA,V?LOCK \?ELS51 ZERO? WIZ-DOOR-FLAG \?ELS56 PRINTR "It is locked already." ?ELS56: EQUAL? PRSI,GOLD-KEY \?ELS60 PRINTI "The door is now locked." CRLF SET 'WIZ-DOOR-FLAG,FALSE-VALUE RTRUE ?ELS60: PRINTR "That won't lock it." ?ELS51: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE ZERO? WIZ-DOOR-FLAG /?ELS73 CALL OPEN-CLOSE,PRSO,STR?287,STR?288 RSTACK ?ELS73: EQUAL? PRSA,V?OPEN \FALSE PRINTR "The door is locked!" .FUNCT GUARDIAN-ROOM-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "This room is cobwebby and musty, but tracks in the dust show that it has seen visitors recently. At the south end of the room is a stained and battered (but very strong-looking) door. To the north, a corridor exits." CRLF FSET? WIZ-DOOR,OPENBIT \?CND8 PRINTI "The door is open." CRLF ?CND8: ZERO? GUARDIAN-FED \?ELS17 PRINTI "Imbedded in the door is a nasty-looking lizard head, with sharp teeth and beady eyes. " IN? CANDY,WINNER \?ELS24 PRINTR "The lizard is sniffing at you." ?ELS24: PRINTR "The eyes move to watch you approach." ?ELS17: PRINTR "A sleepy-looking lizard head is mounted on the door." .FUNCT WORKSHOP-FCN,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You are standing in the entry hall of the Wizard's Workshop. Dark corridors lead west and south from here. The corridor to the west smells slightly of incense or candle smoke." FSET? WIZ-DOOR,OPENBIT \?CND8 PRINTI " The workshop door is open." ?CND8: CRLF RTRUE .FUNCT ARCANA-PSEUDO EQUAL? PRSA,V?TAKE \FALSE PRINTR "The stuff on the bench appears to be so much junk, and you decide that it would only get in your way if you took it." .FUNCT TROPHY-PSEUDO EQUAL? PRSA,V?READ /FALSE EQUAL? PRSA,V?RUB,V?TAKE \FALSE PRINTR "As your fingers near it, you get a nasty shock (but fortunately not a fatal one)." .FUNCT STAND-FCN EQUAL? PRSA,V?TAKE \?ELS5 PRINTI "The " PRINTD PRSO PRINTR " is firmly attached to the bench." ?ELS5: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE EQUAL? PRSO,PALANTIR-1,PALANTIR-2,PALANTIR-3 \FALSE EQUAL? PRSI,STAND-1,STAND-2,STAND-3 \FALSE CALL V-PUT IN? PALANTIR-1,STAND-1 \TRUE IN? PALANTIR-2,STAND-2 \TRUE IN? PALANTIR-3,STAND-3 \TRUE REMOVE PALANTIR-1 REMOVE PALANTIR-2 REMOVE PALANTIR-3 MOVE STAND-4,WORKBENCH PRINTI "As you place the " PRINTD PRSO PRINTI " in the " PRINTD PRSI PRINTI ", a low humming noise begins, and you can feel the hairs on the back of your neck begin to stand up. The three spheres begin to vibrate, faster and faster, as the noise becomes higher and higher pitched. Three puffs of smoke, one red, one blue, one white, rise up from empty stands. The spheres are gone! But in the center of the triangle formed by the stands is now a black stand of obsidian in which rests a strange black sphere." CRLF RTRUE .FUNCT IN-AQUARIUM-FCN,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTI "There is a sandy floor here, and your vision seems murky and blurred. The wall you are looking at is nicely dressed stone." CRLF IN? SERPENT,AQUARIUM \TRUE RANDOM 100 GRTR? 25,STACK \?ELS13 PRINTR "While you watch a shadow seems to pass overhead." ?ELS13: RANDOM 100 GRTR? 5,STACK \TRUE PRINTI "The head of some horrible serpent pokes into view, its beady green eyes almost seeming to see you." CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \FALSE IN? SERPENT,AQUARIUM \?ELS26 CALL JIGS-UP,STR?289 RSTACK ?ELS26: CALL JIGS-UP,STR?290 RSTACK .FUNCT AQUARIUM-FCN,OBJ EQUAL? PRSA,V?THROUGH,V?BOARD \?ELS5 CALL DO-WALK,P?IN RTRUE ?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS7 IN? SERPENT,AQUARIUM \?ELS7 PRINTR "In the aquarium is a baby sea-serpent who eyes you suspiciously. His scaly body writhes about in the huge tank." ?ELS7: EQUAL? PRSA,V?ATTACK,V?MUNG \?ELS17 EQUAL? PRSO,AQUARIUM /?THN14 ?ELS17: EQUAL? PRSA,V?THROW \FALSE EQUAL? PRSI,AQUARIUM \FALSE ?THN14: EQUAL? PRSO,AQUARIUM \?ELS22 ZERO? PRSI /FALSE SET 'OBJ,PRSI JUMP ?CND20 ?ELS22: SET 'OBJ,PRSO ?CND20: MOVE OBJ,HERE IN? DEAD-SERPENT,HERE \?ELS34 PRINTR "The aquarium is already broken!" ?ELS34: EQUAL? OBJ,FLASK \?ELS38 CALL JIGS-UP,STR?291 RTRUE ?ELS38: CALL BOMB?,OBJ ZERO? STACK /?ELS40 CALL INT,I-FUSE PUT STACK,0,0 RTRUE ?ELS40: FSET? OBJ,WEAPONBIT /?THN43 GETP OBJ,P?SIZE GRTR? STACK,10 \?ELS42 ?THN43: REMOVE SERPENT MOVE PALANTIR-3,AQUARIUM FCLEAR PALANTIR-3,NDESCBIT PUTP AQUARIUM,P?LDESC,STR?292 MOVE DEAD-SERPENT,HERE PRINTI "The " PRINTD OBJ PRINTI " shatters the glass wall of the aquarium, spilling out an impressive amount of salt water and wet sand. It also spills out an extremely annoyed sea serpent who bites angrily at the " PRINTD OBJ PRINTI ", and then at you. He is having difficulty breathing, and he seems to hold you responsible for his current problem." EQUAL? PRSA,V?MUNG \?ELS51 PRINTI " He manages to rend you limb from limb before he drowns in the air." CRLF CALL JIGS-UP,STR?293 RSTACK ?ELS51: PRINTR " He tries to slither across the stone floor towards you. Fortunately, he expires mere inches away from biting off your foot. A clear crystal sphere sits amid the sand and broken glass on the bottom of the aquarium." ?ELS42: PRINTI "The " PRINTD OBJ PRINTR " bounces harmlessly off the glass." .FUNCT SERPENT-FCN EQUAL? SERPENT,WINNER \?ELS5 PRINTR "The serpent only stares hungrily at you." ?ELS5: EQUAL? PRSA,V?MUNG,V?ATTACK \?ELS9 PRINTR "He swims towards you with a powerful stroke of his flippers, dagger-like teeth dripping. Fortunately, he doesn't want to crash into the aquarium wall, and contents himself with splashing you with water." ?ELS9: EQUAL? PRSA,V?PUT \?ELS13 EQUAL? PRSO,SERPENT \?ELS13 PRINTR "Impossible for many reasons." ?ELS13: EQUAL? PRSA,V?GIVE,V?TAKE \FALSE CALL JIGS-UP,STR?294 RSTACK .FUNCT DEAD-SERPENT-FCN EQUAL? PRSA,V?TAKE \FALSE PRINTR "This may only be a baby sea serpent, but it's as big as a small whale." .FUNCT GENIE-FCN,RARG=M-OBJECT,V,HOARD EQUAL? PRSA,V?HELLO \?ELS5 PRINTR "The genie grins demonically, but says nothing." ?ELS5: EQUAL? WINNER,GENIE \?ELS9 ZERO? GENIE-READY? \?ELS14 PRINTI """My fee is not paid! I perform no tasks for free! We demons have a strong union these days.""" CRLF RETURN 2 ?ELS14: EQUAL? PRSA,V?SGIVE /FALSE GET P-PRSO,0 GRTR? STACK,1 /?THN23 GET P-PRSI,0 GRTR? STACK,1 \?ELS22 ?THN23: PRINTI """I will do one thing only, oh gracious master!""" CRLF RETURN 2 ?ELS22: EQUAL? PRSA,V?MOVE \?ELS30 EQUAL? PRSO,GLOBAL-MENHIR \?ELS30 SET 'MENHIR-POSITION,1 PRINTI "The demon is gone for a moment. ""A trifle... My little finger alone was enough.""" CRLF CALL GENIE-LEAVES RSTACK ?ELS30: EQUAL? PRSA,V?TAKE \?ELS36 EQUAL? PRSO,GLOBAL-MENHIR \?ELS41 REMOVE MENHIR SET 'MENHIR-POSITION,2 PRINTI "The demon flashes away for a second. ""I have little use for such a thing, but perhaps as a doorstop...""" CRLF CALL GENIE-LEAVES RSTACK ?ELS41: EQUAL? PRSO,WAND \?ELS45 PRINTI """This I do gladly, oh fool!"" cackles the demon gleefully. He stretches out an enormous hand towards the wand and taking it like a toothpick (this is a large demon), points it at himself. ""Free!"" he commands, and the demon and his wand vanish forever." CRLF CALL GENIE-LEAVES,FALSE-VALUE REMOVE WAND RTRUE ?ELS45: FSET? PRSO,TAKEBIT \?ELS49 CALL GENIE-LEAVES,FALSE-VALUE REMOVE PRSO PRINTI "The demon snaps his fingers, the " PRINTD PRSO PRINTR " spins wildly in the air in front of him, then he and it depart." ?ELS49: PRINTR """I fear that I cannot take such a thing.""" ?ELS36: EQUAL? PRSA,V?GIVE \?ELS57 EQUAL? PRSI,ME \?ELS57 EQUAL? PRSO,WAND \?ELS64 PRINTI """I hear and obey!"" says the demon. He stretches out an enormous hand towards the wand. The Wizard is unsure what to do, pointing it threateningly at the demon, then at you. ""Fudge!"" he cries, but aside from a strong odor of chocolate in the air, there is no effect. The demon plucks the wand out of his hand (it's about toothpick-size to him) and gingerly lays it before you. He fades into the smoke, which disperses. The wizard runs from the room in terror." CRLF REMOVE WIZARD CALL GENIE-LEAVES,FALSE-VALUE FCLEAR WAND,NDESCBIT MOVE WAND,HERE RTRUE ?ELS64: EQUAL? PRSO,GLOBAL-MENHIR \?ELS68 MOVE MENHIR,PENTAGRAM-ROOM FCLEAR MENHIR,NDESCBIT FCLEAR MENHIR,TAKEBIT SET 'MENHIR-POSITION,3 PRINTI "He waves his hands, and the menhir drops softly at your feet." CRLF CALL GENIE-LEAVES RSTACK ?ELS68: FSET? PRSO,TAKEBIT \?ELS72 MOVE PRSO,PENTAGRAM-ROOM PRINTI "The " PRINTD PRSO PRINTI " appears before you and settles to the ground." CRLF CALL GENIE-LEAVES RSTACK ?ELS72: PRINTR """Were it possible, this would be my fondest wish, but alas...""" ?ELS57: EQUAL? PRSA,V?ATTACK \?ELS80 EQUAL? PRSO,GLOBAL-CERBERUS \?ELS85 PRINTR """This may prove taxing, but we'll see. Perhaps I'll tame him for a pup instead."" The demon disappears for an instant, then reappears. He looks rather gnawed and scratched. He winces. ""Too much for me. Puppy dog, indeed. You're welcome to him. Never did like dogs anyway... Any other orders, oh beneficent one?""" ?ELS85: EQUAL? PRSO,WIZARD \?ELS89 PRINTI "The demon grins hideously. ""This has been my desire e'er since this charlatan bent me to his service. I perform this deed with pleasure!"" The demon forms himself back into a cloud of greasy smoke. The cloud envelops the Wizard, who waves his wand fruitlessly, mumbling various phrases which begin with ""F"". A horrible scream is heard, and the smoke begins to clear. Nothing remains of the Wizard but his wand." CRLF REMOVE WIZARD FCLEAR WAND,NDESCBIT MOVE WAND,HERE CALL GENIE-LEAVES RSTACK ?ELS89: EQUAL? PRSO,ME \?ELS93 CALL GENIE-LEAVES,FALSE-VALUE SET 'WINNER,ADVENTURER CALL JIGS-UP,STR?295 RSTACK ?ELS93: PRINTI """I know no way to kill a " PRINTD PRSO PRINTR ".""" ?ELS80: EQUAL? PRSA,V?EXAMINE,V?FIND \?ELS99 PRINTI """I am not permitted to " EQUAL? PRSA,V?FIND \?ELS104 PRINTI "answer questions" JUMP ?CND102 ?ELS104: PRINTI "perform such menial tasks" ?CND102: PRINTR ". The terms of my contract are explicit on this matter, learned one. Surely you would not wish to violate my contract?"" He licks his lips with a forked tongue like a snake's. ""The penalty clauses are ... hmm ... devilish.""" ?ELS99: PRINTR """Apologies, oh master, but even for such a one as I this is not possible."" He seems somewhat chagrined to have to admit this." ?ELS9: EQUAL? PRSA,V?MUNG,V?ATTACK,V?EXORCISE \?ELS118 PRINTR "The demon laughs uproariously." ?ELS118: EQUAL? PRSA,V?GIVE \FALSE EQUAL? PRSI,GENIE \FALSE EQUAL? PRSO,IRON-BOX \?CND125 IN? VIOLIN,PRSO \?CND125 PRINTI "The genie frowns briefly, then " FSET? PRSO,OPENBIT \?ELS134 PRINTI "looks inside" JUMP ?CND132 ?ELS134: PRINTI "opens" ?CND132: PRINTI " the box. He smiles horribly." CRLF CALL REMOVE-CAREFULLY,IRON-BOX SET 'PRSO,VIOLIN ?CND125: GETPT PRSO,P?VALUE ZERO? STACK /?ELS147 EQUAL? PRSO,SWORD /?ELS147 CALL REMOVE-CAREFULLY,PRSO INC 'GENIE-HOARD CALL SCORE-UPD,2 CALL CASE-WORTH ADD GENIE-HOARD,STACK >HOARD LESS? HOARD,TREASURES-MAX /?ELS154 SET 'GENIE-READY?,TRUE-VALUE PUTP WIZARD,P?LDESC,STR?296 PRINTR """This will do for my fee. 'Tis a paltry hoard, but as you have done me a small service by loosing me from this wizard, it will suffice.""" ?ELS154: PRINTI """" GET GENIE-THANKS,HOARD PRINT STACK PRINTI """" CRLF EQUAL? HOARD,8 \TRUE PRINTR "The Wizard looks at you as if you are a madman. He tears his beard and stares at you fearfully." ?ELS147: CALL BOMB?,PRSO ZERO? STACK /?ELS167 CALL GENIE-LEAVES,FALSE-VALUE PRINTR """I fear that this violates my contract, oh foolish one. Thus, I am free to depart.""" ?ELS167: CALL REMOVE-CAREFULLY,PRSO PRINTI "The demon gladly takes the " PRINTD PRSO PRINTR " and smiles balefully, revealing enormous fangs." .FUNCT GENIE-LEAVES,NOISY?=1 FSET GENIE,INVISIBLE ZERO? NOISY? /?CND1 PRINTI "The genie departs, his agreement fulfilled." CRLF ?CND1: SET 'P-CONT,FALSE-VALUE RETURN 2 .FUNCT CASE-WORTH,F,W=0 FIRST? WIZARD-CASE >F /?KLU9 ?KLU9: ?PRG1: ZERO? F \?CND3 RETURN W ?CND3: GETPT F,P?VALUE ZERO? STACK /?CND6 INC 'W ?CND6: NEXT? F >F /?KLU10 ?KLU10: JUMP ?PRG1 .FUNCT PENTAGRAM-FCN,RARG=M-BEG EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?BOARD,V?THROUGH \?ELS10 PRINTR "You try to enter the pentagram, but are forced back by an invisible power." ?ELS10: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE EQUAL? PRSO,PALANTIR-4 \FALSE REMOVE PALANTIR-4 FCLEAR GENIE,INVISIBLE MOVE GENIE,PENTAGRAM-ROOM PRINTR "A cold wind blows outward from the sphere. The candles flicker, and a low moan, almost inaudible, is heard. It rises in volume and pitch until it becomes a high-pitched keening. A dim shape becomes visible in the air above the sphere. The shape resolves into a large and somewhat formidable looking demon. He looks around, tests the walls of the pentagram experimentally, then sees you! ""Hmm, a new master..."" he says under his breath. ""Greetings, oh master! Wouldst desire a service, as our contract stateth? For some pittance of wealth, some trifle, I will gratify thy desires to the utmost limit of my powers, and they are not inconsiderable."" He makes a pass with his massive arms and the walls begin to shake a little. Another pass and the shaking stops. ""A nice effect... I find it makes for a better relationship to give such a demonstration early on."" He grins vilely." .FUNCT WIZARD-FCN,RARG=M-OBJECT,OLIT EQUAL? WINNER,WIZARD \?ELS5 EQUAL? PRSA,V?GIVE \?ELS10 PRINTR "The Wizard replies ""Foolishment!""" ?ELS10: PRINTR "The Wizard considers your statement carefully. His expression indicates he regards it as fanciful." ?ELS5: EQUAL? PRSA,V?GIVE \?ELS18 EQUAL? PRSI,WIZARD \?ELS18 SET 'OLIT,LIT CALL REMOVE-CAREFULLY,PRSO CALL BOMB?,PRSO ZERO? STACK /?ELS25 IN? GENIE,PENTAGRAM-ROOM \?ELS30 MOVE PRSO,HERE PRINTR "The wizard accepts this final folly resignedly." ?ELS30: REMOVE WIZARD PRINTR """Hmm..."" The Wizard mutters something, then waves his wand over the bomb. It transforms into a bouquet of flowers. Both Wizard and flowers disappear." ?ELS25: ZERO? OLIT /?ELS38 ZERO? LIT \?ELS38 PRINTI """Thank you."" As the Wizard places the " PRINTD PRSO PRINTR " under his robe, the room becomes dark." ?ELS38: PRINTR """Thank you.""" ?ELS18: CALL HELLO?,WIZARD ZERO? STACK /?ELS48 PRINTR "The Wizard seems surprised, much as you might be if a dog talked." ?ELS48: EQUAL? PRSA,V?MUNG,V?ATTACK \FALSE REMOVE WIZARD IN? WAND,WIZARD \?ELS55 PRINTI "The Wizard retreats, waving his wand and chanting. He says ""Fear!"" " JUMP ?CND53 ?ELS55: PRINTI "The Wizard tries to cast the ""Fear!"" spell, but without his wand! " ?CND53: FSET? GENIE,INVISIBLE /?ELS66 PRINTR "Nothing happens! With a terrified glance at the demon, the wizard runs past you and out of the room." ?ELS66: PRINTI "You are suddenly terrified. The Wizard seems huge and terrible, looming over you. You flee, terrified. He chuckles, snaps his fingers, and disappears." CRLF CRLF SET 'SPELL?,S-FEAR PUTP ADVENTURER,P?ACTION,MAGIC-ACTOR CALL QUEUE,I-WIZARD,10 PUT STACK,0,1 CALL RANDOM-WALK RSTACK .FUNCT I-WIZARD,CAST-PROB,PCNT=0,F,WLOC LOC WINNER >WLOC CALL QUEUE,I-WIZARD,4 PUT STACK,0,1 ZERO? DEAD \FALSE ZERO? SPELL? /?CND1 EQUAL? SPELL?,S-FLOAT \?ELS10 EQUAL? HERE,WELL-TOP \?ELS13 CALL JIGS-UP,STR?306 RTRUE ?ELS13: FSET? HERE,NONLANDBIT \?CND8 EQUAL? HERE,WELL-BOTTOM,VOLCANO-BOTTOM /?CND8 CALL JIGS-UP,STR?307 RTRUE ?ELS10: EQUAL? SPELL?,S-FEEBLE \?ELS19 SET 'LOAD-ALLOWED,LOAD-MAX JUMP ?CND8 ?ELS19: EQUAL? SPELL?,S-FIERCE \?ELS21 SET 'SWORD-GLOW,0 JUMP ?CND8 ?ELS21: EQUAL? SPELL?,S-FUMBLE \?CND8 SET 'FUMBLE-NUMBER,7 SET 'FUMBLE-PROB,8 ?CND8: GET SPELL-STOPS,SPELL? ZERO? STACK /?CND24 GET SPELL-STOPS,SPELL? PRINT STACK CRLF ?CND24: PUTP ADVENTURER,P?ACTION,0 SET 'SPELL?,FALSE-VALUE RTRUE ?CND1: IN? GENIE,PENTAGRAM-ROOM \?CND29 CALL INT,I-WIZARD PUT STACK,0,0 IN? WIZARD,PENTAGRAM-ROOM /TRUE MOVE WIZARD,PENTAGRAM-ROOM IN? WINNER,PENTAGRAM-ROOM \TRUE PRINTI "Suddenly the Wizard materializes in the room. He is astonished by what he sees: his servant in deep conversation with a common adventurer! He draws forth his wand, waves it frantically, and incants ""Frobizz! Frobozzle! Frobnoid!"" The demon laughs heartily. ""You no longer control the Black Crystal, hedge-wizard! Your wand is powerless! Your doom is sealed!"" The demon turns to you, expectantly." CRLF RTRUE ?CND29: ZERO? LIT \?CND40 FSET? LAMP,RMUNGBIT \?CND40 GRTR? SCORE,200 \?CND40 SET 'ALWAYS-LIT,TRUE-VALUE SET 'LIT,TRUE-VALUE PRINTR "In the darkness you hear the voice of the Wizard. ""Dear me, you seem to have gotten into quite a pickle."" He chuckles. ""Fluoresce!"" he incants. It is no longer dark." ?CND40: LOC WIZARD ZERO? STACK /?CND47 RANDOM 100 GRTR? 80,STACK \?CND47 ZERO? LIT /?CND52 IN? WIZARD,HERE \?CND52 PRINTI "The Wizard vanishes." CRLF ?CND52: REMOVE WIZARD RTRUE ?CND47: RANDOM 100 GRTR? 10,STACK \FALSE ZERO? LIT \?ELS66 PRINTI "You feel a slight outrush of air as something moves nearby." CRLF JUMP ?CND64 ?ELS66: EQUAL? HERE,POSTS-ROOM,POOL-ROOM \?ELS70 PRINTI "A huge and terrible wizard appears before you, as large as the largest tree! He looks down on you as you would look upon a gnat!" CRLF JUMP ?CND64 ?ELS70: FSET? HERE,NONLANDBIT \?ELS74 PRINTI "The Wizard appears, floating nonchalantly in the air beside you. He grins sideways at you." CRLF JUMP ?CND64 ?ELS74: PRINTI "A strange little man in a long cloak appears suddenly in the room. He is wearing a high pointed hat embroidered with astrological signs. He has a long, stringy, and unkempt beard." CRLF ?CND64: IN? PALANTIR-4,ADVENTURER \?ELS83 ZERO? LIT /?ELS86 PRINTI "The Wizard notices that you carry the Black Crystal, and with an unseemly haste, he disappears." CRLF JUMP ?CND84 ?ELS86: PRINTI "You feel a sudden inrush of air as though something disappeared." CRLF ?CND84: REMOVE WIZARD RTRUE ?ELS83: RANDOM 100 GRTR? 20,STACK \?CND81 ZERO? LIT /?ELS98 PRINTI "He mutters something (muffled by his beard) and disappears as suddenly as he came." CRLF JUMP ?CND96 ?ELS98: PRINTI "You hear low, confused muttering." CRLF ?CND96: REMOVE WIZARD RTRUE ?CND81: IN? PALANTIR-1,ADVENTURER \?CND106 INC 'PCNT ?CND106: IN? PALANTIR-2,ADVENTURER \?CND109 INC 'PCNT ?CND109: IN? PALANTIR-3,ADVENTURER \?CND112 INC 'PCNT ?CND112: MUL PCNT,20 SUB 80,STACK >CAST-PROB ZERO? LIT /?ELS117 PRINTI "The Wizard draws forth his wand and waves it in your direction. It begins to glow with a faint blue glow." CRLF JUMP ?CND115 ?ELS117: PRINTI "Suddenly, illuminated by the faint blue glow of a magic wand pointed in your direction, you see the Wizard!" CRLF ?CND115: RANDOM 100 GRTR? CAST-PROB,STACK \?ELS129 MOVE WIZARD,HERE RANDOM SPELLS >SPELL? PUTP ADVENTURER,P?ACTION,MAGIC-ACTOR MUL 5,PCNT SUB 30,STACK RANDOM STACK ADD 5,STACK CALL QUEUE,I-WIZARD,STACK PUT STACK,0,1 RANDOM 100 GRTR? 75,STACK \?ELS132 PRINTI "The Wizard, in a deep and resonant voice, speaks the word """ GET SPELL-NAMES,SPELL? PRINT STACK PRINTI "!"" He then vanishes, cackling gleefully." CRLF JUMP ?CND130 ?ELS132: PRINTI "The Wizard, almost inaudibly, whispers a word beginning with ""F,"" and then disappears, chuckling nastily." CRLF ?CND130: REMOVE WIZARD GET SPELL-HINTS,SPELL? ZERO? STACK /?CND139 GET SPELL-HINTS,SPELL? PRINT STACK CRLF ?CND139: EQUAL? SPELL?,S-FALL \?ELS146 FSET? WLOC,VEHBIT \TRUE PRINTI "You suddenly fall headlong out of the " PRINTD WLOC PRINTI " as though someone had flipped it over." CRLF EQUAL? HERE,WELL-TOP \?ELS154 CALL JIGS-UP,STR?308 RTRUE ?ELS154: FSET? HERE,NONLANDBIT \?ELS156 EQUAL? HERE,VOLCANO-BOTTOM,WELL-BOTTOM /?ELS156 CALL JIGS-UP,STR?309 RTRUE ?ELS156: MOVE WINNER,HERE RTRUE ?ELS146: EQUAL? SPELL?,S-FLOAT \?ELS162 FSET? WLOC,VEHBIT \?ELS165 PRINTI " You rise majestically out of the " PRINTD WLOC PRINTI ", coming to a stop about five feet above it and to one side." CRLF MOVE WINNER,HERE RTRUE ?ELS165: PRINTR "Slowly, you and all your belongings rise into the air, stopping after about five feet." ?ELS162: EQUAL? SPELL?,S-FEEBLE \?ELS173 SET 'LOAD-ALLOWED,50 FIRST? WINNER >F \TRUE PRINTI "In fact, you feel so weak that you drop the " PRINTD F PRINTI "." CRLF MOVE F,WLOC RTRUE ?ELS173: EQUAL? SPELL?,S-FEAR \?ELS180 FSET? WLOC,VEHBIT \?ELS183 PRINTI "You cower in the corner of the " PRINTD WLOC PRINTR ", hoping the wizard won't see you." ?ELS183: CRLF CALL RANDOM-WALK RTRUE ?ELS180: EQUAL? SPELL?,S-FUMBLE \?ELS189 SET 'FUMBLE-NUMBER,3 SET 'FUMBLE-PROB,25 FIRST? ADVENTURER >F \TRUE PRINTI "Ooops! You dropped the " PRINTD F PRINTI "." CRLF MOVE F,WLOC RTRUE ?ELS189: EQUAL? SPELL?,S-FILCH \?ELS196 CALL ROB,WINNER,WIZARD-CASE ZERO? STACK /TRUE PRINTR "Something you are carrying has disappeared!" ?ELS196: EQUAL? SPELL?,S-FIERCE \TRUE PRINTR "The Wizard mumbles something under his breath, and just before you reach him, he vanishes." ?ELS129: RANDOM 100 GRTR? 50,STACK \?ELS207 REMOVE WIZARD PRINTR "There is a loud crackling noise. Blue smoke rises from out of the Wizard's sleeve. He sighs and disappears." ?ELS207: RANDOM 100 GRTR? 50,STACK \?ELS211 REMOVE WIZARD PRINTI "The Wizard incants """ CALL RANDOM-ELEMENT,SPELL-NAMES PRINT STACK PRINTR "!"" but nothing happens. He shakes the wand. Nothing happens. With a slightly embarrassed glance in your direction, he vanishes." ?ELS211: MOVE WIZARD,HERE PRINTR "The Wizard seems about to say something, but thinks better of it, and peers at you from under his bushy eyebrows." .FUNCT ROB,WHO,WHERE,N,X,ROBBED?=0 FIRST? WHO >X /?KLU9 ?KLU9: ?PRG1: ZERO? X \?CND3 RETURN ROBBED? ?CND3: NEXT? X >N /?KLU10 ?KLU10: CALL RIPOFF,X,WHERE ZERO? STACK /?CND6 SET 'ROBBED?,TRUE-VALUE ?CND6: SET 'X,N JUMP ?PRG1 .FUNCT RIPOFF,X,WHERE FSET? X,INVISIBLE /FALSE GETPT X,P?VALUE ZERO? STACK /FALSE EQUAL? X,PALANTIR-1 /FALSE EQUAL? X,PALANTIR-2 /FALSE EQUAL? X,PALANTIR-3 /FALSE EQUAL? X,GOLD-KEY /FALSE EQUAL? X,CANDY /FALSE MOVE X,WHERE FSET X,TOUCHBIT RTRUE .FUNCT WIZARD-CASE-FCN EQUAL? WINNER,GENIE \?ELS5 EQUAL? PRSA,V?OPEN,V?MUNG \FALSE REMOVE WIZARD-CASE MOVE BROKEN-CASE,TROPHY-ROOM PRINTR "The demon smashes the case into smithereens. Everything in it smashes as well." ?ELS5: EQUAL? PRSA,V?ENCHANT \?ELS14 EQUAL? SPELL-USED,W?FILCH \?ELS14 CALL ROB,WIZARD-CASE,HERE SET 'SPELL-HANDLED?,TRUE-VALUE PRINTR "The contents of the case are arrayed at your feet." ?ELS14: EQUAL? PRSA,V?CLOSE,V?MUNG,V?OPEN /?THN21 EQUAL? PRSA,V?TAKE \FALSE ?THN21: PRINTR "The case is protected by a fearful spell. You cannot touch it in any way." .FUNCT WAND-FCN EQUAL? PRSA,V?GIVE,V?PUT,V?TAKE \?ELS5 IN? WAND,WIZARD \?ELS5 EQUAL? WINNER,ADVENTURER \?ELS12 PRINTR "The Wizard snatches it away." ?ELS12: EQUAL? WINNER,ROBOT \FALSE CALL JIGS-UP,STR?333 RSTACK ?ELS5: EQUAL? PRSA,V?WAVE \?ELS18 EQUAL? PRSI,GRUE \?ELS18 PRINTR "There is no grue in sight, but a hissing sound issues forth from the darkness." ?ELS18: EQUAL? PRSA,V?RAISE,V?RUB,V?WAVE \FALSE EQUAL? PRSO,WAND \?ELS27 IN? WAND,WINNER /?ELS27 PRINTR "You don't have the wand!" ?ELS27: ZERO? WAND-ON \?THN34 ZERO? SPELL-USED \?THN34 ZERO? SPELL-VICTIM /?ELS33 ?THN34: RANDOM 100 GRTR? 5,STACK \?ELS38 CALL JIGS-UP,STR?334 RTRUE ?ELS38: PRINTR "A lot you know about magic! A magic wand takes a while to recharge after use! You might cause it to short-circuit!" ?ELS33: EQUAL? PRSA,V?WAVE \?ELS44 EQUAL? PRSO,WAND \?ELS47 ZERO? PRSI /?ELS47 SET 'WAND-ON,PRSI SET 'WAND-ON-LOC,HERE JUMP ?CND25 ?ELS47: PRINTR "At what?" ?ELS44: EQUAL? PRSA,V?RUB \?ELS55 EQUAL? PRSI,WAND \?ELS58 ZERO? PRSO /?ELS58 SET 'WAND-ON,PRSO JUMP ?CND25 ?ELS58: PRINTR "Touch what?" ?ELS55: EQUAL? PRSA,V?RAISE \?CND25 PRINTR "The wand grows warm and seems to vibrate." ?CND25: ZERO? WAND-ON /TRUE SET 'SPELL-USED,FALSE-VALUE SET 'SPELL-VICTIM,FALSE-VALUE EQUAL? WAND-ON,ME,WAND \?ELS75 SET 'WAND-ON,FALSE-VALUE PRINTI "Fortunately a safety interlock prevents the fatal feedback loop that this would cause." CRLF JUMP ?CND73 ?ELS75: PRINTI "The wand grows warm, the " PRINTD WAND-ON PRINTI " seems to glow dimly with magical essences, and you feel suffused with power." CRLF ?CND73: CALL QUEUE,I-WAND,2 PUT STACK,0,1 RTRUE .FUNCT I-WAND ZERO? WAND-ON /?ELS5 EQUAL? WAND-ON-LOC,HERE /?THN8 IN? WAND-ON,WINNER \?ELS5 ?THN8: PRINTI "The " PRINTD WAND-ON PRINTI " stops glowing and the power within you weakens." CRLF SET 'WAND-ON,FALSE-VALUE RTRUE ?ELS5: SET 'WAND-ON,FALSE-VALUE RFALSE .FUNCT WIZARD-QUARTERS-FCN,RARG,PICK,L EQUAL? RARG,M-LOOK,M-FLASH \FALSE PRINTI "This is where the Wizard of Frobozz lives. The room is " GET WIZQDESCS,0 >L RANDOM L >PICK EQUAL? PICK,WIZQLAST \?CND8 EQUAL? PICK,L \?ELS13 DEC 'PICK JUMP ?CND8 ?ELS13: INC 'PICK ?CND8: SET 'WIZQLAST,PICK GET WIZQDESCS,PICK PRINT STACK CRLF RTRUE .FUNCT BRIDGE-FCN EQUAL? PRSA,V?CROSS \?ELS5 CALL DO-WALK,P?CROSS RSTACK ?ELS5: EQUAL? PRSA,V?LEAP \FALSE CALL JIGS-UP,STR?343 RSTACK .FUNCT STREAM-FCN EQUAL? PRSA,V?THROUGH,V?SWIM \?ELS5 PRINTR "You can't swim in the stream." ?ELS5: EQUAL? PRSA,V?CROSS \FALSE PRINTR "You'll have to find a ford or a bridge." .FUNCT CHASM-FCN EQUAL? PRSA,V?LEAP /?THN6 EQUAL? PRSA,V?PUT \?ELS5 EQUAL? PRSO,ME \?ELS5 ?THN6: PRINTR "For a change, you look before leaping. You realize you would never survive." ?ELS5: EQUAL? PRSA,V?CROSS \?ELS13 PRINTR "You'll have to find a bridge." ?ELS13: EQUAL? PRSA,V?PUT \FALSE EQUAL? PRSI,PSEUDO-OBJECT \FALSE PRINTI "The " PRINTD PRSO PRINTI " drops out of sight into the chasm." CRLF REMOVE PRSO RTRUE .FUNCT TUNNEL-OBJECT EQUAL? PRSA,V?THROUGH \?ELS5 GETPT HERE,P?IN ZERO? STACK /?ELS5 CALL DO-WALK,P?IN RTRUE ?ELS5: CALL PATH-OBJECT RSTACK .FUNCT STALA-PSEUDO EQUAL? PRSA,V?MUNG,V?TAKE \FALSE PRINTR "The only ones you can reach are too large to successfully break off." .FUNCT MOSS-FCN EQUAL? PRSA,V?RUB,V?TAKE \FALSE PRINTR "Some of the moss rubs off on you, but it stops glowing very quickly once plucked from its environment." .FUNCT ROSE-BUSH-FCN EQUAL? PRSA,V?TAKE \FALSE PRINTR "You prick your finger trying to take a rose, and jump back annoyed. The rose almost seemed to move its thorns into your path." .FUNCT I-SPELL ZERO? SPELL-HANDLED? \?CND1 ZERO? SPELL-VICTIM /?CND1 CALL PERFORM,V?DISENCHANT,SPELL-VICTIM ?CND1: SET 'SPELL-HANDLED?,FALSE-VALUE SET 'WAND-ON,FALSE-VALUE SET 'SPELL-USED,FALSE-VALUE SET 'SPELL-VICTIM,FALSE-VALUE RETURN SPELL-VICTIM .FUNCT V-DIAGNOSE ZERO? DEAD /?ELS3 PRINTI "You are dead." JUMP ?CND1 ?ELS3: EQUAL? SPELL?,S-FERMENT \?ELS8 PRINTI "You are drunk." JUMP ?CND1 ?ELS8: EQUAL? SPELL?,S-FEEBLE \?ELS12 PRINTI "You seem unusually weak right now." JUMP ?CND1 ?ELS12: EQUAL? SPELL?,S-FLOAT \?ELS16 PRINTI "You seem somewhat light." JUMP ?CND1 ?ELS16: EQUAL? SPELL?,S-FREEZE \?ELS20 PRINTI "You are frozen stiff." JUMP ?CND1 ?ELS20: PRINTI "You are in perfect health." ?CND1: CRLF ZERO? DEATHS /FALSE PRINTI "You have been killed " EQUAL? DEATHS,1 \?ELS36 PRINTI "once." JUMP ?CND34 ?ELS36: EQUAL? DEATHS,2 \?ELS40 PRINTI "twice." JUMP ?CND34 ?ELS40: PRINTI "an awful lot." ?CND34: CRLF RTRUE .FUNCT V-SCORE,ASK?=1 PRINTI "Your score " ZERO? ASK? /?ELS5 PRINTI "would be " JUMP ?CND3 ?ELS5: PRINTI "is " ?CND3: PRINTN SCORE PRINTI " (total of 400 points), in " PRINTN MOVES EQUAL? MOVES,1 \?ELS21 PRINTI " move." JUMP ?CND19 ?ELS21: PRINTI " moves." ?CND19: CRLF PRINTI "This score gives you the rank of " EQUAL? SCORE,400 \?ELS32 PRINTI "Master Adventurer" ZERO? WON-FLAG \?CND30 PRINTI ", but somehow you don't feel done" JUMP ?CND30 ?ELS32: GRTR? SCORE,360 \?ELS41 PRINTI "Wizard" JUMP ?CND30 ?ELS41: GRTR? SCORE,320 \?ELS45 PRINTI "Master" JUMP ?CND30 ?ELS45: GRTR? SCORE,240 \?ELS49 PRINTI "Adventurer" JUMP ?CND30 ?ELS49: GRTR? SCORE,160 \?ELS53 PRINTI "Junior Adventurer" JUMP ?CND30 ?ELS53: GRTR? SCORE,80 \?ELS57 PRINTI "Novice Adventurer" JUMP ?CND30 ?ELS57: GRTR? SCORE,40 \?ELS61 PRINTI "Amateur Adventurer" JUMP ?CND30 ?ELS61: PRINTI "Beginner" ?CND30: PRINTI "." CRLF RETURN SCORE .FUNCT JIGS-UP,DESC=0,PLAYER?=0 ZERO? DESC /?CND1 PRINT DESC CRLF ?CND1: EQUAL? ADVENTURER,WINNER /?CND7 PRINTI " **** The " PRINTD WINNER PRINTI " has died **** " REMOVE WINNER SET 'WINNER,ADVENTURER LOC WINNER >HERE RETURN 2 ?CND7: CALL SCORE-UPD,-10 PRINTI " **** You have died **** " SET 'DEAD,TRUE-VALUE SET 'SPELL?,FALSE-VALUE PUTP ADVENTURER,P?ACTION,0 INC 'DEATHS MOVE WINNER,HERE PRINTI "Now, let's take a look here... Well, you probably deserve another chance. I can't quite fix you up completely, but you can't have everything." CRLF CRLF FCLEAR DEAD-PALANTIR-1,TOUCHBIT FCLEAR DEAD-PALANTIR-2,TOUCHBIT FCLEAR DEAD-PALANTIR-3,TOUCHBIT CALL RANDOMIZE-OBJECTS CALL GOTO,DEAD-PALANTIR-1 SET 'P-CONT,FALSE-VALUE CALL KILL-INTERRUPTS RETURN 2 .FUNCT RANDOMIZE-OBJECTS,R=0,F,N,L IN? LAMP,WINNER \?CND1 MOVE LAMP,INSIDE-BARROW ?CND1: FIRST? WINNER >N /?KLU24 ?KLU24: ?PRG4: SET 'F,N ZERO? F /TRUE NEXT? F >N /?KLU25 ?KLU25: EQUAL? F,BILLS,PORTRAIT \?ELS11 EQUAL? HERE,VAULT,DEPOSITORY,OFFICE /?THN14 EQUAL? HERE,SMALL-ROOM \?ELS11 ?THN14: MOVE F,HERE JUMP ?PRG4 ?ELS11: EQUAL? F,GOLD-KEY /?THN18 EQUAL? F,CANDY /?THN18 EQUAL? F,PALANTIR-1 /?THN18 EQUAL? F,PALANTIR-2 /?THN18 EQUAL? F,PALANTIR-3 \?ELS17 ?THN18: MOVE F,CAROUSEL-ROOM JUMP ?PRG4 ?ELS17: FSET? F,STAGGERED \?ELS21 MOVE F,WIZARD-CASE JUMP ?PRG4 ?ELS21: MOVE F,GAZEBO-ROOM JUMP ?PRG4 .FUNCT KILL-INTERRUPTS CALL INT,I-GNOME PUT STACK,0,0 CALL INT,I-LEDGE PUT STACK,0,0 CALL INT,I-NERVOUS PUT STACK,0,0 CALL INT,I-ZGNOME-OUT PUT STACK,0,0 CALL INT,I-ZGNOME PUT STACK,0,0 CALL DRAGON-LEAVES CALL INT,I-MATCH PUT STACK,0,0 RTRUE .FUNCT FIND-WEAPON,O,W FIRST? O >W /?KLU11 ?KLU11: ZERO? W /FALSE ?PRG4: EQUAL? W,SWORD \?ELS8 RETURN W ?ELS8: NEXT? W >W /?PRG4 RFALSE .FUNCT BUCKET-CONT EQUAL? PRSA,V?TAKE \FALSE IN? WINNER,BUCKET /FALSE PRINTR "You'll need to get in the bucket to reach it." .ENDI