]> 4ch.mooo.com Git - 16.git/commitdiff
there seems to be compatibility issues with the graphical library and the memory...
authorsparky4 <sparky4@cock.li>
Tue, 21 Jul 2015 21:22:05 +0000 (16:22 -0500)
committersparky4 <sparky4@cock.li>
Tue, 21 Jul 2015 21:22:05 +0000 (16:22 -0500)
modified:   16.exe
modified:   DEBUG.TXT
modified:   MMDUMP.TXT
modified:   exmmtest.exe
modified:   fmemtest.exe
modified:   fontgfx.exe
modified:   fonttest.exe
modified:   inputest.exe
modified:   makefile
modified:   maptest.exe
modified:   palettec.exe
modified:   pcxtest.exe
modified:   sountest.exe
modified:   src/exmmtest.c
modified:   src/lib/16_mm.c
modified:   src/lib/16_mm.h
modified:   test.exe
modified:   test2.exe
modified:   tsthimem.exe

19 files changed:
16.exe
DEBUG.TXT
MMDUMP.TXT
exmmtest.exe
fmemtest.exe
fontgfx.exe
fonttest.exe
inputest.exe
makefile
maptest.exe
palettec.exe
pcxtest.exe
sountest.exe
src/exmmtest.c
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 7f8f0d89126ce08bf86efaefae4566b0e44d3428..8a4d70a03623570dc6e682c0af1966d0ecb4cd0c 100644 (file)
Binary files a/16.exe and b/16.exe differ
index be53f105d3597f5a8a40d9a22e3dd4f803e132f4..e324c60983f5740ad17dff94d733f94145514344 100644 (file)
--- a/DEBUG.TXT
+++ b/DEBUG.TXT
@@ -1,7 +1,6 @@
-Seg:0  Size:13296      Owner:0x8bfb\r
-Seg:33f        Size:4096       Owner:0x32e2\r
-Seg:989        Size:24384      Owner:0xc0b6\r
-Seg:15c7       Size:828304     Owner:0xfd5c\r
-Seg:e000       Size:31344      Owner:0x5aa8\r
+Seg:0  Size:92208      Owner:0x5b92\r
+Seg:1683       Size:4096       Owner:0x7298\r
+Seg:1cad       Size:8752       Owner:0xf686\r
+Seg:5ece       Size:529184     Owner:0xfe\r
 \r
 MM_ShowMemory: Memory block order currupted!\r
index ce05fb452f232db83cd9af30fe3d0f76126e60ca..eb2546badec1eee4127e0aee8e22b1627529d82c 100644 (file)
Binary files a/MMDUMP.TXT and b/MMDUMP.TXT differ
index 977918040a74b68e59adc39160968ccfcf1b4560..c60cd9c8b5fe5abffd80c31988174896554caf7f 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index dd4e540bbaa97b51da673f0b433a56afb60b5c9a..27be6722db725454e2b4059c942f79a25e83f434 100644 (file)
Binary files a/fmemtest.exe and b/fmemtest.exe differ
index 6dae4b0b04cf735d5f56faf01c3f85105765de38..a6c574198c3f45fc450c067d7d76157c875a838a 100644 (file)
Binary files a/fontgfx.exe and b/fontgfx.exe differ
index f8d209f15230e362df2fb76c3c37681977dfb561..43a4e89751b432595aebd24409df430c2990aad9 100644 (file)
Binary files a/fonttest.exe and b/fonttest.exe differ
index 8573f4ea29dcc5b6af9b8746c57f1914a31f4e7b..a23905b5dac23c7c90c436553ea4f2676724cd54 100644 (file)
Binary files a/inputest.exe and b/inputest.exe differ
index 2d922640034bbae2a9acbf510ee179f6db8ea212..3d27a0de7330cb34f747ae9256b64200ec4742f7 100644 (file)
--- a/makefile
+++ b/makefile
@@ -13,9 +13,9 @@ TARGET_OS = dos
 #-zkl = current codepage
 
 DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1# -zm
-CFLAGS=-zk0 -wo -x -mc -zu -k16384# -zdp# -zp16 -zq
+CFLAGS=-zk0 -wo -x -mc -zu -k32768#16384# -zdp# -zp16 -zq
 OFLAGS=-ot -ox -ob -oh -or# -om -ol -ol+
-FLAGS=-0 -lr $(OFLAGS) $(CFLAGS) $(DFLAGS) #-d2
+FLAGS=-0 -lr $(OFLAGS) $(CFLAGS) $(DFLAGS) -d2
 SRC=src$(DIRSEP)
 SRCLIB=$(SRC)lib$(DIRSEP)
 JSMNLIB=$(SRCLIB)jsmn$(DIRSEP)
index 32f04da93f27ca799e38bd647c3d9055f75e387d..ac7236cb3bc95c40d340ad2638bcbd5bf0f293ab 100644 (file)
Binary files a/maptest.exe and b/maptest.exe differ
index 9135dbb9422883cadf9530610e9d326d6338bd01..7092088f45b42d12cc875aa32a34903aae4dbb04 100644 (file)
Binary files a/palettec.exe and b/palettec.exe differ
index 194b23d60c139841fe88a6da9908b0fa41738340..9a4741b62a12d4448c939f561c8b1a53d0508b71 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index 40807e63f8fdff9704797a0645ae20a7e108d290..dd1e01817fcb930b3ccafb8803d03517d4221e4c 100644 (file)
Binary files a/sountest.exe and b/sountest.exe differ
index 29429e1d8ad8e62dcbe7d5ef937169003c2a22eb..b0629790e726515a2deef9d3c40dee79e9fc02bc 100644 (file)
@@ -26,7 +26,8 @@
 #include "src/lib/16_mm.h"
 #include "src/lib/modex16.h"
 
-#define FILERL
+//#define FILERL
+//#define FILEINIT
 
 void
 main(int argc, char *argv[])
@@ -38,25 +39,32 @@ main(int argc, char *argv[])
        word baka;
        page_t screen;
 
-       bakapee = malloc(64);
+       bakapee = _nmalloc(64);
 //     memset(bakapee, 0, 64);
        mm.mmstarted=0;
 
        if(argv[1]) bakapee = argv[1];
        else bakapee = "data/koishi~~.pcx";
-       //if(argv[2])
-       //      #define FILEINIT
 
        textInit();\r
 
-       /* setup camera and screen~ */\r
-       screen = modexDefaultPage();\r
+       /* setup camera and screen~ */
+       //bug!!!\r
+       /*screen = modexDefaultPage();\r
        screen.width += (16*2);\r
-       screen.height += (16*2);
+       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]);
 #ifdef FILERL
 #ifdef FILEINIT
@@ -80,7 +88,7 @@ main(int argc, char *argv[])
        modexEnter();
        modexShowPage(&screen);
        MM_ShowMemory(&screen, &mm);
-       //getch();
+       getch();
        MM_DumpData(&mm);
        modexLeave();
        MM_Report(&screen, &mm, &mmi);
index 184dc9e8ef9c3881ffb042f276a53462a18ae91b..a21c55dc29818f0a8b6a2d23ea89777c0cd985c6 100644 (file)
@@ -662,8 +662,6 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
        mm->mmnew->next = NULL;
        mm->mmrover = mm->mmhead;
 
-//     farlen=_bios_memsize()*1024;
-
 //
 // get all available near conventional memory segments
 //
@@ -671,14 +669,28 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
 //---- length=coreleft();
        _nheapgrow();
        length=_memavl();
-       start = (void huge *)(mm->nearheap = malloc(length));
+       start = (void huge *)(mm->nearheap = _nmalloc(length));
        length -= 16-(FP_OFF(start)&15);
        length -= SAVENEARHEAP;
        seglength = length / 16;                        // now in paragraphs
        segstart = FP_SEG(start)+(FP_OFF(start)+15)/16;
        MML_UseSpace(segstart,seglength, mm);
        mmi->nearheap = length;
-       printf("                near heap ok!\n");
+       /*switch( _nheapchk() ) {
+               case _HEAPOK:
+                       printf( "OK - nearheap is good\n" );
+               break;
+               case _HEAPEMPTY:
+                       printf( "OK - nearheap is empty\n" );
+               break;
+               case _HEAPBADBEGIN:
+                       printf( "ERROR - nearheap is damaged\n" );
+               break;
+               case _HEAPBADNODE:
+                       printf( "ERROR - bad node in nearheap\n" );
+               break;
+       }*/
+//     printf("                near heap ok!\n");
 
 //
 // get all available far conventional memory segments
