home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh9x / sh93b.d64 / hardcopy.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  4KB  |  174 lines

  1. 100 ;*******************************
  2. 110 ;***                         ***
  3. 120 ;***   SO WERDEN HARDCOPYS   ***
  4. 130 ;***                         ***
  5. 140 ;***       PROGRAMMIERT      ***
  6. 150 ;***                         ***
  7. 160 ;*******************************
  8. 170 ;***                         ***
  9. 180 ;*** (C) 1987 BY 64'ER       ***
  10. 190 ;***                         ***
  11. 200 ;*******************************
  12. 210 ;***                         ***
  13. 220 ;*** PROGRAMMIERER:          ***
  14. 230 ;***                         ***
  15. 240 ;***  THOMAS LIPP            ***
  16. 250 ;***                         ***
  17. 260 ;*******************************
  18. 270 ;
  19. 280 ;*** BASE UND STARTADRESSE   ***
  20. 290 ;
  21. 300 +$C000
  22. 310 STEP"HARDCOPY.OBJ,P,W"
  23. 320 ;
  24. 330 ;*** LABEL-DEKLARATION       ***
  25. 340 ;
  26. 350 TOBITMAP=$2000; START-ADRESSE DER BITMAP
  27. 360 TOSTROUT=$AB1E; STRING AUSGEBEN
  28. 370 TOSETFLS=$FFBA; FILEPARAMETER SETZEN
  29. 380 TOOPEN=$FFC0; OPEN FILE
  30. 390 TOCLOSE=$FFC3; CLOSE FILE
  31. 400 TOCHKOUT=$FFC9; CMD-MODUS EIN
  32. 410 TOCLRCH=$FFCC; CMD-MODUS AUS
  33. 420 TOPRINT=$FFD2; PRINT CHARACTER
  34. 430 TONADEL=1; VON O NACH U: 128 - 1
  35. 440 ;
  36. 450 ;*** PROGRAMM BEGINN         ***
  37. 460 ;
  38. 470 ;*** OPEN 4,4,1 : CMD 4      ***
  39. 480 ;
  40. 490  MID$#$04; LOGISCHE FILENUMMER
  41. 500  PEEK#$04; GERAETE-ADRESSE 4 FUER DRUCKER
  42. 510  LEN#$01; SEKUNDAER-ADRESSE 1 FUER LINEARKANAL
  43. 520  (null)SETFLS; FILEPARAMETER SETZEN
  44. 530  (null)OPEN; FILE OEFFNEN
  45. 540  PEEK#$04; LOG. FILENR
  46. 550  (null)CHKOUT; COMMUNICATION DIRECT EIN
  47. 560 ;
  48. 570 ;*** ESC @, ESC 3 N, ESC L N ***
  49. 580 ;
  50. 590  MID$#<(INIT); LSB
  51. 600  LEN#>(INIT); MSB
  52. 610  (null)STROUT; DRUCKKERSEQUENZEN AN DRUCKER SENDEN
  53. 620 ;
  54. 630 ;*** INITIALISIERUNG         ***
  55. 640 ;*** DUMMY FUELLEN           ***
  56. 650 ;*** LINE = 25               ***
  57. 660 ;
  58. 670  MID$#<(BITMAP); LSB
  59. 680  (null)DUMMY+1
  60. 690  MID$#>(BITMAP); MSB
  61. 700  (null)DUMMY+2
  62. 710 ;
  63. 720  MID$#25
  64. 730  (null)LINE
  65. 740 ;
  66. 750 ;*** ESC L N1 N2             ***
  67. 760 ;*** GRAFIKMODUS EINSCHALTEN ***
  68. 770 ;
  69. 780 LNLOOP MID$#<(GRAFIK); LSB
  70. 790  LEN#>(GRAFIK); MSB
  71. 800  (null)STROUT; DRUCKERSEQUENZEN AN DRUCKER SENDEN
  72. 810 ;
  73. 820 ;*** BLOCK = 40              ***
  74. 830 ;
  75. 840  MID$#40
  76. 850  (null)BLOCK
  77. 860 ;
  78. 870 ;*** EINEN BLOCK SPIEGELN    ***
  79. 880 ;
  80. 890 BKLOOP LEN#0; BLOCKSCHLEIFE
  81. 900 TURN1 PEEK#0
  82. 910 DUMMY MID$$FFFF,Y; BITMAPBYTE IN AKKU
  83. 920 TURN2 (null); BIT AUS BILDSCHIRMBYTE AUSLESEN
  84. 930 ^NADEL; TRUE = VON O NACH U: 128 - 1
  85. 940  (null)CHR,X; BIT IN DRUCKERBYTE REINSCHIEBEN
  86. 950 AND; FALSE = VON O NACH U: 1 - 128
  87. 960  (null)CHR,X; BIT IN DRUCKERBYTE REINSCHIEBEN
  88. 970 OR
  89. 980  (null)
  90. 990  TAN#8; X=8?
  91. 1000  (null)TURN2; X <> 8, BITMAPBYTE NOCH NICHT ABGEARBEITET
  92. 1010  (null)
  93. 1020  ATN#8; Y=8?
  94. 1030  (null)TURN1; Y <> 8, DRUCKERBYTES NOCH NICHT FERTIG
  95. 1040 ;
  96. 1050 ;*** BLOCK AUSDRUCKEN        ***
  97. 1060 ;
  98. 1070  PEEK#0; INDEX AUF NULL SETZEN
  99. 1080 PRNT MID$CHR,X; LADE X-TES DRUCKERBYTE
  100. 1090  (null)PRINT; BYTE DRUCKEN
  101. 1100  (null)PRINT; BYTE DRUCKEN
  102. 1110  (null); ERHOEHE X
  103. 1120  TAN#8; IST X SCHON 8 ?
  104. 1130  (null)PRNT; NEIN, X <> 8
  105. 1140 ;
  106. 1150 ;*** DUMMY ERHOEHEN          ***
  107. 1160 ;
  108. 1170  (null)
  109. 1180  MID$DUMMY+1; LSB
  110. 1190  VAL#8; +8
  111. 1200  (null)DUMMY+1
  112. 1210  (null)NOTINC; KEIN UEBERTRAG
  113. 1220  RIGHT$DUMMY+2; +1
  114. 1230 ;
  115. 1240 ;*** BLOCK = BLOCK - 1       ***
  116. 1250 ;
  117. 1260 NOTINC CHR$BLOCK; BLOCK = BLOCK-1
  118. 1270 ;
  119. 1280 ;*** BLOCK = 0 ?             ***
  120. 1290 ;
  121. 1300  (null)BKLOOP; WENN BLOCK <> 0
  122. 1310 ;
  123. 1320 ;*** CARRIAGE RETURN SENDEN  ***
  124. 1330 ;
  125. 1340  MID$#<(CR); LSB
  126. 1350  LEN#>(CR); MSB
  127. 1360  (null)STROUT; CR ZUM DRUCKER SENDEN
  128. 1370 ;
  129. 1380 ;*** LINE = LINE -1          ***
  130. 1390 ;
  131. 1400  CHR$LINE; LINE = LINE - 1
  132. 1410 ;
  133. 1420 ;*** LINE = 0 ?              ***
  134. 1430 ;
  135. 1440  (null)LNLOOP; WENN LINE <> 0
  136. 1450 ;
  137. 1460 ;*** ESC @                   ***
  138. 1470 ;
  139. 1480  MID$#<(INIT2); LSB
  140. 1490  LEN#>(INIT2); MSB
  141. 1500  (null)STROUT; DRUCKERSEQUENZ ZUM DRUCKER SENDEN
  142. 1510 ;
  143. 1520 ;*** CMD 4 AUFHEBEN          ***
  144. 1530 ;
  145. 1540  (null)CLRCH; COMMUNICATION DIRECT AUS
  146. 1550 ;
  147. 1560 ;*** CLOSE 4                 ***
  148. 1570 ;
  149. 1580  MID$#$04; LOG FILENR
  150. 1590  (null)CLOSE; FILE SCHLIESSEN
  151. 1600 ;
  152. 1610 ;*** RTS                     ***
  153. 1620 ;
  154. 1630  (null); ENDE
  155. 1640 ;
  156. 1650 ;*** HILFSZELLEN U. TABELLEN ***
  157. 1660 ;
  158. 1670 CHR FN0,0,0,0,0,0,0,0
  159. 1680 BLOCK FN0
  160. 1690 LINE FN0
  161. 1700 ;
  162. 1710 ;*** DRUCKERSEQUENZEN        ***
  163. 1720 ;
  164. 1730 INIT FN$1B,$40; INIT = ESC @
  165. 1740  FN$1B,$33,$18; LINEFEED = ESC 3 N (N=24)
  166. 1750  FN$1B,$6C,$0C; LEFT MARGIN = ESC L N (N=12)
  167. 1760 CR FN$0D,$00; CR
  168. 1770 ;
  169. 1780 GRAFIK FN$1B,$4C,$80,$02,$00; ESC L N1 N2 (N1=128 N2=2)
  170. 1790 ;
  171. 1800 INIT2 FN$1B,$40,$00; INIT ESC @
  172. 1810 ;
  173. 1820 <; ENDE DER ASSEMBLIERUNG
  174.