X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_head.c;h=30e4444f246a1fc6531692e4021ceb2ee1bad1d2;hb=5965823c934f177a5ef1cd30ae9ee5dda2a95154;hp=df0b31c7bdc7c1a061eb1736799dba9ae578bf43;hpb=3b3f3b4bc62245426ea4dec22cbfaa7cfbf13645;p=16.git diff --git a/src/lib/16_head.c b/src/lib/16_head.c old mode 100644 new mode 100755 index df0b31c7..30e4444f --- a/src/lib/16_head.c +++ b/src/lib/16_head.c @@ -1,27 +1,27 @@ -/* 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" - +/* 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. + * + */ + +#include "src/lib/16_head.h" + /* Function: Wait ********************************************************** * * Parameters: wait - time in microseconds @@ -36,9 +36,9 @@ void wait(clock_t wait){ goal = wait + clock(); while((goal > clock()) && !kbhit()) ; -} /* End of wait */ - -long int +} /* End of wait */ + +long int filesize(FILE *fp) { long int save_pos, size_of_file; @@ -48,63 +48,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); strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_free,str,10); strcat(strc,str); - strcat(strc,"\n"); -} - -void print_normal_entry(char *text, dword total, dword used, dword free, byte *str) -{ - printf("%-17s", text); - convert("%8sB ", total); - convert("%9sB ", used); - convert("%9sB\n", free); -} - -/* - * As for printf(), but format may only contain a single format specifier, - * which must be "%s" and is replaced with the string form of num with commas - * separating groups of three digits. - * - * e.g. convert("%s bytes", 1234567) -> "1,234,567 bytes" - */ -void convert(const char *format, dword num) -{ - int c, i, j, n; - char des[4*sizeof(dword)+3]; - union REGS regs; - struct SREGS sregs; - char mycountry[48]; /* probably 34 bytes are enough... */ - char ksep = ','; /* or . */ - - regs.x.ax = 0x3800; - sregs.ds = FP_SEG(&mycountry); - regs.x.dx = FP_OFF(&mycountry); - intdosx(®s,®s,&sregs); - if (regs.x.cflag == 0) { - ksep = mycountry[7]; /* 1000's separator */ - /* dsep = mycountry[9]; ** decimal separator */ - } - - n = sprintf(des, "%lu", num); - /* insert commas in the string */ - c = 3; - for (i = n - 3; i > 0; i--) { - if (c%3==0) { - for (j = n; j >= i; j--) - des[j+1] = des[j]; - des[i]=ksep; /* ',' */ - n++; - } - c++; - } - printf(format, des); -} - +} + +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 @@ -138,8 +93,10 @@ US_CheckParm(char *parm,char **strings) } } return(-1); -} - +} +#ifdef __BORLANDC__ +//=========================================================================== + /* ========================== = @@ -148,57 +105,79 @@ US_CheckParm(char *parm,char **strings) ========================== */ -/*void Quit(char *error, ...) +void Quit (char *error) { - short exit_code=0; - unsigned finscreen; - - va_list ap; - - va_start(ap,error); + unsigned finscreen; + memptr screen; + union REGS in, out; -#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); + puts(error); + //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; +}