*************************************************************** * CENTRONICS-Druckertreiber fuer Z1013 * ********************************************************MOE**** Es wird eine grafikdruckfähige Komplettlösung zum Anschlu~ eines Matrixdruckers mit ESC/P-Standard }ber eine CENTRONICS-Schnitt- stelle vorgestellt. Dabei wurde Wert auf minimale Hardware und eine universell nutzbare Software gelegt. 1. Hardware ----------- Der Drucker wird direkt am USER-Port des Z1013 angeschlossen, es sind k e i n e r l e i Umbauarbeiten am Rechner notwendig. Folgende Verbindungen zwischen USER-Port und CENTRONICS-Stecker sind zu realisieren: Z1013, USER-Port A CENTRONICS AD0 ---------------------------------------------------- D0 AD1 ---------------------------------------------------- D1 ... ...
AD6 ---------------------------------------------------- D6 AD7 ---------------------------------------------------- D7 /ASTRB ------------------------------------------------- /ACK +------------+ 5! D121 ! ARDY ---!Eb Q! 3! ! +-!Ea1 ! ! ! ! 1 0V ---+-!Ea2 /Q!---------------------------------- /STROBE 4! ! +------------+ !11 !10 ! ! R ... 4,7K +----+ ! !! ! C ... 10nF +5V ---+ +--+-!!-! IC .. D121 o.ä. +----+ !! R C Die Spannungszuführung für das Monoflop nicht vergessen! Der Aufbau kann so kompakt erfolgen, daß der Steckverbinder zum Z1013, der Schaltkreis und die Zugentlastung für das CENTRONICS- Kabel in das Plastgehäuse eines Kleinrelais passen. Wer einen Drucker besitzt, der nur eine Strobeflanke und nicht einen Impuls erwartet, kann auf den D121 ganz verzichten und /ASTRB direkt mit /STROBE verbinden. Das funktioniert z.B. mit einem LX86; leider n i c h t mit den DDR-Druckern K63xx. Wer den Brosig-Monitor o.{. besitzt, der Portausgaben erm|g- licht, kann die Hardware bei angeschlossenem Drucker wie folgt testen: # O 1 0F Port initialisieren # O 1 07 kein Interrupt # O 0 41 Ausgabe 'A' # O 0 0D Ausgabe CR Es müßte der Buchstabe A gedruckt werden. 2. Software ----------- Zur Ansteuerung eines Druckers ist im Z1013 ein extra Sprung- verteiler zu verwenden, der von vielen Programmen genutzt werden kann und }ber den Sprungverteiler 0FF.. erreichbar ist. In der folgenden Beschreibung ist die erste Adresse die des Sprungverteilers, die zweite die, auf die im Sprungverteiler verwiesen wird. 0FFCDH (0E800H): JMP DRINI - Druckertreiber initialisieren - es wird eine ESC-Folge an den Drucker }bersendet, die folgende Parameter einstellt: R}cksetzen Drucker ESC @ Paper end off ESC 8 linker Rand 8 Zeichen ESC l 8 0FFEBH (0E803H): JMP DRZEL - logischer Druckertreiber, druckt (ARG1) - eigentlich, um aus BASIC heraus zu drucken; wird m.E. nicht genutzt 0FFE8H (0E806H): JMP DRAKK - logischer Druckertreiber, druckt A - wandelt Code NL (1EH) in CR (0DH) + LF (0AH) 0FFCAH (0E809H): JMP ZEIDR - physischer Druckertreiber, druckt A - sollte verwendet werden, wenn Steuerzeichen an den Drucker gesendet werden sollen 0FFE5H ,0E80CH: JMP BSDR - druckt eine Bildschirmkopie - im BROSIG-Monitor ist bereits eine Routine enthalten, die allerdings den Bildschirm nur bis zum Cursor bzw. dem Graphikzeichen 0FFH druckt und au~erdem die Verar- beitung von Graphikzeichen dem Drucker }berl{~t. Es werden dann entweder Buchstaben o. der interne Zeichen- satz des Druckers genutzt o. der Drucker "spinnt". Bei Druck auf die Bildschirmkopietaste wird ebenfalls diese Routine angesprungen (direkt und intern im Moni- tor). Daher ist k e i n e Kopie eines Graphikbildes mittels dieser Taste m|glich! - Bei Nutzung meiner Druckertreiber empfehle ich daher, in den Programmen die Adresse 0E80CH direkt einzutragen o. einfacher anstelle des BROSIG-Monitors den voll kom- patiblen Monitor "4k-MON VP 3" zu verwenden. 0FFE2H (0E80FH): JMP HARDC - druckt A, wenn Flag im Speicher gesetzt ist - welche Speicheradresse gemeint ist, wird leider nicht spezifiert. Ich denke, da~ es 006EH, Bit 0 sein k|nnte. Das ist das Druckflag f}r den Original-10k-BASIC-Inter- preter von Riesa, allerdings m}~te dann das Zeichen im Register E }bergeben werden, nicht in A !? - ist bei mir also mit einem RET kurzgeschlossen Den Druckertreiber gibt es nun in zwei Varianten: einen k}rzeren und einen ziemlich langen, letzteren f}r Graphikdruck: C...CENTONICS E800-E86F, Start E800 C...CENTRO G E000-E97A, Start E812 Die kleinere Minimalvariante wertet Zeichen mit Bit7=1 (das sind die Graphikzeichen) nicht weiter aus und }bergibt sie direkt an den Drucker. Damit ist sie besonders f}r solche Drucker verwend- bar, die keine Einzelnadelansteuerung besitzen bzw. bei denen das Bit 7 nicht ausgewertet wird. Die Funktion Bildschirmkopie ist mit RET kurzgeschlossen, da sie wie oben beschrieben bereits im BROSIG-Monitor enthalten ist. In der G-Variante (G steht f}r Graphik) sind 2 Modi verf}gbar: ein Direktmodus, bei dem Codes mit Bit7=1 direkt }bergeben wer- den und den Graphikmodus, bei dem Graphikzeichen auch als solche gedruckt werden. Der Direktmodus wird durch @I der Graphikmodus durch @I 1 initialisiert. Dabei ist @I ein Zusatzmonitorkommando des BROSIG-Monitors, bei dem die Routine DRINI angesprungen wird. Sollte Ihr Monitor diese Funktion nicht besitzen, m}ssen Sie die Routine DRINI direkt rufen. Dabei mu~ in ARG1 eine 01H }ber- geben werden; ein Ansprung mit J E800 ist m|glich, allerdings ist dann der Direktmodus eingestellt. Es mu~ dann nachtr{glich eine 01H auf die Adresse 0E818H gebracht werden, z.B. durch das M-Kommando des Monitors. Nach Initialisierung des CENTRO G-Treibers kann nun z.B. aus dem "KC-BASIC'+' m1" mittels PRINT#2".." gedruckt o. durch LIST#2"@" ein Programmlisting erzeugt werden. Graphikzeichen werden dabei in ihrem richtigen Aussehen in der Schriftart Pica gedruckt. Durch ein CALL*E80C im BASIC-Programm kann auch eine Graphik- kopie des Bildschirms gedruckt werden. 1 zu 1 ohne Verzerrungen. 3. Bemerkungen -------------- Im Graphiktreiber CENTRO G befindet sich eine Kopie des Zeichen- satzes des Z1013 von 0E000H bis 0E7FFH. Dieser mu~ bei [nderung- en des Quelltextes und nachfolgender Assemblierung nat}rlich voll erhalten bleiben. Sobald Ihr Drucker einige ESC/P-Steuerzeichen versteht und }ber eine CENTRONICS - Schnittstelle verf}gt, k|nnen die Programme genutzt werden. Wird auf die Graphik verzichtet, arbeitet der Treiber auch mit Typenraddruckern etc. zusammen. Auch Drucker mit IBM-Steuerzeichen sind zu gebrauchen, allerdings gibt es hier Probleme mit der Graphik, da IBM den Befehl ESC * nicht versteht. Wenn Sie einen Drucker haben, der nur eine V.24 - Schnittstelle besitzt, so kann auch hier mit den Treibern gearbeitet werden: Zum einen k|nnen sie den Quelltext der Treiber an Ihre Hard- ware {ndern oder Sie schreiben eine V.24-Grundroutine ZEIDR und schreiben in die Treiber an die Stelle, zu der von 0E809 aus hingesprungen wird, den Befehl JMP V.24-ZEIDR. Mein Drucker K6325 ist wie folgt voreingestellt: - Schriftart PICA - kein autom. CR bei LF und umgekehrt - Zeichensatz US-ASCII - NLQ aus - Zeilenabstand 1/6 Zoll - Steuercode EPSON Diese Parameter sind nach dem Einschalten o. nach dem Kommando ESC @ aktiv. Volker Pohlers, Lomonossowallee 41/81, O-2200 Greifswald 20. M{rz 1991 -------------- 0001 3000 6059 0