Im Dschungel der Steuerzeichen und Character-Sets:

Der Drucker muß den Computer verstehen

23.05.1986

Drucker reagieren auf Steuerzeichen unterschiedlicher Computerhersteller unterschiedlich. Das gleiche Dilemma gilt für die Zeichensätze. Dieser Zustand macht umfangreiche Konvertierungstabellen in der Anwendersoftware notwendig, außerdem muß der Benutzer seinen Drucker im Programm erst "installieren". Not täte hier ein Standard. Einen Beitrag zu dieser Diskussion leistet Epson mit seinem ESC/P-Konzept.

Mit dem Einsatz eines Computers, ob Großanlage zur DV oder Personalcomputer, ergibt sich über kurz oder lang die Notwendigkeit zur Anschaffung eines Druckers zur Ausgabe von schriftlichen Daten.

Mit der steigenden Verwendung von DV-Anlagen steigt zwangsläufig auch der Wunsch, die mit der Anlage erarbeiteten Daten in irgendeiner Form schriftlich vorliegen zu haben.

Die ersten Drucker beruhten, in Anlehnung an die Schreibmaschine, auf dem Typenrad- beziehungsweise -korb-Prinzip. Die Druckgeschwindigkeit bei diesem Typ ist naturgemäß nicht sehr groß; ebenfalls ist die Schriftenvariation auf die am Rad beziehungsweise am Korb vorhandenen Typen beschränkt respektive nur durch Auswechseln des Typenrades oder -korbes veränderbar. Bezogen auf die Vielfalt der Steuercodes heutiger Drucker, ist das Angebot an Steuermöglichkeiten dieser Modelle geradezu bescheiden zu nennen. In Anlehnung an die Funktion der Schreibmaschine findet man meistens nicht mehr als die mechanischen Grundfunktionen.

Trotz alledem kommen Typenraddrucker beziehungsweise -korbdrukker auch heute noch überall dort zum Einsatz, wo es darauf ankommt, Briefe oder ähnliches "letternhaft" in vollendeter Korrespondenzqualität ausgedruckt zu bekommen.

Mit der Zeit wuchsen die Anforderungen an Ausgabedrucker, was die Druckgeschwindigkeit, vor allen Dingen aber die Darstellung von Sonderzeichen anbelangt. Man stelle sich die Ausgabe einer heutigen Business-Graphic mit einem Typenraddrucker vor. Die Ausgabe dauert, wenn sie überhaupt zu realisieren ist, sehr lange. Die Druckerhersteller trugen diesem Wunsch der Endkunden und Anwender nach schnelleren beziehungsweise grafischen Ausdrucken Rechnung und brachten schon sehr bald die sogenannten Matrixdrucker auf den Markt. Bei diesen Druckern werden die Buchstaben nicht mehr durch das Anschlagen von Typen zu Papier gebracht, sondern werden durch das Anschlagen von Nadeln spaltenweise geschrieben. Die Buchstaben werden dabei meist innerhalb einer 5x7-Punkt-Matrix abgebildet. Die komplette Matrix beträgt dabei 9x9 beziehungsweise 9 x 12 Punkte. Wie schon gesagt, schreibt der Matrixdrucker spaltenweise, das heißt neun vertikal angeordnete Nadeln (bei höherwertigen Druckern 24 Nadeln) drucken in horizontaler Richtung schrittweise den Character. Zu einem Buchstaben gehören somit maximal neun beziehungsweise zwölf Schritte (Matrix). Die Information, welche Nadeln bei jedem Schritt abgefeuert werden müssen, werden vom Betriebssystem des Druckers bearbeitet und sind im sogenannten Character-Satz in einem ROM gespeichert. Der Computer schickt nur die Information, welcher Buchstabe zu drucken ist, der Rest wird intern im Drucker bearbeitet. Aber gerade diese Zuordnung, oder besser die Zuordnung der Matrixinformation zu den vom Computer gesendeten Codes, brachte bisher im Markt große Verwirrung.

