- IBM 1401
The IBM 1401, the first member of the
IBM 1400 series, was a variable wordlength decimal computerthat was announced by IBM on October 5, 1959. It was withdrawn on February 8, 1971.
From the [http://www-03.IBM.com/IBM/history/exhibits/mainframe/mainframe_PP1401.html IBM Archives] :
: "The following is the text of an IBM Data Processing Division press fact sheet distributed on October 5, 1959."
: "The all-transistorized IBM 1401 Data Processing System places the features found in electronic data processing systems at the disposal of smaller businesses, previously limited to the use of conventional punched card equipment. These features include: high speed card punching and reading, magnetic tape input and output, high speed printing, stored program, and arithmetic and logical ability."
: "The 1401 may be operated as an independent system, in conjunction with IBM punched card equipment, or as auxiliary equipment to IBM 700 or 7000 series systems."
The IBM 1401 was also commonly used as an off-line peripheral controller in many installations of both large Scientific Computers and large Business Computers. 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 peripherals (e.g., the punch cardreader in the IBM 1402card reader/punch) on the tapes and transfer output data from the tapes to other peripherals (e.g., the punch card punch in the IBM 1402 card reader/punch or the IBM 1403 lineprinter).
During its lifetime about 20,000 total systems were manufactured ( [http://www-03.IBM.com/IBM/history/exhibits/mainframe/mainframe_YK00393.html photo] ), making the IBM 1401 one of IBM's most successful products. From the [http://www-03.IBM.com/IBM/history/reference/faq_0000000011.html IBM Archives] :
The monthly rental for a 1401 was $2,500 and up, depending on the configuration. By the end of 1961, the number of 1401s installed in the United States alone had reached 2,000 -- representing about one out every four electronic stored-program computers installed by all manufacturers at that time. The number of installed 1401s peaked at more than 10,000 in the mid-1960s, and the system was withdrawn from marketing in February 1971.
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) but the 1964 decision at the top to focus resources on the System/360ended these efforts rather suddenly. To preserve customer investment in 1401 software, IBM pioneered the use of microcode emulation, in the form of ROM, so that some System/360 models could run 1401 programs. Such emulation continued well into the modern era... in some cases, perhaps, until Y2Kefforts caused the still-running 1401 code to be rewritten.
During the 1970s, many installations in
Indiaand Pakistanused the 1401 and some of today's Indian and Pakistani software entrepreneurs started on this machine. An IBM 1401, the first computer in Pakistan, was installed in Pakistan International Airlines.
A 1401 Restoration Project is in process at the
Computer History Museumin Mountain View, California, complete with the old "false floor" of the mainframe era, used to hide cabling. [cite web | title = 1401 Restoration Project | url = http://www.ed-thelen.org/1401Project/1401RestorationPage.html ]
The 1401 used IBM's binary-coded-decimal (BCD) character coding. Each
byte(or alphameric character) 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 "numeric" bits. Associated with each six-bit byte were two other bits, called C for odd parity"check" and M for "word mark", [cite book | author = IBM |title =IBM 1401 Data Processing System: Reference Manual |date =April 1962|edition =A24-1403-5 |pages = pg 15 |url = http://bitsavers.org/pdf/IBM/14xx/A24-1403-5_1401RefMan_Apr62.pdf | quote = The use of the variable-length instruction and data format requires a method of determining the instruction and data-word length. This identification is provided by a word mark.] in the following format:
C B A 8 4 2 1 M
The 1401 was available in five memory configurations: 1.4K ["K" is used in this article for 1000, not 1024.] , 2K, 4K, 8K, or 16K (a very small number of 1401s were expanded to 32K by special RPQ - "Request for Price Quotation"). An optional "Advanced Programming Option" allowed for additional flags for 3 bytes within the first 100.expert-subject|Computing
An IBM 1401
core memoryaddress consisted of three six-bit bytes. The decimal address within 000 to 999 was specified by the 8-4-2-1 bits of these bytes. The zone bits of the high-order byte specified an increment, A 1000, B 2000, A and B 3000, giving an addressability of 4,000 bytes in all. The zone bits of the low-order byte specified increments of 4000, 8000, or 12000, to address 16,000 bytes (with an IBM 1406memory expansion unit). The zone bits of the middle byte were used to specify index registers, one of many optional features.
Instructions were of six lengths (1, 2, 4, 5, 7, 8). One-byte instructions consisted of only an
opcode. These were either defined as one-byte instructions or were "chained instructions", using the addresses left by the previous instruction when it completed. Two-byte instructions consisted of an opcode and a modifier byte. Four-byte instructions consisted 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 wordmark was set on the low-order (opcode) byte and nowhere else in the instruction. Instruction fetching stopped and execution began when another byte with the wordmark set was encountered (the valid opcode byte of the next instruction); there were two exceptions to this rule:
# The dyadic SET WORDMARK instruction, which set two wordmarks, is seven bytes even without a following valid opcode.
# The unconditional BRANCH INDICATOR instruction, is five bytes even without a following valid opcode.: Note: Other than these two exceptions, if no valid opcode was found by the 9th byte, the instruction was treated as an 8 byte instruction, but the computer continued scanning for a valid opcode (ignoring the bytes) until one was found before beginning execution or an error was detected (e.g., the end of memory). This was usually considered sloppy programming but not necessarily an error.
When the LOAD button on the IBM 1402 reader/punch was pressed, a card was read into the card read buffer (core locations 1-80), a wordmark was set in location 1 (validating the first instruction on the card), and clearing the wordmarks in locations 2-80. Thus, the first instruction of any bootstrap program was a dyadic set wordmark, which validated two other instructions. 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 and branch" instruction, which would set up a pattern of wordmarks in the card read buffer. The "read card" instruction did not change any 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.
Software on the 1401 included:
Autocodera more advanced assembler, required at least 4K memory locations.
* FARGO (Fourteen-o-one Automatic Report Generation Operation), a predecessor of RPG, required 4K.
* FORTRAN II was available for systems containing at least 8K memory locations; 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, of course, its programmers had no name for what it is that they did.
FORTRAN IVwas available for systems containing at least 8K memory locations and either 4 tape drives or 1 IBM 1311disk drive.
* RPG (Report Program Generator) The only high-level language in common use, RPG was a declarative language primarily for specifying accounting reports and is still in use on IBM's midrange
System i. Basic RPG required at least 4K memory locations.
Symbolic Programming System, SPS-1 and SPS-2, assemblers. [ The [http://hopl.murdoch.edu.au/showlanguage.prx?exp=2524&language=SPS History of Programming Languages: SPS] web page has, at the bottom, the assertion, attributed to Ray Saunders, that SPS was "was field-written by IBM CEs and SEs".] SPS-1 could run on a low end machine with 1.4K memory locations, SPS-2 required at least 4K memory locations.
For the IBM Catalog of 1401 software, see
IBM 1400 series.
Character and Op codes
The table below is listed in Character
: Note: If Wordmark bit is set, then the C bit will be opposite of shown. Of course, the C bit was determined and checked automatically by the machine - normally it was of no concern to the programmers. The only way the C bit could be entered was by manually using the switches on the maintenance panel. Although this panel was mainly for use by CEs, a programmer might use these switches to make quick patches while debugging.
Most of the logic circuitry of the 1401 was a type of
diode-transistor logic(DTL), that IBM referred to as "CTDL". Other IBM circuit types used were referred to as: "Alloy" (some logic, but mostly various non-logic functions, named for the kind of transistors used), "CTRL" (a type of resistor-transistor logic(RTL)). Later upgrades (e.g., the TAU-9 tape interface) used a faster type of DTL using "drift" transistors (a type of transistor invented by Herbert Kroemerin 1953) for their speed, that IBM referred to as "SDTDL". Typical logic levels of these circuits were (S & U Level): high – 0V to -0.5V, low – -6V to -12V; (T Level): high – 6V to 1V, low – -5.5V to -6V.
These circuits were constructed of individual discrete components mounted on single sided paper-epoxy
printed circuitboards either 2.5 by 4.5 inches (38 by 114 mm) with a 16 pin goldplated edge connector (single wide) or 5.375 by 4.5 inches (82 by 114 mm) 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 was similar to that in one 7400 seriesSSI or simpler MSI package (e.g., 3 to 5 logic gates or a couple of flip-flops on a single wide card up to about 20 logic gates or 4 flip-flops on a double wide card).
These boards were inserted in sockets on hinged swing out racks, that IBM referred to as "gates".
Art inspired by IBM 1401
In October 2006, respected indie label
4AD(Pixies, Dead Can Dance, Scott Walker) put out an album by Icelandic avante-garde musician, Jóhann Jóhannsson. The album is called 'IBM 1401, A User's Manual'. The concept is based upon work done back in 1964 by his father, Jóhann Gunnarsson, chief maintenance engineer of one of the country’s first computers, and Elias Davidsson, 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, Johann 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 IBM 1401 mainframe computer found in his father’s attic. [http://www.ausersmanual.com/credits/ Link to mp3 samples from the album] .
Jim Henson Muppetsketch appears to parody a technical training manual. A prototype of Cookie Monster, with sharper teeth, consumes a complex machine while it reads its own instruction manual aloud. Youtube Video [http://www.youtube.com/watch?v=gdAKgJDahzw] .
* cite book
last = IBM
title = IBM 1401 System Summary
id = A24-1401-1
date = April, 1966
url = http://bitsavers.org/pdf/IBM/14xx/A24-1401-1_1401_sysSummary.pdf "Brief descriptions of the machine features, components, configurations, and special features"
* cite book
last = IBM
title =IBM 1401 Data Processing System: Reference Manual
id = A24-1403-5
date = April, 1962
url = http://bitsavers.org/pdf/IBM/14xx/A24-1403-5_1401RefMan_Apr62.pdf
* [http://www.bitsavers.org/pdf/IBM/14xx/ IBM 1401 documents on bitsavers.org]
* [http://www-1.IBM.com/IBM/history/exhibits/mainframe/mainframe_PP1401.html IBM Archives, 1401 Data Processing System]
* [http://www.ed-thelen.org/1401Project/Movies-n-Sounds.html IBM 1401 videos and sounds]
* [http://www.multicians.org/thvv/1401s.html 1401s I have Known] , Tom Van Vleck
* cite journal
first = L. H.
last = Haines
title = Serial compilation and the 1401 FORTRAN compiler
journal = IBM Systems Journal
volume = 4
issue = 1
date = 1965
pages = 73–80
url = http://domino.research.IBM.com/tchjr/journalindex.nsf/495f80c9d0f539778525681e00724804/cde711e5ad6786e485256bfa00685a03?OpenDocument. This article was reprinted, edited, in both editions of cite book | first = John A. N. | last = Lee | title = Anatomy of a Compiler | publisher = Van Nostrand Reinhold | date = 1967(1st), 1974(2nd)
* [http://www.4ad.com/johannjohannsson/ Official 4AD page for Johann Johannsson's concept album "IBM 1401: A User's Manual"]
* [http://www.youtube.com/watch?v=gdAKgJDahzw "The Real Computer Monster" (video)]
* [http://www.ausersmanual.com/ Music inspired by IBM 1401]
Wikimedia Foundation. 2010.