From 163e4a81a23b0374d42492f7c49d991f7c094de5 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Tue, 7 Feb 2006 20:25:47 +0000 Subject: [PATCH] Some special case for mode 6 Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2474 --- src/ints/int10_char.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ints/int10_char.cpp b/src/ints/int10_char.cpp index 90ebe5de..5906de56 100644 --- a/src/ints/int10_char.cpp +++ b/src/ints/int10_char.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_char.cpp,v 1.43 2006-01-30 10:07:19 harekiet Exp $ */ +/* $Id: int10_char.cpp,v 1.44 2006-02-07 20:25:47 qbix79 Exp $ */ /* Character displaying moving functions */ @@ -490,6 +490,10 @@ void WriteChar(Bit16u col,Bit16u row,Bit8u page,Bit8u chr,Bit8u attr,bool useatt } } + //Some weird behavior of mode 6 (and 11) + if ((CurMode->mode == 0x6)/* || (CurMode->mode==0x11)*/) attr = (attr&0x80)|1; + //(same fix for 11 fixes vgatest2, but it's not entirely correct according to wd) + x=8*col; y=cheight*row;Bit8u xor_mask=(CurMode->type == M_VGA) ? 0x0 : 0x80; //TODO Check for out of bounds