.FUNCT I-UNWOUND SET 'WATCH-WOUND,FALSE-VALUE RFALSE .FUNCT I-BUSINESS-HOURS ZERO? BUSINESS-HOURS? /?ELS5 SET 'BUSINESS-HOURS?,FALSE-VALUE IN? PLAYER,MCGINTY-HQ \?ELS9 MOVE PLAYER,WHARF-ROAD-2 SET 'HERE,WHARF-ROAD-2 PRINTI """Closing time,"" says " CALL DPRINT,MCGINTY PRINTI " as he escorts you out to the street..." CRLF CRLF CALL V-FIRST-LOOK RTRUE ?ELS9: IN? PLAYER,OUTFITTERS-HQ \?ELS13 MOVE PLAYER,WHARF-ROAD-4 SET 'HERE,WHARF-ROAD-4 PRINTI """Sorry, but it's closing time,"" the salesman says, then shows you out..." CRLF CRLF CALL V-FIRST-LOOK RTRUE ?ELS13: IN? PLAYER,BANK \FALSE MOVE PLAYER,SHORE-ROAD-2 SET 'HERE,SHORE-ROAD-2 PRINTI "The teller says, ""You'll have to leave. It's 5:00."" A guard escorts you out..." CRLF CRLF CALL V-FIRST-LOOK RTRUE ?ELS5: SET 'BUSINESS-HOURS?,TRUE-VALUE CALL QUEUE,I-BUSINESS-HOURS,480 PUT STACK,0,1 RFALSE .FUNCT I-FERRY-APPROACHING CALL QUEUE,I-FERRY-APPROACHING,-1 PUT STACK,0,1 FCLEAR FERRY,INVISIBLE IN? WEASEL,GLOBAL-FERRY \?CND1 MOVE WEASEL,FERRY ?CND1: EQUAL? HERE,FERRY-LANDING,SHORE-ROAD-1,SHORE-ROAD-2 \FALSE PRINTR "The ferry approaches the landing." .FUNCT I-FERRY,WEASEL-HERE?=0 CALL INT,I-FERRY-APPROACHING PUT STACK,0,0 CALL QUEUE,I-FERRY-LEAVING,5 PUT STACK,0,1 CALL QUEUE,I-FERRY-GONE,8 PUT STACK,0,1 MOVE FERRY,FERRY-LANDING IN? WEASEL,FERRY-LANDING \?ELS3 CALL QUEUED?,I-TRAITOR-MEETING ZERO? STACK \?ELS3 SET 'WEASEL-HERE?,TRUE-VALUE MOVE WEASEL,FERRY JUMP ?CND1 ?ELS3: IN? WEASEL,FERRY \?CND1 MOVE WEASEL,FERRY-LANDING IN? JOHNNY,FERRY-LANDING \?ELS10 ZERO? WEASEL-BLOWN /?ELS10 CALL ROUGH-JUSTICE JUMP ?CND1 ?ELS10: EQUAL? SHIP-CHOSEN,TRAWLER \?ELS14 CALL ESTABLISH-GOAL,WEASEL,NW-CREW-QTRS JUMP ?CND1 ?ELS14: EQUAL? SHIP-CHOSEN,SALVAGER \?CND1 CALL ESTABLISH-GOAL,WEASEL,MM-CREW-QTRS ?CND1: EQUAL? HERE,FERRY-LANDING \?ELS21 PRINTI "The ferry arrives. Some passengers get off and others get on." ZERO? WEASEL-HERE? /?ELS26 CALL TELL-FERRY-KLUDGE,STR?431 JUMP ?CND24 ?ELS26: IN? WEASEL,FERRY-LANDING \?CND24 CALL QUEUED?,I-TRAITOR-MEETING ZERO? STACK \?CND24 CALL TELL-FERRY-KLUDGE,STR?432 IN? ENVELOPE,PLAYER \?CND24 CRLF CALL WEASEL-BEATS-YOU ?CND24: CRLF RTRUE ?ELS21: EQUAL? HERE,SHORE-ROAD-1,SHORE-ROAD-2 \FALSE PRINTR "The ferry arrives at the landing." .FUNCT TELL-FERRY-KLUDGE,STR PRINTI " The Weasel " PRINT STR PRINTI "." RTRUE .FUNCT I-FERRY-LEAVING CALL QUEUE,I-FERRY-LEAVING,-1 PUT STACK,0,1 MOVE FERRY,LOCAL-GLOBALS IN? WEASEL,FERRY \?CND1 IN? PASSBOOK,WEASEL \?CND1 MOVE WEASEL,LOCAL-GLOBALS ?CND1: EQUAL? HERE,FERRY-LANDING,SHORE-ROAD-1,SHORE-ROAD-2 \FALSE PRINTR "The ferry pulls away, heading for the mainland." .FUNCT I-FERRY-GONE CALL INT,I-FERRY-LEAVING PUT STACK,0,0 CALL QUEUE,I-FERRY-APPROACHING,109 PUT STACK,0,1 CALL QUEUE,I-FERRY,112 PUT STACK,0,1 FSET FERRY,INVISIBLE IN? WEASEL,FERRY \FALSE MOVE WEASEL,GLOBAL-FERRY RFALSE .FUNCT I-DISGUSTING-WEASEL-KLUDGE,WGT IN? PASSBOOK,WEASEL /FALSE GET GOAL-TABLES,WEASEL-C >WGT GET WGT,GOAL-F EQUAL? STACK,SHANTY /FALSE PUT WGT,ATTENTION,0 CALL ESTABLISH-GOAL,WEASEL,SHANTY RFALSE .FUNCT I-FIRST-MEETING EQUAL? FM-CTR,5 \?ELS5 CALL INT,I-FIRST-MEETING PUT STACK,0,0 RFALSE ?ELS5: IN? JOHNNY,SHANTY \FALSE IN? PETE,SHANTY \FALSE CALL META-LOC,PLAYER EQUAL? STACK,SHANTY \FALSE ZERO? FM-CTR \?ELS14 GRTR? PRESENT-TIME,535 \?CND15 CALL I-PLOT-NEVER-STARTS CALL INT,I-FIRST-MEETING PUT STACK,0,0 RFALSE ?CND15: SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI """Sit down and we'll talk,"" " CALL DPRINT,JOHNNY PRINTR " says." ?ELS14: EQUAL? FM-CTR,1 \?ELS21 IN? WEASEL,SHANTY \?ELS26 SET 'FM-CTR,2 CALL I-FIRST-MEETING RSTACK ?ELS26: ZERO? WAITING-FOR-WEASEL /?ELS28 GRTR? PRESENT-TIME,525 \FALSE CALL INT,I-FIRST-MEETING PUT STACK,0,0 CALL I-PLOT-NEVER-STARTS SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI "Pete looks at Johnny and says, ""Weasel ain't gonna show."" ""Guess not,"" replies Johnny. ""Without " CALL DPRINT,WEASEL PRINTR ", there's no deal. Who knows what that creep is up to?""" ?ELS28: SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI "Johnny says, ""When " CALL DPRINT,WEASEL PRINTI " shows, I'll tell ya what we got.""" CRLF SET 'WAITING-FOR-WEASEL,TRUE-VALUE RETURN WAITING-FOR-WEASEL ?ELS21: GRTR? BLOOD-ALCOHOL,10 \?ELS42 CALL INT,I-FIRST-MEETING PUT STACK,0,0 CALL I-PLOT-NEVER-STARTS PRINTR "Pete turns to Johnny and says, ""This joker's drunk!"" ""Yeah,"" Johnny says. He looks at you. ""Some diver! We'll find someone else.""" ?ELS42: EQUAL? FM-CTR,2 \?ELS46 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI "At Pete's request, " CALL DPRINT,WEASEL PRINTI " joins you. Johnny then whispers that he's come across some sunken " CALL DPRINT,GLOBAL-TREASURE PRINTI "." CRLF SET 'FM-CTR,3 SET 'I-WAIT-RTN,I-FIRST-MEETING SET 'I-WAIT-DURATION,2 RETURN I-WAIT-DURATION ?ELS46: EQUAL? FM-CTR,3 \?ELS50 ZERO? I-WAIT-FLAG /?ELS55 PRINTI "Unfortunately, this interrupts Johnny's explanation of what the meeting is about." CRLF SET 'I-WAIT-DURATION,2 RETURN I-WAIT-DURATION ?ELS55: GRTR? I-WAIT-DURATION,0 \?ELS60 EQUAL? I-WAIT-RTN,I-FIRST-MEETING /FALSE ?ELS60: SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI "Johnny explains that they need more money to get started. They chose you because they know you've salted some money away and you're a great diver. He asks if you're interested in the deal." CRLF SET 'FM-CTR,4 RETURN FM-CTR ?ELS50: EQUAL? FM-CTR,4 \FALSE GRTR? PRESENT-TIME,539 \?ELS73 EQUAL? PRSA,V?NO,V?YES /?ELS73 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE CALL I-PLOT-NEVER-STARTS PRINTR "Pete turns to Johnny. ""We don't want anyone who can't decide."" ""Right,"" says Johnny. ""We'll find someone else."" He turns to you. ""Say a word about this and you're history!""" ?ELS73: SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTR """Well, what is it? Yes or no?"" Pete asks anxiously." .FUNCT SAMPLE-TREASURE-F EQUAL? PRSA,V?TAKE /?THN6 EQUAL? PRSA,V?ASK-FOR \?ELS5 EQUAL? PRSO,JOHNNY \?ELS5 ?THN6: IN? MCGINTY,HERE \?ELS14 CALL PERFORM,V?TELL,MCGINTY,SAMPLE-TREASURE RTRUE ?ELS14: PRINTR "Red pulls it back. ""If we get the loot, there'll be plenty for all.""" ?ELS5: EQUAL? PRSA,V?TURN \FALSE CALL DPRINT,JOHNNY PRINTR " has it." .FUNCT I-SECOND-MEETING GRTR? PRESENT-TIME,585 \?CND1 LESS? SM-CTR,2 /?THN6 GRTR? HOW-HUNGRY,3 \?CND1 ?THN6: CALL ALL-GO-HOME CALL I-PLOT-NEVER-STARTS SET 'SM-CTR,4 ?CND1: EQUAL? SM-CTR,4 \?ELS12 CALL INT,I-SECOND-MEETING PUT STACK,0,0 RTRUE ?ELS12: EQUAL? HERE,WINDING-ROAD-1 /?ELS14 CALL INT,I-SECOND-MEETING PUT STACK,0,0 RTRUE ?ELS14: GRTR? SM-CTR,1 \?ELS16 IN? MCGINTY,WINDING-ROAD-1 /?THN19 IN? MCGINTY,WINDING-ROAD-2 \?ELS16 ?THN19: CALL JIGS-UP,STR?435 RSTACK ?ELS16: LESS? SM-CTR,2 \?ELS22 IN? WEASEL,WINDING-ROAD-1 \?ELS27 IN? JOHNNY,WINDING-ROAD-1 \?ELS27 IN? PETE,WINDING-ROAD-1 \?ELS27 SET 'SM-CTR,2 CALL I-SECOND-MEETING RTRUE ?ELS27: ZERO? SM-CTR \FALSE IN? JOHNNY,WINDING-ROAD-1 \FALSE SET 'SM-CTR,1 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTR "Johnny says, ""We'll start when everyone's here.""" ?ELS22: GRTR? BLOOD-ALCOHOL,10 \?ELS40 SET 'SM-CTR,4 CALL INT,I-SECOND-MEETING PUT STACK,0,0 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE CALL ALL-GO-HOME CALL I-PLOT-NEVER-STARTS PRINTI """I won't risk everything on a drunk diver!"" " CALL DPRINT,WEASEL PRINTR " says. ""You're right,"" says Johnny. ""We're calling this off.""" ?ELS40: EQUAL? SM-CTR,2 \?ELS44 RANDOM 2 >WRECK-FOUND EQUAL? WRECK-FOUND,1 \?ELS47 SET 'SAMPLE-TREASURE,GOLD-COIN JUMP ?CND45 ?ELS47: SET 'SAMPLE-TREASURE,DINNER-PLATE ?CND45: PUTP SAMPLE-TREASURE,P?ACTION,SAMPLE-TREASURE-F MOVE SAMPLE-TREASURE,JOHNNY SET 'P-IT-OBJECT,SAMPLE-TREASURE SET 'SM-CTR,3 SET 'I-WAIT-DURATION,6 SET 'I-WAIT-RTN,I-SECOND-MEETING SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTI "Johnny nods, then pulls out " CALL APRINT,SAMPLE-TREASURE PRINTR " he says he came across while on a shark hunt." ?ELS44: EQUAL? SM-CTR,3 \FALSE ZERO? I-WAIT-FLAG /?ELS58 PRINTI "This interrupts Johnny's explanation, which makes him angry." CRLF SET 'I-WAIT-DURATION,6 RETURN I-WAIT-DURATION ?ELS58: GRTR? I-WAIT-DURATION,0 \?ELS63 EQUAL? I-WAIT-RTN,I-SECOND-MEETING /FALSE ?ELS63: CALL INT,I-SECOND-MEETING PUT STACK,0,0 SUB 705,PRESENT-TIME CALL QUEUE,I-OTHERS-MEET,STACK PUT STACK,0,1 SET 'SM-CTR,4 SET 'MEETINGS-COMPLETED,2 PUT MOVEMENT-GOALS,JOHNNY-C,JOHNNY-CONTINUES-TABLE CALL IMOVEMENT,JOHNNY,I-JOHNNY CALL RATING-UPD,20 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE CRLF PRINTI """We're not sure which wreck to salvage,"" Johnny says. ""Since you're joining up, we're hoping you'll identify where the " CALL DPRINT,SAMPLE-TREASURE PRINTI " came from, and then do the dive for us. I'll captain, Pete will cook, and " CALL DPRINT,WEASEL PRINTI " will crew. Johnny winks at you. ""We'll need you to supply the minutes of longitude and latitude of the wreck. Get $500 and meet me at Point Lookout at 10:45. Then we'll provision the boat."" He turns to the others. ""We'll meet in " CALL DPRINT,SHANTY PRINTR " at 11:45 to discuss final arrangements. ""We're all in this now,"" Johnny says to the group. ""I'm not gonna chance this operation if one of you doesn't show. We need everyone to pull this off. If anyone tries anything stupid, you won't live to regret it.""" .FUNCT I-THIRD-MEETING,JMG EQUAL? HERE,POINT-LOOKOUT /?ELS3 CALL INT,I-THIRD-MEETING PUT STACK,0,0 RFALSE ?ELS3: IN? JOHNNY,POINT-LOOKOUT \FALSE LESS? TM-CTR,6 \?CND1 INC 'TM-CTR ?CND1: IN? MCGINTY,POINT-LOOKOUT \?ELS15 CALL JIGS-UP,STR?436 RSTACK ?ELS15: IN? MCGINTY,OCEAN-ROAD-3 \?ELS17 CALL IN-MOTION?,MCGINTY ZERO? STACK \?ELS17 CALL JIGS-UP,STR?437 RSTACK ?ELS17: EQUAL? TM-CTR,1 \?ELS21 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTR "Johnny turns toward you. ""Well? Did you bring the money?""" ?ELS21: GRTR? BLOOD-ALCOHOL,10 \?ELS25 CALL JIGS-UP,STR?438 RSTACK ?ELS25: EQUAL? TM-CTR,4 \?ELS27 PRINTR "Johnny glares at you as if you were a sea slug." ?ELS27: EQUAL? TM-CTR,5 \?ELS31 CALL JIGS-UP,STR?439 RSTACK ?ELS31: EQUAL? TM-CTR,6 \?ELS33 SET 'TM-CTR,7 CALL RATING-UPD,20 SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE CRLF PRINTI """Glad you're with us. Since you're okay, I'll level with you. Before Hevlin died, he told me he gave you the book. He also said you could handle this job. He's the one who gave me the " CALL DPRINT,SAMPLE-TREASURE PRINTI ". I didn't want to say anything in front of Pete and " CALL DPRINT,WEASEL PRINTI " just in case. ""We're gonna need a boat, but I don't know which one. If you need deep-sea diving gear, it'll have to be the " CALL DPRINT,SALVAGER PRINTI ". Is the " CALL DPRINT,GLOBAL-TREASURE PRINTR " more than 200 feet deep?""" ?ELS33: EQUAL? TM-CTR,7 \?ELS37 GRTR? PRESENT-TIME,675 \?CND38 CALL JIGS-UP,STR?440 ?CND38: SET 'QCONTEXT,JOHNNY SET 'QCONTEXT-ROOM,HERE PRINTR "Johnny looks impatient. ""Don't confuse things. A yes or no will do.""" ?ELS37: EQUAL? TM-CTR,8 \FALSE CALL ESTABLISH-GOAL,JOHNNY,OUTFITTERS-HQ PUT MOVEMENT-GOALS,JOHNNY-C,JOHNNY-COMPLETES-TABLE GET MOVEMENT-GOALS,JOHNNY-C >JMG SUB 838,PRESENT-TIME PUT JMG,MG-TIME,STACK CALL IMOVEMENT,JOHNNY,I-JOHNNY CALL INT,I-THIRD-MEETING PUT STACK,0,0 SET 'MEETINGS-COMPLETED,3 PRINTI """We'll rent the " CALL DPRINT,SHIP-CHOSEN PRINTR ". Let's go get what we need.""" .FUNCT I-EQUIP,MCG-GT,V=0 IN? PLAYER,OUTFITTERS-HQ \?ELS5 IN? MCGINTY,OUTFITTERS-HQ \?ELS10 INC 'WARNING-CTR EQUAL? WARNING-CTR,7 \?CND11 PRINTI "Johnny leans over and whispers, ""Let's wait out McGinty. He should leave soon.""" CRLF SET 'V,TRUE-VALUE ?CND11: GRTR? I-WAIT-DURATION,0 \?ELS20 SET 'I-WAIT-DURATION,0 SET 'I-WAIT-RTN,FALSE-VALUE PRINTI "Johnny ends his conversation, and " CALL DPRINT,MCGINTY PRINTR " asks the salesman some questions." ?ELS20: GET GOAL-TABLES,MCGINTY-C >MCG-GT GET MCG-GT,GOAL-ENABLE ZERO? STACK /?ELS24 GET MCG-GT,GOAL-F EQUAL? STACK,MCGINTY-HQ \?ELS24 ZERO? MCGINTY-KNOWS \?CND27 SET 'MCGINTY-MEETS-WEASEL,TRUE-VALUE ?CND27: SET 'I-WAIT-DURATION,9 SET 'I-WAIT-RTN,I-EQUIP RFALSE ?ELS24: EQUAL? PRSA,V?RENT,V?BUY \?ELS31 EQUAL? PRSO,FERRY-TOKEN /?ELS31 SET 'MCGINTY-KNOWS,TRUE-VALUE CALL INT,I-MCGINTY-FOLLOWS PUT STACK,0,0 CALL INT,I-EQUIP PUT STACK,0,0 MOVE MCGINTY,WHARF-ROAD-4 CALL ESTABLISH-GOAL,MCGINTY,MCGINTY-HQ CALL DPRINT,MCGINTY PRINTI " grins as he realizes what you're up to." CALL SAY-MCGINTY-KNOWS RSTACK ?ELS31: GRTR? PRESENT-TIME,699 \?ELS37 IN? JOHNNY,OUTFITTERS-HQ \?ELS42 CALL ESTABLISH-GOAL,JOHNNY,SHANTY PRINTI "Johnny glares at " CALL DPRINT,MCGINTY PRINTR " and then at his watch. ""There's no way."" He turns to you. ""Forget it. We can't get this done in time.""" ?ELS42: CALL INT,I-MCGINTY-FOLLOWS PUT STACK,0,0 CALL ESTABLISH-GOAL,MCGINTY,MCGINTY-HQ CALL INT,I-EQUIP PUT STACK,0,0 CALL DPRINT,MCGINTY PRINTR " turns to the salesman. ""I think... yeah! I will need that boat after all."" He turns to you and grins." ?ELS37: EQUAL? PRSA,V?WAIT-FOR,V?WAIT /?ELS50 EQUAL? PRSA,V?WALK,V?LOOK /?ELS50 PRINTI "Johnny glances nervously at " CALL DPRINT,MCGINTY PRINTR "." ?ELS50: RETURN V ?ELS10: ZERO? MCGINTY-KNOWS /?ELS58 CALL INT,I-EQUIP PUT STACK,0,0 RFALSE ?ELS58: ZERO? I-WAIT-FLAG /?ELS61 PRINTI "Johnny seems unhappy to have his conversation interrupted." CRLF SET 'I-WAIT-DURATION,9 RETURN I-WAIT-DURATION ?ELS61: EQUAL? I-WAIT-RTN,I-EQUIP \?ELS66 GRTR? I-WAIT-DURATION,0 /FALSE CALL ESTABLISH-GOAL,JOHNNY,SHANTY SUB 870,PRESENT-TIME CALL QUEUE,I-SHOVE-OFF,STACK PUT STACK,0,1 CALL INT,I-EQUIP PUT STACK,0,0 EQUAL? SHIP-CHOSEN,TRAWLER \?ELS76 RANDOM 50 ADD 50,STACK >AMT-OWED JUMP ?CND74 ?ELS76: RANDOM 50 ADD 400,STACK >AMT-OWED ?CND74: SET 'JOHNNY-MADE-DEAL,TRUE-VALUE CALL RATING-UPD,20 PRINTI "Johnny hands him a list and the salesman quotes a price. Johnny gives him the money he has, then says to you, ""You'll need to chip in $" PRINTN AMT-OWED PRINTI " plus the money for your stuff. We'll leave on the " CALL DPRINT,SHIP-CHOSEN PRINTI " at high tide."" He tells the " CALL DPRINT,SPEAR-CARRIER PRINTR ", ""Deliver the stuff half an hour before high tide."" He turns back to you. ""Better be on board then to watch the stuff.""" ?ELS66: IN? MCGINTY,WHARF-ROAD-4 /FALSE SET 'I-WAIT-DURATION,9 SET 'I-WAIT-RTN,I-EQUIP RFALSE ?ELS5: SET 'I-WAIT-DURATION,0 CALL INT,I-EQUIP GET STACK,C-TICK LESS? STACK,-15 \FALSE CALL INT,I-EQUIP PUT STACK,0,0 IN? JOHNNY,OUTFITTERS-HQ \?CND90 CALL ESTABLISH-GOAL,JOHNNY,SHANTY ?CND90: CALL I-PLOT-NEVER-STARTS RFALSE .FUNCT TELL-NEED-BOAT PRINTR " ""We will need that boat after all,"" he says to the salesman as he leaves." .FUNCT SAY-MCGINTY-KNOWS CALL TELL-NEED-BOAT MOVE JOHNNY,WHARF-ROAD-3 CALL ZERO-ATTENTION,JOHNNY CALL ESTABLISH-GOAL,JOHNNY,SHANTY CRLF PRINTR "Johnny glares at you. ""That was stupid! Now he's stopped us from renting the boat we need."" He storms out. You can't help feeling fortunate that someone else happened to be here." .FUNCT I-OTHERS-MEET,V=1 GRTR? PRESENT-TIME,720 \?ELS3 CALL INT,I-OTHERS-MEET PUT STACK,0,0 CALL I-PLOT-NEVER-STARTS IN? PLAYER,CHAIR \?ELS6 PRINTI "Johnny tells Pete the deal's off." CRLF RETURN V ?ELS6: IN? PLAYER,SHANTY \?ELS10 PRINTI "Johnny says something to Pete." CRLF RETURN V ?ELS10: SET 'V,FALSE-VALUE RETURN V ?ELS3: IN? JOHNNY,SHANTY \?THN17 IN? PETE,SHANTY \?THN17 IN? WEASEL,SHANTY /?ELS16 ?THN17: CALL QUEUE,I-OTHERS-MEET,1 PUT STACK,0,1 RFALSE ?ELS16: ZERO? JOHNNY-MADE-DEAL \?CND1 CALL I-PLOT-NEVER-STARTS ?CND1: IN? PLAYER,CHAIR \?ELS25 PRINTI "Johnny tells Pete and " CALL DPRINT,WEASEL PRINTI " the deal's " ZERO? JOHNNY-MADE-DEAL /?ELS30 PRINTI "on and to be at the " CALL DPRINT,SHIP-CHOSEN PRINTI " at 2:30" JUMP ?CND28 ?ELS30: PRINTI "off" ?CND28: PRINTR "." ?ELS25: IN? PLAYER,SHANTY \FALSE PRINTI "Johnny, Pete, and " CALL DPRINT,WEASEL PRINTR " are talking at a corner table." .FUNCT I-TRAITOR-MEETING,FERRY-HERE=0 IN? WEASEL,FERRY /?THN6 ZERO? MCGINTY-KNOWS \?THN6 IN? MCGINTY,FERRY-LANDING /?ELS5 ?THN6: CALL INT,I-TRAITOR-MEETING PUT STACK,0,0 RFALSE ?ELS5: IN? WEASEL,FERRY-LANDING \FALSE IN? ID-CARD,WEASEL \?ELS11 IN? PASSBOOK,WEASEL \?ELS16 IN? FERRY,FERRY-LANDING \?CND17 MOVE WEASEL,FERRY SET 'FERRY-HERE,TRUE-VALUE ?CND17: CALL INT,I-TRAITOR-MEETING PUT STACK,0,0 IN? PLAYER,FERRY-LANDING \FALSE CALL TELL-CORNER,FERRY-HERE,STR?441 RSTACK ?ELS16: MOVE ID-CARD,MCGINTY IN? FERRY,FERRY-LANDING \?CND27 MOVE WEASEL,FERRY SET 'FERRY-HERE,TRUE-VALUE ?CND27: CALL INT,I-TRAITOR-MEETING PUT STACK,0,0 IN? PLAYER,FERRY-LANDING \FALSE CALL TELL-CORNER,FERRY-HERE,STR?442 RSTACK ?ELS11: MOVE ID-CARD,WEASEL SET 'MCGINTY-MEETS-WEASEL,FALSE-VALUE IN? PLAYER,FERRY-LANDING \FALSE CALL DPRINT,MCGINTY PRINTI " takes " CALL DPRINT,WEASEL PRINTR " to a corner of the landing, where they talk." .FUNCT TELL-CORNER,FERRY-HERE,STR CALL DPRINT,MCGINTY PRINTI " and " CALL DPRINT,WEASEL PRINTI " are talking in a corner. The Weasel " PRINT STR PRINTI " and " ZERO? FERRY-HERE /?ELS5 PRINTI "then boards the ferry" JUMP ?CND3 ?ELS5: PRINTI "they separate" ?CND3: PRINTR "." .FUNCT I-SHOVE-OFF,L,?TMP1 CALL ENABLED?,I-JOHNNY ZERO? STACK /FALSE CALL META-LOC,PLAYER GETP STACK,P?LINE >?TMP1 GETP SHIP-CHOSEN,P?LINE EQUAL? ?TMP1,STACK \?ELS7 GRTR? PRESENT-TIME,930 \?ELS10 ZERO? LATITUDE-SET \?ELS10 ZERO? LONGITUDE-SET \?ELS10 CALL ALL-GO-HOME RFALSE ?ELS10: CALL META-LOC,PLAYER IN? JOHNNY,STACK \?ELS14 CALL DPRINT,JOHNNY PRINTI " turns to" JUMP ?CND8 ?ELS14: LOC JOHNNY >L CALL META-LOC,PLAYER MOVE JOHNNY,STACK CALL ESTABLISH-GOAL,JOHNNY,L CALL DPRINT,JOHNNY PRINTI " walks up behind" ?CND8: PRINTI " you and says, """ ZERO? DELIVERY-MADE \?ELS25 PRINTI "We're gonna have to forget it. Outfitters never delivered the stuff." CRLF CALL ALL-GO-HOME RTRUE ?ELS25: EQUAL? 0,LATITUDE-SET,LONGITUDE-SET \?ELS29 PRINTI "If we're gonna go, you have to tell me the minutes of " ZERO? LATITUDE-SET \?CND32 PRINTI "latitude" ZERO? LONGITUDE-SET \?CND32 PRINTI " and " ?CND32: ZERO? LONGITUDE-SET \?CND42 PRINTI "longitude" ?CND42: PRINTI ".""" CRLF CALL GRAB-ATTENTION,JOHNNY RANDOM 10 ADD 30,STACK CALL QUEUE,I-SHOVE-OFF,STACK PUT STACK,0,1 RTRUE ?ELS29: PRINTI "We'll be leaving shortly. Get some sleep.""" CRLF ?CND23: EQUAL? SHIP-CHOSEN,SALVAGER \?ELS55 CALL ESTABLISH-GOAL,JOHNNY,MM-WHEELHOUSE JUMP ?CND53 ?ELS55: CALL ESTABLISH-GOAL,JOHNNY,NW-WHEELHOUSE ?CND53: LOC WEASEL EQUAL? STACK,FERRY,GLOBAL-FERRY,LOCAL-GLOBALS /?CND58 LOC DECK-CHAIR CALL ESTABLISH-GOAL,WEASEL,STACK ?CND58: ZERO? AMT-OWED \FALSE CALL QUEUE,I-BOAT-TRIP,10 PUT STACK,0,1 RFALSE ?ELS7: GRTR? PRESENT-TIME,900 \?ELS67 CALL ALL-GO-HOME RFALSE ?ELS67: RANDOM 10 ADD 30,STACK CALL QUEUE,I-SHOVE-OFF,STACK PUT STACK,0,1 RFALSE .FUNCT ALL-GO-HOME CALL ESTABLISH-GOAL,PETE,SHANTY IN? WEASEL,FERRY /?CND1 IN? WEASEL,GLOBAL-FERRY /?CND1 IN? WEASEL,LOCAL-GLOBALS /?CND1 CALL ESTABLISH-GOAL,WEASEL,SHANTY ?CND1: SET 'JOHNNY-SILENT,TRUE-VALUE CALL ESTABLISH-GOAL,JOHNNY,SHANTY RSTACK .FUNCT I-BOAT-TRIP,BOAT,OT,EXCESS,?TMP1 ZERO? ASLEEP \FALSE CALL META-LOC,PLAYER GETP STACK,P?LINE >?TMP1 GETP SHIP-CHOSEN,P?LINE >BOAT EQUAL? ?TMP1,BOAT \FALSE LOC WEASEL GETP STACK,P?LINE EQUAL? STACK,BOAT /?ELS11 CALL TELL-COMES-UP,JOHNNY PRINTI """The Weasel's not on board. The deal's off.""" CRLF CALL FINISH JUMP ?CND9 ?ELS11: LOC MCGINTY GETP STACK,P?LINE EQUAL? STACK,BOAT \?ELS15 CALL TELL-COMES-UP,WEASEL CALL JIGS-UP,STR?443 JUMP ?CND9 ?ELS15: IN? ENVELOPE,JOHNNY \?CND9 LOC WEASEL MOVE JOHNNY,STACK CALL ROUGH-JUSTICE ?CND9: CALL INT,I-MCGINTY-FOLLOWS PUT STACK,0,0 SET 'SOUPS-ON,TRUE-VALUE CALL RATING-UPD,20 EQUAL? LATITUDE-SET,20 \?CND18 EQUAL? LONGITUDE-SET,25 \?CND18 CALL TELL-COMES-UP,JOHNNY CALL JIGS-UP,STR?444 ?CND18: CALL META-LOC,PLAYER EQUAL? STACK,MM-GALLEY,NW-GALLEY \?CND23 PRINTI "Pete announces that the stew is ready." CRLF ?CND23: EQUAL? SHIP-CHOSEN,TRAWLER \?ELS30 SET 'TRAWLER-DOCKED,FALSE-VALUE JUMP ?CND28 ?ELS30: SET 'SALVAGER-DOCKED,FALSE-VALUE ?CND28: SET 'AT-SEA,TRUE-VALUE IN? PLAYER,DECK-CHAIR \?CND33 LOC DECK-CHAIR MOVE PLAYER,STACK ?CND33: LOC PLAYER CALL GLOBAL-IN?,RAILING,STACK ZERO? STACK /?ELS38 PRINTI "As the engines roar to life, you go to the " CALL DPRINT,RAILING PRINTI " to watch the shoreline recede." LOC PLAYER IN? DECK-CHAIR,STACK \?CND41 CALL TELL-FERRY-KLUDGE,STR?445 ?CND41: PRINTI " As the boat leaves the wharf, y" JUMP ?CND36 ?ELS38: PRINTI "The boat begins to move through the waves. Y" ?CND36: PRINTI "ou feel the thrill of being out to sea once again." CRLF CRLF IN? PLAYER,BUNK /?CND52 PRINTI "You " LOC BUNK IN? PLAYER,STACK /?CND57 LOC BUNK >HERE CALL MOVE-SHARED-OBJECTS,HERE IN? AIR-HOSE,DEEP-SUIT \?CND60 MOVE AIR-HOSE,MM-COMPRESSOR PRINTI "disconnect the " CALL DPRINT,AIR-HOSE PRINTI ", " ?CND60: PRINTI "go to the crew's quarters and " ?CND57: MOVE PLAYER,BUNK PRINTI "climb into your bunk" CALL STRIP-EQUIPMENT PRINTI ". " CRLF ?CND52: PRINTI "In no time, the rhythm of the ocean lulls you to sleep..." CRLF CRLF MOVE PETE,DECK-CHAIR MOVE JOHNNY,HERE EQUAL? SHIP-CHOSEN,SALVAGER \?ELS75 MOVE WEASEL,MM-AFT-DECK JUMP ?CND73 ?ELS75: MOVE WEASEL,NW-AFT-DECK ?CND73: CALL META-LOC,ENVELOPE GETP STACK,P?LINE EQUAL? STACK,BOAT \?CND78 IN? ENVELOPE,UNDER-BUNK /?CND78 MOVE ENVELOPE,WEASEL ?CND78: SET 'OT,PRESENT-TIME RANDOM 15 ADD 345,STACK >PRESENT-TIME ADD PRESENT-TIME,1440 SUB STACK,OT >EXCESS CALL INTERRUPT-CHECK,EXCESS ZERO? WATCH-WOUND /?CND83 MOD EXCESS,60 ADD WATCH-MOVES,STACK >WATCH-MOVES GRTR? WATCH-MOVES,59 \?CND87 SUB WATCH-MOVES,60 >WATCH-MOVES INC 'WATCH-SCORE ?CND87: DIV EXCESS,60 ADD WATCH-SCORE,STACK >WATCH-SCORE ?PRG90: GRTR? WATCH-SCORE,11 \?REP91 SUB WATCH-SCORE,12 >WATCH-SCORE JUMP ?PRG90 ?REP91: ?CND83: CALL WATCH-UPDATE EQUAL? LATITUDE-SET,40 \?ELS99 EQUAL? LONGITUDE-SET,45 \?ELS99 SET 'WRECK-CHOSEN,1 SET 'OCEAN-BOTTOM,400 JUMP ?CND97 ?ELS99: EQUAL? LATITUDE-SET,25 \?ELS103 EQUAL? LONGITUDE-SET,25 \?ELS103 SET 'WRECK-CHOSEN,2 SET 'OCEAN-BOTTOM,150 JUMP ?CND97 ?ELS103: EQUAL? LATITUDE-SET,15 \?ELS107 EQUAL? LONGITUDE-SET,50 \?ELS107 SET 'WRECK-CHOSEN,3 SET 'OCEAN-BOTTOM,350 JUMP ?CND97 ?ELS107: CALL OCEAN-BOTTOM-FCN >OCEAN-BOTTOM ZERO? OCEAN-BOTTOM \?CND97 CALL JIGS-UP,STR?446 ?CND97: SET 'HOW-TIRED,1 LESS? HOW-HUNGRY,2 \?CND112 SET 'HOW-HUNGRY,1 ?CND112: LESS? HOW-THIRSTY,2 \?CND115 SET 'HOW-THIRSTY,1 ?CND115: CALL QUEUE,I-HUNGER,10 PUT STACK,0,1 CALL QUEUE,I-THIRST,15 PUT STACK,0,1 CALL QUEUE,I-TIRED,869 PUT STACK,0,1 SUB 720,PRESENT-TIME CALL QUEUE,I-ENDIT,STACK PUT STACK,0,1 CALL DPRINT,JOHNNY PRINTI " shakes your shoulder and wakes you. " EQUAL? SHIP-CHOSEN,TRAWLER \?ELS122 CALL ESTABLISH-GOAL,JOHNNY,NW-CAPT-CABIN JUMP ?CND120 ?ELS122: CALL ESTABLISH-GOAL,JOHNNY,MM-CAPT-CABIN ?CND120: CALL INT,I-BOAT-TRIP PUT STACK,0,0 PRINTR """We've arrived. You're up as soon as you're ready.""" .FUNCT STRIP-EQUIPMENT,F,N,V=0 FIRST? PLAYER >F /?KLU17 ?KLU17: ?PRG1: ZERO? F \?CND3 JUMP ?REP2 ?CND3: NEXT? F >N /?KLU18 ?KLU18: EQUAL? F,WATCH /?CND6 LOC BUNK MOVE F,STACK FCLEAR F,WORNBIT SET 'V,TRUE-VALUE ?CND6: SET 'F,N JUMP ?PRG1 ?REP2: ZERO? V /FALSE PRINTI ", dropping your equipment" RTRUE .FUNCT INTERRUPT-CHECK,DUR,C,E,TICK,FOO,R ADD C-TABLE,C-INTS >C ADD C-TABLE,C-TABLELEN >E SET 'ASLEEP,TRUE-VALUE ?PRG1: EQUAL? C,E \?ELS5 JUMP ?REP2 ?ELS5: GET C,C-ENABLED? ZERO? STACK /?CND3 GET C,C-TICK >TICK ZERO? TICK \?ELS10 JUMP ?CND3 ?ELS10: SUB TICK,DUR >FOO LESS? FOO,2 \?ELS15 GET C,C-RTN CALL STACK SUB TICK,1 PUT C,C-TICK,STACK JUMP ?CND8 ?ELS15: PUT C,C-TICK,FOO ?CND8: ?CND3: ADD C,C-INTLEN >C JUMP ?PRG1 ?REP2: SET 'ASLEEP,FALSE-VALUE RETURN ASLEEP .FUNCT LE?,LAT,LON,CNST,?TMP1 MUL LAT,LATITUDE-SET >?TMP1 MUL LON,LONGITUDE-SET ADD ?TMP1,STACK GRTR? STACK,CNST /FALSE RTRUE .FUNCT GE?,LAT,LON,CNST,?TMP1 MUL LAT,LATITUDE-SET >?TMP1 MUL LON,LONGITUDE-SET ADD ?TMP1,STACK LESS? STACK,CNST /FALSE RTRUE .FUNCT OCEAN-BOTTOM-FCN LESS? LONGITUDE-SET,5 /?THN6 GRTR? LONGITUDE-SET,55 /?THN6 LESS? LATITUDE-SET,5 /?THN6 GRTR? LATITUDE-SET,45 \?ELS5 ?THN6: CALL JIGS-UP,STR?447 RSTACK ?ELS5: GRTR? LATITUDE-SET,17 /?ELS9 CALL LE?,2,-5,-11 ZERO? STACK /?ELS9 CALL LE?,1,1,30 ZERO? STACK \FALSE ?ELS9: GRTR? LATITUDE-SET,6 /?ELS13 GRTR? LONGITUDE-SET,36 /?ELS13 LESS? LONGITUDE-SET,34 \FALSE ?ELS13: GRTR? LONGITUDE-SET,34 /?ELS17 GRTR? LATITUDE-SET,7 /?ELS17 CALL LE?,1,-1,-26 ZERO? STACK \FALSE ?ELS17: CALL GE?,2,1,115 ZERO? STACK /?ELS21 RETURN 400 ?ELS21: CALL GE?,1,1,68 ZERO? STACK /?ELS23 CALL LE?,1,-2,-91 ZERO? STACK /?ELS23 RETURN 400 ?ELS23: LESS? LATITUDE-SET,40 \?THN32 CALL GE?,15,4,680 ZERO? STACK \?THN32 CALL GE?,2,1,107 ZERO? STACK \?THN32 CALL GE?,1,1,76 ZERO? STACK \?THN32 LESS? LONGITUDE-SET,44 /?ELS27 CALL GE?,2,1,70 ZERO? STACK /?ELS27 LESS? LONGITUDE-SET,52 \?THN32 CALL LE?,5,-3,-57 ZERO? STACK \?THN32 CALL LE?,1,-1,-31 ZERO? STACK /?ELS27 ?THN32: RETURN 350 ?ELS27: GRTR? LATITUDE-SET,37 /?THN40 CALL GE?,6,1,240 ZERO? STACK \?THN40 CALL GE?,13,6,635 ZERO? STACK \?THN40 CALL GE?,1,1,72 ZERO? STACK \?THN40 LESS? LONGITUDE-SET,41 /?ELS35 CALL GE?,13,8,497 ZERO? STACK /?ELS35 LESS? LONGITUDE-SET,49 \?THN40 CALL LE?,6,-5,-121 ZERO? STACK \?THN40 CALL LE?,2,-3,-103 ZERO? STACK /?ELS35 ?THN40: RETURN 300 ?ELS35: LESS? LATITUDE-SET,35 \?THN48 CALL GE?,2,-1,57 ZERO? STACK \?THN48 CALL GE?,44,15,1810 ZERO? STACK \?THN48 CALL GE?,4,3,230 ZERO? STACK \?THN48 LESS? LONGITUDE-SET,37 /?ELS43 CALL GE?,13,7,415 ZERO? STACK /?ELS43 LESS? LONGITUDE-SET,46 \?THN48 CALL LE?,3,-2,-32 ZERO? STACK /?ELS43 ?THN48: RETURN 250 ?ELS43: GRTR? LATITUDE-SET,19 /?ELS55 CALL LE?,5,3,131 ZERO? STACK /?ELS55 CALL LE?,7,6,214 ZERO? STACK \?THN52 ?ELS55: GRTR? LATITUDE-SET,7 /?ELS57 GRTR? LONGITUDE-SET,35 \?THN52 ?ELS57: GRTR? LATITUDE-SET,8 /?ELS51 CALL LE?,2,-1,-16 ZERO? STACK /?ELS51 CALL LE?,1,1,45 ZERO? STACK /?ELS51 CALL LE?,2,1,51 ZERO? STACK /?ELS51 ?THN52: RETURN 50 ?ELS51: GRTR? LATITUDE-SET,20 /?ELS65 CALL LE?,2,1,50 ZERO? STACK /?ELS65 CALL LE?,10,7,286 ZERO? STACK \?THN62 ?ELS65: GRTR? LATITUDE-SET,9 /?ELS61 CALL LE?,3,2,99 ZERO? STACK /?ELS61 ?THN62: RETURN 100 ?ELS61: GRTR? LATITUDE-SET,22 /?THN74 CALL LE?,5,3,140 ZERO? STACK \?THN74 CALL LE?,7,3,172 ZERO? STACK \?THN70 ?THN74: GRTR? LATITUDE-SET,10 /?ELS69 CALL LE?,9,5,270 ZERO? STACK /?ELS69 ?THN70: RETURN 150 ?ELS69: GRTR? LONGITUDE-SET,29 /?ELS79 LESS? LONGITUDE-SET,18 /?ELS79 GRTR? LATITUDE-SET,24 /?ELS79 LESS? LATITUDE-SET,19 /?ELS79 CALL LE?,9,4,296 ZERO? STACK /?ELS79 CALL GE?,4,1,102 ZERO? STACK /?ELS79 CALL GE?,2,1,62 ZERO? STACK /?ELS79 RETURN 50 ?ELS79: GRTR? LATITUDE-SET,28 /?ELS83 LESS? LATITUDE-SET,17 /?ELS83 GRTR? LONGITUDE-SET,34 /?ELS83 LESS? LONGITUDE-SET,15 /?ELS83 CALL LE?,1,-1,11 ZERO? STACK /?ELS83 CALL GE?,1,1,39 ZERO? STACK /?ELS83 CALL GE?,5,2,141 ZERO? STACK /?ELS83 CALL GE?,1,-1,-15 ZERO? STACK /?ELS83 CALL LE?,4,1,118 ZERO? STACK \?THN86 CALL LE?,6,5,268 ZERO? STACK /?ELS83 ?THN86: RETURN 100 ?ELS83: GRTR? LATITUDE-SET,32 /?ELS89 LESS? LATITUDE-SET,16 /?ELS89 GRTR? LONGITUDE-SET,38 /?ELS89 CALL GE?,5,-3,-19 ZERO? STACK /?ELS89 CALL GE?,7,3,196 ZERO? STACK /?ELS89 CALL GE?,3,7,164 ZERO? STACK /?ELS89 CALL LE?,1,-1,18 ZERO? STACK /?ELS89 CALL LE?,7,6,344 ZERO? STACK \?THN92 CALL LE?,11,4,394 ZERO? STACK /?ELS89 ?THN92: RETURN 150 ?ELS89: RETURN 200 .FUNCT I-HUNGER,N,?TMP1 ZERO? ASLEEP \FALSE INC 'HOW-HUNGRY EQUAL? HOW-HUNGRY,1 \?ELS9 CALL QUEUE,I-HUNGER,300 PUT STACK,0,1 RFALSE ?ELS9: EQUAL? HOW-HUNGRY,2 \?ELS11 CALL QUEUE,I-HUNGER,20 PUT STACK,0,1 PRINTI "You begin to feel hungry." CRLF RFALSE ?ELS11: EQUAL? HOW-HUNGRY,3 \?ELS15 CALL QUEUE,I-HUNGER,20 PUT STACK,0,1 PRINTI "Your stomach begins to bother you. Better " CALL META-LOC,PLAYER >?TMP1 CALL META-LOC,FOOD EQUAL? ?TMP1,STACK \?ELS20 PRINTI "do something about it" JUMP ?CND18 ?ELS20: PRINTI "find some food" ?CND18: PRINTI "!" CRLF RFALSE ?ELS15: GRTR? HOW-HUNGRY,3 \FALSE EQUAL? HERE,SHANTY \?ELS33 SET 'N,2 JUMP ?CND31 ?ELS33: SET 'N,6 ?CND31: CALL QUEUE,I-HUNGER,N PUT STACK,0,1 PRINTI "Your stomach is growling loudly." CRLF RETURN 2 .FUNCT I-THIRST ZERO? ASLEEP \FALSE INC 'HOW-THIRSTY EQUAL? HOW-THIRSTY,1 \?ELS9 CALL QUEUE,I-THIRST,110 PUT STACK,0,1 PRINTI "Your throat starts to feel dry." CRLF RFALSE ?ELS9: EQUAL? HOW-THIRSTY,2 \?ELS13 CALL QUEUE,I-THIRST,115 PUT STACK,0,1 PRINTI "You feel fairly thirsty." CRLF RFALSE ?ELS13: EQUAL? HOW-THIRSTY,3 \?ELS17 CALL QUEUE,I-THIRST,15 PUT STACK,0,1 CALL TELL-YOUD-BETTER,STR?448 RFALSE ?ELS17: GRTR? HOW-THIRSTY,3 \FALSE CALL QUEUE,I-THIRST,4 PUT STACK,0,1 PRINTI "You lick your lips and clear your throat." CRLF RETURN 2 .FUNCT I-TIRED ZERO? ASLEEP \FALSE LESS? HOW-TIRED,6 \?CND1 INC 'HOW-TIRED ?CND1: EQUAL? HOW-TIRED,1 \?ELS11 CALL QUEUE,I-TIRED,479 PUT STACK,0,1 RFALSE ?ELS11: EQUAL? HOW-TIRED,2 \?ELS13 CALL QUEUE,I-TIRED,1 PUT STACK,0,1 RFALSE ?ELS13: EQUAL? HOW-TIRED,3 \?ELS15 CALL QUEUE,I-TIRED,30 PUT STACK,0,1 PRINTR "You yawn as you begin to feel drowsy." ?ELS15: EQUAL? HOW-TIRED,4 \?ELS19 CALL QUEUE,I-TIRED,20 PUT STACK,0,1 PRINTI "You are starting to feel tired." CRLF RFALSE ?ELS19: EQUAL? HOW-TIRED,5 \?ELS23 CALL QUEUE,I-TIRED,10 PUT STACK,0,1 PRINTR "You yawn and feel very tired. Think about going to bed." ?ELS23: EQUAL? HOW-TIRED,6 \FALSE PRINTI "Exhaustion overwhelms you. Keeping your eyes open is painful." ZERO? AT-SEA \?ELS32 PRINTI " " CALL V-SLEEP RETURN 2 ?ELS32: CALL QUEUE,I-TIRED,6 PUT STACK,0,1 CRLF RETURN 2 .FUNCT I-SQUID,L LOC SQUID >L CALL META-LOC,PLAYER EQUAL? STACK,L \?ELS5 CALL JIGS-UP,STR?449 RSTACK ?ELS5: CALL INT,I-SQUID PUT STACK,0,0 RFALSE .FUNCT I-SHARK GETP HERE,P?LINE LESS? STACK,UNDERWATER-LINE-C \?ELS5 CALL INT,I-SHARK PUT STACK,0,0 MOVE SHARK,LOCAL-GLOBALS FCLEAR SHARK,ONBIT RFALSE ?ELS5: IN? SHARK,UNDERWATER \?ELS7 IN? SHARK-REPELLENT,PLAYER \?ELS12 FSET? SHARK-REPELLENT,OPENBIT \?ELS12 MOVE SHARK,WINDING-ROAD-2 CALL INT,I-SHARK PUT STACK,0,0 ZERO? LIT /FALSE FSET? SHARK,ONBIT \?ELS19 PRINTI "The shark continues" JUMP ?CND15 ?ELS19: PRINTI "A shark swims" ?CND15: PRINTR " toward you, then stops. It turns and swims away." ?ELS12: FSET? SHARK,ONBIT \?ELS32 PRINTI "The shark" JUMP ?CND30 ?ELS32: ZERO? LIT /?ELS36 PRINTI "A shark" JUMP ?CND30 ?ELS36: PRINTI "Something" ?CND30: CALL JIGS-UP,STR?450 RSTACK ?ELS7: MOVE SHARK,UNDERWATER CALL QUEUE,I-SHARK,-1 PUT STACK,0,1 ZERO? LIT /FALSE FSET SHARK,ONBIT PRINTR "A shark swims toward you!" .FUNCT I-PLUMMET INC 'CRIMP-CTR EQUAL? CRIMP-CTR,1 \?ELS5 CALL QUEUE,I-PLUMMET,-1 PUT STACK,0,1 CALL GLOBAL-IN?,FALLEN-BUNK,HERE ZERO? STACK /FALSE SET 'P-IT-OBJECT,FALLEN-BUNK PRINTR "The row of bunks you moved starts to fall." ?ELS5: EQUAL? CRIMP-CTR,2 \?ELS14 CALL GLOBAL-IN?,FALLEN-BUNK,HERE ZERO? STACK /FALSE SET 'P-IT-OBJECT,FALLEN-BUNK PRINTI "The row of bunks falls toward the doorway" EQUAL? HERE,WRECK-8 \?ELS24 PRINTI ", threatening to pinch your " CALL DPRINT,AIR-HOSE PRINTI "!" JUMP ?CND22 ?ELS24: PRINTI "." ?CND22: CRLF RTRUE ?ELS14: EQUAL? CRIMP-CTR,3 \FALSE CALL GLOBAL-IN?,FALLEN-BUNK,HERE ZERO? STACK /?ELS37 EQUAL? HERE,WRECK-8 \?ELS42 CALL JIGS-UP,STR?451 RSTACK ?ELS42: SET 'BUNKS-MOVED,FALSE-VALUE SET 'P-IT-OBJECT,FALLEN-BUNK PRINTR "The bunks fall back into the doorway, blocking the passage." ?ELS37: EQUAL? HERE,WRECK-1,WRECK-2,WRECK-3 /?THN49 EQUAL? HERE,WRECK-4,WRECK-5,WRECK-6 /?THN49 EQUAL? HERE,UNDERWATER \?ELS48 ?THN49: SET 'BUNKS-MOVED,FALSE-VALUE RFALSE ?ELS48: CALL JIGS-UP,STR?452 RSTACK .FUNCT I-LIVER GRTR? BLOOD-ALCOHOL,0 \?CND1 DEC 'BLOOD-ALCOHOL ?CND1: GRTR? SLOSH-CTR,0 \?CND4 DEC 'SLOSH-CTR ?CND4: CALL QUEUE,I-LIVER,10 PUT STACK,0,1 GRTR? BLOOD-ALCOHOL,15 \FALSE PRINTI "Your head swims for a minute." CRLF RETURN 2 .FUNCT I-PENDULUM,DIR=0 CALL QUEUE,I-PENDULUM,-2 EQUAL? LINE-LOC,5 \?ELS3 SET 'LINE-LOC-INC,-1 JUMP ?CND1 ?ELS3: EQUAL? LINE-LOC,1 \?ELS5 SET 'LINE-LOC-INC,1 JUMP ?CND1 ?ELS5: CALL META-LOC,PLAYER IN? SAFETY-LINE,STACK \?CND1 EQUAL? LINE-LOC-INC,1 \?ELS10 SET 'DIR,STR?170 JUMP ?CND1 ?ELS10: SET 'DIR,STR?171 ?CND1: ADD LINE-LOC,LINE-LOC-INC >LINE-LOC EQUAL? LINE-LOC,2 \?ELS17 MOVE SAFETY-LINE,WEST-OF-WRECK-9 EQUAL? HERE,WEST-OF-WRECK-9 \FALSE CALL TELL-LINE-SWINGS RSTACK ?ELS17: EQUAL? LINE-LOC,4 \?ELS24 MOVE SAFETY-LINE,WEST-OF-WRECK-11 EQUAL? HERE,WEST-OF-WRECK-11 \FALSE CALL TELL-LINE-SWINGS RSTACK ?ELS24: MOVE SAFETY-LINE,LOCAL-GLOBALS ZERO? DIR /FALSE PRINTI "The line swings away to the " PRINT DIR PRINTR "." .FUNCT TELL-LINE-SWINGS PRINTI "The " CALL DPRINT,SAFETY-LINE PRINTI " from above swings in from the " EQUAL? LINE-LOC-INC,1 \?ELS5 PRINTI "south" JUMP ?CND3 ?ELS5: PRINTI "north" ?CND3: PRINTR "." .FUNCT I-CASE-LEAK,ALREADY=0 INC 'WATER-IN-CASE GRTR? WATER-IN-CASE,9 \?CND1 FSET? STAMPS,RMUNGBIT \?CND4 SET 'ALREADY,TRUE-VALUE ?CND4: FSET STAMPS,RMUNGBIT CALL INT,I-CASE-LEAK PUT STACK,0,0 ?CND1: IN? GLASS-CASE,PLAYER \FALSE PRINTI "The water level in the " CALL DPRINT,GLASS-CASE PRINTI " rises." FSET? STAMPS,RMUNGBIT \?CND14 ZERO? ALREADY \?CND14 PRINTI " As it reaches the stamps, it soaks them." ?CND14: CRLF RTRUE .FUNCT I-DRILL FSET BATTERY,RMUNGBIT SET 'DRILL-POWERED,FALSE-VALUE CALL INT,I-DRILL PUT STACK,0,0 PRINTI "The " CALL DPRINT,DRILL PRINTR " sputters, and the bit stops turning." .FUNCT I-AIR-SUPPLY GETP HERE,P?LINE EQUAL? STACK,UNDERWATER-LINE-C \FALSE IN? AIR-TANK,PLAYER \FALSE CALL AIRTIGHT-ROOM? ZERO? STACK \FALSE ADD DEPTH,33 DIV STACK,44 SUB AIR-LEFT,STACK >AIR-LEFT LESS? AIR-LEFT,1 \?ELS12 CALL JIGS-UP,STR?453 RSTACK ?ELS12: LESS? AIR-LEFT,15 \FALSE PRINTI "Your air supply is dangerously low." CRLF EQUAL? WAITED?,1 /TRUE RETURN 2 .FUNCT I-MM-COMPRESSOR CALL QUEUE,I-LAST-GASP,10 PUT STACK,0,1 GETP HERE,P?LINE EQUAL? STACK,UNDERWATER-LINE-C \FALSE PRINTI "You have to breathe harder. Maybe you'd better surface." CRLF RETURN 2 .FUNCT I-LAST-GASP GETP HERE,P?LINE EQUAL? STACK,UNDERWATER-LINE-C \?ELS5 CALL JIGS-UP,STR?454 RSTACK ?ELS5: CALL QUEUE,I-LAST-GASP,1 PUT STACK,0,0 RTRUE .FUNCT I-PLOT-NEVER-STARTS CALL INT,I-JOHNNY PUT STACK,0,0 CALL INT,I-PETE PUT STACK,0,0 IN? WEASEL,SHANTY \?CND1 CALL INT,I-WEASEL PUT STACK,0,0 ?CND1: SET 'FM-CTR,5 RFALSE .FUNCT I-ENDIT GETP HERE,P?LINE LESS? STACK,UNDERWATER-LINE-C \FALSE CALL JIGS-UP,STR?455 RSTACK .ENDI