home *** CD-ROM | disk | FTP | other *** search
/ Highscore 1 / Highscore_1_19xx_-.d64 / lawine 64 (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  9KB  |  431 lines

  1. 10 rem lawine ==================c64
  2. 20 rem (p) commodore welt team  ===
  3. 30 rem ============================
  4. 40 rem (c) by g. kramer         ===
  5. 50 rem        4407 emsdetten    ===
  6. 60 rem ============================
  7. 70 rem basic v2.0               ===
  8. 80 rem c64 + 1530/1541          ===
  9. 90 rem ============================
  10. 100 gosub2770
  11. 110 gosub1130
  12. 120 gosub2160
  13. 130 gosub190
  14. 140 gosub390
  15. 150 gosub980
  16. 160 **********************
  17. 170 *** spieler setzen ***
  18. 180 **********************
  19. 190 ze=5:sp=16:gosub1810
  20. 200 printan"spieler"
  21. 210 ru=int(15/an)*10+10
  22. 220 ze=7:gosub1810
  23. 230 print"je"ru"kugeln"
  24. 240 a$=chr$(32)+chr$(32)
  25. 250 a$=chr$(18)+a$+a$+chr$(32)
  26. 260 fori=1toan:poke646,i
  27. 270 ze=3*(i-1):sp=30:gosub1810
  28. 280 printa$
  29. 290 ze=ze+1:gosub1810
  30. 300 printa$
  31. 310 pokeb+40*ze+32,i+176
  32. 320 ze=ze+1:gosub1810
  33. 330 printa$
  34. 340 next
  35. 350 return
  36. 360 ********************
  37. 370 *** spiel laeuft ***
  38. 380 ********************
  39. 390 fori=1toru
  40. 400 fori0=1toan
  41. 410 poke646,i0
  42. 420 ze=10:sp=17:gosub1810
  43. 430 print"spieler"i0
  44. 440 ze=12:sp=16:gosub1810
  45. 450 printichr$(157)". kugel"
  46. 460 pokeb+1018,253
  47. 470 pokev+39,i0:pokev+40,i0
  48. 480 pokev+41,i0
  49. 490 poke198,0:gosub1510
  50. 500 pokev+4,sa:pokev+5,50
  51. 510 pokev+21,7
  52. 520 geta$:ifa$<>""then560
  53. 530 fori1=1to100:next
  54. 540 pokev+21,3
  55. 550 fori1=1to100:next:goto510
  56. 560 ifa$=chr$(134)then600
  57. 570 ifa$<>chr$(133)then530
  58. 580 sa=sa+16:ifsa=143thensa=31
  59. 590 goto500
  60. 600 a=sa/8-2
  61. 610 pokef+a,i0
  62. 620 pokeb+a,81
  63. 630 poke253,0
  64. 640 pokev+21,3
  65. 650 fori1=1to20:next
  66. 660 ifpeek(253)=0then660
  67. 670 b0=b+22*40+16:f0=b0-b+f
  68. 680 fori1=0to80step40
  69. 690 fori2=0to9
  70. 700 ifpeek(b0+i1+i2)<>81then790
  71. 710 ku(i0)=ku(i0)+1
  72. 720 gosub880
  73. 730 if(peek(f0+i1+i2)and15)=i0then760
  74. 740 ku(i0)=ku(i0)+1
  75. 750 gosub880
  76. 760 pokeb0+i1+i2,32
  77. 770 fori3=1to200:next
  78. 780 goto800
  79. 790 i1=100:i2=10
  80. 800 nexti2,i1
  81. 810 sa=sa+16:ifsa=143thensa=31
  82. 820 fori1=1to400:next
  83. 830 nexti0,i
  84. 840 return
  85. 850 *************************
  86. 860 *** spielstand setzen ***
  87. 870 *************************
  88. 880 a$=str$(ku(i0))
  89. 890 ze=1+3*(i0-1):sp=39-len(a$)
  90. 900 gosub1810
  91. 910 poke646,i0
  92. 920 gosub1740
  93. 930 printa$
  94. 940 return
  95. 950 *****************
  96. 960 *** spielende ***
  97. 970 *****************
  98. 980 ze=21:sp=16:gosub1810
  99. 990 printchr$(18)"spielende"
  100. 1000 a$="neues spiel ?"
  101. 1010 ze=23:sp=16:gosub1810
  102. 1020 printa$
  103. 1030 fori=1to100:next
  104. 1040 getb$:ifb$="j"thenpoke2,254:run110
  105. 1050 ifb$="n"thenprintchr$(147):end
  106. 1060 ze=23:sp=16:gosub1810
  107. 1070 printchr$(18)a$
  108. 1080 fori=1to100:next
  109. 1090 goto1010
  110. 1100 ************************
  111. 1110 *** anfang und titel ***
  112. 1120 ************************
  113. 1130 sys12*4096   :rem irq initial
  114. 1140 b=52224      :rem bildram
  115. 1150 n=57344      :rem zeichensatz neu
  116. 1160 v=53248      :rem vic
  117. 1170 f=55296      :rem farbram
  118. 1180 t=54272      :rem sid
  119. 1190 s=65472      :rem sprite
  120. 1200 pokeb+1016,255
  121. 1210 poke53280,0
  122. 1220 poke53281,0
  123. 1230 ifpeek(2)=254then1440
  124. 1240 a$="":gosub1510
  125. 1250 fori=1to14
  126. 1260 a$=a$+chr$(32)
  127. 1270 next
  128. 1280 fa=10:r=128
  129. 1290 forz1=7to9
  130. 1300 z=z1:gosub1860
  131. 1310 nextz1
  132. 1320 z=8
  133. 1330 a$="lawine"
  134. 1340 pokev+23,1
  135. 1350 pokev+29,1
  136. 1360 gosub1860
  137. 1370 ze=13:sp=12:gosub1810
  138. 1380 print"ein programm von"
  139. 1390 a$="g  k r a m e r"
  140. 1400 z=16:fa=3:r=0
  141. 1410 pokev+23,0
  142. 1420 pokev+29,0
  143. 1430 gosub1860
  144. 1440 poke646,9
  145. 1450 sa=31
  146. 1460 return
  147. 1470 end
  148. 1480 ************
  149. 1490 *** (NULL)ng ***
  150. 1500 ************
  151. 1510 gosub1620
  152. 1520 poket+1,8:poket,180:poket+5,12
  153. 1530 poket+8,15:poket+7,247
  154. 1540 poket+15,13:poket+14,10
  155. 1550 poket+12,12:poket+19,12
  156. 1560 poket+24,15:poket+4,23
  157. 1570 poket+11,23:poket+18,23
  158. 1580 return
  159. 1590 ********************
  160. 1600 *** loeschen sid ***
  161. 1610 ********************
  162. 1620 fort0=0to24:poket+t0,0:nextt0
  163. 1630 return
  164. 1640 **************
  165. 1650 *** heulen ***
  166. 1660 **************
  167. 1670 gosub1620
  168. 1680 poket,t1-256*int(t1/256)
  169. 1690 poket+1,int(t1/256):poket+6,240
  170. 1700 poket+24,15:poket+4,33:return
  171. 1710 **************
  172. 1720 *** schuss ***
  173. 1730 **************
  174. 1740 gosub1620
  175. 1750 poket+5,9:poket+1,21
  176. 1760 poket+24,15:poket+4,129
  177. 1770 return
  178. 1780 *********************
  179. 1790 *** cursor setzen ***
  180. 1800 *********************
  181. 1810 poke214,ze:poke211,sp:sys58640
  182. 1820 return
  183. 1830 **********************
  184. 1840 *** sprites laufen ***
  185. 1850 **********************
  186. 1860 y=z*8+50
  187. 1870 z=19+b+z*40-len(a$)/2
  188. 1880 fori=1tolen(a$)
  189. 1890 pokev+1,230
  190. 1900 pokev,0:t1=34*256
  191. 1910 a=asc(mid$(a$,i,1))
  192. 1920 ifa=32then2080
  193. 1930 ifa>63thena=a-64
  194. 1940 a0=168-(4*(len(a$)+1and254))+i*8
  195. 1950 forj=stos+62:pokej,0:nextj
  196. 1960 forj=0to7
  197. 1970 pokes+3*j+1,usr(n+j+a*8)
  198. 1980 nextj:t1=0:gosub1670
  199. 1990 pokev+21,1
  200. 2000 forj=0toa0step4
  201. 2010 pokev,jand255
  202. 2020 pokev+16,int(j/256)
  203. 2030 poket+1,jand255:nextj
  204. 2040 forj=230toystep-2
  205. 2050 pokev+1,j
  206. 2060 poket+1,j-34
  207. 2070 nextj:gosub1740
  208. 2080 pokez+i+f-b,fa
  209. 2090 pokez+i,a+r
  210. 2100 pokev+21,0
  211. 2110 nexti
  212. 2120 return
  213. 2130 *******************
  214. 2140 *** spielanfang ***
  215. 2150 *******************
  216. 2160 ze=20:sp=0:gosub1810
  217. 2170 print"wieviele mitspieler?[160](1-8)"
  218. 2180 poke198,0
  219. 2190 geta$:ifa$<"1"ora$>"8"then2190
  220. 2200 an=val(a$)
  221. 2210 print:print
  222. 2220 printan"mitspieler - ok?[160](j/n)"
  223. 2230 geta$:ifa$=""then2230
  224. 2240 ifa$="n"then2160
  225. 2250 ifa$<>"j"then2230
  226. 2260 a$=chr$(32)+chr$(98)
  227. 2270 a$=a$+a$+a$+a$+a$+a$+chr$(32)
  228. 2280 a$=chr$(166)+a$+chr$(166)
  229. 2290 gosub1510
  230. 2300 printchr$(147)chr$(154);
  231. 2310 fori=0to23
  232. 2320 printa$
  233. 2330 next
  234. 2340 printa$;
  235. 2350 a$=chr$(32)+chr$(32)
  236. 2360 a$(0,0)=chr$(100)+a$
  237. 2370 a$(1,0)=a$+chr$(101)
  238. 2380 a$(0,1)=chr$(32)+chr$(119)+chr$(32)
  239. 2390 a$(1,1)=a$(0,1)
  240. 2400 a$=chr$(98)
  241. 2410 a$(0,2)=chr$(32)+a$+chr$(109)
  242. 2420 a$(1,2)=chr$(110)+a$+chr$(32)
  243. 2430 fori=0to1
  244. 2440 fori0=41to49step4
  245. 2450 fori1=0to640step320
  246. 2460 a=i0+i1+162*i
  247. 2470 a0=int(rnd(0)*2)
  248. 2480 ze=int(a/40)
  249. 2490 sp=a-40*ze
  250. 2500 gosub1810
  251. 2510 printa$(a0,0)
  252. 2520 ze=ze+1:gosub1810
  253. 2530 printa$(a0,1)
  254. 2540 ze=ze+1:gosub1810
  255. 2550 printa$(a0,2)
  256. 2560 nexti1,i0,i
  257. 2570 pokev+29,3:pokev+23,3
  258. 2580 pokev,156:pokev+2,204
  259. 2590 pokev+1,50:pokev+3,50
  260. 2600 pokeb+1016,254:pokeb+1017,255
  261. 2610 fori=s-64tos+63
  262. 2620 pokei,0:next
  263. 2630 pokev+39,1:pokev+40,1
  264. 2640 a$="lawine":a0=s-64
  265. 2650 fori=1to6
  266. 2660 a=asc(mid$(a$,i,1))-64
  267. 2670 a1=a0+i-1
  268. 2680 ifi>3thena1=a1+61
  269. 2690 fori0=0to7
  270. 2700 pokea1+3*i0,usr(n+i0+a*8)
  271. 2710 nexti0,i
  272. 2720 pokev+21,3
  273. 2730 return
  274. 2740 *******************
  275. 2750 *** datas laden ***
  276. 2760 *******************
  277. 2770 fori=65344toi+62step3
  278. 2780 reada:pokei,a
  279. 2790 pokei+1,0:pokei+2,0
  280. 2800 next
  281. 2810 rem sprite-pfeil ***
  282. 2820 data12,30,63,63,30,12,00
  283. 2830 data00,12,30,63,12,12,12
  284. 2840 data12,12,12,12,12,18,33
  285. 2850 print"sprite-pfeil geladen"
  286. 2860 fori=49152to49267
  287. 2870 reada:pokei,a
  288. 2880 ifa-int(a)<>0then2940
  289. 2890 ifa<0ora>255then2940
  290. 2900 s=s+a:next
  291. 2910 ifs<>13791then2970
  292. 2920 print"init-routine geladen"
  293. 2930 goto3150
  294. 2940 a=peek(63)+256*peek(64)
  295. 2950 print"data-fehler in zeile"i
  296. 2960 end
  297. 2970 print"datafehler in init-routine"
  298. 2980 end
  299. 2990 rem upro init-routine ***
  300. 3000 data76,9,192,76,116,192,76,137
  301. 3010 data194,32,160,229,120,169,51,133
  302. 3020 data1,169,208,160,0,133,96,132
  303. 3030 data95,132,90,132,88,169,224,133
  304. 3040 data91,169,240,133,89,32,191,163
  305. 3050 data169,55,133,1,169,196,141,0
  306. 3060 data221,169,204,141,136,2,32,68
  307. 3070 data229,169,56,141,24,208,169,3
  308. 3080 data141,20,3,169,192,141,21,3
  309. 3090 data141,18,3,169,6,141,17,3
  310. 3100 data88,160,226,140,98,192,160,32
  311. 3110 data140,97,192,160,0,185,178,194
  312. 3120 data141,64,226,238,97,192,200,192
  313. 3130 data32,208,242,169,3,141,53,3
  314. 3140 data141,52,3,96
  315. 3150 fori=49268to49523
  316. 3160 reada:pokei,a
  317. 3170 ifa-int(a)<>0then2940
  318. 3180 ifa<0ora>255then2940
  319. 3190 s=s+a:next
  320. 3200 ifs<>48792then3230
  321. 3210 print"upro teil 1 geladen"
  322. 3220 goto3570
  323. 3230 print"datafehler in teil 1":end
  324. 3240 rem datas teil 1 ***
  325. 3250 data165,203,201,64,208,5,162,240
  326. 3260 data142,127,192,240,29,201,40,208
  327. 3270 data12,78,52,3,208,15,162,1
  328. 3280 data142,52,3,208,8,201,43,208
  329. 3290 data9,56,46,52,3,162,208,142
  330. 3300 data127,192,201,64,208,7,169,11
  331. 3310 data141,172,192,208,13,201,3,240
  332. 3320 data11,201,6,208,5,169,10,141
  333. 3330 data183,192,208,10,169,14,141
  334. 3340 data183,192,169,25,141,172,192,174
  335. 3350 data53,3,202,142,53,3,208,10
  336. 3360 data174,52,3,142,53,3,165,253
  337. 3370 data240,3,76,49,234,169,207,133
  338. 3380 data252,169,192,133,251,160,1,177
  339. 3390 data251,201,81,208,57,169,32,145
  340. 3400 data251,32,113,194,169,128,141,247
  341. 3410 data192,162,0,189,128,207,201,32
  342. 3420 data240,16,232,224,10,208,244,169
  343. 3430 data40,24,109,247,192,141,247,192
  344. 3440 data208,231,173,247,192,141,26,193
  345. 3450 data141,31,193,185,192,219,157,128
  346. 3460 data219,169,81,157,128,207,200,200
  347. 3470 data192,15,208,187,132,253,160,1
  348. 3480 data165,251,56,233,40,133,251,133
  349. 3490 data249,165,252,233,0,133,252,9
  350. 3500 data16,41,251,133,250,177,249,170
  351. 3510 data132,2,177,251,201,81,240,23
  352. 3520 data201,68,48,7,201,72,16,3,76
  353. 3530 data0,194,200,192,14,208,229,165
  354. 3540 data251,208,202,76,49,234,152,24
  355. 3550 data105,40,168,177,251,201,81,240
  356. 3560 data55,201,32,208,11,32,205,193
  357. 3570 fori=49524to49800
  358. 3580 reada:pokei,a
  359. 3590 ifa-int(a)<>0then2940
  360. 3600 ifa<0ora>255then2940
  361. 3610 s=s+a:next
  362. 3620 ifs<>85219then3650
  363. 3630 print"upro teil 2 geladen"
  364. 3640 goto4020
  365. 3650 print"datafehler in teil 2":end
  366. 3660 rem datas teil 2 ***
  367. 3670 data164,2,169,32,145,251,208,218
  368. 3680 data72,32,113,194,104,201,68,240
  369. 3690 data4,201,69,208,9,9,2,145
  370. 3700 data251,138,145,249,208,226,201
  371. 3710 data70,208,3,200,208,5,201,71
  372. 3720 data208,11,136,177,251,201,32,240
  373. 3730 data205,164,2,208,174,201,87,208
  374. 3740 data45,164,2,200,177,251,201,81
  375. 3750 data240,4,201,32,208,4,169,41
  376. 3760 data208,2,169,39,24,101,2,168
  377. 3770 data177,251,201,32,240,168,164,2
  378. 3780 data208,173,138,145,249,169,81,145
  379. 3790 data251,169,0,133,253,96,140,252
  380. 3800 data193,201,78,208,6,200,200,169
  381. 3810 data77,208,4,136,136,169,78,72
  382. 3820 data177,251,201,32,240,3,104,208
  383. 3830 data176,104,145,251,169,14,145,249
  384. 3840 data160,41,76,113,193,72,152,24
  385. 3850 data105,80,168,177,251,164,2,201
  386. 3860 data77,240,8,201,78,240,4,104
  387. 3870 data76,86,193,169,32,145,251,104
  388. 3880 data72,41,1,208,6,200,200,169
  389. 3890 data69,208,4,136,136,169,68,72
  390. 3900 data177,251,201,81,208,4,169,2
  391. 3910 data208,6,169,14,145,249,169,0
  392. 3920 data141,64,194,104,9,0,145,251
  393. 3930 data164,2,104,201,70,240,6,201
  394. 3940 data71,240,2,208,195,152,24,105
  395. 3950 data40,168,169,81,145,251,138,145
  396. 3960 data249,164,2,208,179,152,72,169
  397. 3970 data0,160,0,153,0,212,200,192
  398. 3980 data25,208,248,104,168,96,32,96
  399. 3990 data194,169,9,141,5,212,169,21
  400. 4000 data141,1,212,169,15,141,24,212
  401. 4010 data169,129,141,4,212,96
  402. 4020 fori=49801to49873
  403. 4030 reada:pokei,a
  404. 4040 ifa-int(a)<>0then2940
  405. 4050 ifa<0ora>255then2940
  406. 4060 s=s+a:next
  407. 4070 ifs<>92129then4100
  408. 4080 print"usr-routine geladen"
  409. 4090 return
  410. 4100 print"datafehler usr-routine":end
  411. 4110 rem datas usr-routine ***
  412. 4120 data165,20,72,165,21,72,32,247
  413. 4130 data183,165,1,72,165,21,201,224
  414. 4140 data208,14,169,52,120,133,1,160
  415. 4150 data0,177,20,168,104,133,1,88
  416. 4160 data104,133,21,104,133,20,76,162
  417. 4170 data179,0,0,0,0,102,126,63
  418. 4180 data3,0,0,0,0,102,126,252
  419. 4190 data192,0,60,126,126,126,126,63
  420. 4200 data3,0,60,126,126,126,126,252,192
  421. 4210 === lawine ===================c64
  422. 4220 === 38911 bytes speicher      ===
  423. 4230 ===  9417 bytes programm      ===
  424. 4240 ===   447 bytes variable      ===
  425. 4250 ===   161 bytes arrays        ===
  426. 4260 ===   595 bytes strings       ===
  427. 4270 === 28291 bytes frei          ===
  428. 4280 === =============================
  429. 4290 ===   722 bytes maschinenspr. ===
  430. 4300 === =============================
  431.