Zum Inhalt springen

„CP/M“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
neue Textgliederung, neue Einleitung
CP/M-86: MS-DOS bzw. 86-DOS ist ein komplett neu geschriebenes Betriebssystem, das zwar CP/M-Kompatibilität aufweist, aber doch wohl kaum "bitweise". CP/M-Programme mussten für MS-DOS neu kompiliert werden und teils auch geringfügig angepasst. CP/M war damals ein 8-Bit-Betriebssystem für dem Intel 8080, MS-DOS für den 16-Bit 8086/8088. Zusätzlich: Kaufkraft dynamisch, allerdings nicht in Euro
 
(359 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
{{Infobox Betriebssystem
{{Inuse}}
| Name = CP/M
| Screenshot = [[Datei:CPM-86.png|280px|Bildschirmkopie]]
| Beschreibung = CP/M-86
| Entwickler = [[Digital Research|Digital Research Inc.]]
| Sprache = [[Englische Sprache|Englisch]]
| Erscheinungsdatum = 1974
| Version = 3.1 bzw. 1.2 (CP/M-68k)
| Freigabedatum = 1983
| Quelle =
| Installationsmedium = [[Diskette]]n
| Stammbaum =
| Kernel = [[BDOS]]: [[Monolithischer Kernel|monolithisch]] ([[Assemblersprache|Assembler]])
| Architekturen = [[Intel 8080]]/[[Intel 8085|8085]], [[Zilog Z80]],<br />[[Intel 8086]]/[[Intel 8087|8087]]/[[Intel 8088|8088]] und [[Motorola 68000]]
| Lizenz = [[Public Domain]] (seit 7. Juli 2022)
| Sonstiges =
| Website =
}}


'''CP/M''' ist eine Reihe von [[Betriebssystem]]en, die ab etwa [[1974]] von [[Digital Research|Digital Research Inc.]] unter [[Gary Kildall]] entwickelt wurden. CP/M war (neben dem für leistungsstärkere Rechner konzipierten [[Unix]]) das erste [[Plattformunabhängigkeit|plattformunabhängige]] Betriebssystem. Mit dem Aufkommen von [[MS-DOS]] verlor CP/M seine Bedeutung.
'''CP/M''' (Abkürzung für ''Control Program for Microcomputers'', „Steuerprogramm für Mikrocomputer“) ist eine Reihe von [[Betriebssystem]]en, die ab etwa 1974 von [[Digital Research]] unter [[Gary Kildall]] entwickelt wurden. CP/M war (neben dem für leistungsstärkere Rechner konzipierten [[Unix]]) das erste [[Plattformunabhängigkeit|plattformunabhängige]] Betriebssystem. Eine [[Mehrbenutzersystem|Mehrbenutzer]]-Variante wurde unter dem Namen „MP/M“ entwickelt. Mit dem Aufkommen von [[MS-DOS]] bzw. dessen [[IBM]]-Variante [[PC&nbsp;DOS]] verlor CP/M seine Bedeutung.


CP/M ohne nähere Bezeichnung steht meist für '''CP/M-80''', die ursprüngliche, ab [[1974]] entwickelte Version für die [[Mikroprozessor]]en [[Intel 8080]] und [[Zilog Z80]].Später folgte mit '''CP/M-86''' eine [[Portierung]] auf die Prozessoren [[Intel 8086]]/[[Intel 8088|8088]]. '''CP/M-68K''' war eine wenig erfolgreiche Version für den [[Motorola 68000]].
CP/M ohne nähere Bezeichnung steht meist für „CP/M-80“, die ursprüngliche, ab 1974 entwickelte Version für die [[Mikroprozessor]]en [[Intel 8080]] und den dazu kompatiblen [[Zilog Z80]], eine [[8-Bit-Architektur]]. Die letzte Version von CP/M-80 wurde „CP/M-Plus“ genannt. „CP/M-86“ war eine [[Portierung (Software)|Portierung]] auf die Prozessoren [[Intel 8086|Intel&nbsp;8086]] und [[Intel 8088|8088]], eine [[16-Bit-Architektur]]. Mit „CP/M-68K“ folgte eine weniger erfolgreiche Variante für den [[Motorola 68000]] (ebenfalls 16 Bit).


Das [[Akronym]] CP/M bedeutete ursprünglich ''Control Program/Monitor'' (d.h. Steuerungsprogramm/[[Maschinensprachemonitor|Monitor]]), wurde später jedoch als ''Control Program for Microcomputers'' [[Backronym|umgedeutet]].
Die Abkürzung CP/M stand ursprünglich für ''Control Program/Monitor'' („Steuerprogramm/[[Maschinencode-Monitor]]). Das ursprüngliche Akronym wurde später in ''Control Program for Microcomputers'' umgedeutet.


== Aufbau ==
== Aufbau ==
[[Datei:CPM-Manual.jpg|mini|hochkant|CP/M-Betriebssystem-Handbuch, 1982]]
Den Kern von CP/M bildet das '''[[BIOS]]''' (Basic Input/Output System), mit hardwarenahen Aufgaben, vor allem zur Ein- und Ausgabe. Lediglich dieser Teil des Betriebssystems muss an den jeweiligen Computertyp angepasst werden, was normalerweise durch den Hersteller geschah.
Die Entwicklung des Betriebssystems geschah zeitgleich mit Kildalls Arbeit bei [[Intel]]. Er nutzte die ebenfalls von ihm entworfene Programmiersprache [[PL/I|PL/M]] sowie das Betriebssystem [[ISIS (Betriebssystem)|ISIS]], an dem er gerade mitarbeitete, mit welchem sich CP/M die Befehle und grundlegende Funktionsweisen teilt.<ref>{{Internetquelle |autor=Herb Johnson |url=http://www.retrotechnology.com/dri/isis.html |titel=ISIS, Osiris, Intellec, PL/M, iRMX, and Intel - 20th century |datum=2021-07-30 |abruf=2022-01-10}}</ref>
Dadurch, dass CP/M auf dem Prinzip des ''[[BIOS]]'' (Basic Input/Output System) aufbaute, war es sehr leicht zu portieren und somit nicht an einen Computertyp gebunden. Die restlichen Teile können ohne große Veränderungen übernommen werden, da sie ja lediglich auf den Funktionen des CP/M-Kerns aufbauen.


Die unterste Ebene von CP/M bildet als [[Hardwareabstraktionsschicht]] das ''{{lang|en|Basic Input/Output System}}'', kurz [[BIOS (DOS)|BIOS]], welches eine standardisierte Schnittstelle für die hardwarenahen Aufgaben zur Verfügung stellt, vor allem zur Ein- und Ausgabe. Lediglich dieser Teil des Betriebssystems musste an den jeweiligen Computertyp angepasst werden, was normalerweise durch den Hersteller geschah. Die restlichen Teile konnten ohne große Veränderungen übernommen werden, da sie lediglich auf den Funktionen des CP/M-BIOS aufbauen.
Über dem BIOS lag das '''BDOS''' (Basic Disk Operating System), das "höhere" Funktionen zur Verfügung stellte, vor allem zur Dateiverwaltung.


Die standardisierten Funktionen des BIOS werden vom eigentlichen Systemkern, dem hardwareunabhängigen [[BDOS]] ({{lang|en|''Basic Disk Operating System''}}), verwendet, das höhere Funktionen zur Verfügung stellt, vor allem zur Dateiverwaltung. Dieses greift auf die Hardware nur indirekt über das BIOS zu, wodurch die Hardwareunabhängigkeit realisiert wird.
Das BDOS wiederum wurde vom "Console Command Processor" '''CCP''' verwendet, der die Befehle des Benutzers entgegennahm, einige einfache Befehle selbst ausführte, und andernfalls ein entsprechendes Programm lud und startete.


Das BDOS wiederum wird vom CCP (''Console Command Processor'') verwendet, einem [[Kommandozeileninterpreter]], der die Befehle des Benutzers entgegennimmt. Einige einfache Befehle werden vom CCP selbst ausgeführt (zum Beispiel <code>dir</code> (Disketten-Inhaltsverzeichnis anzeigen), <code>rename</code> (Umbenennen von Datei[en]) und weitere). Andernfalls wird ein entsprechendes Programm mit der Dateinamenserweiterung <code>[[.com]]</code> (bei CP/M-68k:&nbsp;<code>.68k</code>) geladen und gestartet. Beispiele: <code>pip.com</code> (Kopierprogramm), <code>stat.com</code> (Informationen über verschiedene Systemeinstellungen) usw.
Diese Struktur wurde später auch durch [[MS-DOS]] übernommen: Hier hießen die oben beschriebenen Teile nun IO.SYS, MSDOS.SYS und COMMAND.COM. Überhaupt lehnte sich die erste Version von MS-DOS sehr stark an CP/M an, die hauptsächliche Änderung war ein verbessertes [[Dateisystem]].

[[Anwendungssoftware]] kommuniziert mit der Hardware meist nur über das gleichbleibende BDOS sowie über die standardisierten Einsprungspunkte des BIOS – und ist somit portabel. Allerdings ist die Anwendungssoftware für CP/M aus Geschwindigkeits- und Speicherplatzgründen oft in [[Assemblersprache]] geschrieben und nur selten im [[Quelltext]] veröffentlicht, so dass Portabilität in der Praxis nur innerhalb einer Prozessorfamilie gegeben war. Der Assembler-Quellcode von CP/M wurde zusammen mit dem [[Assembler (Informatik)|Assemblerprogramm]] ''asm.com'' mitgeliefert. Somit konnte in Assembler das Betriebssystem nach eigenem Bedarf verändert und erweitert werden. Dennoch war CP/M kein „[[Open Source]]“ im heutigen Sinne, da die Weitergabe modifizierter Versionen nicht erlaubt war.

Der Aufbau von CP/M wurde später auch durch [[MS-DOS]] übernommen: Hier heißen die oben beschriebenen Teile ([[BIOS (DOS)|Bootdateien]]) nun <code>IO.SYS</code> statt BIOS, <code>[[MSDOS.SYS]]</code> statt BDOS und (der Kommandointerpreter) <code>[[COMMAND.COM]]</code> statt CCP. Überhaupt lehnte sich die erste Version von MS-DOS sehr stark an CP/M an,<ref>[http://www.digitalresearch.biz/CPM.HTM digitalresearch.biz]</ref> die hauptsächliche Änderung war das verbesserte [[Dateisystem]] ''[[File Allocation Table]]'' (FAT).


<!-- passt nirgendwo hin!?
Allerdings waren die [[Anwendungsprogramm]]e für CP/M aus Geschwindigkeits- und Speicherplatzgründen oft in [[Assemblersprache]] geschrieben und wurden nur selten als [[Quellcode]] veröffentlicht, sodass Portabilität in der Praxis nur ''innerhalb'' einer Prozessorfamilie gegeben war.
-->
== Schwachpunkte ==
== Schwachpunkte ==
Ein großer Schwachpunkt von CP/M war, dass es kein einheitliches [[Diskette]]nformat für 5.25-Zoll-Disketten gab. Das einzige "offizielle" Format war ein 8-Zoll-Format, sodass nach dem weitgehenden Verschwinden der unhandlichen 8-Zoll-Laufwerke der Austausch von Disketten zwischen CP/M-Rechnern verschiedener Marken praktisch sehr schwer bis unmöglich wurde. Auch die Bildschirm- und Drucker-Steuerung war in CP/M-Systemen nicht einheitlich (CP/M war ursprünglich für bildschirmlose, [[Fernschreiber]]-basierte Systeme entwickelt worden), sodass man vor der ersten Nutzung eines kommerziellen Programms diesem oft den verwendeten Bildschirm und Drucker mitteilen musste -- und darauf hoffen, dass das Programm die entsprechenden Modelle auch kannte. Spätere CP/M-Systeme [[Emulation|emulierten]] häufig weitverbreitete Bildschirmtypen, damit möglichst viel Software darauf laufen konnte.
Ein Schwachpunkt von CP/M war, dass es kein einheitliches Format für 5¼-Zoll-[[Diskette]]n gab. Das einzige offizielle (IBM-[[Industriestandard]])-Format war ein 8-Zoll-Format, so dass nach dem weitgehenden Verschwinden der 8-Zoll-Diskettenlaufwerke der Austausch von Disketten zwischen CP/M-Rechnern verschiedener Hersteller sehr schwierig bis unmöglich wurde. Auch die Bildschirm- und Druckersteuerung war in CP/M-Systemen nicht einheitlich, denn CP/M war ursprünglich für bildschirmlose, [[Fernschreiber]]-basierte Systeme ([[TTY-Schnittstelle|TTY]]) entwickelt worden. Spätere Systeme, auf denen CP/M lief, [[Emulator|emulierten]] häufig weitverbreitete Bildschirmtypen, beispielsweise das Terminal [[VT100]] der [[Digital Equipment Corporation]], damit möglichst viel Software unverändert darauf eingesetzt werden konnte. Kommerzielle Programme mussten auf das jeweilige Zielsystem angepasst werden. Im günstigsten Fall war die Auswahl über ein vordefiniertes Installationsprogramm (Setup) möglich. Nicht selten musste der Anwender allerdings die notwendigen Steuerzeichen für z.&nbsp;B. „Bildschirm löschen“ oder Cursor-Positionierung sowie auch Steuercodes für den verwendeten Drucker in Erfahrung bringen und in den Programmcode integrieren. In solchen Fällen war meist ein [[Patch (Software)|Patch]] im Anwendungsprogramm mittels [[Debugger]] erforderlich. Einige professionelle Programme, wie die Textverarbeitungssoftware [[WordStar]], waren durch vorbereitete Patch-Bereiche bereits konzeptionell darauf eingerichtet.


Auf der anderen Seite war das nur eine Folge der Flexibilität von CP/M: Es legte als Hardware nur den Prozessor und eine Mindestspeichergröße fest. Dadurch konnte es auf sehr verschiedenen Computern von Heimcomputern wie dem [[Amstrad CPC|Schneider/Amstrad CPC]] bis hin zu Rechnern wie dem [[Epson QX 10]] mit 256&nbsp;[[Byte|Kilobyte]] (kB) [[Arbeitsspeicher]] laufen. Der Hersteller musste in seiner CP/M-Version nur den BIOS-Teil an die verwendete Hardware anpassen.
Mit dem raschen Abfall der Speicher-Preise ab etwa 1981 wurde auch die Beschränkung auf 64 Kilobyte direkt nutzbaren Speicher ein Problem - schuld war hier allerdings nicht CP/M selbst, sondern die 8-[[Bit]]-[[Prozessor]]en, auf denen es hauptsächlich eingesetzt wurde. Auch die schlechte Eignung für [[Festplatte]]n, vor allem die nicht vorhandenen [[Unterverzeichnis]]se, bremste CP/M ab etwa 1982 zunehmend aus.


Mit dem raschen Verfall der Speicherpreise ab etwa 1981 wurde auch die Beschränkung auf 64&nbsp;kB direkt nutzbaren Speichers ein Problem – schuld war hier allerdings nicht CP/M selbst, sondern die [[8-Bit-Architektur]] der zeitgenössischen [[Prozessor]]en, auf denen es hauptsächlich eingesetzt wurde. Auch die schlechte Eignung für [[Festplattenlaufwerk]]e bremste CP/M ab etwa 1982 zunehmend aus. Das Hauptproblem war dabei die Unfähigkeit von CP/M-80, [[Verzeichnis|Unterverzeichnisse]] zu verwalten, was für größere Datenträger fast unerlässlich ist. CP/Ms eigenes Unterteilungskonzept für Datenträger mittels sogenannter „Benutzernummern“ war zu beschränkt, da es nur 16&nbsp;Bereiche und keine hierarchischen Strukturen ermöglichte. Allerdings erhielt [[MS-DOS]] diese Fähigkeit auch erst im Jahr 1983.
[[1983]] erschien mit '''CP/M-Plus''' 3.0 die letzte Version des klassischen 8080er-CP/Ms, welche nun mittels [[Bank Switching]] auch mehr als 64 KB Speicher unterstützte. Diese Version ist zwar dank des [[Commodore 128]], bei dem sie mitgeliefert wurde, die weltweit meistverkaufte, konnte allerdings, was die tatsächliche Nutzung betrifft, nicht mehr an die Popularität des einfacheren CP/M 2.2 anknüpfen.


Bei Festplatten nutzte man diese Benutzernummern, um mit dem Befehl <code>user</code> mehrere Bereiche auf einem Datenträger zu verwalten und nur die Daten anzuzeigen, die zu dem jeweiligen Benutzer gehören.
== Hardware ==
Typische Rechner aus den frühen [[1980er]] Jahren, auf denen CP/M eingesetzt wurde, hatten eine CPU [[Zilog Z80]] (aufwärtskompatibel zum Intel 8080) mit 2 bis 4 [[Megahertz|MHz]], 64 oder 128 [[Byte|KiB]] Hauptspeicher, einen einfarbigen [[Bildschirm]], der 80x24 Zeichen [[Text]] (aber keine [[Grafik]]) darstellen konnte, ein oder zwei [[Floppy]]laufwerke mit 8-[[Längenmaß|Zoll]] oder 5.25-Zoll-[[Diskette]]n, evtl. auch eine Festplatte mit ca. 5 MB.


== CP/M-Plus ==
CP/M wurde auch von vielen Bastlern auf ihren selbstgebauten Computern verwendet. Dominierten in der Frühzeit noch [[S100]]-Systeme wie etwa der [[IMSAI]], so waren bekannte kommerzielle CP/M-Computer der späteren Jahre der [[Osborne_Computer_Corporation|Osborne]] und die [[KayPro]]-Modelle; auf dem [[Apple II]] wurde CP/M häufig mittels einer zusätzlichen [[Z80]]-Prozessorkarte genutzt: [[Apple CP/M]].
1983 erschien mit '''CP/M-Plus''' (der Version 3.0) die letzte Version des klassischen 8080er-CP/M, welche nun mittels [[Bank Switching]] auch mehr als 64&nbsp;kB Speicher unterstützte. Außerdem wurde bei CP/M-Plus eine Reihe von Aufgaben, die bisher das herstellerspezifische BIOS erledigen musste, ins herstellerunabhängige BDOS verlegt und somit die [[Portierung (Software)|Portierung]] weiter vereinfacht. Vor allem brauchte die codetechnisch nicht ganz einfache und daher fehleranfällige Umwandlung zwischen der bei CP/M grundlegenden Datenblockgröße von 128 Bytes und der eigentlich von der Hardware verwendeten, bei den neueren Disketten- und Festplattenformaten fast immer größeren Blockgröße, nicht mehr im BIOS von jedem Hersteller neu implementiert zu werden, sondern fand jetzt im BDOS statt. Jedoch war diese CP/M-Version zugleich auch langsamer und verbrauchte mehr Speicher für sich selbst. Diese Version ist zwar dank des [[Commodore 128]] und des [[Amstrad CPC#CPC6128 (1985)|Schneider/Amstrad CPC 6128]], bei denen sie mitgeliefert wurde, die weltweit meistverkaufte, konnte allerdings, was die tatsächliche Nutzung betrifft, nicht mehr an die Popularität des kleineren und schnelleren CP/M&nbsp;2.2 anknüpfen.


CP/M 3.0 konnte auch eine Erweiterung namens [[Graphics System Extension]] (GSX, vgl. [[Graphical Kernel System]]) enthalten, die das Problem, dass Drucker und Bildschirm je nach Hersteller unterschiedlich angesteuert werden, beseitigte. Es stellte eine zusätzliche Schnittstelle für Text- und Grafikausgabe (u.&nbsp;a. Balken- und Kreisdiagramme) zur Verfügung. GSX nutzte dazu Druckertreiber, die der Hersteller des Druckers bereitstellen musste.
Auch auf vielen [[Heimcomputer]]n konnte CP/M genutzt werden, beispielsweise auf dem [[Schneider CPC]] und dem [[Commodore 128]]; in der Praxis wurde es auf Heimcomputern aber eher selten genutzt, da diese zusätzlich jeweils noch ein eigenes Betriebssystem mitbrachten, das besser auf die jeweilige Hardware abgestimmt war und somit vor allem für die Erstellung von [[Computerspiele]]n viel besser geeignet war als CP/M. Unter CP/M wurden dagegen eher typische Anwendungsprogramme wie Textverarbeitung, Tabellenkalkulation, kleine Datenbanken und Programmiersprachen wie Pascal genutzt.

== Typische Hardware ==
[[Datei:DEC VT180.jpg|mini|CP/M-Computer, DEC [[VT180]], 1982]]
Typische Rechner aus den frühen 1980er Jahren, auf denen CP/M eingesetzt wurde, hatten einen [[Intel 8080]] mit 2&nbsp;MHz oder einen [[Zilog Z80|Zilog-Z80]]-[[Prozessor]] (codekompatibel zum Intel&nbsp;8080) mit 2,4576&nbsp;MHz (Z80) oder 4&nbsp;MHz (Z80A), 32, 48 oder 64&nbsp;kiByte Hauptspeicher, einen Monochrom-Bildschirm, der 64×16 oder 80×24 Zeichen Text (aber keine Grafik) darstellen konnte, ein oder zwei Diskettenlaufwerke für 8-Zoll- oder 5¼-Zoll-[[Diskette]]n, selten auch eine Festplatte mit 5&nbsp;MByte. Dies leitete sich von der Ausstattung des [[Intel MDS-800|Intel-MDS-800]]-Entwicklungssystems ab, auf dem CP/M entworfen wurde.

CP/M wurde auch von vielen Bastlern auf ihren selbstgebauten Computern verwendet. Dominierten in der Frühzeit noch [[S-100-Bus]]-Systeme wie etwa der [[IMSAI 8080]], so waren bekannte kommerzielle CP/M-Computer der späteren Jahre der [[Osborne 1]] und die [[Kaypro]]-Modelle; auf dem [[Apple II]] wurde CP/M häufig mittels einer zusätzlichen Z80-Prozessorkarte ([[Apple CP/M]]) genutzt. Weiterhin gab es Zusatzkarten für die [[Commodore International|Commodore]]-Arbeitsplatzrechner der [[CBM-3000-Serie|CBM-3000-]] und [[CBM-4000-Serie]] (Nachfolger des [[PET 2001]]).

Auch auf vielen Heimcomputern konnte CP/M genutzt werden, beispielsweise auf dem [[Amstrad CPC|Schneider/Amstrad CPC]], [[Commodore 64]] (mit Zusatzmodul) und dem [[Commodore 128]]; in der Praxis wurde es auf diesen aber eher selten eingesetzt, da sie zusätzlich jeweils noch ein eigenes Betriebssystem mitbrachten, das besser auf die jeweilige Hardware abgestimmt war und somit vor allem für grafische Computerspiele besser geeignet war. Allerdings bildete vor allem der Amstrad/Schneider CPC 6128 hier eine Ausnahme, da er im Lieferumfang bereits eine CP/M 2.2 und eine CP/M-Plus-Version hatte. Auch das Handbuch ging recht detailliert auf CP/M ein und professionelle Software wie zum Beispiel Multiplan oder Wordstar wurden häufig auf dem CPC genutzt.

Auch der [[Amstrad PCW|Schneider&nbsp;Joyce/Amstrad&nbsp;PCW]] hatte neben dem aus Marketinggründen als kombiniertes Betriebs- und Textverarbeitungssystem konzipiertem LocoScript als zweites, davon unabhängiges Betriebssystem CP/M an Bord. Der PC war ausgestattet mit einem Zilog-Z80-Prozessor mit 4&nbsp;MHz und 256 bzw. 512&nbsp;kiByte Arbeitsspeicher. Das gestartete CP/M-Betriebssystem war in dieser Konfiguration auf drei „Speicherbänke“ zu je 64&nbsp;kiByte verteilt, mit einem gemeinsamen „Common“-Bereich ab Adresse HxC000 (zum Beispiel Kernel in Bank&nbsp;1, Tastatur und Bildschirm in Bank&nbsp;0, Drucker in Bank&nbsp;2). Diese Versionen waren an der Dateinamenserweiterung <code>.ems</code> erkennbar.

== Portierungen von CP/M ==
=== CP/M in der Deutschen Demokratischen Republik ===
In der [[Deutsche Demokratische Republik|DDR]] wurde CP/M meist unter der Bezeichnung [[Single User Control Program]] (SCP) auf [[MME U880|MME-U880]]-basierter Hardware eingesetzt. Die Bezeichnung weist darauf hin, dass es sich um ein Einbenutzer-Betriebssystem handelt. Für allgemeine Büroarbeiten auf den 8-Bit-Mikrorechnern [[P8000]] (compact) entstand mit [[OS/M]] ein zu CP/M kompatibles Betriebssystem.<ref>[http://www.robotrontechnik.de/index.htm?/html/software/scp.htm#osm ''Betriebssystem OS/M''] In: ''robotrontechnik.de''</ref> Die [[Kleincomputer KC 85/2-4|Kleincomputer KC 85]] konnten mit einem Aufsatz um 5¼-Zoll-Diskettenlaufwerke erweitert werden und so ebenfalls CP/M ausführen, welches in der Variante MicroDOS verwendet wurde. Innerhalb der [[Akademie der Wissenschaften der DDR]] wurde in den 1980er Jahren für die Rechner auf Basis der Z80/U880-Prozessoren (wie z.&nbsp;B. [[PC 1715]], [[A 5110]]/[[A 5120]]/[[A 5130]]) das Betriebssystem CP/A genutzt. Es hatte gegenüber CP/M bzw. SCP den Vorteil, dass z.&nbsp;B. 5¼-Zoll-Disketten mit der vollen Speicherkapazität von 800&nbsp;kB für Daten genutzt werden konnten, während CP/M nur 720&nbsp;>kB Daten erlaubte und 80&nbsp;kB für das System reservierte. Vom VEB [[Mansfeld (Unternehmen)|Mansfeld Kombinat „Wilhelm Pieck“]] wurden für deren Arbeitsplatzrechner der [[Mansfeld MPC|Mansfeld-MPC]]-Reihe CP/M-Versionen unter dem Namen „SCP/M&nbsp;2“ entwickelt.<ref>[http://robotrontechnik.de/html/computer/mpc.htm robotrontechnik.de] (abgerufen am 26. Juni 2012)</ref> Beim VEB [[Carl Zeiss Jena (Unternehmen)|Carl Zeiss Jena]] wurde das „CP/Z“-System entwickelt, das besonders wenig, dafür aber sehr effizienten Programmcode hatte. Es entstand ein reger Softwareaustausch zwischen den DDR-Firmen, da Verletzungen des [[Urheberrecht]]s ausländischer Firmen in der DDR nicht verfolgt wurden. Nur ab und zu gab es auf internationalen Messen böse Überraschungen. Die Firma [[Ashton-Tate]] machte nach dem Ende der DDR allen [[DBASE|dBase]]-Nutzern ein vergünstigtes Angebot.


== Varianten von CP/M ==
=== CP/M-86 ===
=== CP/M-86 ===
Neben der Intel-8080- bzw. Zilog-Z80-Version von CP/M erlangte vor allem CP/M-86 praktische Bedeutung: eine CP/M-Version für [[Intel 8086|Intel-8086]]- und [[Intel 8088|Intel-8088]]-Hauptprozessoren.
Praktische Bedeutung erlangte neben der 8080er-Version von CP/M,
vor allem die Version für den [[Intel 8086]] und [[Intel 8088]] (genannt '''CP/M-86''').


CP/M-86 hatte ab Januar 1982 durchaus die Chance, zum Standardbetriebssystem des [[IBM Personal Computer]], dem ersten [[Personal Computer]] von [[IBM]], zu werden. Unter bis heute umstrittenen Umständen bekam CP/M aber [[MS-DOS]] 1.0 von [[Microsoft]], welches konzeptionell stark an CP/M-80 angelehnt und großteils funktionell identisch war, als Konkurrenten. Obwohl IBM anfangs dem Kunden die Wahl des Betriebssystems überließ, setzte sich MS-DOS –&nbsp;das in der von IBM ausgelieferten Variante [[PC&nbsp;DOS]] hieß&nbsp;– aufgrund seines niedrigeren Preises von 40&nbsp;[[US-Dollar]] (USD; nach heutiger [[Geldwert|Kaufkraft]] ca. {{Inflation|US|40|1981|r=-1}}&nbsp;USD) recht schnell gegen das wesentlich teurere CP/M-86 durch, wobei Software zunächst für beide Plattformen entwickelt wurde.
CP/M-86 wäre 1981 beinahe zum Standardbetriebssystem des ersten PC von [[IBM]] geworden, siehe auch: [[MS-DOS]]. [[1988]] wurde eine weiterentwickelte, an MS-DOS angeglichene Version von CP/M-86 als [[DR-DOS]] herausgebracht und machte Microsoft nochmals einige Jahre lang ernsthafte Konkurrenz. Erst als Microsoft sein [[Microsoft Windows|Windows]]-System absichtlich so programmierte, dass es mit DR-DOS nicht zusammenarbeiten konnte, verschwand DR-DOS relativ schnell in einen Nischenmarkt.

Das aus CP/M-86 abgeleitete und dazu weitgehend kompatible Betriebssystem SCP&#8239;1700 wurde auf Intel-8086-/[[K1810WM86]]-basierten Bürocomputern des [[Kombinat Robotron]] eingesetzt. Auf dem 1985 vorgestellten [[A 7100|Robotron A&#8239;7100]] war SCP&#8239;1700 das empfohlene Standardbetriebssystem. Das an MS-DOS angelehnte Betriebssystem, welches für den [[A 7150|Robotron A&#8239;7150]] gedacht war, hieß [[Disk Control Program|DCP]].


=== CP/M-68K ===
=== CP/M-68K ===
Die Portierung auf den [[Motorola 68000]], genannt '''CP/M-68k''', selbst kein großer kommerzieller Erfolg, wurde zur Grundlage für [[TOS (Betriebssystem)|TOS]], das Betriebssystem des [[Atari ST]].
Die Portierung auf den [[Motorola 68000]], genannt ''CP/M-68k'', war kein großer kommerzieller Erfolg.


=== TurboDOS ===
=== MP/M ===
''MP/M'' war eine [[Mehrbenutzersystem]]-Version ({{lang|en|“multi user system”}}) von CP/M. Mehrere Benutzer konnten gleichzeitig über ASCII-[[Terminal (Computer)|Terminals]] an einem Rechner arbeiten.
<!-- erweitern und dann auslagern, da anderer Hersteller: Software 2000 -->
Bestand CP/M noch aus drei monolitischen Blöcken, so existierte in [[TurboDOS]] ein hochmodulares, kompatibles System, das Multitasking- und Multiprocessingfähigkeiten besaß.


==Bekannte Programme für CP/M==
=== CP/NET ===
Eine in den späten 1980ern entstandene Betriebssystemerweiterung zur Kommunikation zwischen CP/M-Systemen wurde „CP/NET“ genannt. Als Server diente ein MP/M-System, auf den Clients lief CP/NET. Die Clients konnten auch festplattenlos betrieben werden. Neben der gemeinsamen Nutzung von Dateisystemen waren auch elektronische Nachrichten implementiert.<ref>[http://www.digitalresearch.biz/GARY&CPM.HTM digitalresearch.biz] (abgerufen am 26. Juni 2012)</ref>
* [[WordStar]] von MicroPro, eine Textverarbeitung.
* [[Microsoft Multiplan]] von Microsoft, eine Tabellenkalkulation.
* [[dBase|dBase II]] von Ashton-Tate, eine Datenbanksoftware.
* [[Turbo Pascal]] von Borland, eine Entwicklungsumgebung für die Programmiersprache Pascal.


==Weblinks==
=== CCP/M-86 ===
Später wurde aus CP/M-86 und MP/M-86 eine neue Variante „Concurrent CP/M“ (CCP/M-86) entwickelt. Diese vereinigte die Mehrbenutzerfähigkeiten von MP/M mit hoher Kompatibilität zu CP/M-86.
*[http://www.arealinks.net/books/cpm.html Bücher zu CP/M]


== Software für CP/M ==
[[Kategorie:Betriebssystem]]
Unter CP/M wurden Anwendungsprogramme wie die Textverarbeitungen [[Electric Pencil]] und [[WordStar]], die Tabellenkalkulationen [[Supercalc]] und [[Microsoft Multiplan]] sowie die Datenbanksoftware [[dBASE]]&nbsp;II (von [[Ashton-Tate]]) angeboten. Ein integriertes [[Office-Paket]], mit der Möglichkeit der leichten Datenübernahme z.&nbsp;B. von der Datenbank in die Textverarbeitung, gab es unter CP/M noch nicht. Allerdings waren die damaligen [[Dateiformat]]e noch recht einfach aufgebaut, so dass meist eine händische Übernahme möglich war, oder es musste ein eigenes kleines Programm dafür geschrieben werden.
[[Kategorie:Dateisystem]]


Neben den Anwendungsprogrammen lag der Schwerpunkt der Software für CP/M bei Programmiersprachen zur Erstellung spezifischer Programme. Erwähnenswert sind hier [[MBASIC]] von Microsoft, [[Fortran]], [[Turbo Pascal]] von [[Borland]], [[PL/I]], [[muLISP]] und [[COMAL]]. Die von Digital Research selbst angebotene Sprache [[PL/M]], eine systemnahe Programmiersprache mit Ähnlichkeiten zu PL/I, wurde bei Digital Research auch intern viel verwendet; die Ähnlichkeit mit dem Namen des Betriebssystems ist somit nicht zufällig. Einige der mit CP/M standardmäßig mitgelieferten Hilfsprogramme wurden in dieser Sprache geschrieben. Die später so dominante Sprache [[C (Programmiersprache)|C]] war unter CP/M noch ziemlich unbedeutend, entsprechend gibt es nur wenige Compiler für diese Sprache, die unter CP/M laufen – beispielsweise [[BDS C]]. Mit [[Aztec C]] wurde gegen Ende der Lebenszeit von CP/M ein brauchbarer Compiler verfügbar.
[[da:CP/M]]

[[en:CP/M]]
Zudem gab es recht große Sammlungen an [[Gemeinfreiheit|gemeinfreien]] Programmen für CP/M, die zum Beispiel von Benutzervereinigungen oder privaten Kleinvertrieben auf durchnummerierten Disketten zusammengestellt wurden. In diesem Bereich finden sich auch Computerspiele, die im Bereich der kommerziellen CP/M-Software nie eine Rolle spielten. Viele dieser Sammlungen wurden später auf [[CD-ROM]] oder zum Herunterladen im Internet wiederveröffentlicht. Eine CD-ROM kann leicht zehntausend oder mehr der nach heutigen Maßstäben winzigen CP/M-Programme fassen.
[[es:CP/M]]

[[fi:CP/M]]
== Emulationen ==
[[fr:CP/M]]
[[Datei:Cpmz80.png|mini|Bildschirmfoto der Software-Emulation CPMZ80 auf einem [[Atari ST]]]]
[[he:CP/M]]
Beim Übergang von 8-Bit-Prozessoren (wie dem Zilog Z80) zu 16-Bit-Maschinen (wie z.&nbsp;B. dem [[Intel 8086]] und [[Intel 80286|80286]]) Anfang der 1980er Jahre bestand zunächst ein großer Mangel an Anwendungsprogrammen für die neue leistungsfähigere Hardware. Deshalb wurden Software-[[Emulation]]en entwickelt, die CP/M und einen Z80-Hauptprozessor virtuell auf einem 16-Bit-System nachbildeten, so dass bestehende Anwendungen und Anwendungsdaten (z.&nbsp;B. eine dBase-II-Datenbank) auf dem neuen System weiterverwendet werden konnten. Für MacOS gibt es eine native CP/M Emulation.<ref>{{Internetquelle |autor=Thomas Harte |url=https://github.com/TomHarte/CP-M-for-OS-X |titel=TomHarte/CP-M-for-OS-X |datum=2020-02-29 |abruf=2020-03-28}}</ref>
[[ia:CP/M]]

[[it:CP/M]]
== Freigaben ==
[[ja:CP/M]]
2001 gab [[Caldera (Unternehmen)|Caldera]] CP/Ms [[Quelltext]] unter einer liberalen [[Open Source|Open-Source]]-[[Softwarelizenz|Lizenz]], welche Redistribution und Modifikation erlaubt, via Tim Olmsteads {{lang|en|“The Unofficial CP/M Web site”}} frei.<ref>[http://www.cpm.z80.de/ The Unofficial CP/M Web site] (englisch)</ref><ref name="CPMregister">[http://www.theregister.co.uk/2001/11/26/cp_m_collection_is_back/ CP/M collection is back online with an Open Source licence] [[The Register]], 26. November 2001 (englisch)</ref><ref name="cpmlicense">[http://www.cpm.z80.de/license.html License agreement for the CP/M material presented on this site] (englisch)</ref> Im Oktober 2014, um den 40. Jahrestag der Erstpräsentation zu feiern, veröffentlichte das [[Computer History Museum]] weitere frühe Quelltextversionen von CP/M unter einer Lizenz zur nicht-kommerziellen Verwendung.<ref>{{cite web|url=http://www.computerhistory.org/atchm/early-digital-research-cpm-source-code/ |title=Early Digital Research CP/M Source Code |first=David |last=Laws |date=2014-10-01 |publisher=[[Computer History Museum]] |accessdate=2015-07-25 |language=englisch}}</ref>
[[nl:CP/M]]

[[no:CP/M]]
=== Gemeinfreiheit ===
[[pl:CP/M]]
2022 wurde CP/M, in der Version von Digital Research, von Bryan Sparks, dem Rechteinhaber am geistigen Eigentum von Digital Research, der Allgemeinheit freigegeben.<ref>{{Internetquelle |url=http://www.cpm.z80.de/license.html |titel=License Agreement |abruf=2022-07-16}}</ref><ref>{{Internetquelle |autor=Sebastian Grüner |url=http://www.golem.de/news/ibm-pcs-und-zilog-z80-erstes-pc-betriebssystem-cp-m-offiziell-open-source-2207-166958.html |titel=IBM PCs und Zilog Z80: Erstes PC-Betriebssystem CP/M offiziell Open Source |werk=[[golem.de]] |datum=2022-07-18 |abruf=2024-02-03}}</ref>
[[pt:CP/M]]
{{Zitat
[[ru:CP/M]]
|Text=Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise make available in a nonexclusive manner CP/M and its derivatives. This right comes from the company, DRDOS, Inc.'s purchase of Digital Research, the company and all assets, dating back to the mid-1990's. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets.
[[sv:CP/M]]
|Autor=Bryan Sparks}}

== Literatur ==
* {{Literatur
|Autor=Rodnay Zaks
|Titel=CP/M-Handbuch
|Auflage=5.
|Verlag=SYBEX-Verlag
|Ort=Düsseldorf
|Datum=1984
|ISBN=3-88745-053-1
|Originaltitel=The CP/M Handbook
|Originalsprache=en
|Übersetzer=Klaus-Jürgen Schmidt}}
* {{Literatur
|Autor=Bernd Pol
|Titel=Vom Umgang mit CP/M. Eine allgemeinverständliche Einführung
|Auflage=6.
|Verlag=IWT-Verlag
|Ort=Vaterstetten
|Datum=1985
|ISBN=3-88322-004-3}}
* {{Literatur
|Autor=[[Jürgen Plate]]
|Titel=Betriebssystem CP/M. vom Monitorprogramm zum Mehrbenutzersystem
|Auflage=2., neubearbeitete und erweiterte
|Verlag=Franzis-Verlag
|Ort=München
|Datum=
|ISBN=3-7723-7522-7}}
* {{Literatur
|Autor=Alfons Steinhoff, Klaus Michael Rübsam
|Titel=Arbeiten mit CP/M
|Verlag=SYBEX-Verlag
|Ort=Düsseldorf
|Datum=1987
|ISBN=3-88745-622-X}}
* {{Literatur
|Autor=Joachim Bernert, Michael Burow, Christian Hanisch
|Titel=CP/M in der Praxis
|Verlag=Verlag Technik
|Ort=Ost-Berlin
|Datum=1988
|ISBN=3-341-00567-6}}

== Weblinks ==
{{Commonscat}}
* [http://www.mathematik.uni-ulm.de/users/ag/yaze-ag/ Yet Another Z80 Emulator by AG – YAZE-AG: Z80 CPU Emulator mit CP/M 3.1] auf der Internetpräsenz der [[Universität Ulm]] (englisch)
* [http://www.computerhistory.org/_static/atchm/early-digital-research-cpm-source-code/ Quellcode] bei www.computerhistory.org „Early Digital Research CP/M Source Code“ ca. 150 MB (englisch)

== Einzelnachweise ==
<references />

{{Normdaten|TYP=s|GND=4010668-8|LCCN=n92062232|VIAF=181931038}}

{{SORTIERUNG:CPM}}
[[Kategorie:Freie Software|Cpm]]
[[Kategorie:CP/M| ]]
[[Kategorie:Betriebssystem]]
[[Kategorie:Historische Software]]

Aktuelle Version vom 24. Juni 2025, 15:53 Uhr

CP/M
Bildschirmkopie
CP/M-86
Entwickler Digital Research Inc.
Lizenz(en) Public Domain (seit 7. Juli 2022)
Erstveröff. 1974
Akt. Version 3.1 bzw. 1.2 (CP/M-68k) (1983)
Kernel BDOS: monolithisch (Assembler)
Architektur(en) Intel 8080/8085, Zilog Z80,
Intel 8086/8087/8088 und Motorola 68000
Installations­medium Disketten
Sprache(n) Englisch
www.digitalresearch.biz/CPM.HTM

CP/M (Abkürzung für Control Program for Microcomputers, „Steuerprogramm für Mikrocomputer“) ist eine Reihe von Betriebssystemen, die ab etwa 1974 von Digital Research unter Gary Kildall entwickelt wurden. CP/M war (neben dem für leistungsstärkere Rechner konzipierten Unix) das erste plattformunabhängige Betriebssystem. Eine Mehrbenutzer-Variante wurde unter dem Namen „MP/M“ entwickelt. Mit dem Aufkommen von MS-DOS bzw. dessen IBM-Variante PC DOS verlor CP/M seine Bedeutung.

CP/M ohne nähere Bezeichnung steht meist für „CP/M-80“, die ursprüngliche, ab 1974 entwickelte Version für die Mikroprozessoren Intel 8080 und den dazu kompatiblen Zilog Z80, eine 8-Bit-Architektur. Die letzte Version von CP/M-80 wurde „CP/M-Plus“ genannt. „CP/M-86“ war eine Portierung auf die Prozessoren Intel 8086 und 8088, eine 16-Bit-Architektur. Mit „CP/M-68K“ folgte eine weniger erfolgreiche Variante für den Motorola 68000 (ebenfalls 16 Bit).

Die Abkürzung CP/M stand ursprünglich für Control Program/Monitor („Steuerprogramm/Maschinencode-Monitor“). Das ursprüngliche Akronym wurde später in Control Program for Microcomputers umgedeutet.

CP/M-Betriebssystem-Handbuch, 1982

Die Entwicklung des Betriebssystems geschah zeitgleich mit Kildalls Arbeit bei Intel. Er nutzte die ebenfalls von ihm entworfene Programmiersprache PL/M sowie das Betriebssystem ISIS, an dem er gerade mitarbeitete, mit welchem sich CP/M die Befehle und grundlegende Funktionsweisen teilt.[1]

Die unterste Ebene von CP/M bildet als Hardwareabstraktionsschicht das Basic Input/Output System, kurz BIOS, welches eine standardisierte Schnittstelle für die hardwarenahen Aufgaben zur Verfügung stellt, vor allem zur Ein- und Ausgabe. Lediglich dieser Teil des Betriebssystems musste an den jeweiligen Computertyp angepasst werden, was normalerweise durch den Hersteller geschah. Die restlichen Teile konnten ohne große Veränderungen übernommen werden, da sie lediglich auf den Funktionen des CP/M-BIOS aufbauen.

Die standardisierten Funktionen des BIOS werden vom eigentlichen Systemkern, dem hardwareunabhängigen BDOS (Basic Disk Operating System), verwendet, das höhere Funktionen zur Verfügung stellt, vor allem zur Dateiverwaltung. Dieses greift auf die Hardware nur indirekt über das BIOS zu, wodurch die Hardwareunabhängigkeit realisiert wird.

Das BDOS wiederum wird vom CCP (Console Command Processor) verwendet, einem Kommandozeileninterpreter, der die Befehle des Benutzers entgegennimmt. Einige einfache Befehle werden vom CCP selbst ausgeführt (zum Beispiel dir (Disketten-Inhaltsverzeichnis anzeigen), rename (Umbenennen von Datei[en]) und weitere). Andernfalls wird ein entsprechendes Programm mit der Dateinamenserweiterung .com (bei CP/M-68k: .68k) geladen und gestartet. Beispiele: pip.com (Kopierprogramm), stat.com (Informationen über verschiedene Systemeinstellungen) usw.

Anwendungssoftware kommuniziert mit der Hardware meist nur über das gleichbleibende BDOS sowie über die standardisierten Einsprungspunkte des BIOS – und ist somit portabel. Allerdings ist die Anwendungssoftware für CP/M aus Geschwindigkeits- und Speicherplatzgründen oft in Assemblersprache geschrieben und nur selten im Quelltext veröffentlicht, so dass Portabilität in der Praxis nur innerhalb einer Prozessorfamilie gegeben war. Der Assembler-Quellcode von CP/M wurde zusammen mit dem Assemblerprogramm asm.com mitgeliefert. Somit konnte in Assembler das Betriebssystem nach eigenem Bedarf verändert und erweitert werden. Dennoch war CP/M kein „Open Source“ im heutigen Sinne, da die Weitergabe modifizierter Versionen nicht erlaubt war.

Der Aufbau von CP/M wurde später auch durch MS-DOS übernommen: Hier heißen die oben beschriebenen Teile (Bootdateien) nun IO.SYS statt BIOS, MSDOS.SYS statt BDOS und (der Kommandointerpreter) COMMAND.COM statt CCP. Überhaupt lehnte sich die erste Version von MS-DOS sehr stark an CP/M an,[2] die hauptsächliche Änderung war das verbesserte Dateisystem File Allocation Table (FAT).

Ein Schwachpunkt von CP/M war, dass es kein einheitliches Format für 5¼-Zoll-Disketten gab. Das einzige offizielle (IBM-Industriestandard)-Format war ein 8-Zoll-Format, so dass nach dem weitgehenden Verschwinden der 8-Zoll-Diskettenlaufwerke der Austausch von Disketten zwischen CP/M-Rechnern verschiedener Hersteller sehr schwierig bis unmöglich wurde. Auch die Bildschirm- und Druckersteuerung war in CP/M-Systemen nicht einheitlich, denn CP/M war ursprünglich für bildschirmlose, Fernschreiber-basierte Systeme (TTY) entwickelt worden. Spätere Systeme, auf denen CP/M lief, emulierten häufig weitverbreitete Bildschirmtypen, beispielsweise das Terminal VT100 der Digital Equipment Corporation, damit möglichst viel Software unverändert darauf eingesetzt werden konnte. Kommerzielle Programme mussten auf das jeweilige Zielsystem angepasst werden. Im günstigsten Fall war die Auswahl über ein vordefiniertes Installationsprogramm (Setup) möglich. Nicht selten musste der Anwender allerdings die notwendigen Steuerzeichen für z. B. „Bildschirm löschen“ oder Cursor-Positionierung sowie auch Steuercodes für den verwendeten Drucker in Erfahrung bringen und in den Programmcode integrieren. In solchen Fällen war meist ein Patch im Anwendungsprogramm mittels Debugger erforderlich. Einige professionelle Programme, wie die Textverarbeitungssoftware WordStar, waren durch vorbereitete Patch-Bereiche bereits konzeptionell darauf eingerichtet.

Auf der anderen Seite war das nur eine Folge der Flexibilität von CP/M: Es legte als Hardware nur den Prozessor und eine Mindestspeichergröße fest. Dadurch konnte es auf sehr verschiedenen Computern von Heimcomputern wie dem Schneider/Amstrad CPC bis hin zu Rechnern wie dem Epson QX 10 mit 256 Kilobyte (kB) Arbeitsspeicher laufen. Der Hersteller musste in seiner CP/M-Version nur den BIOS-Teil an die verwendete Hardware anpassen.

Mit dem raschen Verfall der Speicherpreise ab etwa 1981 wurde auch die Beschränkung auf 64 kB direkt nutzbaren Speichers ein Problem – schuld war hier allerdings nicht CP/M selbst, sondern die 8-Bit-Architektur der zeitgenössischen Prozessoren, auf denen es hauptsächlich eingesetzt wurde. Auch die schlechte Eignung für Festplattenlaufwerke bremste CP/M ab etwa 1982 zunehmend aus. Das Hauptproblem war dabei die Unfähigkeit von CP/M-80, Unterverzeichnisse zu verwalten, was für größere Datenträger fast unerlässlich ist. CP/Ms eigenes Unterteilungskonzept für Datenträger mittels sogenannter „Benutzernummern“ war zu beschränkt, da es nur 16 Bereiche und keine hierarchischen Strukturen ermöglichte. Allerdings erhielt MS-DOS diese Fähigkeit auch erst im Jahr 1983.

Bei Festplatten nutzte man diese Benutzernummern, um mit dem Befehl user mehrere Bereiche auf einem Datenträger zu verwalten und nur die Daten anzuzeigen, die zu dem jeweiligen Benutzer gehören.

1983 erschien mit CP/M-Plus (der Version 3.0) die letzte Version des klassischen 8080er-CP/M, welche nun mittels Bank Switching auch mehr als 64 kB Speicher unterstützte. Außerdem wurde bei CP/M-Plus eine Reihe von Aufgaben, die bisher das herstellerspezifische BIOS erledigen musste, ins herstellerunabhängige BDOS verlegt und somit die Portierung weiter vereinfacht. Vor allem brauchte die codetechnisch nicht ganz einfache und daher fehleranfällige Umwandlung zwischen der bei CP/M grundlegenden Datenblockgröße von 128 Bytes und der eigentlich von der Hardware verwendeten, bei den neueren Disketten- und Festplattenformaten fast immer größeren Blockgröße, nicht mehr im BIOS von jedem Hersteller neu implementiert zu werden, sondern fand jetzt im BDOS statt. Jedoch war diese CP/M-Version zugleich auch langsamer und verbrauchte mehr Speicher für sich selbst. Diese Version ist zwar dank des Commodore 128 und des Schneider/Amstrad CPC 6128, bei denen sie mitgeliefert wurde, die weltweit meistverkaufte, konnte allerdings, was die tatsächliche Nutzung betrifft, nicht mehr an die Popularität des kleineren und schnelleren CP/M 2.2 anknüpfen.

CP/M 3.0 konnte auch eine Erweiterung namens Graphics System Extension (GSX, vgl. Graphical Kernel System) enthalten, die das Problem, dass Drucker und Bildschirm je nach Hersteller unterschiedlich angesteuert werden, beseitigte. Es stellte eine zusätzliche Schnittstelle für Text- und Grafikausgabe (u. a. Balken- und Kreisdiagramme) zur Verfügung. GSX nutzte dazu Druckertreiber, die der Hersteller des Druckers bereitstellen musste.

Typische Hardware

[Bearbeiten | Quelltext bearbeiten]
CP/M-Computer, DEC VT180, 1982

Typische Rechner aus den frühen 1980er Jahren, auf denen CP/M eingesetzt wurde, hatten einen Intel 8080 mit 2 MHz oder einen Zilog-Z80-Prozessor (codekompatibel zum Intel 8080) mit 2,4576 MHz (Z80) oder 4 MHz (Z80A), 32, 48 oder 64 kiByte Hauptspeicher, einen Monochrom-Bildschirm, der 64×16 oder 80×24 Zeichen Text (aber keine Grafik) darstellen konnte, ein oder zwei Diskettenlaufwerke für 8-Zoll- oder 5¼-Zoll-Disketten, selten auch eine Festplatte mit 5 MByte. Dies leitete sich von der Ausstattung des Intel-MDS-800-Entwicklungssystems ab, auf dem CP/M entworfen wurde.

CP/M wurde auch von vielen Bastlern auf ihren selbstgebauten Computern verwendet. Dominierten in der Frühzeit noch S-100-Bus-Systeme wie etwa der IMSAI 8080, so waren bekannte kommerzielle CP/M-Computer der späteren Jahre der Osborne 1 und die Kaypro-Modelle; auf dem Apple II wurde CP/M häufig mittels einer zusätzlichen Z80-Prozessorkarte (Apple CP/M) genutzt. Weiterhin gab es Zusatzkarten für die Commodore-Arbeitsplatzrechner der CBM-3000- und CBM-4000-Serie (Nachfolger des PET 2001).

Auch auf vielen Heimcomputern konnte CP/M genutzt werden, beispielsweise auf dem Schneider/Amstrad CPC, Commodore 64 (mit Zusatzmodul) und dem Commodore 128; in der Praxis wurde es auf diesen aber eher selten eingesetzt, da sie zusätzlich jeweils noch ein eigenes Betriebssystem mitbrachten, das besser auf die jeweilige Hardware abgestimmt war und somit vor allem für grafische Computerspiele besser geeignet war. Allerdings bildete vor allem der Amstrad/Schneider CPC 6128 hier eine Ausnahme, da er im Lieferumfang bereits eine CP/M 2.2 und eine CP/M-Plus-Version hatte. Auch das Handbuch ging recht detailliert auf CP/M ein und professionelle Software wie zum Beispiel Multiplan oder Wordstar wurden häufig auf dem CPC genutzt.

Auch der Schneider Joyce/Amstrad PCW hatte neben dem aus Marketinggründen als kombiniertes Betriebs- und Textverarbeitungssystem konzipiertem LocoScript als zweites, davon unabhängiges Betriebssystem CP/M an Bord. Der PC war ausgestattet mit einem Zilog-Z80-Prozessor mit 4 MHz und 256 bzw. 512 kiByte Arbeitsspeicher. Das gestartete CP/M-Betriebssystem war in dieser Konfiguration auf drei „Speicherbänke“ zu je 64 kiByte verteilt, mit einem gemeinsamen „Common“-Bereich ab Adresse HxC000 (zum Beispiel Kernel in Bank 1, Tastatur und Bildschirm in Bank 0, Drucker in Bank 2). Diese Versionen waren an der Dateinamenserweiterung .ems erkennbar.

Portierungen von CP/M

[Bearbeiten | Quelltext bearbeiten]

CP/M in der Deutschen Demokratischen Republik

[Bearbeiten | Quelltext bearbeiten]

In der DDR wurde CP/M meist unter der Bezeichnung Single User Control Program (SCP) auf MME-U880-basierter Hardware eingesetzt. Die Bezeichnung weist darauf hin, dass es sich um ein Einbenutzer-Betriebssystem handelt. Für allgemeine Büroarbeiten auf den 8-Bit-Mikrorechnern P8000 (compact) entstand mit OS/M ein zu CP/M kompatibles Betriebssystem.[3] Die Kleincomputer KC 85 konnten mit einem Aufsatz um 5¼-Zoll-Diskettenlaufwerke erweitert werden und so ebenfalls CP/M ausführen, welches in der Variante MicroDOS verwendet wurde. Innerhalb der Akademie der Wissenschaften der DDR wurde in den 1980er Jahren für die Rechner auf Basis der Z80/U880-Prozessoren (wie z. B. PC 1715, A 5110/A 5120/A 5130) das Betriebssystem CP/A genutzt. Es hatte gegenüber CP/M bzw. SCP den Vorteil, dass z. B. 5¼-Zoll-Disketten mit der vollen Speicherkapazität von 800 kB für Daten genutzt werden konnten, während CP/M nur 720 >kB Daten erlaubte und 80 kB für das System reservierte. Vom VEB Mansfeld Kombinat „Wilhelm Pieck“ wurden für deren Arbeitsplatzrechner der Mansfeld-MPC-Reihe CP/M-Versionen unter dem Namen „SCP/M 2“ entwickelt.[4] Beim VEB Carl Zeiss Jena wurde das „CP/Z“-System entwickelt, das besonders wenig, dafür aber sehr effizienten Programmcode hatte. Es entstand ein reger Softwareaustausch zwischen den DDR-Firmen, da Verletzungen des Urheberrechts ausländischer Firmen in der DDR nicht verfolgt wurden. Nur ab und zu gab es auf internationalen Messen böse Überraschungen. Die Firma Ashton-Tate machte nach dem Ende der DDR allen dBase-Nutzern ein vergünstigtes Angebot.

Neben der Intel-8080- bzw. Zilog-Z80-Version von CP/M erlangte vor allem CP/M-86 praktische Bedeutung: eine CP/M-Version für Intel-8086- und Intel-8088-Hauptprozessoren.

CP/M-86 hatte ab Januar 1982 durchaus die Chance, zum Standardbetriebssystem des IBM Personal Computer, dem ersten Personal Computer von IBM, zu werden. Unter bis heute umstrittenen Umständen bekam CP/M aber MS-DOS 1.0 von Microsoft, welches konzeptionell stark an CP/M-80 angelehnt und großteils funktionell identisch war, als Konkurrenten. Obwohl IBM anfangs dem Kunden die Wahl des Betriebssystems überließ, setzte sich MS-DOS – das in der von IBM ausgelieferten Variante PC DOS hieß – aufgrund seines niedrigeren Preises von 40 US-Dollar (USD; nach heutiger Kaufkraft ca. 140 USD) recht schnell gegen das wesentlich teurere CP/M-86 durch, wobei Software zunächst für beide Plattformen entwickelt wurde.

Das aus CP/M-86 abgeleitete und dazu weitgehend kompatible Betriebssystem SCP 1700 wurde auf Intel-8086-/K1810WM86-basierten Bürocomputern des Kombinat Robotron eingesetzt. Auf dem 1985 vorgestellten Robotron A 7100 war SCP 1700 das empfohlene Standardbetriebssystem. Das an MS-DOS angelehnte Betriebssystem, welches für den Robotron A 7150 gedacht war, hieß DCP.

Die Portierung auf den Motorola 68000, genannt CP/M-68k, war kein großer kommerzieller Erfolg.

MP/M war eine Mehrbenutzersystem-Version (“multi user system”) von CP/M. Mehrere Benutzer konnten gleichzeitig über ASCII-Terminals an einem Rechner arbeiten.

Eine in den späten 1980ern entstandene Betriebssystemerweiterung zur Kommunikation zwischen CP/M-Systemen wurde „CP/NET“ genannt. Als Server diente ein MP/M-System, auf den Clients lief CP/NET. Die Clients konnten auch festplattenlos betrieben werden. Neben der gemeinsamen Nutzung von Dateisystemen waren auch elektronische Nachrichten implementiert.[5]

Später wurde aus CP/M-86 und MP/M-86 eine neue Variante „Concurrent CP/M“ (CCP/M-86) entwickelt. Diese vereinigte die Mehrbenutzerfähigkeiten von MP/M mit hoher Kompatibilität zu CP/M-86.

Software für CP/M

[Bearbeiten | Quelltext bearbeiten]

Unter CP/M wurden Anwendungsprogramme wie die Textverarbeitungen Electric Pencil und WordStar, die Tabellenkalkulationen Supercalc und Microsoft Multiplan sowie die Datenbanksoftware dBASE II (von Ashton-Tate) angeboten. Ein integriertes Office-Paket, mit der Möglichkeit der leichten Datenübernahme z. B. von der Datenbank in die Textverarbeitung, gab es unter CP/M noch nicht. Allerdings waren die damaligen Dateiformate noch recht einfach aufgebaut, so dass meist eine händische Übernahme möglich war, oder es musste ein eigenes kleines Programm dafür geschrieben werden.

Neben den Anwendungsprogrammen lag der Schwerpunkt der Software für CP/M bei Programmiersprachen zur Erstellung spezifischer Programme. Erwähnenswert sind hier MBASIC von Microsoft, Fortran, Turbo Pascal von Borland, PL/I, muLISP und COMAL. Die von Digital Research selbst angebotene Sprache PL/M, eine systemnahe Programmiersprache mit Ähnlichkeiten zu PL/I, wurde bei Digital Research auch intern viel verwendet; die Ähnlichkeit mit dem Namen des Betriebssystems ist somit nicht zufällig. Einige der mit CP/M standardmäßig mitgelieferten Hilfsprogramme wurden in dieser Sprache geschrieben. Die später so dominante Sprache C war unter CP/M noch ziemlich unbedeutend, entsprechend gibt es nur wenige Compiler für diese Sprache, die unter CP/M laufen – beispielsweise BDS C. Mit Aztec C wurde gegen Ende der Lebenszeit von CP/M ein brauchbarer Compiler verfügbar.

Zudem gab es recht große Sammlungen an gemeinfreien Programmen für CP/M, die zum Beispiel von Benutzervereinigungen oder privaten Kleinvertrieben auf durchnummerierten Disketten zusammengestellt wurden. In diesem Bereich finden sich auch Computerspiele, die im Bereich der kommerziellen CP/M-Software nie eine Rolle spielten. Viele dieser Sammlungen wurden später auf CD-ROM oder zum Herunterladen im Internet wiederveröffentlicht. Eine CD-ROM kann leicht zehntausend oder mehr der nach heutigen Maßstäben winzigen CP/M-Programme fassen.

Bildschirmfoto der Software-Emulation CPMZ80 auf einem Atari ST

Beim Übergang von 8-Bit-Prozessoren (wie dem Zilog Z80) zu 16-Bit-Maschinen (wie z. B. dem Intel 8086 und 80286) Anfang der 1980er Jahre bestand zunächst ein großer Mangel an Anwendungsprogrammen für die neue leistungsfähigere Hardware. Deshalb wurden Software-Emulationen entwickelt, die CP/M und einen Z80-Hauptprozessor virtuell auf einem 16-Bit-System nachbildeten, so dass bestehende Anwendungen und Anwendungsdaten (z. B. eine dBase-II-Datenbank) auf dem neuen System weiterverwendet werden konnten. Für MacOS gibt es eine native CP/M Emulation.[6]

2001 gab Caldera CP/Ms Quelltext unter einer liberalen Open-Source-Lizenz, welche Redistribution und Modifikation erlaubt, via Tim Olmsteads “The Unofficial CP/M Web site” frei.[7][8][9] Im Oktober 2014, um den 40. Jahrestag der Erstpräsentation zu feiern, veröffentlichte das Computer History Museum weitere frühe Quelltextversionen von CP/M unter einer Lizenz zur nicht-kommerziellen Verwendung.[10]

2022 wurde CP/M, in der Version von Digital Research, von Bryan Sparks, dem Rechteinhaber am geistigen Eigentum von Digital Research, der Allgemeinheit freigegeben.[11][12]

„Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise make available in a nonexclusive manner CP/M and its derivatives. This right comes from the company, DRDOS, Inc.'s purchase of Digital Research, the company and all assets, dating back to the mid-1990's. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets.“

Bryan Sparks
  • Rodnay Zaks: CP/M-Handbuch. 5. Auflage. SYBEX-Verlag, Düsseldorf 1984, ISBN 3-88745-053-1 (englisch: The CP/M Handbook. Übersetzt von Klaus-Jürgen Schmidt).
  • Bernd Pol: Vom Umgang mit CP/M. Eine allgemeinverständliche Einführung. 6. Auflage. IWT-Verlag, Vaterstetten 1985, ISBN 3-88322-004-3.
  • Jürgen Plate: Betriebssystem CP/M. vom Monitorprogramm zum Mehrbenutzersystem. 2., neubearbeitete und erweiterte Auflage. Franzis-Verlag, München, ISBN 3-7723-7522-7.
  • Alfons Steinhoff, Klaus Michael Rübsam: Arbeiten mit CP/M. SYBEX-Verlag, Düsseldorf 1987, ISBN 3-88745-622-X.
  • Joachim Bernert, Michael Burow, Christian Hanisch: CP/M in der Praxis. Verlag Technik, Ost-Berlin 1988, ISBN 3-341-00567-6.
Commons: CP/M – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Herb Johnson: ISIS, Osiris, Intellec, PL/M, iRMX, and Intel - 20th century. 30. Juli 2021, abgerufen am 10. Januar 2022.
  2. digitalresearch.biz
  3. Betriebssystem OS/M In: robotrontechnik.de
  4. robotrontechnik.de (abgerufen am 26. Juni 2012)
  5. digitalresearch.biz (abgerufen am 26. Juni 2012)
  6. Thomas Harte: TomHarte/CP-M-for-OS-X. 29. Februar 2020, abgerufen am 28. März 2020.
  7. The Unofficial CP/M Web site (englisch)
  8. CP/M collection is back online with an Open Source licence The Register, 26. November 2001 (englisch)
  9. License agreement for the CP/M material presented on this site (englisch)
  10. David Laws: Early Digital Research CP/M Source Code. Computer History Museum, 1. Oktober 2014, abgerufen am 25. Juli 2015 (englisch).
  11. License Agreement. Abgerufen am 16. Juli 2022.
  12. Sebastian Grüner: IBM PCs und Zilog Z80: Erstes PC-Betriebssystem CP/M offiziell Open Source. In: golem.de. 18. Juli 2022, abgerufen am 3. Februar 2024.