SLBLOAD beta release 0.25 as of 1998-10-20
-------------------------------------------

Please direct feedback to reschke@muenster.de or jr@ms.maus.de.



1) What it is
-------------

SLBLOAD implements MagiC-6-style shared libraries for plain TOS. It does this
by extending MetaDOS with a very small hook which enables it to load a 
shared library loader. I have selected this scheme because MetaDOS already
does a nice job in a) hooking into GEMDOS, b) reading a config file, c)
controlling process termination etc.

The loader itself is a separate overlay file, so no MetaDOS user is forced
to sacrifice memory for something he doesn't need.

The intent of all this is to promote the MagiC shared library as an open
scheme to be used on TOS compatible systems. I sure hope that it will be
eventually implemented in MiNT as well (maybe in addition to a more 
sophisticated scheme).


2) How to install
-----------------

Put METADOS.PRG and SLBLOAD.OVL into the auto folder. Create or change 
c:\auto\config.sys so that it contains the following line:

*SLB, C:\auto\slbload.ovl c:\gemsys\magic\xtension

This will tell MetaDOS to load the SLB driver from C:\auto\slbload.ovl and 
sets the default SLB path to c:\gemsys\magic\xtension. A real path list may 
be specified in the environment variable SLBPATH (see Slbopen(2)).

3) Program files and documentation
----------------------------------

METADOS.PRG:     MetaDOS 2.76
SLBLOAD.OVL:     Beta version of the SLB loader
README:          This file
MAN\SLBOPEN.2:   Manual page for Slbopen() and Slbclose() in nroff man format 
MAN\SLBOPEN.TXT: Manual page for Slbopen() and Slbclose() in text format
MAN\SLB.5:       Manual page for SLB file format in nroff man format
MAN\SLB.TXT:     Manual page for SLB file format in text format


4) Source code
--------------

SRC\SLBLOAD.PRJ: Pure-C project file
SRC\INTERFAC.S:  Interface file for overlaying from MetaDOS
SRC\SLBLOAD.C:   The loader
LIBDEMO\*:       Example code for library and client

The loader is written in ANSI-C. The source is included not only for 
reference, but also hoping that others want to help to finish it.


5) Change history
-----------------

1998-07-06      Initial release.

1998-07-13      Slbopen() now checks the environment variable SLBPATH.
                Added manual pages.
                
                Added sample code and fixed Slbopen prototype (manual page).

1998-07-16      Updated SLB.5 with Andreas Kromke's feedback.
                
1998-08-15      First public release 01.

1998-09-08      MetaDOS 2.76, no crash when *SLB is missing from config.sys
                (thanks to Rainer Seitel...)
                
1998-09-24      Fixed slbopen.2: the number of additional parameters passed
                with library calls is measured in words, not in bytes 
                (changed the sample client and lib accordingly).

                Also added paragraphs to slb.5 describing the behaviour of 
                shared library for accessories under plain TOS, and 
                documenting the fact that the name of the SLB is 
                passed in the command line area of the SLB's base 
                page. This has been implemented by moving the (still
                fixed size) owner table behind the end of the SLB's
                BSS.

                Thanks to Ronald Andersson for all his valuable comments.

1998-10-03      Public release.

1998-10-10      slbopen.2: Added a clarification regarding the path argument 
                on Slbopen().
                
1998-10-24      The basepage DTA pointer is not used for internal purpose 
                anymore. Instead, the shared library owner tables are 
                accessed through a linked list.
