Interrupts 80x86/ INT 21/ Disk Parameter Block
Disk Parameter Block
BearbeitenDas 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
BearbeitenDie 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) |