# Zeichengenerator

Ein Zeichengenerator ist derjenige Teil eines Computers oder eines anderen digital gesteuerten Ausgabegeräts, der die Umsetzung von einem Zeichencode – beispielsweise nach ASCII – in ein für den Menschen lesbares Zeichen (Glyph) erledigt. Dazu braucht man in der Regel sowohl Hard- als auch Software.
Aufbauend auf solchen Zeichengeneratoren lassen sich dann Terminals oder Grafikbildschirme und damit Schriftgeneratoren ansteuern, aber auch Schriftzüge per Plotter oder andere mechanische Systeme zu Papier bringen.

## Text-Terminals

Die häufigste Ausführung eines ausschließlich Text darstellenden Bildschirms (siehe Textmodus) verwendet ein Zeichengenerator-ROM, das für jeden Zeichencode eine Matrix fester Größe enthält, wobei jedes gesetzte Bit einem (hell) darzustellenden Pixel entspricht. Zeichenauflösungen von 5×7 (minimal) bis 8×8 (typisch) und sogar 16×16 (selten) kommen hier vor.
Die Pixeldaten dieses ROMs werden entweder von einem entsprechenden Videobaustein wie dem 6845 verwendet oder von einer eigenen, aus diskreten Logikgattern aufgebauten Videologik, beispielsweise im PET 2001 oder dem Apple II.
Um Zeichen beispielsweise in einer 8×8-Punktmatrix darzustellen, muss diese Videologik für eine Textzeile also 8 Einzelzeilen darstellen. Für jede Einzelzeile und in der Zeile für jede Zeichenposition wird zunächst aus dem Videospeicher der Zeichencode geholt, dieser auf den Eingang des Zeichengenerator-ROMs gegeben, zusammen mit dem Zahlencode der Einzelzeile (0–7, gezählt innerhalb eines Zeichens), dessen Ausgang dann in diesem Fall die nächsten 8 Pixel nebeneinander ergeben, die endlich von einem Schieberegister in der Pixelfrequenz auf den Videoausgang gegeben werden.
Einen Sonderweg bestritt man in den Frühzeiten der EDV. Dort arbeitete man im Videospeicher teilweise noch nicht mit RAM-Bausteinen, sondern mit aus heutiger Sicht exotischen Lösungen wie Laufzeitleitungen als Kurzzeitspeicher. Ähnlich wie später beim Zeilenspeicher der frühen PAL-Fernsehgeräte wurden die Daten dabei sequentiell per Ultraschall in eine spiralförmig aufgewickelte Glasleitung gespeist und vom Ausgang wieder verstärkt auf den Eingang zurückgeführt. Konkret wurde diese Technik von der Firma ICL bei ihren Terminals bis in die 1970er Jahre verwendet. Das Problem dabei ist nun, dass man ein Zeichen jeweils nur einmal während eines Bildes auslesen kann und nicht wie bei der Matrixdarstellung nötig achtmal für jede Einzelzeile nacheinander. Das führte dazu, dass ICL in diesen Terminals die Ablenkelektronik aufwendig so ausführen musste, dass der Elektronenstrahl an jeder Zeichenposition zusätzlich ein kleines 8×8-Raster aufbaute, so dass alle Pixel eines Zeichens in einem Zug ausgegeben werden konnten.
Wie bei einer älteren Schreibmaschine hatte bei so einer Technik jedes Zeichen seine feste Position in einem Rechteckraster auf der Anzeige. Die Abstände der Zeichen untereinander waren konstant (engl. mono spaced, siehe nichtproportionale Schriftart).
Bei späteren Entwicklungen konnten jedem einzelnen Zeichen auf dem Schirm individuelle Attribute beigefügt werden, z. B. Inversdarstellung, verschiedene Helligkeitsstufen oder sogar verschiedene Farben.
Damit man auf so einem Textterminal mit gewissen Einschränkungen auch Grafiken beispielsweise mathematische Kurven oder Spielfiguren und -umgebungen darstellen konnte, stellte der Zeichensatz auch oft Blockgrafik-Zeichen zur Verfügung.

## Darstellung auf grafikfähigen Computeranzeigen

Wenn der Anzeigeteil auf die Darstellung beliebiger Bitmuster ausgelegt ist, gewinnt man auch für die Textdarstellung zusätzliche Freiheiten. Insbesondere ermöglicht dies die Darstellung von Proportionalschrift inklusive Kerning, die Variierung der Schriftgröße und der Schriftart selbst (Font). Bei zusätzlicher Ausnutzung von Graustufen kann man Antialiasing realisieren. Auch farbige oder grafisch kreativ gestaltete Schriftzüge werden möglich.
Für die Darstellung beliebig geformter Schriftzeichen haben sich mehrere Standards entwickelt, die die Zeichen typischerweise stückweise aus Bézierkurven zusammensetzen. Beispiele sind der TrueType-Standard von Microsoft und die Postscript-Schriften von Adobe. Diese Standards legen zusätzlich das Dateiformat fest, in dem diese Schriften vertrieben und von der Festplatte in den Speicher geladen werden.
Diese Darstellungsmöglichkeiten erfordern umfängliche Unterstützung durch Betriebssystemteile. Sie können also erst benutzt werden, wenn das Betriebssystem komplett geladen ist. Bis dahin verwenden PCs daher in ihrem Boot-Vorgang bis heute reine Textdarstellungen wie im vorherigen Kapitel, die komplett aus dem ROM erzeugt werden können.

## Darstellung auf Plottern

Bei Plottern und ähnlichen mechanischen Ausgabegeräten wird ein einzelnes Zeichen nicht durch eine Pixelmatrix dargestellt, sondern aus Linien zusammengesetzt. Der Zeichengenerator besteht dann zwar weiterhin zuerst einmal aus einem ROM, in diesem sind jedoch keine Pixelbits gespeichert, sondern die Punktkoordinaten der Elementarlinien einer Zeichendarstellung, plus Bits, die z. B. anzeigen, ob der Stift am Ende dieser Einzellinie abgehoben (und erst am Anfang der nächsten wieder abgesenkt) werden muss und ob dies die letzte Linie dieses Zeichens war. Die Punktkoordinaten sind dabei wiederum in einem Grundraster von z. B. 16×16 Punkten angeordnet.
Die Firmware des Plotters setzt die aus dem ROM gelesenen Linienkoordinaten in Fahrbefehle für Linien um. Dabei kann sie noch weitere Aufbereitungen vornehmen, wie eine einstellbare Skalierung der Daten, also der Zeichengröße (wozu nur die Anzahl der Elementarschritte für eine Linienrasterweite des Zeichenrasters gesetzt werden braucht), oder Drehungen der Schrift in jede Richtung.
Eine höhere Softwareebene sorgt dann dafür, dass die Buchstaben eines Wortes auch korrekt nebeneinander gesetzt werden. Wie bei Grafikbildschirmen können hier zusätzliche Effekte implementiert werden wie Anordnung der Buchstaben längs einer Kurve oder kontinuierliche Änderungen der Zeichengrößen.
In Einzelfällen werden Zeichen nicht nur aus geraden Linienstücken, sondern zusätzlich auch aus Kreis- bzw. Ellipsenstücken oder Bézierkurven zusammengesetzt, was die Darstellung natürlicher macht.