DOS Plus was the first operating system developed by Digital Research's OEM Support Group in Newbury, Berkshire, UK, first released in 1985. DOS Plus 1.0 was based on CP/M-86 Plus combined with the PCMODE emulator from Concurrent PC DOS 4.11. While CP/M-86 Plus and Concurrent DOS 4.1 still had been developed in the United States, Concurrent PC DOS 4.11 was an internationalized and bug-fixed version brought forward by Digital Research UK. Later DOS Plus 2.x issues were based on Concurrent PC DOS 5.0 instead. In the broader picture, DOS Plus can be seen as an intermediate step between Concurrent CP/M-86 and DR DOS. DOS Plus is able to run programs written for either CP/M-86 or MS-DOS 2.11, and can read and write the floppy formats used by both of these systems. Up to four CP/M-86 programs can be multitasked, but only one DOS program can be run at a time.
User interface
DOS Plus attempts to present the same command-line interface as MS-DOS. Like MS-DOS, it has a command-line interpreter called COMMAND.COM. There is an AUTOEXEC.BAT file, but no CONFIG.SYS. The major difference the user will notice is that the bottom line of the screen contains status information similar to: DDT86 ALARM UK8 PRN=LPT1 Num 10:17:30 The left-hand side of the status bar shows running processes. The leftmost one will be visible on the screen; the others are running in the background. The right-hand side shows the keyboard layout in use, the printer port assignment, the keyboard Caps Lock and Num Lock status, and the current time. If a DOS program is running, the status line is not shown. DOS programs cannot be run in the background. The keyboard layout in use can be changed by pressing, and one of the function keys -.
Commands
DOS Plus contains a number of extra commands to support its multitasking features:
ADDMEM: Sets the amount of extra memory to allocate to EXE programs.
SLICE: Sets the amount of processor time to give to the foreground program. See also the %$SLICE% environment variable.
USER: Sets the user number to use when accessing CP/M media.
It also contains subsets of the standard DOS commands and CP/M commands – for example, it has both a built-in COPY command, and a PIP utility, both of which copy files. The CD command can assign one of the three drives N:, O: or P: to a directory on a different drive, in a similar manner to the MS-DOS command SUBST. For example, CD N:=C:\DATA\ACCOUNTS will cause the directory C:\DATA\ACCOUNTS to appear as drive N:. This so-called floating drive feature allows old programs which don't support subdirectories to work under DOS Plus and can be used to make file handling at the command prompt much easier. This feature is also present in Concurrent DOS, Multiuser DOS, System Manager 7, and REAL/32, however, these systems extend the concept to all unused drive letters from A: to Z:, except for drive letter L:. DR DOS 3.31 - 6.0 also support this. Under the later systems, the 4DOS/NDOS command processor supports this features as well. Floating drives are implemented in the BDOSkernel, not in the command line shell, thus this feature can also be used from within DOS applications when entering directory paths for as long as the application does not parse and split the dirspec for further processing. Using a similar feature, Concurrent DOS, Multiuser DOS, System Manager and REAL/32 will dynamically assign a floating drive L: to the load path of a loaded application, thereby allowing applications to refer to files residing in their load directory under a standardized drive letter instead of under a fixed absolute path. This load drive feature makes it much easier to move software installations on and across disks without having to adapt paths to overlays, configuration files or user data stored in the load directory or subsequent directories. Another feature resulting from the BDOS' internal organization of current working directories as relative links to parent directories is the theoretically unlimited directory depth supported by all those above mentioned operating systems – in contrast to MS-DOS/PC DOS, where an MS-DOS compatible internal data structure named Current Directory Structure limits directory depths to a maximum of 66 characters. These features can be attributed to the fact that CP/M itself did not have a concept of subdirectories, and DOS was emulated under these operating systems, so directories had to be translated to internal CP/M structures in some intelligent way.
Internal structure
DOS Plus boots from a single file called either DOSPLUS.SYS or NETPLUS.SYS. This file is in the CP/M-86 CMD format, and is structured internally as a number of modules:
The DOS emulator, which converts each MS-DOS function call into one or more CP/M calls. In the case of a request to change the current directory, for example, this would translate to a series of 'open directory' calls, one for each directory in the path.
A stub which loads COMMAND.COM when required. This stub contains the string "OS=CPCDOS", suggesting that it is based on the Concurrent PC DOS codebase.