[SeaBIOS] [PATCH 4/5] vgabios: Minor vgabios fixes.

Kevin O'Connor kevin at koconnor.net
Tue Feb 14 02:35:32 CET 2012


Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
 vgasrc/clext.c   |    4 ++--
 vgasrc/vgabios.c |   22 +++++-----------------
 vgasrc/vgabios.h |    4 ++++
 3 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/vgasrc/clext.c b/vgasrc/clext.c
index 7d1a604..e5dce35 100644
--- a/vgasrc/clext.c
+++ b/vgasrc/clext.c
@@ -533,8 +533,8 @@ clext_1012a0(struct bregs *regs)
 {
     struct vgamode_s *table_g = clext_find_mode(regs->al & 0x7f);
     regs->ah = (table_g ? 1 : 0);
-    regs->si = 0xffff;
-    regs->di = regs->ds = regs->es = regs->bx = (u32)a0h_callback;
+    regs->bx = (u32)a0h_callback;
+    regs->ds = regs->si = regs->es = regs->di = 0xffff;
 }
 
 static void
diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
index dc5d7e9..bca2e9a 100644
--- a/vgasrc/vgabios.c
+++ b/vgasrc/vgabios.c
@@ -1,16 +1,10 @@
 // VGA bios implementation
 //
-// Copyright (C) 2009  Kevin O'Connor <kevin at koconnor.net>
+// Copyright (C) 2009-2012  Kevin O'Connor <kevin at koconnor.net>
 // Copyright (C) 2001-2008 the LGPL VGABios developers Team
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-
-// TODO:
-//  * review correctness of converted asm by comparing with RBIL
-//
-//  * convert vbe/clext code
-
 #include "bregs.h" // struct bregs
 #include "biosvar.h" // GET_BDA
 #include "util.h" // memset
@@ -24,10 +18,6 @@
 #include "pci.h" // pci_config_readw
 #include "pci_regs.h" // PCI_VENDOR_ID
 
-// XXX
-#define DEBUG_VGA_POST 1
-#define DEBUG_VGA_10 3
-
 // Standard Video Save Pointer Table
 struct VideoSavePointer_s {
     struct segoff_s videoparam;
@@ -46,7 +36,7 @@ struct VideoParam_s video_param_table[29] VAR16;
 /****************************************************************
  * PCI Data
  ****************************************************************/
-#if CONFIG_VGA_PCI == 1
+
 struct pci_data rom_pci_data VAR16VISIBLE = {
     .signature = PCI_ROM_SIGNATURE,
     .vendor = CONFIG_VGA_VID,
@@ -57,7 +47,7 @@ struct pci_data rom_pci_data VAR16VISIBLE = {
     .type = PCIROM_CODETYPE_X86,
     .indicator = 0x80,
 };
-#endif
+
 
 /****************************************************************
  * Helper functions
@@ -170,7 +160,7 @@ set_active_page(u8 page)
     if (!vmode_g)
         return;
 
-    // Get pos curs pos for the right page
+    // Get cursor pos for the given page
     struct cursorpos cp = get_cursor_pos(page);
 
     // Calculate memory address of start of page
@@ -875,7 +865,7 @@ handle_101130(struct bregs *regs)
     regs->cx = GET_BDA(char_height) & 0xff;
 
     // Set Highest char row
-    regs->dx = GET_BDA(video_rows);
+    regs->dl = GET_BDA(video_rows);
 }
 
 static void
@@ -1274,8 +1264,6 @@ vga_post(struct bregs *regs)
     extern void entry_10(void);
     SET_IVT(0x10, SEGOFF(get_global_seg(), (u32)entry_10));
 
-    // XXX - clear screen and display info
-
     SET_VGA(HaveRunInit, 1);
 
     // Fixup checksum
diff --git a/vgasrc/vgabios.h b/vgasrc/vgabios.h
index d32e1b0..13e5cce 100644
--- a/vgasrc/vgabios.h
+++ b/vgasrc/vgabios.h
@@ -73,6 +73,10 @@ extern u8 vgafont16[];
 extern u8 vgafont14alt[];
 extern u8 vgafont16alt[];
 
+// Debug settings
+#define DEBUG_VGA_POST 1
+#define DEBUG_VGA_10 3
+
 // vgabios.c
 extern int VgaBDF;
 extern int HaveRunInit;
-- 
1.7.6.5




More information about the SeaBIOS mailing list