❓ Why can this emulator only run CP/M-86?

Short answer: it has no hard drive — but it now ships four boot floppies. 💾💾💾💾

The real reason is deliberate scope. A general-purpose PC emulator has to chase the entire messy zoo of BIOS quirks, DOS versions, memory managers, EGA/VGA modes, hard-disk geometries and copy-protection tricks that 40 years of software relied on. That's a rabbit hole with no bottom.

Instead, this emulator implements exactly the slice of an IBM PC/XT that CP/M-86 1.0 actually touches:

  • No hard-disk BIOS (INT 13h AH=02h on drive 80h+): only floppy drives A: and B: exist. CP/M-86 boots and runs entirely from a 5.25″ floppy, so drive C: was never wired up.
  • Cold-boot loader is CP/M-specific: the boot sector loads the CP/M-86 CPM.SYS image and jumps into the BDOS/CCP, not a generic MBR chain-loader that MS-DOS or FreeDOS expect.
  • BDOS calls, not INT 21h: CP/M-86 talks to the OS via INT 224 (E0h) with the function in CL. There is a partial INT 21h dispatcher in here, but it only covers the handful of functions CP/M-86's tooling pokes at — it is not a complete, correct DOS API. A real MS-DOS program leans on dozens of INT 21h services (EXEC, full FCB/handle file I/O, memory allocation, PSP handling) that this stub gets wrong or leaves unimplemented, so DOS will wander into a bad call and crash. 😅
  • Text-mode CGA only in practice: CP/M-86 is a character-mode OS. The fancier graphics/timing edge cases that break other software are outside the tested path.
  • Four known-good disk images: the bundle now ships four floppies — the default cpm-86.img boot disk plus the cpm11d1.img, cpm11d2.img and cpm11d3.img distribution diskettes — so you've got a whole shelf of guaranteed-bootable CP/M-86 media. 💾

In other words: it's not that an 8088 couldn't run other things — it's that this build is a focused, faithful CP/M-86 machine rather than a leaky do-everything PC. Feed it an MS-DOS floppy and it'll try, then sulk. 😅

IBM Personal Computer
POWER
TURBO
CPU
8087
FDD A
FDD B
4.77 MHz
System Off 0 IPS