]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_hc.c
updated the copyleft wwww i am not deAD! i just been 2 busy last 6 monthes
[16.git] / src / lib / 16_hc.c
index 2d747f67f7b51294da9901c880c653516ba73ac5..271f4c1a059d94fa835b78e460a1eea5073542b3 100755 (executable)
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
+ * Copyright (C) 2012-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
  *\r
  * This file is part of Project 16.\r
  *\r
@@ -52,22 +52,10 @@ long HC_Newfarcoreleft()
 #endif\r
 \r
 //from: https://stackoverflow.com/questions/14386856/c-check-available-ram\r
-void\r
-#ifdef __BORLANDC__\r
- *\r
-#endif\r
-#ifdef __WATCOMC__\r
- __near*\r
-#endif\r
-HC_LargestFreeBlock(size_t* Size)\r
+void NPTR* HC_LargestFreeBlock(size_t* Size)\r
 {\r
        size_t s0, s1;\r
-#ifdef __BORLANDC__\r
-       void * p;\r
-#endif\r
-#ifdef __WATCOMC__\r
-       void __near* p;\r
-#endif\r
+       void NPTR* p;\r
 \r
        s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);\r
        while (s0 && (p = _nmalloc(s0)) == NULL)\r
@@ -129,12 +117,12 @@ size_t HC_coreleft(void)
 }\r
 \r
 //far version of above\r
-void far* HC_LargestFarFreeBlock(unsigned long* Size)\r
+void __far* HC_LargestFarFreeBlock(dword* Size)\r
 {\r
-       unsigned long s0, s1;\r
-       void far* p;\r
+       dword s0, s1;\r
+       void __far* p;\r
 \r
-       s0 = ~(unsigned long)0 ^ (~(unsigned long)0 >> 1);\r
+       s0 = ~(dword)0 ^ (~(dword)0 >> 1);\r
        while (s0 && (p = _fmalloc(s0)) == NULL)\r
                s0 >>= 1;\r
 \r
@@ -159,37 +147,39 @@ void far* HC_LargestFarFreeBlock(unsigned long* Size)
 }\r
 \r
 //far version of above\r
-unsigned long HC_farcoreleft(void)\r
+dword HC_farcoreleft(void)\r
 {\r
-       unsigned long total = 0UL;\r
-       void far* pFirst = NULL;\r
-       void far* pLast = NULL;\r
+       dword total = 0UL;\r
+       void __far* pFirst = NULL;\r
+       void __far* pLast = NULL;\r
        for(;;)\r
        {\r
-               unsigned long largest;\r
-               void far* p = HC_LargestFarFreeBlock(&largest);\r
-               if (largest < sizeof(void far*))\r
+               dword largest;\r
+               void __far* p = HC_LargestFarFreeBlock(&largest);\r
+               if (largest < sizeof(void __far*))\r
                {\r
                        if (p != NULL)\r
                        _ffree(p);\r
                        break;\r
                }\r
-               *(void far* far*)p = NULL;\r
+               *(void __far* __far*)p = NULL;\r
                total += largest;\r
                if (pFirst == NULL)\r
                        pFirst = p;\r
 \r
                if (pLast != NULL)\r
-                       *(void far* far*)pLast = p;\r
+                       *(void __far* __far*)pLast = p;\r
                pLast = p;\r
        }\r
 \r
        while (pFirst != NULL)\r
        {\r
-               void far* p = *(void far* far*)pFirst;\r
+               void __far* p = *(void __far* __far*)pFirst;\r
                _ffree(pFirst);\r
                pFirst = p;\r
        }\r
+\r
+       //if(total>16) total+=16;       total &= 0xfffffff0UL;\r
        return total;\r
 }\r
 \r
@@ -306,25 +296,25 @@ size_t _basedcoreleft(void)
        {\r
                size_t largest;\r
                void __based(segu)* p = LargestBasedFreeBlock(&largest);\r
-               if (largest < sizeof(void far*))\r
+               if (largest < sizeof(void __far*))\r
                {\r
                        if (p != NULL)\r
                        _ffree(p);\r
                        break;\r
                }\r
-               *(void far* far*)p = NULL;\r
+               *(void __far* __far*)p = NULL;\r
                total += largest;\r
                if (pFirst == NULL)\r
                        pFirst = p;\r
 \r
                if (pLast != NULL)\r
-                       *(void far* far*)pLast = p;\r
+                       *(void __far* __far*)pLast = p;\r
                pLast = p;\r
        }\r
 \r
        while (pFirst != NULL)\r
        {\r
-               void far* p = *(void far* far*)pFirst;\r
+               void __far* p = *(void __far* __far*)pFirst;\r
                _ffree(pFirst);\r
                pFirst = p;\r
        }\r
@@ -366,7 +356,7 @@ void HCL_HeapWalking (struct _heapinfo *h_info, hc_use_t *hu, unsigned nearfarsw
        HCL_heapstat(hu->heap_status);\r
 }\r
 \r
-unsigned long HC_GetFarFreeSize(void)\r
+dword HC_GetFarFreeSize(void)\r
 {\r
        struct _heapinfo h_info;\r
        hc_use_t hu;\r
@@ -375,7 +365,7 @@ unsigned long HC_GetFarFreeSize(void)
 #if 0\r
        struct _heapinfo fh_info;\r
        int heap_status;\r
-       unsigned long fh_free=0, fh_total=0, fh_used=0;\r
+       dword fh_free=0, fh_total=0, fh_used=0;\r
 \r
        fh_info._pentry = NULL;\r
        for(;;) {\r
@@ -487,16 +477,18 @@ fh_info._pentry, fh_info._size );*/
        strcpy(scratch,"\n");\r
        strcat(scratch,kittengets(2,0,"Memory Type         Total      Used       Free\n"));\r
        strcat(scratch,"----------------  --------   --------   --------\n");\r
-//     printmeminfoline(&scratch, "Default", h_total, h_used, h_free);\r
+//--   printmeminfoline(&scratch, "Default", h_total, h_used, h_free);\r
        printmeminfoline(scratch, "Near", nh_total, nh_used, nh_free);\r
        printmeminfoline(scratch, "Far", fh_total, fh_used, fh_free);\r
        strcat(scratch,"----------------  --------   --------   --------\n");\r
+#if defined(__LARGE__) || defined(__COMPACT__) || defined(__HUGE__)\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
+#endif\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
+//00   strcat(scratch,"HC_GetNearFreeSize = ");        ultoa((dword)HC_GetNearFreeSize(),str,10);      strcat(scratch,str);    strcat(scratch,"\n");\r
+//00   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
        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
@@ -552,14 +544,25 @@ void HCL_heapstat(int heap_status)
 \r
 //++\r
 #ifdef __WATCOMC__\r
-unsigned long farcoreleft()\r
+dword farcoreleft()\r
 {\r
 //---- _fheapgrow();\r
+// #ifdef __BORLANDC__\r
+//     return 0x90000UL-16UL;\r
+// #endif\r
+\r
+#if !defined(__LARGE__) && !defined(__COMPACT__) && !defined(__HUGE__)\r
+//----\r
+       return 0x90000UL+16UL;\r
+//---- return 589824UL+16UL;\r
+#else\r
+//++++\r
        return HC_farcoreleft();\r
 //stack overflows      return HC_GetFarFreeSize();\r
+#endif\r
 }\r
 \r
-unsigned long coreleft()\r
+dword coreleft()\r
 {\r
        _nheapgrow();\r
        return _memavl();\r