Computer History Vignettes

By Bob Bemer


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

(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.


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.


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 ...


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]


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?"

  Character Set                      Identifier  *
  --------------                     ----------      
  Basic ISO Code                          ?
  USASCII                                 ?
  ISO Code - French National Version      ?
  ISO Code - Russian National Version     ?
  ISO Code - German National Version      ?
  ISO Code - Italian National Version     ?
  ISO Code - Scandinavian Version         ?
  The SO set                              ?
  EBCDIC                                  ?
  RS 244                                  ?
  IBM 709/90/94                           ?
  IBM 705/7080                            ?
  IBM 1401                                ?
  UNIVAC 1107                             ?
  CCITT #2 (previous 5-bit alphabet)      ?
  ALGOL                                   ?
  LISP                                    ?
  SNOBOL                                  ?
  APT                                     ?
  Photocomposition devices                ?
  Linotype fonts                          ?
  Weather                                 ?
  Higher mathematics                      ?
  Logic diagrams                          ?
  "Who will run the registry? "
was the big question that I posed

This same memo also references R.W. Bemer, "On the Design of Extended Character Sets", X3 document, 1961 Jan 26 (Note: X3.2 documents unregistered until 1963 Dec).

1967 October 31: Bemer Trip Report to GE, on X2.3.1, Character Sets and Coding, Chicago:

"... their code extension document 208 will undergo extensive revision. This retreat by Ma Bell and ATT was assisted materially by my document on this subject, which caused first a stinging rebuttal and then a substantial compromise ..."
1968 February 22-23: ECMA/TC1/68/14, Report on the joint ECMA/BEMA Paris meeting on CODE EXTENSION AND CODE EXPANSION:

"ESC is reserved exclusively to provide additional and/or alternate controls."
Perpetuating the error of X3.2.

1968 June 18: Document ECMA/TC1/68/37, M. Dara Hekimi, Secretary General of ECMA, submitting Document X3.2.4/291 of 1968 June 18, "Proposed Definitions for EXTENSION - EXPANSION - COMPRESSION - ELEVATION - DEPRESSION" to the ECMA experts.

The comments of the brilliant and perceptive Hekimi are the only important aspect of this document, for he begins to admit and promote the registry principle.

"Furthermore it is possible to define two or more specific USASCII characters for a predetermined (!) ESC-sequence having the meaning: 'go to peujabi alphabet'. The character of this alphabet will in turn (be) represented each by a different 7 bit combination and not by the original USASCII characters. ... We know that this is not what we mean by EXTENSION."

1968 August 19: R. W. Bemer letter to C. A. Phillips, CBEMA:

"Dear Charlie: You asked (at the last X3 meeting) for a proposal on registry of codes alternate to USASCII ...

I am sorry that this important point has been ignored for five years, but you will recognize now that such registry may he the hinge point of the success of USASCII ... I believe that IBM and other users of EBCDIC as an internal code will find it much easier to effect the transition to USASCII (the ISO Code) if this one simple feature is implemented in a standard manner ... I would propose that this is an international matter to be brought to the attention of ISO/TC97 via the U.S.A. Secretariat. Registry numbers should probably be assigned by ISO/TC97/SC2 ..."

(Copies sent to Congressman Jack Brooks, Joe Cunningham of the Bureau of the Budget, Herb Grosch of NBS, all participants in X3, ECMA, and ACM standards committees).

This letter was accompanied by my working paper "REGISTRY -- A NEW FEATURE FOR ISO RECOMMENDATIONS". It has been put on this site in full, in almost the original form as retyped on 1970 May 28 for another purpose. It was the definitive pressure that led to the establishment of the International Register.

1968 September 01: Bemer memo to Sweeney of General Electric:

"... My registry memo to X3 was distributed widely throughout IBM."

1968 September 12: Document ECMA/TC1/68/55, "Comments on the Extension and Expansion Matter", by Mauro Ballabeni of Olivetti

More evidence of the Europeans finally getting the picture on registration, in a primitive way. The author does admit they "are only some initial ideas that I submit ... for consideration and for further discussion".

ESC * &          means: from now on communicate with ISO-
                        international (ISO R-646)

ESC * U means: from now on communicate with USASCII (USAS X3.4-1967)

ESC * c means: from now on communicate with Cyrillic alphabet (GOST 13052-1967)

ESC * J ESC % k means: from now on communicate with Japanese 7-bit 7-bit Alphanumeric Code in normal state, and 7-bit KATAKANA code in SO state

ESC * F ESC % m means: from now on communicate with French 7-bit code (NF Z 62-010/67) in normal state, and 7-bit mathematical table in SO state

ESC % w means: from now on the SO set is: 7-bit weather symbols table

From the reappearance of the specific sets mentioned in my controversial memo of 1967 August 21, this paper seems to be a direct reply.

1968 October 16: Minutes of Ad Hoc BEMA/DPG Code Philosophy Group -- Eric Clamons, Chairman, report by Hubert Ickes of IBM.

The word "registry" first appears in X3 documents, most belatedly.

"There exists no coordination of the national variations of the code; only a registry is maintained by TC97/SC2 (AFNOR)."

1968 December: "Proposed USA Standard, Code Extension Procedures for Information Interchange", Communications of the ACM 11, No. 12, 849-852

After more than two years, the U.S. group X3.2 is still proposing alternate graphics sets to be invoked via SO and SI (Shift Out and Shift In), while ESCape is pointed to extending the control set. However, it does now admit that "If more than one alternate set is required, SO should be used to select the principal such set, and escape sequences used to select each of the other such sets".

The registry problem, or "which escape sequence invokes which alternate set" is not considered here.

1969 March 21: Document ECMA/TC1/69/24, "Registration of Candidates for two-character Escape Sequences"

Refers only to control characters, not graphic characters. But this is appropriate for 2-character sequences; it takes more than 2 characters for identifiers of alternate graphic sets.

1969 Aug: In Ref. [10]:

"Coexistence demands recognition, yet I have stated that present data and programs are not recognizable out of context. Suppose that the computing world were to follow these steps: 1) ESCape sequences are proposed and registered for the various data and program forms that are fairly common ..."

I thought this an important paper, although readers did not seem to be receptive (it surely did not cause important action). So it is on this site in full, in scanned form.

1969 Oct 6-8: Document ECMA/TC1/69/75, "Minutes of the 39th Meeting held in London"

"VI: Report of the SC2 working party on registration of ESC sequences

Mr. Raphael reported on the working party which met in Paris. The group prepared two documents which will be distributed soon by SC2. The first one concerns a proposed ISO Recommendation outlining the way ESC can be registered and giving to the registered sequences a status equivalent to an ISO/R. The other one, limited to SC2, indicates how this ISO/R is to be implemented. It can be modified easily within SC2 if required by experience."

I have always thought it shameful that the U.S. people were the ones dragging their heels on accommodating the needs of other languages and alphabets, using their extensive influence to what end? Making English the language of the Internet, as it is now?

1970 April: Document ISO/TC97(France-2)362E -- Report of the Chairman of Subcommittee ISO/TC97/SC2, Character Sets and Coding, to Technical Committee ISO/TC97 (Berlin):

- Procedure for recording of escape sequences (Document 97 12 N 409)

"... In the course of the Naples meeting (1969 May 12-14), it has been decided to set up a "recording authority" for the escape sequences of the ISO 7-bit coded character set, and AFNOR had been proposed to take charge of this responsibility. A group of experts met at PARIS in September 1969 to edit a recording procedure. This procedure, once approved as ISO Recommendation, will permit to work out a document under conditions more rapidly acceptable than those required for the approval of an ISO Recommendation."

Aha! Here we go at last. Twelve years and counting. And these good people extended the concept properly to national variations:

- National choices for the ISO 7-bit coded character set

"The secretariat of subcommittee 2 permanently registers all national choices for the ISO 6- and 7-bit coded character set, as soon as informed by the Member Bodies having published a national standard."

Also of interest in these minutes is a note that Draft Recommendation 2022, "Procedures for the extension of code for the ISO 7-bit coded character set" had been submitted to the ISO Council for approval. ECMA itself had gone through 4 draft standards for this -- 68/47, 68/57, 69/14, and 69/67.

1970 November 16: From "Report, Inter-American Computing Symposium", Mexico City, Prof. Fred Gruenberger, Chairman

Bemer: I've been involved in standards efforts for a long time. Either you can get agreement on a tiny area (that then has little effect), or you can wait for agreement on large areas, and when you get it, it's obsolete. I propose, in place of what has been done up to now, a system of registering standards, to provide a kernel of agreement. You could also register a minimum number of variations. For example, when you read the magnetic label on a disk pack, and it says "This is Type 4 format", you could look it up somewhere and conclude that you could read the stored information properly. The present American Standards Institute (sic) doesn't object to this idea; they just don't understand it, and continue going the old way; they're sort of wishy-washy.

Bernstein: Just what should be registered as standards in your Plan?

Bemer: Plans should be made for long-term goals. Interchange codes -- all of them -- should be registered. In fact, "when in doubt, register" should be the key to the plan. As soon as a registry number is assigned to EBCDIC, then IBM will move to establish one standard for EBCDIC, because it is then in their own best interest to do so.

Bernstein: How about languages? Should they be registered?

Bemer: Sure. If there are several PL/I's, each of them can be registered.

Bernstein: I always understood the objective of standards work was to cut down the number of variations that could exist and gain currency. It seems to me that this registration procedure would defeat that.

Bemer: You would have to demonstrate a level of usage before the registering agency would assign you a number ... There is a high level of standard that must be established first. For example, if the first record on a disk pack identifies the complete format of the pack, then that record must be standardized ... I'm getting support for this notion. There is already an agency for registering code standards. For file structures, data languages, file formats, and the like, there is no mechanism now ...

1972 January 21: Draft Proposed American National Standard, "Code extension techniques for use with the 7-bit coded character set of ASCII (ANSI X3.4-1968)

This is Document X3L2/1199, a successive revision of /1177, /1166, and /1127. One can see how controversial the matter is.

1972 June 30: Draft International Standard ISO/DIS 2022, "Code extension techniques for use with the 7-bit coded character set of ISO 646", submitted to member bodies for vote:

REFERENCE: ISO 2375, "Data processing - Procedure for registration of escape sequences" (at present in the stage of draft).

1973 January 24: Document X3-73-81, cover letter from C. D. Card, Chairman X3L2, to J. Auwaerter, Cnairman X3, for Document X3-73-82, "USA Working Paper on Procedure for Registration of Escape Sequences".

"ISO/TC97/SC2 has advanced a third version of the Registration proposal to TC97 for processing under the combined ISO voting procedures. Consistent with X3 instructions the U.S. Representatives at the SC2 meeting opposed the action. Unfortunately our opposition was singular. ..."

Card said he was worried that some registered variants, such as National Standards, would get extra scrutiny, whereas for others SC2 would be "selectively uncritical". After the many years it took his committee to reach consensus on ASCII as a U.S. standard, it seems a bit presumptious to deny other countries the same control!

1973 June 27: Document X3-73-79, submittal of "ISO/DIS 2375 - Registration of Escape Sequences (Third Draft)" for action by X3 members.

"This is the 1973 iteration of what has become an annual attempt to find the grounds for agreement. ...(Robert M. Brown, Secretary X3)

1973 September: In [12]:

"ISO TC46, Documentation, has a Subcommittee on Automation in Documentation. This body has responsibility for collecting and/or developing the pages of encoded symbols. Examples ... are:

An ESCape sequence and prefix character should be proposed for each page of symbols. for registry with ISO TC97, Computers and Information Processing, which body maintains this registration authority for extension and expansion of the ISO Code."

Note: Aspects of all of these controllable characteristics that I outlined in 1973 now appear in today's laser printers.

1975 December 01: Registration No. 002 -- ISO 646 Character Set of 1975 Dec 01!

Finally, after goading US and international standards bodies for more than 7 years to achieve a registry of alternate code sets, evoked by logical or physical means (e.g. interchangeable printing). Bob Bemer was inordinately relieved to see this happen.

