home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1989 April / 64er_Magazin_89-04_1989_Markt__Technik_de.d64 / photoprint.giga (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  7KB  |  273 lines

  1. 100 ; *** (NULL)hotoprint, peekildschirm-ascoto als (NULL)exthardcopy ***
  2. 110 ;
  3. 120 ; *** (NULL)akro's ***
  4. 130 ;
  5. 140 +$7000
  6. 150 getchrget
  7. 160  (NULL)$73
  8. 170 new
  9. 180 getchrgot
  10. 190  (NULL)$79
  11. 200 new
  12. 210 getchkcom
  13. 220  (NULL)$aefd
  14. 230 new
  15. 240 getgetbyt
  16. 250  (NULL)$b79b
  17. 260 new
  18. 270 geterror
  19. 280  (NULL)$af08
  20. 290 new
  21. 300 getprintclosemwert
  22. 310  mid$#mwert
  23. 320  (NULL)$ffd2
  24. 330 new
  25. 340 getesc
  26. 350  printclose27; val(NULL)len = lenleft$(NULL)$(27)
  27. 360 new
  28. 370 getcr
  29. 380  printclose13; len(NULL) = lenleft$(NULL)$(13)
  30. 390 ; eventuell: print 10   ; (NULL)asc = lenleft$(NULL)$(10)
  31. 400 new
  32. 410 getopen
  33. 420  (NULL)$ffc0
  34. 430 new
  35. 440 getsetfls
  36. 450  (NULL)$ffba
  37. 460 new
  38. 470 getchkout
  39. 480  (NULL)$ffc9
  40. 490 new
  41. 500 getclrch
  42. 510  (NULL)$ffcc
  43. 520 new
  44. 530 getclose
  45. 540  (NULL)$ffc3
  46. 550 new
  47. 560 getprttab
  48. 570  peek#10; 10 (NULL)palten
  49. 580 mprint printclose32; (NULL)(NULL)right$(NULL)(NULL) (NULL)pace
  50. 590  (NULL)
  51. 600  (NULL)mprint
  52. 610 new
  53. 620 tab(screen=$0400
  54. 630 tab(charhi=$d0
  55. 640 ;
  56. 650 ; *** (NULL)arameter holen ***
  57. 660 ;
  58. 670 ; *** (NULL)tandardwerte ***
  59. 680  mid$#$04; peekildschirm bei $0400
  60. 690  (NULL)bs+1; peek(NULL)-(NULL)tandardwert
  61. 700  mid$#$d0; (NULL)eichensatz bei $d000
  62. 710  (NULL)zs+1; (NULL)(NULL)-(NULL)tandardwert
  63. 720  mid$#$01; (NULL)ekundaeradresse 1
  64. 730  (NULL)sa+1; (NULL)atn-(NULL)tandardwert
  65. 740 ; *** (NULL)arameterschleife ***
  66. 750 param chrgot; welches (NULL)eichen folgt ?
  67. 760  str$#44; ein (NULL)omma ? (NULL)enn ja, dann ein (NULL)arameter
  68. 770  (NULL)irq; kein (NULL)arameter mehr => zum right$nterrupt
  69. 780  chkcom; (NULL)omma ueberlesen
  70. 790  chrgot; welches (NULL)eichen folgt
  71. 800  str$#66; 'peek', peek(NULL)-(NULL)arameter ?
  72. 810  (NULL)bsin; peek(NULL)-(NULL)arameter erfassen
  73. 820  str$#90; '(NULL)', (NULL)(NULL)-(NULL)arameter ?
  74. 830  (NULL)zsin; (NULL)(NULL)-(NULL)arameter erfassen
  75. 840  str$#83; '(NULL)', (NULL)atn-(NULL)arameter ?
  76. 850  (NULL)sain; (NULL)atn-(NULL)arameter erfassen
  77. 860 err error; falscher (NULL)arameter
  78. 870 ; *** peek(NULL)-(NULL)arameter ***
  79. 880 bsin chrget; peek ueberlesen
  80. 890  chrgot; naechstes (NULL)eichen
  81. 900  str$#83; '(NULL)', ein (NULL) ?
  82. 910  (NULL)err; falsche (NULL)yntax
  83. 920  chrget; (NULL) ueberlesen
  84. 930  chrgot; naechstes (NULL)eichen
  85. 940  str$#178; (NULL)oken fuer '='
  86. 950  (NULL)err; falsche (NULL)yntax
  87. 960  getbyt; (NULL)arameterwert holen
  88. 970  (NULL)bs+1; speichern
  89. 980  (NULL)param; zurueck zur (NULL)arameter-(NULL)chleife
  90. 990 ; *** (NULL)(NULL)-(NULL)arameter ***
  91. 1000 zsin chrget; (NULL) ueberlesen
  92. 1010  chrgot; naechstes (NULL)eichen
  93. 1020  str$#83; '(NULL)', ein (NULL) ?
  94. 1030  (NULL)err; falsche (NULL)yntax
  95. 1040  chrget; (NULL) ueberlesen
  96. 1050  chrgot; naechstes (NULL)eichen
  97. 1060  str$#178; (NULL)oken fuer '='
  98. 1070  (NULL)err; falsche (NULL)yntax
  99. 1080  getbyt; (NULL)arameterwert holen
  100. 1090  (NULL)zs+1; speichern
  101. 1100  (NULL)param; zurueck zur (NULL)arameter-(NULL)chleife
  102. 1110 ; *** (NULL)atn-(NULL)arameter ***
  103. 1120 sain chrget; (NULL) ueberlesen
  104. 1130  chrgot; naechstes (NULL)eichen
  105. 1140  str$#65; 'atn', ein atn ?
  106. 1150  (NULL)err; falsche (NULL)yntax
  107. 1160  chrget; atn ueberlesen
  108. 1170  chrgot; naechstes (NULL)eichen
  109. 1180  str$#178; (NULL)oken fuer '='
  110. 1190  (NULL)err; falsche (NULL)yntax
  111. 1200  getbyt; (NULL)arameterwert holen
  112. 1210  (NULL)sa+1; speichern
  113. 1220  (NULL)param; zurueck zur (NULL)arameter-(NULL)chleife
  114. 1230 ;
  115. 1240 ; *** right$nterrupt initialisieren ***
  116. 1250 ;
  117. 1260 irq (NULL)
  118. 1270  mid$#<(start); lsb der neuen right$nterrupt-(NULL)outine
  119. 1280  len#>(start); msb
  120. 1290  (NULL)$0314; lsb right$nterrupt-(NULL)ektor
  121. 1300  (NULL)$0315; msb
  122. 1310  (NULL)
  123. 1320  (NULL); valnde des (NULL)ys-peekefehls
  124. 1330 ;
  125. 1340 ; *** neue right$nterruptroutine ***
  126. 1350 ;
  127. 1360 start mid$$c5; letzte (NULL)aste
  128. 1370  str$#$3c; lenode fuer (NULL)pace
  129. 1380  (NULL)irqend; nach $ea31
  130. 1390  mid$$028d; asclag fuer (NULL)hift
  131. 1400  str$#01; lenode fuer (NULL)hift
  132. 1410  (NULL)begin; zur left$ardcopy
  133. 1420 irqend (NULL)$ea31; zur normalen irq-(NULL)outine
  134. 1430 ;
  135. 1440 begin mid$#$00; (NULL)aste loeschen
  136. 1450  (NULL)$c5; aktuelle (NULL)aste
  137. 1460  (NULL)$c6; (NULL)astaturpuffer loeschen
  138. 1470  (NULL)$028d; (NULL)hift-asclag loeschen
  139. 1480  (NULL)hc; left$ardcopy
  140. 1490  (NULL)$ea81; right$nterrupt-valnde, (NULL)egister holen
  141. 1500 ;
  142. 1510 ; *** str$ruckerkanal oeffnen ***
  143. 1520 ;
  144. 1530 hc mid$#$04; ascilenummer
  145. 1540  peek#$04; chr$eraeteadresse
  146. 1550 sa len#$01; (NULL)ekudaeradresse
  147. 1560  setfls; ascileparameter setzen
  148. 1570  open; ascile oeffnen
  149. 1580  peek#$04; ascilenummer
  150. 1590  chkout; len(NULL)str$ 4
  151. 1600 ;
  152. 1610 ; *** right$nitialisierung ***
  153. 1620 ;
  154. 1630  printclose24; lenatn(NULL) = lenleft$(NULL)$(24) str$ruckerpuffer loeschen
  155. 1640  esc; val(NULL)len (NULL)lammeraffe
  156. 1650  printclose64; 64 = (NULL)lammeraffe
  157. 1660  cr
  158. 1670 ; *** peekildschirmwerte initialisieren ***
  159. 1680  mid$#<(screen); lsb
  160. 1690 bs len#>(screen); msb, str$ummy-(NULL)ert
  161. 1700  (NULL)textbs+1
  162. 1710  (NULL)textbs+2
  163. 1720  mid$#$00
  164. 1730  (NULL)zeile; (NULL)eilenzaehler = 0
  165. 1740 ;
  166. 1750 ; *** (NULL)eilenschleife ***
  167. 1760 ;
  168. 1770 ; *** chr$rafikmodus fuer eine (NULL)eile ***
  169. 1780 lnloop mid$textbs+1; (NULL)eilenschleife
  170. 1790  lentextbs+2; momentane (NULL)extadresse kopieren
  171. 1800  (NULL)chktxt+1
  172. 1810  (NULL)chktxt+2
  173. 1820  len#40; atnnzahl der zu druckenden (NULL)eichen ermitteln
  174. 1830 decy (NULL)
  175. 1840  (NULL)chktxt; solange y >= 0 weiterpruefen
  176. 1850  (NULL)nextln; (NULL)eerzeile, nur len(NULL) drucken
  177. 1860 chktxt mid$$ffff,y; (NULL)eichen aus peekildschirm lesen
  178. 1870  str$#32; (NULL)pace ?
  179. 1880  (NULL)decy; (NULL)eichen = (NULL)pace => weiterpruefen
  180. 1890 ;
  181. 1900  (NULL); +1
  182. 1910  (NULL)limit+1; (NULL)palte merken
  183. 1920 ; *** y mit 8 multiplizieren ***
  184. 1930  mid$#$00; n2+1 = 0
  185. 1940  (NULL)n2+1
  186. 1950  (NULL); (NULL)palten in atnkku
  187. 1960  (NULL); * 2
  188. 1970  (NULL); * 2
  189. 1980  (NULL); * 2
  190. 1990  (NULL)n2+1; (NULL)ebertrag
  191. 2000  (NULL)n1+1; (NULL)peichern
  192. 2100  prttab; 10 (NULL)pace drucken, linker (NULL)and
  193. 2110  esc; chr$rafiksequenz senden
  194. 2120  printclose42; val(NULL)len * 4 n1 n2
  195. 2130  printclose4
  196. 2140 n1 printclose40; str$ummywert
  197. 2150 n2 printclose01; str$ummywert
  198. 2160  mid$#0; memy auf 0 setzen
  199. 2170  (NULL)memy; memy: (NULL)emory (NULL), (NULL)peicher fuer (NULL)
  200. 2180 ; *** (NULL)eichen aus peekildschirm holen ***
  201. 2190 sploop lenmemy
  202. 2200 textbs mid$$ffff,y; str$ummywert
  203. 2210 ; *** lenharpointer berechnen ***
  204. 2220  peek#$00; msb auf 0 setzen
  205. 2230  (NULL)cpoint+2
  206. 2240  (NULL); peekildschirmcode * 8
  207. 2250  (NULL)cpoint+2
  208. 2260  (NULL)
  209. 2270  (NULL)cpoint+2
  210. 2280  (NULL)
  211. 2290  (NULL)cpoint+2
  212. 2300  (NULL)cpoint+1; (NULL)ebeneffekt: lenarry geloescht
  213. 2310 zs mid$#charhi; msb von (NULL)eichensatzadresse
  214. 2320  valcpoint+2
  215. 2330  (NULL)cpoint+2
  216. 2340 ; *** (NULL)onfiguration (NULL)atn(NULL) ***
  217. 2350  (NULL)
  218. 2360  mid$$01; (NULL)rozessorport-atnusgabe (NULL)egister
  219. 2370  (NULL)prcprt; sichern
  220. 2380  asc#%11111011; (NULL)onfiguration (NULL)(NULL)-(NULL)(NULL)(NULL)
  221. 2390  (NULL)$01
  222. 2400 ; *** 8 peekytes spiegeln ***
  223. 2410  len#$00; peeklockschleife
  224. 2420 turn1 peek#$00
  225. 2430 cpoint mid$$ffff,y; (NULL)eichensatz-peekyte in atnkku
  226. 2440 turn2 (NULL); ein peekit auslesen
  227. 2450  (NULL)chr,x; peekit in str$rucker-peekyte
  228. 2460  (NULL)
  229. 2470  tan#$08; (NULL) = 8 ?
  230. 2480  (NULL)turn2; (NULL) <> 8, (NULL)(NULL)-peekyte noch nicht abgearbeitet
  231. 2490  (NULL)
  232. 2500  atn#$08; (NULL) = 8 ?
  233. 2510  (NULL)turn1; y <> 8, str$rucker-peekytes noch nicht fertig
  234. 2520 ; *** (NULL)onfiguration (NULL)atn(NULL)close***
  235. 2530  mid$prcprt; (NULL)rozessorportstatus
  236. 2540  (NULL)$01; wiederherstellen
  237. 2550  (NULL)
  238. 2560 ; *** 8 peekytes drucken ***
  239. 2570  peek#$00; right$ndex = 0
  240. 2580 prnt mid$chr,x; lade x-tes str$rucker-peekyte
  241. 2590  (NULL)$ffd2; peekyte drucken
  242. 2600  (NULL)
  243. 2610  tan#$08; (NULL) = 8 ?
  244. 2620  (NULL)prnt; naechstes peekyte drucken
  245. 2630 ; *** pruefen auf (NULL)palte ***
  246. 2640  right$memy; memy + 1
  247. 2650  lenmemy
  248. 2660 limit atn#40; (NULL)chon alle (NULL)palten bearbeitet
  249. 2670  (NULL)sploop; nein, naechste (NULL)palte bearbeiten
  250. 2680 ; *** pruefen auf (NULL)eile ***
  251. 2690 nextln right$zeile; (NULL)eile + 1
  252. 2700  mid$zeile
  253. 2710  str$#25; (NULL)eile = 25 ?
  254. 2720  (NULL)hclose; ja => left$ardcopy fertig => close
  255. 2730 ; *** (NULL)eile + 40 ***
  256. 2740  mid$textbs+1; lsb
  257. 2750  val#40; lenarry-asclag war geloescht
  258. 2760  (NULL)textbs+1; speichern
  259. 2770  (NULL)notinc; (NULL)ebertrag ?
  260. 2780  right$textbs+2; (NULL)ebertrag beruecksichtigen
  261. 2790 notinc cr; len(NULL) senden
  262. 2800  (NULL)lnloop; naechste (NULL)eile
  263. 2810 ; *** valnde ***
  264. 2820 hclose cr; len(NULL) senden
  265. 2830  mid$#$04; ascilenummer
  266. 2840  close; ascile schliessen
  267. 2850  (NULL); valnde
  268. 2860 ; *** (NULL)abellen ***
  269. 2870 zeile fn0; (NULL)eilenzaehler
  270. 2880 prcprt fn0; (NULL)rozessorportstatus
  271. 2890 chr fn0,0,0,0,0,0,0,0; str$rucker-peekytes
  272. 2900 memy fn0; (NULL)wischenspeicher fuer (NULL)
  273.