Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: elfish_rider am 30. November 2004, 20:24
-
Die CPU bleibt bei einem normalen BIOS-Interrupt hängen. Bochs sagt dazu nur: SLDT: not recognized in real mode
MOV AX, 0201h
MOV CH, [first_read_sec_chs]
MOV CL, [first_read_sec_chs+2]
MOV DH, [first_read_sec_chs+1]
XOR DL, DL
XOR BX, BX
INT 13h
JC NEAR .floppy_error
Vor dieser Stelle wird INT 13h auch schon mehrmals benutzt, ohne Probleme
-
Hiho,
Scheinbar ist irgendein Jump schiefgegangen und die CPU trifft auf die sldt Anweisung. Fehler u.a. könnten sein:
1.) "NEAR .floppy_error" label stimmt nicht
2.) du hast ein Bug im BIOS (Was ich nicht glaube wenn du die neueste Version hast)
3.) du hast die Interrupt Vector Tabelle überschrieben an Offset (0x0000:0x0000)
4.) du hast den Bereich im den der int 0x13 code liegt überschrieben.
Schmeiß am besten ma allen Code raus, der nicht wichtig ist, und teste dei BIOS call dann nochmal...
P.S.: Welchen wert hat es?
MfG GhostCoder
-
1. stimmt das Label
2. habe ich es mit 2 verschiedenen BIOS ausprobiert
3. und 4. werde ich überprüfen
-
Was für einen Wert meinst du?
-
ich glaub er meint den wert des segment registers es
-
Bin gerade am debuggen, und der Wert ist bei allen Floppy-Operationen 0400h.
-
Der Fehler liegt doch nicht bei INT 13h, sorry!
-
Hiho,
hab ich doch gesagt :)
Btw, woran lags?
MfG GhostCoder
-
Ich lese die RootDir-Einträge und suche den, der der Benutzer eingegeben hat. Wenn es übereinstimmt, lese ich den LSN dieser Datei, lese diese ein und springe dorthin. Funktioniert aber immer noch nicht...
[FAT12]