]> 4ch.mooo.com Git - 16.git/commitdiff
wwww problems with length of memory block...
authorsparky4 <sparky4@cock.li>
Fri, 3 Jul 2015 07:20:08 +0000 (02:20 -0500)
committersparky4 <sparky4@cock.li>
Fri, 3 Jul 2015 07:20:08 +0000 (02:20 -0500)
modified:   exmmtest.exe
modified:   palettec.exe
modified:   pcxtest.exe
modified:   src/exmmtest.c
modified:   src/lib/16_ca.c
modified:   src/lib/16_ca.h
modified:   src/lib/16_mm.c
modified:   test.exe
modified:   test2.exe

exmmtest.exe
palettec.exe
pcxtest.exe
src/exmmtest.c
src/lib/16_ca.c
src/lib/16_ca.h
src/lib/16_mm.c
test.exe
test2.exe

index 0cda686f4c5bb1aedc5e37aca4207f98d384466e..32084dc71187510e405f8229aa31c4804b856b28 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index fdbe4d525a09ab042a5e90220fea11d6d9dc2a6c..1df956b83cdee6e76c98fb1f20ed73164eb0ad0b 100644 (file)
Binary files a/palettec.exe and b/palettec.exe differ
index a48d8ebe53697cf66ac2f7ff6aba3bf634ce6daa..c1ec6d87d53155220466f73d10b06ae4e1a9b68a 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index 61d77a3028809bb7de632b513b3dcc881c53ea8d..00d01bf119415c556c5922d06f89fb92c85ab4d5 100644 (file)
@@ -40,13 +40,14 @@ main(int argc, char *argv[])
 
        if(argv[1]) bakapee = argv[1];
        else bakapee = "data/koishi~~.pcx";
-       
+
        printf("start!\n");
        MM_Startup(&mm, &mmi);
        printf("done!\n");
        printf("&main()=%Fp\n", *argv[0]);
        if(CA_LoadFile(bakapee, &bigbuffer, &mm, &mmi)) baka=1;
-       else baka=0;
+       else
+               baka=0;
        //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));
index fe76ec2c4ad5f8ef5184824ca3b6556708715766..df722daeaa8fecd97faba02ecc7bd34ea07d1e41 100644 (file)
@@ -216,13 +216,15 @@ void CAL_GetGrChunkLength (int chunk)
 ==========================\r
 */\r
 \r
