On Mon, Mar 05, 2012 at 08:10:41AM +0100, Gerd Hoffmann wrote: > On 03/04/12 20:06, Kevin O'Connor wrote: > > On Fri, Mar 02, 2012 at 10:09:10AM +0100, Gerd Hoffmann wrote: > >> Did some more testing of the vgabios today, two issues popped up: > >> > >> (1) screen isn't cleared in some cases. Visible with grub1 in text > >> mode. When it displays the menu a few stray chars are visible. > >> Even more obvious it becomes when hitting 'c' then to get a > >> prompt, then alot of the menu is still visible. > > > > Thanks. Can you point me to an image and/or the steps to reproduce? > > I've tracked down a few of these before, and I'm sure I can fix it if > > I can reproduce it. > > Install fedora 15 (or older) in qemu (mimimal is enougth). Edit > /boot/grub/menu.lst and comment out the splashimage and hiddenmenu > lines. On next reboot grub will come up in text mode and you'll see the > behavior described above.
I couldn't reproduce the issue on the initial screen, but I can reproduce when hitting the 'c' key. Turns out to be an integer overflow issue - patch below. -Kevin >From c823759f201db6cea5a5f13fb7b5bec1cc47c114 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor <[email protected]> Date: Mon, 5 Mar 2012 17:11:50 -0500 Subject: [PATCH] vgabios: int1009 handler bug limits count to 256 characters. To: [email protected] Fix bug (u8 overflow) causing large screen fills to fail. Signed-off-by: Kevin O'Connor <[email protected]> --- vgasrc/vgabios.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c index 58e467d..faf57b1 100644 --- a/vgasrc/vgabios.c +++ b/vgasrc/vgabios.c @@ -510,10 +510,15 @@ handle_1008(struct bregs *regs) static void noinline write_chars(u8 page, struct carattr ca, u16 count) { + u16 nbcols = GET_BDA(video_cols); struct cursorpos cp = get_cursor_pos(page); while (count--) { vgafb_write_char(cp, ca); cp.x++; + if (cp.x >= nbcols) { + cp.x -= nbcols; + cp.y++; + } } } -- 1.7.6.5 _______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
