This patch is needed before msdos/interrupts.c can be deleted. I don't think that these changes affect any Win16 application, but I'm afraid I cannot be 100% certain. Anyway, something like this is required... Changelog: Remove last users of msdos/interrupts.c. Index: windows/user.c =================================================================== RCS file: /home/wine/wine/windows/user.c,v retrieving revision 1.88 diff -u -r1.88 user.c --- windows/user.c 29 Oct 2002 00:41:42 -0000 1.88 +++ windows/user.c 16 Nov 2002 19:27:02 -0000 @@ -94,10 +94,6 @@ */ INT16 WINAPI InitApp16( HINSTANCE16 hInstance ) { - /* Hack: restore the divide-by-zero handler */ - /* FIXME: should set a USER-specific handler that displays a msg box */ - INT_SetPMHandler( 0, INT_GetPMHandler( 0xff ) ); - /* Create task message queue */ if ( !InitThreadInput16( 0, 0 ) ) return 0; Index: loader/task.c =================================================================== RCS file: /home/wine/wine/loader/task.c,v retrieving revision 1.126 diff -u -r1.126 task.c --- loader/task.c 19 Oct 2002 17:20:44 -0000 1.126 +++ loader/task.c 16 Nov 2002 19:27:37 -0000 @@ -314,9 +314,9 @@ pTask->pdb.dispatcher[0] = 0x9a; /* ljmp */ proc = GetProcAddress16( GetModuleHandle16("KERNEL"), "DOS3Call" ); memcpy( &pTask->pdb.dispatcher[1], &proc, sizeof(proc) ); - pTask->pdb.savedint22 = INT_GetPMHandler( 0x22 ); - pTask->pdb.savedint23 = INT_GetPMHandler( 0x23 ); - pTask->pdb.savedint24 = INT_GetPMHandler( 0x24 ); + pTask->pdb.savedint22 = 0; + pTask->pdb.savedint23 = 0; + pTask->pdb.savedint24 = 0; pTask->pdb.fileHandlesPtr = MAKESEGPTR( GlobalHandleToSel16(pTask->hPDB), (int)&((PDB16 *)0)->fileHandles ); pTask->pdb.hFileHandles = 0; Index: msdos/int21.c =================================================================== RCS file: /home/wine/wine/msdos/int21.c,v retrieving revision 1.76 diff -u -r1.76 int21.c --- msdos/int21.c 12 Sep 2002 22:07:06 -0000 1.76 +++ msdos/int21.c 16 Nov 2002 19:35:02 -0000 @@ -1295,7 +1295,7 @@ break; case 0x25: /* SET INTERRUPT VECTOR */ - INT_SetPMHandler( AL_reg(context), (FARPROC16)MAKESEGPTR( context->SegDs, DX_reg(context))); + FIXME("set interrupt vector - move to winedos..."); break; case 0x29: /* PARSE FILENAME INTO FCB */ @@ -1414,7 +1414,8 @@ case 0x35: /* GET INTERRUPT VECTOR */ TRACE("GET INTERRUPT VECTOR 0x%02x\n",AL_reg(context)); { - FARPROC16 addr = INT_GetPMHandler( AL_reg(context) ); + FARPROC16 addr = 0; + FIXME("get interrupt vector - move to winedos...\n"); context->SegEs = SELECTOROF(addr); SET_BX( context, OFFSETOF(addr) ); } -- Jukka Heinonen <http://www.iki.fi/jhei/>