home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c64 / games / viper.c64 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1993-04-06  |  4.6 KB  |  137 lines

  1. 100 DT=60:DIMMA(DT),Q(100),I%(15)
  2. 110 I%(14)=-40:I%(13)=40:I%(11)=-1:I%(7)=1
  3. 120 I%(10)=-41:I%(6)=-39:I%(9)=39:I%(5)=41:JOY=56321
  4. 130 FORJ=1TODT:READMA(J):NEXT
  5. 140 PRINT"[147]"CHR$(142):C=54272:SC=1024:POKE53281,2:POKE53280,8
  6. 150 MZ=0:P=0:DR=0
  7. 160 CURR=251:SPEED=49352:INDEX=SPEED+1:LNGTH=INDEX+1:RTN=LNGTH+1
  8. 170 SID=54272:V=SID+24:S1=SID:S2=SID:S3=S2:A=2:N=2:MM=0:S4=SID+4
  9. 180 FORI=0TO24:POKESID+I,0:NEXT:POKESID+1,25:POKESID+5,6:POKESID+6,0
  10. 190 POKESID+24,15
  11. 200 GOSUB410:POKESID+5,6:POKESPEED,19-SK
  12. 210 FORJ=1024TO1063:POKEJ+C,7:POKEJ,160:NEXT
  13. 220 FORJ=1064TO2024STEP40:POKEJ+C,7:POKEJ,160:NEXT
  14. 230 FORJ=2023TO1984STEP-1:POKEJ+C,7:POKEJ,160:NEXT
  15. 240 FORJ=1983TO1063STEP-40:POKEJ+C,7:POKEJ,160:NEXT
  16. 250 M=INT(RND(1)*1000)+SC
  17. 260 IFPEEK(M)<>32THEN250
  18. 270 POKEM,42:POKEM+C,1
  19. 280 S=INT(RND(1)*1000)+SC
  20. 290 IFPEEK(S)<>32THEN280
  21. 300 POKES,90:POKES+C,16*RND(1):IF(PEEK(56321)AND15)=15THEN300
  22. 310 S%=S/256:POKECURR,S-S%*256:POKECURR+1,S%:POKEINDEX,0
  23. 320 POKELNGTH,N:SYS49152+5:REM MAIN LOOP GOTO170
  24. 330 HIT=PEEK(RTN)
  25. 340 IFHIT<>160ANDHIT<>214THEN360
  26. 350 S=PEEK(CU)+256*PEEK(CU+1):POKES,42:POKES+C,7:GOTO770
  27. 360 IFHIT<>42THEN320
  28. 370 POKESID,0:POKESID+5,9:POKES4,128:POKES4,129:P=P+1:N=N+2:FORT=1TO50:NEXT
  29. 380 POKES4,128:POKESID,0:POKESID+5,6:POKESID+24,0:POKESID+24,15
  30. 390 GOSUB880:POKEM,42:POKEM+C,1:POKESID+24,0:POKESID+24,15
  31. 400 GOTO320
  32. 410 IFTR=1THENPRINT"[147]":GOTO470
  33. 420 GOSUB950
  34. 430 PRINT"   GET THE '*'S BUT":PRINT"   DON'T HIT ANYTHING ELSE"
  35. 440 PRINT"   USE JOYSTICK IN CONTROL PORT ONE."
  36. 450 FORJ=1TO45:POKESID,230:POKES4,33:FORT=1TO2:NEXT:POKES4,32:POKESID,0
  37. 460 POKESID+5,2
  38. 470 PRINT""TAB(11)"ENTER SKILL LEVEL:"
  39. 480 PRINTTAB(10)"[155]         11111111112":SK=10
  40. 490 PRINT" [158]SLOW  <- [155]12345678901234567890[146] ->  [153]FAST"
  41. 500 PRINTTAB(10)" [221][159] [221][156] [221] [221][158] [221][129] [221] [221][154] [221] [221][150] [221]":PRINT
  42. 510 PRINT"[145]"TAB(10+SK);"^[157]";
  43. 520 J=15-(PEEK(56321)AND15):SK=SK+((JAND8)=8)*(SK<19)-((JAND4)=4)*(SK>0)
  44. 530 IF(PEEK(56321)AND16)=0THEN560
  45. 540 IFTI<TTHEN530
  46. 550 T=TI+5:PRINT" ":GOTO510
  47. 560 IFTR=1THENPRINT"[147]":GOTO610
  48. 570 PRINTCHR$(14)"[147] [217]OU WILL GET 2 TIMES":PRINT" AS MANY POINTS WITH"
  49. 580 PRINT" AN [197]ASY [205]AZE."
  50. 590 PRINT" [217]OU WILL GET 5 TIMES":PRINT" AS MANY POINTS WITH"
  51. 600 PRINT" A [200]ARD [205]AZE."
  52. 610 PRINT"[155] [208]RESS [204]EFT[155] FOR [200]ARD MAZE"
  53. 620 PRINT" [208]RESS [210]IGHT[155] FOR [197]ASY MAZE"
  54. 630 PRINT" [208]RESS [202]OYBUTTON[155] FOR NO MAZE"
  55. 640 IFPEEK(56321)<>255THEN640
  56. 650 MZ=0:J=PEEK(56321):IF(JAND16)=0THENPRINT"[147]"CHR$(142);:RETURN
  57. 660 IF(JAND15)=15THEN650
  58. 670 PRINT"[147]"CHR$(142):IF(JAND4)THEN720
  59. 680 I=-1:PRINT"HARD MAZE"
  60. 690 FORJ=1TODT:POKESC+MA(J)+80+I*320+C,3:POKESC+MA(J)+80+I*320,160:NEXTJ
  61. 700 I=I+1:IFI<2 THEN690
  62. 710 MZ=1:RETURN
  63. 720 IF(JAND8)THEN570
  64. 730 I=-1:PRINT"EASY MAZE"
  65. 740 FORJ=1TO32:POKESC+MA(J)+C+80+320*I,3:POKESC+MA(J)+80+320*I,160:NEXT
  66. 750 I=I+1:IFI<2THEN740
  67. 760 MZ=2:RETURN
  68. 770 POKESID,0:POKESID+5,15:POKES4,129:FORJ=15TO4STEP-.1:POKESID+24,J:NEXT
  69. 780 POKESID+24,15:FORT=1TO500:NEXT:POKES4,128:FORT=1TO200:NEXT:POKESID+5,6
  70. 790 IFMZ=1THENP=P*5
  71. 800 IFMZ=2THENP=P*2
  72. 810 R=P*(SK+1)
  73. 820 PRINT"[147][158] YOUR SCORE:"R
  74. 830 IFR>HSTHENHS=R
  75. 840 PRINT" [159]HIGH SCORE:"HS
  76. 850 PRINT:PRINT"PRESS [150]JOYBUTTON[146] TO PLAY AGAIN."
  77. 860 IF(PEEK(56321)AND16)THEN860
  78. 870 ZZ=1:GOTO140
  79. 880 M=INT(RND(1)*1000)+SC:MM=0
  80. 890 IFPEEK(M)<>32THEN880
  81. 900 RETURN
  82. 910 DATA259,260,336,337,338,341,342,343,376,383,411,412,413,414,415,416
  83. 920 DATA423,424,425,426,427,428,456,463,496,497,498,501,502,503,579,580
  84. 930 DATA258,259,330,331,332,333,334,345,346,347,348,349,418,419,420,421
  85. 940 DATA490,491,492,493,494,505,506,507,508,509,578,581
  86. 950 PRINT"[147] "CHR$(142);:FORT=2TO39:PRINT"[192]";:NEXT:PRINT:PRINT""
  87. 960 PRINT" ";:FORI=2TO39:PRINT"[192]";:NEXT
  88. 970 PRINT"[164][164][164] [164] [164] [164][164][164] [164][164] [164][164][164]"
  89. 980 PRINT"   [169][146][169][169][146][169][169][146][169][169][146][169][169][146][169] [169][146][169][169][146][169]"
  90. 990 PRINT" [163] [146][169][169][146][169][169][146][169][163][163][169][146][169][163][169][146][169][223][223]"
  91. 1000 PRINT" [163][163] [163] [163][163]  [163][163] [163][163] [163][163][163]   ":IFZZ=1THEN1070
  92. 1010 IFPEEK(900)<>232THENGOSUB1130
  93. 1020 FORCO=3TO7:POKE894,CO:SYS893
  94. 1030 FORI=1TO20:PRINT""CHR$(148)" [157]"CHR$(148)" [157]"CHR$(148)" [157]"CHR$(148)" [157]
  95. 1040 [151]SID[170]1,CO[172]2[170]I:[151]S4,33:[151]S4,32:[130]
  96. 1050 [129]I[178]1[164]20:[153]" "[199](20)" "[199](20)" "[199](20)" "[199](20)" "
  97. 1060 [151]SID[170]1,CO[172]2[170]20[171]I:[151]S4,33:[151]S4,32:[130]:[130]
  98. 1070 [129]I[178]1[164]10:[153]""[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"[199](148)" CMD
  99. 1080 NEXT
  100. 1090 POKESID+1,60
  101. 1100 FORJ=15TO1STEP-1:POKE894,J:POKESID,J*10:POKES4,33
  102. 1110 SYS893:POKES4,32:POKESID+24,J:NEXT:POKESID+1,15:POKESID+24,15
  103. 1120 RETURN
  104. 1130 FORI=893TO905:READA:POKEI,A:NEXT
  105. 1140 PRINT"READY TO PLAY IN FIVE SECONDS..."
  106. 1150 DATA169,1,162,0,157,40,216,232
  107. 1160 DATA224,160,208,248,96
  108. 1170 FORI=49152TO49350:READA:CK=CK+A:POKEI,A:NEXT
  109. 1180 PRINT"                                       "
  110. 1190 IFCK<>29203THENPRINT"ERROR IN DATA STATEMENTS!":POKE900,0:END
  111. 1200 RETURN
  112. 1210 DATA169,0,141,199,192,173,1,220
  113. 1220 DATA41,15,170,189,183,192,240,3
  114. 1230 DATA141,199,192,173,201,192,10,170
  115. 1240 DATA165,251,157,205,192,165,252,157
  116. 1250 DATA206,192,56,173,201,192,237,202
  117. 1260 DATA192,16,3,24,105,128,10,170
  118. 1270 DATA189,205,192,133,253,189,206,192
  119. 1280 DATA133,254,169,32,145,253,238,201
  120. 1290 DATA192,173,201,192,16,5,169,0
  121. 1300 DATA141,201,192,169,230,141,0,212
  122. 1310 DATA169,32,141,4,212,169,33,141
  123. 1320 DATA4,212,169,214,145,251,24,165
  124. 1330 DATA251,133,253,165,252,105,212,133
  125. 1340 DATA254,169,5,145,253,24,173,199
  126. 1350 DATA192,16,13,101,251,133,251,165
  127. 1360 DATA252,233,0,133,252,76,138,192
  128. 1370 DATA101,251,133,251,165,252,105,0
  129. 1380 DATA133,252,24,165,251,133,253,165
  130. 1390 DATA252,105,212,133,254,177,251,201
  131. 1400 DATA32,208,24,169,81,145,251,169
  132. 1410 DATA4,145,253,173,200,192,240,8
  133. 1420 DATA162,0,134,162,197,162,208,252
  134. 1430 DATA76,5,192,141,203,192,96,0
  135. 1440 DATA0,0,0,0,41,217,1,0
  136. 1450 DATA39,215,255,0,40,216,0,0
  137.