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
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.
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 PAD
sterben 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
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
, FluchtSCI
, Single Character Introducer bzw.ROI
auf VT100-TerminalsCSI
, Steuersequenz Intro
Nur das Steuerzeichen ESC
liegt im ASCII-Bereich und gehört zu den 7-Bit kompatiblen C0-Steuerzeichen. Die Beiden C1 Steuerzeichen SCI
, ROI
und CSI
can über Eine Escapesequenz substituiert Werden, Womit Steuersequenz Dann ASCII kompatibel auf 7-Bit Beschränkt bleibt sterben.
Die Steuerzeichen APC
, DCS
, OSC
, PM
und SOS
Leiten ebenfalls Eine Steuersequenz ein und Müssen with the Trennzeichen ST
Abgeschlossen 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 Z
eingeleitet, 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 K
skaliert die Tastatur aus. Mein ROI 1 K
wird sie wieder eingeschaltet.
<ESC>% 1I
Mit der Steuersequenz ROI 1 I
kann 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 CSI
als 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 m
da 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
- 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.
- Hochspringen↑ ECMA-6 (Englisch)
- Hochspringen↑ ECMA-35 (Deutsch)
- Hochspringen↑ ECMA-43 (Deutsch)
- Hochspringen↑ ECMA-48 (Deutsch)
- Hochspringen↑ Internationales ISO-Register für codierte Zeichensätze für Escape-Sequenzen (Englisch, PDF, 153 KB); abgerufen am 28. März 2016
- ↑ 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. „
- Hochspringen↑ Programmierung: ANSI.SYS Escape-Sequenzen (Englisch); Abgerufen am 26. März 2016.
- Hochspringen↑ Aivosto, Ressourcen für Entwickler: Steuerzeichen in Unicode (Englisch); abgerufen am 28. März 2016.
- Hochspringen↑ PC-Welt : Viel Farbenpracht mit Ansi-Bomben ; Abgerufen am 26. März 2016.
- Hochspringen↑ MSDN: ANSI.SYS (Englisch); Abgerufen am 26. März 2016.
- Hochspringen↑ Fragen Sie Felgall (Computerhilfe): OS / 2-Befehlsreferenz (Englisch); abgerufen am 5. April 2016
- Hochspringen↑ manpage: Konsolencodes (englisch)
- Hochspringen↑ Nivot Ink- Blog : Windows 10 TH2 (v1511) Konsolen-Host-Erweiterungen (Englisch), Oisin Grehan, 4. Februar 2016; Abgerufen am 26. März 2016.