IBM 1401The IBM 1401 was a variable "word" length decimal computer that was introduced by IBM in 1959 and marketed as an inexpensive "Business Computer".
Although described as a (BCD) computer, each byte in the 1401 was represented by six bits, called A, B, 8, 4, 2 and 1. The A and B bits were called zone bits and the 8, 4, 2 and 1 bits were called numeral or BCD bits. Associated with each six-bit byte were two other bits, called W for wordmark and P for parity.
An IBM 1401 memory address consisted of three six-bit bytes. The decimal address within a 1000-byte page was specified by the BCD bits of the address. Addresses that did not contain valid BCD codes in these bits caused a hard halt. Early machines used the A and B bits of the high-order byte to specify which of four pages was referred to, giving an addressability of 4,000 bytes in all. Several storage sizes were available up to this maximum. Later machines used the zone bits of the low-order byte to increase this maximum to 16,000 bytes. The zone bits of the middle byte were used to specify index registers, one of many optional features. This addressing scheme was a clear forerunner of the indexed EBCDIC scheme used in IBM System/360 architecture.
The IBM 1460 was a later machine, logically but not physically identical to a fully optioned 1401 with 16,000 bytes of memory.
Instructions were of four lengths. Four-byte instructions consited of an opcode followed by an address, five byte instructions an opcode, address and modifier byte, seven byte instructions an opcode followed by two addresses, and eight byte instructions an opcode, two addresses and a modifier byte.
Instructions were only valid if the W bit was set on the low-order (opcode) byte and nowhere else in the instruction. There was one exception to this rule: The dyadic (seven byte) SET WORDMARK instruction, which set two wordmarks, was valid provided the wordmark was set by the completion of the instruction. This was necessary as at power-on and following some reset conditions, all wordmarks were cleared. Thus, the first instruction of any bootstrap program was a dyadic set wordmark, which validated itself and one other instruction. In practice, the first few cards of a card-deck bootstrap program would consist entirely of dyadic set wordmark instructions, no-op instructions and a "read card", which would set up a pattern of wordmarks in the card read buffer. By use of no-op instructions of various lengths, the next few cards would conform to this pattern of wordmarks.
The IBM 1401 was also commonly used as an off-line peripheral controller in many installations of both large "Scientific Computer"s and large "Business Computer"s. In these installations the big computer (e.g., an IBM 7090) did all of its input-output on magnetic tapes and the 1401 was used to format input data from other peripherials (e.g., punch card readers) on the tapes and transfer output data from the tapes to other peripherals (e.g., punch card punches or lineprinters).
At peak, there were over 10,000 installed systems running in the mid-1960s. The IBM 1401 was withdrawn in February 1971. During its lifetime about 20,000 total systems were manufactured, making the IBM 1401 one of IBM's most successful products.