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
		Add a link
		
	
		Reference in a new issue