home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib23a.dsk / APRIL.1985 / IDOL.bas < prev    next >
BASIC Source File  |  2023-02-26  |  18KB  |  264 lines

  1. 10  REM **********************
  2. 20  REM *       IDOL         *
  3. 30  REM *   BY GLEN ARCHER   *
  4. 40  REM * COPYRIGHT (C) 1985 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  TEXT : HOME : GOSUB 2010
  9. 90  REM ** TELL PLAYER TO WAIT **
  10. 100  HOME :K = 7: VTAB 17: HTAB K: INVERSE : PRINT "                   ": FOR J = 1 TO 5: VTAB 17 +J: HTAB K: PRINT " ";: HTAB K +18: PRINT " ": NEXT : HTAB K: PRINT "                   ": NORMAL : REM 19 SPACES
  11. 110  VTAB 19: HTAB K +2: PRINT "CREATING FOREST": VTAB 21: HTAB K +4: PRINT "PLEASE WAIT"
  12. 120  REM * CREATE RANDOM FOREST *
  13. 130  FOR J = 1 TO 14: FOR K = 1 TO 31:X =  RND(1): IF X >.8  THEN L = 1: GOTO 170
  14. 140  IF X >.5  THEN L = 4: GOTO 170
  15. 150  IF X >.465  THEN L = 3: GOTO 170
  16. 160 L =  INT( RND(1) *10) +5
  17. 170 MP(J,K) = L: VTAB J: HTAB K: IF L = 1  THEN  PRINT "X": GOTO 190
  18. 180  PRINT "."
  19. 190  NEXT : NEXT :MP(8,16) = 2:ST = 1:HP = 3000:TR = 0:MR = 0:TT = 0:SC = 0: FOR J = 1 TO 10:KM(J) = 0: NEXT :DL = 0:FL = 0
  20. 200  REM ** SET X/Y CO-ORDINATES  OF IDOL'S POSITION **
  21. 205 J =  INT( RND(1) *14 +1):K =  INT( RND(1) *31 +1): IF (J = 8  AND K = 16)  OR MP(J,K) = 1  THEN 205
  22. 207 MP(J,K) = 75
  23. 210 J =  INT( RND(1) *14) +1:K =  INT( RND(1) *31) +1: IF (J = 8  AND K = 16)  OR MP(J,K) = 1  THEN 210
  24. 220 DY = J:DX = K:MP(J,K) = 100:PY = 8:PX = 16:TX = PX:TY = PY: VTAB PY: HTAB PX: FLASH : PRINT "^": NORMAL 
  25. 230  REM **SET UP SCREEN DISPLAY**
  26. 240  VTAB 1: HTAB 35: PRINT "HIGH": HTAB 34: PRINT "SCORE:"
  27. 250  VTAB 4: FLASH :HI$ =  STR$(HI): HTAB 39 - LEN(HI$): PRINT HI$: NORMAL : GOSUB 2270: GOSUB 2290: POKE 34,15
  28. 260  HOME 
  29. 270  IF ST = 1  THEN ST = 0: VTAB 17: GOTO 450
  30. 280  REM *GOTO VARIOUS ROUTINES*
  31. 290  IF X = 3  THEN 640
  32. 300  IF X = 4  THEN 750
  33. 310  IF X = 50  THEN 780
  34. 315  IF X = 75  THEN 10000
  35. 320  IF X = 100  THEN 1890
  36. 330  REM *PLAYER FINDS A MONSTER*
  37. 340  PRINT ME$( INT( RND(1) *10) +1)" THERE'S A "MN$(X -4)" HERE": PRINT "GUARDING ";:A =  INT( RND(1) *20) +1: PRINT TR$(A)"!"
  38. 350  REM ** IF PLAYER HAS SWORD, KILL THE DRAGON **
  39. 360  IF X -4 = 8  AND MR = 1  THEN  INVERSE : PRINT "YOUR SWORD KILLED THE DRAGON!": NORMAL : GOSUB 2370:KM(8) = KM(8) +1: GOTO 810
  40. 370  REM ** PRINT THE OPTIONS **
  41. 380  VTAB 19: PRINT "YOU MAY DO ONE OF THE FOLLOWING:";: PRINT "F) FIGHT  B) BRIBE  R) RUN": PRINT : PRINT "WHAT DO YOU WANT TO DO ? ";
  42. 390  POKE  -16368,0: GET A$: IF A$ < >"F"  AND A$ < >"B"  AND A$ < >"R"  THEN  GOSUB 2310: GOTO 390
  43. 400  REM ** GOTO THE ROUTINES **
  44. 410 A1 = 0: FOR J = 1 TO 3: IF A$ =  MID$ ("FBR",J,1)  THEN A1 = J:J = 3
  45. 420  NEXT J
  46. 430  PRINT A$: ON A1 GOTO 1150,1240,1350
  47. 440  REM **IS PLAYER BOXED IN?**
  48. 450  GOSUB 2560
  49. 460  REM ** IS PLAYER DEAD ? **
  50. 470  IF HP <1  THEN 1640
  51. 480  IF HP >10000  THEN HP = 10000
  52. 490 CV =  PEEK(37): GOSUB 2270: POKE 37,CV
  53. 500  REM ** GET A DIRECTION **
  54. 510  PRINT : PRINT "WHICH DIRECTION (";: INVERSE : PRINT "Q";: NORMAL : PRINT " TO QUIT) ? ";
  55. 520  POKE  -16368,0: GET A$: IF A$ < >"N"  AND A$ < >"W"  AND A$ < >"E"  AND A$ < >"S"  AND A$ < >"Q"  THEN  GOSUB 2310: GOTO 520
  56. 530  PRINT A$: IF A$ = "N"  THEN TY = PY -1: GOTO 580
  57. 540  IF A$ = "S"  THEN TY = PY +1: GOTO 580
  58. 550  IF A$ = "W"  THEN TX = PX -1: GOTO 580
  59. 560  IF A$ = "Q"  THEN 1960
  60. 570 TX = PX +1
  61. 580  GOSUB 2240
  62. 590  REM *** HIT A TREE ? ***
  63. 600  IF MP(TY,TX) = 1  THEN  GOSUB 2330: PRINT : HTAB 10: INVERSE : PRINT "YOU HIT A TREE!": NORMAL :TY = PY:TX = PX: GOTO 450
  64. 610 MP(PY,PX) = 50: VTAB PY: HTAB PX: PRINT ":": IF A$ = "N"  OR A$ = "S"  THEN PY = TY
  65. 620  IF A$ = "E"  OR A$ = "W"  THEN PX = TX
  66. 630 X = MP(PY,PX):MP(PY,PX) = 2: VTAB PY: HTAB PX: FLASH : PRINT "^": NORMAL : GOTO 260
  67. 640  IF  RND(1) >.4  THEN 710
  68. 650  REM *** PLAYER FELL INTO A PIT ***
  69. 660  PRINT : HTAB 6: PRINT "YOU FELL INTO A PIT!": GOSUB 2350
  70. 670 LS =  INT((20 * RND(1)) +1) *10:HP = HP -LS: PRINT : PRINT " YOU LOSE "LS" STRENGTH POINTS."
  71. 680  PRINT : IF HP < = 0  THEN HP = 0:DL = 0:TR = 0: PRINT  TAB( 10)"YOU ARE DEAD!": GOSUB 2390: GOSUB 2200: GOTO 1660
  72. 690  GOTO 450
  73. 700  REM *** GIANT CONDOR ***
  74. 710  PRINT : PRINT "A GIANT CONDOR GRABBED YOU": PRINT : PRINT "AND MOVED YOU TO A NEW SPOT!": GOSUB 2410
  75. 720 MP(PY,PX) = 50: VTAB PY: HTAB PX: PRINT ":"
  76. 730 J =  INT( RND(1) *14) +1:K =  INT( RND(1) *31) +1: IF MP(J,K) = 1  OR (J = PY  AND K = PX)  THEN 730
  77. 740 PY = J:PX = K:TX = PX:TY = PY:X = MP(PY,PX):MP(PY,PX) = 2: VTAB PY: HTAB PX: FLASH : PRINT "^": NORMAL : GOTO 260
  78. 750  IF  RND(1) >.75  THEN 800
  79. 760  IF  RND(1) >.5  THEN 1000
  80. 770  REM *** NOTHING THERE ***
  81. 780  PRINT : PRINT "     THERE'S NOTHING HERE.": PRINT : GOTO 450
  82. 790  REM ** FOUND A TREASURE **
  83. 800 A =  INT(20 * RND(1)) +1
  84. 810  IF FL = 1  THEN FL = 0: GOTO 980
  85. 820  PRINT : PRINT "  YOU FOUND ";TR$(A)"!": PRINT 
  86. 830  IF A = 4  OR A = 7  OR A = 9  THEN 860
  87. 840  PRINT "  YOU GAIN "TV(A)" TREASURE POINTS.":TR = TR +TV(A): GOTO 450
  88. 850  REM *** MAGIC POWDER ? ***
  89. 860  IF A = 4  AND  RND(1) >.6  THEN  PRINT "   YOUR STRENGTH POINTS": PRINT  TAB( 8)"JUST DOUBLED!":HP = HP *2: GOSUB 2430: GOTO 450
  90. 870  REM ** STRENGTH POTION ? **
  91. 880  IF A = 9  THEN  PRINT " YOU GAINED 300 STRENGTH POINTS!":HP = HP +300: GOTO 450
  92. 890  IF A < >7  THEN 840
  93. 900  REM ** A TREASURE CHEST **
  94. 910  PRINT "   DO YOU WANT TO OPEN IT ? ";
  95. 920  POKE  -16368,0: GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 920
  96. 930  PRINT A$: PRINT : IF A$ = "N"  THEN 840
  97. 940  IF  RND(1) >.75  THEN  HOME : VTAB 17: PRINT "THE CHEST CONTAINS A SWORD.  IT": PRINT : PRINT "WILL KILL ANY DRAGON YOU MEET!": PRINT :MR = 1: GOSUB 2430: GOTO 450
  98. 950  IF  RND(1) >.85  THEN  HOME : VTAB 17: PRINT "  THE CHEST WAS TRAPPED!": PRINT : PRINT "YOU DIED WHEN YOU OPENED IT.": GOSUB 2390: GOSUB 2200:HP = 0:DL = 0:TR = 0: GOTO 1660
  99. 960  GOTO 840
  100. 970  REM ** PLAYER WON IDOL **
  101. 980  PRINT : PRINT "  CONGRATULATIONS!  YOU JUST"
  102. 990  PRINT : PRINT  TAB( 9)"WON THE IDOL!!!": PRINT :DL = 1: GOSUB 2470: GOTO 450
  103. 1000  IF DL = 1  THEN 780
  104. 1010  REM **GIVE PLAYER A CLUE**
  105. 1020  SPEED= 75: PRINT : PRINT : PRINT "YOU HEAR THE WIND WHISPER..."
  106. 1030  IF PY = DY  THEN 1110
  107. 1040  IF PY <DY  THEN 1080
  108. 1050 W$ = "NORTH": IF PX <DX  THEN W$ = W$ +"EAST"
  109. 1060  IF PX >DX  THEN W$ = W$ +"WEST"
  110. 1070  GOTO 1130
  111. 1080 W$ = "SOUTH": IF PX <DX  THEN W$ = W$ +"EAST"
  112. 1090  IF PX >DX  THEN W$ = W$ +"WEST"
  113. 1100  GOTO 1130
  114. 1110  IF PX <DX  THEN W$ = "EAST": GOTO 1130
  115. 1120 W$ = "WEST"
  116. 1130  PRINT : PRINT "THE IDOL IS TO THE "W$".": PRINT : SPEED= 255: GOTO 450
  117. 1140  REM ** FIGHT THE MONSTER **
  118. 1150  PRINT : INPUT "HOW MANY POINTS TO USE ? ";PN$:PN =  VAL(PN$)
  119. 1155  IF PN = 0  THEN  VTAB 19: HTAB 1: CALL  -958: GOTO 380
  120. 1160  IF PN >HP  OR PN <1  THEN  GOSUB 2310: GOTO 1150
  121. 1170 MP = MS(X -4) + INT( INT(MS(X -4)/10) * RND(1) +1):DF =  INT( RND(1) *25) +1
  122. 1180  HOME : IF PN +DF >MP  THEN 1220
  123. 1190  REM *** PLAYER DIES ***
  124. 1200 HP = 0: INVERSE : PRINT : HTAB 4: PRINT "THE "MN$(X -4)" KILLED YOU.": NORMAL : PRINT : PRINT "     YOU LOSE EVERYTHING!": GOSUB 2390: GOSUB 2200:TR = 0:DL = 0: GOTO 1660
  125. 1210  REM *** MONSTER DIES ***
  126. 1220  HTAB 4: INVERSE : PRINT "YOU KILLED THE "MN$(X -4)"!": GOSUB 2370: NORMAL :KM(X -4) = KM(X -4) +1:HP = HP -PN: GOTO 810
  127. 1230  REM *** BRIBE MONSTER ***
  128. 1240  HOME : PRINT : PRINT "HOW MUCH TREASURE WILL YOU": PRINT : PRINT "GIVE THE "MN$(X -4);: INPUT " ? ";BA$:BA =  VAL(BA$)
  129. 1250  IF BA <0  OR BA >TR  THEN  GOSUB 2310: GOTO 1240
  130. 1260 NB =  INT( INT(MS(X -4)/2) +200 * RND(1) +1):TR = TR -BA
  131. 1270  REM *** MONSTER ACCEPTS ***
  132. 1280  IF BA > = NB  THEN  PRINT : PRINT "IT ACCEPTS YOUR BRIBE.": GOTO 450
  133. 1290  REM ** MUST FIGHT ANYWAY **
  134. 1300  GOSUB 2270: HOME : PRINT "THE "MN$(X -4)" TOOK YOUR MONEY BUT": PRINT : PRINT "  YOU DID NOT GIVE IT ENOUGH.": FOR J = 1 TO 1500: NEXT 
  135. 1310  REM *** PLAYER DIES ***
  136. 1320  IF BA/NB <.75  THEN  PRINT : INVERSE : HTAB 5: PRINT "THE "MN$(X -4)" KILLED YOU.": NORMAL :TR = 0:DL = 0:HP = 0: GOSUB 2390: GOSUB 2200: GOTO 1660
  137. 1330  PRINT : HTAB 6: PRINT "NOW YOU MUST ";: INVERSE : PRINT "FIGHT!": NORMAL : GOTO 1150
  138. 1340  REM *** PLAYER RUNS! ***
  139. 1350  HOME : PRINT : FLASH : HTAB 7: PRINT "RUN FOR YOUR LIFE!!!": NORMAL : FOR J = 1 TO 1500: NEXT 
  140. 1360  GOSUB 2560: IF FL = 1  THEN FL = 0: PRINT : GOTO 1400
  141. 1370  REM ** MUST FIGHT ANYWAY **
  142. 1380  HOME : PRINT : IF  RND(1) <.37  THEN  PRINT  TAB( 7)"YOU DIDN'T MAKE IT.": PRINT : PRINT  TAB( 7)"NOW YOU MUST ": PRINT : PRINT  TAB( 7);: INVERSE : PRINT "FIGHT THE "MN$(X -4)"!": NORMAL : GOTO 1150
  143. 1390  REM *** PLAYER DIES ***
  144. 1400  IF  RND(1) >.85  THEN  PRINT "  THE "MN$(X -4)" KILLED YOU WHILE": PRINT : PRINT  TAB( 6)"YOU WERE RUNNING AWAY.": GOSUB 2390: GOSUB 2200:HP = 0:DL = 0:TR = 0: GOTO 1660
  145. 1410  REM *** PLAYER MAKES IT ***
  146. 1420  PRINT  TAB( 11)"YOU MADE IT!": FOR J = 1 TO 1500: NEXT 
  147. 1430  REM *** MOVE PLAYER ***
  148. 1440 MP(PY,PX) = X: VTAB PY: HTAB PX: PRINT ":":RN =  INT(4 * RND(1) +1): ON RN GOTO 1450,1470,1490,1510
  149. 1450  IF MP(PY,PX +1) = 1  THEN 1440
  150. 1460 TX = PX +1: GOTO 1530
  151. 1470  IF MP(PY,PX -1) = 1  THEN 1440
  152. 1480 TX = PX -1: GOTO 1530
  153. 1490  IF MP(PY +1,PX) = 1  THEN 1440
  154. 1500 TY = PY +1: GOTO 1530
  155. 1510  IF MP(PY -1,PX) = 1  THEN 1440
  156. 1520 TY = PY -1
  157. 1530  GOSUB 2240
  158. 1540  IF RN = 3  OR RN = 4  THEN PY = TY: GOTO 1560
  159. 1550 PX = TX
  160. 1560 X = MP(PY,PX):MP(PY,PX) = 2: VTAB PY: HTAB PX: FLASH : PRINT "^": NORMAL : GOTO 260
  161. 1570  REM ** YOU MADE IT OUT! **
  162. 1580  HOME : PRINT : PRINT "CONGRATULATIONS!!!  YOU MADE IT": PRINT : PRINT "OUT OF THE FOREST ALIVE!!!": GOSUB 2490: GOSUB 2200
  163. 1590  REM ** DIDN'T FIND IDOL **
  164. 1600  HOME : IF DL = 0  THEN  PRINT "UNFORTUNATELY, YOU DIDN'T FIND": PRINT : PRINT "THE IDOL SO YOU WERE SENT TO": PRINT : PRINT "THE MINES OF MONTEREY.": GOSUB 2200: GOTO 1660
  165. 1610  REM ** BONUS FOR IDOL **
  166. 1620  HOME :DL = 1000: PRINT "YOU FOUND THE IDOL!  THE DWARVES": PRINT "DECLARE YOU THEIR HERO AND AWARD": PRINT "YOU 1000 TREASURE POINTS!": GOSUB 2200: GOTO 1660
  167. 1630  REM *** PLAYER DIES ***
  168. 1640  HOME : PRINT : PRINT " YOU RAN OUT OF STRENGTH!": PRINT : PRINT  TAB( 8)"YOU ARE DEAD.":HP = 0:TR = 0:DL = 0: GOSUB 2390: GOSUB 2200: GOTO 1660
  169. 1650  REM ** FINAL STATISTICS **
  170. 1660  TEXT : HOME : HTAB 9: PRINT "*** ";: FLASH : PRINT "FINAL STATISTICS";: NORMAL : PRINT " ***"
  171. 1670  VTAB 3: PRINT  TAB( 14)"MONSTERS KILLED": FOR J = 1 TO 39: PRINT "-";: NEXT : PRINT 
  172. 1680  FOR J = 1 TO 3: HTAB 1: PRINT MN$(J) TAB( 9)" = ";: INVERSE : PRINT KM(J);: NORMAL : PRINT  TAB( 15);MN$(J +3) TAB( 23)" = ";: INVERSE : PRINT KM(J +3);: NORMAL : PRINT  TAB( 29);MN$(J +6) TAB( 35)" = ";: INVERSE : PRINT KM(J +6)
  173. 1690  NORMAL : NEXT : PRINT  TAB( 15);MN$(10) TAB( 23)" = ";: INVERSE : PRINT KM(10): NORMAL : FOR J = 1 TO 39: PRINT "-";: NEXT : PRINT 
  174. 1700  PRINT : PRINT  TAB( 7)"TOTAL = ";: FOR J = 1 TO 10:TT = TT +KM(J): NEXT : PRINT TT;" X 10 = ";:TT = TT *10: INVERSE : PRINT TT;: NORMAL : PRINT " BONUS!"
  175. 1710  PRINT : PRINT  TAB( 10)"TREASURE POINTS = ";: INVERSE : PRINT TR: NORMAL 
  176. 1720  PRINT : PRINT  TAB( 5)"BONUS FOR FINDING IDOL = ";: INVERSE : PRINT DL: NORMAL 
  177. 1730  PRINT : INVERSE : HTAB 4: FOR J = 1 TO 33: PRINT " ";: NEXT : PRINT : FOR J = 1 TO 3: HTAB 4: PRINT " ";: HTAB 36: PRINT " ": NEXT : HTAB 4: FOR J = 1 TO 33: PRINT " ";: NEXT : PRINT : NORMAL 
  178. 1740  VTAB 19: HTAB 9: PRINT "YOUR FINAL SCORE = ";: FLASH :SC = TT +TR +DL: PRINT SC: NORMAL 
  179. 1750  VTAB 23: PRINT "    WOULD YOU LIKE TO PLAY AGAIN ? ";
  180. 1760  IF SC >HI  THEN HI = SC: FLASH : PRINT " ";: NORMAL : GOTO 1810
  181. 1770  GET A$: IF A$ = "N"  THEN  VTAB 23: HTAB 1: CALL  -958: HTAB 17: PRINT "SO LONG!";: END 
  182. 1780  IF A$ < >"Y"  THEN 1770
  183. 1790  GOTO 100
  184. 1800  REM *** HIGH SCORE!!! ***
  185. 1810 A$ = " NEW HIGH SCORE! ": INVERSE :H1 = 20:H2 = 4:INC =  -1
  186. 1820  VTAB 17: HTAB H1: PRINT A$: VTAB 21: HTAB H2: PRINT A$
  187. 1830  FOR J = 1 TO 5:X =  PEEK( -16384): IF X = 217  OR X = 206  THEN  NORMAL : GOTO 1770
  188. 1840  NEXT : IF S$ = "Y"  THEN  FOR J = (H1 -INC) *5 TO H1 *5  STEP INC: POKE 768,J: POKE 769,4: CALL 770: NEXT : GOTO 1860
  189. 1850  FOR J = 1 TO 10: NEXT 
  190. 1860 H1 = H1 +INC:H2 = H2 -INC: IF H1 = 4  OR H1 = 20  THEN INC =  -INC
  191. 1870  GOTO 1820
  192. 1880  REM ** PLAYER FOUND IDOL **
  193. 1890  HOME : FLASH : HTAB 5: PRINT "YOU FOUND THE IDOL!!!": NORMAL :FL = 1: GOSUB 2450
  194. 1900  PRINT : PRINT "UNFORTUNATELY, THERE IS A LARGE": PRINT : PRINT "DRAGON HERE WHO IS GUARDING IT.": PRINT : PRINT "DO YOU WANT TO ";: INVERSE : PRINT "F";: NORMAL : PRINT "IGHT OR ";: INVERSE : PRINT "R";: NORMAL : PRINT "UN ? ";
  195. 1910  REM *** FIGHT OR RUN ? ***
  196. 1920  POKE  -16368,0: GET A$: IF A$ < >"F"  AND A$ < >"R"  THEN  GOSUB 2310: GOTO 1920
  197. 1930  PRINT A$: IF A$ = "F"  THEN X = 12: GOTO 1150
  198. 1940  GOTO 1350
  199. 1950  REM *** PLAYER QUITS ***
  200. 1960  HOME : PRINT : PRINT  TAB( 10)"ARE YOU SURE": PRINT : PRINT  TAB( 6)"YOU WANT TO QUIT ? ";
  201. 1970  POKE  -16368,0: GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN  GOSUB 2310: GOTO 1970
  202. 1980  IF A$ = "N"  THEN  PRINT : GOTO 450
  203. 1990 TR = 0:DL = 0:HP = 0: GOTO 1660
  204. 2000  REM *** INIT. VARIABLES ***
  205. 2010  DIM MN$(10),MS(10),ME$(10),TR$(20),TV(20),KM(10),MP(15,32)
  206. 2020  FOR J = 1 TO 10: READ MN$(J),MS(J): NEXT 
  207. 2030  DATA CYCLOPS,50,WYVERN,300,BASILISK,350,SKELETON,200,MINOTAUR,100,GRIFFIN,150,HARPY,75,DRAGON,500,TROLL,125,GOBLIN,175
  208. 2040  FOR J = 1 TO 10: READ ME$(J): NEXT 
  209. 2050  DATA  UH-OH!,OOPS!,WHOOPS!,EEEK!,OH NO!,AAARGH!,AAAK!,ZOWIE!,OUCH!,DARN!
  210. 2060  FOR J = 1 TO 20: READ TR$(J),TV(J): NEXT 
  211. 2070  DATA 10 GOLD PIECES,10,A GOLD SCEPTRE,55,A JEWELED CROWN,150,MAGIC POWDER,100,AN AMULET,75,A DIAMOND RING,100,A TREASURE CHEST,200,A PEARL NECKLACE,50,A STRENGTH POTION,100,A GOLD CROSS,65
  212. 2075  DATA  A SILVER PLATE,100,RED RUBIES,85,20 SMALL GEMS,20,35 GOLD PIECES,35,A NICKEL,5,A JEWELED DAGGER,175,A GOLDEN BRACELET,60,A TREASURE EATER,-75,A WORTHLESS COIN,0,A PILE OF GOLD,300
  213. 2080  REM **POKE SOUND ROUTINE**
  214. 2090  FOR J = 770 TO 790: READ K: POKE J,K: NEXT 
  215. 2100  DATA 173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,2,3,96
  216. 2110  REM *** DISPLAY TITLE ***
  217. 2120 A$ = "IDOL": FOR J = 2 TO 7: VTAB J: HTAB 18: PRINT A$: POKE 768,J *25: POKE 769,5: CALL 770: VTAB J -1: HTAB 18: PRINT "    ": NEXT : VTAB 1: PRINT "** COPYRIGHT 1985 MICROSPARC, INC. **": FOR J = 1 TO 1000: NEXT 
  218. 2130  FOR J = 2 TO 18: VTAB 9: HTAB J: PRINT " O";: HTAB 38 -J: PRINT "F ":S =  PEEK( -16336): NEXT : FOR J = 1 TO 1000: NEXT 
  219. 2140 A$ = "MONTEREY":B$ = "        ": FOR J = 22 TO 11  STEP  -1: VTAB J: HTAB 16: PRINT A$: POKE 768,J *10: POKE 769,5: CALL 770: VTAB J +1: HTAB 16: PRINT B$: NEXT : REM 8 SPACES
  220. 2150  FOR J = 1 TO 800: NEXT : SPEED= 100: VTAB 15: HTAB 12: PRINT "BY GLENN ARCHER": SPEED= 255: VTAB 20: HTAB 10: PRINT "DO YOU WANT SOUND ? ";
  221. 2160  REM **PLAYER WANT SOUND?**
  222. 2170  POKE  -16368,0: GET S$: IF S$ < >"Y"  AND S$ < >"N"  THEN 2170
  223. 2180  RETURN 
  224. 2190  REM * WAIT FOR SPACE BAR *
  225. 2200  VTAB 23: PRINT "PRESS THE SPACE BAR TO CONTINUE": POKE  -16368,0
  226. 2210 KB =  PEEK( -16384): IF KB < >160  THEN 2210
  227. 2220  POKE  -16368,0: RETURN 
  228. 2230  REM *PLAYER EXIT FOREST ?*
  229. 2240  IF TY <1  OR TY >14  OR TX <1  OR TX >31  THEN  POP : GOTO 1580
  230. 2250  RETURN 
  231. 2260  REM *** PRINT STRENGTH AND TREASURE POINTS ***
  232. 2270  POKE 33,40: VTAB 6: HTAB 34: PRINT "STREN.": HTAB 34: PRINT "POINTS:": INVERSE : HTAB 34: PRINT HP;: NORMAL : PRINT "  "
  233. 2280  VTAB 11: HTAB 34: PRINT "TREAS.": HTAB 34: PRINT "POINTS:": INVERSE : HTAB 34: PRINT TR;: NORMAL : PRINT "  ": POKE 33,32: RETURN 
  234. 2290  POKE 33,40: VTAB 18: HTAB 35: PRINT "  N  ": HTAB 35: PRINT "  !  ": HTAB 35: PRINT "W-+-E": HTAB 35: PRINT "  !  ": HTAB 35: PRINT "  S  ": POKE 33,32: RETURN 
  235. 2300  REM ** RASPBERRY SOUND **
  236. 2310  GOSUB 2530: FOR J = 1 TO 12: POKE 768,200: POKE 769,2: CALL 770: POKE 768,150: POKE 769,2: CALL 770: NEXT : RETURN 
  237. 2320  REM ** HIT A TREE SOUND **
  238. 2330  GOSUB 2530: FOR J = 170 TO 30  STEP  -30: POKE 768,J: POKE 769,3: CALL 770: NEXT : RETURN 
  239. 2340  REM *** PIT SOUND ***
  240. 2350  GOSUB 2530: FOR J = 100 TO 240  STEP 15: FOR K = J +10 TO J  STEP  -1: POKE 768,K: POKE 769,5: CALL 770: NEXT : NEXT : RETURN 
  241. 2360  REM **** TUNE WHEN PLAYER KILLS A MONSTER ***
  242. 2370  GOSUB 2530:D$ = "255045235045220040148110185035148110":N = 5: GOSUB 2510: RETURN 
  243. 2380  REM *** DEATH SOUND ***
  244. 2390  GOSUB 2530: FOR J = 175 TO 255  STEP 5: POKE 768,J: POKE 769,20: CALL 770: POKE 768,J -10: POKE 769,10: CALL 770: NEXT : RETURN 
  245. 2400  REM *** CONDOR SOUND ***
  246. 2410  GOSUB 2530: FOR J = 255 TO 30  STEP  -15: POKE 768,J: POKE 769,25: CALL 770: NEXT : RETURN 
  247. 2420  REM *** "BONUS" SOUND ***
  248. 2430  GOSUB 2530: FOR J = 1 TO 15: POKE 768,175: POKE 769,8: CALL 770: POKE 768,100: POKE 769,8: CALL 770: NEXT : RETURN 
  249. 2440  REM *** IDOL SOUND ***
  250. 2450  GOSUB 2530: FOR J = 1 TO 4: FOR K = 20 TO 30: POKE 768,K: POKE 769,2: CALL 770: NEXT : FOR K = 30 TO 20  STEP  -1: POKE 768,K: POKE 769,2: CALL 770: NEXT : NEXT : RETURN 
  251. 2460  REM *** TUNE WHEN PLAYER  WINS THE IDOL **
  252. 2470  GOSUB 2530:D$ = "064128064128071032077064077128081040077040077128":N = 7: GOSUB 2510: RETURN 
  253. 2480  REM **EXIT FOREST SOUND**
  254. 2490  GOSUB 2530: FOR J = 255 TO 5  STEP  -5: POKE 768,J: POKE 769,3: CALL 770: POKE 768,J/2: POKE 769,3: CALL 770: POKE 768,J/4: POKE 769,3: CALL 770: POKE 768,255 -J: POKE 769,3: CALL 770: NEXT : RETURN 
  255. 2500  REM *** SUBROUTINE TO PLAY TUNES ***
  256. 2510  FOR J = 0 TO N:T =  VAL( MID$ (D$,J *6 +1,3)):D =  VAL( MID$ (D$,J *6 +4,3)): POKE 768,T: POKE 769,D: CALL 770: NEXT : RETURN 
  257. 2520  REM * DID PLAYER WANT ANY SOUND ? *
  258. 2530  IF S$ = "N"  THEN  FOR J = 1 TO 1000: NEXT : POP 
  259. 2540  RETURN 
  260. 2550  REM ** PLAYER BOXED IN? **
  261. 2560  IF MP(PY,PX -1) = 1  AND MP(PY,PX +1) = 1  AND MP(PY -1,PX) = 1  AND MP(PY +1,PX) = 1  THEN  POP : HOME : PRINT : PRINT "   YOU BOXED YOURSELF IN!": PRINT : PRINT "  YOU DIED FROM STARVATION.":HP = 0:DL = 0:TR = 0: GOSUB 2390: GOSUB 2200: GOTO 1660
  262. 2570  RETURN 
  263. 10000  PRINT "YOU FOUND A BOTTLE OF": PRINT "VITAMINS!  YOUR STRENGTH POINTS": PRINT "INCREASE BY 5000!"
  264. 10010 HP = HP +5000: GOTO 450