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/stdvga.h | |
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/stdvga.h')
-rw-r--r-- | vgasrc/stdvga.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/vgasrc/stdvga.h b/vgasrc/stdvga.h index ce5a80ab..55ad76e5 100644 --- a/vgasrc/stdvga.h +++ b/vgasrc/stdvga.h @@ -2,6 +2,7 @@ #define __STDVGA_H #include "types.h" // u8 +#include "std/vbe.h" // struct vbe_palette_entry // VGA registers #define VGAREG_ACTL_ADDRESS 0x3c0 @@ -55,6 +56,8 @@ void stdvga_set_palette_blinking(u8 enable_blink); void stdvga_set_palette_pagesize(u8 pal_pagesize); void stdvga_set_palette_page(u8 pal_page); void stdvga_get_palette_page(u8 *pal_pagesize, u8 *pal_page); +void stdvga_dac_read_many(u16 seg, u8 *data_far, u8 start, int count); +void stdvga_dac_write_many(u16 seg, u8 *data_far, u8 start, int count); void stdvga_perform_gray_scale_summing(u16 start, u16 count); void stdvga_planar4_plane(int plane); void stdvga_set_font_location(u8 spec); @@ -81,4 +84,27 @@ int stdvga_save_restore(int cmd, u16 seg, void *data); void stdvga_enable_video_addressing(u8 disable); int stdvga_setup(void); +// stdvgaio.c +u8 stdvga_pelmask_read(void); +void stdvga_pelmask_write(u8 val); +u8 stdvga_misc_read(void); +void stdvga_misc_write(u8 value); +void stdvga_misc_mask(u8 off, u8 on); +u8 stdvga_sequ_read(u8 index); +void stdvga_sequ_write(u8 index, u8 value); +void stdvga_sequ_mask(u8 index, u8 off, u8 on); +u8 stdvga_grdc_read(u8 index); +void stdvga_grdc_write(u8 index, u8 value); +void stdvga_grdc_mask(u8 index, u8 off, u8 on); +u8 stdvga_crtc_read(u16 crtc_addr, u8 index); +void stdvga_crtc_write(u16 crtc_addr, u8 index, u8 value); +void stdvga_crtc_mask(u16 crtc_addr, u8 index, u8 off, u8 on); +u8 stdvga_attr_read(u8 index); +void stdvga_attr_write(u8 index, u8 value); +void stdvga_attr_mask(u8 index, u8 off, u8 on); +u8 stdvga_attrindex_read(void); +void stdvga_attrindex_write(u8 value); +struct vbe_palette_entry stdvga_dac_read(u8 color); +void stdvga_dac_write(u8 color, struct vbe_palette_entry rgb); + #endif // stdvga.h |