IBM System/360 Model 20

From Wikipedia, the free encyclopedia
Jump to: navigation, search
An IBM System/360 Model 20 (with front panels removed), with IBM 2560 MFCM (Multi-Function Card Machine) at right

The IBM System/360 Model 20 was the smallest member of the IBM System/360 family announced in November 1964. The Model 20 supported only a subset of the System/360 instruction set, with binary numbers limited to 16 bits and no floating point.[1] 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.

Developed by IBM in Böblingen, Germany,[2]:pp.217–218,352 the system was intended for data processing and as a replacement for tab equipment. An incompatible small computer, the IBM 1130 introduced the following year, was designed for scientific and engineering computing.

The design of the Model 20 was the result of a tug of war within IBM. John Haanastra had wanted a low-end machine that could execute IBM 1401 instructions. Fred Brooks wanted the machine to have System/360 architecture. The final result was a compromise where cost concerns predominated: the system leased for under $2000 per month including MFCM and line printer, compared to around $3000 for a comparable 1401.[2]:p.446

Based on number of systems sold the Model 20 was the most successful model of System/360. According to Pugh "The number of Model 20 processors installed by the end of 1970 in the United States exceeded 7,400."[2]:p.639 Other models, however, brought in greater revenue.

Another IBM System/360 model 20 CPU.


The Model 20 was available with six memory sizes: 4, 8, 12, 16, 24 and 32 KiB. As in other models of System/360 memory was byte-addressable.[1]:p.1 It had eight 16 bit general purpose registers numbered R8 thru R15 which could be used in computations as base registers. All of memory was also directly addressable through a feature, called direct addressing, that could combine the twelve bit displacement and the low-order bits of what would normally be the base register field of the instruction (R0-R7) to form a combined fifteen bit address.[1]:p.4 No storage protection was provided, except for the low 144 bytes of "protected area".

The instruction set was a subset of System/360 consisting of 37 instructions instead of 143,[1]:pp.7–25[3]:p.384 with some incompatible instructions, such as a BASR (Branch And Store Register) rather than BALR (Branch And Link Register).

  • Binary arithmetic used the S/360 "halfword" instructions to operate on 16-bit quantities. Load Halfword, Add Halfword, Subtract Halfword, Compare Halfword, and Store Halfword were available, along with Add Register and Subtract register,
  • Decimal arithmetic included the complete S/360 decimal instruction set except "shift and round packed" for operations on packed decimal operands of up to 31 digits plus sign in storage.
  • Logical instructions were Move Characters, Move with offset, Move Immediate, Move Numerics, Move Zones, Compare Logical Immediate, Compare Logical Characters, Edit, And immediate, Or immediate, Test under Mask, and Translate. One logical instruction unique to the Model 20 was "Halt and Proceed" (HPR, operation code X'99') which would quiesce input/output and stop the processor displaying a code to the operator. Operation could be restarted by pressing the "start" button.
  • Branch instructions included standard S/360 Branch on Condition. Instead of "Branch and Link" the instruction set used "Branch and Store" (BASR, X'0D', and BAS, X'4D') which functioned similarly except that a 16 bit link address was stored. "Set PSW" (SPSW, X'B1'), which loaded a 32 bit Program Status Word (PSW) replaced the standard "Load PSW". The Model 20 had no concept of privileged instructions or a distinction between supervisor state and user state so SPSW was available to user programs.
  • Input/output instructions were unique to the Model 20. Lacking I/O channels all peripherals were directly controlled by the processor.
    • "Test I/O and Branch" (TIOB, X'9A') which tested a specified device for any combination of four hardware-dependent conditions.
    • "Control I/O" (CIO, X'9B') performed a control (non data) operation on a device.
    • "Transfer I/O" (XIO, X'D0') performed a data transfer operation on a device. XIO would start a transfer and specify the number of bytes to be read or written. Data transfer could optionally be performed by cycle stealing (IBM documentation calls this time-sharing), that is taking processor cycles from the user program as necessary to perform the operation.


As of 1967 the following peripherals were supported:[1]:pp.36–110

The system could also have an integrated communications adapter. Two adapter versions were available, one for Synchronous transmit-receive (STR) and one for binary synchronous communications (Bisync).

2311 Disk Storage[edit]

Model 20 disk storage used IBM 2311 disk drives, model 11 or 12, attached to an integrated "storage control feature" on the CPU.[1]:pp.58–76 If multiple drives were attached they had to be the same model. Both models used the 1316 disk pack which provided a maximum of 203 cylinders with 10 tracks per cylinder. The model 11 used all cylinders, the model 12 used only the outermost 103. Each track was divided into ten sectors of 270 bytes each. The model 11 had a formatted capacity of 5.4 million bytes, and the model 12 of 2.5 million.[4]

Multi-Function Card Machine[edit]

A peripheral first offered on the Model 20 was the IBM 2560 Multi-Function Card Machine (MFCM). Because of its reliability problems, often involving card jams, the acronym was frequently interpreted as referring to many less favorable names. Nevertheless the 2560 combined the functions of a card reader, card punch, interpreter, and card sorter, allowing the Model 20 to replace several separate pieces of punched-card equipment.

Because all I/O was performed by the processor the system was particularly suited to controlling timing-dependent devices such as the 2560, where a card could be read, punched into, printed on, and sent to a specified output stacker with tight timing requirements if full rated speed was to be maintained.


Disk Programming System[edit]

The Disk Programming System (DPS) was a control program for a Model 20 with at least 12 KiB of memory and one disk drive. The components of DPS were:[5]

  • The Initial Program Loader (IPL).
  • A small resident monitor which handled disk input/output, error recovery, and job-to-job transition, and loaded programs to be executed from the core-image library on disk.
  • A Job Control Program loaded by the monitor between jobs handled job setup.
  • Service programs for library management, I/O device table maintenance, linkage editing, and for loading and copying the systems residence disk, backing up and restoring other disk drives.

Rollin/rollout allowed the computer operator to interrupt a running batch program, execute an inquiry program, and then restart the batch job where it was interrupted.

Tape Programming System[edit]

Card Programming Support[edit]

Card Programming System (CPS) was a set of control programs for a Model 20 computer system with only card input/output devices.


Other IBM programs[edit]

  • Sort/Merge.
  • Disk and tape utility programs such as initialize disk, initialize tape, clear disk.


The UNIVAC 9200 and 9300 processors were clones of the Model 20.

See also[edit]


  1. ^ a b c d e f IBM Corporation (1964). IBM System/360 Model 20 Functional Characteristics (PDF). 
  2. ^ a b c Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems. MIT Press. ISBN 0-262-16123-0. 
  3. ^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology. MIT Press. ISBN 0-262-16147-8. 
  4. ^ “IBM 2311 Disk Storage Drive Models 1, 11 and 12 Field Engineering Theory of Operation” describes the IBM 2311, including models 11 and 12, used on System/360 model 20
  5. ^ IBM Corporation (1969). IBM System/360 Model 20 Disk Programming System Control and Service Programs (PDF). 
  6. ^ IBM Corporation (1968). IBM System/360 Model 20 Disk Programming System PL/I (PDF). 

Further reading[edit]