Interrupts 80x86/ INT 21/ Disk Parameter Block

Disk Parameter Block Bearbeiten

Das Betriebssystem legt für jedes Diskettenlaufwerk eine solche Tabelle im RAM ab.

Offset Länge Name Inhalt
00h 1 Byte dpbDrive Laufwerksnummer (0=A, 1=B,...)
01h 1 Byte dpbUnit Unitnummer des Treibers
02h 1 Word dpbSectorSize Anzahl Byte pro Sektor (=512)
04h 1 Byte dpbClusterMask Sektoren pro Cluster minus 1
05h 1 Byte dpbClusterShift Sektoren pro Cluster in Zweierpotenzen
06h 1 Word dpbFirstFAT Anzahl der (Boot-)Sektoren vor Beginn der ersten FAT
08h 1 Byte dpbFATCount Anzahl FAT's (2 bei Microsoft)
09h 1 Word dpbRootEntries Anzahl der Einträge im Hauptverzeichnis
0Bh 1 Word dpbFirstSector Nummer des ersten Datensektors
0Dh 1 Word dpbMaxClusters Gesamtanzahl Cluster auf dem Laufwerk plus 1
0Fh 1 Word dpbFATSize Länge der FAT (Anzahl der Sektoren)
11h 1 Word dpbDirSector Anzahl der Sektoren vor dem Hauptverzeichnis
13h 1 DWord dpbDriverAddr Adresse des Gerätetreibers
17h 1 Byte dpbMedia Media-Descriptor-Byte (siehe nächste Tabelle)
18h 1 Byte dpbFirstAccess Ist =0, während ein Zugriff auf Laufwerk erfolgt
19h 1 DWord dpbNextAccess Adresse des nächsten Parameterblocks
1Dh 1 Word dpbNextFree Der aktuell letzte reservierte Cluster
1Fh 1 Word dpbFreeCnt Aktuelle Anzahl freier Cluster

Media-Descriptor-Byte Bearbeiten

Die DOS-Funktionen 1B und 1C lesen dieses Byte aus. Das Betriebssystem nutzt es, um Art und Kapazität des Datenträgers zu bestimmen.

Wert Kapazität Bedeutung
F0h 1,44 MB oder 2,88 MB 3,5-Zoll-Diskette (80 Spuren, 18 Sektoren, 2 Seiten) oder (80 Spuren, 36 Sektoren, 2 Seiten)
F8h   Festplatte oder RAM-Laufwerk
F9h 720 kB oder 1,2 MB 3,5-Zoll-Diskette (80 Spuren, 9 Sektoren, 2 Seiten) oder 5,25-Zoll-Diskette (80 Spuren, 15 Sektoren, 2 Seiten)
FDh 360 kB 5,25-Zoll-Diskette (40 Spuren, 9 Sektoren, 2 Seiten)