Interrupt 13h

Aus Lowlevel
Wechseln zu:Navigation, Suche

Der BIOS Interrupt 13h dient dem einfachen Zugriff auf Festplatten und Diskettenlaufwerke. Diese sind nur im Real Mode verfügbar und für den Bootloader da.

Die wichtigsten Funktionen

Funktion Parameter Rückgabe
02h Sektorweises Lesen AH=02h
AL=Zahl der Auszulenden Sektoren
CH=Spur
CL=Nummer des Ersten Sektors
DH=Kopf
DL=Laufwerksnummer(0/1 erstes Zweites Floppy;
80h/81h/... Erste/Zweite/... Festplatte)
ES:BX=Addresse des Puffers
CF=Fehler
AL=Zahl der Sektoren
AH=Fehlercode
03h Sektorweises Schreiben AH=03h
AL=Zahl der zu schreibenden Sektoren
CH=Spur
CL=Erster Sektor
DH=kopf
DL=Laufwerksnummer
ES:BX=Adresse des Pufers
CF=Fehler
AL=Zahl der Sektoren
AH=Fehlercode
04h Prüfen von Sektoren AH=04h
AL=Zahl der zu prüfenden Sektoren
CH=Spur
CL=Erster Sektor
DH=Kopf
DL=Laufwerksnummer
CF=Fehler
AL=Zahl der Sektoren
AH=Fehlercode
05h Spur Formatieren AH=05h
AL=Anzahl Sektoren
CH=Spur
CL=erster Sektor
DH=Kopf(0/1)
DL=Laufwerksnummer
ES:BX=Adresse des Formatpuffers
CF=Fehler
AF=Fehlercode
08h Format auslesen (Festplatte) AH=08h
DL=Laufwerksnummer
CF=Fehler
AH=Fehlercode
DL=Zahl der Festplatten
DH=Zahl der Köpfe
CL=Zahl der Sektoren
CH=Zahl der Zylinder
08h Format auslesen (Floppy) AH=08h
DL=Laufwerksnummer
CF=Fehler
AH=Fehlercode
BL=Art des Laufwerks:
01h-5,25"[360KB]
02h-5,25"[1,2MB]
03h-3,5"[720KB]
04h-3,5"[1,44MB]
DH=1
CH=Zahl der Spuren-1
CL=Zahl der Sektoren-1
ES:DI=Zeiger auf die DDPT
15h Auslesen des Laufwerktypes AH=15h
DL=Laufwerksnummer
CF=Fehler
AH=Laufwerkstyp:
00h-Kein Laufwerk
01h-Diskettenlaufwerk
02h-Diskettenlaufwerk, Diskettenwechsel
03h-Festplatte:
DX/CX=Sektorenzahl(Bits 0-15/16-31)




Fehlercodes

Fehlercode Festplatte Floppy
01h Falsche Funktionsnummer oder Laufwerk Falsche Funktionsnummer
02h Addressmarkierung nicht gefunden Adressmarkierung nicht gefunden
03h - Schreibgeschützt
04h Sektor nicht gefunden Sektor nicht gefunden
05h Reset-Fehler -
06h - Diskette wurde gewechselt
07h Falsche Initialisierung -
08h - DMA-Überlauf
09h Segmentgrenze überschritten [DMA] Segmentgrenze überschritten [DMA]
0Ah Sektor Fehlerhaft -
10h Lesefehler Lesefehler
11h Lesefehler mit EEC Korigiert -
20h Controller-Fehler Controller-Fehler
40h Spur nicht gefunden Spur nicht gefunden
80h Time-Out-Fehler Tim-Out-Fehler
AAh Laufwerk nicht bereit -
BBh Fehler im BIOS Fehler im BIOS
CCh Schreibfehler -
FFh Unbekannter Fehler Unbekannter Fehler



Disk Drive Parameter Table [DDPT]

Inhalt
00h Step-Rate/Head-Unload-Time
01h Head-Load-Time
02h Nachlaufzeit des Motors
03h Sektorgröße
04h Sektoren pro Spur
05h Länge von GAP3
06h Data Length
07h Länge von GAP3 beim Formatieren
08h Füll-Byte für das Formatieren
09h Head-Settle-Time
0Ah Hochlaufzeit des Motors



Formatpuffer [05h]

Festplatte Floppy
0 Spur Spur
1 Kopf Diskettenseite
0 Oben/1 Unten
2 Sektornummer Sektornummer
3 Bytes pro Sektor:
0=128
1=256
2=512
3=1024
Bytes pro Sektor:
0=128
1=256
2=512
3=1024