AKLABETH.TXT 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  1. 0 ONERR GOTO 4
  2. 1 REM
  3. 4 PR# 0: IN# 0
  4. 5 HIMEM: 49151
  5. 7 CLEAR : GOSUB 60000
  6. 8 ZZ = RND ( - ABS (LN))
  7. 9 LEVEL = 0
  8. 10 TEXT : HOME : NORMAL : VTAB (12): PRINT " WELCOME TO AKALABETH, WORL
  9. D OF DOOM!"
  10. 20 DIM DN%(10,10),TE%(20,20),XX%(10),YY%(10),PER%(10,3),LD%(10,5),CD%(1
  11. 0,3),FT%(10,5),LAD%(10,3)
  12. 30 FOR X = 0 TO 20:TE%(X,0) = 1:TE%(0,X) = 1:TE%(X,20) = 1:TE%(20,X) =
  13. 1: NEXT
  14. 35 : VTAB (23): PRINT " (PLEASE WAIT)";
  15. 40 FOR X = 1 TO 19: FOR Y = 1 TO 19:TE%(X,Y) = INT ( RND (1) ^ 5 * 4.5
  16. )
  17. 41 IF TE%(X,Y) = 3 AND RND (1) > .5 THEN TE%(X,Y) = 0
  18. 42 NEXT : PRINT ".";: NEXT
  19. 50 TE%( INT ( RND (1) * 19 + 1), INT ( RND (1) * 19 + 1)) = 5:TX = INT
  20. ( RND (1) * 19 + 1):TY = INT ( RND (1) * 19 + 1):TE%(TX,TY) = 3
  21. 51 XX%(0) = 139:YY%(0) = 79
  22. 52 FOR X = 2 TO 20 STEP 2:XX%(X / 2) = INT ( ATN (1 / X) / ATN (1) *
  23. 140 + .5):YY%(X / 2) = INT (XX%(X / 2) * 4 / 7)
  24. 53 PER%(X / 2,0) = 139 - XX%(X / 2):PER%(X / 2,1) = 139 + XX%(X / 2):PER
  25. %(X / 2,2) = 79 - YY%(X / 2):PER%(X / 2,3) = 79 + YY%(X / 2): NEXT
  26. 54 PER%(0,0) = 0:PER%(0,1) = 279:PER%(0,2) = 0:PE%(0,3) = 159
  27. 55 FOR X = 1 TO 10:CD%(X,0) = 139 - XX%(X) / 3:CD%(X,1) = 139 + XX%(X) /
  28. 3:CD%(X,2) = 79 - YY%(X) * .7:CD%(X,3) = 79 + YY%(X): NEXT : PRINT "
  29. .";
  30. 56 FOR X = 0 TO 9:LD%(X,0) = (PER%(X,0) * 2 + PER%(X + 1,0)) / 3:LD%(X,
  31. 1) = (PER%(X,0) + 2 * PER%(X + 1,0)) / 3:W = LD%(X,0) - PE%(X,0)
  32. 57 LD%(X,2) = PE%(X,2) + W * 4 / 7:LD%(X,3) = PER%(X,2) + 2 * W * 4 / 7:
  33. LD%(X,4) = (PE%(X,3) * 2 + PE%(X + 1,3)) / 3:LD%(X,5) = (PE%(X,3) +
  34. 2 * PE%(X + 1,3)) / 3
  35. 58 LD%(X,2) = LD%(X,4) - (LD%(X,4) - LD%(X,2)) * .8:LD%(X,3) = LD%(X,5) -
  36. (LD%(X,5) - LD%(X,3)) * .8: IF LD%(X,3) = LD%(X,4) THEN LD%(X,3) = L
  37. D%(X,3) - 1
  38. 59 NEXT
  39. 60 FOR X = 0 TO 9:FT%(X,0) = 139 - XX%(X) / 3:FT%(X,1) = 139 + XX%(X) /
  40. 3:FT%(X,2) = 139 - XX%(X + 1) / 3:FT%(X,3) = 139 + XX%(X + 1) / 3
  41. 61 FT%(X,4) = 79 + (YY%(X) * 2 + YY%(X + 1)) / 3:FT%(X,5) = 79 + (YY%(X)
  42. + 2 * YY%(X + 1)) / 3: NEXT
  43. 62 FOR X = 0 TO 9:LAD%(X,0) = (FT%(X,0) * 2 + FT%(X,1)) / 3:LAD%(X,1) =
  44. (FT%(X,0) + 2 * FT%(X,1)) / 3:LAD%(X,3) = FT%(X,4):LAD%(X,2) = 159 -
  45. LAD%(X,3): NEXT
  46. 68 HOME : HCOLOR= 3
  47. 69 POKE 34,20: POKE 33,29: HOME
  48. 70 GOSUB 100: GOTO 1000
  49. 90 FOR X = 0 TO 9: FOR Y = 0 TO 5: PRINT LD%(X,Y);" ";: NEXT : PRINT : NEXT
  50. : GET Q$
  51. 100 HGR : FOR Y = - 1 TO 1: FOR X = - 1 TO 1
  52. 105 HPLOT 138,75 TO 142,75: HPLOT 140,73 TO 140,77
  53. 110 ZZ = TER%(TX + X,TY + Y):X1 = 65 + (X + 1) * 50:Y1 = (Y + 1) * 50
  54. 120 IF ZZ = 2 THEN HPLOT X1 + 20,Y1 + 20 TO X1 + 30,Y1 + 20 TO X1 + 30
  55. ,Y1 + 30 TO X1 + 20,Y1 + 30 TO X1 + 20,Y1 + 20
  56. 130 IF ZZ = 3 THEN HPLOT X1 + 10,Y1 + 10 TO X1 + 20,Y1 + 10 TO X1 + 20
  57. ,Y1 + 40 TO X1 + 10,Y1 + 40 TO X1 + 10,Y1 + 30 TO X1 + 40,Y1 + 30 TO
  58. X1 + 40,Y1 + 40 TO X1 + 30,Y1 + 40 TO X1 + 30,Y1 + 10 TO X1 + 40,Y1 +
  59. 10 TO X1 + 40,Y1 + 20 TO X1 + 10,Y1 + 20 TO X1 + 10,Y1 + 10
  60. 140 IF ZZ = 4 THEN HPLOT X1 + 20,Y1 + 20 TO X1 + 30,Y1 + 30: HPLOT X1 +
  61. 20,Y1 + 30 TO X1 + 30,Y1 + 20
  62. 150 IF ZZ = 5 THEN HPLOT X1,Y1 TO X1 + 50,Y1 TO X1 + 50,Y1 + 50 TO X1,
  63. Y1 + 50 TO X1,Y1: HPLOT X1 + 10,Y1 + 10 TO X1 + 10,Y1 + 40 TO X1 + 4
  64. 0,Y1 + 40 TO X1 + 40,Y1 + 10 TO X1 + 10,Y1 + 10 TO X1 + 40,Y1 + 40: HPLOT
  65. X1 + 10,Y1 + 40 TO X1 + 40,Y1 + 10
  66. 160 IF ZZ = 1 THEN HPLOT X1 + 10,Y1 + 50 TO X1 + 10,Y1 + 40 TO X1 + 20
  67. ,Y1 + 30 TO X1 + 40,Y1 + 30 TO X1 + 40,Y1 + 50: HPLOT X1,Y1 + 10 TO
  68. X1 + 10,Y1 + 10: HPLOT X1 + 50,Y1 + 10 TO X1 + 40,Y1 + 10: HPLOT X1,
  69. Y1 + 40 TO X1 + 10,Y1 + 40: HPLOT X1 + 40,Y1 + 40 TO X1 + 50,Y1 + 40
  70. 170 IF ZZ = 1 THEN HPLOT X1 + 10,Y1 TO X1 + 10,Y1 + 20 TO X1 + 20,Y1 +
  71. 20 TO X1 + 20,Y1 + 30 TO X1 + 30,Y1 + 30 TO X1 + 30,Y1 + 10 TO X1 +
  72. 40,Y1 + 10 TO X1 + 40,Y1
  73. 190 NEXT : NEXT : RETURN
  74. 200 HGR :DIS = 0: HCOLOR= 3
  75. 202 CENT = DNG%(PX + DX * DIS,PY + DY * DIS):LEFT = DNG%(PX + DX * DIS +
  76. DY,PY + DY * DIS - DX):RIGH = DNG%(PX + DX * DIS - DY,PY + DY * DIS +
  77. DX)
  78. 204 L1 = PER%(DIS,0):R1 = PER%(DIS,1):T1 = PER%(DIS,2):B1 = PER%(DIS,3):
  79. L2 = PER%(DIS + 1,0):R2 = PER%(DIS + 1,1):T2 = PER%(DIS + 1,2):B2 =
  80. PER%(DIS + 1,3)
  81. 205 CENT = INT (CENT):LEFT = INT (LEFT):RIGHT = INT (RIGHT)
  82. 206 MC = INT (CENT / 10):CENT = CENT - MC * 10:LEFT = INT ((LEFT / 10 -
  83. INT (LEF / 10)) * 10 + .1):RIGH = INT ((RIGH / 10 - INT (RIG / 10
  84. )) * 10 + .1)
  85. 208 IF DIS = 0 THEN 216
  86. 210 IF CENT = 1 OR CENT = 3 OR CENT = 4 THEN HPLOT L1,T1 TO R1,T1 TO R
  87. 1,B1 TO L1,B1 TO L1,T1
  88. 212 IF CENT = 1 OR CENT = 3 THEN EN = 1: GOTO 260
  89. 214 IF CENT = 4 THEN HPLOT CD%(DIS,0),CD%(DIS,3) TO CD%(DIS,0),CD%(DIS
  90. ,2) TO CD%(DIS,1),CD%(DIS,2) TO CD%(DIS,1),CD%(DIS,3):EN = 1: GOTO 2
  91. 60
  92. 216 IF LEFT = 1 OR LEFT = 3 OR LEFT = 4 THEN HPLOT L1,T1 TO L2,T2: HPLOT
  93. L1,B1 TO L2,B2
  94. 218 IF RIGH = 1 OR RIGH = 3 OR RIGH = 4 THEN HPLOT R1,T1 TO R2,T2: HPLOT
  95. R1,B1 TO R2,B2
  96. 220 IF LEFT = 4 AND DIS > 0 THEN HPLOT LD%(DIS,0),LD%(DIS,4) TO LD%(DI
  97. S,0),LD%(DIS,2) TO LD%(DIS,1),LD%(DIS,3) TO LD%(DIS,1),LD%(DIS,5)
  98. 222 IF LEFT = 4 AND DIS = 0 THEN HPLOT 0,LD%(DIS,2) - 3 TO LD%(DIS,1),
  99. LD%(DIS,3) TO LD%(DIS,1),LD%(DIS,5)
  100. 224 IF RIGH = 4 AND DIS > 0 THEN HPLOT 279 - LD%(DIS,0),LD%(DIS,4) TO
  101. 279 - LD%(DIS,0),LD%(DIS,2) TO 279 - LD%(DIS,1),LD%(DIS,3) TO 279 -
  102. LD%(DIS,1),LD%(DIS,5)
  103. 226 IF RIGH = 4 AND DIS = 0 THEN HPLOT 279,LD%(DIS,2) - 3 TO 279 - LD%
  104. (DIS,1),LD%(DIS,3) TO 279 - LD%(DIS,1),LD%(DIS,5)
  105. 228 IF LEFT = 3 OR LEFT = 1 OR LEFT = 4 THEN 234
  106. 230 IF DIS < > 0 THEN HPLOT L1,T1 TO L1,B1
  107. 232 HPLOT L1,T2 TO L2,T2 TO L2,B2 TO L1,B2
  108. 234 IF RIGH = 3 OR RIGH = 1 OR RIGH = 4 THEN 240
  109. 236 IF DIS < > 0 THEN HPLOT R1,T1 TO R1,B1
  110. 238 HPLOT R1,T2 TO R2,T2 TO R2,B2 TO R1,B2
  111. 240 IF CENT = 7 OR CENT = 9 THEN HPLOT FT%(DIS,0),FT%(DIS,4) TO FT%(DI
  112. S,2),FT%(DIS,5) TO FT%(DIS,3),FT%(DIS,5) TO FT%(DIS,1),FT%(DIS,4) TO
  113. FT%(DIS,0),FT%(DIS,4)
  114. 242 IF CENT = 8 THEN HPLOT FT%(DIS,0),158 - FT%(DIS,4) TO FT%(DIS,2),1
  115. 58 - FT%(DIS,5) TO FT%(DIS,3),158 - FT%(DIS,5) TO FT%(DIS,1),158 - F
  116. T%(DIS,4) TO FT%(DIS,0),158 - FT%(DIS,4)
  117. 244 IF CENT = 7 OR CENT = 8 THEN BASE = LAD%(DIS,3):TP = LAD%(DIS,2):LX
  118. = LAD%(DIS,0):RX = LAD%(DIS,1): HPLOT LX,BA TO LX,TP: HPLOT RX,TP TO
  119. RX,BA
  120. 246 IF CENT = 7 OR CENT = 8 THEN Y1 = (BA * 4 + TP) / 5:Y2 = (BA * 3 +
  121. TP * 2) / 5:Y3 = (BA * 2 + TP * 3) / 5:Y4 = (BA + TP * 4) / 5: HPLOT
  122. LX,Y1 TO RX,Y1: HPLOT LX,Y2 TO RX,Y2: HPLOT LX,Y3 TO RX,Y3: HPLOT LX
  123. ,Y4 TO RX,Y4
  124. 248 IF DIS > 0 AND CENT = 5 THEN HPLOT 139 - 10 / DIS,PER%(DIS,3) TO 1
  125. 39 - 10 / DIS,PER%(DIS,3) - 10 / DIS TO 139 + 10 / DIS,PER%(DIS,3) -
  126. 10 / DIS TO 139 + 10 / DIS,PER%(DIS,3) TO 139 - 10 / DIS,PER%(DIS,3)
  127. 249 IF CENT = 5 AND DIS > 0 THEN INVERSE : PRINT "CHEST!": NORMAL
  128. 250 IF DIS > 0 AND CENT = 5 THEN HPLOT 139 - 10 / DIS,PER%(DIS,3) - 10
  129. / DIS TO 139 - 5 / DIS,PER%(DIS,3) - 15 / DIS TO 139 + 15 / DIS,PER
  130. %(DIS,3) - 15 / DIS TO 139 + 15 / DIS,PER%(DIS,3) - 5 / DIS TO 139 +
  131. 10 / DIS,PER%(DIS,3)
  132. 252 IF DIS > 0 AND CENT = 5 THEN HPLOT 139 + 10 / DIS,PER%(DIS,3) - 10
  133. / DIS TO 139 + 15 / DIS,PER%(DIS,3) - 15 / DIS
  134. 260 IF MC < 1 THEN 490
  135. 265 B = 79 + YY%(DIS):C = 139
  136. 266 INVERSE : IF MC = 8 THEN PRINT "CHEST!";: CALL - 868: PRINT : NORMAL
  137. : GOTO 269
  138. 267 PRINT M$(MC);: CALL - 868: PRINT : NORMAL
  139. 269 IF DIS = 0 THEN 490
  140. 270 ON MC GOTO 300,310,320,330,340,350,360,370,380,390
  141. 280 GOTO 490
  142. 300 HPLOT C - 23 / DIS,B TO C - 15 / DIS,B TO C - 15 / DI,B - 15 / DI TO
  143. C - 8 / DI,B - 30 / DI TO C + 8 / DI,B - 30 / DI TO C + 15 / DI,B -
  144. 15 / DI TO C + 15 / DI,B TO C + 23 / DI,B
  145. 301 HPLOT C,B - 26 / DI TO C,B - 65 / DI: HPLOT C - 2 / DI + .5,B - 38 /
  146. DI TO C + 2 / DI + .5,B - 38 / DI: HPLOT C - 3 / DI + .5,B - 45 / DI
  147. TO C + 3 / DI + .5,B - 45 / DI: HPLOT C - 5 / DI + .5,B - 53 / DI TO
  148. C + 5 / DI + .5,B - 53 / DI
  149. 302 HPLOT C - 23 / DI,B - 56 / DI TO C - 30 / DI,B - 53 / DI TO C - 23 /
  150. DI,B - 45 / DI TO C - 23 / DI,B - 53 / DI TO C - 8 / DI,B - 38 / DI
  151. 303 HPLOT C - 15 / DI,B - 45 / DI TO C - 8 / DI,B - 60 / DI TO C + 8 /
  152. DI,B - 60 / DI TO C + 15 / DI,B - 45 / DI: HPLOT C + 15 / DI,B - 42 /
  153. DI TO C + 15 / DI,B - 57 / DI: HPLOT C + 12 / DI,B - 45 / DI TO C +
  154. 20 / DI,B - 45 / DI
  155. 304 HPLOT C,B - 75 / DI TO C - 5 / DI + .5,B - 80 / DI TO C - 8 / DI,B -
  156. 75 / DI TO C - 5 / DI + .5,B - 65 / DI TO C + 5 / DI + .5,B - 65 / D
  157. I TO C + 5 / DI + .5,B - 68 / DI TO C - 5 / DI + .5,B - 68 / DI TO C
  158. - 5 / DI + .5,B - 65 / DI
  159. 305 HPLOT TO C + 5 / DI + .5,B - 65 / DI TO C + 8 / DI,B - 75 / DI TO
  160. C + 5 / DI + .5,B - 80 / DI TO C - 5 / DI + .5,B - 80 / DI: HPLOT C -
  161. 5 / DI + .5,B - 72 / DI: HPLOT C + 5 / DI + .5,B - 72 / DI
  162. 309 GOTO 490
  163. 310 HPLOT C,B - 56 / DI TO C,B - 8 / DI TO C + 10 / DI,B TO C + 30 / DI
  164. ,B TO C + 30 / DI,B - 45 / DI TO C + 10 / DI,B - 64 / DI TO C,B - 56
  165. / DI
  166. 311 HPLOT TO C - 10 / DI,B - 64 / DI TO C - 30 / DI,B - 45 / DI TO C -
  167. 30 / DI,B TO C - 10 / DI,B TO C,B - 8 / DI
  168. 312 HPLOT C - 10 / DI,B - 64 / DI TO C - 10 / DI,B - 75 / DI TO C,B - 8
  169. 3 / DI TO C + 10 / DI,B - 75 / DI TO C,B - 79 / DI TO C - 10 / DI,B -
  170. 75 / DI TO C,B - 60 / DI TO C + 10 / DI,B - 75 / DI TO C + 10 / DI,B
  171. - 64 / DI
  172. 319 GOTO 490
  173. 320 HPLOT C + 5 / DI,B - 30 / DI TO C,B - 25 / DI TO C - 5 / DI,B - 30 /
  174. DI TO C - 15 / DI,B - 5 / DI TO C - 10 / DI,B TO C + 10 / DI,B TO C +
  175. 15 / DI,B - 5 / DI
  176. 321 HPLOT TO C + 20 / DI,B - 5 / DI TO C + 10 / DI,B TO C + 15 / DI,B -
  177. 5 / DI TO C + 5 / DI,B - 30 / DI TO C + 10 / DI,B - 40 / DI TO C + 3
  178. / DI + .5,B - 35 / DI TO C - 3 / DI + .5,B - 35 / DI TO C - 10 / DI
  179. ,B - 40 / DI TO C - 5 / DI,B - 30 / DI
  180. 322 HPLOT C - 5 / DI,B - 33 / DI TO C - 3 / DI + .5,B - 30 / DI: HPLOT
  181. C + 5 / DI,B - 33 / DI TO C + 3 / DI + .5,B - 30 / DI: HPLOT C - 5 /
  182. DI,B - 20 / DI TO C - 5 / DI,B - 15 / DI
  183. 323 HPLOT C + 5 / DI,B - 20 / DI TO C + 5 / DI,B - 15 / DI: HPLOT C - 7
  184. / DI,B - 20 / DI TO C - 7 / DI,B - 15 / DI: HPLOT C + 7 / DI,B - 20
  185. / DI TO C + 7 / DI,B - 15 / DI
  186. 329 GOTO 490
  187. 330 HPLOT C,B TO C - 15 / DI,B TO C - 8 / DI,B - 8 / DI TO C - 8 / DI,B
  188. - 15 / DI TO C - 15 / DI,B - 23 / DI TO C - 15 / DI,B - 15 / DI TO
  189. C - 23 / DI,B - 23 / DI
  190. 331 HPLOT TO C - 23 / DI,B - 45 / DI TO C - 15 / DI,B - 53 / DI TO C -
  191. 8 / DI,B - 53 / DI TO C - 15 / DI,B - 68 / DI TO C - 8 / DI,B - 75 /
  192. DI TO C,B - 75 / DI
  193. 332 HPLOT C,B TO C + 15 / DI,B TO C + 8 / DI,B - 8 / DI TO C + 8 / DI,B
  194. - 15 / DI TO C + 15 / DI,B - 23 / DI TO C + 15 / DI,B - 15 / DI TO
  195. C + 23 / DI,B - 23 / DI
  196. 333 HPLOT TO C + 23 / DI,B - 45 / DI TO C + 15 / DI,B - 53 / DI TO C +
  197. 8 / DI,B - 53 / DI TO C + 15 / DI,B - 68 / DI TO C + 8 / DI,B - 75 /
  198. DI TO C,B - 75 / DI
  199. 334 HPLOT C - 15 / DI,B - 68 / DI TO C + 15 / DI,B - 68 / DI: HPLOT C -
  200. 8 / DI,B - 53 / DI TO C + 8 / DI,B - 53 / DI: HPLOT C - 23 / DI,B -
  201. 15 / DI TO C + 8 / DI,B - 45 / DI
  202. 335 HPLOT C - 8 / DI,B - 68 / DI TO C,B - 60 / DI TO C + 8 / DI,B - 68 /
  203. DI TO C + 8 / DI,B - 60 / DI TO C - 8 / DI,B - 60 / DI TO C - 8 / DI
  204. ,B - 68 / DI
  205. 336 HPLOT C,B - 38 / DI TO C - 8 / DI,B - 38 / DI TO C + 8 / DI,B - 53 /
  206. DI TO C + 8 / DI,B - 45 / DI TO C + 15 / DI,B - 45 / DI TO C,B - 30 /
  207. DI TO C,B - 38 / DI
  208. 339 GOTO 490
  209. 340 HPLOT C - 10 / DI,B - 15 / DI TO C - 10 / DI,B - 30 / DI TO C - 15 /
  210. DI,B - 20 / DI TO C - 15 / DI,B - 15 / DI TO C - 15 / DI,B TO C + 15
  211. / DI,B TO C + 15 / DI,B - 15 / DI TO C - 15 / DI,B - 15 / DI
  212. 341 HPLOT C - 15 / DI,B - 10 / DI TO C + 15 / DI,B - 10 / DI: HPLOT C -
  213. 15 / DI,B - 5 / DI TO C + 15 / DI,B - 5 / DI
  214. 342 HPLOT C,B - 15 / DI TO C - 5 / DI,B - 20 / DI TO C - 5 / DI,B - 35 /
  215. DI TO C + 5 / DI,B - 35 / DI TO C + 5 / DI,B - 20 / DI TO C + 10 / D
  216. I,B - 15 / DI
  217. 343 HPLOT C - 5 / DI,B - 20 / DI TO C + 5 / DI,B - 20 / DI: HPLOT C - 5
  218. / DI,B - 25 / DI TO C + 5 / DI,B - 25 / DI: HPLOT C - 5 / DI,B - 30
  219. / DI TO C + 5 / DI,B - 30 / DI
  220. 344 HPLOT C - 10 / DI,B - 35 / DI TO C - 10 / DI,B - 40 / DI TO C - 5 /
  221. DI,B - 45 / DI TO C + 5 / DI,B - 45 / DI TO C + 10 / DI,B - 40 / DI TO
  222. C + 10 / DI,B - 35 / DI
  223. 345 HPLOT C - 10 / DI,B - 40 / DI TO C,B - 45 / DI TO C + 10 / DI,B - 4
  224. 0 / DI
  225. 346 HPLOT C - 5 / DI,B - 40 / DI TO C + 5 / DI,B - 40 / DI TO C + 15 /
  226. DI,B - 30 / DI TO C,B - 40 / DI TO C - 15 / DI,B - 30 / DI TO C - 5 /
  227. DI + .5,B - 40 / DI
  228. 349 GOTO 490
  229. 350 HPLOT C - 20 / DI,79 - YY%(DIS) TO C - 20 / DI,B - 88 / DI TO C - 1
  230. 0 / DI,B - 83 / DI TO C + 10 / DI,B - 83 / DI TO C + 20 / DI,B - 88 /
  231. DI TO C + 20 / DI,79 - YY%(DIS) TO C - 20 / DI,79 - YY%(DI)
  232. 351 HPLOT C - 20 / DI,B - 88 / DI TO C - 30 / DI,B - 83 / DI TO C - 30 /
  233. DI,B - 78 / DI: HPLOT C + 20 / DI,B - 88 / DI TO C + 30 / DI,B - 83 /
  234. DI TO C + 40 / DI,B - 83 / DI
  235. 352 HPLOT C - 15 / DI,B - 86 / DI TO C - 20 / DI,B - 83 / DI TO C - 20 /
  236. DI,B - 78 / DI TO C - 30 / DI,B - 73 / DI TO C - 30 / DI,B - 68 / DI
  237. TO C - 20 / DI,B - 63 / DI
  238. 353 HPLOT C - 10 / DI,B - 83 / DI TO C - 10 / DI,B - 58 / DI TO C,B - 5
  239. 0 / DI: HPLOT C + 10 / DI,B - 83 / DI TO C + 10 / DI,B - 78 / DI TO
  240. C + 20 / DI,B - 73 / DI TO C + 20 / DI,B - 40 / DI
  241. 354 HPLOT C + 15 / DI,B - 85 / DI TO C + 20 / DI,B - 78 / DI TO C + 30 /
  242. DI,B - 76 / DI TO C + 30 / DI,B - 60 / DI
  243. 355 HPLOT C,B - 83 / DI TO C,B - 73 / DI TO C + 10 / DI,B - 68 / DI TO
  244. C + 10 / DI,B - 63 / DI TO C,B - 58 / DI
  245. 359 GOTO 490
  246. 360 HPLOT C + 5 / DI + .5,B - 10 / DI TO C - 5 / DI + .5,B - 10 / DI TO
  247. C,B - 15 / DI TO C + 10 / DI,B - 20 / DI TO C + 5 / DI + .5,B - 15 /
  248. DI TO C + 5 / DI + .5,B - 10 / DI
  249. 361 HPLOT TO C + 7 / DI + .5,B - 6 / DI TO C + 5 / DI + .5,B - 3 / DI TO
  250. C - 5 / DI + .5,B - 3 / DI TO C - 7 / DI + .5,B - 6 / DI TO C - 5 /
  251. DI + .5,B - 10 / DI
  252. 362 HPLOT C + 2 / DI + .5,B - 3 / DI TO C + 5 / DI + .5,B TO C + 8 / DI
  253. ,B: HPLOT C - 2 / DI + .5,B - 3 / DI TO C - 5 / DI + .5,B TO C - 8 /
  254. DI,B: HPLOT C + 3 / DI + .5,B - 8 / DI: HPLOT C - 3 / DI + .5,B - 8 /
  255. DI: HPLOT C + 3 / DI + .5,B - 5 / DI TO C - 3 / DI + .5,B - 5 / DI
  256. 363 GOTO 490
  257. 370 HPLOT 139 - 10 / DIS,PER%(DIS,3) TO 139 - 10 / DIS,PER%(DIS,3) - 10
  258. / DIS TO 139 + 10 / DIS,PER%(DIS,3) - 10 / DIS TO 139 + 10 / DIS,PE
  259. R%(DIS,3) TO 139 - 10 / DIS,PER%(DIS,3)
  260. 371 HPLOT 139 - 10 / DIS,PER%(DIS,3) - 10 / DIS TO 139 - 5 / DIS,PER%(D
  261. IS,3) - 15 / DIS TO 139 + 15 / DIS,PER%(DIS,3) - 15 / DIS TO 139 + 1
  262. 5 / DIS,PER%(DIS,3) - 5 / DIS TO 139 + 10 / DIS,PER%(DIS,3)
  263. 372 HPLOT 139 + 10 / DIS,PER%(DIS,3) - 10 / DIS TO 139 + 15 / DIS,PER%(
  264. DIS,3) - 15 / DIS
  265. 373 GOTO 490
  266. 380 HPLOT C - 14 / DI,B - 46 / DI TO C - 12 / DI,B - 37 / DI TO C - 20 /
  267. DI,B - 32 / DI TO C - 30 / DI,B - 32 / DI TO C - 22 / DI,B - 24 / DI
  268. TO C - 40 / DI,B - 17 / DI TO C - 40 / DI,B - 7 / DI TO C - 38 / DI
  269. ,B - 5 / DI TO C - 40 / DI,B - 3 / DI TO C - 40 / DI,B
  270. 381 HPLOT TO C - 36 / DI,B TO C - 34 / DI,B - 2 / DI TO C - 32 / DI,B TO
  271. C - 28 / DI,B TO C - 28 / DI,B - 3 / DI TO C - 30 / DI,B - 5 / DI TO
  272. C - 28 / DI,B - 7 / DI TO C - 28 / DI,B - 15 / DI TO C,B - 27 / DI
  273. 382 HPLOT C + 14 / DI,B - 46 / DI TO C + 12 / DI,B - 37 / DI TO C + 20 /
  274. DI,B - 32 / DI TO C + 30 / DI,B - 32 / DI TO C + 22 / DI,B - 24 / DI
  275. TO C + 40 / DI,B - 17 / DI TO C + 40 / DI,B - 7 / DI TO C + 38 / DI
  276. ,B - 5 / DI TO C + 40 / DI,B - 3 / DI TO C + 40 / DI,B
  277. 383 HPLOT TO C + 36 / DI,B TO C + 34 / DI,B - 2 / DI TO C + 32 / DI,B TO
  278. C + 28 / DI,B TO C + 28 / DI,B - 3 / DI TO C + 30 / DI,B - 5 / DI TO
  279. C + 28 / DI,B - 7 / DI TO C + 28 / DI,B - 15 / DI TO C,B - 27 / DI
  280. 384 HPLOT C + 6 / DI,B - 48 / DI TO C + 38 / DI,B - 41 / DI TO C + 40 /
  281. DI,B - 42 / DI TO C + 18 / DI,B - 56 / DI TO C + 12 / DI,B - 56 / DI
  282. TO C + 10 / DI,B - 57 / DI TO C + 8 / DI,B - 56 / DI TO C - 8 / DI,
  283. B - 56 / DI TO C - 10 / DI,B - 58 / DI TO C + 14 / DI,B - 58 / DI TO
  284. C + 16 / DI,B - 59 / DI
  285. 385 HPLOT TO C + 8 / DI,B - 63 / DI TO C + 6 / DI,B - 63 / DI TO C + 2
  286. / DI + .5,B - 70 / DI TO C + 2 / DI + .5,B - 63 / DI TO C - 2 / DI +
  287. .5,B - 63 / DI TO C - 2 / DI + .5,B - 70 / DI TO C - 6 / DI,B - 63 /
  288. DI TO C - 8 / DI,B - 63 / DI TO C - 16 / DI,B - 59 / DI TO C - 14 /
  289. DI,B - 58 / DI
  290. 386 HPLOT TO C - 10 / DI,B - 57 / DI TO C - 12 / DI,B - 56 / DI TO C -
  291. 18 / DI,B - 56 / DI TO C - 36 / DI,B - 47 / DI TO C - 36 / DI,B - 39
  292. / DI TO C - 28 / DI,B - 41 / DI TO C - 28 / DI,B - 46 / DI TO C - 2
  293. 0 / DI,B - 50 / DI TO C - 18 / DI,B - 50 / DI TO C - 14 / DI,B - 46 /
  294. DI
  295. 387 GOTO 3087
  296. 390 HPLOT C + 6 / DI,B - 60 / DI TO C + 30 / DI,B - 90 / DI TO C + 60 /
  297. DI,B - 30 / DI TO C + 60 / DI,B - 10 / DI TO C + 30 / DI,B - 40 / DI
  298. TO C + 15 / DI,B - 40 / DI
  299. 391 HPLOT C - 6 / DI,B - 60 / DI TO C - 30 / DI,B - 90 / DI TO C - 60 /
  300. DI,B - 30 / DI TO C - 60 / DI,B - 10 / DI TO C - 30 / DI,B - 40 / DI
  301. TO C - 15 / DI,B - 40 / DI
  302. 392 HPLOT C,B - 25 / DI TO C + 6 / DI,B - 25 / DI TO C + 10 / DI,B - 20
  303. / DI TO C + 12 / DI,B - 10 / DI TO C + 10 / DI,B - 6 / DI TO C + 10
  304. / DI,B TO C + 14 / DI,B TO C + 15 / DI,B - 5 / DI TO C + 16 / DI,B TO
  305. C + 20 / DI,B
  306. 393 HPLOT TO C + 20 / DI,B - 6 / DI TO C + 18 / DI,B - 10 / DI TO C +
  307. 18 / DI,B - 20 / DI TO C + 15 / DI,B - 30 / DI TO C + 15 / DI,B - 45
  308. / DI TO C + 40 / DI,B - 60 / DI TO C + 40 / DI,B - 70 / DI
  309. 394 HPLOT TO C + 10 / DI,B - 55 / DI TO C + 6 / DI,B - 60 / DI TO C +
  310. 10 / DI,B - 74 / DI TO C + 6 / DI,B - 80 / DI TO C + 4 / DI + .5,B -
  311. 80 / DI TO C + 3 / DI + .5,B - 82 / DI TO C + 2 / DI + .5,B - 80 / D
  312. I TO C,B - 80 / DI
  313. 395 HPLOT C,B - 25 / DI TO C - 6 / DI,B - 25 / DI TO C - 10 / DI,B - 20
  314. / DI TO C - 12 / DI,B - 10 / DI TO C - 10 / DI,B - 6 / DI TO C - 10
  315. / DI,B TO C - 14 / DI,B TO C - 15 / DI,B - 5 / DI TO C - 16 / DI,B TO
  316. C - 20 / DI,B
  317. 396 HPLOT TO C - 20 / DI,B - 6 / DI TO C - 18 / DI,B - 10 / DI TO C -
  318. 18 / DI,B - 20 / DI TO C - 15 / DI,B - 30 / DI TO C - 15 / DI,B - 45
  319. / DI TO C - 40 / DI,B - 60 / DI TO C - 40 / DI,B - 70 / DI
  320. 397 HPLOT TO C - 10 / DI,B - 55 / DI TO C - 6 / DI,B - 60 / DI TO C -
  321. 10 / DI,B - 74 / DI TO C - 6 / DI,B - 80 / DI TO C - 4 / DI + .5,B -
  322. 80 / DI TO C - 3 / DI + .5,B - 82 / DI TO C - 2 / DI + .5,B - 80 / D
  323. I TO C,B - 80 / DI
  324. 398 HPLOT C - 6 / DI,B - 25 / DI TO C,B - 6 / DI TO C + 10 / DI,B TO C +
  325. 4 / DI + .5,B - 8 / DI TO C + 6 / DI,B - 25 / DI: HPLOT C - 40 / DI,
  326. B - 64 / DI TO C - 40 / DI,B - 90 / DI TO C - 52 / DI,B - 80 / DI TO
  327. C - 52 / DI,B - 40 / DI
  328. 399 HPLOT C + 40 / DI,B - 86 / DI TO C + 38 / DI,B - 92 / DI TO C + 42 /
  329. DI,B - 92 / DI TO C + 40 / DI,B - 86 / DI TO C + 40 / DI,B - 50 / DI
  330. 400 HPLOT C + 4 / DI + .5,B - 70 / DI TO C + 6 / DI,B - 74 / DI: HPLOT
  331. C - 4 / DI + .5,B - 70 / DI TO C - 6 / DI,B - 74 / DI: HPLOT C,B - 6
  332. 4 / DI TO C,B - 60 / DI: GOTO 490
  333. 490 IF EN = 1 THEN EN = 0: RETURN
  334. 491 DIS = DIS + 1: GOTO 202
  335. 500 ZZ = RND ( - ABS (LN) - TX * 10 - TY * 1000 + INOUT * 31.4)
  336. 501 FOR X = 1 TO 9: FOR Y = 1 TO 9:DNG%(X,Y) = 0: NEXT : NEXT
  337. 510 FOR X = 0 TO 10:DNG%(X,0) = 1:DNG%(X,10) = 1:DNG%(0,X) = 1:DNG%(10,
  338. X) = 1: NEXT
  339. 520 FOR X = 2 TO 8 STEP 2: FOR Y = 1 TO 9:DNG%(X,Y) = 1:DNG(Y,X) = 1: NEXT
  340. : NEXT
  341. 530 FOR X = 2 TO 8 STEP 2: FOR Y = 1 TO 9 STEP 2
  342. 540 IF RND (1) > .95 THEN DNG%(X,Y) = 2
  343. 541 IF RND (1) > .95 THEN DNG%(Y,X) = 2
  344. 542 IF RND (1) > .6 THEN DNG%(Y,X) = 3
  345. 543 IF RND (1) > .6 THEN DNG%(X,Y) = 3
  346. 544 IF RND (1) > .6 THEN DNG%(X,Y) = 4
  347. 545 IF RND (1) > .6 THEN DNG%(Y,X) = 4
  348. 546 IF RND (1) > .97 THEN DNG%(Y,X) = 9
  349. 547 IF RND (1) > .97 THEN DNG%(X,Y) = 9
  350. 548 IF RND (1) > .94 THEN DNG%(X,Y) = 5
  351. 549 IF RND (1) > .94 THEN DNG%(Y,X) = 5
  352. 568 NEXT : NEXT
  353. 569 DNG%(2,1) = 0: IF INOUT / 2 = INT (INOUT / 2) THEN DNG%(7,3) = 7:DN
  354. G%(3,7) = 8
  355. 570 IF INOUT / 2 < > INT (INOUT / 2) THEN DNG%(7,3) = 8:DNG%(3,7) = 7
  356. 580 IF INOUT = 1 THEN DNG%(1,1) = 8:DNG%(7,3) = 0
  357. 585 GOSUB 2000
  358. 590 RETURN
  359. 1000 VTAB (24): PRINT "COMMAND? ";: CALL - 868
  360. 1001 X = PEEK ( - 16384): IF X < 128 THEN 1001
  361. 1002 Q = FRE (0)
  362. 1010 POKE - 16368,0
  363. 1030 IF X = 141 THEN ON SGN (INOUT) + 1 GOTO 1100,1150
  364. 1040 IF X = 149 THEN ON SGN (INOUT) + 1 GOTO 1200,1250
  365. 1050 IF X = 136 THEN ON SGN (INOUT) + 1 GOTO 1300,1350
  366. 1060 IF X = 175 THEN ON SGN (INOUT) + 1 GOTO 1400,1450
  367. 1070 IF X = 216 THEN ON SGN (INOUT) + 1 GOTO 1500,1550
  368. 1080 IF X = 193 OR X = 155 THEN ON SGN (INOUT) + 1 GOTO 1600,1650
  369. 1081 IF X = 160 THEN PRINT "PASS": GOTO 1090
  370. 1085 IF X = 211 THEN 1700
  371. 1086 IF X = 208 THEN IF PA = 1 THEN PA = 0: PRINT "PAUSE OFF": GOTO 10
  372. 00
  373. 1087 IF X = 208 THEN IF PA = 0 THEN PA = 1: PRINT "PAUSE ON": GOTO 100
  374. 0
  375. 1089 PRINT "HUH?": GOTO 1000
  376. 1090 PW(0) = PW(0) - 1 + SGN (INOUT) * .9: IF PW(0) < 0 THEN C(0) = 0: PRINT
  377. : PRINT "YOU HAVE STARVED!!!!!": GOTO 1093
  378. 1091 POKE 33,40: VTAB (22): HTAB (30): PRINT "FOOD=";PW(0);: CALL - 86
  379. 8: VTAB (23): HTAB (30): PRINT "H.P.=";C(0);: CALL - 868: VTAB (24)
  380. : HTAB (30): PRINT "GOLD=";C(5);: CALL - 868: POKE 33,29: HTAB (1)
  381. 1092 PW(0) = INT (PW(0) * 10) / 10
  382. 1093 IF C(0) < = 0 THEN 6000
  383. 1095 IF IN > 0 THEN GOSUB 4000: IF C(0) < = 0 THEN 1093
  384. 1096 POKE 33,40: VTAB (22): HTAB (30): PRINT "FOOD=";PW(0);: CALL - 86
  385. 8: VTAB (23): HTAB (30): PRINT "H.P.=";C(0);: CALL - 868: VTAB (24)
  386. : HTAB (30): PRINT "GOLD=";C(5);: CALL - 868: POKE 33,29: HTAB (1)
  387. 1097 IF INOUT = 0 THEN GOSUB 100: GOTO 1000
  388. 1098 IF INOUT > 0 THEN GOSUB 200: GOTO 1000
  389. 1100 PRINT "NORTH": IF TER%(TX,TY - 1) = 1 THEN PRINT "YOU CAN'T PASS
  390. THE MOUNTAINS": GOTO 1090
  391. 1110 TY = TY - 1: GOTO 1090
  392. 1150 IF DNG%(PX + DX,PY + DY) < > 1 AND DNG%(PX + DX,PY + DY) < 10 THEN
  393. PX = PX + DX:PY = PY + DY
  394. 1155 PRINT "FORWARD"
  395. 1160 IF DNG%(PX,PY) = 2 THEN PRINT "AAARRRGGGHHH!!! A TRAP!":C(0)= C(
  396. 0) - INT ( RND (1) * INOUT + 3):MR = 1:INOUT = INOUT + 1: PRINT "FA
  397. LLING TO LEVEL ";IN: GOSUB 500: GOTO 1090
  398. 1165 Z = 0
  399. 1170 IF DNG%(PX,PY) = 5 THEN DNG%(PX,PY) = 0: PRINT "GOLD!!!!!":Z = INT
  400. ( RND (1) * 5 * INOUT + INOUT): PRINT Z;"-PIECES OF EIGHT":C(5) = C(
  401. 5) + Z
  402. 1175 IF Z > 0 THEN Z = INT ( RND (1) * 6): PRINT "AND A ";W$(Z):PW(Z) =
  403. PW(Z) + 1: GOTO 1090
  404. 1190 GOTO 1090
  405. 1200 PRINT "EAST": IF TER%(TX + 1,TY) = 1 THEN PRINT "YOU CAN'T PASS T
  406. HE MOUNTAINS": GOTO 1090
  407. 1210 TX = TX + 1: GOTO 1090
  408. 1250 PRINT "TURN RIGHT"
  409. 1255 IF DX < > 0 THEN DY = DX:DX = 0: GOTO 1090
  410. 1260 DX = - DY:DY = 0: GOTO 1090
  411. 1300 PRINT "WEST": IF TER%(TX - 1,TY) = 1 THEN PRINT "YOU CAN'T PASS T
  412. HE MOUNTAINS": GOTO 1090
  413. 1310 TX = TX - 1: GOTO 1090
  414. 1350 PRINT "TURN LEFT"
  415. 1355 IF DX < > 0 THEN DY = - DX:DX = 0: GOTO 1090
  416. 1360 DX = DY:DY = 0: GOTO 1090
  417. 1400 PRINT "SOUTH": IF TER%(TX,TY + 1) = 1 THEN PRINT "YOU CAN'T PASS
  418. THE MOUNTAINS": GOTO 1090
  419. 1410 TY = TY + 1: GOTO 1090
  420. 1450 PRINT "TURN AROUND":DX = - DX:DY = - DY: GOTO 1090
  421. 1500 IF TE%(TX,TY) = 3 THEN GOSUB 60080: GOSUB 60200: GOTO 1090
  422. 1510 IF TE%(TX,TY) = 4 AND INOUT = 0 THEN PRINT "GO DUNGEON": PRINT "P
  423. LEASE WAIT ":INOUT = 1: GOSUB 500:DX = 1:DY = 0:PX = 1:PY = 1: GOTO
  424. 1090
  425. 1515 IF TE%(TX,TY) = 5 THEN 7000
  426. 1520 PRINT "HUH?": GOTO 1000
  427. 1550 IF DNG%(PX,PY) < > 7 AND DNG%(PX,PY) < > 9 THEN 1580
  428. 1555 PRINT "GO DOWN TO LEVEL ";INOUT + 1
  429. 1560 INOUT = INOUT + 1: GOSUB 500:MR = 1: GOTO 1090
  430. 1580 IF DNG%(PX,PY) < > 8 THEN PRINT "HUH?": GOTO 1090
  431. 1581 IF IN = 1 THEN PRINT "LEAVE DUNGEON":IN = 0: GOTO 1586
  432. 1584 PRINT "GO UP TO LEVEL ";INOUT - 1
  433. 1585 INOUT = INOUT - 1: GOSUB 500:MR = 1
  434. 1586 IF IN = 0 THEN PRINT "THOU HAST GAINED": PRINT LK;" HIT POINTS":C
  435. (0) = C(0) + LK:LK = 0
  436. 1587 GOTO 1090
  437. 1600 GOTO 1090
  438. 1650 MN = 0:DAM = 0: PRINT "ATTACK": PRINT "WHICH WEAPON ";: GET Q$
  439. 1651 IF Q$ = "R" THEN DAM = 10: PRINT "RAPIER": IF PW(1) < 1 THEN PRINT
  440. "NOT OWNED": GOTO 1650
  441. 1652 IF Q$ = "A" THEN DAM = 5: PRINT "AXE": IF PW(2) < 1 THEN PRINT "N
  442. OT OWNED": GOTO 1650
  443. 1653 IF Q$ = "S" THEN DAM = 1: PRINT "SHIELD": IF PW(3) < 1 THEN PRINT
  444. "NOT OWNED": GOTO 1650
  445. 1654 IF Q$ = "B" THEN DAM = 4: PRINT "BOW": IF PW(4) < 1 THEN PRINT "N
  446. OT OWNED": GOTO 1650
  447. 1655 IF Q$ = "M" THEN PRINT "MAGIC AMULET": GOTO 1680
  448. 1656 IF Q$ = "B" AND PT$ = "M" THEN PRINT "MAGES CAN'T USE BOWS!": GOTO
  449. 1650
  450. 1657 IF Q$ = "R" AND PT$ = "M" THEN PRINT "MAGES CAN'T USE RAPIERS!": GOTO
  451. 1650
  452. 1659 IF DAM = 0 THEN PRINT "HANDS"
  453. 1660 IF DAM = 5 OR DAM = 4 THEN 1670
  454. 1661 MN = DN%(PX + DX,PY + DY) / 10:MN = INT (MN)
  455. 1662 IF MN < 1 OR C(2) - RND (1) * 25 < MN + INOUT THEN PRINT "YOU MI
  456. SSED": GOTO 1668
  457. 1663 PRINT "HIT!!! ":DAM ( RND (1) * DAM + C(1) / 5):MZ%(MN,1) = MZ%(
  458. MN,1) - DAM
  459. 1664 PRINT M$(MN);"'S HIT POINTS=";MZ%(MN,1)
  460. 1665 IF MZ%(MN,1) < 1 THEN PRINT "THOU HAST KILLED A ";M$(MN): PRINT "
  461. THOU SHALT RECEIVE":DA = INT (MN + IN): PRINT DA;" PIECES OF EIGHT"
  462. 1666 IF MZ%(MN,1) < 1 THEN C(5) = INT (C(5) + DA):DNG%(ML%(MN,0),ML%(M
  463. N,1)) = DNG%(ML%(MN,0),ML%(MN,1)) - 10 * MN:MZ%(MN,0) = 0
  464. 1667 LK = LK + INT (MN * IN / 2): IF MN = TASK THEN TASK = - TASK
  465. 1668 IF PA = 1 THEN PRINT "-CR- TO CONT. ";: INPUT Q$
  466. 1669 GOTO 1090
  467. 1670 IF DAM = 5 THEN PRINT "TO THROW OR SWING:";: GET Q$: IF Q$ < > "
  468. T" THEN PRINT "SWING": GOTO 1661
  469. 1671 IF DAM = 5 THEN PRINT "THROW":PW(2) = PW(2) - 1
  470. 1672 FOR Y = 1 TO 5: IF PX + DX * Y < 1 OR PX + DX * Y > 9 OR PY + DY *
  471. Y > 9 OR PY + DY * Y < 0 THEN 1662
  472. 1673 MN = DNG%(PX + DX * Y,PY + DY * Y):MN = INT (MN / 10): IF MN > 0 THEN
  473. 1662
  474. 1674 NEXT : GOTO 1662
  475. 1680 IF PW(5) < 1 THEN PRINT "NONE OWNED": GOTO 1650
  476. 1681 IF PT$ = "F" THEN Q = INT ( RND (1) * 4 + 1): GOTO 1685
  477. 1682 PRINT "1-LADDER-UP","2-LADDER-DN": PRINT "3-KILL","4-BAD??": PRINT
  478. "CHOICE ";: GET Q$:Q = VAL (Q$): PRINT Q: IF Q < 1 OR Q > 4 THEN 16
  479. 82
  480. 1683 IF RND (1) > .75 THEN PRINT "LAST CHARGE ON THIS AMULET!":PW(5) =
  481. PW(5) - 1
  482. 1685 ON Q GOTO 1686,1690,1691,1692
  483. 1686 PRINT "LADDER UP":DNG%(PX,PY) = 8: GOTO 1090
  484. 1690 PRINT "LADDER DOWN":DNG%(PX,PY) = 7: GOTO 1090
  485. 1691 PRINT "MAGIC ATTACK":DAM = 10 + INOUT: GOTO 1672
  486. 1692 ON INT ( RND (1) * 3 + 1) GOTO 1693,1695,1697
  487. 1693 PRINT "YOU HAVE BEEN TURNED": PRINT "INTO A TOAD!"
  488. 1694 FOR Z2 = 1 TO 4:C(Z2) = 3: NEXT Z2: GOTO 1090
  489. 1695 PRINT "YOU HAVE BEEN TURNED": PRINT "INTO A LIZARD MAN": FOR Y = 0
  490. TO 4:C(Y) = INT (C(Y) * 2.5): NEXT : GOTO 1090
  491. 1697 PRINT "BACKFIRE":C(0) = C(0) / 2: GOTO 1090
  492. 1700 GOSUB 60080: HOME : PRINT "PRESS -CR- TO CONTINUE";: INPUT Q$: TEXT
  493. : HOME : GOTO 1090
  494. 2000 NM = 0: FOR X = 1 TO 10
  495. 2005 MZ%(X,0) = 0:MZ%(X,1) = X + 3 + INOUT
  496. 2010 IF X - 2 > INO OR RND (1) > .4 THEN 2090
  497. 2020 ML%(X,0) = INT ( RND (1) * 9 + 1):ML%(X,1) = INT ( RND (1) * 9 +
  498. 1)
  499. 2030 IF DNG%(ML%(X,0),ML%(X,1)) < > 0 THEN 2020
  500. 2040 IF ML%(X,0) = PX AND ML%(X,1) = PY THEN 2020
  501. 2050 DNG%(ML%(X,0),ML%(X,1)) = X * 10
  502. 2051 MZ%(X,0) = 1
  503. 2052 NM = NM + 1
  504. 2055 MZ%(X,1) = X * 2 + IN * 2 * LP
  505. 2090 NEXT : RETURN
  506. 3087 HPLOT C - 28 / DI,B - 41 / DI TO C + 30 / DI,B - 55 / DI: HPLOT C +
  507. 28 / DI,B - 58 / DI TO C + 22 / DI,B - 56 / DI TO C + 22 / DI,B - 53
  508. / DI TO C + 28 / DI,B - 52 / DI TO C + 34 / DI,B - 54 / DI: HPLOT C
  509. + 20 / DI,B - 50 / DI TO C + 26 / DI,B - 47 / DI
  510. 3088 HPLOT C + 10 / DI,B - 58 / DI TO C + 10 / DI,B - 61 / DI TO C + 4 /
  511. DI,B - 58 / DI: HPLOT C - 10 / DI,B - 58 / DI TO C - 10 / DI,B - 61 /
  512. DI TO C - 4 / DI,B - 58 / DI: HPLOT C + 40 / DI,B - 9 / DI TO C + 50
  513. / DI,B - 12 / DI TO C + 40 / DI,B - 7 / DI
  514. 3089 HPLOT C - 8 / DI,B - 25 / DI TO C + 6 / DI,B - 7 / DI TO C + 28 /
  515. DI,B - 7 / DI TO C + 28 / DI,B - 9 / DI TO C + 20 / DI,B - 9 / DI TO
  516. C + 6 / DI,B - 25 / DI: GOTO 490
  517. 4000 FOR MM = 1 TO 10: IF MZ%(MM,0) = 0 THEN 4999
  518. 4010 RA = SQR ((PX - ML%(MM,0)) ^ 2 + (PY - ML%(MM,1)) ^ 2)
  519. 4011 IF MZ%(MM,1) < IN * LP THEN 4030
  520. 4020 IF RA < 1.3 THEN 4500
  521. 4025 IF MM = 8 AND RA < 3 THEN 4999
  522. 4030 X1 = SGN (PX - ML%(MM,0)):Y1 = SGN (PY - ML%(MM,1))
  523. 4031 IF MZ%(MM,1) < IN * LP THEN X1 = - X1:Y1 = - Y1
  524. 4035 IF Y1 = 0 THEN 4045
  525. 4040 D = DNG%(ML%(MM,0),(ML%(MM,1) + Y1 + .5)): IF D = 1 OR D > 9 OR D =
  526. 2 THEN 4045
  527. 4042 X1 = 0: GOTO 4050
  528. 4045 Y1 = 0: IF X1 = 0 THEN 4050
  529. 4046 D = DN%((ML%(MM,0) + X1 + .5),ML%(MM,1)): IF D = 1 OR D > 9 OR D =
  530. 2 THEN X1 = 0: GOTO 4081
  531. 4050 DNG%(ML%(MM,0),ML%(MM,1)) = DNG%(ML%(MM,0),ML%(MM,1)) - 10 * MM
  532. 4055 IF ML%(MM,0) + X1 = PX AND ML%(MM,1) + Y1 = PY THEN 4999
  533. 4060 ML%(MM,0) = ML%(MM,0) + X1:ML%(MM,1) = ML%(MM,1) + Y1
  534. 4080 DNG%(ML%(MM,0),ML%(MM,1)) = (DNG%(ML%(MM,0),ML%(MM,1)) + 10 * MM +
  535. .5)
  536. 4081 IF X1 < > 0 OR Y1 < > 0 THEN 4999
  537. 4082 IF MZ%(MM,1) < IN * LP AND RA < 1.3 THEN 4500
  538. 4083 IF MZ%(MM,1) < IN * LP THEN MZ%(MM,1) = MZ%(MM,1) + MM + IN
  539. 4499 GOTO 4999
  540. 4500 IF MM = 2 OR MM = 7 THEN 4600
  541. 4509 PRINT "YOU ARE BEING ATTACKED": PRINT "BY A ";M$(MM)
  542. 4510 IF RND (1) * 20 - SGN (PW(3)) - C(3) + MM + IN < 0 THEN PRINT "
  543. MISSED": GOTO 4525
  544. 4520 PRINT "HIT":C(0) = C(0) - INT ( RND (1) * MM + IN)
  545. 4525 IF PA = 1 THEN PRINT "-CR- TO CONT. ";: INPUT Q$
  546. 4530 GOTO 4999
  547. 4600 IF RND (1) < .5 THEN 4509
  548. 4610 IF MM = 7 THEN PW(0) = INT (PW(0) / 2): PRINT "A GREMLIN STOLE SO
  549. ME FOOD": GOTO 4525
  550. 4620 ZZ = INT ( RND (1) * 6): IF PW(ZZ) < 1 THEN 4620
  551. 4630 PRINT "A THIEF STOLE A ";W$(ZZ):PW(ZZ) = PW(ZZ) - 1: GOTO 4525
  552. 4999 NEXT : RETURN
  553. 6000 POKE 33,40: PRINT : PRINT : PRINT " WE MOURN THE PASSING OF
  554. "
  555. 6005 IF LEN (PN$) > 22 THEN PN$ = ""
  556. 6010 IF PN$ = "" THEN PN$ = "THE PEASANT"
  557. 6020 PN$ = PN$ + " AND HIS COMPUTER"
  558. 6030 HTAB (20 - INT ( LEN (PN$) / 2)): PRINT PN$
  559. 6035 PRINT " TO INVOKE A MIRACLE OF RESSURECTION"
  560. 6040 PRINT " <HIT ESC KEY>";
  561. 6050 IF PEEK ( - 16384) = 155 THEN 1
  562. 6060 GOTO 6050
  563. 7000 HOME : TEXT : HOME
  564. 7001 CALL 62450
  565. 7010 IF PN$ < > "" THEN 7500
  566. 7020 PRINT : PRINT : PRINT " WELCOME PEASANT INTO THE HALLS OF": PRINT
  567. "THE MIGHTY LORD BRITISH. HEREIN THOU MAYCHOOSE TO DARE BATTLE WITH
  568. THE EVIL": PRINT "CREATURES OF THE DEPTHS, FOR GREAT": PRINT "REWARD
  569. !"
  570. 7030 PRINT : PRINT "WHAT IS THY NAME PEASANT ";: INPUT PN$
  571. 7040 PRINT "DOEST THOU WISH FOR GRAND ADVENTURE ? ";: GET Q$: IF Q$ < >
  572. "Y" THEN PRINT : PRINT "THEN LEAVE AND BEGONE!":PN$ = "": PRINT : PRINT
  573. " PRESS -SPACE- TO CONT.";: GET Q$: GOTO 1090
  574. 7045 PRINT
  575. 7050 PRINT : PRINT "GOOD! THOU SHALT TRY TO BECOME A ": PRINT "KNIGHT!!
  576. !": PRINT : PRINT "THY FIRST TASK IS TO GO INTO THE": PRINT "DUNGEON
  577. S AND TO RETURN ONLY AFTER": PRINT "KILLING A(N) ";:TASK = INT (C(4
  578. ) / 3): PRINT M$(TASK)
  579. 7060 PRINT : PRINT " GO NOW UPON THIS QUEST, AND MAY": PRINT "LADY
  580. LUCK BE FAIR UNTO YOU.....": PRINT ".....ALSO I, BRITISH, HAVE INCRE
  581. ASED": PRINT "EACH OF THY ATTRIBUTES BY ONE!"
  582. 7070 PRINT : PRINT " PRESS -SPACE- TO CONT.";: GET Q$: FOR X =
  583. 0 TO 5:C(X) = C(X) + 1: NEXT : HOME : GOTO 1090
  584. 7500 IF TASK > 0 THEN PRINT : PRINT : PRINT PN$;" WHY HAST THOU RETURN
  585. ED?": PRINT "THOU MUST KILL A(N) ";M$(TASK): PRINT "GO NOW AND COMPL
  586. ETE THY QUEST!": PRINT : PRINT " PRESS -SPACE- TO CONT.";: GET
  587. Q$: HOME : GOTO 1090
  588. 7510 PRINT : PRINT : PRINT : PRINT "AAHH!!.....";PN$: PRINT : PRINT "TH
  589. OU HAST ACOMPLISHED THY QUEST!": IF ABS (TASK) = 10 THEN 7900
  590. 7520 PRINT "UNFORTUNATELY, THIS IS NOT ENOUGH TO": PRINT "BECOME A KNIG
  591. HT.":TASK = ABS (TASK) + 1: PRINT : PRINT "NOW THOU MUST KILL A(N)
  592. ";M$(TASK)
  593. 7530 GOTO 7060
  594. 7900 TEXT : HOME : PRINT : PRINT : PRINT :PN$ = "LORD " + PN$: PRINT "
  595. ";PN$;","
  596. 7910 PRINT " THOU HAST PROVED THYSELF WORTHY": PRINT "OF KNIGHTHO
  597. OD, CONTINUE PLAY IF THOU": PRINT "DOTH WISH, BUT THOU HAST ACOMPLIS
  598. HED": PRINT "THE MAIN OBJECTIVE OF THIS GAME..."
  599. 7920 IF LP = 10 THEN 7950
  600. 7930 PRINT : PRINT " NOW MAYBE THOU ART FOOLHEARTY": PRINT "ENOUGH TO
  601. TRY DIFFICULTY LEVEL ";LP + 1
  602. 7940 GOTO 7070
  603. 7950 PRINT : PRINT "...CALL CALIFORNIA PACIFIC COMPUTER": PRINT "AT (41
  604. 5)-569-9126 TO REPORT THIS": PRINT "AMAZING FEAT!"
  605. 7990 GOTO 7070
  606. 60000 TEXT : HOME : VTAB (5): INPUT "TYPE THY LUCKY NUMBER.....";Q$:LN =
  607. VAL (Q$)
  608. 60005 VTAB (7): INPUT "LEVEL OF PLAY (1-10)......";Q$:LP = INT ( VAL (
  609. Q$))
  610. 60006 IF LP < 1 OR LP > 10 THEN 60005
  611. 60010 ZZ = RND ( - ABS (LN))
  612. 60020 DATA "HIT POINTS.....","STRENGTH.......","DEXTERITY......","STA
  613. MINA........","WISDOM.........","GOLD..........."
  614. 60025 DIM PW(5)
  615. 60030 DIM C$(5): FOR X = 0 TO 5: READ C$(X): NEXT
  616. 60040 DIM C(5)
  617. 60041 DIM M$(10),ML%(10,1),MZ%(10,1)
  618. 60042 DATA "SKELETON","THIEF","GIANT RAT","ORC","VIPER","CARRION
  619. CRAWLER","GREMLIN","MIMIC","DAEMON","BALROG"
  620. 60043 FOR X = 1 TO 10: READ M$(X): NEXT
  621. 60050 FOR X = 0 TO 5:C(X) = INT ( SQR ( RND (1)) * 21 + 4): NEXT X
  622. 60060 HOME : VTAB (8): FOR X = 0 TO 5: PRINT C$(X),C(X): NEXT : PRINT :
  623. PRINT "SHALT THOU PLAY WITH THESE QUALITIES?": HTAB (20): GET Q$: IF
  624. Q$ < > "Y" THEN 60050
  625. 60061 VTAB (15): PRINT : PRINT "AND SHALT THOU BE A FIGHTER OR A MAGE?"
  626. : HTAB (20): GET PT$
  627. 60062 IF PT$ = "M" OR PT$ = "F" THEN 60070
  628. 60063 GOTO 60061
  629. 60070 DIM W$(5): DATA "FOOD","RAPIER","AXE","SHIELD","BOW AND ARROWS
  630. ","MAGIC AMULET": FOR X = 0 TO 5: READ W$(X): NEXT
  631. 60075 GOSUB 60080: GOSUB 60200: RETURN
  632. 60080 TEXT : HOME : PRINT : PRINT : PRINT " STAT'S WEA
  633. PONS": PRINT : FOR X = 0 TO 5: PRINT C$(X);C(X); TAB( 24);"0-";W$(X)
  634. : NEXT : POKE 34,12: HOME : POKE 35,15
  635. 60081 VTAB (11): HTAB (18): PRINT "Q-QUIT"
  636. 60082 IF PW(0) > 0 THEN CALL 62450
  637. 60085 FOR Z = 0 TO 5: VTAB (5 + Z): HTAB (25 - LEN ( STR$ (PW(Z)))): PRINT
  638. PW(Z);: NEXT
  639. 60090 VTAB (17): HTAB (5): PRINT "PRICE";: HTAB (15): PRINT "DAMAGE";: HTAB
  640. (25): PRINT "ITEM"
  641. 60100 FOR X = 0 TO 5: VTAB (19 + X): HTAB (25): PRINT W$(X): NEXT
  642. 60110 VTAB (19): HTAB (5): PRINT "1 FOR 10": HTAB (15): PRINT "N/A": VTAB
  643. (20): HTAB (5): PRINT "8": HTAB (15): PRINT "1-10": VTAB (21): HTAB
  644. (5): PRINT "5": HTAB (15): PRINT "1-5"
  645. 60120 VTAB (22): HTAB (5): PRINT "6": HTAB (15): PRINT "1": VTAB (23): HTAB
  646. (5): PRINT "3": HTAB (15): PRINT "1-4": VTAB (24): HTAB (5): PRINT "
  647. 15": HTAB (15): PRINT "?????": HOME
  648. 60130 RETURN
  649. 60200 HOME : PRINT "WELCOME TO THE ADVENTURE SHOP"
  650. 60210 PRINT "WHICH ITEM SHALT THOU BUY ";: GET Q$: IF Q$ = "Q" THEN PRINT
  651. : PRINT "BYE": FOR Z = 1 TO 1000: NEXT : TEXT : HOME : RETURN
  652. 60215 Z = - 1
  653. 60220 IF Q$ = "F" THEN PRINT "FOOD":Z = 0:P = 1
  654. 60221 IF Q$ = "R" THEN PRINT "RAPIER":Z = 1:P = 8
  655. 60222 IF Q$ = "A" THEN PRINT "AXE":Z = 2:P = 5
  656. 60223 IF Q$ = "S" THEN PRINT "SHIELD":Z = 3:P = 6
  657. 60224 IF Q$ = "B" THEN PRINT "BOW":Z = 4:P = 3
  658. 60225 IF Q$ = "M" THEN PRINT "AMULET":Z = 5:P = 15
  659. 60226 IF Z = - 1 THEN PRINT Q$: PRINT "I'M SORRY WE DON'T HAVE THAT."
  660. : GOTO 60210
  661. 60227 IF Q$ = "R" AND PT$ = "M" THEN PRINT "I'M SORRY MAGES": PRINT "C
  662. AN'T USE THAT!": GOTO 60210
  663. 60228 IF Q$ = "B" AND PT$ = "M" THEN PRINT "I'M SORRY MAGES": PRINT "C
  664. AN'T USE THAT!": GOTO 60210
  665. 60230 IF C(5) - P < 0 THEN PRINT "M'LORD THOU CAN NOT AFFORD THAT ITEM
  666. .": GOTO 60210
  667. 60235 IF Z = 0 THEN PW(Z) = PW(Z) + 9
  668. 60236 PW(Z) = PW(Z) + 1:C(5) = C(5) - P
  669. 60237 VTAB (10): HTAB (16): PRINT C(5);" "
  670. 60240 VTAB (5 + Z): HTAB (25 - LEN ( STR$ (PW(Z)))): PRINT PW(Z);: HTAB
  671. (1): VTAB (14): PRINT
  672. 60250 GOTO 60210