- // Don't hog all available EMS\r
- size = gvar->pm.emm.EMSAvail * (long)EMSPageSize;\r
- if (size - (EMSPageSize * 2) > (gvar->pm.fi.ChunksInFile * (long)PMPageSize))\r
+ mov ah,EMS_GETFRAME\r
+ int EMS_INT // find the page frame address\r
+ or ah,ah\r
+ jnz erroreu\r
+ mov [EMSPageFrame],bx\r
+\r
+ mov ah,EMS_GETPAGES\r
+ int EMS_INT // find out how much EMS is there\r
+ or ah,ah\r
+ jnz erroreu\r
+ or bx,bx\r
+ jz noEMS // no EMS at all to allocate\r
+ cmp bx,2\r
+ jl noEMS // Require at least 2 pages (32k)\r
+ mov [totalEMSpages],dx\r
+ mov [freeEMSpages],bx\r
+ mov [EMSAvail],bx\r
+ jmp Endeu\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
+ erroreu:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
+ mov err,ah\r
+ mov errorflag,1\r
+ jmp Endeu\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
+ noEMS:\r
+ Endeu:\r
+#ifdef __WATCOMC__\r
+ }\r
+#endif\r
+/*\r
+ if(errorflag==false)\r