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 28 columns of holes. Similar cards were still being used in the 1910 census.
The 28-column cards used in the 1890 census had the 3 1/4" high and 7 3/8" wide dimensions of a modern card; shorter cards were also used for some purposes, for example, cards with 24 columns, and those cards were 3 1/4" high and 6 5/8" wide.
The first four columns on the cards in the 1890 census were apparently used to record a unique number for each card as six digits from 1 to 8. This is apparently what led to some accounts claiming that the cards had eight rows instead of twelve. The pantographic punch used for filling in those cards only put holes in the other 20 columns of the card, leading to other accounts claiming that the card had twenty columns.
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.
The conventional size of a punched card, 3 1/4" high and 7 3/8" wide, matching the size of an older U.S. dollar bill, was used in the punched cards that the ancestor of IBM sold to businesses. The 45-column card was already in use by 1910, but at that time some businesses were still using its predecessor, a 36-column card. The holes in the card were 1/8" in diameter; in the original cards made for the U.S. census, they were spaced on centers separated by 1/4" both horizontally and vertically. In the 36-column card, the horizontal spacing was reduced to 3/16", and in the 45-column card, that spacing was reduced again to 5/32". Thus, the space between adjacent punched holes in a row began as 1/8", was cut in half once to 1/16" to create the 36-column card, and then was cut in half again to 1/32" to create the 45-column card.
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, protected under U.S. Patent. 1,772,492, granted in 1930. This patent was quite general; it did not specify the precise dimensions of the card, but simply covered the use of rectangular holes, or smaller round holes, to allow more data to be placed on a card. This additional claim, however, apparently was not accepted by patent offices in Britain, and so, as we shall see later, some of IBM's competitors there did use smaller round holes as a way to compete with the 80-column card.
And (as I learned from a paper by Eric Fischer) the code used for representing the 26 letters of the alphabet by punching two holes in a column was shown in a patent for a printer to be used in a card-based accounting machine, applied for in 1932, and granted in 1935, U.S. Patent 2,016,682. The code itself was part of the subject of the patent, referred to as a "novel zoning mechanism".
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. The 90-column card was introduced in 1931.
Here, we see the 80-column card and the 96-column card, the most recent cards from IBM, and the most familiar ones to North American readers.
The 80-column card is, of course, what people generally think of as a punched card. Above each column of punches, the character those punches represent is shown printed in a row at the top.
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.
The 96-column card was introduced by IBM in 1969, along with the System/3 computer. It is 2 5/8" high, but 3 1/4" wide, so its width matches the height of an 80-column card, which, of course, allows the possibility of equipment that could read both sizes of card. The spacing of the holes, both vertically and horizontally, is 0.087", the same as the spacing of columns on an 80-column punched card; their diameter may be 0.046", somewhat smaller than 0.055". According to one source, the left edge of the card is separated from the center of the first column of holes by 0.293"; this is presumably a maximum tolerance, as if the holes are symmetrically disposed, that distance should be 0.2865".
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.
Some examples of this will be shown further down on this page.
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.
Many other computer manufacturers used punched cards. Some computers which used ASCII as their character set had card codes which, while they resembled IBM's card code, had a number of slight differences. One common difference was using + in place of & as the equivalent of a single 12 punch; thus, the card codes were based on the 'scientific' rather than the 'commercial' variant of BCDIC.
shows some examples of this.
The first line in the center of the diagram, above the illustration of a punched card, shows part of the standard representation of ASCII on punched cards that we saw above.
On the card itself, we see how an IBM 029 card punch would prepare cards; here, the lozenge (or pillow) symbol is shown for the card code 0-8-2, although the lozenge on the TN print train prints for a different code, because that is how this keypunch interpreted cards.
On the left side, we see illustrations of some of the internal codes associated with different punched card codes; however, instead of depicting EBCDIC in full, characters from two sets of four columns in that code were overlapped to construct a six bit code that could be directly compared to the two versions of BCDIC also shown. On the right side, CDC Display Code and ASCII are illustrated, since we are showing how those codes are connected to the punched card.
The ninth and tenth lines in the center show how the characters from the BCDIC scientific and commercial sets were punched. Note that here that the place of 12-0 would be taken by 12-8-2, and the place of 11-0 would be taken by 11-8-2, when EBCIC and the IBM 29 key punch came along. The fact that 8+2=10, which ends in 0, was perhaps planned all along; it was certainly convenient given the way pulses were added in tab equipment.
The fourth line on the right side shows the card code used with the PDP-8 as described in one of the earlier editions of the Digital Small Computer Handbook. As can be seen, it is largely based on the BCDIC scientific character set.
A later edition of the Digital Small Computer Handbook gave two different punched card codes; the choice was provided for the convenience of sites that might either have IBM's older 026 card punch, designed to work with BCDIC and older computers like the 1401 and the 7090, or IBM's newer 029 card punch, for EBCDIC and the System/360.
The DEC 026 card code is similar, but not identical, to the earlier PDP-8 card reader code; presumably, this is because at this later date, DEC was getting their OEM card readers from a different supplier.
The card reader shown in the later handbook was the CR8-F, while that in the earlier handbook offered a choice of two card readers, the CR01 and the 451. The one in the later handbook was a Documation M200; for a short while, a form of the later Documation M600 was actually sold for a short time by Radio Shack before being replaced by a smaller and cheaper punched card reader that also handled mark-sense cards.
The sixth line above the illustration of a punched card shows the punched card codes used on the Control Data 6600 computer. These codes were converted to that computer's internal character code, known as CDC Display Code. Although there is a site with many old computer manuals available on-line, amazingly they didn't have any manual for the CDC 6600 that gave its punched card code: fortunately, this site had preserved their punched card code.
As ASCII became more popular, Control Data eventually provided an alternate version of CDC Display code with some characters re-assigned, so that it would use exactly the same characters as the upper-case only subset of ASCII; this allowed common ASCII terminals to be used with the Control Data 6600 computer, for example. For comparison with the three codes shown for using punched cards with the PDP-8 computer, which used ASCII internally (modified to fit in six bits per character), the CDC 6600 punched card code is shown in the fifth line with these alternate character assignments.
A remote batch terminal, the model 731, made by Control Data naturally dealt with punched cards, and it offered two alternate punched card codes. The 029 punched card code is almost identical with the current ANSI standard, except that 12-0 and 11-0, instead of being used for braces, are alternate codes for the square brackets. The 026 punched card code differs both from the codes used with the PDP-8 and with CDC's own code as used with its 6600 mainframe.
Incidentally, from one of the pages of the section of this site about keyboards, here is an illustration of the keyboard of an IBM 029 keypunch:
On some UNIVAC keypunches, which have a similar keyboard layout, but the keys of which have a different appearance, Numeric-A instead of being disabled is used for 12-0, and Numeric-Z is used for 11-0.
However, there were other card codes in use that were almost completely different from the conventional Hollerith code. This example still uses the same codes for the digits 0 through 9, and the principle of distinguishing between zone and digit punches is still applied, but 3 is treated as a zone punch as well as 12, 11, 0, 8, and 9.
This is the card code used in the former Soviet Union in association with the GOST 10859-64 character code, for computers such as the BESM-6 and the Minsk-32.
Incidentally, as EBCDIC was dealt with in some detail above,
here is the variant of EBCDIC which was used in the Soviet Union with their Unified System computers which followed the basic design of the IBM System/360.
Many other types of punched card, of different shapes and sizes, have been used. One reference I have encountered claimed that at one point, the Powers corporation (the ancestor of Remington Rand Univac) used smaller round holes to make a 60-column card that was the same size as the standard IBM punched card of 45 or 80 columns; however, another source notes this as merely something that was considered but not tried.
In 1936, in Britain, the Powers-Samas company did respond to IBM's 80-column card by increasing the number of columns on the standard-sized punch card from 45 columns - to 65 columns. They used smaller round holes, 3/32" in diameter. (In general, European tab equipment companies, while spun off from American ancestors, were independent. The British Powers company had united with SAMAS, a French company that acted as its distributor, to form Powers-Samas.)
Earlier, in 1932, Powers-Samas brought out a miniature card, the Powers-Four, that was 4 11/16" wide and 2" high. At that time, this card had 11 rows of holes, rather than 12, and it had 26 columns. This smaller card allowed them to produce a more inexpensive line of tab equipment aimed at smaller businesses. One reference claims that the columns of holes on that card had the same 5/32" spacing as those on a standard 45-column card, but it does not appear that 26 columns would fit on such a card in that case.
1936 was an eventful year for Powers-Samas. In addition to introducing the 65 column card in that year, they increased the number of columns of holes on the 2" by 4 11/16" card to 36, and they brought out the Powers-One card. This card, even smaller than the Powers-Four card, at 2" by allowed the production of an even more inexpensive line of tab equipment. It also had eleven rows of holes. Looking at photographs of this type of card, it appears that the columns could have been at intervals of 0.108" and the rows at intervals of 0.159". This spacing of columns would also have been suitable for the 65-column card.
Later, in 1950, the 2" by 4 11/16" card had the number of columns of holes on it increased again, to 40 from 36. One reference gives the spacing of its rows as 0.143" and its columns as 0.107". This version of the card had 12 rows of holes on it.
What I suspect is that the spacing of columns of holes was 0.107" on the 21-column card, the 36-column card, and the 65-column card, and that the 36-column card still had 11 rows of holes. Because the 21-column card had generous margins on the left and right, that could have also been true of the 36-column card. That way, it isn't necessary to explain why a significantly wider spacing of columns of holes would have been used in 1936 with the 36-column card than with the 21-column and 65-column cards, with the 36-column card taking 14 years to catch up. Since writing this, I have found what seems to be an illustration of that kind of 36 column card that confirms these conjectures.
The 65-column card was extended to a 130-column card through the same double-row technique that was used to turn the 45-column card into Univac's famous 90-column card. I have even seen mentions of a 160-column card, presumably derived from the 80-column card in the same fashion.
Before IBM came out with the System/3 and its 96-column cards, engineers working for IBM in Germany had devised a computer, the System/3000, which used a miniaturized version of the 80-column card, as noted on this web site devoted to the history of the IBM System/3. However, unanticipated problems with card reading caused it to be discontinued.
The cards, pictured on one web site, were quite unique: they worked by using round holes, which were displaced downwards by half a row in every second column. The spacing of the centers of the holes appears to have been 1.1/2.2 mm for the columns, and 2.2/4.4 mm for the rows; the smaller figure for the immediate next row or column, the larger for the next row or column not staggered relative to a given row or column. Although the hole spacing appears to have been metric, the card dimensions seem to be better approximated in inches; 2 3/8" high, just as the 96-column card, and 4.1" wide.
The columns of holes appear to be distributed symmetrically, which, however, means that if a card were flipped over horizontally, the staggered and non-staggered holes would be in opposite positions, given the even number of columns. The rows, on the other hand, are significantly offset towards the bottom of the card, very nearly enough to allow for a thirteenth row of holes on the top to make the positions of the rows symmetric.
The 45-column, 80-column, and 90-column punched cards are, of course, the same physical piece of cardboard except for the guidelines printed on them. These cards are 7 3/8" wide and 3 1/4" high. As well, one internal IBM manual identifies the nominal manufacturing thickness of cards as 0.0065" with a tolerance of ±0.0005"; this specification was also revealed to the public back in 1936 in an IBM publication on "Machine Methods of Accounting", but this may have been forgotten and obscure. This gives a range from 0.006" to 0.007".
When cards are stacked and stored, they will take up slightly more space. On the other hand, not only is the nominal thickness of a punched card given as 0.007" by some general reference works on punched card data processing, which could be put down to an error, but a punched card training manual by Control Data gives the specification for the thickness of a punched card as 0.007" ±0.0004"; thus, the range is from 0.0066" to 0.0074", and only half of it is within the range specified by IBM. However, this specification was noted as applying under conditions of 50% relative humidity, so it may be that the discrepancy between that and IBM's specification was more apparent than real.
As for Univac, I haven't been able to locate any original documentation, but one recent article gives 0.006625" plus or minus 0.000375", for a range of 0.00625" to 0.007"; unlike that given for Control Data, this sits entirely within the range specified by IBM.
The twelve rows of holes on an 80-column punched card each occupy 0.25" or 1/4" (6.35 mm), with the holes occupying 0.125", or half of the height of the row; the columns of holes each occupy 0.087" (2.2098 mm), and the hole is ideally 0.055" wide (the Control Data manual mentioned gives 0.056" as the width of the hole).
The holes are disposed symmetrically on the card, so at the top and bottom of the card, there is 3/16" of unpunched space. They are also disposed symmetrically along the width of the card, so this leaves 0.2235" of unpunched space at the beginning and end of the card. Or, the distance between the leading edge of the card and the centers of the holes punched in the first column is 0.251".
A column width of 0.087" means that the 7 3/8" width of a card is slightly more than 84 times the width of a column. Some cards appear as if the width is actually slightly less than 84 columns, suggesting a column width of 17/192", or about 0.0885", and, thus, tolerances may apply. However, while the 45-column card was accurately referred to as a 5/32"-pitch card, occasional references in early books to the 80-column card as a 3/32" card constituted merely a colloquial appellation, not an accurate alternative way to express the width of a column of data on the card; that would have been much too wide.
The characters printed by a 60-column interpreter appear to be exactly 4/3 of the width of the columns of punches on an 80-column card, thus occupying 0.116". Columns 4, 5, 6, and 7 of punches occupy the same space across as printed characters 3, 4, and 5 in a row... and columns 76, 77, 78, and 79 of punches occupy the same space across as printed characters 57, 58, and 59 in a row. (Actually, the printed characters may be displaced very slightly to the left.)
On a 45-column card, the 45 columns are each 5/32" or 0.15625" wide. These columns are also placed symmetrically on a card, and thus the distance from either the right or the left edge of the card to the space allocated for the first row of holes would be 11/64", and to the center of those holes would be 1/4". Some sources give the diameter of these holes as 1/8", but one source suggests that the holes were 0.124" in diameter.
Originally, it appears that the columns of holes on the very first Hollerith cards had the same 1/4" spacing as the rows of cards. That would seem to have allowed for more than 24 columns of holes, but it seems like the 24 columns of holes used in the 1890 census were offset to the left on the card, leaving space for two more columns at the end.
Also intermediate between the earliest form of the Hollerith card and the 45-column card was a 36-column card. This also had space for perhaps an extra column of holes or so, with some empty space left on the right-hand side of the card. The spacing between the centers of columns of holes on that version of the card appears to have been 3/16", with the centers of the holes in the first column being 1/4" away from the left edge of the card.
Punched cards as used on the IBM System/360 can easily be seen to have the capacity of eight bits per column when punched according to the EBCDIC code. The 12, 11, and 0 punches, and the 8 and 9 punches, may be present or absent in any combination, accounting for five bits of data, while in the rows from 1 to 7, either no holes may be punched, or a hole in one of the seven rows, allowing eight possibilities, for three bits of data.
Some computer systems used binary cards where each column could contain 12 bits of data, so any hole position could be punched or not, in any combination. However, such cards tended to be quite fragile.
The following image shows the result of a speculation of mine as to how the amount of data that could be placed on a card could be increased without making cards much more fragile than those with eight bits of data per column in the EBCDIC code.
In this image, first we see a diagonal row of punches, in the rows from 1 to 7. This is intended to represent the eight possibilities, no punch, or one of those seven punches, available for those rows in the EBCDIC card code.
The next thing we see is the idea that came to me when I speculated about what could have been done if it had been decided to base the IBM System/360 computer on a 36-bit word, and a 9-bit byte, instead of the 32-bit word and the 8-bit byte.
A second 256-bit block of characters, also encoded as EBCDIC was, would be added to the code, with the possible combinations of punches in rows 1 through 7 transformed as follows:
For a punch in rows 1, 2, and 3, or in rows 5, 6, and 7, a punch in row 4 would be added.
No punch would become 2-6, and a punch in row 4 would become 2-4-6.
So the sixteen possibilities would now be:
(no punch) 2-6 1 1-4 2 2-4 3 3-4 4 2-4-6 5 4-5 6 4-6 7 4-7
Because the 4 punch is in the middle of the area from row 1 to row 7, adding that punch adds some additional possibilities of two adjacent punches in a column, but the maximum number of adjacent punches, four, for the combination 12-11-0-1, is not increased.
Subject to the constraint of not making the card more fragile, could the number of bits encoded in a column on a card be increased still further?
In order to retain compatibility with the 9-bit code examined, one way to proceed would be to subject the punches in rows 1 through 7 to the following constraint:
Of the rows 1, 2, and 3, one punch or none could appear, for two bits of data.
A punch could always appear or not in row 4, for one bit of data.
Of the rows 5, 6, and 7, one punch or none could appear, for two bits of data.
This adds five bits to the five from the 12, 11, and 0 rows, and the 8 and 9 rows, allowing 10 bits per column, and again the maximum number of adjacent holes in a column is not more than four.
The last two groups of punches shown in the image show one way to order the combinations of punches which were not already used in the nine-bit code.