home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh1x / sh12a.d64 / fill-source (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  13KB  |  540 lines

  1. 7 SYS9*4096
  2. 8 .OPT OO
  3. 9 *= $7000
  4. 10 PTR1 = $F7
  5. 11 PTR2 = $F9
  6. 12 PTR3 = $FB
  7. 13 STO0 = $FD
  8. 14 STO1 = $FE
  9. 15 STO2 = $FF
  10. 16 XK = $55
  11. 17 YK = $02
  12. 18 F = $03
  13. 19 MSK = $04
  14. 20 CHKCOM = $AEFD
  15. 21 GETCOR = $B7EB
  16. 100 ;"*******************************
  17. 110 ;"*                             *
  18. 120 ;"* BYTE-PAINT ENTWICKELT AM    *
  19. 130 ;"*                             *
  20. 140 ;"* 25.5.86 VON JESKO SCHWARZER *
  21. 150 ;"*                             *
  22. 160 ;"* FUER HIRES-MASTER.          *
  23. 170 ;"*                             *
  24. 180 ;"* TEL.: 02234/62542           *
  25. 190 ;"*                             *
  26. 200 ;"*******************************
  27. 1000 PA[181] JSR GXYK;HOLT ANFANGSKO[176]DINATEN
  28. 1010 LDY #$00
  29. 1020 LDX #$40;ANFANGSADRESSE(HB) DES ZEICHENSPEICHERS
  30. 1030 LDA #$80;HB DER 2. PAGE ($8000)
  31. 1040 STY PTR1
  32. 1050 STY PTR2
  33. 1060 STX PTR1[170]1
  34. 1070 STA PTR2[170]1
  35. 1080 LDX #$20;GRAFIKSEITE NACH $8000 KOPIEREN
  36. 1090 PL0 LDA (PTR1),Y
  37. 1100 STA (PTR2),Y
  38. 1110 INY
  39. 1120 BNE PL0
  40. 1130 INC PTR1[170]1
  41. 1140 INC PTR2[170]1
  42. 1150 DEX
  43. 1160 BNE PL0
  44. 1170 ;
  45. 1180 STY S[164]0;STAPELZEIGER FUER GEMERKTE PUNKTE AUF 0
  46. 1190 JSR PADR2;ADRESSE 1. PUNKT
  47. 1200 [175] (PTR1),Y;"PUNKT GESETZT ?
  48. 1210 BEQ PL1;NEIN, DANN WEITER
  49. 1220 RTS;JA, DANN ENDE
  50. 1230 ;
  51. 1240 PL1 STY STO1;MERRKFLAG LINKS UND
  52. 1250 STY STO2;RECHTS ZURUECKSETZEN
  53. 1260 ;
  54. 1270 PL2 LDA YK;OBERER RAND ERREICHT
  55. 1280 BEQ PL3;JA
  56. 1290 JSR DYK;NEIN, DANN SCHRITT NACH OBEN
  57. 1300 LDA (PTR1),Y;"PUNKT GESETZT ?
  58. 1310 [175] MSK
  59. 1320 BEQ PL2;NEIN, DANN ANFANG SCHLE[139]E
  60. 1330 JSR IYK;AUF [185]ITI[145] UNTER GES. PUNKT
  61. 1340 ;
  62. 1350 PL3 JSR PADR2;ADRESSE DES PUNKTES UND MASKE BERECHNEN
  63. 1360 LDA (PTR1),Y;"GANZES BYTE LEER ?
  64. 1370 BEQ PL4;JA,>> PL4
  65. 1380 JMP PL24;ZU 'BITWEISE FUELLEN' SPRINGEN
  66. 1390 ;
  67. 1400 PL4 LDA #$FF;GANZES BYTE(8 PUNKTE)
  68. 1410 STA (PTR1),Y;IN $8000 GRAFIK SETZEN
  69. 1420 LDA YK;POSITION IN DER MUSTER-MASKE
  70. 1430 AND #$0F;BERECHNEN(16*16 BITS)
  71. 1440 STA PTR2;(2 REIHEN MIT JE 16 BYTES)
  72. 1450 LDA XK
  73. 1460 AND #$08
  74. 1470 ASL
  75. 1480 ADC PTR2
  76. 1490 TAX
  77. 1500 CLC
  78. 1510 LDA PTR1
  79. 1520 STA PTR2
  80. 1530 LDA PTR1+1
  81. 1540 OF1 ADC #$C0;OFFSET ZU $8000 GRAFIK ADDIEREN
  82. 1550 STA PTR2+1;HB FUER AKTUELLE GRAFIK
  83. 1560 LDA FMSK,X;MASKENBYTE LADEN
  84. 1570 STA (PTR2),Y;UND IN AKTUELLE GRAFIK SCHREIBEN
  85. 1580 ; LINKE SEITE BEARBEITEN ********
  86. 1590 LDA XK+1;KOORDINATE IN LINKER
  87. 1600 BNE PL5;"ACHTER SPALTE ?
  88. 1610 LDA XK
  89. 1620 CMP #$08
  90. 1630 BCC PL9;LINKER R[175] ERREICHT
  91. 1640 ;
  92. 1650 PL5 SEC;NEIN,LINKES BYTE ERRECHNEN
  93. 1660 LDA PTR1;V[145] ADRESSE DER PLOT[171][185]ITI[145]
  94. 1670 SBC #$08;8 ABZIEHEN(GLEICHE ZEILE,
  95. 1680 STA PTR2;ABER LINKE SPALTE) UND
  96. 1690 LDA PTR1[170]1;NACH PTR2
  97. 1700 SBC #$00
  98. 1710 STA PTR2[170]1
  99. 1720 LDA (PTR2),Y;LINKS TESTEN
  100. 1730 BNE PL7;KEIN LEERES BYTE
  101. 1740 LDA S[164]1;"LEERES BYTE, MERKEN ERLAUBT ?
  102. 1750 BNE PL9;MERKEN VERBOTEN
  103. 1760 INC STO1;MERKEN ERLAUBT,ABER ZUKUENFTIG VERBIETEN
  104. 1770 ;
  105. 1780 JMP PL7A
  106. 1790 ;
  107. 1800 ;MERKEN 1. BIT,LINKE SEITE
  108. 1810 PL7 LSR
  109. 1820 BCS PL8;PUNKT GESETZT
  110. 1830 LDA STO1;"MERKEN ERLAUBT ?
  111. 1840 BNE PL9;MERKEN VERBOTEN
  112. 1850 INC S[164]1;MERKEN ERLAUBT,ABER ZUK. VERBIETEN
  113. 1860 ;
  114. 1870 PL7A LDX S[164]0;X[178]X[171](X[175]7)[171]1
  115. 1880 LDA XK
  116. 1890 [175] #$07
  117. 1900 STA PTR2
  118. 1910 CLC
  119. 1920 LDA XK
  120. 1930 SBC PTR2
  121. 1940 STA XXL,X;LOW[171], HIGH[171]BYTE UND Y[171]
  122. 1950 LDA XK[170]1;KO[176]DINATE AUF MERKSTAPEL
  123. 1960 SBC #$00;ABLEGEN
  124. 1970 STA XXH,X
  125. 1980 LDA YK
  126. 1990 STA YYK,X
  127. 2000 CPX #$FF;"SCHON 255 PUNKTE GEMERKT ?
  128. 2010 BEQ PL9;JA, DANN ZEIGER AUF FREIEN PLATZ NICHT ERHOEHEN
  129. 2020 INC STO0;ZEIGER NAECHSTE POSITION
  130. 2030 ;
  131. 2040 .BYT $2C;RECHTE SEITE
  132. 2050 ;
  133. 2060 PL8 STY STO1;MERKEN WIEDER ERLAUBEN
  134. 2070 ;
  135. 2080 ;RECHTE SEITE BEARBEITEN ********
  136. 2090 PL9 LDA XK+1;"RECHTER RAND ERREICHT ?
  137. 2100 BEQ PL10;NEIN [177][177] PL10
  138. 2110 LDA XK
  139. 2120 CMP #[179]312
  140. 2130 BCS PL14;JA,NAECHSTE ZEILE BEARBEITEN
  141. 2140 ;
  142. 2150 PL10 CLC;RECHTES BYTE
  143. 2160 LDA PTR1;BYTE RECHTS NEBEN DER
  144. 2170 ADC #$08;PLOT[171][185]ITI[145] ERRECHNEN
  145. 2180 STA PTR2;(PLOT[171]ADRESSE [170] 8)
  146. 2190 LDA PTR1[170]1
  147. 2200 ADC #$00
  148. 2210 STA PTR2[170]1
  149. 2220 LDA (PTR2),Y;"BYTE LEER ?
  150. 2230 BNE PL12;KEIN LEERES BYTE,MERKEN WIEDER ERLAUBEN
  151. 2240 LDA STO2;"LEERES BYTE, MERKEN ERLAUBT ?
  152. 2250 BNE PL14;NEIN, NAECHSTE ZEILE BEARB.
  153. 2260 INC S[164]2;MERKEN ZUK. VERBIETEN
  154. 2270 ;
  155. 2280 JMP PL12A
  156. 2290 ;
  157. 2300 PL12 ASL;"BYTE NICHT LEER, BIT 8 GESETZT ?
  158. 2310 BCS PL13;JA,MERKFLAG ZURUECK(MERKEN ERLAUBEN)
  159. 2320 LDA STO2;"MERKEN VERBOTEN ?
  160. 2330 BNE PL14;JA
  161. 2340 INC S[164]2;MERKEN ZUK. VERBIETEN
  162. 2350 ;
  163. 2360 PL12A LDX S[164]0;X[178](X[176]7)[170]1
  164. 2370 CLC;AUF MERKSTAPEL
  165. 2380 LDA XK
  166. 2390 [176]A #$07
  167. 2400 ADC #$01
  168. 2410 STA XXL,X
  169. 2420 LDA XK[170]1
  170. 2430 ADC #$00
  171. 2440 STA XXH,X
  172. 2450 LDA YK;AUCH DIE Y[171]KO[176]DINATE
  173. 2460 STA YYK,X
  174. 2470 CPX #$FF;"SCHON 255 PUNKTE ?
  175. 2480 BEQ PL14;JA, NAECHSTE ZEILE
  176. 2490 INC STO0;NEIN, NAECHSTER FREIER PLATZ
  177. 2500 .BYT $2C;NAECHSTE ZEILE
  178. 2510 ;
  179. 2520 PL13 STY STO2;MERKEN IM NAECHSTEN DURCHLAUF ERLAUBT
  180. 2530 ;
  181. 2540 PL14 JSR IYK;Y=Y+1 UND ADRESSE NACH PTR1
  182. 2550 LDA YK;SCHON UNTERER
  183. 2560 CMP #$C8;"RAND ?
  184. 2570 BCS PL16;JA, UNTERER R[175] ERREICHT
  185. 2580 LDA (PTR1),Y;"NEIN, BYTE LEER ?
  186. 2590 BNE PL18;NEIN, 0-BITS MERKEN
  187. 2600 JMP PL4;ZUM SCHLEIFENBEGINN
  188. 2610 ;
  189. 2620 PL16 DEC STO0;ZEIGT JETZT AUF LETZT GEMERKTEN PUNKT
  190. 2630 LDX STO0
  191. 2640 CPX #$FF;KEIN PUNKT MEHR, DANN ENDE
  192. 2650 BNE PL17
  193. 2660 RTS
  194. 2670 ;
  195. 2680 PL17 LDA XXL,X;KOORDINATEN HOLEN
  196. 2690 STA XK
  197. 2700 LDA XXH,X
  198. 2710 STA XK+1
  199. 2720 LDA YYK,X
  200. 2730 STA YK
  201. 2740 JSR PADR2;ADRESSE UND MASKE ZU DEN KOORDINATEN
  202. 2750 AND (PTR1),Y;"PUNKT GESETZT ?
  203. 2760 BNE PL16;JA, DANN NAECHSTEN PUNKT HO[195]
  204. 2770 ;
  205. 2780 JMP PL1;ZUM SCLE[139]ENBEGINN
  206. 2790 ;
  207. 2791 ;BERECHNET AUS EINEM BYTE,WELCHES
  208. 2792 ;SICH IM AKKU BEFINDET, DIE KO[176]DINATEN
  209. 2793 ;JEDES BITS UND SPEICHERT DIE KO[176]D.
  210. 2794 ;ALLER 0[171]BITS AB
  211. 2800 PL18 CMP #$FF;GANZES BYTE VOLL
  212. 2810 BEQ PL16;KEINE 0[171]BITS, [128]E
  213. 2820 ;
  214. 2830 TAX;NICHT LEERES BYTE BEARBEITEN
  215. 2840 LDA XK;KO[176]DINATEN AUF DAS 8. BIT DES BYTES
  216. 2850 [175] #$F8
  217. 2860 STA XK
  218. 2870 STY F;MERKFLAG [178] 0(YREG.[178]0!)[MERKEN IM BYTE ERLAUBEN]
  219. 2880 PL19 TXA
  220. 2890 [175] MSK1,Y;BIT[171][185]ITI[145]EN V[145] LINKS NACH RECHTS
  221. 2900 BNE PL23;GESETZTES BIT
  222. 2910 LDA F;MERKEN ERLAUBT [153]
  223. 2920 BNE PL21;NEIN
  224. 2930 INC F;JA, ABER ZUK. NICHT MEHR
  225. 2940 TXA;BYTE RETTEN
  226. 2950 PHA
  227. 2960 LDX S[164]0;STAPELZEIGER
  228. 2970 LDA XK;KO[176]DINATEN ABLEGEN
  229. 2980 STA XXL,X
  230. 2990 LDA XK[170]1
  231. 3000 STA XXH,X
  232. 3010 LDA YK
  233. 3020 STA YYK,X
  234. 3030 CPX #$FF;"SCHON 255 PUNKTE ?
  235. 3040 BEQ PL20;JA, DANN UEBERGEHEN
  236. 3050 INC STO0;MERKZEIGER ERHOEHEN
  237. 3060 PL20 PLA;BYTE ZURUECKHOLEN
  238. 3070 TAX;UND INS X-REG.
  239. 3080 PL21 INC XK;X-KOORDINATE ERHOEHEN
  240. 3090 INY;POSITION IM BYTE ERHOEHEN
  241. 3100 CPY #$08;"SCHON AM ENDE ?
  242. 3110 BCC PL19;NEIN , SCHLE[139]E
  243. 3120 ;
  244. 3130 LDA XK;X[171]KO[176]DINATE ERNIEDRIGEN
  245. 3140 BNE PL22;(UM WIEDER IM RICHTIIGEN
  246. 3150 DEC XK[170]1;BYTE ZU SEIN)
  247. 3160 PL22 DEC XK
  248. 3170 LDY #$00;Y[171]REG WIEDER AUF NULL
  249. 3180 JMP PL16;GEMERKTE PUNKTE BEARBEITEN
  250. 3190 ;
  251. 3200 PL23 LDA #$00;MERKEN DER 0[171]BITS WIEDER ERL.
  252. 3210 STA F
  253. 3220 BEQ PL21;UNBEDINGT
  254. 3230 ;
  255. 3240 ; BIT FUEL[195]D [172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172]
  256. 3241 ;WIRD ANGESP[138]GEN, WENN ES NICHT
  257. 3242 ;MOEGLICH IST, 'BYTEWEISE' 8 PUNKTE
  258. 3243 ;AUF EINMAL ZU SETZEN
  259. 3244 ;
  260. 3250 PL24 STY S[164]1;MERKFLAGS FUER LINKE
  261. 3260 STY S[164]2;UND RECHTE SEITE ZURUECK
  262. 3270 ;
  263. 3280 PL25 JSR PADR2;ADRESSE UND MASKE(IM AKKU !)
  264. 3290 [176]A (PTR1),Y;IN $8000 GRAFIK SETZEN
  265. 3300 STA (PTR1),Y
  266. 3310 CLC;IN AKTUELLER GRAFIK MUSTER PLOTTEN
  267. 3320 LDA PTR1;[185]ITI[145] IN MUSTER[171]MASKE
  268. 3330 STA PTR2;BERECHNEN
  269. 3340 LDA PTR1[170]1
  270. 3350 OF2 ADC #$C0;OFFSET V[145] $8000 GRAFIK ZUR AKT.
  271. 3360 STA PTR2[170]1
  272. 3370 LDA YK
  273. 3380 [175] #$0F
  274. 3390 STA PTR3
  275. 3400 LDA XK
  276. 3410 [175] #$08
  277. 3420 ASL
  278. 3430 [176]A PTR3
  279. 3440 TAX
  280. 3450 LDA FMSK,X;BYTE AUS DER MUSTER[171]MASKE
  281. 3460 [175] MSK;NICHT BENOETIGTE BITS AUSMASKIEREN
  282. 3470 [176]A (PTR2),Y;IN ZEICHENGRAFIK SCHREIBEN
  283. 3480 STA (PTR2),Y
  284. 3490 ;
  285. 3500 LDA XK;"XK = 0 ?
  286. 3510 ORA XK+1
  287. 3520 BEQ PL29;JA, DANN TESTEN LINKS UEBERSPRINGEN
  288. 3530 ;TESTEN LINKS ----
  289. 3540 LDA MSK;PLOT-MASKE
  290. 3550 ASL;NACH LINKS VERSCHIEBEN
  291. 3560 BCC PL28;NOCH IM BYTE
  292. 3570 ;
  293. 3580 LDA PTR1;AUSSERHALB
  294. 3590 SBC #$08;BYTEPOSITION NEBEN DEM 'PLOTBYTE'
  295. 3600 STA PTR2
  296. 3610 LDA PTR1+1
  297. 3620 SBC #$00
  298. 3630 STA PTR2+1
  299. 3640 LDA (PTR2),Y;LADEN
  300. 3650 LSR;"1.BIT GESETZT ?
  301. 3660 BCS PL27;JA, DANN MERKEN ERLAUBEN
  302. 3670 PL26 LDA S[164]1;"NEIN, MERKEN LINKS ERL. ?
  303. 3680 BNE PL29;NEIN, UEBERSPRINGEN
  304. 3690 INC STO1;JA, ABER JETZT NICHT MEHR
  305. 3700 ;
  306. 3710 LDX STO0;STAPELZEIGER
  307. 3720 SEC;POSITION LINKS SPEICHERN
  308. 3730 LDA XK
  309. 3740 SBC #$01
  310. 3750 STA XXL,X
  311. 3760 LDA XK+1
  312. 3770 SBC #$00
  313. 3780 STA XXH,X
  314. 3790 LDA YK
  315. 3800 STA YYK,X
  316. 3810 CPX #$FF;"SCHON 255 ?
  317. 3820 BEQ PL29;JA, ERHOEHEN UEBERSPRINGEN
  318. 3830 INC S[164]0;ERHOEHEN
  319. 3840 JMP PL29;UND ZUR RECHTEN SEITE
  320. 3850 ;
  321. 3860 PL28 [175] (PTR1),Y;"BIT GESETZT ?
  322. 3870 BEQ PL26;NEIN, DANN ABFRAGE MERKEN ERL. USW
  323. 3880 ;
  324. 3890 PL27 STY STO1;MERKEN LINKS ERLAUBEN
  325. 3900 ;
  326. 3910 ;RECHTE SEITE
  327. 3920 PL29 LDA XK+1;"X=319 ?
  328. 3930 BEQ PL30;NEIN, OK
  329. 3940 LDA XK
  330. 3950 CMP #[179]319
  331. 3960 BCS PL34;JA, DANN RECHTE SEITE BEARB. UEBERSPR.
  332. 3970 ;
  333. 3980 PL30 LDA MSK;PLOT[171]MASKE
  334. 3990 LSR;PIXEL DANEBEN
  335. 4000 BCC PL32;NOCH INNERHALB DES BYTES
  336. 4010 ;
  337. 4020 LDA PTR1;AUSSERHALB, 8 ADDIEREN(C[178]1)
  338. 4030 ADC #$07
  339. 4040 STA PTR2
  340. 4050 LDA PTR1[170]1
  341. 4060 ADC #$00
  342. 4070 STA PTR2[170]1
  343. 4080 LDA (PTR2),Y;BYTE LADEN
  344. 4090 ASL;"BIT 8 (PUNKT) GESETZT ?
  345. 4100 BCS PL33;JA, MERKEN RECHTS ERLAUBEN
  346. 4110 PL31 LDA STO2;"NEIN, LEER. MERKEN ERLAUBT ?
  347. 4120 BNE PL34;NEIN, DANN MERKEN UEBERSPRINGEN
  348. 4130 INC S[164]2;MERKEN VERBIETEN
  349. 4140 ;
  350. 4150 LDX S[164]0;STAPELZEIGER
  351. 4160 CLC
  352. 4170 LDA XK;[185]ITI[145] RECHTS NEBEN
  353. 4180 ADC #$01;DEM ZU[136]ZT GEPLOTTETEN
  354. 4190 STA XXL,X;PUNKT LADEN UND AUF
  355. 4200 LDA XK[170]1;DEM STAPEL ABLEGEN
  356. 4210 ADC #$00
  357. 4220 STA XXH,X
  358. 4230 LDA YK
  359. 4240 STA YYK,X
  360. 4250 CPX #$FF;"255 ?
  361. 4260 BEQ PL34;JA, NICHT ERHOEHEN
  362. 4270 INC STO0;NEIN, NAECHSTE FREIE POSITION
  363. 4280 JMP PL34;NAECHSTE ZEILE
  364. 4290 ;
  365. 4300 PL32 AND (PTR1),Y;BIT GESETZT PRINT
  366. 4310 BEQ PL31;NEIN, >>PL31
  367. 4320 ;
  368. 4330 PL33 STY STO2;JA, DANN MERKEN ERL.
  369. 4340 ;
  370. 4350 PL34 JSR IYK;DOWN ****************
  371. 4360 LDA YK
  372. 4370 CMP #$C8;"UNTERER RAND ERREICHT ?
  373. 4380 BCS PL36;JA,GEMERKTE PUNKTE BEARBEITEN
  374. 4390 LDA (PTR1),Y;NEIN,BYTE LADEN
  375. 4400 BNE PL35;NICHT LEER,DANN BITWEISE BEARBEITEN
  376. 4410 JMP PL1;S[145]ST SCHLE[139]ENBEGINN
  377. 4420 ;
  378. 4430 PL35 [175] MSK;ENTSPR. BIT GESETZT
  379. 4440 BNE PL36;JA,GEMERKTE PUNKTE HO[195]
  380. 4450 JMP PL25;NEIN, DANN WEITER BITWEISE FUEL[195]
  381. 4460 ;
  382. 4470 PL36 JMP PL16;GEMERKTE PUNKTE BEARBEITEN
  383. 4780 ;
  384. 4790 ;
  385. 4800 ;
  386. 5000 PADR2 CLC;ADRESSE UND MASKE BERECHNEN
  387. 5010 LDX YK;Y[171]KO[176]DINATE INS X[171]REG.
  388. 5020 LDA XK;XLOW IN AKKU
  389. 5030 [175] #$F8;AUF BEGINN DES BYTES
  390. 5040 ADC AADL,X;ZEI[195] BEGINN LOW ADDIEREN
  391. 5050 STA PTR1;[178] ADRESSE LOW
  392. 5060 LDA XK[170]1;XHIGH LADEN
  393. 5070 ADC AADH,X;ZEI[195]ADRESSE HIGH ADDIEREN
  394. 5080 STA PTR1[170]1;[178]ADRESSE HIGH
  395. 5090 LDA XK;MASKE ERRECHNEN
  396. 5100 [175] #$07;XLOW [175] 7 ERGIBT
  397. 5110 TAX;7[171]POTENZ ZUR BASIS 2
  398. 5120 LDA MSK1,X;AUS TABELLE LADEN
  399. 5130 STA MSK;UND NACH MSK
  400. 5140 RTS
  401. 5150 ;
  402. 5160 ;
  403. 5170 ;
  404. 5200 DYK DEC YK
  405. 5210 LDA PTR1
  406. 5220 [175] #$07
  407. 5230 BEQ DYKL1
  408. 5240 DEC PTR1
  409. 5250 RTS
  410. 5260 DYKL1 SEC
  411. 5270 LDA PTR1
  412. 5280 SBC #[179]313
  413. 5290 STA PTR1
  414. 5300 LDA PTR1[170]1
  415. 5310 SBC #[177]313
  416. 5320 STA PTR1[170]1
  417. 5330 RTS
  418. 5340 ;
  419. 5350 ;
  420. 5400 IYK INC YK
  421. 5410 LDA PTR1
  422. 5420 [175] #$07
  423. 5421 CMP #$07
  424. 5430 BEQ IYKL1
  425. 5440 INC PTR1
  426. 5450 RTS
  427. 5460 IYKL1 CLC
  428. 5470 LDA PTR1
  429. 5480 ADC #[179]313
  430. 5490 STA PTR1
  431. 5500 LDA PTR1[170]1
  432. 5510 ADC #[177]313
  433. 5520 STA PTR1[170]1
  434. 5530 RTS
  435. 5540 ;
  436. 5550 ;
  437. 6000 GXYK JSR CHKCOM
  438. 6010 JSR [161]C[176]
  439. 6020 LDA $14
  440. 6030 LDY $15
  441. 6040 STA XK
  442. 6050 STY XK[170]1
  443. 6060 STX YK
  444. 6070 RTS
  445. 8000 MSK1 .BYT $80,$40,$20,$10
  446. 8010 .BYT $08,$04,$02,$01
  447. 8020 ;
  448. 8030 FMSK .BYT %11111111;LINKE SEITE
  449. 8040 [174]    .BYT %10000000
  450. 8050 [174]    .BYT %10000000
  451. 8060 [174]    .BYT %10000000
  452. 8070 [174]    .BYT %10000000
  453. 8080 [174]    .BYT %10000000
  454. 8090 [174]    .BYT %10000000
  455. 8100 [174]    .BYT %10000000
  456. 8110 [174]    .BYT %11111111
  457. 8120 [174]    .BYT %10000000
  458. 8130 [174]    .BYT %10000000
  459. 8140 [174]    .BYT %10000000
  460. 8150 [174]    .BYT %10000000
  461. 8160 [174]    .BYT %10000000
  462. 8170 [174]    .BYT %10000000
  463. 8180 [174]    .BYT %10000000
  464. 8190 ;
  465. 8200 [174]    .BYT %11111111;RECHTE SEITE
  466. 8210 [174]    .BYT %10000000
  467. 8220 [174]    .BYT %10000000
  468. 8230 [174]    .BYT %10000000
  469. 8240 [174]    .BYT %10000000
  470. 8250 [174]    .BYT %10000000
  471. 8260 [174]    .BYT %10000000
  472. 8270 [174]    .BYT %10000000
  473. 8280 [174]    .BYT %11111111
  474. 8290 [174]    .BYT %10000000
  475. 8300 [174]    .BYT %10000000
  476. 8310 [174]    .BYT %10000000
  477. 8320 [174]    .BYT %10000000
  478. 8330 [174]    .BYT %10000000
  479. 8340 [174]    .BYT %10000000
  480. 8350 [174]    .BYT %10000000
  481. 8360 ;
  482. 8900 XXL [178] $7B00
  483. 8910 XXH [178] $7C00
  484. 8920 YYK [178] $7D00
  485. 8930 ;
  486. 8940 AADL [178] $7E00
  487. 8950 AADH [178] $7F00
  488. 8960 ;
  489. 10000 ;[177][177][177] PADR2 [179][179][179]
  490. 10010 ;UNTER DIESEM LABEL WIRD DIE ADRESSE
  491. 10015 ;IN DER $8000 GRAFIK,
  492. 10020 ;DIE ZU XK[173]XK[170]1,YK GEHOERT,ERRECHNET
  493. 10030 ;UND IN PTR1[173]PTR1[170]1 ABGELEGT.
  494. 10040 ;DIE BITMASKE FUER DEN ENTSPRECH[128]EN
  495. 10050 ;PUNKT WIRD NACH MSK GESCHRIEBEN
  496. 10060 ;UND BEFINDET SICH NACH ABCHLUSS
  497. 10070 ;IM AKKU. DAS CARRY IST ZU DIESEM
  498. 10080 ;ZEITPUNKT NICHT GESETZT.
  499. 10090 ;
  500. 10100 ;[177][177][177] DYK [179][179][179]
  501. 10110 ;DIE Y[171]KO[176]DINATE WIRD UM EINS VER[171]
  502. 10120 ;MINDERT. DIE ZUGEHOERIGE ADRESSE
  503. 10130 ;STEHT IN PTR1
  504. 10140 ;
  505. 10150 ;[177][177][177] IYK [179][179][179]
  506. 10160 ;WIE DYK. JEDOCH WIRD DIE Y[171]KO[176]D.
  507. 10170 ;ERHOEHT
  508. 10180 ;
  509. 11000 ;"BELEGUNG DER ZEROPAGE Z.B.:
  510. 11010 ;
  511. 11100 ;PTR1 = $F7
  512. 11110 ;PTR2 = $F9
  513. 11120 ;PTR3 = $FB
  514. 11130 ;
  515. 11140 ;STO0 = $FD
  516. 11150 ;STO1 = $FE
  517. 11160 ;STO2 = $FF
  518. 11170 ;
  519. 11180 ;IN BADH STEHT DAS HIGH-BYTE DES
  520. 11190 ;ZEICHENSPEICHERS.Z.B. $40 FUER
  521. 11200 ;DIE GRAFIK AB $4000
  522. 11210 ;"ACHTUNG: DIE GRAFIK AB $8000
  523. 11220 ;DARF NICHT BENUTZT WERDEN, DA
  524. 11230 ;SIE VOM PROGRAMM AUS BENOETIGT
  525. 11300 ;WIRD.
  526. 11310 ;
  527. 11320 ;XXL,XXH UND YYK [191]D DIE MERKSTAPEL
  528. 11330 ;SIE HABEN EINE LAENGE V[145] JEWEILS
  529. 11340 ;256 BYTES (INSGESAMMT 768).
  530. 11350 ;SIE DURFEN IM [184]IEN RAM LIEGEN.
  531. 11360 ;DA BEI HIRES[171]MASTER BEIM AUFUEHREN
  532. 11370 ;DIE RAMS MIT SEI:LDA #$30:STA $01
  533. 11380 ;EINGESCHALTET WERDEN, LIEGEN SIE
  534. 11390 ;D[176]T UNTER DEN CIAS IM BEREICH AB $D000
  535. 11400 ;
  536. 11410 ;DIE ROUTINE MIT DEM LABEL 'GXYK'
  537. 11420 ;HOLT DIE KO[176]DINATEN UND LEGT
  538. 11430 ;SIE IN XK[173]XK[170]1,YK AB.
  539. 59999 .[128]:[128]
  540.