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 |

