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

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.

MP/M

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

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.

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 . 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.