6

With an encoding such as EBCDIC being in existence already (and being 8 bit to boot), what was the need to invent yet another encoding and a 7 bit one at that?

Why was ASCII invented and what problems with EBCDIC did supposed to solve?

Oded
  • 53,326
  • 19
  • 166
  • 181

2 Answers2

15

Development of ASCII started earlier than what you think (see for instance Eric Fischer's The Evolution of Character Codes, 1874-1968) and IBM 360 - for which EBCDIC was developed -- should have used ASCII if its development had not been so slow (see http://www.bobbemer.com/P-BIT.HTM)

See also C. E. Mackenzie, Coded Character Sets, History and Development, ser. The systems programming series. Addison-Wesley, 1980. which describes the development of ASCII, EBCDIC and some other character sets with rationale for some of the assignations (things about chain printers and punched cards are fascinatingly obsolete but still have influence on what we use).

Ross Patterson
  • 10,277
  • 34
  • 43
AProgrammer
  • 10,404
  • 1
  • 30
  • 45
13

One reason is because EBCDIC wasn't a good standard, at least depending on your purpose. For example, the letters aren't in two (upper and lower case) contiguous blocks - there are extra codes between the EBCDIC letter codes, some of them used for other valid characters. The ~ is between r and s, for example. This makes sorting a bit more difficult.

Another is precisely because ASCII is a 7 bit code. Saving one bit per character was worthwhile at the time, and even six-bit character codes weren't uncommon. Even when 8 bits were used per character, the eighth was often a parity bit and not part of the character code.

  • 4
    A common media for inter-exchange (one of the I of ASCII) at the time was paper tape, which needed parity and did not easily allow more than 8 bits per frame. – AProgrammer May 23 '12 at 18:43
  • 3
    At that time, 7-track tape drives were also fairly common. – Jerry Coffin May 23 '12 at 18:53
  • @JerryCoffin: Are you advocating spreading the bits in a bytes across all 7 tracks thus allowing you to read each ASCII character in parallel. ;-) – Martin York May 23 '12 at 19:27
  • 1
    @LokiAstari: I'm not really advocating anything -- but at least if I recall correctly, that was how they were used, at least part of the time (though the 7-track drives of which I was aware were mostly recording CDC's 6-bit code + parity in parallel). Later, there were also 9-track drives, that worked pretty much the same way. Then there were drives that acted like 9-track drives, but actually used a head on a rotating drum, about like in a VCR (I believe all 6250 FCI drives worked that way). – Jerry Coffin May 23 '12 at 19:32
  • 2
    @Loki - whether Jerry advocates it or not, [he seems to be correct](http://en.wikipedia.org/wiki/IBM_7_track). Though what this describes is 6 bits plus parity. My first thought - parallel data across the width of magnetic tape must be quite sensitive to alignment and tape-stretch issues. –  May 23 '12 at 19:33
  • 7
    Paper tape is also the reason the "delete" control character is 0x7F: So that you could "delete" a character on the tape by punching out all 7 holes. – dan04 May 24 '12 at 01:29