Die Geschichte von CP/M (2)
So, heute geht es weiter mit der Geschichte von CP/M. Der gesamte Aufsatz findet sich auf der Website. Dieser Teil schließt direkt an den Teil vom Vortag an, wurde nur, damit der Artikel nicht zuu lang wird in zwei Teile aufgeteilt.
CP/M entsteht
Die folgenden Wochen vergehen damit, das Kildall das System mit einem zweiten Laufwerk erweitert. Es gibt Interessenten und sie duplizieren das Hardwaredesign einige Male. Keiner der folgenden ersten Implementierungen von CP/M erreichte jemals eine große Stückzahl so war eines der ersten Projekte eine „Astrologymaschine“ die bei Eingabe von Geburts- und Zieldatum Horoskope berechnet und ausgibt. Ben Cooper hat die Idee und er leistet auch Beihilfe zur Weiterentwicklung von CP/M. Er braucht, anders als Kildall, Utilites für die Assemblerprogrammierung und arbeitet an einem Assembler und Disassembler. Ihm verdankt man es, dass das Kommando zum Löschen von Dateien „ERA“ als Abkürzung von „Erase“ und nicht „del“ heißt. Denn übermüdet wollte er sich das Verzeichnis anzeigen lassen, also den Befehl „Dir *.*“ er tippt aber „del *.*“ ein und das Löschprogramm heißt damals noch „del“. Das löscht alle Dateien und damit die Arbeit die bisher erfolgte. Als Folge wird das Kommando umbenannt und bei dem Parameter „*.*“ gibt es eine Sicherheitsabfrage.
Natürlich versucht Kildall auch CP/M an Intel zu verkaufen – viele Rechner, die es einsetzen, sind aufgerüstete Intellec-80 Systeme. Aber Intel hat kein Interesse, sie entwickeln mit drei Mitarbeitern ein eigenes System namens ISIS. Wenig später löst sich Intel auch von allen freien Mitarbeitern, also auch von Kildall.
Kildall trifft Jim Warren auf einer Konferenz, der ihn auf seine gerade erst erschienene Zeitschrift „Dr. Dobb’s Journal of COMPUTER Calisthenics & Orthodontia“, kurz DDJ aufmerksam macht. In ihr veröffentlicht Gary Kildall eine Anzeige, in der er das Betriebssystem CP/M für 25 Dollar anbietet. Ich habe die Anzeige nicht mehr gefunden, aber einen sehr positiven Artikel vom Jim Warren selbst in der April 1976 Ausgabe von DDJ. Der Preis ist lächerlich. Zu der Zeit wird schon das Altair BASIC von Microsoft für 340 bzw. 500 Dollar (für 4 bzw. 7 KByte Code) verkauft. Vor allem, wenn man den Preis in Bezug auf die benötigte Hardware setzt, die benötigt wird, also einen 8080-Rechner mit für die damalige Zeit viel Speicher, zwei Diskettenlaufwerken, einem Controller und einem Videoterminal. Später wird Jim Warren ihn überreden, Cohost der Fernsehsendung „Computer Chronicles“ zu sein der er von 1983 bis 1989 seinen Sachverstand einbrachte.
1975 kommt der erste Volumenvertrag für CP/M zustande. Kildall und Jon Torode können Omrode, einen Hersteller von Videoterminals, spezialisiert für das Verarbeiten von Text für Zeitungen überzeugen das Design des Diskettencontrollers von Torode und CP/M für 25.000 Dollar zu lizenzieren. Omrode baut dann auch die erste Hardware, die serienmäßig CP/M einsetzt. Zeitgleich hört Kildall davon, das eine Firma namens MITS einen Computer für nur 400 Dollar herausbringen will. Gary Kildall, der den Preis eines 8080 kennt – 360 Dollar – ahnt das man hier einen großen Rabatt herausgeschlagen hat. Intels Intellecsysteme sind viermal teurer. Etwas später im selben Jahr wird die Firma IMSAI von Ed Faber gegründet. Er lässt einen Nachbau des Altairs entwickeln, will diesen aber als „Business“ Computer verkaufen, während der Altair sich an Hobbyisten wendet die BASIC einsetzen wollen. Dazu braucht er Diskettenlaufwerke und ein Betriebssystem. Ed Faber war schon bei Omrode und so wendet er sich an Gary Kildall. Er bekommt eine Kopie und gibt sie an seine Ingenieure die von ihr überzuegt sind. Ed Faber war kein Hardware-Designer, er war Marketing-Spezialist, so schlug er Kildall und seiner Frau bei einem Abendessen vor das IMSAI kein eigenes Betriebssystem baut, sondern das von Kildall lizenziert – für 25.000 Dollar. Kildall sagt sofort zu, das ist schließlich das was er sonst im ganzen Jahr verdient. Nach dem Abendessen mit Kildall und seiner Frau Dorothy gibt Faber als Verkaufsmensch aber ihm noch einen Rat: er sollte niemals ein Produkt für einen fixen Preis lizenzieren, sondern immer pro Kopie. Er hielt die beiden für nicht besonders geschäftstüchtig.
Erneut muss Kildall CP/M an neue Hardware anpassen und er überlegt wie dies in Zukunft einfacher gehen könnte. Dies geht, indem er das Betriebssystem im drei Teile aufteilt: Dem Kommando-Interpreter der Programme startet und einige eingebaute Kommandos hat. Dem BDOS, dem eigentlichen Kern für die Interaktion mit dem Anwendungsprogramm mit definierten Routinen für das Anlegen von Dateien, deren Verarbeitung, Ausgabe auf dem Bildschirm oder von der Tastatur etc. Dieser Teil greift auf elementare Routinen zu, die er BIOS (Basic Input/Output System) nennt. Nur dieser Teil muss jeweils an die Hardware angepasst werden, was die Arbeit bedeutend vereinfacht. Das BIOS enthält die Routinen um den Diskettenkontroller anzusteuern. Wäre Gary Killdall geschäftstüchtiger gewesen, er wäre zum Patentamt gegangen und hätte ohne das er jemals wieder Software verkauft ausgesorgt, denn ein BIOS hat jeder Rechner und davon wurden seitdem Milliarden Stück verkauft, mit Lizenzeinnahmen, wenn er das Prinzip patentiert hätte.
Zu der Zeit gab es auch das erste Treffen mit Bill Gates, der mit einem Porsche 911 ankam, den er sich von den Tantiemen für BASIC leisten konnte. Zeitweise schwirrte die Idee in der Luft, das Digital Research und Microsoft fusionierten. Es kam nie dazu. Seitens Kildall, weil der Fokus von Gates auf das Geldverdienen, ohne Rücksicht auf Verluste oder Freunde, die auch Geschäftspartner waren, ihm nicht geheuer war, seitens Gates ,weil Microsoft zu der Zeit und noch für einige Jahre, die viel kleinere Firma war und so er befürchtete das Microsoft geschluckt werden würde. Letztendlich scheiterte es aber auch daran das die beiden Firmen ihren Firmensitz an unterschiedlichen Orten hatten, Digital Research in Monterey (Kalifornien), Microsoft damals noch in Albuquerque (New Mexiko), später in Seattle (Washington). Mit Microsoft hatte er in der Folge bis zum DOS-Deal wenig zu tun, weil die Firma sich auf Programmiersprachen spezialisierte. Eine Ausnahme war die Softcard: ein von Seattle Computer Products (SCP) designte Karte mit einem Z80 Prozessor, die man in einen Apple II einstecken konnte und die es erlaubte CP/M zu laden. Microsoft kauft das Design und lizenziert anfangs 10.000 Kopien von CP/M für 2,50 Dollar. Die Softcard sorgte kurz nach Veröffentlichung dann für einen Großteil von Microsofts Umsatz, was die Marktbedeutung von CP/M unterstreicht.
1976 gab es die West Coast Computer Faire, veranstaltet von Jim Warren, die erste Computermesse. Gary Kildall entdeckte das erste Firmen Anwendungen für CP/M schrieben. Das förderte den Umsatz enorm. Auch Digital Research, die neu gegründete Firma von Kildall war vertreten. Ursprünglich hieß sie damals noch Intergalactic Digital Research, weil eine Beratungsfirma in Los Angeles den Namen schon hatte. Als diese 1980 pleite ging, übernahm man die Namensrechte und löschte das „Intergalactic“ aus der Firmenbezeichnung. Inzwischen war die Version 1.3 von CP/M erschienen und Gary Kildall hatte hinzugelernt und verkaufte es nun für 70 Dollar pro Kopie. Der Preis stieg dann auf 100 Dollar für die Version 1.4.
Die weiteren Versionen von CP/M
Inzwischen hatte Digital Research auch Angestellte. Kildall überlies ihnen die Weiterentwicklung. Es gab noch zwei größere Versionssprünge. Die Version 2.0 war nötig geworden, weil inzwischen die 5,25 Floppy Disk auf den Markt gekommen war. CP/M war bisher auf IBM-Kompatible Laufwerke im 8-Zoll-Format ausgelegt. Das System wurde so umgeschrieben das es mit variablen Sektorgrößen, Spuren und Sektoren pro Spur arbeiten konnte. Damit war es gerüstet für neue Format, denn es sollten noch die 3,5 Zoll, 3 Zoll und sogar 2,8 Zoll Diskette erscheinen, Marktbedeutung erreichte aber nur das 3,5 Zoll Format. Man konnte die Information wie die Diskette organisiert ist, sogar zur Laufzeit austauschen, was sehr wichtig war da Software in dem Diskformat vertrieben werden musste, das der Zielrechner kannte. So konnte ein Computer eines Softwarehändlers eine Diskette in diesem Format formatieren und die notwendigen Dateien von einem anderen Laufwerk in einem anderen Format auf sie kopieren, ohne dass man diesen Computer besaß. Die letzte Version war dann die 3.0. Sie kam erst relativ spät, 1982 auf den Markt. CP/M 3 konnte über Bank-Switching mehr als 64 KByte adressieren und so dem Anwenderprogramm nahezu den gesamten direkt adressierbaren Speicher (meist 61 oder 62 der maximalen 64K) zur Verfügung stellen.
Es war aber eine Anpassung, die von Angestellten durchgeführt wurde. Es gab aber sonst nur kleine Neuerungen, so war bis zuletzt der selbst von Kildall als schlecht bezeichnete Editor ED an Bord, es gab keine neuen Dienstprogramme oder diese wurden komfortabler. Auch steckte bald in allen CP/M Rechner der Z80 Prozessor. Die Codebasis die vor allem Kopieraktionen beschleunigte – solche waren beim Schreiben und Lesen von Diskette immer nötig – wurde aber nie an den Z80 angepasst. Gary Kildall interessierte das Programmieren, nicht das Warten bestehender Software obwohl damit der Haupterlös von Digital Research zustande kam – 1978 betrugt der monatliche Umsatz schon 100.000 Dollar und die Gewinnmarge lag bei 57 Prozent. Die Firma verdiente so gut, das es jeden Freitag eine Party mit den Angestellten gab. Stattdessen investierte er zwei Jahre in das Erstellen eines PL/1 Compilers, obwohl er selbst anfangs nicht viel von der Programmiersprache hielt. PL/1 hat nichts mit dem schon eingesetzten PL/M zu tun. Es ist eine Sprache für Großrechner von IBM die damit zwei Welten verbinden wollten – die mathematischen Fähigkeiten von FORTRAN und die Fähigkeiten zur Verwaltung von taten und Dateien von COBOL. Kritiker meinten PL/1 habe nicht die Vorteile, sondern die Nachteile beider Sprachen übernommen. Nach zwei Jahren war PL/I-80 fertig, aber die Nachfrage danach war gleich Null.
So versäumte es Digital Research auch frühzeitig Standards zu setzen. CP/M 2.0 kam 1978 heraus, schon 1976 gab es 5,25 Laufwerke und DRI brachte erst eine neue Version heraus als es schon Kundenbeschwerden hagelte. Ebenso versäumte man es für die neuen Mikroprozessoren 8086 und 68000 frühzeitig eine Version von CP/M zu adaptieren. Diese Versionen (CP/M-86 und CP/M-68K) kamen, aber relativ spät. CP/M-86 unterlag dem Rennen als Betriebssystem des IBM PC, obwohl das PC-DOS nur eine Kopie des 8 Bit CP/Ms war, die anfangs sogar viele Fehler hatte. Aber IBM verkaufte eben das eine Produkt (CP(M-86) für 240 Dollar und das andere (PC-DOS) für 40. Stattdessen konnte man Kildall für Projekte begeisterten, die wenig Sinn machten. So gab es MP/M eine Multi-User Version von CP/M. Sehr fortschrittlich für die Zeit, aber realistisch war selbst der 8086 zu langsam um mehrere Benutzer gleichzeitig zu bedienen, von den 8080/Z80 Rechner ganz zu schweigen oder CP//Net, ein netzwerkfähiges CP/M. Aber Netzwerke waren bei Microcomputern zu der Zeit noch nicht verbreitet. Digital Research entwickelte LOGO als graphische Programmiersprache, weil Kildall den Computerunterricht für seine beiden Kinder in der Schule als schlecht empfand. Sie sollten eine kindgerechte Programmiersprache und nicht BASIC lernen. Auch für LOGO war die Nachfrage gering, nicht mal im Schulbereich wurde es häufig eingesetzt.
Nach CP/M
Das die Firma in der technsichen Kompetenz durchaus mithalten konnte zeigte sich bei GEM. GEM – Graphical Enviromement Manager war eine Oberfläche die zeitgleich mit Windows entwickelt wurde. Ich konnte sie damals (1987) testen und fand sie insgesamt besser als Windows. Sie lief auch flüssiger und hat geringere Hardwareansprüche. GEM als Oberfläche und CP/M 68K als darunter liegendes Betriebssystem (damals waren die Oberflächen wie Windows oder eben GEM keine eigenen Betriebssysteme, sondern wurden als Programm von der Komandozeile von DOS gestartet) bildeten die Basis für TOS, das Betriebssystem des Atari ST. Aber auch hier war das Interesse gering, die Oberfläche weiterzuentwickeln. Als die Wünsche danach aufkamen, gab man das Produkt an einen Hersteller von Desktop Publishing Software, der wichtigsten Anwendung die unter GEM lief, ab.
Das zeigt jetzt auch die Geschichte wie Microsoft zu DOS kam, die ich an anderer Stelle schon ausführlich erzählt habe. Gary Kildall wollte nicht mit seinen Kunden konkurrieren, so entwickelte Digital Research zum beispiel nie ein BASIC für CP/M oder Anwendungsprogramme. Ebenso war für ihn das Interesse an einem Softwareprojekt wichtiger, als die möglichen finanziellen Einnahmen, was natürlich fatal ist, wenn man erfolgreiche Software hat aber die Weiterentwicklung als langweilig ansieht und vor allem hatte er nicht den Antrieb, das Maximum an Profit herauszuholen. In allen diesen Eigenschaften war Bill Gates das genaue Gegenteil und so verwundert es nicht das er aus dem Gewinner des DOS-Deals herausging.
Allerdings gab es da noch ein Nachspiel. Digital Research brachte Mitte der Achtziger einen Klon von MS-DOS heraus, praktisch eine Revanche der Geschichte von PC-DOS 1.0. Das DR-DOS war immer etwas weiter als MS-DOS. Hatte bessere Utilities, schaufelte mehr Speicher unter 640 KByte frei (ab dem IBM PC/AT hatten Rechner meist mehr als 640 KByte Speicher, aber den konnte DOS nicht für Programme nutzen, sondern nur um Treiber oder Buffer auszulagern). Dazu wurde es billiger verkauft. Zeitweise gab es eine Abfrage in Microsoft Windows ob es unter DR-DOS lief und wenn das der Fall war, startete es nicht. Die Version 6 von MS-DIOS mit den vielen integrierten Utilities wie Virenscanner, Stacker etc war eine direkte Antwort auf DR-DOS, das einen immer größeren Marktanteil einnahm. Verdrängen konnte man es so aber nicht, das geschah erst mit Windows 95 das DOS schon integriert hatte.
Diesen Zeitpunkt hat Gary Kildall aber nicht mehr erlebt, er starb am 11.7.1994 an den Folgen einer Verletzung die er sich bei einer Auseinandersetzung zugezogen hatte.
Links:
Die Fersehreihe Computer Chronicles findet man heute Online auf Youtube oder im Internet Archiv.
Das Buch „They Made America“ hat ein gutes Kapitel über Gary Killdal. Der Autor Harald Evans dürfte dazu die Memoiren von Gary Kildall lesen, die größtenteils unveröffentlicht sind.
Veröffentlicht wurden die ersten 78 Seiten von seinen Kindern. Die folgenden Kapitel handeln auch mit dem Kampf mit dem Alkoholismus. Dieser stellte sich als Folge dessen, dass man ihm immer unterstellte, dass er leichtfertig den DOS-Deal ausschlug, ein. Um das Andenken zu bewahren ist dieser Teil, der etwa die Zeit ab 1980 behandelt, nicht veröffentlicht worden.
War echt nett, diese Zusammenfassung der Geschichte von CP/M zu
lesen.
Weil ich letztes Jahr den C128 aus dem Keller geholt habe, den
mir ein Bekannter vor zig Jahren mal geschenkt hat. Ich selber
benutze normalerweise immer einen C64, deshalb war das Neuland
fuer mich. Ich hab ihn generalueberholt, die Kondensatoren ge-
recapped und mich sonst eingelesen, was man aus dem Geraet alles
rausholen kann.
Dabei ist mir der Z80 aufgefallen, der mich frueher nie
interessiert hat. Und natuerlich die Moeglichkeit von CP/M, das
fuer mich die letzten Jahrzehnte immer als das „Vorgaenger von
MS-DOS, von dem die com-Dateien stammen und uns die 8+3
Dateinamen angetan hat“. Es hiess immer, dass es um 1980 rum das
System fuer professionelle Software war. Und weil der C128 auch
80 Zeichen pro Zeile drauf hat, hab ich mir ein Kabel dafuer
besorgt und losgelegt.
Ich hab mich in das Manual vom System eingelesen und rumgespielt.
Nach ca drei Wochen Arbeit hab ich jetzt eine volle Installation
auf der REU von meiner C64 Ultimate Cartridge und damit
gewissermassen eine Festplatte. War nicht ganz einfach. Musste
viele Hilfeseiten im Internet durchschauen und eine CP/M Version
finden, die sowohl y2k Kompatibel ist als auch die REU als
Ramdisk unterstuetzt und fuer 2MB gepatcht wurde. (das Original
hat nur 512k zugelassen, was fuer mich natuerlich viel zu wenig
ist)
Installiert hab ich mir die ueblichen Killer-Applikationen seiner
Zeit: Wordstar, Multiplan, Microsoft Basic, Turbo Pascal und
Zork.
Eindruck bisher: Wordstar ueberrascht mich. Dafuer, dass das
Programm nur 20kb gross ist (glaube ich) ist es doch viel
maechtiger, als ich dachte. Ich hab mit einem besseren Texteditor
gerechnet, aber es hat die allermeisten Funktionen, die ich von
einem fruehen Textverarbeitungsprogramm erwarte. Mit buendigem
Text, beliebiger Dateigroesse, Textformatierung, Suchfunktionen
und vielem anderen. Ich kann schon sehen, wieso das mal DAS
Programm war, das man fuer produktivem Einsatz benutzt hat.
Einziger Nachteil fuer mich: Kein deutsches Layout, keine
Umlaute. Wie man hier sieht. Ja, ich tippe das hier gerade in
CP/M.
Multiplan muss ich mir erst noch ansehen.
Fazit nach einigen Monaten: Ich liebe den C128. Waere ich damals
aelter gewesen, als er rauskam und mich mit Informatik
ausgekannt, waere ich begeistert gewesen. Aber er kam zwei bis
drei Jahre zu spaet raus und praktisch keiner hat Software fuer
ihn geschrieben, die seine Moeglichkeiten voll ausgenutzt haette.
Erst in den letzten Jahren. Z.B. „Attack of the Petscii Robots“,
das unter anderem die Moeglichkeit ausnutzt, zwei Monitore
gleichzeitig an ihn dranzuhaengen. (einen fuer die normale
Grafik, den 80 Column Chip fuer die Map) Ausserdem verwendet das
Programm die Moeglichkeit, RAM ueber DRM umzukopieren. So viel
Potential damals verschenkt.
Was CP/M angeht: Fuer mich als jemand, der damals MS-DOS
verwendet hatte, war es nicht schwer, mich zurechtzufinden. Die
64kb RAM Einschraenkung war erdrueckend und das Fehlen von
Unterverzeichnissen sehr laestig. Wobei ich letzteres durch
unterschiedliche User umgehen konnte, wenn auch nur
engeschraenkt.
Und das groesste Problem fuer mich: Es ist auf dem c128 unnoetig
langsam, weil der Z80 glaube ich nicht mit vollem Takt laufen
kann, weil die Peripheriechips das nicht mitmachen wuerden.
Es geht, ich komm damit zurecht, aber ich haette mir damals wohl
auch nach zwei oder drei Jahren einen PC zugelegt.
Ein paar Bemerkungen:
* CP/M ist per se y2k fähig, da nirgendwo das Datum gespeichert wurde. Das ging erst ab CPM 3.0 und war dort auch eine Option.
* Supercalc ist das eigentliche Tabellenkalkulationsprogramm für CP/M, Multiplan ist wie Wordstar sehr langsam weil beide in C anstatt Assembler programmiert wurden
* Da MS-DOS anfangs nur eine Kopie con CP/M war ist die Ähnlichkeit kein Zufall
* beim C128 läuft der Z80 mit derselben Frequenz wie der 6502 also 2 MHz, daher ist er so langsam. Da 6502 und Z80 sich im Zugriff auf RAM unterscheiden hätte ein zusätzlicher Quarz, ein Pfennigbauteil damals die Geschwindigkeit verdoppeln können.
Vielleicht findest Du folgende Sektionen interessant:
https://www.bernd-leitenberger.de/computer-software-artikel.shtml
https://www.bernd-leitenberger.de/pc-artikel.shtml
Ich benutze eine Variante von CP/M 3. Man konnte einstellen, dass das Datum z.B. in den Verzeichniseinträgen der Dateien mit gespeichert wird. Das Feature benutze ich auch teilweise. Die Sache mit der y2k stand in der Readme der Features einer in den 2000ern angepassten Version von CP/M. Ich bin einfach davon ausgegangen, dass das so stimmt und notwendig war.
Ich hatte mal eine längere Dikussion darüber gelesen, wie es zu der relativ niedrigen Z80 Geschwindigkeit auf dem C128 kam, wo auch einer der Designer mit beteiligt war.
Eigentlich wird der Z80 schon mit 4Mhz betrieben. Die Gründe, wieso CP/M recht langsam war lag teilweise an der Hardware (in manchen der Zyklen lag der CPU brach und wurde so ausgebremst), teilweise an der Software, die sich um zu viel Peripherie kümmern musste. Am Ende war es zu kompliziert, dass ich mir das meiste nicht gemerkt hab. Aber „einfach“ wäre da gar nichts gewesen. Tricks zur Beschleunigung gab es, aber die konnten zu Instabilitäten führen und noch vieles mehr.
Wenn Wordstar wirklich in C geschrieben ist, muss ich schon sagen, dass jetzt noch mehr beeindruckt bin als vorher. Vielleicht nicht von der Geschwindigkeit, aber ganz bestimmt vom Funktionsumfang, das die Software hat. Ich hatte damit gerechnet, dass die hier um jedes Byte hätten kämpfen müssen.
Zu Wordstar
Wordstar war wirklich das wichtigste Programm für CP/M. Ich habe es damals für mein Studium sogar um Stichwortverzeichnisse und Inhaltsverzeichnis erweitert (indem man in den Text die nicht genutzten Steuerzeichen eingebunden hat die dann ein Programm herausgesucht und daraus eine Stichwortliste / Überschirftliste generiert hat und dann den Text ausgedruckt. Das Hauptproblem war dabei das korrekte Umsetzen der ganzen Punktbefehle, weil ich im Prinzip den Druck von von Ws ersetzt habe.
zum C128: es ist ja kein typischer CP/M Rechner. Es gab ja Doppelprozessorrechner damals, aber die einbindung des Z80 war recht schlecht, deutlich schlechter als bei anderen Rechnern wo dann die Z80 die CPU komplett ersetzte.
Der Umfang ist übrigens größer. Das Zentralmodul war so, das es mit 30 KByte TPA lief, aber viel Code steckte in Oberlays.