.FUNCT NULL-F RFALSE .FUNCT GROUND-F EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-ON,V?CLIMB-UP /?THN6 EQUAL? PRSA,V?BOARD \FALSE ?THN6: PRINTR "You've got better things to do." .FUNCT CORRIDOR-F EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE CALL USE-DIRECTIONS RSTACK .FUNCT WALLS-F EQUAL? WALLS,PRSO \?ELS5 EQUAL? HERE,NORTH-CELL \?ELS5 CALL PERFORM,PRSA,STONE-WALL RSTACK ?ELS5: FSET? HERE,RMUNGBIT \?ELS9 EQUAL? PRSA,V?EXAMINE \?ELS14 PRINTR "The wall is stained and noisome." ?ELS14: EQUAL? PRSA,V?LISTEN \FALSE PRINTR "That's noisome, not noisy!" ?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE PRINTR "They're translucent, not transparent!" .FUNCT CRETIN EQUAL? PRSA,V?ESCAPE \?ELS5 PRINTR "There's no escaping yourself." ?ELS5: EQUAL? PRSA,V?PUT \?ELS9 EQUAL? PRSO,EGG \?ELS9 PRINTR "If you don't succeed, there will be plenty of egg on your face." ?ELS9: EQUAL? PRSA,V?BURN \?ELS15 PRINTR "Ouch!" ?ELS15: EQUAL? PRSA,V?LISTEN \?ELS19 PRINTR "Yes?" ?ELS19: EQUAL? PRSA,V?ALARM \?ELS23 PRINTR "You are obviously awake already." ?ELS23: EQUAL? PRSA,V?GUNCHO \?ELS27 PRINTI "You vanish into oblivion where, to the relief of much of the Circle, you will be unable to do much harm." CRLF CALL FINISH RSTACK ?ELS27: EQUAL? PRSA,V?FROTZ \?ELS31 FSET PLAYER,ONBIT SET 'ALWAYS-LIT,TRUE-VALUE PRINTR "You are bathed in a sickly yellow light, bright enough to read by." ?ELS31: EQUAL? PRSA,V?BLORB \?ELS35 CALL JIGS-UP,STR?48,FALSE-VALUE RTRUE ?ELS35: EQUAL? PRSA,V?KULCAD \?ELS37 PRINTR "You seem real enough already." ?ELS37: EQUAL? PRSA,V?EXAMINE \?ELS41 PRINTR "You are not a pretty sight." ?ELS41: EQUAL? PRSA,V?GIVE \?ELS45 PRINTR "I think you're a little confused." ?ELS45: EQUAL? PRSA,V?ATTACK,V?MUNG,V?KILL \?ELS49 PRINTR "You don't need my help to do that!" ?ELS49: EQUAL? PRSA,V?FIND \?ELS53 PRINTR "You're right here!" ?ELS53: EQUAL? PRSA,V?CUT \FALSE EQUAL? PRSI,MAGIC-KNIFE \FALSE PRINTR "I should think one experience with that knife would be enough. I wouldn't press my luck." .FUNCT WINDOW-F EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 GRTR? TOD,NIGHTFALL \?ELS10 PRINTR "It's too dark to make out much of anything." ?ELS10: GETP HERE,P?TEXT PRINT STACK CRLF RTRUE ?ELS5: EQUAL? PRSA,V?OPEN \?ELS18 PRINTR "You can't open it." ?ELS18: EQUAL? PRSA,V?CLOSE \FALSE PRINTR "It already is." .FUNCT SEA-F EQUAL? HERE,BEACH /?ELS5 PRINTR "The sea is off beyond the beach." ?ELS5: EQUAL? PRSA,V?THROUGH \?ELS9 PRINTR "You would drown." ?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "The sea is very rough. I wouldn't go in." .FUNCT FOREST-F EQUAL? PRSA,V?THROUGH \FALSE CALL USE-DIRECTIONS RSTACK .FUNCT TEMPLE-OBJ-F EQUAL? HERE,COURTYARD-2,COURTYARD-3 /?THN6 EQUAL? HERE,COURTYARD-4,COURTYARD-7 \FALSE ?THN6: EQUAL? PRSA,V?THROUGH \?ELS12 CALL GOTO,TEMPLE RTRUE ?ELS12: EQUAL? PRSA,V?LISTEN \FALSE PRINTR "You can hear a howling chant coming from inside the temple." .FUNCT COURTYARD-F EQUAL? PRSA,V?WALK-AROUND \?ELS5 EQUAL? HERE,INSIDE-GATE /?ELS5 EQUAL? HERE,COURTYARD-7,COURTYARD-6,COURTYARD-4 \?ELS12 CALL DO-WALK,P?WEST RSTACK ?ELS12: CALL DO-WALK,P?EAST RSTACK ?ELS5: EQUAL? PRSA,V?THROUGH \FALSE EQUAL? HERE,INSIDE-GATE \FALSE CALL DO-WALK,P?EAST RSTACK .FUNCT TOWER-F EQUAL? PRSA,V?BOARD,V?CLIMB-FOO,V?CLIMB-UP \?ELS5 EQUAL? HERE,PURLOINED-ROOM,SE-TOWER /?THN8 EQUAL? HERE,NW-TOWER,SW-TOWER \?ELS5 ?THN8: CALL DO-WALK,P?UP RSTACK ?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN \?ELS11 EQUAL? HERE,JEWEL-ROOM,MAP-ROOM /?THN14 EQUAL? HERE,ENGINE-ROOM,BEDROOM \?ELS11 ?THN14: CALL DO-WALK,P?DOWN RSTACK ?ELS11: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE PRINTR "They are a bit far away to climb from here, and anyway the walls would be impossible to scale." .FUNCT JUG-F,E?=0 EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS3 PRINTR "The jug has no cover. It can't be opened or closed." ?ELS3: EQUAL? PRSA,V?MUNG,V?THROW \?ELS7 REMOVE PRSO SET 'E?,TRUE-VALUE PRINTI "The jug shatters into innumerable pieces." CRLF JUMP ?CND1 ?ELS7: EQUAL? PRSA,V?SHAKE \?CND1 FSET? PRSO,OPENBIT \?CND1 SET 'E?,TRUE-VALUE ?CND1: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS19 PRINTI "The jug is " IN? WATER,PRSO /?ELS26 PRINTR "empty." ?ELS26: GETP WATER,P?SIZE GET JUG-AMTS,STACK PRINT STACK CRLF RTRUE ?ELS19: ZERO? E? /FALSE IN? WATER,PRSO \TRUE PRINTI "The water spills to the ground and evaporates." CRLF REMOVE WATER RTRUE .FUNCT WATER-FUNCTION,AV,W,PI? EQUAL? PRSA,V?EXAMINE \?ELS3 EQUAL? PRSO,GLOBAL-WATER \?ELS3 EQUAL? HERE,BEACH \?ELS8 PRINTR "The ocean streches out as far as the eye can see to the south and east." ?ELS8: EQUAL? HERE,FOREST-2 \?ELS12 PRINTR "The water is dark and murky, and lily pads cover most of the surface. I wouldn't drink the stuff." ?ELS12: PRINTR "The brook runs slowly through thick vegetation." ?ELS3: EQUAL? PRSA,V?THROUGH \?ELS20 EQUAL? PRSO,GLOBAL-WATER \?ELS20 PRINTR "You have better things to do with your time than go swimming." ?ELS20: EQUAL? PRSA,V?DRINK-FROM \?ELS26 EQUAL? PRSO,GLOBAL-WATER \?ELS26 CALL V-DRINK-FROM RTRUE ?ELS26: EQUAL? PRSA,V?SGIVE /FALSE EQUAL? PRSA,V?THROUGH \?ELS32 PRINTR "Swimming here is fraught with peril." ?ELS32: EQUAL? PRSA,V?FILL \?ELS36 SET 'W,PRSI SET 'PRSA,V?PUT SET 'PRSI,PRSO SET 'PRSO,W SET 'PI?,FALSE-VALUE JUMP ?CND1 ?ELS36: EQUAL? PRSO,GLOBAL-WATER,WATER \?ELS38 SET 'W,PRSO SET 'PI?,FALSE-VALUE JUMP ?CND1 ?ELS38: SET 'W,PRSI SET 'PI?,TRUE-VALUE ?CND1: EQUAL? W,GLOBAL-WATER \?CND41 EQUAL? PRSA,V?DRINK /FALSE SET 'W,WATER EQUAL? PRSA,V?PUT,V?TAKE \?CND41 REMOVE W ?CND41: ZERO? PI? /?ELS52 SET 'PRSI,W JUMP ?CND50 ?ELS52: SET 'PRSO,W ?CND50: LOC WINNER >AV EQUAL? PRSA,V?PUT,V?TAKE \?ELS60 ZERO? PI? \?ELS60 ZERO? PRSI /?ELS67 EQUAL? PRSI,JUG /?ELS67 EQUAL? PRSI,SEA,GLOBAL-WATER \?ELS74 PRINTI "Ok, but there was plenty enough there already." CRLF REMOVE W RTRUE ?ELS74: GETP PRSI,P?CAPACITY ZERO? STACK /?ELS78 PRINTI "The water leaks out of the " PRINTD PRSI PRINTI " and evaporates immediately." CRLF REMOVE W RTRUE ?ELS78: PRINTI "The " PRINTD PRSI PRINTR " isn't a very good container." ?ELS67: IN? JUG,WINNER \?ELS86 FSET? JUG,OPENBIT /?ELS91 PRINTR "The jug is closed." ?ELS91: CALL GLOBAL-IN?,GLOBAL-WATER,HERE ZERO? STACK /?ELS95 IN? WATER,JUG \?THN101 GETP WATER,P?SIZE LESS? STACK,4 \?ELS100 ?THN101: MOVE WATER,JUG PUTP WATER,P?SIZE,4 PRINTI "The jug is now full of " EQUAL? HERE,BEACH \?ELS107 FSET WATER,RMUNGBIT PRINTI "sea" JUMP ?CND105 ?ELS107: EQUAL? HERE,FOREST-2 \?ELS111 FSET WATER,RMUNGBIT PRINTI "foul algae-infested " JUMP ?CND105 ?ELS111: FCLEAR WATER,RMUNGBIT ?CND105: PRINTR "water." ?ELS100: PRINTR "The jug is already full." ?ELS95: PRINTR "The only water here is in the jug." ?ELS86: IN? PRSO,JUG \?ELS127 EQUAL? PRSA,V?TAKE \?ELS127 ZERO? PRSI \?ELS127 SET 'PRSO,JUG CALL ITAKE SET 'PRSO,W RETURN PRSO ?ELS127: PRINTR "The water slips through your fingers." ?ELS60: ZERO? PI? /?ELS135 PRINTR "Nice try." ?ELS135: EQUAL? PRSA,V?GIVE,V?DROP \?ELS140 REMOVE WATER EQUAL? PRSI,SEA,GLOBAL-WATER \?ELS145 PRINTR "Ok, but there was plenty enough there already." ?ELS145: PRINTR "The water spills to the ground and evaporates." ?ELS140: EQUAL? PRSA,V?POUR-ON \?ELS153 REMOVE WATER PRINTI "The water cascades off the " PRINTD PRSI PRINTR " and onto the ground." ?ELS153: EQUAL? PRSA,V?THROW \FALSE PRINTI "The water splashes over everything and evaporates." CRLF REMOVE WATER RTRUE .FUNCT SKY-F,EL FSET? HERE,ONBIT \?ELS5 EQUAL? PRSA,V?EXAMINE \?ELS5 DIV TOD,10 >EL PRINTI "It would be " GET TIME-TABLE,EL PRINT STACK PRINTI " now." GRTR? TOD,NIGHTFALL \?CND10 PRINTI " Bright stars shine down on the earth." ?CND10: CRLF RTRUE ?ELS5: PRINTR "That would be difficult from here." .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3 EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3 PRINTR "Those things aren't here!" ?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS9 SET 'TBL,P-PRSO JUMP ?CND1 ?ELS9: SET 'TBL,P-PRSI SET 'PRSO?,FALSE-VALUE ?CND1: ZERO? PRSO? /?CND12 EQUAL? PRSA,V?ZIFMIA /?THN19 EQUAL? PRSA,V?CAST \?CND12 EQUAL? PRSO,SUMMON-SPELL \?CND12 ?THN19: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ ZERO? OBJ /FALSE EQUAL? OBJ,NOT-HERE-OBJECT \TRUE ?CND12: EQUAL? WINNER,PLAYER \?ELS33 PRINTI "You can't see any " CALL NOT-HERE-PRINT,PRSO? PRINTI " here!" CRLF JUMP ?CND31 ?ELS33: PRINTI "The " PRINTD WINNER PRINTI " seems confused. ""I don't see any " CALL NOT-HERE-PRINT,PRSO? PRINTI " here!""" CRLF ?CND31: SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE RTRUE .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ CALL MOBY-FIND,TBL >M-F ZERO? DEBUG /?CND1 PRINTI "[Moby-found " PRINTN M-F PRINTI " objects" PRINTI "]" CRLF ?CND1: GRTR? M-F,1 \?CND7 GET TBL,1 GETP STACK,P?GLOBAL >OBJ ZERO? OBJ /?CND7 SET 'M-F,1 SET 'P-MOBY-FOUND,OBJ ?CND7: EQUAL? 1,M-F \?ELS16 ZERO? DEBUG /?CND17 PRINTI "[Namely: " PRINTD P-MOBY-FOUND PRINTI "]" CRLF ?CND17: ZERO? PRSO? /?ELS25 SET 'PRSO,P-MOBY-FOUND RFALSE ?ELS25: SET 'PRSI,P-MOBY-FOUND RFALSE ?ELS16: ZERO? PRSO? \?ELS30 PRINTI "You wouldn't find any " CALL NOT-HERE-PRINT,PRSO? PRINTR " there." ?ELS30: RETURN NOT-HERE-OBJECT .FUNCT GLOBAL-NOT-HERE-PRINT,OBJ SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE PRINTI "You can't see" EQUAL? OBJ,GLOBAL-KRILL /?CND3 PRINTI " any" ?CND3: EQUAL? OBJ,PRSO \?ELS10 CALL PRSO-PRINT JUMP ?CND8 ?ELS10: CALL PRSI-PRINT ?CND8: PRINTR " here." .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 ZERO? P-OFLAG /?ELS5 ZERO? P-XADJ /?CND7 PRINTB P-XADJN ?CND7: ZERO? P-XNAM /FALSE PRINTB P-XNAM RTRUE ?ELS5: ZERO? PRSO? /?ELS18 GET P-ITBL,P-NC1 >?TMP1 GET P-ITBL,P-NC1L CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE RSTACK ?ELS18: GET P-ITBL,P-NC2 >?TMP1 GET P-ITBL,P-NC2L CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE RSTACK .FUNCT BELBOZ-F EQUAL? PRSA,V?ZIFMIA \?ELS5 PRINTI "A vision of the great Belboz begins to take shape before you, but " GETP HERE,P?TMAZE ZERO? STACK /?ELS12 PRINTR "as soon as he realizes where you are, he disappears, a look of fear upon his face." ?ELS12: PRINTR "with a curt word and a waggle of his finger, he disappears again, shaking his head in disappointment." ?ELS5: EQUAL? PRSA,V?WHO,V?EXAMINE \FALSE PRINTR "Belboz is, in effect, your boss, professor, patron, and ultimate superior. He is the head of the Circle of Enchanters." .FUNCT GLOBAL-ROOM-F EQUAL? PRSA,V?EXAMINE,V?LOOK \?ELS5 CALL PERFORM,V?LOOK RTRUE ?ELS5: EQUAL? PRSA,V?WALK-AROUND \FALSE PRINTR "Walking around the room reveals nothing else of interest. If you want to move elsewhere, simply indicate the direction you wish to move in." .FUNCT BRAMBLES-F CALL OUTSIDE?,HERE ZERO? STACK \?ELS5 PRINTR "The only brambles here are in your head." ?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \FALSE PRINTR "There's nothing in the brambles now. Count your blessings." .FUNCT GLOBAL-HOLE-F EQUAL? PRSA,V?DIG \?ELS5 PRINTR "It's not worth the bother." ?ELS5: CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-HOLE RSTACK .ENDI