Don't set the device details when changing modes, and don't set mode details outside of mode setting.
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- vgasrc/vgabios.c | 9 --------- vgasrc/vgainit.c | 19 ++++++++----------- 2 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c index 5fdb549..e2a4efc 100644 --- a/vgasrc/vgabios.c +++ b/vgasrc/vgabios.c @@ -326,15 +326,6 @@ vga_set_mode(int mode, int flags) SET_BDA(video_pagestart, 0x0000); SET_BDA(video_page, 0x00);
- // FIXME We nearly have the good tables. to be reworked - SET_BDA(dcc_index, 0x08); // 8 is VGA should be ok for now - SET_BDA(video_savetable - , SEGOFF(get_global_seg(), (u32)&video_save_pointer_table)); - - // FIXME - SET_BDA(video_msr, 0x00); // Unavailable on vanilla vga, but... - SET_BDA(video_pal, 0x00); // Unavailable on vanilla vga, but... - // Set the ints 0x1F and 0x43 SET_IVT(0x1f, SEGOFF(get_global_seg(), (u32)&vgafont8[128 * 8]));
diff --git a/vgasrc/vgainit.c b/vgasrc/vgainit.c index 5c76c5b..c323cf8 100644 --- a/vgasrc/vgainit.c +++ b/vgasrc/vgainit.c @@ -140,20 +140,17 @@ init_bios_area(void) // set 80x25 color (not clear from RBIL but usual) set_equipment_flags(0x30, 0x20);
- // the default char height - SET_BDA(char_height, 0x10); - - // Clear the screen - SET_BDA(video_ctl, 0x60); - - // Set the basic screen we have - SET_BDA(video_switches, 0xf9); - // Set the basic modeset options SET_BDA(modeset_ctl, 0x51);
- // Set the default MSR - SET_BDA(video_msr, 0x09); + // FIXME We nearly have the good tables. to be reworked + SET_BDA(dcc_index, 0x08); // 8 is VGA should be ok for now + SET_BDA(video_savetable + , SEGOFF(get_global_seg(), (u32)&video_save_pointer_table)); + + // FIXME + SET_BDA(video_msr, 0x00); // Unavailable on vanilla vga, but... + SET_BDA(video_pal, 0x00); // Unavailable on vanilla vga, but... }
int VgaBDF VAR16 = -1;