Hallo,
ich habe schon wieder ein Problem.
Ich habe das A20Gate Tut gelesen und versuche nun es in meinem Kernel über
einen funktionsaufruf zu aktivieren.
Die funktion die ich aufrufe sieht folgendermaßen aus:
void A20gate_enable()
{
unsigned char RetVal;
//A20-Gate aktivieren
//A1:
RetVal = in(0x64); //Tastatur-Controller Statusbyte lesen
if (RetVal == 0x2)
{
writeln("War 2!");
}
else
{
writeln(RetVal);
}
writeln(0x2);
}
in ist eine andere Funktion, die aber funktioniert:
unsigned char in(unsigned short _port)
{
// "=a" (result) means: put AL register in variable result when finished
// "d" (_port) means: load EDX with _port
unsigned char result;
__asm__ ("in %%dx, %%al" : "=a" (result) : "d" (_port));
return result;
}
Nun zu meinem Problem:
eigentlich möchte ich Retval auf 00000010b testen.
Wie kann ich das machen?? Geht das so wie ich es mit dem Hex 0x2 mache?
Irgendwie sagt der mir aber, das ich als rückgabewert allerdings nicht 0x2 habe.
Dann wollte ich sehen was zurück gegeben wird und habe Retval auf Bildschirm ausgeprintet und bekomme den Buchstaben "S".
Was geschieht da? Wie kann ich den Rückgabewert auf 00000010b testen?
Gruß sov21
ich habe schon wieder ein Problem.
Ich habe das A20Gate Tut gelesen und versuche nun es in meinem Kernel über
einen funktionsaufruf zu aktivieren.
Die funktion die ich aufrufe sieht folgendermaßen aus:
void A20gate_enable()
{
unsigned char RetVal;
//A20-Gate aktivieren
//A1:
RetVal = in(0x64); //Tastatur-Controller Statusbyte lesen
if (RetVal == 0x2)
{
writeln("War 2!");
}
else
{
writeln(RetVal);
}
writeln(0x2);
}
in ist eine andere Funktion, die aber funktioniert:
unsigned char in(unsigned short _port)
{
// "=a" (result) means: put AL register in variable result when finished
// "d" (_port) means: load EDX with _port
unsigned char result;
__asm__ ("in %%dx, %%al" : "=a" (result) : "d" (_port));
return result;
}
Nun zu meinem Problem:
eigentlich möchte ich Retval auf 00000010b testen.
Wie kann ich das machen?? Geht das so wie ich es mit dem Hex 0x2 mache?
Irgendwie sagt der mir aber, das ich als rückgabewert allerdings nicht 0x2 habe.
Dann wollte ich sehen was zurück gegeben wird und habe Retval auf Bildschirm ausgeprintet und bekomme den Buchstaben "S".
Was geschieht da? Wie kann ich den Rückgabewert auf 00000010b testen?
Gruß sov21

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert


(