Interrupt 13h
Aus Lowlevel
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.
Inhaltsverzeichnis
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 |