From f3bbcfd3ec2b32ef11103e99445f7f0ed8ab45f1 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 2 Jun 2015 13:14:22 -0500 Subject: [PATCH] reading huge map files.... modified: makefile new file: maptest0.exe new file: maptest0.out modified: src/lib/mapread.h new file: src/maptest0.c --- makefile | 11 ++++++++--- maptest0.exe | Bin 0 -> 68488 bytes maptest0.out | 0 src/lib/mapread.h | 8 ++++---- src/maptest0.c | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 maptest0.exe create mode 100644 maptest0.out create mode 100644 src/maptest0.c diff --git a/makefile b/makefile index 2eae139f..1b142a0f 100644 --- a/makefile +++ b/makefile @@ -11,7 +11,7 @@ SRC=src$(DIRSEP) SRCLIB=$(SRC)lib$(DIRSEP) JSMNLIB=$(SRCLIB)jsmn$(DIRSEP) -all: test.exe pcxtest.exe test2.exe scroll.exe maptest.exe +all: test.exe pcxtest.exe test2.exe scroll.exe maptest.exe maptest0.exe scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj mapread.obj jsmn.obj lib_head.obj wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj mapread.obj jsmn.obj lib_head.obj# 16/lib/x/modex.lib @@ -28,7 +28,9 @@ pcxtest.exe: pcxtest.obj modex16.obj bitmap.obj lib_head.obj maptest.exe: maptest.obj mapread.obj jsmn.obj modex16.obj bitmap.obj lib_head.obj wcl $(FLAGS) maptest.obj mapread.obj jsmn.obj modex16.obj bitmap.obj lib_head.obj - + +maptest0.exe: maptest0.obj mapread.obj jsmn.obj modex16.obj bitmap.obj lib_head.obj + wcl $(FLAGS) maptest0.obj mapread.obj jsmn.obj modex16.obj bitmap.obj lib_head.obj test.obj: $(SRC)test.c $(SRCLIB)modex16.h wcl $(FLAGS) -c $(SRC)test.c @@ -40,7 +42,10 @@ pcxtest.obj: $(SRC)pcxtest.c $(SRCLIB)modex16.h wcl $(FLAGS) -c $(SRC)pcxtest.c maptest.obj: $(SRC)maptest.c $(SRCLIB)modex16.h - wcl $(FLAGS) -c $(SRC)maptest.c + wcl $(FLAGS) -c $(SRC)maptest.c + +maptest0.obj: $(SRC)maptest0.c $(SRCLIB)modex16.h + wcl $(FLAGS) -c $(SRC)maptest0.c modex16.obj: $(SRCLIB)modex16.h $(SRCLIB)modex16.c diff --git a/maptest0.exe b/maptest0.exe new file mode 100644 index 0000000000000000000000000000000000000000..2fc0e966427e517c6a87514f4be476976d73c564 GIT binary patch literal 68488 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 Rc$F49k$coUM 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 literal 0 HcmV?d00001 diff --git a/maptest0.out b/maptest0.out new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/mapread.h b/src/lib/mapread.h index fbc8e213..58769d5d 100644 --- a/src/lib/mapread.h +++ b/src/lib/mapread.h @@ -10,10 +10,10 @@ #include "src/lib/modex16.h" #include "src/lib/lib_head.h" -//#define DEBUG_MAPDATA -//#define DEBUG_MAPVAR -//#define DEBUG_DUMPVARS -//#define DEBUG_JS +#define DEBUG_MAPDATA +#define DEBUG_MAPVAR +#define DEBUG_DUMPVARS +#define DEBUG_JS typedef struct { bitmap_t *data; diff --git a/src/maptest0.c b/src/maptest0.c new file mode 100644 index 00000000..244f16bc --- /dev/null +++ b/src/maptest0.c @@ -0,0 +1,38 @@ +#include +#include "src/lib/mapread.h" + +#define DUMP +#define DUMP_MAP + +void +main(int argc, char *argv[]) +{ + map_t map; + short i; + char *fmt = "Memory available = %u\n"; + char *fmt0 = "Largest Contiguous Block of Memory available = %u\n"; + fprintf(stderr, fmt, _memavl()); + fprintf(stderr, fmt0, _memmax()); + while(!kbhit()); + fprintf(stderr, "loading~\n"); + loadmap("data/tes0.map", &map); + fprintf(stderr, "okies~\n"); + #ifdef DUMP + fprintf(stdout, "map.width= %d\n", map.width); + fprintf(stdout, "map.height= %d\n", map.height); + #ifdef DUMP_MAP + for(i=0; i<(map.width*map.height); i++) + { + fprintf(stdout, "%04d[%02d]", i, map.data[i]); + if(i && !(i%map.width)) fprintf(stdout, "\n"); + } + fprintf(stdout, "\n"); + #endif + fprintf(stdout, "&map==%Fp\n", &map); + fprintf(stdout, "&map.tiles==%Fp\n", map.tiles); + fprintf(stdout, "&map.width==%Fp\n", map.width); + fprintf(stdout, "&map.height==%Fp\n", map.height); + fprintf(stdout, "&map.data==%Fp\n", map.data); + #endif + fprintf(stdout, "okies~\n"); +} -- 2.39.5