1
0
Fork 0

Add workaround for INT10 text output in ET4000 800x600x4bpp SVGA mode (Gateway 2)

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3570
This commit is contained in:
Ralf Grillenberger 2010-04-04 18:58:41 +00:00
parent f1be5cbac0
commit e8d765b625
2 changed files with 20 additions and 0 deletions

View file

@ -236,6 +236,13 @@ void INT10_ScrollWindow(Bit8u rul,Bit8u cul,Bit8u rlr,Bit8u clr,Bit8s nlines,Bit
EGA16_CopyRow(cul,clr,start,start+nlines,base);break;
case M_VGA:
VGA_CopyRow(cul,clr,start,start+nlines,base);break;
case M_LIN4:
if ((machine==MCH_VGA) && (svgaCard==SVGA_TsengET4K) &&
(CurMode->swidth<=800)) {
// the ET4000 BIOS supports text output in 800x600 SVGA
EGA16_CopyRow(cul,clr,start,start+nlines,base);break;
}
// fall-through
default:
LOG(LOG_INT10,LOG_ERROR)("Unhandled mode %d for scroll",CurMode->type);
}
@ -262,6 +269,12 @@ filling:
EGA16_FillRow(cul,clr,start,base,attr);break;
case M_VGA:
VGA_FillRow(cul,clr,start,base,attr);break;
case M_LIN4:
if ((machine==MCH_VGA) && (svgaCard==SVGA_TsengET4K) &&
(CurMode->swidth<=800)) {
EGA16_FillRow(cul,clr,start,base,attr);break;
}
// fall-through
default:
LOG(LOG_INT10,LOG_ERROR)("Unhandled mode %d for scroll",CurMode->type);
}

View file

@ -94,6 +94,13 @@ void INT10_PutPixel(Bit16u x,Bit16u y,Bit8u page,Bit8u color) {
real_writeb(0xb800,off,old);
}
break;
case M_LIN4:
if ((machine!=MCH_VGA) || (svgaCard!=SVGA_TsengET4K) ||
(CurMode->swidth>800)) {
// the ET4000 BIOS supports text output in 800x600 SVGA (Gateway 2)
// putpixel warining?
break;
}
case M_EGA:
{
/* Set the correct bitmask for the pixel position */