Interrupt 13h

Aus Lowlevel
Version vom 10. Dezember 2008, 16:45 Uhr von Dem epOS sein Linus (Diskussion | Beiträge) (Die liebe Rechtschreibung :P)
Wechseln zu:Navigation,

Der BIOS Interrupt 13h dient dem einfachen Zugriff auf Festplatten und Diskettenlaufwerke.

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