[Next] [Up] [Previous] [Home] [Other]

The Punched Card

In the beginning, there was the 45-column card.

Or, at least, I had originally thought so, but it turns out that the cards used by Herman Hollerith for the 1890 census had 20 columns of holes.

Originally, each individual hole on the card could contain the answer to a separate yes/no question; Hollerith's original tabulator counted the number of cards it processed with a hole in each possible position.

A column of holes on a card could also indicate a digit from 0 through 9 by which of ten holes was punched. From this grew the idea of using a column of holes to represent a character of text, which allowed the development of other forms of tabulating equipment that proved useful in automating calculating and sorting tasks useful in general business accounting.

It was back in 1928, long before the computer age, that IBM introduced the 80-column card with thin rectangular holes for use in tabulating equipment. Their chief competitor, Remington Rand, instead took the existing 45-column card, and increased its capacity to 90 columns by using only six of the twelve holes in a column to specify a character.

This illustration shows the punched card formats which were the most significant in North America during the mainframe computer era:

Here, we see an 80-column card, a 96-column card, and a 90-column card.

The 80-column card is, of course, what people generally thought of as a punched card. Above each column of punches, the character those punches represent is shown printed in a row at the top. This was actually a late development; the IBM 29 keypunch, introduced in the early 1960s, had this function, but its predecessor, the IBM 26 keypunch, did not. You may have noticed that the row of characters along the card is repeated, but with wider spacing, further down the card.

This illustrates how 80-column cards had been made human-readable prior to the general use of interpreting keypunches. One of the available types of punched-card tabulating equipment was an interpreter, which read the information on a card, and could print that information, or the results of calculations, on the top or bottom of the card, or between the rows of punches. But, for legibility, the characters it used in printing on the cards were wider than the columns of holes, so that on one popular model of card interpreter from IBM, the IBM 447 alphabetic interpreter, 60 characters could be printed in a line across the card.

Before ASCII became the standard, many of the internal codes used to represent characters within computers were strongly influenced by the punched card code for characters. One of the most famous of such codes, and one that has persisted in use the longest, is, of course, EBCDIC (Extended Binary-Coded Decimal Interchange Code). The diagram below illustrates the relationship between EBCDIC and punched card code:

The EBCDIC chart is divided into colored areas to make the characters easier to find. Also, since a printing character is easier to recognize than a hexadecimal code, graphics additional to those standard for EBCDIC have been added to the chart. The superscript numbers and other special characters were taken from the 1403 TN print train; the subscript numbers and small capitals were defined by analogy, and the unusual characters from the 1401 computer were positioned in unused space on the basis of their BCDIC codes (the lozenge not having to be placed there, because it was on the 1403 TN print train).

EBCDIC is illustrated in the upper left corner, 80-column punched card code along the bottom, and 96-column punched card code in the upper right corner.

Here is a chart showing the form of 8-bit ASCII currently in use, and the official punched card code for 8-bit ASCII:

Before it was anticipated that ASCII would take an 8-bit form, and, indeed, even before lower-case letters were added to ASCII, there was a need to handle punched cards on computers that used ASCII as their character set. Thus, many machines using ASCII used relationships between ASCII characters and the holes punched into cards which differ from this standard; some in small ways, such as assigning ASCII ! to the same punched card code as EBCDIC !, and some in more major ways, such as by being based on the FORTRAN version of BCDIC instead of the standard, commercial version.

And here is the chart of EBCDIC 80-column and 96-column punched card codes from above, doubled in size, for easier reading. (The doubling is done by your browser, which should not have to fetch the image twice.)

The closest I came to seeing 90-column cards in actual use was in seeing them at "handwriting analysis" booths at the fair. But, then, I only saw 80-column cards in actual use in one place, which happened to have chosen to use IBM computers, so that is not really a fair measure of the popularity of computers from the Univac division of Remington Rand.

When IBM introduced the 96-column card for its System/3 line of computers, since it used multiple rows of round holes, it was said in jest that this proved that Remington Rand was right all along. (The videodisc, providing constant angular velocity, and not modulating the groove by moving it from side to side, but keeping its path constant, and varying its depth, has similarly been termed a vindication of the Edison Phonograph over the Berliner Gramophone.) It may be noted that these cards were as wide as an 80-column card was high, so that it was possible to construct a card reader which could read both kinds of card. Also, the spacing of holes in both directions was the same as the horizontal spacing of the holes in an 80-column card.

If an 80-column card were punched with holes of the size and spacing of those on a 96-column card, it could serve as a 320-column card. Or it could remain an 80-column card, but with 32 bits per character. While UNICODE started out as a 16-bit character code, UTF-8 encoding provides for representing up to 31-bit characters, and such extended range characters are indeed being assigned. To convert from a data storage code to a binary punched card code, the simplest thing to do would be to invert, for all characters, the one bit position that is "one" in the space character before allowing a punched hole to represent one, and the un-punched area of the card to represent zeroes.

One could have 320 columns of ASCII, 160 columns of UNICODE, or 80 columns of ISO 10646 on such a card. Yes, that's 320 columns of conventional 8-bit ASCII text, including the accented characters used in many European languages, 160 columns of text that could be in almost any major language, including in Chinese characters, or 80 columns of text that could even include characters from the few obscure languages for which room could not be found in the UNICODE 16-bit set.


[Next] [Up] [Previous] [Home] [Other]