C0 and C1 control codes

Last updated

The C0 and C1 control code or control character sets define control codes for use in text by computer systems that use ASCII and derivatives of ASCII. The codes represent additional information about the text, such as the position of a cursor, an instruction to start a new line, or a message that the text has been received.

Contents

C0 codes are the range 00 HEX –1FHEX and the default C0 set was originally defined in ISO 646 (ASCII). C1 codes are the range 80HEX–9FHEX and the default C1 set was originally defined in ECMA-48 (harmonized later with ISO 6429). The ISO/IEC 2022 system of specifying control and graphic characters allows other C0 and C1 sets to be available for specialized applications, but they are rarely used.

C0 controls

ASCII defined 32 control characters, plus a necessary extra character for the DEL character, 7FHEX or 01111111BIN (needed to punch out all the holes on a paper tape and erase it).

This large number of codes was desirable at the time, as multi-byte controls would require implementation of a state machine in the terminal, which was very difficult with contemporary electronics and mechanical terminals.

Only a few codes have maintained their use: BEL, ESC, and the format effector [1] (FEn) characters BS, TAB, LF, VT, FF, and CR. Others are unused or have acquired different meanings such as NUL being the C string terminator. Some data transfer protocols such as ANPA-1312, Kermit, and XMODEM do make extensive use of SOH, STX, ETX, EOT, ACK, NAK and SYN for purposes approximating their original definitions; and some file formats use the "Information Separators" (ISn) such as the Unix info format [2] and Python's splitlines string method. [3]

The names of some codes were changed in ISO 6429:1992 (or ECMA-48:1991) to be neutral with respect to writing direction. The abbreviations used were not changed, as the standard had already specified that those would remain unchanged when the standard is translated to other languages. In this table both new and old names are shown for the renamed controls (the old name is the one matching the abbreviation).

Unicode provides Control Pictures that can replace C0 control characters to make them visible on screen. However caret notation is used more often.

ASCII control codes, originally defined in ANSI X3.4. [4]
Caret notation
Decimal
Hexadecimal
AbbreviationsNameDescription
^@000NUL Null \0Does nothing. The code of blank paper tape, and also used for padding to slow transmission.
^A101TC1, SOHStart of HeadingFirst character of the heading of a message. [5]
^B202TC2, STXStart of TextTerminates the header and starts the message text.
^C303TC3, ETX End of Text Ends the message text, starts a footer (up to the next TC character). [5] [6]
^D404TC4, EOT End of Transmission Ends the transmission of one or more messages. [5] [6] May place terminals on standby. [6]
^E505TC5, ENQ, WRU [a] Enquiry Trigger a response at the receiving end, to see if it is still present.
^F606TC6, ACK Acknowledge Indication of successful receipt of a message.
^G707BEL [b] Bell, Alert\aCall for attention from an operator.
^H808FE0, BS Backspace \bMove one position leftwards. Next character may overprint or replace the character that was there.
^I909FE1, HTCharacter Tabulation,
Horizontal Tabulation
\tMove right to the next tab stop.
^J100AFE2, LF Line Feed \nMove down to the same position on the next line (some devices also moved to the left column).
^K110BFE3, VTLine Tabulation,
Vertical Tabulation
\vMove down to the next vertical tab stop.
^L120CFE4, FF Form Feed \fMove down to the top of the next page.
^M130DFE5, CR Carriage Return \rMove to column zero while staying on the same line.
^N140ESO, LS1 [13] [c] Shift Out Switch to an alternative character set.
^O150FSI, LS0 [13] [c] Shift In Return to regular character set after SO.
^P1610TC7, DC0, [d] DLEData Link EscapeCause a limited number of contiguously following characters to be interpreted in some different way. [15] [16]
^Q1711DC1, XON Device Control OneTurn on (DC1 and DC2) or off (DC3 and DC4) devices.

Teletype [7] used these for the paper tape reader and the paper tape punch. The first use became the de facto standard for software flow control. [17]

^R1812DC2, TAPEDevice Control Two
^S1913DC3, XOFF Device Control Three
^T2014DC4, TAPEDevice Control Four
^U2115TC8, NAK Negative Acknowledge Negative response to a sender, such as a detected error.
^V2216TC9, SYNSynchronous IdleSent in synchronous transmission systems when no other character is being transmitted.
^W2317TC10, ETB End of Transmission Block End of a transmission block of data when data are divided into such blocks for transmission purposes.
^X2418CAN Cancel Indicates that the data preceding it are in error or are to be disregarded.
^Y2519EMEnd of mediumIndicates on paper or magnetic tapes that the end of the usable portion of the tape had been reached. [4]
^Z261ASUB Substitute Replaces a character that was found to be invalid or in error. Should be ignored.
^[271BESC Escape \e
[e]
Alters the meaning of a limited number of following bytes.
Nowadays this is almost always used to introduce an ANSI escape sequence.
^\281CIS4, FS File SeparatorCan be used as delimiters to mark fields of data structures. US is the lowest level, while RS, GS, and FS are of increasing level to divide groups made up of items of the level beneath it. SP (space) could be considered an even lower level.
^]291DIS3, GSGroup Separator
^^301EIS2, RSRecord Separator
^_311FIS1, USUnit Separator
While not technically part of the C0 control character range, the following two characters can be thought of as having some characteristics of control characters.
 3220SP Space Move right one character position.
^?1277FDEL Delete Should be ignored. Used to delete characters on punched tape by punching out all the holes.
  1. Teletype labelled the key WRU for 'who are you?' [7]
  2. The name BELL is assigned by Unicode to the unrelated emoji character 🔔 (U+1F514). While C0 and C1 control characters were not formally named by the Unicode standard itself at the time, this collided with existing use of BELL as the name of this control character in software following the previous versions of UTS#18 (the Unicode Regular Expressions standard), [8] e.g. in Perl. [9] Unicode now accepts ALERT and BEL (but not BELL) as formal aliases for the control character, [10] although the code chart still lists BELL as the ISO 6429 alias, [11] and the corresponding control picture code point is called SYMBOL FOR BELL. Perl subsequently switched to using BELL for the emoji in version 5.18. [12]
  3. 1 2 ISO/IEC 2022 (ECMA-35) refers to these as LS0 and LS1 in 8-bit environments, and as SI and SO in 7-bit environments. [13]
  4. The first, 1963 edition of ASCII classified DLE as a device control, rather than a transmission control, and gave it the abbreviation DC0 ("device control reserved for data link escape"). [14]
  5. The '\e' escape sequence is not part of ISO C and many other language specifications. However, it is understood by several compilers, including GCC.

C1 controls

In 1973, ECMA-35 and ISO 2022 [18] attempted to define a method so an 8-bit "extended ASCII" code could be converted to a corresponding 7-bit code, and vice versa. [19] In a 7-bit environment, the Shift Out ( SO ) would change the meaning of the 96 bytes 0x20 through 0x7F [a] [21] (i.e. all but the C0 control codes), to be the characters that an 8-bit environment would print if it used the same code with the high bit set. This meant that the range 0x80 through 0x9F could not be printed in a 7-bit environment, [19] thus it was decided that no alternative character set could use them, and that these codes should be additional control codes, which become known as the C1 control codes. To allow a 7-bit environment to use these new controls, the sequences ESC @ through ESC _ were to be considered equivalent. [19] The later ISO 8859 standards abandoned support for 7-bit codes, but preserved this range of control characters.

The first C1 control code set to be registered for use with ISO 2022 was DIN 31626, [22] a specialised set for bibliographic use which was registered in 1979. [23]

The more common general-use ISO/IEC 6429 set was registered in 1983, [24] although the ECMA-48 specification upon which it was based had been first published in 1976 [25] and JIS X 0211 (formerly JIS C 6323). [26] Symbolic names defined by RFC   1345 and early drafts of ISO 10646, but not in ISO/IEC 6429 ( PAD , HOP and SGC ) are also used. [9] [27]

