Ich hatte schon seit einiger Zeit vor, mich näher mit CP/M zu beschäftigen, dem ab 1974 von Gary Kildall und seinem Unternehmen Digital Research entwickelten „Steuerprogramm für Mikrocomputer“ (Control Program for Microcomputers).
CP/M wurde ursprünglich für die 8-Bit-Prozessoren Intel 8080 bzw. den zum 8080 binärkompatible Zilog Z80 entwickelt und auf Home oder kleinen Personal Computern mit Diskettenlaufwerk(en) verwendet.
In der ehemaligen DDR gab es einen Nachbau namens SCP (Single User Control Program), das auf der CPU U880, einem Nachbau des Z80, lief.
In den 1980ern hatte ich zwar einen „Personal Computer“ mit Z80-CPU, einen Triumph-Adler Alphatronic PC, aber ich hatte damals keine Gelegenheit, darauf mit CP/M zu arbeiten – mir fehlte das dafür notwendige Floppy-Laufwerk. Der PC ohne Monitor oder Laufwerke kostete allein schon 1500 DM, und das erste Floppy-Laufwerk (mit integriertem Controller) hätte immerhin noch einmal 1800 DM gekostet (das zweite Laufwerk wäre, da ohne eigenen Controller, billiger gewesen, aber nutzlos ohne das erste).
Somit hatte ich nur das im ROM des Alphatronic eingebaute MS Basic 5.11 und ein auch nicht gerade billiges Steckmodul mit der Textverarbeitung Micro-Text von VictorSoft. Ich wollte mit dem PC vor allem Texte verfassen, deswegen war mir auch ein Computer mit deutscher Tastatur wichtig – und dazu gehörte der Alphatronic, der zwar im Auftrag von Triumph-Adler in Japan gefertigt wurde, aber in Deutschland mit deutscher Tastatur geliefert wurde.
Ohne Floppy-Laufwerk (und natürlich auch ohne Festplatte) musste ich, um Dateien zu laden oder zu speichern, einen Kassettenrecorder anschließen. Und statt eines guten Monitors hatte ich auch nur einen kleinen Fernseher.
Und so kam es, dass ich erst mehr als 40 Jahre später in den Genuss von CP/M komme, um damit herumzuspielen.
Aktuell habe ich drei Varianten installiert:
- CP/M 2.2 in den Z80-Emulatoren RunCPM und cpmemu
- CP/M Plus (3.0) im Commodore-128-Emulator VICE
- CP/M-86 1.1 in VirtualBox und DOSBox Staging
CP/M 2.2 war die wahrscheinlich damals am meisten verwendete Version von CP/M. Oft wurde es mit WordStar, dBase und Multiplan in Büro-Umgebungen eingesetzt. WordStar war damals die Textverarbeitung schlechthin und erschien später auch für DOS, konnte aber dann nicht mehr an frühere Erfolge unter CP/M anknüpfen. dBase war eine mächtige Datenbank und Multiplan (von Microsoft) eine damals sehr verbreitete Tabellenkalkulation.
CP/M Plus bzw. 3.0 war der Nachfolger von CP/M 2.2. Der Commodore 128, der neben dem MOS 8502 für den C64- und C128-Modus auch den Z80 eingebaut hatte und 128 kB RAM mitbrachte, konnte CP/M Plus von Diskette starten. Allerdings lief der Z80 im C128 nur mit verringerter Geschwindigkeit, wodurch CP/M auf dem C128 langsamer war als auf vielen anderen Computern.
CP/M-86 ist die 16-Bit-Variante von CP/M für Computer mit der CPU 8086 bzw. 8088 (oder 80186), also etwa für den IBM PC oder XT (und damit heutzutage auch unter VirtualBox oder DOSBox lauffähig).
Ein passendes CP/M-86 für VirtualBox bzw. DOSBox zu finden war am schwierigsten, hat aber letzten Endes funktioniert. In der VirtualBox konnte ich sogar eine Festplatte mit 8 MB einbinden (in DOSBox habe ich das nicht hinbekommen, CP/M-86 mag die ihm angebotene Abbilddatei nicht erkennen).
Am ehesten gefällt mir CP/M 2.2 in RunCPM, aber auch cpmemu läuft sehr gut. Mit dem CP/M Plus im Commodore 128 und dem CP/M-86 in VirtualBox oder DOSBox habe ich mich noch nicht so intensiv beschäftigt. Gerade die Beschäftigung mit CP/M-86 in VirtualBox wäre wegen der Festplatten-Unterstützung interessant (bisher weiß ich nur, dass die Festplatte erkannt wird und von CP/M aus eingerichtet werden kann). Apropos Festplatten – CP/M-86 konnte ohne Änderungen am Kernel nur mit einer Partition von bis zu 8 MB umgehen (was mit MS DOS bis Version 2 noch gar nicht möglich war).
CP/M sieht DOS sehr ähnlich, verwendet auch teilweise dieselben Befehle, und das ist kein Zufall.
CP/M war der Vorläufer von DOS. Ursprünglich für den Intel-Prozessor 8080 entwickelt und auch unter der in Home Computern häufig eingesetzten Zilog-CPU Z80 (lauffähig, gab es später auch Versionen für andere Prozessoren, so auch für die Intel-Prozessoren 8086 bzw. 8088, nämlich CP/M-86.
Aus CP/M bzw. CP/M-86 haben Digital Research (der Erfinder von CP/M) und SCP (eine kleine Firma aus Seattle) jeweils ein DOS für 8086/8088-CPUs entwickelt, DR DOS und QDOS (was für „Quick'n'Dirty Operating System“ stand). Microsoft hat QDOS (inzwischen in 86-DOS umbenannt) aufgekauft und daraus für IBM und deren Einstieg in die Welt der Personal Computer PC DOS entwickelt und das dann auch selbst unter dem Namen MS DOS verkauft. Ab MS DOS/PC DOS 2.0 beherrschte Microsofts DOS auch Festplatten (bis 10 MB), da der IBM XT als Nachfolger des IBM PC erstmals mit Festplatte verkauft wurde.
DR DOS, wie CP/M (und die Zwischenstufen Concurrent CP/M, Concurrent DOS und DOS Plus, die jeweils sowohl CP/M- als auch DOS-Programme ausführen konnten) von Digital Research entwickelt, gilt bis heute vielen als das im Vergleich zu MS DOS (oder PC DOS) deutlich bessere DOS, es konnte sich aber nie durchsetzen.
Mein erstes DOS war übrigens ein DR DOS 3.41, aber das nur nebenbei. MS DOS bin ich erst sehr viel später begegnet, ich habe DR DOS vorgezogen und bis zur letzten von Digital Research entwickelten Version 6 verwendet.
Microsoft wollte IBM eigentlich das wesentlich modernere und auch leistungsfähigere Unix-System XENIX verkaufen, aber XENIX benötigte nicht nur viel mehr Arbeitsspeicher als CP/M oder DOS, sondern auch zwingend eine Festplatte. Damit wäre der IBM PC sehr viel teurer geworden als geplant, also kam der IBM PC mit PC DOS oder alternativ (und deutlich teurer) mit CP/M-86, wenig RAM und ohne Festplatte. Erst der Nachfolger XT wies eine Festplatte auf, aber IBM blieb trotzdem bei PC DOS und wagte erst viele Jahre später (und leider erfolglos) den Umstieg auf ein anderes Betriebssystem, nämlich OS/2, dessen erste Versionen man gemeinsam mit Microsoft entwickelte.
Wer heute (wie ich) mit Linux am PC arbeitet, setzt eigentlich das um, was Microsoft schon zu Beginn der PC-Ära wollte: einen PC mit einem unixoiden Betriebssystem.
Und unter meinem Linux läuft nun also CP/M, das damals Vorbild für DOS war – und uns letzten Endes (und zu meinem Bedauern …) auch Windows beschert hatte.
So konnte ich mich nach mehr als 40 Jahren auch einmal wieder mit BASIC befassen, wie damals auf dem Alphatronic. Ungünstigerweise habe ich inzwischen alles vergessen, aber wenigstens ein kleines Programm habe ich noch hinbekommen:
10 FOR I=1 to 25
20 PRINT "Hello from my virtual CP/M-80"
30 NEXT I
Viel interessanter als MBASIC finde ich natürlich Programme wie WordStar, aber die Bedienung ist doch sehr anders als wir es heute von modernen Textverarbeitungen gewohnt sind.
Dieser Beitrag ist in etwas kürzerer Form zuerst in meinem Phlog erschienen (gopher://gopher.molthagen.de/1/phlog/20260930-01).
