unsigned int EMSVer = 0;
//byte EMS_status;
- unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle;
- totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0;
+ unsigned totalEMSpages,freeEMSpages,EMSPageFrame,EMSpagesmapped,EMSHandle;
+ totalEMSpages = freeEMSpages = EMSPageFrame = EMSpagesmapped = 0;
__asm {
mov ah,EMS_STATUS
int EMS_INT // find the page frame address
or ah,ah
jnz error
- mov [EMSpageframe],bx
+ mov [EMSPageFrame],bx
mov ah,EMS_GETPAGES
int EMS_INT // find out how much EMS is there
int EMS_INT
or ah,ah
jnz error
- mov [EMShandle],dx
+ mov [EMSHandle],dx
jmp End
#ifdef __BORLANDC__
}
printf("%s\n",str);
return err;
}
- gvar->mm.totalEMSpages=totalEMSpages;
- gvar->mm.freeEMSpages=freeEMSpages;
- gvar->mm.EMSpageframe=EMSpageframe;
- gvar->mm.EMSpagesmapped=EMSpagesmapped;
- gvar->mm.EMShandle=EMShandle;
- gvar->mm.EMSVer=EMSVer;
+ gvar->pm.emm.totalEMSpages=totalEMSpages;
+ gvar->pm.emm.freeEMSpages=freeEMSpages;
+ gvar->pm.emm.EMSPageFrame=EMSPageFrame;
+ gvar->pm.emm.EMSpagesmapped=EMSpagesmapped;
+ gvar->pm.emm.EMSHandle=EMSHandle;
+ gvar->pm.emm.EMSVer=EMSVer;
return 0;
}
void MML_ShutdownEMS(global_game_variables_t *gvar)
{
boolean errorflag=false;
- unsigned EMShandle=gvar->mm.EMShandle;
+ unsigned EMSHandle=gvar->pm.emm.EMSHandle;
- if(!EMShandle)
+ if(!EMSHandle)
return;
__asm {
mov ah,EMS_FREEPAGES
- mov dx,[EMShandle]
+ mov dx,[EMSHandle]
int EMS_INT
or ah,ah
jz ok
byte MM_MapEMS(global_game_variables_t *gvar)
{
byte str[160];
- unsigned EMShandle;
+ unsigned EMSHandle;
byte err;
boolean errorflag=false;
int i;
- EMShandle=gvar->mm.EMShandle;
+ EMSHandle=gvar->pm.emm.EMSHandle;
for (i=0;i<4/*MAPPAGES*/;i++)
{
mov ah,EMS_MAPPAGE
mov bx,[i] // logical page
mov al,bl // physical page
- mov dx,[EMShandle] // handle
+ mov dx,[EMSHandle] // handle
int EMS_INT
or ah,ah
jnz error
//END SUB
byte str[160];
byte err;
- word EMShandle;
+ word EMSHandle;
boolean errorflag=false;
int i;
- EMShandle=gvar->mm.EMShandle;
+ EMSHandle=gvar->pm.emm.EMSHandle;
- if(gvar->mm.EMSVer<0x40)
+ if(gvar->pm.emm.EMSVer<0x40)
return 5;
for (i=0;i<MAPPAGES;i++)
mov ah,EMS_MAPXPAGE
mov cx,[i] // logical page
mov al,bl // physical page
- mov dx,[EMShandle] // handle
+ mov dx,[EMSHandle] // handle
int EMS_INT
or ah,ah
jnz error
{
MML_SetupEMS(gvar); // allocate space
//TODO: EMS4! AND EMS 3.2 MASSIVE DATA HANDLMENT!
- MML_UseSpace(gvar->mm.EMSpageframe,(MAPPAGES)*0x4000lu, gvar);
+ MML_UseSpace(gvar->pm.emm.EMSPageFrame,(MAPPAGES)*0x4000lu, gvar);
//if(gvar->pm.emm.EMSVer<0x40)
MM_MapEMS(gvar); // map in used pages
//else
gvar->mm.mmnew->useptr = baseptr;
//if(gvar->mm.mmnew->useptr==NULL){
#ifdef __DEBUG__
- printf("baseptr=%04x ", baseptr); printf("useptr=%04x\n", gvar->mm.mmnew->useptr);
- printf("*baseptr=%04x ", *baseptr); printf("*useptr=%04x\n", *(gvar->mm.mmnew->useptr));
- printf("*baseptr=%Fp ", *baseptr); printf("*useptr=%Fp\n", *(gvar->mm.mmnew->useptr));
+ printf(" MM_GetPtr\n");
+ printf(" baseptr=%04x ", baseptr); printf("useptr=%04x\n", gvar->mm.mmnew->useptr);
+ printf(" *baseptr=%04x ", *baseptr); printf("*useptr=%04x\n", *(gvar->mm.mmnew->useptr));
+ printf(" *baseptr=%Fp ", *baseptr); printf("*useptr=%Fp\n", *(gvar->mm.mmnew->useptr));
#endif
//exit(-5); }
gvar->mm.mmnew->attributes = BASEATTRIBUTES;
gvar->mm.mmrover = gvar->mm.mmhead;
else if(gvar->mm.mmrover == start)
{
- Quit("MM_SetPurge: Block not found!");
- //return;
+ //Quit("MM_SetPurge: Block not found!");
+ printf("%Fp %u\n", start->start, start->length);
+ printf("MM_SetPurge: Block not found!\n");
+ exit(1);
+ return;
}
} while(1);
if(MML_CheckForEMS())
{
printf(" LIMEMS\n");
- printf(" EMM v%x.%x available\n", gvar->mm.EMSVer>>4,gvar->mm.EMSVer&0x0F);
- printf(" totalEMSpages: %u ", gvar->mm.totalEMSpages); printf("freeEMSpages: %u\n", gvar->mm.freeEMSpages);
- printf(" EMSpageframe: %x\n", gvar->mm.EMSpageframe);
+ printf(" EMM v%x.%x available\n", gvar->pm.emm.EMSVer>>4,gvar->pm.emm.EMSVer&0x0F);
+ printf(" totalEMSpages: %u ", gvar->pm.emm.totalEMSpages); printf("freeEMSpages: %u\n", gvar->pm.emm.freeEMSpages);
+ printf(" EMSPageFrame: %x\n", gvar->pm.emm.EMSPageFrame);
}
if(MML_CheckForXMS(gvar))
{