X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Fexmmtest.c;h=f68d148e99bb4e1e2bff099a8cf7d50a796f985d;hb=fb97121f7d0be4408d8e2ed98a2f7b10b852a915;hp=f3871eadebe45611d53a8c7d4314fbfc4a92037d;hpb=981ffd8bd2be618a691c663df8436244175b96ef;p=16.git diff --git a/src/exmmtest.c b/src/exmmtest.c index f3871ead..f68d148e 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -23,6 +23,8 @@ exmm test */ #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" @@ -33,8 +35,8 @@ #pragma warn -use //file load or read definition -#define FILERL -//#define FILEREAD +#define FILEREAD +//#define EXMMVERBOSE #define PRINTBB { 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); } @@ -47,107 +49,120 @@ void segatesuto() screen = 0xB800; scrptr = 0; printf( "Top left character is '%c'.\n", *(screen:>scrptr) ); - printf("Next string is: ["); - while(*scrptr<16) - { - printf("%c", *(screen:>scrptr)); - //printf("\b"); - scrptr++; - - } - printf("]\n"); - printf("press any key to continue!\n"); - getch(); +// printf("Next string is: ["); +// while(*scrptr<16) +// { +// printf("%c", *(screen:>scrptr)); +// //printf("\b"); +// scrptr++; +// +// } +// printf("]\n"); +// printf("press any key to continue!\n"); +// getch(); } #endif +//static global_game_variables_t gvar; void main(int argc, char *argv[]) { - global_game_variables_t gvar; + byte w=1; + static global_game_variables_t gvar; #ifdef __WATCOMC__ __segment sega; #endif memptr bigbuffer; -#ifdef FILERL //static byte bakapee[64]; - char *bakapee; + char *bakapee1, *bakapee2; word baka; -#endif #ifdef __BORLANDC__ argc=argc; #endif -#ifdef FILERL - bakapee = malloc(64); -#endif + //file name // + bakapee1 = malloc(64); + bakapee2 = malloc(64); + //file name // + gvar.mm.mmstarted=0; + dbg_debugpm=1; //debug pm //PRINTBB -#ifdef FILERL - if(argv[1]) bakapee = argv[1]; - else + if(argv[1]){ bakapee1 = argv[1]; + if(argv[2]) bakapee2 = argv[2]; } + else{ //{ printf("filename!: "); scanf("%[^\n]", &bakapee); } - bakapee = "data/koishi~.pcx"; -#endif - -// printf("main()=%Fp start MM\n", *argv[0]); - MM_Startup(&gvar.mm, &gvar.mmi); - //PM_Startup(); - //PM_UnlockMainMem(); + bakapee1 = "data/koishi~.pcx"; + bakapee2 = "data/test.map"; + } + //printf("main()=%Fp start MM\n", *argv[0]); + MM_Startup(&gvar); + //printf("ok\n"); +//#ifdef __WATCOMC__ + if(dbg_debugpm>0) + { + PM_Startup(&gvar); + //printf("pmstarted ok\n"); + //PM_CheckMainMem(&gvar); + PM_UnlockMainMem(&gvar); + } +//#endif CA_Startup(&gvar); // printf(" done!\n"); - PRINTBB; - printf("press any key to continue!\n"); - getch(); -#ifdef FILERL + //0000PRINTBB; +// printf("press any key to continue!\n"); +// getch(); +#ifdef FILEREAD +for(w=0;w<2;w++) +{ // bakapeehandle = open(bakapee,O_RDONLY | O_BINARY, S_IREAD); // printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); // if(CA_FarRead(bakapeehandle,(void far *)&bigbuffer,sizeof(bigbuffer),&gvar.mm)) -#ifdef FILEREAD - printf(" read\n"); - if(CA_ReadFile(bakapee, &bigbuffer, &gvar)) -#else - printf(" load\n"); - if(CA_LoadFile(bakapee, &bigbuffer, &gvar)) + if(w>0) + { + printf(" read\n"); + if(CA_ReadFile(bakapee2, &bigbuffer, &gvar)) baka=1; else baka=0; + } #endif - baka=1; - else - baka=0; + if(w==0) + { + printf(" load\n"); + if(CA_LoadFile(bakapee1, &bigbuffer, &gvar)) baka=1; else baka=0; + } // close(bakapeehandle); //hmm functions in cache system use the buffered stuff #ifdef __WATCOMC__ printf("\nsize of big buffer~=%u\n", _bmsize(sega, bigbuffer)); #endif -#endif - printf("press any key to continue!\n"); - getch(); - printf("\n\ncontents of the buffer\n[\n%s\n]\n", bigbuffer); + + printf("contents of the buffer\n[\n%s\n]\n", bigbuffer); //printf("dark purple = purgable\n"); //printf("medium blue = non purgable\n"); //printf("red = locked\n"); +// printf("press any key to continue!\n"); +// DebugMemory_(&gvar, 1); + if(baka) printf("\nyay!\n"); + else printf("\npoo!\n"); printf("press any key to continue!\n"); getch(); - MM_ShowMemory(&gvar, &gvar.mm); - //getch(); - MM_DumpData(&gvar.mm); - MM_Report(&gvar); -// printf(" stop!\n"); - printf("press any key to continue!\n"); - getch(); -#ifdef FILERL - MM_FreePtr(&bigbuffer, &gvar.mm); +#ifdef FILEREAD +} #endif - //PM_Shutdown(); + DebugMemory_(&gvar, 1); + MM_DumpData(&gvar); + MM_Report_(&gvar); + //printf("bakapee1=%s\n", bakapee1); + //printf("bakapee2=%s\n", bakapee2); + MM_FreePtr(&bigbuffer, &gvar); +//#ifdef __WATCOMC__ + if(dbg_debugpm>0) + PM_Shutdown(&gvar); +//#endif CA_Shutdown(&gvar); - MM_Shutdown(&gvar.mm); -// printf(" done!\n"); -#ifdef FILERL - free(bakapee); - if(baka) printf("\nyay!\n"); - else printf("\npoo!\n"); -#endif + MM_Shutdown(&gvar); + free(bakapee1); free(bakapee2); printf("========================================\n"); printf("near= %Fp ", gvar.mm.nearheap); printf("far= %Fp", gvar.mm.farheap); @@ -162,12 +177,12 @@ main(int argc, char *argv[]) printf("&bigb=%Fp ", &bigbuffer); //printf("&bigb=%04x", &bigbuffer); printf("\n"); -#endif printf("========================================\n"); +#endif #ifdef __WATCOMC__ //this is far printf("Total free: %lu\n", (dword)(GetFreeSize())); - printf("Total near free: %lu\n", (dword)(GetNearFreeSize())); - printf("Total far free: %lu\n", (dword)(GetFarFreeSize())); + printf("Total near free: %lub\n", (dword)(GetNearFreeSize())); + printf("Total far free: %lub\n", (dword)(GetFarFreeSize())); heapdump(&gvar); segatesuto(); #endif