Rename stdvga_set_border_color() to stdvga_set_cga_background_color()
and stdvga_set_palette() to stdvga_set_cga_palette(). These functions
implement compatibility for old CGA cards - rename them so they are
not confused with the functions that manipulte the VGA palette.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
vgasrc/stdvga.c | 23 ++++++++++++++---------
vgasrc/stdvga.h | 4 ++--
vgasrc/vgabios.c | 4 ++--
3 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/vgasrc/stdvga.c b/vgasrc/stdvga.c
index da67af4..eac0357 100644
--- a/vgasrc/stdvga.c
+++ b/vgasrc/stdvga.c
@@ -18,19 +18,32 @@
* Attribute control
****************************************************************/
+// Emulate CGA background setting via VGA palette index registers
void
-stdvga_set_border_color(u8 color)
+stdvga_set_cga_background_color(u8 color)
{
+ // Set the background color (via palette index 0)
u8 v1 = color & 0x0f;
if (v1 & 0x08)
v1 += 0x08;
stdvga_attr_write(0x00, v1);
+ // Dim/brighten foreground (see pal_cga[] in stdvgamodes.c)
int i;
for (i = 1; i < 4; i++)
stdvga_attr_mask(i, 0x10, color & 0x10);
}
+// Emulate CGA palette setting by altering VGA palette index registers
+void
+stdvga_set_cga_palette(u8 palid)
+{
+ // Switch foreground colors (see pal_cga[] in stdvgamodes.c)
+ int i;
+ for (i = 1; i < 4; i++)
+ stdvga_attr_mask(i, 0x01, palid & 0x01);
+}
+
void
stdvga_set_overscan_border_color(u8 color)
{
@@ -43,14 +56,6 @@ stdvga_get_overscan_border_color(void)
return stdvga_attr_read(0x11);
}
-void
-stdvga_set_palette(u8 palid)
-{
- int i;
- for (i = 1; i < 4; i++)
- stdvga_attr_mask(i, 0x01, palid & 0x01);
-}
-
void
stdvga_set_all_palette_reg(u16 seg, u8 *data_far)
{
diff --git a/vgasrc/stdvga.h b/vgasrc/stdvga.h
index ce79783..a2375c7 100644
--- a/vgasrc/stdvga.h
+++ b/vgasrc/stdvga.h
@@ -45,10 +45,10 @@
#define SEG_MTEXT 0xB000
// stdvga.c
-void stdvga_set_border_color(u8 color);
+void stdvga_set_cga_background_color(u8 color);
+void stdvga_set_cga_palette(u8 palid);
void stdvga_set_overscan_border_color(u8 color);
u8 stdvga_get_overscan_border_color(void);
-void stdvga_set_palette(u8 palid);
void stdvga_set_all_palette_reg(u16 seg, u8 *data_far);
void stdvga_get_all_palette_reg(u16 seg, u8 *data_far);
void stdvga_toggle_intensity(u8 flag);
diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
index 2ca8c3d..d522f83 100644
--- a/vgasrc/vgabios.c
+++ b/vgasrc/vgabios.c
@@ -457,13 +457,13 @@ handle_100a(struct bregs *regs)
static void
handle_100b00(struct bregs *regs)
{
- stdvga_set_border_color(regs->bl);
+ stdvga_set_cga_background_color(regs->bl);
}
static void
handle_100b01(struct bregs *regs)
{
- stdvga_set_palette(regs->bl);
+ stdvga_set_cga_palette(regs->bl);
}
static void
--
2.44.0
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org