]> 4ch.mooo.com Git - 16.git/commitdiff
eh...
authorsparky4 <sparky4@cock.li>
Fri, 6 Nov 2015 00:25:08 +0000 (18:25 -0600)
committersparky4 <sparky4@cock.li>
Fri, 6 Nov 2015 00:25:08 +0000 (18:25 -0600)
25 files changed:
16.exe
bakapi.exe
exmmtest.exe
fmemtest.exe
fontgfx.exe
fonttest.exe
inputest.exe
makefile
maptest.exe
palettec.exe
palettel.exe
pcxtest.exe
pcxtest2.exe
planrpcx.exe
scroll.exe
src/lib/bitmap.c
src/lib/modex16.h
src/lib/modex16/16planar.c
src/lib/planar.c
src/lib/planar.h
src/lib/typdefst.h
src/planrpcx.c
test.exe
test2.exe
vgmtest.exe

diff --git a/16.exe b/16.exe
index 34b67ab5115a57c78532c34d50d6be6b45323cab..77b1a430e2c30a621199907fdb83a20692c12f21 100755 (executable)
Binary files a/16.exe and b/16.exe differ
index 0c3cdab9c74b93587d483a889e139232eefa65cc..ac161f8cde544a7ee70a35ca5300405ff76e2f20 100755 (executable)
Binary files a/bakapi.exe and b/bakapi.exe differ
index abc812441f39a4ef2afd57276b0fe1b3756ececd..a5b7a5f28ea1b888e9512c3ba2447b0b0a3fbbe0 100755 (executable)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index 0129d45304ddd29830eaae2c64379f3ac1438efd..f9f137f9203adad4390d0207273584bbe151140e 100755 (executable)
Binary files a/fmemtest.exe and b/fmemtest.exe differ
index 4efeb74bdee773de2119a3315267e7cc04d659c6..0059951a0599026230e3cd14d5278c9cee6c4b41 100755 (executable)
Binary files a/fontgfx.exe and b/fontgfx.exe differ
index cc97491cd8d9539db147fa35004b784ef5dcf6bc..1cb340c7ed7ad44699add41d1cd88af98bea1ec0 100755 (executable)
Binary files a/fonttest.exe and b/fonttest.exe differ
index 64acc51933229b4d300612f0ed1e3823c2b334da..ee9f5ae134827bfd37b97cf59c2c96aca8045ae3 100755 (executable)
Binary files a/inputest.exe and b/inputest.exe differ
index 7135b96588b79e3d3f2a2eee1e52d32f2737694b..cf7ce427cbf09be8085936da0fe616c2d5551097 100755 (executable)
--- a/makefile
+++ b/makefile
@@ -59,7 +59,7 @@ WCPULIB=$(SRCLIB)wcpu$(DIRSEP)
 
 16FLAGS=-fh=16.hed
 BAKAPIFLAGS=-fh=bakapi.hed
-SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k56000#60000#32768
+SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k56832#60000#32768
 DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS)
 ZFLAGS=-zk0 -zq -zc -zp8# -zm
 CFLAGS=$(IFLAGS) -mh -lr -l=dos -wo# -d2##wwww
@@ -72,7 +72,7 @@ DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
 16LIBOBJS = 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) timer.$(OBJ)
 #
 #3812intf.$(OBJ)
-GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) planar.$(OBJ) 16planar.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ)
+GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) planar.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) 16planar.$(OBJ)
 
 TESTEXEC = exmmtest.exe test.exe pcxtest.exe pcxtest2.exe test2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe scroll.exe vgmtest.exe inputest.exe palettel.exe planrpcx.exe
 # tsthimem.exe
