CP/M (Control Programm for Microcomputer) war das erste kommerzielle 8-Bit Betriebssystem der EDV-Geschichte. Es vereinfachte den Umgang mit den ersten Microcomputern erheblich, da es die Anwender (und auch die Anwendungsprogrammierer) weitgehend davon befreite, sich detailliert mit der verwendeten Hardware auseinandersetzen zu müssen. Seine Entwicklungsgeschichte überschneidet sich ab 1981 sich mit dem bekannten MS-DOS von Microsoft. Vor dieser Zeit war es das mit großem Abstand am weitesten verbreitete OS für Mikrocomputer (ca. 2 Millionen registrierte Lizenzen). Im Zusammenhang mit diesem legendären Betriebssystem ist vor allem ein Mann zu nennen: Dr. Gary Kildall.

Gary Kildall promovierte 1972 an der University of Washington in Informatik und hatte bereits Programme für den Intel 4004/8008 entwickelt. Er war 1973 bei der Präsentation des neuen Intel 8080 (einem neuen 8-Bit Mikroprozessor) anwesend, da er zu dieser Zeit für Intel als Berater tätig war. Er erkannte die neuen professionellen Einsatzmöglichkeiten, die sich mit dem Erscheinen des 8080 eröffneten. Kildall machte den Intel Managern den Vorschlag, die Mainframe-Programmiersprache PL/I (Programming Language/One) als Compiler auf den 8080 umzusetzen. Die so entstandene Programmiersprache PL/M (Programming Language for Microprcessors) wurde von Tom Rolander – ebenfalls Intel Berater – dann für das Intel Entwicklungssystem MDS-800 entwickelt. Später arbeitete Tom übrigens für Digital Research wo er zusammen mit Gary Kildall und Dorothy McEwen (die spätere Frau von Gary Kildall) das CP/M und die Tools dazu weiter ausprogrammierte.

Auf Basis von PL/M plante Gary Kildall, ein echtes Betriebssystem für den 8080 entwickeln. Da die Firma Shugart bereits Floppy Laufwerke in Serie produzieren konnte (IBM hatte die Technik erfunden) ging der Visionär Kildall davon aus, das es bald komplette Computersysteme in einer auch für Einzelanwender erschwinglichen Preisklasse geben könnte. Daher sollte eine entsprechende Unterstützung in Form eines Dateisystems in seinem zukünftigen Betriebssystem vorhanden sein.

Ende 1974 war die erste Version von CP/M fertig, ausschließlich entwickelt von Gary Kildall und seinem PL/M Crosscompiler auf einer DEC PDP-9, deren Betriebssystem TOPS-10 einen 8080 emulieren konnte. Das Filesystem von TOPS-10 verwendet die 8+3 Konvention für Dateinamen. Gary Kildall übernahm diese Konvention, Microsoft übernahm sie von CP/M und somit ist TOPS-10 dafür verantwortlich, das wir bis Windows 3.11 und bis heute bei der Benutzung von Disketten unter modernen Windows Betriebssystemen immer noch diese Beschränkung haben. CP/M 1.0 beanspruchte nur 3K Platz im Hauptspeicher eines Rechners und unterstützte Diskettenlaufwerke von IBM. Der Verkaufserfolg von CP/M 1.0 bis 1.2 war jedoch eher gering.

Kildall programmierte noch weitere Tools für das Dateimanagement sowie einen Texteditor und einen Assembler. Nachdem Intel an seiner PL/M Programmiersprache kein Interesse mehr hatte, bot er an, sein CP/M zu vermarkten. Aber Intels Marketing-Strategen sahen zu dieser Zeit keinen Markt für ein Single-User Betriebssystem. Ein anderer Weg mußte gefunden werden, um CP/M an den Mann zu bringen. Kleinanzeigen in der Fachzeitschrift “Dr. Dobbs Journal” wurden geschalten, in welchen CP/M für ca. 70 US$ angeboten wurde. Diese Ausgabe habe ich nicht, aber ersatzweise eine (einseitige!) Anzeige im “Byte Magazine” aus dem Jahr 1977 (Ausgabe 7):

