Hi
Ich möchte bei meinem Tastaturtreiber den ScanCode Set 2 Aktivieren:
Die Funktion gibt "KBDERR_NOERROR" zurück.
Aber bei den Interrupts bekomme ich immernoch die Set1-Codes...
Ich teste den Treiber mom unter bochs 2.2.1
leider habe ich momentan keine echten PCs zum testen...
Wo liegt der Fehler??
ps.: Zum Initialisieren:
* Keyboard deaktivieren
* Scancode setzen
* LEDs setzen/löschen
* Treiberumgebung initialisieren
* Interrupt installieren
* Keyboard aktivieren
Ich möchte bei meinem Tastaturtreiber den ScanCode Set 2 Aktivieren:
Code: [Auswählen]
int SetScanCode2()
{
WaitToWrite();
cpu::out(0x60, 0xF0); //Scancode �ndern
WaitToRead();
if(GetKeyboardBuffer() != 0xFA)return KBDERR_SETSCANCODE;
WaitToWrite();
cpu::out(0x60, 0x02); //Scancode 2
WaitToRead();
if(GetKeyboardBuffer() != 0xFA)return KBDERR_SETSCANCODE;
return KBDERR_NOERROR;
}
/////////////////////////////////////////////////////////////////////////////////////
BYTE GetKeyboardBuffer()
{
return cpu::in(0x60);
}
/////////////////////////////////////////////////////////////////////////////////////
void WaitToRead()
{
DWORD timeout = KBD_MAXTIMEOUT;
while(!(cpu::in(0x64) & 0x1) && timeout--);
return;
}
/////////////////////////////////////////////////////////////////////////////////////
void WaitToWrite()
{
DWORD timeout = KBD_MAXTIMEOUT;
while((cpu::in(0x64) & 0x2) && timeout--);
return;
}
Die Funktion gibt "KBDERR_NOERROR" zurück.
Aber bei den Interrupts bekomme ich immernoch die Set1-Codes...
Ich teste den Treiber mom unter bochs 2.2.1
leider habe ich momentan keine echten PCs zum testen...
Wo liegt der Fehler??
ps.: Zum Initialisieren:
* Keyboard deaktivieren
* Scancode setzen
* LEDs setzen/löschen
* Treiberumgebung initialisieren
* Interrupt installieren
* Keyboard aktivieren

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert

