X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_mm.h;h=93e0663e2fc3ca10d9bec04860e493989a06903e;hb=019e5275fa20374f0dbef06caa32d948840e2b0b;hp=0b2bc4519e349bca278181284894f95fa2b1f126;hpb=2fa06f324b3d3f955a4f6dc59bc9eb57e0ca22a6;p=16.git diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 0b2bc451..93e0663e 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -25,6 +25,8 @@ #include //#include #include "src/lib/16_head.h" +#include "src/lib/modex16.h" +//#include "src/lib/16_ca.h" //++++mh #include "src/lib/16_in.h" #ifdef __DEBUG__ // 1 == Debug/Dev ; 0 == Production/final @@ -42,6 +44,7 @@ #define MAXBLOCKS 600 + //-------- #define EMS_INT 0x67 @@ -111,6 +114,7 @@ extern void (* XMSaddr) (void); // far pointer to XMS driver #define BASEATTRIBUTES 0 // unlocked, non purgable #define MAXUMBS 12 +#define MAPPAGES 4/*mm->EMSpagesmapped*/ typedef struct mmblockstruct { @@ -118,8 +122,7 @@ typedef struct mmblockstruct //dword start,length; //word start; //dword length; - word segm; //how many 64kb segment blocks it takes up if there is many data! - dword segmlen; //length of the multi segment data + //byte segm; //how many 64kb segment blocks it takes up if there is many data! unsigned attributes; memptr *useptr; // pointer to the segment start struct mmblockstruct huge *next; @@ -132,6 +135,7 @@ typedef struct boolean mmstarted, bombonerror, mmerror; void huge *farheap; void *nearheap; + //byte EMS_status; unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; unsigned int EMSVer; word numUMBs,UMBbase[MAXUMBS]; @@ -176,10 +180,11 @@ void MM_FreePtr(memptr *baseptr, mminfo_t *mm); void MM_SetPurge(memptr *baseptr, int purge, mminfo_t *mm); void MM_SetLock(memptr *baseptr, boolean locked, mminfo_t *mm); void MM_SortMem(mminfo_t *mm); -void MM_ShowMemory(mminfo_t *mm); +void MM_ShowMemory(page_t *page, mminfo_t *mm); +void MM_DumpData(mminfo_t *mm); dword MM_UnusedMemory(mminfo_t *mm); dword MM_TotalFree(mminfo_t *mm); -void MM_Report(mminfo_t *mm, mminfotype *mmi); +void MM_Report(page_t *page, mminfo_t *mm, mminfotype *mmi); //int MM_EMSVer(void); void MM_BombOnError(boolean bomb, mminfo_t *mm); void MM_GetNewBlock(mminfo_t *mm);