]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_hc.c
farcoreleft() is now flexible <3 going to code later like a few days from now later
[16.git] / src / lib / 16_hc.c
index 26fe62480b15c0e39ba166e955972fcc2bd88ece..1d6bd4cbc5da6ab9c19af8e02954ab6cb0b70760 100755 (executable)
 #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
-#define FARCORELEFTPTR __huge\r
-long HC_farcoreleft()\r
+long HC_Newfarcoreleft()\r
 {\r
-       void FARCORELEFTPTR *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
@@ -49,8 +49,9 @@ long HC_farcoreleft()
        } 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
@@ -117,6 +118,7 @@ HC_LargestFreeBlock(size_t* Size)
        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
@@ -161,12 +163,13 @@ size_t HC_coreleft(void)
        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
@@ -190,14 +193,15 @@ void far* HC_LargestFarFreeBlock(size_t* Size)
        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
@@ -361,7 +365,7 @@ size_t _basedcoreleft(void)
        }\r
        return total;\r
 }*/\r
-\r
+#if 0\r
 size_t HC_GetFreeSize(void)\r
 {\r
        struct _heapinfo h_info;\r
@@ -376,15 +380,16 @@ size_t HC_GetFreeSize(void)
                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
@@ -394,7 +399,7 @@ size_t HC_GetFarFreeSize(void)
                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
@@ -412,7 +417,7 @@ size_t HC_GetNearFreeSize(void)
                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
@@ -441,7 +446,7 @@ void HC_heapdump(global_game_variables_t *gvar)
                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
@@ -463,7 +468,7 @@ nh_info._pentry, nh_info._size );*/
                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
@@ -484,7 +489,7 @@ fh_info._pentry, fh_info._size );*/
                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
@@ -493,18 +498,20 @@ fh_info._pentry, fh_info._size );*/
        printmeminfoline(&scratch, "Near", nh_total, nh_used, nh_free);\r
        printmeminfoline(&scratch, "Far", fh_total, fh_used, fh_free);\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_GetFreeSize = ");            ultoa((dword)HC_GetFreeSize(),str,10);          strcat(scratch,str);    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_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,"memavl = ");                    ultoa((dword)_memavl(),str,10);                 strcat(scratch,str);    strcat(scratch,"\n");\r
-       strcat(scratch,"stackavail = ");                ultoa((dword)stackavail(),str,10);              strcat(scratch,str);    strcat(scratch,"\n");\r
+       strcat(scratch,"coreleft = ");                          ultoa((dword)coreleft(),str,10);                                strcat(scratch,str);    strcat(scratch,"\n");\r
+       strcat(scratch,"farcoreleft = ");                       ultoa((dword)farcoreleft(),str,10);                     strcat(scratch,str);    strcat(scratch,"\n");\r
+       strcat(scratch,"stackavail = ");                        ultoa((dword)stackavail(),str,10);                      strcat(scratch,str);    strcat(scratch,"\n");\r
        write(gvar->handle.heaphandle,scratch,strlen(scratch));\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
@@ -526,7 +533,7 @@ void HC_heapstat(global_game_variables_t *gvar, int heap_status, byte *str)
        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
@@ -545,7 +552,22 @@ void HC_heapstat0(int heap_status)
                        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
@@ -578,17 +600,3 @@ void HC_CloseDebug(global_game_variables_t *gvar)
        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
-}\r
-\r
-unsigned long coreleft()\r
-{\r
-       _nheapgrow();\r
-       return _memavl();\r
-}\r
-#endif\r