2012-03-28 12 views
0

Ich schreibe einen Spiel-Bootloader für x86. An einem Punkt, früh im Bootvorgang, muss ich einige Sektoren von meinem Boot-Laufwerk in den Speicher laden. Ich mache das mit Interrupt 0x13 (ah = 02), und wenn ich es in meiner virtuellen Maschine versuche, funktioniert es wie ein Zauber. Wenn ich jedoch das Image auf ein USB-Laufwerk brenne, bootet der Computer nicht und ich habe ihn an die Anweisungen zum Laden des Sektors angehängt. Offensichtlich ist mein USB-Laufwerk nicht Laufwerk 0 (Diskette A), daher schlägt der Lesevorgang fehl.Herauszufinden, welches Laufwerk in x86 Bootloader gestartet wurde

Wie kann ich feststellen, welches Laufwerk zum Booten verwendet wurde?

Danke!

Antwort

4

BIOS lädt die Nummer des Laufwerks, von dem der Bootloader geladen wurde, um dl zu registrieren. Quelle: OSDev Wiki, Abschnitt MBR Bootstrap.

+0

Perfekt! Ich denke, das ist es, was ich bekomme, wenn ich diese Handbücher überspringe. Danke! – Guido