IBM System/38 – Wikipedia

IBM midrange computer (1978–1988)

The System/38[2][3] is a discontinued minicomputer and midrange computer manufactured and sold by
IBM. The system was announced in 1978.[4] The System/38 has 48-bit addressing, which was unique for the time, and a novel integrated database system. It was oriented toward a multi-user system environment. At the time, the typical system handled from a dozen to several dozen terminals. Although the System/38 failed to displace the systems it was intended to replace, its architecture served as the basis of the much more successful IBM AS/400.[5][6]


The System/38 was introduced on October 24, 1978 and delivered in 1980. Developed under the code-name “Pacific”, it was made commercially available in August 1979. The system offered a number of innovative features, and was designed by a number of engineers including Frank Soltis and Glenn Henry. The architecture shared many similarities with the design of the failed IBM Future Systems project, including the single-level store, the use of microcode to implement operating system functionality, and the Machine Interface abstraction.[5][6][7] It had been developed over eight years by IBM’s laboratory in Rochester, Minnesota.[8] The president of IBM’s General Systems Division (GSD) said at the time: “The System/38 is the largest program we’ve ever introduced in GSD and it is one of the top three or four largest programs ever introduced in IBM.”[9]

The system was designed as a follow-on for the System/3,[9] but it is not compatible with those computers. The predecessors to the System/38 include the System/3 (1969), System/32 (1975), and System/34 (1977). In 1983 the System/36 was released as a low-end business computer for users who found the System/38 too expensive for their needs. The System/38 was succeeded by the IBM AS/400 midrange computer family in 1988, which originally used a processor architecture similar to the System/38, before adopting PowerPC-based processors in 1995.[5]

Hardware characteristics[edit]

Overview of internals

Two hard disks

The IBM 5381 System Unit contains processor, main memory, disk storage, a diskette magazine drive, and a system console with keyboard and a display. 5381 was available in Model 100 and Model 200.

The IBM 5382 System Unit is physically identical to 5381, but with more powerful processors, more memory, and more disk storage. 5382 was available in Models 300, 400, 500, 600, and 700.

Users typically interacted with the system through IBM 5250 series terminals. In 1984, IBM added the ability to attach graphics-oriented terminals that previously required a mainframe.[10]

Processing unit[edit]

The system includes a central processing unit with 512K, 768K, 1024K, 1280K, or 1536K bytes of main storage. The processor is implemented across twenty-nine Schottky TTL LSI chips mounted on a 10×15″ circuit board.[11] It includes a memory management unit supporting demand paging, used by the system software to implement a single-level store architecture.

The System/38 CPU features a 48-bit address space, which was selected as a compromise between 64-bit addressing, which certain IBM engineers wanted for the sake of future proofing, and 32-bit addressing, which other engineers wanted for cost saving purposes.[5]

System console keyboard/display[edit]

The System/38 console incorporates a keyboard and a display screen with 16 lines of 64 characters, inconsistent with the locally attached 5250 terminals, which are either 12×40 or 24×80, depending on model. The keyboard is available to the system operator to enter Control Language commands.

Diskette magazine drive[edit]

The diskette magazine drive is standard on all models.

Software architecture[edit]

Machine Interface[edit]

The System/38 and its descendants use a machine interface architecture to isolate the application software and most of the operating system from hardware dependencies, including such details as address size and register size.

Compilers for System/38 and its successors generate code in a high-level instruction set known as the Machine Interface, or MI. MI is a virtual instruction set; it is not the instruction set of the underlying CPU. MI operates on objects instead of traditional memory addresses or registers.[12]

Unlike some other virtual-machine architectures in which the virtual instructions are interpreted at runtime (see P-code machine), MI instructions are never interpreted. They constitute an intermediate compile time step and are translated into the processor’s instruction set as the final compilation step. The MI instructions are stored within the final program object, in addition to the executable machine instructions. If a program is moved from a processor with one native instruction set to a processor with another native instruction set, the MI instructions will be re-translated into the native instruction set of the new machine before the program is executed for the first time on the new machine.

The TIMI (Technology Independent Machine Interface) of OS/400 is a backwards compatible extension of the System/38 MI. As a result, it is possible for a program originally developed on a System/38 to run on current IBM i hardware without ever being recompiled.[5]


IBM referred to all code below the Machine Interface layer of the System/38 architecture as microcode, and treated it as part of the hardware.[11] The term microcode was used to cover a wide array of low-level code, ranging from traditional microcode, up to functionality typically associated with the kernels of other operating systems, as well as the implementation of the integrated database.[13] There were two levels of microcode in the System/38:

  • Horizontal Microcode (HMC), which implemented a register-memory/memory-memory[14]instruction set architecture known as the internal microprogramming (IMP) instruction set[14] or the Internal Microprogrammed Interface (IMPI) using the native microcode of the System/38’s processor.[15] Certain low-level and performance sensitive functionality such as task (i.e. process) scheduling and message passing were implemented directly in microcode as part of the Horizontal Microcode. The Horizontal Microcode resided in control store; it corresponded to traditional microcode.
  • Vertical Microcode (VMC), which implemented the Machine Interface in terms of the IMPI architecture; this was implemented by translating MI code into IMPI code and executing it. It also implemented the integrated database, and other components of the operating system which could not be implemented in terms of MI instructions.[16] This was implemented using a mixture of PL/MP and IMPI assembly.[5] The Vertical Microcode resided in main memory.

