Ignore get shadow buffer function.
Remember to synchronize VGA display on program exit because update thread may not have time to run.
This commit is contained in:
parent
76c3065751
commit
a969416c56
|
@ -1110,6 +1110,11 @@ void WINAPI DOSVM_Int10Handler( CONTEXT86 *context )
|
|||
INT10_HandleVESA(context);
|
||||
break;
|
||||
|
||||
case 0xfe: /* GET SHADOW BUFFER */
|
||||
TRACE( "GET SHADOW BUFFER %x:%x - ignored\n",
|
||||
context->SegEs, DI_reg(context) );
|
||||
break;
|
||||
|
||||
default:
|
||||
FIXME("Unknown - 0x%x\n", AH_reg(context));
|
||||
INT_BARF( context, 0x10 );
|
||||
|
|
|
@ -283,11 +283,32 @@ static void VGA_DeinstallTimer(void)
|
|||
{
|
||||
if (VGA_timer_thread)
|
||||
{
|
||||
/*
|
||||
* Make sure the update thread is not holding
|
||||
* system resources when we kill it.
|
||||
*
|
||||
* Now, we only need to worry about update thread
|
||||
* getting terminated while in EnterCriticalSection
|
||||
* or WaitForMultipleObjectsEx.
|
||||
*
|
||||
* FIXME: Is this a problem?
|
||||
*/
|
||||
EnterCriticalSection(&vga_lock);
|
||||
|
||||
CancelWaitableTimer( VGA_timer );
|
||||
CloseHandle( VGA_timer );
|
||||
TerminateThread( VGA_timer_thread, 0 );
|
||||
CloseHandle( VGA_timer_thread );
|
||||
VGA_timer_thread = 0;
|
||||
|
||||
LeaveCriticalSection(&vga_lock);
|
||||
|
||||
/*
|
||||
* Synchronize display. This makes sure that
|
||||
* changes to display become visible even if program
|
||||
* terminates before update thread had time to run.
|
||||
*/
|
||||
VGA_Poll( 0, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue