Shark’s Treasure

Date: 1982
Type: Cassette
Platform(s): TS 1000

Shark’s Treasure is a text adventure game set in the shark-infested waters of the Indian Ocean, where the player must explore a sunken pirate ship called the Xandau to recover the Punjab Diamond. The parser uses a machine code word-lookup routine embedded in the REM statement at line 1, which is called via USR 16530; it searches a dictionary encoded in REM line 2 to convert typed words into two-character numeric codes stored in a string array. Room descriptions and action messages are dispatched through computed GOSUB calls (e.g., GOSUB 8000+ROOM*10 and GOSUB 7000+N*10), giving a compact and extensible architecture. The game state is tracked using numeric arrays for object locations O(), status flags S(), and countdown timers C(), while a separate condition/action table drives the parser’s response logic. A SAVE routine at line 9600 allows the player to preserve progress to tape.


Program Analysis

Program Structure

The program is organized into well-defined functional blocks separated by line number ranges:

Line RangePurpose
1–2REM statements: machine code routine (line 1) and word dictionary (line 2)
10–23Title screen, instructions, and key-press wait loops
25–95Game initialization, saved-game branch, array dimensioning
100–160Main game loop: visibility checks, room description dispatch
200–500Room description and object listing
1000–1900Command input, word parsing, movement resolution
2000–2975Condition/action engine — condition checking
3000–3240Action execution dispatcher
4000–5600Action subroutines (inventory, pick up, drop, flags, movement, quit, etc.)
6000–6640Word extraction and machine code lookup routines
7000–7999Action message library (indexed by computed GOSUB)
8000–8999Room description library (indexed by computed GOSUB)
9000–9999Array dimensioning stubs, SAVE/LOAD routines, restart

Machine Code Word Parser

The most technically significant feature is the machine code routine embedded inside the REM at line 1. It is invoked at line 6122 with LET Q=USR 16530. Before the call, four bytes of the typed word are POKEd into memory locations 16520–16523, and the result (a two-character code) is returned in memory locations 16526–16527, which are then read back with PEEK and assembled into P$(W).

The dictionary itself is stored as a plain-text REM at line 2. Each entry is a two-digit numeric code followed by up to four characters of the word stem (e.g., 08GET, 09DROP, 14SCRA). Only the first four characters of a word need to match, so SCRAPE, SCRATCH, and BRUSH all resolve to code 14. This approach keeps the dictionary human-readable while the machine code handles the search efficiently.

After lookup, line 6133 checks whether the returned code is in the range 28–37 (the character codes for digits ‘0’–’9′); if not, P$(W) is set to "00" (unrecognized word) at line 6136.

Two-Word Parser Architecture

The parser at lines 6000–6640 extracts up to two words from the input string Y$. Words are accumulated character by character into a four-character buffer W$(4), then looked up via machine code. Results are stored in P$(1) (verb code) and P$(2) (noun code). The helper subroutines at 6500 and 6600 advance the input cursor Y, skipping spaces between words and detecting end-of-input via the boolean END.

Computed GOSUB Dispatch

Room descriptions and action messages are both dispatched using computed GOSUB arithmetic:

  • GOSUB 8000+ROOM*10 — jumps to the description subroutine for the current room (e.g., room 3 → line 8030)
  • GOSUB 7000+N*10 — jumps to action message N (e.g., message 10 → line 7100)

Each subroutine occupies exactly ten lines and ends with RETURN, making the numbering scheme strict but elegant. This avoids large IF/THEN chains and keeps each room or message self-contained.

Condition/Action Engine

The game logic is driven by a table-based condition/action interpreter spanning lines 2000–3240. Conditions and actions are encoded as compact strings in the arrays C$() and A$(). Each entry consists of a verb/noun pair followed by a sequence of condition codes and action codes, all packed as short substrings.

Condition types (lines 2900–2975) are selected by TYPE = CODE(E$(E)) - 38, dispatching to a GOSUB at 2900 + TYPE*10:

  • Type 0 (code 38 = ‘&’): OK = (N = ROOM) — player in specific room
  • Type 1: object N present in room or carried
  • Type 2: object N absent
  • Type 3: object N is carried (O(N) < 0)
  • Type 4: status flag S(N) is set
  • Type 5: status flag S(N) is clear
  • Type 6: counter C(N) equals 1
  • Type 7: random probability (N% chance)