The use of the term microcode stemmed from a 1969 antitrust case against IBM which resulted in IBM unbundling software from its hardware products (i.e. requiring software to be purchased separately from the hardware). By treating the low level code of the System/38 as part of the hardware, IBM was able to treat the MI as the native instruction set of the System/38, and thus have the freedom to change the IMPI and microcode as the underlying hardware evolved.[5] Early AS/400 systems inherited the System/38 microcode structure, but the term microcode was dropped, leading IBM to rename the layers to the Vertical Licensed Internal Code and Horizontal Licensed Internal Code.

Control Program Facility[edit]

The operating system of the System/38 is the Control Program Facility (CPF). CPF is not related to the System Support Program operating system of the IBM System/34 and System/36. CPF objects are files, programs, message queues, user profiles, and libraries. While CPF is considered to be the operating system of the System/38, it sits on top of the System/38 Machine Interface layer, and consequently much of the traditional operating system functionality of the platform is implemented in the Horizontal and Vertical Microcode.[5]

The System/38 also has the distinction of being the first commercially available IBM Midrange computer to have a database management system (DBMS) integrated into the operating system.

The operational control language of the System/38 is called CL, for Control Language. CL programs, similar in concept to shell scripts, can be compiled and executed natively.

The System/38 was designed with security built in as part of its architecture. Each object or library can have access controlled on a user-by-user basis. This has been continued and expanded throughout the AS/400 and iSeries computer lines.

Successor system[edit]

The System/38 was superseded by the AS/400, which also provided compatibility with System/36 data and software.[17] S/38 programs with ‘observability’ intact, that is source code embedded within the compiled binary executive at the expense of larger compiled object sizes, can still run on the AS/400 and successor systems as the restore option incorporates a recompile for the then back-version source. However, most proprietary vendor application libraries of objects were compiled without such ‘observability’ and require original vendor replacement and consequent expense when upgrading to an AS/400. Pricing at the time was tiered, the same exact software, but priced based upon the model, its speed and capacity, of the system to be installed upon.

IBM sold an estimated 20,000 System/38s within the first five years of availability, according to articles published in industry magazines NEWS 34/38 and Midrange Computing. Although billed as a minicomputer, the S/38 was much more expensive than IBM’s established best-selling System/34, and its replacement, the System/36. Of equal importance was the difficulty of upgrading from a System/34 to a S/38. IBM tacitly acknowledged this by bringing out the System/36 – an upgraded System/34 – after the launch of the S/38. Although the System/38 did not sell in large numbers, it commanded a higher profit margin than IBM’s other midrange systems, and thus was a profitable product line for IBM.[6]

In the marketplace, IBM thus found itself with three overlapping, but incompatible, ranges. The System/34, the System/38 and the mainframe System/370 architecture. Digital Equipment Corporation, at that time one of IBM’s main competitors, was able to exploit this by offering a wide range of products based on a single architecture – specifically the VAX architecture.[18] IBM’s counter to this, the 9370, was a commercial failure, and at that time, The New York Times wrote, sales of the System/36 and System/38 were “lagging.”[19]


  1. ^ IBM System/38 Installation Manual – Physical Planning (PDF) (Seventh ed.). IBM. March 1983. GA21-9293-16.
  2. ^ David E. Sanger (June 17, 1986). “I.B.M. Strengthens Office Line”. The New York Times.
  3. ^ Andrew Pollack (October 21, 1982). “I.B.M. Cuts Computer Prices”. The New York Times.
  4. ^ “IBM Archives: 1970s, year 1978”. IBM. 23 January 2003.
  5. ^ a b c d e f g h Frank G. Soltis (1997). Inside the AS/400, Second Edition. Duke Press. ISBN 978-1882419661.
  6. ^ a b c Schleicher, David L. (2006-01-24). “An Interview with DAVID L. SCHLEICHER” (PDF). (Interview). Interviewed by Arthur L. Norberg. Charles Babbage Institute. Retrieved 2021-03-05.
  7. ^ Henry, Glenn (2001-08-07). “An Interview with An Interview with GLENN HENRY” (PDF). (Interview). Interviewed by Philip L. Frana. Charles Babbage Institute. Retrieved 2021-03-21.
  8. ^ “IBM Rochester @ 50” (PDF).
  9. ^ a b “IBM System/38”. IBM Archives. 23 January 2003.
  10. ^ “Changes at I.B.M.” The New York Times. June 20, 1984.
  11. ^ a b IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. 1980 [1978]. ISBN 0-933186-03-7. G580-0237-1.
  12. ^ Levy, Henry M. (1984). “The IBM System/38” (PDF). Capability-Based Computer Systems. Digital Press. ISBN 0-932376-22-3.
  13. ^ Soltis, Frank (September 1981). “Design of a Small Business Data Processing System”. IEEE Computer. 14: 77–93. doi:10.1109/C-M.1981.220610. S2CID 398484.
  14. ^ a b “IBM System/38 Internal Microprogramming Instructions, Formats, and Functions Reference Manual” (PDF) (fourth ed.). IBM. August 1985. SC21-9037-3.
  15. ^ David McKenzie. “Notes for storage research”. Archived from the original on October 8, 1999.
  16. ^ “IBM System/38 Vertical Microcode Logic Overviews and Component Descriptions Manual” (PDF) (sixth ed.). IBM. September 1985. SY21-0889-5.
  17. ^ John Enck; Michael Ryan (1998). Navigating the AS/400: A Hands-On Guide. ISBN 978-0-1386-2558-0.
  18. ^ Roy A. Bauer; Emilio Collar; Victor Tang (1992). The Silverlake Project: Transformation at IBM. Oxford University Press. ISBN 9780195067545.
  19. ^ “A Broad Decentralization at I.B.M.” The New York Times. January 29, 1988.

