On Sat, Sep 01, 2012 at 05:12:59PM +0200, Christian Gmeiner wrote:
With the current code the following happens:
VBE mode info request: 4101 VBE mode 4101 not found get_mode failed.
Looking at the provided mode (cx register) only bits 8-0 define the video mode number. I am not sure if the current code ever worked.
Signed-off-by: Christian Gmeiner christian.gmeiner@gmail.com
vgasrc/vbe.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/vgasrc/vbe.c b/vgasrc/vbe.c index 227a244..af72324 100644 --- a/vgasrc/vbe.c +++ b/vgasrc/vbe.c @@ -72,9 +72,24 @@ vbe_104f01(struct bregs *regs) struct vbe_mode_info *info = (void*)(regs->di+0); u16 mode = regs->cx;
- /*
* Bitfields for VESA/VBE video mode number:
*
* Bit(s) Description (Table 04082)
* 15 preserve display memory on mode change
* 14 (VBE v2.0+) use linear (flat) frame buffer
* 13 (VBE/AF 1.0P) VBE/AF initializes accelerator hardware
* 12 reserved for VBE/AF
* 11 (VBE v3.0) user user-specified CRTC refresh rate values
* 10-9 reserved for future expansion
* 8-0 video mode number (0xxh are non-VESA modes, 1xxh are VESA-defined)
*
* see http://www.ctyme.com/intr/rb-0274.htm
*/
This is true for the call to set mode (vbe_104f02), but the spec does not say this for the get mode info call (104f01). It would be odd to pass in these additional bits when the caller just wants to get info on the given mode.
-Kevin