stdvgamodes: Improve naming of dac palette tables

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2024-03-31 21:42:27 -04:00
parent 70f43981b7
commit 9136808853
1 changed files with 50 additions and 42 deletions

View File

@ -15,11 +15,11 @@
/****************************************************************
* Video mode register definitions
* Default color palettes (stored in DAC registers)
****************************************************************/
/* Mono */
static u8 palette0[] VAR16 = {
// 4 grey palette used for MDA card compatibility
static u8 pal_mda[] VAR16 = {
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,
@ -38,7 +38,8 @@ static u8 palette0[] VAR16 = {
0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f
};
static u8 palette1[] VAR16 = {
// 16 colors used for CGA mode compatibility
static u8 pal_cga[] VAR16 = {
0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a,
0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a,
@ -57,7 +58,8 @@ static u8 palette1[] VAR16 = {
0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f
};
static u8 palette2[] VAR16 = {
// 64 colors used for EGA mode compatibility
static u8 pal_ega[] VAR16 = {
0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a,
0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x2a,0x00, 0x2a,0x2a,0x2a,
0x00,0x00,0x15, 0x00,0x00,0x3f, 0x00,0x2a,0x15, 0x00,0x2a,0x3f,
@ -76,7 +78,8 @@ static u8 palette2[] VAR16 = {
0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f
};
static u8 palette3[] VAR16 = {
// Default 256 colors used in VGA "packed" mode
static u8 pal_vga[] VAR16 = {
0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a,
0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f,
@ -146,6 +149,11 @@ static u8 palette3[] VAR16 = {
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00
};
/****************************************************************
* Video mode register definitions
****************************************************************/
static u8 sequ_01[] VAR16 = { 0x08, 0x03, 0x00, 0x02 };
static u8 crtc_01[] VAR16 = {
0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
@ -262,9 +270,9 @@ static u8 crtc_6A[] VAR16 = {
struct stdvga_mode_s {
u16 mode;
struct vgamode_s info;
u8 *dac;
u16 dacsize;
u8 *sequ_regs;
u8 miscreg;
u8 *crtc_regs;
@ -273,40 +281,40 @@ struct stdvga_mode_s {
};
static struct stdvga_mode_s vga_modes[] VAR16 = {
//mode { model tx ty bpp cw ch sstart }
// dac sequ misc crtc actl grdc
{0x00, { MM_TEXT, 40, 25, 4, 9, 16, SEG_CTEXT }
, PAL(palette2), sequ_01, 0x67, crtc_01, actl_01, grdc_01},
{0x01, { MM_TEXT, 40, 25, 4, 9, 16, SEG_CTEXT }
, PAL(palette2), sequ_01, 0x67, crtc_01, actl_01, grdc_01},
{0x02, { MM_TEXT, 80, 25, 4, 9, 16, SEG_CTEXT }
, PAL(palette2), sequ_03, 0x67, crtc_03, actl_01, grdc_01},
{0x03, { MM_TEXT, 80, 25, 4, 9, 16, SEG_CTEXT }
, PAL(palette2), sequ_03, 0x67, crtc_03, actl_01, grdc_01},
{0x04, { MM_CGA, 320, 200, 2, 8, 8, SEG_CTEXT }
, PAL(palette1), sequ_04, 0x63, crtc_04, actl_04, grdc_04},
{0x05, { MM_CGA, 320, 200, 2, 8, 8, SEG_CTEXT }
, PAL(palette1), sequ_04, 0x63, crtc_04, actl_04, grdc_04},
{0x06, { MM_CGA, 640, 200, 1, 8, 8, SEG_CTEXT }
, PAL(palette1), sequ_06, 0x63, crtc_06, actl_06, grdc_06},
{0x07, { MM_TEXT, 80, 25, 4, 9, 16, SEG_MTEXT }
, PAL(palette0), sequ_03, 0x66, crtc_07, actl_07, grdc_07},
{0x0D, { MM_PLANAR, 320, 200, 4, 8, 8, SEG_GRAPH }
, PAL(palette1), sequ_0d, 0x63, crtc_0d, actl_0d, grdc_0d},
{0x0E, { MM_PLANAR, 640, 200, 4, 8, 8, SEG_GRAPH }
, PAL(palette1), sequ_0e, 0x63, crtc_0e, actl_0d, grdc_0d},
{0x0F, { MM_PLANAR, 640, 350, 1, 8, 14, SEG_GRAPH }
, PAL(palette0), sequ_0e, 0xa3, crtc_0f, actl_0f, grdc_0d},
{0x10, { MM_PLANAR, 640, 350, 4, 8, 14, SEG_GRAPH }
, PAL(palette2), sequ_0e, 0xa3, crtc_0f, actl_10, grdc_0d},
{0x11, { MM_PLANAR, 640, 480, 1, 8, 16, SEG_GRAPH }
, PAL(palette2), sequ_0e, 0xe3, crtc_11, actl_11, grdc_0d},
{0x12, { MM_PLANAR, 640, 480, 4, 8, 16, SEG_GRAPH }
, PAL(palette2), sequ_0e, 0xe3, crtc_11, actl_10, grdc_0d},
{0x13, { MM_PACKED, 320, 200, 8, 8, 8, SEG_GRAPH }
, PAL(palette3), sequ_13, 0x63, crtc_13, actl_13, grdc_13},
{0x6A, { MM_PLANAR, 800, 600, 4, 8, 16, SEG_GRAPH }
, PAL(palette2), sequ_0e, 0xe3, crtc_6A, actl_10, grdc_0d},
//mode { model tx ty bpp cw ch sstart } dac
// sequ misc crtc actl grdc
{0x00, { MM_TEXT, 40, 25, 4, 9, 16, SEG_CTEXT }, PAL(pal_ega)
, sequ_01, 0x67, crtc_01, actl_01, grdc_01},
{0x01, { MM_TEXT, 40, 25, 4, 9, 16, SEG_CTEXT }, PAL(pal_ega)
, sequ_01, 0x67, crtc_01, actl_01, grdc_01},
{0x02, { MM_TEXT, 80, 25, 4, 9, 16, SEG_CTEXT }, PAL(pal_ega)
, sequ_03, 0x67, crtc_03, actl_01, grdc_01},
{0x03, { MM_TEXT, 80, 25, 4, 9, 16, SEG_CTEXT }, PAL(pal_ega)
, sequ_03, 0x67, crtc_03, actl_01, grdc_01},
{0x04, { MM_CGA, 320, 200, 2, 8, 8, SEG_CTEXT }, PAL(pal_cga)
, sequ_04, 0x63, crtc_04, actl_04, grdc_04},
{0x05, { MM_CGA, 320, 200, 2, 8, 8, SEG_CTEXT }, PAL(pal_cga)
, sequ_04, 0x63, crtc_04, actl_04, grdc_04},
{0x06, { MM_CGA, 640, 200, 1, 8, 8, SEG_CTEXT }, PAL(pal_cga)
, sequ_06, 0x63, crtc_06, actl_06, grdc_06},
{0x07, { MM_TEXT, 80, 25, 4, 9, 16, SEG_MTEXT }, PAL(pal_mda)
, sequ_03, 0x66, crtc_07, actl_07, grdc_07},
{0x0D, { MM_PLANAR, 320, 200, 4, 8, 8, SEG_GRAPH }, PAL(pal_cga)
, sequ_0d, 0x63, crtc_0d, actl_0d, grdc_0d},
{0x0E, { MM_PLANAR, 640, 200, 4, 8, 8, SEG_GRAPH }, PAL(pal_cga)
, sequ_0e, 0x63, crtc_0e, actl_0d, grdc_0d},
{0x0F, { MM_PLANAR, 640, 350, 1, 8, 14, SEG_GRAPH }, PAL(pal_mda)
, sequ_0e, 0xa3, crtc_0f, actl_0f, grdc_0d},
{0x10, { MM_PLANAR, 640, 350, 4, 8, 14, SEG_GRAPH }, PAL(pal_ega)
, sequ_0e, 0xa3, crtc_0f, actl_10, grdc_0d},
{0x11, { MM_PLANAR, 640, 480, 1, 8, 16, SEG_GRAPH }, PAL(pal_ega)
, sequ_0e, 0xe3, crtc_11, actl_11, grdc_0d},
{0x12, { MM_PLANAR, 640, 480, 4, 8, 16, SEG_GRAPH }, PAL(pal_ega)
, sequ_0e, 0xe3, crtc_11, actl_10, grdc_0d},
{0x13, { MM_PACKED, 320, 200, 8, 8, 8, SEG_GRAPH }, PAL(pal_vga)
, sequ_13, 0x63, crtc_13, actl_13, grdc_13},
{0x6A, { MM_PLANAR, 800, 600, 4, 8, 16, SEG_GRAPH }, PAL(pal_ega)
, sequ_0e, 0xe3, crtc_6A, actl_10, grdc_0d},
};
@ -527,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(), palette3, 0, sizeof(palette3) / 3);
stdvga_dac_write(get_global_seg(), pal_vga, 0, sizeof(pal_vga) / 3);
}