Commit 4ef7ba72 authored by Jukka Heinonen's avatar Jukka Heinonen Committed by Alexandre Julliard

Real mode context should always have V86 flag turned on.

Entering protected mode uses simpler and more robust virtual interrupt flag check. Mouse events are now received in graphics modes. Improved tracing output of int33 handler.
parent 119eacc6
......@@ -572,6 +572,9 @@ static WINE_EXCEPTION_FILTER(exception_handler)
int WINAPI DOSVM_Enter( CONTEXT86 *context )
{
/* Some callers forget to turn V86_FLAG on. */
context->EFlags |= V86_FLAG;
__TRY
{
__wine_enter_vm86( context );
......
......@@ -175,6 +175,7 @@ void DOSVM_InitSegments( void )
0x5D, /* popw %bp */
0x5A, /* popw %dx */
0x58, /* popw %ax */
0xfb, /* sti, enable and check virtual interrupts */
0xCB /* lret */
};
......
......@@ -583,15 +583,6 @@ static void StartPM( CONTEXT86 *context )
TRACE("DOS program is now entering %d-bit protected mode\n",
DOSVM_IsDos32() ? 32 : 16);
/*
* Enable interrupts. Note that we also make a dummy
* relay call in order to process all pending events.
* This is needed in order to prevent event handling from
* getting stuck.
*/
NtCurrentTeb()->dpmi_vif = 1;
DOSVM_BuildCallFrame( context, NULL, NULL );
__TRY
{
wine_call_to_16_regs_short(&pm_ctx, 0);
......
......@@ -91,10 +91,12 @@ void WINAPI DOSVM_Int33Handler( CONTEXT86 *context )
SET_AX( context, mouse_info.but );
break;
case 0x07:
FIXME("Define horizontal mouse cursor range\n");
FIXME("Define horizontal mouse cursor range %d..%d\n",
CX_reg(context), DX_reg(context));
break;
case 0x08:
FIXME("Define vertical mouse cursor range\n");
FIXME("Define vertical mouse cursor range %d..%d\n",
CX_reg(context), DX_reg(context));
break;
case 0x09:
FIXME("Define graphics mouse cursor\n");
......
......@@ -381,7 +381,9 @@ static void WINAPI VGA_DoSetMode(ULONG_PTR arg)
return;
}
if (!vga_hwnd) {
vga_hwnd = CreateWindowExA(0,"STATIC","WINEDOS VGA",WS_POPUP|WS_VISIBLE,0,0,par->Xres,par->Yres,0,0,0,NULL);
vga_hwnd = CreateWindowExA(0,"STATIC","WINEDOS VGA",
WS_POPUP|WS_VISIBLE|SS_NOTIFY,0,0,
par->Xres,par->Yres,0,0,0,NULL);
if (!vga_hwnd) {
ERR("Failed to create user window.\n");
IDirectDraw_Release(lpddraw);
......
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