REGISTRY MUST BEGIN WITH "ESCAPE"
Many advances in computing science and equipment have been made either
by cooperative effort or by virtually simultaneous separate efforts.
The ESCape character in ASCII comes almost wholly from my impetus, and
so I often refer to it as "my" character (along with backslash and the
other 9 characters I introduced into ASCII).
Now that the average person "takes ASCII as a given", connects to
Internet via escape sequences, and mostly uses a personal computer and
laser printer that function largely via escape sequences, a review of
the history can show what a struggle it was to get acceptance,
particularly for the "International Register of Coded Character Sets to
be used with Escape Sequences".
This register was maintained originally by ECMA, with headquarters in Geneva,
Switzerland, as does the ISO. ECMA relinquished this responsibility in 1997,
after long service. Now it is maintained (quite appropriate to the
purpose, I think) officially by:
The Registration Authority
Information Processing Society of Japan
Information Technology Standards Commission of Japan
(IPSJ/ITSCJ)
(Follow this path to
their site and its treasures)
Caution: Be warned that this history is primarily for the technical
expert interested in factual proof that the registry of alternate sets for
ASCII didn't just come out of thin air. I spent over 12 years trying to
get my concept adopted, and now that is what drives laser printers all
over the world, as though everyone had always agreed "Of course! That's
the only way to go!".
This paper, referencing papers that prove this, may be heavy reading.
CREATING STANDARDS FOR COMPUTERS
Committee X3 was authorized at a meeting of 1960 January 13. Prior to
then some effort was already in progress toward a new and standard
character set for at least computers, if not for communications. At
IBM I had Frank Williams and Howard Smith, Jr. involved in this area.
The impetus was the 8-bit character structure of both the IBM Stretch
computer and the upcoming 360 series. Outside of IBM, however, the
possibility of an octet character was not taken seriously.
Note: I dislike "byte" as a term, because the number of bits in
it may not be eight. At Compagnie Bull GE in 1962 I mandated the
use of "octet". It is gratifying to see that this usage has won
out in most technical literature worldwide.
ACKNOWLEDGING THAT THE REGISTRY WAS MY CONCEPT
Excerpts From Turing Award Recommendations:
X3.2 Chairman Eric Clamons:
Bob's contributions .. one that affected the industry more profoundly
than any other: the proposal to include the ESCAPE character in ASCII...
To a large extent the ESCAPE code made ASCII what it is. ... The ESCAPE
code also opened the way toward "data streaming", an idea that made
possible the widely-used softcopy control standard ...
X3 Chairman John Auwaerter:
The impasse was broken by Mr. Bemer's "escape" code and registration of
alternative meanings ...
ACM President Walter Carlson:
His idea ...was to use an "escape sequence", whereby each natural language
had its own registered escape sequence code and associated set ...
MY PRESSURES FOR ALTERNATE SETS -- THE LONG ROAD TO REGISTRY
I kept after the developers quite regularly, as they had a reluctance to
admit, having committed to developing a single standard code, that having
identifiable alternate sets was crucial to getting the main set adopted.
Here is a chronology or time line of my actions, writings, and pressures,
together with pertinent papers they engendered:
1960 January 13: Reported by Prof. J.A.N. Lee in Ref. [16], p. 345):
"U.S. standards for computers and communications were initiated in January
of 1961, adopting the "charge" or "scope" written by Bemer (later also
adopted for international (ISO) standardsmaking:"
"[To develop] a single standard for logical representation of characters
and character format in the media used for interchange of instruction,
data, and control information between data processing equipments,
together with orderly provision for expansion and alternatives..."
Note: "orderly provision for expansion and alternatives" is to my
knowledge the first public proposal for sets alternate to the primary
set.
1960 January 26: In Ref. [1], my verbiage on page 3:
"4. Expansion of Set -- Future expansion to a set larger than 120
may take place in two ways. One is to assign additional characters
to presently unassigned 8-bit codes ... The second method is to define
a shift character to "escape" to another character set. Thus, whenever
The shift character is encountered, the next character (or group of
characters) identifies a new character set, and subsequent codes are
interpreted as belonging to that set. Another shift character in
that set may be used to shift to a third set, which may again be the
first set or a different set ..."
Note: This is the first public use of the term "escape" known to
me, and the use of multiple characters following ESC was foreseen.
1960 February: From Ref.[2]:
The emergence of a single standard from a welter of competing precedents
depends upon two solutions: 1) selection or development of an adequate and
logical standard, 2) phasing out (or peaceful coexistence with) the old
varieties. This paper deals with the latter problem and proposes the
mechanics for a solution in the area of character codes, represented by
bit combinations ... I propose that one of these combinations, the
same one for all standards, be reserved as an "escape" character.
Let us make provision for this "escape" combination to interrupt normal
decoding of a stream of characters. It will say, in effect, that "The next
T-bit combination is to be considered a numeric identifier of a particular
standard". From then on until interrupted by an "escape" character in
that set, all combinatorial T-bit characters will be interpreted
according to that standard. Shifting from one standard to another is
therefore dynamic.
This was the first and primary description of the escape character.
The full text
has been reproduced on this site, if you want to see it.
And thus it is 20 years later, but not without obstacles and delays.
1962 May 09: In Ref. [5], Bemer to the international programming
language standards committee:
"8. Is an "escape character" provided to allow for usage of alternate,
specialized character sets? What graphic subsets should remain in common
positions in alternate sets so that they be uniquely recognizable?"
"9. What values following the escape character ... should be
reserved for specialized character sets for programming languages?"
"B. From the attached (proposed) IFIP definition of "escape character"
it may be seen that it is possible to have many compatible alphabets
within the framework of an international character set and code ...
It is proposed that a tentative group of characters (to follow the
escape characters) be reserved to indicate special alphabets for
programming languages ..."
Point 9 obviously points to registry. Unfortunately the concept was too
new and foreign to programmer types.
1963 August: In Ref. [7], page 35:
"6. The ESCape code (111 1110) provides for 127 alternate sets in the
7-bit set, 255 in the 8-bit set. Some of these sets may have official
standing and some may be arbitrarily reserved to certain equipments.
An example might be an alternate set with the Roman alphabet replaced
by the Cyrillic alphabet, the unreplaced characters remaining unchanged.
The ESCape character is usually followed by another code which is devoid
of its usual meaning, by virtue of following the ESCape, and indicates
which one of the alternate character sets is in force until the next
ESCape character is encountered."
"8. ... The ESCape characters may be used to shift to one or more special
sets containing all of the characters of ALGOL ... Other sets may be
reserved for special languages for typesetting ..., etc."
Note: Again, this is to my knowledge the first mention of "official
standing", as the current Register gives them. The term is the
essence of the origin of the ISO Register.
1966 June: In Ref. [8]
FIND IT
1966 October: "Code Extension in ASCII (An ASA Tutorial)",
Communications of the ACM 9, No. 10, 758-762
First major proposal that alternate graphics sets be invoked via SO and SI
(Shift Out and Shift In), for which they are ill-suited, while ESCape is
pointed to extending the control set. Rereading the document with today's
knowledge reveals disorganization and little understanding of the difference
in principle.
Nothing is said about registry, and little about adjoint standardization of
those controls that escape sequences are supposed to invoke.
1967 January 13: Letter from John Auwaerter, Chairman of ANSI X3,
to Bob Bemer:
"A paper on anything, particularly Escape, from you is always welcome ..."
1967 March 13: In Bemer's report on Paris meeting of TC97/SC2 -
Resolution 10 accepts the need for studying code extension methods. During
the meeting, Prof. Heinz Zemanek of IBM Austria rediscovered Escape in his
submission "Comments to an 8-bit-code" ISO/TC97/SC2(Germany-10)255, which
made him a proponent.
1967 April: In Ref. [9]:
"... The standardization process might, in the future, yield some
alternate standard codes for special purposes, which are in a sense
subordinate to and linked through USASCII."
1967 April 11: In Document ECMA/TC1/67/22 by E. H. Clamons "Possible
Criteria for Standards of Escape (prefix) Sequences".
Has a final note about Bemer's paper on modularity in standards for ANSI X3
on July 20.
1967 June 12: "Call for Assistance in Code Development", Paul
Goodstat, Secretary of X3.
"Subcommittee X3.2 is currently developing a standard for 'code extension'
of USASCII. This work is concerned with methods for using the ESC (Escape)
character, together with following characters, to define "Escape Sequences"
that may be used to provide for an extended repertoire of control functions
for various purposes."
1967 August 21: X3 Paper X3.2/580, by E.H. Clamons, "Control Code
Candidates for Code Extension".
Includes controls for CRTs. Sent to TC97/SC2 for consideration in
international standardization. This was the (smoking gun) paper I found
while consulting to IBM re the Berkeley Associates suit for $300
million! To SEE
that:
1967 August 21: R.W.Bemer memo to ANSI X3.2 and X3.2.4, entitled
"Extension Procedures for Information Interchange":
On pages 6-8 is a section on "Assignment of Switching Identifiers".
After some quotes from [7], both issues, it says:
"You haven't been listening, fellows!
After all this time, can anyone fill in the following table?"