Action types (lines 4000–5600) are dispatched similarly at 4000 + TYPE*100, covering inventory display, pick up, drop, print message, set/clear flags, set counter, swap objects, place object, destroy object, move to room, print OKAY, re-enter input loop, re-enter main loop, and quit/save.

State Variables

VariablePurpose
ROOMCurrent room number (1–16)
O(X)Location of object X: positive = room number, negative = carried, 0 = destroyed
S(N)Boolean status flags (e.g., lamp on, door open)
C(N)Countdown timers (e.g., shark attack delay)
P$(W)Parsed word codes: P$(1) = verb, P$(2) = noun
TFlag: 1 = scanning global conditions, 0 = scanning action table
MATCHFlag: 1 = a matching condition/action entry was found

Carry Limit

Lines 4100–4130 enforce a carry limit of five objects: S(1) tracks the current carry count and is tested against 5. Attempting to pick up a sixth item prints “YOU CANT CARRY ANY MORE” and sets BREAK=100 to abort the action chain.

Save/Restore System

The SAVE routine at lines 9600–9670 prompts the player for an adventure name, pauses for tape preparation, then executes SAVE N$, which saves the entire program including the current variable state. On reload, the saved-game branch at line 33 checks for a “Y” response and jumps to line 90, skipping array initialization so all saved state is preserved.

Visibility and Timer Mechanics

Lines 100–150 implement a visibility/light system using S(2) (light active), S(3) (sufficient visibility), C(2), and C(3) as countdowns. If the light is on but visibility is low, a warning message is printed and C(3) is decremented each turn, creating time pressure for the player to use the lamp.

Notable Anomalies

  • Line 50 uses DIM O(O) — the variable O (number of objects) is not initialized in the visible listing; it must be supplied by data loaded from tape or set by the condition/action table engine. The same applies to R, C, and A used in the DIM statements at lines 9330–9530.
  • Line 200 is referenced by GOTO 200 at lines 100 and 120, but the actual room description code begins at line 210. Line 200 is absent from the listing, so execution falls through naturally to line 210 — an intentional use of non-existent line targeting.
  • The P$(2,2) declaration at line 40 creates a 2×2 string array, used as P$(1) and P$(2) for verb and noun codes respectively.
  • Line 7040 spells “EMINENT” where “IMMINENT” was likely intended — a minor spelling error in the game text.
  • Line 7150 spells “THEMSLVES” instead of “THEMSELVES” — another typo in an action message.

Content

Appears On

Related Products

Takes place in deadly shark infested waters which guard fabulous riches hidden in the wreck of a sunken pirate ship....

Related Articles

Related Content

Image Gallery

Shark’s Treasure

