]> 4ch.mooo.com Git - 16.git/blobdiff - src/exmmtest.c
i am going to look at wolfenstien's memory stuff
[16.git] / src / exmmtest.c
index e2310e9af5f912016652d152a5934caf6355e8ca..ead23e78a46d868d9283ce68384076d589ad6065 100644 (file)
  *
  */
 /*
-       input test
+       exmm test
 */
+#include <stdio.h>
+#include <bios.h>
+
+#include "src/lib/16_head.h"
 #include "src/lib/16_ca.h"
 #include "src/lib/16_mm.h"
-#include "src/lib/modex16.h"
+//#include "src/lib/modex16.h"
+#pragma hdrstop\r
+\r
+#pragma warn -pro\r
+#pragma warn -use
 
-#define FILERL
+//file load or read definition
+//#define FILERL
+//#define FILEREAD
 
 void
 main(int argc, char *argv[])
 {
        mminfo_t mm; mminfotype mmi;
-       memptr  bigbuffer;
        __segment segu;
-       char *bakapee;
+#ifdef FILERL
+       memptr  bigbuffer;
+       static char *bakapee;
        word baka;
-       page_t screen;
+#endif
+       //static page_t screen;
+
+       //mmi.segu=FP_SEG(segu);
+
+       printf("&main()=%Fp\n", *argv[0]);
+       printf("&segu=%p\n", (segu));
+       //printf("mmi.segu=%p\n", (mmi.segu));
 
+#ifdef FILERL
        bakapee = malloc(64);
 //     memset(bakapee, 0, 64);
+#endif
        mm.mmstarted=0;
 
+#ifdef FILERL
        if(argv[1]) bakapee = argv[1];
        else bakapee = "data/koishi~~.pcx";
-       //if(argv[2])
-//             #define FILEINIT
+#endif
 
        textInit();\r
 
-       /* setup camera and screen~ */\r
-       screen = modexDefaultPage();\r
-       screen.width += (16*2);\r
-       screen.height += (16*2);
+       /* setup camera and screen~ */
+       //bug!!!\r
+       //screen = modexDefaultPage();\r
+       /*screen.width += (16*2);\r
+       screen.height += (16*2);*/
 
-       printf("                start!\n");
+       printf("main()=%Fp      start MM\n", *argv[0]);
        MM_Startup(&mm, &mmi);
        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("&segu=%p\n", (segu));
+       //printf("mmi.segu=%p\n", (mmi.segu));
 #ifdef FILERL
-#ifdef FILEINIT
+#ifdef FILEREAD
        printf("                read\n");
-       if(CA_ReadFile(bakapee, &bigbuffer, &mm/*, &mmi*/))
+       if(CA_ReadFile(bakapee, &bigbuffer, &mm))
 #else
        printf("                load\n");
        if(CA_LoadFile(bakapee, &bigbuffer, &mm, &mmi))
@@ -69,29 +100,30 @@ main(int argc, char *argv[])
                baka=1;
        else
                baka=0;
-#endif
-       //MM_GetPtr(&bigbuffer, mmi.nearheap, &mm, &mmi);
        //hmm functions in cache system use the buffered stuff
-       printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer));
+       printf("size of big buffer~=%lu\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);
+       //++++modexEnter();
+       //++++modexShowPage(&screen);
+       MM_ShowMemory(/*&screen, */&mm);
        //getch();
        MM_DumpData(&mm);
-       modexLeave();
-       MM_Report(&screen, &mm, &mmi);
+       //++++modexLeave();
+       MM_Report(&mm, &mmi);
        printf("                stop!\n");
+#ifdef FILERL
        MM_FreePtr(&bigbuffer, &mm);
+#endif
        MM_Shutdown(&mm);
        printf("                done!\n");
 #ifdef FILERL
        free(bakapee);
-       //printf("_bios_memsize=%u\n", _bios_memsize());
        if(baka) printf("\nyay!\n");
        else printf("\npoo!\n");
 #endif
+       printf("_bios_memsize=%u\n", _bios_memsize());
 }