From 380ca5a9a2e277dbda156ef125db8d5fc365df41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Strohh=C3=A4cker?= Date: Mon, 27 Sep 2010 20:32:00 +0000 Subject: [PATCH] allow arbitrary segments to be remapped by the EMM functions (peter ferrie; fixes Airline Simulator 2) Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3644 --- src/ints/ems.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/ints/ems.cpp b/src/ints/ems.cpp index b8f399db..5e2e6134 100644 --- a/src/ints/ems.cpp +++ b/src/ints/ems.cpp @@ -89,6 +89,8 @@ struct EMM_Handle { EMM_Mapping page_map[EMM_MAX_PHYS]; }; +static Bitu ems_type; + static EMM_Handle emm_handles[EMM_MAX_HANDLES]; static EMM_Mapping emm_mappings[EMM_MAX_PHYS]; static EMM_Mapping emm_segmentmappings[0x40]; @@ -329,7 +331,23 @@ static Bit8u EMM_MapPage(Bitu phys_page,Bit16u handle,Bit16u log_page) { static Bit8u EMM_MapSegment(Bitu segment,Bit16u handle,Bit16u log_page) { // LOG_MSG("EMS MapSegment handle %d segment %d log %d",handle,segment,log_page); - if (((segment>=0xa000) && (segment<0xb000)) || ((segment>=EMM_PAGEFRAME-0x1000) && (segment=0xa000) && (segment<0xb000)) { + valid_segment=true; // allow mapping of graphics memory + } + if ((segment>=EMM_PAGEFRAME) && (segment=EMM_PAGEFRAME-0x1000) && (segment