From 2c112ee6852e6db1026bcbf6e537928a65e32bdf Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 10 Aug 2015 09:10:44 -0500 Subject: [PATCH] replaced the getptr function with the one from wolfenstien! wwww modified: DEBUG.16 modified: HEAP.16 modified: MMDUMP.16 modified: exmmtest.exe modified: src/lib/16_mm.c --- DEBUG.16 | 22 +++++++------- HEAP.16 | 10 +++---- MMDUMP.16 | Bin 132 -> 66 bytes exmmtest.exe | Bin 44194 -> 43666 bytes src/lib/16_mm.c | 75 ++++++++++++++++++++---------------------------- 5 files changed, 47 insertions(+), 60 deletions(-) diff --git a/DEBUG.16 b/DEBUG.16 index 7315a04f..04159b01 100644 --- a/DEBUG.16 +++ b/DEBUG.16 @@ -1,17 +1,17 @@ -Seg:0 Size:5552 Owner:0x5 +Seg:0 Size:5522 Owner:0x65e ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ 0 -Seg:15b0 Size:256 Owner:0x3518 +Seg:1592 Size:256 Owner:0x3518 ++++_  -Seg:16b0 Size:273 Owner:0x858c -+++++_ +Seg:1692 Size:273 Owner:0x858c +++++_  -Seg:1cff Size:40 Owner:0x35a0 -++_ -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Seg:ad27 Size:13017 Owner:0x3578 -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ +Seg:1ce1 Size:40 Owner:0x0 ++_ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +Seg:ad09 Size:13047 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_  -Seg:e000 Size:8191 Owner:0x358c -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ +Seg:e000 Size:8191 Owner:0x0 +_ diff --git a/HEAP.16 b/HEAP.16 index e4368cc1..d1049f17 100644 --- a/HEAP.16 +++ b/HEAP.16 @@ -1,11 +1,11 @@ == default == - USED block at 1d210016 of size 66 - FREE block at 1d210058 of size 18 - USED block at 1d21006a of size 136 - USED block at 1d2100f2 of size 20 - FREE block at 1d210106 of size 7926 + USED block at 1d030016 of size 66 + FREE block at 1d030058 of size 18 + USED block at 1d03006a of size 136 + USED block at 1d0300f2 of size 20 + FREE block at 1d030106 of size 7926 OK - end of heap == near == diff --git a/MMDUMP.16 b/MMDUMP.16 index 87fc5ce997482470f20f2740ac0dc69cac155e2d..107157e6c9e60a048bc08f85723e9f62ba54fc45 100644 GIT binary patch delta 25 gcmZo+bmBLtFfcGlwlXj?O;ym)oiveOabl4W08q3BjQ{`u literal 132 zcmXr0FfcGlwlXj=mHIPJs=31D7)e1sI0a<(-lK=n! diff --git a/exmmtest.exe b/exmmtest.exe index ff8006ed6bd9308adfb6ef3203ff801a1cff1f6d..ee515dbf8ee440524c6cce292a801042372b27f8 100644 GIT binary patch delta 9519 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 @@ -582,21 +582,24 @@ void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) //printf(" seglen=%lu\n", scan->length); } - //find out how many blocks it spans! - // +// +// take the given range out of the block +// + oldend = scan->start + scan->length; + extra = oldend - (segstart+seglength); + + segmlen=extra; +// +// find out how many blocks it spans! +// for(;segmlen>0x10000;segmlen-=0x10000) { //printf(" seglen=%lu\n", segmlen); segm++; } -// -// take the given range out of the block -// - oldend = scan->start + scan->length; - extra = oldend - (segstart+(word)seglength); //++++emsver stuff! - if(segm>1 || extra>=0x10000lu) + if(segm>1/* || extra>=0x10000lu*/) //if(extra>0xfffflu) { scan->blob=segm; @@ -891,47 +894,44 @@ void MM_Shutdown(mminfo_t *mm) ==================== */ -void MM_GetPtr(memptr *baseptr,dword size, mminfo_t *mm, mminfotype *mmi) +void MM_GetPtr (memptr *baseptr, dword size, mminfo_t *mm, mminfotype *mmi) { - mmblocktype huge *scan,huge *lastscan,huge *endscan,huge *purge,huge *next; + mmblocktype huge *scan,huge *lastscan,huge *endscan + ,huge *purge,huge *next; int search; - dword needed; - word startseg; + unsigned needed,startseg; needed = (size+15)/16; // convert size from bytes to paragraphs -//printf("."); //0000 + GETNEWBLOCK; // fill in start and next after a spot is found mm->mmnew->length = needed; mm->mmnew->useptr = baseptr; mm->mmnew->attributes = BASEATTRIBUTES; -//printf("."); //0000 - for(search = 0; search<3; search++) + +//tryagain: + for (search = 0; search<3; search++) { -printf("\n [case]"); //0000 // // first search: try to allocate right after the rover, then on up // second search: search from the head pointer up to the rover // third search: compress memory, then scan from start - if(search == 1 && mm->mmrover == mm->mmhead) + if (search == 1 && mm->mmrover == mm->mmhead) search++; - switch(search) + switch (search) { case 0: -printf("0 "); //0000 lastscan = mm->mmrover; scan = mm->mmrover->next; endscan = NULL; break; case 1: -printf("1 "); //0000 lastscan = mm->mmhead; scan = mm->mmhead->next; endscan = mm->mmrover; break; case 2: -printf("2 "); //0000 - MM_SortMem(mm); + MM_SortMem (mm); lastscan = mm->mmhead; scan = mm->mmhead->next; endscan = NULL; @@ -939,13 +939,11 @@ printf("2 "); //0000 } startseg = lastscan->start + lastscan->length; -printf(" %x\n", startseg); - while(scan != endscan) + + while (scan != endscan) { -printf(","); //0000 - if(scan->start - startseg >= needed) + if (scan->start - startseg >= needed) { -printf("."); //0000 // // got enough space between the end of lastscan and // the start of scan, so throw out anything in the middle @@ -953,11 +951,10 @@ printf("."); //0000 // purge = lastscan->next; lastscan->next = mm->mmnew; - mm->mmnew->start = *(word *)baseptr = startseg; + mm->mmnew->start = *(unsigned *)baseptr = startseg; mm->mmnew->next = scan; - while(purge != scan) + while ( purge != scan) { // free the purgable block -printf(" freeing block~\n"); //0000 next = purge->next; FREEBLOCK(purge); purge = next; // purge another if not at scan @@ -969,25 +966,15 @@ printf(" freeing block~\n"); //0000 // // if this block is purge level zero or locked, skip past it // - if((scan->attributes & LOCKBIT) + if ( (scan->attributes & LOCKBIT) || !(scan->attributes & PURGEBITS) ) { -printf(" [lock] "); //0000 lastscan = scan; -printf("start=%x ", lastscan->start); -printf("len=%x ", lastscan->length); -printf("\n"); //0000 -printf(" %x", lastscan->start + lastscan->length); //0000 -printf(" %x", lastscan->start + (word)lastscan->length); //0000 -printf(" %x", (word)lastscan->start + (word)lastscan->length); //0000 -printf("\n"); //0000 - startseg = (word)lastscan->start + (word)lastscan->length+1; -printf("startseg =%x ok", startseg); //0000 + startseg = lastscan->start + lastscan->length; } -printf(" end\n"); + scan=scan->next; // look at next line -printf("boop\n");//0000 } } -- 2.39.2