From: Joshua Wise Date: Mon, 6 Oct 2008 09:36:23 +0000 (-0400) Subject: Make keyboard actually reliable again. Update what's actually on the screen, not... X-Git-Url: http://git.joshuawise.com/netwatch.git/commitdiff_plain/d3411e0d51c282841fb0137fb3764860c9006002?ds=inline;hp=d9de6545faee2e375a98f43e373dda9f3418b14b Make keyboard actually reliable again. Update what's actually on the screen, not what we wish to be on the screen. --- diff --git a/aseg/counter.c b/aseg/counter.c index d6208d6..055ceec 100644 --- a/aseg/counter.c +++ b/aseg/counter.c @@ -22,10 +22,8 @@ static void cause_kbd_irq() while (inb(0x64) & 0x1) inb(0x60); outb(0x60, 0xee); /* Cause an IRQ. */ - while (!(inb(0x64) & 0x1)) + while (inb(0x60) != 0xEE) ; - while (inb(0x64) & 0x1) - inb(0x60); } void pci_dump() { @@ -62,7 +60,8 @@ void pci_dump() { { b = kbd_get_injected_scancode(); lastctr = counter; - inb(0x60); + while (inb(0x64) & 0x1) + inb(0x60); } else b = inb(0x60); if ((curdev == 0) && (b == 0x01)) { /* Escape */ diff --git a/net/net.c b/net/net.c index e1c7444..46ea9cd 100644 --- a/net/net.c +++ b/net/net.c @@ -83,6 +83,13 @@ void eth_poll() // if ((c++) % 2) // return; + + if (((base + 80*25*2)%0x8000) < base) + { + if ((pos > ((base + 80*25*2)%0x8000)) && (pos < base)) + pos = base; + } else if ((pos > base + 80*25*2) || (pos < base)) + pos = base; test[0] = pos >> 8; test[1] = pos & 0xFF;