By Bob Bemer
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."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.Ref. Annals of the History of Computing 9, No. 3/4, p.346 (1988)
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 SetESC 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!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.
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:
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.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.(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."
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:
Here are some things one would miss:
Revision 1 -- 2003 Oct 25