1976 brachte Alan Shugart die ersten Diskettenlaufwerke zu einem Preis von 390 $ auf den Markt. Dies war das Ereignis, das sich Gary Kildall erhofft hatte, denn dadurch würde die Speicherung von Daten auch für Homecomputer-Enthusiasten erschwinglich werden. Um den Vertrieb seines Betriebssystems besser organisieren zu können, gründete Kildall die Firma Digital Research. Ebenfalls 1976 nahm der Computerhersteller IMSAI Kontakt zu Kildall auf. Wie viele andere Hersteller hatte auch die Firma IMSAI einen Computer auf Basis des Intel 8080 entwickelt (in diesem Fall ein Clone des ‘Altair 8800’), jedoch mit einem eigenen 8″-Diskettensystem, das nicht kompatibel zum von CP/M unterstützten IBM Format war. Eine spezielle Anpassung wäre erforderlich gewesen. An diesem Punkt hatte Killdall die geniale Idee, die gesamten hardwareabhängigen Routinen in einem eigenen Betriebssystemteil von CP/M zu kapseln, um damit den Aufwand für zukünftige Hardware-Anpassungen gering zu halten. Er bezeichnete diesen innersten Kern seines Systems in der Version 1.3 als FDOS (Floppy Disk Operating System). FDOS wiederum spaltete sich auf in das hardwarenahe BIOS (Basic Input/Ouput System) und das BDOS (Basic Disk Operating System).

Dieses Konzept Kildall’s war zukunftsweisend für spätere Entwicklungen (das Prinzip wird bis heute angewendet!) und hat entscheidend zur großen Verbreitung von CP/M beitragen. Die in den Funktionsmodulen definierten standardisierten Sprungtabellen ermöglichten eine einfache Portierung von CP/M auf unterschiedlichste Hardware. Nur der Intel 8080 (oder eine kompatible CPU) war eine zwingende Voraussetzung.

Über diesen beiden Kernfunktionen BIOS und BDOS legte er ein Bedienerprogramm, den CCP (Console Command Processor). Dieses wird beim Booten von einer Diskette automatisch in den Speicher des Rechners geladen, benötigt dort ca. 2K und interpretiert die Benutzereingaben. Anfangs unterstützte der CCP nur 5 Kommandos

DIR Diskettenverzeichnis anzeigen
ERA Eine oder mehrere Dateien löschen
REN Datei umbenennen
SAVE Speicherbereich als Diskettendatei ablegen
TYPE Datei ausgeben

Eine Erweiterung mit eigenen, externen Kommandos war möglich. Diese mussten in Form ausführbarer Dateien vorliegen und wurden vom CCP gestartet. Die Bekanntesten sind PIP (zum Kopieren von Dateien und Disketten) und ED, der zeilenorientierte Texteditor.

In der Microcomputerwelt wurde CP/M jetzt schnell zum Betriebssystem der ersten Wahl. Viele Hersteller mit unterschiedlichster Hardware (u.a. MITS, Vector, Northstar, Heath, Cromenco) lizensierten im Jahre 1977 CP/M für ihre Modelle, da es sich über das BIOS leicht an die eigenen Systeme anpassen ließ und bereits mit 16K RAM anstandslos funktionierte. Der Umsatz von Digital Research stieg noch im gleichen Jahr enorm an und wuchs zu einem ertragreichen Unternehmen heran.

