]> 4ch.mooo.com Git - 16.git/commitdiff
joncambell321 please help test.exe creates garbage if the 2nd rendering page is written
authorsparky4 <sparky4@cock.li>
Wed, 4 May 2016 19:15:40 +0000 (14:15 -0500)
committersparky4 <sparky4@cock.li>
Wed, 4 May 2016 19:15:40 +0000 (14:15 -0500)
makefile
src/lib/modex16.c
src/test.c

index 9f9e4e432c247dda5f7323778d70807aceb4f545..9e002883a96c4b481ce4004025b1433a811429cb 100755 (executable)
--- a/makefile
+++ b/makefile
@@ -66,7 +66,7 @@ UPXQ=-qqq
 AFLAGS=-mh -0 -d1
 16FLAGS=-fh=16.hed
 BAKAPIFLAGS=-fh=bakapi.hed
-SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#55808#60000
+SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#54096#60000
 DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS)
 ZFLAGS=-zk0 -zc -zp8 $(WCLQ) ## -zm
 CFLAGS=$(AFLAGS) $(IFLAGS)-lr -l=dos -wo -i$(DOSLIB)##wwww
@@ -117,11 +117,11 @@ tesuto.exe: tesuto.$(OBJ) $(DOSLIBLIBS) 16_head.$(OBJ) gfx.lib
 tesuto.$(OBJ): $(SRC)tesuto.c
        wcl $(FLAGS) $(WCLQ) -c $(SRC)tesuto.c
 
-test.exe: test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ)
-       wcl $(FLAGS) test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ) -fm=test.mah
+test.exe: test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ) $(DOSLIBLIBS)
+       wcl $(FLAGS) test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ) $(DOSLIBLIBS) -fm=test.mah
 
-test2.exe: test2.$(OBJ) gfx.lib
-       wcl $(FLAGS) test2.$(OBJ) gfx.lib -fm=test2.mah
+test2.exe: test2.$(OBJ) $(DOSLIBLIBS) gfx.lib
+       wcl $(FLAGS) test2.$(OBJ) $(DOSLIBLIBS) gfx.lib -fm=test2.mah
 
 fonttest.exe: fonttest.$(OBJ) $(16LIB) gfx.lib
        wcl $(FLAGS) fonttest.$(OBJ) $(16LIB) gfx.lib -fm=fonttest.mah
index 97870192fb8962f794f4bfdec984afb9ab86da50..8776d0aa3ef080ff52e220940e4fb5ca804a1ac3 100755 (executable)
@@ -155,6 +155,7 @@ void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv)
        //TODO MAKE FLEXIBLE~\r
 //     gv->video.page[0].tilemidposscreenx = gv->video.page[0].tilesw;\r
 //     gv->video.page[0].tilemidposscreeny = (gv->video.page[0].tilesh/2)+1;\r
+       gv->video.num_of_pages=0;\r
 }\r
 \r
 void\r
@@ -234,12 +235,12 @@ modexNextPageFlexibleSize(page_t *p, word x, word y)
 void modexCalcVmemRemain(video_t *video)\r
 {\r
        byte i;\r
-       printf("\n\n    1st vmem_remain=%ld\n", video->vmem_remain);\r
+       //printf("\n\n  1st vmem_remain=%ld\n", video->vmem_remain);\r
        for(i=0; i<=video->num_of_pages-1; i++)\r
        {\r
                video->vmem_remain-=video->page[i].pagesize;\r
-               printf("                [%u], video->page[i].pagesize=%ld\n", i, video->page[i].pagesize);\r
-               printf("                [%u], vmem_remain=%ld\n", i, video->vmem_remain);\r
+               //printf("              [%u], video->page[i].pagesize=%ld\n", i, video->page[i].pagesize);\r
+               //printf("              [%u], vmem_remain=%ld\n", i, video->vmem_remain);\r
        }\r
 }\r
 \r
index b80291fcf740d804c9dfbd91f6dadaff4c3d056a..397971ba6063f0d235a0dce512565e6ae2f3b7e5 100755 (executable)
@@ -39,6 +39,28 @@ void main(int argc, char *argv[])
        if(argv[1]) bakapee = atoi(argv[1]);\r
        else bakapee = 1;\r
 \r
+\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
        /* load our palette */\r
        modexLoadPalFile("data/default.pal", &pal2);\r
 \r
@@ -48,25 +70,29 @@ void main(int argc, char *argv[])
        modexFadeOff(1, pal);\r
        modexPalBlack();\r
 \r
-       VGAmodeX(bakapee, 1, &gvar);\r
-       modexPalBlack();\r
-\r
        IN_Startup();\r
        IN_Default(0,&player,ctrl_Joystick);\r
 \r
+       textInit();\r
+       VGAmodeX(bakapee, 1, &gvar);\r
+       modexPalBlack();\r
+\r
        /* set up the page, but with 16 pixels on all borders in offscreen mem */\r
-       gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);\r
-       gvar.video.page[1] = modexNextPage(&gvar.video.page[0]);\r
-       gvar.video.page[0].width += 32;\r
-       gvar.video.page[0].height += 32;\r
+       modexHiganbanaPageSetup(&gvar.video);\r
+//     gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);\r
+//     gvar.video.page[1] = modexNextPage(&gvar.video.page[0]);\r
+//     gvar.video.page[0].width += 32;\r
+//     gvar.video.page[0].height += 32;\r
 \r
 \r
        /* fill the page with one color, but with a black border */\r
        modexShowPage(&gvar.video.page[1]);\r
+       //modexClearRegion(&gvar.video.page[0], 0, 0, gvar.video.page[0].width, gvar.video.page[0].height, 0);\r
        modexClearRegion(&gvar.video.page[0], 16, 16, gvar.video.page[0].sw, gvar.video.page[0].sh, 128);\r
        modexClearRegion(&gvar.video.page[0], 32, 32, gvar.video.page[0].sw-32, gvar.video.page[0].sh-32, 42);\r
        modexClearRegion(&gvar.video.page[0], 48, 48, gvar.video.page[0].sw-64, gvar.video.page[0].sh-64, 128);\r
        modexShowPage(&gvar.video.page[0]);\r
+       modexCopyPageRegion(&gvar.video.page[1], &gvar.video.page[0], 0, 0, 0, 0, gvar.video.page[0].width, gvar.video.page[0].height);\r
 \r
        /* fade in */\r
        modexFadeOn(1, pal2);\r
@@ -113,9 +139,16 @@ void main(int argc, char *argv[])
        modexFadeOff(1, pal2);\r
        modexPalBlack();\r
        VGAmodeX(0, 1, &gvar);\r
-       IN_Shutdown();\r
        printf("Project 16 test.exe. This is just a test file!\n");\r
        printf("version %s\n", VERSION);\r
+       printf("video memory remaining: %ld\n", gvar.video.vmem_remain);\r
+       printf("page ");\r
+       for(i=0; i<gvar.video.num_of_pages;i++)\r
+       {\r
+               printf("        [%u]=", i);\r
+               printf("(%Fp)\n", (gvar.video.page[i].data));\r
+       }\r
+       IN_Shutdown();\r
        modexPalBlack();\r
        modexFadeOn(1, pal);\r
 }\r