Punched Cards for Computer Programs

Part of the Punched Card Collection
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

IBM Calculator Instruction Card


This card is may be designed for the IBM 701 computer; this was the very first general purpose digital computer sold by IBM. It used vacuum tube technology, including Williams tubes for main memory (a type of DRAM). An alternative theory is that it may be for the IBM Card Programmable Calculator, the CPC, a programmmable calculating machine made from off-the-shelf punched-card equipment wired together into to make a rudimentary computer. Note, however, that this card does not match the CPC instruction card shown on page 234 of Bryan Randell's book, The Origins of Digita Computers. In any case, this card has fields for both the symbolic and executable forms of the instruction, suggesting that it was used with some kind of the assembler that could punch the object code directly onto the cards from which it read the source code. A high resolution scan is available.

IBM Binary Card


This card is a row-binary card for the IBM 701 computer. This machine had a 36 bit word, with two 18-bit instructions packed per word. Because the card readers for these machines read cards one row at a time, delivering the results as two words of data holding 72 bits of data, the binary format used for storing memory images from these machines on cards stored data in the same format. It is noteworthy that the machine could only read 72 of the 80 columns of data on the card, but that the particular 72 columns were determined by a plugboard! This card is clearly designed for use with a plugboard that ignores columns 1 to 8. A high resolution scan is available.

IBM 709x Assembly Language Card


The layoug of this card is specific to the assembly language of the IBM 709x series of machines. The table in the sequence number field (columns 73-80) is intended as an aid to users intent on decoding the punched patterns, although it is one of the less useful self-interpreting card formats in this collection. A high resolution scan is available.

IPL V Symbolic Card

 [Carnegie Mellon University punched card]

This card, from Carnegie Tech, is formatted for IPL V, one of a series of early list processing languages developed there. This language was important in the early development of the field of artificial intelligence, but it was completely supplanted by LISP. As a language, IPL V had many features reminiscent of assembly language, with fixed format constraints that are evident on this card. A high resolution scan is available.

GE 600 Self Interpreting Card

 [Bell Labs punched card]

This card, probably designed in October 1965 (judging by the notation "10-65" printed on the left edge), was printed for use with the GE 600 series computers at Bell Labs. These included a GE 635 at the Whippany lab and two GE 645 systems at Murray Hill, one in the computer center, and one used for the Multics project, a joint venture between Bell Labs, MIT and GE. All but the latter ran GECOS (the General Electric Computer Operating System).

This card is formatted for the GE 600 assembly language, and it has the nice feature that columns 50 to 72 are printed with complete documentation of the GE 600 6-bit BCD character set, as it was punched on cards. A high resolution scan is available.


 [CERN punched card]

This card is printed with all of the fields that matter to the FORTRAN programming language, plus rulings every ten columns suggesting a generic tabular data layout. Column 1 of this particular example is prepunched with an end-of-file mark for the CDC 6600 computer system (a 6-7-8-9 multipunch). A high resolution scan is available.

Generic FORTRAN cards


This card is printed with all of the fields that matter to the FORTRAN programming language; this card is the standard IBM 888157 FORTRAN card, although the colored stripe is printed oddly, in the zero row instead of along the top edge, as is more common. A high resolution scan is available.

In many organizations, programmers were expected to write their programs on coding forms that were then sent to keypunch clerks, usually women, who punched the code from the forms onto cards. IBM had a coding form specifically designed for use with the 888157 card. See this high-resolution PDF.


FORTRAN was used around the world, and FORTRAN cards were printed wherever there was sufficient demand. this particular example is interesting because it was printed by IBM New Zealand.

An IBM Educational FORTRAN card


Keypunches were expensive, so some schools sought inexpensive ways to teach FORTRAN using IBM's optical mark-sense technology, allowing cards to be marked with a number-2 soft-lead pencil. The IBM 40904/40908 card shown here uses an eccentric character coding totally unlike that used by keypunches, along with a very limited set of statement numbers and single marks for the keywords that begin many FORTRAN statements. A high resolution of scan is available, along with a a scan of the flip side of the card. (Thanks to an Internet correspondent for the scans of this card, a card used in the early 1970s by high-school students to program an IBM 1130.)

A Hewlett Packard Educational BASIC card


As with the above card, this BASIC card is also intended to be marked with a number-2 soft-lead pencil, and then read on an optical mark reader (possibly made for HP by Chatsworth). In the early 1970's, Hewlett Packard was a leader in providing computers to public school systems interested in teaching computer programming. While Hewlett Packard emphasized use of timesharing systems, the provisions they made for batch operation using optical mark readers lowered the price per student to something that many public school systems could afford. A high resolution of scan is available,

The black index marks along the bottom indicate the columns of the card to the reader, and the statement type was coded using a special 1 out of 22 code. The standard optical mark reader format for use on punched card stock allowed only 40 columns, but this HP format sacrifices one column in the statement field and two more in the comment field.

With conventional punched-cards, programmers spoke of punching their programs onto cards using a keypunch. Users of mark-sense cards have come up with interesting terminology to describe the analogous act of programming on such cards. One of the more interesting descriptive phrases is "we bubbled in our programs on cards", referring to filling the oval bubbles that are commonly used as marking targets on mark-sense forms. I first heard this usage in 2002 from Dr. Glen B. Cook.

A Michigan State University Computer Laboratory card

 [ Michigan State University punched card ]

This card is intended for column binary data, if one judges by the printing in columns 1, 2, 79 and 80. Column binary cards store 12 bits of binary data in each column. The material in the center of the card suggests that the card might have been for a CDC 6500 computer. That machine had a 60 bit word, so each word of data for that machine would occupy 5 columns.

Most of the space on this card is used as a pocket reference card, giving the octal codes for the 64 characters of the CDC 6500 display code, the octal codes for ASCII characters and other material programmers might find useful. A high resolution image is available.