DOS Plus (erroneously also known as DOS+) 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 US, 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 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 (alternative name
DOSPLUS.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. See also the %$SLICE% environment variable.
- 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 either DOSPLUS.SYS or NETPLUS.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.
- In the case of NETPLUS.SYS with DR-NET support.
- The DOS emulator (internally named PCMODE), 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 (or DOSPLUS.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, for which it was originally developed. 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.
Known operating system versions include:
- DOS Plus 1.? (ROMed in Philips :YES) (with BDOS 4.1)
- DOS Plus 1.1 (with BDOS 4.1)
- DOS Plus 1.2 (with BDOS 4.1)
- DOS Plus 2.1 (with BDOS 5.0)
- Wein, Joe (2010-02-19) [November 2009]. Johnson, Herbert R., ed. "DRI History and Joe Wein". Archived from the original on 2017-01-17. Retrieved 2017-01-17.
- Paul, Matthias (2002-02-20). "How to detect FreeCOM/FreeDOS in-batch?". freedos-dev mailing list. Retrieved 2014-08-06.
- Paul, Matthias (1997-07-30) . NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds (e-book). MPDOSTIP (in German) (3, release 157 ed.). Archived from the original on 2016-11-04. Retrieved 2014-08-06. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger
MPDOSTIP.ZIPcollection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the
- :Yes product management (1985), README file for :YES Release 2 - DOS Plus 1.1 maintenance version (README.DOS file on maintenance disk), Philips Austria,
This file contains additional information on the use of DOS Plus 1.1 on the :YES Rel 1 and :YES Rel 2.