Software Projects
Personal software projects: Common Lisp programs, emulators and tools for 1980s educational computers, some programs I wrote as a teenager and student, and a few pieces of writing. The story behind the old programs is told in 25 Years of Home Computing. The research software - Racer and nRQL, DLMAPS, VISCO, GenEd - is on the research and thesis work pages.
Common Lisp
|
Notes on Refactoring Exponential Macros in Common Lisp.
|
|
Common Lisp Persistency Manager
03/2021
A File-Based Fully Automatic Lisp Datastructure Serializer / Persistency Manager, Similar to "Pickle" for Python. Legacy code from my Lisp archive, published in 2021.
|
|
A Tangram Puzzle Solver in Common Lisp that is capable of solving arbitrary geometric tiling problems. CLIM (Common Lisp Interface Manager) is used for its GUI.
|
|
A Simple Petri Net Editor and Simulator written in Common Lisp with CLIM (Common Lisp Interface Manager) GUI, written for a lecture about CLIM at the University of Hamburg.
|
Emulators and Tools for 1980s Educational Computers
New Programs for Old Machines (2021 - 2026)
|
|
The MIDI/80 TRACKER on the Amstrad CPC, with the Ultimate MIDI Card: a Claude-generated port of the TRS-80 program, which adds MIDI clock out and realtime MIDI recording. Songs interchange between the two machines byte for byte.
|
|
|
A six-track, multi-timbral MIDI step sequencer with a full-screen pattern editor and a song arranger, the software for MIDI/80. I wrote the original; Claude later refactored the code.
|
|
Forty years later, the program I wanted to write in 1986: in Z80 assembler, fast, and with MIDI. The tablature now scrolls past as the music plays. Claude wrote it; I directed and tested it.
|
|
A Realtime-Animated Speaking Vector Head for the Amstrad CPC - Requires Amstrad SSA-1 or LambdaSpeak. Forty years on, the head from 1985 moves its mouth and speaks.
|
|
The Wrath of the MCPC
10/2021
My entry for the #CPCRetroDev 2021 contest, in the pure BASIC category: the MCPC has taken over your CPC, and you have to defeat it in a light cycle game on a torus. Written entirely in Locomotive BASIC 1.0, without any machine code - the hard part was an AI opponent that drives well and still runs fast enough. Later versions add joystick support and speech output with LambdaSpeak. The game received the contest's special mention for the best artificial intelligence.
Play or download on itch.io
Video: trailer
Video: with LambdaSpeak speech
Video: longplay with speech
Press and awards:
Special mention "Best Artificial Intelligence", #CPCRetroDev 2021
|
PC Programs (1994 - 1996)
|
Rotating Torus
1996
A rotating torus with simple shading for DOS, written with Borland C - much better than the rotating hypercube on the Amiga eight years earlier.
|
|
The Fractal Master from the Amiga, reimplemented for Windows 3.1 with Borland Pascal 7.0.
|
|
The Windows 3.1 version of my Amiga Connect Four, written with Borland Pascal 7.0. It still ran on Windows XP.
|
|
A Simple Three-Layer Perceptron in Modula-2.
|
|
A stereo 3D wire-frame CAD program for DOS in TopSpeed Modula-2, to be used with red/green 3D glasses. I had to write my own windowing system and GUI toolkit for it - about 500 KB of Modula-2 source code in the end.
|
Amiga Programs (1988 - 1993)
|
Connect Four
1993
Written with KickPascal on the Amiga, with my own recursive scoring function - I did not know the Minmax algorithm yet.
|
|
CoUnStuNa
1990
An accounting program for a hospital ward, written on the Amiga 500 during my civil service - four weeks of nursing service traded for four weeks of full-time Amiga programming.
|
|
4D-Funktion
1989
A three-dimensional function plotter for the Amiga, the successor of Colfunkt: one function determines the height, a second one the colour. Published in the Amiga Magazin 12/1989.
|
|
The Fractal Master
1989
Draw a basic turtle pattern with the mouse, and the program applies it recursively to itself to construct a fractal. The idea came from a task of the Bundeswettbewerb Informatik 1986. Written on the Amiga.
|
|
Rotating Hypercube
1988
A smooth animation of a rotating four-dimensional hypercube in Amiga BASIC - one of my first Amiga programs, and something the CPC had been too slow for.
|
Amstrad / Schneider CPC Programs (1985 - 1988)
|
The Music Master
1988
My last big CPC project.
|
|
Big Clock
1987
A digital alarm clock with big 7-segment numbers covering the whole screen, running as a background task of the CPC's operating system and controlled by new BASIC commands (RSX) such as |clock, |setclock and |setalarm. Published in the CPC International. A big analogue clock had come before it, in 1985.
|
|
Color Chooser
1987
A program for choosing and animating the colours of CPC screens, published as "Farbeneinsteller" in a special issue of the CPC International in 1988 - money for the Amiga.
|
|
Colfunkt
1987
A function plotter for functions of two variables: f(x,y) modulo 16 is the colour of the pixel at x,y. With colour cycling it produced spacey graphics. Published in the CPC International.
|
|
Teaser
1987
A CPC version of the electronic game Merlin.
|
|
Tab Composer CPC
1986
The World's First (?) Tablature Composer Software - written in 1986 on an Amstrad CPC 464 in Locomotive BASIC, when I was 16 and used it to help me through my guitar lessons.
|
|
A graphical editor for sound waveforms, controlling the volume envelopes of the CPC sound chip. The first program I sold: it was published in a special CPC issue of Happy Computer in 1987.
|
|
A CPC BASIC program that generates science fiction stories.
|
|
Manic
1985 - 1986
A computer game for the CPC.
|
|
Vector Graphics Head
1985
A vector graphics computer head, printed in a computer magazine, that I digitized by hand: I overlaid it with squared glassine paper to read off the coordinates, and wrote a BASIC program that drew the head on my CPC 464.
|
|
Galaxis
1985
A CPC implementation of Galaxis, the Battleships-like electronic board game by Ravensburger. It took me weeks to finish.
|
|
One of my first bigger CPC projects: an emulator of the Busch Microtronic in Locomotive BASIC - almost as fast as the real machine, and sometimes much faster. With the DK'tronics speech synthesizer, it was also a talking Microtronic.
|