aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/stdvgamodes.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2024-04-01 13:44:58 -0400
committerKevin O'Connor <kevin@koconnor.net>2024-04-13 13:19:56 -0400
commit731c88d503ef07a06a03dd17a6e9163941b329da (patch)
treed5be203fa866356a69b9d6cad6fc69426fa9ece3 /vgasrc/stdvgamodes.c
parentc5a361c09a19e3b1a83557b01f11f04b27181a11 (diff)
downloadseabios-731c88d503ef07a06a03dd17a6e9163941b329da.tar.gz
stdvgaio: Only read/write one color palette entry at a time
Introduce stdvga_dac_read_many() and stdvga_dac_write_many() for writing multiple dac palette entries. Convert the stdvga_dac_read() and stdvga_dac_write() low-level IO access functions in stdvgaio.c to access just one color palette entry. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc/stdvgamodes.c')
-rw-r--r--vgasrc/stdvgamodes.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/vgasrc/stdvgamodes.c b/vgasrc/stdvgamodes.c
index c1d97228..b1d0ef67 100644
--- a/vgasrc/stdvgamodes.c
+++ b/vgasrc/stdvgamodes.c
@@ -471,11 +471,11 @@ stdvga_set_mode(struct vgamode_s *vmode_g, int flags)
u16 palsize = GET_GLOBAL(stdmode_g->dacsize) / 3;
// Always 256*3 values
- stdvga_dac_write(get_global_seg(), palette_g, 0, palsize);
+ stdvga_dac_write_many(get_global_seg(), palette_g, 0, palsize);
int i;
for (i = palsize; i < 0x0100; i++) {
- static u8 rgb[3] VAR16;
- stdvga_dac_write(get_global_seg(), rgb, i, 1);
+ struct vbe_palette_entry rgb = { };
+ stdvga_dac_write(i, rgb);
}
if (flags & MF_GRAYSUM)
@@ -535,5 +535,5 @@ stdvga_set_mode(struct vgamode_s *vmode_g, int flags)
void
stdvga_set_packed_palette(void)
{
- stdvga_dac_write(get_global_seg(), pal_vga, 0, sizeof(pal_vga) / 3);
+ stdvga_dac_write_many(get_global_seg(), pal_vga, 0, sizeof(pal_vga) / 3);
}