At 05:38 AM 5/7/2005 +0200, Eric Auer wrote:
In some situations (try various ramdisks, resize them a bit...), the VCPI alloc loop gave up (error 88, out of memory) VERY soon.
So: Something is wrong with the VCPI allocator. Probably with the EMS allocator as well, feel free to test... In addition,
Good for you, you win a chocolate chip cookie. IF there is a free XMS block less than 4K in size, and IF that XMS block is listed first in the free handles, and IF that XMS block has a non-4K alignment such that (4 - alignment modulo 4 ) > block size, THEN there will be an underflow with EMM386 2.01 when allocating a new XMS block for EMS/VCPI. As a consequence, EMM386 will reject any further allocations beyond those already in-place, effectively denying any further memory availabe for EMS and VCPI.
The RAMDISK you use happens to do this very thing with XMS. After allocating the RAMDISK area, it leaves behind a 1K block at an odd address. Don't know why, but it doesn't matter. In very specific circumstances, there is failure in EMM386 2.01. Adding a check for underflow clears up the problem.
I'll upload a 2.02 fix in a few days. It is not critical for the large majority of users who won't encounter the problem.
------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click _______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
