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

  1. 5 PRINT CHR$(147)
  2. 10 PRINT "****************************************"
  3. 12 PRINT "*                                      *"
  4. 14 PRINT "*      CAYONS OF ZELAZ                 *"
  5. 16 PRINT "*                                      *"
  6. 18 PRINT "*                                      *"
  7. 20 PRINT "*                                      *"
  8. 22 PRINT "*      WRITTEN BY ERIK MOLDEN[160]         *"
  9. 24 PRINT "*                                      *"
  10. 26 PRINT "*                                      *"
  11. 28 PRINT "*                                      *"
  12. 30 PRINT "****************************************"
  13. 60 OF=54272:GOSUB500:GOSUB900:TI$="000000":FF=16:Y=71:POKE V+1,Y:GOSUB400
  14. 97 REM**********************************
  15. 98 REM*   MAIN PROGRAM LOOP            *
  16. 99 REM**********************************
  17. 100 CS=0:CP=0:POKE V+31,0:J=PEEK(56320)
  18. 105 IF(JAND16)OR(FU<1)THENC1=-9:POKE AD,0:POKE WA,0:GOTO 150
  19. 107 POKE54296,15:POKEAD,88:POKESR,240:POKEWA,129:FU=FU-3.5:C1=5.5:POKE2040,14
  20. 110 IFNOTJAND8THENX1=X1+.25:FU=FU-.5
  21. 112 IFNOTJAND4THENX1=X1-.25:FU=FU-.5
  22. 113 IFNOTJAND1THENFU=FU+1.75:C1=32
  23. 150 POKE55296,2:POKE55326,2:C2=64/C1:V2=V1-.4+.2*C2:A2=A2+.1*(V1+V1):V1=V2
  24. 155 CP=PEEK(V+31)AND1:IFCP=0THENCR=0
  25. 176 Y=(222-INT(A2/D)):X=X+X1:IFY<55THENX1=X1*2
  26. 177 IFX<1ORX>254ORY<45THENGOSUB300
  27. 178 POKE53279,0:POKEV,X:POKEV+1,Y:IFPEEK(53279)AND1THENCR=CR+1:IFCR>1THENCS=1
  28. 180 PRINTH$P$P$P$CHR$(17)TAB(32)TI$:PRINTP$TAB(33)STR$(INT(FU))+" "
  29. 185 PRINTP$TAB(33)STR$(INT(A2))+" ":PRINTTP$TAB(32)"V:"STR$(INT(V2))+"[160]"
  30. 186 HV$=STR$(X1*3)+"    ":PRINTTAB(32)"H:"LEFT$(HV$,5)
  31. 190 FF=PEEK(V+30)AND30:IFFFTHENGOSUB400
  32. 195 IF(Y>222ANDV2<-10)ORCSTHENGOSUB300
  33. 200 POKE55296,7:POKE55326,7:POKE2040,15:GOTO100
  34. 297 REM ********************************
  35. 298 REM * MISSION REPORT ROUTINE       *
  36. 299 REM ********************************
  37. 300 POKENH,2:POKENL,179:POKE54296,15:POKEAD,88:POKESR,240:POKEWA,129:CK=1
  38. 304 POKE2040,11:POKEV+28,1
  39. 305 GOSUB380:POKEV+29,31:GOSUB380:POKEV+23,1:GOSUB380:GOSUB390
  40. 310 POKEAD,00:POKESR,00:POKEWA,00
  41. 315 GOSUB392:PRINTH$P$:PRINTTAB(32)"CRASHED"
  42. 317 POKEV+29,30:POKEV+23,0:POKEV+21,30:POKEV+28,30:GOTO 370
  43. 350 GOSUB392:PRINT H$P$:PRINT TAB(32)"ABORTED":GOTO 370
  44. 360 GOSUB392:FC=FC-3:IFFC>4THENFC=4
  45. 362 PRINT H$P$:PRINT TAB(32)"      "
  46. 363 PRINT H$P$:PRINT TAB(32)MR$(FC);TAB(73)"FLIGHT":FORJ=1TO4000:NEXT J
  47. 370 J=PEEK(56320):IFJAND16THEN370
  48. 371 IFNOTJAND2THENPOKE V+21,0:CLR:PRINT CHR$(147):END
  49. 375 GOSUB395:GOSUB900:GOSUB584:FF=PEEK(V+30):FF=0:TI$="000000":RETURN
  50. 380 FORJ=1TO25:Z=INT(60*RND(1))+1:POKE 705+Z,J:NEXT :RETURN
  51. 390 FORJ=704TO766:POKEJ,00:NEXT :RETURN
  52. 392 PRINT H$:PRINT TAB(32)R$"MISSION"TAB(72)R$"REPORT:":RETURN
  53. 395 PRINT H$P$:PRINT TAB(32)"       "TAB(72)"       ":RETURN
  54. 396 REM*********************************
  55. 397 REM* LANDER SPRITE/PAD ROUTINE     *
  56. 398 REM* COLLISION HANDELER ROUTINE    *
  57. 399 REM*********************************
  58. 400 IFV2<-10ORABS(X1)>1.5 THENGOTO 300
  59. 403 IFFF=16ANDX<210THENGOTO 300
  60. 405 PRINT H$P$:PRINT TAB(32)"LANDED ":POKE 2040,15:POKE AD,0:POKE WA,0
  61. 410 IFFF=16THENGOSUB495:IFQ=1THEN360
  62. 415 IFFF=16THENFU=FU+200
  63. 435 Y=Y-1:POKE V+1,Y
  64. 440 IFCKTHENPRINT H$P$:PRINT TAB(32)"STANDBY":CK=0
  65. 450 FORJ=1TO4:IFFF=2^JTHENIFPEEK(V+39+J)AND5THENFU=FU+300:POKE V+39+J,2:FC=FC+1
  66. 455 POKE (V+43),5
  67. 460 NEXT J:FORI=1TO1500:NEXT :PRINT H$P$P$:PRINT TAB(34)FC
  68. 465 PRINT H$P$P$P$;CHR$(17)TAB(32)TI$P$:PRINT TAB(33)STR$(INT(FU))+" "
  69. 470 PRINT P$TAB(33)STR$(INT(A2))+" ":PRINT P$TAB(32)"V:"STR$(INT(V2))+" "
  70. 471 HV$=STR$(XI*3)+"    ":PRINT TAB(32)"H:"LEFT$(HV$,5)
  71. 475 IFNOTPEEK(56320)AND2THEN350
  72. 480 IFPEEK(56320)AND16THEN465
  73. 485 V1=5:C1=2:X1=0:FF=PEEK(V+30):FF=0:A2=A2+4
  74. 490 PRINT H$P$:PRINT TAB(32)"ACTIVE!":RETURN
  75. 495 IF(NOTPEEK(V+40)AND5)AND(NOTPEEK(V+41)AND5)AND(NOTPEEK(V+42)AND5)THENQ=1
  76. 496 RETURN
  77. 497 REM*********************************
  78. 498 REM* SET UP SPRITE DATA AND SCREEN *
  79. 499 REM*********************************
  80. 500 FORI=13TO15:FORJ=0TO62:READA:POKE(I*64)+J,A:NEXT J:NEXT I
  81. 504 DIMMR$(4):MR$(1)="GREAT":MR$(2)="GOOD":MR$(3)="FAIR":MR$(4)="POOR"
  82. 506 PRINTCHR$(147):POKE53281,11:POKE53280,12:FORJ=55296TO56295:POKEJ,I:NEXT J
  83. 508 FORJ=1055TO2023STEP40:POKEJ,160:POKEJ+OF,4:POKEJ+8,160:POKEJ+8+OF,4 :NEXTJ
  84. 510 FORJ=1055TO1062:POKEJ,160:POKEJ+OF,4:POKEJ+960,160:POKEJ+960+OF,4 :NEXTJ
  85. 512 FORJ=1249TO1252:POKEJ,160:NEXT:FORJ=1289TO1292:POKEJ,160:NEXT:POKE1288,95
  86. 515 FORJ=1064TO1984STEP40:POKEJ,160:POKEJ+30,160:NEXT
  87. 516 POKE1105,223:POKE1145,105:POKE1225,223:FORJ=1265TO1245STEP40:POKEJ,160:NEXT
  88. 517 POKE1024,81:POKE1024+OF,2:POKE1054,81:POKE1054+OF,2
  89. 518 POKE1105,223:POKE1145,105:POKE1225,223:FORJ=1265TO1425STEP40:POKEJ,160:NEXT
  90. 520 POKE1465,105:POKE1745,233:POKE1785,160:POKE1825,105:POKE1905,223          
  91. 522 POKE1945,160:POKE1946,223
  92. 524 FORJ=1984TO2013:POKEJ,160:NEXT
  93. 526 POKE1093,233:FORJ=1133TO1293STEP40:POKEJ,160:NEXT:POKE1333,95:POKE1413,233  
  94. 530 FORJ=1453TO1893STEP40:POKEJ,160:NEXT:POKE1933,95:POKE1973,233
  95. 532 POKE1172,223
  96. 535 POKE1352,223:POKE1353,223:POKE1391,223:POKE1394,105
  97. 536 FORJ=1392TO1552STEP40:POKEJ,160:NEXT:FORJ=1393TO1953STEP40:POKEJ,160:NEXT
  98. 538 POKE1431,95:POKE1592,95:POKE1672,95
  99. 539 POKE1752,233:POKE1792,160:POKE1832,160:POKE1872,95:POKE1791,233:POKE1831,95
  100. 542 POKE1471,233:POKE1511,160:POKE1551,95:POKE1510,223
  101. 545 POKE1434,223:POKE1474,160:POKE1514,105:POKE1554,223:POKE1594,160
  102. 547 POKE1595,223:FORJ=1634TO1954STEP40:POKEJ,160:POKEJ+1,160:NEXT
  103. 549 POKE1716,223:POKE1717,223:POKE1757,105:POKE1797,223:POKE1837,105
  104. 550 POKE1876,105:POKE1916,223:POKE1956,105:FORJ=1756TO1836STEP40:POKEJ,160:NEXT
  105. 554 POKE1442,223:POKE1443,223:POKE1444,223:POKE1445,223:POKE485,105
  106. 556 POKE1481,95:FORX=1482TO1602STEP40:POKEX,160:NEXT
  107. 558 FORJ=1483TO1963STEP40:POKEJ,160:POKEJ+1,160:NEXT
  108. 560 FORJ=1525TO1965STEP40:POKEJ,160:NEXT:FORJ=1526TO1606STEP40:POKEJ,160:NEXT
  109. 565 FORJ=1766TO1966STEP40:POKEJ,160:NEXT:POKE1646,105:POKE1726,223
  110. 567 POKE1486,233:POKE1567,105:POKE1807,223
  111. 570 POKE1967,233:POKE1968,233:POKE1451,95:POKE1452,160:POKE1651,233:POKE1691,95
  112. 573 POKE1492,233:FORJ=1492TO1812STEP40:POKEJ,160:NEXT:POKE1852,95
  113. 575 POKE1521,233:POKE1561,95:POKE1642,95:POKE1723,95:POKE1763,32:POKE1803,233
  114. 577 POKE1842,233:POKE1882,95:POKE1922,233
  115. 584 P$=CHR$(17)+CHR$(17)+CHR$(17):H$=CHR$(19):R$=CHR$(18)
  116. 585 PRINTH$;CHR$(5  ):PRINTTAB(32)R$"MISSION"TAB(72)R$"STATUS:"
  117. 587 PRINTH$P$P$;CHR$(17):PRINTTAB(32)R$" TIME: ":PRINTP$TAB(32)R$" FUEL: "P$
  118. 591 PRINTTAB(32)R$" ALT:  "P$:PRINTTAB(32)R$" VEL:  "
  119. 596 PRINTH$P$P$TAB(32)R$"REFUELS"
  120. 597 RETURN
  121. 896 REM*********************************
  122. 897 REM* DEFINE AND ENABLE SPRITES     *
  123. 898 REM* 1 THRU 5 AND GAME VARIABLES   *
  124. 899 REM*********************************
  125. 900 V=53248:X=219:Y=70:D=3:CR=0:POKEV+31,0:FU=0:A2=456:V1=0:X1=0
  126. 910 POKEV+21,31:POKE2040,15:POKEV,X:POKEV+1,Y:POKEV+27,1:CK=1:Q=0:V2=0
  127. 916 POKE2041,13:POKE2042,13:POKE2043,13:POKE2044,13
  128. 918 POKEV+2,48:POKEV+3,242:POKEV+4,124:POKEV+5,242:POKEV+6,215:POKEV+7,242
  129. 919 POKEV+8,210:POKEV+9,90
  130. 920 POKEV+39,15:POKEV+40,5:POKEV+41,5:POKEV+42,5:POKEV+43,2
  131. 922 POKEV+29,30:POKEV+37,7:POKEV+38,2
  132. 930 FORJ=54272TO54296:POKEJ,0:NEXT:WA=54276:AD=54277:SR=54278:NL=54272:NH=54273
  133. 940 POKENL,216:POKENH,12:FC=0
  134. 950 RETURN
  135. 996 REM*********************************
  136. 997 REM* DATA FOR SPRITE DATA BLOCK    *
  137. 998 REM* 13, 14, AND 15                *
  138. 999 REM*********************************
  139. 1000 DATA255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
  140. 1002 DATA255,255,255,255,255,255,255
  141. 1003 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  142. 1004 DATA0,0,0,0,0,0,32,254,24,35,255,160,31,255,216,15,255,192,31,255,192
  143. 1006 DATA63,255,248,127,255,252,127,255,252,127,255,248,63,255,240,15,255,240
  144. 1008 DATA19,255,152,38,56,68,120,124,62,64,254,2,64,210,2,64,169,2
  145. 1010 DATA65,85,2,194,51,131,0,0,0
  146. 1012 DATA0,0,0,32,254,24,35,255,160,31,255,216,15,255,192,31,255,192
  147. 1014 DATA63,255,248,127,255,252,127,255,252,127,255,248,63,255,240,15,255,240
  148. 1016 DATA19,255,152,38,56,68,120,124,62,64,254,2,64,0,2,64,0,2
  149. 1018 DATA64,0,2,192,0,3,0,0,0
  150.