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 = Error

    Irgendwo 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!


Anmelden zum Antworten