+//==========================================================================\r
+\r
+/*\r
+=====================\r
+=\r
+= MM_DumpData\r
+=\r
+=====================\r
+*/\r
+\r
+void MM_DumpData(mminfo_t *mm)\r
+{\r
+ mmblocktype far *scan,far *best;\r
+ long lowest,oldlowest;\r
+ unsigned owner;\r
+ char lock,purge;\r
+ FILE *dumpfile;\r
+\r
+\r
+ free (mm->nearheap);\r
+ dumpfile = fopen ("mmdump.txt","w");\r
+ if (!dumpfile){\r
+ printf("MM_DumpData: Couldn't open MMDUMP.TXT!");
+ return;
+ }\r
+\r
+ lowest = -1;\r
+ do\r
+ {\r
+ oldlowest = lowest;\r
+ lowest = 0xffff;\r
+\r
+ scan = mm->mmhead;\r
+ while (scan)\r
+ {\r
+ owner = (unsigned)scan->useptr;\r
+\r
+ if (owner && owner<lowest && owner > oldlowest)\r
+ {\r
+ best = scan;\r
+ lowest = owner;\r
+ }\r
+\r
+ scan = scan->next;\r
+ }\r
+\r
+ if (lowest != 0xffff)\r
+ {\r
+ if (best->attributes & PURGEBITS)\r
+ purge = 'P';\r
+ else\r
+ purge = '-';\r
+ if (best->attributes & LOCKBIT)\r
+ lock = 'L';\r
+ else\r
+ lock = '-';\r
+ fprintf (dumpfile,"0x%p (%c%c) = %u\n"\r
+ ,(unsigned)lowest,lock,purge,best->length);\r
+ }\r
+\r
+ } while (lowest != 0xffff);\r
+\r
+ fclose (dumpfile);\r
+ printf("MMDUMP.TXT created.");\r
+}
+