DE3044092C2 - - Google Patents

Info

Publication number
DE3044092C2
DE3044092C2 DE19803044092 DE3044092A DE3044092C2 DE 3044092 C2 DE3044092 C2 DE 3044092C2 DE 19803044092 DE19803044092 DE 19803044092 DE 3044092 A DE3044092 A DE 3044092A DE 3044092 C2 DE3044092 C2 DE 3044092C2
Authority
DE
Germany
Prior art keywords
data
character
line
characters
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19803044092
Other languages
English (en)
Other versions
DE3044092A1 (de
Inventor
Louis C. Selden N.Y. Us Vella
Walter I. Cold Spring Harbor N.Y. Us Hansen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Linotype Co Hauppauge Ny Us
Original Assignee
LINOTYPE CO., HAUPPAUGE, N.Y., US
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US06/097,276 priority Critical patent/US4345245A/en
Application filed by LINOTYPE CO., HAUPPAUGE, N.Y., US filed Critical LINOTYPE CO., HAUPPAUGE, N.Y., US
Publication of DE3044092A1 publication Critical patent/DE3044092A1/de
Application granted granted Critical
Publication of DE3044092C2 publication Critical patent/DE3044092C2/de
Anticipated expiration legal-status Critical
Application status is Expired - Fee Related legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41BMACHINES OR ACCESSORIES FOR MAKING, SETTING, OR DISTRIBUTING TYPE; TYPE; PHOTOGRAPHIC OR PHOTOELECTRIC COMPOSING DEVICES
    • B41B19/00Photoelectronic composing machines
    • B41B19/01Photoelectronic composing machines having electron-beam tubes producing an image of at least one character which is photographed

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren für die rasterförmige Wiedergabe von Schriftzeichen, insbesondere in digitalen Setzgeräten nach dem Oberbegriff des Anspruchs 1.

Bei dem zum Stand der Technik gehörenden Verfahren nach dem Oberbegriff des Anspruchs 1 werden Zufallsfolge-Eingabedaten in eine Sequenz von oben nach unten der in einem vollständigen Raster darzustellenden Schriftzeichen umgruppiert (ältere Anmeldung gemäß DE-OS 29 40 897). Wegen beschränkter Speicherkapazität in dem Ausgabedatenverarbeitungssystem werden die Daten in Gruppen, die als Zeilensegmente bezeichnet werden, zusammengefaßt. Daraus ergibt sich jedoch noch nicht, wie das Ausgabedatenverarbeitungssystem, welches die Ausgabedaten (Videosignale) für die rasterförmige Wiedergabe der Schriftzeichen erzeugt, angesteuert werden soll, wenn in einer Zeile auf kleinere Schriftzeichen größere Schriftzeichen folgen. Insbesondere ergibt sich für das Ausgabedatenverarbeitungssystem bei einer Textdaten- oder Schriftzeichendatenfolge eines in einer wiederzugebenden Zeile zunächst auftretenden kleinen Buchstabens mit darauffolgendem großen Buchstaben die Situation, daß auf Echtzeitbasis zunächst die Ausgabedaten mit Rasterlinienschnittpunkten für den kleinen Buchstaben erzeugt werden und erst daran anschließend Ausgabedaten mit Rasterlinienschnittpunkten für den oberen, den kleinen Buchstaben überschreitenden Teil des größeren Buchstabens erzeugt werden. Da das gesamte Verfahren mit einer ansteigenden Folge von Rasterlinien von 1-N gesteuert wird, können Ausgabedaten entsprechend Rasterlinienschnittpunkten für den oberen Teil des größeren Buchstabens nicht mehr für die rasterförmige Wiedergabe dieses Schriftzeichens verwendet werden, nachdem die Rasterfolge bereits bei dem kleineren Schriftzeichen angelangt ist, welches rasterförmig wiedergegeben wird.

Somit liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein Verfahren nach dem Oberbegriff des Anspruchs 1 zu schaffen, welches auf Echtzeitbasis aus Schriftzeichendaten, die in Segmenten zusammengefaßt sein können, und Schriftzeichensatzdaten Ausgabedaten zur rasterförmigen Wiedergabe der Schriftzeichen erzeugt, so anzugeben, daß es die Ausgabedaten auch auf keine Buchstaben folgender größerer Buchstaben in einer Zeile lückenlos darstellt, ohne das Grundprinzip der Steuerung durch eine ansteigende Folge von Rasterlinien zu verändern.

Diese Aufgabe wird durch das Verfahren mit den im kennzeichnenden Teil des Anspruchs 1 angegebenen Schritten gelöst.

Damit braucht von der bewährten Abfolge der Rasterlinien, mit denen die Schriftzeichen wiedergegeben werden (Folge von 1-N ansteigender Rasterlinien), nicht abgegangen zu werden, und entsprechende Datenverarbeitungssystemteile und/oder ein von diesen gesteuertes Laseraufzeichnungsgerät kann beibehalten werden.

Das Lösungsprinzip umfaßt eine automatische Erkennung von Schriftzeichengrößenwechseln von kleineren auf größere Schriftzeichen in einer Zeile und die Steuerung der Segmentunterteilung an den erkannten Größenwechselstellen. Die Segmente werden gespeichert, ebenso die Adressen der so gebildeten Segmente in einer Anfangsdatei. Zum Identifizieren und Umgruppieren der Segmente werden Bezugsrasterlinien herangezogen, die von der üblicherweise generierten Folge von Rasterlinien ansteigender Werte von 1-N abgeleitet werden. Die Umgruppierung der Segmente erfolgt so, daß mit einer Bezugsrasterlinie mit niedrigem ansteigenden Wert ein Segment mit großen Buchstaben erfaßt wird und analog umgekehrt mit einer folgenden Rasterbezugslinie höheren ansteigenden Werts ein Segment mit kleineren Schriftzeichen. Durch die ansteigende Rasterlinienfolge wird dann das Ausgabedatenverarbeitungssystem auf Echtzeitbasis so gesteuert, daß es zunächst Rasterlinienschnittpuntke für die großen Schriftzeichen und erst anschließend die Rasterlinienschnittpunkte der kleineren Schriftzeichen in derselben Zeile erzeugt.

Es wird also das Ausgabedatenverarbeitungssystem insgesamt so gesteuert, daß die Schriftzeichen auch bei einer ungünstigen Abfolge der Schriftzeichengröße in einer Zeile rasch und vollständig rasterförmig wiedergegeben werden.

Mit dem erfindungsgemäßen Verfahren können Setzgeräte mit einem in digitaler Form gespeicherten Schriftzeichensatz ein Satzprodukt in guter graphischer Qualität mit hoher Geschwindigkeit setzen.

Vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sind in den Unteransprüchen angegeben.

In der Typographie sind die Schriftzeichen im allgemeinen auf ein Geviert bezogen. Das Geviert ist ein Quadrat mit Bezugsgröße für alle Schriftzeichen von gleicher Punktgröße. Deswegen stellt das Geviert einen zweckmäßigen Bezug für die Schriftzeichen und deren Ort auf der Rasterdarstellung dar.

Es können auch andere Systeme zur Bezugnahme der Schriftzeichen auf eine bezogene Rasterlinie verwendet werden, beispielsweise durch Identifizieren des ersten Schnittpunkts der Rasterlinie am oberen Teil eines jeden einzelnen Schriftzeichens oder Identifizieren einer auf irgend einen anderen gemeinsamen Parameter des Schriftzeichens bezogenen Rasterlinie. Solch ein System wäre jedoch komplizierter als das hier beschriebene. Dieses System stützt sich auf die Tatsache, daß Schriftzeichen gleicher Punktgröße innerhalb eines gleich großen Gevierts gesetzt werden und damit eine Rasterlinie identifiziert wird, die einem gemeinsamen Geviert-Parameter für aufeinanderfolgende Schriftzeichen gemeinsam ist.

Nach dem Grundgedanken der Erfindung wird der obere Teil des Gevierts, insbesondere eine Übereinstimmung des Niveaus der Geviert-Daten mit einer Rasterlinie, zum Bezug des Schriftzeichens auf einen Ort auf einer Rasterabbildung verwendet. Alle folgenden Schriftzeichen mit gleicher Punktgröße und auf der gleichen Grundlinie schneiden mit ihrem oberen oder höchsten Datenniveau und der oberen linken Ecke des Gevierts eine gemeinsame Rasterlinie. Das Rasterlinien-Niveau wird dann als Bezug zur Lokalisierung des Schriftzeichens entlang einer Dimension einer Abbildungsebene verwendet. Die Bezugs- Rasterlinie ist die Linie mit niedrigstem Wert in einer ansteigenden Ordnung der Rasterlinie, di ein auf einer Rasterdarstellung angeordnetes Geviert schneidet. In einem üblichen Schema werden Rasterlinien fortschreitend entlang der Längsdimension und in ansteigender Ordnung erzeugt. Ansteigen ist hier als Ausdruck für Zuordnung von Werten zu den Rasterlinien verwendet und wurde oben erläutert.

In dem obigen Beispiel können alle aufeinanderfolgenden Schriftzeichen einer gemeinsamen Punktgröße, die auf einer gemeinsamen Grundlinie gesetzt sind, auf einen gemeinsamen Ort auf der Rasterlinie bezogen werden. Diese Rasterlinie ist dann eine Bezugsrasterlinie für diese Schriftzeichenfolge. Das System identifiziert den ansteigenden Wert jeder Rasterlinie und dessen Ort in dieser einen Dimension der Darstellung und beginnt damit die Erzeugung von Schriftzeichen-Daten für das Darstellungssystem, wenn die Rasterlinien-Progression den bezogenen Rasterlinienwert und den Ort des Schriftzeichen-Gevierts auf der Darstellung erreicht hat.

Wie gezeigt werden wird, besteht ein Problem darin, wenn zwei Schriftzeichen unterschiedlicher Punktgrößen auf der gleichen Grundlinie existieren und das kleiner Schriftzeichen links vom größeren Schriftzeichen steht.

Wenn die Textdaten nach einer Folge in das System eingegeben sind und das Datenverarbeitungssystem die Daten in einer Folge abgreift, dann tritt die obige Folge irgendwo im Text auf.

Wenn das äußerste linke Schriftzeichen kleiner ist als ein nachfolgend angeordnetes größeres Schriftzeichen, dann beginnt das Ausgabedatensystem mit der Erzeugung der Schriftzeichenausgabedaten für das äußerste linke Schriftzeichen, das kleinere Schriftzeichen, und auf einem Rasterlinien-Niveau nach einem Rasterlinien-Schnittniveau für das größere Schriftzeichen rechts.

Ist das kleinere Schriftzeichen ein "A", das auf derselben Grundlinie gesetzt und doppelt so groß wie das kleinere Schriftzeichen ist, dann schneidet die Folge der Rasterlinien das größere A bei einem niedrigeren Rasterlinien-Niveau und bevor nachfolgende Rasterlinien von höherem Wert erzeugt werden, die den oberen Teil des kleinen "a" schneiden.

Werden die Textdaten in einer Folge mit dem kleinen A zuerst und dann dem größeren A eingeführt, dann gibt das Ausgangsdatensystem nach dieser Folge zunächst Schnittpuntke für das kleine A ab, nachdem die vorausgegangenen Rasterlinien, die den oberen Teil des größeren A schneiden, auf Echtzeitbasis erzeugt wurden. Es kann dann keine Schnittdaten für den Teil des großen A abgeben, der zwischen dem oberen Teil des kleinen A und dem oberen Teil des großen A besteht, da diese Rasterlinien bereits abgebildet sind. Da die Rasterlinien aufeinanderfolgend erzeugt werden, kann das System die Richtung der Rasterlinien- Progression nicht umkehren. Durch Segmentieren und sequentielle Neuordnung der Textdaten nach der Eingabe in das Datenverarbeitungssystem, insbesondere sequentielle Neuordnung relativ zum sequentiellen Wert der Rasterlinien, können die Schriftzeichenschnittdaten in der richtigen Ordnung erzeugt werden, unabhängig von der Ordnung nach der die Textdaten in das System eingebracht wurden.

Nach dem Grundgedanken der vorliegenden Erfindung erkennt und teilt dieses Verfahren die Textdaten für das kleine A und das größere A in zwei getrennte Datensegmente, obwohl sie auf derselben Grundlinie erscheinen. Bei der Neuordnung der Daten wird dann dem größeren A mit einer Rasterbezugslinie mit niedrigerem ansteigendem Wert eine höhere Priorität eingeräumt als dem kleinen A und wird es als erstes in das Ausgangsdatensystem gesetzt. Das Ausgangsdatensystem beginnt dann auf einer Echtzeitbsis zunächst mit der Erzeugung von Rasterschnittpunkten für die Schriftzeichengrenzen des großen A und für die eher und höher auf der Seite auftretenden Rasterlinien mit einem niedrigeren ansteigenden Wert als für die Rasterlinien, die eher und tiefer auf der Seite mit einem höheren ansteigenden Wert auftreten und sich mit dem kleineren A schneiden.

Dieses Konzept wird weiterhin auf Grundlinienveränderungen, Zeilenregelfunktionen, Umkehrvideofunktionen und Sektorbereichsüberschreitungen ausgedehnt, die eine Segmentierung und Neuarrangierung der Daten erfordern, damit sie identifiziert und in der Folge der erzeugten Rasterlinien bearbeitet werden können.

Das zweckmäßige System zur Abbildung ist die aueinanderfolgende Erzeugung von Rasterlinien in einer Richtung und in einer Ordnung und mit allen Daten in der gleichen aufsteigenden Ordnung der Rasterlinie.

Bei diesem System beginnt die Segmentierung, nachdem alle ersten Eingangsdaten, die den Text darstellen, in den ersten Speicher eingegeben sind und die Eingangsdaten gekoppelt und nach den bekannten Textverarbeitungstechniken justiert sind, damit die Orte eines jeden Schriftzeichens auf einer Seite identifiziert werden.

Die Stellung des Schriftzeichens kann durch eine Grundlinien- Identifizierung und durch die Punktgröße des Schriftzeichens charakterisiert werden.

Weitere geeignete Schriftzeichen-Identifizierungen können für Linienregelfunktionen und Umkehrvideofunktionen vorgesehen sein.

Zur Definition der Schriftzeichen und ihrer Anordnung auf der Seite wird eine Reihe von 8-Bit-Kodes verwendet.

Beginnt man beispielsweise mit dem Text auf der Linksaußenseite des Blatts, dann zeigt ein 8-Bit-Kommando die Punktgröße an.

Nach Änderung der Punktgröße auf derselben Grundlinie folgt einem Kommando wie zum Beispiel "Punktgröße ändern" die gewünschte Punktgröße und so weiter.

Tritt eine Grundlinienänderung ein, dann wird die Grundlinienänderung nach einem entsprechenden Grundlinienänderungs- Kommando vorgesehen. Ähnlich werden weitere Änderungsparameter vorgesehen.

Das Segmentierungssystem verwendet diese Kommandos, um den Anfang eines jeden Segments zu identifizieren. Jedes einzelne kann durch ein Kommando zur Anzeige einer Änderung der Schriftzeichengröße, der Änderung der Grundlinie, einer Linienregelfunktion, einer Umkehrvideofunktion oder einer Sektorbereichsüberschreitung identifiziert werden.

Wie oben festgestellt, sind die Textdaten im ersten Speicher in der Ordnung angeordnet, wie der Text im System angeordnet ist.

Die Segmentierung liefert eine Datei, die in der Ordnung vorgesehen ist, in der die dem Text entsprechenden Schriftzeichendaten abgebildet werden sollen und in einer Ordnung, die mit der ansteigenden Ordnung der sequentiell erzeugten Rasterlinien verwandt ist.

Die Segmentierung beginnt damit, daß zunächst der erste Speicher der Text-Schriftzeichendaten nach einem entsprechenden Kommando für den Beginn eines neuen Segments geprüft wird.

Sodann wird das erste Schriftzeichen innerhalb dieses Segments auf eine Rasterlinie, die auf der Anzeige erscheint, bezogen.

Alle nachfolgenden Schriftzeichen werden dann nach ihrer Identität in Grundlinie und Punktgröße geprüft, und es wird ein Segment aus diesen Schriftzeichen gebildet. Die Adresse dieses Segments ist in einer Anfangsdatei gespeichert, die die Anzeigestellungskoordinaten der oberen linken Ecke des Gevierts des ersten Schriftzeichens eines jeden Segments einschließt.

Eine Einigung auf X- und Y-Koordinatensysteme wie auch auf irgendwelche andere Koordinatensysteme ist möglich. Die Y- Koordinate, wie sie hier verwendet wird, entspricht den Orten der aufeinander erzeugten Rasterlinie in einer Richtung, die üblicherweise der Länge des Anzeigemediums entspricht. Ähnlich bezieht sich die X-Koordinate auf den Ort des ersten Schriftzeichens eines jeden Segments in der zweiten Koordinatenrichtung, üblicherweise der Breitedimension in einem Zwei- Koordinaten-System. Wie gesagt, kann jedes geeignete Koordinatensystem verwendet werden, das sich mit der Art, in der die Rasterlinien und die Richtung, in der die Rasterlinien erzeugt werden, verträgt.

Es wird eine Anfangsdatei aufgebaut, die eine Adressenliste für jedes identifizierte Segment der Text-Schriftzeichendaten enthält.

Da die Segmente durch die Stellung der Punktgröße identifiziert werden und die Anzeige in Rastereinheiten mit der Punktgröße verwendet ist, kann durch eine einfache Umwandlung die Stellung der Punktgröße verwendet werden, das Geviert mit einem Rasterbezugswert in den Rasterauflösungseinheiten in Beziehung zu setzen.

Wie im folgenden gezeigt werden soll, ist nach der hier getroffenen Vereinbarung der obere Teil der Anzeige der Ort der ersten Rasterlinie. Nach dieser Vereinbarung nehmen die Rasterlinien in ansteigender Ordnung gegen den unteren Teil der Anzeige und die letztere Zeile des Exemplars zu. Nach dieser Vereinbarung und in der Annahme, daß nach der vorliegenden Erfindung auch andere Vereinbarungen getroffen werden können, werden die Segmentstellungen identifiziert, indem die Y- Koordinate der oberen linke Ecke des ersten Gevierts eines jeden Segments auf ihren Ort auf der Rasteranzeige und auf eine Rasterbezugsliste bezogen werden.

Nach dem Grundgedanken der vorliegenden Erfindung werden Liniensegmente durch eine Rasterbezugslinie identifiziert. Wie gezeigt, wird die Y-Koordinate, die der linken oberen Ecke eines jeden ersten Gevierts der Segmente entspricht, auf eine Rasterlinie bezogen, die durch diese Koordinate läuft. Jedes Liniensegment hat einen Wert, der gleich ist dem Wert der Rasterlinie, auf die es sich bezieht. Alle Liniensegmente sind entsprechend dem Wert ihrer jeweiligen Y-Koordinate und der Stellung der jeweiligen bezogenen Rasterlinie entsprechend der ansteigenden Ordnung der Rasterlinien angeordnet.

Die Liniensegmente werden nach der Gewohnheit der Setzer hintereinander neu angeordnet, so daß eine Adressendatei beginnend mit der Liniensegmentadresse mit dem kleinsten Y-Wert und einem Bezugsrasterlinien-Wert, der mit zunehmenden Y-Werten fortschreitet, und Bezugslinienwerten bis zu dem Liniensegment mit dem höchsten Y-Wert und Rasterlinienwert aufgebaut werden kann.

Die vollständige Anfangsdatei kann die Y- und die X-Anzeigekooridnaten der linken oberen Ecke des ersten Gevierts eines jeden Segments aufweisen, wobei die Adresse des Liniensegments im ersten Speicher dem während der Eingangsfolge erstellten Ort, der Schriftsatz-Nummer, der Satzbreite, der Spuradresse und dem Blitzstatus, dem Sektoradressen-Füllbyte-Spurbindeglied und dem Sektorbindeglied entspricht.

Eine neu arrangierte Adressenaufstellung, die sich auf die Anfangs- Datei-Daten in der Ordnung der ansteigenden Y-Werte bezieht, stellt eine veränderte Ordnung relativ zu der Folge der Textdaten dar, wie sie zunächst während der Eingabefolge in den ersten Speicher eingegeben wurden. Die neu angeordneten Segmente können in der neu angeordneten Folge ausgegebenen Segmentdaten können dann in einem Data Ram (Datenspeicher mit willkürlichem Zugriff) im Ausgabeerzeugungssystem in der Ordnung eingegeben werden, die zur Abbildung der Schriftzeichen in den aufeinanderfolgend erzeugten Rasterlinien erforderlich ist.

Das Verfahren geht davon aus, daß das Ausgabedatensystem segmentierte Daten für Identität, Form, Größe und Anordnung des zu setzenden Schriftzeichens empfängt. Das Ausgabedatensystem benutzt dann die Schriftsatzdaten für diese Schriftzeichen und die Segmentdaten zur Erzeugung von dritten digitalen Daten, die die Schriftzeichengrenzen definieren, die die fortschreitend erzeugten Rasterlinien jeweils schneiden. Weiterhin kann ein Segmentierungssystem in Verbindung mit einem beliebigen Rasterabtastungssystem verwendet werden, bei dem die Rasterabtastung von einem Ende einer Abbildung zum anderen Ende der Abbildung in ansteigender Ordnung verläuft und bei dem die Schriftzeichen auf sich schneidenden gemeinsamen Rasterlinien mit einem kleineren Schriftzeichen links relativ zu einem größeren Schriftzeichen in der Richtung einer fortschreitenden einzelnen Rasterlinie erscheinen.

Wird ein Rasterlinienmuster über einem Druckmedium oder einer Anzeige erzeugt, von einem Ende zum anderen und in einer Richtung, wobei die beginnende Rasterlinie mit eins bezeichnet wird und die letzte Rasterlinie mit n bezeichnet wird und wobei die Rasterlinien zahlenmäßig in ansteigender Ordnung in einer Richtung gegen das Ende des Druckmediums zunehmen und wobei jede Rasterlinie von der einen Seite des Blatts zur anderen Seite des Blatts abgestrichen wird, und wobei die Daten für ein kleineres Schriftzeichen vor den Daten für ein größeres Schriftzeichen in das System eingegeben werden, wobei ein Teil des größeren Schriftzeichens eine mit einem kleineren Schriftzeichen gemeinsame Rasterlinie schneidet und gleichzeitig eine Rasterlinie mit kleinerem Wert als diese gemeinsamen Rasterlinien schneidet, dann werden die Schriftzeichendaten entsprechend den herangezogenen Rasterlinien, und in der ansteigenden Ordnung der Rasterlinien neu angeordnet.

Da die Rasterlinien auf einer Anzeige oder einem Druckmedium in einer einzigen Richtung und auf der Echtzeitbasis aufgelegt werden, muß die Erzeugung der Schriftzeichendaten in dem gleichen Zeitverhältnis wie die die Erzeugung der Rasterlinien vor sich gehen.

Wie oben erwähnt, werden die Rasterlinien von einem Ende zum anderen und in einer einzigen Richtung erzeugt.

Wie oben gezeigt, werden die Rasterlinien von einem Ende zum anderen und in einer einzigen Richtung erzeugt.

Wie oben gezeigt, müssen die Daten, die die Schnitte der Schriftzeichen mit den Rasterlinien darstellen, gleichzeitig mit dem Fortschreiten der Rasterlinien erzeugt werden. Das bedeutet, daß die Schnittdaten in der gleichen Ordnung und gleichzeitg mit den Rasterlinien erzeugt werden müssen, wenn sie auf das Druckmedium aufgelegt werden.

Um dieses Ergebnis zu erhalten, müssen die Eingabedaten, die die Indentität und die Stellung der Schriftzeichen anzeigen, in der gleichen Ordnung wie die Progession auf den Bezugsrasterlinien angeordnet werden. Wie oben beschrieben, ist diese Ordnung eine ansteigende Ordnung.

Wie jedoch im vorstehenden behandelt, kann sich die Übereinkunft, nach der die Daten in das System eingegeben werden, von der ansteigenden Ordnung der Rasterlinien unterscheiden.

Wird jedes Schriftzeichen auf eine Rasterlinie bezogen, durch ein Geviertparameter oder eine andere geeignete Kennlinie, dann können die Schriftzeichen in der ansteigenden Ordnung der Rasterlinie entsprechend der Bezugsrasterlinie eines jeden Schriftzeichens angeordnet werden.

Wie oben erwähnt, werden die Schriftzeichen nach der üblichen Schreibweise in dem System von links nach rechts und dann nach unten zur nächsten Zeile angeordnet. In vielen Fällen werden, wie oben erwähnt, größere Schriftzeichen auf derselben Linie und rechts von den kleineren Schriftzeichen gesetzt. Interpretiert man das in den Ausdrücken der Rasteranzeige, dann liegen die größeren Schriftzeichen rechts auf bezogenen Rasterlinien mit geringerer ansteigender Ordnung als die kleineren Schriftzeichen links. Die Ordnung der Schriftzeichendaten muß dann umgekehrt werden, damit die Daten für das Schriftzeichen rechts mit einem Rasterbezugslinien-Schnitt von niedrigerer ansteigender Ordnung vor den Schriftzeichendaten des kleineren Schriftzeichens links mit einer Rasterbezugslinie von höherem Wert angeordnet ist.

Dieses Verfahren ist besonders zweckmäßig, wenn normalisierte kodierte Kontur-Schriftzeichendaten verwendet werden, um Schriftzeichen auf einer kontinuierlichen Rasteranzeige und auf einer Echtzeitbasis zu erzeugen. Es rearrangiert die Schriftzeichendaten-Information in einer solchen Art, daß alle aufeinanderfolgend ausgegebenen Schriftzeichendaten mit der Rasteranzeige übereinstimmen und auf einem Druckmedium abgebildet werden können, da die Rasterlinien fortschreitend und ohne erforderliche Umkehrung oder Änderung der Rasterrichtung erzeugt werden.

Das erfindungsgemäße Verfahren wird im folgenden anhand einer Zeichnung mit 21 Figuren beschrieben.

Fig. 1 ist ein Blockschaltbild der gesamten Setzanordnung nach der vorliegenden Erfindung.

Fig. 2 ist ein Diagramm, welches darstellt, wie die Schriftzeichendaten im Schriftspeicher kodiert werden.

Fig. 3 ist eine Anordnung von Schriftzeichen auf einer Rasterlinienanzeige nach der Eingabefolge.

Fig. 4 ist eine Anordnung der Daten von Fig. 3 in einer Plattendatei.

Fig. 5 ist eine Blockdarstellung der Daten von Fig. 4.

Fig. 6 ist ein Diagramm der Rasterlinien-Schnittpunkte mit einem Schriftzeichen.

Fig. 7 ist ein Blockschaltbild des Ausgabedaten-Verarbeitungssystems in dem System nach Fig. 1.

Fig. 8 ist ein Blockschaltbild der Datenverwaltungs-Unteranordnung im Eingabedaten-Verarbeitungssystem nach Fig. 7.

Fig. 9 ist ein Blockschaltbild des Konturenumsetzer-Untersystems im Ausgabedaten-Verarbeitungssystem nach Fig. 7.

Fig. 10 ist ein Diagramm, das die Struktur der im Konturendatenspeicher im Schriftspeicher enthaltenen Konturendatenwörter zeigt.

Fig. 11 ist ein Diagramm, das zeigt, wie der Konturendatenspeicher auf einer Magnetscheibe angeordnet ist.

Fig. 12 ist ein Diagramm, das die Struktur der im Konturendatenspeicher nach Fig. 11 enthaltenen Kopf- und Konturendaten zeigt.

Fig. 13 ist ein Diagramm, das die Eingabekodestruktur der Terminalelemente zeigt, die vom Eingabesystem zu einer Schriftsatzdatenübertragung abgesendet werden.

Fig. 14 enthält Flußdiagramme, die das Wirkungsprinzip des Datenverwaltungs- Untersystems und des Konturenumsetzer-Untersystems zeigt.

Fig. 15 ist ein Flußdiagramm für den Aufbau der Daten im Datenspeicher mit willkürlichem Zugriff (RAM) im Datenverwaltungs- Untersystem.

Fig. 16 ist ein Diagramm der Anordnung der Daten im Datenspeicher mit willkürlichem Zugriff (RAM).

Fig. 17 ist eine weitere Anordnung der Schriftzeichendaten auf einer Rasteranzeige und entsprechend der Eingabefolge.

Fig. 18 zeigt die Anordnung der Daten von Fig. 17 auf einem Speichermedium.

Fig. 19 ist eine Blockdarstellung der Daten von Fig. 18.

Fig. 20 zeigt das Flußdiagramm des Segmentierungs- und des Neuanordnungssystems.

Fig. 21 zeigt die Anordnung der Anfangsdatei und der Adressendatei zum Zugriff der segmentierten Schriftzeichendaten.

Das Schriftzeichenerzeugungssystem nach der Grundidee der Erfindung soll nun unter Bezugnahme auf die Fig. 1 bis 21 beschrieben werden. Identische Elemente in den verschiedenen Figuren tragen die gleichen Bezugsziffern.

Das Gesamtsystem nach der vorliegenden Erfindung ist in Form eines Blockschaltbilds in Fig. 1 dargestellt. Dieses allgemeine System ist eingeteilt in ein Eingabesystem, das die Schriftzeichendaten und die Schriftzeichensatzdaten (Fontdaten) von getrennten Quellen 1 und 2 liefert, und ein Ausgabedatenverarbeitungssystem (DDS) 3, das ein Schriftzeichenabbildungssystem 4 antreibt.

Das Eingabegerät kann ein Papierband- oder Magnetbandleser, ein getrennter Rechner, eine Eingabedatenstation mit Tastenfeld und einer Kathodenstrahlröhre als Schirm oder ein Datenübertragungskanal, beispielsweise eine Telefonleitung, sein. Dieses Eingabegerät 1 liefert dem Verarbeitungssystem 3 digitale Daten, die die Identität, Form, Größe und Anordnung der zu setzenden Schriftzeichen definiert. Wie hier verwendet, soll der Ausdruck "Identität" von Schriftzeichen die Bezeichnung eines jeden speziell dargestellten Schriftzeichens, beispielsweise großes "A", kleines "a", großes "B", Ziffer "5", Strichpunkt ";" und so weiter darstellen. Diese Identität wird durch einen Kode gegeben. Wie hier verwendet, soll der Ausdruck "Form" die Gestalt eines jeden Schriftzeichens bezeichnen, d. h. den speziellen Schriftzeichensatz und die Größe und die Richtung der Neigung. Der Ausdruck "Größe", wie hier verwendet, steht für die Größe in der X-Richtung ("Satzbreite") und in der Y-Richtung ("Punktgröße") eines jeden Schriftzeichens. Der Ausdruck "Anordnung" schließlich, wie hier benutzt, soll die Koordinatenstellung (X, Y) des Schriftzeichens auf der zu setzenden Seite bedeuten. Das Abbildungssystem 4 kann jedes geeignetes System zur Rasterabbildung digitaler Daten sein.

In dieser speziellen Ausführungsform bestimmt das Eingabegerät die X-Stellung und die Y-Stellung-Anzeigestellung der oberen linke Ecke des Gevierts mindestens des ersten Schriftzeichens. Das Geviert hat die Form wie in Fig. 2 dargestellt und stellt die übliche Art der Darstellung von Schrifttype und Größe dar. Selbstverständlich kann die Größe des Schriftzeichens nach jeder beliebigen anderen Art erstellt und bestimmt werden. Indem im vorliegenden Fall alle Schriftzeichen gleicher Größe einem gemeinsamen Geviert-Parameter zugeschrieben werden, wird die Anordnung der verschiedenen Segmente hinsichtlich der zeitlichen Ausnutzung der Komponenten des Systems effizienter.

Wie in Fig. 2 gezeigt, enthält das Geviert eine Grundlinie 5, einen linken Anschlag 6 (LSB) und einen rechten Anschlag 7 (RSB). Das Geviert in Fig. 2 ist als ein normalisiertes vergrößertes Geviert dargestellt, wobei der vergrößerte Teil der Abschnitt am Unterteil zwischen 432 und 576 DRUS (data resolution units, d. h. Datenauflösungseinheiten) ist, um Buchstaben mit Unterlängen, die normalerweise unter die Grundlinie reichen, wie z. B. der Buchstabe J oder g, unterzubringen. In den meisten Fällen werden die Buchstaben zwischen der Grundlinie 5 und einem Niveau unter dem oberen Niveau 16 des Gevierts, wie gezeigt, angeordnet. In einigen wenigen Fällen reichen die Schriftzeichen ziemlich nahe an das obere Niveau 16 des Gevierts heran. Für Bezugszwecke wird das obere Niveau des Gevierts als O-DRU-Niveau bezeichnet.

Die obere rechte Ecke des Gevierts wird zur Lokalisierung des Schriftzeichens auf der Anzeige verwendet. Wie im folgenden erklärt werden soll, wird der Ort des Gevierts und des Schriftzeichens auf die Rasterlinie bezogen, die das obere Niveau 16 des Gevierts schneidet und durch die obere linke Ecke am oberen Rand des Gevierts verläuft. Wie in Fig. 2 gezeigt, ist die obere linke Ecke als Ziffer 15 dargestellt. Das Geviert erhält einen Wert, der das Rasterlinien-Niveau anzeigt, das das obere Niveau 16 des Gevierts schneidet. Die Grundidee der vorliegenden Erfindung sollte nicht auf die Bezugnahme von Schriftzeichen auf einen Ort auf der Anzeige und auf ein Rasterlinien-Niveau beschränkt sein. Innerhalb des Systems ist das Geviert in 432 DRUs (bei einem vergrößerten Geviert in 576 DRUs) eingeteilt und kann weiterhin in 18er und 54er unterteilt werden. Die Rastereinheit entspricht der Verschiebung zwischen Rastereinheiten auf der Anzeige. Das Verfahren zur Kodierung der Schriftzeichen und die Anordnung des Schriftzeichens innerhalb des Gevierts wird in der Beschreibung der vorliegenden Erfindung weiter erklärt werden.

Unter Bezugnahme auf Fig. 3 wird die Art, in der die Schriftzeichen auf der Anzeige angeordnet sind, gezeigt. Eine Reihe von Rasterlinien 1 bis n werden auf der Anzeige erzeugt, wobei man mit der Rasterlinie 1 beginnt und mit der Rasterlinie n aufhört. Die Rasterlinien werden in ansteigender Ordnung erzeugt, jede einzelne Rasterlinie wird von links nach rechts erzeugt. Die ansteigende Ordnung ist eine Absprache, die gewählt wurde, um den Rasterlinien-Wert, beginnend mit 1 für die erste Rasterlinie und aufeinanderfolgend der nachfolgend erzeugten Rasterlinie in der Richtung, in der die Rasterlinien erzeugt werden, aufeinanderfolgend erhöhte Werte zuzuschreiben.

Wie erwähnt, werden alle Schriftzeichen in einem Geviert gebildet, wobei in einem gleichgroßen Geviert eine gleiche Schriftzeichengröße gebildet wird. Eine Folge von Schriftzeichen mit gleicher Typengröße und gleicher Geviertgröße sind zwischen den Rasterlinien 7 bis 11 abgebildet gezeigt. Dies sind die Gevierte 33 und 34, die das große A bzw. das kleine a enthalten.

Einige weitere Beispiele der Art, in der die Schriftzeichen auf der Rasteranzeige zur folgenden Abbildung auf einem Druckmedium gesetzt werden können, sind unter Bezugnahme auf die Gevierte 35, 36, 40 und 41 gezeigt.

Das Geviert 35 ist zwischen die Rasterlinien 22 und 25 gesetzt. Ein kleines h ist als größere Schriftgröße in einem Geviert 36 zwischen Rasterlinien 20 und 25, rechts vom Geviert 35, dargestellt. Unmittelbar rechts vom Geviert 36 ist das Geviert 40 angeordnet, das ein kleines h enthält und sich zwischen den Linien 19 bis 25 erstreckt. Das nächste Schriftzeichen rechts ist ein kleines h im Geviert 41, das sich zwischen den Linien 20 und 23 erstreckt. Das Geviert 41 ist von gleicher Größe wie das Geviert 35, jedoch auf höherer Grundlinie bei einem niedrigeren ansteigenden Wert 23 verglichen mit der Grundlinie 25 für das Geviert 35.

Eine Linienregelfunktion, die mit 42 gekennzeichnet ist, ist zwischen den Rasterlinien 8 und 9 gezeigt.

Die Art und Weise, in der die Eingabeinstruktionen in das Eingabesystem gesetzt werden, ist für die Schriftzeichengröße, den Ort und den Schriftsatz in den Fig. 4 und 5 gezeigt.

Das zur Speicherung dieser Information verwendete Medium ist als Magnetscheibe (Floppy Disc) 30 dargestellt, die um eine Achse 31 rotiert. Auf der Scheibe 30 ist ein Sektor 32 gezeigt, der die Daten in Blocks für das Geviert 33, das Geviert 34, die Linienregelfunktionen 42, das Geviert 35, das Geviert 36, das Geviert 40 und das Geviert 41 enthält.

Zum besseren Verständnis sind die Daten für jedes Liniensegment, ob sie nun ein oder mehrere Gevierte enthalten, als Datenblock dargestellt, der die gleichen Bezugszahlen wie das entsprechene erste Geviert auf jedem Liniensegment aufweist und zusätzlich zu den Schriftzeichendaten noch Kommandodaten enthält.

Die tatsächliche Stellung der Daten ist in der Folge dargestellt, in der sie durch einen Setzer normalerweise auf einer Diskette gespeichert würden. Der Setzer arbeitet üblicherweise von links nach rechts und dann die Seite hinunter bis zur nächsten Basislinie, dem Ende des äußerst rechten Schriftzeichens. In diesem Falle würde der Setzer das größere A des Gevierts 33 einsetzen, gefolgt durch das kleine a des Gevierts 34, wiederum gefolgt von der Linienregelfunktion 42. Der Setzer würde dann die Seite abwärts gehen bis zum Geviert 35 und diese Daten hinzufügen, gefolgt von den Daten des Gevierts 36, des Gevierts 40 und des Gevierts 41.

Die speziellen Daten innerhalb der Blocks auf der Scheibe 30 sind für jedes der Schriftzeichen in Fig. 5 dargestellt.

Die Anordnung der Daten auf der Scheibe 30 ist zur Erklärung der Erfindung gewählt; dabei ist darauf hinzuweisen, daß die Daten beliebig verteilt und in der Eingabefolge von "33-41", wie in Fig. 4 gezeigt, oder in jeder anderen gewählten Folge adressiert werden können, wobei man einer aufeinanderfolgenden Ordnung der Eingabedaten folgt.

Jedes der Schriftzeichen wird durch eine Reihe von 8-Bit-Bytes beschrieben. Wie für Block 33 gezeigt, stellt das erste Byte z. B. das Kommandokennzeichen dar. Dann folgt ein Byte, das den Typ der Instruktion andeutet, die folgen soll. In diesem Fall ist die Instruktion eine führende Instruktion, die den Ort der Grundlinie angibt, wobei die Grundlinie in Punkten gegeben ist, und die Verschiebung dieser Grundlinie von einer Bezugsposition auf dem Druckmedium, beispielsweise den oberen Rand der Seite bezeichnet. Da dies das erste Schriftzeichen ist, gibt ein folgendes Byte den Kommandoanzeiger, gefolgt von einem Byte für eine Größeninstruktion, gefolgt von der Punktgröße des Schriftzeichens selbst, in diesem Fall das große A. Da das Geviert 34 auf derselben Grundlinie ist wie das Geviert 33, kann der Block 34 ein Byte-Kommandoanzeiger sein, wobei ein Byte die Größeninstruktion mit folgender Punktgröße andeutet.

Die Linienregelfunktion 42 ist durch eine identifizierbar unterschiedliche Kommandostruktur und Datenstruktur dargestellt und wird durch einen Kommandoanzeiger, wie bei Blocks 33 und 34, ausgelöst, wird jedoch von einer Linienregelfunktion gefolgt, auf die wiederum Daten folgen, die in der Länge und der Breite der Linienregel bestimmt sind.

Die Eingabedaten für die Blocks 35, 36, 40 und 41 sind wie gezeigt, wobei jeder durch eine Kommandoinstruktion eingeleitet wird, der ein entsprechendes Größenkommando folgt, wenn eine Größenänderung stattfindet, wie zwischen Geviert 35 und 36 und zwischen Geviert 36 und 40.

Findet eine Änderung der Grundlinie statt und tritt eine Größenänderung ein, wie zwischen Geviert 40 und Geviert 41, so sind Grundlinien- und Größenkommandos dargestellt. Den Kommandos folgen Schriftzeichendaten, wobei das folgende Schriftzeichen im Verhältnis zu dem unmittelbar vorausgehenden Schriftzeichen angeordnet wird, wenn keine Stellungsinformation gegeben ist.

Zusätzlich zu Identität, Form, Größe und Anordnung der Schriftzeichen kann das Eingabegerät auch eine Seiten-Varianteninformation liefern, d. h. "Globalkommandos", die für alle oder nur eine Gruppe von Schriftzeichen auf einer Seite Gültigkeit haben. Beispiele für solche Kommandos sind "falsches Ablesen", das ein Links-rechts-Spiegelbild auf der Seite verursacht, indem die X-Positionen aller Schriftzeichen gekippt werden, und "Umkehrvideo", was eine Farbumkehr für eine ganze Seite verursacht. Bei Umkehrvideo kann beispielsweise eine Seite weiß auf schwarz anstatt schwarz auf weiß dargestellt werden.

Kommandos vom Eingabegerät können auch eine Farbumkehr für einen Teil einer Seite verursachen, so daß nur ein geradliniger Teil der Seite weiß auf schwarz im Gegensatz zu schwarz auf weiß ist.

Die Schriftzeichensatz-Speichereinheit 2 ist im wesentlichen ein Floppy-Disc-Lesegerät, das Teil des Eingabegeräts 1 sein kann. Diese Schriftzeichensatz-Speichereinheit liefert digitale Daten an das Ausgabedatenverarbeitungssystem 3, die den Schriftzeichensatz der zuvor vom Eingabegerät 1 ausgewählten Schriftzeichen definiert. Diese zweiten digitalen Daten (zum Unterschied von den vom Eingabegerät 1 gelieferten "ersten" digitalen Daten) definieren die Kontur eines jeden Schriftzeichens eines Schriftzeichensatzes hinsichtlich eines normalisierten Kodiersatzes von ersten und zweiten Koordinaten. Diese zweiten digitale Daten definieren insbesondere die Profile oder Schwarzweißgrenzen eines jeden Schriftzeichens. Betrachtet man ein "Profil" einfach als eine Grenze eines Schriftzeichens, dann zeigt sich, daß jeder "dunkle" Teil eines Schriftzeichens (vorausgesetzt daß das Schriftzeichen schwarz auf hellem Untergrund ist) zwischen zwei Profilen (äußeren Grenzen oder Rändern) des Schriftzeichens liegen muß. Durch Definition aller Profile des Schriftzeichens hinsichtlich eines Koordinatensatzes, ist die "Kontur", die äußere Form oder Gestalt des Schriftzeichens vollständig definiert.

Ein Aspekt dieser zweiten digitalen Daten, die die Kontur eines jeden Schriftzeichens eines Schriftzeichensatzes definieren, ist der, daß die Schriftzeichenkonturen in Ausdrücken eines normalisierten Koordinatensatzes, beispielsweise den XY-Koordinaten eines kartesischen Koordinatensatzes, definiert werden. Der Ausdruck "normalisiert", wie er hier verwendet wird, bedeutet, daß die Definition eines Schriftzeichens in Ausdrücken des Koordinatensatzes nur auf irgendeine absolute Größe oder die endgültige Größe des Schriftzeichens bei der Abbildung bezogen wird. Die digitalen Daten, die ein Schriftzeichen in diesem normalisierten Koordinatensatz definieren, sind also die Werte, von denen das Schriftzeichen nach oben oder unten bis zur endgültigen Ausgabeauflösung skaliert ist. Wenn der Skalenfaktor nicht gerade gleich 1 ist (eine Ausnahmesituation), dann wird das Schriftzeichen mit unterschiedlicher Auflösung als die endgültige Ausgabe definiert.

Das Ausgabedatenverarbeitungssystem 3 kann beispielsweise Schriftzeichen mit Punktgrößen größenordnungsmäßig von 3-130 einem Ausdehnungsfaktor von 43 bis 1, skalieren. Unabhängig von diesem Bereich von Punktgrößen wird die Kontur eines jeden Schriftzeichens nur einmal hinsichtlich des normalisierten Koordinaten-Kodiersatzes definiert.

Das Ausgabedatenverarbeitungssytem 3 empfängt die ersten digitalen Daten, die Identität, Form, Größe und Anordnung der zu setzenden Schriftzeichen definieren und die zweiten digitalen Daten, die die Kontur eines jeden der ausgewählten Schriftzeichen definiert, und erzeugt dritte digitalen Daten, die die Schriftzeichengrenzen definieren, die eine Rasterlinie schneiden. Die dritten digitalen Daten werden in einem oder mehreren Rasterlinienpuffern gespeichert, die ebenfalls innerhalb des Ausgabedatenverarbeitungssystem, in Bereitschaft für das Schriftzeichenabbildungssystem 4 untergebracht ist. Der oder die Rasterlinienpuffer bestehen vorzugsweise aus einer Vielzahl von Speicherelementen, von denen jedes eine einzelne Digitalzahl speichert, die einem entsprechenden einzigen Rasterpunkt entlang der Rasterlinie entspricht. Der oder die Linienpuffer speichern genügend Raster (dritte digitale Daten) für einen Teil der Rasterlinie, der sich über die Breite mindestens einiger Schriftzeichen erstreckt. In Wirklichkeit speichern die Linienpuffer vorzugsweise genügend Daten, um eine gesamte Rasterlinie zu definieren, die sich über die gesamte Breite der Darstellungsanzeige erstreckt.

Die in dem oder den Rasterlinien-Speicherpuffer(n) gespeicherte Information wird durch ein Schriftzeichenabbildungssystem 4, das mit dem Ausgabedatenverarbeitungssystem 3 verbunden ist, in ein Rasterlinienbild übersetzt. Dieses Schriftzeichenabbildungssystem erzeugt eine Abbildung auf einem Druckmedium für die bestimmte Rasterlinie, die durch die in dem oder dem Rasterlinien- Speicherpuffer(n) gespeicherte Information definiert ist. Im Schriftzeichenabbildungssystem ist außerdem ein Antriebsmechanismus zum Bewegen des Druckmediums in einer Richtung quer zur Richtung der abgebildeten Rasterlinie vorgesehen.

Das Schriftzeichenabbildungssystem kann Mittel zur Schaffung eines Abbilds für eine gesamte Rasterlinie auf einmal enthalten. Das Schriftzeichenabbildungssystem enthält jedoch vorzugsweise ein Gerät, beispielsweise eine Kathodenstrahlröhre oder Laserquelle, zur Erzeugung eines Abtaststrahls und weitere Mittel, beispielsweise Strahlablenkschaltungen oder einen bewegbaren Spiegel zur Bewegung des Abtaststrahls in einer Abtastlinie über das Druckmedium.

Als Schriftzeichenabbildungssystem kann jeder beliebige Laserabtaster oder eine Vorrichtung ähnlich der im US-Patent 38 81 801 gezeigten Anorndung Verwendung finden.

Das Ausgabedatenverarbeitungssystem ODS wandelt die Schriftzeichensatz-Daten und die Texteingabedaten in Schriftzeichenrasterlinien-Schnittdaten um. In Fig. 6 ist eine Reihe von Rasterlinien 100 bis 400 gezeigt, wobei das Schriftzeichen A auf diesen Rasterlinien abgebildet wird. Die Buchstaben werden durch Modulieren der Lichtquelle an den Schriftzeichenschnittpunkten gebildet. Ein Lichtstrahlmodulator, der auf die Schnittdaten anspricht, schaltet den Strahl bei Punkt 17 ein, während sich der Rasterstrahl über die Seite in Richtung des Pfeils (Linie 400) fortbewegt. Der eingeschaltete Rasterstrahl bestrahlt den Teil des großen A zwischen Punkt 17 und Punkt 18. Das ODS liefert ähnlich ein nachfolgendes Stellungsdatenbit, das verursacht, daß der Strahl bei Punkt 18 wieder ausgeschaltet wird. Der Strahl wird durch das Ausgangsdatensystem bei Punkt 19 wieder eingeschaltet und bei Punkt 20 wieder ausgeschaltet, so daß die Teile des A zwischen den Punkten 17 und 18 und zwischen den Punkten 19 und 20 beleuchtet werden.

Das Ausgabedatenverarbeitungssystem liefert Daten an das Strahlmodulierungssystem, um den Strahl an den richtigen Schnittpunkten der Schriftzeichengrenze mit den anderen als 100, 200 und 300 dargestellten Rasterlinien entsprechend ein- bzw. auszuschalten, um zur Veranschaulichung des Prozesses zu veranlassen, daß das A auf der Anzeigevorrichtung vollständig beleuchtet ist. Nur ein Teil der gesamten Rasterlinien zur Bildung des A in der Anzeigevorrichtung ist dargestellt.

Während die Rasterlinien über der Seite in ansteigender Ordnung, 1 bis n, abgebildet werden, werden die Schriftzeichenschnittdaten der Strahlmodulierungsvorrichtung in der gleichen Ordnung auf Echtzeitbasis zugeführt, um den Strahl mit den Schriftzeichenschnittpunkten entsprechend ein- und bzw. auszuschalten.

Wie oben erwähnt, müssen die Schriftzeichendaten dem ODS in der gleichen Ordnung auf Echtzeitbasis und unter Bezugnahme auf die ansteigende Ordnung der Rasterlinien vorgelegt werden. Aus den Fig. 3 und 4 ist jedoch ersichtlich, daß bei der ursprünglichen Zusammenstellung der Schriftzeichen die Schriftzeichen und die Datenordnung nicht unbedingt der ansteigenden Ordnung der Rasterlinie folgt.

In diesem System wird jedes Schriftzeichen einer bestimmten Größe auf ein änlich großes Geviert bezogen. Die bezogene Koordinate ist die Y-Koordinate am oberen Niveau 16 und der oberen linken Ecke 15 des Gevierts, die auf die Anzeiger-Rasterlinie bezogen wird, die diese Linienkoordinate schneidet. Aufeinanderfolgende Schriftzeichen mit gleicher bezogener Rasterlinie sind in Segmenten angeordnet. Die Schriftzeichensegmente sind in der gleichen ansteigenden Ordnung wie die Rasterlinien angeordnet, und es besteht eine Relation zwischen der Ordnung der Schriftzeichendatensegmente und der Ordnung der Rasterlinien.

Wenn die Textschriftzeichen nicht gerade so zusammengestellt werden, daß sie der Rasterlinienordnung folgen, dann in jder beliebigen Schriftzeichenfolge, so tritt hier fast mit Sicherheit eine Schriftzeichenfolge, wie Gevierte 35, 36, 40 und 41 in Fig. 3 ein, wo Teile des Schriftzeichens verloren sind, wenn die Textschriftzeichenfolge nicht entsprechend der Grundidee der vorliegenden Erfindung neu arrangiert wird.

Die Daten aus der Schriftzeicheninformation von Speicher 30 können in das Ausgabedatensystem in der Ordnung von Block 33, gefolgt von Block 34, gesetzt werden, und das ODS-System liefert entsprechend dieser Ordnung die Schriftzeichenschnittdaten in der entsprechenden Ordnung und in Übereinstimmung mit den aufeinanderfolgend erzeugten Rasterlinien 7-11.

Die nächste Serie von Daten, die mit der nächsten aufeinanderfolgenden Serie von Rasterlinien geliefert wird, wären die Schnittdaten für die Gevierte 35, 36, 40 und 41 innerhalb der Rasterlinien 19 bis 25. Wie man sieht, endet das Ende des Schriftzeichens h für das Geviert 41 bei der Rasterlinie 23, in den Rasterlinien 24 und 25 werden keine weiteren Informationen für das Schriftzeichen des Gevierts 41 geliefert.

Das Ausgabedatensystem, wie dargestellt, errechnet die Schriftzeichenschnittpunkte mit jeder Rasterlinie. Das Ausgabedatenverarbeitungssystem wird jedoch, einer festgelegten Schriftzeichenfolge folgend, nicht vor dem Auftreten einer erzeugten Rasterlinie mit Bezugsrasterlinie für das erste in Daten erscheinende Schriftzeichen, das A des Gevierts 33, begonnen. Da die Bezugsrasterlinie für das erste Schriftzeichen, das große A des Gevierts 33 die 7 ist, beginnt das ODS mit der Erzeugung der Schriftzeichenschnittdaten zu Beginn der Rasterlinie 7, und der Strahl bliebe auf der gesamten Länge dieser Rasterlinie und für die gleiche Länge der Rasterlinie 8 unmoduliert.

Im Falle der aufeinanderfolgenden Rasterlinien 9, 10 und 11 jedoch wird der Strahl zunächst dunkel gesteuert und dann sichtbar gemacht, so daß die Schriftzeichen "A" und "a" gebildet werden.

Eine andere Situation ergibt sich jedoch für die Schriftzeichen der Gevierte 35 bis 41 und für die Linienregelfunktion 42. Wie man sieht, sind die Bezugsrasterlinien 22 für das Geviert 35, 20 für das Geviert 36, 19 für das Geviert 40 und 20 für das Geviert 41.

Wenn das Ausgabedatensystem die Schriftzeichenschnittpunkte einer Rasterlinie mit der Bezugsrasterlinie für die Daten des nächsten folgenden vorgelegten Blocks errechnet, und vernachlässigt man die Linienregelfunktion 42 für den Augenblick, dann wären die nächsten Daten, die dem Ausgabedatensystem nach der Eingabe-Datenfolge auf Fig. 3 und 4 folgt, der Block 35. Das Ausgabe-Datensystem würde dann mit der Errechnung der Schnittpunkte bei Rasterlinie 22 beginnen, die die Bezugsrasterlinie für den Block 35 darstellt, wobei Block 35 der nächstfolgende Block der in der Eingabesystemscheibe geladenen Datenfolge wäre. Das Ausgabedatensystem würde dann die Schnittpunkte für die durch Blocks 36, 40 und 41 dargestellten Schriftzeichen bei der Rasterlinie 22 entwickeln.

Man kann bereits sehen, daß wenn das Ausgabedatensystem Schnittdaten entwickelt, die darin übereinstimmen, daß die Information während der Zusammenstellung der Seite in das System gesetzt wird, die Schnittpunkte für die Schriftzeichen der Gevierte und Blocks 36, 40 und 41 nicht vor der Rasterlinie 22, der Bezugsrasterlinie für den nächstfolgenden Block 35 in der Schriftzeicheneingabefolge auf Echtzeitbasis entwickelt würden. Auf Echtzeitbasis hätte jedoch zu diesem Punkt das die Rasterlinie erzeugende System die Linien 19 bis 21 überschritten, die sich mit Teilen der Schriftzeichen der Gevierte 36, 40 und 41 schneiden. Auf Echtzeitbasis und ohne die Richtung der Raster umzukehren ist es unmöglich, diese Information abzubilden, da die Rasterlinie in einer Richtung in ansteigender Ordnung die Seite nach unten fortschreitet.

Verfolgt man die Reihen der Rasterlinien 22 bis 25 abwärts, so sieht man, daß alle unteren Teile der Schriftzeichen auf der Anzeigevorrichtung durch die entsprechenden Schriftzeichenschnittdaten ausgefüllt sind. Man sieht insbesondere, daß in einem Rastersystem, in dem die Rasterlinien in ansteigender Ordnung und in einer einzigen Richtung erzeugt werden und in der die Schriftzeichen auf gemeinsamen Rasterlinien angeordnet sind, jedoch Teile auf nicht-gemeinsamen Rasterlinien aufweisen, und ein erstes Schriftzeichen, das von einem zweiten Schriftzeichen in Richtung einer einzelnen Rasterlinie versetzt ist, auf mindestens einer nicht-gemeinsamen Rasterlinie mit einem niedrigeren ansteigenden Wert relativ zu der Rasterlinienordnung angeordnet ist, die Folge der Schriftzeichendaten, der bei der Errechnung der Rasterschnittpunkte nachzugehen ist, wichtig wird. Die dem Ausgabedatensystem zugeführten Daten werden zur Entwicklung der Schnittpunkte auf Echtzeitbasis verwendet. Würde diese Ordnung, wie gezeigt, Schriftzeichendaten darstellen, die einen bezogenen Rasterlinienwert haben, der im ansteigenden Wert höher ist als die folgenden Schriftzeichen, dann wären Teile der folgenden Schriftzeichen mit niedrigerem ansteigendem Bezugsrasterwert verloren.

Nach dem Beispiel von Fig. 3 würde ein Setzer nach der üblichen Schreibart zunächst die Daten für das Geviert 33 in Block 33, dann die Daten des Gevierts 34 in Block 34, die Daten der Linienregel 42 in Block 42 einsetzen und die Seite abwärts gehen mit den Daten des Gevierts 35 in Block 35, dann Block 36, 40 und Block 41 für die Gevierte 36, 40 bzw. 41.

Das Ausgabedatenverarbeitungssystem (ODS), das die Schriftzeichenschnittpunkte erzeugt, soll nun beschrieben werden.

Dieses System rearrangiert die Ordnung der Eingabedaten und lädt diese Daten in ihrer neuen Ordnung in die ODS-Datenspeicher mit willkürlichem Zugriff (Data Rams) der Fig. 7, 8 und 9 in einer neuen Folge, die der ansteigenden Ordnung der Rasterlinien entspricht.

Die Art und Weise, in der die Schriftzeichendaten und die Schriftzeichensatzdaten in die Datenspeicher mit willkürlichem Zugriff (Data Rams) eingefügt werden, wird unter Bezugnahme auf Fig. 7 bis 16 beschrieben.

Ausgabedatenverarbeitungssystem

Das Ausgabedatenverarbeitungssystem ist für die Errechnung der horizontalen Koordinaten auf der zu setzenden Seite verantwortlich, bei denen der Laserabtaststrahl für jede einzelne Rasterlinie auf der Seite ein- oder ausgeschaltet werden muß. Die Errechnung basiert auf der erforderlichen speziellen Rasterlinie (längs der Seite), den speziellen Schriftzeichen (d. h. Identität), die an diesem Punkt der Seite zu setzen sind, und auf der Form und der Größe wie auch der Gestalt dieser Schriftzeichen, wie durch die Eingabevorrichtung definiert.

Da die Umsetzung von den die Kontur der zu setzenden Schriftzeichen definierenden "zweiten" digitalen Daten in Rasterdaten komplex ist und da die Rasterausgabeform wiederholten Mehrzeichen- Datenzugriff erfordert, ist die zur Errechnung jeder einzelnen Rasterzeile erforderliche Zeit bedeutsam. Zur Herabsetzung der Rechenzeit wurde das Ausgabedatenverarbeitungssystem in zwei große Untersysteme unterteilt:

  • (1) das Datenverwaltungs-Untersystem (DMS),
  • (2) das Konturenumsetzer-Untersystem (ODS).

Im erstgenannten System wird ein Mikroprozessor Z80A, im zweiten ein Mikrokontroller 8X300 (oder "SMS300") mit festverdrahtetem Prozessor verwendet.

Fig. 7 zeigt das Ausgabedatenverarbeitungssystem als Blockschaltbild. Dieses System erhält Identität, Form, Größe und Lage der zu setzenden Schriftzeichen definierende digitale Daten aus einem üblichen Eingabesystem. Das Eingabesystem arbeitet mit einem programmierten 8080-Mikorcomputer 62, der von einem Speicher mit willkürlichem Zugriff RAM 64 geeigneter Größe unterstützt wird. Mikrocomputer und Speicher sind auf einer 8080-Schiene 66 angeordnet ebenso wie zwei Magnetscheiben-Lese- Schreib-Einheiten, die aus Magnetscheiben-Speichereinheiten 68 und den Scheiben 70 selbst bestehen. Eine Scheibe 70 enthält die Textinformation oder die "ersten" digitalen Daten, während die andere Scheibe die Schriftzeichensatz-Information, oder die "zweiten" digitalen Daten enthält. Die Schiene endet in einer IOP80-Schnittstelle 72, die mit einer Schnittstelle 74 im Ausgabedatenverarbeitungssystem verbunden ist. Die letztgenannte Schnittstelle ist auf einer Z80A-Schiene 76 zusammen mit dem Z80A-Mikroprozessor 78 und vier Speichereinheiten 80, 82, 84 und 86 des Datenverwaltungs-Untersystems angeordnet.

Die Speichereinheit 80 dient zur Speicherung des Programms für den Z80A-Mikroprozessor 78 und stellt einen Arbeitsraum für die Mikroprozessor-Rechnungen dar. Der Speicher 82, "Schriftsatz- Randomspeicher" bezeichnet, speichert die zweiten, die Schriftzeichen des gewählten Schriftzeichensatzes definierenden digitalen Daten. Diese Daten werden verarbeitet und in zweckmäßiger Form, wie im folgenden im einzelnen beschrieben, in zwei Speicher 84 und 86 als "Daten-Randomspeicher" bezeichnet gespeist.

Die Daten-Randomspeicher 84 und 86 "teilen sich" das Datenverwaltungs- Untersystem und das Konturenumsetzungs-Untersystem. Im Grunde genommen liefert der Z80A-Mikroprozessor die Daten für diese Daten-Randomspeicher, und der 8X300-Mikrokontroller 88 empfängt und analysiert diese Daten durch Steuerung mit einem in einem weiteren Speicher 90 gespeicherten Programm und liefert die entsprechenden Daten an einen festverdrahteten Prozessor 92. Dieser festverdrahtete Prozessor setzt die Daten in die sogenannten "dritten" digitalen Daten um, die in drei Rasterlinienpuffern gespeichert werden. Die in diesen Puffern enthaltene Information wird dann durch eine Schnittstelle 94 in ein Videosteuersignal umgesetzt und synchron mit der Bewegung des Abtaststrahls dem Laseraufzeichnungsgerät zugeführt.

Datenverwaltungs-Untersystem: Die Schaltungsblöcke und deren wechselseitige Verbindung, wie sie im Datenverwaltungs-Untersystem verwendet werden, sind in Fig. 8 dargestellt. Im allgemeinen ist das Datenverwaltungs-Untersystem für die Organisation und Lieferung von Daten an den mit dem Konturenumsetzer- Untersystem geteilten Speicher verantwortlich, damit die rasche Verarbeitung durch das Konturenumsetzer-Untersystem erleichtert wird. Das Datenverwaltungs-Untersystem führt insbesondere die folgenden Prozeßschnitte durch:

  • (a) Bei Bereitschaft: Einlesen des nächsten erforderlichen typografischen "(Text-)Zeilensegments" von der Text- Magnetscheibe in einen Daten-Randomspeicher,
  • (b) Übertragung der Schriftzeichensatzdaten von der Schriftzeichensatz-Magnetscheibe auf einen der Schriftzeichensatz-Randomspeicher für eine "Schriftzeichensatz-Datei",
  • (c) Erstellung einer "Konturendatei" im Randomspeicher für das Konturenumsetzungs-Untersystem. Diese Datei enthält die X- und Y-Ausgangspunkte einer jeden Kontur eines jeden erforderlichen Schriftzeichens, wie auch die die Kontur eines jeden Schriftzeichens definierenden "Vektordaten".
  • (d) Änderung der "Zeilensegmentdatei" durch Ersatz der Schriftzeichennummer gegen die Position der Konturendatei.
  • (e) Wiederholung der obigen Schritte, bis kein Speicherraum für die Zeilensegmentdatei oder die Konturendatei mehr verfügbar ist.
  • (f) Abgabe der Steuerung an das Konturenumsetzer-Untersystem. Beginn am nächsten Daten-Randomspeicher.

Konturenumsetzer-Untersystem: Die integrierten Schaltungen und Querverbindungen, die das Konturenumsetzer-Untersystem darstellen, sind in Fig. 9 gezeigt. Im allgemeinen ist das Konturenumsetzer- Untersystem für die Umsetzung der in dem gemeinsamen Daten-Randomspeicher gespeicherten Umgrenzungs- oder Konturendaten in horizontale Strichdaten für den Laserrekorder verantwortlich. Das Konturenumsetzer-Untersystem führt insbesondere die folgenden Prozeßschritte durch:

  • (a) Ablesen der Identifizierungsdaten und der Größendaten für das erste Zeilensegment.
  • (b) Ablesen des Abstands vom Schreibrand zum linken Schriftzeichenrand (LSB), Speicherung in einem X-Register.
  • (c) Ablesen der Konturen-Ausgangsdaten für das nächste Schriftzeichen, Umrechnung des Abstands vom linken Schriftzeichenrand zur Kontur. Erforderlichenfalls Entnahme neuer Konturenvektordaten zur Aktualisierung der X,Y-Daten.
  • (d) Ausgabe der Summe aus diesem Wert und dem laufenden X-Wert (in einem "X" Register festgestellt) an den entsprechenden Rasterlinienpuffer.
  • (e) Ablesen der nächsten Kontur(en), Wiederholung des Schritts (c), bis alle Konturen auf einer Höhe der zu setzenden Seite errechnet sind.
  • (f) Ablesen des Abstands zum linken Schriftzeichenrand des nächsten Schriftzeichens; dies dem X-Register zuführen.
  • (g) Schritte (c) bis (f) wiederholen, bis alle Schriftzeichen im Liniensegment errechnet und ausgegeben sind. Dann Schritte (a) bis (f) für alle anderen Liniensegmente auf dieser Höhe wiederholen.
  • (h) Sind alle Liniensegmente auf dieser Höhe errechnet, Übertragungssteuerung des oder der Rasterlinienpuffer (s) auf das Laserantriebssystem mit Speicherung der Daten in einem alternativen (nächsten) Rasterpuffer für die Rasterlinie ¹/₁₀ Punkt weiter unten auf der Seite.
Beschreibung der Schriftzeichensatzdaten

Die die Schriftzeichen eines jeden gewünschten Schriftzeichensatzes definierenden zweiten digitalen Daten sind auf der Schriftzeichensatz-Magnetscheibe gespeichert. Diese Daten sind vom "Konturen-Typ", d. h. sie definieren die Kontur eines jeden Schriftzeichens hinsichtlich eines normalisierten Koordinaten-Kodiersatzes. Um die Daten zu komprimieren, werden nicht alle Randpunkte des Schriftzeichens auf der Auflösungsmatrix kodiert. Die allgemeine Natur des Kodierschemas ist in der DE-OS 29 10 013 beschrieben.

Einzelheiten der Schriftzeichensatzdatenstruktur sind in der US-PS 42 31 096 beschrieben.

Schriftzeichen-Digitalisierung

Schriftzeichen-Definitionen: Alle Schriftzeichen sind digital kodiert oder für ein relatives Vektorkodiersystem "digitalisiert", wobei alle Schriftzeichenkonturen als durch geradlinige Elemente eng approximiert angenommen werden. Ein derartiges System ist in der oben erwähnten deutschen Offenlegungsschrift beschrieben.

Alle Schriftzeichen sind als Vielfach-Serie von "Kurven" definiert. Jede Kurve beschreibt einen vertikalen Konturenrand mit den folgenden Komponenten:

  • (a) eine X-, Y-Koordinate, die den höchsten Punkt auf der Kurve innerhalb eines Gevierts definiert,
  • (b) eine Weiß-Schwarz- oder Schwarz-Weiß-Grenze,
  • (c) eine Reihe geradliniger Liniensegmente, die durch eine die Krümmung und die Länge eines jeden Segments der Kurve definierende Reihe von Datenbytes definiert wird, und
  • (d) Vektorrichtung (nach unten und von links nach rechts oder von rechts nach links) der Segmente.

Die Definition des Schriftzeichens besteht in der Auflistung aller Kurven, die das Schriftzeichen umgrenzen. Sie werden in absteigender Ordnung aufgelistet, d. h. die Kurven, die am oberen Teil des Schriftzeichens beginnen, werden zuerst aufgeführt, die am Fuß zuletzt.

Maßstab: Die hauptsächliche Maßeinheit ist die Datenauflösungseinheit (Data Resolution Unit, DRU), die als ¼₃₂ des traditionellen Gevierts definiert ist. Ein erweitertes Geviert ist 576×576 DRUs.

Die Position 0,0 ist am Schnittpunkt des linken Rands (LSB) und dem oberen Teil des erweiterten Gevierts, wie in Fig. 2 gezeigt, angeordnet. X-Werte (links-rechts) können daher positiv (positiv ist rechts) oder negativ (wenn die Grenze des Schriftzeichens sich links vom linken Rand (LSB) erstreckt) sein, Y-Werte (oben-unten) sind jedoch immer positiv (positiv ist unten).

Konturen-Datenwörter: Jede Kontur wird durch 3 oder mehr Datenwörter definiert: einem Y-Wort, einem X-Wort und einem oder mehreren Konturen- (Vektor-/Steuer-) Bytes. Das Format dieser Datenwörter ist in Fig. 10 angezeigt. Die verschiedenen Teile der in Fig. 10 gezeigten Kodierung sind im folgenden aufgeführt:

Komponenten des Y-Datenworts:

Yn - Dieses Datenteil definiert die vertikale Position eines Ausgangspunkts vom oberen Rand eines erweiterten Gevierts.
K - undefiniert.

Komponenten des X-Datenworts:

Xn - Dieses Datenteil definiert die horizontale Position eines Ausgangspunktes. Der linke Rand (LSB) ist als 0 definiert.
X Vorzeichen - Das Vorzeichenbit definiert die Verschiebungsrichtung von Xn hinsichtlich des linken Rands LSB.
L-Bit - das L-Bit definiert die Richtung des dx des ersten Vektors. Eine eins definiert einen linksgerichteten Vektor, eine Null einen nach rechts gerichteten.
F-Bit - Das F-Bit oder "Flatterbit" (Flare Bit) definiert, welche Vektorneigung durch den Dekodierer bei der Extrapolation der Schriftzeichenkontur im Bereich des Gitters unmittelbar über der Linie Yn verwendet wird.
E-Bit - Das E-Bit oder "Extrapolationsbit" definiert, ob über der Ausgangspunkt-Gitterlinie Yn Extrapolation verwendet wird oder nicht.
B-Bit - Das B-Bit ist das "Bit Umgrenzung Ein/Aus" und definiert, ob die Kontur eine Linksgrenze (ein) oder eine Rechtsgrenze (aus) darstellt.

Vektoren/Komponenten der Steuerdatenbytes:

Vektoren:
dydx - Für alle Werte dy größer als 0 definiert dieses Byte die Neigung der Vektorkontur des Schriftzeichens vom Ausgangspunkt (Xn Yn) oder vom letzten Vektorendpunkt. Alle Vektoren sind aufeinander folgend in der gleichen Folge angeordnet wie sie auf der Schriftzeichenkontur erscheinen.

Steuerungen

Für alle Werte dy=0 definiert diese Byte einen Steuerkode. Die spezifische Steuerung hängt vom Wert dx (in sedezimaler Darstellung) wie unten angegeben ab:

0 - Ende der Kontur
1 - Umkehrung der dx-Richtung für den nächsten Vektor
2 - definiert, daß für den durch die vorangehenden Y- und X-Datenwörter definierten Ausgangspunkt keine Verschiebungsvektoren anwendbar sind. Dieser Steuerung folgt immer ein Null-Byte, damit ein "Konturenende"-Steuerkode erzeugt wird.
3 - definiert den Vektor mit einer horizontalen Verschiebung von 0 DRUs (vertikaler Vektor) und einer vertikalen Verschiebung größer als 30 DRUs. Das nächste Datenbyte definiert den Binärwert der vertikalen Verschiebungen. Das Datenbyte hat einen resultierten Bereich vertikaler Verschiebungen von 0 bis einschließlich 255, wird jedoch zwischen 0 und einschließlich 30 nicht verwendet. (Beispiel: die zwei Bytes 0/3, 2/6 beschreiben einen zusammengesetzten Vektor, der vertikal um 38 DRUs heruntergeht).
4 - definiert einen Vektor mit einer horizontalen Verschiebung von 1 DRU und einer vertikalen Verschiebung von 30 DRUs.
5 - Definiert einen Vektor mit einer horizontalen Verschiebung von 1 DRU und einer vertikalen Verschiebung von 120 DRUs.
7 bis C - undefiniert
D - definiert eine Änderung einer geradkettigen Kontur mit einer vertikalen Verschiebung von 1 DRU und einer horizontalen Verschiebung bis zu 255 DRUs. Das nächste Datenbyte definiert den Binärwert der horizontalen Verschiebung. (Beispiel: Die zwei Bytes o/D, 2/6 beschreiben eine Kontur aus 1 DRU vertikaler und 38 DRU horizontaler Verschiebung).
E - definiert eine Änderung einer geradlinien Kontur mit einer vertikalen Verschiebung von 1 DRU und einer horizontalen Verschiebung größer als 255 DRUs. Das nächste Datenbyte definiert den Binärwert der horizontalen Verschiebung über 256. (Beispiel: Die zwei Bytes o/E, 2/6 beschreiben eine Kontur aus 1 DRU vertikaler und 294 horizontaler Verschiebung)
F - definiert einen Vektor mit einer schwachen Neigung mit einer vertikalen Verschiebung von 1 DRU und einer horizontalen Verschiebung größer als 15 DRUs. Das nächste Datenbyte definiert den Binärwert der horizontalen Verschiebung. (Beispiel: Die zwei Bytes 0/F, 2/6 beschreiben einen zusammengesetzten Vektor, der über 38 horizontale DRUs und einen DRU hinunter geht).

Struktur des Konturen-Datenspeichers

Der Konturen-Datenspeicher ist auf der Schriftsatz-Magnetscheibe untergebracht und speichert eine Speicherabbildung der Daten, die in einen oder mehrere Schriftsatz-Randomspeicher eingeführt werden. Die Datei besetzt einen oder mehrere Sektoren auf der Scheibe und ist daher Modulo 125 Wörter lang. Fig. 11 veranschaulicht diese Dateistruktur.

Betragen die gesamten Konturendaten des Schriftsatzes weniger als 16 384 Bytes, dann enthält der Konturen-Datenspeicher:

  • 1. FSIZE-Wort (Anzahl der Bytes im Randomspeicher RAM)
  • 2a. CINDEX (Schriftzeichen-Index)
  • 2b. Anfangsetikett- und Konturendaten
  • 3. ENDFNT (Nullwort)
  • 4. Sektorfüller

Die Puntke 2a und 2 bestellen das Randomspeicher-Speicherabbild dar und dürfen 16 384 Bytes nicht übersteigen.

Betragen die gesamten Konturendaten des Schriftsatzes mehr als 16 K Bytes, dann enthält der Speicher:

  • 1. FSIZE-Wort
  • 2. ab CINDEX, Anfangsetikett- und Konturen-Daten (16 384 Bytes max)
  • 3. FSIZE-Wort (Anzahl der Bytes im nächsten Randomspeicher RAM)
  • 4. Anfangsetikett- und Konturen-Daten (16 384 Bytes max)
  • 5. ENDFNT
  • 6. Sektorfüller

Die Puntke 3 und 4 können wiederholt werden, wenn die gesamten Konturendaten des Schriftsatzes mehr als 32 768 oder 49 152 Bytes betragen. Die Daten besetzen den Schriftsatz-Randomspeicher Font RAM beginnend mit der Adresse "4000 und können bis zur Adresse 7 FFF" verlaufen (wobei das Anführungszeichen Anfang (") auf eine Sedezimalzahl hinweist. Die Adressen in den Anfangsetiketten (headers) sind absolut; Adressen im CINDEX sind versetzt absolut ("0000 bis "3FFF), wobei die zwei MSBs Multispeicherpositionen (multi-RAM locations) darstellen.

Die spezifischen Inhalte des Konturendatenspeichers sind folgende:

FSIZE

Dieses Wort definiert in Binärzahlen die Anzahl der Bytes, die in einen Schriftsatz-Randomspeicher eingegeben werden. Die Zählung beinhaltet nicht das FSZI-Wort oder das ENDFNT-Wort. Die Zählung für den ersten Schriftsatz-Randomspeicher (Font-RAM) enthält den gesamten CINDEX und alle Anfangsetikett- und Konturendaten.

CINDEX

Der Schriftzeichenindex ist von veränderlicher Länge und besteht aus einer Schriftzeichenzählung (CCOUNT) und einem relativen Adressenindex.

CCOUNT ist ein Byte, das in Binärzahlen die Anzahl der Schriftzeichen im Schriftzeichensatz und somit auch die Wortlänge des Index definiert. Es handelt sich um eine Zahl zwischen 1 und 255 einschließlich. Die Lage der Adresse im Randomspeicher RAM des CCOUNT ist "4000.

Der Index enthält eine Einworteintragung für jedes Schriftzeichen im Schriftzeichensatz. Jede Eintragung stellt die versetzte absolute Adresse des YCOUNT-Bytes für das Schriftzeichen dar. Die zwei höchstwertigen Bits des Wortes weisen in Binärzahlen auf den Randomspeicher RAM, der das Schriftzeichen enthält, wobei 00 der Randomspeicher RAM ist, der den Index enthält. Die 14 niedrigstwertigen Bits enthalten die versetzte Radomspeicher-Adresse (die absolute RAM-Adresse weniger "4000) des YCOUNT-Bytes des Schriftzeichens.

Die erste Eintragung im Index ist defintionsgemäß Schriftzeichen Nummer 1 und muß mit der ersten Schriftzeichenbreite-Gruppe im Schriftbreitespeicher übereinstimmen. Die Schriftzeichen-Nummern laufen sequentiell durch Implikation fort (es gibt keine ausgesprochenen Schriftzeichen-Nummern oder Bibliotheks-Nummern an irgendeiner Stelle des Schriftzeichensatzes.)

ENDFNT

Dieses Wort definiert das Ende aller Schriftsatzdaten und besteht aus 2 Bytes von Nullen.

Sektorfüller

Um bis zum Ende des Magnetscheiben-Sektors aufzufüllen, der das ENDFNT-Wort enthält, werden Nulldaten verwendet.

Anfangsetikett- und Konturen-Daten

Die Anfangsetikett- und Konturen- Daten in jedem Radomspeicher RAM enthalten alle Digitalisierungsdaten des Schriftzeichens, die zu jedem der in diesem RAM untergebrachten Schriftzeichen gehören. Die X- und Y-Ausgangsstellungen für die Schriftzeichen sind im Anfangsetikettspeicher aufgeführt; die Vektoren und Steuerbytes, die die Profile der Schriftzeichen definieren, sind im Konturenspeicher aufgeführt. Die zwei Speicher sind durch ein Nulldatenbyte (ENDHDR) getrennt. Fig. 12 veranschaulicht die Speicherstruktur der Anfangsetikett- und Konturen- Daten.

Ein Prüfsummenbyte folgt dem Konturenspeicher und geht dem ENDFNT-Wort oder dem FSIZE-Wort, das Randomspeicher RAMs trennt, unmittelbar voraus.

Anfangsetikett-Speicher

Der Anfangsetikett-Speicher enthält eine Reihe von Schriftzeichenanfangsetiketten, jeweils eines für jedes Schriftzeichen im Satz. Zwischen Anfangsetiketten gibt es keinen Zwischenraum. Jedes Schriftzeichen-Anfangsetikett enthält (aufeinanderfolgend und ohne Zwischenraum) ein YCOUNT- Byte, ein CSIZE-Wort und ein oder mehrere Anfangs-Paarsätzen von Datenwörtern (ein Satz für jedes Paar von Anfängen).

YCOUNT

Das YCOUNT-Byte definiert in Binärzahlen die Anzahl von YN-Einträgen im Anfangsetikett, was das gleiche ist wie die Anzahl der Anfangs-Paare. Die Länge in jedem Schriftzeichen-Anfangsetikett beträgt zehnmal den YCOUNT plus 3 Bytes.

CSIZE

Das CSIZE-Wort definiert in Binärzahlen die Gesamtmenge an Datenraum in Bytes, den das Schriftzeichen ausfüllt, wenn es einmal in den Daten-Randomspeicher eingeführt wird. Es ist also gleich zwölfmal YCOUNT plus der Länge aller adressierten Profil-Zeichenfolgen innerhalb der Anfangs-Paardatensätze.

Anfangs-Paardaten

YN ist das Y-Datenwort und XN ist das X-Datenwort. N muß gerade sein, da Konturen immer in Paaren beginnen. AN ist die absolute Adresse des Anfangsbytes der Profil-Zeichenfolge der Vektoren und Steuerungen, die jede Konturform definieren. Jede Adresse ist eine Zahl zwischen "4000 und "7FFF. Adressen. können innerhalb des Anfangsetiketten- Speichers dupliziert werden, falls eine Profil-Zeichenfolge für mehr als einen Anfangspunkt geteilt werden muß (die Schriftzeichen Konturform ist gemeinsam). Eine Adresse kann nicht auf eine Profil-Zeichenfolge in einem anderen Radomspeicher RAM weisen. Die YN, XN und AN-Datenwörter sind in der Reihenfolge wie in Fig. 12 gezeigt und ohne Zwischenraum aufgelistet. Jeder folgende YN-Wert ist gleich oder größer als der vorausgehende YN-Wert.

Konturenspeicher

Der Konturenspeicher besteht aus einer Reihe von Profil-Zeichenfolgen. Jede Profil-Zeichenfolge stellt eine sequentielle Reihe von zwei oder mehr Vektoren/Steuerdatenbytes dar. Jede Zeichenfolge definiert eine bestimnmte vertikale Schriftzeichenkontur und beginnt am Anfangsetikett­ startpunkt. Eine Zeichenfolge wird durch Steuer-Null (Konturende), das ein Nulldatenbyte ist, beendet. Füllerbytes dürfen innerhalb einer Zeichenfolge nicht verwendet werden; sie sind vor oder nach einer Zeichenfolge zulässig. Das oder die Digitalisierungsprogramm(e) vermeidet Duplikation identischer Profil-Zeichenfolgen und minimisiert die Anzahl der Randomspeicher RAM, die ein Schriftzeichensatz benutzt, indem er Profil-Zeichenfolgen für Schriftzeichenkonturen teilt, die sich sehr annähern.

CHKSUM

Eine Ein-Byte-Prüfsumme verifiziert jeden vollständigen Randomspeicher RAM; sie wird durch alle Daten im Schriftsatz- Randomspeicher mit Ausnahme des CHKSUM-Bytes selbst gebildet. Die Prüfsumme wird durch Initialisierung auf Null gebildet; dann wird die Prüfsumme für jedes Bytes ein Bit nach rechts bewegt (LSB wird MSB), und das Datenbyte wird zur Bildung der neuen Prüfsumme addiert. Überlauf bei der Addition wird vernachlässigt. Die endgültige 8-Bit-Prüfsumme wird als CHKSUM definiert und wird nach dem letzten Datenbyte eingeführt.

Profil-Zeichenfolgen

Im allgemeinen werden die Profil-Zeichenfolgen im Konturen-Datenspeicher von den Anfangspunkten (YN und) getrennt, damit sich mehrere Anfangspunkte auf die gleiche Profil- Zeichenfolge beziehen (sie adressieren) können. Auf diese Art können verschiedene Schriftzeichen innerhalb ein- und desselben Schriftzeichensatzes mit als Teil desselben gleicher Grundform durch die gleichen Daten definiert werden, so daß eine Datenkomprimierung erzielt wird.

Die folgenden Buchstaben können beispielsweise auf der linken Seite identischer Kontur aufweisen: "o", "c" und "e". Der Konturen- Datenspeicher enthält also zwei Profil-Zeichenfolgen, die die inneren und die äußeren Umgrenzungen auf der linken Seite dieser Schriftzeichen definieren. Das höchste Paar von Anfangspunkten im Schriftzeichen-Anfangsetikett für "o", "c" bzw. "e" kann daher diese zwei Profil-Zeichenfolgen adressieren.

Da die dx-Werte in den Profil-Zeichenfolgen je nach dem "L-Bit" im X-Datenwort (XN) positiv oder negativ sein können, kann eine einzelne Profil-Zeichenfolge für verschiedene Schriftzeichen, die symmetrisch sind, dienen. Teile des Schriftzeichens "b" können beispielsweise mit den Schriftzeichen "d" und Teile des Schriftzeichens "p" können mit dem Schriftzeichen "q" symmetrisch sein.

Solche Schriftzeichen können mit den gleichen Profil-Zeichenfolgen definiert werden, die durch das "L-Bit" zur Bewegung in entgegengesetzten Richtungen geleitet werden.

Schriftzeichen-Designer neigen dazu, einige wenige Schriftzeichen- Grundformen zu schaffen, die im ganzen Satz direkt oder spiegelbildlich wiederholt werden. Überlegungen zur Übereinstimmung erfordern, daß einige wenige Formen im gesamten Satz wiederholt werden, während es die Symmetrie erfordert, daß das Spiegelbild verwendet wird. Die in der digitalen Definition der Schriftzeichen im vorliegenden System verwendeten Profil-Zeichenfolgen stellen ein wichtiges Werkzeug zur Neubildung dieser Schriftzeichen- Grundform dar. Da das Kodierschema die Adressierung eine einzelne Profil-Zeichenfolge von den Anfangspunkten verschiedener Schriftzeichen erlaubt und es gestattet, daß die dx-Inkremente in einer Profil-Zeichenfolge positive oder negative Werte hat, wird die Menge der zur Definition eines gesamten Schriftzeichensatzes erforderlichen Daten erheblich herabgesetzt.

Verschiedenes

Innerhalb der Definition eines einzelnen Schriftzeichens gibt es keine Einschränkung dahingehend, daß zwei Konturen (Profil-Zeichenfolgen) von dem gleichen Punkt angefangen werden müssen. Es gibt auch keine Einschränkung, daß zwei Konturen am gleichen Punkt enden müssen. Zwei Konturen dürfen sich berühren, dürfen sich aber nicht überschneiden, wenn sie von "Ein"- Konturen zu "Aus"-Konturen überwechseln.

Gebrochene Schriftzeichen sind im Konturen-Datenspeicher ebenfalls zulässig. Es gibt keine Einschränkung für gebrochene (unterteilte, getrennte) Schriftzeichen.

Schriftzeichensatz-RAM-Formate

Das Datenverwaltungssystem DMS benutzt das Randomspeicher RAM zur Aufnahme der Schriftsatzdaten für den oder die auf der Seite zu setzenden Schriftzeichensätze, um beschleunigten Zugang zu diesen Daten zu haben. Die Daten für den Schriftzeichensatz werden dem DMS durch das Eingabesystem geliefert, wo sie auf der System-Magnetscheibe (System Floppy Disk SFD) gespeichert sind.

Ein vollständiger Schriftzeichensatz ist auf einem oder mehreren Schriftsatz-Randomspeichern Font RAM gespeichert, wobei jeder Schriftsatz-Randomspeicher nicht mehr als einen Schriftzeichensatz gleichzeitig speichert.

Das Datenverwaltungssystem DMS kann eins bis acht Schriftsatz- Randomspeicher enthalten. Das System funktioniert mit nur einem Schriftsatz-Randomspeicher, vorausgesetzt, daß Schriftzeichensätze nur einer für den Schriftsatz-Randomspeicher geeigneten Größe verwendet werden. Vielfach-Schriftsatz-Randomspeicher sichern gegen eine Herabsetzung der Durchsatzgeschwindigkeit auf Seiten mit verschiedenen Schriftsätzen.

Jeder Schriftsatz-Randomspeicher Font RAM besteht aus 16 K Bytes; jede Schriftsatz-Randomspeicher-Karte kann bis zu 64 K Speicherbytes enthalten: das ist das Äquivalent zu 4 Schriftsatz-Randomspeichern. Einheiten von weniger als vier Schriftzeichensätzen können durch Depopularisierung der Schriftsatz-Randomspeicher- Karten in 16 K-Byte-Inkrementen erzielt werden.

Nach neuerlicher Einstellung des Systems entscheidet das Datenverwaltungssytem DMS, welche Schriftsatz-Randomspeicher zur Aufnahme verfügbar sind, indem in jede Randomspeicher-Position ein Muster eingeschrieben und die Ergebnisse zurückgelesen werden. Jede Nichtübereinstimmung wird als eine inaktive Schriftsatzposition in einer Schriftzeichensatz-Tabelle aufgezeichnet. Nach Prüfung jeder der acht Positionen wird eine Meldung an das Eingabesystem gesandt, die die Anzahl der aktiven Schriftsatz-Randomspeicher definiert; dies kann zur Feststellung defekter Randomspeicher ausgenutzt werden. Die Schriftzeichensatz-Tabelle wird später zur Aufzeichnung der in jedem Randomspeicher gespeicherten Schriftzeichensatz-Nummern verwendet.

In dem Verfahren zur Entwicklung eines Daten-Randomspeichers kopiert das Datenverwaltungssystems DMS spezifische Schriftzeichen- Konturdaten vom Schriftsatz-Randomspeicher in den Konturenspeicher im Daten-Randomspeicher Data RAM. Tritt eine Änderung des Schriftzeichensatzes ein, dann prüft das Datenverwaltungssystem DMS die Tabelle der eingeführten Schriftzeichensatz-Nummern. Ist der Schriftzeichensatz noch nicht eingeführt, dann führt das Datenverwaltungssystem DMS den neuen Schriftzeichensatz in den oder die ersten leeren Schriftsatz-Randomspeicher RAM. Sind alle Schriftsatz-Randomspeicher im Gebrauch, so wird oder werden der oder die neuen benötigten Schriftzeichensatz überschrieben.

Die im Schriftsatz-Randomspeicher gespeicherten Daten sind dem Inhalt und der Struktur nach den Schriftsatzdaten im Konturen- Datenspeicher auf der Eingabesystem-Magnetscheibe identisch.

Zusätzlich zu den auf der oder den Schriftsatz-Randomspeicher- Karte(n) gespeicherten Schriftsatzdaten unterhält das Datenverwaltungssystem DMS zwei weitere Tabellen pro Schriftzeichensatz im Programm-Arbeitsraum, die zur Regulierung der Datenübertragung vom Schriftsatz-Randomspeicher Data-RAM verwendet werden, nämlich eine In-Seg-Tabelle und eine In-RAM-Tabelle. Sie werden im folgenden beschrieben.

In-RAM-Tabelle

Diese 512-Byte-Tabelle enthält die Adresse innerhalb des Daten-Randomspeichers Data-RAM, in der ein Schriftzeichen-Anfangsetikett gespeichert wurde. Die Tabelle ist nach den Schriftzeichen-Nummern geordnet. Jeder Eintrag beträgt zwei Bytes. Ein Null-Eintrag zeigt an, daß die Schriftzeichendaten nicht eingegeben sind.

Immer wenn ein neues Schriftzeichen in den Daten-Radomspeicher Data RAM eingegeben wird, werden die entsprechenden 2 Bytes in dieser Tabelle mit der Daten-Randomspeicher-Adresse versehen. Diese Tabelle wird beim Beginn des Aufbaus jedes neuen Daten- Randomspeichers aufgelöst.

In-Seg-Tabelle

Diese 32-Byte-Tabelle wird zur Anzeige dafür verwendet, welche Schriftzeichen des Schriftzeichensatzes bereits innerhalb des zur Zeit im Daten-Randomspeicher Data RAM entwickelten Zeilensegments angetroffen wurden. Immer wenn eine Adresse in die In-RAM-Tabelle eingegeben wird, wird entsprechend ein Bit in diese Tabelle gesetzt. Diese Tabelle wird beim Beginn eines jeden neuen Setzniveaus (Set level) (YSL) aufgelöst.

Der Struktur nach entspricht jedes Bit einer Schriftzeichen- nummer zwischen 0 und einschließlich 255. Die Adresse des Bits wird errechnet durch

Schriftzeichen-Nummer=Q+R (Quotient-Ganzzahl und Rest-Ganzzahl)
wobei Q das Byte in der Tabelle und R das Bit innerhalb des Bytes ist.

Beschreibung der Seitendaten Definition der Seite

Eine Seitenposition wird durch X-, Y- Koordination in ¹/₁₀ Punkten definiert.

Dies wird eine Rasterauflösungseinheit (Raster Resolution Unit RRU) genannt. Der obere linke Rand ist die Position 0,0. Die maximale Seitengröße ist 11 Zoll×17 Zoll. Das ist 7954×12 292 RRU. Bewegung kann auf einer Seite nur von oben nach unten geschehen.

Die für jede Zeit zu lösende Rasterposition wird Y-Setzniveau (Yset level, XSL) genannt. Dieser Wert beginnt zunächst bei 0 und wird um eins inkrementiert, bis er die maximale Seitentiefe erreicht.

Seitenvarianten

Zusätzlich zu der definierten normalen Standartseitenform wurden fünf volle Seitenvarianten in das ODS-Muster eingefügt. Alle Varianten sind wechselseitig ausschließlich.

Hohe Auflösung

Das ODS hast einen Chipschalter am (Z80A)-Mikroprozessor des Datenverwaltungssystems DMS, der für diese Laseraufzeichnungsgeräte eingestellt ist. Das Datenverwaltungssystem DMS halbiert die ΔYs, und das OCS inkrementiert das Setzniveau auf jeden anderen Rasterausgang.

Prüfseite

Ein Laseraufzeichnungsgerät mit Prüfseitenfähigkeit macht zwischen jeder Rasterzeile zwei Schrittmotorschritte, so daß die Geschwindigkeit des Setzens einer Seite mit Prüfungsqualität effektiv verdoppelt wird.

Das Kommando für die Prüfseite wird vom Eingabesystem aus eingegeben. Das Datenverwaltungssystem DMS setzt die Ys-Niveaus je nachdem, ob der Laserrekorder eine normale Einheit oder eine mit hoher Auflösung ist, und das OCS inkrementiert entsprechend das Setzniveau um eins oder zwei bei jedem Rasterausgang.

Seitenbreite

Das Laseraufzeichnungsgerät hat eine 8½ Zoll oder eine 11 Zoll breite Trommel 56.

Das ODS hat einen Chipschalter am (Z80A)-Mikroprozessor des Datenverwaltungssystems DMS und benutzt eine entsprechende Seitenbreite, wenn Seitenkomplementierung des XPOS-Wertes wegen Ausgabe "fehlerhafter Ablesung" eintritt.

Spiegelbildliche Ablesung

Jede Seite kann von jedem Laseraufzeichnungsgerätetyp für normale oder spiegelbildliche Ablesung ausgegeben werden.

Die Auswahl für spiegelbildliche Ablesung geschieht durch einen Kippschalter auf dem (Z80A)-Mikroprozessor des Datenverwaltungssystems DMS. Das Datenverwaltungssystem DMS veranlaßt eine Seitenkomplementierung der XPOS-Lage eines jeden Schriftzeichens sowie eine Komplementierung der X-Position einer jeden Kontur jedes Schriftzeichens und der Richtung, in der sich jede Kontur bewegt.

Umkehrvideo

Jede Seite kann weiß auf schwarz oder schwarz auf weiß ausgegeben werden (umgekehrt normal).

Auswahl des Umkehrvideo geschieht durch einen Kippschalter am festverdrahteten Prozessor (hardwired processor HWP)- Der HWP kehrt die Polarität des Rasters um.

Zeilenlinie

Die Zeilenlinie ist ähnlich dem Umkehrvideo, mit der Ausnahme, daß eine ganze Linie (weiß auf schwarz oder schwarz auf weiß) von bestimmter Länge eine einzige feste Farbe annimmt. Dieses Kommando gestattet die Erzeugung von Linien auf der Seite.

Eingabesystem-Schnittstellenbestimmungen Allgemeines

Die vorliegende Beschreibung offenbart die erforderlichen Daten und das Datenformat, das zwischen Eingabesystem und Ausgabendaten-Verarbeitungssystem übertragen werden soll. Die Übertragung geschieht durch das Eingabesystem IOP-80 auf der Basis des Austausches einer Byte-Serien-Übertragung. Tabelle 1 faßt alle Schnittstellenübertragungen zum ODP-System zusammen.

Zusammenfassung der Schnittstellen-ÜbertragungTabelle 1 Eingabe ins ODP-System von Eingabe-SystemSteuerimpulsneue Seite fertig
Übertragungen neue Anfrage
8-Bit-Byte Einstellung neue Anfrage
und CTL=1 Prüfstelle
Anfang Programm-Speicher (Start Prog Store)
Fehler Programm-Speicher (Prog Store Fault)
Daten Programmdaten
Übertragungen Seiten-Daten
16 Bits (zwei Bytes) Schriftzeichensatz-Daten
und CTL=0
Seiten-Daten

Das Ausgabedaten-Verarbeitungssystem ist eine Seitenausgabe-Maschine, hauptsächlich weil der Laserrekorder die zur Belichtung eines vollständigen Rasters erforderliche Zeit aufbringen muß, selbst wenn er nur Daten für einen Teil des Rasters hat. Der Durchsatz der Maschine wird daher bedeutend heraufgesetzt, wenn der Laserrekorder mit allen graphischen Daten versehen wird, die in jedem vollständigen Raster erforderlich sind, bevor das Raster belichtet wird. Dies erfordert die Speicherung und Umgruppierung der Zufallsfolge-Eingabedaten in eine Sequenz von oben nach unten. Auf Grund beschränkter Speicherkapazität im Ausgabedaten-Verarbeitungssystem müssen die Daten weiterhin in Gruppen verpackt werden, die als "Zeilensegmente" definiert werden, was die Standarteinheit der durch das Eingabesystem zu übertragenden Seiten-Daten darstellt.

Schriftzeichensatz-Daten

Die Eingabevorrichtung speichert wie oben beschrieben die Schriftzeichensätze in digitalen Konturen auf Magnetscheiben. Die Konturendaten werden für die Auflösung der Ein-Aus-Rasterprodukte benötigt, und diese Daten werden durch das Eingabesystem auf der Basis eines gesamten Schriftzeichensatzes (mit Ausnahme der Breite-Daten, der BLJ-Daten) übertragen.

Andere Daten

Zusätzlich zu den obigen mit dem Betrieb zusammenhängenden Daten können erforderlichenfalls auch periodische Datenübertragungen durch die Eingabevorrichtung vorgenommen werden. Diese beinhalten Programme, Fehlermitteilungen, Wiederanlauf und Programmrückstellung. Das Leistungs-Rückstellsignal kann ebenfalls vor der Eingabevorrichtung ausgehen.

Notation

Zur Beschreibung der Syntax der Datenerfordernisse wird eine Notation der Metasprache verwendet. Verwendet wird die folgende Notation:
""Terminal - ein Element mit einem Symbol für eine feste Bitlänge (z. B.: alle Elemnte der Seitendaten sind 16-Bit-Wörter).

Non-Terminal - ein Element einer Sprache höherer Ordnung, die aus einem oder mehreren Terminals und/oder einem oder mehreren Non-Terminal zusammengesetzt ist.

Fakulative Wiederholungen - die geschweiften Klammern deuten an, daß das oder die angeschlossenen Non-Terminals nicht oder so oft wie gewünscht benutzt werden dürfen.

/Entweder-Oder - Ein Schrägstrich deutet an, daß die Non-Terminals beiderseits des Schrägstrichs mögliche alternative Elemente sind
*Nur einmal - ein Sternchen wird verwendet, um anzudeuten, daß das Non-Terminal nicht mehr als einmal innerhalb des definierten/komplexen Non-Terminals verwendet werden darf.

Seiten-Daten Struktur der Seiten-Daten

Kodierte Daten, die eine Seite beschreiben, werden in Gruppen, die als "Zeilensegmente" definiert sind, zusammengepackt:

(SEITE) = {(ZEILEN SEG)} "SEITENENDE"
((PAGE) = {(LINE SEG)} "END PAGE")

Jede Seite kann aus einem oder mehreren Zeilensegmenten, gefolgt von einem Seitenend-Kode, bestehen. Eine leere Seite hat keine Zeilensegmente. Der Seitenend-Kode ist ein Beendigungskode, nach diesem Kode können keine die Seite betreffenden Daten mehr akzeptiert werden. Die vor dem Seitenend-Kode erhaltenen funktionellen Daten werden nicht auf die nächste Seite übertragen und müssen, wenn benötigt, wiederholt werden.

Jedes Zeilensegment definiert einen Schriftzeichensatz, einen Umkehrvideosatz und/oder einen Zeilenliniensatz:

(ZEILEN SEG) = (Seg#)* (YPOS) {(SCHR SET)/(RVSET)/(ZISET)} "END SEG"
((LINE SEG) = (SEG#)* (YPOS) {(CHAR SET)/(RVSET)/(LR SET)} "END SEG"

Das erste Element in jedem Zeilensegment ist die Segmentnummer. Getrennte Zeilensegmente mit bestimmten Segmentnummern müssen für jeden Schriftzeichensatz mit einer bestimmten YPOS und Punktgröße-Kombination definiert werden. Getrennte Zeilensegmente sollten vorzugsweise für jeden Umkehrvideosatz oder Zeilenliniensatz und vorzugsweise auch für einen Satz definiert werden, der nicht innerhalb der Y-Grenzen des erweiterten Gevierts eines Schriftzeichensets enthalten ist. Die Umkehrvideo- oder Zeilenliniensätze innerhalb eines einzelnen Zeilensegments müssen den gleichen YPOS-Wert haben.

Auf die Segmentnummer folgt der Wert YPOS, der nominell die Y-Koordinate auf der Seite am oberen Teil des erweiterten Gevierts des Schriftzeichens im Zeilensegment und/oder die obere Koordinate des Umkehrvideos oder des oder der Zeilenliniensatzes (sätze) im Zeilensegment ist. Die Zeilensegmente auf der Seite müssen alle in der Ordnung der YPOS-Koordinate angeordnet werden; es gibt keine Sequenzanforderung zwischen Zeilensegmenten mit gleicher YPOS-Koordinate.

Das Zeilensegment kann eines oder mehrere Schriftzeichensätze und/oder ein oder mehrere Umkehrvideo- und/oder Zeilenliniensätze aufweisen.

Der Endsegment-Kode ist ein Beeindigungskode, und nach diesem Kode können keinerlei sich auf das Segment beziehende Daten akzeptiert werden. Die vor dem Endsegment-Kode erhaltenen Daten werden nicht in das nächste Segment übertragen und müssen, wenn benötigt, wiederholt werden.

Schriftzeichensätze

Die Schriftzeichensets innerhalb eines Zeilensegments müssen der folgenden Struktur folgen:

(SCHRZ SET) = (ANF SCHRZ) {(SCHRZ PAAR)}
((CHAR SET) = (INITIAL CHAR) {(CHAR PAIR)})

wobei einem Anfangsschriftzeichen ein oder mehrere Schriftzeichenpaare folgen. Das Anfangsschriftzeichen muß der folgenden Struktur entsprechen:

(Anf Schrz) = (PUNKT GRÖSSE)* (SCHRSATZ) (XPOS) (SCHRZ PAAR)
((INITIAL CHAR) = [PT SIZE)* (FONT) (XPOS) (CHAR PAIR))

Das Anfangsschriftzeichen in einem Zeilensegment muß eine Größe aufweisen, eine Schriftzeichensatz-Nummer, die x-Koordinate der linken Seite des Schriftzeichens (XPOS) und die Schriftzeichen paar-Daten, die folgendermaßen struktuiert sind:

(Schrz paar) = {(Funktion)} "SCHRZ"
((CHAR PAIR) = {(FUNCTION)} "CHAR")

und wobei die zulässigen Funktionen die folgenden sind:

(FUNKTION) = (XPOS)/(SCHRZS)/(SATZBREITE)/(NEIGUNG)/(BLJ)/(YLOW)
((FUNCTION) = (XPOS)/(FONT)/(SETWIDTH)/(SLANT)/(BLJ)/(YLOW))

Der Schriftzeichenkode ist teilweise ein Beendigungskode, d. h. obwohl keine einem bestimmten Schriftzeichen zugehörige Funktionen nach dem Kode akzeptiert werden können, werden alle vor dem Kode erhaltenen funktionalen Daten übertragen und bleiben gültig, bis sie durch einen neuen Funktionskode oder ein Zeilensegment-Beendigungskode (END SEG) verändert werden.

Umkehrvideosätze

Die Umkehrvideosätze innerhalb eines Zeilensegments müssen der folgenden Struktur folgen:

(UMKEHRVIDEO SET) = (XPOS) (UMKEHRVIDEO CODE) (YEND) (XEND)
((RV SET) = (XPOS) (RV CODE) (YEND) (XEND)).

Die Elemente des Umkehrvideosets müssen in der obigen Reihenfolge ohne Zwischenelemente aufgereiht werden.

Zeilenliniensätze

Die Zeilenliniensätze innerhalb eines Zeilensegments müssen der folgenden Struktur folgen:

(ZEILENLINIENSET) = (XPOS) (ZEILENLINIENKODE) (YEND) (XEND)
((LR SET) = (XPOS) (LR CODE) (YEND) (XEND).

Die Elemente der Zeilenliniensätze müssen in der obigen Reihenfolge ohne eingreifende Elemente angeordnet werden. Tabelle 2 faßt die Syntax der Seitendanten-Struktur zusammen:

Seitendaten-Syntax

Tabelle 2

Eingabekode/Terminalelement

Tabelle 3 faßt die Eingabekode-Struktur für die Terminalelemente zusammen, die von der Eingabevorrichtung zum Ausgabedaten-Verarbeitungssytem gesandt wer 71528 00070 552 001000280000000200012000285917141700040 0002003044092 00004 71409den sollen, unter Bezugnahme auf die folgende Beschreibung der Terminalelemente.

(SEG#) = "SEG#"

Dies ist eine 13-Bit-Zahl (die LSBs des 16-Bit-Felds, die 3 MSBs sollen 0 sein), die für jedes Zeilensegment auf der Seite einmalig ist. Es ist die zur Identifizierung jedes Zeilensegments benutzte Zahl, und sie wird durch das Ausgabedatenverarbeitungssystem verwendet, wenn es ein bestimmtes Zeilensegment abrufen muß. Es muß der erste Kode jeder Zeile sein, und er darf nicht mehr als einmal pro Zeilensegment ausgegeben werden.

16-Bit Eingabe Code Format

Tabelle 3

(YLOW) = "YLOW"

Dies ist die Y-Koordinate auf der Seite in RRUs am unteren Rand des erweiterten Gevierts des Schriftzeichens im Zeilensegment. Es ist nicht notwendig, daß dieser Wert für Zeilensegmente mit Normalbuchstaben, d. h. für Schriftzeichen, die innerhalb des erweiterten Gevierts fallen, geliefert wird. Er muß jedoch für Logos geliefert werden, die sich tiefer als das erweiterte Geviert erstrecken.

Das Eingabesystem leitet den Wert von den Schriftzeichensatzdaten und der Punktgröße, in der das Logo gesetzt wird, her. Wird dieser Kode mehr als einmal ausgegeben, dann wird der höchste Wert (niedrigster Punkt auf der Seite) durch das Ausgabedatenverarbeitungssystem zurückgehalten. Maßstabserwiderung, Nullanordnung und Datenordnung sind identisch zu YPOS.

(FONT) = "FONT" d. h. (SCHRIFTZEICHENSATZ) = "SCHRIFTZEICHENSATZ"

Dieser Terminalkode definiert die Schriftzeichensatz-Nummer, die für alle folgenden Schriftzeichen benutzt wird, bis ein neuer Schriftzeichensatz eingegeben ist. Zur Eingabe von Schriftzeichen-Nummern zwischen 1 und einschließlich 254 stehen bis zu 10 Bits zur Verfügung. Die Schriftzeichensatz-Nummer LSB entspricht dem Wort LSB.

(CHAR) = "CHAR" d. h. (SCHRIFTZEICHEN) = "SCHRZ"

Dieser Terminalkode definiert die auszugebende Schriftzeichennummer und stellt einen halb-beendigenden Kode dar. Zur Eingabe von Schriftzeichennummern zwischen 0 und 255 einschließlich stehen bis zu 10 Bits zur Verfügung. Die Schriftzeichennummer LSB entspricht dem Wort LSB.

(PT SIZE) = "PT SIZE" d. h. (PUNKTGRÖSSE) = "PUNKTGRÖSSE"

Dieser Terminalkode definiert die für alle Schriftzeichen im Zeilensegment zu benutzende Punktgröße. Er kann innerhalb eines Zeilensegments nur einmal ausgegeben werden. Zur Eingabe aller Halbpunktgrößen zwischen 1/2 und einschließlich 130 stehen bis zu 10 Bits zur Verfügung. Das Wort LSB entspricht 1/2 Punkt und Bits 1 bis 8 definieren den Binärwert der Punktgröße direkt.

(SET WIDTH) = "SET WIDTH" d. h. Setzbreite

Dieser Terminalkode definiert die für alle folgenden Schriftzeichen zu verwendende Setzbreite, bis eine neue Breite eingegeben wird. Wird dieser Kode nicht eingegeben, dann hat die Setzbreite einen Fehlwert gleich der Punktgröße des zu setzenden Zeilensegments. Der oder die Setzbreitekommando(s) müssen auf die Punktgröße-Kommandos folgen.

(LR CODE) = "LR CODE"

Dieser Terminalkode definiert, daß die inmittelbar folgenden 2 Wörter das YEND und XEND in einem Zeilenliniensatz darstellen, in dem vorausgehende YPOS und XPOS die Anfangskoordinaten sind. Die 10 LSBs des Eingabekodes sind Null.

(SLANT) = "SLANT" d. h. (SCHRÄGSTELLUNG) = "SCHRÄGSTELLUNG"

Dieser Terminalkode definiert die Größe der verwendeten Schrägstellung für alle folgenden Schriftzeichen im Zeilensegment, bis eine neue Schrägstellung eingegeben wird. Um 5 mögliche Schrägstellungen zu definieren, sind bis zu 10 Bits verfügbar; der Wert Null entspricht SLANT OFF (SCHRÄGSTELLUNG AUS), Wert 1 SLANT +7 (SCHRÄGSTELLUNG +7), Wert 2 SLANT +14 (SCHRÄGSTELLUNG +14); Wert 3 SLANT -7 (SCHRÄGSTELLUNG -7) und Wert 4 SLANT -14 (SCHRÄGSTELLUNG -14).

(RV CODE) = "RV CODE" d. h. (UMKEHRVIDEO-CODE) = "UMKEHRVIDEOKODE"

Dieser Terminalkode definiert, daß die umittelbar folgenden 2 Wörter das YEND bzw. XEND in einem Umkehrvideoset darstellen, in dem vorausgehende YPOS und XPOS die Anfangskoordinaten sind. Die 10 LSBs des Eingabekodes sind Null.

(YEND) = "YEND"
(XEND) = "XEND"

Diese Terminalkode definieren die Schlußkoordinaten auf der Seite eines Umkehrvideosets in gleicher Skala wie YPOS und XPOS. Die zwei MSB werden auf Null gestellt. Hat die YEND-Eingabe einen Wert über dem laufenden YLOW, dann wird dieser Wert zur neuen Definition von YLOW verwendet.

"END SEG"

Dieser Terminalkode definiert das Ende eines Zeilensegments und setzt alle variablen Funktionen innerhalb dieses Segments auf einen Fehlwert. Die 10 LSBs sind alle Null.

"END PAGE" d. h. "SEITENENDE"

Dieser Terminalkode definiert das Ende einer Seite und setzt alle variablen Funktionen auf den Mangelwert. Alle 10 LSNs sind Null.

Diesem Kode muß ein Zeilensegment vorausgehen, das einen YLOW-Wert gleich der Satzhöhe enthält. Dies kann geschehen durch

  • (1) Definition eines YLOW gleich der Satzhöhe innerhalb des letzten Zeilensegments der Seite
  • (2) Definition eines zusätzlichen Zeilensegments mit dem Inhalt: (SEG#) (YPOS) "END SEG",wobei YPOS gleich der Satzhöhe.
SCHRIFTZEICHEN-DATEN Struktur der Schriftzeichensatz-Daten

Kodierte Daten, die die Konturen von Schriftzeichen in einem Schriftzeichensatz beschreiben, werden auf der Basis des gesamten Schriftzeichensatzes vom Eingabesystem zum Ausgabedatenverarbeitungssystem übertragen:

(FONT) = {(CHAR OUTLINE DATA)} "END FONT" d. h.
(SCHRIFTZEICHENSATZ) = {(SCHRZ KONT DATEN)} "SCHRIFTZEICHENSATZENDE"

Jeder Schriftzeichensatz besteht aus einem Satz von Schriftzeichenkonturen-Daten für jedes im Schriftzeichensatz enthaltenen Schriftzeichen. Im Schriftzeichensatz können bis zu 256 Schriftzeichen enthalten sein, vorausgesetzt daß die in einem Schriftzeichensatz enthaltene Gesamtmenge weniger ist als 15 328 Bytes durch zweimal die Gesamtzahl der Konturen im Schriftzeichensatz. Der Schriftzeichensatz-Ende-Kode ist ein Beendigungskode, und nach diesem Kode können keine auf diesen Schriftzeichensatz bezüglichen Daten mehr akzeptiert werden.

Die Konturendaten für jedes Schriftzeichen sind:

(CHAR OUTLINE DATA) = (CHAR) (#OUTLINES) {(OUTLINE)} d. h.
(SCHRZ KONTUR-DATEN) = (SCHRZ) (#KONTUREN) {(KONTUR)}

wobei das Konturen-Non-Terminal für jeden durch das #OUTLINES-Terminal definierte Kontur nur einmal verwendet wird.

Die Schriftzeichennummer ist identisch dem beschriebenen CHAR-Terminal und ist eine Zahl zwischen 0 und einschließlich 255. Die Zahl der Konturen pro Schriftzeichen ist auf 255 begrenzt.

Jede Kontur besteht aus Anfangskoordinaten, Vektoren und Steuerungen, wie sie zur Beschreibung eines Rands des Schriftzeichens erforderlich sind:

(OUTLINE) = (YN) (XN) {(VECTORS)/(CONTROLS)} d. h.
(KONTUR) = (YN) (XN) {(VEKTOREN)/(STEUERUNGEN)}

wobei die zulässigen Steuerungen sind:

(CONTROLS) = (END OUTLINE)/(CHANGE DIRECTION) (NO VECTORS)/(LONG VERTICAL)/(SHALLOW HORIZONTAL) d. h.

(STEUERUNGEN) = (KONTURENDE)/(RICHTUNGSÄNDERUNG) (KEINE VEKTOREN)/ (LANGE VERTIKALE)/(FLACHE HORIZONTALE)

Tabelle 4 faßt die Syntax der Struktur der Schriftzeichensatzdaten zusammen:

Syntax der Schriftzeichensatzdaten

Tabelle 4

Eingabekode/Terminalelemente

Fig. 13 faßt die Struktur der Eingabekodes für die Terminalelemente zusammen, die vom Eingabesystem für eine Übertragung der Schriftzeichensatzdaten vorgesehen sind.

(CHAR) = "CHAR" d. h. (SCHRZ) = "SCHRZ"

Dieser Terminalkode definiert die durch das Eingabesystem zugeteilte Schriftzeichennummer. Um Schriftzeichennummern zwischen 0 und 255 einschließlich zu beschreiben, sind bis zu 8 Bits verfügbar. Bit 15 entspricht dem MSB und Bit 8 ist das LSB.

(#OUTLINES) = "#OUTLINES" d. h.
(#KONTUREN) = "#KONTUREN"

Dieser Terminalkode definiert die Anzahl der Konturen in diesen Schriftzeichen und geht von der Schriftzeichensatz-Magnetscheibe aus. Um zwischen 1 und 255 Konturen zu beschreiben, stehen bis zu 8 Bits zur Verfügung.

"END FONT" d. h. "SCHRIFTZEICHENSATZ-ENDE"

Dieser Terminalkode ist der Beendigungskode für die Schriftzeichensatzübertragung. Alle 16 Bits im Wort sind Nullen

DATENRANDOMSPEICHER DATA RAM Allgemeines

Der Datenrandomspeicher Data RAM dient als Ausgabepuffer für das Datenverwaltungssystem DMS und als Eingabepuffer für das Konturenumsetzer-Untersystem OCS. Während die Zeilensegmentdaten in das DMS eingegeben werden, werden sie unformatiert und im Datenrandomspeicher Data RAM gespeichert. Innerhalb des Systems werden zwei solcher Data RAMs verwendet, wobei jeder 32 K Bytes lang ist. Beide Datenrandomspeicher Data RAM sind durch das DMS und das OCS mit folgenden Einschränkungen zugänglich:

  • (1) Ein Prozessor kann nur an einem Daten-Randomspeicher zu gleicher Zeit auswählen und arbeiten.
  • (2) Ein Prozessor kann keinen Datenrandomspeicher auswählen, der durch einen anderen Prozessor ausgewählt wurde.
  • (3) Entselektiert ein Prozessor einen Datenrandomspeicher (oder löst er die Steuerung), so sind die Daten innerhalb dieses Randomspeichers RAM für diesen Prozessor nicht mehr gültig.
Aufbau der Daten-Randomspeicher (Data-RAM)

Die Daten-Randomspeicher werden durch das Datenverwaltungs-Untersystem DMS entwickelt und zur Verarbeitung an das Konturenumsetzer-Subsystem OCS weitergeleitet. Zum Aufbau der Daten wird Doppelpufferung benutzt, und daher gibt es zwei solche Datenrandomspeicher. Dies erlaubt es, daß das Datenverwaltungs-Untersystem DMS den nächsten Puffer der Daten entwickelt, während das Konturenumsetzer-Untersystem OCS den anderen verarbeitet. Das Grundkonzept ist in Fig. 14 dargestellt. Bei der Entwicklung dieses Datenrandomspeichers versucht das Datenverwaltungs-Untersystem DMS möglichst viele Daten einzufüllen. Dadurch sollte es das Konturenumsetzer-Untersystem OCS mit ausreichende Daten zur Verarbeitung versehen, damit eine mögliche Verlangsamung der Photosatzeinheit (PIU) vermieden wird.

Der Pufferraum wird optimiert, indem er mit Konturendaten geteilt wird, die für andere Zeilensegmente in den Puffer eingegeben wurden. Um dies zu erreichen, entwickelt das Datenverwaltungs-Untersystem DMS den Datenrandomspeicher RAM von zwei Richtungen. Zeilensegmentdaten werden beim Einlesen und Umformatieren an das untere Ende des Speichers gesetzt und ähnliche Schriftzeichenkonturen-Daten an das obere Bereichsende. Wenn diese zwei Datensets sich gegenseitig beeinflussen, dann werden die Daten bis zum letzten Zeilensegment sichergestellt und der Ausgabe-Grenzwert ist definiert. Dieser Vorgang ist in Fig. 15 dargestellt.

Daten-Randomspeicher-Format (Data RAM Format)

Die Anordnung des Datenrandomspeichers ist in Fig. 16 dargestellt. Der Abschnitt zur Schriftzeichenkontur des Datenrandomspeichers Data RAM ist in Fig. 17 gezeigt. Zur Definition des Formats des Datenrandomspeichers Data RAM wird die Metasprache verwendet. Die Struktur von Seite, Zeilensegment-Speicher und Konturenspeicher sind in Tabellen 5, 6 bzw. 7 dargelegt.

Seitenstruktur

Das Konturenumsetzer-Untersystem OCS definiert eine Seite als einen oder mehrere Daten-Randomspeicher (Data RAMs):

[PAGE] = [INITIAL DATA RAM] {[DATA RAM]} d. h
[SEITE] = [ANFANGS DATA RAM] {[DATA RAM]}

Alle Seiten müssen mit einem Anfangs-Daten-Randomspeicher (Data-RAM) beginnen, dessen Format:

[INITIAL DATA RAM = [YLMT] [NEW PAGE] [PAGE SECTION] d. h.
[ANFANGS DATA RAM] = [YLMT] [NEUE SEITE] [SEITENABSCHNITT]

Alle folgenden Daten-Randomspeicher Data RAM für dieselbe Seite haben das Format

[DATA RAM] = [YMLT] [PAGE SECTION d. h.
[DATA RAM] = [YLMT] [SEITENABSCHNITT]

Der Unterschied zwischen den beiden ist das neue Seitenelement, das selbst ein Terminalelement ist:

[NEW PAGE] = "new page" d. h.
[NEUE SEITE] = "neue Seite"

Alle Daten-Randomspeicher Data RAM müssen als ihren ersten Kode den Ausgabegrenzwert

<YLMT] = "Y limit"

haben.

Der Datenspeicher kann in zwei getrennte Speicher, den Zeilensegmentspeicher und den Schriftzeichenkontur-Speicher, aufgeteilt werden:

[PAGE SECTION] = [LINE SEG FILE] [OUTLINE FILE] d. h.
[Seitenabschnitt] = [Zeilen-Segmentspeicher] [Konturenspeicher]

Zeilensegmentspeicher

Der Zeilensegmentspeicher besteht aus allen eingegebenen und durch das Datenverwaltungs-Untersystem reformatierten Zeilensegmenten. Er hat die folgende Form:

[LINE SEG FILE] = {[[LINE SEG]} [END RAM] d. h.
[ZEILENSEGMENTSPEICHER] = {[ZEILENSEGM]} [END RAM]

In diesem Speicher können soviele Zeilensegmente untergebracht werden wie Platz vorhanden ist. Dem letzen "Zeilensegment" muß das End-RAM-Kode folgen:

[END RAM] = [END DATA]/[END PAGE] d. h.
END RAM = DATENENDE/SEITENENDE

Existieren für die Seite mehr Daten, dann wird das Datenende-Element verwendet. Ist dies der letzte Randomspeicher RAM für die Seite, dann wird das Seitenende-Element verwendet.

Das Zeilensegment kann wie folgt definiert werden:

[LINE SEG] = [START SEG] {[CHAR SET]/[RV SET]} d. h.
[ZEILENSEGM] = [ANFANGSSEGM] {[SCHRZSET]/[UMKEHRVIDEO-SET]}

Die Struktur ist dem Eingabeformat sehr ähnlich, die Kodestruktur variiert jedoch.

Die Zeilensegmente müssen mit einem Anfangssegment beginnen. Dieses wird definiert als

[START SET] = [Y SET]/[SEG LINK PAIR]/[YACC PAIR]

YSET kann definiert werden als

[YSET] = [YPOS] [ZERO DATA WORD] d. h.
[YSET] = [YPOS] [NULLDATENWORT]

und wird durch das Datenverwaltungs-Untersystem DMS stets zu Beginn jedes Zeilensegments eingeführt. Dieses definiert die Y-Koordinate der Seite, auf der das Zeilensegment zu verarbeiten ist. Das NULLDATENWORT (ZERO DATA WORD) dient als Zwei-Byte-Kissen, wenn das Zeilensegment aktiv (d. h. die Verarbeitung der Konturen beginnt) oder gestrichen wird.

Beginnt die Verarbeitung eines Zeilensegments, dann wird YSET durch YACC PAIR ersetzt, wobei

[YACC PAIR] = [YACC HIGH] [YACC LOW]

Das YACC PAIR ist das nächste Setzniveau in DRUs für das Zeilensegment. Nachdem das Konturenumsetzer-Untersystem OCS ein Zeilensegment vollständig verarbeitet hat, ersetzt es es durch ein Kettungspaar (link pair).

[SEG LINK PAIR] = [LINK HIGH] [LINK LOW]

Dieses Kettungspaar besteht aus zwei Elementen, die kombiniert eine absolute Adresse des nächsten Zeilensegments ergeben.

Schriftzeichensatz

Die Schriftzeichensätze innerhalb eines Zeilensegments müssen folgender Struktur entsprechen:

[CHAR SET] = [INITIAL CHAR] {[CHAR PAIR]} d. h.
[SCHRZ'SET] = [ANFANGS SCHRZ] {[ANFANGSPAAR]}

mit einem Anfangsschriftzeichen, dem ein oder mehrere Schriftzeichenpaare folgen. Das Anfangsschriftzeichen muß folgende Struktur haben:

[INITIAL CHAR] = [ΔYS PAIR] [SCALE PAIR] [XPOS] [CHAR PAIR]

Das ΔYS-Paar definiert die Veränderung in DRUs pro Rasterauflösungseinheit. Es hängt von der Punktgröße ab.

[ΔYS PAIR] = [ΔYS HIGH] [ΔYS LOW]

Das Skalenpaar definiert die Anzahl der Rasterauflösungseinheiten für jede DRU. Es hängt von der Satzbreite ab.

[SCALE PAIR] = [SCALE HIGH] [SCALE LOW]

Ein Schriftzeichenpaar ist wie folgt definiert:

[CHAR PAIR] = {[FUNCTION]} [OUTLINE ADD]

wobei die zulässigen Funktionen sind:

[FUNCTION] = [XPOS]/[SCALE PAIR]/[SLANT OFF]/[SLANT +7]/
[SQANT -7]/[SLANT +14]/[SLANT -14]/[BLJ]/[NULL]

Alle vor der Konturenadresse erhaltenen Funktionen werden übertragen und bleiben gültig, bis sie durch einen neuen Funktionskode oder ein neues Zeilensegment geändert werden.

Umkehrvideoset

Das Umkehrvideo hat folgende Struktur

[RV SET] = [XPOS] [RVY PAIR] [RVX PAIR]

und

[RVY PAIR] = [RVY HIGH] [RVY LOW]
[RVX PAIR] = [RVX HIGH] [RVX LOW]

Konturenspeicher

Der Konturenspeicher hat folgende Grundstruktur:

[OUTLINE FILE] = {[CURVE UPDATE FILE]/[CHAR OUTLINE]} d. h.
[Konturenspeicher] = {[Kurvenänderungsspeicher]/[Schrzkontur]}

Der Schriftzeichenkonturenspeicher stellt die Daten des Schriftzeichensatz-Randomspeichers RAM für das spezielle, durch das Datenverwaltungs-Untersystem DMS in folgendes Format formatierte Schriftzeichen dar:

[CHAR OUTLINE] = [CURVE UPDATE FILE] [SLOPE FILE] d. h.
[Schrzkontur] = [Kurvenänderungsspeicher] [Schräge-Speicher]

Der Kurvenänderungsspeicher ist der Anfang für jede Kurve im Schriftzeichen

[CURVE UPDATE FILE] = {[OUTLINE STARTS]}
[OUTLINE STARTS] = [YN] [XN] [SLOPE ADD] d. h.
[Kurvenänderungsspeicher] = {[Konturanfang]
[Konturanfang] = [YN] [XN] [Schräge-Zunahme]

Die Vorzeichen in XN-Wort im Konturenspeicher wurden durch das Datenverwaltungs-Untersystem DMS für spiegelbildliche Ablesung komplettiert.

Während das Konturenumsetzer-Untersystem OCS die Konturen verarbeitet, werden die OUTLINE STARTS-Daten so verändert, daß sie den augenblicklichen Verarbeitungspunkt innerhalb jeder Kontur darstellen.

Der Schräge-Speicher (slope file) ist

[SLOPE FILE] = {[VECTORS]/[CONTROLS]}

Seiten-Struktur

Tabelle 5

Struktur des Zeilensegment-Speichers

Tabelle 6

Struktur des Konturenspeichers

Tabelle 7

Terminalelemente

Tabelle 8 faßt alle kodierten Eintragungen in den Eintragungen des Daten-Randomspeichers zusammen. Die unkodierten Elemente, YLMT, YSACC und Konturenelemente innerhalb eines Daten-Randomspeichers Data RAM sind in der Tabelle nicht aufgeführt: es handelt sich um 16-Bit-Binärwerte, deren Position den Kodetyp definieren. Die oben definierte Syntax ist einzuhalten.

([OUTLINE ADDRESS = "outline address") d. h. Kontur-Adresse

Dies ist eine 14-Bit-Zahl, die die Adresse im Konturenspeicher der zu verarbeitenden Schriftzeichenkontur bestimmt. Die Adresse weist immer auf die erste Kurve der Kontur im Änderungsspeicher (update file). Es ist eine Wortadresse und muß daher verdoppelt werden, um die Byte-Adresse in den 32K-Randomspeicher RAM zu bekommen. (Da alle Daten im Daten-Randomspeicher 16-Bit-Kode sind, fangen die Kode immer bei einer geraden Byte-Adresse an).

[YPOS] = "YPOS"

Das ist der gleiche Kode, wie sie in das Datenverwaltungs-Untersystem DMS eingetragen wurde.

Im Konturenumsetzer-Untersystem OCS zeigt er eine zusätzliche Funktion. Er bezeichnet nicht nur den Anfang eines neuen Zeilensegments, er beendet auch das vorausgehende Zeilensegment.

[ZERO DATA WORD] = "ZERO DATA WORD" d. h.
[NULLDATENWORT] = "NULLDATENWORT"

Dieses unkodierte 16-Bit-Feld folgt immer auf YPOS. Es dient als Kissen, wenn ein Zeilensegment aktiv wird.

[YACC HIGH] = "YACC HIGH"

Dieser Kode definiert die wichtigsten 8 Bits des Satzniveaus in DRUs. Er enthält die 8 wichtigsten ganzzahligen Bits des Wertes.

[YACC LOW] = "YACC LOW"

Dies ist ein 16-Bit-Feld, das stets auf YACC HIGH folgt. Es enthält die verbleibenden 2 ganzzahligen Bits und die 11 Dezimalbits des Satzniveaus; die 3 niedrigwertigen Bits sind immer 0.

[XPOS] = "XPOS"

Dies ist der gleiche Kode, wie er in das Datenverwaltungs-Untersystem DMS eingetragen wurde, mit der Ausnahme des Falls, daß der Schalter für spiegelbildliche Ablesung gesetzt wird, wenn das Komlement der Seitenbreite von XPOS (PG WDTH-XPOS) eingetragen wird.

[NULL] = "NULL"

Der Nullkode wird verwendet, um Elemente innerhalb eines Zeilensegments zu streichen. Das Datenverwaltungs-Untersystem DMS führt diesen Kode ein, um Schriftzeichensatz-Anfragen innerhalb eines Segments zu streichen, wenn sie bearbeitet werden. Das Konturenumsetzer-Untersystem OCS führt diesen Kode ein, um "Konturenadresse" zu entfernen, wenn sie vervollständigt ist.

Tabelle 8

[ΔYs HIGH] = "ΔYs HIGH"

Es enthält die wichtigsten 8 Bits der Rechnung 43.2/PUNKTGRÖSSE. Es besteht aus einer 5-Bit-Ganzzahl und einer 3-Bit-Dezimalzahl.

[ΔYs LOW] = "ΔYs LOW"

Es enthält den verbleibenden 8-Bit-Dezimalwert der Rechnung 43.2/PUNKTGRÖSSE. Dieser Kode folgt immer auf ein Ys HIGH.

[SCALE HIGH] = "scale high"

Es enthält die wichtigsten 8 Bits der Rechnung Setzbreite/43,2. Es besteht aus einer 4-Bit-Ganzzahl und einer 4-Bit-Dezimalzahl

[SCALE LOW] = "scale low"

Es enthält den verbleibenden 8-Bit-Dezimalwert der Rechnung Setzbreite/43,2. Dieser Kode folgt stets auf ein "scale high"

[BLJ] = "BLJ"

Dieser Kode definiert die Schriftlinienadaption in 154steln. Hinsichtlich Format siehe 4.2.2.9.

[LINK HIGH] = "link high"

Dieser Kode liefert die wichtigsten 8 Bits einer Bindeadresse, die verwendet wird, um Zeilensegmente zu überspringen, die bereits komplettiert sind.

[LINK LOW] = "link low"

Dieser Kode liefert die unwichtigsten 8 Bits einer Bindeadresse, die verwendet wird, um Zeilensegmente zu überspringen. Dieser Kode folgt immer auf den "link high"-Kode.

[RVY HIGH] = "RVY high"
[RVY LOW] = "RVY low"
[RVX HIGH] = "RVX high"
[RVX LOW] = "RVX low"

Diese Kode müssen in der obigen Reihenfolge auftreten, Die niederwertigen 8 Bits definierten die Umkehrvideogrenzen.

[NEW PAGE] = "New Page" d. h. Neue Seite

Diese Steuerung definiert einen Daten-Randomspeicher Data RAM als ersten einer neuen Seite. Sie muß vor dem ersten Zeilensegment einer Seite ausgegeben werden.

Bit 0 ist eine 0 für normalen Standardbetriebmodus und ist eine 1 für einen Prüfseitenmodus. Bit 1 ist eine 0 für normale Auflösungseinheiten (1/10 Punkt pro Raster) und ist eine 1 für Einheiten hoher Auflösung (1/20 Punkt pro Raster). Der anderen 6 LSBs haben keine Bedeutung.

[SLANT OFF] = "slant off" Neigung
[SLANT +7] = "slant +7"
[SLANT -7] = "slant -7"
[SLANT +14] = "slant +14"
[SLANT -14] = "slant -14"

Diese Kode definieren, welche Neigungskonstante für die folgende Konturrechnung verwendet wird. Die LSBs haben keine Bedeutung.

[END DATA] = "end data" d. h. Datenende

Dieser Kode folgt auf das letzte Zeilensegment innerhalb des Daten-Randomspeicher Data RAM. Er informiert das Konturenumsetzer-Untersystem OCS, daß weitere Daten für diese Seite im nächsten Datenrandomspeicher Data-RAM folgen. Die LSBs haben keine Bedeutung.

[END PAGE] = "End page" d. h. Seitenende

Dieser Kode folgt auf das letzte Zeilensegment innerhalb des Datenrandomsperichers. Es informiert das Konturenumsetzer-Untersystem OCS, daß keine weiteren Datenrandomspeicher Data RAMs für die Seite folgen. Die LSBs haben keine Bedeutung.

[YLMT] = "Y limit" Y-Grenzwert

Dieser Terminal ist der erste Kode im Datenrandomspeicher. Es handelt sich um eine 14-Bit-Zahl, die den letzten Raster in DRUs definiert, der durch das Konturenumsetzer-Untersystem OCS mit den Daten im Datenrandomspeicher Data-RAM ausgegeben wird.

"Font Call" d. h. Schriftzeichensatzabruf

Dieser Kode wird durch den Z80A erzeugt, um Schriftzeichensatzabruf-Prozesse zu vereinfachen. Es handelt sich um einen vorübergehenden Kode, der vor der Freigabe des Datenspeichers mit willkürlichem Zugriff DATA RAM an das Konturenumsetzer-Untersystem OCS zur Verarbeitung der Ausgabe durch einen Null-Kode ersetzt wird.

Die vorliegende Erfindung wird nun unter Bezugnahme auf die Fig. 17-21 beschrieben, in denen ein Verfahren und ein System zur Neuordnung der Eingabeordnung oder jeder anderen Ordnung der Schriftzeichendaten in der gleichen relativen Ordnung wie die erzeugten Rasterlinien gezeigt ist. Die dargestellte Ordnung der Rasterlinien ist in ansteigender Ordnung. Ansteigende Ordnung ist absprachegemäß eine Ordnung, in der der ersten Rasterlinie ein Wert 1 zugeteilt wird und wobei den nachfolgend erzeugten Rasterlinien fortschreitend höhere Werte zugeteilt werden.

Dies ist jedoch nur eine Absprache zur Erklärung der vorliegenden Erfindung; diese Absprache kann ohne weiteres geändert werden, wobei jedoch die Grundidee der Erfindung erhalten bleibt.

Das Beispiel eines Mustertextes ist in Fig. 17 gezeigt.

Sollen die diesem Beispiel entsprechenden Schriftzeichendaten in das Eingabesystem 1 in der Ordnung, in der sie erzeugt wurden, eingegeben werden und nimmt man an, daß alle Daten in einen Sektor einer Scheibe eingespeist werden können, dann können die Daten in Blocks wie in Fig. 18 gezeigt, angeordnet werden, wobei man mit Block 51 am Anfang des Sektors 50 beginnt. Der Block 51 enthält die Information für "Great Savings". Der Composer würde die Information typischerweise auf der Seite von oben nach unten einspeisen, wobei mit den links äußeren Schriftzeichen begonnen wird und auf die Schriftzeichen auf der rechten Seite zu fortgefahren wird. Der Setzer wandert dann die Seite hinunter und fügt die Information hinzu, die im Wert nächsthöher in der ansteigenden Ordnung und am nächsten zur linken Seite des Blattes ist. Dies gilt für die Linienregel 52, dann "a" des Wortes "at", dargestellt durch den Block 53. Der Computer gibt dann das "t" des Wortes "at" ein; es wird durch den Block 54 dargestellt.

Nach der üblichen Ordnung des Zusammenstellens, würde der Composer dann die Information mit dem nächsthöheren Wert in der ansteigenden Ordnung der Rasterlinien und am weitesten auf der linken Seite einspeisen. Das wäre die "5" in "5 lbs", dargestellt durch Block 55, gefolgt von den Buchstaben "lbs", ebenfalls in Block 55.

Der Composer fügt dann die Informationen mit dem nächsthöheren Wert ansteigender Ordnung und am nächsten der Seite zu, das wäre die "5" des Blocks 56, gefolgt von dem Wort "cans" des Blocks 57 und dem Wort "tuna" des Blocks 58.

In Fig. 17 sind zur besseren Darstellung die Umrisse des Gevierts für die Schriftzeichen in jedem Block dargestellt, so daß Änderungen der Schriftzeichengröße leicht erkannt werden können, die Liniensegmente haben die gleichen Bezugsziffern, wie die ihnen entsprechenden Datenblocks in Fig. 18.

Wie aus Fig. 17 ersichtlich, kann "Great Savings" zwischen den Rasterlinien 1000 und 1100 auftreten. Wenn die Rasterlinien gleich einem Zehntel eines Punktes sind, ist "Great Savings" in 10-Punkt.

Der Setzer setzte nach "Great Savings" eine Linienregelfunktion mit einer Breite von 1 Punkt zwischen den Rasterlinien 1500 bis 1510.

Als nächstes fügte der Setzer das Wort "at" hinzu, wobei die Schriftzeichen von gleicher Größe sind wie durch das Geviert dargestellt, jedoch mit einem Grundliniensprung zwischen "a" und dem "t". Die Grundlinie für das "a" ist 1630, die Grundlinie für das "t" ist 1620. Daraufhin setzte der Composer das Wort "5 lbs" zwischen Rasterlinien 2200 und 27 000, die 50 Punkt darstellen. Die Druckseite endet mit den Wörtern "5 cans tuna" wobei die "5" ein Schriftzeichen mit 60 Punkt darstellt, gefolgt von "cans" zwischen den Rasterlinien 3300 und 3700 in 40 Punkt, wiederum gefolgt von "Tuna" zwischen den Rasterlinien 2900 und 3700 in 80-Punkt-Schriftzeichen.

Die Daten innerhalb jedes Blocks 51 bis 57 sind im Sektor 50 auf der Magnetscheibe (Floppy Disc) von Fig. 18 angeordnet; jeder Block enthält eine Serie von 8-Bit-Bytes, die Identität, Größe und Ort der Schriftzeichen bezeichnen. Die Blockdaten können einen Sektor überlaufen und zwei Sektoren umklammern.

Wie in Fig. 19 beginnend mit Block 51 dargestellt, bezeichnet ein 8-Bit-Byte ein Kommandokennzeichen, gefolgt von einem 8-Bit-Byte für eine führende oder eine Grundlinieninstruktion, wiederum gefolgt durch die Punktstellung der Grundlinie für "Great Savings", wobei die Grundlinie auf der Rasterlinie 1100 liegt. Da ein Zehntel einer Rasterlinie gleich einem Punkt ist, liegt die Grundlinie 110 Punkte vom oberen Rand der Seite.

Zur Vervollständigung der Instruktionen für Block 51 verarbeitet ein Kommandobyte eine Schriftzeichensatzinstruktion, gefolgt durch eine Schriftzeichensatzbezeichnung, auf die wiederum eine Instruktion zur Größe und dann wiedrum eine zur Schriftzeichengröße folgt.

Wie in Fig. 17 dargestellt, wird die Stellung eines jeden Schriftzeichens auf eine Rasterlinie bezogen, die den oberen Rand 16 des Schriftzeichen-Gevierts schneidet und durch die obere linke Ecke des Gevierts verläuft (siehe Fig. 2).

Der Block 51 wird durch Daten für jedes der Schriftzeichen "G" bis "5" vervollständigt.

Als nächstes in der Eingabefolge kommt die Linienregel in Block 52. Sie enthält ein Kommandokennzeichenbyte, dem eine Linienregelinstruktion und dieser wiederum Bytes zur Bezeichnung des Anfangspunktes und der Höhe und der Breite der Linienregel folgt.

Als nächstes in der Eingabefolge enthält der Block 53 die Daten für das "a"; er beginnt mit einem Kommandokennzeichen, dem ein Führungskommando für eine neue Grundlinie und diesem wiederum der Ort der neuen Grundlinie in Punktgröße folgt, wobei die neue Grundlinie bei der Rasterlinie 1630 und 163 Punkte vom oberen Rand der Seite auftritt.

Der Block 53 enthält weiterhin die Daten, die der Schriftzeichensatz-Nummer und der Größe des Schriftzeichens entsprechen. Nachdem dieser Datenblock vervollständigt ist, wird ein neues Kommandokennzeichen eingespeist, dem eine Schriftzeichensatz- und Größe-Instruktion und dieser wiederum eine Reihe von Bytes, die Schriftzeichen andeuten, folgen. In diesem Fall liegt das entsprechende Geviert zwischen der Rasterlinie 1610 und 1630, Größe 2 Punkte.

Da das t in "at" auf einer unterschiedlichen Grundlinie angeordnet ist, der Rasterlinie 1620 entspricht, gibt der Composer ein neues Kommando aus, das diese Grundlinie ändert; dies geschieht innerhalb des Blocks 54, indem zunächst ein Kommandokennzeichen eingespeist wird, dem eine führende Instruktion folgt, und dann die Stellung der neuen Grundlinie, 162 Punkte vom oberen Rand der Seite, angezeigt wird.

Die nächste eingespeiste Information wäre in Block 55, der den "5 lbs" den vorausgegangenen Fällen, gefolgt von einer führenden Instruktion, der ein Kommandokennzeichen und diesem wiederum eine Schriftzeichensatz- und eine Größe-Instruktion folgt. In diesem Fall sind die Schriftzeichen in Block 55 auf einer Grundlinie von 2700, 270 Punkte von dem oberen Rand der Seite angeordnet, die Punktgröße beträgt 50.

Der Datenblock 56, der die "5" von "5 cans tuna" darstellt, beginnt mit einem Kommandozeichen, dann folgt die entsprechende Schriftzeichensatz- und Größe-Instruktion, der die Schriftzeichendaten folgen.

Der Block 57 für "cans" wiederum beginnt mit einer Kommandoinstruktion, der ein Kommandokennzeichen folgt, dem wiederum Instruktionen für Schriftzeichensatznummer und Schriftzeichengröße folgen, gefolgt von den Schriftzeichendaten. Eine führende Instruktion ist nicht erforderlich, da zwischen "5" und "cans" keine Grundlinienänderung eintritt.

Das Wort "Tuna" stellt, obwohl auf derselben Grundlinie, eine Änderung der Punktgröße dar. Der Block 58 für "Tuna" muß ein Kommandokennzeichen aufweisen, dem die Instruktionen für Schriftzeichen-Bezeichnung und Schriftzeichengröße und die Schriftzeichendaten folgen.

Für "Tuna" beträgt die Größe 80 Punkt.

Wie bereits beschrieben, werden Größe-, Orts- und Schriftzeichensetzdaten auf einer Scheibe angeordnet, wie durch Block 51 bis 57 angedeutet, und der Text wird in den Datenspeicher mit willkürlichem Zugriff DATA RAM des Ausgabedatensystems (ODS) eingespeist.

Wenn jedoch, wie unter Bezugnahme auf Fig. 17 beschrieben, diese Daten [in einer vorbestimmten Folge] vom Datenspeicher mit willkürlichem Zugriff [ ] abgegriffen werden, beispielsweise der Dateneingabefolge, wie sie durch den Composer dem System vorgegeben wurde, dann wird Datenblock 51 bei Erscheinen einer Rasterlinie abgegriffen, auf der die durch diese Daten dargestellten Schriftzeichen abgebildet werden sollen. Diese wäre das Auftreten der Rasterlinie 1000, die den oberen Rand und die obere linke Ecke des Gevierts für das erste Schriftzeichen "G" des Liniensegments 51 schneidet. Da die gleiche Geviert-Größe dargestellt ist, wird die Folge der Schnittdaten für alle Schriftzeichen in "Great Savings" von Rasterlinie 1000 bis 1100 gleichzeitig mit den Rasterlinien, wie erzeugt und in ansteigender Ordnung, ausgegeben.

Das nächste Schriftzeichen ist die Linienregel zwischen den Rasterlinien 1500 und 1510, die, wie weiter unten erklärt werden wird, ein anderes Identifizierungsschema aufweist. Der Block 52 wird bei Auftreten der Rasterlinien 1500 abgegriffen.

Nach der Schriftzeichendaten-Eingabefolge beginnt bei Auftreten des Rasters 1610 das Ausgabedatensystem mit der Identifizierung der Schnitte der Rasterliniengrenzen mit dem Schriftzeichen "a" des Liniensegments 53 und für die Schnitte der Rasterlinie 1610 und der folgenden Rasterlinien mit Schriftzeichen "t". Die Schnitte für das Schriftzeichen "t" werden jedoch beginnend mit Rasterlinie 1610 nur identifiziert, wenn angenommen wird, daß der Liniensegmentblock 53 entsprechend der Eingabeordnung des Composers abgegriffen wird. Zugriff erfolgt dann nach dem Zugriff zu Block 52. An diesem Punkt, wenn das Ausgabedatensystem und des Anzeigesystem bei Rasterlinie 1610 und nach diesen Rasterlinien 1600 bis 1610 angekommen ist, ist bei Schneiden des oberen Teils des "t" der obere Teil des "t" verloren, wenn der Rasterliniengenerator die Richtung nicht umkehrt.

Werden die Schriftzeichendaten in den Datenspeicher mit willkürlichem Zugriff DATA RAM von Fig. 16 in der Eingabefolge eingespeist und werden diese Daten verwendet, Schnittpunkte in der gleichen Ordnung zu errechnen, dann wären die Daten für das "t" nicht verfügbar bevor das ODS mit dem Zugriff der Daten für das "a" begonnen hat, wodurch verursacht wird, daß ein oberer Teil des "t", Linien 1600 bis 1610, bei der Abbildung der Schriftzeichen ausgelassen wird.

Die nächste Informationsfolge ist Block 55 für die "5 cans Tuna".

Wie man bei den Schriftzeichen unterschiedlicher Größe von Block 56, 57 und 58 sieht, würde ein Ergebnis ähnlich dem "at" folgen.

In diesem Fall, wo die Daten aus dem in Block 56 und 57 gespeicherten Eingabesystem in den Datenspeicher mit willkürlichem Zugriff DATA RAM eingespeist und dann in der gleichen Ordnung aus dem RAM abgegriffen werden, würden zunächst die Daten für "5" bei Auftreten der Rasterlinie 3100, die dem oberen Teil des Gevierts für die "5" entsprechen, abgegriffen.

Als nächstes in der Folge würde der Datenblock 56 für das Wort "cans" abgegriffen, das eine kleinere Schriftzeichengröße hätte und bei Rasterlinie 3350 abgegriffen würde, so daß keine Teile von "cans" verloren würden.

Die Schriftzeichen für das Wort "Tuna" jedoch sind größerer Punktgröße und würden nicht abgegriffen werden bevor die Rasterlinienprogression 3300 erreicht hat, da der Block 57 entsprechend der Eingabefolge vor Block 58 steht.

In diesem Fall, wo die Folge der Rasterlinien 3300 erreicht, was dem oberen Teil des Gevierts des Liniensegments "cans" entspricht, wäre der Teil des Schriftzeichens des Wortes "tuna", der über dem Raster 3350, zwischen Rasterlinie 2700 und 3350 auftritt, verloren.

Die vorliegende Vorrichtung vermeidet ein solches Ergebnis, indem die Information in der Ordnung ansteigender Rasterlinien neu angeordnet wird und indem gemeinsame Daten in Segmenten identifiziert und ein geeigneter Parameter verwendet wird, der einen solchen Informationsverlust vermeidet.

Für die neue Anordnung werden aufeinanderfolgende Schriftzeichen mit gemeinsamen Parametern als Liniensegmente und durch eine Bezugsrasterlinie, die den oberen Teil eines jeden Liniensegments des ersten Schriftzeichengevierts schneidet, identifiziert.

In dem Segmentierungsschema werden alle durch den Setzer in den Eingabespeicher eingespeisten Schriftzeichendaten nach Änderungen in jenen gemeinsamen Parametern abgetastet, die einen Verlust an Information, wie oben erklärt, hervorrufen können. Solche Änderungen sind eine Änderung der Schriftzeichengröße, der Grundlinie und größere oder kleinere Eigenbrüche, Auftreten einer Linienregelfunktion, einer Umkehrvideofunktion oder ein Speichersektorüberlauf.

Bei der Abtastung der Eingabedaten, wie ursprünglich in das System eingespeist, und des Speichers 1 von Fig. 1, werden die Segmente bei Auftreten eines ersten Schriftzeichens, einer Änderung der Grundlinie, der Umkehrvideofunktion und eines Sektorüberlaufens identifiziert.

Das in dem Flußdiagramm von Fig. 20 und in Fig. 21 gezeigte Segmentierungsschema beginnt mit den eingespeisten Textschriftzeichendaten des ersten Speichers und rearrangiert sie vor der Weitergabe an das ODS in geeigneter Form.

Die Daten müssen neu geordnet werden, damit die Information in die Datenspeicher mit willkürlichem Zugriff (DATA RAMs) des Ausgabedatensystems ODS in der Ordnung eingespeist werden können, in der sie zur Errechnung der Schnittpunkte abgegriffen werden sollen und werden in der gleichen Ordnung wie die ansteigende Ordnung der Rasterlinien angeordnet.

Dies geschieht durch Identifizierung der Daten in Liniensegmenten und Neuanordnung aller Liniensegmente durch die Bezugsrasterlinie für jedes Liniensegment. Auf diese Art werden unabhängig davon, wo jedes Liniensegment relative zu einem anderen Segment nach der Komplettierung des Textes auftritt, alle Segmente in der Ordnung der ansteigenden Rasterlinien neu geordnet. Der Einfachheit halber wird die Richtung der aufeinanderfolgend fortschreitenden Rasterlinien als die Y-Richtung und die Richtung, in der jede einzelne Rasterlinie erzeugt wird, als die X-Richtung gewählt.

Die Liniensegmente enthalten aufeinanderfolgende Schriftzeichen, die auf derselben Grundlinie angeordnet sind oder dieselbe Schriftzeichengröße haben, oder aufeinanderfolgende Schriftzeichen, die durch eine Linienregelfunktion oder ein Sektorüberlaufen oder eine Umkehrvideofunktion nicht unterbrochen werden.

Die Linienregel- und die Umkehrvideofunktion sind nicht auf ein Geviert bezogen, daher muß eine Anzeigeanordnung, die auf eine Rasterlinie bezogen wird, für diese Funktionen und für die Liniensegmentdaten in der Anfangsdatei vorgesehen werden.

Bei einem Sektorüberlaufen umfassen die Schriftzeichendaten für ein Liniensegment zwei Sektoren auf einer Plattendatei. Das Segment muß dann unterbrochen werden und eine neue Segmentanfangsinformation für die folgenden Segmentdaten auf dem nächstfolgenden Sektor vorgesehen werden, um die Notwendigkeit zu vermeiden, die Information zu verketten.

Die Neuordnungsfunktion beinhaltet die Durchführung von drei Schritten. Der erste Schritt ist die Segmentierung und erfordert ein Abtasten des zusammengesetzten Textes im ersten Eingabespeicher 101 (Fig. 21) und den Aufbau einer Datei, die die Anfangsadresse und die Datenverhältnisse aller Liniensegmente identifiziert. Diese Datei ist in der Anfangsdatei 103 gespeichert. Die zweite Aufgabe besteht in der Anordnung der Folge der Anfangsdatei in die beschriebene ansteigende Ordnung. Das dritte Problem ist der Prozeß der Übertragung des Textes in der neu arrangierten Ordnung an die Datenspeicher mit willkürlichem Zugriff DATA RAM des Ausgebedatensystems ODS.

Im tatsächlichen Einsatz können die drei Schritte in zwei Prozesse aufgeteilt werden. Der erste Schritt ist unter der Kontrolle eines Hintergrundniveaus, Schritte 2 und 3 werden getrennt durchgeführt und durch Schritt 1 aktiviert.

Da der Gegenstand der Neuordnungsfunktion die Anordnung der Segmente nach dem ansteigenden Y-Wert ist, sollte die Anfangsdatei 103 alle Maschinenparameter für das Segment enthalten.

Die Anfangsdatei enthält die Y-Koordinate und die X-Koordinate der oberen linken Ecke des Gevierts des ersten Schriftzeichens im Segment, die Punktgröße, den Schriftzeichensatz, die Setzbreite, die Neigung und die Blitzdaten.

Die Blitzdaten werden zur Feststellung der Raumverteilung für ein später hinzukommendes Schriftzeichen verwendet.

Unter Bezugnahme auf Fig. 21 stellt man fest, daß zur effizienten Ausnutzung des Datenraums der Datenspeicher die eingespeisten Schriftzeichendaten in der physikalischen Konfiguration, die die größte Raumausnutzung bietet, willkürlich speichern kann; der Speicher enthält also eine Reihe von Adressen zur Lokalisierung der willkürlich im Speicher angeordneten Daten, und die bezogene Datenfolge wäre die durch die Reihe der Adressen gegebene Folge der zugegriffenen Daten.

Die Schriftzeichendaten werden zunächst auf einem Speichermedium, wie einer Platte 101, in der Eingabe- oder einer geeigneten anderen Datenfolge gespeichert. Eine Anfangsdatei 103 wird dann durch Identifizierung von Reihen von aufeinanderfolgenden Schriftzeichen in der Datei 101 durch Spur, Sektor- und Byte-Anordnung und durch gewählte Anfangsdaten einschließlich der Segmentanzeigeanordnungs-Daten aufgebaut. Die Anfangsdatei kann dann auf dem gleichen ersten Speichermedium angeordnet werden. Eine Direktzugriffstabelle (Random Access Table (RAST)) 105 speichert die Anfangsdateiadresse in dem ersten Speicher. Eine Segmentfolgetabelle 107 wird dann verwendet, die adressierte Ordnung der Datei 105 in der ansteigenden Ordnung der Rasterlinien neu zu ordnen. Die Direktzugriffstabelle RAST 105 wird dann in der Ordnung der Segmentfolgetabelle 107 abgegriffen. Die Adressen in der Direktzugriffstabelle RAST werden zum Abgriff der Daten der Anfangsdatei 105 verwendet.

Die Daten der Anfangsdatei werden zum Zugriff und zur Einspeisung des Schriftzeichens in den Datenspeicher mit willkürlichem Zugriff DATA RAM des Ausgabedatensystems ODS im Filterprogramm nach Fig. 20 verwendet.

Das Verfahren des Segmentierens und der Neuordnung der Schriftzeicheneingabedaten soll nun unter Bezugnahme auf Fig. 20 beschrieben werden.

Im Segmentierungsprogramm werden die Daten aus dem Eingabespeicher 101 in einen Pufferspeicher gespeist, und dieser Puffer wird für den Beginn eines Segments abgetastet.

Ein Segment wird zunächst durch die Erkennung des Kommandoidentifizierungskode angezeigt, welcher andeutet, daß eine Änderung der Punktgröße, der Grunlinie, der Linienregelfunktion oder der Umkehrvideofunktion folgen kann.

Wo irgendwelche dieser Bedingungen auftreten, wird beim Auftreten des nächsten Schriftzeichens ein Segment gebildet und die Anfangsdatei 103 wird durch Spur, Sektor und Byte mit der Liniensegmentadresse gespeist.

Segmentierungsparameter

Segmentierungsparameter sind Variable, die zur Schaffung der Liniensegment-Anfangsdatei 103 für jedes erzeugte Liniensegment verwendet werden.

Sie sehen folgendermaßen aus:

  • a. YCURR Bytes; laufende y-Koordinate in Rastereinheiten in Mikron (Basis) eingestellt. Beginn bei zu Beginn jeder Seite.
  • b. XCURR 2 Bytes; laufende X-Koordinate in Mikron. Beginn am Ende jeder Linie bei und zu Beginn der Seite.
  • c. PTS 2-Byte; Punktgröße eingestellt. Wert wird in 1/2 Punkten definiert. Beginn zu Beginn einer Seite bei und auf neuen Stand gebracht, wenn eine neue Punktgröße ausgegeben wird.
  • d. SW 2-Byte; definiert die verwendete Setzbreite in 1/2 Punkten. Gleich der Punktgröße setzen, bis ein Setzbreitewert ausgegeben wird.
  • e. SLST 1 Byte; definiert den Neigungsstatus
    0 - Neigung
    1 - Neigung +7; 2 - Neigung +12;
    3 - Neigung -7; 4 - Neigung -12
    Dieser wird zunächst auf gestellt.
  • f. FLST - Byte; definiert den Blitzstatus.
    0 heißt Blitz möglich, sonst ist Blitz ausgeschaltet.
    Beginn mit 0 zu Beginn jeder Seite.
  • g. FONT d. h. SCHRIFTZEICHENSATZ - 1 Byte; definiert den laufenden Schriftzeichensatz.
    L Byte - SEKTOR & NEIGUNG 1 Byte - Schriftzeichensatz,
    1 Beginn bei zu Beginn jeder Seite.
  • h. WRD - 1 Byte; definiert die Byte-Zahl innerhalb des laufenden Sektors, wenn das neue Segment beginnt.
    Beginn bei .
  • i. SECT - 1 Byte; deutet auf die RAST-Eintragung des Sektors, in dem das Segment beginnt. Beginn bei .
Liniensegmentdatei

Die Liniensegment-Anfangsdatei 103 ist als normale Textdatei gespeichert. Jede Eintragung in diese Datei beträgt 12 Bytes und stellt den Beginn eines neuen Liniensegments dar. Das Format einer jeden Eintragung ist wie folgt:

2 Bytes - Y-Koordinate in 1/10 (der Segmentbezugsrasterlinie)
2 Bytes - X-Koordinate in 1/10
2-Byte - Font d. h. Schriftzeichensatz
1 Byte - Punktgröße in 1/2 Punkten
1 Byte - Setzbreite in 1/2 Punkten
1 Byte - SPUR & BLITZ
1 Byte - Bytezählung, die das erste Byte im Sektor des Liniensegments identifiziert.
1 Byte - Spurverbindung
1 Byte - Sektorverbindung

Die letzten zwei Bytes werden verwendet, wenn ein Liniensegment in einen anderen Sektor überläuft.

Es soll noch einmal auf Fig. 2 Bezug genommen werden, in der, wie im Drucksatz üblich, alle Schriftzeichen auf Gevierte entsprechender Größe bezogen sind.

Ein Prozessor, beispielsweise der von der Intel-Corporation hergestellte Typ 8080, der ein Programm enthält, erkennt den Beginn eines jeden Liniensegments und gibt ihm einen in Mikron ausgedrückten Wert, der der Höhe der entsprechenden Bezugsrasterlinie entspricht.

Durch den Aufbau der Anfangsdatei 103 bestimmt der Prozessor durch ein geeignetes Programm die Rasterbezugshöhe des Gevierts für das erste Schriftzeichen in einem Segment durch Subtrahieren der Punktgröße des Schriftzeichens vom Wert der Grundlinie. Er bringt dann das Rasterniveau in Punktgröße auf ein Rasterniveau in Mikron und erhält den Segment-Y-Wert.

Der Prozessor führt auch die X-Koordinate für das Schriftzeichen-Geviert ein.

Die X-Koordinate wird bestimmt, indem unter Verwendung des Prozessors alle Schriftzeichenbreiten vor dem ersten Schriftzeichen auf dem Liniensegment addiert werden.

Die Breite eines jeden Schriftzeichens ist ein Teil von insgesamt 54 Einheiten der Breite eines Gevierts, wie in Fig. 2 gezeigt.

Jedes Schriftzeichen besetzt eine Breite, die sich vom linken Rand (LSB) des Gevierts bis zum Ende des Schriftzeichens erstreckt und einen Teil des gesamten Gevierts darstellt.

Das in Fig. 2 gezeigte Schriftzeichen "A" beispielsweise stellt 36 der 54 Einheiten eines Gevierts dar. Punktgröße und Breite können dann durch Multiplikation des Anteils des durch das Schriftzeichen besetzten Gevierts mit der Punktgröße leicht bestimmt werden.

Beträgt die Punktgröße 54 Punkte, so beträgt die Breite des Schriftzeichens 36 Punkte.

Werden die Daten für die Anordnung der Schriftzeichen zunächst durch Composer eingespeist, dann setzt der Composer das Rasterlinienniveau für die Grundlinie relativ zur Höhe des Schriftzeichens auf der Seite und die X-Stellung des Schriftzeichens relativ zur Breite des Blattes fest.

Wird eine Kette aufeinanderfolgender Schriftzeichen durch eine Änderung der Größe unterbrochen, die erfordert, daß eine Linie von Schriftzeichen in zwei Liniensegmente aufgeteilt werden muß, dann enthält das Verfahren Mittel zum Addieren der Breiten aller vorausgegangenen Schriftzeichen zur Bestimmung der X-Koordinatenstellung für das nächste Liniensegment, beginnend mit dem nächsten Schriftzeichen mit veränderter Größe.

Ist die Anfangsdatei 103 komplettiert, und sind alle Segmente identifiziert, so beginnt die Setzroutine. Es handelt sich um eine Vergleiche- und Ersetze-Routine, wie sie in der bevorzugten Ausführungsform verwendet wird, es kann jedoch jede Routine verwendet werden, die geeignet ist, alle Segmente relativ zu den Werten der Bezugsrasterlinien neu anzuordnen.

Unter Bezugnahme auf Fig. 17 wären die identifizierbaren Liniensegmente, die durch die Segmentierungsroutine nach Fig. 20 erzeugt werden, das "Great Savings" (51) mit einem Y-Wert, der der Rasterlinie 1000 entspricht, der Linienregelfunktion (52), die mit der Rasterlinie 1500 beginnt, dem "a" (53) von "at", das mit der Rasterlinie 1600 beginnt, dem "t" (54) von "at", das bei Rasterlinie 1600 beginnt, die 5 lbs. (55), die mit der Rasterlinie 2200 beginnen, die "5" (56) bei Rasterlinie 3100, die "cans" (57) bei Rasterlinie 3300 und "Tuna" (58), die mit der Rasterlinie 2900 beginnt.

Die Setzroutine nach Fig. 20 ordnet die RAST-Adressenfolge in der Segmentfolgetabelle 107 entsprechend der ansteigenden Ordnung der Rasterlinie neu an.

Das Verfahren vergleicht zunächst die Segmentnummer 51 "Great Savings" mit der Segmentnummer 52, der "Linienregel". Da die Segmentnummer 52 einen höheren Y-Wert darstellt, läßt sie die Ordnung des Segments 1 und 2 wie angeordnet in der Datei 103.

Sodann vergleicht es das Segment 52 mit dem Segment 53, den Teile "a" von "at".

Da die Segmentnummer 53 einen höheren Y-Wert darstellt als die Segmentnummer 52, läßt es die relativen Stellungen von Segment 52 und 53 im 107 wie sie sind.

Wenn das Verfahren das Segment 53 mit dem Segment 54, das "t" im Wort "at" vergleicht, stellt es fest, daß das Segment 54 einen niedrigeren ansteigenden Y-Wert hat als das Segment 53 und kehrt die Ordnung der Segmente 53 und 54 in der Datei 107 um, so daß das Segment 54 vor dem Segment 53 steht.

Der nächste Verfahrensschritt wäre der, den Y-Wert des Segments 53 mit Segment 55 zu vergleichen. Da der Y-Wert des Segments 55 höher im ansteigenden Wert ist als der Y-Wert des Segments 53, wird das Verfahren die auf das Segment bezogenen Positionen unverändert lassen.

Folgt man in der Ordnung, in der die Information ursprünglich durch den Setzer in den Speicher eingespeist wurde, dann wird das Verfahren als nächstes den Y-Wert des Segments 55 mit dem Y-Wert des Segments 56 vergleichen. Da der Y-Wert für das Segment 56 höher in ansteigender Ordnung der Rasterlinien ist als der Y-Wert für das Segment 55, bleibt seine Ordnung in der Datei 107 unverändert.

Geht man nun zu dem nächstfolgenden in der Anfangsdatei untergebrachten Informationsblock über, so wird der Y-Wert für das Segment 56 mit dem Y-Wert für das Segment 57 verglichen. Da diese Segmente in der richtigen Ordnung des ansteigenden Y-Werts in die Anfangsdatei eingespeist wurden, bleibt die Ordnung der Segmente 56 und 57 in der Tabelle 107 unverändert.

Der nächste Vergleich erfolgt zwischen dem Y-Wert des Segments 57 und dem Y-Wert des Segments 58. Da der Y-Abfangwert von "Tuna" 2900 beträgt und einen niedrigeren ansteigenden Wert darstellt als der Y-Abfangwert 3300 von "cans", wird die Ordnung von Segment 57 und Segment 58 in Tabelle 107 umgekehrt, d. h. daß das Segment 58 vor Segment 57 kommt.

Das Verfahren wird dann das Segment 58 mit dem nächst vorausgehenden Segment 56, vergleichen. Da der ansteigende Y-Wert des Segments 58 immer noch niedriger in der ansteigenden Ordnung ist als 56, werden 58 und 56 in der Ordnung in Tabelle 107 umgekehrt.

Zu diesem Zeitpunkt ist die Ordnung dieser in Tabelle 107 gezeigten Segmente wie folgt: Segment 51, 52, 54, 53, 55, 58, 56 57.

Die segmentierten Daten werden dann in den Datenspeicher mit willkürlichem Zugriff DATA RAM in der neuen Ordnung der Segmentfolgetabelle 107 und in einer neuen Ordnung relativ zu dem ansteigenden Wert des Y-Werts der Bezugsrasterlinie für jedes entsprechende Segment eingespeist. Die Einspeisung der Liniensegmente wurde bereits in Zusammenhang mit Fig. 16 dargelegt. Die Daten werden dann auf der Basis "zuerst eingegangen zuerst ausgegeben" im Datenspeicher mit willkürlichem Abgriff DATA RAM angeordnet, so daß sie in einer mit der ansteigenden Ordnung der erzeugten Rasterlinien verwandten Ordnung zugänglich sind.

Dieses System löst auch ein weiteres Problem, das sich bei einer weiteren möglichen Anordnung der Schriftzeichen ergibt, wenn sie wie durch das "JA" zwischen den Rasterlinien 4000 und 4700 gezeigt durch den Composer eingebracht wird.

Wenngleich aus den oben in Zusammenhang mit Segmenten 51 bis 57 gegebenen Gründen Segmentierung nicht erforderlich ist, kann sich doch die Situation ergeben, daß die Daten in den Datenspeicher mit willkürlichem Zugriff DATA RAM von Fig. 16 gespeist werden und der DATA RAM nicht ausreichenden Speicherraum für die gesamte Einspeisung aller "Schriftzeichendaten" aufweist. Das "A" mit der Punktgröße 40, gesetzt zwischen Rasterlinien 4300 und 4700, kann beispielsweise nicht vollständig in den DATA RAM 1 eingespeist werden. Das Ausgabedatensystem ODS wäre dann nicht in der Lage, das vollständige Schriftzeichen abzubilden. Der Ausgleich der Daten für das A im DATA RAM 2 würde die Segment-Anfangsinformation, die zur Bildung des unteren Teils des Schriftzeichens erforderlich ist, und die den Daten für den DATA RAM 2 entsprechen, auslassen.

Kann ein vollständiges Segment nicht in einen einzelnen DATA RAM erforderlicher Kapazität gespeist werden, dann müssen diese Segmentdaten aus dem ersten RAM entfernt und in den zweiten RAM gebracht werden, damit die kompletten Segmentdaten in einem einzigen RAM untergebracht sind.

Enthalten zwei Segmente Schriftzeichen auf gemeinsamen und nicht-gemeinsamen Rasterlinien und können die Schriftzeichendaten für ein Segment nicht vollständig in einen einzigen RAM gespeist werden, wie beispielsweise für das "A", dann müssen alle Schriftzeichendaten für die gemeinsamen Rasterlinien der zwei Segmente aus dem ersten RAM entfernt und in den zweiten RAM gebracht werden.

Der zweite RAM kann mit allen segmentierten Schriftzeichendaten, die für das "J" und das "A" einschließlich aller Anfangsinformationen erforderlich sind, gespeist werden, er erhält jedoch die Instruktion, mit dem Abgriff der Schriftzeichendaten bei einer Datenauflösungseinheit (Data Resolution Unit DRU) entsprechend einem Rasterlinienniveau von 4300 entsprechend der nächstfolgenden Rasterlinie, die dem letzten Datenniveau des RAM 1 folgt, zu beginnen, da die Segmentdaten für die vorausgehenden Rasterlinien bereits abgebildet wurden.

Wie in dem gezeigten Fall, wo ein Teil der Schriftzeichen in dem voll beladenen Segment (59), das "J", die Schriftzeichen in einem teilweise beladenen Segment (60), das "A", überlappt, muß der Prozessor alle Daten im DATA RAM 1, die jenen Teilen des Segments 59 wie auch 60 entsprechen, die auf gemeinsamen Rasterlinien abgebildet werden, sperren und die Information für die Segmente 59 und 60 in den DATA RAM 2 in ihrer entsprechenden Folge einspeisen.

Wichtig für diese Bestimmung ist die Stellung des unteren Teils des Gevierts und der vorausgehenden Segmente mit allen ihren Daten im DATA RAM im Verhältnis zu der Bezugsrasterlinie des teilweise beladenen Segments (60).

Wie oben gezeigt, kann nachdem eine Anzahl von Liniensegmenten in einen DATA RAM definierter Kapazität eingespeist wurde, das nächste einzugebende Liniensegment die verfügbare übrige Kapazität überschreiten. Als Ergebnis wäre bei dieser Kapazität eine Liniensegment unvollständig gefüllt und ein Teil der Liniensegmentdaten überschreitet das DATA RAM-Limit.

Zur Vervollständigung dieses Verfahrens muß der Prozessor bestimmen, ob sich irgendwelche Segmente überlappen und auf gemeinsamen Rasterlinien mit einem unvollständig gefüllten Segment sind. Jedes überlappende vorausgehende Segment im gleichen DATA RAM, das sich auf eine Rasterlinie bezieht, die höher im ansteigenden Wert ist, als die Rasterbezugslinie des letzten unvollständig gefüllten Segments, muß ebenfalls in den nächstfolgend gefüllten DATA RAM gespeist werden. In Fig. 17 kann die Anwesenheit jedes überlappenden vorausgehenden Segments, wie das vorausgehende Segment 59, durch Multiplikation der Bezugsrasterlinie für jedes vorausgehende Segment mit 4/3 bestimmt werden, um die Grenze des erweiterten Gevierts und seine letzte entsprechende Rasterlinie mit dem höchsten ansteigenden Wert festzustellen. In diesem Fall beträgt die Punktgröße 30, und 4/3mal die Punktgröße addiert zu den bezogenen Rasterlinien für das Geviert des vorausgehenden Segments 59 (4000) ergibt 4400. Da 4400 höher im ansteigenden Wert ist als 4300, müssen die Daten auf den Rasterlinien 4300 bis 4399, die Segment 59 und 60 überlappen und auf gemeinsamen Rasterlinien abgebildet werden, von dem gleichen RAM abgegriffen werden, damit der Teil des Segments 60, das mit dem Segment 59 gemeinsam ist, auf den gemeinsamen Rasterlinien abgebildet werden kann. Der Prozessor sperrt diese Information im DATA RAM 1 für Segment 59 und 60 und speist diese segmentierte Information in den DATA RAM 2.

Der Prozessor identifiziert das letzte Rasterlinienniveau, auf das die Daten eines vorausgehenden überlappenden Segments abgebildet wurden. Er identifiziert das nächste Rasterniveau zur Abbildung der gesperrten Daten im ersten DATA RAM mit definierter Kapazität und beginnt den Abgriff der Daten vom zweiten DATA RAM bei einem Datenniveau in Datenauflösungseinheiten (Data Resolution Units-DRUs), die dem nächsten auf der Anzeige abgebildeten Rasterniveau, das der letzten von DATA RAM 1 abgebildeten Datenlinie folgt, entspricht.

In der Praxis werden alle vorausgehenden Segmente, die in den DATA RAM eingespeist sind, nach einer Übereinstimmung mit der letzten bezogenen Rasterlinie eines jeden vorausgehenden Segments mit dem Bezugsrasterliniennieveau eines unvollständig gefüllten Segments überprüft.

Die Anfangsdatei 103 enthält alle notwendigen Anfangsdaten für jedes Segment, wobei die Daten ihre Adresse auf der Platte einschließen. Die Anfangsdatei enthält außerdem Größe, Schriftzeichensatz, Anzeigeort, Setzbreite, Neigung und Blitzstatus.

Die obere linke Ecke des Gevierts des Schriftzeichens des Schriftzeichensatzes einen jeden Segments wird zur Identifizierung des Orts eines jeden Segments in der Richtung der Rasterlinienprogression verwendet. Jedes Segment baut sich aus aufeinanderfolgenden Schriftzeichen auf, alle mit Gevierten mit der gleichen Stellung hinsichtlich der Ordnung auf den Rasterlinien.

Steht das nächstfolgende Schriftzeichen in den eingespeisten Textdaten auf einer unterschiedlichen Grundlinie oder hat es eine andere Größe, dann haben die Grundlinien, die durch die obere linke Ecke des Gevierts dieses nächstfolgenden Schriftzeichens verläuft, einen anderen Wert.

Die Vorrichtung bezieht das erste Schriftzeichen eines jeden identifizierten Segments auf eine Bezugsrasterlinie. Alle nachfolgenden Schriftzeichen haben die gleiche Grundlinie und die gleiche Größe, sind auf die gleiche Rasterlinie bezogen und bilden ein Segment.

Ein Segment ist beendet, wenn wie oben beschrieben ein Schriftzeichen veränderter Größe oder ein Schriftzeichen auf einer neuen Grundlinie in der Folge der Eingabedaten auftritt, oder eine Linienregel- oder eine Umkehrvideofunktion auftritt, die eine neue X- bzw. Y-Stellung erfordert oder wenn Sektorüberlaufen eintritt. Das nächste Segment wird dann auf dem nächsten ersten Schriftzeichen aufgebaut.

Zusammenfassend kann festgestellt werden, daß die Schriftzeicheneingabedaten bei der Zusammensetzung in einer Folge sind und daß man der üblichen Schreibweise von links nach rechts und vom oberen Rand der Seite zum unteren Rand der Seite folgen kann.

Jedes beliebige Schriftzeichen erzeugende System, das Schriftzeichen auf aufeinanderfolgenden Rasterlinien abbildet, kann Schriftzeichen abbilden müssen, die in einer Ordnung stehen, die sich von der Zusammensetzordnung oder jeder anderen Folgeordnung unterscheidet.

Wenn Schriftzeichen von links nach rechts eingespeist werden und die Schriftzeichen ausschließlich auf gemeinsamen Rasterlinien sind, dann können alle Schriftzeichen in dieser Folge auf aufeinanderfolgenden Rastern von ansteigendem Wert abgebildet werden, wobei die Daten für jedes aufeinanderfolgende Schriftzeichen gleichzeitig mit den Daten für das erste Schriftzeichen abgegriffen werden.

In anderen Fällen jedoch, wo die durch den Composer aufeinanderfolgend eingespeisten Schriftzeichen auf nicht-gemeinsamen Rasterlinien und gemeinsamen Rasterlinien liegen und wo die Schriftzeichen aufeinanderfolgend in einer Folge auf nicht-gemeinsame Rasterlinien mit einem niedrigen Wert abgebildet, aber in einer Folge von den gemeinsamen Rasterlinien erzeugt werden, führt der Zugriff der Schriftzeichendaten in dieser Ordnung zu dem Verlust eines Teils der Schriftzeichen mit nicht-gemeinsamen Rasterlinien von niedrigem ansteigendem Wert.

Die Grundlage der vorliegenden Erfindung ist besonders dann anwendbar, wenn ein Rasterlinienmuster über einem Druckmedium in einer Richtung angeordnet wird, wobei die anfänglichen Rasterlinien mit 1 und die letzte mit N numeriert ist und wobei die Rasterlinien in der Richtung der erzeugten Rasterlinien in der Zahl zunehmen und wobei die Rasterlinien von der linken Seite des Blatts nach der rechten Seite des Blatts abgelenkt werden, und wobei ein Schriftzeichen links von einem zweiten Schriftzeichen angeordnet ist, wobei ein Teil des zweiten Schriftzeichens eine gemeinsame Rasterlinie mit dem ersten Schriftzeichen und nicht-gemeinsame Linien mit einem niedrigen ansteigenden Wert als die gemeinsamen Rasterlinien schneidet.

In dem normalen System, das Eingabedaten zur Ausgabe an ein Schriftzeichen erzeugendes System durch die Stellung der Daten am nächsten zur linken Seite des Druckmediums identifiziert, wird das erste Schriftzeichen in dem obigen Beispiel auf einer Echtzeitbasis vor der Identifizierung der Daten des zweiten Schriftzeichens identifiziert und ausgegeben. In einem solchen System wird das erste Schriftzeichen bei Auftreten auf einer Rasterlinie mit einem dem Auftreten dieses Schriftzeichens entsprechenden Wert identifiziert. Diese Kennlinie kann ein Koordinatenwert, beispielsweise eine Bezugsrasterlinie, oder der Y-Wert für die obere linke Ecke des Gevierts oder kann auch das erste Auftreten eines Schnitts der erstgenannten mit einer Rasterlinie oder jede beliebige andere Kennlinie sein.

Da die Rasterlinien auf einer Anzeige in einer einzigen Richtung auf Echtzeitbasis erzeugt werden, muß die Erzeugung der Schriftzeichendaten in der gleichen Zeitmessung vorsich gehen wie die Erzeugung der Rasterlinien für jedes einzelne Datenteil.

Die Segmentierung identifiziert aufeinanderfolgende Schriftzeichen, die auf einen Satz von Rasterlinien bezogen sind. Die Schriftzeichendaten werden nach dem Segmentieren auf eine Rasterlinienordnung bezogen. Dieses Inbezugsetzen geschieht durch Identifizierung einer Rasterlinie, die einen bestimmten Parameter eines jeden in Frage kommenden Segments schneidet.

Im Fall der bevorzugten Ausführungsform ist dieser bestimmte Parameter das obere Niveau des Gevierts für das Schriftzeichen des ersten Segments. Nach dem Grundgedanken der vorliegenden Erfindung ist es jedoch nicht erforderlich, daß dieser Teil des Gevierts verwendet wird, da auch andere Parameter des Schriftzeichens verwendet werden können, wie zum Beispiel die Höhe eines jeden einzelnen, bezogen auf die ansteigende Ordnung der Rasterlinien. Der Einfachheit halber und aus praktischen Gründen arbeitet das System auch wirksam, wenn der erwähnte Segmentparameter des Gevierts verwendet wird, was zu der größtmöglichen Segmentlänge führt.

Wo die Anordnung eingegebener Daten für Identität, Größe und Position der Schriftzeichen in ihrer Eingabefolge die Abbildung von Teilen der Schriftzeichen verhindern würde, rearrangiert dieses System die Daten in Segmente und in eine Ordnung, die auf die Ordnung der auf der Anzeige erzeugten Rasterlinien bezogen ist, so daß die Eingabedaten dem Ausgabesystem (ODS) zur Erzeugung der Schriftzeicheninformation in der Folge mit der Erzeugung der Rasterlinien zugeführt werden.

In der bevorzugten Ausführungsform werden die Schriftzeichendaten im DATA RAM in der Ordnung abgegriffen, in der sie in den DATA RAM eingegeben wurden.

Die Schriftzeichen-Eingabedaten müssen neu geordnet werden, damit sie im DATA RAM im richtigen Verhältnis zur Rasterlinienordnung stehen.

Die Grundidee der vorliegenden Erfindung kann auf jede Variation der bevorzugten Ausführung angewandt werden, wo das Schriftzeichen willkürlich in den Adressen-Datenspeicher mit willkürlichem Zugriff DATA RAM eingegeben wird und die Adressierfolge zum Abgriff der Daten aus dem DATA RAM in ein richtiges Verhältnis zur Ordnung der Rasterlinien gebracht wird.

Ein Mittel zur Adressierung des DATA RAM (hier nicht gezeigt) kann beispielsweise der bevorzugten Ausführungsform zugefügt werden. Die segmentierten Schriftzeichendaten können in jeder Folge in den DATA RAM eingespeist werden. Die Setzroutine zur Neuordnung der Segmente in die Ordnung der Rasterlinien und durch ansteigende Werte der Bezugsrasterlinie kann erfolgen, nachdem der Schritt der Speisung des DATA RAM durchgeführt wurde, indem die Adressierfolge des DATA RAM auf die ansteigende Ordnung der Bezugslinie eines jeden Segments rearrangiert wird.

Man stellt fest, daß dieses Verfahren, Daten aus jeder vorgeordneten Folge in eine neugeordnete Folge, die mit der Ordnung der Rasterlinie in Zusammenhang steht, rearrangiert. Werden die Schriftzeichendaten vom Speicher ausschließlich nach einer Rasterlinienfolge und nach einer vorgegebenen Datenfolge abgerufen, dann können die Grundideen der vorliegenden Erfindung verwendet werden, so daß sie in ihrer neugeordneten Folge ausschließlich im Verhältnis zu der Ordnung der Rasterlinie und unabhängig von jeder anderen Datenfolge abgegriffen werden.

Die vorliegende Erfindung ermöglicht ein Verfahren, das normalisierte kodierte Schriftzeichensätze speichert, die Schnittpunkte der Rasterlinien, die eine Vielzahl dargestellter Schriftzeichen schneiden, errechnet und die Abbildung der dargestellten Schriftzeichen aufgrund der errechneten Schnittpunkte steuert, um Schriftzeichen unterschiedlicher Größe und Grundlinien und mit Linienregel- und Umkehrvideofunktion wie auch Sektorüberlaufen in den gespeicherten Daten, unabhängig von der gespeicherten Folge dieser Daten, zu speichern und darzustellen.

Claims (8)

1. Verfahren für die rasterförmige Wiedergabe von Schriftzeichen, insbesondere in digitalen Setzgeräten, wobei Schriftzeichendaten, welche Identität, Größe und Wiedergabeort einer Eingabefolge von wiederzugebenden Schriftzeichen wechselnder Größe darstellen, in Segmenten bestehend aus aufeinanderfolgenden Schriftzeichen zusammengefaßt und in eine Rasterlinienfolge der wiederzugebenden Schriftzeichen gruppiert in einem ersten Speicher (1, 101) gespeichert werden, wobei ein Raster aus einer Folge von Rasterlinien 1-N erzeugt wird, wobei die Segmente durch Identifizieren von Bezugsrasterlinien innerhalb der Rasterlinienfolge 1-N identifiziert werden, die auf einen Parameter wenigstens eines Schriftzeichens jeweils innerhalb eines der Segmente bezogen sind, wobei außerdem Schriftzeichensatzdaten normalisierter kodierter Schriftzeichen in einem zweiten Speicher (2) gespeichert sind und wobei aus den Schriftzeichensatzdaten und den Schriftzeichendaten ein Ausgabedatenverarbeitungssystem zur rasterförmigen Wiedergabe der Schriftzeichen gesteuert wird, dadurch gekennzeichnet,
  • (a) daß die Schriftzeichendaten der Eingabefolge auf einen Größenwechsel zwischen einem Schriftzeichen und einem folgenden Schriftzeichen geprüft werden,
  • (b) daß Segmente von Schriftzeichendaten aufeinanderfolgender Schriftzeichen, welche innerhalb der Eingabefolge die gleiche Größe aufweisen, unter Bezugnahme auf Bezugsrasterlinien identifiziert werden und die Bezugsrasterlinien aufgezeichnet werden und
  • (c) daß die Segmentfolge entsprechend dem Wert der Bezugsrasterlinien der entsprechenden Segmente und bezogen auf die Rasterlinienfolge umgruppiert und die umgruppierte Segmentfolge in das Ausgabedatenverarbeitungssystem (3) eingespeist wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Aufzeichnung der Bezugsrasterlinien nach Schritt (b) in einem Speicher erfolgt.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schriftzeichendaten der Eingabefolge weiterhin auf einen Wechsel des Wiedergabeorts von einem Schriftzeichen auf das nächste Schriftzeichen geprüft werden (Schritt (a)) und daß das Identifizieren der Schriftzeichensegmente auch für Segmente von Schriftzeichendaten erfolgt, welche den gleichen Wiedergabeort haben (Schritt (b)).
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schriftzeichen wechselnder Größe in Gevierten definiert sind, wobei jedes Geviert ein Bezugsgrößengeviert für Schriftzeichen gleicher Größe ist, und wobei der Parameter, auf den die Bezugsrasterlinien bezogen sind, eine Stelle in dem Geviert ist und daß das Identifizieren der Bezugsrasterlinien jeweils einen Schritt des Kombinierens eines Werts des Parameters mit einem Wert des Wiedergabeorts einschließt.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die Gevierte jeweils eine obere und eine untere Höhe (oberes Niveau 16 und unteres Niveau) aufweisen, daß der Wiedergabeort einen Grundlinienort (5) einschließt, daß die untere Höhe des Gevierts auf die Grundlinie bezogen ist, daß der Parameter die obere Höhe ist und daß die Bezugslinie auf die untere Höhe bezogen ist (Fig. 2).
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Parameter einen auf die Schriftzeichengröße auf der Wiedergabefläche bezogenen Wert hat und daß der Parameterwert mit einem Wert der Wiedergabestelle zur Identifizierung der Bezugsrasterlinienhöhe kombiniert wird.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Zugriff zu den Datensegmenten entsprechend der umgruppierten Folge und nach Maßgabe der generierten Rasterlinienfolge durchgeführt wird.
8. Verfahren nach Anspruch 1 oder 7, dadurch gekennzeichnet, daß Stellen der Umrißgrenzen der wiederzugebenden Schriftzeichen aus den gespeicherten Schriftzeichensatzdaten mit entsprechenden Rasterlinien von den kodierten Schriftzeichendaten und den zugegriffenen Segmentdaten abgeleitet werden.
DE19803044092 1979-11-26 1980-11-24 Expired - Fee Related DE3044092C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US06/097,276 US4345245A (en) 1979-11-26 1979-11-26 Method and apparatus for arranging segmented character groups in a digital typesetter

Publications (2)

Publication Number Publication Date
DE3044092A1 DE3044092A1 (de) 1981-06-04
DE3044092C2 true DE3044092C2 (de) 1991-04-11

Family

ID=22262584

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803044092 Expired - Fee Related DE3044092C2 (de) 1979-11-26 1980-11-24

Country Status (4)

Country Link
US (1) US4345245A (de)
CA (1) CA1157172A (de)
DE (1) DE3044092C2 (de)
GB (1) GB2063773B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276792A (en) * 1980-09-29 1994-01-04 Canon Kabushiki Kaisha Word processor permitting modification of a preset frame
JPS6346430B2 (de) * 1980-12-16 1988-09-14 Sony Corp
JPS6357831B2 (de) * 1981-02-26 1988-11-14 Nippon Electric Co
US4555763A (en) * 1982-07-01 1985-11-26 Decision Data Computer Corp. Method and apparatus for storage and accessing of characters, and electronic printer employing same
JPH0147824B2 (de) * 1982-09-14 1989-10-17 Dainippon Screen Mfg
US4591846A (en) * 1982-09-28 1986-05-27 Burroughs Corp. Real time cell specification processor
US4593278A (en) * 1982-09-28 1986-06-03 Burroughs Corp. Real time graphic processor
US4513318A (en) * 1982-09-30 1985-04-23 Allied Corporation Programmable video test pattern generator for display systems
US4587634A (en) * 1982-12-20 1986-05-06 Texas Instruments Incorporated Data processing apparatus for multiple mode operation as specified by user inputs
US4594674A (en) * 1983-02-18 1986-06-10 International Business Machines Corporation Generating and storing electronic fonts
GB2146207B (en) * 1983-09-01 1987-06-24 Philips Electronic Associated Variable size character display with obscured characters
GB2145909B (en) * 1983-09-01 1987-05-13 Philips Electronic Associated A double height algorithm for crt character display
US4953102A (en) * 1985-03-30 1990-08-28 Mita Industrial Co., Ltd. Method for producing character patterns
US4918740A (en) * 1985-10-01 1990-04-17 Palantir Corporation Processing means for use in an optical character recognition system
JPH073631B2 (ja) * 1986-02-05 1995-01-18 ミノルタ株式会社 フォントカートリッジとそのデータ管理方法
JPH0762841B2 (ja) * 1986-06-27 1995-07-05 横河・ヒユ−レツト・パツカ−ド株式会社 文書清書装置
US4833627A (en) * 1986-08-29 1989-05-23 The Toles Group Computerized typesetting correction system
GB2196769A (en) * 1986-10-29 1988-05-05 China Computer Corp Method and apparatus for high resolution character generation
US4987550A (en) * 1987-09-22 1991-01-22 International Business Machines Corporation Selective processing of a data stream based on font format
US5257351A (en) * 1987-09-22 1993-10-26 International Business Machines Corporation Selective processing of a data stream based on font format
JPH0832471B2 (ja) * 1988-08-31 1996-03-29 キヤノン株式会社 出力方法
US5045869A (en) * 1988-09-16 1991-09-03 Canon Kabushiki Kaisha Printing controller for printing at selected resolutions
US5274365A (en) * 1988-10-26 1993-12-28 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces-character analysis
AU629210B2 (en) * 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
WO1991018353A1 (en) * 1990-05-14 1991-11-28 Chips And Technologies, Inc. Display list processor for terminal controller
JPH0426890A (en) * 1990-05-22 1992-01-30 Sharp Corp Character display device
US5293587A (en) * 1990-06-01 1994-03-08 Chips And Technologies, Inc. Terminal control circuitry with display list processor that fetches instructions from a program memory, character codes from a display memory, and character segment bitmaps from a font memory
US5239391A (en) * 1992-03-20 1993-08-24 Eastman Kodak Company Apparatus for generating halftone dots from dot envelope parameters
US5233441A (en) * 1992-03-20 1993-08-03 Eastman Kodak Company Method for representing halftone dots with dot envelope parameters
US5590260A (en) * 1993-12-30 1996-12-31 International Business Machines Corporation Method and apparatus for optimizing the display of fonts in a data processing system
IL118137A (en) * 1996-05-03 2000-06-29 Scitex Corp Ltd Digital raster converter
US6061047A (en) * 1996-09-17 2000-05-09 Chips & Technologies, Inc. Method and apparatus for clipping text
KR100209421B1 (ko) * 1996-09-19 1999-07-15 전주범 베이스라인을 이용한 영상신호 부호화 방법
US6212301B1 (en) * 1998-06-25 2001-04-03 Accusoft Corporation Systems and methods for digital image compression
US6281876B1 (en) 1999-03-03 2001-08-28 Intel Corporation Method and apparatus for text image stretching
US6342890B1 (en) * 1999-03-19 2002-01-29 Microsoft Corporation Methods, apparatus, and data structures for accessing sub-pixel data having left side bearing information
US7348983B1 (en) 2001-06-22 2008-03-25 Intel Corporation Method and apparatus for text image stretching
AUPR824501A0 (en) * 2001-10-15 2001-11-08 Silverbrook Research Pty. Ltd. Methods and systems (npw003)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3806871A (en) * 1968-01-30 1974-04-23 Cognitronics Corp Multiple scanner character reading system
US3783331A (en) * 1970-03-17 1974-01-01 Mirror Co Method for generating information to control the scanning beam of a display device
US4026555A (en) * 1975-03-12 1977-05-31 Alpex Computer Corporation Television display control apparatus
JPS52105734A (en) * 1976-03-01 1977-09-05 Canon Inc Signal coverter
US4078249A (en) * 1976-06-01 1978-03-07 Raytheon Company Digital display composition system
US4079458A (en) * 1976-08-11 1978-03-14 Xerox Corporation High resolution character generator
GB1563165A (en) * 1977-11-16 1980-03-19 Ibm Character display system
US4168489A (en) * 1978-02-13 1979-09-18 Lexitron Corp. Full page mode system for certain word processing devices
US4241340A (en) * 1978-05-26 1980-12-23 Harris Corporation Apparatus for generating displays of variable size characters
US4231096A (en) * 1978-10-10 1980-10-28 Eltra Corporation Digital typesetter
US4254409A (en) * 1978-12-15 1981-03-03 Quality Micro Systems, Inc. Control system for full line variable height and width character and symbol printing

Also Published As

Publication number Publication date
DE3044092A1 (de) 1981-06-04
CA1157172A (en) 1983-11-15
CA1157172A1 (de)
GB2063773A (en) 1981-06-10
GB2063773B (en) 1983-09-14
US4345245A (en) 1982-08-17

Similar Documents

Publication Publication Date Title
US6760029B1 (en) Generating a glyph
DE3223730C2 (de)
DE3805573C2 (de)
US5553217A (en) Document layout using tiling
US4575813A (en) Automatically balancing and vertically justifying a plurality of text/graphics-columns
DE3907874C2 (de) Steuereinrichtung für ein Bildablagesystem
EP0017739B1 (de) Textbearbeitungseinrichtung mit einer Anzeigeeinrichtung
DE69534769T2 (de) Verfahren in einem Druckersystem, um Pakete einschliesslich Vielfach-Dokumente zu erzeugen und zu verwalten
DE3804450C2 (de)
DE2814903C2 (de)
DE60032689T2 (de) Verfahren und Vorrichtung zur Bildkompression
DE602004006682T2 (de) Extraktion von Metadaten aus gekennzeichneten Bereichen eines Dokuments
DE69737884T2 (de) Textprozessor
US7019864B2 (en) Page composition in an image reproduction system using segmented page elements
DE3411939C2 (de)
US5404436A (en) Computer method and apparatus for converting compressed characters for display in full size
DE3606869C2 (de) Vorrichtung zur Datenkompression
US5636337A (en) Method and system for color film separation preprocess using electronic object-based choking and spreading procedures including object combining operations
DE4334524C2 (de) Dokumentverarbeitungsvorrichtung
DE19606178C2 (de) Verfahren zum Komprimieren einer Anordnung von Pixelwerten und zum Dekomprimieren einer Anordnung von Pixelwerten aus einem komprimierten Datensatz
DE4091841C2 (de) Verfahren zum Erzeugen einer Formulardarstellung und Bildschirm-Formularerzeugungssystem
EP0117405B1 (de) Automatische Balancierung und vertikale Justierung von Text und/oder von graphischen Darstellungen
DE3820075C2 (de)
DE69732326T2 (de) Zweidimensionaler Farbkode, Herstellungs- und Wiederherstellungsverfahren für den Kode und Gerät dafür
DE69530263T2 (de) Verfahren und Gerät zur Aufzeichnung und Verarbeitung von Daten

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: ALLIED CORP., MORRIS TOWNSHIP, N.J., US

8128 New person/name/address of the agent

Representative=s name: SCHMIED-KOWARZIK, V., DR., 8000 MUENCHEN DANNENBER

8127 New person/name/address of the applicant

Owner name: LINOTYPE CO., HAUPPAUGE, N.Y., US

8128 New person/name/address of the agent

Representative=s name: DANNENBERG, G., DIPL.-ING., 6000 FRANKFURT WEINHOL

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee