home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 84xx / 8404.d64 / invaders (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  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,dADER, ***
  66. 1650 REM*** EXPLOSION,SCHUSS,BOMBE) ***
  67. 1660 REM*******************************
  68. 1670 :
  69. 1680 dz:db2,$E000+8*64:REM dADER 1A
  70. 1690 @...BB...
  71. 1700 @..BBBB..
  72. 1710 @.BBBBBB.
  73. 1720 @BBBBBBBB
  74. 1730 @.BBBBBB.
  75. 1740 @..B..B..
  76. 1750 @.B....B.
  77. 1760 @B......B
  78. 1770 db2,$E000+8*65   :REM dADER 1B
  79. 1780 @...BB...
  80. 1790 @..B..B..
  81. 1800 @.B....B.
  82. 1810 @B......B
  83. 1820 @.BBBBBB.
  84. 1830 @..B..B..
  85. 1840 @..B..B..
  86. 1850 @.B....B.
  87. 1860 db2,$E000+8*66   :REM dADER 2A
  88. 1870 @........
  89. 1880 @BBBBBBBB
  90. 1890 @B.BBBB.B
  91. 1900 @BBBBBBBB
  92. 1910 @BB....BB
  93. 1920 @B.BBBB.B
  94. 1930 @BBBBBBBB
  95. 1940 @........
  96. 1950 db2,$E000+8*67   :REM dADER 2B
  97. 1960 @........
  98. 1970 @BBBBBBBB
  99. 1980 @B.BBBB.B
  100. 1990 @BBB..BBB
  101. 2000 @BBBBBBBB
  102. 2010 @BB....BB
  103. 2020 @BBBBBBBB
  104. 2030 @........
  105. 2040 db2,$E000+8*68   :REM dADER 3A
  106. 2050 @..B..B..
  107. 2060 @B..BB..B
  108. 2070 @B.BBBB.B
  109. 2080 @BBBBBBBB
  110. 2090 @..BBBB..
  111. 2100 @..BBBB..
  112. 2110 @.B....B.
  113. 2120 @B......B
  114. 2130 db2,$E000+8*69   :REM dADER 3B
  115. 2140 @..B..B..
  116. 2150 @...BB...
  117. 2160 @..BBBB..
  118. 2170 @BBBBBBBB
  119. 2180 @B.BBBB.B
  120. 2190 @B.BBBB.B
  121. 2200 @..B..B..
  122. 2210 @.B....B.
  123. 2220 db2,$E000+8*70   :REM BASIS
  124. 2230 @........
  125. 2240 @........
  126. 2250 @........
  127. 2260 @...BB...
  128. 2270 @...BB...
  129. 2280 @.BBBBBB.
  130. 2290 @BBBBBBBB
  131. 2300 @BBBBBBBB
  132. 2310 db2,$E000+8*71   :REM BOMBE
  133. 2320 @B.B..B.B
  134. 2330 @.B.BB.B.
  135. 2340 @........
  136. 2350 @..B..B..
  137. 2360 @........
  138. 2370 @...BB...
  139. 2380 @..BBBB..
  140. 2390 @...BB...
  141. 2400 db2,$E000+8*72   :REM SCHUSS
  142. 2410 @...B....
  143. 2420 @...B....
  144. 2430 @..BBB...
  145. 2440 @..BBB...
  146. 2450 @..BBB...
  147. 2460 @..BBB...
  148. 2470 @..BBB...
  149. 2480 @..BBB...
  150. 2490 db2,$E000+8*73   :REM EXPLOSION
  151. 2500 @B..B...B
  152. 2510 @.B.B..B.
  153. 2520 @..B..B..
  154. 2530 @......BB
  155. 2540 @BB......
  156. 2550 @..B..B..
  157. 2560 @.B..B.B.
  158. 2570 @B...B..B
  159. 2580 d4
  160. 2590 :
  161. 2600 :
  162. 2610 :
  163. 2620 d1 do
  164. 2630 :
  165. 2640 REM*******************************
  166. 2650 REM* DRUCKT TITELBILD/ANLEITUNG  *
  167. 2660 REM*******************************
  168. 2670 :
  169. 2680 PRINT"[147]          INVADERS"
  170. 2690 PRINT"         -========-"
  171. 2700 PRINT"SIE SIND KOMMANDANT EINER BASIS"
  172. 2710 PRINT"AUF DER ERDE. EINE FEINDLICHE KULTUR"
  173. 2720 PRINT"HAT BESCHLOSSEN DIE RUECKSTAENDIGE"
  174. 2730 PRINT"ERDE ZUM SCHUTZ DES WELTALL'S"
  175. 2740 PRINT"ZU VERNICHTEN !"
  176. 2750 PRINT"ALS VERTRETER DER IMPERIALISTISCHEN"
  177. 2760 PRINT"ERDE VERTEIDIGEN SIE IHRE HEIMAT."
  178. 2770 PRINT"FUER JEDEN ABGESCHOSSENEN INVADER"
  179. 2780 PRINT"ERHALTEN SIE PUNKTE ."
  180. 2790 PRINT"   STEUERUNG:":PRINT" [1] BASIS LINKS"
  181. 2800 PRINT" [2] FEUER":PRINT" [3] BASIS RECHTS"
  182. 2810 PRINT"START?"
  183. 2820 d1 WARTE
  184. 2830 GETA$:IFA$<>"J"THEN d2 WARTE
  185. 2840 d4
  186. 2850 :
  187. 2860 :
  188. 2870 :
  189. 2880 REM*******************************
  190. 2890 REM***    TABELLENVERWALTUNG   ***
  191. 2900 REM*******************************
  192. 2910 :
  193. 2920 d1 READ TABLE
  194. 2930 OPEN15,8,15:OPEN2,8,2,"TAB INVADERS,S,R"
  195. 2940 INPUT#15,FEHLER:IF FEHLER=62 THEN d2 NO TABLE
  196. 2950 FOR INDEX=0 TO 9
  197. 2960 :   INPUT#2,PUNKTE(INDEX)
  198. 2970 :   INPUT#2,NAME$(INDEX)
  199. 2980 NEXT:CLOSE2:CLOSE15:d4
  200. 2990 d1 NO TABLE
  201. 3000 FOR INDEX=0 TO 9
  202. 3010 :   PUNKTE(INDEX)=500:NAME$(INDEX)="***"
  203. 3020 NEXT:CLOSE2:CLOSE15:d4
  204. 3030 :
  205. 3040 d1 TOT
  206. 3050 PRINT"[147]*** SIE ERREICHTEN" PUNKTE "PUNKTE ***":df5
  207. 3060 RANG=10
  208. 3070 FOR INDEX=0 TO 9
  209. 3080 IF PUNKTE(INDEX)<PUNKTE AND RANG=10 THEN RANG=INDEX
  210. 3090 NEXT:IF RANG=10 THEN d2 PRINT TABLE
  211. 3100 FOR INDEX=9 TO RANG STEP-1
  212. 3110 :   NAME$(INDEX+1)=NAME$(INDEX)
  213. 3120 :   PUNKTE(INDEX+1)=PUNKTE(INDEX)
  214. 3130 NEXT
  215. 3140 PRINT"[147]NAME (MAX.19) ";
  216. 3150 d'" ",19,NAME$(RANG):PUNKTE(RANG)=PUNKTE
  217. 3160 IF NAME$(RANG)="" THEN NAME$(RANG)="***"
  218. 3170 d1 PRINT TABLE
  219. 3180 PRINT"[147]*** REKORDE ***[146]"
  220. 3190 FOR INDEX=0 TO 9
  221. 3200 :   IF INDEX=RANG THENPRINT"";
  222. 3210 :   PRINT INDEX+1,PUNKTE(INDEX),NAME$(INDEX);"[146]"
  223. 3220 NEXT INDEX
  224. 3230 PRINT"NOCH EINMAL ?[146] ";
  225. 3240 d1 WAIT
  226. 3250 GETA$:IF A$<>"J" AND A$<>"N" THEN d2 WAIT
  227. 3260 PRINTA$;:IF A$="J" THEN d2 NEU
  228. 3270 OPEN2,8,2,"@0:TAB INVADERS,S,W"
  229. 3280 FOR INDEX=0 TO 9
  230. 3290 :   PRINT#2,PUNKTE(INDEX)
  231. 3300 :   PRINT#2,NAME$(INDEX)
  232. 3310 NEXT
  233. 3320 CLOSE2
  234. 3330 :
  235. 3340 :
  236. 3350 :
  237. 3360 REM*******************************
  238. 3370 REM***   MASCHINENPROGRAMM     ***
  239. 3380 REM*******************************
  240. 3390 :
  241. 3400 DATA32,164,124,169,207,133,101,169,210,133,100,32,182,124,169,70
  242. 3410 DATA160,0,145,20,32,173,124,169,12,133,252,169,0,133,102,133,110,133,108
  243. 3420 DATA133,2,133,251,165,251,201,66,240,110,165,2,240,8,198,2,32,246,126
  244. 3430 DATA76,122,124,160,0,177,20,201,73,208,7,169,32,145,20,76,82,124,32,4
  245. 3440 DATA125,224,0,240,3,32,26,125,32,5,126,32,225,124,165,20,201,0,208,219
  246. 3450 DATA165,21,201,204,208,213,56,169,66,229,251,74,74,74,133,2,32,102,127
  247. 3460 DATA32,57,125,32,207,125,32,43,126,32,85,126,32,190,126,32,173,124,165
  248. 3470 DATA97,240,5,56,233,3,133,97,24,105,128,141,24,212,165,108,201,1,208,143
  249. 3480 DATA32,34,127,32,17,125,164,251,32,162,179,96,165,20,133,98,165,21,133
  250. 3490 DATA99,96,169,255,133,20,169,207,133,21,96,165,100,133,20,165,101,133
  251. 3500 DATA21,96,165,105,133,20,165,106,133,21,96,165,20,133,100,165,21,133,101
  252. 3510 DATA96,165,20,133,105,165,21,133,106,96,230,20,208,2,230,21,96,198,20
  253. 3520 DATA166,20,224,255,208,2,198,21,96,165,20,24,105,40,144,2,230,21,133,20
  254. 3530 DATA96,165,20,56,233,40,176,2,198,21,133,20,96,162,0,201,64,48,6,201,70
  255. 3540 DATA16,2,162,1,96,165,98,133,20,165,99,133,21,96,73,1,166,102,208,13,32
  256. 3550 DATA218,124,145,20,169,32,32,225,124,145,20,96,72,169,32,145,20,32,225
  257. 3560 DATA124,104,145,20,96,32,179,125,165,102,201,1,240,4,169,39,133,20,169
  258. 3570 DATA0,133,107,177,20,32,4,125,224,1,240,13,32,236,124,166,107,232,134
  259. 3580 DATA107,224,23,208,235,96,165,102,73,1,133,102,32,173,124,177,20,133,109
  260. 3590 DATA32,4,125,224,1,208,14,32,236,124,165,109,145,20,32,248,124,169,32
  261. 3600 DATA145,20,32,225,124,165,20,201,0,208,222,165,21,201,204,208,216,32,179
  262. 3610 DATA125,162,23,32,236,124,202,208,250,162,40,134,107,32,218,124,177,20
  263. 3620 DATA32,4,125,224,1,208,2,134,108,198,107,208,238,96,169,0,133,20,169,204
  264. 3630 DATA133,21,96,169,128,141,18,212,169,143,141,24,212,169,1,141,15,212,173
  265. 3640 DATA27,212,96,32,179,125,162,4,32,188,125,24,101,20,133,20,144,2,230,21
  266. 3650 DATA202,208,241,177,20,32,4,125,224,1,208,24,32,236,124,177,20,201,32
  267. 3660 DATA208,4,169,71,145,20,201,70,208,7,169,1,133,108,76,245,125,96,177,20
  268. 3670 DATA201,71,208,24,169,32,145,20,32,236,124,177,20,201,32,208,4,169,71
  269. 3680 DATA145,20,201,70,240,4,32,248,124,96,169,1,133,108,76,24,126,32,182,124
  270. 3690 DATA32,188,125,41,15,240,246,133,107,32,248,124,198,107,208,249,177,20
  271. 3700 DATA32,4,125,224,1,208,13,32,236,124,177,20,201,32,208,4,169,71,145,20
  272. 3710 DATA96,32,182,124,32,159,255,160,0,165,203,201,59,208,17,165,110,201,1
  273. 3720 DATA240,10,32,209,124,32,6,127,169,1,133,110,96,201,56,208,30,169,32,145
  274. 3730 DATA20,32,225,124,165,20,201,191,208,3,32,218,124,177,20,201,71,240,43
  275. 3740 DATA169,70,145,20,32,200,124,96,201,8,240,1,96,169,32,145,20,32,218,124
  276. 3750 DATA165,20,201,232,208,3,32,225,124,177,20,201,71,240,8,169,70,145,20
  277. 3760 DATA32,200,124,96,169,1,133,108,96,165,110,208,1,96,32,191,124,177,20
  278. 3770 DATA201,72,208,4,169,32,145,20,32,248,124,177,20,201,32,208,8,169,72,145
  279. 3780 DATA20,32,209,124,96,32,4,125,224,0,240,5,230,251,32,77,127,169,73,145
  280. 3790 DATA20,169,0,133,110,96,169,8,133,21,32,225,124,165,20,208,249,165,21
  281. 3800 DATA208,245,96,169,0,141,11,212,141,0,212,169,18,133,97,169,100,141,1
  282. 3810 DATA212,169,129,141,4,212,169,240,141,6,212,96,169,7,141,1,212,169,15
  283. 3820 DATA141,24,212,169,0,141,11,212,141,18,212,141,4,212,141,5,212,169,252
  284. 3830 DATA141,6,212,169,129,141,4,212,32,246,126,169,128,141,4,212,96,169,7
  285. 3840 DATA141,1,212,169,18,133,97,169,129,141,4,212,169,240,141,6,212,169,0
  286. 3850 DATA141,11,212,96,165,252,56,233,2,201,2,208,2,169,10,141,8,212,133,252
  287. 3860 DATA169,15,133,97,169,240,141,13,212,169,143,141,24,212,169,0,141,4,212
  288. 3870 DATA169,33,141,11,212,96
  289.