From 07346f616e3fe792fd34aba5e80afaddb8cf47e7 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sun, 3 Apr 2016 13:32:31 -0500 Subject: [PATCH] bakapi.exe has tile support switch wwww --- makefile | 4 +-- src/bakapi.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++------- src/lib/16_in.c | 2 +- src/lib/16_in.h | 2 +- src/lib/bakapee.h | 5 ++- 5 files changed, 92 insertions(+), 16 deletions(-) diff --git a/makefile b/makefile index 8d94ab0f..3de9313e 100755 --- a/makefile +++ b/makefile @@ -95,8 +95,8 @@ all: $(EXEC) joytest.exe 16.exe: 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIBOBJS) gfx.lib wcl $(FLAGS) $(16FLAGS) 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIBOBJS) gfx.lib -fm=16.map -bakapi.exe: bakapi.$(OBJ) gfx.lib# modex.lib - wcl $(FLAGS) $(BAKAPIFLAGS) bakapi.$(OBJ) gfx.lib -fm=bakapi.map +bakapi.exe: bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS) + wcl $(FLAGS) $(BAKAPIFLAGS) bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS) -fm=bakapi.map #modex.lib # #Test Executables! diff --git a/src/bakapi.c b/src/bakapi.c index eccaa355..28faa99d 100755 --- a/src/bakapi.c +++ b/src/bakapi.c @@ -44,7 +44,35 @@ main(int argc, char *argvar[]) #ifdef MXLIB VGAmodeX(1, &gvar); #else - mxSetMode(3); + probe_dos(); + if (!probe_vga()) { + printf("VGA probe failed\n"); + return 1; + } + int10_setmode(19); + update_state_from_vga(); + vga_enable_256color_modex(); // VGA mode X + vga_state.vga_width = 320; // VGA lib currently does not update this + vga_state.vga_height = 240; // VGA lib currently does not update this + +//#if 1 // 320x240 test mode: this is how Project 16 is using our code, enable for test case + { + struct vga_mode_params cm; + + vga_read_crtc_mode(&cm); + + // 320x240 mode 60Hz + cm.vertical_total = 525; + cm.vertical_start_retrace = 0x1EA; + cm.vertical_end_retrace = 0x1EC; + cm.vertical_display_end = 480; + cm.vertical_blank_start = 489; + cm.vertical_blank_end = 517; + + vga_write_crtc_mode(&cm,0); + } + vga_state.vga_height = 240; // VGA lib currently does not update this +//#endif #endif bakapee.xx = rand()&0%gvar.video.page[0].width; bakapee.yy = rand()&0%gvar.video.page[0].height; @@ -78,13 +106,13 @@ main(int argc, char *argvar[]) } else { - #ifndef MXLIB - mxChangeMode(0); +#ifndef MXLIB + int10_setmode(3); #else VGAmodeX(0, &gvar); #endif // user imput switch - fprintf(stderr, "xx=%d yy=%d\n", bakapee.xx, bakapee.yy); + fprintf(stderr, "xx=%d yy=%d tile=%d\n", bakapee.xx, bakapee.yy, bakapee.tile); printf("Enter 1, 2, 3, 4, or 6 to run a screensaver, or enter 0 to quit.\n", getch()); // prompt the user //scanf("%d", &key); if(scanf("%d", &key) != 1) @@ -93,16 +121,61 @@ main(int argc, char *argvar[]) } getch(); //if(key==3){xx=yy=0;} // crazy screen saver wwww - if(key==0){ d=0; }else{ - gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]); - gvar.video.page[0].width += (TILEWH*2); - gvar.video.page[0].height += (TILEWH*2); + switch (key) + { + case 0: + d=0; + break; + case 65536: + switch (bakapee.tile) + { + case 0: + bakapee.tile=1; + break; + case 1: + bakapee.tile=0; + break; + } + d=2; + default: #ifdef MXLIB - VGAmodeX(1, &gvar); + gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]); + gvar.video.page[0].width += (TILEWH*2); + gvar.video.page[0].height += (TILEWH*2); + VGAmodeX(1, &gvar); #else - mxChangeMode(3); + probe_dos(); + if (!probe_vga()) { + printf("VGA probe failed\n"); + return 1; + } + int10_setmode(19); + update_state_from_vga(); + vga_enable_256color_modex(); // VGA mode X + vga_state.vga_width = 320; // VGA lib currently does not update this + vga_state.vga_height = 240; // VGA lib currently does not update this + +//#if 1 // 320x240 test mode: this is how Project 16 is using our code, enable for test case + { + struct vga_mode_params cm; + + vga_read_crtc_mode(&cm); + + // 320x240 mode 60Hz + cm.vertical_total = 525; + cm.vertical_start_retrace = 0x1EA; + cm.vertical_end_retrace = 0x1EC; + cm.vertical_display_end = 480; + cm.vertical_blank_start = 489; + cm.vertical_blank_end = 517; + + vga_write_crtc_mode(&cm,0); + } + vga_state.vga_height = 240; // VGA lib currently does not update this +//#endif #endif - modexShowPage(&gvar.video.page[0]); + modexShowPage(&gvar.video.page[0]); + break; } } } diff --git a/src/lib/16_in.c b/src/lib/16_in.c index 1863e2ad..66c98dd6 100755 --- a/src/lib/16_in.c +++ b/src/lib/16_in.c @@ -38,7 +38,7 @@ #include "src/lib/16_in.h" -byte testkeyin=0,testcontrolnoisy=0,testctrltype=0; +boolean testkeyin=0,testcontrolnoisy=0,testctrltype=0; /* ============================================================================= diff --git a/src/lib/16_in.h b/src/lib/16_in.h index ec9b56a2..0990a550 100755 --- a/src/lib/16_in.h +++ b/src/lib/16_in.h @@ -42,7 +42,7 @@ //#define TESTCONTROLNOISY #endif -extern byte testkeyin,testcontrolnoisy,testctrltype; +extern boolean testkeyin,testcontrolnoisy,testctrltype; //if else for gfxtesting and direction //player[pn].d == 2 || diff --git a/src/lib/bakapee.h b/src/lib/bakapee.h index c7f35266..e06c0b8f 100755 --- a/src/lib/bakapee.h +++ b/src/lib/bakapee.h @@ -25,8 +25,11 @@ #include "src/lib/16_head.h" #include "src/lib/modex16.h" +#include +#include +#include //#include "src/lib/modex/modex.h" -#include "16/x/modex.h" +//#include "16/x/modex.h" #define TILEWH 16 #define QUADWH TILEWH/2 -- 2.11.0