HOME

TheInfoList



OR:

The IBM 1401 is a variable-wordlength
decimal computer Decimal computers are computers which can represent numbers and addresses in decimal as well as providing instructions to operate on those numbers and addresses directly in decimal, without conversion to a pure binary representation. Some also ha ...
that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on punched cards and at providing peripheral services for larger computers. The 1401 is considered to be the
Ford Model-T The Ford Model T is an automobile that was produced by Ford Motor Company from October 1, 1908, to May 26, 1927. It is generally regarded as the first affordable automobile, which made car travel available to middle-class Americans. The relat ...
of the computer industry, because it was mass-produced and because of its sales volume. Over 12,000 units were produced and many were leased or resold after they were replaced with newer technology. The 1401 was withdrawn on February 8, 1971.


History

The 1401 project evolved from an IBM project named World Wide Accounting Machine (WWAM), which in turn was a reaction to the success of Bull Gamma 3 (fr). The 1401 was operated as an independent system, in conjunction with IBM punched card equipment, or as auxiliary equipment to IBM 700 or 7000 series systems. Monthly rental for 1401 configurations started at US$2,500 (worth about $ today). "IBM was pleasantly surprised (perhaps shocked) to receive 5,200 orders in just the first five weeks – more than predicted for the entire life of the machine!" By late 1961, the 2000 installed in the USA were about one quarter of all electronic
stored-program computer A stored-program computer is a computer that stores program instructions in electronically or optically accessible memory. This contrasts with systems that stored the program instructions with plugboards or similar mechanisms. The definition ...
s by all manufacturers. The number of installed 1401s peaked above 10,000 in the mid-1960s. "In all, by the mid-1960s nearly half of all computer systems in the world were 1401-type systems." The system was marketed until February 1971. Commonly used by small businesses as their primary data processing machines, the 1401 was also frequently used as an off-line
peripheral A peripheral or peripheral device is an auxiliary device used to put information into and get information out of a computer. The term ''peripheral device'' refers to all hardware components that are attached to a computer and are controlled by the ...
controller for
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
s. In such installations, with an
IBM 7090 The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 se ...
for example, the mainframe computers used only
magnetic tape Magnetic tape is a medium for magnetic storage made of a thin, magnetizable coating on a long, narrow strip of plastic film. It was developed in Germany in 1928, based on the earlier magnetic wire recording from Denmark. Devices that use magnet ...
for input-output. It was the 1401 that transferred input data from slow peripherals (such as the
IBM 1402 The IBM 1402 was a high speed card reader/punch introduced on October 5, 1959 as a peripheral input/output device for the IBM 1401 computer. It was later used with other computers of the IBM 1400 series and IBM 7000 series product lines. It w ...
Card Read-Punch) to tape, and transferred output data from tape to the card punch, the IBM 1403 Printer, or other peripherals. This allowed the mainframe's throughput to not be limited by the speed of a card reader or printer. (For more information, see
Spooling In computing, spooling is a specialized form of multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow peripheral, such a ...
.) Elements within IBM, notably John Haanstra, an executive in charge of 1401 deployment, supported its continuation in larger models for evolving needs (e.g., the
IBM 1410 The IBM 1410, a member of the IBM 1400 series, was a decimal computer with variable word length that was announced by IBM on September 12, 1960 and marketed as a midrange business computer. It was withdrawn on March 30, 1970. Overview The 1410 ...
) but the 1964 decision at the top to focus resources on the
System/360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applica ...
ended these efforts rather suddenly. IBM was facing a competitive threat from the Honeywell 200 and the 360's incompatibility with the 1401 design. IBM pioneered the use of
microcode In processor design, microcode (μcode) is a technique that interposes a layer of computer organization between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. Microcode is a la ...
emulation, in the form of ROM, so that some System/360 models could run 1401 programs. During the 1970s, IBM installed many 1401s in
India India, officially the Republic of India (Hindi: ), is a country in South Asia. It is the List of countries and dependencies by area, seventh-largest country by area, the List of countries and dependencies by population, second-most populous ...
and
Pakistan Pakistan ( ur, ), officially the Islamic Republic of Pakistan ( ur, , label=none), is a country in South Asia. It is the world's List of countries and dependencies by population, fifth-most populous country, with a population of almost 24 ...
where they were in use well into the 1980s. Two 1401 systems have been restored to operating order at the
Computer History Museum The Computer History Museum (CHM) is a museum of computer history, located in Mountain View, California. The museum presents stories and artifacts of Silicon Valley and the information age, and explores the computing revolution and its impact o ...
in
Mountain View, California Mountain View is a city in Santa Clara County, California, United States. Named for its views of the Santa Cruz Mountains, it has a population of 82,376. Mountain View was integral to the early history and growth of Silicon Valley, and is t ...
.