index 9908b0be0d9e3d3d91a58b4a9efd0b490503e9c2..52f66585bcd561d1d29ab7bfcbb0bde6ea9e1d18 100755 (executable)
Binary files a/maptest.exe and b/maptest.exe differ
index 2363132c26ae5ed888559e9cbe35e0314308f191..d404ae15a59c4e1933799e3caaee502b7b3008d3 100755 (executable)
Binary files a/palettec.exe and b/palettec.exe differ
index 1885f3911e6f5c047b79cc5129d86980e1b8a837..6d6640061a6d4b8ab20577280dbb606d2dfdcca4 100755 (executable)
Binary files a/palettel.exe and b/palettel.exe differ
index 5a3991f11ded0e3e994cb3c9c7bccc3e380df11e..9bbd7e12c6e3299be1ad4a5b1da0a6d823df48cc 100755 (executable)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index d704d6fc12f4b8759b7a99f25dc2b5b0c9c986f4..b1c39e3115e6ec88c87942154b598588856d7d87 100755 (executable)
Binary files a/pcxtest2.exe and b/pcxtest2.exe differ
index c39db0bb72ec8d1d5bfeac6b1d3b4c9309c24f9f..1bb9b57edf429084641c7dc44173696c8f914338 100755 (executable)
Binary files a/planrpcx.exe and b/planrpcx.exe differ
index 1d2ed371eb8e97fd1c9617d678cc436090eecd2f..2870d11f1f265190aff5858aa995bf20683b98e5 100755 (executable)
Binary files a/scroll.exe and b/scroll.exe differ
index ae750383b6ce54716648e47c27a4d763ce2c4f2a..4f25bbd42d2454b1dd16033d6b486cee52fb3b9a 100755 (executable)
 #include <malloc.h>\r
 #include "src/lib/bitmap.h"\r
 \r
-#ifndef PCXHEADER_H\r
-#define PCXHEADER_H\r
-static struct pcxHeader {\r
-       byte id;\r
-       byte version;\r
-       byte encoding;\r
-       byte bpp;\r
-       word xmin;\r
-       word ymin;\r
-       word xmax;\r
-       word ymax;\r
-       word hres;\r
-       word vres;\r
-       byte pal16[48];\r
-       byte res1;\r
-       word bpplane;\r
-       word palType;\r
-       word hScreenSize;\r
-       word vScreenSize;\r
-       byte padding[54];\r
-} head;\r
-#endif /*PCXHEADER_H*/\r
-\r
 static void loadPcxStage1(FILE *file, bitmap_t *result) {\r
        long bufSize;\r
        int index;\r
@@ -149,6 +126,7 @@ bitmapLoadPcx(char *filename) {
                result.data[index] = val;\r
        }\r
        } while(index < bufSize);\r
+       printf("index=%d\n", index);\r
 \r
        loadPcxPalette(file, &result);\r
 \r
index b5ca74b1714c3c546e27dafbb2f145e323ee2900..f4a07ad40d69021e98c27a05bda9e91510ed803e 100755 (executable)
@@ -26,7 +26,6 @@
 #define MODEX16_H
 //#include <conio.h>
 
-#include "src/lib/types.h"
 #include "src/lib/16_head.h"
 #include "src/lib/bitmap.h"
 #include "src/lib/planar.h"
 #include "src/lib/modex16/192x144_.h"
 #include "src/lib/modex16/160x120.h"
 
+static struct pcxHeader {
+       byte id;
+       byte version;
+       byte encoding;
+       byte bpp;
+       word xmin;
+       word ymin;
+       word xmax;
+       word ymax;
+       word hres;
+       word vres;
+       byte pal16[48];
+       byte res1;
+       word bpplane;
+       word palType;
+       word hScreenSize;
+       word vScreenSize;
+       byte padding[54];
+} head;
+
 //320x240 = 20x15
 //192x144 = 12x9
 
index 4c5c2578b0b3bf53966bab7a1724ff18c5ee897d..833db3f888cbb3716cebf0016e6a819726e63f14 100755 (executable)
 #include <malloc.h>\r
 #include "src/lib/modex16/16planar.h"\r
 \r
-#ifndef PCXHEADER_H\r
-#define PCXHEADER_H\r
-static struct pcxHeader {\r
-       byte id;\r
-       byte version;\r
-       byte encoding;\r
-       byte bpp;\r
-       word xmin;\r
-       word ymin;\r
-       word xmax;\r
-       word ymax;\r
-       word hres;\r
-       word vres;\r
-       byte pal16[48];\r
-       byte res1;\r
-       word bpplane;\r
-       word palType;\r
-       word hScreenSize;\r
-       word vScreenSize;\r
-       byte padding[54];\r
-} head;\r
-#endif /*PCXHEADER_H*/\r
+/*\r
+ *============================================================================\r
+ */\r
 \r
 static void loadPcxpbufStage1(FILE *file, planar_buf_t *result) {\r
        int index;\r
        byte count, val;\r
        long int pos;\r
 \r
+//word w=0;\r
+//fprintf(stderr, "\nplanarLoadPcx: ");\r
+//fprintf(stderr, "%u ", w++);\r
        /* read the header */\r
        fread(&head, sizeof(char), sizeof(struct pcxHeader), file);\r
-\r
+//fprintf(stderr, "%u ", w++);\r
        /* get the width and height */\r
        result->width = head.xmax - head.xmin + 1;\r
        result->height = head.ymax - head.ymin + 1;\r
-\r
+       result->pwidth = result->width / 4 + (result->width%4 ? 1 : 0);\r
+//fprintf(stderr, "%u ", w++);\r
        /* make sure this  is 8bpp */\r
        if(head.bpp != 8) {\r
                fprintf(stderr, "I only know how to handle 8bpp pcx files!\n");\r
                fclose(file);\r
-               //exit(-2);\r
+               exit(-2);\r
        }\r
 }\r
 \r
@@ -90,37 +75,92 @@ static void loadPcxpbufPalette(FILE *file, planar_buf_t *result) {
        }\r
 }\r
 \r
+/* allocates a planar buffer with specified dimensions */\r
+planar_buf_t\r
+pbuf_alloc(word width, word height) {\r
+       planar_buf_t p;\r
+       int i;\r
+\r
+       /* allocate the structure and populate sizes */\r
+       //p=malloc(sizeof(planar_buf_t));\r
+       p.width  = width;\r
+       p.height = height;\r
+       p.pwidth = width / 4 + (width%4 ? 1 : 0);\r
+       //p.pwidth = width / 4 + (width%4 ? 1 : 0);\r
+\r
+       /* allocate the planes */\r
+       for(i=0; i<4; i++) {\r
+       p.plane[i] = _fmalloc(p.height * p.pwidth);\r
+       }\r
+\r
+       return p;\r
+}\r
+\r
+/* allocates a planar buffer with specified dimensions */\r
+void\r
+pbuf_alloc0(planar_buf_t *p, word width, word height) {\r
+       int i;\r
+\r
+       /* allocate the structure and populate sizes */\r
+       //p=malloc(sizeof(planar_buf_t));\r
+       p->width  = width;\r
+       p->height = height;\r
+       p->pwidth = width / 4 + (width%4 ? 1 : 0);\r
+       //p.pwidth = width / 4 + (width%4 ? 1 : 0);\r
+\r
+       /* allocate the planes */\r
+       for(i=0; i<4; i++) {\r
+       p->plane[i] = _fmalloc(p->height * p->pwidth);\r
+       }\r
+}\r
+\r
 /*     sparky4's functions~    */\r
 planar_buf_t planarLoadPcx(char *filename)\r
 {\r
        FILE *file;\r
        planar_buf_t result;\r
        dword bufSize;\r
-       int index, plane, x, y;\r
+       int index[4], plane;\r
        byte count, val;\r
-       word q;\r
 \r
+word w=0;\r
+fprintf(stderr, "\nplanarLoadPcx: ");\r
+fprintf(stderr, "%u ", w++);\r
        /* open the PCX file for reading */\r
        file = fopen(filename, "rb");\r
+//fprintf(stderr, "%u ", w++);\r
        if(!file) {\r
                fprintf(stderr, "Could not open %s for reading.\n", filename);\r
-               //exit(-2);\r
+               exit(-2);\r
        }\r
-\r
+//fprintf(stderr, "%u ", w++);\r
        /* load the first part of the pcx file */\r
        loadPcxpbufStage1(file, &result);\r
-\r
+//fprintf(stderr, "%u ", w++);\r
        /* allocate the buffer */\r
        bufSize = (/*(dword)*/result.width * result.height);\r
-       //result = pbuf_alloc(result.width, result.height);\r
-       if(!result.plane[0]) {\r
+       result = pbuf_alloc(result.width, result.height);\r
+       //pbuf_alloc0(&result, result.width, result.height);\r
+//fprintf(stderr, "%u ", w++);\r
+       printf("&bufSize=%p\n", &bufSize);\r
+       printf("&result.data=%p\n", result.plane);\r
+       printf("Size of block is %zu bytes\n", _msize(result.plane));\r
+       printf("Size of bufSize is %zu bytes\n", bufSize);\r
+       printf("Size of result.width is %zu \n", result.width);\r
+       printf("Size of result.height is %zu \n", result.height);\r
+       printf("Dimensions of result is %lu\n", (dword)result.width*result.height);\r
+       //exit(0);\r
+       if(!result.plane) {\r
                fprintf(stderr, "Could not allocate memory for bitmap data.");\r
                fclose(file);\r
-               //exit(-1);\r
+               exit(-1);\r
        }\r
-\r
+fprintf(stderr, "read the buffer? %u ", w++);\r
+getch();\r
        /*  read the buffer in */\r
-       index = 0;\r
+       index[0] = 0,index[1]=0,index[2]=0,index[3]=0;\r
+       /* start on the first plane */\r
+       plane=0;\r
        do {\r
        /* get the run length and the value */\r
        count = fgetc(file);\r
@@ -132,21 +172,28 @@ planar_buf_t planarLoadPcx(char *filename)
                count = 1;\r
        }\r
 \r
-       // start on the first plane\r
-       plane=0;\r
        /* write the pixel the specified number of times */\r
-       for(; count && index < bufSize; count--,index++)  {\r
+//fprintf(stderr, "\nputting in memory~ %u\n", w++);\r
+//if(index>=49152) getch();\r
+       for(; count && (index[0]+index[1]+index[2]+index[3]) < bufSize; count--,index[plane]++)  {\r
+//fprintf(stderr, "count=%d    index=%d        plane=%d\n", count, index, plane);\r
                switch (plane)\r
                {\r
                        case 4:\r
                                plane=0;\r
                        break;\r
+                       case 0:\r
+                       case 1:\r
+                       case 2:\r
+                               plane++;\r
+                       break;\r
                }\r
+               //fprintf(stderr, "%d ", result.plane[plane][(index[0]+index[1]+index[2]+index[3])]);\r
                // copy to each plane\r
-               result.plane[plane++][index]=val;\r
+               result.plane[plane++][index[plane]]=val;\r
        }\r
-       } while(index < bufSize);\r
-\r
+       } while((index[0]+index[1]+index[2]+index[3]) < bufSize);\r
+       getch();\r
        //++++loadPcxpbufPalette(file, &result);\r
        fclose(file);\r
        return result;\r
index 38e4eb7bb53d8f8d741ff1dc23196c10aa2c0b6a..c15c39c5d3e92d9106970d984233861a891ed890 100755 (executable)
@@ -87,7 +87,7 @@ planar_buf_alloc(word width, word height) {
 \r
        /* allocate the planes */\r
        for(i=0; i<4; i++) {\r
-       p->plane[i] = malloc(p->height * p->pwidth);\r
+               p->plane[i] = malloc(p->height * p->pwidth);\r
        }\r
 \r
        return p;\r
index 821f476305bb420147514d072bbbfffe47fb6460..c4b67307d801c8b7b1b9fd510a3c3206346e8a36 100755 (executable)
@@ -28,8 +28,6 @@
 
 #include "src/lib/modex16.h"
 
-extern byte *modexNewPal();
-
 /* creates a planar buffer from the bitmap data.
    The planar buffer is dynamically allocated, and should
    be destroyed with the planar_buf_free function when no longer
@@ -43,5 +41,4 @@ planar_buf_t huge *planar_buf_alloc(word width, word height);
 /* deallocates a planar buffer */
 void planar_buf_free(planar_buf_t *p);
 
-
 #endif
index 2e1cd4883a74617ae1afbde2a0e3a37d0e9e52d8..9f4936b96cc951548f0da81797c5bc17acb61262 100755 (executable)
@@ -56,7 +56,7 @@ typedef struct {
 } tileset_t;\r
 \r
 typedef struct {\r
-       byte huge *plane[4];     /* 4 planes of image data */\r
+       byte far *plane[4];     /* 4 planes of image data */\r
        word width;         /* width of the image (spread across 4 planes) */\r
        word height;        /* height of the image (spread across 4 planes) */\r
        word pwidth;        /* the number of bytes in each plane */\r
index 11d8d5dd5eb8cccf1a709c4b908aa4418a73427e..92113cc7bdd6f1816f50f91ef6f75d62ac42425d 100755 (executable)
 #include "src/lib/modex16.h"\r
 \r
 global_game_variables_t gvar;\r
-planar_buf_t huge p, ptmp;\r
+planar_buf_t p, ptmp;\r
+int i;\r
+word start;//, w;\r
+int plane;\r
+float t1, t2, tpee;\r
+int x,y;\r
+word px,py;\r
+sword baka;\r
+char *bakapeee;\r
 \r
 void main(int argc, char *argv[])\r
 {\r
-       int i;\r
-       word start;\r
-       int plane;\r
-       float t1, t2, tpee;\r
-       int x,y;\r
-       word px,py;\r
-       sword baka;\r
-       char *bakapeee;\r
 \r
-       byte l[1024];\r
+       //byte l[1024];\r
        word j,chw,xp,col,bgcol;\r
 \r
-\r
+//w=0;\r
+//printf("%u ", w++);\r
        bakapeee = malloc(64);\r
 \r
        if(argv[1]) bakapeee = argv[1];\r
@@ -51,10 +52,15 @@ void main(int argc, char *argv[])
 //     if(argv[2]) baka = atoi(argv[2]);\r
 //     else\r
 baka = 1;\r
-\r
+//fprintf(stderr, "%u ", w++);\r
        p = planarLoadPcx(bakapeee);\r
-       ptmp = planarLoadPcx("data/ptmp.pcx");\r
-/*     VGAmodeX(baka, &gvar);\r
+//fprintf(stderr, "%u ", w++);\r
+//     ptmp = planarLoadPcx("data/ptmp.pcx");\r
+//fprintf(stderr, "%u ", w++);\r
+//fprintf(stderr, "^^;", w++);\r
+//getch();\r
+\r
+       VGAmodeX(baka, &gvar);\r
        gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);\r
 \r
        //fix up the palette and everything\r
@@ -91,7 +97,7 @@ baka = 1;
        while(!kbhit())\r
        {\r
        }\r
-       VGAmodeX(0, &gvar);*/\r
+       VGAmodeX(0, &gvar);\r
 \r
        //print out the contents of each plane\r
        for(plane=0; plane < 4; plane++) {\r
@@ -105,7 +111,8 @@ baka = 1;
                }\r
        }\r
        col=0x0d, bgcol=0;\r
-       /*for(i=0; i<8; i++)\r
+       /*\r
+       for(i=0; i<8; i++)\r
        {\r
                //modexSelectPlane(PLANE(x));\r
                //j=1<<8;\r
@@ -127,18 +134,16 @@ baka = 1;
        chw += xp;\r
        fprintf(stderr,"Project 16 planrpcx.exe. This is just a test file!\n");\r
        fprintf(stderr,"version %s\n", VERSION);\r
-       fprintf(stderr,"%d\n", sizeof(p.plane));\r
-       fprintf(stderr,"pw=%d\n", p.width);\r
-       fprintf(stderr,"ph=%d\n", p.height);\r
-       fprintf(stderr,"ppw=%d\n", p.pwidth);\r
-       fprintf(stderr,"%d\n", sizeof(p));\r
-       fprintf(stderr,"%dx%d\n", gvar.video.page[0].sw-(p.width), gvar.video.page[0].sh-(p.height));\r
-       //planar_buf_free(p);\r
+       //fprintf(stderr,"%d\n", sizeof(p.plane));\r
+       //fprintf(stderr,"pw=%d\n", p.width);\r
+       //fprintf(stderr,"ph=%d\n", p.height);\r
+       //fprintf(stderr,"ppw=%d\n", p.pwidth);\r
+       //fprintf(stderr,"%d\n", sizeof(p));\r
+       //fprintf(stderr,"%dx%d\n", gvar.video.page[0].sw-(p.width), gvar.video.page[0].sh-(p.height));\r
        free(bakapeee);\r
-       fprintf(stderr, "modexDrawBmpPBuf:      %f\n", t1);\r
-       fprintf(stderr, "modexDrawPBuf: %f\n", t2);\r
-       fprintf(stderr, "speed difference       %f\n", t2/t1);\r
-       fprintf(stderr, "gvar.video.page[0].width: %u\n", gvar.video.page[0].width);\r
-       fprintf(stderr, "gvar.video.page[0].height: %u\n", gvar.video.page[0].height);\r
-       return;\r
+       //fprintf(stderr, "modexDrawBmpPBuf:    %f\n", t1);\r
+       //fprintf(stderr, "modexDrawPBuf:       %f\n", t2);\r
+       //fprintf(stderr, "speed difference     %f\n", t2/t1);\r
+       //fprintf(stderr, "gvar.video.page[0].width: %u\n", gvar.video.page[0].width);\r
+       //fprintf(stderr, "gvar.video.page[0].height: %u\n", gvar.video.page[0].height);\r
 }\r
index f0c5f918b765da8985f167aef5ccae9e5f7f1d70..ea3e01b864e4b4f79cf763afbb62034369cf23a3 100755 (executable)
Binary files a/test.exe and b/test.exe differ
index 3fb7194c7bad996efc579a131699ffbffbba58eb..886eb317f8d19daa62016d36b3c7aa0054b8e6db 100755 (executable)
Binary files a/test2.exe and b/test2.exe differ
index 3b870111ac047ece8a08e6f1ec9d2ded51c3c19a..343c65b48106ed881b90aa23af79646d9ee310c0 100755 (executable)
Binary files a/vgmtest.exe and b/vgmtest.exe differ