Skip to content

Comment on Running CP/M on the C128parent

Comments

MS-DOS was inspired by CP/M to an extent, but not directly based on it. The device handling, BIOS functions, and command line were similar.

When IBM first developed the PC they needed an OS. At first they tried to license CP/M from Digital Research since it already existed with many applications available. But when DR fumbled the business negotiations, Microsoft stepped in and offered IBM favorable terms for MS-DOS. It wasn't exactly compatible with CP/M, but close enough that the transition was easy for users and developers.

Some things were identical, for example .com files were loaded at 0x0100 which meant that before the start of the loaded program there was space for the FCB:

https://en.wikipedia.org/wiki/File_Control_Block

This block would contain the command-line arguments, and have space for working with files (via FindFirst and FindNext), using the same globbing patterns as CP/M supported.

Of course things changed when MS-DOS got support for subdirectories, and later int21 functions expanded filesystem support. Later still .exe files became more dominant as they could be larger than 64k (minus PSP).

You left out the part where Microsoft offered to IBM to create an operating system and then bought https://en.wikipedia.org/wiki/86-DOS which was written because Digital Research didn't release CP/M for the 8086 soon enough.

I left out a lot of parts to keep the comment short. Whole books have been written about those events. Accidental Empires has one perspective on the story, although I wouldn't take it as completely accurate.

https://www.cringely.com/2013/02/28/accidental-empires-chapt...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.