Architecture

Each alphanumeric character in the 1401 is encoded by six bits, called ''B,A,8,4,2,1''. The ''B,A'' bits are called ''zone'' bits and the ''8,4,2,1'' bits are called ''numeric'' bits, terms taken from the IBM 80 column punched card. * For digits 1 through 9, the bits ''B,A'' are zero, the digit BCD encoded in bits ''8,4,2,1''. Digit 0 is encoded ''8,2''. * For alphabetic characters the setting of bits is derived from the zone and digit punches of the IBM 80 column punched card character code: ''B,A'' from ''12'', ''B'' from ''11'', and ''A'' from ''0''; the setting of bits ''8,4,2,1'' from BCD encoding of the 1 through 9 punches. Thus the letter A, ''12,1'' in the punched card character code, is encoded ''B,A,1''. * Encodings of punched card characters with two or more digit punches can be found in the Character and op codes table. IBM called the 1401's character code BCD, even though that term describes only the decimal digit encoding. The 1401's alphanumeric collating sequence is compatible with the punched card collating sequence. Associated with each memory location are two other bits, called ''C'' for odd parity check and ''M'' for word mark. ''M'' is present in memory but not on punched cards, and has to be set using special machine instructions; when printing memory it is typically displayed by underlining the character. ''C'' is calculated automatically and is also not present on punched cards. Each memory location then, has the following bits: ''C B A 8 4 2 1 M'' The 1401 was available in six
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remember ...
configurations: 1,400, 2,000, 4,000, 8,000, 12,000, or 16,000 characters. Each character is addressable, addresses ranging from 0 through 15999. A very small number of 1401s were expanded to 32,000 characters by special request. Some operations use specific memory locations (those locations are not reserved and can be used for other purposes). ''Read a card'' stores the 80 columns of data from a card into memory locations 001–080. Index registers 1, 2 and 3 are in memory locations 087–089, 092-094 and 097-099 respectively. ''Punch a card'' punches the contents of memory locations 101-180 into a card. ''Write a line'' prints the contents of memory locations 201–332. The 1401's instruction format is Opcode with [A-or-I-or-unit-address [B-address]] [modifier] word mark
Opcode In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the operat ...
s are one character. Memory addresses ("I" a branch target, "A" and "B" data) and unit address are three characters. The opcode modifier is one character. Instruction length is then 1, 2, 4, 5, 7, or 8 characters. Most instructions have to be followed by a word mark (a requirement commonly met by the word mark with the opcode of the next instruction). See Character and op codes for a list of operations. A three-character memory address in an instruction is an encoding of a five-digit memory address. The three low-order digits of the five-digit address, 000 to 999, are specified by the numeric bits of the three characters. The zone bits of the high-order character specify an increment as follows: ''A'' 1000, ''B'' 2000, ''B'' and ''A'' together 3000, giving an addressability of 4,000 memory locations. The zone bits of the low-order character specify increments of 4000, 8000, or 12000, to address 16,000 memory locations (with an IBM 1406 Storage Unit). For example, the three-character address "I99" is a reference to memory location 3000 + 999, or 3999. The zone bits of the middle character of a three-character memory address can specify one of three index registers, one of many optional features. Operands referenced by the A-address and B-address can be: a single memory location, a variable-length field, or a variable-length record. Variable-length fields are addressed at their low-order (highest-addressed) position, their length defined by a word mark set at their high-order (lowest-addressed) position. When an operation such as addition is performed, the processor begins at the low-order position of the two fields and works its way to the high-order, just as a person would when adding with pencil and paper. The only limit on the length of such fields is the available memory. Instructions applicable to variable-length fields include: ''Add'', ''Subtract'', ''Multiply'', ''Divide'', ''Compare'', ''Move Characters to A or B Word Mark'', ''Move Characters and Edit''. One or more adjacent variable-length fields can make up a variable-length record. A variable-length record is addressed at its high-order position, its length defined by a group-mark character with a word mark or a record-mark character in its low-order position. The instruction ''Move Characters Record or Group Mark'' can be used to assemble a block of records. A variable-length record, or block of records, to be written to magnetic tape is addressed at its high-order position, its length defined by a group-mark character with a word mark immediately following its low-order position. A sequence of operations on adjacent fields can be "chained", using the addresses left in the address registers by the previous operation. For example, addition of adjacent data fields might be coded as A 700,850, A 695,845, A 690,840. With chaining, this can be coded as A 700,850, A, A - omitting data address from the second and third instructions.


