Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:systemdoku [2019/04/29 14:12] – [Der Disk Parameter Block] max. Laufwerksgröße volkerpcpm:systemdoku [2024/12/05 13:01] (aktuell) – [Speicheraufteilung] volkerp
Zeile 126: Zeile 126:
 Die Speicheraufteilung im CP/M sieht im Überblick so aus: Die Speicheraufteilung im CP/M sieht im Überblick so aus:
  
-<ditaa noedgesep+<a2s
-         +----------------oberes Speicherende+         #----------------oberes Speicherende
                         |                         |
               BIOS      |               BIOS      |
                         |                         |
-         +----------------+         #----------------
                         |                         |
               BDOS      |               BDOS      |
                         |                         |
-FBASE:   +----------------Startadresse des FDOS+FBASE:   #----------------Startadresse des FDOS
                         |                         |
               CCP       |               CCP       |
                         |                         |
-CBASE:   +----------------Startadresse des CCP+CBASE:   #----------------Startadresse des CCP
                         |                         |
               TPA       |               TPA       |
                         |                         |
-TBASE:   +----------------0100H+TBASE:   #----------------0100H
           System-       |           System-       |
              parameter  |              parameter  |
-BOOT:    +----------------0000H +BOOT:    #----------------0000H 
-</ditaa> +</a2s>
 An der Adresse BOOT befindet sich grundsätzlich ein Sprung An der Adresse BOOT befindet sich grundsätzlich ein Sprung
 zur Warmstartroutine des BIOS. Diese Routine lädt nach Beendigung zur Warmstartroutine des BIOS. Diese Routine lädt nach Beendigung
Zeile 250: Zeile 249:
 Abmelden als 'ausloggen' (engl. Log out) bezeichnet. Abmelden als 'ausloggen' (engl. Log out) bezeichnet.
  
 +<code>
 +Track/Spur                                   DPB-Wert (Disk Parameter Block)
 +       +-----------------------------------+
 +0      |   Systemspur 0                    | a = OFF Systemspuren 0..OFF-1
 +         ...                             |  
 +a-1    |   Systemspur a-1                  |
 +       +-----------------------------------+
 +a      | Block 0 | Block 1 | ...           | n Blöcke
 +                                         | DRM+1 Einträge a 32 Byte
 +          Directory                      | 
 +                                         | -> n = (DRM+1)*32/BLS (aufrunden)
 +                             | Block n-1 | -> b = (DRM+1)/4/SPT + a (aufrunden)
 +       +-----------------------------------+
 +b      | Block n | Block n+1 | ...         | m-n Blöcke
 +                                         |
 +                                         | Blockgröße 1K .. 16KByte 
 +                                         | (s. BSH und BLM)
 +                                         | BLS = 128 * 2^BSH = 128 * (BLM+1)
 +          Dateien                        |
 +                                         | Block n muss nicht am Spuranfang
 +                                         | liegen, ist aber fast immer so!
 +                                         |
 +                                         |
 +                                         |
 +                                         |
 +                                         |
 +                                         |
 +                                         |
 +                                         | m = DSM-1
 +                                         | Block m ist nicht immer vollst. 
 +                                         | auf der Disk enthalten
 +trk-1  |             | Block m-1 | Block m | 
 +       +-----------------------------------+ 
 +</code>
  
 ==== Dateien ==== ==== Dateien ====
Zeile 316: Zeile 349:
 von 128 Bytes gemessen. von 128 Bytes gemessen.
  
-CP/M 2.2 hat diese Rechenweise für Files ubernommen, unterscheidet+CP/M 2.2 hat diese Rechenweise für Files übernommen, unterscheidet
 aber zwischen Sektoren auf der Diskette und File- aber zwischen Sektoren auf der Diskette und File-
 'Portionen'.\\ 'Portionen'.\\
Zeile 330: Zeile 363:
 allgemein für Diskettendaten benutzt. allgemein für Diskettendaten benutzt.
  
-Im Zusammenhang mit Disketten ist auch die Bezeichnung 'logischer +Im Zusammenhang mit Disketten ist auch die Bezeichnung '**logischer 
-Sektor' für einen Record üblich. Damit wird vor allem+Sektor**' für einen Record üblich. Damit wird vor allem
 der Unterschied zwischen einem Sektor auf der Diskette ('physikalischer der Unterschied zwischen einem Sektor auf der Diskette ('physikalischer
 Sektor') und einem 'Sektor', wie ihn das BDOS Sektor') und einem 'Sektor', wie ihn das BDOS
Zeile 357: Zeile 390:
 Das BIOS muß beim Lesen jeden physikalischen Sektor in logische Das BIOS muß beim Lesen jeden physikalischen Sektor in logische
 Sektoren aufspalten und beim Schreiben logische Sektoren Sektoren aufspalten und beim Schreiben logische Sektoren
-zu einem physikalischen Sekto zusammenfassen.+zu einem physikalischen Sektor zusammenfassen.
  
 CP/M 2.2 unterstützt dieses Zusammenfassen und Aufspalten CP/M 2.2 unterstützt dieses Zusammenfassen und Aufspalten
Zeile 504: Zeile 537:
 verwaltet, um so die Zahlweise der Recordnummern von 0 bis verwaltet, um so die Zahlweise der Recordnummern von 0 bis
 127 zu erhalten. 127 zu erhalten.
 +
 +1 Extend = 128 Records = 16 kByte
  
 ==== Extendgruppen ==== ==== Extendgruppen ====
Zeile 717: Zeile 752:
 ==== Sequentieller Zugriff <-> Direkter Zugriff ==== ==== Sequentieller Zugriff <-> Direkter Zugriff ====
  
-Im CP/M 1.4 ist es Aufgabe des Programms, die Eintrags- und+Im **CP/M 1.4** ist es Aufgabe des Programms, die Eintrags- und
 Recordnummer im FCB zu setzen. Soll ein bestimmter Record Recordnummer im FCB zu setzen. Soll ein bestimmter Record
 innerhalb des Files erreicht werden, so muß das Programm die innerhalb des Files erreicht werden, so muß das Programm die
 Extend- und Recordnummer selbst berechnen und in den FCB Extend- und Recordnummer selbst berechnen und in den FCB
 einsetzen.\\ einsetzen.\\
-Aus der absoluten Recordnummer ergibt sich die Extendnummer +Aus der absoluten Recordnummer RRN ergibt sich die Extendnummer EX 
-aus der Division durch 128. Der Divisionrest ist die Recordnummer+aus der Division durch 128. Der Divisionrest ist die Recordnummer CR
 innerhalb des Extends. Diese Werte müssen aber immer innerhalb des Extends. Diese Werte müssen aber immer
 vor dem Öffnen gesetzt sein, damit das BDOS die richtige vor dem Öffnen gesetzt sein, damit das BDOS die richtige
 Blocktabelle in den FCB überträgt. Blocktabelle in den FCB überträgt.
 +
 +<code>
 +RRN -> SRN:
 + RRN = 128 + EX * 128 + CR
 +  
 +SRN -> RRN:
 + EX = RRN / 128
 + CR = RRN modulo 128
 +</code>
  
 Alle höheren Recordnummern können im CP/M 1.4 nur sequentiell Alle höheren Recordnummern können im CP/M 1.4 nur sequentiell
Zeile 735: Zeile 779:
 sequentiellen Zugriff nicht möglich. sequentiellen Zugriff nicht möglich.
  
-CP/M 2.2 bietet daher mit dem direkten Zugriff (engl. Random+**CP/M 2.2** bietet daher mit dem direkten Zugriff (engl. Random
 Access) eine weitere Zugriffsart, mit der jeder Record eines Access) eine weitere Zugriffsart, mit der jeder Record eines
 Files direkt erreicht werden kann. Files direkt erreicht werden kann.
Zeile 750: Zeile 794:
  
 Das BDOS berechnet aus dieser 'Random Record Number' (RRN) Das BDOS berechnet aus dieser 'Random Record Number' (RRN)
-die 'Sequential Record Number' (SRN), bestehend aus Extendgruppe, +die 'Sequential Record Number' (SRN), bestehend aus Extendgruppe EG
-Extend und Recordnummer.+Extend EX und Recordnummer CR.
  
  
-Zwischen der Random Record Nummer und der Sequential Record +Zwischen der Random Record Nummer RRN und der Sequential Record 
-Nummer besteht folgender Zusammenhang:+Nummer SRN besteht folgender Zusammenhang:
  
 <code> <code>
  • cpm/systemdoku.1556547171.txt.gz
  • Zuletzt geändert: 2019/04/29 14:12
  • von volkerp