Here are a few cosmetic fixes for DOS programs. Changelog: Ignore get shadow buffer function. Remember to synchronize VGA display on program exit because update thread may not have time to run. Index: dlls/winedos/vga.c =================================================================== RCS file: /home/wine/wine/dlls/winedos/vga.c,v retrieving revision 1.31 diff -u -r1.31 vga.c --- dlls/winedos/vga.c 14 Feb 2003 19:23:16 -0000 1.31 +++ dlls/winedos/vga.c 19 Feb 2003 19:49:21 -0000 @@ -283,11 +283,32 @@ { 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 ); } } Index: dlls/winedos/int10.c =================================================================== RCS file: /home/wine/wine/dlls/winedos/int10.c,v retrieving revision 1.27 diff -u -r1.27 int10.c --- dlls/winedos/int10.c 14 Feb 2003 19:23:16 -0000 1.27 +++ dlls/winedos/int10.c 19 Feb 2003 19:49:24 -0000 @@ -1110,6 +1110,11 @@ 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 ); -- Jukka Heinonen <http://www.iki.fi/jhei/>