Leo III Intercode resurrection

The main systems programming language on Leo III was Intercode. Most applicatons software was written in a COBOL-like language called CLEO. Unfortunately a surviving CLEO compiler has so far eluded quite thorough searches.

We have three surviving Intercode systems programs, and one simple program listing radix conversions. All four are from the days of the operational real machine.

Documentation

Here is the original documentation for the software that we have preserved.

Intercode

Intercode is the name given to Leo III's systems programming language. It is described in Volume III of the original documentation. The Intercode Translator reads a program written in Intercode and converts it to machine code (called “computer code” in Leo III documentation). Computer code is described in Volume I of the original documentation.

The Intercode Translator is written in Intercode, and as well as translating programs it includes facilities for storing source text on magnetic tape, and editing the stored source text. Here is the HTML version of the listing produced by the Intercode Translator translating itself. In a real Leo III installation the master copy of Intercode source text would be held on magnetic tape. The real Intercode Translator almost certainly never existed on reels of paper tape. (It would have been about a mile long, even without run outs.) However, we have reconstructed a paper tape (as a file) that is the entire program, and it can be successfully translated to recreate itself.

The steps involved in recreating this self-referencial program are described in Blow By Blow.

Master Routine

The Master Routine existed in generic form as program 09001. The Master Routine used on a particular machine was customised to fit the machine's configuration by a generator program 08004. The output from this program includes a listing of the customised Master Routine.

Summary of emulation facilities

There is an on-line facility which allows you to type in an Intercode program, then translate and run it.

There are also facilities for running an emulated Leo III on your own computer.
The most realistic of our demonstrations is:
       LeoIIIdemo3.zip
This gives quite a realistic demonstration of operating a Leo III, and also shows fairly convincing Leo III characters on the printer. All is revealed in the readme.htm file in the ZIP file, which is also available on-line..
It is somewhat harder to drive than LeoIIIdemo2 as it requires some Leo III operator skills, which are explained in the readme.htm file, but it gives much more of a feel of a real Leo III, than our other demonstrations.
There are two other demonstrations showing the rescued Leo III software in action. Unlike the above demonstration, you do not get to interact much with the “machine”, but you see a realistic sessin of Intercode transtations and execution, including the generation of a new Master Routine.

The neatest one is at:
       LeoIIIdemo2.zip
This does contain 2 tape images which are binary files which just might upset some anti-malware software.

An earlier version of this demonstration generates everything from plain text files and is at:
       LeoIIIdemo.zip
Each ZIP file contains a readme.htm. The emulation software is written in C, and the source text is in each of the sets of files. A Windows binary is available via a link in the readme file. The demonstrations have been run successfully on various types of system, including:
       Intel Pentium: Windows 98SE, Windows 10, FreeBSD, GNU/Linux (ubuntu)
       ARM: GNU/Linux (Raspberry Pi)
       Mac: OSX on MacBook Pro
       SPARC: Solaris (using both gcc and cc compilers)
There is also a package intended to give a nostalgic experience to ex-Intercode programmers. It has been produced by two ex-LeoIII programmers, Ray Smith and Ken Kemp, and can be seen here.