2001/03, Bart Oldeman
  Clean up and bug fixes with a patch applied from Martin Stromberg.
  Thanks to Arkady Belousov for suggestions.


2001/04, tom ehlert
  Moved to small memory model to cure some strange bugs.
  Change largest executable program size from mem_free to largest free MCB.

  Added with the help of Alain support for INT2F AX=4309 ('old' method to
  search the handle table crashes somehow and for unknown reason under Win98).

  Bart: moved to tiny model and added malloc checks. Then moved
  it back to the small model.


2001/08, Bart Oldeman
  Licensed under the GPL; see \doc\mem\license.txt.
  Bug fixes + XMS enhancements from Martin and Tom.


2001/09, Arkady Belousov
  Complete program rework.

Fixes:
- eliminated 41 warnings under BC++ 3.1.
- main: now diagnosed all wrong options.
- canonize_name (was check_name): now checks memory block size.
- removed all strupr(), added canonize_name() with names copying.
- EMS_list: EMS driver version showed as unsigned values.
- EMS_list: removed assigning "SYSTEM" name for handle 0.
- search_vectors: missed FAR modifier; FP_SEG(ivp) shifted by one.
- search_sd: check for end should be "<=" instead "<".
- search_sd: added protection from infinity loops.
- register_mcb: forgeted "mlist =" before "search_sd()".
- check for wrong UMB chain should be done before making MCB list.
- xms_list: free_handles_tmp used outside of "if XMS call successful".
- convmemfree() duplicates work of mcb_largest() and not counts blocks
  with current environment.
- XMS and XMS driver minor version should be two BCD digit long.
- make_mcb_list: added marking as free all MEM's MCBs, not only environment.
- check_upper: UMB size counted incorrectly.

Changes:
- compilation in tiny model (.COM file).
- source splitted by "modules".
- main: command line processed before actions.
- EMS_list: memory size showed in kb instead bytes.
- search_sd: 'E' and 'T' system data identifiers added.
- check_xms: removed check for 0xFC as machine type (if XMS present
  or CPU is 286+, then CMOS should exist).
- check_xms: rewritten all INT15 access.
- xms_list: added check for 0xFFFF handle.

Additions:
- added batch file for compilation.
- added turboc.cfg with safe optimization options for BC++ 3.1.
- added support for '-' as options prefix.
- added /P option for interscreens pause.
- added reports for UMB from XMS and for physical mappings under EMS.
- splitted information for INT15 and XMS extended memory.


2003/09, v1.5, Arkady Belousov

- files are reorganized: LICENSE.TXT renamed to COPYING, README.TXT
  renamed to MEM.TXT, HISTORY.TXT and MEM.TXT are revised.

- structures size now checked at each compilation; thanks tom for idea
  how to do this without increasing code and data.
- code now more "lazy" and requires less memory for data at run-time.
- MEM_get: more correct code to find slave/parent MCBs relationship
  (special handling for MCB00, MCB40, MCB50 and MCB70).
+ memory_list: for programs showed startup path, when possible.
+ memory_list: upper memory blocks now separated from low memory blocks.

+ added support for option joins ("/a/d") and clusters ("/ad", "-ATP").
+ added /C option; currently equal to /A option.
