home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Arcade / ORB-DEFEND.SFX / orb (.txt) next >
Encoding:
Commodore BASIC  |  1993-09-04  |  10.7 KB  |  285 lines

  1. 1 GOTO100
  2. 2 OPEN15,8,15,"S0:ORBITAL DEFENDER":CLOSE15:SAVE"0:ORBITAL DEFENDER",8:END
  3. 100 REM ********************
  4. 110 REM * ORBITAL DEFENDER *
  5. 120 REM ********************
  6. 200 POKE53281,.:POKE53280,.:POKE53272,21:POKE657,128:POKE56,157:CLR
  7. 210 T$="ORBITAL DEFENDER"
  8. 220 PRINT"[147][158]         ** "T$" **"
  9. 230 PRINT"        PRESS RETURN TO CONTINUE[158]":X=12:Y=10:S=1
  10. 240 GETK$:GOSUB1560:S=ABS(S-1):PRINT"";:IFS=1THENPRINT"[146]";
  11. 250 FORI=1TO100:NEXT:PRINTT$:IFK$=""THEN240
  12. 260 IFASC(K$)<>13THEN240
  13. 270 REM INITIALIZE PROGRAM
  14. 280 PRINT"[147][158]    PLEASE WAIT WHILE I PREPARE YOUR"
  15. 290 PRINT"               SPACESHIP!"
  16. 300 R=RND(-1):E=110:T=E:P=90:N=90:DIM ES$(1,9):B$="           "
  17. 310 V1(0)=54276:V1(1)=85:V2(0)=54283:V2(1)=129:V3(0)=54290:V3(1)=129
  18. 320 POKE2040,11:POKE2041,13:POKE2042,14:POKE2043,14:POKE2044,15
  19. 330 POKE53271,8:POKE53276,49:POKE53277,8:POKE53285,0:POKE53286,6
  20. 340 POKE53287,2:POKE53288,2:POKE53289,2:POKE53290,2:POKE53291,0
  21. 350 POKE53248,172:POKE53249,174:G(0)=53256:F(0)=53250
  22. 360 F(1)=65:F(2)=172:F(3)=25:POKE53251,75:POKE53253,75:POKE53255,65
  23. 370 G(1)=64:G(2)=171:G(3)=24:POKE53257,92
  24. 380 POKE2045,11:POKE53258,172:POKE53259,75:POKE53292,2
  25. 390 FORI=1TO9:READSC$(I),ST$(I):NEXT
  26. 400 FORI=.TO575:READD:POKE40192+I,D:NEXT
  27. 410 FORI=.TO191:READD:POKE832+I,D:NEXT
  28. 420 FORI=.TO24:READD:POKE54272+I,D:NEXT
  29. 430 FORI=7TO9:ES$(0,I)="                                        "
  30. 440 ES$(1,I)=" [159]            [159]               [159]            "
  31. 450 ES$(0,I-6)=" [159]            [159]               [159]            "
  32. 460 ES$(1,I-6)="                                        ":NEXT
  33. 470 ES$(0,4)=" [159]        [183][183][183] [159]               [159]         [163][163] "
  34. 480 ES$(0,5)=" [159][183][183][183][163][163][163][183][208]    [159][207][163]      [163][163][163][163][163][163] [159][163][163][163][183][183][208][175][175][175][164][164] "
  35. 490 ES$(0,6)="               [164][164][164][164][164][164][164][164][164][164][164][164] [164][164][164][164][164][164]      "
  36. 500 ES$(1,6)=" [159]            [159][164][164][164][175][175][175][175][164][164][164][164]    [159]            "
  37. 510 ES$(1,5)=" [159]  [164][164][164][164][164][175][175][175][207]        [163][163][163][163][183][183][183] [183][208][159][164]         "
  38. 520 ES$(1,4)=" [183][183][163][163][163]                         [163][159][204][175][175][207][208][159][175][175] "
  39. 530 REM DISPLAY LEVEL OPTION SCREEN
  40. 540 POKE198,.
  41. 550 PRINT"[147]            SKILL LEVEL":PRINT"[158]        0 - ROOKIE CADET"
  42. 560 PRINT"        1 - SPACE COOK'S ASSISTANT":PRINT"        2 - SPACE COOK"
  43. 570 PRINT"        3 - RADIO OPERATOR":PRINT"        4 - GUNNERY OFFICER"
  44. 580 PRINT"        5 - NAVIGATOR'S ASSISTANT":PRINT"        6 - NAVIGATOR"
  45. 590 PRINT"        7 - HELMSMAN":PRINT"        8 - CAPTAIN"
  46. 600 PRINT"        9 - COMMANDER":PRINT"YOUR CHOICE? ";
  47. 610 GETK$:IFK$=""THEN610
  48. 620 IFASC(K$)<48ORASC(K$)>57THEN610
  49. 630 PRINTK$;:M=VAL(K$)
  50. 640 REM SCREEN DISPLAY ROUTINE
  51. 650 PRINT"[147][169]                                      [223]";
  52. 660 PRINT" [146]            [146]               [146]            ";
  53. 670 PRINT" [146]            [146]               [146]            ";
  54. 680 PRINT" [146]            [146]               [146]            ";
  55. 690 PRINT" [146]            [146]               [146]            ";
  56. 700 PRINT"                                        ";
  57. 710 PRINT"                                        ";
  58. 720 PRINT"                                        ";
  59. 730 PRINT"                                        ";
  60. 740 PRINT"[146][158][176][195][195][195][195][195][195][174]    [178][158]            [146]  [158][176][195][195][195][195][195][195][174]"
  61. 750 PRINT"[146][194]THRUST[173][195][195][174] [194][158]            [146][158]  [194]CLASS:[173][195][195][174]"
  62. 760 PRINT"[194]         [158][146][194] [194][158]   WARNING! [146][158]  [194]         [194]"
  63. 770 PRINT"[194]012345678[194] [194][158]              [173][195][195][195][195][195][195][195][195][195][189]"
  64. 780 PRINT"[173][195][195][195][195][195][195][195][195][195][189] [194][158]  [169]        [223][146]  [171][195][195][195][195][195][195][195][195][195][179]"
  65. 790 PRINT"[158][176][195][195][195][195][195][195][195][174]   [219][158]   [152]         [146][158]  [176][195][195][195][195][195][174]"
  66. 800 PRINT"[194]SHIELDS[173][195][174] [194][158]   [152]         [146][158]  [194]TYPE:[173][195][195][195][174]"
  67. 810 PRINT"[194]         [146][158][194] [194][158]   [152]         [146][158]  [194]         [194]"
  68. 820 PRINT"[194]012345678[194] [194][158]   [152]         [146][158]  [173][195][195][195][195][195][195][195][195][195][189]"
  69. 830 PRINT"[173][195][195][195][195][195][195][195][195][195][189] [194][158]   [152]         [146]  [171][195][195][195][195][195][195][195][195][195][179]"
  70. 840 PRINT"[158][176][195][195][195][195][195][195][195][195][195][174] [177][158]   [152]         [146][158]  [176][195][195][195][195][195][195][174]"
  71. 850 PRINT"[194]DOCK TIME[173][195][174]    RADAR!  [146][158]  [194]ENERGY[173][195][195][195][195][174]";
  72. 860 PRINT"[194]           [146][158][194][176][195][195][195][195][195][195][195][195][195][195][195][195][174][194]           [146][158][194]";
  73. 870 PRINT"[194]0123456789M[194][194]RANGE:      [194][194]0123456789M[194]";
  74. 880 PRINT"[173][195][195][195][195][195][195][195][195][195][195][195][189][173][195][195][195][195][195][195][195][195][195][195][195][195][189][173][195][195][195][195][195][195][195][195][195][195][195][189]";:PRINT"SCORE:";
  75. 890 REM MAIN CONTROL LOOP
  76. 900 POKEV2(0),V2(1)
  77. 910 POKE54279,P*2.5:IFINT(RND(.)*100)<5+M*2THENGOSUB1170:GOSUB1240
  78. 920 GOSUB1060:IFH<0THENH=0
  79. 930 IFINT(RND(.)*30)=25THENGOSUB1130
  80. 940 GOSUB1580:X=7:Y=24:GOSUB1560:PRINT""H"[157]   ";
  81. 950 E=E-(N/200)-(P/200):IFE<=0THEN1650
  82. 960 X=28:Y=21:GOSUB1560
  83. 970 PRINT""LEFT$(B$,INT(E/10+.5))"[146]"LEFT$(B$,INT((110-E)/10+.5))
  84. 980 D=P/10+.5
  85. 990 X=1:Y=11:GOSUB1560:PRINT""LEFT$(B$,D)"[146]"LEFT$(B$,9-INT(D))
  86. 1000 D=N/10+.5
  87. 1010 Y=16:GOSUB1560:PRINT""LEFT$(B$,D)"[146]"LEFT$(B$,9-INT(D))
  88. 1020 T=T-(P/55)+B:Y=21:GOSUB1560
  89. 1030 PRINT""LEFT$(B$,INT(T/10+.5))"[146]"LEFT$(B$,INT((116-T)/10+.5))
  90. 1040 IFT<0THENGOSUB1780
  91. 1050 GOTO910
  92. 1060 REM SCROLL STARS
  93. 1070 FORI=2TO4:POKE781,I-1:SYS59888:POKE172,PEEK(60656+I)
  94. 1080 POKE780,PEEK(217+I):SYS59848:NEXT:Y=4:X=0:GOSUB1560
  95. 1090 PRINT" [146]            [146]               [146]            [146]";
  96. 1100 FORI=1TO5:X=INT(RND(.)*38+1):IFX=12ORX=27THEN1120
  97. 1110 GOSUB1560:POKE646,RND(.)*7+1:PRINT"."
  98. 1120 NEXT:PRINT"[158]":RETURN
  99. 1130 REM SCROLL THE EARTH
  100. 1140 L=ABS(L-1)
  101. 1150 FORD=1TO7:X=0:Y=5:GOSUB1560:FORJ=D+2TODSTEP-1
  102. 1160 PRINTES$(L,J);:NEXT:GOSUB1060:NEXT:RETURN
  103. 1170 REM RADAR PICKED UP A SHIP
  104. 1180 S=INT(RND(.)*8+1)
  105. 1190 FORD=0TO42STEP21:POKEV1(0),V1(1):X=16:Y=9:GOSUB1560
  106. 1200 PRINT"[150][150][150][150][150][150][150][150][157][157][157][157][157][157][157][157][150][150][150][150][150][150][150][150][146]":GOSUB1060:FORJ=1TO75:NEXT
  107. 1210 POKEV1(0),V1(1)-1:POKE198,0
  108. 1220 X=16:Y=9:GOSUB1560:PRINT"        [157][157][157][157][157][157][157][157]        [146]"
  109. 1230 GOSUB1420:NEXT:RETURN
  110. 1240 R=INT(RND(.)*100000)+1000:R$=MID$(STR$(R),2)
  111. 1250 X=20:Y=22:GOSUB1560:PRINT"[158]"R$:POKE53269,PEEK(53269)OR1
  112. 1260 X=28:Y=11:GOSUB1560:PRINTSC$(S):Y=16:GOSUB1560:PRINTST$(S)
  113. 1270 REM SCAN KEYBOARD TO FIRE - FIRE CANNON
  114. 1280 D=0:FORJ=1TO10-M:POKEV1(0),V2(1)
  115. 1290 GETK$:IFK$<>" "THEN1390
  116. 1300 D=1:O=INT(RND(.)*3+1)
  117. 1310 POKE53264,0:POKEG(0),G(O):IFO=3THENPOKE53264,30
  118. 1320 POKE53291,5+L*14:POKE53269,PEEK(53269)OR16:POKEF(0),F(O)
  119. 1330 POKEF(0)+2,F(O):POKE53291,2:POKEV3(0),V3(1)
  120. 1340 POKE53269,PEEK(53269)OR2:POKE53269,PEEK(53269)OR4:POKEV1(0),V2(1)-1
  121. 1350 GOSUB1060:POKE53291,5+L*14:FORI=1TO200:NEXT
  122. 1360 E=E-R/50000:W(S)=W(S)+1:IFS<6THENH=H+170-20*S:GOTO1380
  123. 1370 H=H-S*45
  124. 1380 J=10-M:POKEV3(0),V3(1)-1:POKE53269,1:IFS=9THENJ=J+1
  125. 1390 POKEV1(0),V2(1)-1:FORDE=1TO50:NEXT:NEXT:IFS<6ANDD=0THEN1450
  126. 1400 X=28:Y=11:GOSUB1560:PRINT"         ":Y=16:GOSUB1560:PRINT"         "
  127. 1410 X=20:Y=22:GOSUB1560:PRINT"      ":POKE53269,0:RETURN
  128. 1420 REM STORE PROPER SHIP DATA
  129. 1430 O=(S-1)*64
  130. 1440 FORI=0+DTO21+D:POKE704+I,PEEK(40192+I+O):NEXT:RETURN
  131. 1450 REM THE ALIEN SHOOTS BACK
  132. 1460 O=INT(RND(.)*3+1):POKE53264,0:IFO=3THENPOKE53264,14
  133. 1470 POKEF(0),F(O):POKEF(0)+2,F(O):POKEF(0)+4,F(O)-10
  134. 1480 POKE53269,PEEK(53269)OR2:FORI=1TO300:NEXT
  135. 1490 POKE53269,PEEK(53269)OR4:GOSUB1060:POKE53269,PEEK(53269)OR8
  136. 1500 FORI=1TO300:NEXT:H=H-M*50:E=E-INT(RND(.)*30)-10:N=N-INT(RND(.)*40)-5
  137. 1510 POKEV3(0),V3(1):POKE53280,2:POKE53281,2:POKE53265,PEEK(53265)AND239
  138. 1520 FORI=1TO300:NEXT
  139. 1530 POKE53265,PEEK(53265)OR16:POKE53281,0:POKE53280,0:POKE53269,0
  140. 1540 POKEV3(0),V3(1)-1:IFN<1THEN1650
  141. 1550 N=INT(N):P=INT(P*.6):GOTO1400
  142. 1560 REM PLACE CURSOR AT X,Y
  143. 1570 POKE781,Y:POKE782,X:POKE783,0:SYS65520:RETURN
  144. 1580 REM READ KEYBOARD FOR THRUST AND SHIELDS
  145. 1590 GETK$
  146. 1600 IFK$="S"THENN=N+10:IFN>90THENN=90
  147. 1610 IFK$="[211]"THENN=N-10:IFN<0THENN=0
  148. 1620 IFK$="T"THENP=P+10:IFP>90THENP=90
  149. 1630 IFK$="[212]"THENP=P-10:IFP<0THENP=0
  150. 1640 RETURN
  151. 1650 REM END THE GAME
  152. 1660 POKE53269,0:POKEV2(0),V2(1)-1:PRINT"[147]";:IFH<0THENH=0
  153. 1670 PRINT"[158]THE ALPHA II FLEET HAS TAKEN OVER THE"
  154. 1680 PRINT"EARTH!  UNFORTUNATELY, THEY WERE TOO"
  155. 1690 PRINT"MUCH FOR YOUR EARTHLY DEFENSE SYSTEMS."
  156. 1700 PRINT"YOUR FINAL SCORE IS:"H
  157. 1710 PRINT"SHIPS DESTROYED..."
  158. 1720 FORI=1TO9:PRINTW(I),"_",ST$(I),SC$(I):NEXT
  159. 1730 FORI=1TO9:W(I)=0:NEXT
  160. 1740 PRINT"WOULD YOU LIKE TO PLAY AGAIN .... (Y/N)";
  161. 1750 GETK$:IFK$<>"Y"ANDK$<>"N"THEN1750
  162. 1760 IFK$="Y"THENL=0:P=90:N=P:T=110:E=T:H=L:GOTO530
  163. 1770 PRINT"[147]BYE":END
  164. 1780 REM DOCK WITH THE EARTH BASE
  165. 1790 S=9:GOSUB1190:R=50000:R$="50000"
  166. 1800 X=20:Y=22:GOSUB1560:PRINT"[158]"R$:POKE53269,PEEK(53269)OR1
  167. 1810 X=28:Y=11:GOSUB1560:PRINTSC$(S):Y=16:GOSUB1560:PRINTST$(S)
  168. 1820 FORJ=1TO11-M:POKEV1(0),V2(1)
  169. 1830 GETK$:IFK$<>" "THEN1850
  170. 1840 T=110:B=B+.25:GOTO1300
  171. 1850 POKEV1(0),V2(1)-1:GOSUB1060:NEXT:POKE53269,PEEK(53269)OR32
  172. 1860 FORI=75TO92:POKE53259,I:FORO=1TO50:NEXT:NEXT
  173. 1870 IFW(6)+W(7)+W(8)+W(9)<=6THEN1900
  174. 1880 FORI=1TO20:POKE54296,15:FORJ=1TO3:NEXT:POKE54296,0:FORO=1TO3
  175. 1890 NEXT:NEXT:T=110:POKE54296,15:GOTO1930
  176. 1900 H=H+500:E=110:T=E:P=90:N=P
  177. 1910 FORI=1TO3:POKEV3(0),V2(1):FORO=1TO200:NEXT:POKEV3(0),V2(1)-1
  178. 1920 FORO=1TO200:NEXT:NEXT
  179. 1930 POKE53269,0:POKE53259,75:GOTO1400
  180. 1940 REM DATA AND GRAPHICS FOR THE SHIPS
  181. 1950 DATA BASE,ALPHA II,FIGHTER,ALPHA II,FIGHTER,ALPHA II
  182. 1960 DATA FIGHTER,SANDIAN,FIGHTER,SANDIAN,FIGHTER,EARTH
  183. 1970 DATA CARGO,EARTH,PASSENGER,EARTH,BASE,EARTH
  184. 1980 DATA000,000,000,000,000,000,000,020
  185. 1990 DATA000,001,085,064,007,255,208,031
  186. 2000 DATA255,244,031,127,244,125,159,253
  187. 2010 DATA125,159,253,127,127,253,127,253
  188. 2020 DATA253,127,255,253,085,085,085,031
  189. 2030 DATA255,244,023,119,116,007,255,208
  190. 2040 DATA001,085,064,000,020,000,000,000
  191. 2050 DATA000,000,000,000,000,000,000,000
  192. 2060 DATA000,000,000,000,000,000,000,000
  193. 2070 DATA000,000,000,000,000,000,000,000
  194. 2080 DATA000,000,000,000,000,000,000,000
  195. 2090 DATA020,000,000,029,000,000,023,064
  196. 2100 DATA000,173,213,064,171,127,208,005
  197. 2110 DATA085,084,000,000,000,000,000,000
  198. 2120 DATA000,000,000,000,000,000,000,000
  199. 2130 DATA000,000,000,000,000,000,000,014
  200. 2140 DATA000,000,000,000,000,000,000,000
  201. 2150 DATA000,000,000,000,000,000,000,000
  202. 2160 DATA004,004,000,016,080,000,005,208
  203. 2170 DATA000,007,064,085,093,064,005,084
  204. 2180 DATA068,106,084,016,001,148,000,004
  205. 2190 DATA148,000,000,132,000,000,068,000
  206. 2200 DATA000,004,000,000,000,000,000,000
  207. 2210 DATA000,000,000,000,000,000,000,000
  208. 2220 DATA000,000,000,000,016,000,000,016
  209. 2230 DATA000,000,068,000,001,001,000,001
  210. 2240 DATA205,000,001,253,000,001,253,000
  211. 2250 DATA000,168,000,000,100,000,000,100
  212. 2260 DATA000,000,100,000,000,100,000,000
  213. 2270 DATA100,000,001,101,000,001,101,000
  214. 2280 DATA004,168,064,018,034,016,024,032
  215. 2290 DATA144,026,154,144,002,138,000,014
  216. 2300 DATA000,000,000,000,000,000,000,016
  217. 2310 DATA000,000,016,000,004,016,064,004
  218. 2320 DATA084,064,004,084,064,005,117,064
  219. 2330 DATA005,253,064,071,255,068,069,085
  220. 2340 DATA068,084,084,084,081,017,020,068
  221. 2350 DATA084,068,081,001,020,084,000,084
  222. 2360 DATA160,000,040,160,000,040,160,000
  223. 2370 DATA040,032,000,032,000,000,000,000
  224. 2380 DATA000,000,000,000,000,000,000,016
  225. 2390 DATA000,000,016,000,000,116,000,000
  226. 2400 DATA048,000,000,168,000,000,168,000
  227. 2410 DATA000,116,000,000,220,000,000,116
  228. 2420 DATA000,001,253,000,001,205,000,037
  229. 2430 DATA221,096,037,205,096,033,153,032
  230. 2440 DATA001,137,000,000,136,000,000,136
  231. 2450 DATA000,000,000,000,000,000,000,000
  232. 2460 DATA000,000,000,000,080,000,000,080
  233. 2470 DATA000,001,244,000,001,244,000,007
  234. 2480 DATA253,000,007,093,000,007,253,000
  235. 2490 DATA007,093,000,087,093,080,103,253
  236. 2500 DATA144,103,093,144,103,253,144,103
  237. 2510 DATA093,144,103,093,144,103,093,144
  238. 2520 DATA103,253,144,103,093,144,103,253
  239. 2530 DATA144,085,165,080,080,160,080,000
  240. 2540 DATA000,000,000,000,000,000,000,000
  241. 2550 DATA000,000,000,000,000,000,000,000
  242. 2560 DATA000,000,000,000,000,064,000,000
  243. 2570 DATA064,000,000,080,000,000,069,084
  244. 2580 DATA000,064,001,000,076,204,080,106
  245. 2590 DATA170,164,085,085,085,000,080,000
  246. 2600 DATA085,084,000,000,000,000,000,000
  247. 2610 DATA000,000,000,000,000,000,000,000
  248. 2620 DATA000,000,000,000,000,000,000,000
  249. 2630 DATA000,000,020,000,001,085,064,005
  250. 2640 DATA255,080,021,085,084,090,170,165
  251. 2650 DATA085,085,085,000,020,000,000,020
  252. 2660 DATA000,021,085,084,000,020,000,000
  253. 2670 DATA020,000,085,085,085,090,170,165
  254. 2680 DATA023,255,212,005,085,080,005,065
  255. 2690 DATA080,004,065,016,016,000,004,255
  256. 2700 DATA000,000,000,000,000,000,000,000
  257. 2710 DATA000,000,000,000,000,000,000,000
  258. 2720 DATA000,000,000,000,000,000,000,000
  259. 2730 DATA000,036,000,000,184,000,000,126
  260. 2740 DATA000,000,252,000,000,058,000,000
  261. 2750 DATA072,000,000,000,000,000,000,000
  262. 2760 DATA000,000,000,000,000,000,000,000
  263. 2770 DATA000,000,000,000,000,000,000,000
  264. 2780 DATA000,000,000,000,000,000,000,000
  265. 2790 DATA000,000,000,000,000,000,000,000
  266. 2800 DATA064,000,000,134,000,002,184,000
  267. 2810 DATA004,254,192,005,255,032,003,255
  268. 2820 DATA128,003,255,128,009,255,064,006
  269. 2830 DATA254,064,000,058,128,000,194,000
  270. 2840 DATA000,004,000,000,000,000,000,000
  271. 2850 DATA000,000,000,000,000,000,000,000
  272. 2860 DATA000,008,000,000,008,000,000,008
  273. 2870 DATA000,000,008,000,000,008,000,000
  274. 2880 DATA008,000,000,008,000,000,008,000
  275. 2890 DATA000,008,000,000,008,000,000,008
  276. 2900 DATA000,000,012,000,000,012,000,000
  277. 2910 DATA012,000,000,012,000,000,063,000
  278. 2920 DATA000,012,000,000,063,000,000,063
  279. 2930 DATA000,000,243,192,015,204,252,016
  280. 2940 REM SOUND DATA
  281. 2950 DATA247,9,64,53,84,0
  282. 2960 DATA240,90,1,160,71,128
  283. 2970 DATA0,106,167,6,160,136
  284. 2980 DATA128,0,250,0,0,0,15
  285.