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:
- KDF9 director as used at NPL, and as reconstituted by Hans Pufal, with later editing by David Holdsworth.
This began life as an English Electric time-sharing director and was then extensively modified at Leeds University
by David Holdsworth and further modified at NPL (National Physical Laboratory) by Tony Hillman.
The highest priority program run under this director was usually the Eldon2 terminal system,
which occupied 2048 48-bit words and provided interactive editing and a foreground job queue.
Unfortunately, listings of this system have been lost inside Leeds University Library.
- KDF9 director exactly as reconstituted by Hans Pufal
- image of paper tape for loading English Electric’s time-sharing director KKT40E007UPU
This is a binary image that you can download. It has one byte for each 8-bit character on the tape.
KDF9’s rather quirky paper usage can be handled by this program ptconv.c.
The command to interpret the tape as text is ptconv k dirtape.bin dirtape.txt.
If you do this you clearly see the director A-block immediately following the KDF9 bootstrap loader.
- KDF9 instruction code
- KDF9 initial orders
- A listing of Whetstone Algol (see below).
- A listing of the KAL4 assembler (see below).
- Support documentation for KDF9 directors scanned from 1965 originals
- Technical documents.
This is a list of technical documents for the KDF9 which were typically not released to users.
Currently we only have paper copies, but digitisation is under very active consideration.
-
KDF9 Programming Manual.
This was originally produced by B Foley of the Computer Society at N.U.I. Galway,
who has given permission for its use here.
It was originally located here.
-
On 6th November 2015 we learnt that a listing of Kidsgrove Algol compiler source text had survived
and now resided in Colorado, though it was printed in Australia, and on a very good printer.
The scans can be seen
here.
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: 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 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.