Druckereinstellungen online

von Frank Dachselt

Moderne Drucker bieten dem Anwender eine Vielzahl von Möglichkeiten, Einstellungen vorzunehmen, um die Gestaltung des Druckexemplars zu beeinflussen. Schriftarten, Zeichengröße, Formatierung und Zeichensätze seien hier nur als Beispiele genannt. Diese Einstellungen werden üblicherweise durch Steuerzeichen vorgenommen, die vom Rechner an den Drucker gesendet werden, und sind - wenn überhaupt - nur in sehr beschränktem Umfang manuell am Drucker möglich. Auch ist die Anzahl von Steuerzeichen in Textverarbeitungsprogrammen begrenzt, so daß längst nicht alle Möglichkeiten des Druckers genutzt werden können.

Das vorliegende Programm DRUCK ermöglicht es, auf einfache Weise globale Einstellungen am Drucker vorzunehmen. Mit einigen Tricks und Einschränkungen lassen sich auch während des Ausdrucks mit WORDSTAR Einstellungen ändern.

Programmübersicht und Bedienung

Das Programm DRUCK liegt als COM-File vor, das eigentliche Hauptprogramm läuft aber unter CAOS im Grundgerät. An dieser Stelle sei darauf hingewiesen, daß es nur auf Systemen mit dem KC85/4 lauffähig ist. Der Aufruf des Programms in der PC-Betriebsart löst nur die Installation im Grundgerät aus, angezeigt werden dabei der Name des installierten Druckers aus der Kopfzeile des Datensatzes und der im Grundgerät belegte Speicherbereich. Danach kann in dieser Betriebsart beliebig weitergearbeitet werden.

Der Aufruf des Programms im Grundgerät erfolgt mit der Tastenkombination [SHIFT]-[CLR] zu einem beliebigen Zeitpunkt. Die Bedienung des Programms im D004 wird daraufhin unterbrochen. Auf dem Bildschirm erscheint ein Fenster, in dem nun die Einstellungen am Drucker vorgenommen werden können.

Die Bedienung des Programms erfolgt im wesentlichen mit den Cursortasten sowie mit [ENTER] und ist in Form eines Menüs organisert. Die jeweils aktive Zeile ist farblich hervorgehoben. In der obersten Zeile (der Seitenüberschrift) kann mit [CUL] und [CUR] vor- bzw. rückwärts geblättert werden. Mit [CUU] und [CUD] sind die einzelnen Einstellungen einer Seite zu erreichen. Das Ein-, Aus- und Umschalten geschieht in der aktiven Zeile jeweils mit [ENTER]. Zahlenwerte werden mit [CUL] und [CUR] geändert. Die entsprechenden Steuerzeichen werden an den Drucker ausgegeben, wenn nach den Änderungen auf einer Seite wieder die Seitenüberschrift aktiviert wird. Der Drucker ist also während der Benutzung des Programmes auf 'online' zu schalten. Sollte einmal keine aktive Zeile mehr zu sehen sein, so könnte das an einem nicht empfangsbereiten Drucker liegen. Nach Beendigung der Einstellungen wird das Programm mit [ENTER] verlassen, wobei die Seitenüberschrift die aktive Zeile sein muß.

Zwei weitere Funktionen sind mit speziellen Tasten zu erreichen. Die Einstellungen einer Seite lassen sich mit [CLR] in den Anfangszustand rücksetzen, der auch sofort an den Drucker weitergegeben wird. Mit [HOME] oder [ESC] (gleich [SHIFT]-[STOP]) wird ein spezielles Menu aufgerufen, dessen beide Punkte zum Verlassen des Programmes führen.

Beim 'Deaktivieren' wird die Installierung des Programms im Grundgerät rückgängig gemacht. Der erneute Aufruf über [SHIFT]-[CLR] führt nicht zum Programm DRUCK (das ist erst wieder nach Aufruf der COM-Datei möglich), sondern zu dem ursprünglich über diese Tastenkombination aufzurufenden Programm. Dieses muß nicht existieren, aber üblicherweise wird hier eine Hardcopy-Routine aufgerufen. Ein solches Programm läßt sich auch direkt und ohne Deaktivierung von DRUCK als 'ursprüngliches' aufrufen (nach Beendung von DRUCK und Wiederherstellung des Bildschirminhalts). Erst hiernach wird wie auch bei den anderen Programmaustritten die Bedienung an das Programm im D004 zurückgegeben.

Versionen

Das Programm DRUCK liegt zunächst in drei Versionen vor, die sich nur in der als Datensatz angefügten Seitenliste unterscheiden. Dieser Datensatz kann auch vom Anwender verändert werden, so daß eine Anpassung an verschiedene Druckertypen und deren Emulationen möglich ist. DRUCKEPS.COM enthält Einstellungen der EPSON- Emulation. DRUCK124.COM beinhaltet zusätzlich zu diesen noch spezielle Seiten, die für einen in der EPSON-Emulation arbeitenden Drucker vom Typ Citizen 124 D erstellt wurden. DRUCKLX4.COM enthält die für den LX-400 abgestimmten Befehle des EPSON-Befehlssatzes.

Einsatzmöglichkeiten

Die Einstellungen mit dem Programm DRUCK haben globalen Charakter, das heißt sie wirken stets auf den gesamten Druckvorgang. Beim Ausdruck mit WORDSTAR besteht jedoch die Möglichkeit, Pausen einzulegen. Eine solche Druckpause wird mit ^PC als Steuerzeichen in den Text geschrieben. Beim Ausdruck können dann an dieser Stelle Änderungen in den Einstellungen vorgenommen werden. Eine weitere Möglichkeit ist die 'Pause für Papierwechsel zwischen den Seiten', die direkt vor dem Ausdruck ausgewählt wird.