IBM 1401G

The IBM 1401G was sold in six models: (G1 and G11: 1,400 ''storage positions''; G2 and G12 for 2,000; G3 and G13 for 4,000). One difference between the 1401 and 1401G is how the reader-punch is controlled.


Booting and sample program

When the LOAD button on the 1402 Card Read-Punch is pressed, a card is read into memory locations 001–080, a word mark is set in location 001 to indicate that it is an executable instruction, the word marks in locations 002-080 (if any) are cleared, and execution starts with the instruction at location 001. That is always the ''Set Word Mark'', to set word marks on the two following words (instructions). A single ''Set Word Mark'' instruction can set two word marks but requires one word mark to have been on itself, so a sequence of these instructions are needed, which incrementally set word marks in the program's code or data, and set word marks for subsequent ''Set Word Mark'' instructions. Execution of instructions in the card continues, setting word marks, loading the program into memory, and then branching to the program's start address. To read subsequent cards, an explicit ''Read'' command (opcode 1) must be executed as the last instruction on every card to get the new card's contents into locations 001–080. Note that the word marks are not erased when the ''Read'' command is executed, but are kept as-is for the next card read in. This is convenient, because much of what the first few cards do is set word marks in the proper locations; having the first half dozen or so word marks set means the programmer does not need to set those word marks again. One-card programs can be written for various tasks. Commonly available were a one-card program to print the deck of cards following it, and another to duplicate a deck to the card punch. See Tom Van Vleck's web site. Here is a one-card program which will print "HELLO, WORLD!". Pressing LOAD (above) reads one card, and begins execution at 001 (the first ,). The program will automatically set its own wordmarks, assuming that the first , has a wordmark already. :,036008,040015,044022,051029,052053/299/332L0652132.HELLO, WORLD! Following conventional IBM notation, the underscores show where word marks are set in memory once the program has run; on punched cards they would not be indicated visually or present in the punched data. The program is: * ''Set Word Mark'' (opcode , operands 036 008). This must always be the first instruction, and one of its operands must always be 008 or else the next instruction would not have a word mark to indicate that it is an executable instruction. * Additional ''Set Word Mark''s. The underscores show where the word marks are after completing all , opcodes. Only word marks from 036 and further are needed for the "guts" of the program; word marks up through 029 are only needed for ''Set Word Mark'' instructions. Since the core of the program needs six word marks, five ''Set Word Mark'' instructions are needed in total. The reason one fewer is needed is because the final ''Set Word Mark'' does not need to waste an operand on other ''Set Word Marks'' * ''Clear Storage'' - the rest of the print area 299-200 (opcode / operand 299) * ''Clear Storage'' - part of the print area 332-300 (opcode / operand 332) * ''Move'' HELLO, WORLD! to the print area (opcode L, operands 065 and 213. ''Move'' stops due to the word mark in location 052 (which, doing double-duty, also defines the end of the ''Halt'' and branch instruction)) * ''Write a Line'' on the printer (opcode 2; "HELLO, WORLD!" will be printed in the 13 leftmost printer positions) * ''Halt'' (opcode .)


Hardware implementation

