Commit 1a665058 authored by Jukka Heinonen's avatar Jukka Heinonen Committed by Alexandre Julliard

Removed last users of msdos/interrupts.c.

parent 14e68ba7
......@@ -1049,14 +1049,12 @@
@ cdecl DOSMEM_GetBlock(long ptr) DOSMEM_GetBlock
@ cdecl DOSMEM_GetDPMISegments() DOSMEM_GetDPMISegments
@ cdecl DOSMEM_Init(long) DOSMEM_Init
@ cdecl INT_GetPMHandler(long) INT_GetPMHandler
@ stdcall INT_Int11Handler(ptr) INT_Int11Handler
@ stdcall INT_Int15Handler(ptr) INT_Int15Handler
@ stdcall INT_Int25Handler(ptr) INT_Int25Handler
@ stdcall INT_Int26Handler(ptr) INT_Int26Handler
@ stdcall INT_Int2fHandler(ptr) INT_Int2fHandler
@ stdcall NetBIOSCall16(ptr) NetBIOSCall16
@ cdecl INT_SetPMHandler(long long) INT_SetPMHandler
@ cdecl LOCAL_Alloc(long long long) LOCAL_Alloc
@ cdecl LOCAL_Compact(long long long) LOCAL_Compact
@ cdecl LOCAL_CountFree(long) LOCAL_CountFree
......
# Interrupt vectors 0-255 are ordinals 100-355
# The '-interrupt' keyword takes care of the flags pushed on the stack by the interrupt
117 pascal -interrupt INT_Int11Handler() INT_Int11Handler
121 pascal -interrupt INT_Int15Handler() INT_Int15Handler
133 pascal -interrupt INT_Int21Handler() DOS3Call
# Note: int 25 and 26 don't pop the flags from the stack
137 pascal -register INT_Int25Handler() INT_Int25Handler
138 pascal -register INT_Int26Handler() INT_Int26Handler
147 pascal -interrupt INT_Int2fHandler() INT_Int2fHandler
192 pascal -interrupt INT_Int5cHandler() NetBIOSCall16
# default handler for unimplemented interrupts
356 pascal -interrupt INT_DefaultHandler() INT_DefaultHandler
# VxDs. The first Vxd is at 400
#
#400+VXD_ID pascal -register <VxD handler>() <VxD handler>
......
......@@ -57,7 +57,6 @@ C_SRCS = \
$(TOPOBJDIR)/msdos/int26.c \
$(TOPOBJDIR)/msdos/int2f.c \
$(TOPOBJDIR)/msdos/int5c.c \
$(TOPOBJDIR)/msdos/interrupts.c \
$(TOPOBJDIR)/msdos/ioports.c \
$(TOPOBJDIR)/msdos/ppdev.c \
$(TOPOBJDIR)/msdos/vxd.c \
......
......@@ -314,9 +314,9 @@ static TDB *TASK_Create( NE_MODULE *pModule, UINT16 cmdShow, TEB *teb, LPCSTR cm
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;
......
......@@ -1295,7 +1295,7 @@ void WINAPI DOS3Call( CONTEXT86 *context )
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 @@ void WINAPI DOS3Call( CONTEXT86 *context )
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) );
}
......
/*
* Interrupt vectors emulation
*
* Copyright 1995 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <sys/types.h>
#include "windef.h"
#include "wine/winbase16.h"
#include "miscemu.h"
#include "msdos.h"
#include "module.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(int);
static FARPROC16 INT_Vectors[256];
static FARPROC48 INT_Vectors48[256];
/* Ordinal number for interrupt 0 handler in WPROCS.DLL */
#define FIRST_INTERRUPT 100
/**********************************************************************
* INT_GetPMHandler
*
* Return the protected mode interrupt vector for a given interrupt.
*/
FARPROC16 INT_GetPMHandler( BYTE intnum )
{
if (!INT_Vectors[intnum])
{
static HMODULE16 wprocs;
if (!wprocs)
{
if (((wprocs = GetModuleHandle16( "wprocs" )) < 32) &&
((wprocs = LoadLibrary16( "wprocs" )) < 32))
{
ERR("could not load wprocs.dll\n");
return 0;
}
}
if (!(INT_Vectors[intnum] = GetProcAddress16( wprocs, (LPCSTR)(FIRST_INTERRUPT + intnum))))
{
WARN("int%x not implemented, returning dummy handler\n", intnum );
INT_Vectors[intnum] = GetProcAddress16( wprocs, (LPCSTR)(FIRST_INTERRUPT + 256) );
}
}
return INT_Vectors[intnum];
}
/**********************************************************************
* INT_SetPMHandler
*
* Set the protected mode interrupt handler for a given interrupt.
*/
void INT_SetPMHandler( BYTE intnum, FARPROC16 handler )
{
TRACE("Set protected mode interrupt vector %02x <- %04x:%04x\n",
intnum, HIWORD(handler), LOWORD(handler) );
INT_Vectors[intnum] = handler;
}
/**********************************************************************
* INT_GetPMHandler48
*
* Return the protected mode interrupt vector for a given interrupt.
* Used to get 48-bit pointer for 32-bit interrupt handlers in DPMI32.
*/
FARPROC48 INT_GetPMHandler48( BYTE intnum )
{
if (!INT_Vectors48[intnum].selector)
{
INT_Vectors48[intnum].selector = DOSMEM_dpmi_segments.int48_sel;
INT_Vectors48[intnum].offset = 4 * intnum;
}
return INT_Vectors48[intnum];
}
/**********************************************************************
* INT_SetPMHandler48
*
* Set the protected mode interrupt handler for a given interrupt.
* Used to set 48-bit pointer for 32-bit interrupt handlers in DPMI32.
*/
void INT_SetPMHandler48( BYTE intnum, FARPROC48 handler )
{
TRACE("Set 32-bit protected mode interrupt vector %02x <- %04x:%08lx\n",
intnum, handler.selector, handler.offset );
INT_Vectors48[intnum] = handler;
}
/**********************************************************************
* INT_DefaultHandler (WPROCS.356)
*
* Default interrupt handler.
*/
void WINAPI INT_DefaultHandler( CONTEXT86 *context )
{
}
......@@ -95,10 +95,6 @@ WORD WINAPI GetFreeSystemResources16( WORD resType )
*/
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;
......
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