]> 4ch.mooo.com Git - 16.git/commitdiff
Signed-off-by: sparky4 <sparky4@cock.li>
authorsparky4 <sparky4@cock.li>
Sun, 9 Aug 2015 15:47:00 +0000 (10:47 -0500)
committersparky4 <sparky4@cock.li>
Sun, 9 Aug 2015 15:47:00 +0000 (10:47 -0500)
16 files changed:
16.exe
DEBUG.16
HEAP.16
MMDUMP.16
bakapi.exe
exmmtest.exe
fontgfx.exe
maptest.exe
palettec.exe
pcxtest.exe
scroll.exe
src/lib/16_mm.c
src/lib/16_mm.h
test.exe
test2.exe
tsthimem.exe

diff --git a/16.exe b/16.exe
index 3d3f27977d3fd336b2bbb07502dcc9bc46899663..e078acbd2ab19ba630f30fa229e78a2168c2e002 100644 (file)
Binary files a/16.exe and b/16.exe differ
index f02d76dcd3d7ec3f3fbb5e41e2524cd82fe14f90..e132c9f5925bed8ae10d0d76527edd518e8de685 100644 (file)
--- a/DEBUG.16
+++ b/DEBUG.16
@@ -1,12 +1,12 @@
-\e[0mSeg:0      Size:5538       Owner:0xe000\r
-\e[41;31m+\e[0m\e[47;37m_\e[0m\r
-\e[0mSeg:15a2   Size:256        Owner:0x3506\r
-\e[44;34m+\e[0m\e[47;37m_\e[0m\r
-\e[0mSeg:16a2   Size:273        Owner:0x857a\r
-\e[44;34m+\e[0m\e[47;37m_\e[0m\e[42;32m0\e[0m\r
-\e[0mSeg:1cf2   Size:49 Owner:0x159f\r
-\e[41;31m+\e[0m\e[47;37m_\e[0m\e[42;32m0\e[0m\r
-\e[0mSeg:ad23   Size:13021      Owner:0x169f\r
-\e[41;31m+\e[0m\e[47;37m_\e[0m\r
-\e[0mSeg:e000   Size:4294909951 Owner:0xc483\r
-\e[41;31m+\e[0m\e[47;37m_\e[0m\r
+\e[0mSeg:0      Size:5200       Owner:0x0\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m\e[47;37m_\e[0m\r
+\e[0mSeg:1450   Size:256        Owner:0x3506\r
+\e[44;34m++++\e[0m\e[47;37m_\e[0m\r
+\e[0mSeg:1550   Size:273        Owner:0x857a\r
+\e[44;34m++++\e[0m\e[47;37m_\e[0m\e[42;32m\e[0m\r
+\e[0mSeg:1bb9   Size:49 Owner:0x1fe6\r
+\e[41;31m++\e[0m\e[47;37m_\e[0m\e[42;32m\e[0m\r
+\e[0mSeg:abea   Size:13334      Owner:0x8586\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m\e[47;37m_\e[0m\r
+\e[0mSeg:e000   Size:8191       Owner:0x3b4\r
+\e[41;31m++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m\e[47;37m_\e[0m\r
diff --git a/HEAP.16 b/HEAP.16
index a2a1a674150a2667689df1757462f42af84ecf09..50a3d6e70b073b81ffe595465f62036a1247a67d 100644 (file)
--- a/HEAP.16
+++ b/HEAP.16
@@ -1,11 +1,11 @@
 \r
        == default ==\r
 \r
-  USED block at 1d140016 of size 136\r
-  USED block at 1d14009e of size 66\r
-  FREE block at 1d1400e0 of size 18\r
-  USED block at 1d1400f2 of size 20\r
-  FREE block at 1d140106 of size 7926\r
+  USED block at 1bdb0016 of size 136\r
+  USED block at 1bdb009e of size 66\r
+  FREE block at 1bdb00e0 of size 18\r
+  USED block at 1bdb00f2 of size 20\r
+  FREE block at 1bdb0106 of size 7926\r
 OK - end of heap\r
 \r
        == near ==\r
@@ -33,13 +33,13 @@ OK - end of heap
 Memory Type         Total      Used       Free\r
 ----------------  --------   --------   --------\r
 Default                   8166 222     7944\r
-Near              31318        834     30484\r
+Near              31318        436     30882\r
 Far               8166 222     7944\r
 ----------------  --------   --------   --------\r
-coreleft = 30482\r
-farcoreleft = 38230\r
-GetFreeSize = 7768\r
-GetNearFreeSize = 30484\r
-GetFarFreeSize = 7768\r
-memavl = 30482\r
-stackavail = 11023\r
+coreleft = 30880\r
+farcoreleft = 46820\r
+GetFreeSize = 15960\r
+GetNearFreeSize = 30882\r
+GetFarFreeSize = 15960\r
+memavl = 30880\r
+stackavail = 11025\r
index 66f20d2774fd6a48a598be0d28a0b4e1c057d483..8c1d8566d76e035a5f7a24b26d49659803ea5e62 100644 (file)
Binary files a/MMDUMP.16 and b/MMDUMP.16 differ
index 4975fc13e23fe2852d37c4d0cd6da1ec6ce9951f..2ec159add97e28d3dbc89dc37bace3e2cbde61b1 100644 (file)
Binary files a/bakapi.exe and b/bakapi.exe differ
index 579751913741cc754bc8e90df4e67901dfa54805..f596c725d37bfe949c8fdc8fd4210cd12ff2367a 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index cd80b9da77b33b0c6276cc7d883bd32e9bb57d28..2cdab7e3f79f45de8482c851c2a3042e6d210eb2 100644 (file)
Binary files a/fontgfx.exe and b/fontgfx.exe differ
index 6d95e77e771cbd10f2b7ee67031b73afd4e1ce86..f1ae80fd1894215ea7ffb74879d680458e41fc6d 100644 (file)
Binary files a/maptest.exe and b/maptest.exe differ
index 4576367883ffe4b0f9aca69a2b0cf21dd61dd0a5..47c0141c6b20766babb6634335c95213e15ff6ad 100644 (file)
Binary files a/palettec.exe and b/palettec.exe differ
index d39c22f06dcd211c321b02cffc829b2864e72dee..c5c7023f81b92a77c55ecc035a1ae012d6fecc6a 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index de253902ef897ff94f8c41e6ca627f9299d11340..7a3fb30557319bd3de26b1ee0f979e235172e2df 100644 (file)
Binary files a/scroll.exe and b/scroll.exe differ
index cc5a894cc3dbfeb8cab2e69ea8b60389e36c2a7a..ca385529e3e4999a2f8f0a20a135dc71e4611e71 100644 (file)
@@ -350,6 +350,7 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi)
                }
        }
        mmi->EMSmem = (i)*0x4000lu;
+       printf("                mmi->EMSmem=%lu\n", mmi->EMSmem);
        return 0;
 }
 
@@ -595,6 +596,7 @@ void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm)
        //++++emsver stuff!
        if(segm>1/*extra>0xfffflu*/)
        {
+               scan->blob=segm;
                /*__asm
                {
                        push    ds
@@ -604,7 +606,7 @@ void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm)
                }*/
 
 
-//MML_UseSpace(?segstart?, ?length?, mm);
+               //MML_UseSpace(segstart, seglength, mm);
 
                /*__asm
                {
@@ -1306,7 +1308,8 @@ void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm)
                        //modexprint(&page, chx, chy, 1, 0, 24, "\nMM_ShowMemory: Memory block order currupted!\n");
                        break;
                }
-               end = scan->start+(word)scan->length-1;
+               for(;scan->length>0xfffflu;scan->length-=0xfffflu);
+               end = scan->start+(scan->length)-1;
 //++++         chy = scan->start/320;
 //++++         chx = scan->start%320;
                                //modexhlin(page, scan->start, (unsigned)end, chy, color);
@@ -1315,13 +1318,12 @@ void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm)
 //++++                                 modexClearRegion(page, chx, chy, 4, 4, color);
                                //}
 //++++         VW_Hlin(scan->start,(unsigned)end,0,color);
-//             for(w=0;w>=(word)scan->length/80;w++)
-//             {
-//                     printf("+       %lu\n", w);
-               //ultoa (w,str,10);
-               //strcat (scratch0,str);
+               for(w=(scan->start)/80;w<=end/80;w++)
+               {
+                       //printf("+     %u      %lu\n", w, scan->length);
+                       //if(w==48) getch();
                        strcat(scratch0, "+");
-//             }
+               }
                strcat(scratch0, AARESET); strcat(scratch0, AAGREY); strcat(scratch0,"_");
 //++++         VW_Plot(scan->start,0,15);
 //++++                         modexClearRegion(page, chx, chy, 4, 4, 15);
@@ -1329,14 +1331,15 @@ void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm)
                if(scan->next->start > end+1)
                {
                        strcat(scratch0, AARESET);
-                       //ultoa (w,str,10);
-                       //strcat (scratch0,str);
                        strcat(scratch0,AAGREEN);
-//                     for(w=(scan->next->start)/80;w>=(word)((scan->length+1)/80);w++)
-//                     {
-//                             printf("0       %lu\n", w);
+                       for(w=(scan->next->start)/80;w<=((scan->length+1)/80);w++)
+                       {
+                               //printf("0     %u      %u      %lu\n", scan->next->start, w, scan->length);
                                strcat(scratch0,"0");
-//                     }
+                       }
+               }else{
+                       printf("start=%x        next=%x end+1=%x\n", scan->start, scan->next->start, end+1);
+                       //getch();
                }
                strcat(scratch0, AARESET);
                strcat(scratch0,"\n");
@@ -1355,7 +1358,7 @@ void MM_ShowMemory(global_game_variables_t *gvar,/*page_t *page, */mminfo_t *mm)
                ultoa (scan->start,str,16);
                strcat (scratch,str);
                strcat (scratch,"\tSize:");
-               ultoa ((dword)scan->length,str,10);
+               ultoa ((word)scan->length,str,10);
                strcat (scratch,str);
                strcat (scratch,"\tOwner:0x");
                owner = (unsigned)scan->useptr;
@@ -1535,7 +1538,7 @@ void MM_Report(/*page_t *page, */mminfo_t *mm, mminfotype *mmi)
        printf("UnusedMemory=%lu\n", MM_UnusedMemory(mm));
        printf("TotalFree=%lu\n", MM_TotalFree(mm));
        //mmi->nearheap+mmi->farheap+
-       printf("TotalUsed=%lu\n", mmi->mainmem+mmi->EMSmem+mmi->XMSmem);//+);
+       printf("TotalUsed=%lu\n", mmi->mainmem+mmi->EMSmem+mmi->XMSmem+mmi->XMSmem);
 //     printf("\n");
 //     printf("UnusedMemory=%lu kb\n", MM_UnusedMemory()/10248);
 //     printf("TotalFree=%lu kb\n", MM_TotalFree()/10248);
index e67d2fcff1c2addfdadb33f3bf9af280d1242180..ab35ce6071c05ed1d6f6a943a90e9eef25110354 100644 (file)
@@ -132,6 +132,7 @@ typedef struct mmblockstruct
 {
        //word  start,length;
        word    start;  dword length;
+       word    blob;   //fore data larger than 64k
        unsigned        attributes;
        memptr          *useptr;        // pointer to the segment start
        struct mmblockstruct huge *next;
index e14a2a4441743fd28bced6beb5ede83436f73c42..8a6d833882f2e5a7a12cc36cfc621a857eabdf5f 100644 (file)
Binary files a/test.exe and b/test.exe differ
index 618ccf2c43f8e2f070ffc0b516a8a7d45db15874..de349da65c393ae7d913f7de43af40d16dc38212 100644 (file)
Binary files a/test2.exe and b/test2.exe differ
index 282bd13ede9bc83446ee5e8bbb9a2071df50eeb4..8a00b50cab11b0320893fc840817776e74a28ef4 100644 (file)
Binary files a/tsthimem.exe and b/tsthimem.exe differ