DR-DOS is a DOS-type operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from CP/M-86.
IBM originally approached Digital Research, seeking an x86 version of CP/M. However, there were disagreements over the contract, and IBM withdrew. Instead, a deal was struck with Microsoft, who purchased another operating system, 86-DOS, from Seattle Computer Products. This became Microsoft MS-DOS and IBM PC-DOS. 86-DOS' command structure and application programming interface imitated that of CP/M. Digital Research threatened legal action, claiming PC/MS-DOS to be too similar to CP/M. IBM settled by agreeing to sell their x86 version of CP/M, CP/M-86, alongside PC-DOS. However, PC-DOS sold for $60, while CP/M-86 had a $240 price tag. The proportion of PC buyers prepared to spend four times as much to buy CP/M-86 was very small, and the availability of compatible application software, at first decisively in Digital Research's favour, was only temporary.
At this time, MS-DOS was only available bundled with hardware, so DR-DOS achieved some immediate success as it was possible for consumers to buy it through normal retail channels. Also, DR-DOS was cheaper to license than MS-DOS. As a result, DRI was approached by a number of PC manufacturers who were interested in a third-party DOS, and this prompted several updates to the system.
DR-DOS version 5.0 was released in May 1990. (Version 4 was skipped to avoid being associated with the relatively unpopular MS-DOS 4.0.) This introduced ViewMAX, a GEM based GUI file management shell, and bundled disk-caching software, and also offers vastly improved memory management.
Additionally, on Intel 80386 machines, DR-DOS's EMS memory manager allowed the OS to load DOS device drivers into upper memory blocks, further freeing base memory. For more information on this, see the article on the Upper Memory Area (UMA).
Because DR-DOS leaves so much conventional memory available, some programs fail to load as they start "impossibly" low in memory – inside the first 64KB. DR-DOS 5's new LOADFIX command works around this by leaving a small empty space at the start of the memory map.
DR responded with DR-DOS 6.0 in 1991. This bundled in SuperStor on-the-fly disk compression, to maximize available hard disk space. DR-DOS 6.0 also includes an API for multitasking on CPUs capable of memory protection, namely the Intel 80286 and newer. The API was available only to DR-DOS aware applications, but well-behaved ordinary DOS applications can also be pre-emptively multitasked by the bundled task-switcher, TaskMax. On 286-based systems, allowing only one process to execute at a time, DOS applications are suspended to the background to allow others to run.
A pre-release version of Windows 3.1 was designed to return a non-fatal error message if it detected a non-Microsoft DOS. This check came to be known as the AARD code. With the detection code disabled, Windows ran perfectly under DR-DOS and its successor Novell DOS. The code was present but disabled in the released version of Windows 3.