DR-DOS explained

DR-DOS
Family:DOS
Working State:Discontinued
Source Model:Mixed; primarily closed-source, some versions open-source
Latest Release Version:7.01.08
Language:English, older versions also in German, French, Italian, Spanish, Japanese
Supported Platforms:x86
Kernel Type:Monolithic kernel
Ui:Command-line interface (COMMAND.COM)
License:Proprietary
Website: (dead since 2018)

DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS that attempted to be compatible with IBM PC DOS and MS-DOS (which were the same product sold under different names).

DR-DOS was developed by Gary A. Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. As ownership changed, various later versions were produced with names including Novell DOS and Caldera OpenDOS.

History

Origins in CP/M

Digital Research's original CP/M for the 8-bit Intel 8080- and Z80-based systems spawned numerous spin-off versions, most notably CP/M-86 for the Intel 8086/8088 family of processors. Although CP/M had dominated the market since the mid-1970s, and was shipped with the vast majority of non-proprietary-architecture personal computers, the IBM PC in 1981 brought the beginning of what was eventually to be a massive change.

IBM originally approached Digital Research in 1980, 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 (SCP). This became Microsoft MS-DOS and IBM PC DOS. 86-DOS's command structure and application programming interface imitated that of CP/M 2.2 (with BDOS 2.2). Digital Research threatened legal action, claiming PC DOS/MS-DOS to be too similar to CP/M. In early 1982, IBM settled by agreeing to sell Digital Research's x86 version of CP/M, CP/M-86, alongside PC DOS. However, PC DOS sold for while CP/M-86 had a $240 price tag. The proportion of PC buyers prepared to spend six times as much to buy CP/M-86 was very small, and the limited availability of compatible application software, at first in Digital Research's favor, was only temporary.

Digital Research fought a long losing battle to promote CP/M-86 and its multi-tasking multi-user successors MP/M-86 and Concurrent CP/M-86, and eventually decided that they could not beat the Microsoft-IBM lead in application software availability, so they modified Concurrent CP/M-86 to allow it to run the same applications as MS-DOS and PC DOS.

This was shown publicly in December 1983 and shipped in March 1984 as Concurrent DOS 3.1 (a.k.a. CDOS with BDOS 3.1) to hardware vendors. While Concurrent DOS continued to evolve in various flavours over the years to eventually become Multiuser DOS and REAL/32, it was not specifically tailored for the desktop market and too expensive for single-user applications. Therefore, over time two attempts were made to sideline the product:

In 1985, Digital Research developed DOS Plus 1.0 to 2.1, a stripped-down and modified single-user derivative of Concurrent DOS 4.1 and 5.0, which ran applications for both platforms, and allowed switching between several tasks as did the original CP/M-86. Its DOS compatibility was limited, and Digital Research made another attempt, this time a native DOS system. This new disk operating system was launched in 1988 as DR DOS.

Although DRI was based in Pacific Grove and later in Monterey, California, USA, the work on DOS Plus started in Newbury, Berkshire in the UK, where Digital Research Europe had its OEM Support Group located since 1983. Beginning in 1986, most of the operating system work on Concurrent DOS 386 and XM, Multiuser DOS, DR DOS and PalmDOS was done in Digital Research's European Development Centre (EDC) in Hungerford, Berkshire. Later on some work was also done by Digital Research GmbH in Munich, Germany.

First DR DOS version

As requested by several OEMs, Digital Research started a plan to develop a new DOS operating system addressing the defects left by MS-DOS in 1987. Of particular importance was a million dollar deal with Kazuhiko "Kay" Nishi of ASCII Corporation, who had previously been instrumental in opening the Japanese OEM market for Microsoft. The first DR DOS version was released on 28 May 1988. Version numbers were chosen to reflect features relative to MS-DOS; the first version promoted to the public was DR DOS 3.31, which offered features comparable to Compaq MS-DOS 3.31 with large disk support (FAT16B a.k.a. "BIGDOS"). DR DOS 3.31 reported itself as "IBM PC DOS 3.31", while the internal BDOS (Basic Disk Operating System) kernel version was reported as 6.0, single-user nature, reflecting its origin as derivative of Concurrent DOS 6.0 with the multitasking and multiuser capabilities as well as CP/M API support stripped out and the XIOS replaced by an IBM-compatible DOS-BIOS. The system files were named DRBIOS.SYS (for the DOS-BIOS) and DRBDOS.SYS (for the BDOS kernel), the disk OEM label used was "DIGITAL␠".

DR DOS offered some extended command line tools with command line help, verbose error messages, sophisticated command line history and editing (HISTORY directive) as well as support for file and directory passwords built right into the kernel. It was also cheaper to license than MS-DOS, and was ROMable right from the start. The ROMed version of DR DOS was also named ROS (ROM Operating System). DRI was approached by a number of PC manufacturers who were interested in a third-party DOS, which prompted several updates to the system.

At this time, MS-DOS was only available to OEMs bundled with hardware. Consequently, DR DOS achieved some immediate success when it became possible for consumers to buy it through normal retail channels beginning with version 3.4x.

Known versions are DR DOS 3.31 (BDOS 6.0, June 1988, OEM only), 3.32 (BDOS 6.0, 17 August 1988, OEM only), 3.33 (BDOS 6.0, 1 September 1988, OEM only), 3.34 (BDOS 6.0, OEM only), 3.35 (BDOS 6.0, 21 October 1988, OEM only), 3.40 (BDOS 6.0, 25 January 1989), 3.41 (BDOS 6.3, June 1989, OEM and retail). Like MS-DOS, most of them were produced in several variants for different hardware. While most OEMs kept the DR DOS name designation, 2001 Sales, Inc. marketed it under the name EZ-DOS 3.41 (also known as EZ-DOS 4.1).

DR DOS 5.0

