WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! 
-----------------------------------------------------
THIS DOCS ARE OUTDATED! I have no time to write down
precise docs, so please be patient.
-----------------------------------------------------

 Please read readme.txt before reading this file !
 =================================================
 This file reflect changes, made to DLM package.

 ------------ VERSION 2.0.0 dated 8 Oct 1998 -----------------
 Ouch! After two (!) years DLM engine is here again !

 - This version is mostly an update to djgpp v2.02 and gcc 2.8.1
   exception handling. Also this version help me to remember the
   source, djgpp and so on ... Poor brains! ;)

 - Some improvements made, especially in startup code and
   loading speed.
 - Dynamicaly loaded 80387 emulation added. Much like emu387.dxe,
   but using DLMs.
 - libc.a & libgcc.a linked together in libc.dlm
 - More accurate stub's export 

 - dlmstub.exe now has MAGIC SIZE! Exactly 64k ! ;-)
   Frankly speaking it was a fortune, good sign from the GCC ;-)

 ------------ VERSION 1.01.1 dated 4 Dec 1996 -----------------
 - Fixed buf in autoloading
 - Added function ExportDLMSymbol, SizeofDLMSymbol, RemoveDLMSymbol
 - Package restructered

 ------------ VERSION 1.01.0 dated 17 Nov 1996 -----------------
 - Version converted for use with DJGPP v2.01
   cpp & libmain(now libc) DLMs was also converted, so avoid mixing
   with previous ones.

 - GDBM (GNU Data Base Manager) ported for use with DLMs
 - Solved problem with ld -r behaviour by creating linker script
   So, to produce one object file from several use something like
   ld -r -o all.o *.o -Tl:\djgpp\lib\dlm.djl


 ------------ VERSION 1.00.9 dated 14 Nov 1996 -----------------
 - Added NAMED CLASS feature. See file cpp.txt for details.
 - Added LookupDLMSymbol(char *) which returns address of symbol
   or NULL if not found.

 ------------ VERSION 1.00.8 dated 11 Nov 1996 -----------------
 - DLM search path is now initialized with the value of
   DLMPATH environment variable at startup.
 - Added code (which I forgot to add) which unloads all DLMs
   at exit, causing calls to all related destructors (C++ and
   desctructor() functions)

 ------------ VERSION 1.00.7 dated 8 Nov 1996 ------------------
 - Improved Common symbols handling.
 - Duplicate symbol handling added. You can now play with
   dlmflags variable, which control overall DLM engine
   behavior in certain situations. Look in dlmlib.h for
   valid flags explanation.

 ------------ VERSION 1.00.6 dated 6 Nov 1996 ------------------
 - Fixed a bug in fixup function, caused invalid processing
   of relocation entries in some rare cases.

 - Improved SIGSEGV handling. Symbol information was added and
   DLM-symified output.

 - Created LIBMAIN.DLM wich is libc converted for use with DLMs
   Look in DLMLIBS for it.

 - Fixed a bug in DLMSTUB which caused invalid fixups for
   REL32 relocations to internaly defined (not import or common)
   symbols. Strange, but ld doesn't remove them when linking
   several object files with -r option.

 - DLMMAN now looks at evironment variable DLMSTUBNAME
   before assuming that DLM stub's name is "dlmstub.exe"
   So the sequence is :
    if -a option is specified use it's argument as stub
     else if DLMSTUBNAME environment variable exists use it's value as stub
      else use dlmstub.exe from current directory as stub

 - You can now use SetDLMSearchPath(char *pathlist) to
   specify the list of directories where to search for DLMs if
   path was not specified when calling LoadDLM()
   pathlist is a string with individual directories separated
   by ';'. Each directory is appended to filename, so be
   sure to specify the last '\' and so on...
   For example :
    SetDLMSearchPath("w:\\djgpp\\dlms\\;w:\\djgpp\\dlms\\sys\\");
   The directory list is NOT appended to the existing one, it is
   replaced after each call.

 ------------ VERSION 1.00.5 dated 5 Nov 1996 ------------------
 - Fixed missed zero-initialization of common variables.

 ------------ VERSION 1.00.4 dated 4 Nov 1996 ------------------
 - DLMMAN was updated to allow easy managing of DLM sets.
   Options added :
     -q  print out only fatal messages instead of processing
	 information. For use in batch files.
     -l  updated to manage lists of autoload DLMs.
	 if filename begins with '&' it is treated as file
	 containing list of DLMs to be marked for autoload
	 (designed for use will DALs, see below)
     -di dumps IMPORT symbol information
     -da appends EXPORT symbol with DLM name to LST file
	 (for use with -dl)
     -dl generates the list of DLMs proposed for auto load.
	 List is based on information  provided in supplied LST file
	 and current DLM import information.
   So if you have a set of DLMs and some of them uses other you'll
   follow the following sequence :
    use dlmman on each DLM with option "-da total.lst"
    (note same -da parameter for ALL DLMs)
    use dlmman on each DLM with option "-dl total.lst"
    this will generate <dlmname>.DAL file for each DLM with
    the list of required DLMs. You can then add them to autoload
    list by using -l option with &<dalname> argument

  - Fixed bug, which caused GPF when generating output file name
    for file with 8 chars name and 3 chars extension.

  - You still have to place all of your DLMs to the same directory
    as EXE file or supply a full path to DLM. Also, if you
    added autoload DLM as 'filename.dlm' it will be attempted to load from
    current directory. Search path is to be done later.

 ------------ VERSION 1.00.2 dated 4 Nov 1996 ------------------
 - Error code handling. See dlmlib.h for details.
 - Added Autoload support. When you load DLM and it has
   some DLMs marked for autoloading (using DLMMAN -l option)
   and this DLMs are not yet loaded, they load automaticaly.
   If any of them failed to initialize (constructor() returned zero),
   dependent DLM will also not be loaded returning appropriate
   error code.
 - Added fine tuning for exports. You can use implicit rules
   which exports all extern symbols (i.e. not static).
   Using new -dx option of DLMMAN you can dump export list to
   separate file, edit it (mainly remove unwanted exports)
   and use -u option to mark ONLY symbols present in export
   list file as EXPORT. If -u switch is not specified, an
   implicit rules will be used.
 - You now can remove extra symbols added with -s option from DLM.
   Autoload marks also may be removed.
   Appropriate options are -rs and -rl respectively.
   As usual, start DLMMAN without arguments to get help.
 - DLM load code was speeded up a little. Also some minor bug fixes was
   made to dlmstub and dlmman.
 - You can check if some symbol is defined by comparing it's address
   to 0xFFFFFFFF. eg:
     if ((unsigned long)myfunc==0xFFFFFFFF) LoadDLM("myfunc.dlm");
     if ((unsigned long)&mydata==0xFFFFFFFF) LoadDLM("mydata.dlm");
     myfunc(mydata);
   So you can implement a load-on-call scheme manualy.

 KNOWN BUGS & FEATURES, WHICH LOOK LIKE BUGS ;-)
 - If DLM contains import symbol of some name, and you add
   export symbol with the same name using DLMMAN -s option
   symbol is NOT replaced, just another symbol of the same
   name appear. This scheme is needed to be able to remove
   such symbols correctly (and without much job).

 TO DO :
  Add statistic info to Dump Information output (-d option)
  This will include mainly an information of how much bytes
  non-user data (i.e. DLM structures and other system data)
  will take in memory, aboslute and in percentage of user data.

 ------------ VERSION 1.00.1 dated 2 Nov 1996 ------------------

 - Added SIGSEGV support. It now shows where GPF occured
   and tries to find out the reason. Mainly if it was caused
   by unresolved reference.
   Example output :
   DLM : SIGSEGV occured in file test.exe
	 (probably in function _main)
	 because of undefined reference to symbol '_fff__Fv'
 - constructor & destructor are now NOT placed into export
   tables on load. However they must be NONSTATIC functions.
 - Fixed some minor bugs in DLM Manager, concerning parsing
   program arguments.
 - DLMMAN -d now dumps to specified file instead of stdout
 - DLMMAN now automaticaly generate output filename if ommited
   i.e DLMMAN test.dlm -e
   is the same as DLMMAN test.dlm -e test.exe

 KNOWN BUGS & FEATURES, WHICH LOOK LIKE BUGS ;-)
 - If DLM contains import symbol of some name, and you add
   export symbol with the same name using DLMMAN -s option
   symbol is NOT replaced, just another symbol of the same
   name appear. Two symbols with the same name, one import
   and one export coexist friendly and doesn't cause any
   trouble. It possibly will be fixed in next version.


 ------------ VERSION 1.00.0 dated 1 Nov 1996 ------------------
 Just first functional version



