-
Die vorliegende Erfindung betrifft Terminals und andere an
Datenverarbeitungssysteme angeschlossene Geräte und bezieht
sich insbesondere auf Protokolle, die bei Übertragungen
zwischen einem Terminal und einem Datenverarbeitungssystem
benutzt werden.
-
Digitaldatenverarbeitungssysteme sind häufig mit
Dateneingabe- oder Datenanzeigegeräten über asynchrone Übertragungswege
verbunden, über die Daten als eine Reihe sequentieller Codes
übertragen werden. Die Kommunikation zwischen dem Eingabe-
oder Anzeigegerät und dem Digitaldatenverarbeitungssystem
geschieht mittels Protokollen, Codefolgen, auf welche die
Geräte oder das Datenverarbeitungssystem in einer
vorbestimmten Weise ansprechen. Herkömmliche Protokolle definieren
ziemlich einfache Operationen, z. B. die Anzeige eines
Zeichens oder die Bewegung des Cursors. Wenngleich solche
Operationen ihrem Zweck dienlich waren, konnten einige
wünschenswerte Operationen nicht vorgeschrieben werden und andere
konnten nur mittels einer langen und komplexen Reihe
Protokolle ausgeführt werden.
-
Mit der allgemeinen Verbreitung der Dialogrechner wurde der
Bedarf an leistungsfähigeren Protokollen deutlich. Derartige
Protokolle erhöhen die Produktivität von Programmierern,
indem sie den Umgang mit Terminals weniger kompliziert machen,
und sie vergrößern den Wirkungsgrad der sie anwendenden
Systeme, indem sie die Anzahl der Protokolle verringern, die
zwischen dem Datenverarbeitungssystem und dem Eingabe- oder
Anzeigegerät übersandt werden müssen.
-
Aus der Veröffentlichung der Europäischen Patentanmeldung
43,697 ist eine Datenübertragung des Bildschirmtext-Typs
bekannt, bei der codierte Informationen von einem zentralen
Informationsspeicher an mehrere Terminals übertragen werden
können und die codierten Informationen Zeichen darstellende
Bitgruppen und Steuercodes darstellende Bitgruppen enthalten.
Ein Zeichenattribut kann durch einen Anzeigesteuercode
dargestellt werden, der in Zuordnung zu einem Cursor-Rücksetzcode
übertragen wird. Somit erhält das Anzeigeterminal eine Folge
von Codes, die entweder anzuzeigende Zeichen oder Steuercodes
darstellen, die z. B. Attributcodes und aktive
Positionsbewegungscodes enthalten. Wenn ein ein Attribut darstellender
Steuercode empfangen oder später empfangen wird, werden
anzuzeigende Zeichen darstellende Codes entsprechend diesem
Attributcode angezeigt, bis der nächste Attributcode empfangen
wird. Um die Attribute einer Folge aktuell angezeigter
Zeichen auf das aktuelle Attribut zu ändern, ist es
erforderlich, zuerst vom Rechner der zentralen Informationsquelle
eine Folge aktiver Positionsbewegungscodes zu senden, die den
Cursor auf das erste solcher gewünschter Zeichen stellen, und
dann die Codesequenz, welche die gewünschte Folge aktuell
angezeigter Zeichen darstellen, erneut zu senden. Das
Ergebnis ist die dichte Belegung des Übertragungsweges zwischen
dem zentralen Informationsspeicher und dem Anzeigeterminal.
-
Die vorliegende Erfindung bezieht sich auf Protokolle für die
Kommunikation zwischen einem Datenverarbeitungssystem und mit
ihm verbundenen Geräten und betrifft insbesondere Protokolle,
die mit einem Bildsichtgerät benutzt werden. Bei dem
Bildsichtgerät, in dem die vorliegende Erfindung angewendet wird,
ist jedem am Terminal angezeigten Zeichen ein setzbares
Attribut zugeordnet, das vorschreibt, wie das Zeichen
anzuzeigen
ist. Das Terminal ist auch in anderer Hinsicht ebenfalls
sehr flexibel: jedes am Terminal anzeigbare Zeichen kann als
das Füllzeichen spezifiziert werden, d. h. als das Zeichen,
das im Terminal zum Darstellen von Positionen benutzt wird,
an denen keine anderen Zeichen stehen. Ferner kann das
Terminal auf drei verschiedene Weisen vorzuschreiben, ob ein
Zeichen umgeschaltet werden soll, und schließlich verwendet das
Terminal Bitmaps zur Steuerung des Verhaltens bestimmter
Tasten.
-
Die vorliegende Erfindung enthält Protokolle, die es dem das
Terminal benutzenden Digitaldatenverarbeitungssystem
ermöglichen, die Flexibilität und Protokolle des Terminals
auszunutzen, die zuvor komplexe Operationen vereinfachen. Zu den
Protokollen zählen:
-
- ein Protokoll, das ein anderes Protokoll als Operand
benutzt und vorschreibt, in welcher Weise das zweite
Protokoll auszuführen ist;
-
- ein Protokoll, welches die Attribute einer Zeichenfolge
auf ein aktuelles Attribut rücksetzt;
-
- Protokolle, die eine Zeichenfolge nach links oder nach
rechts versetzen und in die offene Position ein
spezifiziertes Zeichen einsetzen;
-
- Protokolle, die Bitmaps laden und bestätigen, daß die
geladene Bitmap korrekt ist;
-
- ein Protokoll, auf welches das Terminal durch
Zurückstellen des dem Zeichen zugeordneten Attributs auf die
aktuelle Cursorposition antwortet;
-
- eine neue Protokollform zur Verwendung bei der
Weiterleitung von Informationen vom Terminal zum
Datenverarbeitungssystem.
-
Der Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung zu
schaffen, die mit Protokollen betriebsfähig ist, welche die
einer Zeichenfolge zugeordneten Attribute rücksetzen kann.
-
Diese Aufgabe ist mit der in Anspruch 1 definierten
Vorrichtung gelöst.
-
Weitere Aufgaben und Vorteile der vorliegenden Erfindung
ergeben sich für den Fachmann aus der Bezugnahme auf die hier
enthaltene detaillierte Beschreibung einer bevorzugten
Ausführungsform und auf die Zeichnungen, in denen zeigt:
Kurzbeschreibung der Zeichnungen
-
Fig. 1 eine Darstellung in Form eines Blockschaltbildes
eines Datenverarbeitungssystems mit einem Terminal,
in dem die vorliegende Erfindung verwendet wird,
-
Fig. 2 ein detailliertes Blockschaltbild des Terminals
gemäß Fig. 1,
-
Fig. 3 ein Flußdiagramm mit der Darstellung der
Hauptverarbeitungsschleife, die vom Terminal gemäß Fig. 2
ausgeführt wird,
-
Fig. 4A und 4B ein Flußdiagramm mit der Darstellung einer
Einzelheit des Zeichenverarbeitung-Blocks des
Flußdiagramms gemäß Fig. 3, und
-
Fig. 5 ein Diagramm des
Attributwiedereinschreib-Protokolls und der zu seiner Implementierung benutzten
Variablen in einer erfindungsgemäßen
Ausführungsform.
-
Die nachstehende Beschreibung einer bevorzugten
Ausführungsform der vorliegenden Erfindung beginnt mit einer Übersicht
über Terminals benutzende Datenverarbeitungssysteme, geht
weiter mit einer Beschreibung eines Terminals, in dem die
vorliegende Erfindung ausgeführt ist, weiter mit einer
detaillierten Darstellung, wie das Terminal die von ihm
verarbeiteten Codes handhabt, und schließt mit detaillierten
Beschreibungen der einzelnen Protokolle.
1. Übersicht über ein Datenverarbeitungssystem
mit Terminal: Fig. 1
-
Fig. 1 zeigt eine Übersicht über ein
Datenverarbeitungssystem, das ein Terminal benutzt. Das System hat zwei
Hauptkomponenten: das Verarbeitungssystem 101 und das Terminal
111. Das Verarbeitungssystem 101 und das Terminal 111 sind
durch eine asynchrone Übertragungsleitung 109 miteinander
verbunden. Über die asynchrone Übertragungsleitung 109
empfängt das Verarbeitungssystem 101 empfängt Daten vom Terminal
111 und gibt Daten an dieses ab. Die asynchrone
Übertragungsleitung 109 leitet die Daten als eine Reihe von Codesequenzen
weiter. Bei einer erfindungsgemäßen Ausführungsform besteht
jede Codesequenz wenigstens aus einem Startbit, einer Folge
Codebits und einem Stoppbit. Der Code kann 7 oder 8 Bit
enthalten. Zusätzlich kann die Codesequenz ein Paritätsbit und/oder
ein zweites Stoppbit enthalten. Die zwischen dem
Verarbeitungssystem 101 und dem Terminal 111 gesandten
Codesequenzen bilden Protokolle. Vom Verarbeitungssystem 101 an das
Terminal 111 gesandte Sequenzen bilden Verarbeitung-Terminal-
Protokolle. Mittels dieser Protokolle liefert das
Verarbeitungssystem 101 Daten an das Terminal 111 und steuert dessen
Betrieb. Sequenzen, die das Terminal 111 an das
Verarbeitungssystem 101 sendet, bilden
Terminal-Verarbeitung-Protokolle, mittels deren das Terminal 111 Daten und
Zustandsinformationen an das Verarbeitungssystem 101 liefert.
-
Das Verarbeitungssystem 101 umfaßt einen Speicher 107 zum
Speichern von Daten, eine CPU 103 zur Verarbeitung von Daten,
und eine Steuereinheit 105, die mit Steuerung durch die CPU
103 arbeitet und Protokolle bereitstellt, die für die
Datenübertragung an das Terminal 111 und die Steuerung des
Betriebs vom Terminal 111 erforderlich sind. Bei anderen
Ausführungsformen kann die Steuereinheit 105 fehlen und die CPU
103 kann Protokolle an das Terminal 111 direkt bereitstellen.
-
Das Terminal 111 umfaßt eine Tastatur 115 für die Eingabe von
Daten in das Terminal 111 und ein Anzeigegerät 113 für die
Anzeige von mit der Tastatur 115 eingegebenen oder vom
Verarbeitungssystem 101 empfangenen Daten.
-
Ein üblicher Dialog zwischen dem Verarbeitungssystem 101 und
dem Terminal 111 ist folgender: Das Verarbeitungssystem 101
sendet zuerst Verarbeitung-Terminal-Protokolle an das
Terminal 111, die das Terminal 111 in den für die Durchführung der
gewünschten Operation zweckdienlichen Zustand versetzen.
Sodann sendet das Verarbeitungssystem 101 an das Terminal
Protokolle, die Textzeichen darstellen. Die Textzeichen
erscheinen am Anzeigegerät 113 in der Weise, die durch die
Protokolle vorgeschrieben ist, welche zum Versetzen des Terminals 111
in den gewünschten Zustand benutzt wurden. Das
Verarbeitungssystem 101 sendet dann ein Protokoll, das am Anzeigegerät 113
einen Cursor an eine Position bewegt, an welcher der Benutzer
des Terminals 111 eine Eingabe machen soll. Der Benutzer
benutzt dann die Tastatur 115 für die Eingabe von Daten in das
Terminal 111, welches Terminal-Verarbeitung-Protokolle über
die asynchrone Übertragungsleitung 109 an das
Verarbeitungssystem 101 sendet. Auf die Eingabe, die der Benutzer in der
eben beschriebenen Weise gemacht hat, kann das
Verarbeitungssystem 101 antworten, und der Benutzer kann dann nach
Erfordernis des Verarbeitungssystems 101 weitere Eingaben machen.
Im allgemeinen werden durch Terminal-Verarbeitung-Protokolle
Textzeichen vorgeschrieben, jedoch können einige Protokolle
Änderungen in nachfolgenden Zeichen vorschreiben und andere
können Informationen, die den Status des Terminals betreffen,
zurücksenden.
2. Auf erfindungsgemäße Protokolle ansprechendes Terminal
Fig. 2
-
Fig. 2 zeigt ein Blockschaltbild eines Terminals 111, das auf
die erfindungsgemäßen Protokolle anspricht. Der Betrieb des
Terminals 111 wird durch einen Mikroprozessor 201 gesteuert.
Bei einer erfindungsgemäßen Ausführungsform ist der
Mikroprozessor 201 ein von Motorola, Inc. hergestellter Motorola MC
68B00. Bei anderen Ausführungsformen können andere
Mikroprozessoren verwendet werden. Der Mikroprozessor 201 ist über
einen Bus 215 mit den übrigen Komponenten des Terminals 111
verbunden und kann über diesen Bus 215 Daten an diese
Komponenten abgeben und von ihnen empfangen. Zu den übrigen
Komponenten gehören Speicher und Vorrichtungen zum Senden,
Empfangen und Anzeigen von Daten. Der Speicher umfaßt folgendes:
-
Einen Anzeige-RAM (Speicher für direkten Zugriff) 225
zum Speichern von Codes von am Anzeigegerät 113
anzuzeigenden Zeichen.
-
Einen Attribut-RAM 223 zum Speichern von Attributcodes,
wie die Zeichen im Anzeige-RAM 225 am Anzeigegerät 113
anzuzeigen sind. Zu den Attributen gehören bei einer
erfindungsgemäßen Ausführungsform Blinken,
Inversdarstellung, Fettdarstellung und Unterstreichung.
-
Einen Programmdaten-RAM 231 zum Speichern von Daten, die
im internen Betrieb des Terminals 111 benutzt werden.
-
Einen Programm-ROM (Nur-Lese-Speicher) 251, der die
Programme enthält, die der Mikroprozessor beim Steuern des
Betriebs vom Terminal 111 ausführt.
-
Die übrigen Einrichtungen sind folgende:
-
Schalter 253 sind Schalter, die ein Benutzer des
Terminals 111 zum Spezifizieren bestimmter Optionen setzt.
-
Verarbeitungssystem-Anschluß 233; ist an die asynchrone
Übertragungsleitung 109 angeschlossen und umfaßt zwei
Komponenten: einen E/A-Datenanschluß 235 zum Empfangen
von Daten vom Verarbeitungssystem 101 und zur Abgabe von
Daten an dieses, und einen Steueranschluß 237 zum
Empfangen von Steuersignalen vom Verarbeitungssystem 101
und von anderen Einrichtungen im Terminal 111, und zur
Abgabe von Steuersignalen an das Verarbeitungssystem 101
über die Übertragungsleitung 109.
-
Tastatur-Anschluß 227; ist an die Tastatur 115
angeschlossen und empfängt Tastencodes von der Tastatur 115.
-
Anzeigegerät-Steuerung 217; ist an das Anzeigegerät 113
angeschlossen und steuert den Betrieb des Anzeigegerätes
113.
-
Der Mikroprozessor 201 kann die RAM-Speicher 223, 225 und 231
und den ROM-Speicher 251 sowie Register im
Verarbeitungssystem-Anschluß 233, im Tastatur-Anschluß 227 und in der
Anzeigegerät-Steuerung 217 aufrufen. Die Register haben folgende
Inhalte:
-
Im Steueranschluß 237 bestehen zwei Registerpaare: PIAD
249 und PIAC 247 sowie PIBD 245 und PIBC 243. Das
D-Register jedes Paares enthält Daten, die in Verbindung mit
einem Steuersignal benutzt werden. Das C-Register
enthält einen Steuercode.
-
Der E/A-Datenanschluß 235 hat zwei Register: ACIAC 241,
das einen Steuercode enthält, und ACIAD 239, das Daten
enthält, die im E/A-Datenanschluß 235 empfangen oder von
ihm gesandt wurden.
-
Im Tastatur-Anschluß 227 besteht ein einziges Register,
Keyst 229, das den Tastenanschlag enthält, der zuletzt
in die Tastatur 115 eingegeben wurde.
-
Die Anzeige-Steuerung 217 hat zwei Register: CRTA 221,
das eine Adresse im Anzeigegerät 113 enthält, und CRTD
219, das Daten enthält, die an dieser Adresse anzuzeigen
sind.
-
Der Mikroprozessor 201 kann ferner die Schalter 253
adressieren und die aktuelle Belegung der Schalter lesen. Vom
Mikroprozessor 201 adressierbare Daten können aus ihrer Adresse in
eines der internen Register des Mikroprozessors 201
eingelesen werden. Sind die Daten an einer Adresse einschreibbar,
können Daten aus einem der internen Register des
Mikroprozessors 201 in die Adresse eingelesen werden. Programme für den
Mikroprozessor 201 können ferner Rechen- und
Verknüpfungsoperationen an Daten vorschreiben, die in seinen internen
Registern vorhanden sind. Die Register haben die nachstehenden
Inhalte:
-
PC 213 enthält die Adresse des Befehls, den der
Mikroprozessor 201 aktuell ausführt.
-
SP 211 enthält die Adresse des oberen
Datenstapelbereichs im Programmdaten-RAM 231.
-
X 209 enthält eine Adresse, die zum Kalkulieren von
Datenadressen benutzt wird.
-
A 207 und B 205 enthalten Operanden zur Benutzung bei
Rechen- und Verknüpfungsoperationen.
-
CC 203 enthält Bit, welche den internen Zustand des
Mikroprozessors 201 nach bestimmten Operationen angeben.
-
Zusätzlich zum Empfang und zur Ausgabe von Daten über den Bus
215 erzeugt der Mikroprozessor 201 Adressen und Steuersignale
für die an den Bus 215 angeschlossenen Vorrichtungen und
antwortet auf Unterbrechungsanforderungen vom
Verarbeitungssystem-Anschluß 233. Die Unterbrechungsanforderungen werden vom
Verarbeitungssystem-Anschluß 233 generiert, wenn das Terminal
111 Daten oder Steuersignale vom Verarbeitungssystem 101,
einen Tastenanschlag von der Tastatur 115 empfängt oder die
Anzeige am Anzeigegerät 113 wiederauffrischen muß. Bei Empfang
einer Unterbrechungsanforderung unterbricht der
Mikroprozessor 201 die Ausführung des von ihm aktuell ausgeführten
Programms, sichert den aktuellen Inhalt seiner Register im
Stapelspeicher und führt Unterbrechungsroutinen 252 aus dem
Programm-ROM 251 aus. Nach Beendigung der Unterbrechungsroutinen
stellt der Mikroprozessor 201 den gesicherten Zustand wieder
her und setzt die Ausführung des Programms fort, das er bei
Eintreten der Unterbrechung ausgeführt hat.
-
Mit Steuerung durch ein Programm aus dem Programm-ROM 251
kann somit der Mikroprozessor 201 Daten von einer Einrichtung
im Terminal 111 holen, eine Operation an ihnen vornehmen und
das Ergebnis der Operation in einer anderen Einrichtung im
Terminal 111 speichern. Sind die Daten Werte für die Register
des Steueranschlusses 237, des E/A-Datenanschlusses 235 oder
der Anzeigesteuerung 217, können diese Einrichtungen durch
die Ausgabe von Daten oder Steuersignalen an das
Verarbeitungssystem 101 oder an das Anzeigegerät 113 ansprechen.
3. Allgemeine Arbeitsweise des Terminals 111
Fig. 3
-
Das Flußdiagramm in Fig. 3 stellt die allgemeine Arbeitsweise
des Terminals 111 dar. Wie allgemein für hier beschriebene
Flußdiagramme und Operationsbeschreibungen der Fall ist, ist
das Flußdiagramm so vereinfacht worden, daß es nur die für
die vorliegende Erfindung zutreffenden Operationen enthält.
Beispielsweise sind aus den Flußdiagrammen und Beschreibungen
alle Eingabeprüfoperationen weggelassen worden.
-
Beim Einschalten des Terminals 111 führt der Mikroprozessor
201 gemäß Fig. 3 die durch den Block 303 dargestellten
Operationen aus. Im Zuge dieser Operationen prüft der
Mikroprozessor 201 den Zustand der Komponenten vom Terminal 111 und
initialisiert die RAM-Speicher 231, 225 und 223 und die
Register im Steueranschluß 237, E/A-Datenanschluß 239 und in der
Anzeigesteuerung 217 auf die für den Operationsbeginn
richtigen Werte. Sodann beginnt der Mikroprozessor 201 mit der
Ausführung einer Hauptverarbeitungsschleife. Die Ausführung der
Schleife wird bis zum Ausschalten des Terminals 111
fortgesetzt.
-
Bei jeder Ausführung der Schleife untersucht der
Mikroprozessor 201 einen Bereich im Programmdaten-RAM 231, der als
Warteschlange zum Speichern von Datenbyte benutzt wird, auf die
das Terminal 111 antworten muß. Im Folgenden wird diese
Warteschlange als HostB bezeichnet. Wenn, wie im
Entscheidungsblock 305 der Fig. 3 dargestellt, HostB nicht leer ist, führt
der Mikroprozessor 201 die Blöcke 307 und 309 aus. Wie in
Block 307 angegeben, übernimmt der Mikroprozessor 201 das
Byte am Kopf von HostB, kopiert es in ein Register im
Mikroprozessor 201 und von dort zu einer als Key bezeichneten
Variablen im Programmdaten-RAM 231 und aktualisiert den
Kopfzeiger für HostB, damit das nächste Byte in der Warteschlange
nunmehr der Kopf der Warteschlange ist. Sodann wird das Byte
nach Maßgabe des Protokolls verarbeitet, das vom Terminal 111
aktuell ausgeführt wird.
-
Ist HostB leer, überprüft der Mikroprozessor 201 eine zweite
Warteschlange im Programmdaten-RAM 231, die im folgenden als
KeyB bezeichnet wird. KeyB enthält von der Tastatur 115
empfangene
Tastenanschläge. Wenn sich keine Daten in KeyB
befinden, prüft der Mikroprozessor 201, wie im Entscheidungsblock
311 dargestellt, erneut auf Vorhandensein von Daten in HostB.
Sind dort Daten vorhanden, prüft der Mikroprozessor 201 eine
Variable im RAM 231, die angibt, ob das Terminal im
Lokalbetrieb arbeitet oder Zeichen an das Verarbeitungssystem 101
sendet. Bei Lokalbetrieb antwortet das Terminal direkt auf
eine Eingabe von der Tastatur 115 und leitet diese Eingabe
nicht an das Verarbeitungssystem 101 weiter. Der
Entscheidungsblock 313 zeigt, daß im erstgenannten Fall die Blöcke
319 und 321 ausgeführt werden. Die in Block 319 dargestellte
Operation kopiert den Code am Kopf von KeyB in das Register A
207 und aktualisiert den Kopfzeiger für KeyB so, daß das
nächste Byte in der Warteschlange nunmehr Kopf ist. Die vom
Block 321 dargestellte Operation schreibt den Wert des
Registers A 207 an das Ende von HostB 321. Der Mikroprozessor 201
kehrt dann zum Anfang der Schleife zurück und wird daher
schließlich den von der Tastatur 115 empfangenen Code
verarbeiten. Befindet sich das Terminal nicht im Lokalbetrieb,
werden die Blöcke 315 und 317 ausgeführt. Diese Operationen
bewirken, daß das von der Tastatur empfangene Zeichen an das
Verarbeitungssystem 101 ausgegeben wird. Nach der Ausgabe
des Zeichens kehrt der Mikroprozessor 201 erneut zum Anfang
der Schleife zurück.
-
Die Ausführung der Hauptschleife wird unterbrochen, wenn ein
Eingang vom Verarbeitungssystem 101 am E/A-Datenanschluß 235
ansteht, ein Tastenanschlag von der Tastatur 115 im Anschluß
227 ankommt, oder die Anzeige 113 wiederaufgefrischt werden
muß. In jedem dieser Fälle ist das Ergebnis des Ereignisses
die Erzeugung eines Unterbrechungsanforderungssignals. Wie
weiter oben angegeben antwortet der Mikroprozessor 201 auf
das Unterbrechungsanforderungssignal durch Sichern des
Zustandes seiner internen Register im Datenstapel des RAM 231
und durch Ausführen einer Unterbrechungsroutine in
Unterbrechungsroutinen
252. Diese Routine überprüft die internen
Register in den Einrichtungen, um die zu bestimmen, welche die
Unterbrechung hervorgerufen hat, und warum eine Unterbrechung
stattfand. Sie führt dann aus den Unterbrechungsroutinen 252
die Routine aus, die zur Behandlung dieses Unterbrechungstyps
zweckdienlich ist. Nach Beendigung der Unterbrechungsroutine
wird der gesicherte Zustand wiederhergestellt und die
Ausführung der Hauptverarbeitungsschleife fortgesetzt.
-
Fand die Unterbrechung statt, weil ein Code vom
Verarbeitungssystem 101 empfangen wurde, speichert die
Unterbrechungsroutine den empfangenen Code in ACIAD 239 am Ende von
HostB. Im Falle von 7-Bit-Codes wird das höchstwertige Bit
des in HostB gespeicherten Byte auf 0 gesetzt. Fand die
Unterbrechung statt, weil ein Code von der Tastatur 115
empfangen wurde, speichert die Unterbrechungsroutine den
empfangenen Code in Keyst 229 am Ende von KeyB. Wie zuvor erläutert,
führt die Ausführung der Hauptverarbeitungsschleife
schließlich zur Verarbeitung des Code im Codeverarbeitung-Block 309.
Fand die Unterbrechung statt, weil die Anzeige 113
wiederaufgefrischt werden mußte, führt der Mikroprozessor 201 eine
Routine aus, welche die Inhalte des Anzeige-RAM 225 und des
Attribut-RAM 223 an die Anzeigesteuerung 217 ausgibt. Was
tatsächlich am Anzeigegerät 113 erscheint, hängt von dem im
Anzeige-RAM 225 gespeicherten Zeichencode ab, von den dem
Zeichen entsprechenden Attributen im Attribut-RAM 223 und vom
Zeichensatz, der im Terminal 111 aktuell benutzt wird.
-
Die Art und Weise, wie ein Zeichencode vom
Verarbeitungssystem 101 empfangen und am Anzeigegerät 113 angezeigt wird,
liefert ein allgemeines Beispiel für die Arbeitsweise des
Terminals 111. Der Zeichencode kommt über die asynchrone
Übertragungsleitung 109 im E/A-Datenanschluß 235 an und wird
in ACIAD 239 gespeichert. Bei Eintreffen des Zeichencodes
generiert der E/A-Datenanschluß 235 eine
Unterbrechungsanforderung.
Als Folge der Unterbrechungsanforderung führt der
Mikroprozessor 201 eine Unterbrechungsroutine aus, die den
Zeichencode ans Ende von HostB setzt. Nach Verlassen der
Unterbrechung setzt der Mikroprozessor 201 die Ausführung der
Hauptschleife fort und verarbeitet schließlich den
Zeichencode. Die in diesem Falle lediglich auszuführende Maßnahme ist
das Anzeigen des Zeichens am Anzeigegerät 113; die
Verarbeitung des Blockes 309 besteht also nur im Schreiben des
Zeichens und seiner Attribute in die richtigen Adressen im
Anzeige-RAM 225 und Attribut-RAM 223. Bei der nächsten
Unterbrechung der Hauptschleife zur Wiederauffrischung werden die
Inhalte von RAM 225 angezeigt und folglich wird das dem
Zeichencode entsprechende Zeichen angezeigt.
4. Verarbeitungsprotokolle im Terminal 111
Fig. 4
-
Wie weiter oben angegeben, werden Daten und
Steuerinformationen zwischen dem Verarbeitungssystem 101 und dem Terminal 111
in Form von Protokollen übertragen. Bei einer
erfindungsgemäßen Ausführungsform bilden die Daten und Steuerinformationen
in einem Protokoll eine Sequenz von einem oder mehreren 7-
oder 8-Bit-Codes. Innerhalb eines bestimmten Protokolls sind
alle Codes entweder 7 oder 8 Bit groß. Die Codes werden in
der Reihenfolge verarbeitet, in der sie im Terminal 111
empfangen werden. Der erste Code wird als Angabe der Tätigkeit
interpretiert, die vom Terminal ausgeführt werden soll. Ist
mehr als ein Code vorhanden, enthalten die übrigen Codes
Informationen, die benötigt werden, um die vom ersten Code
angegebene Tätigkeit auszuführen.
-
Enthält ein Protokoll nur eine einzigen Code, empfängt das
Terminal 111 einfach den Code und führt die vom Code
spezifizierte Tätigkeit aus. Beispiele solcher Einzelcode-Protokolle
sind die Protokolle für die anzeigbaren Zeichen. Jedes
Protokoll
enthält einen einzigen Zeichencode. Wie weiter oben
beschrieben, antwortet das Terminal 111 auf den Zeichencode
durch die Anzeige des spezifizierten Zeichens am Anzeigegerät
113. Enthält ein Protokoll mehr als einen Code, empfängt das
Terminal 111 den ersten Code, führt die verlangte
Verarbeitung aus und setzt im RAM 231 eine hier als State bezeichnete
Variable auf einen Wert, der die Art der vom ersten Code
spezifizierten Operation angibt. Das Terminal 111 empfängt dann
den zweiten Code und verarbeitet ihn nach Maßgabe des Wertes
vom Code und des Wertes von State. Sind weitere Codes
vorhanden, wird die Verarbeitung jedes Codes durch den Wert des
Codes und den Wert von State bestimmt und enthält das Setzen
von State auf einen neuen Wert. Bei der Verarbeitung des
letzten Codes wird State auf 0 rückgesetzt.
-
Ein detailliertes Flußdiagramm der Protokollverarbeitung bei
einer erfindungsgemäßen Ausführungsform ist in Fig. 4A und 4B
dargestellt. Das Flußdiagramm in diesen Figuren stellt die
Verarbeitung dar, die im Codeverarbeitung-Block 309 der in
Fig. 3 dargestellten Hauptverarbeitungsschleife stattfindet.
Die Verarbeitung wird in einer Subroutine ausgeführt und
folglich beginnt die Verarbeitung mit einem Befehl JSR
(Sprung zur Subroutine) in der Hauptschleife (Terminal 401).
Der Mikroprozessor 201 führt einen JSR-Befehl dadurch aus,
daß er die Adresse des dem JSR folgenden Befehls auf dem
Datenstapel im RAM 231 sichert und PC 213 auf die Adresse des
ersten Befehls in der Subroutine setzt, so daß der nächste
auszuführende Befehl der erste Befehl in der Subroutine ist.
-
Der vom Mikroprozessor 201 mit Steuerung durch die Subroutine
ausgeführte erste Arbeitsschritt ist das Speichern des
aktuell verarbeiteten Codebyte, das im veränderlichen Key im
Register A 207 des Mikroprozessors 201 enthalten ist. Als
nächstes führt der Mikroprozessor 201 die Verarbeitung durch, die
zum Konvertieren bestimmter Codes von 7 auf 8 Bit notwendig
ist. Wie weiter unten näher erläutert wird, geht solchen
Codes ein Konvertierungscode voraus. Bei einer
erfindungsgemäßen Ausführungsform hat dieser Code den Wert 04. Wie sich aus
dem Entscheidungsblock 455 und dem Block 459 ergibt, spricht
der Mikroprozessor 201 auf den Konvertierungscode durch
Setzen einer Sethb genannten Variablen und durch die Ausführung
eines RTS-Befehls (Anforderung Starten) (Terminal 461) an,
der den Zustand wiederherstellt, der durch den JSR-Befehl
(Terminal 401) gesichert wurde, so daß die Operation in der
Hauptschleife, die dem Block 309 folgt, ausgeführt wird. Wenn
der dem Konvertierungscode folgende Code empfangen wird, ist
Sethb nicht gleich 0, und in diesem Fall wird, wie im
Entscheidungsblock 455 und dem Block 457 angegeben, das achte
Bit in A und in Key gesetzt und Sethb wird gelöscht.
-
Der Mikroprozessor 201 bestimmt dann, ob die variable State =
0 ist (Entscheidungsblock 407). Wenn ja, ist der Code im
Register A 207 das erste Byte eines Protokolls. Das erste Byte
ist entweder ein Steuercode oder irgendeine Zeichenart
(wahrscheinlich ein druckbares Zeichen). Ist es das erste, setzt
der Mikroprozessor 201, wie das der Entscheidungsblock 425
zeigt, die Variable State (Block 427) und führt die für
diesen Steuercode erforderliche Verarbeitung aus. Ist das Byte
das letztere, bestimmt der Mikroprozessor 201, ob es druckbar
ist (Entscheidungsblock 429) und speichert das Zeichen und
seine Attribute an den zweckdienlichen Adressen im
Anzeige-RAM 225 und Attribut-RAM 223, so daß das Zeichen am
Anzeigegerät 113 angezeigt wird, sobald die Anzeige 113
wiederaufgefrischt wird. Die zweckdienlichen Adressen in den
RAM-Speichern 225 und 223 werden nach Variablen im RAM 231 bestimmt,
welche die aktuelle Adresse im Anzeige-RAM 225 und die
aktuellen Attribute enthalten. Bei einer erfindungsgemäßen
Ausführungsform hat die Adresse der Attribute im Attribut-RAN
223 für ein bestimmtes Zeichen im Anzeige-RAN 225 eine
konstante Versetzung gegenüber der Adresse des Zeichens im
Anzeige-RAN
225 und kann daher errechnet werden durch Addieren
der Versetzung zur Adresse des Zeichens im Anzeige-RAN 225.
Ist das Zeichen weder druckbar noch ein Steuercode, geht der
Mikroprozessor 201 einfach zum Block 432 weiter (Fig. 4B).
-
Ist State nicht gleich 0 (Entscheidungsblock 407), bestimmt
der Mikroprozessor 201 dann, ob State = 45
(Entscheidungsblock 409). In diesem Falle ist es das zweite Byte eines
Protokolls "Wiederhole Nächstes", das verarbeitet wird. Wie
weiter unten näher erläutert wird, spezifiziert dieses
Protokoll, daß ein folgendes Protokoll so viel Male wiederholt
wird, wie im zweiten Byte des "Wiederhole Nächstes " -Protokoll
vorgeschrieben ist. Wenn das zweite Byte eines "Wiederhole
Nächstes"-Protokoll verarbeitet wird, setzt der Prozessor 201
die Variable Rtime vom zweiten Byte, so daß das folgende
Protokoll die spezifizierte Anzahl Male wiederholt wird, und
setzt die Variable Rflag, die angibt, daß das zu
wiederholende Protokoll in die Variable ComB in RAN 231 zu laden ist
(Block 415). Sodann führt der Prozessor 201 einen RTS-Befehl
aus (Terminal 417), der die Verarbeitung im Block 309
beendet.
-
Wenn das, was verarbeitet wird, nicht das zweite Byte eines
"Wiederhole Nächstes"-Protokolls ist, bestimmt der
Mikroprozessor 201 nach dem Wert der Rflag-Variable, ob der Code Teil
eines Protokolls ist, das gesichert wird, um entsprechend dem
Protokoll "Wiederhole Nächstes" wiederholt zu werden (Block
411). Wenn ja, wird der nicht verschobene Code erneut von der
Variablen Key zum Register A 207 und von da zum Ende der
Warteschlange in ComB gesandt (Block 413). Ob das Codebyte in
ComB gespeichert ist oder nicht, es wird dann nach Maßgabe
seines Wertes und nach dem aktuellen Wert von State (Block
423) verarbeitet, d. h. wie durch das Protokoll gefordert, zu
dem der Code gehört.
-
Der nächste Arbeitsschritt ist der Entscheidungsblock 432
(Fig. 4B). Wenn der Mikroprozessor 201 das Protokoll
Wiederhole Nächstes nicht ausführt, führt er einen RTS-Befehl
(Terminal 433) aus, wodurch die Verarbeitung des
Codeverarbeitung-Blocks 309 beendet wird. Führt er das Protokoll
Wiederhole Nächstes aus und hat er bereits, wie weiter oben
beschrieben, das zweite Byte dieses Protokolls verarbeitet,
lädt er entweder das zu wiederholende Protokoll in ComB oder
führt das zu wiederholende Protokoll aus ComB aus
(Entscheidungsblock 435).
-
Führt der Mikroprozessor 201 kein Laden aus und ist State
nicht gleich 0 (Entscheidungsblock 440), verbleiben Byte des
Befehls zum Abruf aus HostB und der Mikroprozessor 201 führt
einen RTS-Befehl aus, der die Ausführung des
Codeverarbeitung-Blocks 309 für das gerade verarbeitete Byte beendet
(Terminal 441). Wenn State doch gleich 0 ist, wurden alle
Byte des zu wiederholenden Protokolls empfangen und die im
Block 413 ausgeführte Ladeoperation ist beendet. In diesem
Falle setzt der Mikroprozessor 201 die Variable Rflag so, daß
sie angibt, daß das geladene Protokoll nunmehr wiederholt
wird (Block 434) und rücksetzt einen hier BuffP genannten
Zeiger, der das als nächstes aus ComB zu lesende Byte angibt,
derart, daß er auf das erste Byte des geladenen Protokolls
verweist. Danach lädt der Mikroprozessor 201 das erste Byte
aus ComB in die Variable Key und springt zum Block 407 (Fig.
4A). Somit wird das nächste zu verarbeitende Byte im
Codeverarbeitung-Block 409 das erste Byte in ComB sein.
-
Weite mit dem Entscheidungsblock 443: Wenn das zu
wiederholende Protokoll nicht geladen wird, wird es wiederholt. Wenn
in diesem Fall State gleich 0 ist (Entscheidungsblock 443),
ist die aktuelle Wiederholung beendet. Am Ende jeder
Wiederholung reduziert der Mikroprozessor 201 die Variable Rtime
(Block 445). Ist Rtime nicht gleich 0, verbleiben mehrere
Wiederholungen; somit springt der Mikroprozessor 201 zum
Block 437 und aktiviert die nächste Wiederholung. Ist Rtime
doch gleich 0, sind alle Wiederholungen beendet; somit löscht
der Mikroprozessor 201 die Variable Rflag (Block 449) und
führt einen Rücksprungbefehl aus, wodurch die Ausführung des
Codeverarbeitung-Blocks (309) (Terminal 451) beendet wird.
Ist State nicht gleich 0 (Entscheidungsblock 443), erhöht der
Mikroprozessor BuffP auf ComB, um auf das nächste Byte des
gespeicherten Befehls zu verweisen, ruft dieses Byte ab
(Block 439) und springt zum Entscheidungsblock 407 (Fig. 4A).
Wie weiter oben angegeben, wird das aus ComB abgerufene Byte
der nächste zu verarbeitende Code sein.
5. Detaillierte Beschreibung bestimmter Protokolle
-
Nachstehend werden bestimmte Protokolle näher beschrieben,
auf die das Terminal 111 anspricht oder die von ihm erzeugt
werden. Eine Figur wird die Form in einer erfindungsgemäßen
Ausführungsform jedes Protokolls zeigen. Jede Beschreibung
erläutert Form, Funktion und Implementierung des Protokolls
in einer erfindungsgemäßen Ausführungsform. Die in einer
erfindungsgemäßen Ausführungsform verwendeten Werte werden in
sedezimaler Darstellung geschrieben. Protokolle vom
Verarbeitungssystem an das Terminal werden zuerst, danach Protokolle
vom Terminal an das Verarbeitungssystem beschrieben.
Das Attributwiedereinschreib-Protokoll: Fig. 5
-
Das Attributwiedereinschreib-Protokoll wird benutzt, um die
Attribute einer Zeichenfolge im Anzeige-RAN 225 auf einen
aktuellen Attributwert zu ändern. Das Protokoll und die
Variablen, die zu seiner Implementierung in einer
erfindungsgemäßen Ausführungsform verwendet werden, sind in Fig. 5
dargestellt. Das Attributwiedereinschreib-Protokoll besteht aus
drei Byte:
-
ESC Code 604 Codeumschaltung
-
RWA Code 703 (Attributwiedereinschreib-Code),
mit dem Wert X57
-
Count 705 (Zähler), der die Anzahl Zeichen aus der
aktuellen Adresse im Anzeige-RAN 225
spezifiziert, deren Attribute zu ändern sind.
-
Bei einer erfindungsgemäßen Ausführungsform wird das
Attributwiedereinschreib-Protokoll 701 folgendermaßen
implementiert: Ansprechend auf den ESC-Code 604 setzt der
Mikroprozessor 201 State auf 1; auf State = 1 und RWA-Code 703
ansprechend, setzt der Mikroprozessor 201 State auf 40. Als
Antwort auf diesen Wert von State und auf den Zähler 705
aktiviert der Mikroprozessor 201 eine Schleife, indem er die
Variable Temp 713 auf den Zählwert des Zählers 705 setzt, die
Variable Wk7 715 auf den Wert der CurAddr 629 setzt, die, wie
schon angegeben, den Wert der aktuellen Adresse im
Anzeige-RAN 225 enthält, und die Konstante, die zum Ableiten von
Adressen im Attribut-RAM 223 benutzt wurde, zum Wert in Wk7
715 addiert, um die Adresse des entsprechenden Attributs im
Attribut-RAN 223 zu erzeugen, und diese Adresse in Wk9
einschreibt. Die Variable Atb 709 enthält das aktuelle Attribut.
Der Mikroprozessor springt dann in die Schleife ein. Er
schreibt zuerst den Wert von Atb 709 in die durch Wk9 717
spezifizierte Adresse ein, wodurch er das Attribut an dieser
Adresse auf das aktuelle Attribut setzt. Sodann lädt er die
Adressen in Wk7 715 und Wk9 in das Register X 209, erhöht sie
und schreibt sie nach Wk7 715 zurück. Am Ende reduziert er
Temp 713. Wenn Temp 713 nicht gleich 0 ist, wiederholt der
Mikroprozessor 201 die Arbeitsschritte der Schleife. Dadurch
werden die Attribute der Anzahl Zeichen, die im Zähler 705
vorgeschrieben sind, auf das aktuelle Attribut geändert.
6. Schlußfolgerung
-
Die vorstehende Beschreibung hat gezeigt, wie ein Terminal
konstruiert sein kann, das auf eine Vielzahl neuer und
zweckdienlicher Protokolle anspricht und sie erzeugt, und wie die
Protokolle selbst bei einer erfindungsgemäßen Ausführungsform
implementiert werden können. Für den Fachmann leuchtet es
ein, daß die hier beschriebenen speziellen Formen der
Implementierungen von den Merkmalen des Terminals 111 abhängig
sind. Bei anderen Terminals oder bei Terminals, die
Mikroprozessoren anderer Typen verwenden, sind andere
Implementierungen der hier beschriebenen Protokolle möglich, wie auch
Protokolle möglich sind, die formal von den hier beschriebenen
verschieden sind, jedoch im wesentlichen dieselben
Informationen enthalten und auf die das Terminal 111 oder das
Verarbeitungssystem 101 auf im wesentlichen die gleiche Weise
anspricht. Insbesondere sind die hier beschriebenen Code- und
Variablenwerte auf die beschriebene Ausführungsform
abgestimmt und sind reine Beispiele.