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).

80 column punch card

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.

80 column punch card

Colleges and universities, government departments and companies often had their organisation's name printed on the card too, but it's not certain whether this was to reduce theft or to encourage card collecting and swapping.


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.

Interestingly, a maximum of three holes were permitted in any one column to preserve the strength of the card. With the introduction of EBCDIC in 1964, six-row 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 had no practical purpose except to be inserted into someone else's deck so that the card would most likely buckle inside the read reader and jam.


80 column punch card

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, worse, monotonous data and most probably for low pay.

The card shown here is a job control card that specifies the following:

CAFEJOB : - a card that specified the origin of the program - cafeteria

ME - user is from ME - Mechanical Engineering

JSL - my initials

1500 - my pigeon hole number for card decks and output for collection later

FLYWHEEL - the job or program name

As time passed, the punching pools disappeared and the era of the cafeteria began. This did not serve drinks or meals but was just a modern name for a self-service area where you punched your own cards, loaded your program into a card reader and then collected your scrap paper from the printer room. Users quickly learned to avoid peak times when there would be a queue at the card reader. There was a red call button next to the printers where you could summon help to replace the printer ribbon, load more paper or clear a paper jam. Alternatively, you could just press it and run.

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 impressively 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 younger son in particular, who's a software engineer. If he asks to borrow a computing book I always put a couple of old punched cards in it as bookmarks.