Author: aandrejevic Date: Tue Jun 25 17:56:05 2013 New Revision: 59340
URL: http://svn.reactos.org/svn/reactos?rev=59340&view=rev Log: [NTVDM] Implement the "Get Interrupt Vector" and "Set Interrupt Vector" DOS API functions.
Modified: branches/ntvdm/subsystems/ntvdm/dos.c
Modified: branches/ntvdm/subsystems/ntvdm/dos.c URL: http://svn.reactos.org/svn/reactos/branches/ntvdm/subsystems/ntvdm/dos.c?rev... ============================================================================== --- branches/ntvdm/subsystems/ntvdm/dos.c [iso-8859-1] (original) +++ branches/ntvdm/subsystems/ntvdm/dos.c [iso-8859-1] Tue Jun 25 17:56:05 2013 @@ -635,6 +635,17 @@ break; }
+ /* Set Interrupt Vector */ + case 0x25: + { + DWORD FarPointer = MAKELONG(LOWORD(Edx), DataSegment); + + /* Write the new far pointer to the IDT */ + ((PDWORD)BaseAddress)[LOBYTE(Eax)] = FarPointer; + + break; + } + /* Get system date */ case 0x2A: { @@ -710,6 +721,18 @@ break; }
+ /* Get Interrupt Vector */ + case 0x35: + { + DWORD FarPointer = ((PDWORD)BaseAddress)[LOBYTE(Eax)]; + + /* Read the address from the IDT into ES:BX */ + EmulatorSetRegister(EMULATOR_REG_ES, HIWORD(FarPointer)); + EmulatorSetRegister(EMULATOR_REG_BX, LOWORD(FarPointer)); + + break; + } + /* Create Directory */ case 0x39: {