bist du dir sicher das der Fehler da auftritt? Weil ich sehe da auch kein 0x96.
@taljeth : oder könnte das nen Fehler in qemu sein?
@taljeth : oder könnte das nen Fehler in qemu sein?
09. November 2026, 18:30
Gespeichert while(1); danach eingebaut. Der Fehler trat nicht mehr auf. Also hat er etwas mit dem sendPara() zu tun.Als ich den die Zeile auskommentiert und eineCode: [Auswählen]while(1);danach eingebaut. Der Fehler trat nicht mehr auf. Also hat er etwas mit dem sendPara() zu tun.
Qemu sagt mir ja, dass ich 0x96 sende, ich weiß aber nicht wo.Dann bau ein paar kprintfs ein, bis du es weißt.
@taljeth : oder könnte das nen Fehler in qemu sein?Nein, der Compiler und der Emulator haben immer recht. *
Gespeichert Hätte ja sein können, das das nen Bug in Qemu ist.@taljeth : oder könnte das nen Fehler in qemu sein?Nein, der Compiler und der Emulator haben immer recht. *
*) Die einzige Ausnahme, für die das nicht gilt, sind Leute, die genau wissen, was sie tun
Die einzige Ausnahme, für die das nicht gilt, sind Leute, die genau wissen, was sie tunMit anderen Worten: es gibt hier keine Ausnahmen von der Regel.


Ich glaube, dass ich hier ein paar Missverständnisse beseitigen muss:Als ich den die Zeile auskommentiert und eineCode: [Auswählen]while(1);danach eingebaut. Der Fehler trat nicht mehr auf. Also hat er etwas mit dem sendPara() zu tun.
Hmm… ich weiß jetzt nicht genau wo du das "while" hingesetzt hast, aber wenn mit 'while' kein Fehler Auftritt dann liegt der Fehler eindeutig hinter dem 'while', das ist dir aber wahrscheinlich klar und du hast dich nur nicht genau ausgedrückt.
Zu deinem code:
Wo der Wiki-Code 'send_cmd' benutzt, benutzt du 'out', auch wenn das bei QEMU vermutlich nichts ausmachen sollte, könnte das spätestens bei echter HW zu Problemen fuhren wenn du nicht wartest bis der FDC bereit ist.
....
//sendPara( fdc.acDrive | (H << 2) ); //H = head, fdc.acDrive = aktueller Drive
while(1);
So tritt kein Fehle auf.outb ist eine ganz Normale Funktion um einen Wert in einen Port zu schreibenDas ist mir klar. Ich kenne die Spezifikation nicht, aber einfach so werte raus hauen scheint
Das while(1); ab ich wie folgt positioniert:Also dochCode: [Auswählen]....So tritt kein Fehle auf.
//sendPara( fdc.acDrive | (H << 2) ); //H = head, fdc.acDrive = aktueller Drive
while(1);
. Wer sagt dir denn, dass der Fehler nicht sonst erst hinter dem while auftrit?