[SeaBIOS] [PATCH 1/4] vgabios: Only init BDA device details in init_bios_area()

Kevin O'Connor kevin at koconnor.net
Thu Oct 23 22:45:09 CEST 2014


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 at 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;
-- 
1.9.3




More information about the SeaBIOS mailing list