It 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 these systems. Up to four CP/M-86 programs can be multitasked, but only one DOS program can be run at a time.
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 (except for FIDDLOAD, an extension to load some field-installable device drivers in some versions of DOS Plus 2.1). 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 (if any) are running in the background. The right-hand side shows the keyboard layout in use (UK8 in the above example), 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.
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.
- ALARM: A message alarm clock.
- BACKG: Allows background processes to be listed and stopped.
- COMSIZE: Sets the amount of memory to allocate to COM programs.
- PRINT: Print spooler.
- SLICE: Sets the amount of processor time to give to the foreground program.
- USER: Sets the user number to use when accessing CP/M media.
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 extent the concept to all unused drive letters from A: to Z:, except for drive letter L:. DR DOS 3.31 - 6.0 (up to the 1992-11 updates with BDOS 6.7 only) also support this (including drive letter L:). Under the later systems, the 4DOS/NDOS command processor supports this features as well. Interestingly, floating drives are implemented in the BDOS kernel, 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. (For similar reasons, the appendage to the environment block associated with loaded applications under MS-DOS/PC DOS 3.0 (and higher) contains a reference to the load path of the executable, however, this consumes more resident memory, and to take advantage of it, support for it must be coded into the executable, whereas DRI's solutions transparently works with any kind of application.)
Another interesting 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 (and DR DOS since 1992), where an MS-DOS compatible internal data structure named Current Directory Structure (CDS) 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.
DOS Plus boots from a single file called DOSPLUS.SYS (rather than the IO.SYS / MSDOS.SYS combination of MS-DOS). This file is in the CP/M-86 CMD format, and is structured internally as a number of modules:
- The BDOS basic disk operating system kernel, which handles multitasking and implements the CP/M API.
- The XIOS extended input/output system, which is the machine-dependent component that performs low-level disc and character I/O.
- 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.
Computers that used DOS Plus
DOS Plus was the main operating system in ROM for the Philips :YES. PC compatible versions were supplied with the Amstrad PC1512 and the T.R.A.N. Yasmin Turbo. The non-IBM PC compatible BBC Master 512, and its successor, the Solidisk's PC Plus, also came with DOS Plus. There were DOS Plus 2.1e/g adaptations for the Apricot ACT series' non-standard 315 KB and 720 KB FAT12 floppy formats. The logical sectored FAT hard disk format (partition type 0xF2) of Sperry IT PCs, and the 80186 co-processor boards for the Acorn Archimedes A300 and A310 as well as Acorn 286 prototypes were supported as well.
- Gilmour, Jean (1986) Amstrad Personal Computer PC1512 User Instructions
- Morris, Stephen (1986) DIGITAL RESEARCH BOOKS - GLENTOP PUBLISHERS LTD, Using DOS Plus on the Amstrad PC, ISBN 1 85181 0633