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

Reply via email to