Brussels / 3 & 4 February 2024


Running DOS & Unix on an 8-bit Commodore

In 1983, Commodore introduced CBM-II, the successor to their aging line of PET business computers. It featured a 6502 CPU running at 2 MHz and up to 256 kB memory. But its most interesting feature was a second CPU interface, which (much like Acorn's Tube) allowed to attach various CPUs to the system.

Commodore designed two cards: Z80 (for running CP/M) and 8088 (for running MS-DOS). Back in these days, though, MS-DOS had a separate version for each platform. Therefore you could only run specially crafted Commodore MS-DOS 1.25 on the computer, because it was obviously not PC-compatible.

A few years ago I set out to fix this deficiency. I asked myself: is it possible to make the platform (more) PC compatible? As it turns out, it is, and practically without any modifications to the original design. You just need to write a piece of software that emulates the PC BIOS and some parts of the PC hardware platform. For this, one wire needs to be added to the hardware, which generates a NMI when an I/O chip is accessed; the emulation software then simulates the non-existing I/O peripheral.

Based on this work, I was able to make the platform compatible enough to run modern FreeDOS, as well as other PC software: Norton Commander, Turbo Pascal, QBASIC and more.

As a follow-up, I designed a Z8000 processor card using the second CPU interface; this card is meant to emulate the abandoned Commodore 900 Unix workstation. This is a work in progress right now; so far the card is able to boot the Commodore 900 BIOS and complete the I/O chip self test (the I/O chips are obviously also emulated in software). By the time of the talk, the progress is expected to be much farther :)

The PC emulation software is available on GitHub:

And the hardware:


Photo of Michal Pleban Michal Pleban