X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexmm%2Fmemory.c;h=21b213f854d2ee7858c286094ef867dbd1f78de6;hb=b75a9280f3eb85ab5739a63a79404141fdbc28d7;hp=3a81a0c5de04baa9a8dff99bdc5049f5448fb873;hpb=db7297fc036c43ad380e2c764cea7b7007483178;p=16.git diff --git a/src/lib/exmm/memory.c b/src/lib/exmm/memory.c old mode 100644 new mode 100755 index 3a81a0c5..21b213f8 --- a/src/lib/exmm/memory.c +++ b/src/lib/exmm/memory.c @@ -28,13 +28,13 @@ //static globals -------------------------------- static int ActiveEMList[MAXEMHANDLES]; -static unsigned int EMMSeg; +static unsigned long EMMSeg; //forward declarations --------------------------------- static int EMPresent(void); static int EMReady(void); -static unsigned int GetEMMSeg(void); +static unsigned long GetEMMSeg(void); static int GetEMHandle(int NumPages); static int EMMap(int Handle, int LogPg, int PhyPg); static int FreeEMHandle(int Handle); @@ -213,7 +213,7 @@ MapEMM(int Handle, int Start, int Pages) if (!EMMSeg) return(NOTREADY); for (i = 0; (i < MAXEMHANDLES) && (ActiveEMList[i] != Handle); i++) ; if (i == MAXEMHANDLES) return (NO_DATA); - if ((GetNumPages(Handle) < Pages) || (Pages < 1) || (Pages > EMMCoreLeft(/*4*/))) { + if ((GetNumPages(Handle) < Pages) || (Pages < 1) || (Pages > 4)) { return (VALUE_OUTF_RANGE); } for (i = Start; i < Start + Pages; i++) { @@ -233,7 +233,7 @@ UnmapEMM(int Handle, int Start, int Pages) for (i = 0; (i < MAXEMHANDLES) && (ActiveEMList[i] != Handle); i++) ; if (i == MAXEMHANDLES) return; j = Start + Pages; - if ((Pages < 1) || (j > EMMCoreLeft(/*4*/))) return; + if ((Pages < 1) || (j > 4)) return; for (i = Start; i < j; i++) { EMMap(Handle, NONE, i); @@ -308,7 +308,7 @@ EMReady(void) /********************************************************************/ -static unsigned int +static unsigned long GetEMMSeg(void) { unsigned int EMSegment; @@ -328,7 +328,31 @@ GetEMMSeg(void) //NotReady: // return(NOTREADY); -} /* End of GetEMMSeg() */ +} /* End of GetEMMSeg() */ + +/********************************************************************/ + +unsigned long +GetEMMSeg0(void) +{ + unsigned int EMSegment; + + _asm { + mov ah,0x41 /* get EMM page frame segment */ + int 0x67 + or ah,ah + js NotReady /* returns 80, 81, or 84 hex on error */ + mov EMSegment,bx + jmp End + NotReady: + mov EMSegment,NOTREADY + End: + } + return(EMSegment); /*lint !e530 */ + +//NotReady: +// return(NOTREADY); +} /* End of GetEMMSeg0() */ /********************************************************************/