This repo is a fork of Bill Findlay's KDF9 emulator (original found here) I take no credit at all for the actual emulator code and runtime files, all thanks go to him for his hard work ❤️.
kal3 and kal4 are from http://settle.ddns.net/KDF9/kalgol/DavidHo/readme.htm
Build the docker image
make docker
And then run and connect:
docker run -it --rm mariocki/kdf9
Once you have connected to the container:
kdf9_setup
cd .kdf9
- You will need to build everything first, see "Running ee9" below for instructions.
- Read the user guide in the Documents folder for basic usage instructions.
- Other more detailed documentation can also be found in the Documents folder.
- Source code changes:
ee9honors the$KDF9RUNTIMEenvironment variable for all host IO (log files, devices etc).- don't assume everyone uses (or wants to use) black on white terminals. 😒
- Converted to using Makefiles to build everything (see below).
- Amended all the scripts to:
- Parameters are now passed by command line arguments rather than position.
- Honor
$KDF9RUNTIMEwhen reading assembly, source-code, data and binary files.
- Removed special build case for Cygwin.
- I don't include pre-build binaries.
srcMain source code for ee9.builddefsGnat adc pragma files for the various build options.kal3Source code for kal3.kal4Source code for kal4.kalgolData files using during the compilation of Kidsgrove Algol.mkchanSource code for mkchan.scriptsBash scripts to simplify the execution of ee9.runtimeRuntime environment.runtime/KidsgroveKidsgrove Algol source files.runtime/WhetstoneWhetstone Algol source files.runtime/BinaryCompiled KDF9 binaries.runtime/DataData files.runtime/FW0FilesVarious FW0 files for director or Whetstone interpreter etc.runtime/logslog files are written in here.runtime/testtest scripts.runtime/settingVarious settings files which canb be copied to settings_[12].txt.runtime/AssemblyUsercode assembly source code (once compiled the binaries are placed inruntime/Binary).
DocumentsVarious KDF9 and Whetstone related PDFs/HTML pages.
- The License, it's still GPLv3. 👍
Simply cd to the root folder and type sudo make install.
If the build fails see the 'Required Dependencies' section below to ensure you have all the neccesary packages installed.
By default the executables and scripts are installed into /usr/local/bin and the default runtime is placed in /usr/local/share/kdf9/. If you wish to change these locations you can do so by specifying a value for prefix during build.
make -n prefix=/opt/kdf9 install
Once completed execute the kdf9_setup command to create the ee9 runtime. By default this will be placed in a folder named .kdf9/ in your $HOME directory but this can by changed by specifying a location in the $KDF9RUNTIME environment variable.
All the scripts as detailed in Bill Findlay's documentation remain mainly as-was but now use command line switches, you can pass the -h switch to see basic help.
Pakages required: make build-essentials bison gnat.
please let me know
please let me know, specifically any Homebrew or MacPorts instructions
Only Windows10 + WSL2 is supported.
Ensure you are running Windows 10 version 2004 or above See here for details.
Enable WSL2.
Choose a distribution of your choice and follow the instructions for your chosen distro as given above in the Linux section.
I also highly recommend you install Microsoft's new Windows Terminal.
Building from source should be the same on any modern Linux or MacOS installation provided the correct packages have been installed.
-
make ee9|mtp|to_9_from_1934Buildee9,mtp,to_9_from_1934in-place in the src folder. There are various slightly different build options - see the top of the Makefile in the root folder to make changes if desired. -
make kal3|kal4|mkchanBuild the requested executable in-place in its respective folder. -
make allBuilds all ofee9,kal3,kal4,mkchan,to_9_from_1934andmtp. -
make updateFetches any updates for thekal3,kal4andkalgolruntimes from http://settle.ddns.net/KDF9/kalgol/DavidHo/readme.htm -
make installInstalls all executables, scripts and the runtime system. The default installation location is into/usr/local, however you can change this by specifying a newprefixas shown below:make -n prefix=/opt/kdf9 install -
make distcleanRemoves all intermediate and transient files created during compilation.
let me know if I have missed anything