0 TEXT : HOME 5 CL = 40 : JU = 0: D$ = CHR$(4) 10 A$ = " ATLANTIS ":B$ = " ": FOR I = 2 TO 22: VTAB I-1: HTAB 16: PRINT B$: VTAB I: HTAB 16: INVERSE: PRINT A$: NORMAL: FOR J = 1 TO 90: NEXT J,I 20 M0$ = "I DON'T SEE IT HERE.":M1$ = "I'M NOT HOLDING IT.":M2$ = " WON'T LET ME.":M3$ = "DON'T BE RIDICULOUS." 21 M4$ = "GIVE ME A BREAK!":M5$ = "DON'T BE FUNNY.":M6$ = "OK.":M7$ = "IT'S NOT HUNGRY.":NP = 51:LO = 44:NN = 44:NV = 30 30 DIM P$(51),P(51,3),O(51,1),OB$(44),NO$(44),VB$(30),D$(4):CP = 1:ZZ = 0: RESTORE : GOSUB 2000 40 HOME : VTAB 4:M$ = "VOYAGE TO ATLANTIS": GOSUB 11000: PRINT :M$ = "BY": GOSUB 11000: PRINT 50 M$ = "GREG HASSETT": GOSUB 11000: PRINT :M$ = "ADAPTED BY JIM GERRIE": GOSUB 11000: PRINT 60 VTAB 20:PRINT "WOULD YOU LIKE INSTRUCTIONS";: GOSUB 12000: IF LEFT$ (AR$,1) = "Y" THEN GOSUB 2230: GOTO 70 65 IF LEFT$ (AR$,1) < > "N" AND AR$ < > "" THEN 60 70 PRINT "WOULD YOU LIKE JUSTIFIED TEXT";:GOSUB 12000:IF LEFT$(AR$,1) = "Y" THEN JU = 1: GOTO 80 75 IF LEFT$ (AR$,1) < > "N" AND AR$ < > "" THEN 70 80 GOTO 270 90 GOSUB 150: IF NO < 9 AND NO < > 0 AND (VB = 0 OR VB = 1 OR VB = 27) THEN VB = 1 100 IF NO < 9 AND NO < > 0 AND (VB = 0 OR VB = 1 OR VB = 27) THEN VB = 1 110 IF VB < > 15 AND VB < > 16 AND VB < > 5 AND VB < > 6 AND LEN (N1$) > 0 AND NO = 0 THEN M$ = "WHAT DOES '" + N1$ + "' MEAN? ": GOSUB 10000: GOTO 90 120 IF VB = 22 THEN 140 130 IF N1$ = "" AND (VB > 8 OR VB = 2) AND VB < > 15 AND VB < > 30 THEN M$ = "PLEASE SUPPLY A DIRECT OBJECT.": GOSUB 10000: GOTO 90 140 GOTO 470 150 T = T + 1: PRINT "WHAT SHOULD I DO";: GOSUB 12000:CM$ = AR$ 160 IF LEN (CM$) = 0 THEN 150 170 VB$ = "":NO$ = "":VB = 0:NO = 0 180 LC = LEN (CM$): FOR I = 1 TO LC:A$ = MID$ (CM$,I,1): IF A$ < > " " THEN VB$ = VB$ + A$: NEXT I 190 IF LEN (VB$) + 1 > = LEN (CM$) THEN NO = 0: GOTO 210 200 NO$ = RIGHT$ (CM$,LC - I) 210 N1$ = NO$:V1$ = VB$:VB$ = LEFT$ (VB$,3):NO$ = LEFT$ (NO$,3): FOR I = 1 TO NV: IF VB$ = VB$(I) THEN VB = I: GOTO 240 211 NEXT I:VB = 0 220 IF N1$ = "" THEN NO$ = VB$ 230 VB = 0: GOTO 250 240 IF VB$ = CM$ THEN NO = 0:NO$ = "": RETURN 250 FOR I = 1 TO NN: IF NO$ = NO$(I) THEN NO = I: RETURN 260 NEXT I:NO = 0:NO$ = "": RETURN 270 HOME :II = 0: IF LEFT$ (P$(CP),1) = "*" THEN P$ = RIGHT$ (P$(CP), LEN (P$(CP)) - 1):II = 1: GOTO 320 280 IF CP = 29 THEN F1 = 1 281 IF CP = 31 THEN F2 = 1 290 IF CP = 51 THEN F4 = 1 291 IF CP = 6 THEN F3 = 1 300 P$ = "I'M IN " + P$(CP) 310 IF CP < > 1 AND O(31,0) < > - 1 THEN M$ = "HELP! ... NO AIR! ... I'M DEAD.": GOSUB 10000: GOTO 1660 320 M$ = P$ + ".": GOSUB 10000:K = 0: FOR I = 1 TO LO: IF O(I,0) < > CP THEN 370 330 IF K = 0 THEN M$ = "VISIBLE ITEMS: " 331 IF LEN (M$) > 225 THEN 370 340 IF K > 0 THEN M$ = M$ + ", " 360 M$ = M$ + OB$(I):K = K + 1 370 NEXT I: IF LEN (M$) > 225 THEN M$ = M$ + ".." 371 IF K < > 0 THEN PRINT :M$ = M$ + ".": GOSUB 10000 380 IF CP = 31 THEN 460 390 PRINT :K = 0:M$ = "OBVIOUS EXITS: ": FOR I = 0 TO 3: IF P(CP,I) = 0 THEN 420 400 IF K > 0 THEN M$ = M$ + ", " 410 M$ = M$ + D$(I):K = K + 1 420 NEXT I:M$ = M$ + ".": GOSUB 10000: IF ZZ < 2 OR CP < > 5 THEN 460 430 FOR I = 1 TO LO 440 IF O(I,0) = - 1 AND I < > 31 THEN O(I,0) = 29 450 NEXT I:M$ = "THE WHIRLPOOL SUCKED ALL MY BELONGINGS AWAY!!!": GOSUB 10000:ZZ = 1 460 PRINT "________________________________________": PRINT: GOTO 90 470 ON VB GOTO 490,560,80,680,730,770,830,850,870,930 471 IF VB > 0 THEN ON VB - 10 GOTO 940,1060,1070,1170,1180,1200,2410,1210,1250,1350,1370,2410,1430,1480,1520,560,490,1550,1590,1620 480 M$ = "I NEVER LEARNED HOW TO '" + V1$ + "'!": GOSUB 10000: GOTO 90 490 IF NO = 0 THEN M$ = "I NEED A DIRECTION.": GOSUB 10000: GOTO 90 500 IF NO > 8 THEN M$ = "HUH? ": GOSUB 10000: GOTO 90 510 IF NO > 4 THEN NO = NO - 4 520 NO = NO - 1: IF P(CP,NO) = 0 THEN M$ = "THERE IS NO WAY TO GO IN THAT DIRECTION.": GOSUB 10000: GOTO 90 530 IF CP = 30 AND GF = 0 THEN M$ = "THE GATE IS LOCKED!": GOSUB 10000: GOTO 90 540 IF CP = 25 AND NO = 0 AND GF = 0 THEN M$ = "THERE IS A LOCKED GATE IN MY WAY!": GOSUB 10000: GOTO 90 550 CP = P(CP,NO): GOTO 80 560 IF CP < > O(NO,0) THEN M$ = M0$: GOSUB 10000: GOTO 90 570 IF NO = 10 OR NO = 13 OR NO = 14 OR NO = 16 OR NO = 18 OR NO = 22 OR NO = 36 THEN M$ = M5$: GOSUB 10000: GOTO 90 580 IF NO = 27 OR NO = 29 THEN M$ = "IT IS TOO HEAVY!": GOSUB 10000: GOTO 90 590 IF NO = 17 AND O(16,0) = CP THEN M$ = "MANTA" + M2$: GOSUB 10000: GOTO 90 600 IF NO = 19 AND O(18,0) = CP THEN M$ = "SQUID" + M2$: GOSUB 10000: GOTO 90 610 IF NO = 35 AND O(36,0) = CP THEN M$ = "OCTOPUS" + M2$: GOSUB 10000: GOTO 90 620 IF O(10,0) = CP THEN M$ = "EEL" + M2$: GOSUB 10000: GOTO 90 630 IF NO = 44 AND O(42,0) = CP THEN M$ = "MINOTAUR" + M2$: GOSUB 10000: GOTO 90 640 IF NO = 32 THEN M$ = "IT IS BEYOND MY POWER TO DO THAT.": GOSUB 10000: GOTO 90 650 IF ZZ + 1 > 7 THEN M$ = "I CAN'T CARRY ANY MORE!": GOSUB 10000: GOTO 90 660 IF O(NO,1) > 0 AND CP = 1 THEN TS = TS - 1 670 ZZ = ZZ + 1:O(NO,0) = - 1:M$ = M6$: GOSUB 10000: GOTO 90 680 IF ZZ = 0 THEN M$ = "I DON'T HAVE ANYTHING!": GOSUB 10000: GOTO 90 690 K = 0:M$ = "I PRESENTLY HAVE: ": FOR I = 1 TO LO: IF O(I,0) < > - 1 THEN 720 700 IF K > 0 THEN M$ = M$ + ", " 710 M$ = M$ + OB$(I):K = K + 1 720 NEXT I: IF K < > 0 THEN M$ = M$ + "." 721 GOSUB 10000: GOTO 90 730 HOME : INPUT "HIT ";XX$: PRINT "SAVING..." 740 O(45,0) = CP:O(46,0) = GF:O(47,0) = ZZ:O(48,0) = F1:O(49,0) = F2:O(50,0) = F3:O(51,0) = F4:O(51,1) = T 750 PRINT D$;"OPEN ATLANDAT": PRINT D$;"WRITE ATLANDAT" 755 FOR I = 1 TO 51: PRINT O(I,0):PRINT O(I,1): NEXT I 756 PRINT D$;"CLOSE ATLANDAT" 760 GOTO 80 770 HOME : INPUT "HIT ";XX$ 780 PRINT "RESTORING..." 790 PRINT D$;"OPEN ATLANDAT": PRINT D$;"READ ATLANDAT" 795 FOR I = 1 TO 51: INPUT O(I,0):INPUT O(I,1): NEXT I 796 PRINT D$;"CLOSE ATLANDAT" 800 CP = O(45,0):GF = O(46,0):ZZ = O(47,0):F1 = O(48,0):F2 = O(49,0):F3 = O(50,0):F4 = O(51,0):T = O(51,1) 801 IF O(45,1) = - 1 THEN NO$(22) = "'" 802 IF O(46,1) = - 1 THEN OB$(34) = "a platinum spear" 803 IF O(47,1) = - 1 THEN OB$(37) = "a gold statuette" 810 GOTO 80 830 SC = 0: FOR I = 1 TO LO: IF O(I,0) = 1 THEN SC = SC + O(I,1) 840 NEXT I:M$ = "YOU HAVE " + STR$ (SC) + " POINTS OUT OF 170.": GOSUB 10000 841 M$ = "YOU CAN GET A 30 POINT BONUS WHEN YOU QUIT, MAKING THE ACTUAL MAXIMUM 200.": GOSUB 10000: GOTO 90 850 M$ = "DO YOU REALLY WANT TO QUIT NOW": GOSUB 10000: GOSUB 12000:X$ = AR$: IF LEFT$ (X$,1) = "Y" THEN 1660 860 M$ = "I DIDN'T THINK SO.": GOSUB 10000: GOTO 90 870 IF O(NO,0) < > - 1 THEN M$ = M1$: GOSUB 10000: GOTO 90 880 IF NO < > 34 THEN M$ = "I CAN ONLY THROW THE SPEAR!": GOSUB 10000: GOTO 90 890 IF O(9,0) < > - 1 OR (O(36,0) - CP AND CP - O(42,0)) THEN M$ = "THE SPEAR VANISHED IN MIDAIR.": GOSUB 10000:ZZ = ZZ - 1:O(34,0) = 0: GOTO 90 900 IF CP - 4 THEN 920 910 M$ = "THE SPEAR PLUNGES INTO THE OCTOPUS' HEART AND BOTH VANISH!": GOSUB 10000:O(36,0) = 0:O(34,0) = 51:ZZ = ZZ - 1: GOTO 90 920 M$ = "THE SPEAR HITS THE MINOTAUR, AND HE VANISHES!": GOSUB 10000:O(42,0) = 0:M$ = "THE SPEAR THEN TURNS TO PLATINUM!": GOSUB 10000 921 OB$(34) = "a platinum spear":O(46,1) = - 1:O(34,1) = 11:O(34,0) = CP:ZZ = ZZ - 1: GOTO 90 930 M$ = "YOU'LL HAVE TO BE MORE SPECIFIC!": GOSUB 10000: GOTO 90 940 IF O(NO,0) < > - 1 AND O(NO,0) < > CP THEN M$ = M0$: GOSUB 10000: GOTO 90 950 IF NO < > 43 AND NO < > 11 AND NO < > 12 AND NO < > 17 AND NO < > 21 AND NO < > 28 AND NO < > 32 AND NO < > 38 THEN M$ = "THERE IS NO WRITING THERE!": GOSUB 10000: GOTO 90 960 M$ = "IT SAYS:": GOSUB 10000 970 IF NO = 11 THEN M$ = "WHAT IS THOUGHT TO BE, ISN'T WHAT YOU SEE! NORI": GOSUB 10000 980 IF NO = 12 THEN M$ = "CAPTAIN AHAB WAS HERE.": GOSUB 10000 990 IF NO = 17 THEN M$ = R1$: GOSUB 10000:M$ = R2$: GOSUB 10000:M$ = "SCRAPE IRON. NORI": GOSUB 10000 1000 IF NO = 21 THEN M$ = "LEE SAID POW AND DIED.": GOSUB 10000 1010 IF NO = 28 THEN M$ = "USE CRUST TOOTHPASTE FOR SHARPER TEETH!": GOSUB 10000:M$ = "SQUIDS HATE LOUD NOISES (W O P T O N).": GOSUB 10000 1020 IF NO = 32 THEN M$ = "BRING treasures HERE AND SAY SCORE.": GOSUB 10000 1030 IF NO = 43 THEN M$ = "BEWARE OF THE FIERCE MINOTAUR!": GOSUB 10000 1040 IF NO = 38 THEN M$ = "PUT SHOT IN GUN.": GOSUB 10000 1050 GOTO 90 1060 M$ = "USE COMPASS POINTS, PLEASE.": GOSUB 10000: GOTO 90 1070 IF NO < > 40 AND NO < > 35 AND NO < > 14 THEN M$ = "HOW? ": GOSUB 10000: GOTO 90 1080 IF NO = 40 THEN M$ = "TRY 'UNLOCK GATE'.": GOSUB 10000: GOTO 90 1090 IF NO < > 35 THEN 1140 1100 IF O(26,0) < > - 1 THEN M$ = "YOU DON'T HAVE THE NECESSARY RESOURCES!": GOSUB 10000: GOTO 90 1110 IF O(36,0) = CP THEN M$ = "OCTOPUS" + M2$: GOSUB 10000: GOTO 90 1120 IF O(38,0) < > 0 THEN M$ = "OK. IT'S EMPTY.": GOSUB 10000: GOTO 90 1130 M$ = "OK. TWO THINGS FALL OUT!": GOSUB 10000:O(38,0) = CP:O(39,0) = CP: GOTO 90 1140 IF O(33,0) < > - 1 THEN M$ = "YOU DON'T HAVE THE RIGHT TOOLS!": GOSUB 10000: GOTO 90 1150 IF O(37,0) < > 0 THEN M$ = "THE CLAM OPENS & SHUTS. IT'S EMPTY!": GOSUB 10000: GOTO 90 1160 M$ = "THE CLAM FLIES OPEN AND SOMETHING FALLS OUT, BUT IT SNAPS SHUT AGAIN!!": GOSUB 10000:O(37,0) = CP: GOTO 90 1170 M$ = "I'M NOT THE DESTRUCTIVE TYPE...": GOSUB 10000: GOTO 90 1180 IF O(18,0) < > CP THEN M$ = "NOTHING HAPPENED.": GOSUB 10000: GOTO 90 1190 M$ = "THE SQUID WAS SO STARTLED, HE SWAM AWAY!": GOSUB 10000:O(18,0) = 0: GOTO 90 1200 M$ = "OKAY..." + N1$: GOSUB 10000: GOTO 90 1210 IF NO < > 29 THEN M$ = "I KNOW NOT HOW TO LOAD SUCH A THING. SAY RESTORE TO START UP A SAVED GAME.": GOTO 90 1220 IF CP < > 12 THEN M$ = M0$: GOSUB 10000: GOTO 90 1230 IF O(20,0) < > - 1 THEN M$ = "I HAVE NOTHING TO LOAD IT WITH!!": GOSUB 10000: GOTO 90 1240 M$ = "OK.": GOSUB 10000:O(20,0) = - 1:ZZ = ZZ - 1: GOTO 90 1250 IF NO < > 10 AND NO < > 14 AND NO < > 16 AND NO < > 18 AND NO < > 22 AND NO < > 23 AND NO < > 36 THEN M$ = M3$: GOSUB 10000: GOTO 90 1260 IF NO < > 22 AND NO < > 16 THEN M$ = M7$: GOSUB 10000: GOTO 90 1270 IF NO = 16 THEN 1330 1280 IF O(30,0) < > - 1 THEN M$ = "I HAVE NO FOOD!": GOSUB 10000: GOTO 90 1290 IF O(22,0) < > CP THEN 1320 1300 M$ = "THE PIRANHAS GULP DOWN THE CUP AND, MUCH TO THEIR SURPRISE, THEIR TEETH FALL OUT!": GOSUB 10000 1301 O(22,0) = 0:O(23,0) = CP:NO$(22) = "'":O(45,1) = - 1:O(30,0) = 0:ZZ = ZZ - 1:O(24,0) = CP: GOTO 90 1320 M$ = "I DON'T SEE THEM.": GOSUB 10000: GOTO 90 1330 IF O(23,0) < > - 1 THEN M$ = "HE LIKES THE IDEA...AND EATS ME!!!": GOSUB 10000: GOTO 1660 1340 M$ = "THE MANTA SWALLOWS THE PIRANHAS AND SWIMS AWAY.": GOSUB 10000:ZZ = ZZ - 1:O(16,0) = 0:O(23,0) = 0: GOTO 90 1350 IF O(25,0) < > - 1 THEN M$ = "I HAVE NO SCISSORS!": GOSUB 10000: GOTO 90 1360 M$ = "THE SCISSORS ARE TOO DULL TO CUT WITH!": GOSUB 10000: GOTO 90 1370 IF NO < > 40 AND NO < > 35 THEN M$ = "HOW? ": GOSUB 10000: GOTO 90 1380 IF NO = 35 THEN M$ = "TRY OPEN.": GOSUB 10000: GOTO 90 1390 IF CP < > 25 AND CP < > 30 THEN M$ = M0$: GOSUB 10000: GOTO 90 1400 IF GF = 1 THEN M$ = "IT IS ALREADY OPEN!": GOSUB 10000: GOTO 90 1410 IF O(26,0) < > - 1 THEN M$ = "YOU DON'T HAVE THE KEY!": GOSUB 10000: GOTO 90 1420 M$ = M6$: GOSUB 10000:GF = 1: GOTO 90 1430 IF NO < > 27 THEN M$ = "HOW? ": GOSUB 10000: GOTO 90 1440 IF CP < > 9 AND CP < > 31 THEN M$ = M0$: GOSUB 10000: GOTO 90 1450 IF CP = 9 THEN CP = 31: GOTO 80 1460 CP = 9: GOTO 80 1480 IF NO < > 29 THEN M$ = "HOW? ": GOSUB 10000: GOTO 90 1490 IF CP < > 12 THEN M$ = M0$: GOSUB 10000: GOTO 90 1500 IF O(20,0) < > - 1 THEN M$ = "IT'S NOT LOADED!": GOSUB 10000: GOTO 90 1510 M$ = M6$ + "...POW!!!!": GOSUB 10000:O(20,0) = 29:O(10,0) = 0: GOTO 90 1520 IF NO < > 30 THEN M$ = M3$: GOSUB 10000: GOTO 90 1530 IF O(30,0) < > - 1 THEN M$ = M1$: GOSUB 10000: GOTO 90 1540 M$ = "SMACK! GOOD!": GOSUB 10000:ZZ = ZZ - 1:O(30,0) = 0: GOTO 90 1550 IF O(NO,0) < > - 1 THEN M$ = M1$: GOSUB 10000: GOTO 90 1560 ZZ = ZZ - 1:M$ = M6$: GOSUB 10000: IF O(NO,0) < > - 1 THEN M$ = M1$: GOSUB 10000: GOTO 90 1570 O(NO,0) = CP 1580 GOTO 90 1590 IF O(NO,0) < > - 1 AND O(NO,0) < > CP THEN M$ = M0$: GOSUB 10000: GOTO 90 1600 IF NO < > 37 THEN M$ = M6$ + " NOTHING HAPPENED.": GOSUB 10000: GOTO 90 1610 M$ = "WAIT A MINUTE... THIS STATUETTE ISN'T IRON... IT'S GOLD!": GOSUB 10000 1611 OB$(37) = "a gold statuette":O(47,1) = - 1:O(37,1) = 16: GOTO 90 1620 IF CP < > 31 THEN M$ = "GEE! FUN!": GOSUB 10000: GOTO 90 1630 X = INT (4): IF X = 2 THEN 1650 1640 CP = 9: GOTO 80 1650 M$ = "THUD. I'M DEAD...": GOSUB 10000 1660 PRINT : GOSUB 1850: FOR I = 1 TO LO: IF ABS (O(I,0)) = 1 THEN FS = FS + O(I,1) 1670 NEXT I: IF T < 500 THEN FS = FS + 5 1680 IF T < 400 THEN FS = FS + 5 1690 IF T < 310 THEN FS = FS + 10 1700 IF T < 10 THEN FS = FS - 20 1710 M$ = "YOU SCORED" + STR$ (FS) + " POINTS OUT OF 200.": GOSUB 10000 1711 IF FS = 0 THEN M$ = "YOU ARE A PEE WEE CLASS ADVENTURER (THE LOWEST RANK)": GOSUB 10000: GOTO 1810 1720 IF FS < 30 THEN M$ = "ARE YOU VEGETABLE OR MINERAL? RANK 8": GOSUB 10000: GOTO 1810 1730 IF FS < 50 THEN M$ = "NOT TOO GOOD PAL! RANK 7": GOSUB 10000: GOTO 1810 1740 IF FS < 90 THEN M$ = "YOU HAVE HAD A TASTE OF ADVENTURE. RANK 6": GOSUB 10000: GOTO 1810 1750 IF FS < 110 THEN M$ = "YOU ARE A MASTER ADVENTURER CLASS C (RANK 5)": GOSUB 10000: GOTO 1810 1760 IF FS < 150 THEN M$ = "YOU ARE A MASTER ADVENTURER CLASS B (RANK 4)": GOSUB 10000: GOTO 1810 1770 IF FS < 170 THEN M$ = "YOU ARE A MASTER ADVENTURER CLASS C (RANK 3)": GOSUB 10000: GOTO 1810 1780 IF FS < 190 THEN M$ = "WOWEE! YOU ARE GREAT! YOU'LL SOON BE AN ADVENTURER GRANDMASTER! ONE RANK AWAY... RANK 2": GOSUB 10000: GOTO 1810 1800 IF FS < 201 THEN 1805 1801 GOTO 1810 1805 M$ = "TUM TUM-TUM TUM... TUM TE TUM TE DUM DE TUM...": GOSUB 10000 1806 M$ = "A REAL ADVENTURER GRANDMASTER...BOY OH BOY! CAN I SHAKE YOUR HAND?": GOSUB 10000: REM M$="YOU SHOULD "+R1$+R2$:GOSUB10000 1810 PRINT :M$ = "PLAY AGAIN (Y/N)": GOSUB 10000: GOSUB 12000:A$ = AR$ 1820 A$ = LEFT$ (A$,1): IF A$ = "Y" THEN RUN 1830 IF A$ < > "N" THEN 1810 1840 HOME : END 1850 IF F1 THEN FS = FS + 2 1860 IF F2 THEN FS = FS + 2 1861 IF F2 THEN FS = FS + 2 1870 IF F3 THEN FS = FS + 4 1880 RETURN 1999 REM <----- INIT DATA -----> 2000 P$(1) = "MY SUBMARINE DOCKED IN THE CITY OF ATLANTIS":P$(2) = "A CORRIDOR FILLED WITH WATER":P$(3) = "AN ALCOVE" 2001 P$(4) = "A CORAL REEF":P$(5) = "A WHIRLPOOL" 2002 P$(6) = "THE HALL OF SPIRITS (MORE COMMONLY CALLED A GRAVEYARD)":P$(7) = "*DEAD END":P$(8) = "A DINING ROOM" 2003 P$(9) = "*I'M ON THE STREET" 2004 P$(10) = "*I'M AT THE END OF THE STREET":P$(11) = "A DARK CAVE":P$(12) = "THE FORTRESS OF ATLANTIS" 2005 P$(13) = "CAPTAIN AHAB'S QUARTERS":P$(14) = "A BARREN CHAMBER" 2006 P$(15) = "A BARBER SHOP":P$(16) = "AN OLYMPIC FIELD":P$(17) = "A SUPPLY ROOM":P$(18) = "THE SQUID'S CHAMBER" 2007 P$(19) = "THE DRAWING ROOM":P$(20) = "THE ROYAL COLISEUM" 2008 P$(21) = "A TEMPLE":P$(22) = "HALLWAY":P$(23) = "OLD LIBRARY":P$(24) = "THE CLAM ROOM. THE WALLS ARE MADE OF CLAMSHELL." 2009 P$(25) = "A RAIL STATION (SO >THIS< IS HOW THEY GOT AROUND!)":P$(26) = P$(24):P$(27) = "THE KITCHEN." 2010 P$(28) = "THE DINING HALL":P$(29) = "THE ELECTRIC EEL'S ROOM" 2011 P$(30) = "THE JAIL. THERE IS A GATE TO THE SOUTH" 2012 P$(31) = "AT THE TOP OF A POST. LOOKING DOWN I SEE ONLY THE STREET. THE WATER IS TOO MISTY TO SEE FAR AWAY" 2013 P$(32) = "THE PILLARS OF HERCULES":P$(33) = "PROMETHEUS' CHAMBER IN OLYMPIA" 2014 P$(34) = "A STRANGE ROOM WITH WALLS THAT SEEM TO COME ALIVE AS I MOVE ABOUT" 2015 P$(35) = "*I'M ON THE EDGE OF A CLIFF. THE WATER BELOW ME IS TOO MISTY TO SEE FAR DOWN. THERE MIGHT BE LIFE DOWN THERE..." 2016 P$(36) = "A DEEP, DARK CORRIDOR. I CAN SEE NO CEILING FROM HERE, ONLY MURKY WATER. THE WATER SEEMS TO BE MOVING EAST OF ME.." 2017 P$(37) = "THE HALL OR MIRRORS. ALL DIRECTIONS LOOK THE SAME.":P$(38) = P$(37):P$(39) = P$(37):P$(40) = "AN AWKWARD CORRIDOR" 2018 FOR I = 41 TO 50:P$(I) = "A LABYRINTH OF PASSAGES OBVIOUSLY DESIGNED BY KING MINOS. IT IS RUMORED THAT THE MINOTAUR IS NEAR..." 2019 NEXT I:P$(51) = "*DEAD END" 2030 D$(0) = "NORTH":D$(1) = "SOUTH":D$(2) = "EAST":D$(3) = "WEST" 2040 FOR I = 1 TO 31: FOR J = 0 TO 3: READ P(I,J): NEXT J,I 2050 DATA 0,0,2,0,8,0,3,1,9,0,4,2,10,0,5,3,11,0,0,4,13,0,7,0,0,8,0,0,7,2,9,0,15,3,10,8,0,4,11,9,0,5,12,10,0,0,0,11 2051 DATA 16,6,0,0,17,0,15,0,0,9,0,14,22,13,17,0 2052 DATA 23,14,18,16,24,0,19,17,25,0,20,18,0,0,21,19,26,0,0,20,27,16,0,0,0,17,24,0,29,18,0,23,30,19,0,0,0,21,0,0 2053 DATA 0,22,28,0,0,0,0,27,0,0,30,0,0,25,0,0,0,0,0,0 2055 P(26,0) = 32 2060 FOR I = 1 TO 40: READ NO$(I): NEXT I 2070 DATA N,S,E,W,NOR,SOU,EAS,WES,THR,EEL,BOO,PAP,TRA,CLA,MED,MAN,PLA,SQU,COI,SHO,JOU,PIR,PIR,TEE,SCI,KEY,POS,NEW 2071 DATA CAN,CUP,TAN,SIG,PIC,SPE,CHE,OCT,STA,NOT,PEA,GAT 2080 FOR I = 1 TO NV: READ VB$(I): NEXT I 2090 DATA GO,GET,LOO,INV,SAV,RES,SCO,QUI,THR,KIL,REA,ENT,OPE,HIT,YEL,SAY,^,LOA,FEE,CUT,UNL,HEL,CLI,FIR,EAT 2091 DATA TAK,SWI,DRO,SCR,JUM 2100 FOR I = 9 TO 39: READ OB$(I): NEXT I 2110 DATA "A SPEAR THROWER","AN ELECTRIC EEL","A SMALL BOOK","A PAPER WITH WRITING ON IT","A","A GIANT CLAM" 2111 DATA "jade medallion","A BLACK MANTA","a platinum plaque" 2112 DATA "A GIANT SQUID","many coins","AN IRON SHOTPUT","CAPTAIN AHAB'S JOURNAL","SOME FIERCE PIRANHAS" 2113 DATA "SOME HELPLESS PIRANHAS","some valuable piranha teeth" 2114 DATA "a pair of gold scissors","a silver key","A TALL POST","AN OLD NEWSPAPER","AN OLD CANNON" 2115 DATA "A PEANUT BUTTER CUP","AN AIR TANK","A SIGN","platinum pick" 2116 DATA "A STEEL SPEAR","A TREASURE CHEST","A FIERCE OCTOPUS","AN IRON STATUETTE","A NOTE","a glistening pearl" 2120 FOR I = 9 TO 39: READ O(I,0),O(I,1): NEXT I 2130 DATA 27,0,29,0,23,0,24,0,0,0,26,0,20,10,19,0,19,15,18,0,18,20,16,0,13,0,14,0,0,0,0,15,15,5,8,5,9,0,11,0,12 2131 DATA 0,1,0,1,0,1,0,3,7,3,0,4,0,4,0,0,0,0,0,0,12 2140 FOR I = 32 TO NP: FOR J = 0 TO 3: READ P(I,J): NEXT J,I 2150 DATA 0,26,0,33,0,34,32,0,33,36,37,35,0,0,34,0,34,0,5,0,37,38,39,34,37,38,38,38,40,39,39,37,42,39,0,0,43,41,42,41,44,40 2151 DATA 42,41,47,41,43,43,48,42,45,44,49,45,45,44,50,51,0,0,47,43,48,47,48,44,48,47,0,45,50,0,0,46,0,49,46,0,0,0 2160 FOR I = 41 TO NN: READ NO$(I),OB$(I),O(I,0),O(I,1): NEXT I 2170 DATA APP,"a golden apple",33,10,MIN,"A FIERCE MINOTAUR",51,0,SCR,"AN ANCIENT SCROLL",40,0,FLE,"a golden fleece",51,44 2180 R1$ = "TRY SOME OTHER GREG HASSETT ADVENTURES. THEY ARE: JOURNEY TO THE CENTER OF THE EARTH, " 2190 R2$ = "THE HOUSE OF SEVEN GABLES, KING TUT'S TOMB, SORCERER'S CASTLE, ENCHANTED ISLAND" 2200 HOME : RETURN 2230 HOME 2240 M$ = "ADVENTURE VERSION 6.5": GOSUB 11000:M$ = "COPYRIGHT (C)1980": GOSUB 11000:M$ = "BY GREG HASSETT": GOSUB 11000 2250 M$ = "22 ALGONQUIN RD, CHELMSFORD,": GOSUB 11000:M$ = "MASSACHUSETTS, 01824": GOSUB 11000: PRINT 2270 M$ = "WELCOME TO THE WONDERFUL WORLD": GOSUB 11000:M$ = "OF ADVENTURE!": GOSUB 11000: PRINT : PRINT : GOSUB 2390 2280 PRINT : PRINT 2290 M$ = "IN THIS 'ADVENTURE' YOU ARE TO EXPLORE THE LOST CITY ATLANTIS IN SEARCH OF TREASURES.": GOSUB 10000 2300 M$ = "I WILL BE YOUR EYES AND HANDS DURING THIS ADVENTURE. ": GOSUB 10000 2310 M$ = "DIRECT ME WITH ORDINARY ENGLISH SENTENCES OF ONE OR TWO WORDS.": GOSUB 10000 2320 M$ = "SOME EXAMPLES:": GOSUB 10000 2330 M$ = "'GET TANK', 'INVENTORY', 'KILL MANTA', 'DROP COINS'": GOSUB 10000 2350 M$ = "USE ANY VERB/NOUN COMBINATION YOU CAN THINK OF, BECAUSE IN THIS GAME, *ANYTHING* GOES!": GOSUB 10000: PRINT : GOSUB 2390 2370 RETURN 2380 REM <----- PAUSE -----> 2390 M$ = "PRESS TO CONTINUE...": GOSUB 10000: GET X$: PRINT 2400 RETURN 2410 PRINT "I CAN ONLY REPEAT THE","INSTRUCTIONS.",,"WOULD YOU LIKE THAT? ";: GOSUB 12000: IF LEFT$ (AR$,1) = "N" THEN PRINT "OKAY.": GOTO 90 2430 GOSUB 2280: GOTO 80 9999 REM <----- SUB FANCY PRINT M$ -----> 10000 LM = LEN(M$) 10010 IB = 1 : IE = 1 10020 IF (IE < LM + 1) THEN 10030 10021 GOTO 10150 10030 IF (IB < LM + 1) AND (MID$(M$,IB,1) =" ") THEN IB = IB + 1 : GOTO 10030 10040 IF IB = LM THEN PRINT: GOTO 10150 10050 IE = IB + CL 10060 IF IE > LM THEN PRINT MID$(M$,IB, IE-IB): GOTO 10150 10070 IF (IE > IB) AND (MID$(M$,IE,1) <> " ") THEN IE = IE - 1: GOTO 10070 10080 IF IE = IB THEN IE = IB + CL 10090 IF JU = 0 THEN PRINT MID$(M$, IB, IE-IB): GOTO 10100 10095 MM$ = MID$(M$, IB, IE-IB) : GOSUB 10200 10100 IB = IE + 1 10140 GOTO 10020 10150 RETURN 10199 REM <----- SUB TO JUSTIFY TEXT MM$ -----> 10200 L2 = LEN(MM$) 10210 II = 1 : NS = 0: NW = 0 : PC$=" " 10220 IF (II < L2 + 1) THEN 10230 10221 GOTO 10300 10230 IF MID$(MM$,II,1) = " " THEN NS = NS + 1: GOTO 10250 10240 IF PC$ = " " THEN NW = NW + 1 10250 PC$ = MID$(MM$, II, 1): II = II + 1 10260 GOTO 10220 10300 IF L2 < CL THEN NS = NS + CL - L2 10310 IF NW = 0 THEN PRINT:RETURN 10320 IF NW > 1 THEN AS = NS / ( NW - 1) : GOTO 10340 10330 AS = 0 10340 IC = INT(AS + 0.5) 10350 II= 1 : JJ = 0: CC = 0 10360 IF (JJ < NW) THEN 10370 10361 GOTO 10500 10370 IF (II < L2 + 1) AND (MID$(MM$,II,1) = " ") THEN II = II + 1: GOTO 10370 10380 I0 = II 10400 IF (II < L2 + 1) AND (MID$(MM$,II,1) <> " ") THEN II = II + 1: GOTO 10400 10410 I1 = II 10420 PRINT MID$(MM$,I0,I1-I0); 10430 JJ = JJ + 1 10440 IF JJ = NW THEN RETURN 10450 SA = IC : ER = CC + SA - JJ * AS 10460 IF ER < -0.99 THEN SA = SA + 1: GOTO 10480 10470 IF ER > 0.99 THEN SA = SA - 1 10480 PRINT SPC(SA); 10490 CC = CC + SA : GOTO 10360 10500 RETURN 10999 REM <----- SUB TO PRINT CENTERED TEXT M$ -----> 11000 PRINT TAB( (40 - LEN (M$)) / 2);M$: RETURN 11999 REM <----- SUB TO INPUT COMMAND / RETURNS AR$ -----> 12000 INPUT AR$ 12010 RETURN