Author: hbelusca Date: Thu May 7 23:54:47 2015 New Revision: 67595
URL: http://svn.reactos.org/svn/reactos?rev=67595&view=rev Log: [NTVDM] - Move some interrupt initialization where it belongs and activate few other ones. - Initialize interruct vector for INT 2Ah (Network check) because some apps directly call it and crash if it contains NULL.
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/bios32.c trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/vidbios32.c trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/bios32.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/bios/... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/bios32.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/bios32.c [iso-8859-1] Thu May 7 23:54:47 2015 @@ -570,7 +570,6 @@ RegisterBiosInt32(0x17, NULL); RegisterBiosInt32(0x1B, NULL); RegisterBiosInt32(0x4A, NULL); // User Alarm Handler - RegisterBiosInt32(0x6D, NULL); // Video BIOS Entry Point
/* Relocated services by the BIOS (when needed) */ RegisterBiosInt32(0x40, NULL); // ROM BIOS Diskette Handler relocated by Hard Disk BIOS
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/vidbios32.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/bios/... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/vidbios32.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/vidbios32.c [iso-8859-1] Thu May 7 23:54:47 2015 @@ -29,6 +29,10 @@ /* Register the BIOS 32-bit Interrupts */ RegisterBiosInt32(BIOS_VIDEO_INTERRUPT, VidBiosVideoService);
+ /* Vectors that should be implemented */ + RegisterBiosInt32(0x42, NULL); // Relocated Default INT 10h Video Services + RegisterBiosInt32(0x6D, NULL); // Video BIOS Entry Point + return TRUE; }
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/bios/... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c [iso-8859-1] Thu May 7 23:54:47 2015 @@ -3275,15 +3275,17 @@
BOOLEAN VidBiosInitialize(VOID) { - /* Some interrupts are in fact addresses to tables */ - ((PULONG)BaseAddress)[0x1D] = (ULONG)NULL; - // Far pointer to the 8x8 characters 80h-FFh + /* Some vectors are in fact addresses to tables */ + ((PULONG)BaseAddress)[0x1D] = (ULONG)NULL; // Video Parameter Tables + // Far pointer to the 8x8 graphics font for the 8x8 characters 80h-FFh ((PULONG)BaseAddress)[0x1F] = MAKELONG(FONT_8x8_HIGH_OFFSET, VIDEO_BIOS_DATA_SEG); - // ((PULONG)BaseAddress)[0x42] = (ULONG)NULL; - // Far pointer to the 8x16 characters 00h-... + // Far pointer to the character table (EGA, MCGA, VGA) for the 8x16 characters 00h-... ((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x16_OFFSET, VIDEO_BIOS_DATA_SEG); - ((PULONG)BaseAddress)[0x44] = (ULONG)NULL; - // ((PULONG)BaseAddress)[0x6D] = (ULONG)NULL; + ((PULONG)BaseAddress)[0x44] = (ULONG)NULL; // ROM BIOS Character Font, Characters 00h-7Fh (PCjr) + + /* Relocated services by the BIOS (when needed) */ + ((PULONG)BaseAddress)[0x42] = (ULONG)NULL; // Relocated Default INT 10h Video Services + ((PULONG)BaseAddress)[0x6D] = (ULONG)NULL; // Video BIOS Entry Point
/* Fill the tables */ RtlMoveMemory(SEG_OFF_TO_PTR(VIDEO_BIOS_DATA_SEG, FONT_8x8_OFFSET),
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] Thu May 7 23:54:47 2015 @@ -775,7 +775,7 @@ /* Get Interrupt Vector */ case 0x35: { - DWORD FarPointer = ((PDWORD)BaseAddress)[getAL()]; + ULONG FarPointer = ((PULONG)BaseAddress)[getAL()];
/* Read the address from the IDT into ES:BX */ setES(HIWORD(FarPointer)); @@ -2015,6 +2015,9 @@ RegisterDosInt32(0x29, DosFastConOut ); // DOS 2+ Fast Console Output RegisterDosInt32(0x2F, DosInt2Fh );
+ /* Unimplemented DOS interrupts */ + RegisterDosInt32(0x2A, NULL); // Network - Installation Check + /* Load the CON driver */ ConDrvInitialize();