From 7546211d6de190a33b63eca728777c8b79d00550 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Thu, 12 Jul 2018 13:35:02 -0500 Subject: [PATCH] eh i am too tired to experiment with this wwww --- 16/fd-dbg.c | 77 --------------------------- makefile | 3 ++ src/fd-dbg.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 77 deletions(-) delete mode 100755 16/fd-dbg.c create mode 100755 src/fd-dbg.c diff --git a/16/fd-dbg.c b/16/fd-dbg.c deleted file mode 100755 index a4d80201..00000000 --- a/16/fd-dbg.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Defines the functions only necessary while debugging is active - */ - -#include "config.h" - -#ifdef DEBUG - -#include -#include -#include -#include -#include - -#include "command.h" - -FILE *dbg_logfile = stdout; -char *dbg_logname = 0; -unsigned firstMem = 0; - -void dbg_print(const char * const fmt, ...) -{ va_list ap; - - va_start(ap, fmt); - vfprintf(dbg_logfile, fmt, ap); - va_end(ap); - fflush(dbg_logfile); -} - -void dbg_outc(int ch) -{ putc(ch, dbg_logfile); -} -void dbg_outs(const char * const s) -{ if(s) fputs(s, dbg_logfile); - fflush(dbg_logfile); -} -void dbg_outsn(const char * const s) -{ if(s) fputs(s, dbg_logfile); - putc('\n', dbg_logfile); - fflush(dbg_logfile); -} - - -void dbg_printmem(void) -{ static unsigned nearLast = 0; - static unsigned long farLast = 0; - - unsigned nearThis; - unsigned long farThis; - - switch(heapcheck()) { - case _HEAPCORRUPT: - cputs("HEAP CORRUPTED. Cannot proceed!\r\n"); - abort(); - case _HEAPEMPTY: - cputs("NO HEAP. Cannot proceed!\r\n"); - abort(); - default: - cputs("Unknown heapcheck() error. Cannot proceed!\r\n"); - abort(); - case _HEAPOK: - break; - } - - nearThis = coreleft(); - farThis = farcoreleft(); - - dprintf(("[free memory: near=%6u far=%13lu]\n", nearThis, farThis)); - if(nearLast) - dprintf(("[changed : near=%6d far=%13ld]\n" - , nearThis - nearLast , farThis - farLast)); - - nearLast = nearThis; - farLast = farThis; -} - -#endif /* defined(DEBUG) */ diff --git a/makefile b/makefile index a478c66d..49420404 100755 --- a/makefile +++ b/makefile @@ -229,6 +229,7 @@ UTILEXEC = & palbomb.exe & palettec.exe & ps.exe +# fd-dbg.exe !ifdef __LINUX__ SPRIUTILEXEC = & pcx2vrl & @@ -312,6 +313,7 @@ exmmtest.exe: exmmtest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB) vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB) $(DOSLIB) gfx.lib db.exe: db.$(OBJ) ps.exe: ps.$(OBJ) 16_head.$(OBJ) +fd-dbg.exe: fd-dbg.$(OBJ) 16_head.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) wcpu.exe: wcpu.$(OBJ) $(16LIB) $(DOSLIB) # @@ -353,6 +355,7 @@ exmmtest.$(OBJ):$(SRC)/exmmtest.c vgmtest.$(OBJ):$(SRC)/vgmtest.c db.$(OBJ): $(UTIL)/db.c ps.$(OBJ): $(SRC)/ps.c +fd-dbg.$(OBJ): $(SRC)/fd-dbg.c # # non executable objects libraries diff --git a/src/fd-dbg.c b/src/fd-dbg.c new file mode 100755 index 00000000..61dedbbd --- /dev/null +++ b/src/fd-dbg.c @@ -0,0 +1,147 @@ +/* $Id: dbg_mem.c 1807 2018-04-17 02:47:19Z bartoldeman $ + + * Defines the functions only necessary while debugging is active + + This file bases on DEBUG.C of FreeCOM v0.81 beta 1. + + $Log$ + Revision 1.5 2006/09/11 00:07:22 blairdude + Fixed compilation completely with Turbo C + + Revision 1.4 2004/02/01 13:52:17 skaus + add/upd: CVS $id$ keywords to/of files + + Revision 1.3 2001/06/11 20:45:38 skaus + fix: dbg_printmem() #if must be #ifdef + + Revision 1.2 2001/06/11 20:33:37 skaus + fix: dbg_printmem() if compiled in Large memory model, near is invalid + + Revision 1.1 2001/04/12 00:33:53 skaus + chg: new structure + chg: If DEBUG enabled, no available commands are displayed on startup + fix: PTCHSIZE also patches min extra size to force to have this amount + of memory available on start + bugfix: CALL doesn't reset options + add: PTCHSIZE to patch heap size + add: VSPAWN, /SWAP switch, .SWP resource handling + bugfix: COMMAND.COM A:\ + bugfix: CALL: if swapOnExec == ERROR, no change of swapOnExec allowed + add: command MEMORY + bugfix: runExtension(): destroys command[-2] + add: clean.bat + add: localized CRITER strings + chg: use LNG files for hard-coded strings (hangForEver(), init.c) + via STRINGS.LIB + add: DEL.C, COPY.C, CBREAK.C: STRINGS-based prompts + add: fixstrs.c: prompts & symbolic keys + add: fixstrs.c: backslash escape sequences + add: version IDs to DEFAULT.LNG and validation to FIXSTRS.C + chg: splitted code apart into LIB\*.c and CMD\*.c + bugfix: IF is now using error system & STRINGS to report errors + add: CALL: /N + + */ + +//#include "../config.h" +#include "src/lib/16_hc.h" + +//#ifdef DEBUG + +#include /* cputs */ +#ifdef __WATCOMC__ +#include /* _heapchk */ +#else +#include /* heapcheck, coreleft, farcoreleft */ +#endif +#include /* abort */ + +#if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__) +#define DISP_NEAR +#endif + +void dbg_printmem (void) { +#ifdef DISP_NEAR + static unsigned nearLast = 0; +#endif + static unsigned long farLast = 0; + +#ifdef DISP_NEAR + unsigned nearThis; +#endif +// unsigned long farThis; + unsigned int farThis; + +#if __TURBOC__ > 0x201 || defined(__WATCOMC__) +#ifdef __WATCOMC__ + switch(_heapchk()) +#else + switch(heapcheck()) +#endif + { +#ifdef __WATCOMC__ + case _HEAPBADBEGIN: + case _HEAPBADNODE: + case _HEAPEND: + case _HEAPBADPTR: +#else + case _HEAPCORRUPT: +#endif + cputs("HEAP CORRUPTED. Cannot proceed!\r\n"); + abort(); + case _HEAPEMPTY: +// cputs("NO HEAP. Cannot proceed!\r\n"); +// abort(); + break; + default: + cputs("Unknown heapcheck() error. Cannot proceed!\r\n"); + abort(); + case _HEAPOK: + break; + } +#endif + +#ifdef __WATCOMC__ +#ifdef DISP_NEAR + nearThis = _memavl(); +#endif + _dos_allocmem(0xffff, &farThis); + farThis <<= 4; +#else +#ifdef DISP_NEAR + nearThis = coreleft(); +#endif + farThis = farcoreleft(); +#endif + +#ifdef DISP_NEAR +// dprintf(("[free memory: near=%6u far=%13lu]\n", nearThis, farThis)); + printf("[free memory: near=%6u far=%13lu]\n", nearThis, farThis); + if(nearLast) +// dprintf(("[changed : near=%6d far=%13ld]\n" , nearThis - nearLast , farThis - farLast)); + printf("[changed : near=%6d far=%13ld]\n" , nearThis - nearLast , farThis - farLast); +#else +// dprintf(("[free memory: far=%13lu]\n", farThis)); + printf("[free memory: far=%13lu]\n", (unsigned long)farThis); + if(farLast) +// dprintf(("[changed : far=%13ld]\n", farThis - farLast)); + printf("[changed : far=%13d]\n", (farThis - farLast)); +#endif + printf("farcoreleft()=%lu\n", farcoreleft()); + printf("HC_farcoreleft()=%lu\n", HC_farcoreleft()); + +#ifdef DISP_NEAR + nearLast = nearThis; +#endif + farLast = farThis; +} + +void main() +{ +// static global_game_variables_t gvar; + int pee; pee=1; + dbg_printmem (); +// dbg_printmem (); +} + +//#endif /* DEBUG */ -- 2.39.2