+++ /dev/null
-0 Size:5546 Owner:0x0\r
-0 Size:5546 Owner:0x0\r
-15aa Size:256 Owner:0x351e\r
-Seg:16aa Size:273 Owner:0x857a\r
-Seg:1cf8 Size:49 Owner:0x0\r
-Seg:ad29 Size:8920 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:4294967263 Owner:0x0\r
-Seg:d022 Size:419 Owner:0x0\r
-Seg:e000 Size:4294909951 Owner:0x0\r
+++ /dev/null
-\r
- == default ==\r
-\r
- USED block at 1d1a0016 of size 136\r
- USED block at 1d1a009e of size 66\r
- FREE block at 1d1a00e0 of size 18\r
- USED block at 1d1a00f2 of size 20\r
- FREE block at 1d1a0106 of size 7926\r
-OK - end of heap\r
-\r
- == near ==\r
-\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
-OK - end of heap\r
-\r
- == far ==\r
-\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
- USED block at 0 of size 0\r
-OK - end of heap\r
-\r
-Memory Type Total Used Free\r
----------------- -------- -------- --------\r
-Default 8166 222 7944\r
-Near 31318 862 30456\r
-Far 8166 222 7944\r
----------------- -------- -------- --------\r
-coreleft = 30454\r
-farcoreleft = 38202\r
-GetFreeSize = 7768\r
-GetNearFreeSize = 30456\r
-GetFarFreeSize = 7768\r
-memavl = 30454\r
-stackavail = 11049\r
void\r
main(int argc, char *argv[])\r
{\r
+ global_game_variables_t gvar;\r
mminfo_t mm; mminfotype mmi;\r
#ifdef __WATCOMC__\r
__segment sega;\r
MM_Startup(&mm, &mmi);\r
//PM_Startup();\r
//PM_UnlockMainMem();\r
- CA_Startup();\r
+ CA_Startup(&gvar);\r
printf(" done!\n");\r
printf("&main()= %Fp\n", *argv[0]);\r
printf("bigbuffer= %Fp\n", bigbuffer);\r
getch();\r
//++++modexEnter();\r
//++++modexShowPage(&screen);\r
- MM_ShowMemory(&mm);\r
+ MM_ShowMemory(&gvar, &mm);\r
//getch();\r
MM_DumpData(&mm);\r
//++++modexLeave();\r
MM_FreePtr(&bigbuffer, &mm);\r
#endif\r
//PM_Shutdown();\r
- CA_Shutdown();\r
+ CA_Shutdown(&gvar);\r
MM_Shutdown(&mm);\r
printf(" done!\n");\r
#ifdef FILERL\r
//getch();\r
// printf("\n");\r
#ifdef __WATCOMC__\r
- heapdump();\r
+ heapdump(&gvar);\r
#endif\r
//printf("core left: %lu\n", (dword)_coreleft());\r
//printf("far core left: %lu\n", (dword)_farcoreleft());\r
byte far grneeded[NUMCHUNKS];\r
byte ca_levelbit,ca_levelnum;*/\r
\r
-int profilehandle,debughandle;\r
-\r
void (*drawcachebox) (char *title, unsigned numcache);\r
void (*updatecachebox) (void);\r
void (*finishcachebox) (void);\r
=\r
============================\r
*/\r
-void CA_OpenDebug(void)\r
+void CA_OpenDebug(global_game_variables_t *gvar)\r
{\r
unlink("debug.16");\r
- debughandle = open("debug.16", O_CREAT | O_WRONLY | O_TEXT);\r
+ gvar->handle.debughandle = open("debug.16", O_CREAT | O_WRONLY | O_TEXT);\r
}\r
\r
-void CA_CloseDebug(void)\r
+void CA_CloseDebug(global_game_variables_t *gvar)\r
{\r
- close(debughandle);\r
+ close(gvar->handle.debughandle);\r
}\r
\r
\r
======================\r
*/\r
\r
-void CA_Startup(void)\r
+void CA_Startup(global_game_variables_t *gvar)\r
{\r
#ifdef PROFILE\r
unlink("profile.16");\r
- profilehandle = open("profile.16", O_CREAT | O_WRONLY | O_TEXT);\r
+ gvar->handle.profilehandle = open("profile.16", O_CREAT | O_WRONLY | O_TEXT);\r
#endif\r
/*++++\r
// MDM begin - (GAMERS EDGE)\r
======================\r
*/\r
\r
-void CA_Shutdown(void)\r
+void CA_Shutdown(global_game_variables_t *gvar)\r
{\r
#ifdef PROFILE\r
- close(profilehandle);\r
+ close(gvar->handle.profilehandle);\r
#endif\r
/*++++\r
close(maphandle);\r
//#define AUDIOHEADERLINKED\r
\r
//#define NUMMAPS 39\r
-//#define MAPPLANES 3
+//#define MAPPLANES 3\r
#define PROFILE\r
\r
//===========================================================================\r
\r
extern char *titleptr[8];*/\r
\r
-extern int profilehandle,debughandle;\r
+//extern\r
\r
//\r
// hooks for custom cache dialogs\r
//void CAL_ShiftSprite (unsigned segment,unsigned source,unsigned dest,unsigned width, unsigned height, unsigned pixshift, boolean domask);\r
\r
//===========================================================================\r
-
-void CA_OpenDebug (void);\r
-void CA_CloseDebug (void);
+\r
+void CA_OpenDebug (global_game_variables_t *gvar);\r
+void CA_CloseDebug (global_game_variables_t *gvar);\r
boolean CA_FarRead (int handle, byte huge *dest, dword length, mminfo_t *mm);\r
-boolean CA_FarWrite (int handle, byte huge *source, dword length, mminfo_t *mm);
+boolean CA_FarWrite (int handle, byte huge *source, dword length, mminfo_t *mm);\r
\r
boolean CA_ReadFile (char *filename, memptr *ptr, mminfo_t *mm);\r
-boolean CA_LoadFile (char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi);
+boolean CA_LoadFile (char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi);\r
\r
//long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,unsigned rlewtag);\r
\r
//void CA_RLEWexpand (unsigned huge *source, unsigned huge *dest,long length,unsigned rlewtag);\r
\r
-void CA_Startup (void);\r
-void CA_Shutdown (void);\r
+void CA_Startup (global_game_variables_t *gvar);\r
+void CA_Shutdown (global_game_variables_t *gvar);\r
\r
//void CA_CacheAudioChunk (int chunk);\r
//void CA_LoadAllSounds (void);\r
#include "src/lib/16_hc.h"
-int heaphandle;
-
#ifdef __BORLANDC__
void * LargestFreeBlock(size_t* Size)
#endif
return nh_free;
}
-void heapdump(void)
+void heapdump(global_game_variables_t *gvar)
{
struct _heapinfo fh_info, nh_info, h_info;
int heap_status;
size_t h_free, nh_free, fh_free, h_total, nh_total, fh_total, h_used, nh_used, fh_used;
byte scratch[1024],str[16];
- HC_OpenDebug();
+ HC_OpenDebug(gvar);
strcpy(scratch,"\n == default ==\n\n");
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
h_info._pentry = NULL;
h_free=0; h_total=0; h_used=0;
for(;;) {
if((h_info._useflag == _USEDENTRY ? "USED" : "FREE")=="FREE") h_free += h_info._size;
if((h_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") h_used += h_info._size;
h_total += h_info._size;
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
}
- heapstat(heap_status, &scratch);
+ heapstat(gvar, heap_status, &scratch);
//near
strcpy(scratch,"\n == near ==\n\n");
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
nh_info._pentry = NULL;
nh_free=0; nh_total=0; nh_used=0;
for(;;) {
if((nh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="FREE") nh_free += nh_info._size;
if((nh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") nh_used += nh_info._size;
nh_total += nh_info._size;
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
}
- heapstat(heap_status, &scratch);
+ heapstat(gvar, heap_status, &scratch);
//far
strcpy(scratch,"\n == far ==\n\n");
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
fh_info._pentry = NULL;
fh_free=0; fh_total=0; fh_used=0;
for(;;) {
if((fh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="FREE") fh_free += fh_info._size;
if((fh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") fh_used += fh_info._size;
fh_total += fh_info._size;
- write(heaphandle,scratch,strlen(scratch));
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
}
- heapstat(heap_status, &scratch);
+ heapstat(gvar, heap_status, &scratch);
strcpy(scratch,"\n");
strcat(scratch,kittengets(2,0,"Memory Type Total Used Free\n"));
strcat(scratch,"GetFarFreeSize = "); ultoa((dword)GetFarFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");
strcat(scratch,"memavl = "); ultoa((dword)_memavl(),str,10); strcat(scratch,str); strcat(scratch,"\n");
strcat(scratch,"stackavail = "); ultoa((dword)stackavail(),str,10); strcat(scratch,str); strcat(scratch,"\n");
- write(heaphandle,scratch,strlen(scratch));
- HC_CloseDebug();
+ write(gvar->handle.heaphandle,scratch,strlen(scratch));
+ HC_CloseDebug(gvar);
}
-void heapstat(int heap_status, byte *str)
+void heapstat(global_game_variables_t *gvar, int heap_status, byte *str)
{
switch( heap_status ) {
case _HEAPEND:
case _HEAPBADNODE:
strcpy((str),"ERROR - bad node in heap\n");
}
- write(heaphandle,(str),strlen((str)));
+ write(gvar->handle.heaphandle,(str),strlen((str)));
}
void heapstat0(int heap_status)
break;
case _HEAPEMPTY:
//printf("OK - heap is empty\n");
-
break;
case _HEAPBADBEGIN:
printf("ERROR - heap is damaged\n");
=
============================
*/
-void HC_OpenDebug()
+void HC_OpenDebug(global_game_variables_t *gvar)
{
unlink("heap.16");
- heaphandle = open("heap.16", O_CREAT | O_WRONLY | O_TEXT);
+ gvar->handle.heaphandle = open("heap.16", O_CREAT | O_WRONLY | O_TEXT);
}
-void HC_CloseDebug()
+void HC_CloseDebug(global_game_variables_t *gvar)
{
- close(heaphandle);
+ close(gvar->handle.heaphandle);
}
#include "src/lib/16_head.h"
-extern int heaphandle;
-
#ifdef __BORLANDC__
void * LargestFreeBlock(size_t* Size);
#endif
size_t GetFreeSize(void);
size_t GetFarFreeSize(void);
size_t GetNearFreeSize(void);
-void heapdump(void);
-void heapstat(int heap_status, byte *str);
+void heapdump(global_game_variables_t *gvar);
+void heapstat(global_game_variables_t *gvar, int heap_status, byte *str);
void heapstat0(int heap_status);
-void HC_OpenDebug();
-void HC_CloseDebug();
+void HC_OpenDebug(global_game_variables_t *gvar);
+void HC_CloseDebug(global_game_variables_t *gvar);
#endif /* __16HC__ */
#ifdef __BORLANDC__\r
typedef void _seg * memptr;\r
#endif\r
+\r
+typedef struct\r
+{\r
+ int profilehandle,debughandle;\r
+ int heaphandle;\r
+} handle_t;\r
+\r
typedef struct\r
{\r
int old_mode; //old video mode before game!\r
clock_t t;\r
dword tiku;\r
word far* clock;\r
- //handles for log files of the game gose here if wwww\r
- //int heaphandle;\r
+ handle_t handle; //handles for file logging\r
} global_game_variables_t;\r
\r
/* local function */\r
void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free);\r
int US_CheckParm(char *parm,char **strings);\r
\r
-extern void CA_OpenDebug (void);\r
-extern void CA_CloseDebug (void);\r
+extern void CA_OpenDebug (global_game_variables_t *gvar);\r
+extern void CA_CloseDebug (global_game_variables_t *gvar);\r
\r
#endif/*_LIBHEAD_H_*/\r
if (mm->bombonerror)
{
#ifdef __WATCOMC__
- heapdump();
+ //heapdump();
#endif
printf(OUT_OF_MEM_MSG,(size-mmi->nearheap));
printf("for stability reasons the program will shut down! wwww\n");
=====================
*/
-void MM_ShowMemory(/*page_t *page, */mminfo_t *mm)
+void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm)
{
mmblocktype huge *scan;
//++++ word color;
end = -1;
-CA_OpenDebug ();
+CA_OpenDebug (gvar);
//++++ chx=0;
//++++ chy=0;
if(scan->start<=end)
{
//printf(");
- write(debughandle,"\nMM_ShowMemory: Memory block order currupted!\n",strlen("\nMM_ShowMemory: Memory block order currupted!\n"));
+ write(gvar->handle.debughandle,"\nMM_ShowMemory: Memory block order currupted!\n",strlen("\nMM_ShowMemory: Memory block order currupted!\n"));
//modexprint(&page, chx, chy, 1, 0, 24, "\nMM_ShowMemory: Memory block order currupted!\n");
return;
}
ultoa (owner,str,16);
strcat (scratch,str);
strcat (scratch,"\n");
-write(debughandle,scratch,strlen(scratch));
+write(gvar->handle.debughandle,scratch,strlen(scratch));
//modexprint(page, chx, chy, 1, 0, 24, &scratch);
//++++chy+=4;
//fprintf(stdout, "%s", scratch);
scan = scan->next;
}
-CA_CloseDebug ();
+CA_CloseDebug (gvar);
//++++mh IN_Ack();
//**** VW_SetLineWidth(64);
void MM_SetPurge(memptr *baseptr, int purge, mminfo_t *mm);
void MM_SetLock(memptr *baseptr, boolean locked, mminfo_t *mm);
void MM_SortMem(mminfo_t *mm);
-void MM_ShowMemory(/*page_t *page, */mminfo_t *mm);
+void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm);
void MM_DumpData(mminfo_t *mm);
dword MM_UnusedMemory(mminfo_t *mm);
dword MM_TotalFree(mminfo_t *mm);