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

 [photo]

This card is apparently 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). This card has fields for both the symbolic and executable forms of the instruction; apparently, the assembler was designed to punch the object code directly onto the cards from which it read the source code! A high resolution scan is available.

IBM Binary Card

 [photo]

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

 [photo]

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

 [photo]

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

 [photo]

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 FORTRAN/DATA card

 [photo]

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

Generic FORTRAN cards

 [photo]

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.

 [photo]

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

 [photo]

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

 [photo]

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.