3000 746b 0000 I ... CP/M
ROMAN WEISS
CP/M
Staendig im Griff
Dr. Alfred Huethig Verlag Heidelberg (C) 1986
INHALTSVERZEICHNIS

    Vorwort...............5
1.0 Das Betriebssystem CP/M...9
1.1 Systemkomponenten und Speicher
    organisation..............10
1.2 Kommando-Behandlung.......12
1.3 Steuerzeichen unter CP/M..13
1.4 Disketten, Laufwerke und dateien
    ..........................15
2.0 DIE RESIDENTEN KOMMANDOS..19
2.1 DIR/DIRS..................20
2.2 ERA.......................23
2.3 REN.......................24
2.4 SAVE......................25
2.5 TYPE......................26
2.6 USER......................27
3.0 DIE WICHTIGSTEN TRANSIENTEN
    KOMMANDOS.................29 
3.1 STAT/ SHOW................30
3.2 PIP.......................37
3.3 FORMAT....................44
3.4 COPYDISK..................46

3.5 LDCOPY/ SYSGEN/ COPYSYS...47   
3.6 HELP......................48
3.7 TOD/ DATE.................51
3.8 DUMP......................53
3.9 SUBMIT/ XSUB..............54
3.10ASM/ MAC..................57
3.11LOAD/ HEXCOM..............61
3.12GENCOM/ LMCMD.............62

3.13ED........................65
3.14DDT.......................78
================================================================

1.0 Das Betriebssystem CP/M
In geraffter Form wird Ihnen im folgenden Kapitel das Betriebs-
system CP/M vorgestellt.
     -Systemkomponenten
     -Kommandobehandlung
     -Steuerzeichen
     Disketten, Laufwerke und Dateien
1.1 Systemkomponenten

CP/M setzt sich aus drei Komponenten zusammen:
     -BIOS(Basis-Input/Output-System)
     -BDOS(Basis-Disk-Operating-System)
     -CCP(Consol-Command-Prozessor)

BIOS, ermoeglicht die Anpassung von CP/M an die unterschied-
lichsten Rechnerumgebungen.Es umfasst den Input/Output ueber die
BDOS-Peripherie-Kanaele, die Verbindung zu den Disketten-und
Festplattenlaufwerken, die Schnittstelle zu BDOS bzw. zu CP/M-
Programmen und den Pufferspeicher fuer BDOS-Aufgaben.

BDOS ist ein Programmpaket, das U.A. folgende Aufgaben loest:
     -Ein-Ausgaben ueber Konsole,Drucker usw.
     -Dateiverwaltung,
     -Direktory-Veerwaltung,
     -Initialisierung,
     -Ausgaben ueber den Systemzustand,
     -sonstige Hilfsaufgaben.

BDOS wird bei jedem Kalt- bzw. Warmstart automatisch geladen.
Warmstart: Ein Warmstart wird durch die gleichzeitige Betaeti-
gung der [CONTROL]-Taste und der [C]-Taste (dargestellt durch ^C)
ausgeloest.
Die Zeichenkombination ist jedoch nur dann wirksam, wenn
sie als erst Zeichenfolge nach der Bereitschaftsanzeige einge-
geben wird. Beim Warmstart wird von einem Ladeprogramm im
BIOS-Teil das BDOS mit dem CCP in den den Speicher (die TPA) ge-
lesen.

CCP stellt die Schnittstelle zwischen dem Benutzer (USER) und 
dem Rechner dar. Er nimmt Befehle von der Tastatur entgegen,
meldet sich auf dem Bildschirm mit dem Bereitschaftszeichen A>
und leitet entsprechende Aktivitaeten ein.

Diese Aktivitaeten bestehen darin, den empfangenen Befehl in ei-
nem Befehlspuffer abzulegen und zu ueberpruefen, ob es bei 
diesem Befehl um ein residentes oder trasientes Kommando handelt.
Entspricht die Eingabe den CP/M-Regeln, wird das Programm durch-
gefuehrt.
CCP wird bei jedem Kalt- bzw. Warmstart (^C) automatisch geladen.
CCP akzeptiert die folgenden residenten Kommandos: 
DIR(DIRS), ERA, REN, TYPE, (SAVE), USER und die Laufwerksangabe.
 
