Updates to VTerm to correctly handle framebuffer modes
[tpg/acess2.git] / Kernel / drv / kb.c
index 950f722..5e07840 100644 (file)
@@ -64,6 +64,7 @@ int KB_Install(char **Arguments)
        temp = inb(0x61);
        outb(0x61, temp | 0x80);
        outb(0x61, temp & 0x7F);
+       inb(0x60);      // Clear keyboard buffer
        
        IRQ_AddHandler(1, KB_IRQHandler);
        DevFS_AddDevice( &gKB_DevInfo );
@@ -81,17 +82,16 @@ void KB_IRQHandler()
        Uint32  ch;
        // int  keyNum;
 
-       //if( inportb(0x64) & 0x20 )    return;
+       // Check port 0x64 to tell if this is from the aux port
+       //if( inb(0x64) & 0x20 )        return;
 
        scancode = inb(0x60); // Read from the keyboard's data buffer
-       Log_Debug("KB", "scancode = %02x");
-
-       //Log("KB_IRQHandler: scancode = 0x%02x", scancode);
+       //Log_Debug("Keyboard", "scancode = %02x", scancode);
 
        // Ignore ACKs
        if(scancode == 0xFA) {
-               // Oh man! This is anachic (I'm leaving it here to represent the
-               // mess that Acess once was)
+               // Oh man! This is anarchic (I'm leaving it here to represent
+               // the mess that Acess once was)
                //kb_lastChar = KB_ACK;
                return;
        }
@@ -126,7 +126,7 @@ void KB_IRQHandler()
        //keyNum = giKB_KeyLayer * 256 + scancode;
        // Check for unknown key
        if(!ch && !gbKB_KeyUp)
-               Warning("UNK %i %x", giKB_KeyLayer, scancode);
+               Log_Warning("Keyboard", "UNK %i %x", giKB_KeyLayer, scancode);
 
        // Key Up?
        if (gbKB_KeyUp)
@@ -173,16 +173,17 @@ void KB_IRQHandler()
        #if USE_KERNEL_MAGIC
        if(ch == KEY_LCTRL) {
                gbKB_MagicState |= 1;
-               Log_Log("KB", "Kernel Magic LCTRL Down\n");
+               //Log_Log("Keyboard", "Kernel Magic LCTRL Down\n");
        }
        if(ch == KEY_LALT) {
                gbKB_MagicState |= 2;
-               Log_Log("KB", "Kernel Magic LALT Down\n");
+               //Log_Log("Keyboard", "Kernel Magic LALT Down\n");
        }
        if(gbKB_MagicState == 3)
        {
                switch(ch)
                {
+               case 'q':       *((int*)1) = 0; break;
                case 'd':       __asm__ __volatile__ ("xchg %bx, %bx"); break;
                case 'p':       Threads_Dump(); break;
                }

UCC git Repository :: git.ucc.asn.au