[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