0 DIM TX$(90), DI(246, 10), A$(50), CO(12), CI(12), PC(12), I$(109), J(135), K$(135), B$(141), W$(99), P$(100), NU(239), V(15), BB$(15), TILE$(12) 1 REM ************************************ 2 REM * * 3 REM * COLOSSAL CAVE ENHANCED ADVENTURE * 4 REM * (751-point Version) * 5 REM * * 6 REM * Adapted from Crowther/Woods * 7 REM * Expanded by David Long * 8 REM * (Partial version for QBASIC * 9 REM * Written by Carl Ruby) * 10 REM * * 11 REM ************************************ 12 C$ = CHR$(34) 13 CD$ = "C:\ADV751\" 14 C1$ = "C:\ADV751\1TIMERS\" 15 DK$ = "I don't know how" 16 CLAM$ = "clam" 17 CI(2) = 2: CI(7) = 2: CI(12) = 1 18 FB$ = "You are being followed by a very large, tame bear." 19 NY$ = CD$ + "VAR" 20 TB$ = "There is a bottle of " 21 WB$(1) = "clear water": WB$(2) = "thick oil" 22 OPEN NY$ FOR INPUT AS #1 23 FOR Y = 1 TO 246: FOR X = 1 TO 10: INPUT #1, DI(Y, X): NEXT X, Y 24 FOR X = 1 TO 141: INPUT #1, B$(X): NEXT X 25 FOR X = 1 TO 86: INPUT #1, P$(X): NEXT X 26 FOR X = 1 TO 10: INPUT #1, MZ$(X): NEXT X 27 FOR X = 0 TO 15: INPUT #1, BB$(X): NEXT X 28 FOR X = 0 TO 3: INPUT #1, TR$(X): NEXT X 29 INPUT #1, TH$ 30 INPUT #1, NH$ 31 FOR X = 1 TO 4: INPUT #1, HLTH$(X): NEXT X 32 FOR X = 1 TO 4: INPUT #1, H2$(X): NEXT X 33 FOR X = 1 TO 5: INPUT #1, A$(X): NEXT X 34 INPUT #1, A$(8) 35 FOR X = 10 TO 13: INPUT #1, A$(X): NEXT X 36 FOR X = 15 TO 17: INPUT #1, A$(X): NEXT X 37 FOR X = 21 TO 27: INPUT #1, A$(X): NEXT X 38 FOR X = 29 TO 32: INPUT #1, A$(X): NEXT X 39 FOR X = 34 TO 39: INPUT #1, A$(X): NEXT X 40 FOR X = 1 TO 12: INPUT #1, CO(X): NEXT X 41 FOR X = 1 TO 4: INPUT #1, WUMP$(X): NEXT X 42 FOR X = 2 TO 9: INPUT #1, I$(X): NEXT X 43 FOR X = 13 TO 23: INPUT #1, I$(X): NEXT X 44 FOR X = 25 TO 44: INPUT #1, I$(X): NEXT X 45 FOR X = 46 TO 61: INPUT #1, I$(X): NEXT X: INPUT #1, I$(63): INPUT #1, I$(64) 46 FOR X = 66 TO 71: INPUT #1, I$(X): NEXT X 47 FOR X = 73 TO 75: INPUT #1, I$(X): NEXT X 48 CLOSE #1: SV = INT(6 * RND(1) + 14) 49 NA$ = CD$ + "LGHT": OPEN NA$ FOR INPUT AS #1 50 INPUT #1, L1 51 CLOSE #1 52 P = 1: BR = 1: TR = 1: PL = 1: BE = 1: WB = 1: SN = 1: DD = 1: OI = 1 53 CH = 1: WI = 5: DM = 1: PS = 1: SD = 1: BD = 1: HLTH = 100: CAB = 2: DUM = 1 54 PC(1) = 2: PC(10) = 184: PC(11) = 153 55 READ A$(6), A$(7), A$(9), A$(14) 56 FOR X = 18 TO 20: READ A$(X): NEXT X 57 READ A$(28), A$(33) 58 FOR X = 40 TO 44: READ A$(X): NEXT X 59 READ I$(1), I$(10), I$(11), I$(12), I$(24), I$(45), I$(62), I$(65), I$(72) 60 FOR X = 76 TO 109: READ I$(X): NEXT X 63 FOR X = 1 TO 132: READ J(X): IF X < 45 THEN NU(J(X)) = 300 64 NEXT X 65 FOR X = 1 TO 132: READ K$(X): NEXT X 69 FOR X = 1 TO 94: READ W$(X): NEXT X 71 FOR X = 1 TO 15: READ V(X): NEXT X 72 FOR X = 1 TO 12: READ TILE$(X): NEXT X 73 FOR X = 1 TO 5: READ TILE(X): NEXT X 74 FOR X = 1 TO 7: READ EN(X): NEXT X 75 FOR X = 1 TO 7: READ EX(X): NEXT X 79 CC = INT(6 * RND(1) + 15) 80 FOR X = 1 TO 5: E(X) = INT(8 * RND(1) + 1): NEXT X: E(6) = INT(WI * RND(1) + 1): E(7) = INT(15 * RND(1) + 1) 81 IF P = 149 OR P = 63 OR P = 199 OR P = 151 THEN J(103) = P 82 GOSUB 1100: IF ZP = P THEN 9800 91 GOSUB 300 92 IF (P = 183 OR P = 200) AND PH = 0 THEN PRINT "The telephone is out of order." 93 IF P = 183 AND PH > 0 THEN PRINT "The telephone booth is empty."; 94 IF P = 183 AND PH = 2 THEN PRINT " The phone is ringing." 95 PRINT 98 GOSUB 400: IF P < 202 THEN NU(P) = NU(P) + 1 99 GOSUB 1000 100 M = M + 1: E(8) = INT(3 * RND(1) + 1): TL = 0: SM = 0: AR = 0: D$ = "": M$ = "": K = 0: FOR X = 1 TO 10: R$(X) = "": NEXT X: IF LS > 0 THEN LA = LA + 1 101 IF J(76) = P THEN HLTH = HLTH - 4 102 IF J(76) = 300 THEN HLTH = HLTH - 9 103 IF HLTH < 100 AND J(76) <> P AND J(76) <> 300 THEN HLTH = HLTH + 5 104 IF HLTH > 100 THEN HLTH = 100 108 IF P = 140 OR P = 163 THEN J(122) = P 112 PRINT : INPUT "", D$: IF LEN(D$) = 0 THEN 100 113 IF J(119) > 0 AND D$ <> "GET KNIFE" THEN J(119) = 0 114 IF D$ = "NORTH" OR D$ = "SOUTH" OR D$ = "EAST" OR D$ = "WEST" OR D$ = "DOWN" OR D$ = "UP" OR D$ = "BUILDING" THEN D$ = LEFT$(D$, 1) 115 IF D$ = "D" AND P = 183 AND E(1) = 3 THEN P = 182: GOTO 80 117 IF (D$ = "D" AND (P = 8 OR P = 9) OR (D$ = "IN" AND P = 8)) AND GA = 0 THEN AR = 2: GOTO 2450 118 IF D$ = "D" AND P = 14 AND J(1) = 300 THEN 800 119 IF DD = 1 AND ((D$ = "S" AND P = 73) OR (D$ = "W" AND P = 19)) THEN RR = P 120 IF J(31) = 23 AND ((D$ = "D" AND P = 15) OR (D$ = "S" AND P = 65) OR (D$ = "E" AND P = 67) OR (D$ = "D" AND P = 67)) THEN RR = P 121 IF D$ = "N" AND (P = 18 OR P = 83) THEN PRINT "You have crawled through a very low wide passage parallel to and north of the hall of mists." 122 IF D$ = "N" AND P = 63 AND LT = 0 THEN 2795 123 IF D$ = "U" AND P = 15 AND J(1) = 300 THEN PRINT "The dome is unclimbable.": GOTO 100 124 IF ((D$ = "E" AND P = 24) OR (D$ = "W" AND P = 11)) AND ((H > 1) OR (H = 1 AND J(8) <> 300)) THEN 4750 125 IF P = 23 AND J(31) = 23 AND ((D$ = "N" AND RR = 15) OR (D$ = "W" AND RR <> 67) OR (D$ = "U" AND RR = 65) OR (D$ = "S")) THEN PRINT : AR = 3: GOTO 9133 126 IF P = 79 AND DD = 1 AND (D$ = "N" AND RR = 19) OR (D$ = "E" AND RR = 73) THEN PRINT : PRINT "The dragon looks rather nasty. You'd best not try to get by.": GOTO 80 127 IF P <> 23 AND P <> 79 AND P <> 15 AND P <> 73 AND P <> 65 AND P <> 19 AND P <> 67 THEN RR = 0 128 IF D$ = "NW" AND P = 33 AND E(1) <> 3 AND E(1) <> 5 THEN 9500 129 IF D$ = "SW" AND TR = 0 AND P = 51 AND J(29) = 300 THEN 2945 130 IF D$ = "SW" AND TR = 2 AND ((P = 50 AND Y = 4) OR (P = 51 AND Y = 1)) THEN TR = 3: GOTO 80 131 IF ((D$ = "W" AND P = 226) OR (D$ = "E" AND P = 193)) AND LS > 0 THEN M$ = "TOOBRITE": GOSUB 8900: GOTO 80 132 IF D$ = "D" AND P = 227 AND J(79) <> 300 THEN M$ = "TOOCOLD": GOSUB 8900: GOTO 80 133 IF D$ = "D" AND P = 44 AND NU(208) = 0 THEN M$ = "DRAGGED": GOSUB 8900 134 IF (D$ = "U" OR D$ = "D" OR D$ = "N" OR D$ = "S") AND P = 76 AND E(1) <> 3 THEN 230 135 IF D$ = "U" AND P = 76 AND E(1) = 3 AND E(2) = 3 THEN P = 31: GOTO 80 136 IF D$ = "N" AND P = 144 AND LK = 0 THEN 3630 137 IF D$ = "L" THEN PRINT LA, LS, L1, L2: GOTO 100 138 IF P = 62 AND E(1) <> 3 AND LEN(D$) = 1 THEN CW = 1 139 IF CW = 1 THEN 230 141 IF D$ = "DDD" THEN FOR X = 1 TO 12: PRINT CI(X); " "; : NEXT X: PRINT : GOTO 100 143 IF M$ = "BUILDING" THEN 1800 145 FOR X = 1 TO LEN(D$) 146 IF MID$(D$, X, 1) = " " THEN M$ = MID$(D$, X + 1, LEN(D$)): D$ = LEFT$(D$, X - 1) 147 NEXT X 148 IF M$ = "" THEN K = 0 149 IF M$ = "GAUGE" THEN K = 127 152 GOSUB 9150 153 IF D$ = "OIL" AND P = 63 THEN 3900 154 FOR X = 1 TO 132: IF D$ = K$(X) THEN KD = X 155 NEXT X 156 IF KD = 0 THEN 170 158 IF J(KD) = P OR J(KD) = 300 THEN PRINT "What do you want to do with the " + K$(KD) + "?": KD = 0: GOTO 100 160 IF J(KD) <> P AND J(KD) <> 300 THEN 290 169 KD = 0 170 FOR X = 1 TO 94: IF D$ = W$(X) THEN W = X 174 NEXT X 175 IF M$ = "ALL" OR M$ = "BILLBOARD" THEN 180 179 IF W = 0 AND D$ <> "" THEN 5320 180 IF W > 28 OR W = 5 OR W = 7 OR W = 26 OR (W > 13 AND W < 28) THEN 190 185 IF M$ = "" THEN PRINT D$; " What?": INPUT "", M$ 190 IF W < 31 OR W > 34 THEN FE = 0 195 IF W > 0 AND W < 4 THEN GOSUB 9600 196 IF W > 0 AND W < 11 THEN ON W GOTO 2000, 2100, 2000, 2000, 3000, 2200, 2300, 2800, 3200, 2700 197 IF W > 10 AND W < 21 THEN ON W - 10 GOTO 2700, 4200, 4100, 4800, 4890, 2500, 2600, 2400, 2400, 2460 198 IF W > 20 AND W < 31 THEN ON W - 20 GOTO 2460, 2900, 3500, 3900, 3200, 4500, 4300, 4600, 3100, 3800 199 IF W > 30 AND W < 41 THEN ON W - 30 GOTO 3700, 3710, 3720, 3730, 4000, 4000, 4400, 3620, 3620, 4700 200 IF W > 40 AND W < 51 THEN ON W - 40 GOTO 3300, 3330, 3600, 6600, 9020, 6000, 7000, 7010, 6800, 7700 201 IF W > 50 AND W < 61 THEN ON W - 50 GOTO 7900, 6900, 2915, 2915, 2915, 4950, 4960, 5500, 700, 700 202 IF W > 60 AND W < 71 THEN ON W - 60 GOTO 700, 700, 700, 700, 700, 700, 700, 700, 3000, 5300 203 IF W > 70 AND W < 81 THEN ON W - 70 GOTO 5300, 5300, 5600, 5700, 5700, 5400, 5800, 5800, 5900, 4900 204 IF W > 80 AND W < 91 THEN ON W - 80 GOTO 3400, 3350, 3450, 9020, 5000, 6650, 5200, 6110, 6120, 1820 205 IF W > 90 AND W < 101 THEN ON W - 90 GOTO 1800, 1800, 1800, 9005 209 IF M$ = "" AND D$ <> "" THEN 5320 210 IF (P = 47 AND D$ = "W") OR (P = 43 AND D$ = "NE") OR (P = 24 AND D$ = "W") THEN 214 211 IF P > 119 OR (P = 11 AND D$ = "PLOVER") THEN 214 213 IF ((LS = 0 AND P > 11) OR (P > 11 AND J(47) <> P AND J(47) <> 300)) AND E(8) <> 3 THEN 600 214 WI = 5: GOTO 80 230 CW = 0: GOTO 9500 290 REM lowercase 291 FOR X = 1 TO LEN(K$(KD)) 292 LC$ = LC$ + CHR$(ASC(MID$(K$(KD), X, 1)) + 32) 293 NEXT X 295 PRINT "I see no "; LC$; " here." 296 LC$ = "" 298 KD = 0: GOTO 100 300 IF J(97) = 300 THEN PRINT : PRINT FB$ 304 IF P > 62 AND P < 84 THEN PRINT "You are " + A$(P - 62): GOTO 398 305 IF P > 83 AND P < 88 THEN PRINT A$(P - 62): GOTO 398 306 IF P > 89 AND P < 100 THEN PRINT "You are in a " + MZ$(P - 89) + " passages, all different.": GOTO 398 307 IF P = 89 OR P > 290 THEN PRINT "Dead end": GOTO 398 308 IF P > 99 AND P < 120 THEN PRINT "You are " + A$(6): GOTO 398 309 IF P = 120 THEN PRINT "You're in the caretaker's storeroom.": GOTO 398 310 IF P = 126 OR P = 135 OR P = 136 THEN 340 311 IF P > 221 THEN PRINT A$(P - 196): IF P = 237 AND DI(237, 7) = 516 THEN PRINT "A NE passage is blocked by an impenetrable thicket of sharp thorny": PRINT "brambles." 312 IF P > 221 THEN 398 314 IF NU(P) = 300 THEN NU(P) = 0: SC = SC + 2 315 IF NU(P) = 254 THEN NU(P) = 0 316 IF NU(P) = 0 THEN 380 318 IF NU(P) > 1 AND LD = 1 THEN LD = 0: GOTO 380 340 REM ---++ B$ AREA ------> 345 IF P = 88 THEN PRINT "You're at window on pit.": GOTO 398 349 IF P = 6 OR (P > 120 AND P < 126) THEN PRINT "You're in forest.": GOTO 398 350 IF P < 63 THEN PRINT "You're " + B$(P): GOTO 398 356 IF P = 126 OR P = 127 OR P = 140 OR P = 141 OR P = 150 OR P = 154 OR P = 155 THEN PRINT "You are " + B$(P - 63): GOTO 398 360 IF P > 125 AND P < 166 THEN PRINT "You're " + B$(P - 63): GOTO 398 363 IF P = 172 THEN PRINT "You are " + B$(P - 67): GOTO 398 365 IF P > 169 AND P < 179 THEN PRINT "You're " + B$(P - 67): GOTO 398 366 IF P = 199 AND PH = 1 THEN PRINT "You're at underground sea.": GOTO 398 368 IF P > 179 AND P < 202 THEN PRINT "You're " + B$(P - 68): GOTO 398 380 REM ---++ A$ AREA ------> 381 IF P = 27 AND BH = 1 THEN M$ = "RMS\ALT27": GOTO 389 382 IF P = 139 AND WET = 1 THEN M$ = "RMS\ALT139": GOTO 389 383 IF P = 199 AND PH = 1 THEN M$ = "RMS\ALT199": GOTO 389 384 IF P < 63 OR P = 88 OR P > 120 THEN 388 385 GOTO 398 388 M$ = "RMS\ROOM" + MID$(STR$(P), 2, LEN(STR$(P))) 389 GOSUB 8900 398 RETURN 400 FOR X = 2 TO 9: PC(X) = P: NEXT X: PC(12) = P 500 IF LS > 0 THEN I$(47) = "There is a lamp shining nearby." 503 IF BE = 1 AND J(99) = 59 THEN M$ = "GENTLE": NI = 99: GOSUB 8950 504 IF BE <> 1 OR (BE = 1 AND J(99) <> 59) THEN I$(58) = "There is a little axe here." 505 IF CH = 1 AND BE <> 1 THEN I$(5) = "There is a golden chain locked to the wall!" 506 IF CH = 0 THEN M$ = "CHAIN": NI = 5: GOSUB 8950 510 FOR X = 1 TO 109 512 IF X = 95 AND J(X) = P AND (P = 141 OR P = 161) THEN PRINT "A helicopter is waiting nearby.": GOTO 520 513 IF X = 103 AND P <> 63 THEN 520 515 IF J(X) = P THEN PRINT I$(X) 517 IF X = 107 AND P = 39 AND PL = 2 THEN PRINT C$; "Water!! Water!!"; C$ 520 NEXT X 530 IF P = 89 AND J(14) = 89 THEN PV = 2 599 RETURN 600 PRINT "You fell into; A; pit AND broke; every; bone; in; your; body!;" 620 SC = SC - 10 630 ZP = P: GOTO 9800 700 IF P > 290 THEN Q = DI(P - 50, W - 58): GOTO 710 708 Q = DI(P, W - 58) 710 IF Q = 0 THEN PRINT BB$(0): GOTO 80 712 IF Q > 500 THEN ON Q - 500 GOTO 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9550, 9040, 9116, 9117, 9118, 9190, 2695, 9121, 9122 720 IF P = 188 AND Q <> P THEN BG = 0 730 P = Q 740 GOTO 80 800 PRINT "You are at the bottom of the pit with a broken neck." 810 ZP = 15: GOTO 9800 1000 IF P <> 2 OR PS = 1 THEN 1008 1002 PRINT "A steel safe is embedded in the wall." 1003 PRINT "The safe door"; : ON CI(1) + 1 GOTO 9380, 9370 1008 IF P = 8 OR P = 9 THEN J(58) = P: PRINT "The grate "; : ON GA + 1 GOTO 9380, 9370 1014 IF (P = 14 OR P = 15) AND J(1) <> 300 THEN PRINT "Rough stone steps lead "; BB$(P) 1017 IF (P = 17 OR P = 83) THEN J(39) = P: J(40) = P: IF CB = 1 THEN PRINT CB$ 1025 IF P = 25 AND E(1) = 3 THEN PRINT "A hollow voice says " + C$ + "Plugh" + C$ 1030 IF (P = 30 OR P = 88) AND LS > 0 THEN J(108) = P 1036 IF (P = 36 OR P = 37) AND PL > 1 THEN PRINT BB$(PL) 1043 IF P = 43 THEN PRINT C$ + "Congratulations on bringing light into the Dark-Room!!"; C$ 1048 IF (P = 149 OR P = 150) AND SSD = 1 THEN 9215 1049 IF P = 149 THEN ON LGT + 1 GOTO 9200, 9205, 9210 1050 IF P = 50 OR P = 51 THEN M$ = "BRIDGE" + RIGHT$(STR$(BR), 1): GOSUB 8900: PRINT : PRINT TR$(TR): IF BR = 1 THEN J(39) = P 1088 IF P = 295 AND J(14) = 89 THEN PRINT C$ + "This is not the maze where the pirate leaves his treasure chest." + C$ 1089 IF P = 295 THEN PRINT : PRINT C$ + "Insert coins to receive fresh batteries." + C$ 1090 IF LS > 0 AND P <> 2 AND P < 10 AND E(3) = 3 AND J(47) = 300 THEN PRINT "You know, you are wasting your batteries by running around out here with your light on." 1091 IF P = 62 THEN AR = 6 1092 IF P > 99 AND P < 113 THEN AR = 5 1095 IF AR > 1 THEN 8000 1096 GOSUB 5850 1097 IF WUMP > 0 THEN GOSUB 5860 1099 RETURN 1100 IF E(3) = 5 AND D = 0 AND P > 12 AND P < 120 THEN SC = SC + 52: M$ = C1$ + "FIRSTAXE": GOSUB 8900: D = 1: J(58) = P: MD = M 1103 IF LS = 2 THEN 1113 1104 IF LA = L1 THEN 1300 1106 IF (P > 119 AND P < 220) OR P = 225 THEN 1113 1108 IF (LS = 0 AND P > 11 AND P <> 226) OR (LS > 0 AND P > 11 AND P <> 226 AND J(47) <> P AND J(47) <> 300) THEN 1388 1113 IF JT = 15 AND P > 9 AND J(25) = 62 AND SE = 0 THEN SV = SV - 1: IF SV = 0 THEN 1175 1115 IF PV = 2 OR P < 23 THEN 1150 1120 IF PV = 0 AND E(7) = 6 THEN PV = 1: GOTO 1200 1130 IF PV = 1 AND E(7) = 6 THEN PV = 0 1150 IF D = 0 OR P < 18 OR (JT = 15 AND J(25) = 62) THEN DW = 0: GOTO 1180 1155 IF E(7) = 9 THEN DW = DW + 1: IF DW > 2 THEN DW = 2 1160 IF PV = 1 THEN 1200 1170 IF DW > 0 THEN 1400 1175 IF SV = 0 AND SE = 0 THEN 1500 1180 IF SE = 1 THEN CC = CC - 1 1185 IF CC = 0 THEN 1600 1199 RETURN 1200 PRINT 1205 IF P = 89 OR SE = 1 OR (JT = 15 AND J(25) = 62) OR (P > 48 AND P < 60) OR (P > 119 AND P < 225) THEN RETURN 1210 FOR X = 1 TO 15 1215 IF J(X) = 300 THEN PT = 1 1220 NEXT X 1230 IF PT = 0 THEN PRINT "There are faint rustling noises from the darkness behind you.": RETURN 1240 FOR X = 1 TO 15 1245 IF J(X) = 300 THEN J(X) = 89: H = H - 1 1250 NEXT X 1255 J(14) = 89: NU(89) = 300 1260 PRINT "Out from the shadows behind you pounces a bearded pirate! " + C$ + "Har, har," + C$ + " he" 1261 PRINT "chortles, "; C$; : M$ = "PIRATE": GOSUB 8900 1265 PT = 0: E(7) = INT(12 * RND(1) + 1) 1270 PRINT : RETURN 1300 PRINT 1301 L2 = INT(6 * RND(1) + 14) + L1 1305 IF LA = L2 AND LS < 2 THEN 1380 1310 IF NB = 1 AND (J(31) = 300 OR J(31) = P) THEN 1350 1315 IF J(56) = 300 THEN 1350 1318 IF J(56) = 0 THEN NB = 1: M$ = C1$ + "DIMWRAP": GOSUB 8900: GOTO 100 1322 IF J(56) <> P THEN NB = 1: M$ = C1$ + "DIMGOBAK": GOSUB 8900: RETURN 1350 M$ = C1$ + "DIMRPLAC": GOSUB 8900 1360 LS = 2: J(56) = P: NB = 0: DM = 0: M$ = "OLDBTTRY": NI = 56: GOSUB 8950 1377 LA = 0: RETURN 1380 LS = 0: PRINT 1381 IF P < 12 THEN 1392 1384 PRINT "Your lamp has run out of power.": RO = 1 1388 IF P > 12 AND P <> 226 AND P <> 193 AND P <> 199 THEN PRINT BB$(6) 1390 IF P = 25 THEN PRINT : PRINT GH$: GOTO 100 1392 M$ = "NOPOINT": GOSUB 8900 1399 GOTO 9985 1400 REM DWARF ROUTINE 1401 PRINT 1402 IF (P > 35 AND P < 40) OR (P > 46 AND P < 61) THEN RETURN 1404 IF P = 42 OR P = 63 OR P = 44 OR P = 72 OR P = 77 THEN RETURN 1406 IF M - MD < 3 OR P > 88 THEN RETURN 1408 IF SE = 1 OR (J(25) = 62 AND JT = 15) THEN RETURN 1409 IF DW > 0 THEN J(54) = P 1410 IF DW = 1 THEN PRINT "There is a threatening little dwarf in the room with you!": GOTO 1420 1415 IF DW > 1 THEN PRINT "There are"; DW; "threatening little dwarves in the room with you!" 1420 J(42) = P 1430 IF E(5) = 4 THEN RETURN 1450 IF DW > 1 THEN 1460 1455 PRINT "One sharp nasty knife is thrown at you!" 1458 IF E(3) = 2 THEN PRINT "It gets you!": ZP = P: RETURN 1459 PRINT "It misses!": J(119) = P: RETURN 1460 PRINT "2 of them throw knives at you!" 1465 IF E(3) = 2 THEN PRINT "Both of them get you!": ZP = P: RETURN 1470 PRINT "None of them hit you!": J(119) = P: RETURN 1500 PRINT "A sepulchral voice reverberating through the cave, says,"; C$; "Cave closing" 1510 M$ = C1$ + "VOICE1": GOSUB 8900 1520 JT = 0: SC = SC + 25: SE = 1: SV = 1: DI(9, 6) = 520: RETURN 1600 PRINT "The sepulchral voice entones, " + C$ + "The cave is now closed." + CHR$(34) + " As the" 1610 M$ = C1$ + "CLOSED!": GOSUB 8900 1630 SC = SC + 19: CC = 1: SE = 0: GOSUB 9991: STOP 1800 IF P < 8 THEN P = 2: GOTO 80 1810 GOTO 9020 1820 IF P = 33 THEN Q = 35: GOTO 210 1830 GOTO 9020 1900 FOR X = 1 TO 83: IF J(X) <> P THEN 1930 1910 PRINT P$(X) 1915 IF H = 8 THEN GOSUB 9147: GOTO 1930 1920 J(X) = 300: H = H + 1 1921 IF X = 71 AND P = 2 AND PS = 1 THEN PS = 0: M$ = C1$ + "HIDDEN": GOSUB 8900: M$ = "POSTER": NI = 71: GOSUB 8950: J(131) = 2: GOTO 1930 1929 PRINT " Taken." 1930 NEXT X: GOTO 100 2000 REM *GET IT* 2001 IF M$ = "ALL" THEN 1900 2002 GOSUB 9600: IF J(K) < 300 THEN 2007 2003 IF J(K) = 400 THEN 3425 2004 IF J(K) > 300 AND P = PC(J(K) - 300) THEN 2051 2007 IF K = 71 AND PS = 1 AND P = 2 THEN PS = 0: M$ = C1$ + "HIDDEN": GOSUB 8900: M$ = "POSTER": NI = 71: GOSUB 8950: GOTO 2090 2008 IF J(K) = P THEN 2051 2010 IF J(K) = 300 THEN PRINT "You are already carrying it!": GOTO 100 2050 KD = K: K = 0: M$ = "": GOTO 290 2051 IF H = 8 THEN GOSUB 9147: GOTO 100 2052 IF M$ = "BEAR" AND BE = 2 AND CH = 0 THEN BE = 3: M$ = "CONTENTED": NI = 42: GOSUB 8950 2053 IF M$ = "BEAR" AND BE = 1 THEN 9040 2054 IF M$ = "MIRROR" THEN PRINT "It is too far up for you to reach.": GOTO 100 2055 IF M$ = "KNIFE" THEN PRINT "The dwarves' knives vanish as they strike the walls of the cave.": J(49) = 0 2056 IF K > 100 THEN 9070 2057 IF M$ = "BIRD" AND J(23) <> 300 THEN PRINT "You can catch the bird, but you cannot carry it.": GOTO 100 2058 IF K = 79 THEN PRINT "The cloak is stuck tight under the rocks. You'll probably have to": PRINT "yank it out.": GOTO 100 2059 IF M$ = "CAGE" AND J(24) = P THEN J(24) = 300: H = H + 1 2060 IF M$ = "BEAR" AND BE > 1 AND CH = 1 THEN PRINT "The bear is still chained to the wall.": GOTO 100 2062 IF K = 4 AND DD = 1 THEN PRINT BS$: GOTO 100 2063 IF M$ = "AXE" AND BE = 1 AND P = 59 THEN 9080 2064 IF K = 5 AND BE = 1 THEN 2799 2065 IF K = 5 AND CH = 1 THEN PRINT "The chain is still locked.": GOTO 100 2090 H = H + 1: J(K) = 300: PRINT "Taken." 2092 IF K = 52 OR K = 53 THEN DI(60, 2) = 513 2095 IF K < 20 AND P = 2 THEN SC = SC - V(K): JT = JT - 1 2096 IF M$ = "MAGAZINE" AND P = 62 THEN SC = SC - 1 2099 GOTO 100 2100 REM -> DROP 2101 IF J(K) = P THEN PRINT "You aren't carrying it!": GOTO 100 2102 IF J(K) = 300 THEN 2110 2103 IF M$ = "POWDER" AND J(43) = 252 THEN 2115 2109 GOTO 2050 2110 J(K) = P: H = H - 1 2111 IF K = 12 AND J(24) <> P THEN PO = P: M$ = C1$ + "VASEDROP": GOSUB 8900: M$ = "SHARDS": NI = 12: GOSUB 8950: GOTO 100 2112 IF K = 12 AND J(24) = P THEN PRINT "The vase is now resting, delicately, on a velvet pillow.": GOTO 2140 2113 IF K = 3 AND P = 124 THEN J(K) = 0: J(26) = P: PRINT I$(26): GOTO 100 2115 IF M$ = "POWDER" AND CLOTH = 0 THEN PRINT BB$(18) + "cloth bag.": GOTO 100 2117 IF M$ = "POWDER" AND P = 139 AND WET = 0 THEN WET = 1: GOSUB 8900: M$ = "ALT139": DI(139, 1) = 157: GOSUB 8900: GOTO 100 2120 IF M$ = "BIRD" AND CAGE = 0 THEN PRINT "You can't get at the little bird.": GOTO 100 2122 IF M$ = "BIRD" AND P = 23 AND SN = 1 THEN SN = 0: J(31) = 0: GOTO 2180 2125 IF M$ = "BIRD" AND P = 79 AND DD = 1 THEN M$ = C1$ + "FLURRY2": GOSUB 8900: J(19) = 0: GOTO 100 2126 IF M$ = "MAGAZINE" AND P = 62 THEN SC = SC + 1 2127 IF M$ = "BEAR" AND P = 51 AND TR = 1 THEN TR = 0: M$ = C1$ + "LUMBERS": GOSUB 8900: GOTO 100 2128 IF M$ = "CAGE" AND J(48) = 300 THEN J(48) = P: H = H - 1 2130 IF W = 2 THEN PRINT "Dropped." 2131 IF W = 6 THEN PRINT "Thrown." 2132 IF K = 52 OR K = 53 THEN DI(60, 2) = 32 2140 IF K < 16 AND P = 2 THEN SC = SC + V(K): JT = JT + 1 2170 GOTO 100 2180 M$ = C1$ + "FLURRY1": GOSUB 8900: GOTO 100 2200 REM +> THROW 2205 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 2230 IF K < 20 AND (P = 50 OR P = 51) AND TR = 1 THEN J(K) = 0: H = H - 1: PRINT : PRINT "The troll catches your treasure and scurries away out of sight.": TR = 2: GOTO 100 2240 IF M$ = "AXE" THEN 2251 2250 GOTO 2100 2251 IF TR = 1 AND (P = 50 OR P = 51) THEN 2270 2253 IF P = 79 AND DR = 1 THEN 2280 2255 IF P = 23 AND SN = 1 THEN PRINT "Attacking the snake both doesn't work and is very dangerous.": GOTO 80 2257 IF P = 59 AND BE = 1 THEN M$ = C1$ + "AXEMISS": GOSUB 8900: M$ = "AXE": NI = 58: GOSUB 8950: GOTO 2275 2260 IF J(54) = P THEN 2285 2265 PRINT TH$ + "attack.": GOTO 100 2270 M$ = "TROLLAXE": GOSUB 8900 2275 IF J(58) = 300 THEN H = H - 1 2276 J(58) = P: GOTO 100 2280 PRINT "The axe bounces harmlessly off the dragon's thick scales.": GOTO 2275 2285 IF E(2) = 4 THEN PRINT "You attack a little dwarf, but he dodges out of the way.": IF E(1) = 3 THEN DW = DW + 1 2290 DW = DW - 1: IF DW = 0 THEN J(54) = 0 2295 PRINT "You killed a little dwarf. The body vanishes in a cloud of greasy black smoke.": GOTO 80 2300 GOSUB 9600: IF J(K) = P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 2305 IF P = 79 AND DD = 0 THEN PRINT "For crying out loud, the poor thing is already dead!": GOTO 100 2306 IF P = 79 THEN 2360 2310 IF TR = 1 AND (P = 50 OR P = 51) THEN PRINT BB$(8): GOTO 100 2320 IF (J(52) = P OR J(53) = P) AND J(35) <> P THEN PRINT "The shell is very strong and impervious to attack.": GOTO 100 2330 IF J(54) = P THEN PRINT BB$(4): GOTO 100 2340 IF P = 23 AND SN = 1 THEN 2255 2345 IF (J(49) = P OR J(49) = 300) AND M$ = "BIRD" THEN 2390 2350 IF P = 59 AND BE = 1 THEN 9070 2359 GOTO 2265 2360 PRINT WW$: INPUT "", D$: IF D$ = "Y" OR D$ = "YES" THEN 2380 2370 IF D$ = "N" OR D$ = "NO" THEN GOSUB 9000: GOTO 100 2375 GOTO 103 2380 DD = 0: M$ = C1$ + "VANQUISH": GOSUB 8900 2385 M$ = "DRAGON": NI = 30: GOSUB 8950 2388 GOTO 80 2390 IF J(49) = P THEN H = H - 1 2391 J(49) = 0: PRINT "The little bird is now dead. Its body disappears.": GOTO 100 2400 REM -> IN 2410 IF P = 8 AND GA = 1 THEN P = 9: GOTO 80 2415 IF P = 121 OR P = 141 OR P = 161 THEN HEP = P: P = 140: GOTO 80 2416 IF P = 144 AND LK = 0 THEN 3630 2417 IF P = 149 AND SSD = 1 THEN P = 150: GOTO 80 2420 IF P = 183 AND PH = 0 THEN P = 200: GOTO 80 2430 FOR X = 1 TO 7 2435 IF P = EN(X) THEN P = EX(X): INX = 1 2440 NEXT X 2444 IF INX = 1 THEN INX = 0: GOTO 80 2449 GOTO 2490 2450 GOTO 9101 2460 REM -> OUT 2461 IF P = 140 AND HEP < 161 THEN P = HEP + 20: J(95) = P: GOTO 80 2462 IF P = 140 AND HEP = 161 THEN P = 121: J(95) = 121: GOTO 80 2463 IF P = 120 THEN P = 2: GOTO 80 2464 IF P = 38 OR P = 39 THEN P = P - 2: GOTO 80 2465 IF P = 200 THEN P = 183: GOTO 80 2466 IF P = 150 THEN P = 149: GOTO 80 2470 FOR X = 1 TO 7 2475 IF P = EX(X) THEN P = EN(X): INX = 1 2476 NEXT X 2490 M$ = "INFRMOUT": GOSUB 8900: GOTO 80 2500 IF SE = 1 AND P = 47 THEN 2695 2501 IF P = 2 THEN P = 47: GOTO 80 2510 IF P = 47 THEN P = 2: GOTO 80 2590 GOTO 9030 2600 IF SE = 1 AND P = 25 THEN 2695 2601 IF P = 25 THEN P = 2: DW = 0: GOTO 80 2610 IF P = 2 THEN P = 25: GOTO 80 2690 GOTO 9030 2695 M$ = C1$ + "VOICE2": GOSUB 8900: PRINT C$; : M$ = C1$ + "VOICE2A": GOSUB 8900: GOTO 100 2700 REM >> OPEN 2701 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 2702 IF K = 131 THEN ON CI(1) + 1 GOTO 2797, 2798 2703 IF K = 132 AND CAB = 2 THEN CAB = 1: M$ = C1$ + M$: GOSUB 8900: J(109) = P: PRINT I$(109): GOTO 100 2704 IF K = 132 AND CAB = 0 THEN CAB = 1: GOSUB 9000: J(109) = P: GOTO 100 2705 OC = OC + 1: IF OC = 13 THEN 2709 2706 IF K <> (CO(OC)) THEN 2705 2707 IF CI(OC) <> 1 THEN CI(OC) = 1: GOSUB 9000: GOTO 100 2708 IF CI(OC) > 0 THEN 2798 2709 OC = 0: IF K = 0 THEN 2716 2710 IF K = 103 AND P = 63 THEN 2790 2711 IF K = 0 THEN 2716 2713 IF P = 8 OR P = 9 OR P = J(5) THEN 2718 2716 IF J(47) = P OR J(47) = 300 THEN 2750 2717 IF J(52) = P OR J(52) = 300 THEN 2760 2718 IF J(21) = P OR J(21) = 300 THEN 2720 2719 PRINT "You have no keys!": GOTO 100 2720 IF J(5) = P OR J(5) = 300 THEN 2730 2725 IF K = 43 THEN 2770 2729 PRINT TH$ + "lock or unlock.": GOTO 100 2730 IF P = 59 AND BE = 1 THEN 2799 2735 CH = 0: NI = 5: M$ = "CHAIN": GOSUB 8950: PRINT "The chain"; : GOTO 9360 2750 IF J(9) = P OR J(9) = 300 THEN 2755 2753 PRINT "You don't have anything strong enough to open the clam.": GOTO 100 2755 J(28) = J(27): J(27) = 0: J(15) = 72: M$ = C1$ + "PEARL": GOSUB 8900: CLAM$ = "oyster": GOTO 100 2760 M$ = "OYSTER": GOSUB 8900: GOTO 100 2770 GA = 1: PRINT "The grate"; 2775 IF D$ = "UNLOCK" THEN 9360 2780 IF D$ = "OPEN" THEN 9370 2789 PRINT DK$; " to lock or unlock such a thing.": GOTO 100 2790 IF LT = 1 THEN GOSUB 9000 2795 PRINT "The door is extremely rusty and refuses to open.": GOTO 100 2797 PRINT "You don't have the combination.": GOTO 100 2798 PRINT "It's already open.": GOTO 100 2799 M$ = "PASTBEAR": GOSUB 8900: GOTO 100 2800 GOSUB 9600: IF J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 2810 IF K = 22 OR K = 23 OR K = 32 THEN PRINT IG$: GOTO 100 2820 IF M$ = "SNAKE" AND J(24) = 300 THEN J(24) = 0: H = H - 1: PRINT "The snake has now devoured your bird.": GOTO 100 2830 IF K = 101 OR K = 102 OR K = 97 THEN PRINT NH$ + "it wants to eat (except perhaps you).": GOTO 100 2840 IF M$ = "TROLL" THEN M$ = "GLUTTONY": GOSUB 8900: GOTO 100 2850 IF M$ = "DWARF" THEN PRINT "You fool, dwarves eat only coal! Now you've made him *really* mad!": GOTO 100 2860 IF M$ = "BIRD" THEN PRINT "It's not hungry (it's merely pinin' for the fjords). Besides, you have no bird seed.": GOTO 100 2870 IF M$ = "BEAR" THEN 2880 2875 IF K > 0 THEN PRINT NH$; " eat.": GOTO 100 2877 IF P <> 59 THEN 9400 2880 PRINT "What do you want to feed the bear?" 2882 INPUT ""; M$ 2883 K = 0: TL = 0: GOSUB 8500 2884 IF K = 0 AND TL = 0 THEN 6530 2886 PRINT P$(K) 2887 IF K <> 25 THEN 9090 2888 M$ = "SANDWICH": GOSUB 8900: GOTO 80 2895 PRINT NH$ + "to eat.": GOTO 100 2900 GOSUB 9600: IF LEN(M$) = 0 THEN 2910 2905 IF J(K) <> P AND J(K) <> 300 AND J(K) <> 400 AND M$ <> "" THEN 2050 2910 IF P = 17 OR P = 83 THEN 9118 2911 IF P = 50 OR P = 51 THEN 2920 2912 IF P = 181 OR P = 182 THEN 2950 2915 GOTO 9020 2920 IF J(42) = 300 AND TR = 2 THEN TR = 3 2925 IF TR = 1 THEN PRINT "The troll refuses to let you cross.": GOTO 100 2927 IF TR = 3 THEN PRINT "The troll steps out from beneath the bridge and blocks your way.": TR = 1: GOTO 80 2928 IF BR = 0 THEN PRINT "There is no longer any way across the chasm.": GOTO 100 2930 IF J(42) = 300 AND TR <> 1 THEN 2945 2935 IF P = 51 THEN P = 50: GOTO 80 2940 P = 51: GOTO 80 2945 M$ = C1$ + "COLLAPSE": GOSUB 8900: BR = 0: ZP = 50: BE = 0: TR = 0: J(29) = 0: GOTO 9800 2950 IF H > 3 THEN M$ = "BRSHAKES": GOSUB 8900 2955 IF P = 181 THEN P = 182: GOTO 80 2960 P = 181: GOTO 80 3000 REM ----> INVENTORY 3001 H1 = 0: IF H = 0 THEN PRINT "You're not carrying anything.": GOTO 100 3002 PRINT "You are currently holding the following:" 3005 H2 = 0: H3 = 0: H1 = H1 + 1: IF H1 = 84 THEN 3050 3010 IF J(H1) <> 300 THEN 3005 3020 PRINT P$(H1) 3030 H2 = H2 + 1: IF H2 = 13 THEN 3005 3035 IF H1 = CO(H2) AND CI(H2) > 0 THEN PRR = H2 + 300: GOSUB 4750: GOTO 3005 3049 GOTO 3030 3050 IF WE > 0 THEN PRINT : PRINT "You are wearing:" 3055 FOR X = 1 TO 83 3060 IF J(X) = 400 THEN PRINT " "; P$(X) 3070 NEXT X 3075 IF J(44) = 300 THEN PRINT : PRINT FB$ 3080 GOSUB 5850 3090 GOTO 100 3100 IF P = 39 THEN 3120 3110 GOTO 2915 3120 ON PL GOTO 3130, 3140, 3150 3130 PRINT TH$ + "climb. Use 'up' or 'out' to leave the pit.": GOTO 100 3140 PRINT "You have climbed up the plant and out of the pit." 3145 P = 37: GOTO 80 3150 PRINT "You clamber up the plant and scurry through the hole at the top." 3160 P = 41: GOTO 80 3200 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3220 IF M$ = "DOOR" OR (K = 0 AND P = 63) THEN GOSUB 9000: GOTO 100 3230 IF (K = 5 OR K = 43) AND J(16) <> P AND J(16) <> 300 THEN PRINT : PRINT "You have no keys!": GOTO 100 3240 IF K = 5 AND P <> 59 THEN PRINT : PRINT TH$ + "which the chain can be locked.": GOTO 100 3250 IF K = 5 THEN CH = 1: PRINT "The chain is now locked.": I$(5) = "There is a golden chain locked to the wall!": J(5) = 59: H = H - 1: GOTO 100 3260 IF K = 43 THEN GA = 0: PRINT GA$(0): GOTO 100 3270 IF P <> 8 AND P <> 9 AND P <> 63 AND P <> J(5) AND J(5) <> 300 THEN 2729 3290 GOTO 2789 3300 PRINT 3310 IF P > 8 THEN PRINT "I need more detailed instructions to do that.": GOTO 100 3320 M$ = "CAVE": GOSUB 8900: GOTO 100 3330 PRINT "It is beyond your power to do that.": GOTO 100 3350 REM PHUCE 3355 IF P <> 199 THEN 9030 3360 IF PH = 0 THEN PH = 1: M$ = "PHUCE1": GOSUB 8900: GOTO 80 3365 IF PH = 1 THEN PH = 0: M$ = "PHUCE2": GOSUB 8900: GOTO 80 3400 REM WEAR IT! 3405 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3410 IF K = 22 OR K = 74 OR K = 78 OR K = 79 THEN 3425 3415 GOSUB 9220: PRINT DK$; " to wear a "; LC$; "." 3420 LC$ = "": GOTO 100 3425 IF J(K) = 400 THEN PRINT "You are already wearing it!": GOTO 100 3430 IF J(K) = 300 THEN H = H - 1 3435 J(K) = 400: WE = WE + 1 3440 GOSUB 9000: GOTO 100 3450 REM (DIAL) 3455 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3460 IF K = 125 THEN PRINT "You don't have the correct change.": GOTO 100 3470 GOTO 9080 3500 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3505 IF K > 0 AND K <> 32 AND P <> 39 THEN PRINT CN$: GOTO 100 3510 IF WB = 1 AND (J(51) = 39 OR J(51) = 300) THEN 3525 3520 PRINT "I see no water here.": GOTO 100 3525 WB = 0: GOSUB 3560 3530 IF PL = 1 THEN GOSUB 8900: PL = 2: GOTO 3550 3532 IF PL = 2 THEN GOSUB 8900: PL = 3: GOTO 3550 3534 IF PL = 3 THEN GOSUB 8900: PL = 1 3550 GOSUB 3560: NI = 107: GOSUB 8950: GOTO 80 3560 M$ = "PLANT" + RIGHT$(STR$(PL), 1): RETURN 3600 PRINT "Blasting requires dynamite.": GOTO 100 3620 PRINT "I am unsure how you are facing. Use compass points or nearby objects.": GOTO 100 3630 PRINT "The door is tightly shut. There is no apparent way to open it.": GOTO 100 3700 FE = 1: GOSUB 9000: GOTO 100 3710 IF FE = 1 THEN FE = 2: GOSUB 9000: GOTO 100 3715 GOTO 3725 3720 IF FE = 2 THEN FE = 3: GOSUB 9000: GOTO 100 3725 FE = 0: GOSUB 9000: GOTO 100 3730 IF FE = 3 THEN 3750 3740 GOTO 3725 3750 IF J(10) = 42 THEN 9030 3755 IF J(10) = P AND P <> 42 THEN J(10) = 42: GOTO 3785 3760 IF J(10) = 300 AND P <> 42 THEN J(10) = 42: H = H - 1: GOTO 3785 3765 IF J(10) = 0 THEN J(10) = 42: PRINT "Done!": GOTO 100 3770 IF P = 42 AND J(10) <> 42 THEN J(10) = 42: GOTO 3795 3775 IF P = 42 AND J(10) = 300 THEN H = H - 1: GOTO 3795 3785 PRINT "The nest of golden eggs has vanished!": J(10) = 42: GOTO 100 3795 PRINT I$(10): GOTO 100 3800 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3805 IF K > 0 AND K <> 51 AND K <> 81 THEN PRINT "You can't fill that.": GOTO 100 3810 IF J(51) = P OR J(51) = 300 THEN 3830 3820 GOTO 9400 3830 IF WB > 0 THEN PRINT "Your bottle was already full.": GOTO 100 3840 IF P = 38 AND OI = 1 THEN OI = 0: WB = 2: GOTO 3875 3850 IF P = 1 OR P = 4 OR P = 5 OR P = 26 OR P = 44 OR P = 80 THEN 3870 3860 PRINT NH$ + " with which to fill the bottle.": GOTO 100 3870 WB = 1 3875 PRINT "Your bottle is now full of "; BB$(WB + 6) 3880 I$(51) = TB$ + BB$(WB + 8): GOTO 100 3900 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 3905 IF P <> 63 OR (K > 0 AND K <> 103) THEN PRINT 88: GOTO 100 3910 IF WB <> 2 THEN PRINT "I see no oil here.": GOTO 100 3920 IF P <> 63 THEN 2915 3930 WB = 0 3940 M$ = C1$ + "FREEDUP": GOSUB 8900: M$ = "MASSIVE": NI = 103: GOSUB 8950 3950 LT = 1: GOTO 100 4000 IF J(47) <> P AND J(47) <> 300 THEN PRINT "You have no source of light.": GOTO 100 4005 IF W = 36 THEN 4050 4008 IF DM = 1 THEN LS = 1 4010 IF DM = 0 THEN LS = 2 4020 PRINT "Your lamp is now on."; LS 4030 IF P > 12 THEN 80 4040 GOTO 100 4050 LS = 0 4060 PRINT "Your lamp is now off.": IF P > 12 AND P <> 226 AND P <> 193 THEN PRINT BB$(6) 4090 GOTO 100 4100 REM ---PULL<---- 4102 IF M$ = "CHAIN" AND P = 153 THEN 4170 4105 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 4110 IF P = 47 AND CB = 0 THEN CB = 1: GOSUB 9000: GOTO 100 4115 IF P = 47 AND CB = 1 THEN CB = 0: GOSUB 9000: GOTO 100 4130 GOTO 9030 4170 IF DUM = 1 THEN DUM = 0: GOTO 4180 4175 DUM = 1 4180 PRINT "The dumbwaiter slides smoothly "; : ON DUM + 1 GOTO 4190, 4191 4190 PRINT "out of sight.": GOTO 100 4191 PRINT "into view.": GOTO 100 4200 GOSUB 9600 4210 IF K = 50 THEN 3300 4220 IF J(K) = P OR J(K) = 300 THEN PRINT "I believe what you want is right here with you.": GOTO 100 4250 M$ = "FIND": GOSUB 8900: GOTO 100 4300 IF WB = 1 AND (J(21) = P OR J(21) = 300) THEN WB = 0: PRINT : PRINT "The bottle of water is now empty.": GOTO 100 4310 IF P = 1 OR P = 4 OR P = 5 OR P = 26 OR P = 44 OR P = 80 THEN M$ = "DRINK": GOSUB 8900: GOTO 100 4320 IF M$ = "OIL" THEN 9040 4390 PRINT TH$ + "drink.": GOTO 100 4400 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 4410 IF P = 50 OR P = 51 OR P = 17 OR P = 83 THEN 4430 4420 GOTO 2915 4430 IF ((P = 17 OR P = 83) AND CB = 1) OR ((P = 50 OR P = 51) AND BR = 1) THEN PRINT : PRINT "I respectfully request you go across the bridge instead of jumping.": GOTO 100 4440 PRINT "You didn't make it." 4450 ZP = P: GOTO 9800 4500 GOSUB 9600: IF M$ = "GAUGE" THEN K = 127 4505 IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 4510 IF K = 55 OR J(55) = P OR J(55) = 300 THEN 4569 4520 IF K = 33 OR (K = 0 AND P = 43) THEN PRINT C$ + "Congratulations on bringing light into the Dark-Room!!" + C$: GOTO 100 4525 IF K = 127 THEN 4570 4530 IF K = 126 THEN M$ = "BILBOARD": GOSUB 8900: GOTO 100 4540 IF K > 69 AND K < 77 THEN GOSUB 8900: GOTO 100 4560 IF K = 0 THEN PRINT "READ what?": GOTO 100 4565 GOTO 9060 4569 PRINT "I'm afraid the magazine is written in dwarvish.": GOTO 100 4570 PRINT "The meter reads "; : IF ME = 0 THEN PRINT "zero.": GOTO 100 4575 PRINT C$; RIGHT$(STR$(ME), 1); C$; ".": GOTO 100 4600 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 4605 IF K = 63 OR (K = 0 AND (J(63) = P OR J(63) = 300)) THEN M$ = C1$ + "MUSHROOM": GOSUB 8900: J(63) = 0: GOTO 100 4610 IF K = 50 OR (K = 0 AND (J(50) = P OR J(50) = 300)) THEN 4640 4620 IF K = 0 AND J(50 <> P AND J(50) <> 300) THEN 2895 4630 IF K <> 50 THEN PRINT "I think I just lost my appetite.": GOTO 100 4640 IF J(50) = 300 THEN H = H - 1 4650 J(50) = 0: PRINT : PRINT "Thank you, that was delicious!": GOTO 100 4700 IF P = 25 THEN P = 11: GOTO 80 4703 IF P = 43 THEN P = 11: GOTO 80 4706 IF P = 24 AND H = 0 THEN P = 11: GOTO 80 4708 IF P = 24 AND H > 1 OR (H = 1 AND J(8) <> 300) THEN 4725 4710 IF P = 11 THEN 4713 4712 GOTO 2915 4713 IF J(8) = 300 THEN H = H - 1: J(8) = 11 4720 P = 25: GOTO 80 4725 M$ = "SOMETHIN": GOSUB 8900: AR = 4: GOTO 80 4750 FOR X = 1 TO 97 4755 IF J(X) = PRR THEN H3 = X 4760 NEXT X: IF H3 = 0 THEN RETURN 4770 GOTO 4860 4800 REM --LOOK-- 4801 GOSUB 9600: IF J(K3) <> P AND J(K3) <> 300 AND J(K3) <> 400 THEN KD = K3: M$ = R$(1): GOTO 290 4802 IF M$ = "" THEN 4881 4810 IF M$ = "FOR" THEN M$ = R$(1): GOTO 4200 4815 IF M$ = "AT" THEN M$ = R$(1): GOTO 4500 4816 IF M$ <> "IN" THEN 6500 4820 FOR X = 1 TO 12: IF R$(1) = K$(CO(X)) THEN K2 = X 4822 IF J(CO(X)) = P OR J(CO(X)) = 300 THEN K = X 4825 NEXT X: PRINT K2, CI(K2) 4830 IF K2 = 0 THEN 6500 4835 IF CI(K2) > 0 THEN 4840 4836 PRINT "It's still closed.": GOTO 100 4840 PRR = K2 + 300 4850 FOR X = 1 TO 99 4855 IF J(X) = PRR THEN SF = X 4857 NEXT X: IF SF > 0 THEN GOSUB 4860: GOTO 100 4859 PRINT "There's nothing inside.": GOTO 100 4860 PRINT "It contains:" 4870 FOR X = 1 TO 97 4873 IF X = 51 AND H2 = 7 AND CI(7) > 0 THEN PRINT " "; WB$(WB): GOTO 4895 4875 IF J(X) <> PRR THEN 4895 4880 PRINT " " + P$(X) 4895 NEXT X: RETURN 4881 IF BF = 1 THEN 4884 4882 M$ = "SORRY": GOSUB 8900: LD = 1 4884 GOSUB 1100 4885 GOTO 80 4890 BF = 1: PRINT "Okay, from now on I'll only describe a place in full the first time you come to it. To get the full description, say, 'LOOK'" 4899 GOTO 100 4900 REM CLICK 4905 IF J(78) <> 300 THEN 4940 4910 IF P = 178 THEN P = 194: GOTO 80 4915 IF P = 194 THEN P = 178: GOTO 80 4920 GOTO 9030 4940 PRINT "I am not sure what you are trying to do." 4945 GOTO 100 4950 M$ = "STOP": GOSUB 8900: GOTO 100 4960 PRINT "Using"; M; "turns, you scored"; SC; "points out of a possible 751.": GOTO 100 5000 REM *YANK* 5003 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 5010 IF K = 79 AND CLO = 0 THEN CLO = 1: J(79) = 300: NI = 79: GOSUB 8950: M$ = C1$ + "WUMPWAKE": GOSUB 8900: WUMP = M: GOTO 100 5090 GOTO 9020 5200 REM ///SWEEP 5205 IF J(59) <> P AND J(59) <> 300 THEN 9080 5210 IF P <> 31 OR (P = 31 AND BD = 0) THEN 5240 5220 M$ = "DUSTROCK": GOSUB 8900: BD = 0: GOTO 100 5240 PRINT "Enough dusting, already! You're making me sneeze.": GOTO 100 5300 IF P = 2 THEN 5310 5305 GOTO 5320 5310 IF PS = 0 THEN 5330 5320 PRINT "I don't understand the word "; D$: GOTO 100 5330 IF W = 72 AND CL = 2 THEN PRINT "The safe door smoothly swings open.": CI(1) = 1: CL = 0: GOTO 100 5340 GOSUB 9010 5345 IF W = 70 THEN CL = 1 5350 IF W = 71 AND CL = 1 THEN CL = 2 5399 GOTO 100 5400 REM *** F N O R D *** 5410 IF P = 2 THEN P = 183: GOTO 80 5413 IF P = 183 THEN P = 2: GOTO 80 5420 IF P = 149 THEN P = 130: GOTO 80 5430 IF P = 130 AND LK = 1 THEN P = 149: GOTO 80 5440 IF P = 130 AND LK = 0 THEN M$ = "CHUCKLE": GOSUB 8900: GOTO 80 5490 GOTO 9030 5500 REM -> BLOW 5502 IF M$ = "" THEN PRINT "You are now out of breath.": GOTO 100 5505 GOSUB 9600: IF J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 5510 IF P = 27 AND BH = 0 THEN BH = 1: M$ = C1$ + "HORN": GOSUB 8900: M$ = "RMS\ALT27": GOSUB 8900: DI(27, 1) = 172: GOTO 100 5560 IF (P > 8 AND P < 120) OR P = 140 OR (P > 144 AND P < 154) OR P > 162 THEN 5580 5570 PRINT "The blast of the horn echoes throughout hill and dale.": GOTO 100 5580 PRINT "The chamber reverberates to the blast of the horn." 5581 PRINT "(Satchmo you ain't!)": GOTO 100 5600 REM >>> PLAY PLAY PLAY 5605 IF M$ = "HORN" THEN 5505 5610 IF M$ = "LYRE" THEN PRINT "The air is filled with beautiful music.": GOTO 100 5620 IF M$ = "PIANO" THEN 5640 5630 IF M$ = "FLUTE" AND P <> 2 THEN PRINT "Sounds good. Are you in training to be the pied piper, or what?": GOTO 100 5639 GOTO 100 5640 N$ = "CASABLNC.TXT" 5650 OPEN N$ FOR INPUT AS #1 5655 INPUT #1, PL$(1): INPUT #1, PL$(2) 5659 CLOSE #1 5660 PLAY PL$(1): PLAY PL$(2) 5670 PRINT "Ahh, stroke them ivories! Play it, Sam.": GOTO 100 5700 REM PUSH 5701 GOSUB 9600: IF K > 0 AND J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 5705 IF M$ = "BUTTON" AND P = 140 THEN HB = HB + 1: GOTO 5780 5706 IF M$ = "BUTTON" AND P = 163 THEN PRINT "Which button do you want to push?": GOTO 100 5707 IF R$(1) = "BUTTON" THEN 5750 5710 IF M$ = "TILE" AND P = 149 THEN PRINT "Which tile do you want to push?": GOTO 100 5712 GOSUB 9150 5713 IF R$(1) = "TILE" THEN 5730 5720 GOTO 100 5730 REM ----->>> STEEL DOOR ROOM 149 ((TILES)) 5731 FOR X = 1 TO 9 5732 IF M$ = TILE$(X) THEN PTI = X 5733 NEXT X 5734 IF PTI < 4 THEN 9060 5735 IF PTJ = 0 AND M$ = "FUSCHIA" THEN 5747 5736 IF PTJ = 1 AND M$ = "NACRE" THEN 5747 5737 IF PTJ = 2 AND M$ = "ORANGE" THEN 5747 5738 IF PTJ = 3 AND M$ = "RED" THEN 5747 5739 IF PTJ = 4 AND M$ = "DUN" THEN 5748 5740 LGT = LGT + 1: ON LGT + 1 GOTO 9205, 9210 5747 PTJ = PTJ + 1: PRINT "Done.": GOTO 100 5748 PRINT "steel door with inlaid tiles" 5749 SSD = 1: M$ = C1$ + "INLAID": GOSUB 8900: GOTO 100 5750 REM ----->>> ENGINEERING ROOM 163 <BUTTONS> 5751 GOSUB 8500 5760 IF TL > 4 THEN 9060 5761 ON TL GOTO 5770, 5772, 5774, 5776 5770 IF RML = 0 THEN RML = 1: GOTO 5779 5771 PRINT "The room lights are already on.": GOTO 100 5772 IF HEV = 0 THEN 5779 5773 PRINT "The sound of the engine has ceased.": HEV = 0: GOTO 100 5774 IF RML = 1 THEN RML = 0: GOTO 5779 5775 PRINT "The room lights were already off.": GOTO 100 5776 IF HEV = 1 THEN 5779 5777 HEV = 1: M$ = "ENGSTART": GOSUB 8900: GOTO 100 5779 GOSUB 9010: GOTO 100 5780 REM ----->>> HELICOPTER ROOM 140 <BUTTON> 5781 IF HB > 1 THEN 5785 5782 M$ = "COPTER": GOSUB 8900 5784 GOTO 5790 5785 PRINT : PRINT "Rattle, roar, shake, etc...." 5790 IF HEP = 121 THEN HXP = 141: GOTO 100 5793 IF HEP = 141 THEN HXP = 161: GOTO 100 5796 IF HEP = 161 THEN HXP = 121: GOTO 100 5799 GOTO 100 5800 REM ((((HEALTH)))) 5810 IF HLTH = 100 AND E(1) < 5 THEN PRINT "You are fit as a fiddle.": GOTO 100 5815 IF HLTH = 100 THEN PRINT "You are in perfect health.": GOTO 100 5820 PRINT "Your health rating is "; HLTH; " out of a possible 100." 5830 IF HLTH > 80 THEN PRINT "You are a bit off top form, but nothing to worry about.": GOTO 100 5835 IF INT(HLTH / 20) < HLTH / 20 THEN PRINT HLTH$(INT(HLTH / 20) + 1): GOTO 100 5840 PRINT HLTH$(INT(HLTH / 20)) 5849 GOTO 100 5850 REM *BOTTOM HEALTH RATINGS 5852 IF (J(76) <> P AND J(76) <> 300) OR HLTH = 100 THEN 5859 5854 IF E(1) <> 5 THEN PRINT H2$(INT(HLTH / 20)) 5859 RETURN 5860 MW = M - WUMP 5865 IF MW = 9 THEN 9199 5870 IF MW < 3 THEN PRINT WUMP$(1): RETURN 5872 IF MW < 5 THEN PRINT WUMP$(2): RETURN 5874 IF MW < 7 THEN PRINT WUMP$(3): RETURN 5876 PRINT WUMP$(4) 5890 RETURN 5900 REM +++ INSERT 5905 GOSUB 9600: IF J(K) <> P AND J(K) <> 300 AND J(K) <> 400 THEN 2050 5910 IF R$(1) = "" THEN PRINT "Where do you want to insert the card?": GOTO 5950 5920 IF R$(1) <> "IN" THEN 9020 5930 IF R$(2) = "SLOT" AND P = 144 THEN 5980 5950 INPUT IC$ 5960 IF IC$ = "IN SLOT" THEN 5980 5970 GOTO 4940 5980 LK = 1: J(73) = 0: H = H - 1 5985 M$ = "1TIMERS\SLOT": GOSUB 8900: GOTO 100 6000 PRINT "Do you really want to quit now?": INPUT "", D$ 6020 IF D$ = "Y" OR D$ = "YES" THEN GOSUB 9000: GOTO 9985 6030 IF D$ = "N" OR D$ = "NO" THEN GOSUB 9000: GOTO 100 6040 PRINT "Please answer the question first.": GOTO 6000 6100 REM CRAWL HOURS 6110 PRINT "Which way?": GOTO 100 6120 M$ = "HOURS": GOSUB 8900: GOTO 100 6500 PRINT : DN = INT(4 * RND(1) + 1) 6510 ON DN GOTO 6530, 6540, 6550, 6560 6530 PRINT "I don't understand the word "; M$: GOTO 100 6540 PRINT "I don't understand that!": RETURN 6550 PRINT "What?": RETURN 6560 PRINT "Huh?": RETURN 6570 GOTO 9060 6600 PRINT 6610 IF P = 36 THEN P = 38: GOTO 100 6620 IF P = 37 THEN P = 39: GOTO 100 6630 IF P = 66 THEN P = 80: GOTO 100 6650 REM GROTTO 6655 IF P = 127 THEN P = 199: GOTO 80 6659 GOTO 9020 6800 IF P = 65 OR P = 30 OR P = 71 OR P = 25 THEN P = 25: GOTO 80 6890 GOTO 9020 6900 REM *DIG* 6910 IF J(72) = P OR J(72) = 300 THEN 6930 6920 PRINT "Digging without a shovel is quite impractical. Even with a shovel progress is unlikely.": GOTO 100 6930 IF P <> 188 THEN 6950 6935 BG = BG + 1: IF BG > 3 THEN 6980 6940 ON BG GOTO 6960, 6970, 6980 6950 PRINT "The ground here is not suitable for digging.": GOTO 100 6960 PRINT "You are standing up to your knees in bat guano.": GOTO 100 6970 PRINT "You are now up to your hips in bat guano.": GOTO 100 6980 PRINT "You've got bat turds hanging off your ears, wimp!" 6982 PRINT "This isn't getting you anywhere. Best try someplace else.": GOTO 100 7000 M$ = "MIST": GOSUB 8900: GOTO 100 7010 M$ = "TREES": GOSUB 8900: GOTO 100 7700 M$ = C1$ + "SUSPEND": GOSUB 8900 7730 PRINT : INPUT ""; SA$ 7740 IF SA$ = "Y" OR SA$ = "YES" THEN 7800 7750 IF SA$ = "N" OR SA$ = "NO" THEN GOSUB 9000: GOTO 100 7760 PRINT PL$: GOTO 7730 7800 GOSUB 9000: M$ = "1TIMERS\SAVE": GOSUB 8900 7810 INPUT ""; SA$ 7820 IF LEN(SA$) > 6 THEN SA$ = LEFT$(SA$, 6) 7840 SA$ = "C:\ADV751\GAMES\" + SA$ 7850 OPEN SA$ FOR OUTPUT AS #1 7860 PRINT #1, SC, M, LA, LS, P, BR, TR, PL, BE, WB, SN, DD, OI, WI, H, D, MD 7865 PRINT #1, SE, CC, SV, CH, DE, PO, ZP, L1, DM, BD 7870 FOR X = 1 TO 132: PRINT #1, J(X): NEXT X 7880 CLOSE #1 7890 END 7900 PRINT "Do you want to restore a previously saved game?" 7920 PRINT : INPUT "", SA$ 7930 IF SA$ = "Y" OR SA$ = "YES" THEN 7960 7940 GOSUB 9000: GOTO 100 7960 PRINT "Enter the name of the file:" 7970 INPUT ""; SA$ 7975 SA$ = "C:\ADV751\GAMES\" + SA$ 7980 OPEN SA$ FOR INPUT AS #1 7981 INPUT #1, SC, M, LA, LS, P, BR, TR, PL, BE, WB, SN, DD, OI, WI, H, D, MD 7982 INPUT #1, SE, CC, SV, CH, DE, PO, ZP, L1, DM, BD 7987 FOR X = 1 TO 132: INPUT #1, J(X): NEXT X 7988 CLOSE #1 7990 GOTO 80 8000 REM HINTS!!! 8010 AB = INT(9 * RND(1) + 1) 8015 IF AB <> 4 AND AR > 1 THEN 1099 8020 IF AB <> 4 THEN 100 8030 M$ = "HINTS\ASK" + MID$(STR$(AR), 2, LEN(STR$(AR))): GOSUB 8900 8200 INPUT H$ 8210 PRINT : IF H$ = "Y" OR H$ = "YES" THEN 8300 8220 IF H$ = "N" OR H$ = "NO" THEN GOSUB 9000: GOTO 100 8250 PRINT PL$: GOTO 8000 8300 PRINT : PRINT "I am prepared to give you a hint, but it will cost you 2 points." 8310 PRINT "Do you want the hint?": INPUT "", H$ 8320 IF H$ = "Y" OR H$ = "YES" THEN 8400 8330 IF H$ = "N" OR H$ = "NO" THEN AR = 0: GOSUB 9000: GOTO 100 8340 PRINT : PRINT PL$: GOTO 8300 8400 PRINT : SC = SC - 2 8405 IF J(16) <> P AND J(16) <> 300 THEN M$ = "HINTS\ALT1": GOSUB 8900: GOTO 8420 8410 M$ = "HINTS\HINT" + RIGHT$(STR$(AR), 1): GOSUB 8900 8420 AR = 0: GOTO 100 8500 REM ---))) SCAN THE M$!!! 8510 FOR X = 1 TO 132 8520 IF M$ = K$(X) THEN K = X 8530 NEXT X 8540 FOR X = 1 TO 12 8550 IF M$ = TILE$(X) THEN TL = X 8560 NEXT X 8590 RETURN 8900 REM *READ SUBROUTINE* 8905 NN = 0 8910 TX$ = M$ + ".TXT" 8912 OPEN TX$ FOR INPUT AS #1 8914 NN = NN + 1 8916 INPUT #1, TX$(NN) 8918 IF TX$(NN) = "//" THEN NN2 = NN: GOTO 8925 8920 GOTO 8914 8925 CLOSE #1 8930 FOR X = 1 TO NN2 - 1 8932 IF TX$(X) = "รป" THEN PRINT "<Enter> for next page >"; : INPUT ""; TXX$: GOTO 8938 8936 PRINT TX$(X) 8938 NEXT X 8940 RETURN 8950 REM ^^^READ CHANGED STRINGS SUBROUTINE^^^ 8955 TC$ = "C:\ADV751\CHANGE\" + M$ 8960 OPEN TC$ FOR INPUT AS #1 8965 INPUT #1, I$(NI) 8967 IF NI = 30 THEN INPUT #1, I$(4) 8969 CLOSE #1 8970 RETURN 9000 PRINT : PRINT "Ok": RETURN 9005 PRINT DK$; ".": GOTO 100 9010 PRINT C$ + "Click." + C$: RETURN 9020 PRINT DK$; " to apply that word here.": GOTO 80 9030 PRINT "Nothing happens.": GOTO 100 9040 PRINT "Don't be ridiculous!": GOTO 100 9050 PRINT "Interesting. How?": GOTO 100 9060 PRINT "I think you are a little confused!": GOTO 100 9070 PRINT "You can't be serious!": GOTO 100 9080 PRINT "I'm game! Would you care to explain how?": GOTO 100 9090 PRINT "Get serious, you bozo!": GOTO 100 9100 REM RESTRICTIONS 9101 PRINT "You can't go through a locked steel grate!": GOTO 80 9102 PRINT "You don't fit through a 2-inch slit!": GOTO 80 9103 PRINT "The ledge drops off into a sheer cliff. You can't climb down.": GOTO 100 9104 PRINT "You can't fit through a six-inch door!": GOTO 80 9105 PRINT "The crack is far too small for you to follow.": GOTO 80 9106 PRINT "How? Through solid rock?": GOTO 80 9107 PRINT "The path in that direction is too steep. You can't proceed.": GOTO 80 9108 PRINT "You can't swim. You'd best go by boat.": GOTO 80 9109 PRINT "The tunnel is completely flooded. You can't proceed.": GOTO 80 9110 PRINT "You have stumbled blindly through the trackless muck.": GOTO 80 9111 PRINT C$ + "North" + C$; " "; : M$ = "NORTH": GOSUB 8900: GOTO 80 9112 PRINT "The cliff is unscalable.": GOTO 80 9113 PRINT "You can't fit this five-foot "; CLAM$; " through that little passage!": P = 60: GOTO 100 9116 PRINT "The bramblebush is too thick and thorny to penetrate.": GOTO 80 9117 PRINT "The dog won't let you pass.": GOTO 80 9118 IF CB <> 1 THEN PRINT "There is no way across the fissure.": GOTO 80 9119 IF P = 17 THEN P = 83: GOTO 80 9120 P = 17: GOTO 80 9121 M$ = "FNORD!": GOSUB 8900: P = 130: GOTO 80 9122 IF E(8) = 3 THEN P = 209: GOTO 80 9123 M$ = "CHUTE" + RIGHT$(STR$(E(8)), 1): GOSUB 8900: GOTO 80 9133 PRINT "You can't get by the snake.": GOTO 80 9147 PRINT "It's too heavy. You'll have to drop something first.": RETURN 9150 REM >> SPLIT THE M$! 9152 FOR X = 1 TO LEN(M$) 9153 IF MID$(M$, X, 1) = " " THEN SM = SM + 1: Z(SM) = X 9154 NEXT X 9155 Z(SM + 1) = X 9157 FOR W = 1 TO SM 9160 FOR X = Z(W) + 1 TO Z(W + 1) - 1 9170 R$(W) = R$(W) + MID$(M$, X, 1) 9175 NEXT X 9179 NEXT W 9180 M$ = LEFT$(M$, Z(1) - 1): RETURN 9190 IF H > 0 THEN M$ = "TUNNEL": GOSUB 8900: GOTO 80 9192 P = 12: GOTO 80 9199 PRINT C$; "Chomp, chomp."; C$; " Crunch! Chew! Slurp! Smack! Yum!!": GOTO 9800 9200 COLOR 10: PRINT "Above the door, a green light is shining.": COLOR 7: GOTO 9215 9205 COLOR 14: PRINT "Above the door, a yellow light is shining.": COLOR 7: GOTO 9215 9210 COLOR 12: PRINT "Above the door, a "; : COLOR 28: PRINT "red light is flashing!": COLOR 7 9215 PRINT "The stainless steel door"; : ON SSD + 1 GOTO 9380, 9390 9220 FOR X = 1 TO LEN(M$) 9222 LC$ = LC$ + CHR$(ASC(MID$(M$, X, 1)) + 32) 9224 NEXT X 9229 RETURN 9300 REM OPEN & SHUT 9360 PRINT " is now unlocked.": GOTO 100 9370 PRINT " is open.": GOTO 100 9380 PRINT " is locked.": GOTO 100 9390 PRINT " is unlocked.": GOTO 100 9400 PRINT : PRINT D$ + " what?": GOTO 100 9500 REM CRAWLERS..... 9510 IF P = 62 AND D$ = "W" THEN 9550 9530 PRINT "You have crawled around in some little holes and wound up" 9540 PRINT "back in the main passage.": GOTO 80 9550 WI = 8: M$ = "CAVEIN-1": GOSUB 8900 9580 GOTO 80 9600 FOR X = 1 TO 132 9603 IF M$ = K$(X) THEN K = X 9604 IF R$(1) = K$(X) THEN K = X: K3 = X 9607 NEXT X 9610 FOR X = 1 TO 12 9613 IF M$ = TILE$(X) THEN TL = X 9616 NEXT X 9620 IF LEN(M$) = 0 THEN K = 0 9630 IF K = 0 AND TL = 0 AND LEN(M$) > 0 THEN 6500 9690 RETURN 9800 FOR X = 1 TO 99 9810 IF J(X) = 300 THEN J(X) = ZP 9820 NEXT X 9830 J(47) = 1: H = 0: DE = DE + 1 9840 P = 2 9850 IF SE = 1 THEN 9905 9860 PRINT : ON DE GOTO 9910, 9920, 9930 9905 M$ = "1TIMERS\DEATH0": GOSUB 8900: GOTO 9985 9910 M$ = "1TIMERS\DEATH1": GOSUB 8900: GOTO 9940 9920 M$ = "1TIMERS\DEATH2": GOSUB 8900: GOTO 9940 9930 M$ = "1TIMERS\DEATH3": GOSUB 8900: GOTO 9940 9940 ZP = 0: PRINT : INPUT "", QU$ 9950 IF QU$ = "N" OR QU$ = "NO" THEN GOSUB 9000: GOTO 9985 9955 IF QU$ = "Y" OR QU$ = "YES" THEN ON DE GOTO 9960, 9970, 9980 9956 PRINT : PRINT PL$: GOTO 9840 9960 PRINT : M$ = "1TIMERS\POOF1": GOSUB 8900: GOTO 80 9970 PRINT : M$ = "1TIMERS\POOF2": GOSUB 8900: GOTO 80 9980 PRINT : PRINT "Okay, you're so smart, try it yourself! I'm leaving!" 9985 GOSUB 9991 9989 RUN "C:\ADV751\QUITS" 9990 END 9991 SCM$ = "SCM" 9992 OPEN SCM$ FOR OUTPUT AS #1 9993 PRINT #1, SC, M 9994 CLOSE #1 9995 RETURN 10000 REM --- SINGLE DESCRIPTIONS (A$) 10068 DATA "in a maze of little twisty passages, all alike." 10069 DATA "in a maze of twisty little passages, all different." 10071 DATA "in a jumble of rock, with cracks everywhere." 10076 DATA "in Bedquilt, a long east/west passage with holes everywhere. To explore at random select north, south, up or down." 10080 DATA "at the bottom of a small pit with a little stream, which enters and exits through tiny slits." 10081 DATA "in a long sloping corridor with ragged sharp walls." 10082 DATA "in a large low room. Crawls lead N, NE and SW." 10224 DATA "You are in the upper passage, a long level E/W tunnel." 10229 DATA "You are in a sloping muddy defile, next to a tumbling brook." 10236 DATA "You are at the foot of the Altar, an immense, broad stalagmite." 10237 DATA "You're at the east portal of the Gothic Cathedral." 10238 DATA "You're at the west portal of the Gothic Cathedral." 10239 DATA "You are on a narrow and treacherous ledge, which rises almost vertically to the east." 10240 DATA "You are at the intersection of two long tunnels. One goes NW, the other NE." 21000 REM ----- TREASURES / UTILITIES (I$) 21001 DATA "There is a large, sparkling nugget of gold here!" 21010 DATA "There is a large nest here, full of golden eggs!" 21011 DATA "There is a platinum pyramid here, 8 inches on a side!" 21012 DATA "There is a delicate, precious ming vase here!" 21024 DATA "Deep within the brambles is growing a perfect, blood-red rose!" 21045 DATA "A yellow pill-shaped tablet, as large as a doughnut, lies nearby." 21062 DATA "Nearby, a strange, greenish stone is glowing brightly." 21065 DATA "There is a heavy, grey metal cannister here." 21072 DATA "There is a dusty, leather-bound volume here." 21076 DATA "There is some soiled paper nearby." 21077 DATA "A delicate silver flute is lying nearby." 21078 DATA "There is a pair of ruby slippers here." 21079 DATA "A lovely velvet cloak lies partially buried under a pile of loose rocks." 21080 DATA "There is a large cloth bag lying nearby." 21081 DATA "There is an empty oaken cask here." 21082 DATA "There is a small matchbox here." 21083 DATA "There is a wax candle here." 21084 DATA "There is a match here." 21085 DATA "There are two matches here." 21086 DATA "There are three matches here." 21087 DATA "87" 21088 DATA "88" 21089 DATA "89" 21090 DATA "90" 21091 DATA "91" 21092 DATA "92" 21093 DATA "93" 21094 DATA "94" 21095 DATA "Not far away is a helicopter. Its engine is idling slowly." 21096 DATA "There is a small wooden boat here." 21097 DATA "In the corner, a Wumpus is sleping peacefully." 21098 DATA "A hideous black dog bares his teeth and growls at your approach." 21099 DATA "There is a ferocious cave bear eying you from the far end of the room!" 21100 DATA "Several jac-booted orks are standing guard around the aircraft." 21101 DATA "A huge green fierce snake bars the way!" 21102 DATA "A huge green fierce dragon bars the way!" 21103 DATA "The way north is barred by a massive, rusty iron door." 21104 DATA "A massive stone tablet embedded in the wall reads," 21105 DATA "There is a message scrawled in the dust in a flowery script, reading," 21106 DATA "There is a massive vending machine here. The instructions on it read:" 21107 DATA "There is a tiny little plant in the pit, murmuring, 'Water, water..." 21108 DATA "The shadowy figure seems to be trying to attract your attention." 21109 DATA "The dumbwaiter is at this level." 22010 REM INITIAL TREASURE LOCATIONS (J) [1-44] (20 PER LINE) 22011 DATA 16,0,67,79,59,54,64,11,44,42,43,35,200,0,0,65,83,185,133,145 22012 DATA 193,171,165,237,176,159,208,0,0,0,0,0,0,0,0,0,0,0,0,0 22013 DATA 0,0,0,204 22020 REM INITIAL UTILITY LOCATIONS (J) [45-100] (20 PER LINE) 22021 DATA 120,120,2,10,13,120,120,60,0,34,61,0,304,0,187,2,151,189,123,127 22022 DATA 88,188,152,304,131,146,2,301,183,150,310,302,184,178,180,8,203,2,216,308 22023 DATA 308,308,0,0,0,0,0,0,0,0,121,199,180,137,59,121 22030 REM INITIAL IMMOVABLE FEATURE LOCATIONS [101-132] (20 PER LINE) 22031 DATA 23,79,63,43,295,295,39,30,0,17,17,0,50,8,34,34,35,0,0,12 22032 DATA 0,140,47,48,38,122,163,200,208,184,0,153 23000 REM ------- TREASURES (K$) [1-44] (10 PER LINE) 23001 DATA GOLD,BARS,COINS,RUG,CHAIN,SPICES,JEWELRY,EMERALD,TRIDENT,NEST 23002 DATA PYRAMID,VASE,DIAMONDS,CHEST,PEARL,LYRE,HORN,SAPPHIRE,FLOWERS,TAPESTRY 23003 DATA SPHERE,CROWN,INGOT,ROSE,CHALICE,MARBLE,SWORD,X,X,X 23004 DATA X,X,X,X,X,X,X,X,X,X 23005 DATA X,X,X,WINE 23010 REM ------- UTILITIES (K$) [45-100] (10 PER LINE) 23011 DATA PILL,KEYS,LAMP,CAGE,BIRD,FOOD,BOTTLE,CLAM,OYSTER,PILLOW 23012 DATA MAGAZINE,BATTERIES,POWDER,AXE,BROOM,SACK,KNAPSACK,STONE,MUSHROOMS,POLE 23013 DATA CANNISTER,SHOVEL,CLAY,ROPE,BOX,LEAFLET,POSTER,BOOK,CARD,SHIELD 23014 DATA DOCUMENT,PAPER,FLUTE,SLIPPERS,CLOAK,BAG,CASK,MATCHBOX,CANDLE,MATCH 23015 DATA MATCH,MATCH,X,X,X,X,X,X,X,X 23016 DATA HELICOPTER,BOAT,WUMPUS,DOG,BEAR,ORKS 23030 REM ------- PERM FEATURES (K$) [101-132] (10 PER LINE) 23031 DATA SNAKE,DRAGON,DOOR,TABLET,MESSAGE,MACHINE,PLANT,FIGURE,DUMBWAITER,BRIDGE 23032 DATA FISSURE,DWARF,TROLL,GRATE,CARPET,MOSS,DRAWINGS,PIRATE,KNIFE,MIRROR 23033 DATA CAVE,BUTTON,LEVER,CHUTE,OIL,BILLBOARD,METER,PHONE,ANVIL,PIANO 23034 DATA SAFE,CABINET 24000 REM *** COMMANDS (W$) (10 PER LINE) 24001 DATA GET,DROP,CARRY,TAKE,INVENTORY,THROW,KILL,FEED,LOCK,OPEN 24011 DATA UNLOCK,FIND,PULL,LOOK,BRIEF,XYZZY,PLUGH,IN,ENTER,OUT 24021 DATA EXIT,CROSS,WATER,OIL,CLOSE,READ,DRINK,EAT,CLIMB,FILL 24031 DATA FEE,FIE,FOE,FOO,LIGHT,OFF,JUMP,RIGHT,LEFT,PLOVER 24041 DATA CAVE,BREAK,BLAST,PIT,ROOM,QUIT,MIST,TREES,Y2,SAVE 24051 DATA RESUME,DIG,OFFICE,WALL,TERSE,STOP,SCORE,BLOW,N,S 24061 DATA E,W,D,U,NE,NW,SE,SW,I,7 24071 DATA 22,34,PLAY,PUSH,PRESS,FNORD,DIAGNOSE,HEALTH,INSERT,CLICK 24081 DATA WEAR,PHUCE,DIAL,ANSWER,YANK,GROTTO,SWEEP,CRAWL,HOURS,ORIENT 24091 DATA B,EXAMINE,PUT,SWIM 24500 REM $$$ TREASURE VALUES (V) 24501 DATA 10,10,10,14,14,14,10,14,14,14,14,10,10,14,14 25500 REM +++++ COLORS +++++ 25510 DATA GREEN,YELLOW,BROWN,RED,SILVER,FUSCHIA,GOLD,DUN,WHITE,ORANGE,NACRE,BLACK 25520 DATA 6,11,10,4,8 26000 REM IN & OUT 26010 DATA 2,9,1,10,56,77,162 26020 DATA 120,10,2,47,59,13,163