From 565462932f26c7e63232c2314727f3807de76657 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 20 Jul 2015 12:17:42 -0500 Subject: [PATCH] untested reversion to older version with updated parts modified: DEBUG.TXT modified: MMDUMP.TXT modified: exmmtest.exe modified: src/lib/16_mm.c modified: src/lib/16_mm.h --- DEBUG.TXT | 10 +-- MMDUMP.TXT | Bin 125 -> 125 bytes exmmtest.exe | Bin 54864 -> 54634 bytes src/lib/16_mm.c | 199 ++++++++++++++++++++++++------------------------ src/lib/16_mm.h | 3 +- 5 files changed, 104 insertions(+), 108 deletions(-) diff --git a/DEBUG.TXT b/DEBUG.TXT index 727d142b..ca05d1aa 100644 --- a/DEBUG.TXT +++ b/DEBUG.TXT @@ -1,5 +1,5 @@ -Seg:0 Size:140000 Owner:0xb80b -Seg:222e Size:4096 Owner:0xfba0 -Seg:3035 Size:1028480 Owner:0x5040 -Seg:3974 Size:682176 Owner:0xeb70 -Seg:e000 Size:131056 Owner:0x1e8d +Seg:0 Size:177392 Owner:0x7410 +Seg:2b4f Size:4096 Owner:0xfba0 +Seg:3956 Size:544 Owner:0x30b8 +Seg:479f Size:624144 Owner:0xbcfe +Seg:e000 Size:131056 Owner:0xadeb diff --git a/MMDUMP.TXT b/MMDUMP.TXT index 36624a83cacdfa2f36acdbbca88ceb4e2ddc3348..d03b87c78770300e4fb4dcb62664e8011698964b 100644 GIT binary patch literal 125 zcmXr0FfcGlwlX$IvQW^_Rnk Uff9+R5=JRjX-SD7qZkkp0M02JY5)KL literal 125 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 diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 12add7c0..a021f2b6 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -143,7 +143,7 @@ unsigned MML_SetupEMS(mminfo_t *mm) union REGS CPURegs; unsigned int EMSVer = 0; - //byte EMSstatus; + byte EMS_status; unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0; @@ -152,7 +152,7 @@ unsigned MML_SetupEMS(mminfo_t *mm) mov ah,EMS_STATUS int EMS_INT // make sure EMS hardware is present or ah,ah - //mov [EMSstatus],ah + mov [EMS_status],ah jnz error mov ah,EMS_VERSION @@ -219,7 +219,6 @@ End: mm->EMSpagesmapped=EMSpagesmapped; mm->EMShandle=EMShandle; mm->EMSVer=EMSVer; - //mm->EMSstatus=EMSstatus; return 0; } @@ -273,7 +272,7 @@ unsigned MM_MapEMS(mminfo_t *mm) union REGS CPURegs; EMShandle=mm->EMShandle; - for (i=0;iEMSpagesmapped;i++) + for (i=0;i<4/*mm->EMSpagesmapped*/;i++) { __asm { @@ -303,33 +302,33 @@ unsigned MM_MapEMS(mminfo_t *mm) return 0; } -void MM_MapXEMS(mminfo_t *mm) -{ - union REGS CPURegs; - -//SUB EMS.MapXPages(PhysicalStart, LogicalStart, NumPages, Handle) +/* +SUB EMS.MapXPages (PhysicalStart, LogicalStart, NumPages, Handle) - //Maps up to 4 logical EMS pages to physical pages in the page frame, where: - // - //PhysicalStart = Physical page first logical page is mapped to - //LogicalStart = First logical page to map - //NumPages = Number of pages to map (1 to 4) - //Handle = EMS handle logical pages are allocated to + 'Maps up to 4 logical EMS pages to physical pages in the page frame, where: + ' + 'PhysicalStart = Physical page first logical page is mapped to + 'LogicalStart = First logical page to map + 'NumPages = Number of pages to map (1 to 4) + 'Handle = EMS handle logical pages are allocated to - ///Create a buffer containing the page information - /*FOR x = 0 TO NumPages - 1 + 'Create a buffer containing the page information + FOR x = 0 TO NumPages - 1 MapInfo$ = MapInfo$ + MKI$(LogicalStart + x) + MKI$(PhysicalStart + x) NEXT - Regs.ax = &H5000 //Map the pages in the buffer - Regs.cx = NumPages //to the pageframe - Regs.dx = Handle - Regs.ds = VARSEG(MapInfo$) - Regs.si = SADD(MapInfo$) - InterruptX &H67, Regs, Regs - EMS.Error = (Regs.ax AND &HFF00&) \ &H100 //Store the status code*/ + Regs.ax = &H5000 'Map the pages in the buffer + Regs.cx = NumPages 'to the pageframe + Regs.dx = Handle + Regs.ds = VARSEG(MapInfo$) + Regs.si = SADD(MapInfo$) + InterruptX &H67, Regs, Regs + EMS.Error = (Regs.ax AND &HFF00&) \ &H100 'Store the status code -//END SUB +END SUB +*/ +void MM_MapXEMS(mminfo_t *mm) +{ } @@ -596,7 +595,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) if(mm->mmstarted) MM_Shutdown(mm); -printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! + mm->mmstarted = true; mm->bombonerror = true; // @@ -609,7 +608,7 @@ printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ mm->mmblocks[i].next = &(mm->mmblocks[i+1]); } mm->mmblocks[i].next = NULL; -printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! + // // locked block of all memory until we punch out free space // @@ -620,7 +619,7 @@ printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ mm->mmnew->attributes = LOCKBIT; mm->mmnew->next = NULL; mm->mmrover = mm->mmhead; -printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! + // farlen=_bios_memsize()*1024; // @@ -636,7 +635,7 @@ printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->nearheap = length; - printf("near heap ok!\n"); + //printf("near heap ok!\n"); // // get all available far conventional memory segments @@ -653,7 +652,7 @@ printf(".\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; mmi->mainmem = mmi->nearheap + mmi->farheap; - printf("far heap ok!\n"); + //printf("far heap ok!\n"); // @@ -695,7 +694,6 @@ emsskip: if(MML_CheckForXMS(mm)) { printf("XMS!\n"); - //====needs work! //MML_SetupXMS(mm, mmi); // allocate as many UMBs as possible } @@ -729,6 +727,8 @@ void MM_Shutdown(mminfo_t *mm) printf("far freed\n"); free(mm->nearheap); printf("near freed\n"); + //hfree(mm->hugeheap); + //printf("huge freed\n"); if(MML_CheckForEMS()){ MML_ShutdownEMS(mm); printf("EMS freed\n"); } if(MML_CheckForXMS(mm)){ MML_ShutdownXMS(mm); printf("XMS freed\n"); } } @@ -863,7 +863,7 @@ void MM_FreePtr(memptr *baseptr, mminfo_t *mm) if(!scan) { - printf("MM_FreePtr: Block not found!\n"); + printf("MM_FreePtr: Block not found!"); return; } @@ -900,7 +900,7 @@ void MM_SetPurge(memptr *baseptr, int purge, mminfo_t *mm) mm->mmrover = mm->mmhead; else if(mm->mmrover == start) { - printf("MM_SetPurge: Block not found!\n"); + printf("MM_SetPurge: Block not found!"); return; } @@ -1140,7 +1140,6 @@ CA_OpenDebug (); VW_Plot(x,y,15); if (scan->next && scan->next->start > end+1) VW_Hlin(x+end+1,x+(scan->next->start-scan->start),y,0); // black = free - */ //****#if 0 @@ -1173,70 +1172,70 @@ CA_CloseDebug (); } //****#endif -//========================================================================== - -/* -===================== -= -= MM_DumpData -= -===================== -*/ - -void MM_DumpData(mminfo_t *mm) -{ - mmblocktype far *scan,far *best; - long lowest,oldlowest; - word owner; - byte lock,purge; - FILE *dumpfile; - - - free (mm->nearheap); - dumpfile = fopen ("mmdump.txt","w"); - if (!dumpfile){ +//========================================================================== + +/* +===================== += += MM_DumpData += +===================== +*/ + +void MM_DumpData(mminfo_t *mm) +{ + mmblocktype far *scan,far *best; + long lowest,oldlowest; + word owner; + byte lock,purge; + FILE *dumpfile; + + + free (mm->nearheap); + dumpfile = fopen ("mmdump.txt","w"); + if (!dumpfile){ printf("MM_DumpData: Couldn't open MMDUMP.TXT!"); return; - } - - lowest = -1; - do - { - oldlowest = lowest; - lowest = 0xffff; - - scan = mm->mmhead; - while (scan) - { - owner = (word)scan->useptr; - - if (owner && owner oldlowest) - { - best = scan; - lowest = owner; - } - - scan = scan->next; - } - - if (lowest != 0xffff) - { - if (best->attributes & PURGEBITS) - purge = 'P'; - else - purge = '-'; - if (best->attributes & LOCKBIT) - lock = 'L'; - else - lock = '-'; - fprintf (dumpfile,"0x%p (%c%c) = %u\n" - ,(word)lowest,lock,purge,best->length); - } - - } while (lowest != 0xffff); - - fclose (dumpfile); - printf("MMDUMP.TXT created."); + } + + lowest = -1; + do + { + oldlowest = lowest; + lowest = 0xffff; + + scan = mm->mmhead; + while (scan) + { + owner = (word)scan->useptr; + + if (owner && owner oldlowest) + { + best = scan; + lowest = owner; + } + + scan = scan->next; + } + + if (lowest != 0xffff) + { + if (best->attributes & PURGEBITS) + purge = 'P'; + else + purge = '-'; + if (best->attributes & LOCKBIT) + lock = 'L'; + else + lock = '-'; + fprintf (dumpfile,"0x%p (%c%c) = %u\n" + ,(word)lowest,lock,purge,best->length); + } + + } while (lowest != 0xffff); + + fclose (dumpfile); + printf("MMDUMP.TXT created."); } //========================================================================== @@ -1315,14 +1314,12 @@ dword MM_TotalFree(mminfo_t *mm) void MM_Report(page_t *page, mminfo_t *mm, mminfotype *mmi) { - printf("\n"); if(MML_CheckForEMS()) { - printf("Expanded memory manager present. EMM v%x.%x available\n", mm->EMSVer>>4,mm->EMSVer&0x0F); - printf("totalEMSpages=%u ", mm->totalEMSpages); + printf("EMM v%x.%x available\n", mm->EMSVer>>4,mm->EMSVer&0x0F); + printf("totalEMSpages=%u\n", mm->totalEMSpages); printf("freeEMSpages=%u\n", mm->freeEMSpages); - printf("Page frame @0x%04x\n", mm->EMSpageframe); - //printf("EMSpageframe=%x\n", ); + printf("EMSpageframe=%x\n", mm->EMSpageframe); } if(MML_CheckForXMS(mm)) printf("XMSaddr=%Fp\n", *XMSaddr); printf("near=%lu\n", mmi->nearheap); diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index f1634d9e..70075287 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -35,7 +35,6 @@ #define OUT_OF_MEM_MSG "\npee\n" #endif -//#define VIDMEMP2 12800 // size of 2nd video memory blob #define SAVENEARHEAP 0x200 // space to leave in data segment #define SAVEFARHEAP 0 // space to leave in far heap @@ -135,7 +134,7 @@ typedef struct boolean mmstarted, bombonerror, mmerror; void huge *farheap; void *nearheap; - //byte EMSstatus; + byte EMS_status; unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; unsigned int EMSVer; word numUMBs,UMBbase[MAXUMBS]; -- 2.39.5