Mit der Einführung der Matrixdrucker wuchs die Anzahl der dem Benutzer zur Verfügung stehenden Funktionen lawinenartig an. Hier sei nur an die unbeschränkten Möglichkeiten der Einzelnadelansteuerung (bit image printing) erinnert. Naturgemäß stieg somit auch die Anzahl der dem Benutzer zur Verfügung stehenden Steuercodes. So stehen ihm über die Standardcodes hinaus zum Beispiel noch umfangreiche Steuersequenzen zur Verfügung. Bild 1 zeigt die Möglichkeiten, die über die rein mechanischen Funktionen hinausgehen.

Die Übertragung der Daten beziehungsweise der Anweisungen vom Computer zum Drucker erfolgt, wie in der Datentechnik üblich, in binärer Form. Jeweils acht dieser binären Zustände, Bit genannt, werden zu einem "Paket", dem Byte, gebündelt und Byte für Byte parallel (in diesem Fall werden alle acht Bit plus einiger Kontrollinformation gleichzeitig über entsprechend viele Leitungen übertragen) oder seriell (die Daten werden hintereinander über, von einigen Kontrolleitungen abgesehen, eine Leitung geschickt) übertragen. Zur Umrechnung der uns geläufigen Zahlen in die durch ein Byte dargestellten Bitmuster ist es üblich dieses Byte in zwei Blöcke zu je vier Bit aufzuspalten.

Vier Bit ergeben maximal 16 verschiedene Variationsmöglichkeiten: 2e4=16. Daraus ergibt sich die Rechnung zur Basis 16, also das Hexadezimalsystem. Aus zwei Viererblöcken von Binärzahlen folgen zwei hexadezimale Zahlen. Diese beiden als Matrix aufgebaut, das heißt die Werte der ersten Zahl in horizontaler Richtung aufgetragen und die der zweiten in vertikaler Richtung, ergeben die totale Anzahl aller eindeutig zu definierenden Zustände, nämlich 256.

Die erwähnte Matrix mit ihren 256 Variationen ist die Grundlage der sogenannten ASCII-(American Standard Code for Information Interchange)Tabelle. Basierend auf dieser Tabelle und der damit eng verknüpften Rechnung im Hexadezimalsystem baute sich die gesamte Datenkommunikation auf.

Wenn man bedenkt, daß zur Definition aller Zustände sowie Buchstaben und Ziffern "nur" 256 Möglichkeiten zur Codierung bestehen, so wird klar, daß man, gerade beim Matrixdrucker, schon sehr bald auf die Bildung von sogenannten Steuersequenzen zurückgreifen mußte.

Diese Sequenzen werden durch einen bestimmten Code, dem ESC-Code (27D oder 1BH oder 0001 1011B) eingeleitet und bestehen aus mehreren aneinandergereihten Bytes. Eine typische Sequenz wäre zum Beispiel ESC R 2 oder 1B, 52, 32. Sie würde beim Epson-Drucker aus einer Reihe von internationalen Zeichensätzen den deutschen auswählen.

Der Name "ESC" kommt von dem englischen Wort "escape" und deutet wahrscheinlich die Flucht aus der Enge der ASCII-Tabelle an.

Gefordert ist Standardisierung

Es gibt zwei Gebiete, auf denen eine Standardisierung angestrebt werden muß, damit es bei der Weiterentwicklung des "Computermarktes" nicht zu der gleichen Verwirrung kommt wie einst beim Turmbau zu Babel.

- Eine Standardisierung der Controlcodes beziehungsweise -sequenzen ist notwendig.

- Die Codierung der Zeichen im sogenannten Charactersatz muß einheitlich sein.

Die Geschichte hat gezeigt, daß die Entwicklung auf dem Peripheriemarkt, was die Controlcodes anbelangt, ziemlich einheitlich verlaufen ist. Beim Character-Satz hingegen hat sich der Markt in zwei Lager gespalten. Die Antwort von Epson auf diesen Trend wird im letzten Abschnitt erläutert.

