Author: aandrejevic Date: Mon Nov 11 04:00:10 2013 New Revision: 60938
URL: http://svn.reactos.org/svn/reactos?rev=60938&view=rev Log: [NTVDM] Implement the miscellaneous BIOS system service (INT 15h) handler. Implement INT 15h, AH = 88h, "Get Extended Memory Size".
Modified: branches/ntvdm/subsystems/ntvdm/bios.c branches/ntvdm/subsystems/ntvdm/bios.h
Modified: branches/ntvdm/subsystems/ntvdm/bios.c URL: http://svn.reactos.org/svn/reactos/branches/ntvdm/subsystems/ntvdm/bios.c?re... ============================================================================== --- branches/ntvdm/subsystems/ntvdm/bios.c [iso-8859-1] (original) +++ branches/ntvdm/subsystems/ntvdm/bios.c [iso-8859-1] Mon Nov 11 04:00:10 2013 @@ -481,6 +481,7 @@ RegisterInt32(BIOS_VIDEO_INTERRUPT , BiosVideoService ); RegisterInt32(BIOS_EQUIPMENT_INTERRUPT, BiosEquipmentService ); RegisterInt32(BIOS_MEMORY_SIZE , BiosGetMemorySize ); + RegisterInt32(BIOS_MISC_INTERRUPT , BiosMiscService ); RegisterInt32(BIOS_KBD_INTERRUPT , BiosKeyboardService ); RegisterInt32(BIOS_TIME_INTERRUPT , BiosTimeService ); RegisterInt32(BIOS_SYS_TIMER_INTERRUPT, BiosSystemTimerInterrupt); @@ -1174,6 +1175,30 @@ { /* Return the conventional memory size in kB, typically 640 kB */ setAX(Bda->MemorySize); +} + +VOID WINAPI BiosMiscService(LPWORD Stack) +{ + switch (getAH()) + { + /* Get Extended Memory Size */ + case 0x88: + { + /* Return the number of KB of RAM after 1 MB */ + setAX((MAX_ADDRESS - 0x100000) / 1024); + + /* Clear CF */ + Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; + + break; + } + + default: + { + DPRINT1("BIOS Function INT 15h, AH = 0x%02X NOT IMPLEMENTED\n", + getAH()); + } + } }
VOID WINAPI BiosKeyboardService(LPWORD Stack)
Modified: branches/ntvdm/subsystems/ntvdm/bios.h URL: http://svn.reactos.org/svn/reactos/branches/ntvdm/subsystems/ntvdm/bios.h?re... ============================================================================== --- branches/ntvdm/subsystems/ntvdm/bios.h [iso-8859-1] (original) +++ branches/ntvdm/subsystems/ntvdm/bios.h [iso-8859-1] Mon Nov 11 04:00:10 2013 @@ -27,6 +27,7 @@ #define BIOS_VIDEO_INTERRUPT 0x10 #define BIOS_EQUIPMENT_INTERRUPT 0x11 #define BIOS_MEMORY_SIZE 0x12 +#define BIOS_MISC_INTERRUPT 0x15 #define BIOS_KBD_INTERRUPT 0x16 #define BIOS_TIME_INTERRUPT 0x1A #define BIOS_SYS_TIMER_INTERRUPT 0x1C @@ -171,6 +172,7 @@ VOID WINAPI BiosVideoService(LPWORD Stack); VOID WINAPI BiosEquipmentService(LPWORD Stack); VOID WINAPI BiosGetMemorySize(LPWORD Stack); +VOID WINAPI BiosMiscService(LPWORD Stack); VOID WINAPI BiosKeyboardService(LPWORD Stack); VOID WINAPI BiosTimeService(LPWORD Stack); VOID WINAPI BiosSystemTimerInterrupt(LPWORD Stack);