Hi Stas, I had a good look at your EMS patch and applied some of the more innocent portions -- but there is something wrong with the changed msdos.c interface: from what I see:
before: the EMS page frame was unmapped (mapped to lowram), with your patch: msdos.c reserves 4 EMS pages (=64k), and then maps pages 0-3 physical to 0-3 logical EMS memory (instead of lowram). The problem is that emm_allocate_handle can fail and return EMM_ERROR which is not checked in msdos.c. This happens e.g. when you run the Turbo C++ 1.01 IDE and shell out to DOS: all (8M of) EMS memory is allocated by Turbo C++ and msdos.c can't allocate an extra 64K. could you explain? I think unmapping can be done by mapping 0-3 physical to 0xffff (4 times) logical. Bart ------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ Dosemu-devel mailing list Dosemu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dosemu-devel