The Birth of ASA Committee X3
On 1960 Jan 13 the American Standards Association convened an
organizational meeting in New York City to discuss and approve the
formation of Committee X3, Computers and Information Processing.
The Scope and Program of Work, which I drafted at the behest of IBM VPs
Birkenstock and McPherson, was accepted with a major component as:
"[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."
Ref. Annals of the History of Computing 9, No. 3/4, p.346 (1988)
Note that last clause - "together with orderly provision for expansion
and alternatives". To attendees who did not understand at the time, I
outlined the possible action of the Escape character, were it to be
included as one of the characters in the basic set, and thus as
manipulable as any graphic. They must have been somewhat convinced. We
see the "expansion" in today's 8-bit and 16-bit sets, and the
"alternatives" in the various national and other sets, especially in
laser printers.
But also note that only "interchange" was covered. Had I gone for the
internal code itself, all manufacturers would have rebelled. But I knew
that reducing the internal-to-external conversion to zero would be
tempting. Especially if there were a set content mismatch.
In any event, there was precedent.
First Appearances of "Escape"
In 1956 September it was decided that IBM's Stretch computer would have
a 64-bit word, each character represented by 8 bits. I was there at Los
Alamos when this was decided, and it made me very happy. I used to say
at the time that "powers of 2 are magic". It was to prepare for the
acceptance of 8-bit characters that I published [1].
The Stretch character set [2,6] was designed by Dr. Werner Buchholz
(creator of the term "byte") and myself. I put in the escape character
as a set member, but a Stretch code for that did not appear in the
1960 survey [4] of internal computer character codes because the set
was already frozen.
The only surveyed code to include ESC was a proposal by H. MacGregor
Ross (of UNICODE fame) on Ferranti's behalf for the British
Standards Institution. This followed on my presentation to the same
body in February of 1960.
Page 3 of Reference [2] did contain this verbiage about ESC:
"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; allowance should be made for certain control codes which will
be needed for communication and other devices and which are intended
to occupy the high end of the code sequence. 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 can be used to shift to a third set, which may
again be the first set or a different set. Such additional sets
would be defined only if and when there arise applications which
require them.
ESC was certainly in the IBM proposal of 1961 May [5], for which Herb
Bright said to forget the X3.2 committee and adopt this one!
But X3 did accept the escape concept from the beginning. ESC was in
position 7/14 in the code that X3 showed to the Department of Defense in
1961 June. It never left the ASCII work, although it was moved to 1/11
in 1964 May, and stayed there ever since.
Moreover, my short
article
describing "escape" appeared in the next
month's issue of the Communications of the ACM [3]. Publication always
gives cachet. I learned that once in attending a decision meeting within
IBM, where I seemed to be losing the argument. In disgust, I left and
sent in Roy Goldfinger in my place. He, clever fellow, swung the
decision to my viewpoint by quoting an article I had written and
published! What I could not accomplish in person I could accomplish by
having published it! Strange.
How Can One Recognize an Escape Sequence?
It will be useful, before going on, to admit a world of confusion.
Answer:
- When it is started by the ESC character itself (customarily just
for hardware), or
- When, at a level above hardware, it is started by a character
other than ESC that it is felt that a superimposed system will not
need. And ended by convention or another similar character.
An example of the latter is the "\" as used by C and such. Ever see
"\t" in text cause a Horizontal Tab movement? I haven't. The reason
is that it may be descriptive, as in general text, or announcing, as it
is in source programs for the compiler for the programming language C
and its offshoots. C could just as well have used "|announce|t", but
the backslash fascinated with its brevity, preceding Microsoft's using
it for their file hierarchy indicator.
HTML is a programming language, too, and it has four different forms of
escape sequence. One is where "<" is the announcer. But what
it announces is closed off by ">" -- a far better and more general method
than that of C. Oddly, the HTML people refer to only one of those
forms as an escape sequence -- not this one.
If you'd like to see escape sequences used properly,
look
at Internet design paper "rfc1554", which discusses extensions of Japanese
character sets via ISO 2022 [8].
How to Get to the Real Escape Character
Once in the early days of video terminals, e.g. DEC VT52, the ESC key
actually emitted the ASCII ESC. And if you followed that by a capital
A the cursor would be seen to move one position to the right. This was
direct generation, unbuffered.
All that changed with the IBM PC. For excellent and sufficient reasons,
its keys emitted not the character itself but a "scan code", which was
then remapped to the hardware level, just as a compiler would. A pretty
good technical explanation of all this has been made by Randall Hyde.
See it for the nitty gritty understanding.
Now any compiler or application software just grabs the scan code from the
ESC key and tailors the action to what it wants. Nothing wrong with that.
If you or your software kit have a way to enter the ESC character directly,
as I have, some wonderful things can be done. I have a file of all of the
original 64 combinations of 8 colors (x 2 for "bright" aspect) that I view
in transparent mode (all the control characters show but don't function).
From this I can cut the text for a specific foreground-background choice,
paste it into my file, and return to regular mode. It's fun to show people
how to cut and paste colors. Fortunately these 128 combinations still
function even though we now have a much wider color spectrum evocable via the
HTML codes.
Proof of Early Skepticism
It must be admitted that acceptance of the "escape" principle was
hard-earned, which may surprise the millions of people who use billions
of them every day.
From a letter from Herbert S. Bright to Charles W. Bachman, 1982 March
11, on the occasion of the second of my three nominations for the ACM's
Turing Award (all of which failed!):
"Bob ... was a principal creator of the ASCII set. I well remember
nailing Bob once for an explanation of the 'Escape Character' concept,
which was new to me when Bob pushed it through his group. He convinced
me that no set of any length would meet all requirements even then,
certainly not in the future, and that the Escape concept would work.
His Subcommittee, competitor's employees all, grudgingly agreed. After
some months of study, they became the strongest boosters of the idea.
Meanwhile, Bob's employer -- a large corporation -- seemed somewhat
less than enthusiastic, if not downright reluctant, toward the whole
ASCII set. It is a matter of public record that he changed employers
about then.
(See
the story of my departure from IBM).
The question has bugged me ever since; Is this an example of a solid
company man placing his conviction about a public need above his well-
developed instinct for bureaucratic self-preservation? There aren't
too many in this business, who, like you, seemed to have displayed that
bizarre character trait.
Having first raised, in Council, the idea of establishing a Turing
Award, I have felt a fatherly concern about each selection.
I would feel comfortable if the award for this year goes to irritating,
competent Bemer for the idea that will live after him."
I will admit to the "irritating". The energy I had then astounded even
me, and I was indeed young enough to be impatient with people that could
not see the benefit of many of my ideas.
Other Bows via the Turing Award
From Turing Award Recommendations in 1996 (my third nomination):
Eric Clamons (longtime chairman of the ASCII Committee):
"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 ..."
John Auwaerter (Chairman of X3):
"The impasse was broken by Mr. Bemer's "escape" code and registration
of alternative meanings. ..."
Walter Carlson (ex-President of ACM):
"His idea ... was to use an "escape sequence", whereby each natural
language had its own registered escape seqence code and associated
set ..."
Auwaerter indicates that without the escape character and its functionality
it may have been impossible to agree on and accept ASCII as a national
and then worldwide standard. Surely the lack of a worldwide interchange
alphabet would have inhibited development of the Internet and the Web!
IS THE ESCAPE SEQUENCE THAT IMPORTANT?
Care to speculate upon what the world would be like now if:
- the escape sequence principle had not been created? or
- if one had the power to now withdraw the escape sequence idea
from usage? (IBM did not seek a patent; indeed, a
$300 million dollar suit
against IBM was unsuccessful because the
escape sequence had been put into the public domain)
The following list is illustrative but incomplete. Its purpose is
to show how different the world would have been without ESCAPE!
Think of your own input to the list.
Here are some things one would miss:
- Video computer monitors (as on personal computers) are gone.
With no escape sequences to move cursors, change foreground
and background colors, set blinking or inverse, etc., we are
back to Teletypewriters and other mechanical aids.
- Writers are back to typewriters, for Word Processing is no more.
- No more making one's own artwork or personal greeting cards.
- Computer graphics hardly exist. No more pictures of a rotating
auto chassis, no visual engineering design, no CAD (computer-
aided design) for buildings, kitchens, highways, etc.
- No laser printers, whose manuals show hundreds of escape
sequences used for their control and operation.
- Various phone services are gone, like checking a bank balance by
typing in the account number followed by # and/or *, for these
act as escape sequences to the bank computer.
- Other screen applications are gone or reduced in functionality.
Airline reservations, for example (we might have to revert to
inflexible and published schedules and fares -- which might not
be an all-bad idea!).
- Medicine reverts. No nurse's video stations, displays for
treadmills, etc.
- Forget air traffic control as we know it now, and all the
intelligent displays in submarines and fighter planes.
- Japan, Korea, and China are back to brushwork and linotype fonts
for their character sets. The relationship to ASCII is gone.
- Photocomposition cannot shift to subsets of the various symbols
of the world, in various sizes, fonts, rotation, etc. Books will
thus be more expensive, and rarer.
- And -- No Internet or Web as they are now!
REFERENCES
- R.W.Bemer, "A proposal for a generalized card code of 256 characters",
Commun. ACM 2, No. 9, 19-23, 1959 Sep
- R.W.Bemer, W.Buchholz, "An extended character set standard",
IBM Tech. Pub. TR00.18000.705, 1960 Jan, rev. TR00.721, 1960 Jun
- R.W.Bemer, "ESCape - a proposal for character code compatibility",
Commun. ACM 3, No. 2, 71-72 (1960 Feb)
- R.W.Bemer, F.A.Williams, "Survey of coded character representation",
Commun. ACM 3, No. 12, 639-641, 1960 Dec
- R.W.Bemer, H.J.Smith, Jr., F.A.Williams,
"Design of an improved transmission/data processing code",
Commun. ACM 4, No. 5, 212-217, 225, 1961 May
- R.W.Bemer, W.Buchholz, "Character set",
Chapter 6 in Planning a Computer System, McGraw-Hill, 1962
- R.W.Bemer, "The American standard code for information interchange",
Datamation 9, No. 8, 32-36, 1963 Aug, and ibid 9, No. 9, 39-44, 1963 Sep
- [ISO2022], International Organization for Standardization (ISO),
"Information Processing -- ISO 7-bit and 8-bit coded characters sets --
Code extension techniques", ISO 2022-1986.
Back to History Index
Back to Home Page
Revision 1 -- 2003 Oct 25