1
0
Fork 0

updated ems/dpmi functions for new paging mapping

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1358
This commit is contained in:
Sjoerd van der Berg 2003-10-22 14:44:41 +00:00
parent fb7a8015de
commit 4065547365
2 changed files with 24 additions and 15 deletions

View file

@ -156,13 +156,19 @@ static Bit8u EMM_MapPage(Bitu phys_page,Bit16u handle,Bit16u log_page) {
/* Mapping it is */
emm_mappings[phys_page].handle=handle;
emm_mappings[phys_page].page=log_page;
MEM_MapPagesHandle(EMM_PAGEFRAME4K+phys_page*4,emm_handles[handle].mem,log_page*4,4);
MemHandle memh=MEM_NextHandleAt(emm_handles[handle].mem,log_page*4);;
for (Bitu i=0;i<4;i++) {
PAGING_MapPage(EMM_PAGEFRAME4K+phys_page*4+i,memh);
memh=MEM_NextHandle(memh);
}
return EMM_NO_ERROR;
} else if (log_page==NULL_PAGE) {
/* Unmapping it is */
emm_mappings[phys_page].handle=NULL_HANDLE;
emm_mappings[phys_page].page=NULL_PAGE;
MEM_UnmapPages(EMM_PAGEFRAME4K+phys_page*4,4);
for (Bitu i=0;i<4;i++)
PAGING_MapPage(EMM_PAGEFRAME4K+phys_page*4+i,EMM_PAGEFRAME4K+phys_page*4+i);
return EMM_NO_ERROR;
} else {
/* Illegal logical page it is */