Subject: Re: port-i386/17865: i386 boot-blocks hate function keys
To: <>
From: David Laight <david@l8s.co.uk>
List: netbsd-bugs
Date: 08/07/2002 18:46:29
> 1) Abort as in 'stop counting and boot now',
>    not abort as in 'stop counting and give me a prompt',
> 2) as opposed to 'continue counting but ignore the keyboard'.

Ok it does (2) first due to a bug in coniskey, then (1) due
to the previously mentioned but in awaitkey.

Fix to (2) is:

dsl@snowdrop:-ksh$ cvs diff conio.S
Index: conio.S
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/i386/stand/lib/conio.S,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 conio.S
--- conio.S     1997/03/14 02:40:32     1.1.1.1
+++ conio.S     2002/08/07 17:38:09
@@ -85,8 +85,9 @@
        movb    $0x1,%ah
        int     $0x16
        data32
+       movb    $0,%bl
        jz      1f
-       movb    %al,%bl
+       incb    %bl
 1:
 
	data32

The int16(ah=1) call returns status in the 'z' flag,
the contents of al are either undefined or are the value of
the key.  Who knows what was in bl (when al wasn't copied there)
- possible the 0 setup before the int16 call...

Anywhat the explicit checks above are fine.

	David

-- 
David Laight: david@l8s.co.uk