Date: Tue, 27 Oct 1998 01:16:14 +0200 (SAT) From: Robert Nordier <rnordier@nordier.com> To: freebsd-current@FreeBSD.ORG Cc: abial@nask.pl, rnordier@nordier.com, mike@smith.net.au, Jos.Backus@nl.origin-it.com Subject: Re: /boot/loader hangs after arrow/function key pressed at prompt Message-ID: <199810262316.BAA02936@ceia.nordier.com> In-Reply-To: <199810262154.XAA01438@ceia.nordier.com> from Robert Nordier at "Oct 26, 98 11:54:26 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
I wrote:
> Andrzej Bialecki wrote:
> > On Mon, 26 Oct 1998, Robert Nordier wrote:
> >
> > > > I also encountered another problem: /boot/loader sometimes ignores
> > > > all keypresses (I wasn't able even to break the countdown), but I'm not
> > > > sure in what circumstances it happens - it sometimes happens, when I type
> > > > something on the boot: prompt, then delete it.
> > >
> > > If this happened with the new boot1/boot2, can you confirm this is
> > > still a problem? Your original report of this was some time ago, and
> > > various changes have been made, including to the input routine.
> >
> > I just checked it with the newest sources - I built the binaries, and
> > installed them, and rebooted... Well, after several times I kind of see a
> > pattern. /boot/loader seems to choke when I press Enter _twice_ very
> > quickly at the boot: prompt (but again, not always..). Seems to me that
> > some junk left in some buffer confuses it...
>
> That's great, thanks. I've managed to get it happening fairly
> reproducibly. FWIW, it needs Enter three times at the boot manager
> prompt here.
>
> I think I may have found the problem: anyway, I found something. I'll
> just have to work on my keyboard technique to test it. :-)
There following patch makes a difference here, though I'm not sure
this is necessarily the only problem.
Index: vidconsole.c
===================================================================
RCS file: /home/ncvs/src/sys/boot/i386/libi386/vidconsole.c,v
retrieving revision 1.6
diff -u -r1.6 vidconsole.c
--- vidconsole.c 1998/10/11 10:07:52 1.6
+++ vidconsole.c 1998/10/26 23:07:53
@@ -120,9 +120,7 @@
v86.addr = 0x16;
v86.eax = 0x100;
v86int();
- if (!(v86.efl & PSL_Z))
- return(v86.eax & 0xff);
- return(0);
+ return(!(v86.efl & PSL_Z));
}
#if KEYBOARD_PROBE
The function vidc_ischar() was attempting to return the ASCII code
of the key pressed, even though several PC keys don't have an
ASCII representation.
The corresponding serial function comc_ischar() is less ambitious,
so the patch reduces the behavior to the lower common denominator.
--
Robert Nordier
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810262316.BAA02936>
