IBM System/3

Last updated
IBM System/3
IBM Logo 1967-1972.svg
Unita centrale di IBM sistema 3 - Museo scienza tecnologia Milano D0828-D0830 foto.jpg
IBM System/3 model 10 in Museo Nazionale della Scienza e della Tecnologia, Milan
Type Midrange computer
Release date1969;54 years ago (1969)
Introductory price$1,000/month to lease
Discontinued1985;38 years ago (1985)
Memory4,096 bytes
Predecessor IBM 1400 series;
IBM System/360 low-end models (20, 25 and 30)
Successor IBM System/32,
IBM System/34
Language IBM RPG II

The IBM System/3 was an IBM midrange computer introduced in 1969, [1] and marketed until 1985. It was produced by IBM Rochester in Minnesota as a low-end business computer [2] aimed at smaller organizations that still used IBM 1400 series computers or unit record equipment. The first member of what IBM refers to as their "midrange" line, it also introduced the RPG II programming language. It is the first ancestor in the product line whose current version is the IBM i series and includes the highly successful AS/400.

Contents

History

System/3 processing unit and 5496 keypunch IBM System3 model 10 (1).jpg
System/3 processing unit and 5496 keypunch

At its launch in 1969 it was available for $1000/month — less than half cost of an IBM System/360 Model 20; [3] the smallest member of the IBM System/360 family.

Many of the original System/3 model 10 units were shipped diskless, with only the new IBM 5424 Multifunction Card Unit (MFCU) which read, punched, printed on and sorted the new, smaller 96-column punched cards introduced at the same time.

IBM delivered the following models:

The System/3 and successor models System/32, System/34, System/36 and System/38 are generally referred to in IBM terminology as "midrange systems" [6] — in contrast to IBM's mainframes.

Hardware

96-column punched card System 3 punch card.jpg
96-column punched card
IBM 5496 Data Recorder, the keypunch for 96-character cards Interfaccia di acquisizione dati di IBM sistema 3 - Museo scienza tecnologia Milano D0832.jpg
IBM 5496 Data Recorder, the keypunch for 96-character cards
IBM 5486 Card Sorter used with System/3 punched cards Selezionatrice di IBM sistema 3 - Museo scienza tecnologia Milano D0833.jpg
IBM 5486 Card Sorter used with System/3 punched cards

The IBM System/3 was announced as a computer system that initially consisted of: [7]

Memory

Entry models had as little as 4K (4096) bytes of magnetic-core memory.

Direct access storage

For mass storage, the System/3 used the IBM 5444 single-platter disk, [8] roughly the size of a large pizza; initially each platter held 2.5 MB of data. Standard configuration for storage was one or two fixed disks, each in a separate pull-out drawer, which typically held the operating system and user-developed programs. Additionally, each fixed disc could have a removable cartridge disk attached; these typically contained the data-files associated with various applications, for example Payroll, and users frequently had a number of them. Thus the low-end systems could support a maximum of 10 MB of online storage (two fixed, two removable), although in practice this was very expensive and not common.

The System/3 was also available with the IBM 5445 disk drive (20mb) and later the model 15 allowed "winchester" style 3340 drives. On the smaller models, while you could attach 5445 drives, you had to keep the 5444 for the operating system and other programming libraries, however that limitation was changed with software called elimn8 which allowed 5445 drives to totally replace the 5444's. Other companies such as Memorex manufactured compatible 5445 drives for the System/3.

Multi-Function Card Unit

The most common punched-card device was IBM 5424 Multifunction Card Unit (MFCU) which read, punched, printed on and sorted the new, smaller 96-column punched cards. Instead of the rectangular punches in the classic 80-column IBM card, the new cards had tiny (1 mm), circular holes much like paper tape. Data was stored in six-bit binary-coded decimal code, with three rows of 32 characters each, or in 8-bit EBCDIC, with the two extra holes located in the top rows. The new cards had room for 128 printed characters in four rows of 32 characters each. They were about 1/3 the size of the older 80 column cards but held 20% more text data. The smaller, and thus lighter card could be processed with faster equipment and with fewer jams.

