KDF9 Software resurrection

The surviving KDF9 software is mainly language implementations and Directors (kernel operating systems). All survived in the form of lineprinter listings, and have been recovered as files by a mixture of copy-typing, OCR and proof reading.

Paper copies of original documentation are in possession of David Holdsworth, and significant parts have been scanned. We have: Additionally we have made an accurate listing of the KDF9 instruction code, culled from vaious sources, and confirmed as accurate by use of the genuine Usercode Compiler.

KDF9 Languages − May 2019

In recent years we have been active in rescuing KDF9 programming languages, especially in rescuing a listing of the Kidsgrove Algol Compiler which was not quite complete. This page gives access to the results of this effort. There are facilities for execution of four different language implementations, and for browsing the original source text as it would have looked in its heyday.

KDF9 Operating Systems − October 2019

There were two main strands of operating system development for KDF9. English Electric produced the Time-Sharing Director, which was further developed at the universities of Leeds and Oxford and at the National Physical Laboratory. This system allowed multi-programming of up to 4 programs.

The UKAEA developed the EGDON system in collaboration with English Electric. This ran a single job stream with input and output spooled via magnetic tape, rather akin to the IBM 7090. None of the software for the EGDON system has survived.

Developments on both systems introduced multi-access giving on-line facilities to around 30 teletype terminals.

KDF9 Raw Material

A collection of material relating to KDF9 — especially stuff with a software aspect. This has been collected up by Brian Wichmann, David Holdsworth, Bill Findlay and others. Some of the material that it describes is being actively worked upon, so some of the content is quite volatile.

We have the following raw material − and in some cases scanned copies:

Programming Language Implementations

The KDF9 Languages page gives an overview of the systems and includes links to facilities for executing each or them in emulation. At the foot of the page are links to assembler listings of the source code, which then include links to the scans of the original pages.

Operating Systems


For someone new to the KDF9 story, it may help to know that there were several versions of director under the main banners:
       1. non-time-sharing director
             just ran one object program at a time
       2. time-sharing director
             a) English Electric’s official director
             b) as 2a plus enhancements at Oxford
             c) Eldon2 at Leeds with many enhancements and rewritten sections (guilty as charged)
             d) Eldon2 at NPL (National Physical Laboratory), very like 2c, but with a few extras.
                  The Eldon2 director had a symbiotic relationship with the Eldon2 multi-access system
                  which ran as a user program with special priviledges, and also with JobOrganiser which
                  also ran as a user program with different priviledges.
       3. EGDON
             A completely different director making the KDF9 look a lot like an IBM 7090

Our software relics are all in category 2. We have a binary paper tape of 2a, a lineprinter listing of 2b (in my possession), and an imperfect copy typing of 2d, coupled with my own memories of 2c. There was ample cross-fertilisation between 2b, 2c and 2d. We have had considerable success in actually running much of the software listed above, especially the programming languages (see below).

KDF9 character codes

The character codes used on KDF9 were somewhat device dependent. They are covered in this web page, towards the end. The section on programming languages includes advice for typing Algol programs in ASCII (or in ISO-Latin1), and then converting them to paper tape code for input to Whetstone Algol and also converting them to HTML so that the appearance with a web browser is extremely close to that of a KDF9 Flexowriter.

KDF9 Emulation

In order to execute KDF9 software we need an assembler (see below) to convert the source code to binary, and an emulator that will actually execute the KDF9 binary code.

A very thorough emulation of KDF9 has been written in Ada2005 by Bill Findlay. Information on downloading the system can be seen here. The emulator is released in source form, and also as a pre-compiled binaries for the MacOSX system (both PowerPC and Intel), GNU/Linux and Windows. More of Bill’s KDF9 material can be seen here.

There is a cruder emulator written by DH, which can be found here: kdf9.c. This emulator is a single program written in C, and is readily compiled for many platforms, and makes very few assumptions about the target machine. Integers need to be at least 32 bits. Documentation is in the form of a comment at the head of the source code.

KDF9 assembler — Usercode

All of our surviving source code is written KDF9 Usercode, with the sole exception of the KAL4 assembler (see below). English Electric's Usercode assembler (which their documentation calls the Usercode Compiler) only came to light in 2016.

In order to resurrect the surviving KDF9 software written in Usercode (of which Whetstone Algol was the first), we implemented a new Usercode assembler. This available for download. You need the following source files: kal3.c and kal3.y
If you do not possess yacc or bison, you can get the two files that are generated from kal3.y here y.tab.c and y.tab.h
The command to compile the assembler is: gcc -o kal3 kal3.c y.tab.c

KDF9 Usercode in ASCII lists synonyms that this assembler will recognise for Flexowriter characters that do not exist in ASCII.

The original assembler (KAA01PT) survived as a listiing in the Science Museum archive, and is clearly not the final version as it has a bug which the released system definitely did not have. We have original manufacturer’s manual pages. This software is the paper tape version, and has size limitations. There was another Usercode assembler (KAB84) which ran in the magnetic tape filing system called POST. Although it formed part of the Kidsgrove Algol system it has not survived (see below).

The KDF9 languages page includes links to the facility for running KDF9 Usercode programs. Both the original English Electric KAA01 and our own new implementation are available.

Whetstone Algol

We have a preservation of Whetstone Algol. The implementation issued by English Electric to Newcastle University has been copy-typed from a mature listing, and has successfully run Algol60 benchmarks using the Findlay emulator. Details and downloadable software are here.

The KDF9 Languages page includes a link to the on-line facility, and listings of the two surviving modules of the system.

Kidsgrove Algol

Here is documentation on KALGOL, collected and assembled by Brian Wichmann.

The KDF9 Languages page includes a link to the on-line facility, and listings of all the surviving “bricks” of the system. There are also listings of the newly written modules, which have been written in KAL4 which quickly distinguishes them for the Elglish Electric original code.

KAL4

This assembly language developed and used extensively at Leeds University, has been resurrected to run on the above emulation systems. The assembler is written in KAL4 and can successfully assemble itself. A more detailed web page is in the course of preparation.

The KDF9 Languages page gives accerss to the facility for running KAL4 programs on-line.

Atlas Autocode / Compiler-Compiler

Atlas autocode (AA) was ported onto KDF9 by people at Edinburgh University, and then extended to become their IMP language, which was eventually used as the implementation language for EMAS. It would appear that this is an implementation of the Brooker-Morris Compiler-Compiler for the KDF9. It needs much more investigation before we have a proper understanding of this. This web page give some ideas on further steps, and links to the original material in Edinburgh.

Biopic

It may help to know what is my personal experience with KDF9.

At Leeds University we ran our KDF9 under Eldon2, which was developed in house. I was basically the architect of this system, and did a share of the coding. I made extensive modification to the time-sharing director to make the Eldon2 director, and wrote the multiprogramming kernel of the multi-access system which ran as a level 0 program.

NPL also took up Eldon2 and made a few more enhancements to the system. It is their director that is on this website (see above).

Eldon2 is described in Computer Journal Vol14 No1.
The Eldon2 operating system for KDF9 — PDF copied from Computer Journal with permission.
The Eldon2 operating system for KDF9 — HTML generated by a mix of OCR and manual editing.

There is a recently written article on Eldon2 here.

Here are some notes takes from my memories (which I feel are quite accurate). I will keep adding material as it occurs to me. After I made the offer to do this, I was strongly encouraged by Bill Findlay and Brian Wichmann. The present info is only a start.

David Holdsworth


Here are some software tools for analysing Usercode.

Here is stuff from Brian Wichmann.


Here is stuff from Bill Findlay.


Postscript: KDF10 — a pipe dream.