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));
==========================\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
==========================\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
==========================\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
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
\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
\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
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:
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;
}
//
dword MM_UnusedMemory(mminfo_t *mm)
{
- unsigned free;
+ dword free;
mmblocktype huge *scan;
free = 0;
while(scan->next)
{
- free += scan->next->start - (scan->start + scan->length);
+ free += (dword)scan->next->start - (scan->start + scan->length);
scan = scan->next;
}
dword MM_TotalFree(mminfo_t *mm)
{
- unsigned free;
+ dword free;
mmblocktype huge *scan;
free = 0;
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;
}