Drucker-Anwendung

Die entscheidende Verbesserung

Erweitern Sie die Eyssele-Schnittstelle um eine Hardcopy-Funktion. Sie können dann mit einem einfachen Befehl genau das drucken, was am Bildschirm zu sehen ist.

Eine Hardcopy des Textbildschirms mit Grafikzeichen. Es muß nicht immer HiRes sein. Sie sehen den Bildschirmaufbau des Etikettendruck-Programmes.

Diese Erweiterung verbessert die Eyssele-Schnittstelle (auf Seite 22) gewaltig. Denn es wird nicht nur eine Text-Hardcopy implementiert, sondern die Eyssele-Schnittstelle kann damit auch einfach auf andere Drucker als den Epson RX/FX-Typen angepaßt werden. Die abgedruckte Version läuft mit einem CP-80 über den Centronics-Eingang. Zur Anpassung auf die Epson-Drucker sind folgende Änderungen nötig:
60 DZ=5
61 D(1)=27:D(2)=42:D(3)=4:D(4)=8:D(5)=0

Zum Anschluß an den C 64 müssen Sie sich nur ein Verbindungskabel vom User-Port zum Centronics-Eingang des Druckers herstellen (lassen). Welche Pins Sie mit welchen verbinden müssen, lesen Sie bitte im vorhergehenden Artikel.

So ist die Erweiterung zu verwenden

Tippen Sie die Eyssele-Schnittstelle (»Die billigste Centronics-Schnittstelle …«) mit dem MSE ab und speichern Sie das Maschinenprogramm auf Kassette oder Diskette. Dann laden Sie es mit LOAD "CENTRONICS",8,1 und geben NEW ein, damit die Basis-Vektoren wieder ordentlich gesetzt werden. Dann können Sie diese Erweiterung mit dem Checksummer aus dieser Ausgabe in den C 64 eingeben. Bevor Sie allerdings RUN eintippen, sollten Sie das Basic-Programm sicherheitshalber speichern.

Während des Programmlaufs werden Sie gefragt, ob eine lauffähige Version der erweiterten Schnittstelle als Maschinenprogramm auf Diskette oder Kassette gespeichert werden soll. Reagieren Sie bitte mit D (Diskette), K (Kassette) oder N (nicht speichern). Das erzeugte Programm bekommt den Namen »Druckertreiber«. Es muß mit LOAD " DRUCKER-TREIBER",8,1 oder 1,1 geladen werden. Danach ist wieder das gewohnte NEW erforderlich, die Schnittstelle wird mit SYS 52200 aktiviert.

Bevor Sie den Computer und Drucker einschalten, sollten Sie erst das Käbel anschließen. Denn beim Aufstecken des User-Port-Steckers kann man leicht einen Kurzschluß erzeugen. Im Glücksfall brennt dann die Sicherung im C 64 durch. Meist verabschiedet sich aber einer der beiden CIA-Bausteine und eine nicht billige Reparatur ist die Folge.

Es gelten die Geräte- und Sekundäradressen der Eyssele-Schnittstelle. Lesen Sie diese bitte dort in Tabelle 1 nach.

Originalgetreue Kopie des Bildschirmes

Nun zur Praxis. Durch Aufruf des Hardcopy-Programmteils wird eine absolut originalgetreue Kopie des normalen Text-Bildschirms gedruckt. Auch reverse Zeichen werden berücksichtigt. Sie können den Abstand zwischen den Druckzeilen wählen. Ohne Abstand, wie am Bildschirm (ideal für Blockgrafiken), oder mit Abstand wie in einem Listing. Die Befehle für die Hardcopy:
SYS 52270,page:druckt mit
SYS 52408,page:ohne Abstand

Bei Page müssen Sie angeben, welche Speicherseite gedruckt werden soll. Der Bildschirmspeicher muß sich nämlich nicht immer zwischen den Adressen 1024 und 2023 (Page=4) befinden. Durch Aufruf der Hardcopy wird die Schnittstelle gleichzeitig auch initialisiert. Sie können sich dann also SYS 52200 (auch SYS 51456 ist möglich) sparen.

Reverse Zeichen sind kein Problem

Es werden auch reverse Grafikzeichen im Groß-/Kleinschriftmodus gedruckt. Das sind alle Grafikzeichen, die über die CBM-Taste erreichbar sind.

Zeichen mit einem Code von 91 bis 95 werden im Grafikmodus gedruckt, wie andere Sonderzeichen auch. Der Grund dafür ist, daß die C 64-Zeichen in diesem Bereich meist nicht mit den Druckerzeichen in diesem Bereich übereinstimmen.

(Dipl.-Ing. Wilhelm Meierhofer/hm)
10 rem erweiterung zum treiberprogramm fuer centronics-drucker von h eyssele aus
12 rem 64-er nr. 7/84
14 rem
16 rem von w. meierhofer
18 rem
20 rem zusaetzliche faehigkeiten:
22 rem   - harcopy mit zeilenabstand
24 rem   - harcopy bildschirm absolut
26 rem   - erkennung und ausdruck von reversen sonderzeichen
30 rem naeheres entnehmen sie bitte der beigefuegten anleitung
32 rem
34 rem
40 print"{clr}das maschinenprogramm von h. eyssele"
42 print"muss sich bereits im speicher befinden !"
44 print"haben sie die druckersteuercodes in"
46 print"zeile 60 -65 an ihren drucker angepasst?"
50 print"weiter mit irgendeiner taste !"
52 ifpeek(203)=64then52
54 print:print"bitte warten":print:print
55 rem
56 rem
58 rem ***folgende parameter sind auf den drucker cp80 abgestimmt***
59 rem bitte aendern sie sie fuer ihren drucker
60 dz=4:rem anzahl notwendiger codes (max 9), um 8 bytes grafik auszugeben
61 d(1)=27:d(2)=75:d(3)=8:d(4)=0:rem bitte aendern oder ergaenzen
62 nz=3:rem anzahl notwendiger codes (max 8), fuer null-zeilenabstand
63 n(1)=27:n(2)=65:n(3)=7:rem bitte aendern oder ergaenzen
64 gz=2:rem anzahl notwendiger codes (max 5), fuer grundzeilenabstand
65 g(1)=27:g(2)=50:rem bitte aendern oder ergaenzen
66 rem
67 rem
68 rem ***einpoken von datas***
70 for i=52200to52267:readx:pokei,x:fe=fe+x:next
71 iffe<>8381thenprint"fehler im ersten datenblock":end
72 for i=52270to52426:readx:pokei,x:fa=fa+x:next
73 iffa<>22642thenprint"fehler im zweiten datenblock":end
75 rem
76 rem
77 rem ***druckerspezifische parametern***
80 poke51992,dz:fori=1todz:poke52177+i,d(i):next
82 poke52421,nz:fori=1tonz:poke52191+i,n(i):next
84 poke52404,gz:fori=1togz:poke52186+i,g(i):next
86 rem
87 rem
88 rem ***anschliessen der erweiterung***
90 poke51758,21:poke51760,91:poke51770,9:poke51772,219:poke51774,5
91 poke51780,76:poke51781,235:poke51782,203:poke51783,234:poke51785,91
92 poke51922,76:poke51923,25:poke51924,204
96 rem
97 rem
98 rem--------------------------------------------------------------------------
99 rem 1.datenblock
100 data76,0,201,164,199,208,19,201,18,240,10,201,255,240,3,76,72,202,76
101 data96,202,160,1,132,199,96,201,146,240,7,201,13,240,8,76,79,202,160
102 data0,132,199,96,160,0,132,199,76,72,202,74,74,74,72,165,199,208,4,104
103 data76,213,202,104,24,105,4,76,213,202
199 rem 2.datenblock
200 data32,0,201,32,253,174,32,158,183,169,255,133,249,202,138,133,250,232
201 data232,232,232,138,133,248,162,0,134,247,160,0,230,249,208,2,230,250
202 data230,247,177,249,201,128,144,21,172,24,208,192,21,208,4,160,208,208
203 data2,160,216,132,6,32,196,202,76,143,204,201,32,176,5,9,64,76,127,204
204 data201,64,144,3,24,105,128,172,24,208,192,21,208,6,32,68,202,76,143
205 data204,32,43,202,166,247,224,40,208,181,162,0,134,247,169,13,32,64,201
206 data165,250,197,248,208,166,165,249,201,231,208,160,162,0,189,219,203
207 data32,64,201,232,224,2,208,245,96,32,0,201,162,0,189,224,203,32,64,201
208 data232,224,3,208,245,76,49,204
210 rem
220 rem
230 rem
300 print"programm als maschinen-programm auf     diskette/cassette legen d/c/n?"
310 geta$:ifa$=""then310
320 ifa$="d"thensys(57812)"drucktreiber",8:goto360
330 ifa$="c"thensys(57812)"drucktreiber",1:goto360
340 ifa$="n"then400
350 goto310
360 poke193,0:poke194,201:poke174,203:poke175,204:sys62957
370 print:print"programm kann jetzt mit"
380 print"load'drucktreiber',8,1 (bzw.  ,1,1)"
390 print"direkt geladen werden !  (aber dabei"
392 print"'new' + initialisierung nicht vergessen)"
400 sys52200:end
Listing zur Eyssele-Erweiterung. Zu diesem Programm benötigen Sie die schon beschriebene Eyssele-Schnittstelle.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →