diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2024-04-01 13:44:58 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2024-04-13 13:19:56 -0400 |
commit | 731c88d503ef07a06a03dd17a6e9163941b329da (patch) | |
tree | d5be203fa866356a69b9d6cad6fc69426fa9ece3 /vgasrc/stdvgamodes.c | |
parent | c5a361c09a19e3b1a83557b01f11f04b27181a11 (diff) | |
download | seabios-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.c | 8 |
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); } |