Most of the logic circuitry of the 1401 is a type of diode–transistor logic (DTL), that IBM referred to as ''CTDL (Complemented Transistor Diode Logic)''. Other IBM circuit types were referred to as: ''Alloy'' (some logic, but mostly various non-logic functions, named for the germanium-alloy transistors used), ''CTRL'' (''Complemented Transistor Resistor Logic'', a type of
resistor–transistor logic Resistor–transistor logic (RTL) (sometimes also transistor–resistor logic (TRL)) is a class of digital circuits built using resistors as the input network and bipolar junction transistors (BJTs) as switching devices. RTL is the earliest class o ...
(RTL)). Later upgrades (e.g., the TAU-9 tape interface) use a faster type of DTL using "drift" transistors (a type of transistor invented by Herbert Kroemer in 1953) for their speed, that IBM referred to as ''SDTDL (Saturated Drift Transistor Diode Logic)''. Typical logic levels of these circuits were (S & U Level) high: 0 V to -0.5V, low: -6 V to -12 V; (T Level) high: 6 V to 1 V, low: -5.5 V to -6 V. These circuits are constructed of discrete components (resistors, capacitors, transistors) mounted on single-sided paper-epoxy
printed circuit board A printed circuit board (PCB; also printed wiring board or PWB) is a medium used in electrical and electronic engineering to connect electronic components to one another in a controlled manner. It takes the form of a laminated sandwich str ...
s either with a 16-pin
gold-plated Gold plating is a method of depositing a thin layer of gold onto the surface of another metal, most often copper or silver (to make silver-gilt), by chemical or electrochemical plating. This article covers plating methods used in the modern elec ...
edge connector (single wide) or with two 16-pin gold-plated edge connectors (double wide), that IBM referred to as ''SMS'' cards ( Standard Modular System). The amount of logic on one card is similar to that in one
7400 series The 7400 series of integrated circuits (ICs) are a popular logic family of transistor–transistor logic (TTL) logic chips. In 1964, Texas Instruments introduced the SN5400 series of logic chips, in a ceramic semiconductor package. A lo ...
SSI or simpler MSI package (e.g., three to five logic gates or a couple of flip-flops on a single-wide card up to about twenty logic gates or four flip-flops on a double-wide card). The SMS cards were inserted in sockets on hinged swing-out racks, that IBM referred to as ''gates''. The modules used were fairly delicate, compared to previous unit-record equipment, so IBM shipped them enclosed in a newly invented packing material,
bubble wrap __NOTOC__ Bubble wrap is a pliable transparent plastic material used for packing fragile items. Regularly spaced, protruding air-filled hemispheres (bubbles) provide cushioning for fragile items. In 1957, two inventors named Alfred Fielding a ...
. This was one of the first widespread uses of this packing; it greatly impressed recipients, and brought great publicity to the material. Like most machines of the day, the 1401 uses
magnetic-core memory Magnetic-core memory was the predominant form of random-access computer memory for 20 years between about 1955 and 1975. Such memory is often just called core memory, or, informally, core. Core memory uses toroids (rings) of a hard magnet ...
. The cores are about 1 mm in diameter and use a four-wire arrangement (x, y, sense, and inhibit). The memory is arranged in planes of cores each, each core storing one bit. A stack of eight such planes store the six data bits, word mark bit, and parity bit for 4000 memory locations. Together with eight additional planes with fewer cores on them for additional storage functions, this made up a 4000-character memory module. One such module is housed within the 1401's primary enclosure. Systems were commonly available with two, three, or four such modules. The additional modules are contained in an add-on box, the 1406 Core Memory Unit, which is about two feet square and three feet high. Operands in memory are accessed serially, one memory location at a time, and the 1401 can read or write one memory location within its basic cycle time of 11.5 microseconds. All instruction timings are cited in multiples of this cycle time.


IBM 1403 printer

The IBM 1403 printer was introduced in October 1959 with the 1401 Data Processing System. The printer was a completely new development.


Software

IBM software for the 1401 included: * 1401 Symbolic Programming System assembler. *
Autocoder Autocoder is any of a group of assemblers for a number of IBM computers of the 1950s and 1960s. The first Autocoders appear to have been the earliest assemblers to provide a macro facility. Terminology Both ''autocoder'', and the unrelated ' ...
on Tape, a more advanced assembler, required at least 4000-character memory and four tape drives. * Autocoder on Disk, similar to, but not compatible with, Autocoder on Tape, required at least one 1311 disk drive. *
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily u ...
required at least 4000-character memory and four tape drives. * FARGO (Fourteen-o-one Automatic Report Generation Operation), a predecessor of RPG, required at least 4000-character memory. * FORTRAN II required at least 8000-character memory; the 1401 Fortran compiler is described in Haines, L.H. (1965), below. The Fortran compiler, to generate code for small memories, used a pioneering form of interpreted " p-code" although its programmers had no name for what it was that they did. * FORTRAN IV required at least 12000-character memory and either four tape drives or at least one IBM 1311 disk drive. * RPG (Report Program Generator); Basic RPG required at least 4000-character memory. For the IBM Catalog of 1401 software, see IBM 1400 series.


Character and op codes

The 1401's operation codes are single characters. In many cases, particularly for the more common instructions, the character chosen is
mnemonic A mnemonic ( ) device, or memory device, is any learning technique that aids information retention or retrieval (remembering) in the human memory for better understanding. Mnemonics make use of elaborative encoding, retrieval cues, and image ...
for the operation: A for add, B for branch, S for subtract, etc. The table is in Character
Collating Collation is the assembly of written information into a standard order. Many systems of collation are based on numerical order or alphabetical order, or extensions and combinations thereof. Collation is a fundamental element of most office fili ...
Sequence. : Note: If Word mark bit is set, then the ''C'' bit will be opposite of shown. The ''C'' bit is determined and checked automatically by the machine - normally it is of no concern to the programmers. The only way the ''C'' bit can be entered is by manually using the switches on the Auxiliary Console. A programmer might use these switches to make quick patches while debugging. Two of the instructions, Branch on Indicator (B) and Select Stacker (K), use a "modifier" operand.


