X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_mm.h;h=1d82e82603204d069151d6d3e5584cdbd46a99a9;hb=729ec301fbc67f06250456eecf5e2be7e66f3d02;hp=77d49faad4511e4a661427905ec0ecc9ccdcf4d9;hpb=0232022696eaa6c4307a6705dc6b810db0378cf0;p=16.git diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 77d49faa..1d82e826 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -36,17 +36,26 @@ #endif //#define GETNEWBLOCK {if(!(mmnew=mmfree))Quit("MM_GETNEWBLOCK: No free blocks!") ;mmfree=mmfree->next;} -#define GETNEWBLOCK {if(!mm->mmfree)MML_ClearBlock(mm);mm->mmnew=mm->mmfree;mm->mmfree=mm->mmfree->next;} +#define GETNEWBLOCK {if(!mm->mmfree)MML_ClearBlock(mm);mm->mmnew=mm->mmfree;mm->mmfree=mm->mmfree->next;mm->endid++;} -#define FREEBLOCK(x) {*x->useptr=NULL;x->next=mm->mmfree;mm->mmfree=x;} +#define FREEBLOCK(x) {*x->useptr=NULL;x->next=mm->mmfree;mm->mmfree=x;mm->endid--;} +#define AARED "\x1b[41;31m" +#define AABLUE "\x1b[44;34m" +#define AAGREEN "\x1b[42;32m" +#define AAYELLOW "\x1b[43;33m" +#define AAGREY "\x1b[47;37m" +#define AABLACK "\x1b[40;30m" +#define AAWHITE "\x1b[47;37m" +#define AAMAGENTA "\x1b[45;35m" +#define AARESET "\x1b[0m" -#define SAVENEARHEAP 0//_memavl()/4 // space to leave in data segment +#define SAVENEARHEAP 0x200 // space to leave in data segment #define SAVEFARHEAP 0//x400 // space to leave in far heap #define BUFFERSIZE 0x1000 // miscelanious, allways available buffer -#define MAXBLOCKS 720 +#define MAXBLOCKS 1024 @@ -123,6 +132,7 @@ typedef struct mmblockstruct { //word start,length; word start; dword length; + word blob; //fore data larger than 64k unsigned attributes; memptr *useptr; // pointer to the segment start struct mmblockstruct huge *next; @@ -176,7 +186,7 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi); boolean MML_CheckForXMS(mminfo_t *mm); void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi); void MML_ShutdownXMS(mminfo_t *mm); -void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm); +void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm); void MML_ClearBlock(mminfo_t *mm); void MM_Startup(mminfo_t *mm, mminfotype *mmi); @@ -187,7 +197,7 @@ 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(/*page_t *page, */mminfo_t *mm); +void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm); void MM_DumpData(mminfo_t *mm); dword MM_UnusedMemory(mminfo_t *mm); dword MM_TotalFree(mminfo_t *mm);