IBM card punch Up until the mid-1970s 80-column punched cards were one of the main means of inputting data and programs into computers. Cards were punched using a floor-standing desk-type machine that the operator sat at. It had a conventional keyboard and two hoppers, one full of blank cards and another where the punched cards would be placed. The punch not only punched the card but also printed what was punched along the top edge. The cards were punched as the keys were pressed and while it was not possible to edit the card to correct an error, there was a DUP key that could be used to automatically punch a new card up to the point of the error and then manual typing could resume. The bad card was then caught as it moved into the stack of output cards and it was common practice for there to be a waste bin at the side of each desk where incorrectly punched cards could be placed.


To punch a card, you would press a button to load a blank card into the punch area and then type what you wanted punching. When done, the card would move to a separate area and a new blank card would be loaded into the punch area. At this point you could duplicate the first card if you wished. When the second card was complete, the first card would move into the output hopper, the second into the intermediate read area and a new card loaded into the punch area. For data entry purposes, the punch machine could be programmed using a separate master card held on a drum inside the machine to automate the punching of boilerplate text. The machine would punch the fixed text (e.g. DATE OF BIRTH:)and then the operator would type in the variable text (e.g. 04/09/1960).

The first card in a deck was either a pre-printed but otherwise blank card where you could write your name and other details, or some sort of job control card that provided the computer with essential information about the program's language, etc.

There were pre-printed cards that were laid out for Fortran, COBOL, other languages and special purposes but of course you could use any card for any purpose. Colleges and universities, government organisations and companies often had their name printed on the card too but it's not certain whether this was to reduce theft or encourage card collecting and swapping.


80 column punch card

Each card has 80 columns and twelve rows. The rows are split into two areas; zone (first, second and third rows labelled 12, 11 and 0) and digit (labelled 1-9).

In the early days, each character was punched on to the card using one, two or three holes only. The holes did not represent binary 0s and 1s. Numbers were punched with a single hole on the zero, first or second respectively for 0, 1 and 2. Uppercase letters were punched with two holes, one on rows 1-9 and a second on row 0, 11 or 12, this giving 27 combinations (9 times 3). Eleven special characters were punched with three holes, 0, 11 and 12 and two others. A maximum of three holes was used to preserve the strength of the card. With the introduction of EBCDIC in 1964, six-column punches were used and the zone was expanded to include rows 12, 11, 0 , 8 and 9 and the digit area was rows 1-7. It was possible to punch more holes by overpunching an already punched card or by sending binary data - cards with all holes punched were called lace cards and were so weak that they frequently buckled inside the machine and jammed.

In many colleges and universities there was a card punching service where you submitted your hand-written programs on pre-printed A4 input sheets and then the punch department would transfer your code incorrectly on to punched cards that you could pick up and edit a few hours later. New programmers quickly found how to distinguish their digit 0 and letter O, digit 1 and letter I, digit 2 and letter Z and digit 5 and letter S. The punch girls (for girls that is what they always seemed to be) had no knowledge of Fortran, COBOL or your data and just typed what they thought they saw. To be fair, it was a mindless task typing someone else's program or monotonous data and most likely for low pay.

Punched cards had their advantages and disadvantages:

  • Advantages - you could write on them; you could punch on different coloured cards and use these to separate different sections of your input, e.g. easily distinguish your job control cards, program and data, or find your card deck quickly in box of others; you could make minor rearrangements to your program by simply repositioning cards; you could cause havoc with other people's programs by shuffling their cards.
  • Disadvantages - large programs were heavy and you had to use elastic bands to hold it all together. Even bigger sets of cards were kept in the cardboard box that the blank cards were delivered in. Sometimes the ribbon in the punch was worn out and so the contents of the card, although printed, was not visible along the top. In this case, you could put the cards through an interpreter that read the cards and reprinted them. If you dropped your cards on the floor there was no quicker way to appreciate the size of n! where n was the quantity of cards as this is the number of possibilities for re-arranging them. Alternatively, if you had put sequence numbers on your cards, you could put them through a sorter that would put them back into order. Sequence numbers were usually in columns 73-80 and were ignored by the Fortran, Cobol and PL/I compilers of the day. If you didn't want to punch sequence numbers on your cards, you could always write on them!


Even when punched cards and their associated hardware had disappeared, IBM continued with virtual punches and readers (and all types of other virtual devices) in their VM operating system. Here you could spool (direct) the output from your virtual punch to another user and then punch a file to them. The other user would see the file appear in their virtual card reader and they could then read it in and write it to disk.

Standard punch cards are 7⅜" x 3¼" and this size is still used today for travel tickets, boarding cards, etc.


I like to have a bit of fun from time to time with today's youngsters and my son in particular. If he asks to borrow a computing book I always put a couple of old punched cards in it as bookmarks.