//static globals --------------------------------\r
\r
static int ActiveEMList[MAXEMHANDLES];\r
-static unsigned int EMMSeg;\r
+static unsigned long EMMSeg;\r
\r
//forward declarations ---------------------------------\r
static int EMPresent(void);\r
static int EMReady(void);\r
-static unsigned int GetEMMSeg(void);\r
+static unsigned long GetEMMSeg(void);\r
static int GetEMHandle(int NumPages);\r
static int EMMap(int Handle, int LogPg, int PhyPg);\r
static int FreeEMHandle(int Handle);\r
{\r
int RtnCode = FALSE;\r
\r
- if (!EMMSeg || (Pages < 0) || (Pages > 1020)) {\r
+ if (!EMMSeg || (Pages < 0) || (Pages > EMMCoreLeft(/*1020*/))) {\r
return (FALSE);\r
}\r
_asm {\r
if (!EMMSeg) return(NOTREADY);\r
for (i = 0; (i < MAXEMHANDLES) && (ActiveEMList[i] != Handle); i++) ;\r
if (i == MAXEMHANDLES) return (NO_DATA);\r
- if ((GetNumPages(Handle) < Pages) || (Pages < 1) || (Pages > EMMCoreLeft(/*4*/))) {\r
+ if ((GetNumPages(Handle) < Pages) || (Pages < 1) || (Pages > 4)) {\r
return (VALUE_OUTF_RANGE);\r
}\r
for (i = Start; i < Start + Pages; i++) {\r
for (i = 0; (i < MAXEMHANDLES) && (ActiveEMList[i] != Handle); i++) ;\r
if (i == MAXEMHANDLES) return;\r
j = Start + Pages;\r
- if ((Pages < 1) || (j > EMMCoreLeft(/*4*/))) return;\r
+ if ((Pages < 1) || (j > 4)) return;\r
\r
for (i = Start; i < j; i++) {\r
EMMap(Handle, NONE, i);\r
\r
/********************************************************************/\r
\r
-static unsigned int\r
+static unsigned long\r
GetEMMSeg(void)\r
{\r
unsigned int EMSegment;\r
\r
//NotReady:\r
// return(NOTREADY);\r
-} /* End of GetEMMSeg() */\r
+} /* End of GetEMMSeg() */
+
+/********************************************************************/\r
+\r
+unsigned long\r
+GetEMMSeg0(void)\r
+{\r
+ unsigned int EMSegment;\r
+\r
+ _asm {\r
+ mov ah,0x41 /* get EMM page frame segment */\r
+ int 0x67\r
+ or ah,ah\r
+ js NotReady /* returns 80, 81, or 84 hex on error */\r
+ mov EMSegment,bx
+ jmp End
+ NotReady:
+ mov EMSegment,NOTREADY
+ End:\r
+ }\r
+ return(EMSegment); /*lint !e530 */\r
+\r
+//NotReady:\r
+// return(NOTREADY);\r
+} /* End of GetEMMSeg0() */\r
\r
/********************************************************************/\r
\r