Source Code

   1 REM 9240262626262631310262680802626ED438240000021F84013232000003D3C61153EEFBECAEA403D3A88402310FDEDA165C2A94053A8940EDA1C2A94053A8A40EDA1C2A94053A8B40EDA1C2A940662B10FD7E328E40237E328F404B8240C9262626262626
   2 REM 02E   02EAST04W   04WEST05U   05UP  06D   06DOWN07THRU07THRO43DESC08TAKE08GET 09PUT 09DROP11LEAV11EXIT12HIT 12BEAT23TURN14SCRA14BRUS14CLEA15LOOK16BARN17CLOS18LIFT19OPEN20HATC21KNIF22LAMP23LIGH24SPEA24GUN 26DIVE27SHAR28REPE29USE 29WITH30LOCK31KEY 32PIT 33INVE34REST35CHAI36SPIT37DAGG38DIAM39SHOO40CHES41QUIT42CROW43DESC44CUT 45EELS45EEL 46READ47SIGN LOAD 11111111111111111111
   3 SLOW 
  10 PRINT ,,,,"  WELCOME TO SHARKS TREASURE",,,"     (C) TY-SOFT 1982",,,"THE SHARK INFESTED WATERS OF","THE INDIAN OCEAN HAVE CLAIMED","SUNKEN RICHES BEYOND BELIEF.","THE WRECK OF THE PIRATE SHIP","XANDAU LIES BELOW FILLED WITH","FABULOUS PLUNDER TAKEN FROM AN","INDIAN PRINCESS OVER A 100 ","YEARS BEFORE. MANY HAVE TRIED","TO EXPLORE THE WRECK,NONE HAVE","RETURNED.          ","CAN YOU FIND THE TREASURE","AND ESCAPE UNSCATHED FROM THE","%J%A%W%S OF %D%E%A%T%H?       ",,,"DEPRESS ANY KEY TO CONTINUE"
  12 LET U$=INKEY$
  14 IF U$="" THEN GOTO 12
  16 CLS 
  18 PRINT ,,,,"PLEASE INSTRUCT THE COMPUTER","WITH SHORT SENTENCES.","SOME USEFUL WORDS ARE: GET","TAKE,THROUGH,DROP,SCRAPE,USE,","OPEN,WITH AND LOTS MORE.   ",,,"  IF YOU GET INTO %T%R%O%U%B%L%E TRY:",,,"DESCRIPTION - WILL GIVE YOUR","LOCATION            ",,,"INVENTORY - WILL TELL YOU","WHAT OBJECTS YOU ARE CARRYING",,,"QUIT - WILL END THE GAME,","GIVING YOU THE OPTION TO","RESTART OR TO SAVE THE GAME","      ---GOOD LUCK---   ",,,"  DEPRESS ANY KEY TO START."
  20 LET U$=INKEY$
  22 IF U$="" THEN GOTO 20
  23 CLS 
  25 PRINT ,,,," IS THIS A PREVIOUSLY SAVED","GAME?(Y/N) ";    
  27 INPUT L$
  29 PRINT L$
  30 CLS 
  31 FAST 
  33 IF CHR$ CODE L$="Y" THEN GOTO 90
  36 CLS 
  37 LET ROOM=1
  38 DIM S(10)
  39 DIM C(5)
  40 DIM P$(2,2)
  50 DIM O(O)
  60 FOR X=1 TO O
  70 LET O(X)=Q(X)
  80 NEXT X
  90 CLS 
  95 FAST 
 100 IF NOT S(2) THEN GOTO 200
 110 IF C(2) THEN LET C(2)=C(2)-1
 120 IF S(3) THEN GOTO 200
 130 PRINT "--VISIBILTY IS LIMITED--","--LIGHT MAY BECOME USEFUL--"
 140 IF C(3) THEN LET C(3)=C(3)-1
 150 GOTO 1000
 160 REM DESCRIBE ROOM
 210 PRINT 
 220 GOSUB 8000+ROOM*10
 300 LET F=0
 310 FOR X=1 TO O
 320 IF O(X)<>ROOM THEN GOTO 500
 330 IF F THEN GOTO 400
 340 PRINT ,,"THERE IS ALSO:"
 350 LET F=1
 400 PRINT "   ";O$(X)
 500 NEXT X
 1000 REM ACCEPT COMMAND
 1010 LET T=1
 1020 GOTO 2000
 1100 IF C(1) THEN LET C(1)=C(1)-1
 1110 IF C(4) THEN LET C(4)=C(4)-1
 1120 PRINT ,,"%*"
 1130 INPUT Y$
 1140 CLS 
 1150 LET Y=0
 1160 PRINT ,,"%*"
 1170 LET P$(2)="00"
 1200 FOR W=1 TO 2
 1210 GOSUB 6000
 1220 IF Y>=LEN Y$ THEN GOTO 1300
 1230 IF P$(W)="00" THEN GOTO 1210
 1240 NEXT W
 1300 IF P$(1)<>"00" THEN GOTO 1600
 1310 PRINT " EXCUSE ME ?" 
 1320 GOTO 100
 1600 REM CHECK FOR MOVEMENT
 1610 LET Z=1
 1620 LET T$=M$(ROOM)(Z TO Z+1)
 1630 IF T$="00" THEN GOTO 1900
 1640 IF T$<>P$(1) THEN GOTO 1700
 1650 LET ROOM=VAL (M$(ROOM)(Z+2 TO Z+3))
 1660 GOTO 100
 1700 LET Z=Z+4
 1710 GOTO 1620
 1900 LET T=0
 1910 LET MATCH=0
 2000 REM CHECK FOR CONDITIONALS
 2010 LET CP=0
 2100 LET CP=CP+1
 2110 IF NOT T THEN GOTO 2300
 2120 LET E$=C$(CP)
 2130 GOTO 2600
 2300 IF CP<=A THEN GOTO 2400
 2310 IF MATCH THEN GOTO 1000
 2320 PRINT "YOU CANT";
 2330 IF VAL (P$(1))<7 THEN PRINT " GO THAT WAY";
 2340 PRINT "."
 2350 GOTO 100
 2400 IF A$(CP)(1 TO 2)<>P$(1) THEN GOTO 2100
 2410 LET Y$=A$(CP)(3 TO 4)
 2420 IF Y$<>"00" AND Y$<>P$(2) THEN GOTO 2100
 2430 LET E$=A$(CP)(5 TO )
 2600 REM  CONDITIONS
 2610 LET E=1
 2700 IF E$(E)="." THEN GOTO 3000
 2710 LET TYPE=CODE (E$(E))-38
 2720 LET N=VAL (E$(E+1 TO E+2))
 2800 GOSUB 2900+TYPE*10
 2810 IF NOT OK THEN GOTO 2100
 2820 LET E=E+3
 2830 GOTO 2700
 2900 LET OK=(N=ROOM)
 2905 RETURN 
 2910 LET OK=(O(N)=ROOM OR O(N)<0)
 2915 RETURN 
 2920 LET OK=(O(N)<>ROOM AND O(N)>=0)
 2925 RETURN 
 2930 LET OK=(O(N)<0)
 2935 RETURN 
 2940 LET OK=S(N)
 2945 RETURN 
 2950 LET OK=(NOT S(N))
 2955 RETURN 
 2960 LET OK=(C(N)=1)
 2965 RETURN 
 2970 LET OK=((INT (RND*100)+1)<=N)
 2975 RETURN 
 3000 REM  ACTIONS
 3010 LET MATCH=1
 3020 LET E=E+1
 3100 IF E$(E)="." THEN GOTO 2100
 3110 LET TYPE=CODE (E$(E))-38
 3120 IF E$(E+1)<>"." THEN LET N=VAL (E$(E+1 TO E+2))
 3200 LET BREAK=0
 3210 GOSUB 4000+TYPE*100
 3220 IF BREAK THEN GOTO BREAK
 3230 LET E=E+3
 3240 GOTO 3100
 4000 PRINT 
 4010 PRINT "YOU ARE CARRYING:"
 4020 LET F=1
 4030 FOR X=1 TO O
 4040 IF O(X)>=0 THEN GOTO 4070
 4045 PRINT "   ";O$(X)
 4050 LET F=0
 4070 NEXT X
 4080 IF F THEN PRINT "   NOTHING"
 4090 LET BREAK=100
 4095 RETURN 
 4100 IF S(1)<5 THEN GOTO 4140
 4110 PRINT "YOU CANT CARRY ANY MORE"
 4120 LET BREAK=100
 4130 RETURN 
 4140 IF O(N)=-1 THEN GOTO 4180
 4150 LET O(N)=-1
 4160 LET S(1)=S(1)+1
 4170 RETURN 
 4180 PRINT "YOU HAVE IT ALREADY"
 4190 GOTO 4120
 4200 IF O(N)=-1 THEN GOTO 4240
 4210 PRINT "YOU DONT HAVE";O$(N)
 4220 LET BREAK=100
 4230 RETURN 
 4240 LET O(N)=ROOM
 4250 LET S(1)=S(1)-1
 4260 RETURN 
 4300 PRINT 
 4310 GOSUB 7000+N*10
 4320 RETURN 
 4400 LET S(N)=1
 4410 RETURN 
 4500 LET S(N)=0
 4510 RETURN 
 4600 LET C(N)=VAL (E$(E+3 TO E+4))
 4610 LET E=E+2
 4620 RETURN 
 4700 LET X=O(N)
 4710 LET O(N)=O(N+1)
 4720 LET O(N+1)=X
 4730 RETURN 
 4800 LET O(N)=ROOM
 4810 RETURN 
 4900 IF O(N)<0 THEN LET S(1)=S(1)-1
 4910 LET O(N)=0
 4920 RETURN 
 5000 LET ROOM=N
 5010 RETURN 
 5100 PRINT " OKAY"
 5200 LET BREAK=1000
 5210 RETURN 
 5300 LET BREAK=1100
 5310 RETURN 
 5400 LET BREAK=100
 5410 RETURN 
 5500 PRINT " ARE YOU SURE?(Y/N)";
 5510 INPUT W$
 5520 PRINT W$
 5525 LET BREAK=1100
 5530 IF CHR$ CODE W$<>"Y" THEN GOTO 5400
 5540 GOTO 9600
 5600 GOTO 9700
 6000 REM  REMOVE WORD
 6010 DIM W$(4)
 6015 LET P$(W)="00"
 6020 GOSUB 6600
 6025 IF END THEN RETURN 
 6030 FOR Q=1 TO 4
 6040 LET W$(Q)=Y$(Y)
 6050 GOSUB 6500
 6060 IF END THEN GOTO 6100
 6070 NEXT Q
 6080 GOSUB 6500
 6090 IF NOT END THEN GOTO 6080
 6100 IF W$="    " THEN RETURN 
 6110 POKE 16526,128
 6112 POKE 16527,128
 6114 POKE 16520,CODE W$(1)
 6116 POKE 16521,CODE W$(2)
 6118 POKE 16522,CODE W$(3)
 6120 POKE 16523,CODE W$(4)
 6122 LET Q=USR 16530
 6130 LET P$(W)(1 TO 1)=CHR$ PEEK 16526
 6132 LET P$(W)(2 TO 2)=CHR$ PEEK 16527
 6133 IF CODE P$(W)< 28  OR CODE P$(W)> 37 THEN GOTO 6136
 6135 GOTO 6210
 6136 LET P$(W)="00"
 6138 GOTO 6210
 6210 RETURN 
 6500 LET Y=Y+1
 6510 LET END=(Y>LEN Y$)
 6520 IF END THEN RETURN 
 6530 LET END=(Y$(Y)=" ")
 6540 RETURN 
 6600 LET Y=Y+1
 6610 LET END=(Y>LEN Y$)
 6620 IF END THEN RETURN 
 6630 IF Y$(Y)=" " THEN GOTO 6600
 6640 RETURN 
 7000 REM ACTION MESSAGES
 7001 REM MESSAGE NO.1 CAUSES
 7002 REM GOSUB TO LINE 7010
 7010 PRINT "YOUR SPEARGUN IS JAMMED."," ----TIME FOR INGENUITY."
 7015 RETURN 
 7020 PRINT "YOU SHOULD HAVE TURNED ON THE","LIGHT BECAUSE YOU HAVE JUST","SWAM INTO THE JAWS OF A","HAMMERHEAD SHARK. YOU ARE THE","SHARKS DINNER. BETTER LUCK","NEXT TIME."
 7025 RETURN 
 7030 PRINT "LAMP IS ALREADY LIT."
 7035 RETURN 
 7040 PRINT "AN APPROACHING TIGER SHARK HAS","YOU IN RANGE. ATTACK IS EMINENT"
 7045 RETURN 
 7050 PRINT "IT IS A BRASS SPITOON FROM THE","WRECK."
 7055 RETURN 
 7060 PRINT "YOUR FRIEND THE TIGER SHARK IS","BACK ONLY MORE ANGRY. PREPARE","TO DEFEND YOURSELF. YOUR VISIT","TO HIS DOMAIN HAS BEEN","TERMINATED.             "
 7065 RETURN 
 7070 PRINT "YOU CANNOT DO THAT YET."
 7075 RETURN 
 7080 PRINT "WITH SOME FORCE YOU HAVE","MANAGED TO OPEN THE LOCKER. IT","CONTAINS A WELL PRESERVED KEY."
 7085 RETURN 
 7090 PRINT "YOU HAVE DISTURBED A GREAT","WHITE SHARK. IT HAS BITTEN","YOUR LEG OFF AS AN APPETIZER","AND IS READY FOR THE MAIN","COURSE. BETTER LUCK NEXT TIME."
 7095 RETURN 
 7100 PRINT "      --GOOD SHOW--    ","   DIRECT HIT YOU HAVE     ","  --%K%I%L%L%E%D THE %S%H%A%R%K--  "
 7105 RETURN 
 7110 PRINT "WHERE THERE ARE PILOT FISH","THERE ARE SHARKS. BETTER","MOVE ON."
 7115 RETURN 
 7120 PRINT "IF YOU WOULD LIKE TO BEGIN","AGAIN? ENTER RESTART."
 7125 RETURN 
 7130 PRINT "A BLUE SHARK HAS BITTEN YOU","IN HALF. HUNGRY SHARKS GATHER","IN THE DISTANCE. YOU ARE DEAD.","BETTER LUCK NEXT TIME."
 7135 RETURN 
 7140 PRINT "OOPS YOU CARELESSLY LEAN ON","SOME SHARP CORAL. YOUR AIR HOSE HAS BEEN PUNCTURED. YOU","ARE SUFFOCATING."
 7145 RETURN 
 7150 PRINT "KILLER EELS HAVE ENCIRCLED YOU.","AS THEY WRAP THEMSLVES TIGHTLY","AROUND YOU, YOU REALIZE YOU","ARE ABOUT TO SUFFOCATE."
 7155 RETURN 
 7160 CLS 
 7162 PRINT ,,,,"CONGRATULATIONS, YOU ARE THE","ONLY ADVENTURER TO ESCAPE FROM","THE GRIPS OF THESE DEADLY","SHARKS, WHO HAVE BEEN THE SOLE","GUARDIANS OF THE PUNJAB DIAMOND","FOR OVER 100 YEARS."
 7165 RETURN 
 7170 PRINT "IN THE CHEST YOU BEHOLD THE","150 CT. PUNJAB DIAMOND STOLEN","FROM AN INDIAN MAHARAJA OVER","100 YEARS AGO."
 7175 RETURN 
 7180 PRINT "YOU ENTERED THE WATER","PREMATURELY, YOU ARE ENGULFED","BY THE POISONOUS TENACLES","OF A MAN-EATING SQUID.",,,"--BETTER LUCK NEXT TIME--"
 7185 RETURN 
 7190 PRINT "    WITH WHAT ?    "
 7195 RETURN 
 7200 PRINT "YOU HAVE BEEN RIPPED TO SHREDS","NEXT STOP ""DAVEY JONES"" LOCKER",,,"--BETTER LUCK NEXT TIME--"
 7205 RETURN 
 7210 PRINT "OKAY           "
 7999 RETURN 
 8000 REM ROOM DESCRIPTIONS
 8001 REM ROOM 1 CAUSES A
 8002 REM GOSUB TO LINE 8010
 8010 PRINT "YOU ARE SUITED UP AND","ON THE DECK OF YOUR DIVING ","VESSEL PREPARING TO DIVE"
 8015 RETURN 
 8020 PRINT "AS YOU APPROACH THE TOPSIDE OF","THE WRECK IT IS ALIVE WITH SEA","LIFE. YOU SENSE AN EERIE","FEELING OF DOOM. A TIGER SHARK","COMES INTO VIEW. ONLY TWO","HOLES IN THE WRECK ARE BIG","ENOUGH TO ENTER. THEY LIE","TO THE EAST AND THE WEST."
 8025 RETURN 
 8030 PRINT "THIS IS THE CAPTIANS CABIN.","A CUTLASS STILL HANGS ON THE","WALL. THE ONLY REMNANT OF A","ONCE ELABORATE SETTING.","EXITS LEAD EAST,WEST AND DOWN."
 8035 RETURN 
 8040 PRINT "HERE IS THE AFT HOLD. HUGE KEGS","COVERED WITH SEA MOSS PLAY","HOST TO GIANT MUSSELS. EXITS","ARE EAST,WEST AND DOWN."
 8045 RETURN 
 8050 PRINT "YOU ARE FOLLOWING A LONG","CORRIDOR LEADING EAST AND WEST","SUDDENLY THE WATER IS DENSE","WITH A SCHOOL OF MACKEREL."
 8055 RETURN 
 8060 PRINT "YOU HAVE COME THROUGH","A GAPPING HOLE IN THE STERN","THAT LEADS OUT OF THE SHIP","EXITS ARE EAST,WEST AND DOWN"
 8065 RETURN 
 8070 PRINT "HERE IS A COLD MURKY CAVE.","YOU NOTICE AN OCTOPUS LURKING","UNDER THE ROCK. SOMETHING","SHIMMERS ON THE FAR SIDE."," EXIT IS EAST."
 8075 RETURN 
 8080 PRINT "YOU HAVE ENTERED A LARGE","CAVERN FILLED WITH LIGHT. YOU","NOTICE LOTS OF FISH","ESPECIALLY PILOT FISH. EXITS","ARE EAST AND UP.     "
 8085 RETURN 
 8090 PRINT "YOU HAVE FOUND THE RUM STORAGE","HOLD. TOO BAD THE JUGS ARE","ALL BROKEN.       ","---- EVEN I COULD  ","           USE A DRINK ---- ","EXITS ARE EAST,WEST AND DOWN"
 8095 RETURN 
 8100 PRINT "YOU HAVE ENTERED THE CREWS","QUARTERS. PASSAGE IS ","BLOCKED BY A FALLEN MAST","THE ONLY EXITS OUT ","ARE WEST AND UP."
 8105 RETURN 
 8110 PRINT "THIS IS A HIDDEN ROOM FILLED","WITH GIANT SPONGES. EXITS ARE","EAST AND UP.     "
 8115 RETURN 
 8120 PRINT "YOU HAVE COME UPON THE BRIG.","THE WALLS ARE LINED WITH","SKELETONS, SKULLS FLOAT AROUND","YOU. EXITS ARE EAST AND WEST."
 8125 RETURN 
 8130 PRINT "THIS IS THE SHIPS GALLEY","RUSTY KETTLES AND SMASHED","CROCKERY CAN BE SPOTTED AMONG","THE DEBRIS. EXITS ARE","OMNIDIRECTIONAL         "
 8135 RETURN 
 8140 PRINT "YOU HAVE ENTERED THE FORE HOLD","SEA ANEMONES AND URCHINS LINE","THE PORT SIDE.     ","EXITS ARE WEST AND DOWN."
 8145 RETURN 
 8150 PRINT "YOU HAVE FOUND THE ARMS HOLD.","KEGS OF AMMUNITION STILL LIE","AMONG RUSTY MUSKETS. EXITS ARE","WEST AND UP."
 8155 RETURN 
 8160 PRINT "A LARGE HOLE IN THE SHIP LEADS","YOU OUT TO VIBRANT","MULTI-COLORED CORAL REEF THAT","DAZZLES YOUR SENSES.","EXIT IS UP"
 8165 RETURN 
 9000 STOP 
 9040 DIM Q(O)
 9050 DIM O$(O,16)
 9330 DIM M$(R,32)
 9430 DIM C$(C,21)
 9530 DIM A$(A,31)
 9600 CLS 
 9610 PRINT "ENTER ADVENTURE NAME"
 9611 INPUT N$
 9612 PAUSE 60
 9613 PRINT ,,,,,"---%H%U%R%R%Y----"
 9614 PAUSE 150
 9630 PRINT ,,"START THE TAPE..."
 9640 PAUSE 150
 9645 POKE 16437,255
 9650 CLS 
 9660 SAVE N$
 9670 GOTO 2
 9700 PRINT ,,"WOULD YOU LIKE TO START AGAIN?","--DEPRESS ANY KEY TO RESTART--"
 9705 SLOW 
 9710 LET U$=INKEY$
 9715 IF U$="" THEN GOTO 9710
 9735 CLS 
 9740 GOTO 1
 9999 STOP 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top