@@ -686,7 +698,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
 //---- length=farcoreleft();
        printf("                farheap making!\n");
        _fheapgrow();
-       length=_memavl();
+       length=0xffffUL*4UL;//_memavl();
        start = mm->farheap = halloc(length, sizeof(byte));
        //start = mm->farheap = _fmalloc(length);
        length -= 16-(FP_OFF(start)&15);
@@ -696,33 +708,49 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
        MML_UseSpace(segstart,seglength, mm);
        mmi->farheap = length;
        mmi->mainmem = mmi->nearheap + mmi->farheap;
-       printf("                far heap ok!\n");
-
+       /*switch( _fheapchk() ) {
+               case _HEAPOK:
+                       printf( "OK - farheap is good\n" );
+               break;
+               case _HEAPEMPTY:
+                       printf( "OK - farheap is empty\n" );
+               break;
+               case _HEAPBADBEGIN:
+                       printf( "ERROR - farheap is damaged\n" );
+               break;
+               case _HEAPBADNODE:
+                       printf( "ERROR - bad node in farheap\n" );
+               break;
+       }*/
+       //printf("              far heap ok!\n");
 
 //
 // detect EMS and allocate up to 64K at page frame
 //
-       printf("                EMS1\n\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!
+printf("               EMS1\n");
+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!
        mmi->EMSmem = 0;
        for(i = 1;i < __argc;i++)
        {
                if(US_CheckParm(__argv[i],ParmStringsexmm) == 0)
                        goto emsskip;                           // param NOEMS
        }
-       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!
+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!
        if(MML_CheckForEMS())
        {
 printf("               EMS2\n");
+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!
                MML_SetupEMS(mm);                                       // allocate space
 printf("               EMS3\n");
-               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!
+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!
                MML_UseSpace(mm->EMSpageframe,(MAPPAGES)*0x4000lu, mm);
+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!
 printf("               EMS4\n");
-               //if(mm->EMSVer<0x40)
+               if(mm->EMSVer<0x40)
                        MM_MapEMS(mm, mmi);                                     // map in used pages
-               //else
-               //      MM_MapXEMS(mm, mmi);                                    // map in used pages
+               else
+                       MM_MapXEMS(mm, mmi);                                    // map in used pages
        }
 
 //
@@ -735,11 +763,12 @@ emsskip:
                if(US_CheckParm(__argv[i],ParmStringsexmm) == 0)
                        goto xmsskip;                           // param NOXMS
        }
-       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!
+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!
        if(MML_CheckForXMS(mm))
        {
-               printf("                XMS!\n");
-               //MML_SetupXMS(mm, mmi);                                        // allocate as many UMBs as possible
+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!
+printf("               XMS!\n");
+               //++++          MML_SetupXMS(mm, mmi);                                  // allocate as many UMBs as possible
        }
 
 //
index 7284752c8f9f9535862d67aedbd2452e377fb013..c40b9855e7674f4a0cfc36a0a46bb414c6a5bde6 100644 (file)
@@ -36,8 +36,8 @@
 #endif
 
 
-#define SAVENEARHEAP   0x4000          // space to leave in data segment
-#define SAVEFARHEAP    0x4000                  // space to leave in far heap
+#define SAVENEARHEAP   0x200           // space to leave in data segment
+#define SAVEFARHEAP    0//x4000                        // space to leave in far heap
 
 #define        BUFFERSIZE              0x1000          // miscelanious, allways available buffer
 
@@ -135,7 +135,7 @@ typedef struct
        memptr bufferseg;
        boolean         mmstarted, bombonerror, mmerror;
        void huge       *farheap;
-       void            *nearheap;
+       void    *nearheap;
        //byte          EMS_status;
        unsigned        totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle;
        unsigned int EMSVer;
index f6977eb1648d4d26cd8bd1a17cccc62426040180..6001ac60999730c143e4c23a7b633358fa736679 100644 (file)
Binary files a/test.exe and b/test.exe differ
index ba76d6b50abbcfde6d9649d6a6381f815274c294..5e5e674b101dc619d6f4a88d992b0cde06c99531 100644 (file)
Binary files a/test2.exe and b/test2.exe differ
index e9b1e3804586f02c4654bf8af78c3c82479e1f17..f726c5ea1e585069ed9ee65724294c1e911fc944 100644 (file)
Binary files a/tsthimem.exe and b/tsthimem.exe differ