diff --git a/src/ints/ems.cpp b/src/ints/ems.cpp index 15038096..52b6d7d0 100644 --- a/src/ints/ems.cpp +++ b/src/ints/ems.cpp @@ -35,7 +35,7 @@ #define EMM_MAX_PAGES (C_MEM_EMS_SIZE * 1024 / 16 ) #define EMM_MAX_PHYS 4 /* 4 16kb pages in pageframe */ -#define EMM_VERSION 0x32 +#define EMM_VERSION 0x40 #define NULL_HANDLE 0xffff #define NULL_PAGE 0xffff @@ -311,6 +311,51 @@ static Bitu INT67_Handler(void) { break; } break; + case 0x50: // Map/Unmap multiple handle pages + reg_ah = EMM_NO_ERROR; + switch (reg_al) { + case 0x00: // use physical page numbers + { PhysPt data = SegPhys(ds)+reg_si; + for (int i=0; i