From: sparky4 Date: Wed, 22 Jul 2015 02:22:37 +0000 (-0500) Subject: FUCK IT! X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=1bbf1963b1b967c37d24f6da75beaa8c213dbab8;p=16.git 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 --- 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 c3648a37..e69de29b 100644 Binary files a/MMDUMP.TXT and b/MMDUMP.TXT differ diff --git a/inputest.exe b/inputest.exe index 152e4f48..22a7b6d8 100644 Binary files a/inputest.exe and b/inputest.exe differ diff --git a/mmtest.exe b/mmtest.exe index c5855a6f..ce1bf5d4 100644 Binary files a/mmtest.exe and b/mmtest.exe differ diff --git a/sountest.exe b/sountest.exe index 8075c8a0..e4ab3b05 100644 Binary files a/sountest.exe and b/sountest.exe differ 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 }