ANSI Escapesequenz



Als Escapesequenz wird eine Steuersequenz bezeichnet, die Escape als Solist verwendet . ANSI Escapesequenzen , sterben Auf der Standard – von ANSI X3.64 und ECMA -48 Beruhigende, Dienen , wo Bildschirm- und Tastatursteuerung auf Terminals Wie der Dezember VT100 (1979) und gerechnet wird ebenfalls in Einer Reihe von Terminalemulationen und Kommandozeileninterpretern implementiert.

Die 2. Ausgabe von ECMA-48 wurde 1978 als ISO 6429 und mit der 4. Ausgabe 1986 als ISO / IEC 6429 standardisiert. Der aktuelle ECMA-48-Standard eentspricht der 5. Ausgabe vom Juni 1991.

Geschichte

In der 1970er-Jahre Würden die ASCII – Standard des BEREITS 1968 festgelegt Worden Krieg, Durch das American National Standards Institute (ANSI) überarbeitet. Of this als ANSI X3.4-1977 bezeichnete Norm jedoch nur die Ersten 7 Bit bestimmt, Würde als sterben ASCII Zeichentabelle Bekannt und Bild sterben Grund Lage für weitere internationale Zeichensätze . Die Ersten Arbeiten zur Standardisierung Eines 8-Bit-Zeichensatz resultiert BEREITS 1971 in ANSI X3.41 und ECMA-35. Gemeinsam mit der European Computer Manufacturers Association(ECMA) Wird im Ausschuß mit der Bezeichnung „X3L2“ bei ANSI und „TC 1“ bei ECMA an der Erweiterung 8-Bit Eingabe- und -Ausgabesteuerung Getriebe Weide war der ua sterben möglichkeiten der Videoausgabe auf Terminals erweitern und gleichzeitig standardisieren sollten . Das Plan Ergebnis of this Arbeit ist ECMA-48 vom September 1976 ANSI X3.64 Eulen von 1977. This Spécification Würden sie Auch ISO Komitees vorgelegt und 1978 als ISO 6429 Akzeptiert. Die 2. Ausgabe von ANSI X3.64 und ECMA-48 von 1979 ist Identisch mit der ISO-Norm.

Diese Ernst Terminals, die Transformatoren ANSI X3.64-1977, waren das DEC-VT100-Terminal von 1978 und dort Heathkit H89 von 1979.

Standards

Der Standard trug das Minimum von ANSI als ECMA herausgegeben und eine Einreichung auch ISO und IEC-Norm. Einhaltung der ECMA-Standards frei zugänglich (kostenlos). Dort warnt der ANSI-Standard die ISO-Norm vorgezogen, um Doppelstandardisierung zu vermeiden.

Jahr bezeichnung ANSI ECMA ISO / IEC
1965 7-Bit codierter Zeichensatz USAS [1] X3.4 ECMA-6 [2] ISO / IEC 646
1971 Charaktercode-Struktur und Erweiterungstechniken ANSI X3.41 ECMA-35 [3] ISO / IEC 2022
1974 8-Bit codierte Zeichensatzstruktur und Regeln  ? ECMA-43 [4] ISO / IEC 4873
1979 Steuerfunktionen für codierte Zeichensätze ANSI X3.64 ECMA-48 [5] ISO / IEC 6429

Die Standards, Achtsamkeit und Miteinander, Akzeptiert – Wurde einer der Standards, so wurde meist auch eine Version der anderen Standards veröffentlicht. Leader Gibt es dennoch in Unterschiedlichen Implementierungen und Dokumenten (Sogar Standards und Normen). [6]

ANSI-Steuerzeichen und -Steruersequenzen