-boolean CA_FarRead(int handle, byte huge *dest, dword length)\r
+boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm)\r
 {\r
        boolean flag;\r
        dword fat=0;
-       word segm=0;\r
+       word segm=0;
+       //if(mm->EMSVer<0x40)\r
        if(length>0xfffflu)
        {
+               printf("pee\n");
                segm=(length%0xfffflu)-1;
                fat=segm*0xfffflu;
                length-=fat;\r
@@ -270,13 +272,15 @@ End:
 ==========================\r
 */\r
 \r
-boolean CA_FarWrite(int handle, byte huge *source, dword length)\r
+boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm)\r
 {\r
        boolean flag;\r
        dword fat=0;
-       word segm=0;\r
+       word segm=0;
+       //if(mm->EMSVer<0x40)\r
        if(length>0xfffflu)
        {
+               printf("pee\n");
                segm=(length%0xfffflu)-1;
                fat=segm*0xfffflu;
                length-=fat;\r
@@ -324,7 +328,7 @@ End:
 ==========================\r
 */\r
 \r
-boolean CA_ReadFile(char *filename, memptr *ptr)\r
+boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm)\r
 {\r
        int handle;\r
        dword size;\r
@@ -333,7 +337,7 @@ boolean CA_ReadFile(char *filename, memptr *ptr)
                return false;\r
 \r
        size = filelength(handle);\r
-       if(!CA_FarRead(handle,*ptr,size))\r
+       if(!CA_FarRead(handle,*ptr,size, mm))\r
        {\r
                close(handle);\r
                return false;\r
@@ -364,7 +368,7 @@ boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi)
 \r
        size = filelength (handle);\r
        MM_GetPtr(ptr,size, mm, mmi);\r
-       if(!CA_FarRead(handle,*ptr,size))\r
+       if(!CA_FarRead(handle,*ptr,size, mm))\r
        {\r
                close(handle);\r
                return false;\r
index d424b8080c43541ed86e486e085040216028e35f..b752bae52eb8d782bc8c403de284fad56f14e15b 100644 (file)
@@ -86,9 +86,9 @@ extern        void    (*finishcachebox)       (void);
 \r
 void CA_OpenDebug (void);\r
 void CA_CloseDebug (void);\r
-boolean CA_FarRead (int handle, byte huge *dest, dword length);\r
-boolean CA_FarWrite (int handle, byte huge *source, dword length);\r
-boolean CA_ReadFile (char *filename, memptr *ptr);\r
+boolean CA_FarRead (int handle, byte huge *dest, dword length, mminfo_t *mm);\r
+boolean CA_FarWrite (int handle, byte huge *source, dword length, mminfo_t *mm);\r
+boolean CA_ReadFile (char *filename, memptr *ptr, mminfo_t *mm);\r
 boolean CA_LoadFile (char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi);\r
 \r
 //long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,unsigned rlewtag);\r
index 530bc45b2ad9d7f2c982e94b675a993030b4a6b4..355a4c79c6e812a5736b53667662582a4582e849 100644 (file)
@@ -451,7 +451,7 @@ void MML_UseSpace(unsigned segstart, dword seglength, mminfo_t *mm)
                extra-=fat;
 //printf("extra=%lu    ", extra);
 //printf("segm=%lu\n", segm);
-               printf("MML_UseSpace: Segment spans two blocks!\n");\r
+               printf("MML_UseSpace: Segment spans two blocks!\n");
        }
 
 //segu:
@@ -610,13 +610,11 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
                MML_SetupEMS(mm);                                       // allocate space
                printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");     //bug!
                //TODO: EMS4! AND EMS 3.2 MASSIVE DATA HANDLMENT!
-               if(mm->EMSVer>=0x40) MML_UseSpace(mm->EMSpageframe,((dword)mm->EMSpagesmapped)*0x4000lu, mm);
-               else MML_UseSpace(mm->EMSpageframe,mm->EMSpagesmapped*0x4000lu, mm);
+               MML_UseSpace(mm->EMSpageframe,((dword)mm->EMSpagesmapped)*0x4000lu, mm);
 //printf("EMS3\n");
                MM_MapEMS(mm);                                  // map in used pages
 //printf("EMS4\n");
-               if(mm->EMSVer>=0x40) mmi->EMSmem = ((dword)mm->EMSpagesmapped)*0x4000lu;
-               else mmi->EMSmem = mm->EMSpagesmapped*0x4000lu;
+               mmi->EMSmem = ((dword)mm->EMSpagesmapped)*0x4000lu;
        }
 
 //
@@ -1090,7 +1088,7 @@ fprintf(stdout, "%s", scratch);
 
 dword MM_UnusedMemory(mminfo_t *mm)
 {
-       unsigned free;
+       dword free;
        mmblocktype huge *scan;
 
        free = 0;
@@ -1098,7 +1096,7 @@ dword MM_UnusedMemory(mminfo_t *mm)
 
        while(scan->next)
        {
-               free += scan->next->start - (scan->start + scan->length);
+               free += (dword)scan->next->start - (scan->start + scan->length);
                scan = scan->next;
        }
 
@@ -1121,7 +1119,7 @@ dword MM_UnusedMemory(mminfo_t *mm)
 
 dword MM_TotalFree(mminfo_t *mm)
 {
-       unsigned free;
+       dword free;
        mmblocktype huge *scan;
 
        free = 0;
@@ -1130,8 +1128,8 @@ dword MM_TotalFree(mminfo_t *mm)
        while(scan->next)
        {
                if((scan->attributes&PURGEBITS) && !(scan->attributes&LOCKBIT))
-                       free += scan->length;
-               free += scan->next->start - (scan->start + scan->length);
+                       free += (dword)scan->length;
+               free += (dword)scan->next->start - (scan->start + scan->length);
                scan = scan->next;
        }
 
index 2d34c0e72cf11ceab7fa295a3ad494d039704d7c..754df6756f8235706a3eeb4cbca84afd6368ecad 100644 (file)
Binary files a/test.exe and b/test.exe differ
index 8170641b4429d6f9d32cc6d289f9b510cae16688..53173f24550509cf820107f951affde5cd65e707 100644 (file)
Binary files a/test2.exe and b/test2.exe differ