+byte MM_MapXEMS(mminfo_t *mm)
+{
+
+//SUB EMS.MapXPages (PhysicalStart, LogicalStart, NumPages, Handle)\r
+\r
+ //Maps up to 4 logical EMS pages to physical pages in the page frame, where:\r
+ //PhysicalStart = Physical page first logical page is mapped to\r
+ //LogicalStart = First logical page to map\r
+ //NumPages = Number of pages to map (1 to 4)\r
+ //Handle = EMS handle logical pages are allocated to\r
+\r
+ /*//Create a buffer containing the page information\r
+// FOR x = 0 TO NumPages - 1\r
+// MapInfo$ = MapInfo$ + MKI$(LogicalStart + x) + MKI$(PhysicalStart + x)\r
+// NEXT*/\r
+\r
+// Regs.ax = &H5000 //Map the pages in the buffer\r
+// Regs.cx = NumPages //to the pageframe\r
+// Regs.dx = Handle\r
+// Regs.ds = VARSEG(MapInfo$)\r
+// Regs.si = SADD(MapInfo$)\r
+// InterruptX &H67, Regs, Regs\r
+// EMS.Error = (Regs.ax AND &HFF00&) \ &H100 //Store the status code\r
+\r
+//END SUB
+/*
+char str[80];//,str2[10];
+ unsigned EMShandle;
+ byte err;
+ boolean errorflag=false;
+ int i;
+ union REGS CPURegs;
+ EMShandle=mm->EMShandle;
+
+ for (i=0;i<MAPPAGES;i++)
+ {
+ __asm
+ {
+ mov ah,EMS_MAPPAGE
+ mov bx,[i] // logical page
+ mov al,bl // physical page
+ mov dx,[EMShandle] // handle
+ int EMS_INT
+ or ah,ah
+ jnz error
+ jmp End
+ error:
+ mov err,ah
+ mov errorflag,1
+ End:
+ }
+ if(errorflag==true)
+ {
+ //err = CPURegs.h.ah;
+ strcpy(str,"MM_MapEMS: EMS error 0x");
+ //itoa(err,str2,16);
+ //strcat(str,&err);
+ //printf("%s\n",str);
+ printf("%s%x\n",str, err);
+ //printf("FACK! %x\n", err);
+ return err;
+ }
+ }
+ return 0;
+*/
+}
+