1977 July 22: ISO/TC97/SC2 - "Guidelines for the preparation of a code registration proposal according to ISO 2375" (rev. of ISO/TC97/SC2/841, prepared by the Advisory Group to the Registration Authority).

1979 July: In Ref. 16: "Over ten years ago it was recognized that ASCII was the basis for codification of the various symbols used throughout the world."

"The methods are in place for codifying all symbols that people use. They may be language alphabets. signs, drawing symbols, or controls for equipments. Robots, for example. ... How about a control set or two for sewing machines?"


I have always insisted that registry was a principle that went beyond character sets, beyond the purview of the established standards committees, beyond computers. But like Charlie Brown I always wondered if I was right.

On 2000 July 19, entering this text, I digressed to make an Alta Vista search on "registry +ISO". There were 2,276,370 hits! That's a good enough reason to assert that it was worth my protracted effort to get it started!


  1. R.W.Bemer, W.Buchholz, "An extended character set standard",
    Tech. Pub. TR00.18000.705, 1960 Jan 26, rev. TR00.721, 1960 Jun
  2. R.W.Bemer, "A proposal for character code compatibility",
    Commun. ACM 3, No. 2, 71-72 (1960 Feb)
  3. R.W.Bemer, "Survey of coded character representation",
    Commun. ACM 3, No. 12, 639-641, 1960 Dec
  4. 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
  5. ISO/TC97/WGE (USA-11)56, "Programming language implications on
    coded character sets", 1962 May 09, R. W. Bemer
  6. R.W.Bemer, W.Buchholz, "Character set",
    Chapter 6 in Planning a Computer System, McGraw-Hill, 1962
  7. 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
  8. R.W.Bemer, "Information processing - a bit expensive?",
    Forum Editorial, Datamation 12, No. 6, 140, 1966 Jun
  9. R.W.Bemer, "ESC facility in ASCII",
    Letter to the Editor, Commun. ACM 10, No. 4, 202, 1967 Apr
  10. R.W.Bemer, "Escape to reality",
    Forum Editorial, Datamation 15, No. 8, 239-240, 1969 Aug
  11. R.W.Bemer, "A view of the history of the ISO character code",
    Honeywell Computer J. 6, No. 4, 274-286, 1972
  12. R.W.Bemer, A.R.Shriver, "Integrating computer text processing with photocomposition"
    IEEE Trans. Prof. Commun., PC-16, No. 3, 92-96, 1973 Sep
  13. R.W.Bemer, "ASCII -- the data alphabet that will endure",
    Keynote, Proc. 2nd Natl. NBS Symposium on
    Data Elements in Information Processing, 17-22, 1975 Oct 23-24
  14. R.W.Bemer, "Inside ASCII - Part I",
    Interface Age Magazine 3, No. 5, 96-102, 1978 May
  15. R.W.Bemer, "Inside ASCII - Part II",
    Interface Age Magazine 3, No. 6, 64-74, 1978 Jun
  16. R.W.Bemer, "Inside ASCII - Part III",
    Interface Age Magazine 3, No. 7, 80-87, 1978 Jul
  17. J. A. N. Lee, "Happenings - The 25th Anniversary of Committee X3",
    Annals of the History of Computing, 9, Nos. 3/4, p. 345-354.

At the National Museum of American History (of the Smithsonian Institution), in Washington, DC, are my collected papers on the early history of ASCII development. They're in the COMPUTER STANDARDS COLLECTION, 1958-1978:

Box 1. ISO Code -- General History, Volume 1: thru May 1961
Box 2. ISO Code -- General History, Volume 2: thru January 1962
Box 3. ISO Code -- General History, Volume 3: thru September 1962
Box 4. ISO Code -- General History, Volume 4: thru April 1964
Box 5. ISO Code -- General History, Volume 5: thru August 1966
Box 6. ISO Code -- General History, Volume 6: thru April 1972
Box 7. ISO Code -- General History, Volume 7: thru March 1979

They also have my early ALGOL and COBOL papers.

Back to History Index bsp;    Back to Home Page