home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Arcade / PYRAHOP (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.5 KB  |  189 lines

  1. 10 REM PYRAMID HOPPER
  2. 20 REM BY TOD MILAM   2-23-87
  3. 21 DATA 162,0,142,32,208,232,224,15,144,13,32,228,255
  4. 22 DATA 201,32,144,4,201,33,144,12,162
  5. 23 DATA 0,160,1,200,192,36,208,251,76,2,192,141,60
  6. 24 DATA 3,96,0,255
  7. 30 GOSUB 1100:REM INSTRUCTIONS
  8. 40 V=53248:K2=127:M2=56320:REM K2&M2 ARE FOR JOYSTICK ENTRY
  9. 45 GOSUB 1400:REM ENTER LEVEL TO INTER.
  10. 46 IF NL=<0 THEN NL=7
  11. 50 POKE V+21,4:POKE2042,13
  12. 60 FOR N=0 TO 62:READQ:POKE832+N,Q:NEXT
  13. 70 POKE V+41,3:REM SPRITE COLOR
  14. 80 X1=250
  15. 90 POKE V+4,X1:POKEV+5,32:PRINTPEEK(V+31)
  16. 100 PRINT"[147][158]":POKE53280,10:POKE53281,0
  17. 110 FOR X=1 TO 19:PRINT:NEXT X
  18. 120 PRINT"               [169] [146]     [223][146]"
  19. 130 PRINT"           [169][163][163][163][163][163][146]    [163][163][163][163][163][223][146]"
  20. 140 PRINT"     [169][163][163][163][163][163][163][163][163][163][163][163][146]    [163][163][163][163][163][163][163][163][163][163][163][223][146]"
  21. 150 PRINT"[169][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][146]    [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][223][146]"
  22. 160 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][146]    [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][146]";
  23. 170 REM
  24. 180 FOR N=1 TO NL
  25. 190 PRINT"";
  26. 200 FOR X=1 TO 19 STEP 2
  27. 210 Y=INT(RND(1)*39)
  28. 220 PRINTTAB(Y);"*":PRINT
  29. 230 NEXT X:X=PEEK(V+31)
  30. 240 GOSUB 400
  31. 250 PRINT"";
  32. 260 FOR X=2 TO 18 STEP 2
  33. 270 Y=INT(RND(1)*39)
  34. 280 PRINT:PRINTTAB(Y);"*"
  35. 290 NEXT X
  36. 300 GOSUB 700
  37. 305 GM=GM+1
  38. 310 NEXT N
  39. 320 REM END ONE CYCLE
  40. 330 GOSUB 1300:REM INTERMISSION
  41. 340 PRINT"[147]"
  42. 350 REM PRINT"DO YOU WANT TO CONTINUE"
  43. 360 REM GET A$:IF A$<>"Y"AND A$<>"N"THEN 360
  44. 370 GOTO 100
  45. 380 END
  46. 400 REM SUBROUTINE FOR DESCENT
  47. 405 REM PRINT"400 HERE";
  48. 410 FOR Y=32 TO 230
  49. 415 REM PRINT"Y=";Y;"";
  50. 420 J2=K2-PEEK(M2):REM READ JOYSTICK
  51. 430 IF J2=5 THEN X1=X1-2
  52. 440 IF J2=6 THEN X1=X1-2
  53. 450 IF J2=9 THEN X1=X1+2
  54. 460 IF J2=10 THEN X1=X1+2
  55. 470 IF J2=4 THEN X1=X1-3
  56. 480 IF J2=8 THEN X1=X1+3
  57. 490 IF X1<20 THEN X1=20
  58. 500 IF X1>255 THEN GOSUB 600:REM RIGHT SCREEN SECTION
  59. 510 IF X1<256 THEN POKEV+4,X1:POKEV+5,Y:POKE V+16,0
  60. 520 GOSUB 900
  61. 530 NEXT Y
  62. 540 RETURN
  63. 600 REM RIGHT SCREEN SECTION FOR SPRITE
  64. 610 X1=X1-255
  65. 620 IF X1>65 THEN X1=65
  66. 630 POKE V+16,4
  67. 640 POKEV+4,X1
  68. 650 POKEV+5,Y
  69. 660 X1=X1+255
  70. 670 RETURN
  71. 700 REM SUBROUTINE FOR ASCENT
  72. 710 FOR Y=230 TO 32 STEP-1
  73. 720 J2=K2-PEEK(M2)
  74. 730 IF J2=5 THEN X1=X1-2
  75. 740 IF J2=6 THEN X1=X1-2
  76. 750 IF J2=9 THEN X1=X1+2
  77. 760 IF J2=10THEN X1=X1+2
  78. 770 IF J2=4 THEN X1=X1-3
  79. 780 IF J2=8 THEN X1=X1+3
  80. 790 IF X1<20 THEN X1=20
  81. 800 IF X1>255 THEN GOSUB 600
  82. 810 IF X1<256 THEN POKEV+4,X1:POKEV+5,Y:POKEV+16,0
  83. 820 GOSUB 900
  84. 830 NEXT Y
  85. 840 RETURN
  86. 900 REM COLLISION CHECK
  87. 910 IF PEEK(V+31)<>4 THEN RETURN
  88. 915 FOR Y=1 TO 2
  89. 920 FOR X=0 TO 15:POKE53281,X:POKE53280,15-X:NEXT X
  90. 925 NEXT Y
  91. 930 PRINT"[147][144]":POKE53281,15:POKE53280,11:POKEV+21,0
  92. 940 PRINT"YOU CRASHED!!!"
  93. 945 PRINT"        YOU MADE IT TO LEVEL";GM+1
  94. 946 GM=0
  95. 950 PRINT"WOULD YOU LIKE TO PLAY AGAIN?"
  96. 960 GET A$:IF A$<>"Y"AND A$<>"N"THEN 960
  97. 970 REM IF A$="Y" THEN POKEV+21,4:GOTO 80
  98. 975 IF A$="Y" THEN RUN
  99. 980 GOTO 380
  100. 1000 REM DATA FOR SPRITE
  101. 1010 DATA 0,24,0,0,60,0,0,60,0,0,60,0,0,102,0,0,102,0
  102. 1020 DATA 0,126,0,0,255,0,0,255,0,0,255,0,1,255,128
  103. 1030 DATA 1,231,128,1,195,128,15,195,240,15,195,240,15,195,240
  104. 1040 DATA 15,219,240,15,255,240,15,255,240,15,24,240
  105. 1050 DATA 8,24,16
  106. 1100 REM INSTRUCTIONS
  107. 1110 PRINT"[147][158]":POKE53280,2:POKE53281,2
  108. 1120 PRINT"[158]           PYRAMID HOPPER"
  109. 1130 PRINT"[150]DO YOU WANT INSTRUCTIONS?  ";
  110. 1135 FOR X=49152 TO 49190:READ T:POKEX,T:NEXT X
  111. 1140 PRINT"[159][157][169]";
  112. 1145 GET A$:IF A$<>"Y"ANDA$<>"N"THEN 1150
  113. 1146 GOTO 1190
  114. 1150 PRINT"[157][223]";
  115. 1155 GET A$:IF A$<>"Y"ANDA$<>"N"THEN 1160
  116. 1156 GOTO 1190
  117. 1160 PRINT"[154][157][223][146]";
  118. 1165 GET A$:IF A$<>"Y"ANDA$<>"N"THEN 1170
  119. 1166 GOTO 1190
  120. 1170 PRINT"[150][157][169][146]";
  121. 1180 GET A$:IF A$<>"Y"ANDA$<>"N"THEN 1140
  122. 1190 PRINT"[147][150]"
  123. 1200 IF A$="N"THEN RETURN
  124. 1210 PRINT"INSTRUCTIONS:"
  125. 1220 PRINT"[155]YOU MUST GUIDE THE SHIP TO SAFETY IN THECENTER OF THE PYRAMID AND";
  126. 1221 PRINT" BACK AGAIN."
  127. 1222 PRINT"THE CENTER OF THE PYRAMID IS THE ONLY   SAFE LANDING PLACE."
  128. 1223 PRINT"ATTEMPT TO LAND ANYWHERE ELSE AND CRASH."
  129. 1224 PRINT"AVOID THE STARS ([158]*[159])."
  130. 1225 PRINT"JOYSTICK #2 IS YOUR CONTROLLER"
  131. 1226 PRINT"[159]GOOD LUCK, YOU'LL NEED IT"
  132. 1230 PRINT"";:FOR X=1 TO 20:PRINT"";:NEXT X
  133. 1240 PRINT"[158]PRESS SPACE TO CONTINUE"
  134. 1250 SYS49152
  135. 1260 RETURN
  136. 1300 REM INTERMISSION
  137. 1305 POKE53281,1:POKE53280,7
  138. 1310 PRINT"[147]CONGRATULATIONS!!"
  139. 1320 PRINT"YOU MADE IT TO LEVEL";GM+1
  140. 1330 PRINT"[144]PRESS SPACE TO CONTINUE"
  141. 1340 SYS 49152
  142. 1350 RETURN
  143. 1400 REM ENTER LEVEL OF INTERMISSION
  144. 1410 PRINT"[147][153]";:POKE53280,10:POKE53281,4
  145. 1420 PRINT"HOW MANY LEVELS TO INTERMISSION?(7)";
  146. 1430 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  147. 1440 PRINT"[145][145][145]";
  148. 1450 PRINT"[157][164]";
  149. 1455 GET A$:IF A$="" THEN 1460
  150. 1456 IF ASC(A$)=13 THEN RETURN
  151. 1457 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1460
  152. 1458 GOTO 1540
  153. 1460 PRINT"[157][210]";
  154. 1465 GET A$:IF A$="" THEN 1470
  155. 1466 IF ASC(A$)=13 THEN RETURN
  156. 1467 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1470
  157. 1468 GOTO 1540
  158. 1470 PRINT"[157][192]";
  159. 1475 GET A$:IF A$="" THEN 1480
  160. 1476 IF ASC(A$)=13 THEN RETURN
  161. 1477 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1480
  162. 1478 GOTO 1540
  163. 1480 PRINT"[157][197]";
  164. 1485 GET A$:IF A$="" THEN 1490
  165. 1486 IF ASC(A$)=13 THEN RETURN
  166. 1487 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1490
  167. 1488 GOTO 1540
  168. 1490 PRINT"[157][163]";
  169. 1495 GET A$:IF A$="" THEN 1500
  170. 1496 IF ASC(A$)=13 THEN RETURN
  171. 1497 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1500
  172. 1498 GOTO 1540
  173. 1500 PRINT"[157][197]";
  174. 1505 GET A$:IF A$="" THEN 1510
  175. 1506 IF ASC(A$)=13 THEN RETURN
  176. 1507 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1510
  177. 1508 GOTO 1540
  178. 1510 PRINT"[157][192]";
  179. 1515 GET A$:IF A$="" THEN 1520
  180. 1516 IF ASC(A$)=13 THEN RETURN
  181. 1517 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1520
  182. 1518 GOTO 1540
  183. 1520 PRINT"[157][210]";
  184. 1530 GET A$:IF A$="" THEN 1450
  185. 1531 IF ASC(A$)=13 THEN RETURN
  186. 1532 IF ASC(A$)<48 OR ASC(A$)>57 THEN 1450
  187. 1540 NL=NL*10+VAL(A$):PRINT"[157]";A$;" ";
  188. 1550 GOTO 1450
  189.