X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fexmmtest.c;h=732c15db9319e6f61113698bfcb2f5a45dfa1018;hb=3654bfe5eca40124f490efea3f85677a3c2f87f1;hp=c0d2bbd76bb632e1125a0cfcb99327946850d97b;hpb=3ad667193b2905bcf70aa1c628d276fa968a757d;p=proj16%2F16.git diff --git a/src/exmmtest.c b/src/exmmtest.c index c0d2bbd7..732c15db 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2021 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -22,71 +22,46 @@ /* exmm test */ -#include // for _memavl() -#include "src/lib/16_head.h" -#include "src/lib/16_tail.h" -#include "src/lib/16_pm.h" -#include "src/lib/16_ca.h" -#include "src/lib/16_mm.h" -#include "src/lib/16_hc.h" -//#include "src/lib/16_vl.h" -#include "src/lib/16_dbg.h" - -#pragma hdrstop - -#pragma warn -pro -#pragma warn -use - -//file load or read definition -#define FILEREADLOAD -#define FILEREAD -//#define EXMMVERBOSE -//#define BUFFDUMPPAUSE -//#define EXMMVERBOSE__ -// #define PRINTBBDUMP -#define BUFFDUMP -//#define NOVID - -#define KEYP IN_Shutdown(&gvar); printf("\n\npress any key to continue!\n"); getch(); IN_Startup(&gvar); - -#define BBUFNAME bigbuffer//gvar.ca.tinf[0] -#define INITBBUF static memptr BBUFNAME; -#define BBUFPTR MEMPTR BBUFNAME - -#ifdef __BORLANDC__ -#define BBUF (memptr *)BBUFPTR// -#define BBUFSTRING (memptr *)BBUFNAME -#endif -#ifdef __WATCOMC__ -#define BBUF BBUFNAME -#define BBUFSTRING BBUF -#endif +#include "src/exmmtest.h" //////////////////////////////////////////////////////////////////////////// -#ifdef __BORLANDC__ +#ifdef NOVID +void VL_Startup (global_game_variables_t *gvar){ gvar=gvar; } +void VL_Shutdown (global_game_variables_t *gvar){ gvar=gvar; } void VGAmodeX(sword vq, boolean cmem, global_game_variables_t *gv) { printf("VGAmodeX dummy:\n %Fp %Fp %Fp\n", &vq, &cmem, gv); } -#endif -//printf("* %Fp\t", *BBUF); -//printf("* %04x\t", *BBUF); -#define PRINTBB {\ - printf("-------------------------------------------------------------------------------\n");\ - printf("&main()= %Fp\n", argv[0]);\ - printf("buffer:\n");\ - printf(" %Fp\t", BBUF);\ - printf("&%Fp\n", BBUFPTR);\ - printf(" %04x\t", BBUF);\ - printf("& %04x\n", BBUFPTR);\ - printf("-------------------------------------------------------------------------------\n");\ +word +VL_modexPalOverscan(byte *p, word col) +{ + int i; + //modexWaitBorder(); +// vga_wait_for_vsync(); + outp(PAL_WRITE_REG, 0); /* start at the beginning of palette */ + for(i=col; i<(3+col); i++) + { + outp(PAL_DATA_REG, p[i]); + } +// modexPalSave(p); + return col; } - //printf("&main()= %Fp\n", *argv[0]); - //printf("bigbuffer= %Fp\n", bigbuffer); - //printf("&bigbuffer= %Fp\n", &bigbuffer); - //printf("bigbuffer= %04x\n", bigbuffer); - //printf("&bigbuffer= %04x\n", &bigbuffer); +void TL_VidInit(global_game_variables_t *gvar) +{ + gvar->video.old_mode = 3; +} + +void VL_print(const byte *str, nibble pagenum, global_game_variables_t *gvar){ printf("%s\n", str); } + +#ifdef __WATCOMC__ +void VL_ShowPage(page_t *page, boolean vsync, boolean sr){} +void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color){} +void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word color, word bgcolor, boolean vidsw, const byte *str){ printf("%s\n", str); } +void modexpdump(nibble pagenum, global_game_variables_t *gvar){} +#endif +#endif + #ifdef __WATCOMC__ void segatesuto() { @@ -109,91 +84,83 @@ void segatesuto() } #endif +#ifdef SCROLLLOAD +#define FILENAME_1 "data/spri/chikyuu.vrs" +#define FILENAME_2 "data/test.map" +#else +#define FILENAME_1 "data/spri/chikyuu.sht" +#define FILENAME_2 "data/test.map" +#endif + +//===========================================================================// + +//=======================================// + +// main + +//=======================================// void main(int argc, char *argv[]) { - byte w; -#ifndef NOVID - boolean done; - ScanCode scan; -#endif static global_game_variables_t gvar; -#ifdef INITBBUF + #ifdef INITBBUF INITBBUF -#endif -//#ifdef __WATCOMC__ -// __segment sega; -//#endif - //static byte bakapee[64]; - char *bakapee1, *bakapee2; - word baka; + #endif -#ifdef __BORLANDC__ - argc=argc; -#endif - //file name // - bakapee1 = malloc(24); - bakapee2 = malloc(24); - //file name // + char bakapee1[64] = FILENAME_1; + char bakapee2[64] = FILENAME_2; + #ifdef __BORLANDC__ + argc=argc; + #endif + + #ifdef PRINTBBDUMP + //0000PRINTBB; KEYP + #endif #ifdef __16_PM__ #ifdef __DEBUG_PM__ dbg_debugpm=1; //debug pm #endif #endif - #ifdef __DEBUG_CA__ dbg_debugca=1; #endif -#ifdef PRINTBBDUMP -//0000PRINTBB; KEYP +#ifdef __DEBUG_MM__ + dbg_debugmm=1; #endif - if(argv[1]){ bakapee1 = argv[1]; - if(argv[2]) bakapee2 = argv[2]; } - else{ - //{ printf("filename!: "); scanf("%[^\n]", &bakapee); } - bakapee1 = "data/koishi~.pcx"; - bakapee2 = "data/test.map"; - } -#ifndef NOVID - Startup16(&gvar); - // save the palette -#ifdef __WATCOMC__ - modexPalSave(&gvar.video.dpal); modexFadeOff(4, &gvar.video.dpal); //modexPalBlack(); -#endif -#else //NOVID - //printf("main()=%Fp start MM\n", *argv[0]); - MM_Startup(&gvar); //printf("ok\n"); -#ifdef __16_PM__ -#ifdef __DEBUG_PM__ - if(dbg_debugpm>0) - { -#endif - PM_Startup(&gvar); PM_CheckMainMem(&gvar); PM_UnlockMainMem(&gvar); -//0000 printf("PM Started\n"); KEYP -#ifdef __DEBUG_PM__ - } -#endif -#endif + if(argv[1]){ strcpy(bakapee1, argv[1]);//bakapee1[] = *argv[1]; + if(argv[2]) strcpy(bakapee2, argv[2]); }//bakapee2[] = argv[2]; } -#endif //NOVID -#ifdef __DEBUG_MM__ - dbg_debugmm=0; -#endif - CA_Startup(&gvar); -// printf(" done!\n"); -#ifdef PRINTBBDUMP -//0000 + printf("bakapee1[%s]\n", bakapee1); + printf("bakapee2[%s]\n", bakapee2); + #ifdef EXMMVERBOSE__ + printf("coreleft(): %u\n", coreleft()); + printf("farcoreleft(): %ld\n", farcoreleft()); + #endif + printf("stackavail()=%u\n", stackavail()); + KEYP + + #ifndef NOVID + Startup16(&gvar); + // save the palette + modexPalSave(&gvar.video.dpal); //modexFadeOff(4, &gvar.video.dpal); //modexPalBlack(); + #else //NOVID + StartupCAMMPM(&gvar); + #endif //elsed NOVID + #ifdef PRINTBBDUMP + //0000 PRINTBB; KEYP -#endif -#ifdef __DEBUG_MM__ - dbg_debugmm=1; -#endif + #endif + + IN_Default(0,&gvar.player[0],ctrl_Keyboard1, &gvar); + IN_SetControlType(&gvar.player[0],ctrl_Keyboard1); + { + byte w; word baka; w=0; -#ifdef FILEREADLOAD -#ifdef FILEREAD + #ifdef FILEREADLOAD + #ifdef FILEREAD for(;w<2;w++) { // printf("size of big buffer~=%u\n", _bmsize(segu, BBUF)); @@ -203,24 +170,41 @@ PRINTBB; KEYP if(CA_ReadFile(bakapee2, BBUFPTR, &gvar)) baka=1; else baka=0; printf("====================================read end===================================\n"); } -#endif + #endif //FILEREAD if(w==0) { printf("======================================load=====================================\n"); if(CA_LoadFile(bakapee1, BBUFPTR, &gvar)) baka=1; else baka=0; printf("====================================load end===================================\n"); } -//#ifdef __WATCOMC__ -// printf("\nsize of big buffer~=%u\n", _bmsize(sega, BBUF)); -//#endif -#ifdef BUFFDUMP - printf("contents of the buffer\n[\n%s\n]\n", BBUFSTRING); -#endif// #else -#ifdef PRINTBBDUMP - PRINTBB; -#endif + #ifdef BUFFDUMP + { + size_t file_s; + FILE *fh; -//endif // BUFFDUMP + if(!w) fh = fopen(bakapee1, "r"); + else fh = fopen(bakapee2, "r"); + file_s = filesize(fh); + fclose(fh); + printf("contents of the buffer\n[\n%.*s\n]\n", file_s, BBUFSTRING); +#if 0 +//0000 +// mmblocktype far *scan; +// scan = gvar.mm.mmhead; +// while (scan->useptr != &BBUFNAME && scan) +// { +// scan = scan->next; +// } +// printf("\n %Fp %Fp\n", scan->useptr, &BBUFNAME); + printf("\nstrlen of buffer = %zu\n", strlen(BBUFSTRING)); + printf("length of buffer = %zu\n", file_s); +// printf("length of buffer = %lu\n", scan->length); +#endif + } + #endif + #ifdef PRINTBBDUMP + PRINTBB; + #endif //printf("dark purple = purgable\n"); //printf("medium blue = non purgable\n"); @@ -229,24 +213,43 @@ PRINTBB; KEYP // DebugMemory_(&gvar, 1); if(baka) printf("\nyay!\n"); else printf("\npoo!\n"); -#ifdef BUFFDUMPPAUSE + #ifdef BUFFDUMPPAUSE KEYP -#endif -#ifdef FILEREAD + #endif + #ifdef FILEREAD + } + #endif + #endif //filereadload } -#endif -#ifndef BUFFDUMPPAUSE - KEYP -#endif -#endif //filereadload + #ifdef SCROLLLOAD + CA_loadmap(bakapee2, &gvar.map, &gvar); //BREAKS! +// newloadmap(bakapee2, &gvar.map); + VRS_LoadVRS(bakapee1, &gvar.player[0].enti, &gvar); +// HC_heapdump(&gvar); + KEYP + #endif //scrollload -#ifdef __WATCOMC__ #ifndef NOVID - VGAmodeX(1, 0, &gvar); -// modexPalUpdate0(&gvar.video.palette); + VGAmodeX(8, 0, &gvar); VL_LoadPalFileCore(&gvar.video.palette, &gvar); + VL_ClearVideo (0); + modexHiganbanaPageSetup(&gvar); + gvar.video.page[0].dx = gvar.video.page[0].dy = 0; +// VL_modexPalScramble(&gvar.video.palette); + { + unsigned temp; + temp = BDOFSCONV gvar.video.BOFS; + gvar.video.BOFS = gvar.video.DOFS; + MU_IntroScreen(&gvar); + gvar.video.BOFS = (byte __far *)temp; + } // ShapeTest_(&gvar); - +#endif +//0000++++ MM_ShowMemory(&gvar); +#if 0 + { + boolean done; + ScanCode scan; for (done = false;!done;) { while (!(scan = gvar.in.inst->LastScan)) @@ -256,12 +259,12 @@ PRINTBB; KEYP IN_ClearKey(scan); switch (scan) { - case sc_Space: - MM_ShowMemoryVidVer(&gvar); - break; +// case sc_Space: +// MM_ShowMemory(&gvar); +// break; //#ifdef __WATCOMC__ case sc_O: - modexPalUpdate0(&gvar.video.palette); modexpdump(&gvar.video.page); + VL_modexPalScramble(&gvar.video.palette); modexpdump(&gvar.video.page); break; case sc_P: modexpdump(&gvar.video.page[0]); @@ -276,65 +279,61 @@ PRINTBB; KEYP break; } } - VGAmodeX(0, 0, &gvar); +} #endif +#ifndef NOVID + if(gvar.video.VL_Started) + VL_Shutdown (&gvar);//VGAmodeX(0, 0, gvar); + modexFadeOn(4, gvar.video.dpal); #endif - DebugMemory_(&gvar, 1); MM_DumpData(&gvar); + KEYP MM_Report_(&gvar); //printf("bakapee1=%s\n", bakapee1); //printf("bakapee2=%s\n", bakapee2); MM_FreePtr(BBUFPTR, &gvar); -#ifndef NOVID + #ifndef NOVID Shutdown16(&gvar); -#else -#ifdef __16_PM__ -#ifdef __DEBUG_PM__ - if(dbg_debugpm>0) -#endif - PM_Shutdown(&gvar); -#endif - CA_Shutdown(&gvar); - MM_Shutdown(&gvar); -#endif //NOVID + #else //novid + ShutdownCAMMPM(&gvar); + #endif //NOVID IN_Shutdown(&gvar); - free(bakapee1); free(bakapee2); printf("========================================\n"); - printf("near= %Fp ", gvar.mm.nearheap); - printf("far= %Fp", gvar.mm.farheap); + printf("near= %Fp ", gvar.mm.nearheap); + printf("far= %Fp", gvar.mm.farheap); printf("\n"); - printf("&near= %Fp ", &(gvar.mm.nearheap)); - printf("&far= %Fp", &(gvar.mm.farheap)); + printf("&near= %Fp ", &(gvar.mm.nearheap)); + printf("&far= %Fp", &(gvar.mm.farheap)); printf("\n"); -#ifdef EXMMVERBOSE - printf("bigb= %Fp ", BBUF); - //printf("bigbr= %04x", BBUF); + #ifdef EXMMVERBOSE + printf("bigb= %Fp ", BBUF); + //printf("bigbr= %04x", BBUF); //printf("\n"); - printf("&bigb=%Fp ", BBUFPTR); - //printf("&bigb=%04x", BBUFPTR); + printf("&bigb=%Fp ", BBUFPTR); + //printf("&bigb=%04x", BBUFPTR); printf("\n"); -#endif + #endif printf("========================================\n"); -#ifdef EXMMVERBOSE__ - printf("coreleft(): %u\n", _memavl()); - printf("farcoreleft(): %lu\n", (dword)HC_farcoreleft()); -#endif + #ifdef EXMMVERBOSE__ + printf("coreleft(): %u\n", coreleft()); + printf("farcoreleft(): %ld\n", farcoreleft()); + #endif #ifdef __WATCOMC__ //this is far printf("Total free: %lu\n", (dword)(HC_GetFreeSize())); //super buggy printf("HC_coreleft(): %u\n", HC_coreleft()); // printf("HC_farcoreleft(): %lu\n", (dword)HC_farcoreleft()); //printf("HC_GetNearFreeSize(): %u\n", HC_GetNearFreeSize()); //printf("HC_GetFarFreeSize(): %lu\n", (dword)HC_GetFarFreeSize()); - HC_heapdump(&gvar); // segatesuto(); #endif -/*#ifdef __BORLANDC__ - //printf("core left: %lu\n", (dword)HC_coreleft()); - //printf("far core left: %lu\n", (dword)HC_farcoreleft()); -// printf("\nfarcoreleft(): %lu\n", farcoreleft()); -#endif*/ +#ifdef __BORLANDC__ +// printf("HC_coreleft: %lu\n", (dword)HC_coreleft()); +// printf("HC_farcoreleft: %lu\n", (dword)HC_farcoreleft()); +// printf("HC_Newfarcoreleft(): %lu\n", (dword)HC_Newfarcoreleft()); +#endif + HC_heapdump(&gvar); printf("Project 16 "); #ifdef __WATCOMC__ printf("exmmtest"); @@ -344,6 +343,10 @@ PRINTBB; KEYP #endif printf(".exe. This is just a test file!\n"); printf("version %s\n", VERSION); + +//end of program + + #if defined(__DEBUG__) && ( defined(__DEBUG_PM__) || defined(__DEBUG_MM__) ) #ifdef __DEBUG_MM__ printf("debugmm: %u\t", dbg_debugmm); @@ -353,7 +356,9 @@ PRINTBB; KEYP #endif printf("\n"); #endif - printf("old_mode=%u VL_Started=%u", gvar.video.old_mode, gvar.video.VL_Started); +// printf("curr_mode=%u\n", gvar.video.curr_mode); +// VL_PrintmodexmemInfo(&gvar.video); + //printf("old_mode=%u VL_Started=%u", gvar.video.old_mode, gvar.video.VL_Started); //printf("based core left: %lu\n", (dword)_basedcoreleft()); //printf("huge core left: %lu\n", (dword)_hugecoreleft()); }