Der Erfolg dieses Herstellers ist letztlich auf eine von Anfang an bestehende Kontinuität bei der Auswahl der Steuercodes zurückzuführen. Die Ingenieure in den Entwicklungsabteilugen achteten darauf, daß jedes neue Modell alle Steuercodes genauso abarbeitet wie das Vorgängermodell. Aufwärtskompatibilität nennt man das.

Für den Endverbraucher bedeutet das: Er kann sicher sein, daß der neue Drucker mit der "alten Software" genauso gut läuft wie der alte.

Der Erfolg der Epson-MX-Serie erbrachte den Beweis, daß die Idee eines einheitlichen Steuercode-Konzeptes richtig war. Epson hat mit seiner anfänglichen Idee einer inneren Kontinuität einen Standard für Matrixdrucker kreiert und als ESC/P (Epson Standard Codes for Printers) zum Warenzeichen angemeldet. Mittlerweile ist dieses Konzept so bekannt, daß man von einem Standard für Drucker sprechen kann.

Normierung schafft Kompatibilität

Dies wird besonders dadurch verdeutlicht, daß der Mitbewerb bei seinen Produkten von einer Epson-Kompatibilität spricht. Jedes Druckermodell beinhaltet alle Steuerbefehle des vorherigen Modells. Sie sind eine Untermenge der Codes des neuen Modells. Lediglich einige "Typenspezifische Steuercodes" bilden da eine Ausnahme. Dies läßt sich am besten daran verdeutlichen, daß zum Beispiel der Befehl für das Kreieren von benutzerdefinierbaren Zeichen in einem 9-Pin-Nadeldrucker anders sein muß als in einem 24-Pin-Drucker. Die Sequenz zum Beispiel zur Anwahl der hervorgehobenen Schrift aber überall gleich sein kann. Es ist für Softwarehäuser und -entwickler ein unvorstellbarer Gedanke, für jeden nur erdenklichen Drucker einen eigenen Printertreiber zu schreiben, der alle Möglichkeiten des speziellen Druckers nutzt. Man hat dies schon sehr früh erkannt und nur die größten und bekanntesten Druckeranbieter in seine Menüs aufgenommen. Man sprach von einer Epson-Kompatibilität und meinte das ESC/P-Konzept.

Für den Endverbraucher ist es unmöglich, bei seiner Kaufentscheidung, neben all den technischen Angaben über Drucker, auch noch darauf zu achten, welche speziellen Steuercodes von welchem Softwarepaket unterstützt werden. Auch für ihn brachte die Kompatibilitätsidee Vorteile.

Etwas anders stellt sich die Situation im Bereich der Zeichensätze dar. Wie schon bemerkt, stand am Anfang der Standardisierung von Datenübertragungen die ASCII-Tabelle. Innerhalb dieser Tabelle sind die Grundsteuerfunktionen, wie zum Beispiel BEL (Ansprechen des Signalgebers), BS (Kopf eines Character zurückbewegen), HT (Horizontal-Tabulator), VT (Vertikal-Tabulator), FF (Blattvorschub) und so weiter enthalten. Ab Position 32D oder 20H beginnen dann die eigentlichen alphanumerischen Zeichen. Bei 127D oder 7FH endet dann die Tabelle für Computer, die mit 7-Bit-Wörtern arbeiten. Das achte Bit (MSB) führt dann über zum zweiten Teil der ASCII-Tabelle.

Hier begannen nun die "herstellerspezifischen Definitionen". Im ESC/P-Standard ist es so, daß in dem oberen Bereich der Tabelle der untere identisch nachgebildet wird, allerdings die internen Druckinformationen für den Druckkopf so abgelegt werden, daß die alphanumerischen Zeichen in Kursivschrift gedruckt werden.

Zeichensatzwahl durch ESC-Sequenzen

Für Computer, die nur sieben Bit Datenwörter schicken können, wurden die Steueranweisungen ESC > (setzt im Drucker MSB=1) und ESC = (setzt im Drucker MSB=0) eingeführt. Mit diesen Steuersequenzen an den Drucker sind somit auch diese Computer in der Lage, den im Drucker vorhandenen oberen Teil der Tabelle zu nutzen.

