On this page

History · Origins

A short history of ASCII

How a committee of engineers turned telegraph habits into the seven bits every computer still speaks.

Fig. 1 “ASCII 1963” as it would be punched on paper tape.

Before ASCII

Long before computers, machines were already sending letters as codes. Émile Baudot patented a five-unit telegraph code in 1874, and Donald Murray reworked it around the turn of the century for operators typing on keyboards rather than tapping keys.

By the 1950s, computer makers had each settled on their own character codes, and machines from different vendors often couldn’t read each other’s data. Moving text between systems meant translation tables, or retyping it.

The committee

In 1960 the American Standards Association set up its X3.2 subcommittee to agree on one code. It chose seven bits, enough for 128 characters, and arranged them with care: control codes first, then punctuation and digits, then letters, so that sorting by code would put text in a sensible order.

The first edition, X3.4-1963, defined capital letters only. The positions where lowercase would go were left unassigned.

The code chart from X3.4-1963, headed “2. Standard Code”. Columns of control codes, then punctuation and digits, then capital letters; the last two columns are marked UNASSIGNED, apart from a few codes at the foot of the last one, including ACK, ESC and DEL.
Fig. 2 The 1963 chart, with its empty lowercase columns. Source: American Standards Association, American Standard Code for Information Interchange, X3.4-1963, p. 5.

1967: lowercase arrives

The 1967 revision filled those positions with lowercase letters, placing each one exactly 32 codes after its capital. Changing case became a matter of flipping a single bit.

A President’s memo

In March 1968, President Lyndon B. Johnson signed a memorandum making ASCII the standard for federal computers, putting the purchasing power of the US government behind the code.

The rival

IBM had already gone its own way. Its System/360, announced in 1964, used EBCDIC, an eight-bit code descended from punched cards. IBM mainframes use it to this day.

  1. 1874Baudot patents a five-unit telegraph code
  2. c. 1901Murray adapts it for keyboard operators
  3. 1960ASA’s X3.2 subcommittee begins work
  4. 1963First edition of ASCII published
  5. 1964IBM’s System/360 ships EBCDIC
  6. 1967Revision adds lowercase letters
  7. 1968Johnson memo makes ASCII a federal standard
  8. 1992UTF-8 keeps ASCII as its first 128 code points
Fig. 3 From telegraph to UTF-8.

Afterlife: UTF-8

When Ken Thompson and Rob Pike designed UTF-8 in 1992, they made its first 128 code points identical to ASCII. Every ASCII file is already valid UTF-8, which goes a long way toward explaining why UTF-8 won, and why these seven bits are still everywhere.

Continue reading

Sources

  1. Tom Jennings, “An annotated history of some character codes,” including the sections ASCII-1963 and ASCII-1967. https://www.sr-ix.com/Archive/CharCodeHist/index.html
  2. IEEE Engineering and Technology History Wiki, “Milestones: American Standard Code for Information Interchange (ASCII), 1963.” https://ethw.org/Milestones:American_Standard_Code_for_Information_Interchange_ASCII,_1963
  3. Lyndon B. Johnson, “Memorandum Approving the Adoption by the Federal Government of a Standard Code for Information Interchange,” March 11, 1968. The American Presidency Project. https://www.presidency.ucsb.edu/node/237376
  4. IBM, “The IBM System/360.” https://www.ibm.com/history/system-360 — IBM, “The EBCDIC character set,” z/OS Basic Skills. https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set — and Douglas W. Jones, “Punched Card Codes,” University of Iowa. https://homepage.cs.uiowa.edu/~jones/cards/codes.html
  5. Computer History Museum, “Robert (Bob) Bemer papers.” https://www.computerhistory.org/collections/catalog/102724781/
  6. Rob Pike, “UTF-8 history” (email, April 30, 2003). https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt