Commit de610881 authored by Christian Costa's avatar Christian Costa Committed by Alexandre Julliard

VGA_ioport_in: Fake the occurrence of the vertical refresh when no

graphic mode has been set.
parent b8ae37cc
...@@ -43,6 +43,8 @@ static int vga_height; ...@@ -43,6 +43,8 @@ static int vga_height;
static int vga_depth; static int vga_depth;
static BYTE vga_text_attr; static BYTE vga_text_attr;
static BOOL vga_mode_initialized = FALSE;
static CRITICAL_SECTION vga_lock = CRITICAL_SECTION_INIT("VGA"); static CRITICAL_SECTION vga_lock = CRITICAL_SECTION_INIT("VGA");
typedef HRESULT (WINAPI *DirectDrawCreateProc)(LPGUID,LPDIRECTDRAW *,LPUNKNOWN); typedef HRESULT (WINAPI *DirectDrawCreateProc)(LPGUID,LPDIRECTDRAW *,LPUNKNOWN);
...@@ -316,6 +318,8 @@ int VGA_SetMode(unsigned Xres,unsigned Yres,unsigned Depth) ...@@ -316,6 +318,8 @@ int VGA_SetMode(unsigned Xres,unsigned Yres,unsigned Depth)
par.Depth = (Depth < 8) ? 8 : Depth; par.Depth = (Depth < 8) ? 8 : Depth;
vga_mode_initialized = TRUE;
MZ_RunInThread(VGA_DoSetMode, (ULONG_PTR)&par); MZ_RunInThread(VGA_DoSetMode, (ULONG_PTR)&par);
return par.ret; return par.ret;
} }
...@@ -734,7 +738,12 @@ BYTE VGA_ioport_in( WORD port ) ...@@ -734,7 +738,12 @@ BYTE VGA_ioport_in( WORD port )
/* since we don't (yet?) serve DOS VM requests while VGA_Poll is running, /* since we don't (yet?) serve DOS VM requests while VGA_Poll is running,
we need to fake the occurrence of the vertical refresh */ we need to fake the occurrence of the vertical refresh */
ret=vga_refresh?0x00:0x08; ret=vga_refresh?0x00:0x08;
vga_refresh=0; if (vga_mode_initialized)
vga_refresh=0;
else
/* Also fake the occurence of the vertical refresh when no graphic
mode has been set */
vga_refresh=!vga_refresh;
break; break;
default: default:
ret=0xff; ret=0xff;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment