I’ve been programming the Intel x86 series on IBM PCs and their clones since 1987, when an 8088-based clone was chosen for a project. Running under MS‑DOS, we couldn’t get the efficiency for critical Comms and Screen routines that we needed using high level languages, so I started writing those in assembly language.

I’d cut my teeth on assembly language on the Motorola 6809 and 68000 – which had a very regular, orthogonal design – so the change to Intel’s… quirky nature was a steep learning curve. Specific registers were required to perform certain instructions, so register management was important!

We quickly upgraded to the 80286 PC/AT, and when the first 80386 machines came out we moved to that too – and my horizons opened.


The 80386 was 32-bit capable! That meant that data could be processed faster, and there was the potential for more memory – although we were still running DOS, so backward compatibility made that tricky.

It was clear that what was needed was a different OS, so I started to write one…