Für den Anwender eines Druckers ist es vorteilhaft, auf relativ einfache Art und Weise zwei verschiedene Schriftarten zur Verfügung zu haben.

Das Auffüllen des ungenutzten Teils der ASCII-Tabelle und damit die Definition neuer Tabellen blieb aber nicht allein auf die Druckerhersteller beschränkt. Schon ziemlich früh fingen vor allen Dingen die Computerhersteller an, diese "weißen Bereiche" mit Sonderzeichen, vorwiegend Block- oder Mosaikgrafik zu füllen. Zum absoluten Chaos kam es bei der Auswahl zur Festlegung der internationalen Sonderzeichen, wie zum Beispiel Umlaute, nordische Characters, französische Sonderzeichen und so weiter. Mit dem Beginn der Computerära, von Amerika ausgehend nach Europa hin, wurde aber gerade dieses Thema für uns eminent wichtig. Teilweise wurde der "weiße Bereich" auch mit diesen Zeichen gefüllt, und zwar herstellerspezifisch.

Im ESC/P-Standard werden die Bereiche

35D - 36D (23H - 24H)

64D (40H)

91D-94D (5BH-5EH)

96D (60H)

und

123D - 126D (7BH-7EH)

für internationale Zeichen genutzt. Man kann mit DIP-Schaltern einstellen, welcher aus einer Anzahl von internationalen Zeichensätzen in der Grundeinstellung (nach dem Einschalten des Gerätes beziehungsweise nach der Initialisierung) zur Verfügung steht. Weiterhin kann während des Betriebs per Steuersequenz (ESC R n) jederzeit der Zeichensatz geändert werden. Dieses Verfahren hat den Vorteil, daß der Anwender sich nur einmal seinen Zeichensatz auswählen muß, sich dann aber nicht mehr darum kümmern braucht, ob und vor allen Dingen wo seine nationalen Zeichen liegen. Diese Art von Anpassung der Original-ASCII-Tabelle auf nationale Begebenheiten hat weltweit auf dem Druckersektor Anklang gefunden.

IBM PC machte den Vorreiter

Parallel dazu entwickelte sich von seiten der Computerhersteller ein anderer Zeichensatz zum Industriestandard für PCs. Mit der weltweiten Verbreitung des IBM PC setzte IBM den Standard für einen Zeichensatz. Ausgehend vom Original-ASCII-Zeichensatz benutzt man hier den oberen Bereich der Tabelle für grafische und sonstige Sonderzeichen. Die beiden ersten Spalten der oberen Tabelle werden, wie im unteren Teil, für Steuercodes verwendet. Möchte man den PC international verwenden, so kann man auf Tabelle 2 umschalten.

Hier werden dann die ersten beiden Spalten der oberen Hälfte, 128D - 159D (80H - 9FH), für internationale Sonderzeichen verwendet.

Von der Logik her gehört ein Zeichensatz zum Computer und die Steuercodes zum Drucker. Wie und an welcher Stelle Zeichen definiert werden, wird naturgemäß auf Computerseite entschieden. Was aber ein Drucker mit den angebotenen Daten alles machen kann, kann nur im Drucker selbst festgelegt sein. Epson macht nun mit einer Erweiterung des bestehenden ESC/P-Standards der Verwirrung ein Ende. Beide Standards, der auf dem Gebiet der Personalcomputer und der auf dem Druckersektor, werden mit den ESC/P-Tabellen vereinigt (Bild 2).

Vergleicht man die Standard-Epson-Tabelle original-US-ASCII mit den beiden IBM-Tabellen, so wird man feststellen, daß im Bereich 33D - 126D kein Unterschied besteht. Ebenfalls sind alle Haupt-Steuercodes im Bereich 0D bis 32D identisch. Lediglich die Bereiche 127D bis 160D unterscheiden sich.

