From 1bbf1963b1b967c37d24f6da75beaa8c213dbab8 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 21 Jul 2015 21:22:37 -0500 Subject: [PATCH] FUCK IT! modified: DEBUG.TXT modified: MMDUMP.TXT modified: inputest.exe modified: mmtest.exe modified: sountest.exe modified: src/lib/16_head.h modified: src/lib/16_mm.c modified: src/lib/16_mm.h modified: src/mmtest.c --- DEBUG.TXT | 9 +++--- MMDUMP.TXT | Bin 22 -> 0 bytes inputest.exe | Bin 43195 -> 43195 bytes mmtest.exe | Bin 12574 -> 57814 bytes sountest.exe | Bin 70329 -> 70329 bytes src/lib/16_head.h | 1 + src/lib/16_mm.c | 31 +++++++++++---------- src/lib/16_mm.h | 9 +++--- src/mmtest.c | 69 +++++++++++++++++++++++++--------------------- 9 files changed, 63 insertions(+), 56 deletions(-) diff --git a/DEBUG.TXT b/DEBUG.TXT index d48599be..3b35d096 100644 --- a/DEBUG.TXT +++ b/DEBUG.TXT @@ -1,5 +1,4 @@ -Seg:0 Size:46544 Owner:0x0 -Seg:b5d Size:4096 Owner:0x1586 -Seg:199b Size:9264 Owner:0x0 -Seg:5bdc Size:541248 Owner:0x0 -Seg:e000 Size:131056 Owner:0x0 +Seg:1411 Size:557915488 Owner:0x1511 +Seg:8bfd Size:-385858080 Owner:0x8ba6 + +MM_ShowMemory: Memory block order currupted! diff --git a/MMDUMP.TXT b/MMDUMP.TXT index c3648a3777c48b92a8a4f0808eb582e286a199bf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 22 dcmXr0FfcGmu`)EZFjLUbWzbZxRWRV?0suD@1P=fJ diff --git a/inputest.exe b/inputest.exe index 152e4f48bad271b5a608856d0253075bdaa01cc7..22a7b6d8c844222b332fb8ce02e41dcae43a842b 100644 GIT binary patch delta 64 zcmdmek!klurVXEBC)>rz^NKPuFbFU`Wnf^CP_dZ&J64v%4k#kgz-Td9Ax?@hX>(kh Sq5zQ7kmto{vH5h~2TK5floOZ$ delta 84 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­ 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 Y^x#Ig(<9R_;I9INRWiqPT#L~E0g-P9C;$Ke diff --git a/sountest.exe b/sountest.exe index 8075c8a07f2b27efc2fd2a36edd0b3066131e324..e4ab3b05815e33f7afc15f01d515115905b8f7aa 100644 GIT binary patch delta 113 zcmdnFlx62qmJKHtPF}K5aI)GWK3`Er1_lA9rwj}X5-Juz_GLy!X0Edw3=FOnCBeyw ud47qxsl^P;%n7V^Kv{_fMifOTDwvZtn=VomV6>PVzR8QxV)LR+;t2rp{2pll delta 87 zcmdnFlx62qmJKHt>IpDCWnf^CP!VNhV7Sc4$jo(?gMq=dq9iyuG0!hCH?^37nK^+~ q8YnB#z$iLdYLOI^J>%r#3l$j?H=8a}6ab2aZ}MUk-Mna%cme<=3K(Dj diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 18e0e4c0..9e00e49d 100644 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -36,6 +36,7 @@ #include // just for wait #include // just for wait #include +#include #include #include #include diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 5e6cb813..a772c102 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -629,19 +629,21 @@ void MML_ClearBlock(mminfo_t *mm) void MM_Startup(mminfo_t *mm, mminfotype *mmi) { int i; - dword length; + dword length,seglength; void huge *start; - unsigned segstart,seglength,endfree; + unsigned segstart,endfree; + printf("mmi->segu=%Fp\n", (mmi->segu)); if(mm->mmstarted) MM_Shutdown(mm); mm->mmstarted = true; mm->bombonerror = true; + // // set up the linked list (everything in the free list; // - printf(" linked list making!\n"); + //printf(" linked list making!\n"); mm->mmhead = NULL; mm->mmfree = &(mm->mmblocks[0]); for(i=0;immblocks[i].next = &(mm->mmblocks[i+1]); } mm->mmblocks[i].next = NULL; + printf("mmi->segu=%Fp\n", (mmi->segu)); // // locked block of all memory until we punch out free space // - printf(" newblock making!\n"); + //printf(" newblock making!\n"); MM_GetNewBlock(mm); mm->mmhead = mm->mmnew; // this will allways be the first node mm->mmnew->start = 0; - mm->mmnew->length = 0x1; + mm->mmnew->length = 0xffff; mm->mmnew->attributes = LOCKBIT; mm->mmnew->next = NULL; mm->mmrover = mm->mmhead; + printf("mmi->segu=%Fp\n", (mmi->segu)); // // get all available near conventional memory segments // - printf(" nearheap making!\n"); + //printf(" nearheap making!\n"); //---- length=coreleft(); //_nheapgrow(); length=_memmax(); - //printf(" %Fp\n", mmi->segu); - start = (void huge *)(mm->nearheap = malloc(length)); + start = /*(void *)*/(mm->nearheap = _nmalloc(length)); length -= 16-(FP_OFF(start)&15); length -= SAVENEARHEAP; seglength = length / 16; // now in paragraphs @@ -691,16 +694,15 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) printf( "ERROR - bad node in nearheap\n" ); break; }*/ - printf(" near heap ok!\n"); + //printf(" near heap ok!\n"); // // get all available far conventional memory segments // //---- length=farcoreleft(); - printf(" farheap making!\n"); - _fheapgrow(); + //printf(" farheap making!\n"); + //_fheapgrow(); length=0xffffUL*4UL;//_memavl(); - //printf(" %Fp\n", mmi->segu); start = mm->farheap = halloc(length, sizeof(byte)); //start = mm->farheap = _fmalloc(length); length -= 16-(FP_OFF(start)&15); @@ -724,7 +726,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) printf( "ERROR - bad node in farheap\n" ); break; }*/ - printf(" far heap ok!\n"); + //printf(" far heap ok!\n"); // // detect EMS and allocate up to 64K at page frame @@ -770,8 +772,7 @@ 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 { 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 + //++++ MML_SetupXMS(mm, mmi); // allocate as many UMBs as possible } // diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 64c946a8..8b214032 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -41,7 +41,7 @@ #define BUFFERSIZE 0x1000 // miscelanious, allways available buffer -#define MAXBLOCKS 600//720 +#define MAXBLOCKS 720 @@ -91,7 +91,8 @@ typedef void __based(__self) * memptr; //__based(seg) * memptr; typedef struct { dword nearheap,farheap,EMSmem,XMSmem,mainmem; - //word __based(__segname("_CODE")) segu; + //__segment segu; + word segu; // } mminfotype; @@ -121,10 +122,10 @@ extern void (* XMSaddr) (void); // far pointer to XMS driver typedef struct mmblockstruct { - word start,length; + word start;//,length; //dword start,length; //word start; - //dword length; + dword length; //byte segm; //how many 64kb segment blocks it takes up if there is many data! unsigned attributes; memptr *useptr; // pointer to the segment start diff --git a/src/mmtest.c b/src/mmtest.c index 99fd7c3c..38b7ea15 100644 --- a/src/mmtest.c +++ b/src/mmtest.c @@ -22,36 +22,41 @@ /* 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/16_ca.h" +#include "src/lib/16_mm.h" //#include "src/lib/modex16.h" -//#define FILERL +#define FILERL //#define FILEINIT void main(int argc, char *argv[]) { - //mminfo_t mm; mminfotype mmi; - //memptr bigbuffer; - //__segment segu; - //char *bakapee; - //word baka; + static mminfo_t mm; mminfotype mmi; + static const __segment segu; + static memptr bigbuffer; + static char *bakapee; + word baka; //static page_t screen; + mmi.segu=FP_SEG(segu); + printf("&main()=%Fp\n", *argv[0]); - printf("&argc=%Fp\n", FP_SEG(&argc)); -//++++ printf("&segu=%Fp\n", segu); + printf("&segu=%p\n", (segu)); + printf("mmi.segu=%p\n", (mmi.segu)); - //++++bakapee = malloc(64); + bakapee = _nmalloc(64); // memset(bakapee, 0, 64); -//++++ mm.mmstarted=0; + mm.mmstarted=0; - /*if(argv[1]) bakapee = argv[1]; - else bakapee = "data/koishi~~.pcx";*/ + if(argv[1]) bakapee = argv[1]; + else bakapee = "data/koishi~~.pcx"; -//++++ textInit(); + textInit(); /* setup camera and screen~ */ //bug!!! @@ -59,8 +64,8 @@ main(int argc, char *argv[]) /*screen.width += (16*2); screen.height += (16*2);*/ - printf("&main()=%Fp start MM\n", *argv[0]); -//++++ MM_Startup(&mm, &mmi); + printf("main()=%Fp start MM\n", *argv[0]); + MM_Startup(&mm, &mmi); printf(" done!\n"); /*if(FP_SEG(*argv[0])==0) { @@ -71,9 +76,9 @@ main(int argc, char *argv[]) exit(-5); }*/ printf("&main()=%Fp\n", *argv[0]); - printf("&argc=%Fp\n", FP_SEG(&argc)); -//++++ printf("&segu=%Fp\n", segu); -/*++++#ifdef FILERL + printf("&segu=%p\n", (segu)); + printf("mmi.segu=%p\n", (mmi.segu)); +#ifdef FILERL #ifdef FILEINIT printf(" read\n"); if(CA_ReadFile(bakapee, &bigbuffer, &mm)) @@ -84,27 +89,27 @@ main(int argc, char *argv[]) baka=1; else baka=0; -#endif*/ +#endif //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)); printf("dark purple = purgable\n"); printf("medium blue = non purgable\n"); printf("red = locked\n"); - //++++getch(); + getch(); //++++modexEnter(); //++++modexShowPage(&screen); - //++++MM_ShowMemory(/*&screen, */&mm); - //++++getch(); - //++++MM_DumpData(&mm); + MM_ShowMemory(/*&screen, */&mm); + getch(); + MM_DumpData(&mm); //++++modexLeave(); - //++++MM_Report(&mm, &mmi); + MM_Report(&mm, &mmi); printf(" stop!\n"); -//++++ MM_FreePtr(&bigbuffer, &mm); -//++++ MM_Shutdown(&mm); + MM_FreePtr(&bigbuffer, &mm); + MM_Shutdown(&mm); printf(" done!\n"); -/*#ifdef FILERL - //++++free(bakapee); +#ifdef FILERL + free(bakapee); if(baka) printf("\nyay!\n"); else printf("\npoo!\n"); -#endif*/ +#endif } -- 2.39.5