Int 13h, Funktion 08h - Laufwerkparameter auslesen
-
Wenn ich bei meiner Festplatte mit der achten Funktion die Parameter auslese, werden mir nur ein Leseknopf angezeigt, obwohl ich genau weiss, dass sie 16 Stueck hat.
AX gibt bei Funktionsaufruf 00h zuruck, BX 00h, CX C2C4h und DX 0101h. Hier sind die Funktionsparameter aus dem PhoenixBIOS 4.0 User's Manual(leider nur in Englisch):
Interrupt 13h–Fixed Disk Services, Continued
AH = 08h Read drive parameters
Entry:
DL Drive number (80H-81H)
Exit:
CL Maximum sector number
CH Maximum cylinder number
(High bits in CL)
DH Maximum head number
DL Number of responding drives (0-2)
If Carry - 1:
AH 07h = Invalid drive number
AL 0 = Error
CX 0 = Error
DX 0 = ErrorIrgendwo habe ich auch was davon gelesen, dass in BX der Laufwerktyp zurueckgegeben werden soll, aber ich bin mir nicht sicher, wie das bei meinem BIOS genau ist.
-
Ach ja, habe noch vergessen, dass das Carry-Flag nicht gesetzt wird; es ist also zu keinem Fehler waehrend dem Funktionsaufruf gekommen.
-
1. Wieder nicht darauf verlassen, dass das unter Windows XP ueberhaupt funktioniert, 2. kannst du mit diesen CHS-Funktionen eine 40GB-Platte eh nicht steuern. Schon allein die 8Bit-Rueckgabewerte sind nicht breit genug, um die korrekten Zahlen zurueckzugeben. Da kann es evtl. auch einfach intern zu Rechenfehlern kommen.
-
Was hat Windows damit zu tun? Die Interruptfunktionen sind doch im BIOS!
Wieso CHS-Funktionen? Gibt es auch extra Funktionen fuer LBA-Laufwerke?
Oder kann man die irgendwo vielleicht mit einem BIOS-update hinzufuegen?
-
1. Windows faengt alle Interruptaufrufe ab. Wenn du versuchst, BIOS-Interrupts in einem Windows-Programm zu benutzen, ist dein Programm zB. die laengste Zeit gelaufen.
2. DOS-Programme laufen in WinNT (also auch seit 2k) in einem PC-Emulator, bzw. einer VM, genannt "NTVDM". Das ist pure Software und hat also praktisch nichts mit dem eigentlichen Rechner, BIOS, etc. mehr zu tun.
Und ja: Es gibt auch BIOS-Funktionen, die LBA unterstuetzen (42h zB. - ka, in wie fern das praktisch implementiert wird). Wie auch immer: Diese CHS-Funktionen kannst du mit so grossen HDDs so oder so nicht benutzen.
-
OK, dann versuche ich es mal mit den Funktionen ab 040h.
Hatte die leider vorher uebersehen.
Danke jedenfalls!