"read station" with a pin-sense unit to enable duplication of data from one card to the next. Instead, duplication was based on the stored image of the previous card. Cards could also be "read-in" through an optical read unit integrated into the punch station. Program card IBM 024, 026, and 029 keypunches and their companion verifiers, the 056 and 059, could be programmed to a limited extent using a Program Card, also known as a drum card. The keypunch or verifier could be programmed to automatically advance to the beginning of each field, default to certain character types within the field, duplicate a field from the previous card, and so on. Program cards were an improvement over the Skip Bar used in some earlier keypunches. The program was encoded on a punched card and could be prepared on any keypunch (a keypunch would operate even if no program card was in place). The program card was wrapped around the program drum, and clamped in place. The drum rotated as the card being punched moved through the punching mechanism. The holes in the program card were sensed by an array of starwheels that would cause levers to rise and fall as the holes in the program card passed beneath the starwheels, activating electrical contacts. The program was encoded in the top six rows [12,11,0,1,2,3]. If the optional Second Program feature was installed, another program could be encoded in the bottom six rows [4,5,6,7,8,9]. A switch let the operator select which program to use. The central cover on the keypunch could be tilted open toward the operator and a locking lever released, allowing the program drum to be removed and replaced. The program card was punched with characters that controlled its function as follows: Many programming languages, such as FORTRAN, RPG, and the IBM Assembler, coded operations in specific card columns, such as 1, 10, 16, 36, and 72. The program card for such a setup might be coded as: 1.......10........20........30........40........50........60........70........80 1AAAAAAAA1AAAAA1AAAAAAAAAAAAAAAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&&&&&&& In this example, if the keypunch operator typed a few characters at the beginning of the card and then pressed the skip key, the keypunch would tab to column 10. When a program code of blank is followed by "Field Definition" (12) (or (4) for program 2), it defines a "Numeric Shift" field. In the example above, columns 72-80 are defined in the program as a Numeric Shift field.