Diese ist auch für den zweispaltigen Druck zu verwenden. Im folgenden ein paar Worte dazu. Vorausgesetzt wird ein normal geschriebener Text mit 64 Zeichen je Zeile (das ist Standard in WORDSTAR) und einer linken Randverschiebung von acht Zeichen (mit normale Formatierung.

Beim Druck wird nun vor der ersten Seite und in jeder Druckpause mittels der Einstellungen auf der Seite '2-spaltig' die jeweils nächste zu druckende Spalte ausgewählt. Die Spalten 1.1 und 2.1 sind linke und rechte Spalte auf der Blattvorderseite, 1.2 und 2.2 entsprechend auf der Rückseite. Dabei wird eine Dichte von 20 Zeichen je Zoll und die zusätzliche Randverschiebung so gewählt, daß ein seitenrichtiger Heftrand entsteht und die Spalten deckungsgleich gedruckt werden.

Mit dem Programm ist es also auch möglich, spezielle komplexe Einstellungen vorzunehmen. Denkbar ist auch die Ausgabe von druckbaren Zeichen, wenn zum Beispiel bestimmte Zeichenketten oft und schnell gebraucht werden.

Technische Details

Das Programm DRUCK besitzt keinen eigenen Druckertreiber. Die Ausgabe erfolgt über den sich bereits im Grundgerät befindlichen Treiber, der auch von MicroDOS genutzt wird.

Das Programm belegt im Grundgerät den Speicher ab 2000h mit Programmcode und ist dadurch sowohl mit der Originalsteuerschleife im Grundgerät, als auch mit ZAS verträglich. Die obere Grenze ist abhängig von der Länge der benutzten Seitenliste und wird bei Aufruf des Programms angezeigt.

Bei den vorliegenden Versionen liegt sie nicht über 28FFh, kann aber durch Erweiterung nach oben verschoben werden (maximal bis zum Beginn der RAM-Floppy-Verwaltungstabelle, die ab 3CFFh mit fallenden Adressen aufgebaut wird). Weiterhin wird der Bereich von 6F80h bis 7FFFh bei aufgerufenem Programm als Zwischenspeicher für den Fensterinhalt benutzt. Konflikte mit der graphischen Benutzeroberfläche, die hier ebenfalls Daten ablegt, gibt es nicht, solange das Programm DRUCK nicht während deren Bildschirmaufbau aufgerufen wird.

Anpassung an die eigenen Bedürfnisse

Im folgenden Abschnitt werden nun Aufbau und Änderung der Seitenliste beschrieben. Am Ende ist eine kurze Beispieldatei angegeben, die dazu betrachtet werden soll.

Diese Datei stellt einen Assemblerquelltext dar, der jedoch nur aus Definitionsanweisungen besteht. Nach der ersten Marke (KOPF) wird zunächst die Titelzeile definiert. Sie besteht aus maximal 16 Zeichen. Allen Textdefinitionen folgt ein Byte 00h (hier vereinfacht durch NOP realisiert). Es folgt ein Zeiger, der auf die erste anzuzeigende Seite weist. Nun beginnt die eigentliche Seitenliste.

Sie ist in Form einer doppelt verketteten Liste organisiert. Der Beginn einer jeden Seite ist durch eine Marke (MASTER, JUSTI, ...) gekennzeichnet. Jede Seite beginnt mit zwei Zeigern, die jeweils auf die Nachfolge- bzw. die Vorgängerseite weisen. Die so entstehende Verkettung bestimmt die Reihenfolge der Seiten beim Blättern und ist beliebig gestaltbar.

Es folgen je ein Byte für den Seitentyp (es existieren die Typen 0, 1, 2 und 3) und die Zeilenanzahl. Letztere gibt die Anzahl der Zeilen ohne der Seitenüberschrift an und kann einen Wert zwischen 1 und 8 annehmen. Es schließen sich die Textdefinitionen für die Seitenüberschrift und die eben genannte Anzahl von Zeilen an. Die maximale Länge beträgt hier 14 Zeichen (Zeilen beim Typ 3 maximal 13 Zeichen).

Bis zu dieser Stelle ist der Aufbau der Seiten aller vier Typen gleich. Bei jeder Einstellung existiert ein Vorgabewert, der beim Betätigen von [CLR] als aktueller angenommen wird. Bei der Erstellung der Seitenliste werden Vorgabe- und aktueller Wert (beide je ein Byte) meist identisch sein. Letzterer wird bei Programmbenutzung verändert.

Typ 0
Beim Typ 0 ist jeder Zeile genau ein Bit des aktuellen Wertes zugeordnet (1. Zeile - Bit 0, 2. Zeile - Bit 1, usw.). Die Bits können unabhängig voneinander gesetzt und rückgesetzt werden, das dem Ein- und Ausschalten bestimmter Funktionen entspricht. Typischer Anwendungsfall ist der Masterselect der EPSON-Emulation. Nachdem Vorgabe- und aktueller Wert definiert wurden, folgt die Angabe der Anzahl der insgesamt auszugebenden Steuerbytes sowie der Stelle, an der der aktuelle Wert in die Kette der Steuerbytes eingefügt wird. Den Abschluß bildet diese Kette selbst, die das einzufügende Byte jedoch nicht enthält.
 
Typ 1
Beim Typ 1 besteht zunächst die gleiche Zuordung zwischen den Bits des aktuellen Wertes und den Zeilen. Jedoch ist hier stets genau ein Bit gesetzt (1, 2, 4, 8, 10h, 20h, 40h, 80h sind die möglichen Werte), das der Auswahl genau einer der angegebenen Zeilen bzw. Funktionen entspricht. Danach folgt eine Tabelle, die für jede Zeile ein Byte enthält. Die Anzahl der Bytes ist gleich der Anzahl der Zeilen. Die Auswahl des Bytes aus der Tabelle, das in die Kette der Steuerbytes eingefügt wird, erfolgt entsprechend dem aktuellen Wert. Für die folgenden Bytes gilt das zu Typ 0 gesagte.
 
Typ 2
Im Gegensatz zu Typ 1 besitzt beim Typ 2 jede Zeile eine eigene Steuerbytekette. Die Ketten besitzen jeweils die gleiche Länge. Diese wird nach Vorgabe- und aktuellem Wert angegeben. Danach folgen die Steuerbyteketten, die hier genau so lang sind, wie es das Byte für die Länge angibt.
Typ 2 wird wohl der am meisten verwendete sein. Unterschiedlich lange Steuerbyteketten lassen sich mit 00h-Bytes entsprechend auffüllen. Typ 1 ist funktionell in Typ 2 enthalten, ersterer bringt manchmal eine Speicherplatzersparnis.
 
Typ 3
Mit Typ 3 ist es möglich, in jeder Zeile einen Zahlenwert zwischen 0 und 255 einzustellen. Dazu existiert für jede Zeile ein Vorgabe- und ein aktueller Wert, gefolgt von einem Maximalwert. Diese drei Byte je Zeile bilden die erste Tabelle. In der sich anschließenden Tabelle wird für jede Zeile eine eigene Steuerbytekette mit Anzahl der Bytes und Stelle, an der der aktuelle Wert eingefügt wird, definiert.

Das Programm DRUCK besitzt keine Fehlererkennung in Bezug auf die Seitenliste. Bei deren Erstellung sollte also mit entsprechender Sorgfalt vorgegangen werden. Die Seitenliste, die zur Erstellung der lauffähigen COM-Datei genutzt werden soll, muß als DRUCKDAT.MAC vorliegen.

Die Kommandodatei DRUCK.SUB übernimmt die komplette Übersetzung und erzeugt die Datei DRUCK.COM. Dazu müssen sich auf dem aktuellen Laufwerk außerdem noch die Dateien M80.COM, LINK.COM, DRUCK0.MAC und DRUCK1.MAC befinden und auf Laufwerk A mindestens 6 KByte frei sein, da hier Zwischendateien abgelegt werden. Wenn vollständig auf Laufwerk A gearbeitet wird, bringt das eine erhebliche Zeitersparnis bei der Übersetzung.

Die Dateien DRUCKEPS.MAC, DRUCK124.MAC und DRUCKLX4.MAC sind die Seitenlisten für die erwähnten, schon existierenden Versionen.

Beispieldatei

Aufbau der Seitenliste zum Programm DRUCK:

KOPF:    DEFM '124 D -EPSON-'      ;TITEL
         NOP
         DEFW MASTER               ;ERSTE SEITE

MASTER:  DEFW JUSTI                ;VORWAERTS               TYP 0
         DEFW RAND                 ;RUECKWAERTS
         DEFB 0                    ;TYP
         DEFB 8                    ;ZEILENANZAHL
         DEFM 'Masterselect'       ;SEITENUEBERSCHRIFT
         NOP
         DEFM 'Pica/Elite'         ;1. ZEILE
         NOP
         ...

         DEFM 'Unterstrichen'      ;8. ZEILE
         NOP
         DEFB 0                    ;VORGABE
         DEFB 0                    ;AKTUELL
         DEFB 3                    ;ANZAHL
         DEFB 3                    ;STELLE
         DEFB 1BH,21H              ;STEUERBYTES

JUSTI:   DEFW HOCHTI               ;                        TYP 1
         DEFW MASTER
         DEFB 1,4                  ;TYP,ZEILENZAHL
         DEFM 'Textjustierung'
         NOP
         ...

         DEFM 'Blocksatz'          ;4. ZEILE
         NOP
         DEFB 1,1                  ;VORGABE,AKTUELL
         DEFB 0,2,1,3              ;TABELLE
         DEFB 3,3                  ;ANZAHL,STELLE
         DEFB 1BH,61H              ;STEUERBYTES

HOCHTI:  DEFW RAND                 ;                        TYP 2
         DEFW JUSTI
         DEFB 2,3                  ;TYP,ZEILENZAHL
         DEFM 'Hoch/Tief'
         NOP
         ...

         DEFM 'Tiefschrift'        ;3. ZEILE
         NOP
         DEFB 1,1,3                ;VORGABE,AKTUELL,ANZAHL
         DEFB 1BH,54H,00H          ;STEUERBYTES 1. ZEILE
         DEFB 1BH,53H,00H          ;            2. ZEILE
         DEFB 1BH,53H,01H          ;            3. ZEILE

RAND:    DEFW MASTER               ;                        TYP 3
         DEFW HOCHTI
         DEFB 3,2                  ;TYP,ZEILENZAHL
         DEFM 'Ränder'
         NOP
         DEFM 'links bei'
         NOP
         DEFM 'rechts bei'
         NOP
         DEFB 0,0,255              ;VORGABE,AKTUELL,MAX 1. ZEILE
         DEFB 160,160,255          ;VORGABE,AKTUELL,MAX 2. ZEILE
         DEFB 3,3                  ;ANZAHL,STELLE,
         DEFB 1BH,6CH              ;STEUERBYTES         1. ZEILE
         DEFB 3,3                  ;ANZAHL,STELLE,
         DEFB 1BH,51H              ;STEUERBYTES         2. ZEILE