char str[80];//,str2[10];
byte err;
boolean errorflag=false;
- union REGS CPURegs;
unsigned int EMSVer = 0;
//byte EMS_status;
mov errorflag,1
ok:
}
- if(errorflag==true) printf("MML_ShutdownEMS: Error freeing EMS!"); //++++ add something
+ if(errorflag==true) printf("MML_ShutdownEMS: Error freeing EMS!\n"); //++++ add something
}
/*
byte err;
boolean errorflag=false;
int i;
- union REGS CPURegs;
EMShandle=mm->EMShandle;
- for (i=0;i<MAPPAGES;i++)
+ for (i=0;i<4/*MAPPAGES*/;i++)
{
__asm
{
// EMS.Error = (Regs.ax AND &HFF00&) \ &H100 //Store the status code\r
\r
//END SUB
-/*
-char str[80];//,str2[10];
+ char str[80];//,str2[10];
unsigned EMShandle;
byte err;
boolean errorflag=false;
int i;
- union REGS CPURegs;
EMShandle=mm->EMShandle;
+ if(mm->EMSVer<0x40)
+ return 5;
+
for (i=0;i<MAPPAGES;i++)
{
__asm
{
- mov ah,EMS_MAPPAGE
- mov bx,[i] // logical page
+ mov ah,EMS_MAPXPAGE
+ mov cx,[i] // logical page
mov al,bl // physical page
mov dx,[EMShandle] // handle
int EMS_INT
if(errorflag==true)
{
//err = CPURegs.h.ah;
- strcpy(str,"MM_MapEMS: EMS error 0x");
+ strcpy(str,"MM_MapXEMS: EMS error 0x");
//itoa(err,str2,16);
//strcat(str,&err);
//printf("%s\n",str);
}
}
return 0;
-*/
}
//==========================================================================
#define EMS_GETPAGES 0x42
#define EMS_ALLOCPAGES 0x43
#define EMS_MAPPAGE 0x44
+#define EMS_MAPXPAGE 0x50
#define EMS_FREEPAGES 0x45
#define EMS_VERSION 0x46