CP / M ( Control Program for abbreviation for Microprocessors ) is a series of operating systems that have been developed from about 1974 by Digital Research Inc. under Gary Kildall. CP / M was (besides designed for powerful computers Unix) the first platform-independent operating system. A multi-user version was developed under the name MP / M. With the advent of MS- DOS CP / M lost its meaning.

CP / M without further designation is usually for CP/M-80, the original, developed from 1974 version for the microprocessors Intel 8080 and Zilog Z80. The latest version of CP/M-80 was called CP / M-Plus. CP/M-86 was a port on the processors Intel 8086/8088. With CP/M-68K was followed by a less successful version for the Motorola 68000th

The acronym CP / M originally meant Control Program / ​​Monitor (English for Control Program / ​​supervisor ), but was later reinterpreted as Control Program for Microcomputers.

  • 8.1 documents
  • 8.2 Literature
  • 8.3 External links


The lowest level of CP / M forms as a hardware abstraction layer is the Basic Input Output System (BIOS), which provides a standard interface for hardware-related tasks are available, especially for input and output. Only this part of the operating system had to be adapted to the type of computer, which is usually done by the manufacturer. The remaining parts could be adopted without major changes as they build only on the functions of the CP / M BIOS.

The standard functions of the BIOS used by the actual system kernel, the hardware independent BDOS ( Basic Disk Operating System ), the " higher" functions available, especially for file management. This accesses the hardware indirectly through the BIOS allowing the hardware independence is realized.

The BDOS in turn is used by the CCP ( Console Command Processor), a command line interpreter that accepts commands from the user. Some simple commands to be executed by the CCP itself ( examples: dir Show ( Disc Index), rename ( rename file [ s ] ) and others). Otherwise, a program is with a name ending in. Com ( at CP/M-68k .68 k) loaded and started. Examples: pip.com ( copy program ), stat.com ( information about different system settings ), etc.

Application programs communicate with the hardware usually only on the constant BDOS as well as the standardized entry points of the BIOS - and are, therefore, portable. However, the application programs for CP / M of speed and memory space, are often written in assembly and were rarely published in the source code, so that portability was the case in practice only within a processor family. The assembler source code of CP / M was included along with the assembler program asm.com. Thus, the operating system could be modified and extended in assembler. However, CP / M was not an "open source" in the modern sense, since the passing of modified versions was not allowed.

The structure of CP / M was later adopted by MS- DOS: Here the parts described above ( boot files ) instead of BIOS IO.SYS, MSDOS.SYS hot now instead BDOS and ( the command interpreter ) COMMAND.COM instead of CCP. Ever the first version of MS- DOS leaned very heavily on CP / M, the main change was the improved FAT file system.


A weak point of CP / M was that there was no uniform format for floppy disks 5 ¼ "floppy. The only " official" (IBM industry standard ) format was an 8 "format, so that after the extensive disappearance of the unwieldy 8 " drives the exchange of disks between CP / M computers of different manufacturers was very difficult to impossible. The screen and printer control was in CP / M systems are not uniform (CP / M was originally developed for screen loose, Telegraph -based Systems ( TTY) ), which is why you prior to the first use of a commercial program that often the screen used and share printer needed - and hope that the program the corresponding models also knew. Later systems running CP / M ran, often emulated widespread types of screens, so that as much software could be used unaltered it. For application programs, it was customary in a configuration program (setup ) select the computer you are using; the models most frequently used were executed there. For exotics, however, the user had to try the manual and to find out which control characters such as " Clear screen " or cursor positioning were necessary. In such cases, usually a patch in the application program using a debugger was required.

On the other hand, this was only a consequence of the flexibility of CP / M: It laid as hardware only the processor and a minimum memory size. This issue could very different computers home computers such as the CPC 664 to computers such as the Epson QX 10 run with 256 kB RAM. The manufacturers only had to adapt in its CP / M version of the BIOS portion of the hardware used.

With the rapid decline in memory prices from around 1981, the limit of 64 kilobytes directly usable memory was a problem - was to blame here but not CP / M itself, but the 8 -bit processors on which it was used mainly. The poor suitability for hard drives slowed CP / M from around 1982 increasingly. The main problem was the inability of CP/M-80 to use subdirectories, which is almost essential for larger volumes. CP / M's own subdivision concept for media by so-called " user numbers" was too limited because it allowed only 16 spaces and no hierarchical structure. However, MS- DOS was this ability only in the year 1983.

For hard disks we used this user numbers to manage with the USER command multiple areas on a disk and display only the data that belong to the respective user.

CP / M-Plus