Further reading[edit]

  • Levy, Henry M. (1984). “The IBM System/38” (PDF). Capability-Based Computer Systems. Digital Press. ISBN 0-932376-22-3.
  • Soltis, Frank G.; Hoffman, RL (Spring 1979). Design Considerations for the IBM System/38. Compcon. IEEE. pp. 132–37.
  • IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. 1980 [1978]. ISBN 0-933186-03-7. G580-0237-1.
    • Henry, GG (1980) [1978]. “Introduction to IBM System/38 Architecture”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 3–6. ISBN 0-933186-03-7. G580-0237-1.
    • Berglund, NC (1980) [1978]. “Processor Development in the LSI Environment”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 7–10. ISBN 0-933186-03-7. G580-0237-1.
    • Curtis, HW (1980) [1978]. “Integrated circuit design, production, and packaging for System/38”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 11–15. ISBN 0-933186-03-7. G580-0237-1.
    • Donofrio, MN; Flur, B; Schnadt, RT (1980) [1978]. “Memory design/technology for System/38”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 16–18. ISBN 0-933186-03-7. G580-0237-1.
    • Hoffman, RL; Soltis, FG (1980) [1978]. “Hardware organization of the System/38”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 19–21. ISBN 0-933186-03-7. G580-0237-1.
    • Houdek, ME; Mitchell, GR (1980) [1978]. “Translating a large virtual address”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 22–24. ISBN 0-933186-03-7. G580-0237-1.
    • Lewis, DO; Reed, JW; Robinson, TS (1980) [1978]. “System/38 I/O structure”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 25–27. ISBN 0-933186-03-7. G580-0237-1.
    • Dumstorff, EF (1980) [1978]. “Application of a microprocessor for I/O control”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 28–31. ISBN 0-933186-03-7. G580-0237-1.
    • Roellinger Jr, FX; Horn, DJ (1980) [1978]. “Microprocessor-based communications subsystem”. IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. pp. 32–35. ISBN 0-933186-03-7. G580-0237-1.
  • Berstis, Viktors (May 6–8, 1980). Security and protection of data in the IBM System/38. 7th Annual symposium on Computer Architecture. La Baule, US: ACM. pp. 245–52. doi:10.1145/800053.801932.
  • Sincoskie, W. David; Farber, David ‘Dave’ J. (July 1980). “SODS/OS: Distributed Operating System for the IBM Series/1”. Operating Systems Review. 14 (3): 46–54. doi:10.1145/850697.850704. S2CID 14245116.
  • Houdek, Merle E.; Soltis, Frank G.; Hoffman, Roy L. (1981). IBM System/38 support for capability-based addressing. 8th annual symposium on Computer Architecture. Minneapolis, MN, US: IEEE Computer Society Press. pp. 341–48.
  • Soltis, Frank G. (September 1981). “Design of a Small Business Data Processing System”. Computer. IEEE. 14 (9): 77–93. doi:10.1109/c-m.1981.220610. ISSN 0018-9162. S2CID 398484.
  • Phuc, Nguen Hoan; Becker, M; Sevray, P (1983). Dean, SM; Hammersley, P (eds.). Performance Comparison Between B*-Tree and Prefix Binary Tree Index Organizations. 2nd Int’l Conference on Databases. Churchill College, Cambridge: Wiley Heyden.
  • Newman, M (1986), The Architecture of the IBM System/38. IBM Small and Medium Systems Infotech State of the Art Report, Oxford: Pergamon

External links[edit]