As it’s the 50th anniversary of the Apollo 11 moon landings, I thought this would be a great opportunity to live code a demonstration of using my new compiler to write a simple lunar lander game… but first, I’m going to port the compiler to generate code for an actual lunar lander. Yes, my target platform is the Apollo Guidance Computer used by the Apollo program. And it is weird.
Livecoding time again today, and I’m writing a compiler. This is a prototype for an alternate take on code generation for my Cowgol programming language . This is an Ada-inspired programming language for very small systems, such as 8-bit machines, intended to be self-hosted on such systems (although realistically you’ll cross compile). Cowgol works, but is achingly slow, and in this video I’m experimenting with a drastically simplified code generation model to see whether I can eliminate 95% of the complexity and produce something which works nearly as well but is much smaller and faster.
So I’ve had, for a while, a non-functional Toshiba T1000 laptop computer — a classic 1987 laptop with a 4.77MHz 8088 processor and a whole 512kB of memory. And, er, no mass storage whatsoever. I got it from the late, lamented Weirdstuff Warehouse in Sunnyvale, California, before it closed. I have recently managed to aquire another broken T1000 along with a spare motherboard, and out of these three corpses I have managed to assemble a fully functional computer.
As part of the work I’ve been doing with cpmish I’ve been trying to track down the copyright holders of some of the more classic pieces of CP/M software and asking them to license it in a way that allows redistribution. One of the people I contacted was R.T. Russell, the author of the classic Z80 BBC BASIC, and he very kindly sent me the source and agreed to allow it to be distributed under the terms of the zlib license. So it’s now open source!
So last year I got an Amstrad NC200 laptop, and ported CP/M to it, because what the hell. That kind of… snowballed. So, what I’m doing now is releasing a fully open source CP/M clone distribution. Finally, after only 42 years, there’s a CP/M-like system you can distribute for free!
I have a low-key, ongoing project to produce a fully open source CP/M
clone which can be distributed with emulators (or used in real
hardware). The issue is that while Caldera
and Lineo have released all the old source, it’s under an encumbered license
which prohibits redistribution, making
it useless for these purposes. As part of this, I’ve just written a
mostly-functional clone of the original
asm.com which was shipped with CP/M
— a simple 8080 assembler. And I did it all on video, so you can watch me