Subject: Re: port-i386/17865: i386 boot-blocks hate function keys
To: David Laight <david@l8s.co.uk>
From: Andrew Brown <atatat@atatdot.net>
List: netbsd-bugs
Date: 08/07/2002 13:13:35
>> nah...that'd have the unfortunate side-effect that regular unattended
>> booting would take longer.  the point is not that i don't have enough
>> time to press the key, the point is that i get distracted at the
>> crucial moment and then the bootblocks stop behaving as expected
>> (after i punch f3).  they shouldn't stop acknowledging keypresses
>> while they're counting down.
>
>Ok can you remember whether F3 had the effect of aborting the
>countdown? ie acting the same as enter?

i didn't.  that was the problem.  if it did abort the countdown, we
wouldn't be here now.

>The bios call used to read the keyboard returns the raw keycode
>in ah and the ascii value in al.  For function keys the ascii
>value could easily be 0.  This would terminate the timeout.

they probably *are* 0 because function keys, iirc, return an extended
keycode from the keyboard port first.  i dunno if that's confusing
things...it might be.

>awaitkey() (in sys/arch/i386/stand/lib/pcio.c) has the following:
>
>	/* flush input buffer */
>	while (iskey())
>		c = getchar();
>	goto out; /* XXX what happens if c == 0? */
>
>Maybe it would be better to add:
>	if (!c)
>		c = -1;
>
>So that keys with an ascii value of 0 aren't treated as
>timeout.

or perhaps just something as simple as a space so that the countdown
gets aborted?  hmm...i dunno.  maybe not.

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org             * "ah!  i see you have the internet
twofsonet@graffiti.com (Andrew Brown)                that goes *ping*!"
andrew@crossbar.com       * "information is power -- share the wealth."