X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Fexmmtest.c;h=df39255b5a4f6b57253cd628fd78ff7947cb8362;hb=a37ce6ce2450c46380b8d31f7101b521d2cebfda;hp=8c4d33e3074f297a2c81b540941994a378434ba4;hpb=521e7a1f4672eabf05a768328448546cc00dc060;p=16.git diff --git a/src/exmmtest.c b/src/exmmtest.c index 8c4d33e3..df39255b 100644 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -20,30 +20,134 @@ * */ /* - input test + exmm test */ +#include +#include + +#include "src/lib/16_head.h" #include "src/lib/16_ca.h" #include "src/lib/16_mm.h" +//#include "src/lib/modex16.h" +#pragma hdrstop + +#pragma warn -pro +#pragma warn -use + +//file load or read definition +//#define FILERL +//#define FILEREAD void main(int argc, char *argv[]) { mminfo_t mm; mminfotype mmi; - memptr bigbuffer; - __segment segu; + __segment bigbuffer; +#ifdef FILERL + char *bakapee; + word baka; +#endif + //static page_t screen; + + 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); + +#ifdef FILERL + bakapee = malloc(64); +#endif mm.mmstarted=0; - printf("start!\n"); + +#ifdef FILERL + if(argv[1]) bakapee = argv[1]; + else bakapee = "data/koishi~~.pcx"; +#endif + + textInit(); + + /* setup camera and screen~ */ + //bug!!! + //screen = modexDefaultPage(); + /*screen.width += (16*2); + screen.height += (16*2);*/ + + printf("main()=%Fp start MM\n", *argv[0]); MM_Startup(&mm, &mmi); - printf("done!\n"); - printf("&main()=%Fp\n", *argv[0]); - if(CA_LoadFile("data/chikyuu.pcx", &bigbuffer, &mm, &mmi)) printf("\nyay!\n"); - //MM_GetPtr(&bigbuffer, mmi.nearheap, &mm, &mmi); + //PM_Startup(); + //PM_UnlockMainMem(); + CA_Startup(); + printf(" done!\n"); + /*if(FP_SEG(*argv[0])==0) + { + MM_Report(&screen, &mm, &mmi); + MM_Shutdown(&mm); + printf("&main()=%Fp\n", *argv[0]); + printf("&main() == %u\n", FP_SEG(*argv[0])); + exit(-5); + }*/ + 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); +#ifdef FILERL +// 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),&mm)) +#ifdef FILEREAD + printf(" read\n"); + if(CA_ReadFile(bakapee, &bigbuffer, &mm)) +#else + printf(" load\n"); + if(CA_LoadFile(bakapee, &bigbuffer, &mm, &mmi)) +#endif + baka=1; + else + baka=0; +// close(bakapeehandle); //hmm functions in cache system use the buffered stuff - printf("size of big buffer~=%ul\n", _bmsize(segu, bigbuffer)); - MM_ShowMemory(&mm); +// printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); +#endif + printf("dark purple = purgable\n"); + printf("medium blue = non purgable\n"); + printf("red = locked\n"); +// getch(); + //++++modexEnter(); + //++++modexShowPage(&screen); + MM_ShowMemory(/*&screen, */&mm); + //getch(); + MM_DumpData(&mm); + //++++modexLeave(); MM_Report(&mm, &mmi); - printf("stop!\n"); + printf(" stop!\n"); +#ifdef FILERL MM_FreePtr(&bigbuffer, &mm); +#endif + //PM_Shutdown(); + CA_Shutdown(); MM_Shutdown(&mm); - printf("done!\n"); + printf(" done!\n"); +#ifdef FILERL + free(bakapee); + if(baka) printf("\nyay!\n"); + else printf("\npoo!\n"); +#endif + //printf("_bios_memsize=%u\n", _bios_memsize()); + printf("bigbuffer= %Fp\n", bigbuffer); + printf("&bigbuffer= %Fp\n", &bigbuffer); + printf("bigbuffer= %04x\n", bigbuffer); + printf("&bigbuffer= %04x\n", &bigbuffer); + printf("\n\n"); + printf("Total free: %lu\n", (dword)(GetFreeSize())); + printf("Total near free: %lu\n", (dword)(GetNearFreeSize())); + printf("Total far free: %lu\n", (dword)(GetFarFreeSize())); + getch(); + printf("\n"); + heapdump(); + printf("core left: %lu\n", (dword)_coreleft()); + printf("far core left: %lu\n", (dword)_farcoreleft()); + //printf("based core left: %lu\n", (dword)_basedcoreleft()); + //printf("huge core left: %lu\n", (dword)_hugecoreleft()); }