From: sparky4 Date: Wed, 22 Jul 2015 13:57:29 +0000 (-0500) Subject: hmmm X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=0e18fee0636fb264bb16d80fb0287a4fb84efe26;p=16.git hmmm modified: DEBUG.TXT modified: MMDUMP.TXT modified: exmmtest.exe modified: src/exmmtest.c modified: src/lib/16_mm.c modified: src/lib/16_mm.h --- diff --git a/DEBUG.TXT b/DEBUG.TXT index 74c756b6..6a34c892 100644 --- a/DEBUG.TXT +++ b/DEBUG.TXT @@ -1,3 +1,4 @@ -Seg:ffff Size:917520 Owner:0x0 - -MM_ShowMemory: Memory block order currupted! +Seg:0 Size:105968 Owner:0x46f6 +Seg:19df Size:4096 Owner:0x56f8 +Seg:216f Size:8592 Owner:0x2ef7 +Seg:6386 Size:640912 Owner:0x8003 diff --git a/MMDUMP.TXT b/MMDUMP.TXT index e69de29b..ac06fa08 100644 Binary files a/MMDUMP.TXT and b/MMDUMP.TXT differ diff --git a/exmmtest.exe b/exmmtest.exe index eed1cb67..f7b564fc 100644 Binary files a/exmmtest.exe and b/exmmtest.exe differ diff --git a/src/exmmtest.c b/src/exmmtest.c index e2f8d5de..5401c95d 100644 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -34,7 +34,7 @@ #pragma warn -pro #pragma warn -use -#define FILERL +//#define FILERL //#define FILEINIT void diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 548efc09..aa123376 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -634,10 +634,10 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) { int i; dword length,seglength; + //dword length; word seglength; void huge *start; - unsigned segstart,endfree; + word segstart;//,endfree; - //printf("mmi->segu=%Fp\n", (mmi->segu)); if(mm->mmstarted) MM_Shutdown(mm); @@ -647,7 +647,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // set up the linked list (everything in the free list; // - printf(" linked list making!\n"); + //printf(" linked list making!\n"); mm->mmhead = NULL; mm->mmfree = &(mm->mmblocks[0]); for(i=0;immblocks[i].next = &(mm->mmblocks[i+1]); } mm->mmblocks[i].next = NULL; - //printf("mmi->segu=%Fp\n", (mmi->segu)); // // locked block of all memory until we punch out free space // - printf(" newblock making!\n"); + //printf(" newblock making!\n"); MM_GetNewBlock(mm); mm->mmhead = mm->mmnew; // this will allways be the first node mm->mmnew->start = 0; @@ -668,7 +667,6 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) mm->mmnew->attributes = LOCKBIT; mm->mmnew->next = NULL; mm->mmrover = mm->mmhead; - //printf("mmi->segu=%Fp\n", (mmi->segu)); // // get all available near conventional memory segments @@ -676,14 +674,15 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) printf(" nearheap making!\n"); //---- length=coreleft(); _nheapgrow(); - length=GetFreeSize();//_memmax(); - start = /*(void huge *)*/(mm->nearheap = _nmalloc(length)); + length=_memmax(); + start = (void huge *)(mm->nearheap = malloc(length)); length -= 16-(FP_OFF(start)&15); length -= SAVENEARHEAP; seglength = length / 16; // now in paragraphs segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->nearheap = length; + printf("start=%Fp segstart=%x seglen=%lu len=%lu\n", start, segstart, seglength, length); /*switch( _nheapchk() ) { case _HEAPOK: printf( "OK - nearheap is good\n" ); @@ -706,7 +705,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) //---- length=farcoreleft(); printf(" farheap making!\n"); _fheapgrow(); - length=_memavl();//0xffffUL*4UL; + length=0xffffUL*4UL; start = mm->farheap = halloc(length, sizeof(byte)); //start = mm->farheap = _fmalloc(length); length -= 16-(FP_OFF(start)&15); @@ -716,6 +715,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; mmi->mainmem = mmi->nearheap + mmi->farheap; + printf("start=%Fp segstart=%x seglen=%lu len=%lu\n", start, segstart, seglength, length); /*switch( _fheapchk() ) { case _HEAPOK: printf( "OK - farheap is good\n" ); diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 7949cce4..b9b455f5 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -92,8 +92,6 @@ typedef struct { dword nearheap,farheap,EMSmem,XMSmem,mainmem; //__segment segu; - //word segu; -// } mminfotype; //========================================================================== @@ -118,15 +116,12 @@ extern void (* XMSaddr) (void); // far pointer to XMS driver #define BASEATTRIBUTES 0 // unlocked, non purgable #define MAXUMBS 12 -#define MAPPAGES 4//mm->EMSpagesmapped +#define MAPPAGES mm->EMSpagesmapped typedef struct mmblockstruct { - word start;//,length; - //dword start,length; - //word start; - dword length; - //byte segm; //how many 64kb segment blocks it takes up if there is many data! + //word start,length; + word start; dword length; unsigned attributes; memptr *useptr; // pointer to the segment start struct mmblockstruct huge *next;