Ende der 70iger Jahre begann sich Zilog mit dem Z80 Prozessor auf dem Markt durchzusetzen, da er leistungsfähiger war als der inzwischen in die Jahre gekommenen 8080. Wie bereits erwähnt war zu diesem Zeitpunkt CP/M jedoch nur auf einem Intel 8080 oder einer komaptiblen CPU lauffähig. Diese Ära endete jetzt. Die letzte auf den 8080 spezialisierte Version 1.4 kam 1979 auf den Markt. Diese Version benötigte 20K Hauptspeicher (16K RAM kosteten damals fast 400 US$!) und ein einseitiges IBM-kompatibles Diskettenlaufwerk.

Die meisten Hersteller setzten nun den preiswerten Z80 (manche auch den Intel 8085) in ihren Systemen ein, entsprechende Anpassungen von CP/M für einen Einsatz auf den unterschiedlichen CPU’s erfolgten 1979 mit der Version 2.0. Das nun völlig überarbeitete CP/M wies anfangs allerdings viele Fehler auf und wurde schnell durch eine fehlerbereinigte Version 2.1 ersetzt. Zur Unterstützung der aufkommenden Festplatten wurden in der Version 2.2 Formatierroutinen zur Unterstützung von Laufwerken bis zu 8 MB eingeführt. Die Version 2.2 erschien 1980, war sehr stabil und konnte sich in den folgenden Jahren bei Büro-PC’s und professionellen Anwendern auf breiter Front durchsetzen, nur wenige namhafte Hard- und/oder Softwarehersteller (z.B. Commodore) hatten zu dieser Zeit keine Produkte für CP/M im Regal. Stellvertretend für die vielen Hersteller wie DEC, Osborne, Kaypro, Morrows u.s.w. hier ein Bootscreen der NCR Decision Mate V mit CP/M 2.2 sowie mit gestartetem dBase II (tut mir leid wegen der schlechten Bildqualität, Screenshots sind nicht meine Stärke):

Ein Highlite der Sammlung des Vintage Computing Lab sind originale, äußerst seltene Printouts der Quellcodes von CP/M 2.2, ASM 86 und CP/Net 1.0. Diese wurden uns von Reinhold Hohol, dem ehemaligen Leiter der Applikationsabteilung der Digital Research GmbH in München, zur Verfügung gestellt. Seiner Aussage nach haben von allen DR Kunden in Europa damals nur Siemens (GWK in Karlsruhe) und einer in England (Apricot oder Sinclair) diese Printouts als Ergänzung zu den Lizenzen gekauft bzw. überhaupt verkauft bekommen.

Neben dem Betriebssystem kümmerte sich DR auch um die Entwickler und stellte verschiedene Softwaretools zur Verfügung. Im Bild die Programmiersprache PL/1, der AccessManager (Datei-Handling, Datenbank), die Programmers Utilities (Editor u.a.) sowie den Display Manager (Entwicklung für verschiedene Bildschirmauflösungen).

Da bereits im Mai 1978 mit dem Typ 8086 der erste Intel 16-Bit Prozessor erschienen war, plante Kildall eine 16-Bit Version von CP/M. So wurde 1979 mit der Entwicklung von CP/M 86 begonnen. Ebenfalls 1978 kam Motorola mit der 68000er CPU auf den Markt, wie der 8086 ein 16 Bit Prozessor. Auch hierfür gab es später eine Umsetzung in Form von CP/M 68K.

Jack Tramiel liess diese Version speziell für seine Atari 68000-Modelle von DR anpassen, weigerte sich aber, für einzelne Lizenzen zu bezahlen. Tramiel war lediglich bereit, DR den Entwicklungsaufwand zu honorieren. Bis auf den Kernel blieb bei dieser Variante allerdings nicht viel von CP/M 68K übrig. In der Atari- Variante ähnelte CP/M am Ende eher MS-DOS.

