CP/M auf dem C 128
Der C 128 ist mit dem professionellen 8-Bit-Betriebssystem CP/M ausgestattet. Doch was ist eigentlich dieses CP/M und was kann man damit anfangen?

Mit dem C 128 können auch Commodore-Besitzer nun CP/M nutzen; das ist etwas, was bisher im Konzept dieses Herstellers gefehlt hat, läßt man einmal den Versuch außer acht, den C 64 mit Hilfe eines Z80-Steckmoduls CP/M-fähig zu machen. Dies scheiterte zum einen am Bildschirmformat (nur 40 Zeichen) und zum anderen an der 1541, die nicht in der Lage war und ist, verschiedene Diskettenformate zu lesen. Dadurch können zwar die von Commodore gelieferten CP/M-Systemdisketten und auch andere CP/M-Disketten im 1541-Format gelesen werden, aber es ist leider kein allzu breites Software-Angebot in diesem (CP/M-unüblichen) Format vorhanden. So ist CP/M zwar auch mit der 1541-Station möglich, aber es gibt nur wenig Software dafür.
Beide Nachteile sind beim C 128 in Verbindung mit der 1570/71-Floppy nicht mehr vorhanden. Der C 128 ist mit der neuesten CP/M-Version, nämlich mit dem CP/M 3.0 (auch CP/M plus genannt) ausgestattet. Dieser Artikel soll keine komplette Einführung in CP/M sein, er soll vielmehr kurz und vollständig erklären, welches Handwerkszeug der Anwender mit dem Betriebssystem CP/M auf dem C 128 in die Hände bekommen hat.
Was ist eigentlich CP/M?
CP/M ist ein Betriebssystem und keine »Computersprache«, wie vielfach irrtümlicherweise angenommen wird. Übersetzt heißt es sinngemäß »Kontrollprogramm für Mikroprozessoren«. Dieses Programm kontrolliert nun folgende Funktionen des Computers.
- Erkennen und Ausführen aller Eingaben
- Steuerung von Tastatur, Bildschirm, Drucker, Floppy etc.
- Komplette Verwaltung aller Daten auf der Diskette
- Ausführung von Anwender-Programmen.
Das CP/M-System ist praktisch eine universelle Schnittstelle zwischen Anwenderprogramm und Computerhardware. Unter CP/M laufende Programme greifen daher nie direkt auf die Hardware zu, sondern wickeln alle Ein- und Ausgaben indirekt ab, nämlich durch Aufruf einer speziellen Betriebssystemroutine dem sogenannten »BDOS CALL«. CP/M wurde ursprünglich für den 8080-Prozessor von Intel entwickelt, heutzutage wird allerdings wegen seiner größeren Leistungsfähigkeit fast ausschließlich Zilogs Z80 verwendet.
Der Aufbau von CP/M
Das eigentliche Betriebssystem besteht aus drei Hauptteilen, die beim »BOOTEN« des CP/M-Systems in den Speicher geladen werden. Dazu kommen eine Reihe sogenannter »transienter« Kommandos, das sind Dienstprogramme, die nur bei Bedarf in den Speicher geladen werden.
Der speicherresidente Teil setzt sich zusammen aus dem BDOS (Basic Disk Operating System), einem Grundsystem zur Diskettenverwaltung; dem BIOS (Basic Input/Output System), einem Anpassungsprogramm an die Hardware des Systems, und dem CCP (Console Command Processor), dem Kommando-Interpreter, der für die Ausführung von Benutzerkommandos verantwortlich ist. Unter CP/M laufende Programme sind ohne Schwierigkeiten an jedes Mikrocomputersystem anzupassen, das mit einem Z80-Prozessor läuft. Die große Verbreitung von CP/M hat dazu geführt, daß eine Vielzahl von Programmen zu allen Anwendungsbereichen zu finden ist, ob Textverarbeitung, Datenbanken oder Compiler, für die meisten Programmiersprachen - unter CP/M ist fast alles zu haben.
Um nun mit CP/M zu arbeiten, muß man das System BOOTen. Darunter wird das Kopieren der Systemspuren von der Diskette in den Arbeitsspeicher verstanden. Dazu muß die CP/M-Systemdiskette im Laufwerk A sein. Nach dem Einschalten oder auch nach einem Reset überprüft nun der Computer, ob sich auf der eingelegten Diskette eine CP/M-Spur befindet. Wenn ja, wird weiterhin geprüft, ob die Systemfiles CPM + und CCP vorhanden sind. Danach werden diese beiden Files in den Speicher geladen und das System steht dem Anwender zur Verfügung. Erst ab diesem Zeitpunkt sind die CP/M-Befehle und die Hilfsprogramme verfügbar.
Das ist für viele Anwender bestimmt ungewohnt, aber wie sich noch herausstellen wird, bietet diese Methode, die Diskettenstation als zentrale Anlaufstelle zu benutzen, fast nur Vorteile. Aus diesem Grund kann CP/M auch bis zu vier Diskettenlaufwerke ansprechen; sie werden mit A bis D bezeichnet. Durch die Systemmeldung erfährt der Benutzer, mit welchem Laufwerk er gerade arbeitet. So bedeutet zum Beispiel »B«, daß das gerade angemeldete Laufwerk die Diskettenstation B ist. Ein weiterer Grund, immer wieder auf die Diskette zuzugreifen, ist die Art und Weise, wie CP/M Kommandos bearbeitet und ausführt. Im Speicher befindet sich nämlich neben BDOS, BIOS und dem CCP nur ein Minimalbefehlssatz, die sogenannten residenten Befehle. Diese Befehle sind die meistgebrauchten, deshalb wollen wir sie einmal näher betrachten:
DIR
Mit diesem Befehl wird das Inhaltsverzeichnis der gerade angesprochenen Diskette angezeigt. Dieser Befehl ist vergleichbar mit den Basic-Befehlen DIRECTORY oder »LOAD"$",8«.
DIRSYS
Entspricht DIR, zeigt aber nur die Systemdateien an.
ERASE
Mit diesem Befehl werden Files auf der Diskette gelöscht; entspricht SCRATCH.
RENAME
Umbenennen eines Filenames; entspricht dem gleichnamigen Basic-Befehl
TYPE
Dieser Befehl zeigt den Inhalt einer Datei an; so können zum Beispiel Text-Files oder Pascal-Files durchgesehen werden, ohne erst großartig ein Textverarbeitungsprogramm einzuladen.
USER
Mit diesem Befehl ist es möglich, die Diskette in unterschiedlichen Benutzerbereichen anzusprechen.
Die zweite Gruppe des CP/M-Befehlssatzes sind die transienten Befehle, das heißt, diese Befehle werden nur von Diskette geladen, wenn sie gebraucht werden. Haben sie dann ihre Aufgabe erfüllt, so wird der von ihnen belegte Speicherplatz wieder frei. Solche Befehle erkennt man an der Dateikennzeichnung »COM«. Diese Befehle können aber auch schon größere Programme mit recht komplexen Aufgaben sein, so zum Beispiel der Befehl PIP. Mit ihm ist es möglich, einzelne Dateien oder ganze Disketten zu kopieren oder Dateien auf den Drucker auszugeben. Dazu später mehr.
Weiterhin ist es möglich, den Befehlen sogenannte Optionen mit auf den Weg zu geben; diese ermöglichen dann eine weitere Vielzahl von Operationen, beispielsweise beim SHOW-Kommando die Anzeige von Einzelheiten über Dateien, ob sie schreibgeschützt sind, wann sie erstellt wurden etc.
Im nun folgenden Teil werden die transienten Befehle des CP/M 3.0 etwas näher erläutert, so daß man sich leicht einen Überblick über die Leistungsfähigkeit des Befehlssatzes verschaffen kann.
DATE und INITDIR
Mit diesen zwei Befehlen kann man Protokoll führen, wann auf eine Diskette oder eine Datei das letzte Mal zugegriffen worden ist. Weiterhin läßt sich beim C 128 die interne Uhr damit umstellen.
DEVICE
Mit diesem Hilfsprogramm lassen sich die Ein- und Ausgabekanäle, das Bildschirmformat oder die Baudrate ändern und anzeigen.
DUMP
Der Inhalt eines Files wird in ASCII- oder in Hexadezimal-Darstellung angezeigt.
ED
Dieses Programm erlaubt das Erstellen und/oder Ändern von Dateien. Gerade in Verbindung mit SUBMIT wird der Befehl sehr häufig gebraucht.
FORMAT
Wie der Name schon sagt, werden damit Disketten formatiert. Beim C 128 bietet FORMAT mehrere mögliche Formate an, die vollständig menügesteuert angewählt werden können.
GET und PUT
Mit GET werden alle Befehle, die sonst von der Tastatur kommen, aus einer Diskettendatei genommen. Bei PUT wird jegliche Ausgabe (Drucker, Bildschirm) in eine Diskettendatei geleitet.
PATCH
Damit ist es möglich, eventuelle Fehler in Programmen zu beheben oder selbst neue Befehle zu installieren. Beides setzt jedoch eine genaue Kenntnis von CP/M voraus.
PIP
Eines der wichtigsten Dienstprogramme überhaupt. Hauptaufgabe ist das Kopieren von Files. Im letzten Abschnitt wird der genaue Umgang mit diesem Programm anhand eines Beispieles erklärt.
SUBMIT
Oft tauchen Befehlsfolgen auf, die sich immer wieder gleichen, zum Beispiel das Laden mehrerer Files hintereinander oder ähnliches. Die Befehlsfolge wird in einer Datei abgelegt, die die Dateibezeichnung »SUB« trägt. Wird jetzt SUBMIT aufgerufen, so wird die entsprechende SUB-Datei automatisch ausgeführt. Erstellt werden die Dateien zum Beispiel mit ED oder einer Textverarbeitung.
SID
Ein symbolischer Debugger zum Auffinden von Fehlern in Programmabläufen.
SHOW
Wem der DIR-Befehl zuwenig Informationen über die Diskette gibt, der bekommt eine ganze Menge Zusatzinformationen wie freier Platz etc.
SET
Mit diesem Befehl ist es unter anderem möglich, Files als schreibgeschützt zu kennzeichnen, Datumseinträge vorzunehmen oder ein Paßwort zu definieren.
SETDEF
Suchkriterien und Laufwerksbezeichnungen können nach Vorgaben des Benutzers einander zugeordnet werden.
SAVE
Die Speicherung von Teilen des Speichers wird damit durchgeführt; es lassen sich zum Beispiel Maschinenprogramme auf diese Art abspeichern.
LINK
Damit werden Programmteile zu einem lauffähigen Ganzen verbunden.
MAC, RMAC, HEXCOM, XREF
Diese Dienstprogramme sind für den erfahrenen Programmierer von Nutzen, mit ihnen wird die Programmierung des Z80 unter CP/M ermöglicht.
Diese Kurzbeschreibung erhebt keinen Anspruch auf Vollständigkeit, sie soll jedoch einen kurzen Überblick über die vielfältigen Möglichkeiten des CP/M 3.0 geben. Die detaillierte Beschreibung zu allen Befehlen geben zum Teil die Handbücher, zum Teil die zu CP/M erschienene Literatur.
Kopieren leichtgemacht
Für den Anwender stellt sich oft das Problem, eigene bootfähige Disketten herzustellen. Der Computer verlangt nach dem Einschalten die Dateien »CPM+.SYS« und »CCP.COM«. Sind beide Files auf der Diskette vorhanden, so wird CP/M plus geladen.
Um beide Files zu kopieren, benutzt man PIP.COM. Dieses Programm eignet sich hervorragend, um eine ganze Diskette oder einzelne Files zu kopieren. In den nun folgenden Schritten wird zuerst ein kompletter Backup der Systemdiskette und dann das Anlegen einer bootfähigen Diskette (für eigene Anwendungen) beschrieben.
Als erstes ist festzustellen, daß die beschriebenen Arbeitsschritte sowohl für die 1541 als auch für die 1570/71 ihre Gültigkeit haben, der einzige Unterschied liegt in den unterschiedlichen Ausführungszeiten, die in der untenstehenden Tabelle zu finden sind. Eine weitere Voraussetzung ist das Vorhandensein einer im jeweiligen Format fertig formatierten leeren Diskette. Sollte das noch nicht geschehen sein, so erstellt man sich eine mit Hilfe des COM-Files FORMAT.
| 1571 | 1541 | |
|---|---|---|
| Booten | 20 sec | 2 min |
| Formatieren | 50 sec (DS) | 90 sec |
| Systemdisk kopieren | 2 min 30 | 50 min |
Daß eine Mehrzahl der Anwender nur über ein Laufwerk verfügt, spielt im folgenden keine Rolle, da das CP/M des C 128 in der Lage ist, ein »virtuelles« Laufwerk E anzusprechen, was praktisch einen Diskettenwechsel darstellt.
Nachdem PIP.COM geladen wurde, wird nun »e:=a:*.*« eingegeben. Das »e« bedeutet hier das Ersatzlaufwerk, sprich Diskettenwechsel. Sobald sich PIP nach dem Kopieren wieder mit »*« meldet, ist eine Kopie der Systemdiskette erstellt.
Soll aber nur eine bootfähige Diskette erstellt werden, so genügt es, wenn sich auf der Diskette die Files CPM+.SYS und CCP.COM befinden. Um diese zu kopieren, wird wieder PIP geladen. Mit »e:=a:cpm+.sys« und »e:=a:ccp.com« werden die beiden Files auf eine leere, aber schon formatierte Diskette kopiert. Diese Diskette wird jetzt vom Computer als Boot-Diskette anerkannt und CP/M wird nach dem Einschalten und bei eingelegter Diskette geBOOTet.
Im übrigen ist das obengenannte Verfahren nicht nur auf diese beiden Files anwendbar, sondern so lassen sich beliebige Files kopieren, so daß der Anwender seine Disketten beliebig gestalten kann.
(Udo Reetz/ev)