Der dem Rechner insgesamt zur Verfuegung stehende Arbeitsspei-
cher wird in 4 Bereiche unterteilt. Drei davon nehmen CP, BIOS
und BDOS ein. Der vierte Bereich ist die TPA (Transient Program
Area) und steht, bis auf eine Ausnahme, dem Anwender zur Verfue-
gung. Diese Ausnahme ist die ZERO PAGE (die Null-Seite), die von
Adresse 0000H - 0100H reicht und durch CP/M fuer interne Aufga-
ben (z.B. den Boot(Warmstart), Sprungadressen, Kommandospeicher
usw.) benutzt wird.
Die durch CCP in den TPA-Bereich geladenen Dateien muesen vom
Dateityp COM (bzw. CMD) sein.

1.2 KOMMANDO-BEHANDLUNG

Bei der Eingabe von Kommandos beachten Sie bitte folgende Punkte
Alle Kommandos werden durch Betaetigung der Return-Taste abge-
schlossen.
Optionen hinter einem Schluesselwort - wie z.B. die Angabe einer
Dateispezifikation - muessen durch ein Leerzeichen vom Kommando
getrennt werden.
Hinter dem Bereitschaftszeichen (dem Systempromt z.B. A>) kann
die Kommandozeile direkt eingegeben werden. CP/M vertraegt je-
doch auch Leerzeichen zwischen Promt und Kommandozeile.
Kommandos und Kommando-Optionen koennen in unterschiedlichster
Schreibweise eigegeben werden: in Kleinschrift, in Grosschrift
 oder gemischt. CP/M wandelt alles in Grosschrift um!

1.3 STEUERZEICHEN UNTER CP/M

[BS] - Loescht das letzte Zeichen auf Bildschirm und im Eingabe-
       puffer.
^C   - Wird diese Zeichenkombination am Anfang einer Zeile ein-
       gegeben, so bewirkt sie einen Warmstart und bricht das
       laufende Programm ab.
[CR] - Das ist die Taste [CARRIAGE RETURN] oder Kombination ^M.
       Sie bewirkt das Beenden der Puffereingabe und das Ueber-
       geben der Daten in das Programm.
[DEL]- Loescht das letzte eingegebene Zeichen.
^E   - Bringt Cursor in eine neue Zeile.
^I   - Bewegt den Cursor zur naechsten Tabulatorposition.
[LF] - Das ist die Taste [LINE FEED] oder die Tastenkombination
       ^J. Sie bewirkt einen Zeilenvorschub.
^P   - Schaltet den Drucker mit dem Bildschirm parallel (ueber
       den LST-Kanal). Die Rueckschaltung erfolgt entweder durch
       nochmaliges ^P oder einen Warmstart.