Except for SS2 and SS3 in EUC-JP text, and NEL in text transcoded from EBCDIC, the 8-bit forms of these codes were almost never used. CSI , DCS and OSC are used to control text terminals and terminal emulators, but almost always by using their 7-bit escape code representations. Nowadays if these codes are encountered it is far more likely they are intended to be printing characters from that position of Windows-1252 or Mac OS Roman.

Except for NEL Unicode does not provide a "control picture" for any of these. There is also no well-known variation of Caret notation for them either.

ISO/IEC 6429 and RFC 1345 C1 control codes
ESC+
Decimal
Hex
AbbrNameDescription [28]
@12880PAD [10] Padding Character [b] Proposed as a "padding" or "high byte" for single-byte characters to make them two bytes long for easier interoperability with multiple byte characters. Extended Unix Code (EUC) occasionally uses this. [32]
A12981HOP [10] High Octet Preset [b] Proposed to set the high byte of a sequence of multiple byte characters so they only need one byte each, as a simple form of data compression.
B13082BPHBreak Permitted Here [c] Follows a graphic character where a line break is permitted. Roughly equivalent to a soft hyphen or zero-width space except it does not define what is printed at the line break.
C13183NBHNo Break Here [c] Follows the graphic character that is not to be broken. See also word joiner.
D13284INDIndex [d] Move down one line without moving horizontally, to eliminate ambiguity about the meaning of LF.
E13385NEL Next Line Equivalent to CR+LF, to match the EBCDIC control character.
F13486SSAStart of Selected AreaUsed by block-oriented terminals. In xterm ESC F moves to the lower-left corner of the screen, since certain software assumes this behaviour. [35]
G13587ESAEnd of Selected Area
H13688HTS
  • Character Tabulation Set
  • Horizontal Tabulation Set
Set a tab stop at the current position.
I13789HTJ
  • Character Tabulation With Justification
  • Horizontal Tabulation With Justification
Right-justify the text since the last tab against the next tab stop.
J1388AVTS
  • Line Tabulation Set
  • Vertical Tabulation Set
Set a vertical tab stop.
K1398BPLD
  • Partial Line Forward
  • Partial Line Down
To produce subscripts and superscripts in ISO/IEC 6429.
Subscripts use PLD text PLU while superscripts use PLU text PLD.
L1408CPLU
  • Partial Line Backward
  • Partial Line Up
M1418DRI
  • Reverse Line Feed
  • Reverse Index
Move up one line.
N1428ESS2 Single-Shift 2 Next character is from the G2 or G3 sets, respectively.
O1438FSS3 Single-Shift 3
P14490DCSDevice Control StringFollowed by a string of printable characters (0x20 through 0x7E) and format effectors (0x08 through 0x0D), terminated by ST (0x9C). Xterm defined a number of these. [36]
Q14591PU1Private Use 1Reserved for private function agreed on between the sender and the recipient of the data.
R14692PU2Private Use 2
S14793STSSet Transmit State
T14894CCH Cancel character Destructive backspace, to eliminate ambiguity about meaning of BS .
U14995MWMessage Waiting
V15096SPAStart of Protected AreaUsed by block-oriented terminals.
W15197EPAEnd of Protected Area
X15298SOSStart of String [c] Followed by a control string terminated by ST (0x9C) which (unlike DCS , OSC , PM or APC ) may contain any character except SOS or ST.
Y15399SGC, [10] SGCI [37] Single Graphic Character Introducer [b] Intended to allow an arbitrary Unicode character to be printed; it would be followed by that character, most likely encoded in UTF-1. [37]
Z1549ASCISingle Character Introducer [c] To be followed by a single printable character (0x20 through 0x7E) or format effector (0x08 through 0x0D), and to print it as ASCII no matter what graphic or control sets were in use.
[1559BCSI Control Sequence Introducer Used to introduce control sequences that take parameters. Used for ANSI escape sequences.
\1569CSTString TerminatorTerminates a string started by DCS , SOS , OSC , PM or APC .
]1579DOSCOperating System CommandFollowed by a string of printable characters (0x20 through 0x7E) and format effectors (0x08 through 0x0D), terminated by ST (0x9C), intended for use to allow in-band signaling of protocol information, but rarely used for that purpose.

Some terminal emulators, including xterm, use OSC sequences for setting the window title and changing the colour palette. They may also support terminating an OSC sequence with BEL instead of ST. [38] Kermit used APC to transmit commands. [39]

^1589EPMPrivacy Message
_1599FAPCApplication Program Command
  1. In early versions the range excluded SP and DEL [20]
  2. 1 2 3 Not part of ISO/IEC 6429 (ECMA-48) [9] [27] [29] :4 [30] :5 [31] :8
  3. 1 2 3 4 Not part of the first edition of ISO/IEC 6429. [24] [29] :4
  4. Deprecated in 1988 and withdrawn in 1992 from ISO/IEC 6429 [31] :87 (1986 [33] and 1991 [34] respectively for ECMA-48).

Other control code sets

The ISO/IEC 2022 (ECMA-35) extension mechanism allowed escape sequences to change the C0 and C1 sets. The standard C0 control character set shown above is chosen with the sequence ESC ! @ and the above C1 set chosen with the sequence ESC " C. [24]

Several official and unofficial alternatives have been defined, but this is pretty much obsolete. Most were forced to retain a good deal of compatibility with the ASCII controls for interoperability. The standard makes ESC, [40] [41] SP and DEL [a] "fixed" coded characters, which are available in their ASCII locations in all encodings that conform to the standard. [43] It also specifies that if a C0 set included transmission control (TCn) codes, they must be encoded at their ASCII locations [40] and could not be put in a C1 set, [44] and any new transmission controls must be in a C1 set. [40]

Other C0 control code sets

Replacement C1 character sets

Unicode

Unicode reserves the 65 code points described above for compatibility with the C0 and C1 control codes, giving them the general category Cc (control). These are:

Unicode only specifies semantics for the C0 format controls HT, LF, VT, FF, and CR (note BS is missing); the C0 information separators FS, GS, RS, US (and SP); and the C1 control NEL. [55] The rest of the codes are transparent to Unicode and their meanings are left to higher-level protocols, with ISO/IEC 6429 suggested as a default. [55]

Unicode includes many additional format effector characters besides these, such as marks, embeds, isolates and pops for explicit bidirectional formatting, and the zero-width joiner and non-joiner for controlling ligature use. However these are given the general category Cf (format) rather than Cc.

See also

Footnotes

  1. ISO/IEC 4873 extends this requirement to the C1 SS2 and SS3, [42] although ISO/IEC 2022 itself does not.

Related Research Articles

Extended Binary Coded Decimal Interchange Code is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six-bit binary-coded decimal code used with most of IBM's computer peripherals of the late 1950s and early 1960s. It is supported by various non-IBM platforms, such as Fujitsu-Siemens' BS2000/OSD, OS-IV, MSP, and MSP-EX, the SDS Sigma series, Unisys VS/9, Unisys MCP and ICL VME.

<span class="mw-page-title-main">ISO/IEC 8859-1</span> Character encoding

ISO/IEC 8859-1:1998, Information technology—8-bit single-byte coded graphic character sets—Part 1: Latin alphabet No. 1, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. ISO/IEC 8859-1 encodes what it refers to as "Latin alphabet no. 1", consisting of 191 characters from the Latin script. This character-encoding scheme is used throughout the Americas, Western Europe, Oceania, and much of Africa. It is the basis for some popular 8-bit character sets and the first two blocks of characters in Unicode.

ISO/IEC 8859-3:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 3: Latin alphabet No. 3, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-3 or South European. It was designed to cover Turkish, Maltese and Esperanto, though the introduction of ISO/IEC 8859-9 superseded it for Turkish. The encoding was popular for users of Esperanto, but fell out of use as application support for Unicode became more common.

ISO/IEC 646 is a set of ISO/IEC standards, described as Information technology — ISO 7-bit coded character set for information interchange, and developed in cooperation with ASCII at least since 1964. Since its first edition in 1967 it has specified a 7-bit character code from which several national standards are derived.

ISO/IEC 8859-8, Information technology — 8-bit single-byte coded graphic character sets — Part 8: Latin/Hebrew alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings. ISO/IEC 8859-8:1999 from 1999 represents its second and current revision, preceded by the first edition ISO/IEC 8859-8:1988 in 1988. It is informally referred to as Latin/Hebrew. ISO/IEC 8859-8 covers all the Hebrew letters, but no Hebrew vowel signs. IBM assigned code page 916 to it. This character set was also adopted by Israeli Standard SI1311:2002, with some extensions.

ISO/IEC 8859-4:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 4: Latin alphabet No. 4, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-4 or North European. It was designed to cover Estonian, Latvian, Lithuanian, Greenlandic, and Sámi. It has been largely superseded by ISO/IEC 8859-10 and Unicode. Microsoft has assigned code page 28594 a.k.a. Windows-28594 to ISO-8859-4 in Windows. IBM has assigned code page 914 to ISO 8859-4.

ISO/IEC 8859-5:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 5: Latin/Cyrillic alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin/Cyrillic.

ISO/IEC 8859-6:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 6: Latin/Arabic alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. It is informally referred to as Latin/Arabic. It was designed to cover Arabic. Only nominal letters are encoded, no preshaped forms of the letters, so shaping processing is required for display. It does not include the extra letters needed to write most Arabic-script languages other than Arabic itself.

ISO/IEC 8859-10:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 10: Latin alphabet No. 6, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1992. It is informally referred to as Latin-6. It was designed to cover the Nordic languages, deemed of more use for them than ISO 8859-4.

ISO/IEC 8859-13:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 13: Latin alphabet No. 7, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1998. It is informally referred to as Latin-7 or Baltic Rim. It was designed to cover the Baltic languages, and added characters used in Polish missing from the earlier encodings ISO 8859-4 and ISO 8859-10. Unlike these two, it does not cover the Nordic languages. It is similar to the earlier-published Windows-1257; its encoding of the Estonian alphabet also matches IBM-922.

ISO/IEC 8859-14:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 14: Latin alphabet No. 8 (Celtic), is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1998. It is informally referred to as Latin-8 or Celtic. It was designed to cover the Celtic languages, such as Irish, Manx, Scottish Gaelic, Welsh, Cornish, and Breton.

ISO/IEC 8859-16:2001, Information technology — 8-bit single-byte coded graphic character sets — Part 16: Latin alphabet No. 10, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 2001. The same encoding was defined as Romanian Standard SR 14111 in 1998, named the "Romanian Character Set for Information Interchange". It is informally referred to as Latin-10 or South-Eastern European. It was designed to cover Albanian, Croatian, Hungarian, Polish, Romanian, Serbian and Slovenian, but also French, German, Italian and Irish Gaelic.

ISO/IEC 2022Information technology—Character code structure and extension techniques, is an ISO/IEC standard in the field of character encoding. It is equivalent to the ECMA standard ECMA-35, the ANSI standard ANSI X3.41 and the Japanese Industrial Standard JIS X 0202. Originating in 1971, it was most recently revised in 1994.

T.61 is an ITU-T Recommendation for a Teletex character set. T.61 predated Unicode, and was the primary character set in ASN.1 used in early versions of X.500 and X.509 for encoding strings containing characters used in Western European languages. It is also used by older versions of LDAP. While T.61 continues to be supported in modern versions of X.500 and X.509, it has been deprecated in favor of Unicode. It is also called Code page 1036, CP1036, or IBM 01036.

<span class="mw-page-title-main">Shift Out and Shift In characters</span> ASCII control characters

Shift Out (SO) and Shift In (SI) are ASCII control characters 14 and 15, respectively. These are sometimes also called "Control-N" and "Control-O".

T.51 / ISO/IEC 6937:2001, Information technology — Coded graphic character set for text communication — Latin alphabet, is a multibyte extension of ASCII, or more precisely ISO/IEC 646-IRV. It was developed in common with ITU-T for telematic services under the name of T.51, and first became an ISO standard in 1983. Certain byte codes are used as lead bytes for letters with diacritics. The value of the lead byte often indicates which diacritic that the letter has, and the follow byte then has the ASCII-value for the letter that the diacritic is on.

Many Unicode characters are used to control the interpretation or display of text, but these characters themselves have no visual or spatial representation. For example, the null character is used in C-programming application environments to indicate the end of a string of characters. In this way, these programs only require a single starting memory address for a string, since the string ends once the program reads the null character.

The MARC-8 charset is a MARC standard used in MARC-21 library records. The MARC formats are standards for the representation and communication of bibliographic and related information in machine-readable form, and they are frequently used in library database systems. The character encoding now known as MARC-8 was introduced in 1968 as part of the MARC format. Originally based on the Latin alphabet, from 1979 to 1983 the JACKPHY initiative expanded the repertoire to include Japanese, Arabic, Chinese, and Hebrew characters, with the later addition of Cyrillic and Greek scripts. If a character is not representable in MARC-8 of a MARC-21 record, then UTF-8 must be used instead. UTF-8 has support for many more characters than MARC-8, which is rarely used outside library data.

The ISO 2033:1983 standard defines character sets for use with Optical Character Recognition or Magnetic Ink Character Recognition systems. The Japanese standard JIS X 9010:1984 is closely related.

ISO/IEC 10367:1991 is a standard developed by ISO/IEC JTC 1/SC 2, defining graphical character sets for use in character encodings implementing levels 2 and 3 of ISO/IEC 4873.

References

  1. Standard ECMA-6 7-bit Coded Character Set (PDF). 1965. p. 4.
  2. Fox, Brian. "Adding a new node to Info". Info: The online, menu-driven GNU documentation system. GNU Project.
  3. "Built-in Types § str.splitlines". The Python Standard Library. Python Software Foundation.
  4. 1 2 ISO/TC 97/SC 2 (1975). The set of control characters of the ISO 646 (PDF). ITSCJ/IPSJ. ISO-IR-1.{{citation}}: CS1 maint: numeric names: authors list (link)
  5. 1 2 3 IPTC (1995). The IPTC Recommended Message Format (PDF) (5th ed.). IPTC TEC 7901.
  6. 1 2 3 "end-of-transmission character (EOT)". Federal Standard 1037C . 1996. Archived from the original on 2016-03-09.
  7. 1 2 Robert McConnell; James Haynes; Richard Warren (December 2002). "Understanding ASCII Codes". NADCOMM.
  8. Williamson, Karl. "Re: PRI #202: Extensions to NameAliases.txt for Unicode 6.1.0".
  9. 1 2 3 Ken Whistler (July 20, 2011). "Formal Name Aliases for Control Characters, L2/11-281". Unicode Consortium.
  10. 1 2 3 4 "Name Aliases". Unicode Character Database. Unicode Consortium.
  11. "C0 Controls and Basic Latin" (PDF). Unicode Consortium.
  12. "charnames". Perl Programming Documentation.
  13. 1 2 3 ECMA (1994). "7.3: Invocation of character-set code elements". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 14. ECMA-35.
  14. American Standards Association (1963). American Standard Code for Information Interchange: 4. Legend. p. 6. ASA X3.4-1963.
  15. "data link escape character (DLE)". Federal Standard 1037C . 1996. Archived from the original on 2016-08-01.
  16. "Supplementary transmission control functions (an extension of the basic mode control procedures for data communication systems)". European Computer Manufacturers Association. 1972. ECMA-37.
  17. "What is the point of Ctrl-S?". Unix and Linux Stack exchange. Retrieved 14 February 2019.
  18. ECMA/TC 1 (1973). "Brief History". 7-bit Input/Output Coded Character Set (PDF) (4th ed.). ECMA. ECMA-6:1973.{{citation}}: CS1 maint: numeric names: authors list (link)
  19. 1 2 3 ECMA/TC 1 (1971). "8.2: Correspondence between the 7-bit Code and an 8-bit Code". Extension of the 7-bit Coded Character Set (PDF) (1st ed.). ECMA. pp. 21–24. ECMA-35:1971.{{citation}}: CS1 maint: numeric names: authors list (link)
  20. ECMA/TC 1 (1973). "4.2: Specific Control Characters". 7-bit Input/Output Coded Character Set (PDF) (4th ed.). ECMA. p. 16. ECMA-6:1973.{{citation}}: CS1 maint: numeric names: authors list (link)
  21. ECMA/TC 1 (1985). "5.3.8: Sets of 96 graphic characters". Code Extension Techniques (PDF) (4th ed.). ECMA. pp. 17–18. ECMA-35:1985.{{citation}}: CS1 maint: numeric names: authors list (link)
  22. 1 2 3 ISO/IEC International Register of Coded Character Sets To Be Used With Escape Sequences (PDF), ITSCJ/IPSJ, ISO-IR
  23. 1 2 DIN (1979-07-15). Additional Control Codes for Bibliographic Use according to German Standard DIN 31626 (PDF). ITSCJ/IPSJ. ISO-IR-40.
  24. 1 2 3 ISO/TC97/SC2 (1983-10-01). C1 Control Set of ISO 6429:1983 (PDF). ITSCJ/IPSJ. ISO-IR-77.{{citation}}: CS1 maint: numeric names: authors list (link)
  25. ECMA/TC 1 (1979). "Brief History". Additional Control Functions for Character-Imaging I/O Devices (PDF) (2nd ed.). ECMA. ECMA-48:1979.{{citation}}: CS1 maint: numeric names: authors list (link)
  26. "JIS X 02xx 符号" (in Japanese).
  27. 1 2 Ken Whistler (2015-10-05). "Why Nothing Ever Goes Away". Unicode Mailing List.
  28. ECMA/TC 1 (June 1991). Control Functions for Coded Character Sets (PDF) (5th ed.). ECMA. ECMA-48:1991.{{cite book}}: CS1 maint: numeric names: authors list (link)
  29. 1 2 ISO 6429:1983 Information processing — ISO 7-bit and 8-bit coded character sets — Additional control functions for character-imaging devices. ISO. 1983-05-01.
  30. ISO 6429:1988 Information processing — Control functions for 7-bit and 8-bit coded character sets. ISO. 1988-11-15.
  31. 1 2 ISO/IEC 6429:1992 Information technology — Control functions for coded character sets. ISO. 1992-12-15. Retrieved 2024-05-29.
  32. Lunde, Ken (2008). CJKV Information Processing: Chinese, Japanese, Korean, and Vietnamese Computing. O'Reilly. p. 244. ISBN   9780596800925.
  33. ECMA/TC 1 (December 1986). "Appendix E: Changes Made in this Edition". Control Functions for Coded Character Sets (PDF) (4th ed.). ECMA. ECMA-48:1986.{{cite book}}: CS1 maint: numeric names: authors list (link)
  34. ECMA/TC 1 (June 1991). "F.8 Eliminated control functions". Control Functions for Coded Character Sets (PDF) (5th ed.). ECMA. ECMA-48:1991.{{cite book}}: CS1 maint: numeric names: authors list (link)
  35. "VT100 Widget Resources (§ hpLowerleftBugCompat)". xterm - terminal emulator for X.
  36. Moy, Edward; Gildea, Stephen; Dickey, Thomas. "Device-Control functions". XTerm Control Sequences.
  37. 1 2 Brender, Ronald F. (1989). "Ada 9x Project Report: Character Set Issues for Ada 9x". Carnegie Mellon University.
  38. Moy, Edward; Gildea, Stephen; Dickey, Thomas. "Operating System Commands". XTerm Control Sequences.
  39. Frank da Cruz; Christine Gianone (1997). Using C-Kermit. Digital Press. p. 278. ISBN   978-1-55558-164-0.
  40. 1 2 3 ECMA (1994). "6.4.2: Primary sets of coded control functions". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 11. ECMA-35.
  41. ISO/TC97/SC2/WG-7; ECMA (1985-08-01). Minimum C0 set for ISO 4873 (PDF). ITSCJ/IPSJ. ISO-IR-104.{{citation}}: CS1 maint: numeric names: authors list (link)
  42. ISO/TC97/SC2/WG-7; ECMA (1985-08-01). Minimum C1 Set for ISO 4873 (PDF). ITSCJ/IPSJ. ISO-IR-105.{{citation}}: CS1 maint: numeric names: authors list (link)
  43. ECMA (1994). "6.2: Fixed coded characters". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 7. ECMA-35.
  44. ECMA (1994). "6.4.3: Supplementary sets of coded control functions". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 11. ECMA-35.
  45. ITU (1985). Teletex Primary Set of Control Functions (PDF). ITSCJ/IPSJ. ISO-IR-106.
  46. Úřad pro normalizaci a měřeni (1987). The set of control characters of ISO 646, with EM replaced by SS2 (PDF). ITSCJ/IPSJ. ISO-IR-140.
  47. ISO/TC 97/SC 2 (1977). The set of control characters of ISO 646, with IS4 replaced by Single Shift for G2 (SS2) (PDF). ITSCJ/IPSJ. ISO-IR-36.{{citation}}: CS1 maint: numeric names: authors list (link)
  48. 1 2 ISO/TC97/SC2/WG6. "Liaison statement to ISO/TC97/SC2/WG8 and ISO/TC97/SC18/WG8" (PDF). ISO/TC97/SC2/WG6 N317.rev. Archived from the original (PDF) on 2020-10-26.{{cite web}}: CS1 maint: numeric names: authors list (link)
  49. ISO/TC 97/SC 2 (1982). The C0 set of Control Characters of Japanese Standard JIS C 6225-1979 (PDF). ITSCJ/IPSJ. ISO-IR-74.{{citation}}: CS1 maint: numeric names: authors list (link)
  50. Printronix (2012). OKI® Programmer's Reference Manual (PDF). p. 26.
  51. ISO/TC 46 (1983-06-01). Additional Control Codes for Bibliographic Use according to International Standard ISO 6630 (PDF). ITSCJ/IPSJ. ISO-IR-67.{{citation}}: CS1 maint: numeric names: authors list (link)
  52. ISO/TC 46 (1986-02-01). Additional Control Codes for Bibliographic Use according to International Standard ISO 6630 (PDF). ITSCJ/IPSJ. ISO-IR-124.{{citation}}: CS1 maint: numeric names: authors list (link)
  53. 1 2 Umamaheswaran, V.S. (1999-11-08). "3.3 Step 2: Byte Conversion". UTF-EBCDIC. Unicode Consortium. Unicode Technical Report #16. The 64 control characters […], the ASCII DELETE character (U+007F)[…] are mapped respecting EBCDIC conventions, as defined in IBM Character Data Representation Architecture, CDRA, with one exception -- the pairing of EBCDIC Line Feed and New Line control characters are swapped from their CDRA default pairings to ISO/IEC 6429 Line Feed (U+000A) and Next Line (U+0085) control characters
  54. Steele, Shawn (1996-04-24). cp037_IBMUSCanada to Unicode table. Microsoft/Unicode Consortium.
  55. 1 2 "23.1: Control Codes" (PDF). The Unicode Standard (15.0.0 ed.). Unicode Consortium. 2022. pp. 914–916. ISBN   978-1-936213-32-0.