DR DOS version 5.0 (code-named "Leopard") was released in May 1990, still reporting itself as "PC DOS 3.31" for compatibility purposes, but internally indicating a single-user BDOS 6.4 kernel. (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. ViewMAX's startup screen would present the slogan "Digital Research - We make computers work". DR DOS 5.0 also introduced the patented BatteryMAX power management system, bundled disk-caching software (DRCACHE), a remote file transfer tool (FILELINK), a cursor shape configuration utility (CURSOR), and offered a vastly improved memory management system (MemoryMAX). For compatibility purposes, the DR DOS 5.0 system files were now named IBMBIO.COM (for the DOS-BIOS) and IBMDOS.COM (for the BDOS kernel) and due to the advanced loader in the boot sector could be physically stored anywhere on disk. The OEM label in the boot sectors was changed to "IBM␠␠3.3".

DR DOS 5.0 was the first DOS to include load-high capabilities. The kernel and data structures such as disk buffers could be relocated in the High Memory Area (HMA), the first 64 KB of extended memory which are accessible in real mode. This freed up the equivalent amount of critical "base" or conventional memory, the first 640 KB of the PC's RAM – the area in which all DOS applications run.

Additionally, on Intel 80386 machines, DR DOS's EMS memory manager allowed the operating system to load DOS device drivers into upper memory blocks, further freeing base memory.

DR DOS 5.0 was the first DOS to integrate such functionality into the base OS (loading device drivers into upper memory blocks was already possible using third-party software like QEMM). This allowed it, on 286 systems with supported chipsets and on 386 systems, to provide significantly more free conventional memory than any other DOS. Once drivers for a mouse, multimedia hardware and a network stack were loaded, an MS-DOS/PC DOS machine typically might only have had 300 to 400 KB of free conventional memory – too little to run much late-1980s software. In contrast to this, DR DOS 5.0, with a little manual tweaking, could load all this and still keep all of its conventional memory free – allowing for some necessary DOS data structures, as much as 620 KB out of the 640 KB. With MEMMAX +V, the conventional memory region could even be extended into unused portions of the graphics adapter card typically providing another 64 to 96 KB more free DOS memory.

Because DR DOS left so much conventional memory available, some old programs using certain address wrapping techniques failed to run properly as they were now loaded unexpectedly (or, under MS-DOS, "impossibly") low in memory – inside the first 64 KB segment (known as "low memory"). Therefore, DR DOS 5.0's new MEMMAX -L command worked around this by pre-allocating a chunk of memory at the start of the memory map in order for programs to load above this barrier (but with less usable conventional memory then). By default, MEMMAX was configured for +L, so that applications could take advantage of the extra memory.

DR DOS 6.0 / Competition from Microsoft

Faced with substantial competition in the DOS arena, Microsoft responded with an announcement of a yet-to-be released MS-DOS 5.0 in May 1990. This would be released in June 1991 and include similar advanced features to those of DR DOS. It included matches of the DR's enhancements in memory management.

Almost immediately in September 1991, Digital Research responded with DR DOS 6.0, code-named "Buxton". DR DOS 6.0, while already at BDOS level 6.7 internally, would still report itself as "IBM PC DOS 3.31" to normal DOS applications for compatibility purposes.This bundled in SuperStor on-the-fly disk compression, to maximize available hard disk space, and file deletion tracking and undelete functionality by Roger A. Gross.

DR DOS 6.0 also included a task-switcher named TASKMAX with support for the industry-standard task-switching API to run multiple applications at the same time. In contrast to Digital Research's Multiuser DOS (successor of Concurrent DOS in the multi-user products line), which would run DOS applications in pre-emptively multitasked virtual DOS machines, the DR DOS 6.0 task switcher would freeze background applications until brought back into the foreground. While it ran on x86-machines, it was able to swap to XMS memory on 286+ machines. TASKMAX did support some Copy & Paste facility between applications.Via the task-switcher API, graphical user interfaces such as ViewMAX or PC/GEOS could register as the task manager menu and thereby replace the TASKMAX text mode menu, so that users could switch between tasks from within a GUI.

Microsoft responded with MS-DOS 6.0, which again matched some features of DR DOS 6.0.

In December 1991, a pre-release version of Windows 3.1 was found to return a non-fatal error message if it detected a non-Microsoft DOS. This check came to be known as the AARD code. It was a simple matter for Digital Research to patch DR DOS 6.0 to circumvent the AARD code 'authenticity check' in the Windows 3.1 beta by rearranging the order of two internal tables in memory (with no changes in functionality), and the patched version, named "business update", was on the streets within six weeks of the release of Windows 3.1. 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.1.

In July 1992, Digital Research Japan released DR DOS 6.0/V, a Japanese DOS/V compatible version of DR DOS 6.0. A Korean version appears to have been available as well.

PalmDOS

In 1992 Digital Research, still under its old name but already bought by Novell in July 1991, also embarked on a spin-off product code-named "Merlin" and later released as NetWare PalmDOS 1, which, as its name implies, was a very resource-light DR DOS 6.0 derivative aimed at the emerging Palmtop/PDA market.

PalmDOS was the first operating system in the family to support the new BDOS 7.0 kernel with native DOS compatible internal data structures instead of emulations thereof. Replacing the DOS emulation on top of a CP/M kernel by a true DOS compatible kernel helped a lot in improving compatibility with some applications using some of DOS' internal data structures and also was the key in reducing the resident size of the kernel code even further—a particular requirement for the PDA market. On the other hand, introducing a genuine Current Directory Structure (CDS) imposed a limit on the depth of working directories down to 66 characters (as in MS-DOS/PC DOS), whereas previous issues of DR DOS had no such limitation due to their internal organization of directories as relative links to parent directories instead of as absolute paths. PalmDOS still reported itself as "PC DOS 3.31" to applications in order to keep the kernel small and not run into compatibility problems with Windows, which would expect the DOSMGR API to be implemented for any DOS version since 5.0.

As well as a ROM-executing kernel, PalmDOS had palmtop-type support for features such as PCMCIA PC Cards (with DPMS support), power management (BatteryMAX and the $IDLE$ device driver with its patented dynamic idle detection by Gross and John P. Constant), MINIMAX task switcher support for PIM (Personal Information Modules) applications stored and executed from ROM via XIP (Execute-In-Place), etc.

The PCMCIA stack for PalmDOS was partially written by Ian H. S. Cullimore, the original instigator of the PCMCIA/PC Card movement.

Novell DOS 7 / Contribution by Novell

Novell DOS was Novell Corporation's name for DR DOS during the period when Novell sold DR DOS, after the acquisition of Digital Research in 1991. Regarding features and performance, it was typically at least one release ahead of MS-DOS. In 1993, PC DOS 6.1, MS-DOS 6.2 and PC DOS 6.3 were trumped by Novell's .

Novell CEO Robert J. Frankenberg's strategy included "major trimming", selling off products like transactional database Btrieve and killing others such as Novell DOS and WordPerfect's multimedia Main Street children's titles. Novell licensed technology from Stac Electronics for use in Novell DOS and its network operating system NetWare. Novell sold the product line off to Caldera on 23 July 1996, after it approached Novell looking for a DOS operating system to bundle with its OpenLinux distribution.

Marc Perkel claimed to have had inspired Novell in February 1991 to buy Digital Research and develop something he envisioned as "NovOS". Novell had actually bought Digital Research in July 1991 with a view to using DR's product line as a lever in their comprehensive strategy to break the Microsoft monopoly. (This was part of a massive and ultimately disastrous spending spree for Novell: they bought WordPerfect Corporation at about the same time, some of Borland's products, and invested heavily in Unix as well.) The planned "DR DOS 7.0", internally named "Panther", intended to trump Microsoft's troubled MS-DOS 6.0, was repeatedly delayed, while Novell was working on an optionally loadable Unix-like multi-user security extension (with, if loaded, file commands like BACKUP, DELPURGE, MOVE, TOUCH, TREE, UNDELETE, XATTRIB, XCOPY, XDEL and XDIR supporting an otherwise disabled /U:name command line option to select specific users or groups, compatible with Multiuser DOS) and two new graphical user interfaces (ViewMAX 3, a derivative of GEM, and "Star Trek", a true port of Apple's System 7.1 to run under the new DR DOS multitasker named "Vladivar").

When DR DOS eventually arrived in December 1993 (with localized versions released in March 1994), renamed Novell DOS 7 (a.k.a. "NWDOS"), and without these three components, it was a disappointment to some. It was larger and lacked some finishing touches, but was nevertheless seen as best DOS by many industry experts.

In Germany, Novell DOS 7 was aggressively marketed with the slogan "German: Trau keinem DOS unter 7" (Don't trust any DOS below 7) in the press and with free demo floppies in computer magazines. The campaign aimed at 20% of the DOS market and resulted in about 1.5 million copies sold until February 1994 and more than 3000 dealers interested to carry the product. Novell DOS 7 was available through various OEMs, a dedicated mail order shop and authorized dealers.

A major functional addition was Novell's second attempt at a peer-to-peer networking system, Personal NetWare (PNW). This was better than its predecessor, NetWare Lite (NWL), but it was incompatible with Microsoft's networking system, now growing popular with support in Windows for Workgroups, OS/2, and Windows NT. A considerable amount of manual configuration was needed to get both to co-exist on the same PC, and Personal NetWare never achieved much success.

Since Novell DOS 7 implemented the DOSMGR API and internal data structures had been updated, its BDOS 7.2 kernel could report with a DOS version of 6.0 and OEM ID "IBM" without risking compatibility problems with Windows. Most tools would report this as "PC DOS 6.1", because IBM PC DOS 6.1 also reported as DOS 6.0 to applications.

Novell DOS 7 introduced much advanced memory management including new support for DPMI (DOS Protected Mode Interface) and DPMS (DOS Protected Mode Services) as well as more flexible loadhigh options. It also introduced support for "true" pre-emptive multitasking of multiple DOS applications in virtual DOS machines (VDM), a component originally named MultiMAX. This was similar to Multiuser DOS, but now on the basis of a natively DOS compatible environment, similar to Windows 386 Enhanced Mode, but without a GUI. By default, the bundled TASKMGR would behave similar to the former DR DOS 6.0 TASKMAX. However, if EMM386 was loaded with the option /MULTI, EMM386 would load a natively 32-bit 386 Protected Mode operating system core providing API support for pre-emptive multitasking, multi-threading, hardware virtualization and domain management of virtual DOS machines. This API could be used by DR DOS-aware applications. If TASKMGR was run later on, it would use this API to instance the current 16-bit DOS system environment, create virtual DOS machines and run applications in them instead of using its own Real Mode task-switcher support. The multitasker was compatible with Windows, so that tasks started before launching Windows could be seen as tasks under Windows as well.

Novell DOS 7 and Personal NetWare 1.0 also shipped with NetWars, a network-enabled 3D arcade game.

Novell DOS 7 and Personal NetWare required several bug-fix releases (D70xyy with x=language, yy=number) and were not completely stable when the next development occurred. With beta versions of Microsoft's "Chicago" (what would later become Windows 95) in sight, Novell wound down further development on Novell DOS 7 in September 1994 and stopped maintenance in January 1996 after more than 15 updates.

After Novell

When Caldera approached Novell looking for a DOS operating system to bundle with their OpenLinux distribution, Novell sold the product line off to Caldera on 23 July 1996, by which time it was of little commercial value to them.

Between the Caldera-owned DR-DOS and competition from IBM's PC DOS 6.3, Microsoft moved to make it impossible to use or buy the subsequent Windows version, Windows 95, with any DOS product other than their own. Claimed by them to be a purely technical change, this was later to be the subject of a major lawsuit brought in Salt Lake City by Caldera with the help of the Canopy Group. Microsoft lawyers tried repeatedly to have the case dismissed but without success. Immediately after the completion of the pre-trial deposition stage (where the parties list the evidence they intend to present), there was an out-of-court settlement on 7 January 2000 for an undisclosed sum. This was revealed in November 2009 to be $280 million.

In August 1996, the US-based Caldera, Inc. was approached by Roger A. Gross, one of the original DR-DOS engineers, with a proposal to restart DR-DOS development and to make Windows 95 run on DR-DOS which would help the court case. Following a meeting in September 1996 in Lindon, Utah, USA, between Gross, Ransom H. Love, Bryan Wayne Sparks and Raymond John Noorda, Gross was hired and tasked to set up a new subsidiary in the UK. On 10 September 1996, Caldera announced the coming release of OpenDOS (COD) and their intent to also release the source code to the system, and Caldera UK Ltd. was incorporated on 20 September 1996. Gross hired some of the original developers of the operating system from the Novell EDC as well as some new talents to continue work on the operating system in a converted barn at the periphery of Andover, Hampshire, UK, nearby the former Digital Research and Novell EDC. Besides other improvements and enhancements all over the system, a string of new key features were added subsequently over the course of the next two years, including a TCP/IP stack (derived from LAN WorkPlace for DOS / NetWare Mobile), a graphical 32-bit DOS Protected Mode HTML 3.2 web-browser DR-WebSpyder (originally based on source code from the Arachne web browser by Michal Polák) with LAN and modem dialup, a POSIX Pthreads extension to the multi-tasker by Andy T. Wightman, long filename (LONGNAME) support by Edward N. Hill Jr., as well as LBA and FAT32 support (DRFAT32) by Matthias R. Paul. Gross also hired Andrew Schulman (who had been, with Geoff Chappell, instrumental in identifying the AARD code in 1992) to work as a consultant and, in Andover, assist Paul in his work on "WinGlue", a secret project to create a version of DR-DOS compatible with Windows 95, 98 and 98 SE and replace its MS-DOS 7.xx component. This was demonstrated at CeBIT in March 1998, and later, in a small team, developed into "WinBolt", both versions of DR-DOS, which remained unreleased, but played an important role in the court case.

Caldera UK officially released Caldera OpenDOS 7.01 on 3 February 1997, but this version was just Novell DOS 7 update 10 (as of December 1994) compiled only with the necessary adaptations to incorporate the new name in display messages as well as in environment variables and file names. It was missing a year's worth of patches which had been developed for the Novell DOS updates 11 (January 1995) to 15.2 (January 1996). This was due to parts of the Novell DOS sources having been lost at Novell meanwhile. Consequently, this version still reported an internal BDOS version of 7.2, identical to Novell DOS 7. The new suite also lacked the SETFIFO command, which had been added with one of the Novell DOS updates, as well as Fifth Generation's Search&Destroy virus scanner and FastBack Plus 2.0 utility, which previously came bundled with Novell DOS. Instead it came bundled with a newer version of PNUNPACK and brought a much advanced version of NetWars.

Parts of OpenDOS 7.01 were released as open source in form of the M.R.S. kit (for Machine Readable Sources) in May 1997, but with license terms mostly incompatible with existing open-source licenses. The source was then closed again as Gross felt this would undermine the commercial aspirations of the system.

After beta releases in September and November 1997, the next official release came in December 1997, with the name changed to Caldera DR-OpenDOS 7.02, soon followed by a further release in March 1998, when the DR-DOS name returned as Caldera DR-DOS 7.02, now for the first time written with a hyphen. Version 7.02 (now reporting itself as BDOS 7.3) incorporated improved BIOS and BDOS issues, developed by Paul, adding many new boot and configuration options, integrating many compatibility enhancements, bug-fixes and optimizations for size and speed, and re-implementing all fixes of the missing Novell DOS updates. The BIOS improved the coexistence of DR-DOS with Windows 9x and its support for third-party disk compression drivers such as Microsoft's DriveSpace. It introduced a diagnostics mode (activated by Scroll Lock), integrated debugger support (with DEBUG=ON and a debugger loaded before or from within CONFIG.SYS) and more flexible CONFIG.SYS tracing capabilities via the /// hotkeys and the TRACE and TIMEOUT commands, thereby also improving the integration of alternative command line shells such as 4DOS. Together with LOADER, SYS /DR:ext and the CHAIN directive, it brought enhanced multi-configuration support for DR/D/CONFIG.ext files and came with enhancements to the BASIC-like CONFIG.SYS language for more powerful boot menus, convenient user interaction and programmatical acting upon conditions (CPU386), return codes and error levels (ERROR, ONERROR). It also allowed to change the SCROLLOCK, CAPSLOCK, INSERT and VERIFY settings as well as the SWITCHAR, YESCHAR, NOCHAR and RESUMECHAR characters. Various behavioural details could be controlled with new parameters /Q (Quiet), /L (Lowercase), /Y (Yes) and /S (Switch) for SWITCHES. Further, it provided optional support for a LPT4: device and allowed to configure the built-in COMx: and LPTx: devices as well as to change the PRN: and AUX: defaults. The handling of environment variables in CONFIG.SYS was improved and new load-high facilities included such as the HIFILES/FILESHIGH and HIFCBS/FCBSHIGH options to relocate file handles and FCB structures into UMBs, which typically gave between 1 and 4 KB (and up to 15 KB) more free conventional memory compared to previous versions, or the HISHELL/SHELLHIGH SIZE directive to control the pre-allocation of HMA memory for COMMAND.COM, which helped to avoid memory fragmentation and thereby typically gave between 5 and 8 KB more continuous HMA memory for HMA-capable third-party drivers to work with in conjunction with third-party command line shells, which could not load into the HMA as COMMAND.COM with its /MH option. At a reduced memory footprint version 7.02 also brought an enhanced NLS 4.xx sub-system by Paul to allow multiple, distributed and possibly user-configured COUNTRY.SYS files to be used by the system at the same time in a hierarchical model. This also gave dynamic parser support for MS-DOS/PC DOS COUNTRY.SYS file formats in addition to DR-DOS' own COUNTRY.SYS formats, and it introduced support for the ISO 8601 international date format (including automatic detection) and the then-new Euro currency. Some DR-DOS files such as IBMBIO.COM, IBMDOS.COM and COUNTRY.SYS carried misleading file extensions for compatibility reasons; with DR-DOS 7.02 they were enhanced to incorporate a fat binary-style safety feature devised by Paul so that they would exit gracefully when called inappropriately. DR-DOS 7.02 was fully Year 2000 compliant and provided special support to work with buggy system BIOSes. It also came with an updated FDISK, which could partition and format FAT32 volumes (but not yet work with LBA). The sources of the Novell patches for the external tools and drivers had meanwhile been found in Germany and could thus be retro-fitted into the system as well, so that DR-DOS 7.02 finally not only caught up with Novell DOS 7, but was a true step forward. The release was followed by various updates in June, August and September 1998.

The updated internal BDOS version number introduced a new problem: some legacy third-party applications with special support for Novell DOS, which were no longer being updated, stopped working. SETVER already allowed Novell DOS to disguise itself as DOS versions by file name and globally and, specifying a magic sub-version of 255, it would even disable its own internal BDOS version check in order to cope with programs specifically probing for "DR-DOS". The modified kernel and SETVER driver by Paul would, in an hierarchical model, also support load paths in order to distinguish between multiple executables of the same file name, and it introduced an extended mode, in which SETVER could not only fake DOS versions, but also BDOS kernel versions. Sub-versions of 128 to 255 would be reported as DOS sub-versions 0 to 127 to applications, but with the BDOS version check disabled, while sub-versions 100 to 127 could be used to fake different BDOS versions, whereas the DOS revision number (typically set to 0 in a static, pre-boot patchable data structure) would be taken as the reported sub-version instead, so that SETVER /G /X 6.114 would allow versions of DR-DOS since 7.02 to still report themselves as a "DOS 6.0" and with a faked BDOS version 7.2 (114 decimal = 72 hexadecimal), thereby masquerading as Novell DOS 7 / OpenDOS 7.01.

While otherwise beneficial, the new HIFILES triggered a compatibility problem in the DOS-UP feature of the third-party memory manager QEMM 8, which was hard-wired to expect a chunk of five handle structures in conventional memory under DR-DOS (as with previous versions up to 7.01), whereas version 7.02 by design left eight handles in low memory when loading high files in order to maintain full compatibility with older versions of Windows 3.xx. Compatibility with Windows for Workgroups 3.11 had not been affected by this. A maintenance fix was devised to patch a single byte in IBMBIO.COM in order to switch the behaviour and optionally re-invoke the old chunking. This freed some 150 bytes of conventional memory and enabled full compatibility with DOS-UP, but at the same time broke compatibility with older versions of Windows 3.xx when using the HIFILES feature, and vice versa. The patch named IBMBIO85.SCR continued to work with newer versions of DR-DOS.

In August 1998 the US-based Caldera, Inc. created two new subsidiaries, Caldera Systems, Inc. for the Linux business, and Caldera Thin Clients, Inc. for the embedded and thin-client market.

Another version, DR-DOS 7.03 (still with BDOS 7.3 and reporting itself to applications as "PC DOS 6.0" for compatibility purposes), was pre-released at Christmas 1998 and then officially released on 6 January 1999 by Caldera UK. It came with significantly improved memory managers (in particular enhanced DPMI support in conjunction with the multitasker) and other enhancements, such as added DEVLOAD and DRMOUSE utilities, but a changed OEM label in the boot sector of volumes formatted under DR-DOS could also cause problems under other operating systems (which can be circumvented by NOVOLTRK). DR-DOS 7.03 would become the last version of DR-DOS also tailored for desktop use.

Caldera, Inc. wanted to relocate the DR-DOS business into the US and closed the highly successful UK operation in February 1999 after Gross resigned and set up iCentrix to develop the MarioNet split web browser. Development was then moved into the US (which never worked out due to a total lack of expertise in this field at Caldera US), and the DR-DOS line fell to its branch company, Caldera Thin Clients, which was renamed Lineo, Inc. on 20 July 1999. DR-WebSpyder was renamed Embrowser and was said to be ported to Linux. Lineo re-released DR-DOS 7.03 in June and September 1999, still branded as "Caldera DR-DOS" and without any changes, but otherwise focussed on Linux for embedded systems, based on a stripped-down version of OpenLinux named Embedix.

Among the latest and independently developed versions of DR-DOS were OEM DR-DOS 7.04 (as of 19 August 1999) and 7.05 (as of 30 November 1999), still branded as "Caldera DR-DOS". These were variants of the system consisting only of the kernel and command shell. With a specialized native implementation of FAT32 and large hard disk support they could be found bundled with Ontrack's Easy Recovery 5 in 2000, replacing the dynamically loadable DRFAT32 redirector driver, which still came with Easy Recovery 4. They were also used for Seagate Technology's SeaTools and the CD imaging software Nero Burning ROM. While still reporting a BDOS 7.3 internally, these were the first versions to report themselves as "PC DOS 7.10" to applications in order to indicate integrated FAT32 support. Designed to be mostly backwards-compatible, the DR-DOS 7.04/7.05 IBMBIO.COM could be combined with the DR-DOS 7.03 IBMDOS.COM in order to give the desktop-approved DR-DOS 7.03 kernel LBA capabilities and work with drives larger than 8 GB. For specific OEM requirements, DR-DOS 7.06 (as of 14 December 1999) by Wightman combined the kernel files into a single binary executable, so that, similar to IO.SYS of Windows 98, it could be booted by MS-DOS 7.10 boot sectors (but no longer by DR-DOS boot sectors). DR-DOS 7.07 (with BDOS 7.4/7.7) by Paul introduced new bootstrap loaders and updated disk tools in order to combine support for CHS and LBA disk access, the FAT12, FAT16 and FAT32 file systems, and the differing bootstrapping conventions of DR-DOS, PC DOS, MS-DOS, Windows, REAL/32 and LOADER into a single NEWLDR MBR and boot sector, so that the code would continue to load any version of DR-DOS down to 3.31 (and since DR-DOS 7.04 also with FAT32 support), but could also be used to launch the PC DOS or MS-DOS system files, including those of Windows 9x and PC DOS 7.10. At the same time the kernel could not only be booted by the new sectors, but also by any previously DR-DOS formatted disks, as well as off disks with existing PC DOS or MS-DOS boot sectors and a variety of other boot-loaders, thereby easing the coexistence and setup of multi-boot scenarios in conjunction with other operating systems.

Later versions

In 2002, Lineo was bought out, and some of Lineo's former managers purchased the name and formed a new company, DRDOS, Inc. dba DeviceLogics L.L.C. They have continued to sell DR-DOS for use in embedded systems. DR-DOS 8.0 was released on 30 March 2004 featuring FAT32 and large disk support, the ability to boot from ROM or Flash, multitasking and a DPMI memory manager. This version was based on the kernel from version 7.03.

The company later released DR-DOS 8.1 (with better FAT32 support) in autumn 2005. This version was instead based on OpenDOS 7.01.xx. DR-DOS 8.1 was withdrawn for GPL violations (see Controversies).

Aside from selling copies of the operating system, the DRDOS, Inc. website lists a buyout option for DR-DOS; the asking price is .

The OpenDOS 7.01 source code was a base for The DR-DOS/OpenDOS Enhancement Project, set up in July 2002 in an attempt to bring the functionality of DR-DOS up to parity with modern PC non-Windows operating systems. The project's added native support for large disks (LBA) and the FAT32 file system, and several other enhancements, including improved memory management and support for the new FAT32+ file system extension which allows files of up to 256 GB in size on normal FAT partitions. DR-DOS 7.01.08 was released on 21 July 2011.

Controversies

In October 2005, it was discovered that DR-DOS 8.1 included several utilities from FreeDOS as well as other sources, and that the kernel was an outdated version of the Enhanced DR-DOS kernel. DR DOS, Inc. failed to comply with the GNU General Public License (GPL) by not crediting the FreeDOS utilities to their authors and including the source code. After complaints from FreeDOS developers (including the suggestion to provide the source code, and hence comply with the GPL), DR DOS, Inc. instead withdrew version 8.1, and also the unaffected 8.0, from its website.

Commands

APPEND, ASSIGN, BATCH, DBG, DELQ, ERA, ERAQ, MORE and SUBST have been among the internal commands supported since DR DOS 3.31. DR DOS 5.0 removed BATCH and added HILOAD. GOSUB, IDLE, RETURN and SWITCH were added as internal commands with DR DOS 6.0. ASSIGN and SUBST were changed to become external commands with DR DOS 6.0. ECHOERR and PAUSEERR existed as internal commands in DR DOS 6.0 (and in Multiuser DOS), but were not normally enabled. MORE remained an internal command up to including PalmDOS, but was changed to an external command with Novell DOS 7. DBG was removed with Novell DOS 7, LOADHIGH, LH and TRUENAME were added as internal commands. APPEND was still an internal command in DR DOS 6.0, but was changed to an external command with Novell DOS 7.

Internal commands

The following list of internal commands is supported by DR DOS 6.0:

Batch processing subcommands

Batch processing subcommands of DR DOS 6.0 include:

External commands

DR DOS 6.0 supports the following external commands:

See also

Further reading

External links