.FUNCT UNDERWATER-F,RARG EQUAL? RARG,M-ENTER \?ELS5 FCLEAR UNDERWATER,TOUCHBIT IN? SHARK,LOCAL-GLOBALS \?CND6 CALL QUEUED?,I-SHARK ZERO? STACK \?CND6 DIV OCEAN-BOTTOM,50 SUB STACK,1 RANDOM STACK CALL QUEUE,I-SHARK,STACK PUT STACK,0,1 ?CND6: MOVE LINE-HACK,UNDERWATER RFALSE ?ELS5: EQUAL? RARG,M-LOOK \?ELS12 PRINTR "You are in the sea, completely surrounded by water." ?ELS12: EQUAL? RARG,M-BEG \FALSE EQUAL? LINE-HACK,PRSO,PRSI \?ELS21 CALL TELL-CANT-REACH,STR?338 RSTACK ?ELS21: EQUAL? PRSA,V?WALK \?ELS23 EQUAL? P-WALK-DIR,P?UP,P?DOWN /?ELS23 CALL TELL-NOWHERE RSTACK ?ELS23: EQUAL? PRSA,V?SWIM,V?DIVE,V?WALK /FALSE EQUAL? PRSA,V?SAVE,V?EXAMINE,V?LOOK /FALSE EQUAL? PRSA,V?SCORE,V?QUIT,V?RESTORE /FALSE EQUAL? PRSA,V?DIAGNOSE,V?FIND,V?TIME /FALSE EQUAL? PRSA,V?OPEN,V?LAMP-OFF,V?LAMP-ON /FALSE EQUAL? PRSA,V?READ,V?TAKE,V?CLOSE /FALSE EQUAL? PRSA,V?INVENTORY,V?WAIT,V?BREATHE /FALSE EQUAL? PRSA,V?WHAT,V?AGAIN,V?VERSION /FALSE EQUAL? PRSA,V?RESTART,V?UNSCRIPT,V?SCRIPT /FALSE EQUAL? PRSA,V?$CALL /FALSE EQUAL? PRSA,V?THROW,V?DROP \?ELS31 CALL TELL-NO-LITTER RSTACK ?ELS31: CALL TELL-YOU-CANT,STR?339 RETURN 2 .FUNCT TELL-NOWHERE PRINTR "That won't get you anywhere." .FUNCT UNDERWATER-U,PRINT?=1,L ZERO? PRINT? /FALSE SUB DEPTH,50 >DEPTH LOC WEASEL >L IN? SAFETY-LINE,L /?CND4 IN? TREASURE-CHEST,L /?CND4 IN? EMPTY-CHEST,L /?CND4 FCLEAR LINE-HACK,INVISIBLE ?CND4: ZERO? DEPTH \?ELS13 PRINTI "You get out of the water and reboard your ship..." CRLF CRLF CALL INT,I-AIR-SUPPLY PUT STACK,0,0 CALL ENABLED?,I-LAST-GASP ZERO? STACK /?ELS18 CALL INT,I-LAST-GASP PUT STACK,0,0 JUMP ?CND16 ?ELS18: CALL INT,I-MM-COMPRESSOR PUT STACK,0,0 ?CND16: FSET? OCEAN-FLOOR,TOUCHBIT /?THN26 FSET? WRECK-1,TOUCHBIT \?ELS25 ?THN26: CALL RATING-UPD,25 IN? SAFETY-LINE,TREASURE-CHEST /?THN33 IN? GLASS-CASE,PLAYER \?ELS32 FSET? STAMPS,RMUNGBIT /?ELS32 ?THN33: CALL RATING-UPD,25 LOC WEASEL IN? TREASURE-CHEST,STACK \?ELS39 CALL TREASURE-CHEST-WIN JUMP ?CND37 ?ELS39: IN? SAFETY-LINE,TREASURE-CHEST \?ELS41 CALL CHEST-PULL-UP CALL TREASURE-CHEST-WIN JUMP ?CND37 ?ELS41: PRINTI "When your shipmates find that you've recovered these priceless stamps, they congratulate you. " ?CND37: ZERO? WEASEL-BLOWN \?THN51 FSET? ENVELOPE,INVISIBLE \?ELS50 ?THN51: PRINTI "Johnny slaps you on the back. ""Good job, matey!"" As you return to the island over the calm, dazzling blue sea, you contemplate your wealth with a touch of sadness. You think of Hevlin and hope his soul is resting a little easier now." CRLF CRLF CALL RATING-UPD,20 CALL V-SCORE USL QUIT RTRUE ?ELS50: PRINTI "Exhilarated but tired, you lie out on the deck. You fall asleep at once, and dream of a tropical paradise. But even as you dream, your throat is cut! And as your life drains away, you realize how foolish it was not to have suspected a traitor!" CRLF CALL FINISH RSTACK ?ELS32: IN? GLASS-CASE,PLAYER \?ELS60 FSET? STAMPS,RMUNGBIT \?ELS60 PRINTI "But their elation turns to disappointment, as they notice that the stamps are waterlogged and, thus, worthless" CALL LONG-TRIP RSTACK ?ELS60: LOC WEASEL IN? EMPTY-CHEST,STACK \?ELS66 CALL EMPTY-CHEST-LOSE RSTACK ?ELS66: IN? SAFETY-LINE,EMPTY-CHEST \?ELS68 CALL CHEST-PULL-UP CALL EMPTY-CHEST-LOSE RSTACK ?ELS68: PRINTI "When your shipmates find out that you haven't found any treasure, Johnny shakes his head. You can't help feeling you've let them, as well as " CALL DPRINT,GLOBAL-SELF PRINTI ", down" CALL LONG-TRIP RSTACK ?ELS25: ZERO? AT-SEA /?ELS74 GRTR? PRESENT-TIME,720 \?ELS74 PRINTI "Johnny looks downcast when he sees that you empty-handed. ""Let's get back to the Island. Maybe another time...""" CRLF CALL FINISH RSTACK ?ELS74: EQUAL? SHIP-CHOSEN,TRAWLER \?ELS80 FSET OCEAN,VEHBIT MOVE LINE-HACK,NW-AFT-DECK RETURN NW-AFT-DECK ?ELS80: FSET OCEAN,VEHBIT MOVE LINE-HACK,MM-AFT-DECK RETURN MM-AFT-DECK ?ELS13: PRINTI "You ascend " EQUAL? HERE,UNDERWATER \?CND87 PRINTI "another " ?CND87: PRINTI "50 feet..." CRLF CRLF ZERO? DOOMED /?ELS98 EQUAL? DEPTH,250 \?ELS98 CALL JIGS-UP,STR?340 RSTACK ?ELS98: RETURN UNDERWATER .FUNCT CHEST-PULL-UP LOC WEASEL EQUAL? STACK,MM-AFT-DECK,NW-AFT-DECK \?ELS3 CALL START-SENTENCE,WEASEL JUMP ?CND1 ?ELS3: CALL START-SENTENCE,JOHNNY ?CND1: PRINTI " pulls on the " CALL DPRINT,SAFETY-LINE PRINTI " and drags up the chest. " RTRUE .FUNCT EMPTY-CHEST-LOSE CALL TELL-1ST-CHEST-LINE PRINTI "disappointment, the contents are nothing more than old Portuguese newspapers" CALL LONG-TRIP RSTACK .FUNCT TELL-1ST-CHEST-LINE PRINTI "Johnny spends several minutes forcing open the chest. To everyone's " RTRUE .FUNCT LONG-TRIP PRINTI ". It will be a long trip back." CRLF CALL FINISH RSTACK .FUNCT TREASURE-CHEST-WIN CALL TELL-1ST-CHEST-LINE PRINTI "delight, there are hundreds of gold escudos inside. " RTRUE .FUNCT UNDERWATER-D,PRINT?=1 ZERO? PRINT? /FALSE ADD DEPTH,50 >DEPTH GRTR? DEPTH,300 \?ELS8 FSET? DEEP-SUIT,WORNBIT /?ELS8 CALL JIGS-UP,STR?341 RSTACK ?ELS8: EQUAL? DEPTH,OCEAN-BOTTOM \?ELS12 ZERO? WRECK-CHOSEN /?ELS17 CALL TELL-FLUTTER-TO,STR?342 RETURN WRECK-1 ?ELS17: CALL TELL-FLUTTER-TO,STR?343 RETURN OCEAN-FLOOR ?ELS12: PRINTI "You descend another 50 feet..." CRLF CRLF RETURN UNDERWATER .FUNCT TELL-FLUTTER-TO,STR PRINTI "You flutter down to " PRINT STR PRINTI "..." CRLF CRLF RTRUE .FUNCT OCEAN-FLOOR-F,RARG=0 EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?WALK \FALSE EQUAL? P-WALK-DIR,P?UP /FALSE CALL TELL-NOWHERE RSTACK .FUNCT WRECK-1-F,RARG EQUAL? RARG,M-ENTER \?ELS5 FSET? WRECK-1,TOUCHBIT /?ELS10 FSET LINE-HACK,INVISIBLE EQUAL? WRECK-CHOSEN,1 \?ELS15 MOVE SQUID,WRECK-12 MOVE IRON-BAR,WRECK-5 EQUAL? WRECK-FOUND,1 \?CND16 MOVE TREASURE-CHEST,WRECK-11 MOVE EMPTY-CHEST,WRECK-9 ?CND16: MOVE SKELETON,WRECK-10 MOVE SCABBARD,SKELETON PUTP WRECK-8,P?VALUE,10 FCLEAR CEILING-HOLE-1,INVISIBLE FCLEAR FLOOR-HOLE-1,INVISIBLE MOVE CASK,WRECK-6 MOVE ROPE,WRECK-4 MOVE BROKEN-MAST,WRECK-4 PUTP WRECK-5,P?DESCFCN,80 PUTP WRECK-7,P?DESCFCN,45 PUTP WRECK-8,P?DESCFCN,45 FCLEAR FALLEN-BUNK,INVISIBLE FCLEAR MAST,INVISIBLE FCLEAR JAGGED-HOLE,INVISIBLE RTRUE ?ELS15: EQUAL? WRECK-CHOSEN,2 \FALSE FCLEAR AIRTIGHT-DOOR,INVISIBLE FCLEAR AIRTIGHT-DOOR,OPENBIT FCLEAR LOCKER-DOOR,INVISIBLE FCLEAR LOCKER-DOOR,OPENBIT MOVE SAFE,WRECK-8 PUTP SAFE,P?ACTION,SAFE-F FCLEAR SAFE,NDESCBIT EQUAL? WRECK-FOUND,2 \?CND21 MOVE GLASS-CASE,SAFE ?CND21: MOVE MINE,WRECK-11 MOVE CLUMP-OF-MINES,WRECK-11 FCLEAR CEILING-HOLE-2,INVISIBLE FCLEAR FLOOR-HOLE-2,INVISIBLE PUTP WRECK-6,P?VALUE,25 PUTP WRECK-1,P?DESCFCN,100 PUTP WRECK-2,P?DESCFCN,100 PUTP WRECK-3,P?DESCFCN,100 PUTP WRECK-4,P?DESCFCN,100 PUTP WRECK-5,P?DESCFCN,100 PUTP WRECK-6,P?DESCFCN,100 PUTP WRECK-7,P?DESCFCN,100 PUTP WRECK-8,P?DESCFCN,100 PUTP WRECK-9,P?DESCFCN,100 PUTP WRECK-10,P?DESCFCN,100 PUTP WRECK-11,P?DESCFCN,100 PUTP WRECK-12,P?DESCFCN,100 PUTP WRECK-13,P?DESCFCN,100 RTRUE ?ELS10: EQUAL? WRECK-CHOSEN,2 \FALSE PUTP FLOOR-HOLE-2,P?SDESC,STR?5 RTRUE ?ELS5: EQUAL? RARG,M-LOOK \FALSE GET WRECK-1-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE .FUNCT WRECK-1-D,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /?CND6 FSET? WEST-LADDER,RMUNGBIT \?ELS12 CALL TELL-GRACEFUL RETURN WRECK-4 ?ELS12: FSET WEST-LADDER,RMUNGBIT PRINTI "As you put your foot on the top rung, the rotting wood gives way. The other rungs break beneath your weight, and you plummet down to the deck below..." CRLF CRLF ?CND6: RETURN WRECK-4 ?ELS5: EQUAL? WRECK-CHOSEN,3 \?ELS18 CALL TELL-NO-GO,PRINT? RFALSE ?ELS18: RETURN WRECK-4 .FUNCT WEST-LADDER-F EQUAL? PRSA,V?EXAMINE \?ELS5 FSET? WEST-LADDER,RMUNGBIT \?ELS10 EQUAL? HERE,WRECK-1 \?ELS15 PRINTR "All that's left are a couple of pieces that were broken off at the top." ?ELS15: PRINTR "The ladder is nothing more than some broken pieces of wood." ?ELS10: PRINTR "Looks like a ladder." ?ELS5: EQUAL? PRSA,V?TAKE \?ELS27 EQUAL? HERE,WRECK-1 /?THN33 FSET? WEST-LADDER,RMUNGBIT /?ELS32 ?THN33: CALL PICK-ONE,YUKS PRINT STACK CRLF RTRUE ?ELS32: PRINTR "None of the pieces looks useful." ?ELS27: EQUAL? PRSA,V?CLIMB-FOO \FALSE EQUAL? HERE,WRECK-1 \?ELS45 CALL DO-WALK,P?DOWN JUMP ?CND43 ?ELS45: CALL DO-WALK,P?UP ?CND43: SET 'P-IT-OBJECT,WEST-LADDER RTRUE .FUNCT WRECK-2-F,RARG EQUAL? RARG,M-LOOK \FALSE GET WRECK-2-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE .FUNCT WRECK-3-F,RARG EQUAL? RARG,M-LOOK \FALSE GET WRECK-3-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE .FUNCT WRECK-3-D,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /?CND6 ZERO? DOOMED /?ELS12 CALL JIGS-UP,STR?353 RETURN WRECK-7 ?ELS12: SET 'DOOMED,TRUE-VALUE CALL TELL-GRACEFUL ?CND6: RETURN WRECK-7 ?ELS5: CALL TELL-NO-GO,PRINT? RFALSE .FUNCT TELL-GRACEFUL PRINTI "You sink gracefully down to the next deck..." CRLF CRLF RTRUE .FUNCT WRECK-4-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-4-DESCS,WRECK-CHOSEN PRINT STACK EQUAL? WRECK-CHOSEN,1 \?CND8 FSET? ROPE,NDESCBIT \?CND8 CALL TELL-WRAPPED,STR?354 ?CND8: CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \?ELS15 EQUAL? WRECK-CHOSEN,2 \?ELS15 PUTP CEILING-HOLE-2,P?SDESC,STR?355 FSET CEILING-HOLE-2,VOWELBIT PUTP FLOOR-HOLE-2,P?SDESC,STR?356 RFALSE ?ELS15: EQUAL? RARG,M-BEG \FALSE EQUAL? WRECK-CHOSEN,1 \?ELS24 CALL NOT-THIS-WRECK,BUNKS RSTACK ?ELS24: EQUAL? WRECK-CHOSEN,2 \FALSE CALL NOT-THIS-WRECK,PSEUDO-OBJECT RSTACK .FUNCT TELL-WRAPPED,STR PRINTI " A rope is wrapped around " PRINT STR PRINTI "." RTRUE .FUNCT WRECK-4-N,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-5 .FUNCT WRECK-4-U,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /?ELS10 ZERO? ROPE-HANGING /?ELS14 CALL TELL-ROPE-HIGH RFALSE ?ELS14: FSET? WEST-LADDER,RMUNGBIT \?ELS17 PRINTI "There's no way to get back up what's left of the ladder." CRLF RFALSE ?ELS17: FSET WEST-LADDER,RMUNGBIT PRINTI "As you start to climb, a rung collapses under your foot. You grab at other rungs but find you are back where you started amidst several pieces of what used to be the ladder." CRLF RFALSE ?ELS10: RETURN WRECK-1 ?ELS5: IN? GLASS-CASE,PLAYER \?CND28 FSET? STAMPS,RMUNGBIT /?CND28 GRTR? WATER-IN-CASE,0 \?CND28 FSET STAMPS,RMUNGBIT SET 'WATER-IN-CASE,10 PRINTI "As you go up, the water in the " CALL DPRINT,GLASS-CASE PRINTI " sloshes around, ruining the stamps." CRLF CRLF RETURN WRECK-1 ?CND28: RETURN WRECK-1 .FUNCT WRECK-4-D,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-9 .FUNCT AIRTIGHT-ROOM? EQUAL? WRECK-CHOSEN,2 \FALSE EQUAL? HERE,WRECK-5 \FALSE ZERO? WRECK-5-FLOODED /TRUE RFALSE .FUNCT ROPE-F,RARG=0 EQUAL? RARG,M-OBJDESC \?ELS5 FSET? ROPE,TAKEBIT \?ELS8 PRINTI "A length of rope lies here." JUMP ?CND6 ?ELS8: PRINTI "A rope hangs down here." ?CND6: CRLF RTRUE ?ELS5: EQUAL? PRSA,V?CUT \?ELS16 EQUAL? PRSI,SWORD \?ELS21 ZERO? ROPE-HANGING /?ELS26 FSET ROPE,TAKEBIT SET 'ROPE-HANGING,FALSE-VALUE PRINTR "A three-foot length of rope falls to the deck." ?ELS26: FSET? ROPE,NDESCBIT \?ELS31 IN? PLAYER,CASK \?ELS36 SET 'ROPE-HANGING,TRUE-VALUE FCLEAR ROPE,NDESCBIT CALL RATING-UPD,15 PRINTR "The rope falls to within eight feet of the floor." ?ELS36: CALL TELL-ROPE-HIGH RSTACK ?ELS31: MOVE ROPE,LOCAL-GLOBALS PRINTR "You chop the rope into many small pieces, which float off on the current and become lost among the debris." ?ELS21: CALL TELL-YOU-CANT,STR?360 RSTACK ?ELS16: ZERO? ROPE-HANGING \?ELS48 EQUAL? PRSA,V?UNTIE,V?MOVE,V?RUB /?THN54 EQUAL? PRSA,V?TAKE,V?CLIMB-FOO \FALSE ?THN54: FSET? ROPE,TAKEBIT /FALSE CALL TELL-ROPE-HIGH RSTACK ?ELS48: EQUAL? PRSA,V?TAKE \?ELS64 PRINTR "It's tied securely above." ?ELS64: EQUAL? PRSA,V?CLIMB-FOO \?ELS68 CALL DO-WALK,P?UP SET 'P-IT-OBJECT,ROPE RTRUE ?ELS68: EQUAL? PRSA,V?UNTIE \FALSE CALL TELL-CANT-REACH,STR?361 RSTACK .FUNCT BROKEN-MAST-F EQUAL? PRSA,V?EXAMINE \?ELS5 PRINTI "The mast is suspended securely above you." ZERO? ROPE-HANGING /?ELS10 PRINTI " A rope is hanging from it." JUMP ?CND8 ?ELS10: FSET? ROPE,NDESCBIT \?CND8 CALL TELL-WRAPPED,STR?21 ?CND8: CRLF RTRUE ?ELS5: EQUAL? PRSA,V?UNTIE,V?MOVE,V?RUB /?THN18 EQUAL? PRSA,V?TAKE,V?CLIMB-FOO \FALSE ?THN18: CALL TELL-CANT-REACH,STR?354 RSTACK .FUNCT WRECK-5-F,RARG EQUAL? RARG,M-LOOK \?ELS5 EQUAL? WRECK-CHOSEN,2 \?ELS8 PRINTI "This cabin was once a passenger compartment, " ZERO? WRECK-5-FLOODED /?ELS13 PRINTI "but it is now flooded. There is a passage leading down through the deck, and a door in the aft " CALL DPRINT,BULKHEADS PRINTI "." JUMP ?CND6 ?ELS13: PRINTI "although the fragile partitions within have collapsed. The room is filled with air and a glance tells you why: the closed door to aft kept the air and water pressures equalized, stopping the flow of water up through the hole in the deck." JUMP ?CND6 ?ELS8: GET WRECK-5-DESCS,WRECK-CHOSEN PRINT STACK ?CND6: CRLF RTRUE ?ELS5: EQUAL? RARG,M-BEG \?ELS26 EQUAL? WRECK-CHOSEN,1 /?ELS31 EQUAL? LG-IRON-BAR,PRSO,PRSI \?ELS31 CALL GLOBAL-NOT-HERE-PRINT,LG-IRON-BAR RSTACK ?ELS31: EQUAL? WRECK-CHOSEN,1 /FALSE EQUAL? BARNACLES,PRSO,PRSI \FALSE CALL GLOBAL-NOT-HERE-PRINT,BARNACLES RSTACK ?ELS26: EQUAL? RARG,M-ENTER \FALSE IN? GLASS-CASE,PLAYER \FALSE ZERO? WRECK-5-FLOODED \FALSE CALL INT,I-CASE-LEAK PUT STACK,0,0 IN? HOLE-2,GLASS-CASE \FALSE IN? PUTTY,GLASS-CASE /FALSE SET 'WATER-IN-CASE,0 RETURN WATER-IN-CASE .FUNCT WRECK-5-N,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-4 .FUNCT WRECK-5-D,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-10 .FUNCT AIRTIGHT-DOOR-F EQUAL? PRSA,V?OPEN \?ELS5 FSET? AIRTIGHT-DOOR,OPENBIT \?ELS10 CALL TELL-ALREADY,STR?25 RSTACK ?ELS10: FSET AIRTIGHT-DOOR,OPENBIT CALL TELL-NOW,AIRTIGHT-DOOR,STR?25 ZERO? WRECK-5-FLOODED \TRUE SET 'WRECK-5-FLOODED,TRUE-VALUE EQUAL? HERE,WRECK-5 \?ELS18 FSET? DEEP-SUIT,WORNBIT /?ELS21 FSET? MASK,WORNBIT \?THN24 IN? AIR-TANK,PLAYER \?THN24 FSET? WET-SUIT,WORNBIT /?ELS21 ?THN24: CALL JIGS-UP,STR?363 RTRUE ?ELS21: PRINTR "Water rushes in through the open door and the hole in the deck, filling the room to above your head, forcing the air out." ?ELS18: PRINTR "Water rushes through the door into the next room." ?ELS5: EQUAL? PRSA,V?CLOSE \FALSE FSET? AIRTIGHT-DOOR,OPENBIT \?ELS40 FCLEAR AIRTIGHT-DOOR,OPENBIT CALL TELL-NOW,AIRTIGHT-DOOR,STR?26 RSTACK ?ELS40: CALL TELL-ALREADY,STR?26 RSTACK .FUNCT IRON-BAR-F IN? IRON-BAR,FALLEN-BUNK \?ELS5 EQUAL? PRSA,V?EXAMINE \?ELS10 PRINTI "The " CALL DPRINT,IRON-BAR PRINTI " is" PRINT WEDGED-STR CRLF RTRUE ?ELS10: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE PRINTI "It's too tightly" PRINT WEDGED-STR CRLF RTRUE ?ELS5: EQUAL? PRSA,V?TAKE \?ELS18 CALL ITAKE ZERO? STACK /TRUE EQUAL? HERE,WRECK-5 \?ELS24 FCLEAR IRON-BAR,NDESCBIT PRINTI "You take one of the " CALL DPRINT,IRON-BAR PRINTR "s." ?ELS24: PRINTI "Taken." CRLF RTRUE ?ELS18: EQUAL? PRSA,V?DROP \FALSE CALL V-DROP ZERO? STACK /TRUE EQUAL? HERE,WRECK-5 \TRUE FSET IRON-BAR,NDESCBIT RTRUE .FUNCT LG-IRON-BAR-F EQUAL? PRSA,V?TAKE \?ELS5 IN? IRON-BAR,HERE \?ELS5 CALL PERFORM,V?TAKE,IRON-BAR RTRUE ?ELS5: PRINTI "These are a " CALL DPRINT,LG-IRON-BAR PRINTR " held firmly together by barnacles." .FUNCT PLAQUE-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?365 RTRUE ?ELS5: EQUAL? WRECK-CHOSEN,1 \?ELS7 EQUAL? PRSA,V?EXAMINE,V?READ \FALSE PRINTR "Although your knowledge of 17th-century Portuguese is minimal, you can see that the ship is named the Sao Vera, and the plaque is signed by King Alfonso VI." ?ELS7: CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT RSTACK .FUNCT PARTITIONS-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?366 RTRUE ?ELS5: EQUAL? WRECK-CHOSEN,2 \?ELS7 EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "These partitions once separated cabins." ?ELS7: CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT RSTACK .FUNCT WRECK-6-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-6-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \FALSE FSET? DEEP-SUIT,WORNBIT /?ELS14 FSET? MASK,WORNBIT \?THN17 IN? AIR-TANK,PLAYER \?THN17 FSET? WET-SUIT,WORNBIT /?ELS14 ?THN17: CALL JIGS-UP,WATERY-ENVIRONMENT RSTACK ?ELS14: CALL COMPILER-SUCKS-EXP-2 ZERO? STACK /FALSE CALL INT,I-CASE-LEAK PUT STACK,0,1 RTRUE .FUNCT COMPILER-SUCKS-EXP-2 FSET? STAMPS,RMUNGBIT /FALSE IN? GLASS-CASE,PLAYER \FALSE IN? PUTTY,GLASS-CASE \TRUE IN? HOLE-1,GLASS-CASE /?THN14 IN? HOLE-2,GLASS-CASE \FALSE ?THN14: ZERO? NO-HOLE-PLUGGED /FALSE RTRUE .FUNCT WRECK-6-D,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: ZERO? PRINT? \?ELS12 RETURN WRECK-11 ?ELS12: FSET? MINE,RMUNGBIT \?ELS14 FSET? AIR-TANK,WORNBIT /?THN20 IN? AIR-TANK,PLAYER /?ELS19 ?THN20: RETURN WRECK-11 ?ELS19: CALL TELL-TOO-BIG RFALSE ?ELS14: PRINTI "As you make your way down, you bump what had to be a floating mine. A second later..." CRLF CRLF CALL BOOM RSTACK .FUNCT TELL-SCUBA-STOPS PRINTR "The scuba tank makes it impossible to fit through the passage." .FUNCT TELL-CARRY-SCUBA? IN? AIR-TANK,PLAYER \FALSE PRINTI "Carrying your tank in front of you, you swim to the next room..." CRLF CRLF RTRUE .FUNCT WRECK-6-S,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 ZERO? PRINT? \?ELS10 RETURN WRECK-7 ?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12 CALL TELL-SCUBA-STOPS RFALSE ?ELS12: CALL TELL-CARRY-SCUBA? RETURN WRECK-7 ?ELS5: RETURN WRECK-7 .FUNCT CASK-F,RARG=0 EQUAL? RARG,M-BEG \?ELS5 ZERO? ROPE-HANGING /FALSE EQUAL? PRSA,V?WALK \FALSE EQUAL? P-WALK-DIR,P?UP \FALSE IN? CASK,WRECK-4 \FALSE CALL WEIGHT,PLAYER GRTR? STACK,22 \?ELS17 CALL TELL-YOU-CANT,STR?371 RSTACK ?ELS17: MOVE PLAYER,WRECK-1 SET 'HERE,WRECK-1 PRINTI "You reach up, grab the rope, and climb..." CRLF CRLF CALL WRECK-1-F,M-ENTER CALL V-FIRST-LOOK RTRUE ?ELS5: ZERO? RARG \FALSE EQUAL? PRSA,V?CLIMB-FOO \?ELS28 CALL PERFORM,V?CLIMB-ON,CASK RTRUE ?ELS28: EQUAL? PRSA,DRILL \FALSE PRINTI "There is now a hole in the " CALL DPRINT,CASK PRINTI "." CRLF CALL ADD-HOLE,CASK RSTACK .FUNCT WOOD-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?372 RTRUE ?ELS5: EQUAL? WRECK-CHOSEN,2 \FALSE CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT RSTACK .FUNCT OVERTURNED-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?373 RTRUE ?ELS5: EQUAL? WRECK-CHOSEN,1 \?ELS7 CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT RSTACK ?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "These are dining tables now scattered in various positions." .FUNCT WRECK-7-F,RARG EQUAL? RARG,M-LOOK \?ELS5 EQUAL? WRECK-CHOSEN,1 \?ELS8 PRINTI "This cabin was used for housing the crew. In addition to lining the " CALL DPRINT,BULKHEADS PRINTI "s, bunks are strewn about the cabin" ZERO? BUNKS-MOVED \?ELS13 PRINTI ", blocking a doorway aft. There is" JUMP ?CND11 ?ELS13: PRINTI ". There is a doorway aft, and" ?CND11: PRINTI " an unblocked forward exit." JUMP ?CND6 ?ELS8: GET WRECK-7-DESCS,WRECK-CHOSEN PRINT STACK ?CND6: CRLF RTRUE ?ELS5: EQUAL? RARG,M-BEG \FALSE EQUAL? WRECK-CHOSEN,2 \FALSE EQUAL? PRSA,V?WEAR \?ELS35 PRINTR "There's not enough room here for you to put that on." ?ELS35: EQUAL? PRSA,V?WALK \?CND33 FSET? DEEP-SUIT,WORNBIT \?CND33 CALL JIGS-UP,STR?374 ?CND33: CALL NOT-THIS-WRECK,PSEUDO-OBJECT RSTACK .FUNCT WRECK-7-S,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? BUNKS-MOVED \?THN11 ZERO? PRINT? \?ELS10 ?THN11: RETURN WRECK-8 ?ELS10: SET 'P-IT-OBJECT,FALLEN-BUNK PRINTI "There are bunks in the way." CRLF RFALSE ?ELS5: ZERO? PRINT? \?ELS23 RETURN WRECK-8 ?ELS23: FSET? AIR-TANK,WORNBIT \?ELS25 CALL TELL-SCUBA-STOPS RFALSE ?ELS25: CALL TELL-CARRY-SCUBA? RETURN WRECK-8 .FUNCT WRECK-7-N,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 ZERO? PRINT? \?ELS10 RETURN WRECK-6 ?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12 CALL TELL-SCUBA-STOPS RFALSE ?ELS12: CALL TELL-CARRY-SCUBA? RETURN WRECK-6 ?ELS5: RETURN WRECK-6 .FUNCT WRECK-7-U,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /?ELS10 PRINTI "There's no way you can reach that hole." CRLF RFALSE ?ELS10: RETURN WRECK-3 ?ELS5: CALL TELL-NO-GO,PRINT? RFALSE .FUNCT FALLEN-BUNK-F EQUAL? PRSA,V?PUSH \?ELS5 PRINTR "The bunks move a bit but fall back to where they were." ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 ZERO? BUNKS-MOVED /?ELS14 PRINTI "A " CALL DPRINT,FALLEN-BUNK PRINTI " teeters by the passageway." IN? IRON-BAR,FALLEN-BUNK \?CND18 PRINTI " They are being held up by an " CALL DPRINT,IRON-BAR PRINTI "." ?CND18: CRLF RTRUE ?ELS14: PRINTI "There is a " CALL DPRINT,FALLEN-BUNK PRINTR " before the aft doorway." ?ELS9: EQUAL? PRSA,V?SLEEP \?ELS28 CALL TELL-BAD-SHAPE RSTACK ?ELS28: EQUAL? PRSA,V?MOVE \?ELS30 EQUAL? PRSI,IRON-BAR \?ELS35 ZERO? BUNKS-MOVED /?ELS40 PRINTR "They've already been moved." ?ELS40: SET 'BUNKS-MOVED,TRUE-VALUE CALL QUEUE,I-PLUMMET,2 PUT STACK,0,1 SET 'CRIMP-CTR,0 PRINTI "Using the " CALL DPRINT,IRON-BAR PRINTR ", you move the bunks out of the way." ?ELS35: PRINTI "They're too heavy to move " ZERO? PRSI /?ELS54 PRINTI "that way" JUMP ?CND52 ?ELS54: PRINTI "by hand" ?CND52: PRINTR "." ?ELS30: EQUAL? PRSA,V?LOOK-BEHIND \?ELS65 EQUAL? HERE,WRECK-7 \?ELS65 ZERO? BUNKS-MOVED \?ELS65 PRINTR "There is a passageway there." ?ELS65: ZERO? BUNKS-MOVED /?ELS71 EQUAL? PRSA,V?PUT-UNDER \?ELS71 EQUAL? PRSO,IRON-BAR \?ELS71 CALL INT,I-PLUMMET PUT STACK,0,0 MOVE IRON-BAR,FALLEN-BUNK PUTP WRECK-7,P?DESCFCN,65 PUTP WRECK-8,P?DESCFCN,65 PRINTI "The " CALL DPRINT,IRON-BAR PRINTR " is wedging the bunks up." ?ELS71: EQUAL? PRSA,V?LOOK-UNDER \FALSE IN? IRON-BAR,FALLEN-BUNK \FALSE PRINTI "The " CALL DPRINT,IRON-BAR PRINTI " is there," PRINT WEDGED-STR CRLF RTRUE .FUNCT DEBRIS-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?377 RTRUE ?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "All sorts of jetsam has collected here, none of it very interesting on its own." .FUNCT WRECK-8-F,RARG EQUAL? RARG,M-LOOK \FALSE GET WRECK-8-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE .FUNCT WRECK-8-D,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-13 .FUNCT WRECK-8-N,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 ZERO? PRINT? \?ELS10 RETURN WRECK-7 ?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12 CALL TELL-SCUBA-STOPS RFALSE ?ELS12: CALL TELL-CARRY-SCUBA? RETURN WRECK-7 ?ELS5: RETURN WRECK-7 .FUNCT EAST-LADDER-F EQUAL? PRSA,V?CLIMB-FOO \FALSE EQUAL? HERE,WRECK-8 \?ELS8 CALL DO-WALK,P?DOWN JUMP ?CND6 ?ELS8: CALL DO-WALK,P?UP ?CND6: SET 'P-IT-OBJECT,EAST-LADDER RTRUE .FUNCT SAFE-F EQUAL? PRSA,V?THROUGH \?ELS5 EQUAL? HERE,WRECK-8 /?ELS5 EQUAL? WRECK-CHOSEN,2 /?ELS5 CALL GLOBAL-NOT-HERE-PRINT,SAFE RSTACK ?ELS5: EQUAL? PRSA,V?OPEN /?THN10 EQUAL? PRSA,V?DRILL \?ELS9 ?THN10: EQUAL? PRSI,DRILL \?ELS16 FSET SAFE,OPENBIT CALL QUEUE,I-CASE-LEAK,-1 PUT STACK,0,1 PRINTI "As you drill through the lock, the door pops open with a rush of escaping air!" FIRST? SAFE \?CND19 PRINTI " This reveals " CALL PRINT-CONTENTS,SAFE PRINTI "!" ?CND19: CRLF CALL ADD-HOLE,SAFE RSTACK ?ELS16: ZERO? PRSI /?ELS27 PRINTI "With " CALL APRINT,PRSI PRINTR "??!?" ?ELS27: IN? HOLE-1,SAFE /FALSE IN? HOLE-2,SAFE /FALSE PRINTR "It's locked." ?ELS9: EQUAL? PRSA,V?UNLOCK \FALSE IN? HOLE-1,SAFE /?THN46 IN? HOLE-2,SAFE \?ELS45 ?THN46: PRINTR "You've already done it. By brute force." ?ELS45: CALL TELL-DONT-HAVE,STR?381 RSTACK .FUNCT GLASS-CASE-F EQUAL? PRSA,V?OPEN \?ELS5 PRINTR "It's sealed shut." ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 PRINTI "The " CALL DPRINT,GLASS-CASE PRINTI " has a shelf inside it. A collection of extremely rare " FSET? STAMPS,RMUNGBIT \?CND12 PRINTI "but soggy " ?CND12: PRINTI "postage stamps sits on the shelf. There is a crack near a bottom corner of the case" IN? PUTTY,GLASS-CASE \?CND19 PRINTI ", which is sealed with putty" ?CND19: PRINTI "." IN? HOLE-1,GLASS-CASE /?THN29 IN? HOLE-2,GLASS-CASE \?CND26 ?THN29: PRINTI " Near the crack is the hole you drilled" IN? PUTTY,GLASS-CASE \?CND33 ZERO? NO-HOLE-PLUGGED \?CND33 PRINTI ", which is also filled with putty" ?CND33: PRINTI "." ?CND26: GRTR? WATER-IN-CASE,0 \?CND42 PRINTI " The case has some water in it." ?CND42: CRLF RTRUE ?ELS9: EQUAL? PRSA,V?TAKE,V?POUR \?ELS52 EQUAL? PRSO,OCEAN /?THN49 ?ELS52: EQUAL? PRSA,V?EMPTY \?ELS48 ?THN49: ZERO? WATER-IN-CASE \?ELS57 PRINTR "There's no water in the case." ?ELS57: CALL AIRTIGHT-ROOM? ZERO? STACK \?ELS61 PRINTR "That would be a losing battle." ?ELS61: SET 'WATER-IN-CASE,0 FSET STAMPS,RMUNGBIT PRINTR "In the process of emptying the case, you manage to get the stamps wet." ?ELS48: EQUAL? PRSA,V?DRILL \?ELS69 IN? PLAYER,WRECK-5 \?ELS72 ZERO? WRECK-5-FLOODED \?ELS72 SET 'WATER-IN-CASE,0 PRINTI "The water pours out of the hole." CRLF JUMP ?CND70 ?ELS72: SET 'WATER-IN-CASE,10 CALL INT,I-CASE-LEAK PUT STACK,0,0 FSET STAMPS,RMUNGBIT PRINTI "Water pours into the case, ruining the stamps." CRLF ?CND70: CALL ADD-HOLE,GLASS-CASE RSTACK ?ELS69: EQUAL? PRSA,V?MUNG \FALSE EQUAL? PRSO,GLASS-CASE \FALSE PRINTR "That wouldn't be too smart." .FUNCT STAMPS-F EQUAL? PRSA,V?EXAMINE \?ELS5 PRINTI "These are rare stamps which include a little-known sheet of ""inverted biplanes,"" full sheets of ""Graf Zeppelins,"" and other rarities. Sold at auction, their value would exceed $50 million" FSET? STAMPS,RMUNGBIT \?CND8 PRINTI ". Unfortunately, since they're all stuck together and salty, they're not even worth the price of a cup of coffee" ?CND8: PRINTR "." ?ELS5: EQUAL? PRSA,V?COUNT \FALSE PRINTR "It's hard to tell." .FUNCT WRECK-9-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-9-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \?ELS9 EQUAL? WRECK-CHOSEN,2 \?ELS9 PUTP CEILING-HOLE-2,P?SDESC,STR?5 FCLEAR CEILING-HOLE-2,VOWELBIT PUTP FLOOR-HOLE-2,P?SDESC,STR?5 RTRUE ?ELS9: EQUAL? RARG,M-BEG \FALSE EQUAL? WRECK-CHOSEN,1 \FALSE CALL NOT-THIS-WRECK,BUNKS RSTACK .FUNCT WRECK-9-U,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-4 .FUNCT WRECK-9-W,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /FALSE CALL TELL-CAREFULLY-PICK RETURN WEST-OF-WRECK-9 ?ELS5: CALL TELL-NO-GO,PRINT? RFALSE .FUNCT EMPTY-CHEST-F,RARG=0 CALL GENERIC-CHEST-F,EMPTY-CHEST,RARG RSTACK .FUNCT GENERIC-CHEST-F,CHEST,RARG EQUAL? RARG,M-BEG \?ELS5 EQUAL? PRSA,V?WALK \?ELS10 EQUAL? P-WALK-DIR,P?UP \?ELS10 IN? CHEST,WRECK-13 \?ELS10 MOVE PLAYER,WRECK-8 SET 'HERE,WRECK-8 ZERO? CHEST-CLIMB-POINTS /?CND13 CALL RATING-UPD,CHEST-CLIMB-POINTS SET 'CHEST-CLIMB-POINTS,0 ?CND13: PRINTI "You reach the first unbroken rung and climb the ladder..." CRLF CRLF CALL WRECK-8-F,M-ENTER CALL V-FIRST-LOOK RTRUE ?ELS10: EQUAL? PRSA,V?WALK \?ELS20 EQUAL? P-WALK-DIR,P?UP /?ELS20 CALL TELL-YOUD-BETTER,STR?384,TRUE-VALUE RSTACK ?ELS20: EQUAL? PRSA,V?MOVE \FALSE EQUAL? PRSO,SAFETY-LINE \FALSE IN? SAFETY-LINE,CHEST \FALSE CALL JIGS-UP,STR?385 RSTACK ?ELS5: ZERO? RARG \FALSE EQUAL? PRSA,V?CLIMB-FOO \?ELS33 CALL PERFORM,V?CLIMB-ON,CHEST RTRUE ?ELS33: EQUAL? PRSA,V?TAKE \?ELS35 PRINTR "It's much too heavy." ?ELS35: EQUAL? PRSA,V?PUSH-TO \?ELS39 IN? SAFETY-LINE,CHEST \?ELS39 EQUAL? P-WALK-DIR,P?EAST \?ELS39 CALL TELL-TOO-SHORT RSTACK ?ELS39: EQUAL? PRSA,V?TIE \FALSE EQUAL? PRSO,SAFETY-LINE /?THN49 EQUAL? PRSI,SAFETY-LINE \FALSE ?THN49: IN? SAFETY-LINE,CHEST \?ELS55 CALL TELL-ALREADY,STR?386 RSTACK ?ELS55: MOVE SAFETY-LINE,CHEST FSET SAFETY-LINE,NDESCBIT ZERO? CHEST-TIE-POINTS /?CND58 CALL RATING-UPD,CHEST-TIE-POINTS SET 'CHEST-TIE-POINTS,0 ?CND58: CALL INT,I-PENDULUM PUT STACK,0,0 PRINTR "Tied." .FUNCT JAGGED-HOLE-F,OUTSIDE?=0 EQUAL? HERE,WEST-OF-WRECK-9,WEST-OF-WRECK-11 \?CND1 SET 'OUTSIDE?,TRUE-VALUE ?CND1: EQUAL? PRSA,V?THROUGH \?ELS8 ZERO? OUTSIDE? /?ELS13 CALL DO-WALK,P?EAST RSTACK ?ELS13: CALL DO-WALK,P?WEST RSTACK ?ELS8: EQUAL? PRSA,V?PUSH-THROUGH \?ELS18 EQUAL? PRSI,JAGGED-HOLE \?ELS18 ZERO? OUTSIDE? /?ELS23 SET P-WALK-DIR,P?EAST JUMP ?CND21 ?ELS23: SET P-WALK-DIR,P?WEST ?CND21: CALL PERFORM,V?PUSH-TO,PRSO,INTDIR RTRUE ?ELS18: EQUAL? PRSA,V?LOOK-INSIDE \FALSE CALL TELL-YOU-CANT,STR?6 RSTACK .FUNCT TELL-TOO-SHORT,STR=0 PRINTI "The " CALL DPRINT,SAFETY-LINE PRINTI " isn't long enough" ZERO? STR /?CND3 PRINT STR ?CND3: PRINTR "." .FUNCT GENERIC-WEST-F,RARG EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You are on the murky ocean floor, outside the rotted hull of a " CALL DPRINT,SHIPWRECK PRINTR ". You can return to the wreck through the hole in the hull to starboard." ?ELS5: EQUAL? RARG,M-BEG \?ELS9 EQUAL? PRSA,V?WALK \?ELS14 EQUAL? P-WALK-DIR,P?EAST,P?IN \?ELS19 IN? SAFETY-LINE,PLAYER \FALSE CALL TELL-TOO-SHORT,STR?388 RETURN 2 ?ELS19: ZERO? P-WALK-DIR /FALSE CALL LINE-SNAGS RSTACK ?ELS14: EQUAL? PRSA,V?WAIT-FOR \FALSE EQUAL? PRSO,SAFETY-LINE \FALSE CALL QUEUED?,I-PENDULUM ZERO? STACK /FALSE IN? SAFETY-LINE,HERE \?ELS39 SET 'CLOCK-WAIT,TRUE-VALUE PRINTR "It's right here!" ?ELS39: CALL V-WAIT RSTACK ?ELS9: EQUAL? RARG,M-END \FALSE IN? SAFETY-LINE,HERE \FALSE CALL ENABLED?,I-PENDULUM ZERO? STACK \FALSE CALL QUEUE,I-PENDULUM,3 PUT STACK,0,1 RTRUE .FUNCT LINE-SNAGS CALL JIGS-UP,STR?389 RSTACK .FUNCT SAFETY-LINE-F,RARG=0,MSTR EQUAL? RARG,M-OBJDESC \?ELS5 PRINTI "The " CALL DPRINT,SAFETY-LINE PRINTR " from the ship is swaying to and fro." ?ELS5: EQUAL? PRSA,V?TAKE \?ELS9 IN? SAFETY-LINE,TREASURE-CHEST /?THN13 IN? SAFETY-LINE,EMPTY-CHEST \?ELS12 ?THN13: PRINTR "It's tied to the chest." ?ELS12: IN? SAFETY-LINE,HERE /?ELS18 PRINTR "It's no longer here." ?ELS18: CALL ITAKE ZERO? STACK /TRUE CALL INT,I-PENDULUM PUT STACK,0,0 PRINTR "Taken." ?ELS9: EQUAL? PRSA,V?UNTIE \?ELS26 IN? SAFETY-LINE,TREASURE-CHEST /?THN32 IN? SAFETY-LINE,EMPTY-CHEST \?ELS31 ?THN32: CALL META-LOC,SAFETY-LINE MOVE SAFETY-LINE,STACK FCLEAR SAFETY-LINE,NDESCBIT CALL QUEUE,I-PENDULUM,3 PUT STACK,0,1 PRINTR "Untied." ?ELS31: PRINTR "It's not tied to anything!" ?ELS26: EQUAL? PRSA,V?MOVE \?ELS41 PRINTI "The line starts to move upward" SET 'MSTR,STR?390 IN? SAFETY-LINE,TREASURE-CHEST \?ELS46 LOC WEASEL MOVE TREASURE-CHEST,STACK JUMP ?CND44 ?ELS46: IN? SAFETY-LINE,EMPTY-CHEST \?ELS48 LOC WEASEL MOVE EMPTY-CHEST,STACK JUMP ?CND44 ?ELS48: SET 'MSTR,STR?391 CALL INT,I-PENDULUM PUT STACK,0,0 LOC WEASEL MOVE SAFETY-LINE,STACK ?CND44: PRINT MSTR CRLF RTRUE ?ELS41: EQUAL? PRSA,V?CLIMB-FOO \?ELS54 CALL LINE-SNAGS RSTACK ?ELS54: EQUAL? PRSA,V?CUT \FALSE PRINTR "This rope is too strong." .FUNCT WRECK-10-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-10-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \FALSE FSET? DEEP-SUIT,WORNBIT /?ELS14 FSET? MASK,WORNBIT \?THN17 IN? AIR-TANK,PLAYER \?THN17 FSET? WET-SUIT,WORNBIT /?ELS14 ?THN17: CALL JIGS-UP,WATERY-ENVIRONMENT RSTACK ?ELS14: CALL COMPILER-SUCKS-EXP-2 ZERO? STACK /FALSE CALL INT,I-CASE-LEAK PUT STACK,0,1 RTRUE .FUNCT WRECK-10-U,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-5 .FUNCT LOCKER-DOOR-F EQUAL? PRSA,V?OPEN \?ELS5 FSET? LOCKER-DOOR,OPENBIT \?ELS10 CALL TELL-ALREADY,STR?25 RSTACK ?ELS10: FSET LOCKER-DOOR,OPENBIT CALL TELL-NOW,LOCKER-DOOR,STR?25 RSTACK ?ELS5: EQUAL? PRSA,V?CLOSE \?ELS14 FSET? LOCKER-DOOR,OPENBIT \?ELS19 FCLEAR LOCKER-DOOR,OPENBIT CALL TELL-NOW,LOCKER-DOOR,STR?26 RSTACK ?ELS19: CALL TELL-ALREADY,STR?26 RSTACK ?ELS14: EQUAL? PRSA,V?READ \?ELS23 CALL FIXED-FONT-ON PRINTI " ""S.S. LEVIATHAN STORAGE LOCKER DANGER: EXPLOSIVES!"" " CALL FIXED-FONT-OFF RTRUE ?ELS23: EQUAL? PRSA,V?EXAMINE \FALSE PRINTI "The door, which has a sign on it, is " FSET? LOCKER-DOOR,OPENBIT \?ELS32 PRINTI "open" JUMP ?CND30 ?ELS32: PRINTI "closed" ?CND30: PRINTR "." .FUNCT SKELETON-F,RARG=0 EQUAL? RARG,M-OBJDESC \?ELS5 PRINTI "Some who went down with the ship were in here, where they are nothing more than " CALL DPRINT,SKELETON PRINTR "s." ?ELS5: EQUAL? PRSA,V?KILL \?ELS9 PRINTI "The " CALL DPRINT,SKELETON PRINTR "s remain dead." ?ELS9: EQUAL? PRSA,V?TAKE,V?ATTACK,V?MUNG /?THN14 EQUAL? PRSA,V?PUSH \?ELS13 ?THN14: PRINTI "One of the " CALL DPRINT,SKELETON PRINTR "s falls apart." ?ELS13: EQUAL? PRSA,V?COUNT,V?EXAMINE \FALSE PRINTI "There are about fifty of them. " EQUAL? PRSA,V?COUNT \?ELS26 PRINTR "It's hard to tell exactly." ?ELS26: PRINTI "As you look around, you notice that one of the " CALL DPRINT,SKELETON PRINTI "s has what looks like a " CALL DPRINT,SCABBARD PRINTR " at its hip." .FUNCT SCABBARD-F,F EQUAL? PRSA,V?TAKE \?ELS5 PRINTI "The " CALL DPRINT,SCABBARD PRINTI " is stuck to the " CALL DPRINT,SKELETON PRINTR " by encrusted barnacles." ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 PRINTI "There is very little of the original leather left to this " CALL DPRINT,SCABBARD PRINTI ", but barnacles have collected in its place." FIRST? SCABBARD >F \?CND12 PRINTI " There is " CALL APRINT,F PRINTI " in the " CALL DPRINT,SCABBARD PRINTI "." ?CND12: CRLF RTRUE ?ELS9: EQUAL? PRSA,V?OPEN \?ELS18 CALL TELL-ALREADY,STR?25 RSTACK ?ELS18: EQUAL? PRSA,V?CLOSE \?ELS20 PRINTR "It doesn't close." ?ELS20: EQUAL? PRSA,V?CUT \FALSE CALL TELL-BARNACLES RSTACK .FUNCT TELL-BARNACLES PRINTR "The barnacles are too firmly emplaced." .FUNCT BARNACLE-PSEUDO,PARG=0 EQUAL? PARG,M-NAME \?ELS5 PUTP PSEUDO-OBJECT,P?SDESC,STR?394 RTRUE ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 PRINTR "The barnacles look very firmly emplaced." ?ELS7: EQUAL? PRSA,V?MOVE,V?CUT,V?TAKE \FALSE CALL TELL-BARNACLES RSTACK .FUNCT WRECK-11-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-11-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE ?ELS5: EQUAL? RARG,M-BEG \FALSE EQUAL? PRSA,V?WALK \FALSE IN? MINE,MAGNET \FALSE IN? MAGNET,PLAYER \FALSE ZERO? MAGNET-ON /FALSE PRINTI "The mine bumps a " CALL DPRINT,BULKHEADS PRINTI "..." CRLF CRLF CALL BOOM RSTACK .FUNCT WRECK-11-U,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: ZERO? PRINT? \?ELS12 RETURN WRECK-6 ?ELS12: FSET? MINE,RMUNGBIT /?ELS14 PRINTI "As you make your way up, you bump the floating mine. A second later..." CRLF CRLF CALL BOOM RSTACK ?ELS14: FSET? AIR-TANK,WORNBIT \?ELS18 RETURN WRECK-6 ?ELS18: CALL TELL-TOO-BIG RFALSE .FUNCT WRECK-11-S,PRINT?=1 EQUAL? WRECK-CHOSEN,2 \?ELS5 CALL TELL-NO-GO,PRINT? RFALSE ?ELS5: RETURN WRECK-12 .FUNCT TELL-CAREFULLY-PICK PRINTI "You carefully pick your way through the jagged edge of the hole..." CRLF CRLF RTRUE .FUNCT WRECK-11-W,PRINT?=1 EQUAL? WRECK-CHOSEN,1 \?ELS5 ZERO? PRINT? /FALSE CALL TELL-CAREFULLY-PICK RETURN WEST-OF-WRECK-11 ?ELS5: CALL TELL-NO-GO,PRINT? RFALSE .FUNCT TREASURE-CHEST-F,RARG=0 CALL GENERIC-CHEST-F,TREASURE-CHEST,RARG RSTACK .FUNCT MINE-F EQUAL? PRSA,V?THROW-OFF,V?THROW,V?TAKE /?THN6 EQUAL? PRSA,V?PUSH,V?MUNG,V?MOVE /?THN6 EQUAL? PRSA,V?PUSH-TO \?ELS5 ?THN6: CALL BOOM RSTACK ?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE IN? MINE,MAGNET \?ELS12 ZERO? MAGNET-ON /?ELS12 PRINTI "A single mine is being held by the " CALL DPRINT,MAGNET PRINTR " which is safely attached between its spikes." ?ELS12: FSET? MINE,RMUNGBIT \?ELS18 PRINTI "A single mine is floating relatively harmlessly in one corner of the room." JUMP ?CND10 ?ELS18: PRINTI "This mine is blocking the hole that leads to the room above." ?CND10: PRINTI " It has lots of widely-spaced spikes pointing out from it." IN? MINE,MAGNET \?CND27 PRINTI " You are holding the " CALL DPRINT,MAGNET PRINTI " next to it." ?CND27: CRLF RTRUE .FUNCT CLUMP-OF-MINES-F,RARG=0 EQUAL? RARG,M-OBJDESC \?ELS5 PRINTI "A number of spherical mines with spikes sticking out of them litter the room. These mines must have once been used to blockade shipping lanes. Most of them are tethered together on the deck, but one is " IN? MINE,MAGNET \?ELS10 ZERO? MAGNET-ON /?ELS13 PRINTI "being held by the " JUMP ?CND11 ?ELS13: PRINTI "touching your " ?CND11: CALL DPRINT,MAGNET JUMP ?CND8 ?ELS10: FSET? MINE,RMUNGBIT \?ELS24 PRINTI "floating in a corner of the room" JUMP ?CND8 ?ELS24: PRINTI "floating up near the hole in the " CALL DPRINT,CEILING ?CND8: PRINTR "." ?ELS5: EQUAL? PRSA,V?TAKE \FALSE CALL BOOM RSTACK .FUNCT BOOM CALL JIGS-UP,STR?398 RSTACK .FUNCT WRECK-12-F,RARG EQUAL? RARG,M-LOOK \?ELS5 GET WRECK-12-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE ?ELS5: EQUAL? RARG,M-ENTER \FALSE CALL QUEUE,I-SQUID,2 PUT STACK,0,1 RTRUE .FUNCT SQUID-F EQUAL? PRSA,V?EXAMINE \?ELS5 PRINTR "The squid is huge, its body 20 feet long, and each of its ten arms 35 feet long! It is currently asleep, its arms waving placidly beneath its body." ?ELS5: EQUAL? PRSA,V?ALARM \FALSE PRINTI "As it awakens, the behemoth turns to you. " CALL I-SQUID RSTACK .FUNCT WRECK-13-F,RARG EQUAL? RARG,M-LOOK \FALSE GET WRECK-13-DESCS,WRECK-CHOSEN PRINT STACK CRLF RTRUE .FUNCT WRECK-13-U,PRINT?=1 ZERO? PRINT? \?ELS5 RETURN WRECK-8 ?ELS5: CALL TELL-CANT-REACH,STR?402 RFALSE .FUNCT NOT-THIS-WRECK,OBJ EQUAL? PRSO,OBJ /?THN6 EQUAL? PRSI,OBJ \FALSE ?THN6: CALL GLOBAL-NOT-HERE-PRINT,OBJ RTRUE .ENDI