ee9, the GNU Ada emulator of the English Electric KDF9 Computer

See:

All about ee9

The ee9 program is free software; you can redistribute it and/or modify it under terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should receive a copy of the GNU General Public License distributed with this program; see file COPYING. If not, look here.

ee9 is a substantial program: more than 25,000 lines of source code, the most recent version being in Ada 2012. The build of ee9 for macOS, when running on my 2017-model iMac, is between 400 and 700 times faster than the original KDF9 hardware, depending on the mix of instructions in the KDF9 program.

ee9 is a command-line program. It does not have a graphical user interface, but runs in your system’s terminal emulator under a bash-compatible shell. When running ee9 you are placed somewhat in the role of a KDF9 operator, monitoring and controlling the computer by means of messages on its Flexowriter console typewriter.

There are executable binaries available:

Thanks to Bill Gallagher for Windows, Linux and Raspberry Pi builds; and to Mike Hore for the PowerPC build.

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.

If you have a Mavericks or Yosemite system, I would be very interested to hear whether the current macOS version runs on it.

If you have a Windows 10 system, you can also use the x86_64 Linux build.

The download packages

You can find a full release of ee9 here. It is provided in the form of a zip-compressed archive, and will have a name of the form Vvprx_for_system.zip, where v represents a major version number number, r represents the point-release number and x represents a letter identifying a minor revision. If there is more than one version offered for your system, take the most recent.

When you unzip the download, you will see a directory called emulation. The rest of the package is held in the following subdirectories of emulation.

You should find:

In the Documents directory:

Documentation is provided as some UNIX-style text files, with NL/LF line terminators, and as a set of PDFs (mostly). These include (with V5):

In the Testing directory:

In the Source directory:

In the Build directory:

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 may need to install the Cygwin POSIX subsystem. For information on how to do that, see the ‘HOWTO’ file. If you are using Windows 10 then Cygwin is not necessary, because the Linux version of ee9 works on Windows 10 without it.

N.B. the HOWTO file in version 2.0 gives an outdated command, in the section called ‘DIRECTING DIRECTOR’, for setting up labelled magnetic tape files. Instead of:

   ./nine RLT Assembly/RLT_data.txt
it should say:
   ./nine_test RLT RLT_data
Thanks to Roberto Sancho Villa for bringing this to my attention.