#include <malloc.h>\r
\r
//from ftp://213.85.246.177/pub/FreeBSD/ports/archivers/arj/work/arj-3.10.22/environ.c\r
+#if 0\r
//#ifdef __WATCOMC__\r
long HC_Newfarcoreleft()\r
{\r
- void huge *hp; static long rc=736L; long s_rc;\r
+ void __huge *hp; static long rc=736L; long s_rc;\r
\r
s_rc=rc; rc+=2L;\r
do\r
} while(hp!=NULL);\r
return((rc-16L)*1024L);\r
}\r
-//#endif\r
+#endif\r
\r
+//from: https://stackoverflow.com/questions/14386856/c-check-available-ram\r
void\r
#ifdef __BORLANDC__\r
*\r
return p;\r
}\r
\r
+//from: https://stackoverflow.com/questions/14386856/c-check-available-ram\r
size_t HC_coreleft(void)\r
{\r
size_t total = 0;\r
return total;\r
}\r
\r
-void far* HC_LargestFarFreeBlock(size_t* Size)\r
+//far version of above\r
+void far* HC_LargestFarFreeBlock(unsigned long* Size)\r
{\r
- size_t s0, s1;\r
+ unsigned long s0, s1;\r
void far* p;\r
\r
- s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);\r
+ s0 = ~(unsigned long)0 ^ (~(unsigned long)0 >> 1);\r
while (s0 && (p = _fmalloc(s0)) == NULL)\r
s0 >>= 1;\r
\r
return p;\r
}\r
\r
-size_t HC_farcoreleft(void)\r
+//far version of above\r
+unsigned long HC_farcoreleft(void)\r
{\r
- size_t total = 0;\r
+ unsigned long total = 0UL;\r
void far* pFirst = NULL;\r
void far* pLast = NULL;\r
for(;;)\r
{\r
- size_t largest;\r
+ unsigned long largest;\r
void far* p = HC_LargestFarFreeBlock(&largest);\r
if (largest < sizeof(void far*))\r
{\r
}\r
return total;\r
}*/\r
-\r
+#if 0\r
size_t HC_GetFreeSize(void)\r
{\r
struct _heapinfo h_info;\r
if((h_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") h_used += h_info._size;\r
h_total += h_info._size;\r
}\r
- HC_heapstat0(heap_status);\r
+ HCL_heapstat0(heap_status);\r
return h_free;\r
}\r
+#endif\r
\r
-size_t HC_GetFarFreeSize(void)\r
+unsigned long HC_GetFarFreeSize(void)\r
{\r
struct _heapinfo fh_info;\r
int heap_status;\r
- size_t fh_free=0, fh_total=0, fh_used=0;\r
+ unsigned long fh_free=0, fh_total=0, fh_used=0;\r
\r
fh_info._pentry = NULL;\r
for(;;) {\r
if((fh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") fh_used += fh_info._size;\r
fh_total += fh_info._size;\r
}\r
- HC_heapstat0(heap_status);\r
+ HCL_heapstat0(heap_status);\r
return fh_free;\r
}\r
\r
if((nh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") nh_used += nh_info._size;\r
nh_total += nh_info._size;\r
}\r
- HC_heapstat0(heap_status);\r
+ HCL_heapstat0(heap_status);\r
return nh_free;\r
}\r
\r
h_total += h_info._size;\r
write(gvar->handle.heaphandle,scratch,strlen(scratch));\r
}\r
- HC_heapstat(gvar, heap_status, &scratch);\r
+ HCL_heapstat(gvar, heap_status, &scratch);\r
#endif\r
\r
//near\r
nh_total += nh_info._size;\r
write(gvar->handle.heaphandle,scratch,strlen(scratch));\r
}\r
- HC_heapstat(gvar, heap_status, &scratch);\r
+ HCL_heapstat(gvar, heap_status, &scratch);\r
\r
//far\r
strcpy(scratch,"\n == far ==\n\n");\r
fh_total += fh_info._size;\r
write(gvar->handle.heaphandle,scratch,strlen(scratch));\r
}\r
- HC_heapstat(gvar, heap_status, &scratch);\r
+ HCL_heapstat(gvar, heap_status, &scratch);\r
\r
strcpy(scratch,"\n");\r
strcat(scratch,kittengets(2,0,"Memory Type Total Used Free\n"));\r
strcat(scratch,"---------------- -------- -------- --------\n");\r
strcat(scratch,"HC_coreleft = "); ultoa((dword)HC_coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"HC_farcoreleft = "); ultoa((dword)HC_farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"HC_Newfarcoreleft = "); ultoa((dword)HC_Newfarcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"HC_GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+// strcat(scratch,"HC_Newfarcoreleft = "); ultoa((dword)HC_Newfarcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+// strcat(scratch,"HC_GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"HC_GetNearFreeSize = "); ultoa((dword)HC_GetNearFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"HC_GetFarFreeSize = "); ultoa((dword)HC_GetFarFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"coreleft = "); ultoa((dword)coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
HC_CloseDebug(gvar);\r
}\r
\r
-void HC_heapstat(global_game_variables_t *gvar, int heap_status, byte *str)\r
+void HCL_heapstat(global_game_variables_t *gvar, int heap_status, byte *str)\r
{\r
switch( heap_status ) {\r
case _HEAPEND:\r
write(gvar->handle.heaphandle,(str),strlen((str)));\r
}\r
\r
-void HC_heapstat0(int heap_status)\r
+void HCL_heapstat0(int heap_status)\r
{\r
switch( heap_status ) {\r
case _HEAPEND:\r
printf("ERROR - bad node in heap\n");\r
}\r
}\r
+\r
+unsigned long farcoreleft()\r
+{\r
+//---- _fheapgrow();\r
+ return HC_farcoreleft();\r
+//stack overflows return HC_GetFarFreeSize();\r
+}\r
+\r
+unsigned long coreleft()\r
+{\r
+ _nheapgrow();\r
+ return _memavl();\r
+// return HC_GetNearFreeSize();\r
+}\r
#endif\r
+\r
/*\r
============================\r
=\r
strcpy(gvar->handle.heapdumpfilename, "heap.16w");\r
#endif\r
}\r
-\r
-#ifdef __WATCOMC__\r
-unsigned long farcoreleft()\r
-{\r
- _fheapgrow();\r
- //return HC_farcoreleft();\r
-// #ifdef __BORLANDC__\r
-// r 0x90000UL-16UL\r
-// #endif\r
-\r
- return 0x90000UL+16UL;\r
-}\r
-\r
-unsigned long coreleft()\r
-{\r
- _nheapgrow();\r
- return _memavl();\r
-}\r
-#endif\r