[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
a few small BIOS IO patches, oops...
Juergen Lock writes:
> 2. auto-repeat on console doesn't generate keyboard interrupts and so
> a select on the keyboard usually did not wake up before the key was
> released (or timeout). this was the reason for the often sluggish
> response on vts...
>
> Index: intr.spp
> --- intr.spp_ Tue Aug 17 11:11:20 1993
> +++ intr.spp Sat Oct 9 14:05:34 1993
this patch works but only because it ends up setting kintr always :-)
(keyrec is IOREC * not IOREC). also i looked where repeat is done:
before evnt_timer is called. so i think this is a better place:
Index: timeout.c
--- timeout.c_ Fri Jun 25 21:24:20 1993
+++ timeout.c Sun Oct 10 03:54:32 1993
@@ -140,6 +140,10 @@
* suspends the current process
*/
+/* variables for monitoring the keyboard */
+extern IOREC_T *keyrec; /* keyboard i/o record pointer */
+extern short kintr; /* keyboard interrupt pending (see intr.s) */
+
volatile int our_clock = 1000;
void ARGS_ON_STACK
@@ -147,6 +151,8 @@
{
int ms; /* time between ticks */
+ *(char *)&kintr = (keyrec->head != keyrec->tail) ? -1 : 0;
+
ms = *((short *)0x442L);
if (proc_clock > 0)
proc_clock--;
sorry,
Juergen
PS: to get rid of a bad patch just feed it thru patch again, it will ask
if it should `un-patch'...
--
J"urgen Lock / nox@jelal.north.de / UUCP: ..!uunet!unido!uniol!jelal!nox
...ohne Gewehr
PGP public key fingerprint = 8A 18 58 54 03 7B FC 12 1F 8B 63 C7 19 27 CF DA