Punched card input/output
A computer punched card reader or just computer card reader is a computer input device used to read computer programs in either source or executable form and data from punched cards. A computer card punch is a computer output device that punches holes in cards. Sometimes computer punch card readers were combined with computer card punches and, later, other devices to form multifunction machines. It is a input device and also an output device. Most early computers, such as the ENIAC, and the IBM NORC, provided for punched card input/output. Card readers and punches, either connected to computers or in off-line card to/from magnetic tape configurations, were ubiquitous through the mid-1970s.
Punched cards had been in use since the 1890s; their technology was mature and reliable. Card readers and punches developed for punched card machines were readily adaptable for computer use. Businesses were familiar with storing data on punched cards and keypunch machines were widely employed. Punched cards were a better fit than other 1950s technologies, such as magnetic tape, for some computer applications as individual cards could easily be updated without having to access a computer.
The standard measure of speed is cards per minute, abbreviated CPM: The number of cards which can be read or punched in one minute. Card reader models vary from 300 to around 2,000 CPM. If all columns of an 80 column card encode information this translates to approximately 2,500 characters per second (CPS).
Cards may be read using mechanical brushes that make an electrical contact for a hole, and no contact if no punch, or photoelectric sensors that function similarly. Timing relates the signals to the position on the card. Cards may be read serially, column by column, or in parallel, row by row.
Card punches necessarily run more slowly to allow for the mechanical action of punching, up to around 300 CPM or 400 characters per second.
Some card devices offer the ability to interpret, or print a line on the card displaying the data that is punched. Typically this slows down the punch operation. Many punches read the card just punched and compare its actual contents to the original data punched, to protect against punch errors. Some devices allow data to be read from a card and additional information to be punched into the same card.
Readers and punches include a hopper for input cards and one or more stackers for cards read or punched. A function called stacker select allows the controlling computer to choose which stacker a card just read or punched will be placed into.
For some computer applications, binary formats were used, where each hole represented a single binary digit (or "bit"), every column (or row) is treated as a simple bitfield, and every combination of holes is permitted. For example, the IBM 711 card reader used with the 704/709/7090/7094 series scientific computers treated every row as two 36-bit words, ignoring 8 columns. (The specific 72 columns used were selectable using a plugboard control panel, which is almost always wired to select columns 1–72.) Sometimes the ignored columns (usually 73–80) were used to contain a sequence number for each card, so the card deck could be sorted to the correct order in case it was dropped. An alternative format, used by the IBM 704's IBM 714 native card reader, is referred to as Column Binary or Chinese Binary, and used 3 columns for each 36-bit word. Later computers, such as the IBM 1130 or System/360, used every column. The IBM 1401's card reader could be used in Column Binary mode, which stored two characters in every column, or one 36-bit word in three columns when used as input device for other computers. However, most of the older card punches were not intended to punch more than 3 holes in a column. The multipunch key is used to produce binary cards, or other characters not on the keyboard.
As a prank, in binary mode, cards could be punched where every possible punch position had a hole. Such "lace cards" lacked structural strength, and would frequently buckle and jam inside the machine.