CP/M

Aus C64-Wiki
Wechseln zu: Navigation, Suche
CP/M 3.0 auf einem C128 im 40-Zeichenmodus, virtuelle 80-Zeichen möglich.

Das Betriebssystem CP/M wurde im Jahre 1976 von Gary Kildall für Digital Research für PCs entwickelt. Die Abkürzung steht für Control Programm for Microcomputers und wurde entwickelt für die 8-Bit-Prozessoren von Intel 8080 und 8085, sowie für den Z80 von Zilog. Es gibt verschiedene weitere CP/M-Portierungen und Weiterentwicklungen. Für die Intel-Mikroprozessoren mit 16-Bit 8086 und 8088 gibt es eine angepasste Version namens CP/M-86, für das Motorola-Lager mit der 68000-Architektur CP/M-68K.
Bis 1988 lief CP/M auf rund 250 unterschiedlichen Computersystemen.


Geschichte[Bearbeiten]

Das Betriebssystem war in den 1970er- und 1980er-Jahren weit verbreitet und vor allem in den USA sehr dominierend. Nicht nur, dass es als Betriebssystem ein einheitliches Disk Operating System mitbrachte, womit Medien zu einem gewissen Grad zwischen Systemen unterschiedlicher Hardware austauschbar wurden, war genau das Konzept der Hardware-Unabhängigkeit ein wesentlicher Punkt für die Verbreitung und Akzeptanz. Die Trennung der Ein- und Ausgabeschicht (dem sogenannten BIOS, Basic Input Output System) von der eigentlichen Betriebssystemkomponente (dem BDOS, Basic Disk Operating System) kann als ausschlaggebenden Punkt den Einsatz auf unterschiedlichster Hardware angesehen werden. Die Benutzerschnittstelle war rein textuell und hatte ihren Ursprung noch in Zeiten als Terminals dominierten. Die Flexibilität erlangte CP/M dann mit einem Kommandozeileninterpreter (CCP, Console Command Processor), der das Ausführen von Anwendungen und Hilfsprogrammen von Diskette erlaubte und danach wieder die Kontrolle übernahm.

Allerdings schaffte es CP/M nicht, im Bereich der IBM-kompatiblen PCs Fuß zu fassen. Zum Zeitpunkt konnte sich auf IBMs PC-Hardware nämlich Microsofts PC-DOS gegenüber CP/M-86 preislich und lizenzpolitisch durchzusetzen, obgleich der Aufbau und der Funktionsumfang vergleichbar war. Für CP/M gibt es zwar eine große Softwarevielfalt (u.a. dBASE II, Wordstar, Multiplan), die aber primär im 8080-Bereich angesiedelt ist und da spielte es damals für einen Anwendungshersteller kaum eine Rolle, ob nun der Portierungsaufwand für CP/M-86 oder etwa MS-DOS zu investieren war.

Mit der Version CP/M-Plus 3.0 (1983) war die letzte auf 8080-Basis veröffentlichte Version noch in breiter Front, besonders als standardmäßig mitgelieferte Software bzw. Alternativbetriebssystem beim Commodore 128 in Umlauf.

Aufbau[Bearbeiten]

CP/M besteht aus den drei Schichten

  1. BIOS (Basic Input Output System),
  2. BDOS (Basic Disk Operating System) und
  3. CCP (Console Command Processor).

Das BIOS kapselt die hardware-spezifischen Besonderheiten eines Systems, sodass der CP/M-Kern bzw. BDOS hardware-unabhängig auf Geräte, wie Terminals, Druckerschnittstellen, Diskettenlaufwerke etc. zugreifen kann. Ein einheitliches Gerätekonzept sorgt dafür, dass Gerätenamen Bestandteil von Dateinamen und diese einheitlich von allen Kommandos angesprochen werden können. Genau genommen, sind Dateinamen eine spezielle Form einer einheitlichen Objektbezeichnung bezogen auf Geräte, die sich automatisch auf Diskettenlaufwerke beziehen.
Dateien können mit entsprechenden Platzhaltersymbolen ausgewählt werden. Ein Dateiname ist nach 8.3-Konvention aufgebaut, wobei der Namensteil 8 Zeichen und der durch Punkt getrennte Typteil 3 Zeichen umfassen darf.

Üblicherweise wird die Kontrolle an den CCP übergeben, der die textuelle Benutzerschnittstelle und damit das Command-Line-Interface (CLI) darstellt. Neben den internen Befehlen des CCP (built-ins) können auch externe Kommandos aufgerufen werden, die auf Diskette mit Endung ".COM" vorliegen müssen.

Typische CP/M-Befehle als

  • interne CCP-Kommandos (built-in commands):
    • ERA Datei löschen
    • DIR Verzeichnis einer Diskette anzeigen
    • REN Datei umbenennen
    • TYPE Inhalt einer Textdatei am anzeigen
  • externe Programme (transient commands):
    • ASM Standard-Makro-Assembler
    • DDT Debugger
    • DUMP gibt den Inhalt einer Datei in hexadezimaler Form aus
    • ED zeilenorientierter Texteditor
    • LINK sogenannter Linker, der aus RMACs relozierbaren Modulen und Bibliotheken Programmmodule erstellt (.COM)
    • LIB erstellt und organisiert Bibliotheken (liberaries) aus relozierbaren Modulen (von RMAC oder anderen Programmiersprachen)
    • PIP transferiert Daten zwischen Geräten, z.B. als Diskettenkopierprogramm
    • RMAC Aufruf des Relocatable Macro-Assemblers, der relozierbare Module erstellt
    • STAT liefert statistische Informationen und sonstige Details zu Dateien
    • SUBMIT verarbeitet Stapelverarbeitungsprogramme

Programmierung[Bearbeiten]

Zumindest folgende Programmiersprachen werden unter CP/M unterstützt: COBOL, PL/1, Algol, Fortran, LISP, sowie:

  • BASIC
  • C
    • Aztec C
    • BDS-C (verbreitet in den USA)
    • C/80
    • Small-C (Public Domain)
    • Hi-Tech C (Freeware)
    • Mix C (unter MS-DOS als Mix Power C)
  • Forth
    • FORTH83 (Public Domain; SIG/M Nr.204)
  • Pascal
    • Turbo Pascal
    • Nevada Pascal bzw. JRT Pascal (Public Domain; SIG/M Nr.82 ) mit Linker, Assembler, Debugger, Hilfsprogramme
  • Prolog
    • E-Prolog


Weblinks[Bearbeiten]

WP-W11.png Wikipedia: CP/M
WP-W11.png Wikipedia: Gary Kildall