Available as RPQs (special order equipment) to handle 80-column cards were the IBM 2560 Multifunction Card Machine (MFCM) which could read, punch, interpret and sort, and the IBM 1442 which could only read and punch.

Magnetic tape

Offline storage was available with the purchase of an external tape drive which read and wrote standard IBM 9-track tape.

The System/3 Mod 10 optionally included the IBM 3410 magnetic tape subsystem.

Operator Console Facility

The System/3 Operator Console Facility (OCF) consisted of either a modified IBM Selectric typewriter interfaced into the computer, or a special purpose IBM 3270 display. Within the OCF, there was capability to 'cancel' processes and/or tasks that were running, including either partition (P1 or P2). The system could only run two programs simultaneously, except for the model 15 or systems running the Communications Control program, CCP. The CCP was a system control programming feature that allowed to support an online network of terminals.

Printers

IBM 5203 printer for System/3 Stampante di IBM sistema 3 - Museo scienza tecnologia Milano D0831.jpg
IBM 5203 printer for System/3

A smaller (IBM 5203) printer was attached to the main system. The 5203 was a chain printer with interchangeable cartridges. It could run at 100 or 200 lines per minute, based on model. [9] Later on, IBM offered multiple models of the existing IBM 1403 printer line, which had been originally built for the IBM 1401 computer.

Floppy disk

With the arrival of the IBM 3740 data entry system, the System/3 Model 10 got a feature called LCA (local communication adaptor) which allowed an IBM 3741 station to be "attached" to the system to transmit/receive data. Later models of the System/3 such as the Model 8 were cardless and used the 8" 3740 style floppy disk.

Instruction set

The instruction set was optimised for two key aspects of the product: limited availability of main memory, and the RPG II programming language. The original S/3 (models 10 and then 6, 8 and 12) had 29 instructions, all occupying between 3 and 6 bytes (24 to 48 bits).

The first 4 bits conveyed a lot of information: "1111" meant this was an instruction without operands, known as a command. e.g. Start I/O (the I/O op being defined by previously loaded I/O registers). "11xx" and "xx11" meant a 1-operand instruction, such as a Branch. If xx was 00 the operand was addressed by its full 16-bit address. xx=01 or 10 meant base-displacement addressing was used, using index register 1 or 2 respectively. A base address would previously have been loaded into one of the two index registers and the instruction contained the displacement of up to just 256 bytes (8 bits of addressing).

Other patterns for this first half-byte indicated a 2-operand instruction. "0000" meant both operands were addressed by their direct 16-bit address. "0100": operand 1 uses reg 1 as its base; operand 2 uses direct addressing. "0110": operand 1 uses reg 1 as its base, operand 2 uses reg 2. And so on.

The remaining 4 bits of the first byte further defined the instruction. This structure meant that there was the capability to have up to 64 operations in all: 16 commands (though there were never more than five across the whole product range); 16 1-operand instructions starting with 11xx; 16 1-operand instructions starting with xx11; 16 2-operand instructions.

As well as the two index registers already mentioned (referred to as 1 and 2, or binary 01 and 10) there were other registers. "Reg 4" (0100) was the instruction address register (IAR) which pointed at the current instruction. "Reg 8" (1000) was the address recall register (ARR), set by certain instructions. Among these was the conditional branch (mnemonic BC) which used it to point to the byte immediately following the branch operation. For programmers used to IBM mainframe behaviour, this meant that the S/3 branch operation could be likened to a conditional BALR (branch and link register) – very useful when branching to a sub-routine, and returning after it had processed. Finally, "Reg 16" (00010000) was the program status register (PSR), holding such things as the results of a compare instruction. Note that registers were used only for addressing and program status, not for arithmetic.

The arithmetic instructions provided among the 29 instructions were binary add/subtract (provided to help manipulate addresses) and decimal add/subtract. Multiplication and division were not provided for by the standard hardware, and had to be handled by software routines. There was no floating point provision at all. All this continued to be true even with the later and generally more sophisticated Systems/34 and 36.

