Seattle DOS was a better rewrite of CP/M for 16 bits than CP/M-86
By Eric Hartwell - April 18, 2005Tim Paterson did a better job of rewriting CP/M for 16 bits than Digital Research did, and it's related to the DOS vs CPM/86 porting issue Adam Barr discusses in Proudly Serving My Corporate Masters (starting at the bottom of page 187 in this online sample).
At the time I was doing development work on CP/M Z80 systems, and we were looking for a way to move to a 16 bit OS (8086, NSC8000, 68000). I still have an original Seattle DOS manual (unfortunately, somewhere in storage) from when we did our research.
Whether or not the Seattle DOS code was based on CP/M (which was in practice the open source OS of its time), Tim wisely made the basic API the same as CP/M and provided an extended API for 16 bit functions.
CP/M-86, on the other hand, replaced the API with a single "new, improved" 16 bit version. This meant that I could port my programs and utilities to Seattle DOS simply by changing a few macro definitions, maintaining single source for both operating systems. I would have had to change all my source code to port to CP/M-86 (don't forget, this was all assembler).
When IBM introduced the PC, with the choice of DOS or CP/M-86, it was clear that "DOS" took the Seattle DOS approach. I remember disassembling DOS 1.0 up to 2.1 - if only I could find those files ...
Even if CP/M-86 hadn't been priced way too high, DOS still would have been the sensible choice since it was much easier (hence cheaper) to preserve our application code.
Origins of MS-DOS [Proudly Serving My Corporate Masters March 2, 2005] Tim Paterson, who wrote the operating system QDOS on which the original PC-DOS and MS-DOS was based, is suing the author of a book which claims that QDOS was a ripoff of CP/M. Microsoft legally acquired QDOS; the issue is whether Paterson had earlier "ripped off" CP/M when writing QDOS. It's not clear what exactly "rip-off" means; there's no doubt that QDOS looked like CP/M, because most command-line-based OSes back then looked the same (and still do; Monad on the surface looks a lot like CP/M, QDOS, PC-/MS-DOS, and any Unix shell).