Uploaded to ftp://ftp.devoresoftware.com/downloads/emm386 are the files
emmx204.zip, EMM386/HIMEM mostly executable package, and emms204.zip,
EMM386/HIMEM mostly source package.
EMM386 2.04 and HIMEM 3.11 are bugfix updates. HIMEM 3.11 is a recommended
update for all FreeDOS users. EMM386 2.04 is less important, but probably
a good idea.
This release of HIMEM fixes a problem with the /NUMHANDLES option. If the
number of handles was less than 72, XMS handles reporting utilities such as
MEM.EXE might display garbage values. Also, since HIMEM placed the handle
count in the wrong memory location -- potentially a critical flaw for a
small, but indeterminate number of users -- everyone should update to the
latest version. The latest EMM386 release fixes two errors with EMS.
Details and big-time money offer follow:
The /NUMHANDLES problem with HIMEM which resulted in garbage value reports
was due to HIMEM continuing to report a default 72 handles even when less
memory was allocated for the smaller number of requested handles. MEM
would read past the real handle information and interpret junk as valid
handle values. This effect was benign but quite ugly. The proper handle
value was punched in memory about 64 bytes higher than it should have
been. Yikes. That bug will teach me to use the pure structure offset in
assembly language when addressing variables relative to the structure,
rather than an instantiated structure address offset. You dummy.
EMM386's EMM= option had a rounding error which could cause problems with
EMS page allocation and release, typically when low (sub 2M) values were
used for EMM=. If you did not use the EMM= option or did not use EMS, this
error would not affect you.
EMM386 fixes an error in EMS function 51h, reallocate pages, when the count
of pages was shrunk. Improper EMS page pointers would be updated with
subsequent woe. Also, a couple of sanity checks were added to the EMS
allocate/release pages functions to stop the worst of bad pointer memory
overwrite crashes when things went wrong, in the internals gone wacky sense
of wrong. Things will remain wrong, but now they may not crash you into
auto-reboot before you have a chance to notice and report the state of
VCPI function DE01, Get Protected Mode Interface, saves the high word of
EAX across the call, where it did not before. Nothing known needs this,
but since the previous problem with WDOSX and VCPI function DE04, I decided
it was best to put the VCPI functions on their best behavior.
Finally, to help counterbalance recent nastiness and ranting on- and
off-list by a few (possibly including myself depending on who you ask), I
will donate $0.10 to the International Federation of Red Cross and Red
Crescent Societies (www.ifrc.org) for each unique IP address downloading
either the source or binary package of EMM386 2.04 from my ftp site for the
month of July. This offer is subject to change or withdrawal in the
unlikely event of impending poverty due to my site being slashdotted or
otherwise subjected to site hammering. Suspicion of serious abuse will
result in disallowing broad IP ranges without recourse, including possible
innocent parties in the middle of the range, so please think twice about
having your ten grandmothers and 322 cousins download to "help out".
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar
Freedos-user mailing list