home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug090.arc / ELGON.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  31KB  |  817 lines

  1. 10 REM ' "BA=BLUNT AXE  GG=GRUE GONE  DD=DRAGON DEAD  CL=CLIMB LADDER          CC=CLOSET CHOPPED  AD=APPLE DOWN  EI=ENOUGH INVENTORY          DF=DUG AND FOUND ALREADY  SA=SHOWED AMULET  DS=DUG IN SAND
  2. 20 REM '  AI=ANKH INSERTED  PR=PLANK REMOVED  PA=PLANK ATTACHED                MP=MERCHANT PAID  UH=USED HAMMER  PS=PADLOCK SAWN              MC=MOVED CHEST  ME=MERCHANT EATEN APPLE  FB=FIRE BREATHED
  3. 30 REM '  CM=COIN TO MERCHANT  AM=APPLE TO MERCHANT
  4. 40 CLEAR 2000
  5. 45 DEF FNCUR$(X,Y)=CHR$(27)+"="+CHR$(Y+31)+CHR$(X+31)
  6. 50 DIM OB$(52),OB(52),RM$(40),RM(40),DI$(32)
  7. 60 CLS$=CHR$(26):PRINT CLS$
  8. 70 BA=0:EG=0:GG=0:AD=0:CC=0:UH=0:PS=0:MP=0:WG=0:EI=0:CL=0:DF=0:DS=0:DD=0:AI=0:     PA=0:PR=0:MC=0:ME=1:AM=0:CM=0:FB=0:AA=0
  9. 80 NO=52: NR=32
  10. 90 FOR I=1 TO NO
  11. 100 READ OB(I)
  12. 110 NEXT I
  13. 120 FOR I=1 TO NO
  14. 130 READ OB$(I)
  15. 140 NEXT I
  16. 150 RM$(1)="I am in a dark, damp and gloomy pit. Rays of light shining down from above are"+CHR$(13)+CHR$(10)+"the only source of light."
  17. 160 RM$(2)="I am in a small narrow opening."
  18. 170 RM$(3)="I am in a tunnel."
  19. 180 RM$(4)="I am in a large undergroung cavern."
  20. 190 RM$(5)="I am in an underground hollow."
  21. 200 RM$(6)="I am in an open field."
  22. 210 RM$(7)="I am in a yard."
  23. 220 RM$(8)="I am in an old abandoned shack."
  24. 230 RM$(9)="I am in a small, dingy bedroom."
  25. 240 RM$(10)="I am in a kitchen."
  26. 250 RM$(11)="I am inside a small sentry post."
  27. 260 RM$(12)="I am next to a moat."
  28. 270 RM$(13)="I have entered a merchants tent."
  29. 280 RM$(14)="I am on a river bank."
  30. 290 RM$(15)="I am in an eerie graveyard."
  31. 300 RM$(16)="I am near a bottomless chasm."
  32. 310 RM$(17)="I am in a small sandy clearing."
  33. 320 RM$(18)="I have come to a cliff ridden area."
  34. 330 RM$(19)="I am in a large closet."
  35. 340 RM$(20)="I am in a long featureless hall."
  36. 350 RM$(21)="I am inside an ancient archive."
  37. 360 RM$(22)="I am in a courtyard of the castle."
  38. 370 RM$(23)="I am in the guards room"
  39. 380 RM$(24)="I am in a small secret room."
  40. 390 RM$(25)="I am in a weapon room."
  41. 400 RM$(26)="I am in an old smelly dungeon."
  42. 410 RM$(27)="I am in a blood stained torchure chamber."
  43. 420 RM$(28)="I am in a secret cave."
  44. 430 RM$(29)="I am on top of a ladder."
  45. 440 RM$(30)="I am in a dragons lair."
  46. 450 RM$(31)="I am in a room with walls of solid gold."
  47. 460 RM$(32)="I am in a big hole, with walls of solid gold"
  48. 470 NO$="North. ": SO$="South. ": EA$="East. ": WE$="West. ": UP$="Up. ": DO$="Down. "
  49. 480 DI$(1)=NO$: DI$(2)=SO$: DI$(3)=EA$+WE$: DI$(4)=EA$+WE$: DI$(5)=EA$: DI$(6)=NO$+SO$+EA$+DO$: DI$(7)=SO$: DI$(8)=EA$+WE$+SO$: DI$(9)=EA$: DI$(10)=WE$: DI$(11)=SO$: DI$(12)=WE$: DI$(13)=NO$+WE$: DI$(14)=EA$: DI$(15)=SO$: DI$(16)=NO$: DI$(17)=WE$
  50. 490 DI$(18)=EA$: DI$(19)=WE$: DI$(20)=NO$: DI$(21)=WE$: DI$(22)=NO$+SO$+EA$+WE$: DI$(23)=WE$: DI$(24)=NO$: DI$(25)=EA$+SO$: DI$(26)=WE$+UP$: DI$(27)=EA$: DI$(28)=SO$: DI$(29)=DO$: DI$(30)=NO$+EA$: DI$(31)=WE$: DI$(32)=UP$
  51. 500 VI$="  Visible Items :-"
  52. 510 GOSUB 7810
  53. 520 PRINT CLS$
  54. 530 GOTO 6180
  55. 540 A$="": F$="": S$="": IF RM=2 THEN EG=EG+1: IF EG=10 AND GG<>1 THEN 7620
  56. 550 IF RM=30 AND DD<>1 THEN FB=FB+1
  57. 560 IF FB<>3 THEN 610 ELSE SH=SH+1
  58. 570 IF OB(44)<>-1 THEN PRINT"I have been burnt by a fire breathing dragon!": GOTO 7620
  59. 580 IF OB(44)=-1 THEN PRINT"The dragon sends a breath of fire at me, but it reflects off my shield.":FB=0
  60. 590 IF SH=2 THEN PRINT"I don't know if I can hold the shield for much longer, because it's very hot!": GOTO 540
  61. 600 IF SH=3 THEN PRINT"The shield is too hot to hold, so I drop it!": OB(44)=RM: GS=1: GOSUB 8090: GOTO 3630
  62. 610 INPUT"What is your command >>";A$
  63. 620 IF LEN(A$)>15 THEN PRINT"Be Sensible!!!": GOTO 540
  64. 630 IF A$="" THEN 7310
  65. 640 GOSUB 7730
  66. 650 IF A$<>"" THEN A$=A$+" "
  67. 660 FOR I=1 TO LEN(A$)
  68. 670 IF MID$(A$,I,1)<>" " THEN NEXT I
  69. 680 F$=LEFT$(A$,I-1)
  70. 690 FOR I=LEN(A$) -1 TO 1 STEP-1
  71. 700 IF MID$(A$,I,1)<>" " THEN NEXT I
  72. 710 S$=MID$(A$,I+1,LEN(A$)-I-1)
  73. 720 IF F$< "A" OR F$> "Z" THEN GOTO 7310
  74. 730 ON ASC(A$)-64 GOTO 740,750,790,1020,1270,2000,2070,3090,3100,3300,3510,3610,3740,3840,3970,4150,4400,4470,4690,5340,5520,5890,5900,6050,6150,6160
  75. 740 REM *** A ***
  76. 750 REM *** B ***
  77. 760 IF F$<>"BUY" THEN 7310
  78. 770 GOTO 3020
  79. 780 GOTO 7580
  80. 790 REM *** C ***
  81. 800 IF F$<>"CLIMB" THEN 910
  82. 810 FOR I=1 TO NO: IF S$=OB$(I) THEN 830 ELSE NEXT I
  83. 820 GOTO 7310
  84. 830 IF OB(I)=-1 THEN 7360
  85. 840 IF OB(I)<>RM THEN 7360
  86. 850 IF S$=OB$(1) AND OB(1)=1 THEN CL=1: GOTO 7250
  87. 860 IF S$=OB$(1) THEN 7250
  88. 870 IF S$=OB$(49) THEN PRINT"The walls are far too slippery.":GOTO 540
  89. 880 IF F$<>"CHOP" THEN 1010
  90. 890 FOR I=1 TO NO: IF S$=OB$(I) THEN 940
  91. 900 NEXT I: GOTO 7310
  92. 910 IF OB(8)=-1 AND BA=0 THEN 950
  93. 920 IF OB(8)<>-1 THEN 7360
  94. 930 IF BA=1 THEN PRINT"Try examining axe!": GOTO 540
  95. 940 IF RM=6 AND S$=OB$(3) AND AD<>1 THEN PRINT"The vibrations of the axe loosen the apple from the branch, and it falls to the ground.": AD=1: BA=1: GOTO 540
  96. 950 IF RM=20 AND S$=OB$(30) THEN PRINT"I make a hole big enough to get through.": CC=1: BA=1: GOTO 540
  97. 960 IF RM=7 AND S$=OB$(35) THEN PRINT"You have fun, chopping the fence into splinters": OB(35)=0: OB(48)=7: BA=1: GOTO 3630
  98. 970 IF RM=6 AND S$=OB$(3) THEN PRINT "The vibrations caused by the axe, cause the apple to fall.": AD=1: BA=1: GOTO 540
  99. 980 IF RM=1 OR RM=2 AND S$=OB$(1) THEN PRINT "You violently chop the ladder into splinters.": LD=1: BA=1: OB(1)=0: OB(50)=RM: GOTO 3630
  100. 990 GOTO 7580
  101. 1000 IF F$<>"CUT" THEN 7310
  102. 1010 GOTO 5160
  103. 1020 REM *** d ***
  104. 1030 IF F$<>"D" THEN 1070
  105. 1040 IF RM=6 THEN 6180
  106. 1050 IF RM=29 AND SR=1 THEN 6180
  107. 1060 IF RM=29 AND SR=2 THEN 6210
  108. 1070 IF F$<>"DROP" THEN 1140
  109. 1080 FOR I=1 TO NO: IF S$=OB$(I) THEN 1100
  110. 1090 NEXT I: GOTO 7310
  111. 1100 IF OB(I)<>-1 THEN 7340
  112. 1110 IF S$=OB$(31) THEN WG=0
  113. 1120 IF S$=OB$(26) THEN 4280
  114. 1130 OB(I)=RM: EI=EI-1: GOTO 3630
  115. 1140 REM * DIG *
  116. 1150 IF OB(9)<>-1 THEN 7360
  117. 1160 IF F$<>"DIG" THEN 7310
  118. 1170 IF RM<>15 THEN 1220
  119. 1180 IF DF=1 THEN 7500
  120. 1190 IF SA<>1 THEN PRINT"Ghost won't let me!": GOTO 540
  121. 1200 OB(13)=15: OB(15)=15: DF=1
  122. 1210 GOTO 7520
  123. 1220 IF RM<>17 THEN 1260
  124. 1230 IF DS=1 THEN 7500
  125. 1240 OB(10)=17: DS=1
  126. 1250 GOTO 7520
  127. 1260 GOTO 7500
  128. 1270 REM *** E ***
  129. 1280 IF F$<>"E" THEN 1460
  130. 1290 IF RM=18 THEN 6660
  131. 1300 IF RM=14 THEN 6540
  132. 1310 IF RM=19 THEN 6760
  133. 1320 IF RM=6 THEN 6510
  134. 1330 IF RM=22 THEN 6790
  135. 1340 IF RM=5 THEN 6270
  136. 1350 IF RM=4 THEN 6240
  137. 1360 IF RM=3 THEN 6210
  138. 1370 IF RM=25 THEN 6850
  139. 1380 IF RM=27 THEN 6940
  140. 1390 IF RM=9 THEN 6390
  141. 1400 IF RM=8 THEN 6450
  142. 1410 IF RM<>30 THEN 1440
  143. 1420 IF DD<>1 THEN PRINT"Dragon won't let me!": GOTO 540
  144. 1430 IF DD=1 THEN 7140
  145. 1440 REM * EXAM *
  146. 1450 GOTO 7460
  147. 1460 IF F$<>"EXAM" THEN 1500
  148. 1470 FOR I=1 TO NO: IF S$=OB$(I) THEN 1500
  149. 1480 NEXT I
  150. 1490 GOTO 7310
  151. 1500 IF OB(I)<>RM AND OB(I)<>-1 THEN 7360 ELSE 1510
  152. 1510 IF S$=OB$(1) THEN PRINT"It's fairly short.": GOTO 540
  153. 1520 IF S$<>OB$(38) THEN 1550
  154. 1530 IF RM=16 OR RM=17 THEN PRINT"It's a 2-metre wide bottomless chasm." ELSE 7360
  155. 1540 GOTO 540
  156. 1550 IF S$=OB$(2) THEN PRINT"He gives you a big grin, whilst licking his chops": GOTO 540
  157. 1560 IF S$=OB$(18) THEN PRINT"It's got something written on it.": GOTO 540
  158. 1570 IF S$=OB$(19) THEN PRINT"It looks quite valuable.": GOTO 540
  159. 1580 IF S$=OB$(44) AND SH=0 THEN PRINT"It's got a sense of strength about it!": GOTO 540
  160. 1590 IF S$=OB$(44) AND SH>1 THEN PRINT"The shield is red hot!": GOTO 540
  161. 1600 IF S$=OB$(3) AND AA=0 THEN 1610 ELSE 1620
  162. 1610 PRINT"The tree is petrified, yet there is a red apple on one of it's branches.": OB(4)=RM: AA=1: GOSUB 8090: GOTO 3630
  163. 1620 IF S$=OB$(3) AND AA=1 AND AD=0 THEN 1610
  164. 1630 IF S$=OB$(3) AND AD=1 THEN PRINT"It's petrified!": GOTO 540
  165. 1640 IF S$="SYMBOL" THEN PRINT "It resembles a ghost.": GOTO 540
  166. 1650 IF S$=OB$(37) THEN PRINT"It's rusty": GOTO 540
  167. 1660 IF S$=OB$(4) THEN PRINT"It's a big, red, heathly, looking apple.": GOTO 540
  168. 1670 IF S$=OB$(21) THEN PRINT"It's stuck to the wall": GOTO 540
  169. 1680 IF S$=OB$(22) THEN PRINT"It's a smelly decayed corpse.": GOTO 540
  170. 1690 IF S$=OB$(51) THEN PRINT"It's The Treasure Of Elgon!!!!": GOTO 540
  171. 1700 IF S$=OB$(36) THEN PRINT"It's a sharpening stone.": GOTO 540
  172. 1710 IF S$=OB$(24) THEN PRINT"There's something written on it.": GOTO 540
  173. 1720 IF S$=OB$(6) THEN PRINT"It looks deserted.": GOTO 540
  174. 1730 IF S$=OB$(26) THEN PRINT"It seems sturdy.": GOTO 540
  175. 1740 IF S$=OB$(7) AND MS=0 THEN PRINT"He looks poor.": GOTO 540
  176. 1750 IF S$=OB$(7) AND MS=1 THEN PRINT"He's dead! And I don't think his condition will get any better!": GOTO 540
  177. 1760 IF S$<> OB$(20) THEN 1790
  178. 1770 IF AI<>1 THEN PRINT"There is a small round hole in the middle.": GOTO 540
  179. 1780 PRINT"There is an ankh inserted in the middle of it.": GOTO 540
  180. 1790 IF S$=OB$(8) THEN 1980
  181. 1800 IF S$=OB$(29) THEN PRINT"It has a very strong current.": GOTO 540
  182. 1810 IF S$<>OB$(30) THEN 1840
  183. 1820 IF CC<>1 THEN PRINT"It's an old WOODEN closet, and it's locked": GOTO 540
  184. 1830 PRINT"It's got a hole chopped in it.": GOTO 540
  185. 1840 IF S$=OB$(31) THEN PRINT"They are reading glasses.": GOTO 540
  186. 1850 IF S$=OB$(10) THEN PRINT"It's got a strange symbol that protrudes from it.": GOTO 540
  187. 1860 IF S$=OB$(32) THEN PRINT"It's steel and it feels very thick.": GOTO 540
  188. 1870 IF S$=OB$(11) THEN PRINT"He is big, and looks like he could have great strength.": GOTO 540
  189. 1880 IF S$<>OB$(35) THEN 1910
  190. 1890 IF PA=1 THEN 7420
  191. 1900 PRINT"It has a loose plank, nailed on with one nail.": GOTO 540
  192. 1910 IF S$=OB$(12) THEN PRINT"It is an old grave covered with weeds.": GOTO 540
  193. 1920 IF S$=OB$(34) THEN PRINT"It has a clawed head.": GOTO 540
  194. 1930 IF S$=OB$(38) THEN PRINT"The chest looks very old and you sense it is full of treasure.": GOTO 540
  195. 1940 IF S$=OB$(13) THEN PRINT"They look like they are human.": GOTO 540
  196. 1950 IF S$=OB$(14) THEN PRINT"It is a ring with a small thin screw coming off it.": GOTO 540
  197. 1960 IF S$=OB$(33) THEN PRINT"It's a sentry post!": GOTO 540
  198. 1970 GOTO 7420
  199. 1980 IF BA<>1 THEN PRINT"It's sharp": GOTO 540
  200. 1990 IF BA=1 THEN PRINT"It's blunt.": GOTO 540
  201. 2000 REM *** F ***
  202. 2010 IF F$<>"FEED" THEN 7310
  203. 2020 IF S$<>OB$(2) THEN 2060
  204. 2030 IF OB(4)<>-1 THEN 7360
  205. 2040 IF RM<>2 THEN 7360
  206. 2050 PRINT"The grue has lived for over 100 years and along the way, he has learnt how to   feed himself!!!": GOTO 540
  207. 2060 GOTO 7580
  208. 2070 REM *** G ***
  209. 2080 IF F$<>"GET" THEN 2550
  210. 2090 IF EI>4 THEN PRINT"I'm carrying too much!": GOTO 540
  211. 2100 FOR I=1 TO NO: IF S$=OB$(I) THEN 2110 ELSE NEXT I: GOTO 7310
  212. 2110 IF OB(I)<>-1 THEN 2120 ELSE 2140
  213. 2120 IF S$<>OB$(26) THEN 2170
  214. 2130 IF PR=1 OR PA=0 AND RM=7 THEN PRINT "How?": GOTO 540
  215. 2140 IF PA=1 AND OB(26)=RM THEN 2540
  216. 2150 IF RM<>7 THEN 7380
  217. 2160 IF OB(26)=-1 THEN 7480
  218. 2170 IF S$=OB$(52) THEN 2180 ELSE 2200
  219. 2180 IF RM=31 AND MC=1 THEN 7400
  220. 2190 GOTO 7560
  221. 2200 IF OB(I)<>RM THEN 7380
  222. 2210 IF S$=OB$(36) THEN PRINT"It's Heavy!": GOSUB 8090: GOTO 2540
  223. 2220 IF S$=OB$(1) THEN 2540
  224. 2230 IF S$=OB$(48) THEN 2540
  225. 2240 IF S$=OB$(51) THEN 7190
  226. 2250 IF S$=OB$(44) AND GS=0 THEN 2540
  227. 2260 IF S$=OB$(44) AND GS=1 THEN PRINT"Too hot!": GOTO 540
  228. 2270 IF S$=OB$(43) THEN PRINT"I Feel power within it": GOSUB 8090: GOTO 2540
  229. 2280 IF S$=OB$(8) THEN 2540
  230. 2290 IF S$=OB$(9) AND MP<>1 THEN PRINT"Merchant wants something.": GOTO 540
  231. 2300 IF S$=OB$(9) AND MP=1 THEN 2540
  232. 2310 IF S$=OB$(18) THEN PRINT"It's too Heavy!": GOTO 540
  233. 2320 IF S$=OB$(38) THEN PRINT"It's too Heavy!": GOTO 540
  234. 2330 FOR X=10 TO 11: IF S$=OB$(X) THEN 2540 ELSE NEXT X
  235. 2340 FOR Y=13 TO 15: IF S$=OB$(Y) THEN 2540 ELSE NEXT Y
  236. 2350 IF S$=OB$(18) THEN 7400
  237. 2360 IF S$=OB$(12) THEN 7400
  238. 2370 IF S$=OB$(19) THEN 2540
  239. 2380 IF S$=OB$(26) THEN 2540
  240. 2390 IF S$=OB$(27) THEN 2540
  241. 2400 IF S$=OB$(31) THEN 2540
  242. 2410 IF S$=OB$(7) AND MS=0 THEN PRINT"He avoids you saying 'Are you some kind of Weirdo??'": GOTO 540
  243. 2420 IF S$=OB$(7) AND MS=1 THEN PRINT"I don't want to pick up a body with it's guts all over the place!": GOTO 540
  244. 2430 IF S$=OB$(34) THEN 2540
  245. 2440 IF S$=OB$(35) AND UH=1 THEN 2540
  246. 2450 IF S$=OB$(37) AND PS=1 THEN 2540
  247. 2460 IF S$<>OB$(22) THEN 2490
  248. 2470 PRINT "No Thanks!"
  249. 2480 GOTO 540
  250. 2490 IF S$=OB$(24) THEN PRINT"It's Stuck!!": GOTO 540
  251. 2500 IF S$=OB$(4) AND AA=0 THEN PRINT"I can't see any apple around here!": GOTO 540
  252. 2510 IF S$=OB$(4) AND AD<>1 THEN PRINT"I can't reach it!": GOTO 540
  253. 2520 IF S$=OB$(4) AND AD=1 THEN OB(4)=-1: GOTO 3630
  254. 2530 GOTO 7400
  255. 2540 OB(I)=-1: EI=EI+1: GOTO 3630 :REM EI = enough inventory
  256. 2550 REM * GO *
  257. 2560 IF F$<>"GO" THEN 2920
  258. 2570 IF S$<>OB$(5) THEN 2630
  259. 2580 IF RM<>2 THEN 7360
  260. 2590 IF GG<>1 THEN 2790
  261. 2600 IF OB(1)=-1 THEN PRINT"Something won't fit!": GOTO 540
  262. 2610 IF S$=OB$(5) AND RM<>2 THEN 7360
  263. 2620 GOTO 6240
  264. 2630 FOR I=1 TO NO: IF S$=OB$(I) THEN 2640 ELSE NEXT I: GOTO 7360
  265. 2640 IF S$="PLANK" THEN 2750
  266. 2650 IF S$=OB$(52) AND RM=31 AND MC=1 THEN 7290
  267. 2660 IF OB(I)<>RM THEN 7360
  268. 2670 IF S$=OB$(6) AND RM=7 THEN 6390
  269. 2680 IF S$=OB$(25) THEN 6940
  270. 2690 IF S$=OB$(17) THEN 6880
  271. 2700 IF S$=OB$(1) THEN 830
  272. 2710 IF S$=OB$(42) THEN 6820
  273. 2720 IF S$=OB$(29) THEN PRINT "I've been swept under by the current, and drown.": GOTO 7620
  274. 2730 IF S$=OB$(23) THEN 7000
  275. 2740 IF S$<>OB$(26) THEN 2830
  276. 2750 IF PR<>1 THEN 7600
  277. 2760 IF RM=14 THEN 6600
  278. 2770 IF RM=15 THEN 6570
  279. 2780 GOTO 7600
  280. 2790 IF GG<> 1 THEN PRINT"Grue won't let me!": GOTO 540
  281. 2800 GOTO 6240
  282. 2810 IF AI<>1 THEN PRINT"I Don't know what you mean.": GOTO 540
  283. 2820 GOTO 7000
  284. 2830 IF S$<>OB$(33) THEN 2860
  285. 2840 IF RM<>12 THEN 7360
  286. 2850 GOTO 6480
  287. 2860 IF S$<>OB$(30) THEN 2890
  288. 2870 IF CC<>1 THEN PRINT "Only ghosts can walk through doors!": GOTO 540
  289. 2880 IF CC=1 THEN 6730
  290. 2890 IF S$<>OB$(32) THEN 2910
  291. 2900 IF PS=1 AND DO=1 THEN 7060 ELSE 7360
  292. 2910 GOTO 7310
  293. 2920 REM * give *
  294. 2930 IF F$<>"GIVE" THEN 7310
  295. 2940 FOR I=1 TO NO: IF S$=OB$(I) THEN 2960
  296. 2950 NEXT I: GOTO 7310
  297. 2960 IF S$<>OB$(4) THEN 3010
  298. 2970 IF RM=13 THEN 3060
  299. 2980 IF RM<>2 THEN 7360
  300. 2990 IF OB(4)<>-1 THEN 7360
  301. 3000 PRINT"To Whom?": GOTO 540
  302. 3010 IF S$<>OB$(19) THEN 3050
  303. 3020 IF RM<>13 THEN 7360
  304. 3030 IF OB(19)<>-1 THEN 7360
  305. 3040 CM=1: GOTO 3000
  306. 3050 IF S$<>OB$(4) THEN 7600
  307. 3060 IF OB(4)<>-1 THEN 7360
  308. 3070 PRINT"To Whom?": ME=1: AM=1: GOTO 540
  309. 3080 GOTO 7600
  310. 3090 REM *** H ***
  311. 3100 REM *** I ***
  312. 3110 IF F$<>"I" THEN 3200
  313. 3120 Z=0: FOR I=1 TO NO: IF OB(I)=-1 THEN Z=Z+1
  314. 3130 NEXT I
  315. 3140 IF Z=0 THEN PRINT"I'm not carrying anything.": GOTO 540
  316. 3150 PRINT:PRINT"I am carrying the following:"
  317. 3160 FOR I=1 TO NO
  318. 3170 IF OB(I)=-1 THEN PRINT OB$(I)+". ";
  319. 3180 NEXT I: PRINT
  320. 3190 GOTO 540
  321. 3200 IF F$<>"INSERT" THEN 7310
  322. 3210 FOR I=1 TO NO: IF S$=OB$(I) THEN  3230
  323. 3220 NEXT I: GOTO 7310
  324. 3230 IF S$<>OB$(14) THEN 3290
  325. 3240 IF OB(14)<>-1 THEN 7360
  326. 3250 IF RM<>18 THEN 7360
  327. 3260 PRINT"It fits perfectly in the hole.": GOSUB 8090
  328. 3270 OB(14)=0:AI=1
  329. 3280 GOTO 3630
  330. 3290 GOTO 7580
  331. 3300 REM *** J ***
  332. 3310 IF F$<>"JUMP" THEN 7310
  333. 3320 IF RM<>29 THEN 3370
  334. 3330 IF CL=1 THEN 6330
  335. 3340 PRINT"   I jump up, and luckily land back on the ladder -                             jumping whilst on a ladder is not a safe thing to do!"
  336. 3350 CL=0
  337. 3360 GOTO 540
  338. 3370 IF RM<>16 THEN 3410
  339. 3380 PRINT"I jump across the chasm, and just make it to the other side."
  340. 3390 GOSUB 8090
  341. 3400 GOTO 6660
  342. 3410 IF RM<>17 THEN 3460
  343. 3420 IF OB(36)=-1 THEN PRINT"The weight of the stone, shortens the jump, and I fall down the pit.": GOTO 7620
  344. 3430 PRINT"I jump across the chasm, and just make it to the other side."
  345. 3440 GOSUB 8090
  346. 3450 GOTO 6630
  347. 3460 IF RM<>1 THEN 3480
  348. 3470 PRINT"I jump as far as I could, but I end up a few inches short from the top.": GOTO 540
  349. 3480 IF RM<>2 THEN 3500
  350. 3490 PRINT"I hit my head on the roof.": GOTO 540
  351. 3500 PRINT"Whee!!": GOTO 540
  352. 3510 REM *** K ***
  353. 3520 IF F$<>"KILL" THEN 7310
  354. 3530 IF S$=OB$(7) AND RM=13 AND MS=0 THEN 3570
  355. 3540 IF S$=OB$(46) AND RM=30 AND DD=0 THEN 3580
  356. 3550 IF S$=OB$(2) AND RM=2 AND GG=0 THEN 3560 ELSE 7600
  357. 3560 IF S$<>OB$(2) AND RM<>2 THEN 3570 ELSE 3590
  358. 3570 IF S$<>OB$(7) AND RM<>13 THEN 3580 ELSE 3590
  359. 3580 IF S$<>OB$(46) AND RM<>30 THEN 3600 ELSE 3590
  360. 3590 PRINT"How?": GOTO 540
  361. 3600 GOTO 7580
  362. 3610 REM *** L ***
  363. 3620 IF F$<>"LOOK" THEN 7310
  364. 3630 PRINT CLS$
  365. 3640 PRINT RM$(RM)+VI$
  366. 3650 PRINT
  367. 3670 FOR I=1 TO NO: IF OB(I)=RM THEN PRINT OB$(I)+". ";
  368. 3680 NEXT I
  369. 3700 PRINT:PRINT
  370. 3710 PRINT"Some obvious exits are :- ";
  371. 3720 PRINT DI$(RM): PRINT STRING$(80,45)
  372. 3730 GOTO 540
  373. 3740 REM *** M ***
  374. 3750 IF F$<>"MOVE" THEN 7310
  375. 3760 FOR I=1 TO NO: IF OB$(I)=S$ THEN 3770 ELSE NEXT I: GOTO 7310
  376. 3770 IF S$<>OB$(38) THEN 3810
  377. 3780 IF RM<>31 THEN 7360
  378. 3790 IF MC=1 THEN 3800 ELSE PRINT"After moving the chest, you discover a small hole under it.": GOSUB 8090: OB(52)=31: MC=1: GOTO 3630
  379. 3800 PRINT"OK, I move it back over the hole.": OB(52)=0: MC=0: GOSUB 8090: GOTO 3630
  380. 3810 IF S$=OB$(36) THEN PRINT"OK": GOTO 540
  381. 3820 FOR I=1 TO NO: IF S$=OB$(I) THEN 7580 ELSE NEXT I
  382. 3830 GOTO 7310
  383. 3840 REM *** N ***
  384. 3850 IF F$<>"N" THEN 7310
  385. 3860 IF RM=1 THEN 6210
  386. 3870 IF RM=16 THEN 6600
  387. 3880 IF RM=13 THEN 6330
  388. 3890 IF RM=20 THEN 6820
  389. 3900 IF RM=24 THEN 6790
  390. 3910 IF RM=6 THEN 6360
  391. 3920 IF RM<>30 THEN 3950
  392. 3930 IF DD<>1 THEN PRINT "Dragon won't let me!": GOTO 540
  393. 3940 GOTO 6300
  394. 3950 IF RM=22 THEN 6910
  395. 3960 GOTO 7460
  396. 3970 REM *** O ***
  397. 3980 IF F$<>"OPEN" THEN 7310
  398. 3990 FOR I=1 TO NO: IF S$=OB$(I) THEN 4010
  399. 4000 NEXT I:GOTO 7310
  400. 4010 IF S$<>OB$(21) THEN 4070
  401. 4020 IF BO=1 THEN PRINT"It's already open!": GOTO 540
  402. 4030 IF RM<>11 THEN 7360
  403. 4040 IF BU<>1 THEN PRINT "It's locked!":GOTO 540
  404. 4050 OB(16)=11:BO=1
  405. 4060 GOTO 3630
  406. 4070 IF S$<>OB$(32) THEN 4120
  407. 4080 IF RM<>5 THEN 7360
  408. 4090 IF PS<>1 THEN 7360
  409. 4100 PRINT"Ok.": DO=1
  410. 4110 GOTO 540
  411. 4120 IF S$<>OB$(38) THEN 7580
  412. 4130 IF RM<>31 THEN 7360
  413. 4140 PRINT"It won't budge!": GOTO 540
  414. 4150 REM *** P ***
  415. 4160 IF F$<>"PAY" THEN 4220
  416. 4170 IF S$<>OB$(7) THEN 4250
  417. 4180 IF MP=1 AND OB(19)=-1 THEN PRINT"OK": OB(19)=0: GOTO 540
  418. 4190 IF RM<>13 THEN 7360
  419. 4200 IF OB(19)<>-1 THEN 7360
  420. 4210 OB(19)=0:MP=1:PRINT"The merchant offers you the shovel.": GOTO 540
  421. 4220 IF F$<>"PUT" THEN 4330
  422. 4230 FOR I=1 TO NO: IF S$=OB$(I) THEN 4260
  423. 4240 NEXT I: GOTO 7310
  424. 4250 GOTO 7580
  425. 4260 IF S$<>OB$(26) THEN 4320
  426. 4270 IF OB(26)<>-1 THEN 7360
  427. 4280 IF RM<>14 THEN 4320
  428. 4290 PRINT"The plank is placed over the river."
  429. 4300 GOSUB 8090
  430. 4310 OB(41)=15: OB(26)=RM: PR=1
  431. 4320 OB(I)=RM: GOTO 3630
  432. 4330 IF F$<>"PULL" THEN 4380
  433. 4340 IF S$<>OB$(16) THEN 4390
  434. 4350 PRINT"You hear a loud thud, but nothing appears to happen."
  435. 4360 OB(42)=12: DB=1
  436. 4370 GOTO 540
  437. 4380 IF F$<>"PLACE" THEN 7310
  438. 4390 GOTO 4230
  439. 4400 REM *** Q ***
  440. 4410 IF F$<>"QUIT" THEN 7310
  441. 4420 PRINT"Are you sure you want to Quit <Y/N> ?"
  442. 4430 GOSUB 7730
  443. 4440 Z$=INKEY$: IF Z$="Y" OR Z$="y" THEN 7630
  444. 4450 IF Z$="N" OR Z$="n" THEN 4460 ELSE 4440
  445. 4460 PRINT"OK": GOTO 540
  446. 4470 REM *** R ***
  447. 4480 IF F$<>"READ" THEN 4600
  448. 4490 FOR I=1 TO NO: IF S$=OB$(I) THEN 4510
  449. 4500 NEXT I: GOTO 7310
  450. 4510 IF S$<>OB$(24) THEN 4560
  451. 4520 IF WG<>1 THEN 7360
  452. 4530 IF RM<>1 THEN 7360
  453. 4540 PRINT: PRINT"                         If you are STUMPed,": PRINT"                         then the magic word is":PRINT"                         in Alphabetical; and 5"
  454. 4550 PRINT"                         long; and don't forget": PRINT"                         first one is also the": PRINT "                         last...": PRINT: GOTO 540
  455. 4560 IF S$<>OB$(18) THEN 4580
  456. 4570 IF RM<>21 OR WG<>1 THEN 7360
  457. 4580 PRINT"The Book has one word written in it:": PRINT:PRINT"                RACK": PRINT:OB(17)=21: GOSUB 8090
  458. 4590 GOTO 3630
  459. 4600 IF F$<>"RESTORE" THEN 7310
  460. 4610 IF S$<>"GAME" THEN 7310
  461. 4620 OPEN "I",#1,"ELGON.SAV"
  462. 4630 FOR I=1 TO NO: INPUT #1,OB(I) : NEXT I
  463. 4640 INPUT #1,RM
  464. 4650 INPUT #1,BA,GG,DD,CL,CC,AD,EI,DF,SA,DS,AI,PR,PA,MP,UH,PS,EG
  465. 4660 INPUT #1,DO,YS,BO,BU,SA,CR,WG,CM,AM,ME,SH,GS,MS,AA,MC,AD
  466. 4670 CLOSE #1
  467. 4680 GOTO 3630
  468. 4690 REM *** S ***
  469. 4700 IF F$<>"S" THEN 4810
  470. 4710 IF RM=22 THEN 6760
  471. 4720 IF RM=6 THEN 6540
  472. 4730 IF RM=2 THEN 6180
  473. 4740 IF RM=7 THEN 6330
  474. 4750 IF RM=8 THEN 6360
  475. 4760 IF RM=11 THEN 6510
  476. 4770 IF RM=25 THEN 6820
  477. 4780 IF RM=15 THEN 6630
  478. 4790 IF RM=28 THEN 6700
  479. 4800 GOTO 7460
  480. 4810 IF F$<>"SLAY" THEN 4900
  481. 4820 IF S$<>OB$(46) THEN 4870
  482. 4830 IF RM<>30 THEN 7360
  483. 4840 IF OB(43)<>-1 THEN 7360
  484. 4850 IF DD=1 THEN PRINT"What Dragon?": GOTO 540
  485. 4860 GOTO 5690
  486. 4870 IF S$<>OB$(7) THEN 7610
  487. 4880 IF OB(43)<>-1 OR RM<>13 THEN 7360
  488. 4890 MS=1: PRINT"You slay the poor merchant to death.": GOTO 540
  489. 4900 IF F$<>"SHOW" THEN 4990
  490. 4910 FOR I=1 TO NO: IF S$=OB$(I) THEN 4930
  491. 4920 NEXT I: GOTO 7310
  492. 4930 IF S$<>OB$(10) THEN 5460
  493. 4940 IF OB(10)<>-1 THEN 7360
  494. 4950 IF RM<>15 THEN 7440
  495. 4960 PRINT"The ghost lets out a loud shriek, as he disintegrates.": GOSUB 8090
  496. 4970 OB(11)=0: SA=1
  497. 4980 GOTO 3630
  498. 4990 IF F$<>"SAY" THEN 5090
  499. 5000 IF S$<>"ACKRA" THEN 5080
  500. 5010 IF CR=1 THEN PRINT"OK": PRINT S$: GOTO 540
  501. 5020 IF RM<>18 THEN PRINT"OK": PRINT S$: GOTO 540
  502. 5030 IF AI<>1 THEN PRINT"OK": PRINT S$: GOTO 540
  503. 5040 PRINT" A beam of light shines down from the sky, and reflects                         through the ankh, opening a small crawlway in the cliff."
  504. 5050 OB(23)=18:CR=1
  505. 5060 GOSUB 8090
  506. 5070 GOTO 3630
  507. 5080 PRINT"OK": PRINT S$: GOTO 540
  508. 5090 IF F$<>"SHARPEN" THEN 5150
  509. 5100 IF S$<>OB$(8) THEN 7580
  510. 5110 IF OB(8)<>-1 THEN 7360
  511. 5120 IF RM<>28 THEN 7360
  512. 5130 PRINT"The axe is as sharp as it was originally.": BA=0: GOTO 540
  513. 5140 GOTO 7580
  514. 5150 IF F$<>"SAW" THEN 5210
  515. 5160 IF S$<>OB$(37) THEN 7580
  516. 5170 IF OB(27)<>-1 THEN 7360
  517. 5180 IF RM<>5 THEN 7360
  518. 5190 IF PS=1 THEN PRINT "I have already done that!": GOTO 540
  519. 5200 PRINT"The padlock is sawn easliy, and it falls to the ground": PS=1: GOTO 540
  520. 5210 IF F$<>"SHAKE" THEN 5250
  521. 5220 IF S$<>OB$(3) THEN 7580
  522. 5230 IF RM<>6 THEN 7360
  523. 5240 PRINT"I shake the tree as hard as I can, but it is as hard                            as a rock - the apple doesn't even budge.": GOTO 540
  524. 5250 IF F$<>"SAVE" THEN 7320
  525. 5260 IF S$<>"GAME" THEN 7320
  526. 5270 SV$="ELGON.SAV"
  527. 5280 OPEN "O",#1,"ELGON.SAV"
  528. 5290 FOR I=1 TO NO: WRITE #1,OB(I): NEXT I
  529. 5300 WRITE #1,RM
  530. 5310 WRITE #1,BA,GG,DD,CL,CC,AD,EI,DF,SA,DS,AI,PR,PA,MP,UH,PS,EG
  531. 5320 WRITE #1,DO,YS,BO,BU,SA,CR,WG,CM,AM,ME,SH,GS,MS,AA,MC,AD
  532. 5330 CLOSE #1: PRINT"OK": GOTO 540
  533. 5340 REM *** T ***
  534. 5350 IF F$<>"TO" THEN 7310
  535. 5360 IF AM=1 THEN 5380
  536. 5370 IF CM=1 THEN 5480 ELSE 5440
  537. 5380 IF ME<>1 THEN 5430
  538. 5390 IF OB(4)<>-1 THEN 7360
  539. 5400 IF RM<>13 THEN 7360
  540. 5410 IF MP=1 THEN PRINT"OK": OB(4)=0: AM=0: ME=0: GOTO 540
  541. 5420 IF MP<>1 THEN PRINT"The merchant offers you the shovel.": MP=1: OB(4)=0: ME=0: AM=0: GOTO 540
  542. 5430 FOR I=1 TO NO: IF S$=OB$(I) THEN 5440 ELSE NEXT I: GOTO 7580
  543. 5440 IF S$<>OB$(2) THEN 7310
  544. 5450 IF OB(4)<>-1 THEN 7360
  545. 5460 IF RM<>2 THEN 7360
  546. 5470 GG=1: OB(4)=0: OB(2)=0: PRINT"The grue disappears into the wall.": GOSUB 8090: GOTO 3630
  547. 5480 IF S$<>OB$(7) THEN 7580
  548. 5490 IF RM<>13 THEN 7360
  549. 5500 IF MP=1 THEN PRINT"OK": OB(19)=0: CM=0: GOTO 540
  550. 5510 IF OB(19)<>-1 THEN 7360 ELSE PRINT"The merchant offers you the shovel": MP=1: OB(19)=0: CM=0: GOTO 540
  551. 5520 REM *** U ***
  552. 5530 IF F$<>"U" THEN 5580
  553. 5540 IF RM=32 THEN 7140
  554. 5550 IF RM<>26 THEN 5570
  555. 5560 GOTO 6850
  556. 5570 GOTO 7460
  557. 5580 IF F$<>"USE" THEN 5760
  558. 5590 FOR I=1 TO NO: IF S$=OB$(I) THEN 5610
  559. 5600 NEXT I: GOTO 7310
  560. 5610 IF S$<>OB$(34) THEN 5660
  561. 5620 IF OB(34)<>-1 THEN 7360
  562. 5630 IF PA=1 THEN 7600
  563. 5640 IF RM<>7 THEN 7440
  564. 5650 PA=1: OB(26)=7: PRINT"OK": GOTO 3630
  565. 5660 GOTO 5710
  566. 5670 REM
  567. 5680 REM
  568. 5690 PRINT"You slay the dragon with mighty force, and he shrivels up into nothing."
  569. 5700 GOSUB 8090: DD=1: OB(46)=0: GOTO 3630
  570. 5710 IF S$<>OB$(43) THEN 5740
  571. 5720 IF RM=13 AND MS=0 THEN 4890
  572. 5730 IF RM=30 AND DD=0 THEN 5690
  573. 5740 PRINT"It doesn't work": GOTO 540
  574. 5750 GOTO 7580
  575. 5760 IF F$<>"UNLOCK" THEN 5840
  576. 5770 FOR I=1 TO NO: IF S$=OB$(I) THEN 5790
  577. 5780 NEXT I: GOTO 7310
  578. 5790 IF S$<>OB$(21) THEN 5880
  579. 5800 IF OB(15)<>-1 THEN 7360
  580. 5810 IF RM<>11 THEN 7360
  581. 5820 IF BU=1 THEN PRINT"It's already unlocked!": GOTO 540
  582. 5830 BU=1: PRINT"OK": GOTO 540
  583. 5840 IF F$<>"UNWEAR" THEN 7310
  584. 5850 IF S$<>OB$(31) THEN PRINT"It would be hard even putting that on": GOTO 540
  585. 5860 IF OB(31)<>-1 AND WG<>0 THEN PRINT"I'm not wearing them.": GOTO 540
  586. 5870 PRINT"OK": WG=0: GOTO 540
  587. 5880 GOTO 7580
  588. 5890 REM *** V ***
  589. 5900 REM *** W ***
  590. 5910 IF F$<>"W" THEN 6060
  591. 5920 IF RM=3 THEN 6270
  592. 5930 IF RM=4 THEN 6300
  593. 5940 IF RM=8 THEN 6420
  594. 5950 IF RM=10 THEN 6390
  595. 5960 IF RM=26 THEN 6970
  596. 5970 IF RM=23 THEN 6910
  597. 5980 IF RM=21 THEN 6820
  598. 5990 IF RM=12 THEN 6330
  599. 6000 IF RM=13 THEN 6570
  600. 6010 IF RM=17 THEN 6700
  601. 6020 IF RM=22 THEN 6510
  602. 6030 IF RM=19 THEN 6760
  603. 6040 IF RM=31 THEN 7060
  604. 6050 GOTO 7460
  605. 6060 IF F$<>"WEAR" THEN 6130
  606. 6070 FOR I=1 TO NO: IF S$=OB$(I) THEN 6090
  607. 6080 NEXT I: GOTO 7310
  608. 6090 IF S$<>OB$(31) THEN 6120
  609. 6100 IF OB(31)<>-1 THEN 7360
  610. 6110 WG=1: PRINT"OK": GOTO 540
  611. 6120 GOTO 7600
  612. 6130 IF F$<>"WITH" THEN 7310
  613. 6140 GOTO 5590
  614. 6150 REM *** Y ***
  615. 6160 REM *** Z ***
  616. 6170 GOTO 7310
  617. 6180 REM *** Room 1 ***
  618. 6190 RM=1
  619. 6200 GOTO 3630
  620. 6210 REM *** Room 2 ***
  621. 6220 RM=2
  622. 6230 GOTO 3630
  623. 6240 REM *** Room 3 ***
  624. 6250 RM=3
  625. 6260 GOTO 3630
  626. 6270 REM *** Room 4 ***
  627. 6280 RM=4
  628. 6290 GOTO 3630
  629. 6300 REM *** Room 5 ***
  630. 6310 RM=5
  631. 6320 GOTO 3630
  632. 6330 REM *** Room 6 ***
  633. 6340 RM=6
  634. 6350 GOTO 3630
  635. 6360 REM *** Room 7 ***
  636. 6370 RM=7
  637. 6380 GOTO 3630
  638. 6390 REM *** Room 8 ***
  639. 6400 RM=8
  640. 6410 GOTO 3630
  641. 6420 REM *** Room 9 ***
  642. 6430 RM=9
  643. 6440 GOTO 3630
  644. 6450 REM *** Room 10 ***
  645. 6460 RM=10
  646. 6470 GOTO 3630
  647. 6480 REM *** Room 11 ***
  648. 6490 RM=11
  649. 6500 GOTO 3630
  650. 6510 REM *** Room 12 ***
  651. 6520 RM=12
  652. 6530 GOTO 3630
  653. 6540 REM *** Room 13 ***
  654. 6550 RM=13
  655. 6560 GOTO 3630
  656. 6570 REM *** Room 14 ***
  657. 6580 RM=14
  658. 6590 GOTO 3630
  659. 6600 REM *** Room 15 ***
  660. 6610 RM=15
  661. 6620 GOTO 3630
  662. 6630 REM *** Room 16 ***
  663. 6640 RM=16
  664. 6650 GOTO 3630
  665. 6660 REM *** Room 17 ***
  666. 6670 RM=17
  667. 6680 OB(47)=17
  668. 6690 GOTO 3630
  669. 6700 REM *** Room 18 ***
  670. 6710 RM=18
  671. 6720 GOTO 3630
  672. 6730 REM *** Room 19 ***
  673. 6740 RM=19
  674. 6750 GOTO 3630
  675. 6760 REM *** Room 20 ***
  676. 6770 RM=20
  677. 6780 GOTO 3630
  678. 6790 REM *** Room 21 ***
  679. 6800 RM=21
  680. 6810 GOTO 3630
  681. 6820 REM *** Room 22 ***
  682. 6830 RM=22
  683. 6840 GOTO 3630
  684. 6850 REM *** Room 23 ***
  685. 6860 RM=23
  686. 6870 GOTO 3630
  687. 6880 REM *** Room 24 ***
  688. 6890 RM=24
  689. 6900 GOTO 3630
  690. 6910 REM *** Room 25 ***
  691. 6920 RM=25
  692. 6930 GOTO 3630
  693. 6940 REM *** Room 26 ***
  694. 6950 RM=26
  695. 6960 GOTO 3630
  696. 6970 REM *** Room 27 ***
  697. 6980 RM=27
  698. 6990 GOTO 3630
  699. 7000 REM *** Room 28 ***
  700. 7010 RM=28
  701. 7020 GOTO 3630
  702. 7030 REM *** Room 32 ***
  703. 7040 RM=29
  704. 7050 GOTO 3630
  705. 7060 REM *** Room 30 ***
  706. 7070 RM=30
  707. 7080 IF DD=1 THEN 3630
  708. 7090 PRINT CLS$: PRINT RM$(RM)+VI$: PRINT: FOR I=1 TO NO: IF OB(I)=RM THEN PRINT OB$(I) ELSE NEXT I
  709. 7100 PRINT: PRINT"Obvious Exits :- ";DI$(RM): PRINT STRING$(80,45)
  710. 7110 IF OB(44)<>-1 THEN PRINT"I have been burnt by a fire breathing dragon!": GOTO 7620
  711. 7120 IF OB(44)=-1 THEN PRINT"The dragon sends a breath of fire at me, but it reflects off my shield.":FB=0
  712. 7130 GOTO 540
  713. 7140 REM *** Room 31 ***
  714. 7150 RM=31
  715. 7160 OB(38)=RM
  716. 7170 GOTO 3630
  717. 7180 PRINT CLS$
  718. 7190 FA$="FANTASTIC!!!! You Solved It!"
  719. 7200 FOR X=13 TO 20: PRINT: NEXT X
  720. 7205 PRINT FNCUR$(26,15);
  721. 7210 FOR I=1 TO LEN(FA$)
  722. 7220 PRINT MID$(FA$,I,1);
  723. 7230 NEXT I
  724. 7240 GOTO 7630
  725. 7250 REM *** Ladder Room ***
  726. 7260 SR=RM
  727. 7270 RM=29
  728. 7280 GOTO 3630
  729. 7290 REM *** Room 32 ***
  730. 7300 RM=32: OB(51)=RM: GOTO 3630
  731. 7310 REM *** Errors ***
  732. 7320 PRINT"I don't understand!"
  733. 7330 GOTO 540
  734. 7340 PRINT"I'm not carrying anything!"
  735. 7350 GOTO 540
  736. 7360 PRINT"I can't do that...Yet!"
  737. 7370 GOTO 540
  738. 7380 PRINT"I can't see it here."
  739. 7390 GOTO 540
  740. 7400 PRINT"It's beyond my power to do that."
  741. 7410 GOTO 540
  742. 7420 PRINT"I see nothing special."
  743. 7430 GOTO 540
  744. 7440 PRINT"Nothing happens."
  745. 7450 GOTO 540
  746. 7460 PRINT"I can't go that way!"
  747. 7470 GOTO 540
  748. 7480 PRINT"I already have that."
  749. 7490 GOTO 540
  750. 7500 PRINT"I found nothing!"
  751. 7510 GOTO 540
  752. 7520 PRINT"I found something!"
  753. 7530 GOSUB 8090: GOTO 3630
  754. 7540 PRINT"Huh?"
  755. 7550 GOTO 540
  756. 7560 PRINT"What?"
  757. 7570 GOTO 540
  758. 7580 PRINT"I can't do that."
  759. 7590 GOTO 540
  760. 7600 PRINT"Sorry."
  761. 7610 GOTO 540
  762. 7620 PRINT"I'm Dead!"
  763. 7630 PA$="Play Again (Y/N)"
  764. 7640 FOR Z=15 TO 20: PRINT FNCUR$(1,Z);: PRINT STRING$(78,32): NEXT Z
  765. 7645 PRINT FNCUR$(32,17);
  766. 7650 FOR I=1 TO LEN(PA$)
  767. 7660 PRINT MID$(PA$,I,1);
  768. 7670 FOR K=1 TO 40: NEXT K
  769. 7680 NEXT I
  770. 7690 P$=INKEY$
  771. 7700 IF P$="Y" OR P$="y" THEN RESTORE: RUN
  772. 7710 IF P$="N" OR P$="n" THEN PRINT:PRINT:PRINT TAB(35);"Goodbye...":END
  773. 7720 GOTO 7690
  774. 7730 FOR J=1 TO LEN(A$)
  775. 7740 C$=MID$(A$,J,1): IF ASC(C$)<97 THEN 7760
  776. 7750 MID$(A$,J,1) = CHR$(ASC(C$)-32)
  777. 7760 NEXT J
  778. 7770 RETURN
  779. 7780 DATA 2,2,6,0,2,7,13,7,13,0,15,15,0,27,0,0,0,21,4,18,11,23,0,1,23,0,19,0,14,20,9,5,12,10,7,28,5,31,16,15,0,0,25,24,0,30,17,0,1,0,0,0
  780. 7790 DATA "LADDER","GRUE","TREE","APPLE","TUNNEL","SHACK","MERCHANT","AXE","SHOVEL","AMULET","GHOST","GRAVE","BONES","ANKH","KEY","LEVER","PASSAGE","BOOK","COIN","STUMP","BOX","SKELETON","CRAWLWAY","SIGN","STAIRS","PLANK","SAW","HOLE","RIVER","CLOSET"
  781. 7800 DATA "GLASSES","DOOR","POST","HAMMER","FENCE","STONE","PADLOCK","CHEST","CHASM","RIVER","PLANK","DRAWBRIDGE","SWORD","SHIELD","VAULT","DRAGON","CHASM","SPLINTERS","PIT","SPLINTERS","TREASURE","HOLE"
  782. 7810 REM *** Heading ***
  783. 7820 PRINT CLS$: PRINT:PRINT
  784. 7825 PRINT TAB(18);" T H E   T R E A S U R E   O F   E L G O N ":PRINT:PRINT
  785. 7830 PRINT"        A      DDDD   V    V   EEEEE  N     N  TTTTT  U    U  RRRR   EEEEE"
  786. 7840 PRINT"       A A     D   D  V    V   E      NN    N    T    U    U  R   R  E"
  787. 7850 PRINT"      AAAAA    D   D   V  V    EEE    N NN  N    T    U    U  RRRRR  EEE"
  788. 7860 PRINT"     A     A   D   D   V  V    E      N  NN N    T    U    U  R RR   E"
  789. 7870 PRINT"     A     A   DDDD     VV     EEEEE  N    NN    T    UUUUUU  R   R  EEEEE"
  790. 7880 PRINT:PRINT
  791. 7890 PRINT"                            By: Keith Hawthorn."
  792. 7900 PRINT"                            -------------------"
  793. 7905 PRINT:PRINT"                  <Modified for the Microbee by A.Laughton>"
  794. 7910 PRINT:PRINT:PRINT"                         Press any key to start game!"
  795. 7920 Z$=INKEY$: IF Z$="" THEN 7920 ELSE 7930
  796. 7930 PRINT CLS$
  797. 7940 PRINT"                             The Treasure of Elgon."
  798. 7950 PRINT"                             ----------------------"
  799. 7960 PRINT:PRINT:PRINT
  800. 7970 PRINT"  In this adventure you are required to find the Treasure of Elgon, but along": PRINT: PRINT"                   your way you will encounter many problems."
  801. 7980 PRINT: PRINT"  This adventure will accept two word commands, ie: exam grue, climb pit etc.": PRINT
  802. 7990 PRINT "                    You can also SAVE GAME, and RESTORE GAME.":PRINT
  803. 8000 PRINT"           GGGG  OOO   OOO  DDDD      L     U   U  CCCC K   K   ! ! !"
  804. 8010 PRINT"          G     O   O O   O D   D     L     U   U C     K KK    ! ! !"
  805. 8020 PRINT"          G  GG O   O O   O D   D     L     U   U C     KK      ! ! !"
  806. 8030 PRINT"          G   G O   O O   O D   D     L     U   U C     K KK"
  807. 8040 PRINT"           GGG   OOO   OOO  DDDD      LLLLL  UUU   CCCC K   K   ! ! !"
  808. 8050 PRINT:PRINT:PRINT:PRINT"                     Do you wish to restore a saved game?"
  809. 8060 Z$=INKEY$:IF Z$="Y" OR Z$="y" THEN 4620
  810. 8070 IF Z$="N" OR Z$="n" THEN RETURN
  811. 8080 GOTO 8060
  812. 8090 REM * WAIT FOR KEY *
  813. 8100 PRINT:PRINT"Press a key to continue."
  814. 8110 Z$=INKEY$:IF Z$="" THEN 8110 ELSE RETURN
  815. 8120 FOR I=1 TO NO: PRINT OB(I);" ";OB$(I);"   ";: NEXT I
  816. 8130 RM=30: OB(43)=-1: OB(44)=-1
  817.