All the above got more complicated with the System/3 model 15, and the Systems/34 and /36. Though still using 16-bit addressing, all these systems could support well over 64K of main storage (up to 512K and theoretically more), so address translation was used to swap from one 64K address space to another. Address Translation Registers were set to define the actual address space in use at any one time, their contents being concatenated with the 16-bit address used by a program to produce a real address. These "ATRs" were privileged, available only to the operating system.

The original S/3 model 10 (and the later model 12) had an optional crude form of multi-programming called the Dual Program Feature. This provided no more main memory addressing, but gave two sets of registers and instructions which flipped from one "program level" to the other. The standard I/O instructions were also modified to flip when an I/O was started.

So far, only the first byte of the instruction has been explained here. The next ("Q") byte was generally a qualifier, such as specifying the number of bytes to be moved in a move characters op or the condition to test for in a Branch. A couple of instructions used this byte for a 1-byte "immediate" operand. The remaining byte(s) were for the displacement(s) or address(es) for operands, or the details for some commands.

An example: a simple command, Conditional Jump, a special type of conditional branch (forward only, up to 256 bytes) suitable mainly for jumping over short blocks of code: Op code byte= F2 (this is in hexadecimal, Hex F is binary 1111, Hex 2 (0010) defines the op); Q byte= 00000001 specifies that we "jump" if the condition register has the "equal" bit on; Operand= 00011000: if the condition is met we jump forward 24 bytes.

Indicators were binary switches used to control program flow. Over 100 of these were available to the programmer. By using the instruction formats explained above, many of the indicator-oriented operations could be fit into just 3 bytes. For example, a line of RPG might test an indicator for "On": 3 bytes for a "Test Bits On" op; then 3 bytes for a Jump, as previously described, and useful to the RPG compiler. Saving the odd byte here and there was good when you had only 64K to play with—and, on the S/3 itself, that had to include the operating system (which grew to about 20K on the model 10 with the introduction of the "Communication Control Program", CCP).

Operation Control Language

A simple job control language called Operation Control Language (OCL) was superficially similar to the Job Control Language (JCL).

Operator control commands

Operator control commands (OCCs) were used to communicate with the system.

Languages

The System/3 supported RPG II, Fortran IV, COBOL, and Assembler . [10]

RPG II compiler

The System/3 came standard with a RPG II compiler. In a card-only system, the RPG II compiler was supplied as two phases. The first phase would be booted from one input hopper of the MFCU, and the source would then be read following the compiler. An intermediate form was punched on cards, which were then read by the second phase of the compiler. An executable program deck was then punched. This executable could then be booted ("IPL'ed", for "Initial Program Load") to perform the processing desired. This process could require more than an hour for a significant-sized program.

Problems with System/3

The System/3 had no provision for halting a process once it had started to run. For instance, if a compile failed because of an error on the very first page, the user had to wait for a sometimes voluminous compile listing to print in its entirety. Users learned to reach under the printer and jostle the paper discharge chute, which would cause the machine to halt with a "P3" (printer error) displayed. The user could then dial in the response code FF to abort the run. Another way of stopping it was simply to press the green "Start" button on the console, causing the system to reboot.

Error codes were displayed on a two-digit seven-segment display (one of the first seen, and built with lamps rather than LEDs). The range of error codes included not only decimal and hexadecimal digits (as seven-segment displays are commonly used) but also a limited set of other letters; for example, "P3" was one of several printer error codes. A thick manual that came with the System/3 aided the operator in interpreting the error codes and suggested recovery procedures. The System/3 had no audible warning device, so a program that was not printing, reading cards, or causing other obvious activity could halt and the operator would not know it unless they happened to look at the status display. Models with the Dual Program Feature had two separate status displays.

Most/many users did not buy a console. Instead OCL code was either suppressed entirely or printed on the 5203 printer. The console offered by IBM slowed down program execution tremendously when it printed OCL commands, as it was basically a selectric typewriter.

The concept of keying your punched cards through the console was a marketing ploy. In reality, the System/3 could not be a computer and a keypunch at the same time, so when it was a keypunch, no computing was possible. The original IBM System/3, which was shown in July 1969, had the keypunch console so they could offer a computer for under $2,000/month. In reality it was unworkable and almost invariably users acquired a stand-alone keypunch/verifier.

Later several OEM companies built 96-column keypunches, sorters, and collators. This took the 'heavy lifting' off of the MFCU and freed the System/3 for actual computing functions.

Most experienced System/3 users minimized use of the MFCU as much as possible, since it was a system bottleneck.

Emulation

The later System/32, IBM System/34 and IBM System/36 were all able to run System/3 applications through emulation.

The System/32 used a vertically microcoded processor, with 16-bit microcode words, which emulated the System/3 instruction set, rather slowly, in microcode. The System/34 and System/36 both had two processors: a Control Storage Processor (CSP), as in System/32, which handled most supervisor and input/output operations, and a Main Storage Processor (MSP). This latter was a re-implementation of the System/3 model 15 processor; effectively providing "hardware emulation" of the System/3.

See also

Related Research Articles

<span class="mw-page-title-main">IBM System/360</span> IBM mainframe computer family (1964–1977)

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 applications and a complete range of applications from small to large. The design distinguished between architecture and implementation, allowing IBM to release a suite of compatible designs at different prices. All but the only partially compatible Model 44 and the most expensive systems use microcode to implement the instruction set, featuring 8-bit byte addressing and binary, decimal and hexadecimal floating-point calculations.

The Honeywell 6000 series computers were rebadged versions of General Electric's 600-series mainframes manufactured by Honeywell International, Inc. from 1970 to 1989. Honeywell acquired the line when it purchased GE's computer division in 1970 and continued to develop them under a variety of names for many years.

<span class="mw-page-title-main">IBM 1620</span> Small IBM scientific computer released in 1959

The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive scientific computer. After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as the CPU of the IBM 1710 and IBM 1720 Industrial Process Control Systems.

<span class="mw-page-title-main">IBM 1401</span> 1960s decimal computer

The IBM 1401 is a variable-wordlength decimal computer 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 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.

<span class="mw-page-title-main">UNIVAC</span> Series of mainframe computer models

UNIVAC was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company and successor organizations.

<span class="mw-page-title-main">IBM 1130</span> 16-bit IBM minicomputer introduced in 1965

The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding the decimal IBM 1620 in that market segment. Typical installations included a 1 megabyte disk drive that stored the operating system, compilers and object programs, with program source generated and maintained on punched cards. Fortran was the most common programming language used, but several others, including APL, were available.

<span class="mw-page-title-main">Keypunch</span>

A keypunch is a device for precisely punching holes into stiff paper cards at specific locations as determined by keys struck by a human operator. Other devices included here for that same function include the gang punch, the pantograph punch, and the stamp. The term was also used for similar machines used by humans to transcribe data onto punched tape media.

<span class="mw-page-title-main">IBM 305 RAMAC</span> IBM computer released in 1956

The IBM 305 RAMAC was the first commercial computer that used a moving-head hard disk drive for secondary storage. The system was publicly announced on September 14, 1956, with test units already installed at the U.S. Navy and at private corporations. RAMAC stood for "Random Access Method of Accounting and Control", as its design was motivated by the need for real-time accounting in business.

<span class="mw-page-title-main">IBM 1400 series</span> Second generation mid-range business decimal computers

The IBM 1400 series were second-generation (transistor) mid-range business decimal computers that IBM marketed in the early 1960s. The computers were offered to replace tabulating machines like the IBM 407. The 1400-series machines stored information in magnetic cores as variable-length character strings separated on the left by a special bit, called a "wordmark," and on the right by a "record mark." Arithmetic was performed digit-by-digit. Input and output support included punched card, magnetic tape, and high-speed line printers. Disk storage was also available.

In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word is an important characteristic of any specific processor design or computer architecture.

<span class="mw-page-title-main">Honeywell 200</span>

The Honeywell 200 was a character-oriented two-address commercial computer introduced by Honeywell in December 1963, the basis of later models in Honeywell 200 Series, including 1200, 1250, 2200, 3200, 4200 and others, and the character processor of the Honeywell 8200 (1968).

<span class="mw-page-title-main">IBM 7070</span> Decimal computer introduced by IBM in 1958

IBM 7070 is a decimal-architecture intermediate data-processing system that was introduced by IBM in 1958. It was part of the IBM 700/7000 series, and was based on discrete transistors rather than the vacuum tubes of the 1950s. It was the company's first transistorized stored-program computer.

<span class="mw-page-title-main">IBM System/360 Model 30</span> IBM computer model from 1960s

The IBM System/360 Model 30 was a low-end member of the IBM System/360 family. It was announced on April 7, 1964, shipped in 1965, and withdrawn on October 7, 1977. The Model 30 was designed by IBM's General Systems Division in Endicott, New York, and manufactured in Endicott and other IBM manufacturing sites outside of U.S.

<span class="mw-page-title-main">NCR Century 100</span> 1968 computer system

The NCR Century 100 was NCR's first all integrated circuit computer built in 1968. All logic gates were created by wire-wrapping NAND gates together to form flip-flops and other complex circuits. The console of the system had only 18 lights and switches and allowed entry of a boot routine, or changes to loaded programs or data in memory. A typewriter console was also available.

<span class="mw-page-title-main">RCA Spectra 70</span>

The RCA Spectra 70 was a line of electronic data processing (EDP) equipment manufactured by the Radio Corporation of America’s computer division beginning in April 1965. The Spectra 70 line included several CPU models, various configurations of core memory, mass-storage devices, terminal equipment, and a variety of specialized interface equipment.

Inforex Inc. corporation manufactured and sold key-to-disk data entry systems in the 1970s and mid-1980s. The company was founded by ex-IBM engineers to develop direct data entry systems that allowed information to be entered on terminals and stored directly on disk drives, replacing keypunch machines using punched cards or paper tape, which had been the dominant tools for data entry since the turn of the twentieth century.

ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American competitors to the IBM System/360, enjoying significant success in the European and British Commonwealth markets.

<span class="mw-page-title-main">IBM System/360 Model 20</span> Low-end IBM computer model from 1960s

The IBM System/360 Model 20 is the smallest member of the IBM System/360 family announced in November 1964. The Model 20 supports only a subset of the System/360 instruction set, with binary numbers limited to 16 bits and no floating point. In later years it would have been classified as a 16-bit minicomputer rather than a mainframe, but the term "minicomputer" was not current, and in any case IBM wanted to emphasize the compatibility of the Model 20 rather than its differences from the rest of the System/360 line. It does, however, have the full System/360 decimal instruction set, that allows for addition, subtraction, product, and dividend of up to 31 decimal digits.

<span class="mw-page-title-main">IBM System/360 Model 25</span> Low-end IBM computer model from late-1960s

The IBM System/360 Model 25 is a low-end member of the IBM System/360 family. It was announced on January 3, 1968, 3 years before the IBM System/360 Model 22, as a "bridge between its old and new computing systems".

IBM 2245 Kanji Printer was the line printer of the IBM Kanji System, announced in 1971, that allowed printing of Japanese text on IBM System/360 and System/370 mainframe computers. Later, it would also support printing of Korean and Traditional Chinese text.

References

  1. Original System/3 Product Announcement
  2. 1 2 "New Computer, Model 12, is Announced by I.B.M." The New York Times . July 8, 1975.
  3. "IBM system/3". IBM Archives. IBM. 23 January 2003. Retrieved March 26, 2019.
  4. G520-2370-0 IBM System/3 Model 6. October 1970.
  5. William D. Smith (October 29, 1970). "I.B.M. Unveils 2 New Computers". The New York Times .
  6. (the rest of the industry would say minicomputers)
  7. IBM Field Engineering Announcement: IBM System/3
  8. System/3, IBM engineering announcement
  9. Pugh, Emerson (1991). IBM's 360 and Early 370 Systems. MIT Press. p. 449.
  10. G360-0002-0 IBM System/3 Model 8. IBM. September 1974.

Further reading