diff --git a/CHANGELOG b/CHANGELOG index 20750631a..4f49aeb64 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,9 @@ Next (joncampbell123). - INT 10: Fix "load font" functions to correctly recompute video display end for machine=vgaonly and machine=ega. (joncampbell123). + - INT 10: Like any other 200-line 16-color graphics mode, 200-line + VGA text mode needs to program the AC and VGA palette using the + CGA RGBI-type palette, not the EGA 64-color type palette. (joncampbell123). 2024.12.04 - Arrange memory device allocation so that it is possible to allocate diff --git a/src/ints/int10_modes.cpp b/src/ints/int10_modes.cpp index 9b9675739..f2d47e6e9 100644 --- a/src/ints/int10_modes.cpp +++ b/src/ints/int10_modes.cpp @@ -2043,6 +2043,11 @@ att_text16: att_data[i+6]=0x00; att_data[i+7]=0x00; } + } else if (IS_EGAVGA_ARCH && CurMode->sheight == 200) { + for (uint8_t ct=0;ct<8;ct++) { + att_data[ct]=ct; + att_data[ct+8]=ct+0x10; + } } else { for (uint8_t ct=0;ct<8;ct++) { att_data[ct]=ct; @@ -2190,6 +2195,15 @@ att_text16: } } break; + } + else if (CurMode->sheight == 200) { + /* 200-line text modes need the CGA RGBI type palette, same as 200-line EGA 16-color */ + for (i=0;i<64;i++) { + IO_Write(0x3c9,ega_palette[i][0]); + IO_Write(0x3c9,ega_palette[i][1]); + IO_Write(0x3c9,ega_palette[i][2]); + } + break; } //FALLTHROUGH!!!! case M_LIN4: //Added for CAD Software dac_text16: