X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2F16_head.c;h=e56baa94bc86fb44c4efc521450b67d872afef18;hb=330b72f5c3a57ed0a17636059df12e0195a5c3cd;hp=2aca4bb7cdac82377624bfaf8a4da9fe81538116;hpb=1287746074527ec8af4c6ca515802e5a72d0ef05;p=16.git
diff --git a/src/lib/16_head.c b/src/lib/16_head.c
old mode 100644
new mode 100755
index 2aca4bb7..e56baa94
--- a/src/lib/16_head.c
+++ b/src/lib/16_head.c
@@ -1,244 +1,28 @@
-/* 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 , or
- * write to the Free Software Foundation, Inc., 51 Franklin Street,
- * Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include "src/lib/16_head.h"
-
-/* Function: Wait **********************************************************
-*
-* Parameters: wait - time in microseconds
-*
-* Description: pauses for a specified number of microseconds.
-*
-*/
-void wait(clock_t wait){
- clock_t goal;
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover
+ *
+ * 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 , or
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
- if(!wait) return;
+#include "src/lib/16_head.h"
- goal = wait + clock();
- while((goal > clock()) && !kbhit()) ;
-} /* 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;
-}
-
-void far* AllocateLargestFarFreeBlock(size_t far* Size)
-{
- size_t s0, s1;
- void far* p;
-
- s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);
- while (s0 && (p = _fmalloc(s0)) == NULL)
- s0 >>= 1;
-
- if (p)
- _ffree(p);
-
- s1 = s0 >> 1;
- while (s1)
- {
- if ((p = _fmalloc(s0 + s1)) != NULL)
- {
- s0 += s1;
- _ffree(p);
- }
- s1 >>= 1;
- }
- while (s0 && (p = _fmalloc(s0)) == NULL)
- s0 ^= s0 & -s0;
-
- *Size = s0;
- return p;
-}
-
-size_t GetFarFreeSize(void)
-{
- size_t total = 0;
- void far* pFirst = NULL;
- void far* pLast = NULL;
- for(;;)
- {
- size_t largest;
- void far* p = AllocateLargestFarFreeBlock(&largest);
- if (largest < sizeof(void far*))
- {
- if (p != NULL)
- _ffree(p);
- break;
- }
- *(void far* far*)p = NULL;
- total += largest;
- if (pFirst == NULL)
- pFirst = p;
-
- if (pLast != NULL)
- *(void far* far*)pLast = p;
- pLast = p;
- }
-
- while (pFirst != NULL)
- {
- void far* p = *(void far* far*)pFirst;
- _ffree(pFirst);
- pFirst = p;
- }
- return total;
-}
-
-//near versions
-void __near* AllocateLargestNearFreeBlock(size_t* Size)
-{
- size_t s0, s1;
- void __near* p;
-
- s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);
- while (s0 && (p = _nmalloc(s0)) == NULL)
- s0 >>= 1;
-
- if (p)
- _nfree(p);
-
- s1 = s0 >> 1;
- while (s1)
- {
- if ((p = _nmalloc(s0 + s1)) != NULL)
- {
- s0 += s1;
- _nfree(p);
- }
- s1 >>= 1;
- }
- while (s0 && (p = _nmalloc(s0)) == NULL)
- s0 ^= s0 & -s0;
-
- *Size = s0;
- return p;
-}
-
-size_t GetNearFreeSize(void)
-{
- size_t total = 0;
- void __near* pFirst = NULL;
- void __near* pLast = NULL;
- for(;;)
- {
- size_t largest;
- void __near* p = AllocateLargestNearFreeBlock(&largest);
- if (largest < sizeof(void __near*))
- {
- if (p != NULL)
- _nfree(p);
- break;
- }
- *(void __near* __near*)p = NULL;
- total += largest;
- if (pFirst == NULL)
- pFirst = p;
-
- if (pLast != NULL)
- *(void __near* __near*)pLast = p;
- pLast = p;
- }
-
- while (pFirst != NULL)
- {
- void __near* p = *(void __near* __near*)pFirst;
- _nfree(pFirst);
- pFirst = p;
- }
- return total;
-}
-
-long int
+long int
filesize(FILE *fp)
{
long int save_pos, size_of_file;
@@ -248,8 +32,18 @@ filesize(FILE *fp)
size_of_file = ftell(fp);
fseek(fp, save_pos, SEEK_SET);
return(size_of_file);
-}
-
+}
+
+void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free)
+{
+ byte str[64];
+ strcat(strc,pee); strcat(strc," "); ultoa((dword)h_total,str,10); strcat(strc,str);
+ if(strlen(str)<=4) strcat(strc," "); //printf("%u\n", strlen(str));
+ strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); strcat(strc," ");
+ ultoa((dword)h_free,str,10); strcat(strc,str);
+ strcat(strc,"\n");
+}
+
///////////////////////////////////////////////////////////////////////////
//
// US_CheckParm() - checks to see if a string matches one of a set of
@@ -283,8 +77,10 @@ US_CheckParm(char *parm,char **strings)
}
}
return(-1);
-}
-
+}
+#ifdef __BORLANDC__
+//===========================================================================
+
/*
==========================
=
@@ -293,57 +89,81 @@ US_CheckParm(char *parm,char **strings)
==========================
*/
-/*void Quit(char *error, ...)
+void Quit (char *error)
{
- short exit_code=0;
- unsigned finscreen;
+ unsigned finscreen;
+ memptr screen;
+ union REGS in, out;
- va_list ap;
-
- va_start(ap,error);
-
-#ifndef CATALOG
- if (!error)
+ //ClearMemory ();
+ if (!*error)
{
- CA_SetAllPurge ();
- CA_CacheGrChunk (PIRACY);
- finscreen = (unsigned)grsegs[PIRACY];
+ //WriteConfig ();
+ }
+ else
+ {
+ //CA_CacheGrChunk (ERRORSCREEN);
+ //screen = grsegs[ERRORSCREEN];
}
-#endif
//ShutdownId ();
+ //IN_Shutdown();
+ //modexLeave();
+ in.h.ah = 0x00;
+ in.h.al = 0x3;
+ int86(0x10, &in, &out);
if (error && *error)
{
- vprintf(error,ap);
- exit_code = 1;
+ //movedata ((unsigned)screen,7,0xb800,0,7*160);
+ //gotoxy (10,4);
+ printf("\n");
+ puts(error);
+ printf("\n");
+ //gotoxy (1,8);
+ exit(1);
}
-#ifndef CATALOG
else
- if (!NoWait)
+ if (!error || !(*error))
{
- movedata (finscreen,0,0xb800,0,4000);
- bioskey (0);
+ //clrscr();
+ //#ifndef JAPAN
+ movedata ((unsigned)screen,7,0xb800,0,4000);
+ //gotoxy(1,24);
+ //#endif
+//asm mov bh,0
+//asm mov dh,23 // row
+//asm mov dl,0 // collumn
+//asm mov ah,2
+//asm int 0x10
}
-#endif
- va_end(ap);
+ exit(0);
+}
-#ifndef CATALOG
- if (!error)
- {
- _argc = 2;
- _argv[1] = "LAST.SHL";
- _argv[2] = "ENDSCN.SCN";
- _argv[3] = NULL;
- if (execv("LOADSCN.EXE", _argv) == -1)
- {
- clrscr();
- puts("Couldn't find executable LOADSCN.EXE.\n");
- exit(1);
- }
- }
+//===========================================================================
#endif
- exit(exit_code);
-}*/
+byte dirchar(byte in)
+{
+ byte out;
+ switch(in)
+ {
+ case 0: //up
+ out = 0x1E;
+ break;
+ case 4: //down
+ out = 0x1F;
+ break;
+ case 1: //left
+ out = 0x11;
+ break;
+ case 3: //right
+ out = 0x10;
+ break;
+ default: //null
+ out = 0xB3;
+ break;
+ }
+ return out;
+}