Konvertierungstabellen überflüssig

Diese beiden Bereiche hat Epson nun mit in seine Druckersoftware integriert. Durch die Addition einer weiteren Steuersequenz ESC t 0 beziehungsweise ESC t 1 ist man nun in der Lage, sich, je nach Wunsch, den gerade benötigten Teil aus dem kompletten Zeichensatz des Druckers auszuwählen. (Bild 3 zeigt anschaulich die verschiedenen Möglichkeiten, sich "seine" Zeichensatztabelle zu wählen.)

Der "Null-Level", das heißt ESC t 0 bietet, wie schon bisher, zwei Möglichkeiten der Anwahl:

Grundzustand: (ESC 7) Der Bereich 128D - 159D wird als Steuerzeichenbereich interpretiert.

Nach Empfang von: (ESC 6) Der Bereich 128D - 159D wird als Bereich mit Sonderzeichen interpretiert.

In beiden Fällen ist der Bereich 160D - 255D mit dem bekannten Kursivzeichensatz belegt.

In Kurzform bedeutet das:

Null-Level: untere Hälfte ASCII mit internationalen Zeichen, obere Hälfte ASCII mit internationalen Zeichen in kursiv

Durch die zusätzliche Steuersequenz ESC t 1 steht nun noch ein weiterer Bereich, der "EINS-Level", zur Verfügung. Auch hier gibt es, schaltbar mit ESC 6 und ESC 7 zwei Zustände:

Grundzustand: (ESC 6) Der Bereich 128D - 159D ist mit internationalen Zeichen belegt und entspricht der IBM-Tabelle 2.

Nach Empfang von: (ESC 7) Der Bereich 128D - 159D wird als Steuerzeichenbereich interpretiert und ist kompatibel zu dem der IBM-Tabelle 1.

Im "EINS-Level" ist in beiden Zuständen der Bereich 160D - 255D mit den IBM-üblichen Sonder- beziehungsweise Grafikzeichen belegt. Im unteren Bereich befinden sich von 33D - 127D die 96 alphanumerischen Character codiert nach internationaler ASCII-Tabelle und im Bereich 0D - 32D die üblichen Steuercodes. Internationalen ASCII, das bedeutet, auch im "EINS-Level" lassen sich im Bereich 33D - 127D mit ESC R (beziehungsweise per DIP-Schalter) die internationalen Tabellen wie bisher wählen. Mit ESC R 0 (oder DIPs auf US-ASCII) kann man im "EINS-Level" IBM-Tabellen-1- und 2-kompatible Tabellen erzeugen.

Mit einem internen DIP-Schalter ("Mäuseklavier") läßt sich die Default-Tabelle vorwählen.

Mit der Erweiterung des ESC/P-Standards wurde die Lücke zwischen zwei weltweit anerkannten Standards geschlossen und ein neuer Industriestandard kreiert. Vergegenwärtigen wir uns nur die Problematik in der Vergangenheit: Softwarehäuser und

-entwickler hatten den Auftrag, Software für den PC oder Kompatible zu schreiben. Beim Druckertreiber ergab sich dann, speziell auf dem europäischen Markt, ein Problem: Der Zeichensatz des PC war vorgegeben. Man wollte oder mußte aber die umfangreichen und komfortablen Steuercodes des anderen benutzen. Es gab keine andere Lösung als umfangreiche Transferroutinen zu schreiben. Das hat nun mit dem erweiterten ESC/P ein Ende.

Die Zeichensätze des Industriestandards für Computer stehen unter allen Steuercodes des ESC/P-Standards zur Verfügung - zum Vorteil der Softwarehäuser. Endanwender standen vor dem Problem: Welche Konvertierungstabelle brauche ich für welche Software? Welchen Drucker muß ich aus dem Menü anwählen, IBM oder Epson etc.? Der erweiterte ESC/P-Standard bietet die IBM-Zeichensätze unter Verwendung aller Epson-Steuercodes; auch für den Anwender ist das ein Vorteil.