Special Support Library Version 3.0 (c) 1993 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, and no more than a nominal fee is charged for its distribution. All copyright notices in the programs and accompanying documentation files must remain on their places. Also '.displayme' and other similar files may not be added. This 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. 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. - Some support of graphics. (It won't be included in SS.library. I plan to write new library (called SSG.library) as an extension of SS). These functions will probably support some sort of adaptive design and automatic handling of IDCMP messages. - 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 PCSoft and Short Software for many good suggestions and bug reports. Send all comments and bug reports to mjsoft@k332.feld.cvut.cz.