Modifiers for five-character Branch on Indicator (B) instruction

The B opcode, if followed by a three-character operand, was a simple unconditional branch to the indicated address. If a fourth operand character was present (making five characters total including the opcode), this made it a conditional branch. This "modifier" character specified the condition to be tested.


Modifiers for Select Stacker (K) instruction

The Select Stacker (K) instruction sent commands to various devices. It was named for its relevance to the 1402 reader/punch.


1401 culture

In October 2006,
Iceland Iceland ( is, Ísland; ) is a Nordic island country in the North Atlantic Ocean and in the Arctic Ocean. Iceland is the most sparsely populated country in Europe. Iceland's capital and largest city is Reykjavík, which (along with its ...
ic avant-garde musician
Jóhann Jóhannsson Jóhann Gunnar Jóhannsson (; 19 September 1969 – 9 February 2018) was an Icelandic composer who wrote music for a wide array of media including theatre, dance, television, and film. His work is stylised by its blending of traditional orchest ...
released the album '' IBM 1401, A User's Manual'' through music publisher 4AD. The concept is based upon work done in 1964 by his father, Jóhann Gunnarsson, chief maintenance engineer of one of the country's first computers, and Elías Daviðsson, one of the first programmers in the country. The album was originally written for a string quartet, organ and electronics and to accompany a dance piece by long-standing collaborator friend, Erna Ómarsdóttir. For the album recording, Jóhann has rewritten it for a sixty-piece string orchestra, adding a new final movement and incorporating electronics and vintage reel-to-reel recordings of a singing 1401 found in his father's attic. More well-known are various demo programs to play music on transistor radios placed on the CPU and computer "art", mostly
kitsch Kitsch ( ; loanword from German) is a term applied to art and design that is perceived as naïve imitation, overly-eccentric, gratuitous, or of banal taste. The avant-garde opposed kitsch as melodramatic and superficial affiliation wi ...
y pictures printed using Xs and 0s on chain printers. IBM 1401 was the first computer introduced in
Nepal Nepal (; ne, नेपाल ), formerly the Federal Democratic Republic of Nepal ( ne, सङ्घीय लोकतान्त्रिक गणतन्त्र नेपाल ), is a landlocked country in South Asia. It is ma ...
for the census purpose in 1971. It took about one year to take the census of the country. At that time the population of Nepal was about 10,000,000. Other programs would generate music by having the printer print particular groups/sequences of characters using the impact of the printer hammers to generate tones.


Truck-based portable version

A truck-based IBM 1401 configured in 1960 for military use was designated a ''portable'' computer, and nicknamed a DataMobile.Columbia University Computing History
-The IBM 1401


See also

* IBM 1400 series * Honeywell 200


Notes


References


Videos


''IBM 1401 System - 50th Anniversary in the Computer History Museum''
YouTube November 19, 2009
''IBM 1401 French Presentation with English Subtitles''
YouTube April 20, 2014
''IBM 1401 for the Roper Corporation''
YouTube May 14, 2015
''The IBM 1401 compiles and runs FORTRAN II''
YouTube February 2, 2018


Further reading

* Chapter 12 ''Broadening the Base'' pages 465–494, a history of IBM's 1401 and 1403 development * ''Brief descriptions of the machine features, components, configurations, and special features'' *


External links


1401 documents on bitsavers.org
* Video captures thoughts and reflections of some of the original 1401 team members from a reunion held in Endicott, NY in 2009. Includes footage from 1401 marketing films.



Tom Van Vleck Tom Van Vleck is an American computer software engineer. Life and work Van Vleck graduated from MIT in 1965 with a BS in Mathematics. He worked on CTSS at MIT, and co-authored its first email program with Noel Morris. In 1965, he joined Proje ...
* This article was reprinted, edited, in both editions of * Music inspired by the 1401: Johann Johannsson's "IBM 1401: A User's Manual"
CD

LP


used germanium alloy transistors * * {{DEFAULTSORT:Ibm 1401
1401 Year 1401 ( MCDI) was a common year starting on Saturday (link will display the full calendar) of the Julian calendar. Events January–December * January 6 – Rupert, King of Germany, is crowned King of the Romans at Cologne. * ...
Computer-related introductions in 1959 Magnetic Core Memory computers Variable word length computers Decimal computers