# MP/M

MP/M (Multi-Programming Monitor Control Program) is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each using a separate terminal.
MP/M was a fairly advanced operating system for its era, at least on microcomputers. It included a priority-scheduled multitasking kernel (before such a name was used, the kernel was referred to as the nucleus) with memory protection, concurrent input/output (XIOS) and support for spooling and queueing. It also allowed for each user to run multiple programs, and switch between them.

## MP/M platforms
### MP/M-80

The 8-bit system required a 8080 (or Z80) CPU and a minimum of 32 KB of RAM to run, but this left little memory for user applications. In order to support reasonable setups, MP/M allowed for memory to be switched in and out of the machine's "real memory" area. So for instance a program might be loaded into a "bank" of RAM that was not addressable by the CPU, and when it was time for the program to run that bank of RAM would be "switched" to appear in low memory (typically the lower 32 or 48 KB) and thus become visible to the OS. This technique, known as bank switching was subsequently added to the single user version of CP/M with version 3.0.
One of the primary uses of MP/M, perhaps to the surprise of DRI, was as a "power user" version of CP/M for a single user. The ability to run several programs at the same time and address large amounts of memory made the system worth the extra price.
MP/M II 2.0 added file sharing capabilities in 1981, MP/M II 2.1 came with extended file locking in January 1982.
Versions:
* MP/M 1.0 (1979)
* MP/M 1.1 (January 1980)
* MP/M II 2.0 (July 1981, added: file sharing)
* MP/M II 2.1 (January 1982, added: extended file locking)

### MP/M-86

Like CP/M, MP/M was eventually ported to the 16-bit Intel 8086, and appeared as MP/M-86 2.0 in September 1981. Main developers of the system include Francis "Frank" R. Holsworth, later a director of marketing at Digital Research. Known revisions of MP/M-86 2.0 were dated 25 September 1981 and 5 October 1981. There also was an MP/M-86 2.1 dated 20 July 1982.
MP/M-86 2.1 absorbed some of the technology of CP/M-86 1.1 (BDOS 2.2) to become Concurrent CP/M-86 3.0 (BDOS 3.0) in late 1982, which also added support for "virtual screens". Kathryn Strutynski, the project manager for CP/M-86, continued as project manager for Concurrent CP/M-86. In December 1983, a DOS emulator named PC-MODE became available as an optional module for Concurrent CP/M-86 3.1 (BDOS 3.1), shipping on 21 February 1984, and the system was further developed into the MS-DOS compatible Concurrent DOS (BDOS 3.1 and higher). This in turn continued to evolve into FlexOS and Multiuser DOS and as such is still in use in some industrial applications.
Concurrent CP/M is often abbreviated CCP/M.

### MP/M 8-16

MP/M 8-16 (sometimes also referred to as MP/M-8/16) was CompuPro's name for a combination of the multi-user 16-bit MP/M-86 to perform single-user, single-stream CP/M functions, along with multi-user, multi-tasking 8-bit MP/M operations running on the multi-processor CompuPro System 816 [sr]. Later on, this system was also able to run Concurrent DOS 3.1.

### MP/M-286

In 1982, Digital Research announced plans to develop MP/M-286 to take advantage of the 16-bit Intel 80286's new memory management and protection features to run existing MP/M-86 and CP/M-86 applications. This was apparently never published "as is", but was further developed into Concurrent CP/M-286, which seems to have formed the basis for the later Concurrent DOS 286 in 1985 and FlexOS 286 in 1986.

## Commands

The following list of commands are supported by the MP/M II Console Command Processor CCP:
* ABORT
* ATTACH
* ASM
* CONSOLE
* DDT
* DIR
* DSKRESET
* DUMP
* ED
* ERA
* ERAQ
* GENHEX
* GENMOD
* GENSYS
* LIB
* LINK
* LOAD
* MPMLDR
* MPMSTAT
* PIP
* PRINTER
* PRLCOM
* RDT
* REN
* RMAC
* SCHED
* SDIR
* SET
* SHOW
* SPOOL
* STAT
* STOPSPL
* SUBMIT
* TOD
* TYPE
* USER
* XREF

## CP/NET, CP/NOS, MP/NET and MP/NOS

In the early 1980s Digital Research also developed networking software named CP/NET used to connect an MP/M server with multiple CP/NET clients (named requesters) running CP/M. It was originally developed by Tom Rolander.
MP/NET was an MP/M system with networking allowing the MP/M system to function as both requester and server with CP/M requesters.
The CP/NET clients could also be run in a diskless configuration with the system stored in ROM, then named CP/NOS (with NOS for Network Operating System). Similar, MP/NOS contained MP/M without local disk facilities. Like CP/NOS, MP/NOS performed the disk functions through the network.
The system allowed to share files and printers and send electronic messages.
* NIOS – Network I/O System
* SNIOS – Slave Network I/O System
* NDOS – Network Disk Operating System
CP/NET existed in versions 1.0, 1.1 and 1.2 in versions for 8080 and Z80 processors. CP/NET-86 for 8086 was available as well.
Later incarnations were DR Net and FlexNet.

## Legacy

Caldera permitted the redistribution and modification of all original Digital Research files, including source code, related to the CP/M and MP/M families through Tim Olmstead's "The Unofficial CP/M Web site" since 1997. After Olmstead's death on 12 September 2001, the free distribution license was refreshed and expanded by Lineo, who had meanwhile become the owner of those Digital Research assets, on 19 October 2001.