[SeaBIOS] [PATCH 04/15] Report stdvga modes in VBE via int10 (AX = 4F00h)

Kevin O'Connor kevin at koconnor.net
Mon Sep 3 19:02:55 CEST 2012


On Mon, Sep 03, 2012 at 06:59:32PM +0200, Christian Gmeiner wrote:
> Am 03.09.2012 18:07 schrieb "Christian Gmeiner" <christian.gmeiner at gmail.com
> >:
> >
> > 2012/9/3 Kevin O'Connor <kevin at koconnor.net>:
> > > On Sat, Sep 01, 2012 at 05:12:55PM +0200, Christian Gmeiner wrote:
> > >> As all supported graphic adapters are supporting VGA we should
> > >> list them in int10 (AX = 4F00h). Also clext.c and bochsvga.c
> > >> are haveing a function named like is_XXX_mode() which checks
> > >> if its a default VGA mode or a VESA mode. If its a normal VGA
> > >> mode stdvga_set_mode() gets called.
> > > [...]
> > >>  void
> > >>  stdvga_list_modes(u16 seg, u16 *dest, u16 *last)
> > >>  {
> > >> +    int i;
> > >> +    for (i = 0; i < ARRAY_SIZE(vga_modes); i++) {
> > >> +        struct stdvga_mode_s *stdmode_g = &vga_modes[i];
> > >> +        u16 mode = GET_GLOBAL(stdmode_g->mode);
> > >> +        if (mode == 0xffff)
> > >> +            continue;
> > >> +        SET_FARVAR(seg, *dest, mode);
> > >> +        dest++;
> > >> +    }
> > >> +
> > >>      SET_FARVAR(seg, *dest, 0xffff);
> > >>  }
> > >
> > > This is a good idea.  However, I don't think vbe_104f01() will
> > > correctly handle all the standard vga modes as it is coded today.
> > >
> >
> > I will have a closer look at it during my following patches. If you want
> you
> > can skip this patch.
> >
> 
> Maybe it would be better to use this patch and update vga_modes array to
> reflect the modes we can do now.

All the modes work in the sense that one can switch to them.  (I've
tested that.)  However, I think that some modes (eg, cga) wont be
represented correctly by vbe_104f01.

-Kevin



More information about the SeaBIOS mailing list