]> 4ch.mooo.com Git - 16.git/commitdiff
modified: 16/inpu.bat
authorsparky4 <sparky4@cock.li>
Mon, 29 Jun 2015 07:53:01 +0000 (02:53 -0500)
committersparky4 <sparky4@cock.li>
Mon, 29 Jun 2015 07:53:01 +0000 (02:53 -0500)
new file:   16/inputest.exe
new file:   16/src/lib/lib_head.c

16/inpu.bat
16/inputest.exe [new file with mode: 0644]
16/src/lib/lib_head.c [new file with mode: 0644]

index d7e9313cd2dd7c83c2d5cfa48442e37c5027da0f..e7fc3b24863905333ca1da80bfd570e29902d0fe 100644 (file)
@@ -1,2 +1,3 @@
-wcc -0 -mc src\lib\16_in.c
-wcl -mc -0 -l=dos src\inputest.c 16_in.obj
\ No newline at end of file
+wcc -0 -mc src\lib\lib_head.c\r
+wcc -0 -mc src\lib\16_in.c\r
+wcl -mc -0 -l=dos src\inputest.c 16_in.obj lib_head.obj\r
diff --git a/16/inputest.exe b/16/inputest.exe
new file mode 100644 (file)
index 0000000..2489683
Binary files /dev/null and b/16/inputest.exe differ
diff --git a/16/src/lib/lib_head.c b/16/src/lib/lib_head.c
new file mode 100644 (file)
index 0000000..4ca25c9
--- /dev/null
@@ -0,0 +1,165 @@
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ *
+ * This file is part of Project 16.
+ *
+ * Project 16 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Project 16 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "src/lib/lib_head.h"
+
+/* local function */\r
+void wait(clock_t wait);
+void* AllocateLargestFreeBlock(size_t* Size);
+size_t GetFreeSize(void);
+long int filesize(FILE *fp);\r
+\r
+/* Function: Wait **********************************************************\r
+*\r
+*     Parameters:    wait - time in microseconds\r
+*\r
+*     Description:    pauses for a specified number of microseconds.\r
+*\r
+*/\r
+void wait(clock_t wait){\r
+       clock_t goal;\r
+\r
+       if(!wait) return;\r
+\r
+       goal = wait + clock();\r
+       while((goal > clock()) && !kbhit()) ;\r
+} /* End of wait */
+
+void* AllocateLargestFreeBlock(size_t* Size)
+{
+  size_t s0, s1;
+  void* p;
+
+  s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);
+
+  while (s0 && (p = malloc(s0)) == NULL)
+    s0 >>= 1;
+
+  if (p)
+    free(p);
+
+  s1 = s0 >> 1;
+
+  while (s1)
+  {
+    if ((p = malloc(s0 + s1)) != NULL)
+    {
+      s0 += s1;
+      free(p);
+    }
+    s1 >>= 1;
+  }
+
+  while (s0 && (p = malloc(s0)) == NULL)
+    s0 ^= s0 & -s0;
+
+  *Size = s0;
+  return p;
+}
+
+size_t GetFreeSize(void)
+{
+  size_t total = 0;
+  void* pFirst = NULL;
+  void* pLast = NULL;
+
+  for (;;)
+  {
+    size_t largest;
+    void* p = AllocateLargestFreeBlock(&largest);
+
+    if (largest < sizeof(void*))
+    {
+      if (p != NULL)
+        free(p);
+      break;
+    }
+
+    *(void**)p = NULL;
+
+    total += largest;
+
+    if (pFirst == NULL)
+      pFirst = p;
+
+    if (pLast != NULL)
+      *(void**)pLast = p;
+
+    pLast = p;
+  }
+
+  while (pFirst != NULL)
+  {
+    void* p = *(void**)pFirst;
+    free(pFirst);
+    pFirst = p;
+  }
+
+  return total;
+}
+
+long int
+filesize(FILE *fp)\r
+{\r
+       long int save_pos, size_of_file;\r
+\r
+       save_pos = ftell(fp);\r
+       fseek(fp, 0L, SEEK_END);\r
+       size_of_file = ftell(fp);\r
+       fseek(fp, save_pos, SEEK_SET);\r
+       return(size_of_file);\r
+}
+
+///////////////////////////////////////////////////////////////////////////\r
+//\r
+//      US_CheckParm() - checks to see if a string matches one of a set of\r
+//              strings. The check is case insensitive. The routine returns the\r
+//              index of the string that matched, or -1 if no matches were found\r
+//\r
+///////////////////////////////////////////////////////////////////////////\r
+int\r
+US_CheckParm(char *parm,char **strings)\r
+{\r
+       char    cp,cs,\r
+                       *p,*s;\r
+       int             i;\r
+\r
+       while (!isalpha(*parm)) // Skip non-alphas\r
+               parm++;\r
+\r
+       for (i = 0;*strings && **strings;i++)\r
+       {\r
+               for (s = *strings++,p = parm,cs = cp = 0;cs == cp;)\r
+               {\r
+                       cs = *s++;\r
+                       if (!cs)\r
+                               return(i);\r
+                       cp = *p++;\r
+\r
+                       if (isupper(cs))\r
+                               cs = tolower(cs);\r
+                       if (isupper(cp))\r
+                               cp = tolower(cp);\r
+               }\r
+       }\r
+       return(-1);\r
+}