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