Der BIOS Interrupt 13h dient dem einfachen Zugriff auf Festplatten und Diskettenlaufwerke. Diese sind nur im [[Real Mode]] verfügbar und ist für [[Bootloader]] da. == Die wichtigsten Funktionen == {| {{Prettytable}} ! 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 == {| {{Prettytable}} ! 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] == {| {{Prettytable}} ! || 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] == {| {{Prettytable}} ! || 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 |} [[Kategorie: Hardware]]