Writing a lunar lander game for an actual lunar lander

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.

Read more...

Live coding a compiler for CP/M, from scratch

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.

Read more...

Live coding a vi for CP/M, from scratch

The other day, being unable to find a suitable open-source text editor for cpmish, I sat down and wrote a simple vi-like editor. It took nine hours. I have it all on video.

Read more...

Performing a brain transplant on a Toshiba T1000

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.

Read more...

R.T. Russell's Z80 BBC Basic is now open source

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!

Read more...

Resurrecting CP/M, or at least CP/Mish

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!

Read more...

Live coding an assembler for CP/M

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 do it.

Read more...