Es gibt ASCII-Standard nach ECMA-6 (ANSI X3.4) definiert C0-Steuerzeichen (Im Bereich 0-31 Dezimal Bz. 00-1F Hexadezimal ) und ist auf 7 Bits begrenzt. Die Erweiterung auf 8 Bit nach ECMA-43 Leguminosen, die als C1Steuerzeichen im Bereich von 128-159 dezimal eingestuft wurden 80-9F hexadezimal für die Bildschirm- und Druckersteuerung. Weil ist der Platz für Steuerzeichen eingeschränkt, wurden zusätzliche Befehle und Funktion über Steuersequenzen implementiert. [7]

Während ein Steuerzeichen Einer Funktion Regisseur umsetzt, Ist bei Einer Steuersequenz Mehr Notwendig Zeichen. Die Anzahl der Zeichen ist in Ihrer Nähe. Die primären Steuerzeichen liegen in der Mitte der Serie mit 8-Bit-Zeichensätzen zur Verfügung. Sinn nach ANSI X3.64 bzw. ECMA-48 standardisiert und Knochen HALTEN Cursor -Befehle, Bildschirm-befehle (Lösch-, zurückzu-, Modus befehle) und Tastatur – befehle. [8]

Escapesequenzen

DaMiT aber Auch 7-Bit-Systeme von den erweiterten ANSI Steuerzeichen und -Steuersequenzen profitieren Können, gerechnet wurden sogenannte Escapesequenzen in Hollywood. Es Gibt von den meisten Steuerzeichen im C1 Bereich ein Äquivalent dazu über Eine Escapesequenz, sterben SOMIT available in Systemen MIT 7-Bit-Zeichensatz – sie ASCII Zeichensatz – verfügbar Sind. This gerechnet wird als „ANSI Escapesequenzen“ ( englisch ANSI – Escape – Sequenzen , manchmal Auch ANSI Escape – Codes ) Bekannt. [7]

ANSI-Steuerzeichen

→ Hauptartikel : Steuerzeichen # C1

Dies ist ein Auszug von C1 Steuerzeichen aus dem 8-Bit „ANSI“ -Zeichensatz, stirbt Profilierung mittels Escapesequenzen (C0-Steuerzeichen einer ASCII-Position 27) im 7-Bit-ASCII Zeichensatz zugänglich Ist.

7-Bit-Äquivalent (C0) zu den erweiterten 8-Bit Steuerzeichen (C1)
Steuerbefehl C1-Position C0-Positionen
Zeichenname ISO IETF Fluch dez Oktober Escapesequenz Fluch dez Oktober
Füllzeichen PAD PA 80 128 200 ESC @ 1B 40 027 064 33 100
Hohe Oktett-Voreinstellung HOP HO 81 129 201 ESC A 1B 41 027 065 33 101
Pause hier erlaubt BPH BH 82 130 202 ESC B 1B 42 027 066 33 102
Kein Bruch hier NBH NH 83 131 203 ESC C 1B 43 027 067 33 103
Index IND IN 84 132 204 ESC D 1B 44 027 068 33 104
Nächste Zeile NEL NL 85 133 205 ESC E 1B 45 027 069 33 105
Start oder ausgewählter Bereich SSA SA 86 134 206 ESC F 1B 46 027 070 33 106
Ende des ausgewählten Bereichs ESA ES 87 135 207 ESC G 1B 47 027 071 33 107
Charaktertabellen-Set HTS HS 88 136 210 ESC H 1B 48 027 072 33 110
Charaktertabellierung mit Begründung HTJ HJ 89 137 211 ESC I 1B 49 027 073 33 111
Tabulatoren-Set VTS VS 8A 138 212 ESC J 1B 4A 027 074 33 112
Teilstrich vorwärts PLD PD 8B 139 213 ESC K 1B 4B 027 075 33 113
Teilstrich rückwärts PLU PU 8C 140 214 ESC L 1B 4C 027 076 33 114
Zeilenvorschub rückgängig machen RI RI 8D 141 215 ESC M 1B 4D 027 077 33 115
Einzelne Verschiebung 2 SS2 S2 8E 142 216 ESC N 1B 4E 027 078 33 116
Einzelne Verschiebung 3 SS3 S3 8F 143 217 ESC O 1B 4F 027 079 33 117
Gerätesteuerungszeichenfolge DCS DC 90 144 220 ESC P 1B 50 027 080 33 120
Private Nutzung PU1 P1 91 145 221 ESC Q 1B 51 027 081 33 121
Privatnutzung Zwei PU2 P2 92 146 222 ESC R 1B 52 027 082 33 122
Sendezustand einstellen STS TS 93 147 223 ESC S 1B 53 027 083 33 123
Charakter abbrechen CCH CC 94 148 224 ESC T 1B 54 027 084 33 124
Nachricht wartet MW MW 95 149 225 ESC U 1B 55 027 085 33 125
Schutzbereich starten SPA SG 96 150 226 ESC V 1B 56 027 086 33 126
Endgeschützter Bereich EPA EG 97 151 227 ESC W 1B 57 027 087 33 127
Start der Zeichenfolge SOS SS 98 152 230 ESC X 1B 58 027 088 33 130
Einzelner grafischer Buchstabe-Einleiter SGCI GC 99 153 231 ESC Y 1B 59 027 089 33 131
Einzelner Charakter-Einführer SCI SC 9A 154 232 ESC Z 1B 5A 027 090 33 132
ROI 9A 154 232 ESC % 1B 25 027 037 33 45
Steuersequenz Intro CSI CI 9B 155 233 ESC [ 1B 5B 027 091 33 133
String Terminator ST SI 9C 156 234 ESC \ 1B 5C 027 092 33 134
Betriebssystembefehl OSC OC 9D 157 235 ESC] 1B 5D 027 093 33 135
Datenschutzmeldung PM PM 9E 158 236 ESC 1B 5E 027 094 33 136
Anwendungsprogrammbefehl APC AC 9F 159 237 ESC _ 1B 5F 027 095 33 137

