From fa6e5edb63e179496bf10150ec3a14715d852101 Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Mon, 20 Jul 2015 20:46:58 -0500
Subject: [PATCH] ok about to add the massive page management stuff 
 modified:   exmmtest.exe 	modified:   src/lib/16_mm.c 	modified:  
 src/lib/16_mm.h

---
 exmmtest.exe    | Bin 54562 -> 54563 bytes
 src/lib/16_mm.c |  42 +++++++++++++++++++++++++++++++++++++++++-
 src/lib/16_mm.h |   1 +
 3 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/exmmtest.exe b/exmmtest.exe
index 858770f84b011519f39e6d69c1795b58a5a61948..45ae666753ac250f49b98dc31c5bba3caa7133eb 100644
GIT binary patch
delta 123
zcmV->0EGXdssp2{1F({h0l|}#k0Swjledp20Rgk$kKqUbGPA*$I0^yulfjr6vl62L
z90H{SlfA+$lfab)lSaQ~0@VPMtiKuot&_*UX#wezF~C;=<&%lPWC7Zf?!a{c(UWAs
dZ2|R@(!pl|^^-cnTmp*=vzWq$5(H63003GtH!uJI

delta 122
zcmV-=0EPdfsso~`1F({h0l<@!k0Swiledp20RXe#kKqUbF|)y#I0^ytlfjr6vl62L
z90H^RlfJ?%lfab)lSaQ~0WFiQzZwCBlgPhm0l||pz*hmilZwD(0kV_tz;ywslV!ne
c0nL-s!Dj)@lRLs(0^<s^nZkw=1W-l*0P{XI$p8QV

diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c
index c7577924..24f78c5b 100644
--- a/src/lib/16_mm.c
+++ b/src/lib/16_mm.c
@@ -307,7 +307,7 @@ byte MM_MapEMS(mminfo_t *mm)
 	return 0;
 }
 
-void MM_MapXEMS(mminfo_t *mm)
+byte MM_MapXEMS(mminfo_t *mm)
 {
 
 //SUB EMS.MapXPages (PhysicalStart, LogicalStart, NumPages, Handle)
@@ -332,6 +332,46 @@ void MM_MapXEMS(mminfo_t *mm)
 //	EMS.Error = (Regs.ax AND &HFF00&) \ &H100  //Store the status code
 
 //END SUB
+/*
+char	str[80];//,str2[10];
+	unsigned	EMShandle;
+	byte err;
+	boolean	errorflag=false;
+	int	i;
+	union REGS CPURegs;
+	EMShandle=mm->EMShandle;
+
+	for (i=0;i<MAPPAGES;i++)
+	{
+		__asm
+		{
+			mov	ah,EMS_MAPPAGE
+			mov	bx,[i]			// logical page
+			mov	al,bl			// physical page
+			mov	dx,[EMShandle]	// handle
+			int	EMS_INT
+			or	ah,ah
+			jnz	error
+			jmp End
+			error:
+			mov	err,ah
+			mov	errorflag,1
+			End:
+		}
+		if(errorflag==true)
+		{
+			//err = CPURegs.h.ah;
+			strcpy(str,"MM_MapEMS: EMS error 0x");
+			//itoa(err,str2,16);
+			//strcat(str,&err);
+			//printf("%s\n",str);
+			printf("%s%x\n",str, err);
+			//printf("FACK! %x\n", err);
+			return err;
+		}
+	}
+	return 0;
+*/
 }
 
 //==========================================================================
diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h
index a665b224..8570016c 100644
--- a/src/lib/16_mm.h
+++ b/src/lib/16_mm.h
@@ -166,6 +166,7 @@ boolean MML_CheckForEMS(void);
 byte MML_SetupEMS(mminfo_t *mm);
 void MML_ShutdownEMS(mminfo_t *mm);
 byte MM_MapEMS(mminfo_t *mm);
+byte MM_MapXEMS(mminfo_t *mm);
 boolean MML_CheckForXMS(mminfo_t *mm);
 void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi);
 void MML_ShutdownXMS(mminfo_t *mm);
-- 
2.39.5