Digital Research entwickelte später mit GEM (Graphic Enviroment Manager) eine grafische Benutzeroberfläche für Atari. Bereits ein Jahr vor der ersten Windows Version, Ende 1984, erschien auch die Intel-Version von GEM. Der Vorteil dieses GUI war, das die Hardwareansprüche wesentlich geringer ausfielen als die von Windows. GEM lief auch auf einem 8086 PC ohne Festplatte, war – nicht nur wegen der konsequenteren Verwendung von Icons – optisch filigraner und auch ohne Farbgrafik noch ansehnlich. Bis 1990 fand dann ein direkter Konkurrenzkampf zwischen Windows und GEM statt, der hauptsächlich in den Fachzeitschriften ausgetragen wurde. Doch die Vermarktungsstrategie von Microsoft stellte sich letztendlich als die bessere heraus. Ein Microsoft-Trick war z.B., Produktversionen in Aussicht zu stellen, deren Entwicklung zum Zeitpunkt der Ankündigung noch nicht mal begonnen hatte. Aber so hielt man viele Kunden vom GEM-Kauf und die Entwickler von der Umsetzung Ihrer Applikationen auf GEM ab. Mit Erscheinen von Windows 3.0 im Jahr 1990 und der erheblich gestiegenen Leistung der Computer-Hardware endete der Kampf, mit Microsoft und Windows als Sieger.

1979 wurden drei weitere Linien der CP/M-Familie begründet:
– die Multi-User Variante von CP/M 80, bezeichnet als MP/M 80 (Multi-Programming Monitor Control Program), lauffähig auf 8080 oder Z80 CPU’s. Es ermöglichte mehreren Benutzern den Zugriff auf einen einzigen Computer via Terminals und war in gewisser Weise multi-tasking fähig (so würde man es heute bezeichnen, denn dieser Begriff existierte zu dieser Zeit noch gar nicht. DR nannte diese Funktionalität Nucleus). MP/M erlaubte Benutzern, mehrere Programme zu starten und zwischen ihnen umzuschalten und ermöglichte gleichzeitige I/O Operationen. Das Dateiformat war zwar zu CP/M identisch, ansonsten lief nicht jede CP/M Anwendung auch auf MP/M. Wenn Sie mehr über MP/M wissen wollen, hier können Sie das Handbuch lesen.
– die multi-tasking fähige Single-User-Variante in Form von Concurrent CP/M 80 (Bilder weiter unten bei Concurrent CP/M 86)
– Netzwerkerweiterungen in Form von CP/NOS und Ende 1979/Anfang 1980 CP/NET. Als Hardware benutzte man damals das ARCNET von Datapoint. Diese Systemerweiterungen verkauften sich nicht besonders gut. 1980 verstand niemand, wozu das gut sein sollte, denn dafür gab es doch die terminalbasierten Mainframes…

CP/M war so erfolgreich, das selbst andere Computer ohne 8080 oder Z80 Prozessoren Erweiterungskarten einsetzten um die inzwischen riesige Menge an CP/M Software nutzen zu können. Für Verkaufsschlager wie den Apple II (MOS 6502) gab es Z80-Karten. Die erfolgreichste CP/M-Zusatzkarte für den Apple II vertrieb Microsoft. Unglaublich, aber angeblich wahr: 1980 konnte Microsoft so viele Softcard’s absetzen wie DR im gleichen Jahr CP/M Lizenzen.

Die Installationsbasis von CP/M stieg auf 200.000 Systeme, wobei viele unterschiedliche Hardwarekonfigurationen unterstützt werden mußten. Der Umsatz von Digital Research erreichte 1981 6 Mio $, 75 Angestellte arbeiteten zu dieser Zeit in der Firma. CP/M 2.2 bildete auch die Grundlage für MS-DOS. Wieso das ? Weil nach Expertenmeinung das 1980 von Tim Paterson entwickelte Betriebssystem QDOS sich an CP/M 2.2 orientierte und aus diesem QDOS im Jahre 1981 MS/PC-DOS entstand (siehe Wissenswertes über MS/PC-DOS).

Auch Homecomputer wie der Amstrad CPC oder Commodore C64 (Hardware-Erweiterung mit Z80 CPU) konnten CP/M 2.2 einsetzen. Aufgrund des 40 Zeichen-Modus dieser Modelle war es allerdings nur sehr eingeschränkt nutzbar.

