HIGH MEMORY AREA RESTRICTIONS

Far pointers to data located in the HMA cannot be passed to DOS. DOS
normalizes any pointer which is passed into it. This will cause data
addresses in the HMA to be invalidated.

Disk I/O directly into the HMA (via DOS, INT 13h, or otherwise) is
not recommended.

Programs, especially drivers and TSRs, which use the HMA *MUST* use
as much of it as possible. If a driver or TSR is unable to use at
least 90% of the available HMA (typically ~58K), they must provide a
command line switch for overriding HMA usage. This will allow the
user to configure his machine for optimum use of the HMA.

Device drivers and TSRs cannot leave the A20 line permanently turned
on. Several applications rely on 1MB memory wrap and will overwrite
the HMA if the A20 line is left enabled potentially causing a system
crash.

Interrupt vectors must not point into the HMA. This is a result of
the previous restriction. Note that interrupt vectors can point into
any allocated upper memory blocks however.