Around 1965 IBM announced a new computer series, that became known as System 360. For this series a new way of character coding came to be introduced, EBCDIC, based on Hollerith punched card conventions. When it turned out that this development followed a direction totally different from ASCII, (where the heritage of paper tape is clearly discernible), it was already too late. IBM had invested far too much to be able yet to change the design.
EBCDIC (Extended Binary Coded Decimal Interchange Code) was a further development of older codes like BCDIC, BCD and back to Hollerith. As designed now, it was an 8-bit code, because the new machines used that unit in the composition of 32-bit machine words. Obviously, no one believed in a 28-bit word. With 256 available positions (64 for controls), small letters did not pose a problem. Nevertheless, not all bytes were given an interpretation as a character. Leaving that amount of bits unused made some clients complain of unjustifiable waste of resources. In the course of time, however, many empty places became occupied, and not always uniformly to all applications. Even EBCDIC got national versions. As a consequence, EBCDIC does not mean any longer a single codetable. In Chapter 12 the matter is discussed to a larger extent.
The selection of characters almost conforms to that of ASCII, it are 94 graphic characters (in the original version). Constructing a conversion table would seem not to be too difficult (for those 94, of course). But EBCDIC has the NOT SIGN and not the CIRCUMFLEX of ASCII. Also the BROKEN BAR and the VERTICAL BAR spoil the fun. These nasty details make conversion a matter for specialists, the more where a number of EBCDIC variants had crept in, that only differed in coding for the same character. This relates to the straight brackets versus the CENT SIGN and the EXCLAMATION MARK.
Table 5 demonstrates the typical structure of EBCDIC. For comparison the code of the IBM 029 card punch is attached. For the control characters columns 0-3 are reserved. The letters do not go beyond row 9. Should one use the numerical value of a byte as the base of a collating sequence, then the letters precede the digits, and the small letters the capital letters.
EBCDIC has been, up to the late 70s, the most frequently applied character code, next to which ASCII only had a marginal existence. Only with the ascent of the personal computer the spread of ASCII started to increase, extending to networks where people from cost considerations wanted a restriction to 7-bit channels. The entire world of IBM-mainframes is still dominated by EBCDIC up to this day. UNIX, however, is based on ASCII.
TABLE 5
IBM CODING SYSTEM
EBCDIC (according to IBM GX20-1850)
0. | 1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. | 9. | A. | B. | C. | D. | E. | F. | |
.0 | NUL | DLE | SP | & | - | { | } | \ | 0 | |||||||
.1 | SOH | DC1 | / | a | j | ~ | A | J | 1 | |||||||
.2 | STX | DC2 | SYN | b | k | s | B | K | S | 2 | ||||||
.3 | ETX | DC3 | c | l | t | C | L | T | 3 | |||||||
.4 | d | m | u | D | M | U | 4 | |||||||||
.5 | HT | LF | e | n | v | E | N | V | 5 | |||||||
.6 | BS | ETB | f | o | w | F | O | W | 6 | |||||||
.7 | DEL | ESC | EOT | g | p | x | G | P | X | 7 | ||||||
.8 | CAN | h | q | y | H | Q | Y | 8 | ||||||||
.9 | EM | ` | i | r | z | I | R | Z | 9 | |||||||
.A | ¢ | ! | ¦ | : | ||||||||||||
.B | VT | . | $ | , | # | |||||||||||
.C | FF | FS | DC4 | < | * | % | @ | |||||||||
.D | CR | GS | ENQ | NAK | ( | ) | _ | ' | ||||||||
.E | SO | RS | ACK | + | ; | > | = | |||||||||
.F | SI | US | BEL | SUB | ^ | ? | " |
CODES FOR PUNCHED CARDS (IBM 029)
12- | 11- | 0- | ||
& | - | 0 | SP | |
1 | A | J | / | 1 |
2 | B | K | S | 2 |
3 | C | L | T | 3 |
4 | D | M | U | 4 |
5 | E | N | V | 5 |
6 | F | O | W | 6 |
7 | G | P | X | 7 |
8 | H | Q | Y | 8 |
9 | I | R | Z | 9 |
8-2 | ¢ | ! | 082 | : |
8-3 | . | $ | , | # |
8-4 | < | * | % | @ |
8-5 | ( | ) | _ | ' |
8-6 | + | ; | > | = |
8-7 | ^ | ? |