diff --git a/src/ints/int10_modes.cpp b/src/ints/int10_modes.cpp index e4cd027e..f1a424ff 100644 --- a/src/ints/int10_modes.cpp +++ b/src/ints/int10_modes.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_modes.cpp,v 1.88 2009-07-31 15:36:01 c2woody Exp $ */ +/* $Id: int10_modes.cpp,v 1.89 2009-08-01 13:39:48 c2woody Exp $ */ #include @@ -578,11 +578,11 @@ bool INT10_SetVideoMode_OTHER(Bit16u mode,bool clearmem) { else if (mode < 4) crtc_block_index = 1; else if (mode < 7) crtc_block_index = 2; else { - if (IS_EGAVGA_ARCH) { - if (mode == 7) crtc_block_index = 3; - } else if (machine==MCH_PCJR) { + if (machine==MCH_PCJR) { if (mode < 9) crtc_block_index = 2; else crtc_block_index = 3; + } else { + if (mode == 7) crtc_block_index = 3; } } @@ -590,11 +590,13 @@ bool INT10_SetVideoMode_OTHER(Bit16u mode,bool clearmem) { for (Bit16u i = 0; i < 16; i++) IO_WriteW(crtc_base, i | (real_readb(RealSeg(vparams), RealOff(vparams) + i + crtc_block_index*16) << 8)); - // mode register - IO_WriteB(crtc_base + 4, real_readb(RealSeg(vparams), - RealOff(vparams) + 4*16 + 24 + mode)); + if (machine==MCH_CGA) { + // mode register + IO_WriteB(crtc_base + 4, real_readb(RealSeg(vparams), + RealOff(vparams) + 4*16 + 24 + mode)); + } - if (machine!=MCH_CGA) { + if (machine==MCH_TANDY) { E_Exit("INT10 modeset: video parameter table changed"); } } diff --git a/src/ints/int10_vptable.cpp b/src/ints/int10_vptable.cpp index 375e8b3f..7b80fb38 100644 --- a/src/ints/int10_vptable.cpp +++ b/src/ints/int10_vptable.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_vptable.cpp,v 1.5 2009-07-31 15:36:01 c2woody Exp $ */ +/* $Id: int10_vptable.cpp,v 1.6 2009-08-01 13:39:48 c2woody Exp $ */ #include "dosbox.h" #include "mem.h" @@ -536,12 +536,6 @@ void INT10_SetupBasicVideoParameterTable(void) { /* video parameter table at F000:F0A4 */ RealSetVec(0x1d,RealMake(0xF000, 0xF0A4)); switch (machine) { - case EGAVGA_ARCH_CASE: - case MCH_CGA: - for (Bit16u i = 0; i < sizeof(vparams); i++) { - phys_writeb(0xFF0A4+i,vparams[i]); - } - break; case MCH_TANDY: for (Bit16u i = 0; i < sizeof(vparams_tandy); i++) { phys_writeb(0xFF0A4+i,vparams_tandy[i]); @@ -552,6 +546,11 @@ void INT10_SetupBasicVideoParameterTable(void) { phys_writeb(0xFF0A4+i,vparams_pcjr[i]); } break; + default: + for (Bit16u i = 0; i < sizeof(vparams); i++) { + phys_writeb(0xFF0A4+i,vparams[i]); + } + break; } }