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
if(argv[1]) bakapee = argv[1];
else bakapee = "data/koishi~~.pcx";
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;
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;
//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));
//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
==========================\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;
{\r
boolean flag;\r
dword fat=0;
+ word segm=0;
+ //if(mm->EMSVer<0x40)\r
segm=(length%0xfffflu)-1;
fat=segm*0xfffflu;
length-=fat;\r
segm=(length%0xfffflu)-1;
fat=segm*0xfffflu;
length-=fat;\r
==========================\r
*/\r
\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;
{\r
boolean flag;\r
dword fat=0;
+ word segm=0;
+ //if(mm->EMSVer<0x40)\r
segm=(length%0xfffflu)-1;
fat=segm*0xfffflu;
length-=fat;\r
segm=(length%0xfffflu)-1;
fat=segm*0xfffflu;
length-=fat;\r
==========================\r
*/\r
\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
{\r
int handle;\r
dword size;\r
return false;\r
\r
size = filelength(handle);\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
close(handle);\r
return false;\r
\r
size = filelength (handle);\r
MM_GetPtr(ptr,size, mm, mmi);\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
close(handle);\r
return false;\r
\r
void CA_OpenDebug (void);\r
void CA_CloseDebug (void);\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
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);
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");
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!
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");
//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)
{
dword MM_UnusedMemory(mminfo_t *mm)
{
mmblocktype huge *scan;
free = 0;
mmblocktype huge *scan;
free = 0;
- free += scan->next->start - (scan->start + scan->length);
+ free += (dword)scan->next->start - (scan->start + scan->length);
dword MM_TotalFree(mminfo_t *mm)
{
dword MM_TotalFree(mminfo_t *mm)
{
mmblocktype huge *scan;
free = 0;
mmblocktype huge *scan;
free = 0;
while(scan->next)
{
if((scan->attributes&PURGEBITS) && !(scan->attributes&LOCKBIT))
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);