home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Arcade / SPCFORTRESS.SFX / spg (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1993-10-11  |  8.7 KB  |  238 lines

  1. 0 IFPEEK(12288)<>255ORPEEK(12289)<>129ORPEEK(12290)<>153THEN2
  2. 1 PRINT"[147]":GOSUB5000:GOTO 4
  3. 2 PRINT"[147]  YOU MUST LOAD [159]SPACE FORTRESS BEFORE":POKE 53280,2:POKE 53281,2
  4. 3 PRINT"  LOADING [158]SPG":FORT=1TO3000:NEXTT:SYS 64738
  5. 4 POKE 53280,0:POKE 53281,0:POKE 53272,(PEEK(53272)AND 240)OR 12
  6. 5 PRINT"[147]             SPACE FORTRESS":PRINT"[158]           BY SETH HOPKINSON"
  7. 6 Z1=0:Z2=0:PRINT"           PRESS [156]F1 TO START"
  8. 7 PRINT"        PRESS [156]F3 TO SELECT ALIEN"
  9. 8 PRINT"     PRESS [156]F5 TO RETURN TO DISK MENU"
  10. 9 PRINT"      PRESS [156]F7 TO PAUSE OR UNPAUSE"
  11. 10 FOR A=54272TO54296:POKE A,0:NEXT A:S=0:LI=3
  12. 11 READ A$:IF A$="-1"THEN RESTORE:GOTO10
  13. 12 READ B$,D,SC,PV,C
  14. 13 PRINT"";A$;"  [150]";B$;"  [152]";SC;"  [129]LEVEL";C
  15. 14 GET A$:IF A$=""THEN 14
  16. 15 IF A$=CHR$(133)THENGOSUB 1002:GOTO 19
  17. 16 IF A$=CHR$(134)THENGOSUB 18:GOTO11
  18. 17 GOSUB 800:GOTO 14
  19. 18 PRINT"                                       ":RETURN
  20. 19 PRINT"[147]":FOR T=16TO22:POKE 1384+T,37:POKE 1384+T+54272,8:NEXTT
  21. 20 FOR T=1384+16TO1544+16STEP40:POKE T,37:POKE T+54272,8:NEXTT
  22. 21 FOR T=16TO22:POKE 1544+T,37:POKE 54272+1544+T,8:NEXTT
  23. 22 FOR T=1544+22TO1384+22STEP-40:POKE T,37:POKE 54272+T,8:NEXTT
  24. 23 POKE1344+19,38:POKE1584+19,43:POKE1464+15,41:POKE1464+23+54272,13
  25. 24 POKE1344+19+54272,13:POKE1584+19+54272,13:POKE1464+15+54272,13:POKE1464+23,40
  26. 25 FOR T=1424+17TO1424+21:POKE T,36:POKE T+54272,3:NEXTT
  27. 26 FOR T=1424+17TO1504+17STEP40:POKE T,36:POKE T+54272,3:NEXTT
  28. 27 FOR T=1504+21TO1424+21STEP-40:POKE T,36:POKE T+54272,3:NEXTT
  29. 28 FOR T=1504+17TO1504+21:POKE T,36:POKE T+54272,3:NEXTT
  30. 29 FOR T=1464+18TO1464+20:POKE T,35:POKE T+54272,7:NEXT:POKE53280,0:POKE53281,0
  31. 30 GOSUB 100:GOSUB 31:GOTO32
  32. 31 PRINT"                         ":PRINT"  SCORE ";S;"[150] FORTRESSES [155]";LI:RETURN
  33. 32 GOSUB 33:V1=PV:V2=PV:V3=PV:V4=PV:GOTO35
  34. 33 SN=SN+1:IF SN=5THEN 300
  35. 34 RETURN
  36. 35 POKE 54272,0:POKE 54273,0:IF V1=32ANDV2=32ANDV3=32ANDV4=32THEN30
  37. 36 POKEP1,32:POKEP2,32:POKEP3,32:POKEP4,32:P1=P1+1:P2=P2-1:P3=P3+40:P4=P4-40
  38. 37 POKEP1,V1:POKEP1+54272,13:POKEP2,V2:POKEP2+54272,10:POKEP3,V3:POKEP3+54272,3
  39. 38 POKEP4,V4:POKEP4+54272,7:POKE54296,15:POKE54277,68:POKE54278,68:POKE54276,17
  40. 39 IF PEEK(P1+1)=36AND V1=PVTHEN 48
  41. 40 IF PEEK(P2-1)=36AND V2=PVTHEN 48
  42. 41 IF PEEK(P3+40)=36AND V3=PVTHEN 48
  43. 42 IF PEEK(P4-40)=36AND V4=PVTHEN48
  44. 43 IF PEEK(P1+1)=41ANDV1=32THENP1=1464
  45. 44 IF PEEK(P2-1)=40ANDV2=32THENP2=1503
  46. 45 IF PEEK(P3+40)=38ANDV3=32THENP3=1043
  47. 46 IF PEEK(P4-40)=43ANDV4=32THENP4=2003
  48. 47 POKE54272,50:POKE54273,(D):FORT=1TOD:NEXTT:GOSUB500:GOSUB200:GOTO 35
  49. 48 GOSUB 900:GOTO 19
  50. 100 P1=1464:P2=1503:P3=1043:P4=2003:RETURN
  51. 101 IF LI=0 THEN PRINT"[151]YOU BARELY MADE IT":GOTO 110
  52. 102 IF LI=1 THEN PRINT"[152]YOU DID O K  BUT TRY HARDER ":GOTO 110
  53. 103 IF LI=2 THEN PRINT"[155]PRETTY GOOD  ALMOST THERE ":GOTO 110
  54. 104 IF LI=3 THEN PRINT"GREAT  YOU ARE A PRO NOW ":GOTO 110
  55. 105 IF LI=4 THEN PRINT"I CAN NOT BELIEVE YOUR SKILL":GOTO 110
  56. 106 IFLI=5THENPRINT"CONGRADULATIONS  A JOB WELL DONE  YOU COULD PASS AS A WARRIOR"
  57. 110 PRINT"HIT ANY KEY TO CONTINUE."
  58. 111 S=S+BP
  59. 112 GET A$:IF A$=""THEN 112
  60. 113 GOTO 912
  61. 200 JO=15-(PEEK(56320)AND 15)
  62. 201 IF JO=2THEN CC=40:GP=1584+19:GOSUB 700:GOTO 207
  63. 202 IF JO=1THEN CC=-40:GP=1344+19:GOSUB 700:GOTO 207
  64. 203 IF JO=4THEN CC=-1:GP=1464+15:GOSUB 700:GOTO 207
  65. 204 IF JO=8THEN CC=1:GP=1464+23:GOSUB 700:GOTO 207
  66. 206 IF XX=0THENRETURN
  67. 207 XX=1:GP=GP+CC:IF PEEK(GP+CC)=PVORPEEK(GP+CC+CC)=PVTHEN 218
  68. 208 POKE GP+CC,31:POKE GP,32:POKE GP+CC+54272,1
  69. 209 IF GP+CC>1944ORGP+CC<1064THENXX=0:POKE GP+CC,32:RETURN
  70. 210 IF CC=40 OR CC=-40 THEN 212
  71. 211 IF GP+CC>1504ORGP+CC<1463THEN XX=0:POKE GP+CC,32:RETURN
  72. 212 XX=1:GP=GP+CC:IF PEEK(GP+CC)=PVORPEEK(GP+CC+CC)=PVTHEN 218
  73. 213 POKE GP+CC,31:POKE GP,32:POKE GP+CC+54272,1
  74. 214 IF GP+CC>1944ORGP+CC<1064THENXX=0:POKE GP+CC,32:RETURN
  75. 215 IF CC=40 OR CC=-40 THEN 217
  76. 216 IF GP+CC>1504ORGP+CC<1463THEN XX=0:POKE GP+CC,32:RETURN
  77. 217 RETURN
  78. 218 IF PEEK(GP+CC+CC)=V1ANDCC=-1THEN V1=32:S=S+SC:GOTO240
  79. 219 IF PEEK(GP+CC+CC)=V2ANDCC=1THEN V2=32:S=S+SC:GOTO240
  80. 220 IF PEEK(GP+CC+CC)=V3ANDCC=-40THEN V3=32:S=S+SC:GOTO240
  81. 221 IF PEEK(GP+CC+CC)=V4ANDCC=40THEN V4=32:S=S+SC:GOTO240
  82. 222 IF PEEK(GP+CC)=V1ANDCC=-1THEN V1=32:S=S+SC:GOTO240
  83. 223 IF PEEK(GP+CC)=V2ANDCC=1THEN V2=32:S=S+SC:GOTO240
  84. 224 IF PEEK(GP+CC)=V3ANDCC=-40THEN V3=32:S=S+SC:GOTO240
  85. 225 IF PEEK(GP+CC)=V4ANDCC=40THEN V4=32:S=S+SC:GOTO240
  86. 240 POKE GP+CC,32:POKE GP+CC+CC,32:POKE GP,32:GOTO 600
  87. 300 SN=0:PRINT"[147]YOU HAVE DISTROYED ";B$;" ALIENS":B=C*2*100
  88. 301 FORA=54272TO54295:POKEA,0:NEXTA
  89. 302 S=S+50:B=B-50:IF B<0THEN309
  90. 303 PRINT"[159]BONUS   [150]"B"  "
  91. 304 PRINT"[158]SCORE   ";S
  92. 305 POKE 54296,15
  93. 306 POKE 54273,22:POKE 54272,20:POKE 54274,0:POKE 54275,0:POKE 54277,136
  94. 307 POKE 54278,129:POKE 54276,17:PRINT"       ":POKE 54296,0
  95. 308 GOTO 302
  96. 309 FORT=1TO500:NEXTT
  97. 310 GOSUB 1000:GOTO 19
  98. 400 PRINT"[147][150]     @"
  99. 401 PRINT"[153]    \[158]][153]'"
  100. 402 PRINT"     ^  "
  101. 403 PRINT"[156]THANKS A MILLION FOR HELPING MY PLANET"
  102. 404 PRINT"DEFEND ITSELF FROM THE EVIL ALIENS"
  103. 405 PRINT"[150]  YOU HAD ";LI;" FORTRESSES LEFT"
  104. 406 LB=LB+100:LB=LB+100*LI:S=S+LB
  105. 407 PRINT"[153]BONUS FORTRESS POINTS  [159]"LB
  106. 408 PRINT"I SHALL GRANT YOU THE FOLOWING POINTS"
  107. 412 PRINT"FOR HELPING ME DEFEAT THE AILIENS"
  108. 413 BP=INT(S/2):PRINT"*_*_*_*_*[159]";BP;"*_*_*_*_*":GOTO 101
  109. 414 PRINT"  [153]BONUS FORTRESS":LI=LI+1:GOSUB 31
  110. 415 FORG=54272TO54296:POKEG,0:NEXTG
  111. 416 POKE54296,15:POKE54277,17:POKE54278,129:POKE54284,16:POKE54285,34
  112. 417 POKE54276,17:POKE54283,129:FORAA=1TO80
  113. 418 POKE54272,50:POKE54273,AA:POKE54279,60:POKE54280,AA:NEXTAA
  114. 419 FORAA=80TO1STEP-1
  115. 420 POKE54272,50:POKE54273,AA:POKE54279,60:POKE54280,AA:NEXTAA
  116. 421 FORG=54272TO54296:POKEG,0:NEXTG
  117. 422 PRINT"                ":GOTO 505
  118. 500 IFS=>20000ANDZ1=0THENZ1=1:GOTO414
  119. 501 IFS=>80000ANDZ2=0THENZ2=1:GOTO414
  120. 505 GET A$
  121. 506 IFA$=CHR$(135)THENPOKE54296,0:PRINT" [158]Y TO LOAD":GOTO 510
  122. 507 IFA$=CHR$(136)THENPOKE54296,0:GOSUB 515
  123. 508 IFA$=CHR$(133)THEN4
  124. 509 PRINT"           ":RETURN
  125. 510 GET A$:IFA$=""THEN510
  126. 511 IF A$="Y"THEN802
  127. 512 GOTO 505
  128. 515 PRINT"[150]   PAUSE"
  129. 516 A=INT(RND(1)*17):POKE 53280,A:POKE 53281,A
  130. 517 FOR T=1TO100
  131. 518 GET A$
  132. 519 IF A$=CHR$(136)THENPOKE 53280,0:POKE 53281,0:POKE54296,15:GOTO 505
  133. 520 NEXTT:GOTO 516
  134. 600 FOR T=54272TO54296:POKET,0:NEXTT:POKE54278,136:POKE54277,136:POKE54296,15
  135. 601 POKE54276,129:POKE 54272,18:POKE54273,200
  136. 602 FORT=0TO15:POKE54296,T:NEXTT
  137. 603 FOR T=54272TO54296:POKET,0:NEXTT:GOTO 31
  138. 700 POKE54296,3:POKE54277,68:POKE54278,68:POKE54276,33
  139. 701 POKE 54291,68:POKE 54292,68:POKE 54290,17
  140. 702 POKE 54272,45:POKE 54273,20
  141. 703 POKE 54286,25:POKE 54287,40
  142. 710 FORGG=54272TO54296:POKE GG,0:NEXT GG:RETURN
  143. 800 IF A$=CHR$(135) THEN 802
  144. 801 RETURN
  145. 802 POKE 53272,(PEEK(53272)AND 240)OR 5
  146. 803 PRINT"[147][155]    RUNNING FILE ...... [129]MENU"
  147. 804 PRINT"[144]LOAD"CHR$(34)"MENU"CHR$(34)",8"
  148. 805 POKE 198,6
  149. 806 POKE 631,19:POKE 632,13:POKE 633,82:POKE 634,85:POKE 635,78:POKE 636,13
  150. 807 NEW
  151. 900 FOR T=54272TO54296:POKE T,0:NEXTT
  152. 901 POKE 54277,136:POKE 54278,136:POKE 54276,129:POKE 54296,10
  153. 902 Q1=1483+40:Q2=1483-40:Q3=1483+1:Q4=1483-1:Q5=1483+39:Q6=1483+41:Q7=1483-39
  154. 903 Q8=1483-41:FOR A=1TO8:SS=INT(RND(1)*16)+1
  155. 904 Q1=Q1+40:Q2=Q2-40:Q3=Q3+1:Q4=Q4-1:Q5=Q5+39:Q6=Q6+41:Q7=Q7-39:Q8=Q8-41
  156. 905 POKE Q1,42:POKE Q1+54272,8:POKE Q2,42:POKE Q2+54272,10:POKE Q3,42
  157. 906 POKE Q3+54272,13:POKE Q4,42:POKE Q4+54272,14:POKE Q5,42:POKE Q5+54272,7
  158. 907 POKE Q6,42:POKE Q6+54272,3:POKE Q7,42:POKE Q7+54272,12:POKE Q4+54273,14
  159. 908 POKE Q8,42:POKE Q8+54272,1:POKE Q3+1,42:POKE Q4-1,42:POKE Q3+54273,13
  160. 909 POKE53280,SS:POKE53281,SS:POKE 54272,16:POKE 54273,102:POKE 54296,10-A:NEXTA
  161. 910 FOR T=54272TO54296:POKE T,0:NEXTT:LI=LI-1:IF LI<0THEN912
  162. 911 FOR T=1TO500:NEXTT:RETURN
  163. 912 PRINT"[147]              GA[159]M[156]E OV[158]E[129]R"
  164. 913 RN=INT(S/1000):IF RN<10THENRK$="UNSPEAKABLE":MU=1:GOTO 940
  165. 914 IF RN<20THEN RK$="1[154] DUM SCUM":GOTO 940
  166. 915 IF RN<30THENRK$="2[154] MOON GOON":GOTO 940
  167. 916 IF RN<40THENRK$="3[154] CIVILIAN":GOTO 940
  168. 917 IF RN<50THENRK$="4[154] VIDEO GAMER":GOTO 940
  169. 918 IF RN<60THENRK$="5[154] BASE K.P. PERSONEL":GOTO 940
  170. 919 IF RN<70THENRK$="6[154] RECRUIT":GOTO 940
  171. 920 IF RN<80THENRK$="7[154] SHUTTLE TRAINEE":GOTO 940
  172. 921 IF RN<90THENRK$="8[154] COMBAT TRAINEE":GOTO 940
  173. 922 IF RN<100THENRK$="9[154] SHUTTLE PILOT":GOTO 940
  174. 923 IF RN<110THENRK$="10[154] BATTLE COMMANDER":GOTO 940
  175. 924 IF RN<120THENRK$="11[154] FIGHTER PILOT":GOTO 940
  176. 925 IF RN<130THENRK$="12[154] GENERAL":GOTO 940
  177. 926 IF RN<140THENRK$="13[154] LUTENATE":GOTO 940
  178. 927 IF RN<150THENRK$="14[154] CAPTAIN":GOTO 904
  179. 928 IF RN<160THENRK$="15[154] ADMMIRAL":GOTO 940
  180. 929 IF RN<170THEN RK$="16[154] COMMODORE":GOTO 940
  181. 930 IF RN<180THENRK$="17[154] COMMANDER-IN-CHIEF":GOTO 940
  182. 931 IF RN>180THEN1300
  183. 940 POKE 53280,0:POKE 53281,0:POKE 53272,(PEEK(53272)AND 240)OR 5
  184. 941 PRINT"       FINAL SCORE - [152]";S
  185. 942 PRINT"[158]    YOUR RANK IS - [153]";RK$
  186. 943 PRINT"             HIT ANY KEY"
  187. 945 IF PEEK(197)=64THENGOSUB3000:GOTO945
  188. 947 RUN
  189. 990 GOSUB 3000:GOTO 945
  190. 1000 READ A$:IF A$="-1"THEN RESTORE:GOTO400
  191. 1001 READ B$,D,SC,PV,C
  192. 1002 PRINT"[147][154]      LEVEL ";C;" [159]";B$;" ";SC
  193. 1003 POKE54296,1:POKE54277,9:POKE54278,16:POKE54284,68:POKE54285,17:POKE54291,33
  194. 1004 POKE54292,129:POKE54276,65:POKE54283,17:POKE54290,33:POKE54274,16
  195. 1005 POKE54275,1:POKE54272,30:POKE54273,10:POKE54279,50:POKE54280,30
  196. 1006 POKE54286,60:POKE54287,50:FORT=1TO15STEP.15:POKE54296,T:NEXTT
  197. 1007 FORT=15TO1STEP-.15:POKE54296,T:NEXTT
  198. 1008 FOR A=54272TO54296:POKE A,0:NEXT A:RETURN
  199. 1300 PRINT"[147][144]UPON ACHIEVING A SCORE OF ";S:POKE53281,15:X9=53272
  200. 1301 PRINT"YOU ARE PROCLAIMED THE ONE AND ONLY...":POKEX9,(PEEK(X9)AND240)OR5
  201. 1302 FORT=54271TO54296:POKET,0:NEXTT:POKE54296,15:POKE54277,9*16+9:POKE54284,153
  202. 1303 POKE54276,65:POKE54274,1:POKE54275,10:POKE54283,65:POKE54281,1:POKE54282,10
  203. 1304 POKE54272,10:POKE54273,10:FORDD=1TO200:NEXTDD
  204. 1305 POKE54279,13:POKE54280,13:FORDD=1TO200:NEXTDD
  205. 1306 POKE54276,64:POKE54276,65:POKE54272,15:POKE54273,15:FORDD=1TO200:NEXTDD
  206. 1307 POKE54283,64:POKE54283,65:POKE54279,17:POKE54280,17:FORDD=1TO200:NEXTDD
  207. 1308 POKE54276,64:POKE54276,65:POKE54272,20:POKE54273,20:FORDD=1TO200:NEXTDD
  208. 1309 POKE54283,64:POKE54283,65:POKE54279,23:POKE54280,23:FORDD=1TO200:NEXTDD
  209. 1310 PRINT"[144]   [166][166][166]  [166][166][166]  [166][166][166]  [166]  [166] [160][166][160][160][166][160][160][166][160][160][166]"
  210. 1312 PRINT"[144]   [166][160][166][160][160][166][160][160][160][160][166][160][160][160][160][166][160][160][166][160][160][166][160][160][166][160][160][166][160][160][166]"
  211. 1313 PRINT"[144]   [166][166][166][160][160][166][160][160][160][160][166][166][160][160][160][166][160][160][166][160][160][166][160][160][166] [160][166][160] [166]"
  212. 1314 PRINT"[144]   [166][160][166][160][160][166][160][160][160][160][166]                    "
  213. 1315 PRINT"[144]   [166][160][166][160][160][166][166][166][160][160][166][166][166][160][160][166][160][160][166][160][160][166][160][160][166][160][160][166][160][160][166]"
  214. 1320 PRINT"     O F  T H E  B A S E  ! ![160]![160]!"
  215. 1325 FORT=54272TO54296:POKET,0:NEXTT
  216. 1330 PRINT"[144] PRESS  RUN/STOP [146] TO CONTINUE..."
  217. 1335 SYS53221
  218. 1340 RUN
  219. 1400 RETURN
  220. 2000 DATA ",",LANDERCRAFT,100,100,44,1
  221. 2001 DATA -,SPACEFLY,90,200,45,2
  222. 2002 DATA [,DISTROYER1,80,300,27,3
  223. 2003 DATA /,DISTROYER2,70,400,47,4
  224. 2004 DATA ":",U F O,60,500,58,5
  225. 2005 DATA ";",SPACEDOG,50,600,59,6
  226. 2006 DATA <,ASTROBEE,40,700,60,7
  227. 2007 DATA =,WARSHIP1,30,800,61,8
  228. 2008 DATA >,WARSHIP2,20,900,62,9
  229. 2009 DATA ?,SATALITE,10,1000,63,10
  230. 2010 DATA !,SPACEBEAST,5,1100,33,11
  231. 2011 DATA .,DROIDSHIP,0,1200,46,12
  232. 2012 DATA -1
  233. 3000 RETURN
  234. 5000 ML=ML+1:IFPEEK(53221)=200THENIFPEEK(53222)=140THENRETURN
  235. 5001 IF ML=1 THEN LOAD"S.F.*",8,1
  236. 5002 IF ML=2 THEN RETURN
  237. 5003 RETURN
  238.