diff --git a/src/ints/int10.h b/src/ints/int10.h index 0d5db7df..5fb65dc4 100644 --- a/src/ints/int10.h +++ b/src/ints/int10.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2002-2007 The DOSBox Team + * Copyright (C) 2002-2008 The DOSBox Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* $Id: int10.h,v 1.33 2008-02-03 12:19:35 c2woody Exp $ */ + #include "vga.h" #define S3_LFB_BASE 0xC0000000 @@ -135,6 +137,7 @@ typedef struct { Bit16u pmode_interface_palette; Bitu used; } rom; + Bitu vesa_setmode; } Int10Data; extern Int10Data int10; diff --git a/src/ints/int10_modes.cpp b/src/ints/int10_modes.cpp index 41210be8..f8f2b86d 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.75 2008-01-12 17:37:48 c2woody Exp $ */ +/* $Id: int10_modes.cpp,v 1.76 2008-02-03 12:19:35 c2woody Exp $ */ #include @@ -579,6 +579,7 @@ bool INT10_SetVideoMode(Bitu mode) { clearmem=false; mode-=0x80; } + int10.vesa_setmode=0xffff; LOG(LOG_INT10,LOG_NORMAL)("Set Video Mode %X",mode); if (!IS_EGAVGA_ARCH) return INT10_SetVideoMode_OTHER(mode,clearmem); Bit8u modeset_ctl,video_ctl,vga_switches; diff --git a/src/ints/int10_vesa.cpp b/src/ints/int10_vesa.cpp index 09a60234..b622ff29 100644 --- a/src/ints/int10_vesa.cpp +++ b/src/ints/int10_vesa.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_vesa.cpp,v 1.32 2008-01-15 17:46:25 c2woody Exp $ */ +/* $Id: int10_vesa.cpp,v 1.33 2008-02-03 12:19:35 c2woody Exp $ */ #include #include @@ -266,12 +266,16 @@ foundit: Bit8u VESA_SetSVGAMode(Bit16u mode) { - if (INT10_SetVideoMode(mode)) return 0x00; + if (INT10_SetVideoMode(mode)) { + int10.vesa_setmode=mode&0x7fff; + return 0x00; + } return 0x01; }; Bit8u VESA_GetSVGAMode(Bit16u & mode) { - mode=(Bit16u)(CurMode->mode); + if (int10.vesa_setmode!=0xffff) mode=int10.vesa_setmode; + else mode=(Bit16u)(CurMode->mode); return 0x00; }