X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fdrv%2Fkb.c;h=d6124e7fc02b9cf4795072b19d9b5fc7a19aff36;hb=9d3800f60f2212432e550a4e003ae65b498a4d36;hp=fc078974f552017f73b102864a863be0c5aaf9ec;hpb=2c4e2813c105e40b962e7982b40a348dc0b272e6;p=tpg%2Facess2.git diff --git a/Kernel/drv/kb.c b/Kernel/drv/kb.c index fc078974..d6124e7f 100644 --- a/Kernel/drv/kb.c +++ b/Kernel/drv/kb.c @@ -66,7 +66,7 @@ void KB_IRQHandler() { Uint8 scancode; Uint32 ch; - int keyNum; + // int keyNum; //if( inportb(0x64) & 0x20 ) return; @@ -105,7 +105,7 @@ void KB_IRQHandler() // Translate ch = gpKB_Map[giKB_KeyLayer][scancode]; - keyNum = giKB_KeyLayer * 256 + scancode; + //keyNum = giKB_KeyLayer * 256 + scancode; // Check for unknown key if(!ch && !gbKB_KeyUp) Warning("UNK %i %x", giKB_KeyLayer, scancode); @@ -117,7 +117,7 @@ void KB_IRQHandler() if (gbKB_KeyUp) { gbKB_KeyUp = 0; - gbaKB_States[ keyNum ] = 0; // Unset key state flag + gbaKB_States[ ch ] = 0; // Unset key state flag if( !gbaKB_States[KEY_LSHIFT] && !gbaKB_States[KEY_RSHIFT] ) gbKB_ShiftState = 0; @@ -129,7 +129,7 @@ void KB_IRQHandler() } // Set the bit relating to the key - gbaKB_States[keyNum] = 1; + gbaKB_States[ch] = 1; if(ch == KEY_LSHIFT || ch == KEY_RSHIFT) gbKB_ShiftState = 1; @@ -141,7 +141,17 @@ void KB_IRQHandler() // Ignore Non-Printable Characters if(ch == 0 || ch & 0x80) return; - + + // --- Check for Kernel Magic Combos + if(gbaKB_States[KEY_LCTRL] && gbaKB_States[KEY_LALT]) + { + switch(ch) + { + case 'd': __asm__ __volatile__ ("xchg %bx, %bx"); break; + case 'p': Threads_Dump(); break; + } + } + // Is shift pressed if(gbKB_ShiftState ^ gbKB_CapsState) { @@ -175,16 +185,6 @@ void KB_IRQHandler() } } - // --- Check for Kernel Magic Combos - if(gbaKB_States[KEY_LSHIFT] && gbaKB_States[KEY_RSHIFT]) - { - switch(ch) - { - case 'D': __asm__ __volatile__ ("xchg %bx, %bx"); break; - case 'P': Threads_Dump(); break; - } - } - if(gKB_Callback) gKB_Callback(ch); }