Zur Berechnung der Escapesequenz werden vom C1-Steuerzeichen 40h, 64 dezimal oder 100 octal abgezogen. So hat beispielsweise das Steuerzeichen PADsterben C1-Position 80h: zieht bis 40h Davon ab erhalten Mann sterben Escapesequenz ESC @, Weil das @ -Zeichen sterben C0-Position 40h Hut, auch 80h-40h = 40h. Ebenso verhalten sich bei es in dezimal ausgedrückten Zeichenpositionen: 128-64 = 64 (entspricht 40h), Eulen Oktal: 200-100 = 100 (entspricht 40 h).

Es Einzigen nachteil wo Escapesequenz ist that ein addition Zeichen pro Steuerbefehl Verarbeitet Werden Durcheinander wurde auf lange samen Terminals Geschwindigkeitseinbußen Führen Könnte zu – zumindest theoretisch Und wenn ein ANSI-Script sehr langen Krieg. Nach der Spezifikation Können alle 8-Bit-fähigen Geräte Auch sterben 7-Bit-Escapefunktion Nutzen, sodass sich sterben Escapesequenzen durchgesetzt HABEN.

Zeichensätze

→ Hauptartikel : Zeichensatz und Unicode

In den Meistern der Zeichensätzen nahmen die C0- und C1-Steuerzeichen die normativen Positionen an. Außer auf emulierten VT100-Terminals finden Sie bald nach C0-Steuerzeichen Verwendung. [9]

Bei der Entwicklung von Unicode wurden diese ebenfalls übernommen, so in Unicode de Steuerzeichen gem. ANSI X3.64 und ECMA-48 innerhalb der ersten 256 Position des absurden Verstandes. ANSI-Escapesequenzen sind ohne Unicode-Funktion, aber wurden einige der Funktionen eines Unicode-Position ähnlich umgesetzt (z. B. ein geschütztes Leerzeichen ).

Steuerzeichen

Die gleiche Funktion wie das einzelne Steuerzeichen. Als Escapesequenz, 7-Bit-C0-Bereich und Sind damit mit Systemen, die 7-Bit-Modus waren, kompatibel.

Steuersequenzen

Eine Steuersequenz wird immer durch ein Steuerzeichen eingeleitet und bestes Minimum aus zwei Zeichen. Bei variabler Größe wird die Steuersequenz durch ein definiertes abschließendes Zeichen oder durch ein Trennzeichen abgeschlossen. Eine Steuersequenz wird wie ein anderes Steuerzeichen, mit dem Unterschied, wer die gleiche Steuersequenz gesungen hatte, musste vor deren Umsetzung erfolgen.

Im Wesentliches gibt es drei Steuerzeichen

  • ESC, Flucht
  • SCI, Single Character Introducer bzw. ROIauf VT100-Terminals
  • CSI, Steuersequenz Intro

Nur das Steuerzeichen ESCliegt im ASCII-Bereich und gehört zu den 7-Bit kompatiblen C0-Steuerzeichen. Die Beiden C1 Steuerzeichen SCIROIund CSIcan über Eine Escapesequenz substituiert Werden, Womit Steuersequenz Dann ASCII kompatibel auf 7-Bit Beschränkt bleibt sterben.

Die Steuerzeichen APCDCSOSCPMund SOSLeiten ebenfalls Eine Steuersequenz ein und Müssen with the Trennzeichen STAbgeschlossen Werden.

Single Character Introducer

Das Steuerzeichen “ Single Character Introducer “ (SCI) wird mit einem Steuerzeichen versehen. Wenn Sie das tun, will der Steuerzeichens nicht standardisiert werden, sondern es geht um andere.

<ESC> Z <Funktion>

Die jewly proprietää Funktion wird mit der Escapesequnz ESC Zeingeleitet, gefolgt von einer definierten Funktion. Dann gibt ECMA- / ANSI – Norm keine standardisierten Die Leistung festlegt, Kann JEDE Implementierung eigene proprietäre die Leistung der Partei Arzt.

Auf Dezember VT100 Wird dasselbe C1 Steuerzeichen (154 BZW. 9A hex ) für das proprietäre Steuerzeichen ROI used, das jedoch mit Einer Anderen Escapesequenz eingeleitet Wird: ESC %. Ansonsten ist CSI ROI von variabler Länge.

Viele Terminal Emulation Biet einen VT100 kompatiblen Modus.

beispiel:

<ESC>% 0K

Die Steuersequenz ROI 0 Kskaliert die Tastatur aus. Mein ROI 1 Kwird sie wieder eingeschaltet.

<ESC>% 1I

Mit der Steuersequenz ROI 1 Ikann durch die aktuellen IP- Adressen aufgegeben werden . Die Rückgabe hat das Format ROI ? <IP-Adresse> I.

Kontrollsequenz Intro

Das Steuerzeichen “ Steuersequenz Intro “ (CSI) ist die meist genutzt Steuerzeichen, wenn es Eine vielzahl Weiterer Die Leistung bietet, sonst nicht mehr in dem verfügbaren Rahmen von nur 8 Bit gepasst Habe sterben. Es wird mit dem Zeichen 9B hex im 8-Bit Modus, meist jedoch als Escapesequenz ESC [im 7-Bit Modus, ebenfalls 1B Hex 5B Hex , Single Qualität.

Eine CSI-solbe -Synchronisation setzt sich aus einem einleitenden Zeichen oder einem abschließenden Zeichen zusammen, wobei letzteres die Funktion bestimmt. Im Parameterteil wird der Strichpunkt ;als Trennzeichen genutzt. Es ist optional Parameterteil bzw. Gibt es einen Standard-Parameter, wenn dieser fehlt.

<ESC> [0; 1; 4 m
| | | | |
++++++++ +++++++++++++ |
 | | |
Steuerzeichen | abschließendes Zeichen
 Parameterteil

In diesem Fall ist Beispiel ESC [das einzige Steuerzeichen CSIals Escapesequenz, gefolgt vom Parameter 0;1;4, abgeschlossen durch das Zeichen m, dem die Funktion zugewiesen ist.

Wird der Parameterteil weggelas, so sieht die Steuersequenz so aus:

<ESC> [m

Diese Steuersequenz ist gleichbedeutend mit ESC [ 0 mda 0 der Standardparameter ist.

Sicherheit

Als auch die Steuerzeichen dazu verdorben wurden, konnten sie die Fristen simulieren und ausarbeiten, und sie konnten ANSI-Escapesequenzen auf einen Computer auch Schaden liefern. Dabei ist es notwendig, von einem vollen ANSI-fähigen Programm zu Wasser, Wirtschaft der Enthalten und Escapesequenzen auszufüllen. Diese Art der Schadfunktion wird auch als ANSI-Bombe bezeichnet. [10]

Implementierungseinheit

  • DEC VT100 und das Nachfolgemodell
  • ANSI.SYS auf der IBM PC-Kompatibilität DOS Betriebssysteme , wie u.A. PC DOS , MS-DOS , DR DOS [11]
  • ANSI.SYS-Alternativen für DOS: ANSI.COM, NANSI.SYS, NNANSI.COM
  • OS / 2- Befehlssail [12]
  • xterm [13]
  • Eingabeaufforderung seit Windows – 10 1511 [14]
  • Amiga console.device

Weblinks

  • ECMA-48 „Steuerfunktionen für codierte Zeichensätze“ in englischer Sprache 5. Ausgabe vom Juni 1991
  • RTFM / Xterm / Escape – Sequenzen (englisch), Edward Moy, Stephen Gildea, Thomas Dickey 1999 – eine gute Referenz für ANSI Escapesequenzen in xterm von XFree86

Einzelnachweise

  1. Hochspringen↑ ANSI: Historischer Überblick (Englisch); abgerufen am 27. März 2016. Das American National Standards Institute (ANSI) wurde 1969 vom United States of America Standard Institute (USASI) gegründet.
  2. Hochspringen↑ ECMA-6 (Englisch)
  3. Hochspringen↑ ECMA-35 (Deutsch)
  4. Hochspringen↑ ECMA-43 (Deutsch)
  5. Hochspringen↑ ECMA-48 (Deutsch)
  6. Hochspringen↑ Internationales ISO-Register für codierte Zeichensätze für Escape-Sequenzen (Englisch, PDF, 153 KB); abgerufen am 28. März 2016
  7. ↑ Hochspringen nach:a b Aivosto: Steuerzeichen in ASCII und Unicode (Englisch), Abschnitt History von C1 ; Sets: “ Die Standards decken eigentlich mehr Steuercodes ab als diejenigen, die in den C1-Bereich passen. Diese zusätzlichen Steuerelemente werden über Steuersequenzen verwendet. […] Die Sequenzen sind ein wichtiger Teil der Standards, die zusammen mit den C1-Kontrollen verwendet werden sollten. Die Sequenzen werden zusammen mit C1 auch als VT100- und ANSI-Escape-Sequenzen bezeichnet. „
  8. Hochspringen↑ Programmierung: ANSI.SYS Escape-Sequenzen (Englisch); Abgerufen am 26. März 2016.
  9. Hochspringen↑ Aivosto, Ressourcen für Entwickler: Steuerzeichen in Unicode (Englisch); abgerufen am 28. März 2016.
  10. Hochspringen↑ PC-Welt : Viel Farbenpracht mit Ansi-Bomben ; Abgerufen am 26. März 2016.
  11. Hochspringen↑ MSDN: ANSI.SYS (Englisch); Abgerufen am 26. März 2016.
  12. Hochspringen↑ Fragen Sie Felgall (Computerhilfe): OS / 2-Befehlsreferenz (Englisch); abgerufen am 5. April 2016
  13. Hochspringen↑ manpage: Konsolencodes (englisch)
  14. Hochspringen↑ Nivot Ink- Blog : Windows 10 TH2 (v1511) Konsolen-Host-Erweiterungen (Englisch), Oisin Grehan, 4. Februar 2016; Abgerufen am 26. März 2016.