home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1984 April / 64er_Magazin_84-04_1984_Markt__Technik_de.d64 / invaders (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  9KB  |  289 lines

  1. 1000 rem*******************************
  2. 1010 rem***     i n v a d e r s     ***
  3. 1020 rem***                         ***
  4. 1030 rem***    fuer c 64 + 1541     ***
  5. 1040 rem***                         ***
  6. 1050 rem***   (c) m.friese 1983     ***
  7. 1060 rem*******************************
  8. 1070 :
  9. 1080 :
  10. 1090 rem  "" = cursor down
  11. 1100 rem  "[147]" = clear home
  12. 1110 rem  "" = home
  13. 1120 rem  "" = revers on
  14. 1130 rem  "[146]" = revers DI
  15. 1140 :
  16. 1150 :
  17. 1160 rem*******************************
  18. 1170 rem*** computer initialisieren ***
  19. 1180 rem*******************************
  20. 1190 :
  21. 1200 poke56,124:clr:poke785,0:poke786,124:poke53281,0:printchr$(5)
  22. 1210 for  index=0 to 910
  23. 1220 :    read wert:poke31744+index,wert
  24. 1230 :    summe=summe+wert
  25. 1240 next index
  26. 1250 if summe<>104201 then print"daten fehler !":end
  27. 1260 D3 read table
  28. 1270 D3 def figure
  29. 1280 :
  30. 1290 rem*******************************
  31. 1300 rem***      hauptprogramm      ***
  32. 1310 rem*******************************
  33. 1320 :
  34. 1330 D3 DO
  35. 1340 D1 neu
  36. 1350 punkte=0:attack=1
  37. 1360 D1 start
  38. 1370 print"[147]"
  39. 1380 for zeile=2 to 12 step2
  40. 1390 :   for spalte=0 to 20 step2
  41. 1400 :       D zeile+attack-1,spalte,1,1,64+int((zeile-1)/4)*2,1
  42. 1410 :   next spalte
  43. 1420 next zeile
  44. 1430 D0,0,40,25,1
  45. 1440 treffer=usr(0):if treffer=66 then D2 ueberlebt
  46. 1450 punkte=punkte+treffer*10^attack
  47. 1460 D2 tot
  48. 1470 :
  49. 1480 :
  50. 1490 :
  51. 1500 D1 ueberlebt
  52. 1510 print"[147]      angriff";attack;"beendet"
  53. 1520 punkte=punkte+1234*10^(attack-1)
  54. 1530 print"sie haben";punkte;"punkte"
  55. 1540 DF "weiter mit <return> ",9999
  56. 1550 attack=attack+1:D2 start
  57. 1560 :
  58. 1570 :
  59. 1580 :
  60. 1590 D1 def figure
  61. 1600 :
  62. 1610 rem*******************************
  63. 1620 rem*** definiert alle im       ***
  64. 1630 rem*** programm verwendeten    ***
  65. 1640 rem*** symbole (basis,D
  66. ader, ***
  67. 1650 rem*** explosion,schuss,bombe) ***
  68. 1660 rem*******************************
  69. 1670 :
  70. 1680 DZ:DB2,$e000+8*64:rem D
  71. ader 1a
  72. 1690 @...bb...
  73. 1700 @..bbbb..
  74. 1710 @.bbbbbb.
  75. 1720 @bbbbbbbb
  76. 1730 @.bbbbbb.
  77. 1740 @..b..b..
  78. 1750 @.b....b.
  79. 1760 @b......b
  80. 1770 DB2,$e000+8*65   :rem D
  81. ader 1b
  82. 1780 @...bb...
  83. 1790 @..b..b..
  84. 1800 @.b....b.
  85. 1810 @b......b
  86. 1820 @.bbbbbb.
  87. 1830 @..b..b..
  88. 1840 @..b..b..
  89. 1850 @.b....b.
  90. 1860 DB2,$e000+8*66   :rem D
  91. ader 2a
  92. 1870 @........
  93. 1880 @bbbbbbbb
  94. 1890 @b.bbbb.b
  95. 1900 @bbbbbbbb
  96. 1910 @bb....bb
  97. 1920 @b.bbbb.b
  98. 1930 @bbbbbbbb
  99. 1940 @........
  100. 1950 DB2,$e000+8*67   :rem D
  101. ader 2b
  102. 1960 @........
  103. 1970 @bbbbbbbb
  104. 1980 @b.bbbb.b
  105. 1990 @bbb..bbb
  106. 2000 @bbbbbbbb
  107. 2010 @bb....bb
  108. 2020 @bbbbbbbb
  109. 2030 @........
  110. 2040 DB2,$e000+8*68   :rem D
  111. ader 3a
  112. 2050 @..b..b..
  113. 2060 @b..bb..b
  114. 2070 @b.bbbb.b
  115. 2080 @bbbbbbbb
  116. 2090 @..bbbb..
  117. 2100 @..bbbb..
  118. 2110 @.b....b.
  119. 2120 @b......b
  120. 2130 DB2,$e000+8*69   :rem D
  121. ader 3b
  122. 2140 @..b..b..
  123. 2150 @...bb...
  124. 2160 @..bbbb..
  125. 2170 @bbbbbbbb
  126. 2180 @b.bbbb.b
  127. 2190 @b.bbbb.b
  128. 2200 @..b..b..
  129. 2210 @.b....b.
  130. 2220 DB2,$e000+8*70   :rem basis
  131. 2230 @........
  132. 2240 @........
  133. 2250 @........
  134. 2260 @...bb...
  135. 2270 @...bb...
  136. 2280 @.bbbbbb.
  137. 2290 @bbbbbbbb
  138. 2300 @bbbbbbbb
  139. 2310 DB2,$e000+8*71   :rem bombe
  140. 2320 @b.b..b.b
  141. 2330 @.b.bb.b.
  142. 2340 @........
  143. 2350 @..b..b..
  144. 2360 @........
  145. 2370 @...bb...
  146. 2380 @..bbbb..
  147. 2390 @...bb...
  148. 2400 DB2,$e000+8*72   :rem schuss
  149. 2410 @...b....
  150. 2420 @...b....
  151. 2430 @..bbb...
  152. 2440 @..bbb...
  153. 2450 @..bbb...
  154. 2460 @..bbb...
  155. 2470 @..bbb...
  156. 2480 @..bbb...
  157. 2490 DB2,$e000+8*73   :rem explosion
  158. 2500 @b..b...b
  159. 2510 @.b.b..b.
  160. 2520 @..b..b..
  161. 2530 @......bb
  162. 2540 @bb......
  163. 2550 @..b..b..
  164. 2560 @.b..b.b.
  165. 2570 @b...b..b
  166. 2580 D4
  167. 2590 :
  168. 2600 :
  169. 2610 :
  170. 2620 D1 DO
  171. 2630 :
  172. 2640 rem*******************************
  173. 2650 rem* druckt titelbild/anleitung  *
  174. 2660 rem*******************************
  175. 2670 :
  176. 2680 print"[147]          invaders"
  177. 2690 print"         -========-"
  178. 2700 print"sie sind kommandant einer basis"
  179. 2710 print"auf der erde. eine feindliche kultur"
  180. 2720 print"hat beschlossen die rueckstaendige"
  181. 2730 print"erde zum schutz des weltall's"
  182. 2740 print"zu vernichten !"
  183. 2750 print"als vertreter der imperialistischen"
  184. 2760 print"erde verteidigen sie ihre heimat."
  185. 2770 print"fuer jeden abgeschossenen invader"
  186. 2780 print"erhalten sie punkte ."
  187. 2790 print"   steuerung:":print" [1] basis links"
  188. 2800 print" [2] feuer":print" [3] basis rechts"
  189. 2810 print"start?"
  190. 2820 D1 warte
  191. 2830 geta$:ifa$<>"j"then D2 warte
  192. 2840 D4
  193. 2850 :
  194. 2860 :
  195. 2870 :
  196. 2880 rem*******************************
  197. 2890 rem***    tabellenverwaltung   ***
  198. 2900 rem*******************************
  199. 2910 :
  200. 2920 D1 read table
  201. 2930 open15,8,15:open2,8,2,"tab invaders,s,r"
  202. 2940 input#15,fehler:if fehler=62 then D2 no table
  203. 2950 for index=0 to 9
  204. 2960 :   input#2,punkte(index)
  205. 2970 :   input#2,name$(index)
  206. 2980 next:close2:close15:D4
  207. 2990 D1 no table
  208. 3000 for index=0 to 9
  209. 3010 :   punkte(index)=500:name$(index)="***"
  210. 3020 next:close2:close15:D4
  211. 3030 :
  212. 3040 D1 tot
  213. 3050 print"[147]*** sie erreichten" punkte "punkte ***":DF5
  214. 3060 rang=10
  215. 3070 for index=0 to 9
  216. 3080 if punkte(index)<punkte and rang=10 then rang=index
  217. 3090 next:if rang=10 then D2 print table
  218. 3100 for index=9 to rang step-1
  219. 3110 :   name$(index+1)=name$(index)
  220. 3120 :   punkte(index+1)=punkte(index)
  221. 3130 next
  222. 3140 print"[147]name (max.19) ";
  223. 3150 D'" ",19,name$(rang):punkte(rang)=punkte
  224. 3160 if name$(rang)="" then name$(rang)="***"
  225. 3170 D1 print table
  226. 3180 print"[147]*** rekorde ***[146]"
  227. 3190 for index=0 to 9
  228. 3200 :   if index=rang thenprint"";
  229. 3210 :   print index+1,punkte(index),name$(index);"[146]"
  230. 3220 next index
  231. 3230 print"noch einmal ?[146] ";
  232. 3240 D1 wait
  233. 3250 geta$:if a$<>"j" and a$<>"n" then D2 wait
  234. 3260 printa$;:if a$="j" then D2 neu
  235. 3270 open2,8,2,"@0:tab invaders,s,w"
  236. 3280 for index=0 to 9
  237. 3290 :   print#2,punkte(index)
  238. 3300 :   print#2,name$(index)
  239. 3310 next
  240. 3320 close2
  241. 3330 :
  242. 3340 :
  243. 3350 :
  244. 3360 rem*******************************
  245. 3370 rem***   maschinenprogramm     ***
  246. 3380 rem*******************************
  247. 3390 :
  248. 3400 data32,164,124,169,207,133,101,169,210,133,100,32,182,124,169,70
  249. 3410 data160,0,145,20,32,173,124,169,12,133,252,169,0,133,102,133,110,133,108
  250. 3420 data133,2,133,251,165,251,201,66,240,110,165,2,240,8,198,2,32,246,126
  251. 3430 data76,122,124,160,0,177,20,201,73,208,7,169,32,145,20,76,82,124,32,4
  252. 3440 data125,224,0,240,3,32,26,125,32,5,126,32,225,124,165,20,201,0,208,219
  253. 3450 data165,21,201,204,208,213,56,169,66,229,251,74,74,74,133,2,32,102,127
  254. 3460 data32,57,125,32,207,125,32,43,126,32,85,126,32,190,126,32,173,124,165
  255. 3470 data97,240,5,56,233,3,133,97,24,105,128,141,24,212,165,108,201,1,208,143
  256. 3480 data32,34,127,32,17,125,164,251,32,162,179,96,165,20,133,98,165,21,133
  257. 3490 data99,96,169,255,133,20,169,207,133,21,96,165,100,133,20,165,101,133
  258. 3500 data21,96,165,105,133,20,165,106,133,21,96,165,20,133,100,165,21,133,101
  259. 3510 data96,165,20,133,105,165,21,133,106,96,230,20,208,2,230,21,96,198,20
  260. 3520 data166,20,224,255,208,2,198,21,96,165,20,24,105,40,144,2,230,21,133,20
  261. 3530 data96,165,20,56,233,40,176,2,198,21,133,20,96,162,0,201,64,48,6,201,70
  262. 3540 data16,2,162,1,96,165,98,133,20,165,99,133,21,96,73,1,166,102,208,13,32
  263. 3550 data218,124,145,20,169,32,32,225,124,145,20,96,72,169,32,145,20,32,225
  264. 3560 data124,104,145,20,96,32,179,125,165,102,201,1,240,4,169,39,133,20,169
  265. 3570 data0,133,107,177,20,32,4,125,224,1,240,13,32,236,124,166,107,232,134
  266. 3580 data107,224,23,208,235,96,165,102,73,1,133,102,32,173,124,177,20,133,109
  267. 3590 data32,4,125,224,1,208,14,32,236,124,165,109,145,20,32,248,124,169,32
  268. 3600 data145,20,32,225,124,165,20,201,0,208,222,165,21,201,204,208,216,32,179
  269. 3610 data125,162,23,32,236,124,202,208,250,162,40,134,107,32,218,124,177,20
  270. 3620 data32,4,125,224,1,208,2,134,108,198,107,208,238,96,169,0,133,20,169,204
  271. 3630 data133,21,96,169,128,141,18,212,169,143,141,24,212,169,1,141,15,212,173
  272. 3640 data27,212,96,32,179,125,162,4,32,188,125,24,101,20,133,20,144,2,230,21
  273. 3650 data202,208,241,177,20,32,4,125,224,1,208,24,32,236,124,177,20,201,32
  274. 3660 data208,4,169,71,145,20,201,70,208,7,169,1,133,108,76,245,125,96,177,20
  275. 3670 data201,71,208,24,169,32,145,20,32,236,124,177,20,201,32,208,4,169,71
  276. 3680 data145,20,201,70,240,4,32,248,124,96,169,1,133,108,76,24,126,32,182,124
  277. 3690 data32,188,125,41,15,240,246,133,107,32,248,124,198,107,208,249,177,20
  278. 3700 data32,4,125,224,1,208,13,32,236,124,177,20,201,32,208,4,169,71,145,20
  279. 3710 data96,32,182,124,32,159,255,160,0,165,203,201,59,208,17,165,110,201,1
  280. 3720 data240,10,32,209,124,32,6,127,169,1,133,110,96,201,56,208,30,169,32,145
  281. 3730 data20,32,225,124,165,20,201,191,208,3,32,218,124,177,20,201,71,240,43
  282. 3740 data169,70,145,20,32,200,124,96,201,8,240,1,96,169,32,145,20,32,218,124
  283. 3750 data165,20,201,232,208,3,32,225,124,177,20,201,71,240,8,169,70,145,20
  284. 3760 data32,200,124,96,169,1,133,108,96,165,110,208,1,96,32,191,124,177,20
  285. 3770 data201,72,208,4,169,32,145,20,32,248,124,177,20,201,32,208,8,169,72,145
  286. 3780 data20,32,209,124,96,32,4,125,224,0,240,5,230,251,32,77,127,169,73,145
  287. 3790 data20,169,0,133,110,96,169,8,133,21,32,225,124,165,20,208,249,165,21
  288. 3800 data208,245,96,169,0,141,11,212,141,0,212,169,18,133,97,169,100,141,1
  289. 3810 data212,169,129,141,4,212,169,240,141,6,212,96,169,7,141,1,212,169,15
  290. 3820 data141,24,212,169,0,141,11,212,141,18,212,141,4,212,141,5,212,169,252
  291. 3830 data141,6,212,169,129,141,4,212,32,246,126,169,128,141,4,212,96,169,7
  292. 3840 data141,1,212,169,18,133,97,169,129,141,4,212,169,240,141,6,212,169,0
  293. 3850 data141,11,212,96,165,252,56,233,2,201,2,208,2,169,10,141,8,212,133,252
  294. 3860 data169,15,133,97,169,240,141,13,212,169,143,141,24,212,169,0,141,4,212
  295. 3870 data169,33,141,11,212,96
  296.