home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 6
/
Sonderheft_6-96.iso
/
pd
/
libraries
/
sslib51
/
sslib.readme
< prev
next >
Wrap
Text File
|
1996-11-03
|
6KB
|
147 lines
Special Support Library
Version 5.1
(c) 1993-1995 Martin Mares, MJSoft System Software
================================================================================
Preface
=======
The Special Support Library, accompanying utilities and their documentation
are Copyright (c) Martin Mares, MJSoft System Software, Prague, Czech Republic.
This archive can be freely redistributed as long as all of its files are
included in their original form without any additions, deletions or
modifications (excluding addition of other README-style files and icons) and no
more than a nominal fee is charged for its distribution. All copyright notices
in the programs and accompanying documentation files must remain intact. It's
especially forbidden to add various '.displayme' files and BBS advertisements.
This style of distribution is generally known as FREEWARE.
The only one exception to the previously mentioned distribution rights is the
library code itself (ss.library), which may be distributed separately in any
kind of software package (including commercial one), but the documentation must
inform the user that SS.library has been developed by MJSoft System Software and
that there is no warranty on it.
Special permission is given to Fred Fish to distribute this program on his
"Fish Disks".
This software is provided "AS IS" without warranty of any kind, either
expressed or implied. The author is not responsible for any damage caused by
it.
About SS Library:
=================
The Special Support Library is a small library written to simplify
development of small assembly programs. These programs usually contain
small routine, which is preceeded by some sort of startup code for argument
parsing, WB startup, opening of required libraries and similar actions.
With SSLib, you include only a significantly less piece of code for loading
of the library (this startup is usually generated by the "start" macro in
ssmac.h).
But SSLib is very useful not only for small programs, but also for large
projects, because it offers a very powerful object tracking mechanism based
on ideas of the arp.library.
There are listed some features of SSLib:
(a) The library currently doesn't contain any support of calling from
high-level languages (C, Pascal, Modula, Oberon, False, ADA, RTL/2,
PL/M, AMOS, Forth, AmigaBasic, GFABasic, REXX, PostScript, TeX,
Metafont, DBase 6.0, DML, ISM, Logo, GCL, Prolog, SmallTalk,
BCPL, Lisp and ...).
(b) SSLib requires kickstart V37 or higher, but you may call OpenLibrary
with older kickstarts. In this case, SSLib will display an alert
informing the user about this fact and will refuse to open.
(c) SSLib uses A5 to store base of its variables. But it doesn't steal
you an address register, because you can simply use this register
to index your own BSS variables (special variables defined by SS
(see SS.i) are stored BELOW A5, your own ABOVE A5. A5 itself
points to pointer to SSBase, therefore you can obtain this value
needed for calling of SSLib with minimal overhead).
(d) SSLib installs its own exception handler to all tasks using StartupInit.
This exception handler displays contents of all the registers and
allows the user to select if he wants to Suspend the program, Reboot
the system or to try to Abort the program (it will automatically
free all tracked resources, but it could result in a crash if there's
something rotten in the system).
(e) SSLib performs parsing of arguments (from both CLI and Workbench).
(f) ssmac.h contains a powerful set of universal and special macros which
simplify writing of programs. (But these macros might have problems
with some compilers. If you fix some of these problems, send me
updated version and I will include it in the next release of SSLib.)
(g) SSLib offers fast memory pool management mechanism allowing quick
manipulation with small chunks of memory. The tracking functions
use their own memory pool to increase execution speed.
(h) Tasks can define their own low-memory handling routine, which is called
whenever some memory allocation fails (this feature is supported by
exec V39+, but this works under V37+; these routines are called by
library expunge code, therefore the library itself must use alternate
OpenCount).
(i) Example programs are not included in this archive. They are distributed
separately.
(j) Provides powerful mechanism for writing of pure (re-entrant) programs.
If you use the standard variable mechanism (see [c] and StartupInit doc)
instead of storing data in the program itself (in DATA/BSS hunk), the
program should be pure.
(k) Gives you high-speed buffered I/O routines (significantly faster than
those in dos.library!).
For other information, see the rest of this file, SSLib.doc, SS.i, ssmac.doc
and all text files in this archive.
Future plans:
=============
- Some sort of string parsing mechanism.
- Callability from high-level languages. I'm preparing a GCC interface, but I
have no time to finish it.
- Some support of graphics (MUI object generator?) - will be included
in separate library.
- Many other things including better macro set.
Files in this archive:
======================
History list of modifications
SSLib.doc library doc
SSMac.h standard set of support macros
SSMac.doc description of the macros
SS.i library include file
SS.library the library itself
SSDiag small diagnostic utility
SSDiag.doc description of SSDiag
TExtract text hunk extractor
TExtract.doc description of TExtract
Final words:
============
Thanks to SinSoft, PCSoft and Short Software for many good suggestions and bug
reports.
Send all comments and bug reports to <mjsoft@k332.feld.cvut.cz>.