Die letzte CP/M Version für 8 Bit Rechner, CP/M 3.0 bzw. CP/M Plus kam 1982 auf den Markt und unterstützte die Technik des “Bank Switching”. Durch diesen Programmiertrick stand Systemen mit höherem RAM Ausbau (z.B. 128K) für Anwendungsprogramme bis zu 62K des durch CP/M maximal adressierbaren Speichers zur Verfügung. Zudem wurde eine Reihe von Aufgaben, die zuvor vom herstellerspezifischen BIOS ausgeführt werden mussten, auf das herstellerunabhängige BDOS verschoben. Die Portierung von CP/M auf andere Hardware-Plattformen wurde dadurch wesentlich vereinfacht. Der Commodore 128 und der Amstrad CPC 6128 waren hierzulande die bekanntesten Computer, die standardmäßig mit CP/M 3.0 ausgeliefert wurden:

1981 war ein entscheidendes Jahr für Gary Kildall und Digital Research. IBM suchte ein Betriebssystem für seinen PC. Folgerichtig wendete sich IBM auch zuerst an Kildall, denn das in Arbeit befindliche CP/M 86 des Marktführers für Mikrocomputer-Betriebssysteme wäre eigentlich das adäquate Produkt für IBM’s PC gewesen. Die Verhandlungen zwischen IBM und DR scheiterten jedoch (siehe Wissenswertes über MS/PC-DOS). Was auch immer genau die Ursache dafür war, der praktisch nicht vorhandene Geschäftsinstinkt Gary Kildalls war mit Sicherheit ein wesentlicher Faktor, der zu dieser historischen Fehlentscheidung geführt hat. Sie markierte auch den Zeitpunkt für den Anfang vom Ende von Digital Research, obwohl IBM letztendlich auch CP/M 86 in der Optionsliste für den IBM PC führte.

Der IBM PC Version von CP/M 86 1.1 (aus dem Jahre 1982) lag ein Flyer bei (leider nur in englischer Sprache vorhanden). Dieser verdeutlicht, das man bei Digital Research bereits den Managementfehler erkannt hatte und nun versuchte, die “davonschwimmenden Felle” noch einzusammeln, indem man das eigene OS als das “Bessere” für den IBM PC bewarb. Das stimmte sogar, zumindest im Vergleich zu den MS-DOS 1.x Versionen. Allerdings hat Kildall immerhin 1 Jahr gebraucht, um den Erfolg des IBM PC und die vorausgegangenen eigenen Fehler bei den Verhandlungen mit IBM zu realisieren!

1982 erscheint eine neue 16-Bit Version in Form des Multiuser- und Multitasking-fähigen Concurrent-CP/M 86. Diese führt die beiden Betriebssystemlinien CP/M 86 und MP/M 86 zu einem Produkt zusammen und ist in der Lage, MS-DOS 1.0 und 1.1 zu emulieren.

Aber die Zeit von CP/M ist vorüber, MS-DOS 2.x konnte sich nach und nach auf einer immer breiter werdenden Front durchsetzen. DR hatte es verpasst, ein hierarchisches Dateisystem einzuführen, wie es MS mit DOS 2.x getan hatte. CP/M war dadurch bei den sich immer stärker verbreitenden Festplattensystemen MS-DOS unterlegen. Die Softwarehersteller, die bisher Programme für CP/M hergestellt hatten, erkannten dies und modifizierten ihre Produktpalette zugunsten von MS-DOS.

Die Namensgebung der 16-Bit Versionen von CP/M ist verwirrend. Wir haben eine Erklärung in den Google-Groups dazu gefunden:

Concurrent CP/M, Concurrent DOS, MP/M-86, Concurrent PC-DOS sind grundsätzlich das gleiche Produkt. DRI änderte den Namen des Betriebssystems mit jeder neuen Ausführung. Versionen vor 3 (vor 1981 oder 82) werden mit MP/M-86 bezeichnet. Die Versionen 3.x dann als Concurrent CP/M (CCPM). Die Version 4 und höher wird mit Concurrent DOS (CDOS) und Concurrent PC-DOS benannt. Ab Version 3.2 werden neben den CP/M eigenen auch MS-DOS Version 1.x Medien und Software unterstützt. Version 4.x erweitert die Unterstützung um das MS-DOS 2.x-Dateisystem mit Pfaden und Handle-Aufrufen. Version 5 unterstützt die neu hinzugekommenen Funktionen von MS-DOS 3.x. Die direkte CP/M-Medienunterstützung wurde mit Version 5 eingestellt (1986). 1987 folgte Concurrent DOS 386 Version 1.0. Es beinhaltet grundsätzlich die gleichen Funktionen wie CDOS 5 und unterstützt zusätzlich den virtuellen 8086-Modus. Alle diese Versionen sind echte Multitasking-Betriebssysteme mit Warteschlangen und Flags für die prozessübergreifende und virtuelle Kommunikation. Sie können mit STRG- <num-pad> zu einer anderen DOS-Eingabeaufforderung (Konsole) wechseln. Selbstverständlich unterstützen alle Concurrent DOS-Versionen CP/M-86.

Hier endet die Geschichte von CP/M, des ersten Betriebssystems für Mikrocomputer. CP/M ist heute ein freies Betriebssystem, die Quellcodes sind öffentlich einsehbar unter: http://www.cpm.z80.de.

Die Geschichte von der Firma Digital Research geht noch ein paar Jahre weiter, denn man entwickelte auf Basis von CP/M 86 ein eigenes, zu MS-DOS kompatibles Betriebssystem. Die erste Version war 1988 DR-DOS 3.31, ausgeliefert wurde ab 1989 DR-DOS 3.41. Weitgehend kompatibel war es vor allem billiger als das Pedant von Microsoft. In Teilbereichen war DR-DOS 3.41 MS-DOS sogar überlegen, z.B. konnte es Festplatten bis 512MB verwalten. Viele Computerhersteller lieferten DR-DOS erfolgreich im Bundle mit Windows aus. Doch diesem Treiben von DR setzte Microsoft ein Ende. Behauptung kursierten durch die Fachzeitschriften, das MS einerseits Windows so veränderte, das es beim Betrieb unter DR-DOS nicht mehr korrekt funktionierte bzw. den Dienst komplett verweigerte. Zudem wurden Händler unter Druck gesetzt, DR-DOS nicht weiter mit Windows zu ‘bundeln’, da sie sonst kein Windows mehr bekämen (s.a. ‘Die Microsoft Akte’, Wendy Goldmann-Rohm). Trotzdem erschienen noch weitere Nachfolger dieses Betriebssystems in Form von DR DOS 5.0 und 6.0. Varianten der DR-DOS Familie waren DR PalmDOS (1993), das Mehrbenutzer-System Multiuser-DOS sowie die zusätzlich noch multitaskingfähigen DR Concurrent DOS/386 und DR Concurrent DOS/XM. Die Informationen dieses Absatzes überschneiden sich an dieser Stelle mit Wissenwertes über MS-DOS.

1991 verkaufte Gary Kildall Digital Research an Novell. 1994 stirbt er im Alter von nur 52 Jahren – vermutlich an den Folgen eines Herzinfarkts. Doch auch hier gibt es mehrere Versionen der Geschichte. Er war ein genialer Programmierer, ein großer Pionier und bis zu seinem Tod ein Visionär gewesen, aber im Vergleich zu Bill Gates ein lausiger Geschäftsmann.

Unter www.archive.org findet sich ein Film über das Leben von Gary Kildall. Suchen Sie einfach nach dem Begriff ‘Gary Kildall’.