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 wrongness. 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".