^R   - Bricht die laufende Anzeige mit einem (#) ab und wieder-
       holt den tatsaechlichen Inhalt des Eingabepuffers auf der
       naechsten Zeile.
^S   - Haelt eine laufende Ausgabe an, bis eine beliebige andere
       Taste die Ausgabe wieder fortsetzt.
^U   - Loescht die zuletzt eigegebene Zeile und zeigt dieses 
       durch ein (#) am Zeilenende an. Anschliessend kann in der
       naechsten Zeile eine neue Eingabe erfolgen.
^X   - Loescht die zuletzt eingegebene Zeile auf dem Bildschirm.
  


1.4 DISKETTEN, LAUFWERKE UND DATEIEN

Disketten gibt es einseitig (single side, SS) oder beidseitig
(double side, DS) beschreibbar, mit einfacher (single density,
SD) oder doppelter (douple density, DD) Schreibdichte. Das 
haengt vom jeweiligen Laufwerk ab.
Auf der Diskette befindet sich eine Anzahl von Spuren, von denen
die aeusseren zwei Spuren fuer das System benoetigt werden. Zum
Kopieren dieser Systemspuren (und damit zum Erstellen von Sys-
temsidketten-Kopien) gibt es einige, menuegesteuerte Programme;
das setzt jedoch eine formatisierte Diskette voraus. Formatisie-
ren bedeutet, eine Diskette der Rechnerumgebung anzupassen, 
indem die Reihenfolge der Schreib-Lese-Sektoren, entsprechend 
dem Zugriffs-Zyklus, festgelegt wird. Das Formatisierungspro-
gramm ist abhaengig vom Rechnerhersteller und kann daher unter-
schiedlich benannt sein.
Zu beachten ist lediglich, das die Diskette nicht schreibge-
schuetzt sein darf.
Achten Sie also bei der Diskette, die wiederverwendet werden 
soll darauf, dass die Schreibschutzkerbe (an der linken Seite 
der Diskette) nicht zugeklebt ist. Disketten sind zu schuetzen 
vor:      VERSCHMUTZUNG
          STATISCHE AUFLADUNG
          MAGNETISCHEN EINFLUESSEN
          UND
          MECHANISCHEN BESCHAEDIGUNGEN!!

Die CP/M-Dateistruktur erlaubt ab der Version 2.0 die Anwahl von
maximal 16 Laufwerken mit unterschiedlicher Speicherkapazitaet.
Die Laufwerksbezeichnung wird durch Buchstaben im Bereich A-P 
vorgenommen.
Das voreingestellte Laufwerk, d.h. das Laufwerk, das nach dem 
Systemstart von CP/M automatisch angewaehlt wird, hat die Be-
zeichnung A und meldet sich auf dem Bildschirm mit der Bereit-
schaftsanzeige in der Form: A>
Ein Laufwerkswechsel kann auf zwei Arten durchgefuehrt werden:

1. Direktumschaltung durch Angabe des Kennbuchstabens fuer das
   einzuwechselnde Laufwerk, abgeschlossen durch einen Doppel-
   punkt (:) ; A>B:

2. Durch die Angabe eines anderen Laufwerkes in der Kommandozei-
le, um nur zeitweise irgendwelche Aktivitaeten auf eienem ande-
ren Laufwerk durchzufuehren. A>DIR B:

Da jeder Eintrag in die Directory in der Standartversion 32 Byte
benoetigt, kann das Inhaltsverzeichnis max. 64 Eintraege aufneh-
men!

Die Dateispezifikation unterliegt folgenden Konventionen:
[Laufwerksbezeichnung]   = 1 Buchstabe zwischen A-P
[Dateiname]              = 1-8 Zeichen, mit Ausnahme der unten
                           aufgefuehrten Sonderzeichen.
[Dateityp]               = 0-3 Zeichen, Ausnahme siehe oben.

Systemabhaengige Sonderzeichen
------------------------------
[ ] . , ; : = ? * ( ) ! &> + - $ / \ 

Einige uebliche Dateitypen
ASM = ASM-80-Quell-Programm
A86 = ASM-86-Quell-Programm
BAK = Sicherungsdatei
BAS = BASIC-Quell-Programm
CMD = 8086/8088-MC-Programm
COM = 8080/8085-MC-Programm
FOR = FORTRAN-Quell-Programm
HEX = Uebersetztes ASM-80-Programm im Hexa-Format
HLP = Text-datei fuer das Programm HELP
H86 = Uebersetztes ASM-86-Programm im Hexa-Format
LIB = Bibliotheks-Datei
MAC = Makroassembler-Quell-Programm
PRN = Assembler-listing (Referenz)
SUB = Liste von Kommandos, die durch SUBMIT durchgefuehrt werden
$$$ = Temporaere Datei

Dateiname und Dateityp werden durch einen Punkt (.) getrennt
angegeben:
          KUNDNAME.DAT
          PROGRAM1.FOR
          SPIRALE.BAS

Die Laufwerksbezeichnung (falls erforderlich) wird dem Datei-
namen - getrennt durch einen Doppelpunkt - vorangestellt:
          B:KUNDNAME.DAT 
          C:BATCHKOM.SUB
Bei der Benutzung einiger Kommandos darf der Dateiname bzw. Da-
teityp mit Maskenzeichen angegegeben werden. Als Maskenzeichen
 stehen in CP/M das Fragezeichen (?) und das Sternchen (*) zur
Verfuegung. Dabei ersetzt das Fragezeichen ein unbekanntes Zei-
chen und das Sternchen beliebig viele Zeichen.
          A>DIR *.COM
          A>DIR KUN???.*

2.0 DIE RESIDENTEN KOMMANDOS

Das nachfolgende Kapitel beschreibt die vom CCP "verstandenen"
6 residenten Kommandos.
- DIR/DIRS Inhaltsverzeichnis listen
- ERA      Loeschen von Dateieintraegen
- REN      Umbenennen von Dateien
- SAVE     Speicherbereich in eine Datei ablegen
- TYPE     Listen von Dateiinhalten
- USER     Benutzerbereich wechseln/anzeigen


2.1 DIR/DIRS

Aufgabe:  Mit DIR: Anzeigen des Inhaltsverzeichnisses aller
          Dateien, deren Attribut DIR ist.
          Mit DIRS: Anzeigen des Inhaltsverzeichnisseses aller
          Dateien, deren Attribut SYS ist.

Kommandobeispiele:
          A>DIR
          A>DIR B:
          A>DIR TEST???.BAK
          A>DIR B:CBATEST.BAS
          A>DIRS *.COM
Optionen: Nur unter CP/M-Plus sind zusaetzlich nachfolgende Op-
          tioen erlaubt. Sie koennen in einen Liste zusammen-
          gefasst werden, untereinander getrennt durch ein Leer-
          zeichen oder ein Komma, eingeschlossen durch eckige
          Klammern.
ATT       Zeigt die durch den Benutzer definierbaren Dateiattri-
          bute F1, F2, F3 und F4 an.
DATE      Zeigt die Dateien mit ihrem Zeit- und Datumstempel an.
          Wenn der Zeit- und Datumstempel nicht aktiv ist, 
          bringt DIR die Mitteilung: Date and Time Stamping 
          inactive.
DIR       Zeigt nur Dateien an, die das DIR-Attribut haben.
DRIVE=ALL Zeigt die Dateien von allen aktiven Laufwerken an.
          Anstelle von DRIVE kann auch DISK geschrieben werden.
DRIVE=(A,B) Zeigt die Dateien der spezifizierten Laufwerke an.
DRIVE=[LW] Zeigt die Dateien des bezeichneten Laufwerkes[LW] an. 
EXCLUDE   Zeigt alle Dateien des voreingestellten Laufwerkes
          und Nutzerbereiches an, die nicht der maskierten Da-
          teispezifikation in der Kommandozeile entsprechen.
FF        Sendet ein FF zum Drucker, wenn dieser vorher durch
          ^P aktiviert worden ist. Wenn die LENGTH=[n]-Option 
          ebenfalls aktiviert wird, loest DIR alle [n]-Zeilen
          den Seitenvorschub aus.
FULL      Zeigt den Namen der Datei und ihre Groesse an.
LENGTH=[n] Zeigt [n]-Zeilen an. Die n-Angabe muss zwischen 
          5-65536 liegen.
MESSAGE   Zeigt die Laufwerkskennzeichnung und die Benutzer-num-
          mer an, die gerade durchsucht wird.
NOPAGE    Laesst das Listing auf dem Bildschirm durchlaufen.
NOSORT    Zeigt die Dateien in der Reihenfolge des Auffindens 
          auf der Disk an.
RO        Zeigt nur Dateien mit RO-Attribut an.
RW        Zeigt nur Dateien mit RW-Attribut an.
SIZE      Zeigt Dateinamen und Dateigroese in Kbyte an.
SYS       Zeigt nur Dateien mit SYS-Attribut an.
USER=ALL  Zeigt alle Dateien unter allen Benutzer-Numern des
          voreingestellten Laufwerkes an.
USER=[Nr] Zeigt alle Dateien der mit [Nr] spezifizierten Benut- 
           zer-Nummer.
USER=(0,1) Zeigt ale Dateien der angegebenen Benutzernumern an.

Optionsbeispiele:
-----------------
A>DIR [USER=ALL,DRIVE=ALL,SYS] *.PLI *.COM *.ASM
A>DIR [E=ALL user=all]TESTFILL.BOB
A>DIR [DRIVE=C]       (USER 4 ist aktiv)

ACHTUNG   In der Dateinamens- und Dateityp-Angabe ist die Ver-
          wendung der Maskenzeichen erlaubt; nicht jedoch bei 
          der Laufwerksangabe!! Es ist nur die Angabe einer (!)
          Optionsliste erlaubt! In der Standartversion sind 
          nicht mehr als 64 Directory-Eintraege moeglich!



2.2 ERA

Aufgabe:  Loeschen von einem oder mereren Dateinamen aus dem In-
haltsverzeichnis der angegebenen oder der aktiven Diskette 
(Laufwerk).  
Kommandobeispiele:
          A>ERA KUNDEN.DAT
          A>ERA B:KUNDE??.*
          A>ERA C:TEST.TXT

Optionen: keine

Achtung:  Maskenzeichen koennen bei der Angabe des Dateinamens
          und des Dateityp verwendet werden. Bei der Maskie-
          rungsangabe *.* (also alles loeschen "fragt" ERA 
          zurueck
          ALL(Y/N)?
          so dass Sie noch Gelegenheit haben, dieses "pauschale"
          Loeschen zurueckzunehmen. Geloescht werden kann immer
          nur im benutzten USER-Bereich! Entspricht kein Datei-
          name der Maskierung in Ihrer Spezifikation, so erfolgt
          die Meldung:
          NO FILE


2.3 REN

AUfgabe:  Umbenenne vorhandener Dateien.

Kommandobeispiele:
          A>REN TESTNEU.ASM=B:TEST.ASM
          A>REN B:DELTA.BAS=A:TEST.BAS
          A>REN NEUASM.A86=ALTASM.A86
          B>REN A:NEU.PAS=ALT.PAS  
          B>REN A:NEU.PAS=A:ALT.PAS

Optionen: keine
Achtung:  Rechts vom Gleichheitszeichen (=) steht der Name der
          vorhandenen Datei, links der neue Name dieser Datei.
          Maskierungsangaben sind nicht zugelassen!
          Werden Laufwerksangaben gemacht, so muessen diese auf
          beiden Steiten des Gleichheitszeichens identisch sein!
          Wenn die Dateispezifikation rechts vom
          Gleichheitszeichen nicht gefunden wird (bzw.
          nicht existiert) meldet REN:

          NO FILE

          Wurde die links vom Gleichheitszeichen stehende Datei-
          spezifikation bereits im Inhaltsverzeichnis (Directory
          ) vorgefunden, so meldet REN:

          FILE EXIST

          Bei dem Versuch, eine schreibgeschuetzte Datei umzube-
          nennen, erfolgt die Fehlermeldung:

          Bdos Err On [Laufwerk]:File R/O


2.4 SAVE

Aufgaben: Speichern von Teilbereichen der TPA in eine Disketten-
          Datei. Es werden n Speicherseiten a 256 Byte, begin-
          nend ab, 0100H, in die angegebene Datei gespeichert.
          Die Seitenangabe n hat dezimal zu erfolgen.
Kommandobeispiele:

          SAVE 3 TEST.COM
          SAVE 10 B:TEST.COM
Optionen: keine
Achtung:  Unter CP/M-86 gibt es dieses Kommando nicht. Dort ist
          es Bestandteil des Kommandos DDT!
          Unter CP/M-Plus ist der Anfang und das Ende des Spei-
          cherausschnittes frei waehlbar. Daher wird die Angabe
          des Speicherumfangs auch hexadezimal gemacht. SAVE
          laeuft unter CP/M-Plus im Dialog.



2.5.TYPE

Aufgabe:  TYPE (Display File) zeigt den Inhalt einer Zeichen-Da-
          tei (Text-Datei) auf dem Bildschirm.

Kommandobeispiele:
          A>TYPE BRIEF.TXT
          A>TYPE B:DELTA.BAS

Optionen: keine

Achtung:  Maskenzeichen sind nicht erlaubt!
          Die durchlaufende Anzeige kann durch die Eingabe eines
          beliebigen Zeichens unterbrochen werden.
          Wird die angegebene Datei nicht gefunden, so meldet
          TYPE:

          NO FILE


2.6 USER

Aufgabe:  Anzeigen der laufenden User (Benutzer)-Nummer oder
          wechseln in andere User-Bereiche.

Kommandobeispiele:
          USER
          USER 1
          USER 15

Optionen: keine
Achtung:  Zugelassen sind 16 Benutzerbereiche mit den User-Num-
          mern 0 bis 15. Wenn CP/M gestartet wird, ist die lau-
          fende User-Nummer Null. Dateien, die unter dieser 
          User-Nummer abgelegt werden, sind nicht generell unter
          anderen User-Nummern verfuegbar. Zugriff haben Sie auf
          solche Dateien nur, wenn Sie mit dem SYS-Attribut ver-
          sehen sind (durch das Kommando STAT), oder durch das
          PIP-Kommando mit dem Parameter G.
          Beachten Sie in diesem Zusammenhang auch das Kommando
          STAT USR:, mit dem Sie eine Liste der User-Nummern be-
          kommen, unter denen Dateien abgelegt wurden.


3.0 DIE WICHTIGSTEN TRANSIENTEN KOMMANDOS

Dieses Kapitel befasst sich mit den wichtigsten transienten Kom-
mandos der CP/M-Familie, die in der Form von Utilitys(Hilfspro-
grammen) auf einer Diskette vorliegen muessen.
          - STAT/ SHOW
          - PIP
          - FORMAT
          - COPYDISK
          - LDCOPY/ SYSGEN/ COPYSYS
          - HELP
          - TOD/ DATE
          - DUMP
          - SUBMIT/ XSUB
          - ASM/MAC
          - LOAD/ HEXCOM
          - GENCOM/ LMCMD
          - ED
          - DDT