IBM System/3
| Company type | Computer system |
|---|---|
| Industry | Computer hardware |
| Founded | 1969 |
| Headquarters | Rochester , United States |
| Products | Midrange computer systems, RPG II programming language |
The IBM System/3 was a midrange computer developed by IBM and introduced in 1969, remaining in production until 1985. Manufactured at IBM Rochester in Minnesota, it was designed primarily for smaller enterprises moving away from IBM 1400 series machines or unit record equipment. As IBM’s inaugural "midrange" computer, it debuted the RPG II programming language and initiated a product family that eventually led to the successful AS/400 and the modern IBM i platforms.
History
When first released, the System/3 was available for lease at $1,000 per month—less than 50% of the monthly leasing fee for an IBM System/360 Model 20—making it an economical choice within IBM’s lineup. Initial Model 10 systems were frequently delivered without disk drives but included the IBM 5424 Multifunction Card Unit (MFCU), which managed the newly introduced 96-column punched cards.
IBM introduced multiple System/3 variants over time:
- 1969 — IBM 5410 (Model 10)
- 1970 — IBM 5406 (Model 6), optimized for disk storage
- 1973 — IBM 5415 (Model 15)
- 1974 — IBM 5408 (Model 8)
- 1975 — IBM 5412 (Model 12)
- 1976 — IBM 5404 (Model 4)
The System/3 series and its successors—the System/32, System/34, System/36, and System/38—are categorized by IBM as "midrange systems," positioned between large-scale mainframes and smaller minicomputers within the marketplace.
Hardware
The original IBM System/3 configuration consisted of:
- IBM 5410 Model 10 Central Processing Unit
- IBM 5424 Multi Functional Card Unit (MFCU)
- IBM 5203 Line Printer
- Optional IBM 5444 Disk Storage
- IBM 5471 Printer Keyboard
- IBM 5475 Data Entry Keyboard
- IBM 5496 Data Recorder, a keypunch device with print and verify capabilities
- IBM 5486 Card Sorter
Memory
Entry-level units came equipped with as little as 4K (4096) bytes of magnetic-core memory.
Direct access storage
For storage, the System/3 utilized the IBM 5444 single-platter disk drive, approximately the size of a large pizza, initially offering a capacity of 2.5 MB per platter. Typical setups included one or two fixed disks housed in pull-out drawers to store the operating system and user applications. Each fixed disk could be paired with a removable cartridge disk dedicated to application data such as payroll records. Although low-end models supported up to 10 MB of online storage (comprising two fixed and two removable disks), this configuration was expensive and rarely implemented.
Subsequent enhancements allowed support for the IBM 5445 disk drive with a capacity of 20 MB, while the Model 15 supported "winchester" style drives like the IBM 3340. Smaller models needed to retain the original 5444 drives for operating system files when adding the newer drives; however, software named elimn8 enabled full replacement of the older drives with the newer models. Compatible drives were also produced by third-party manufacturers such as Memorex.
Multi-Function Card Unit
The IBM 5424 Multifunction Card Unit (MFCU) served as the main device for reading, punching, printing on, and sorting smaller-sized 96-column punched cards. Unlike traditional rectangular punches used on standard 80-column cards, these cards featured tiny circular holes measuring approximately one millimeter in diameter, resembling paper tape perforations. Data encoding employed either six-bit binary-coded decimal format (three rows containing up to thirty-two characters each) or an eight-bit EBCDIC scheme with additional holes punched in upper rows.
These compact cards contained four rows of thirty-two printed characters each, totaling 128 characters—roughly one-third the physical size of older cards but capable of storing about twenty percent more information. Their reduced dimensions contributed to faster processing speeds and fewer mechanical jams.
For processing conventional 80-column punched cards, optional equipment was available by special order, including the IBM 2560 Multifunction Card Machine (MFCM), which could read, punch, interpret, and sort cards, as well as the IBM 1442, which supported only reading and punching functions.
Magnetic tape
Offline data storage was facilitated through an external tape drive compatible with the standard IBM 9-track tape. Additionally, the System/3 Mod 10 could be optionally equipped with the IBM 3410 magnetic tape subsystem.
Operator Console Facility
The System/3 featured an Operator Console Facility (OCF) that utilized either a customized IBM Selectric typewriter or a dedicated IBM 3270 display terminal. This console enabled users to terminate active processes or tasks within either partition (P1 or P2). The system supported simultaneous execution of two programs, except in the case of the model 15 or when operating the Communications Control Program (CCP), which managed online terminal communications.
Printers
The IBM 5203 chain printer, which used interchangeable print cartridges, connected directly to the mainframe and operated at speeds of 100 or 200 lines per minute depending on the variant. Subsequently, IBM introduced several models from their established IBM 1403 printer series, originally developed for the IBM 1401 system.
Floppy disk
Following the release of the IBM 3740 data entry system, the System/3 Model 10 incorporated the Local Communication Adaptor (LCA), allowing connection to an IBM 3741 station for data exchange. Later iterations, such as Model 8, replaced punched cards entirely by adopting the 8" 3740-style floppy disk as their primary storage medium.
Instruction set
Designed with limited main memory and RPG II programming in mind, the System/3 instruction set was streamlined for efficiency. Early versions (models 10, 6, 8, and 12) included 29 instructions ranging from three to six bytes in length. The instruction type was indicated by the first four bits—covering no-operand commands, single-operand instructions with multiple addressing modes, or two-operand instructions—allowing up to 64 distinct operations.
The register set comprised two index registers (1 and 2) employed for base-displacement addressing, an instruction address register (IAR), an address recall register (ARR) useful in conditional branching scenarios, and a program status register (PSR). These registers were dedicated to managing addressing and status information rather than performing arithmetic calculations.
Arithmetic capabilities included binary and decimal addition and subtraction; however, hardware support for multiplication, division, and floating-point operations was absent and had to be implemented via software routines. This hardware limitation continued in subsequent Systems/34 and /36 models.
More sophisticated systems like the System/3 model 15 and Systems/34 and /36 featured address translation registers (ATRs) that allowed utilization of more than 64K of memory by mapping up to 512K of storage through privileged operating system-controlled address spaces.
Both the original System/3 model 10 and later model 12 offered a Dual Program Feature that enabled basic multiprogramming by switching between two program levels, each with its own set of registers and instructions.
Instruction formats consisted of an opcode followed by a qualifier byte that defined conditions or operand sizes; additional bytes provided addresses or command parameters. For instance, a conditional jump instruction employed a three-byte sequence to execute short forward jumps based on specific condition codes.
Program flow was efficiently regulated using over 100 binary indicators—essentially switches—that optimized control within tight memory limits. The compact instruction design allowed operations such as indicator testing and conditional branching to be performed in just three bytes each, maximizing utilization of the system's roughly 64K memory space shared with both the operating system and Communications Control Program (CCP).
Operation Control Language
Operation Control Language (OCL) was a straightforward job control language that bore some resemblance to Job Control Language (JCL) in its basic structure.
Operator control commands
Communication with the system was managed through Operator Control Commands (OCCs), which enabled operators to interact efficiently.
Languages
The System/3 accommodated programming in RPG II, Fortran IV, COBOL, and Assembler.
RPG II compiler
A standard RPG II compiler was included with the System/3. In configurations relying solely on punched cards, compilation occurred in two stages: initially, the system booted from the MFCU input hopper, processing source code into an intermediate deck of punched cards; subsequently, this intermediate deck was compiled into an executable program deck. These executable decks could be IPL'ed (booted) to initiate program execution. For larger applications, the compilation process could extend beyond one hour.
System/3 Operational Challenges
The System/3 did not provide any mechanism to terminate running processes prematurely. For instance, if a compilation failed early on, users were forced to wait until the entire listing finished printing. To abort such jobs, operators sometimes induced a "P3" printer error by interrupting paper feed, which triggered an FF response code allowing cancellation. Another option was to reboot the machine by pressing the green "Start" button.
Error indications were displayed on a two-digit seven-segment panel composed of lamps that showed digits and certain letters such as "P3." A comprehensive manual guided users in decoding these error codes and outlined recovery procedures. Since there were no audible alarms, programs that halted unexpectedly could remain unnoticed unless the operator actively monitored the display. Systems equipped with the Dual Program Feature had two independent status displays.
Most customers opted not to purchase a console; instead, OCL output was either suppressed or directed to the 5203 printer. The IBM console's selectric typewriter mechanism significantly slowed down system performance when in use.
The concept of entering punched cards via the console was largely promotional; the System/3 could not simultaneously operate as both a computer and keypunch device. Initially marketed at under $2,000 per month with this capability, it quickly became clear this approach was impractical. Consequently, users generally invested in dedicated keypunch or verifier machines.
Subsequently, original equipment manufacturers developed 96-column keypunches along with sorters and collators to relieve the MFCU of intensive tasks, thereby enhancing overall System/3 efficiency.
Experienced operators deliberately limited their use of the MFCU to prevent it from becoming a performance bottleneck.
Emulation
System/3 applications could be executed on later models such as the System/32, IBM System/34, and IBM System/36 through emulation techniques.
The System/32 employed a vertically microcoded processor utilizing 16-bit microcode words to replicate the System/3 instruction set, albeit at reduced speed. The System/34 and System/36 incorporated dual processors: a Control Storage Processor (CSP) responsible for managing supervisory functions and I/O operations, and a Main Storage Processor (MSP) that re-implemented the System/3 model 15 processor architecture, effectively delivering hardware-level emulation of the original System/3.
See also
Further reading
- "Everything You Always Wanted to Know About the System/3 But Nobody Told You" by Charlie Massoglia
- "System/3 Disk Sort as a Programming Language" by Charlie Massoglia
- "System/3 Programming RPG II" by Solomon Martin Bernard, 1972
- "An introduction to computing: IBM System/3" by Jerome T. Murray, 1971
- "Business System with Punched card data processing and System/3 Model 10", by F. R. Crawford, 1973