Building a keyboard from an old portable (electronic) typewriter

A while back I picked up an old Canon Typestar IV portable typewriter in a junk shop: this is one of a class of electronic typewriter known as the ‘thermal wedgie’: battery powered, printing via a thermal print head to either heat sensitive paper or with a special ribbon, they’re light, small and extremely quiet. Mine will run off rechargeable batteries. Unfortunately the ribbons are impossible to find and is it’s not valuable and I have no need for one anyway, I’ve ripped the guts out and crudely turned it into what’s turned out to be a really rather nice USB keyboard — the keyswitches are excellent.

Read more...

My new book

For years now I have had another science fiction novel tucked away in the corner of my hard drive, which has been taken out and occasionally polished a bit more before being put away again. I’ve decided that it’s now time to call it done and kick it out into the outside world, so you can now go and read Child of the Sea and the Stars on my website.

Read more...

Interlaken

I spent a weekend in Interlaken, one of the most famous mountain areas in Switzerland, and one which I’ve been not getting round to visiting for… yikes, five years.

[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]
[Photo]

Read more...

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