In 1983 with CP / M Plus ( 3.0) the last version of the classic 8080er-CP/Ms, which now means Bankswitching also supported more than 64 kB of memory. In addition, with the CP / M-Plus, a number of tasks that previously had to do the vendor-specific BIOS, transferred to vendor-independent BDOS and thus further simplify the porting. Especially needed the code technically not very simple and therefore error-prone conversion between the fundamental with the CP / M data block size of 128 bytes and block size actually used by the hardware, almost always larger in the newer floppy and hard disk formats, no longer in the BIOS from any manufacturer reimplemented to be, but was now held in BDOS. However, this CP / M version was also slower and consumed more memory for itself is this version thanks to the Commodore 128 and the Schneider / Amstrad CPC 6128, at which it was delivered, the best-selling worldwide, but was what the actual usage is concerned, no longer build on the popularity of smaller and faster CP / M 2.2.

CP / M 3.0 could also be an extension called Graphics System Extension ( GSX, see Graphical Kernel System ), which eliminated the problem that the printer and the screen can be controlled differ depending on the manufacturer. It was an additional interface for text and graphics output (among bar and pie charts ) are available. GSX used to printer drivers that had to provide the manufacturer of the printer.

Typical hardware

Typical computer from the early 1980s on which CP / M was used, had a Zilog Z80 processor ( backwards compatible with the Intel 8080 ) with 2 to 4 MHz, 64 or 128 kB RAM, a monochrome screen, the 80 × 24 characters text (but not graphics) could represent one or two floppy drives with 8 -inch or 5 ¼ -inch floppy disks, possibly a hard drive with about 5 MB.

CP / M was also used by many DIY enthusiasts on their home-built computers. Dominated in the early days still S-100 bus systems, such as the IMSAI so were known commercial CP / M computers in the later years of the Osborne 1 and the Kaypro models; on the Apple II CP / M was frequently used means of an additional Z80 processor card: Apple CP / M.

Even on many home computers CP / M could be used, for example in the Schneider / Amstrad CPC, the Commodore 3032 and 4032 ( PET successor ), Commodore 64 ( with optional module ) and the Commodore 128; in practice it was on these but rarely used, because they also brought with them each still has its own operating system that was better matched to the particular hardware and thus was better suited especially for graphical computer games.

Also, the Amstrad PCW 8256/8512 - sold in Germany as " Joyce Schneider " - had next to marketing reasons konzipiertem as a combined operating and text processing system LocoScript as a second, independent of which operating system CP / M on board. PC equipped with a Zilog Z80 CPU 4 MHz, and 256 or 512 kilobytes of memory. Launched CP / M operating system was in this configuration on three " memory banks " distributed at 64 kilobytes, with a shared "common " area from address HxC000 (eg kernel in bank 1, keyboard and monitor in bank 0, printers in bank 2 ). These versions were recognizable to the file name *. EMS.

Ports of CP / M

CP / M in the GDR

In the GDR, CP / M was under the name SCP for U880 ( Z80 ) and SCP86 for 8086 hardware for data acquisition equipment and office computer (at that time the manufacturer Robotron ) is used. When radio and television industry sales ( Kombinat / BT Erfurt) existed, for example, a complete invoicing (hardware Z80 / 64 kB / 4 x floppy LW 800 kB), which could manage about 15,000 items. Later came with OS / M in the GDR a CP / M- compatible operating system. The small computer KC 85 could be extended with an essay by 5 ¼ " floppy drives and so also run CP / M, which was used in the variant MicroDOS. Within the Academy of Sciences of the GDR (such as PC 1715, A 5110 / A 5120 / A 5130 ) was in the 1980 for the computer based on the Z80/U880-Prozessoren the operating system CP / O used. It had over CP / M and SCP the advantage that, for example, 5 ¼ "floppy disks could be used with the full storage capacity of 800 kB for data, while CP / M allowed only 720 kB data and 80 kB reserved for the system. The CP / A system was probably the first open-source system in the world, because the entire source code of the system and the assembler typically included in the delivery. From VEB Mansfeld Kombinat for their office computer MPC Series 1-4 CP / M versions have been developed under the name of SCP / M 2. At Carl Zeiss Jena, the "CP / Z" system was developed, which had very little, but very efficient code. There was a lively exchange of software between the GDR firms as copyright infringement by foreign companies were not persecuted in the GDR. Only now and then at international trade fairs, there were surprises. The company Ashton- Tate made ​​after the end of the GDR all dBase users offer you cheaper ...


In addition to the 8080/Z80-Version of CP / M became known for CP/M-86 practical significance, a CP / M version for 8086 - and 8088 - Intel CPUs.

CP/M-86 was from January 1982 onwards a fair chance to become the standard operating system of the IBM PC, the first personal computer by IBM. Under today disputed circumstances CP / M but got a competitor: MS- DOS from Microsoft. Although IBM initially the customer left the choice of operating system to MS -DOS sat - which was called PC-DOS in the delivered version of IBM - due to its lower price of $ 40 rather quickly against the much more expensive CP/M-86 by, especially since application programmer software initially developed for both platforms. MS- DOS is a development of 86- DOS from Seattle Computer Products, which was conceptually very similar to CP/M-80 (see also MS -DOS). After Microsoft had made ​​several months adaptations to the IBM PC hardware, it finally bought the rights to QDOS, which had in the meantime been renamed 86- DOS shortly before his imagination.

1988, a highly advanced, fully MS- DOS - compatible version of CP/M-86 was released as DR -DOS and Microsoft made ​​again some years serious competition. When DR- DOS was preparing to be pulled even with system vendors as a serious alternative to MS- DOS into consideration, made ​​an error in a preliminary version of the graphical operating system Windows 3.0 essay under DR- DOS for uncertainty. Although Windows ran smoothly under DR- DOS after clicking away the error message came up doubts about the full compatibility of DR- DOS to MS -DOS. From this reputation is DR- DOS could never rid correct. There is strong evidence that Microsoft had built this error on purpose to give the impression of not full compatibility between DR- DOS and MS- DOS for its customers. In a later court case was the speech that finished this assumption of an expert opinion. Since the trial ended in a settlement, a debt Microsoft but was never observed in court.


The porting to the Motorola 68000, CP/M-68k called, was himself not a big commercial success, but became the basis for TOS, the operating system of the Atari ST.


Stock CP / M back three monolithic blocks, as existed in TurboDOS a highly modular, compatible system that had multitasking and multiprocessing capabilities.

MP / M

MP / M was a multi-user system version ( " multiuser system" ) of CP / M. Multiple users could simultaneously work on ASCII terminals to a computer.


A formed in the late 80's operating system extension for communication between CP / M systems was called CP / NET. The server used was an MP / M system on the clients ran CP / NET. The clients could also be run diskless. In addition to the sharing of file systems, electronic messaging were implemented.


Later, a new variant of Concurrent CP / M ( CCP/M-86 ) was developed from CP/M-86 and MP/M-86. This combined multi-user capabilities of MP / M with high compatibility with CP/M-86.

Software for CP / M

Under CP / M application programs were offered as word processors Electric Pencil and WordStar ( MicroPro of ), the use of spreadsheets SuperCalc and Microsoft Multiplan and database software dBASE II ( Ashton - Tate ). An integrated office solution, with the possibility of easy data transfer eg from the database into the text processing, there was not yet under CP / M. However, the former file formats were still quite simple, so that in most cases a manual takeover was possible, or it had to be written your own little program for it.

In addition to the application programs, the focus of software for CP / M was programming for the creation of specific programs. Are worth mentioning here MBASIC Microsoft, Borland Turbo Pascal, PL / I, and muLISP COMAL. The Language of Digital Research even offered PL / M, a low-level programming language with similarities to PL / I, was also used internally much in DR; the similarity to the name of the operating system is therefore not random. Some of the CP / M supplied as a standard aid programs were written in this language. The later so dominant language C was under CP / M still fairly insignificant, accordingly there are few compiler for that language running under CP / M - for example, BDS C. With Aztec C the lifetime of CP / M was towards the end of a useful compiler available.

There were also quite industrial software (eg Step5 Siemens ), which had been ported only to CP/M-86, but not on MS -DOS.

There were also quite a large collection of public domain programs for CP / M, which have been compiled, for example, user associations and private mini distributors on numbered disks. In this area there are also computer games that never played a role in the field of commercial CP / M software. Many of these collections have been re-released later on CD- ROM or for download on the Internet. A CD- ROM can hold easily ten thousand or more of the tiny by today's standards CP / M programs.


In the transition from 8 -bit processors (such as the Z80 ) of 16- bit machines (such as 68000 ) in the mid 1980s there was initially a great lack of application programs for the new, more powerful hardware. It therefore software emulations have been developed that nachbildeten CP / M and a Z80 CPU virtually on a 16 -bit system, so existing applications and application data (such as a dBase II database ) could be used on the new system. An example of such an emulation is delivered free of charge by Atari, with its then-new 16 -bit computers of the ST series emulator CPMZ80.