OSDN Git Service

started to work on mm libery~
authorsparky4 <sparky4@cock.li>
Tue, 30 Jun 2015 00:22:54 +0000 (19:22 -0500)
committersparky4 <sparky4@cock.li>
Tue, 30 Jun 2015 00:22:54 +0000 (19:22 -0500)
modified:   exmmtest.exe
modified:   src/lib/16_mm.c
modified:   src/lib/16_mm.h

exmmtest.exe
src/lib/16_mm.c
src/lib/16_mm.h

index ee5838f..3306249 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index 9dbc0ee..52fdf8e 100644 (file)
@@ -43,6 +43,48 @@ EMS / XMS unmanaged routines
 */\r
 \r
 #include "src/lib/16_mm.h"\r
+
+/*\r
+=============================================================================\r
+\r
+                                                GLOBAL VARIABLES\r
+\r
+=============================================================================\r
+*/\r
+\r
+mminfotype     mminfo;\r
+memptr         bufferseg;\r
+boolean                mmerror;\r
+\r
+void           (* beforesort) (void);\r
+void           (* aftersort) (void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                LOCAL VARIABLES\r
+\r
+=============================================================================\r
+*/\r
+\r
+boolean                mmstarted;\r
+\r
+void far       *farheap;\r
+void           *nearheap;\r
+\r
+mmblocktype    far mmblocks[MAXBLOCKS]\r
+                       ,far *mmhead,far *mmfree,far *mmrover,far *mmnew;\r
+\r
+boolean                bombonerror;\r
+\r
+unsigned       totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle;
+unsigned int EMSVer;\r
+\r
+void           (* XMSaddr) (void);             // far pointer to XMS driver\r
+\r
+unsigned       numUMBs,UMBbase[MAXUMBS];
+
+static char *ParmStringsexmm[] = {"noems","noxms",""};
 \r
 /*\r
 ======================\r
@@ -570,7 +612,7 @@ emsskip:
        if (MML_CheckForXMS())\r
        {\r
 //             printf("XMS!\n");\r
-               MML_SetupXMS();                                 // allocate as many UMBs as possible\r
+//++++         MML_SetupXMS();                                 // allocate as many UMBs as possible\r
        }\r
 \r
 //\r
@@ -599,11 +641,16 @@ void MM_Shutdown (void)
   if (!mminfo.mmstarted)\r
        return;\r
 \r
-  _ffree (farheap);\r
-  free (nearheap);\r
-  hfree(hugeheap);\r
-  MML_ShutdownEMS ();\r
-  MML_ShutdownXMS ();\r
+  _ffree (farheap);
+  printf("far freed\n");\r
+  free (nearheap);
+  printf("near freed\n");\r
+  //hfree(hugeheap);
+  printf("huge freed\n");\r
+  MML_ShutdownEMS ();
+  printf("EMS freed\n");\r
+//++++  MML_ShutdownXMS ();
+  printf("XMS freed\n");\r
 }\r
 \r
 //==========================================================================\r
@@ -1175,4 +1222,3 @@ US_CheckParm(char *parm,char **strings)
        }\r
        return(-1);\r
 }\r
-\r
index fceb155..701f002 100644 (file)
@@ -135,11 +135,11 @@ typedef struct mmblockstruct
 =============================================================================
 */
 
-static mminfotype      mminfo;
+/*static mminfotype    mminfo;
 static memptr          bufferseg;
 
 static void            (* beforesort) (void);
-static void            (* aftersort) (void);
+static void            (* aftersort) (void);*/
 
 /*
 =============================================================================
@@ -149,7 +149,7 @@ static void         (* aftersort) (void);
 =============================================================================
 */
 
-static void huge       *hugeheap;
+/*static void huge     *hugeheap;
 static void far        *farheap;
 static void            *nearheap;
 
@@ -162,9 +162,7 @@ static unsigned int EMSVer;
 
 static void            (* XMSaddr) (void);             // far pointer to XMS driver
 
-static unsigned        numUMBs,UMBbase[MAXUMBS];
-
-static char *ParmStringsexmm[] = {"noems","noxms",""};
+static unsigned        numUMBs,UMBbase[MAXUMBS];*/
 
 //==========================================================================