CP/M 3.1 gebraucht ein CP/M 2.2 sehr ähnliches System, wobei allerdings mehr Formate unterstützt werden.
Die Datenträgerkennwerte sind in einem Parameterblock (dem DPB, dessen Adresse mit der BDOS Funktion 31 ermittelt werden kann) abgelegt mit den folgenden Informationen:
DEFW spt ;Anzahl von 128-Byte Rekords je Spur
DEFB bsh ;Blockschiebefaktor. 3 => 1k, 4 => 2k, 5 => 4k....
DEFB blm ;Blockmaske. 7 => 1k, 0Fh => 2k, 1Fh => 4k...
DEFB exm ;Extentmaske
DEFW dsm ;(Anzahl von Blöcken auf dem Datenträger)-1
DEFW drm ;(Anzahl von Directory-Einträgen)-1
DEFB al0 ;Directory Belegungs-Bitmap, erstes Byte
DEFB al1 ;Directory Belegungs-Bitmap, zweites Byte
DEFW cks ;Größe des Checksumvektors,
;0 oder 8000h für eine Festplatte.
;Anzahl von Directory-Einträgen/4, abgerundet.
DEFW off ;Offset, Anzahl der reservierten Spuren
DEFB psh ;Physikalischer Sektorschiebefaktor,
;0 => 128-Byte Sektoren
;1 => 256-Byte Sektoren 2 => 512-Byte Sektoren...
DEFB phm ;Physikalische Sektormaske,
;0 => 128-Byte Sektoren
;1 => 256-Byte Sektoren, 3 => 512-Byte Sektoren...
Die Directory Belegungs-Bitmap wird wie folgt interpretiert:
al0 al1
b7b6b5b4b3b2b1b0 b7b6b5b4b3b2b1b0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
- d.h., in diesem Beispiel, dass die ersten 4 Blöcke des Datenträgers das Directory enthalten.
Der DBP ist nicht notwendigerweise auf dem Datenträger abgelegt.
Er ist entweder im BIOS fest verdrahtet oder wird bei Bedarf erzeugt.
|