12/27/2003

Revised EMM386[64] for download

Michael Devore writes:

Available via anonymous FTP download at ftp.devoresoftware.com/downloads is the file EMMMOD2.ZIP. This file contains fixes and enhancements to the first release version of EMM386 which supported large amounts of EMS in conjunction with HIMEM64 (the HIMEM version which supports more than 64M). Modified source is in EMM38664.ASM and EMM386C.C, and there is a compiled uncompressed EMM386.EXE included in the ZIP file for testing without rebuilds. Release of this revision and announcement of same has received approval by Tom Ehlert, maintainer of EMM386. It is not, however, to be considered an official FreeDOS distribution release prior to his final code okay.

Changes are as follows:

There was a bug in EMM386 such that use of the NOEMS setting could cause failure to allocate sufficient memory for UMBs, leading to upper memory not being available. The set-aside extended memory for the EMM monitor was increased by 32K to correct the problem.

Additional EMS 4.0-specific API functions are now supported. This was done to correct incompatibilities that surfaced in testing EMS with PKZIP and Norton's SI. The new API functions supported are function 50h, subfunction 0; function 52h, subfunction 2; function 53h, subfunction 0; function 59h, subfunction 1, and function 5ah, subfunctions 0 and 1.

The EMM38664.ASM source file now contains rudimentary notification of an unsupported EMS call which is currently switched off.

If anyone has any EMS-using programs which experience problems with this revision of EMM386 -- applications which would most likely use the EMS 4.0 API -- please let me know so I can modify for and test new support. I anticipate that there will be additional EMS 4.0 API function support required to work with every FreeDOS-compatible EMS-based application. While a number of the EMS 4.0 API functions are for operating system use only or otherwise of not much use and will probably never be fully supported, there remain some unsupported EMS 4.0 API functions which appear generally useful and are doubtless accessed by various DOS programs.

Lucho adds:

HIMEM64.EXE that you've downloaded at ftp.devoresoftware.com works fine! It needs 1984 bytes in RAM vs 2400 by FDXXMS, so I switched to it I also tested it with DR-DOS 7.01.06 and PC-DOS 7.1 and it works there fine too. The HMA functions of no HIMEM except their own works with ROM-DOS, and neither FDXXMS nor HIMEM64 are exceptions, but this is not our problem. Noticed an interesting thing - on this Intel 815E chipset, it says "can't switch A20 off - ignored" (like FDXXMS) under FreeDOS and DR-DOS but NOT under PC-DOS! Does this mean that it CAN switch A20 off there? Unlikely IMHO. Last not least, only the binary is available at your site. Where are the docs and sources? It would be good too to update the LSM file at the FreeDOS site to reflect the big HIMEM progress.