Uploaded to ftp://ftp.devoresoftware.com/downloads/emm386 are the
files emmx201.zip, EMM386/HIMEM mostly executable package, and
emms201.zip, EMM386/HIMEM mostly source package.

EMM386 Version 2.01 is a bugfix release for Version 2.0.  It is
required  for everyone who has version 2.0, and is a recommended
upgrade for earlier 1.x EMM386 versions.
Approximately half of all users will experience a fatal error in
version 2.0 that 2.01 fixes, and another bug fixed in 2.01 could cause
a crash for any user as they run applications, although it is much
less common.

EMM version 2.01 also supports the CPU WRMSR instruction and DOS
redirection of help screen output, as does the HIMEM included.

This version should be quite a bit more stable, but the possibility of
lingering or less serious bugs after the extensive 1.x -> 2.0 rewrite
is moderate.  Please report any problems.

A quick rundown of change details follows:

During initialization when pool-sharing was present (no EMM= setting),
EMM386 could compute an odd 16K amount of free memory, depending on
total available XMS memory.  The odd 16K was not properly masked to an
even 32K border, leading to immediate fatal errors when an application
using EMS or VCPI was used and memory allocated to the program.  It
was pure luck whether your machine computed an odd or even amount of
16K blocks available, so approximately 50% of all users were probably
affected.

Another error that could occur during runtime allocation of XMS to an
EMS/VCPI memory was a 8-bit value overflow if the value was 0FDh or
higher.  This could happen any time a new XMS allocation was made to
EMS/VCPI pool allocation blocks.  I'd roughly guess 5-10% of users
might encounter the problem over the lifetime of a DOS session.

EMM386 and HIMEM allow DOS redirection of their command line output to
a file or through MORE, etc.  Whoopee.  The relevant modification is
in PRF.C.  Alert code browsers may note the user of an extremely dumb
#ifdef to change to this behavior.  Borland/Turbo C doesn't like
#ifdef 0 for reasons which escape me, so I just forced it to work
rather than waste time fooling around guessing how the compiler's
brain worked.

The protected CPU instruction WRMSR is supported via EMM386 emulation
in its exception handler, to match its twin instruction RDMSR.

Two trivial wording changes were made to HIMEM.

-Michael Devore