ee9, the GNU Ada emulator of the English Electric KDF9 Computer
ee9 Version 1.9e is a substantial program:
more than 20,000 lines of source code in Ada 2005.
There are executable binaries available:
- for Mac OS X on Intel x86_64 processors under
Snow Leopard (10.6),
Mountain Lion (10.8),
and Mavericks (10.9);
- for Mac OS X on PowerPC G5 processors under Leopard,
with thanks to Mike Hore;
- for Linux on Intel x86_64 and on Intel x86_32 processors,
with thanks to Bill Gallagher;
- for Raspbian Linux on the ARM11 Raspberry Pi processor,
with thanks to Bill Gallagher;
- and also for Microsoft Windows (XP/SP3 or later) on Intel x86 processors
(it should run in 32-bit mode on both 32-bit and 64-bit systems),
again with thanks to Bill Gallagher.
The build of ee9 for Mac OS X,
when running on my 2.3GHz Core i7 MacBook Pro,
is between 250 and 350 times faster than the original KDF9 hardware,
depending on the mix of instructions in the KDF9 program.
If you have a Mac with a PowerPC G3 or G4 processor,
I would be very interested to hear whether the G5 version runs on it.
You can find
a full release of ee9 here.
It is provided in the form of a zip-compressed archive of less than 4 Mbytes,
and will have a name of the form
V1prx_for_system.zip, where r represents the point-release number
and x represents a letter identifying a minor revision.
If there is more than one version offered, go for the most recent.
Should you want a preview before starting a download,
the ee9 users’ guide.
When you unzip the download,
you will see a directory called emulation.
It contains a README file giving basic orientation.
The rest of the package is held in the following subdirectories of emulation.
You should find:
In the Documents directory:
- A guide to using ee9: ‘Users Guide for ee9.pdf’
- A HOWTO file that describes the procedures to be followed for compiling and executing
both KDF9 Usercode and Whetstone Algol (Walgol) programs, and tells how to build
your own executable version of ee9 from the provided source code
- Two papers by me, documenting the KDF9’s hardware and software:
‘The English Electric KDF9.pdf’ and
‘The Hardware of the KDF9.pdf’
- A list of all the error numbers generated by the Whetstone Algol Translator
‘Walgol Error Numbers.pdf’
In the Testing directory:
- An Algol subdirectory, containing Whetstone Algol 60 source files
- An Assembly subdirectory, containing Usercode assembly-language source
program files and their data files
- A Binary subdirectory, containing KDF9 machine code programs to run
- A collection of files to represent the KDF9’s I/O devices; for example: ‘LP0’, ‘TR1’, and so on
- A binary of my KDF9 emulator: ee9
- A binary of David Holdsworth’s new Usercode compiler: kal3
- Unix shell scripts to facilitate running kal3, KDF9 object programs, the
Whetstone Algol system, and the Time Sharing Director
- Unix shell scripts to implement a basic self-checking process
for ee9 itself: ee9_self_test, etc.
In the Source directory:
- Complete Ada 2005 source code for ee9 is provided.
It should compile without errors and without warning messages.
In the Build directory:
- A shell command file to build ee9: mk9,
which may need to be adapted to your system and preferences;
it repays careful study,
if you intend to compile ee9 yourself
- GNAT option files for testing and/or optimised builds of ee9: adc-*.adc; the
currently distributed binary is both optimised and testing;
except on PowerPC, which is unoptimised due to a bug in the old compiler used
- The option file used to generate the distributed binary of ee9: ‘gnat.adc’
- The compilation listing of that build: ‘komlog.ada’
If you are a Windows user and want to build your own version of ee9,
or if you want to use the Unix shell scripts I provide,
then you will need to install the Cygwin POSIX subsystem.
For information on how to do that, see the ‘HOWTO’ file.