KDF9 Stuff

A collection of material relating to KDF9 — especially stuff with a software aspect. This is put together by David Holdsworth 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: We have had considerable success in actually running much of the software listed above, especially Whetstone Algol and KAL4 (see below).


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 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.

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: kdf9emul.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 source code is written KDF9 Usercode, with the sole exception of the KAL4 assembler (see below). We do not have English Electric's Usercode assembler (which their documentation calls the Usercode Compiler).

There is a new Usercode assembler 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.

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 Whetstone Algol includes facilities 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.

Whetstone Algol

We now 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.

Kidsgrove Algol

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

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.

Atlas Autocode

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. A more detailed web page is in the course of preparation.

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.

CCS home page