Up to parent directory

IBM S/360 model 195 console
Victor R. Ruiz, CC BY 2.0, via Wikimedia Commons

IBM Schoonschip

The conversion of Schoonschip to the IBM System/360 family was performed by Hugo Strubbe starting at CERN in 1975 and continuing through 1978. One of the aims was to work towards a machine-independent version of Schoonschip by analyzing the CDC assembler code and rewriting it in a high level language, in this case a PL/I-like language with local extensions that can accommodate some of the low-level manipulations performed by Schoonschip.

The intent of having a PL/I-like intermediate version is that the code could then be implemented on specific hardware by compiling it into a set of assembly language macros appropriate to that machine architecture. In a sense, this translator from PL/I to backend macros is basically a PL/I compiler. One of the stated intents of using this homegrown compiler is to provide a stable assembler codebase independent of vendor or system provided compiler versions and library revisions.

The result of this translation project was an IBM S/360 implementation of Schoonschip that ran nearly identically to the CDC version, except for hardware differences in floating point and integer numbers for the two architectures. IBM Schoonschip consists of approximately 10000 lines of BAL (Basic Assembly Language) macros, and the macros themselves took about 4000 lines to define.

IBM Schoonschip was distributed by Hugo Strubbe on 9 track tape containing eight cardimage files
0001_IEBUPDTX_macros Macros for the IEBUPDTX program which is the Cornell-SLAC improved version of the IBM IEBUPDTE Update Data Set program.
0002_IEBUPDTX_source Source for the IEBUPDTX program which is needed to process the Schoonschip source and macros.
0003_SCHOONSCHIP_macros IBM Schoonschip macros – January 1, 1978 version.
0004_SCHOONSCHIP_source IBM Schoonschip source – January 1, 1978 version.
0005_YNGLING_1 Collection of Schoonschip programs provided as a step by step guide to using Schoonschip (part 1).
0006_YNGLING_2 Part 2 of YNGLING.
0007_YNGLING_3 Part 3 of YNGLING.
0008_Installation IBM JCL deck with instructions and commands for installing Schoonschip.
The IBM Schoonschip code was obtained from Hugo Strubbe on 1600 bpi 9-track tape and is being made available with permission from Strubbe and the Veltman family. The original files are encoded in EBCDIC, but have been translated to ASCII with LF line termination for the present distribution.


Partial success has been obtained in compiling and installing IBM Schoonschip in the Hercules S/370 Emulator. The JCL deck in 0008_Installation references the following programs: The IBM programs, except for H extended Fortran, have been publically released and are available when running MVS on Hercules. However, Schoonschip as provided requires the extended Fortran compiler, as it uses the REAL*16 data type that is unavailable in the standard Fortran H compiler. Note that the JCL deck will need to be modified to conform to the local system configuration.

Software Licenses

Schoonschip was originally developed in 1963 for the IBM 7094 and ported to the CDC 6600 in 1965. The IBM 360 version of Schoonschip is a conversion of the CDC code performed by Hugo Strubbe based on an analysis of the CDC source code, its codification into an intermediate PL/I-like language invented by Strubbe and translation into IBM 360 assembly with extensive use of macros developed by Strubbe. This IBM implementation of Schoonschip is for the version dated January 1, 1978, and is:
Copyright © 1963, 1965 by Martinus J. G. Veltman
Copyright © 1975, 1978 by Martinus J. G. Veltman and Hugo Strubbe
This code is dual-licensed under the GNU Lesser General Public License and the 3-clause BSD License. The aim is to allow the software to be used, published, developed, and modified in the unrestrictive style of public scientific research, while ensuring that there is always a branch of the software which protects free access to the original source and to modifications within that branch.

Schoonschip is free software. You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either Version 3 of the license, or (at your option) any later version. See the Free Software Foundation site.

You can also redistribute and/or modify Schoonschip under the terms of the 3-clause BSD License. See the Open Source Initiative site.

Users who distribute the software with or without modification are encouraged to maintain the dual-licensing system.