0x00
bis 0x1F
sind Steuerzeichen, z.B. 0x0D
:
Carriage Return - Wagenrücklauf; bei einer Teletype (Funktion wie eine elektrische Schreibmaschine) ist das wörtlich zu nehmen!
0x20
bis 0x7E
sind normale Zeichen.
Leider wurde es hier aber versäumt, länderspezifische Zeichen zu definieren.
So ist z.B. das Zeichen für 0x7B
im Amerikanischen ein '{' im Deutschen aber ein 'ä' - von anderen Sprachen ganz zu schweigen.
0x7F
.
Dies ist ein ganz besonderes Zeichen - RUB OUT (Bit-Muster 1111111).
RUB OUT (Ausstanzen) weist darauf hin, dass die Teletype einen Lochstreifenstanzer besaß.
Bei einer fehlerhaften Eingabe wurde die Taste RUB OUT betätigt, wodurch das Stanzpapier entsprechend gelocht wurde - was wiederum bei einem Bildschirm nicht gemacht werden sollte.
0x1b
).
Zum Manipulieren des Cursors wurde dieses Zeichen üblicherweise als Einleitungszeichen verwendet.
(Bei einigen Herstellern wurden spezielle Steuerungen für den Bildschirm allerdings aus dem Bereich der Steuerzeichen genutzt).
Anfänglich hatten die Hersteller eigene Steuersequenzen.
Die Firma Digital Equipment Corporation (DEC) setzte mit ihren VT-Modellen dann einen Standard.
Hier findet sich eine Zusammenstellung von Dokumenten der VT-Serie.
Die Steuerzeichen gut dokumentiert finden sich im VT100 User Guide.
Als CP/M auf den Markt kam, gab es noch keinen Standard, erst MS-DOS bediente sich der ANSI-Steuerzeichen.
Hier findet sich eine Übersicht im MS-DOS Umfeld.
TINST.COM
installiert aus einer Vielzahl von Möglichkeiten die Steuerungen für das eigene Terminal.
Hier ein Ausschnitt aus der schier unendlichen Anzahl von Möglichkeiten.
Als der Joyce auf den Markt kam, bediente er sich auch nicht des ANSI-Standards sondern setzte Steuersequenzen des Zenith Z19/Z29 Monitors ein.
Hier findet sich eine (englische) Zusammenstellung für diesen Monitor (und hier in Deutsch).
Zu erkennen ist die Ähnlichkeit beider Sätze von Steuerzeichen.
Als ich damals mit der Anbindung meines Joyce über ein MODEM in die weite Welt begann, habe ich das über den Terminal-Emulator von KERMIT gemacht.
In den angeschlossenen Einrichtungen wurde meistens das VT-100 Terminal unterstützt und ich habe einen ANSI-Emulator geschrieben.
Umgesetzt habe ich die Sequenzen folgendermaßen:
Funktion | ANSI Sequenz | JOCYE Umsetzung |
---|---|---|
Cursor hoch | ESC [ Pn A | Pn-mal ESC A |
Cursor runter | ESC [ Pn B | Pn-mal ESC B |
Cursor rechts | ESC [ Pn C | Pn-mal ESC C |
Cursor links | ESC [ Pn D | Pn-mal ESC D |
Cursor setzen | ESC [ P1;P2 H | ESC Y P1+31 P2+31 |
Bildschirm löschen | ESC [ Pn J | ESC J |
Zeile löschen | ESC [ Pn K | ESC K |
Attribute setzen | ESC [ P1;..;Pn m |
Px=0 ESC u ESC q Px=4 ESC r Px=7 ESC p |
In einer späteren Implementation einer ANSI-RSX kamen noch folgende Funktionen hinzu: | ||
Funktion | ANSI Sequenz | JOCYE Umsetzung |
Cursor setzen | ESC [ P1;P2 f | ESC Y P1+31 P2+31 |
Cursor speichern | ESC [ s | ESC j |
Cursor laden | ESC [ u | ESC k |
ESC [ Pn J
und ESC [ Pn K
.
Korrekt muss die Umsetzung wie folgt aussehen:
Korrekte Funktionen | ||
---|---|---|
Bildschirm löschen | ||
Funktion | ANSI Sequenz | JOCYE Umsetzung |
Von Cursor bis Ende | ESC [ 0 J | ESC J - Default |
Von Anfang bis Cursor | ESC [ 1 J | ESC d |
Alles löschen | ESC [ 2 J | ESC E |
Zeile löschen | ||
Funktion | ANSI Sequenz | JOCYE Umsetzung |
Von Cursor bis Ende | ESC [ 0 K | ESC K - Default |
Von Anfang bis Cursor | ESC [ 1 K | ESC o |
Alles löschen | ESC [ 2 K | ESC l |
GENCOM
angehängt;
mit ihm lässt sich die RSX installieren und löschen.
Hier eine Übersicht über die Programme:
ANSI-RSX | ANSI Kontrollprogramm | KERMIT (Teil 10) |