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:
parent
f1be5cbac0
commit
e8d765b625
2 changed files with 20 additions and 0 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue