Victor R. Ruiz, CC BY 2.0, via Wikimedia Commons
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. |
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.