Short:    Example.library in 100% C (SAS/Storm/Maxon/...)
Author:   Andreas_Kleinert@t-online.de (SAS/Storm), hhummel@t-online.de (Maxon)
Uploader: Andreas_Kleinert@t-online.de
Type:     dev/c
Replaces: CExecLib#?.lha


  example.library V37.5 (24.1.97)

  An Amiga shared library in 100 % C language - coming with sources.

  Compiler Checklist:        Compiler           Support
                             --------------------------
   (see README.<compiler>    SAS/C 6.5x         yes
    for more information)    MaxonC 3.x         yes
                             StormC 2.x         yes
                             DICE 3.x           (not tested)
                             GCC 2.6.x          ./.
                             AztecC             (not tested)
                             vbcc               (not tested)

  Original SAS/C and StormC version (C) 1996-97 by Andreas R. Kleinert,
  MaxonC version changes done 1996 by Helmut Hummel. All rights reserved.
  ----------------------------------------------------------------------
  This sample library intends to make Amiga shared library sources
  compileable with any available Amiga C compiler - without any
  changes to the source code.
  And maybe in the future also running under any Amiga compatible
  operating system with any CPU.

  The first goal seams to be easily done: nearly any noticeable compiler
  for the Amiga does support generation of libraries with special
  linker commands and pre-generated object files.

  But when looking into the details, one will find out, that these
  linker functionality just reduces the influence of the programmer
  on how his sources are handled, that the pre-generated object
  files just originally were done in Assembler, and that each compiler
  does define its own interface definitions and usage rules.

  But as a programmer, it is important to have control over the _complete_
  source code and to be able to compiler it _anywhere_ with only
  minor changes, even better without any changes.

  Since most Amiga system modules - noticeable Libraries, Devices and
  Resources - do have startup-modules and other larger parts completely
  written in Assembler language, the most important task for getting
  inter-compiler and operating system independant sources in my opinion
  is, to completely migrate the interfaces to C lanuguage (but different
  to AROS, for example, it is most important, to keep the sources running
  under the current 68k AmigaOS in the _first_ place).

  This goal basically has been reached already, still missing of
  course are some of the less Amiga-native compilers and of course
  tests with any kind "AmigaOS for PowerPC".

  But since Assembler is nearly as portability-hostile as BCPL _today_
  we might be quite close to the goal defined above.

  Translate your 68k-assembler library startup-codes smartly
  to C by simply using this source-code as an advice how to do it.

  For testing: install the (re)compiled example.library to LIBS: and
  start the test program - it should pop up an requester, then.

  If you can submit adjustments for the other compilers as mentioned
  above: feel free to send these.
  ---
  Feel free to use this source for own projects.

  It is allowed to be spread and distributed anywhere, as far
  as my consent is concerned.

  Amiga Technologies, or the current owner of the technologie,
  is allowed to always put this source on their newest
  Developer CD-ROM.

  Thanks and credits will always be appreciated - for example,
  you MAY, but NEED NOT:
  give me credits in your program's docs, send me keyfiles for
  your programs using the library, and so on.
  But that's simply voluntarily.

   _________________________________________________________
  |      You may reach me the following way.                |
  |    Send bug-reports, money or whatever to:              |
  |---------------------------------------------------------|
  |        * SuperView Development & Registration *         |
  |          * DRAFU Development & Registration *           |
  |       * Image Engineer Registration Site Europe *       |
  |                                                         |
  |                                                         |
  |                  PerSuaSiVe SoftWorX                    |
  |                                                         |
  |                  Andreas R. Kleinert                    |
  |                  Sandstrasse 1                          |
  |                  D-57072 Siegen                         |
  |                  Germany, Europe                        |
  |                                                         |
  | Any snail mail to the old address will still be routed. |
  |                                                         |
  |                  Phone:  +49-271-22869 also FAX + AM    |
  |                          +49-271-22838                  |
  |                                                         |
  |                  Weekdays after 17.00h.                 |
  |                                                         |
  |         When calling via phone you may leave a message, |
  |         if I'm not available - but don't expect me      |
  |         calling back to USA, Australia, ... since       |
  |         german phone rates are HIGHLY expensive.        |
  |_________________________________________________________|

    http://home.t-online.de/home/Andreas_Kleinert/

  eMail:

        Please send binaries via ARK@COB.wwbnet.de, and keep
        them smaller than 16 KB. Please think twice before
        sending them - my postbox is not unlimited in size.

           - Fido    Andreas Kleinert 2:2457/350.18
           - Usenet
                     Andreas_Kleinert@superview.ftn.sub.org  (Fido-Gate)
                     Andreas_Kleinert@t-online.de            (T-Online)
                     ARK@COB.wwbnet.de                       (Z-Netz)
                     ARK@amigaworld.com                      (AmigaWorld)

           - If nothing else works, try one of these public
             Fido-Usenet gateways:

               In Germany:
                 Andreas_Kleinert@p18.f350.n2457.z2.fido.sub.org

               From USA or elsewhere:
                 Andreas_Kleinert@p18.f350.n2457.z2.fidonet.org

        Please note, that the "superview.ftn.sub.org"
        domain will perhaps be renamed soon


 History:

 V37.5 (24.1.97) :  - rewrote docs
                    - added basic support for compiler independent
                      register naming and SAS/C keyword replacements
                      (compiler.h). Thus sources now should be easily
                      adaptable for GCC as well.

 V37.4 (8.1.97) :   - added FD file
                    - added new pragma file (and dir) as
                      include/pragma/example_lib.h
                      which works with Aztec, Maxon, Storm,
                      DICE and SAS C compilers.
                      Thanks to fd2pragma and Dirk Stoecker.
                    - some fixes to the readme files
                    - updated eMail list

 V37.3 (3.1.97) :   - slightly changed SCOPTIONS
                    - fixed some style things (APTR and library casts)
                    - changed note about library opening at L_OpenLibs()
                    - now compileable with StormC 2.0 as well
                      (not tested with 1.1) - see readme file for StormC
                    - added project file for StormC 2.0, smakefile still
                      present - select, which one you'd like to use

 V37.2 (12.12.96) : - applied some more changes and fixes
                      (-> suggested by Helmut Hummel)
                    - added icons
                      (-> from Helmut Hummel)

 V37.1 (4.12.96) : - bumped version to V37
                   - added MaxonC 3.x version by applying changes
                     to the SAS/C sources and adding Maxon
                     specific make and configuration files
                     (-> all done by Helmut Hummel, see Readme.MAXON)
                   - added StormC support
                   - yet missing: DICE, Aztec, GNU. Who does it ?

 V1.4 (30.11.96) : - added SAS/C specific Ctrl-C disabling code
                   - made some workarounds compiler sensitive
                   - redone all with SAS/C V6.57
                   - 944 Bytes ;-)

 V1.3 (13.9.96) :  - when starting lib as executable, -1 must be returned
                   - now caching SysBase
                   - added some comments, where changes should not
                     be applied
                   - added note about sharing library bases
                   - documented and modified sample function,
                     so that correct a0/a1/d0/d1 and a6 usage becomes
                     more obviously and verbose
                   - still 940 bytes ;-)

 V1.2 (5.9.96)  :  - fixed some things resulting out of a
                     discussion in Z-Netz

 V1.1 (1.9.96)  :  - small changes in style
                     (only bumped versions of changed modules):
                       o moved "examplebase.h" to include/example/
                         (so also adjusted LibInit.c, StartUp.c
                          and SCOPTIONS for reflecting that)
                       o SampleFuncs.h did contain wrong prototype
                         (did not matter, since only used for
                          ULONG function table within StartUp.c)
                       o explicitely __aligned ROMTag structure

 V1.0 (14.8.96) : - first release


 ---
 All mentioned trademarks are subjects to their owners.


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
    1720     433 74.8% 11-Dec-96 15:48:02  c_lib.info
    1720     433 74.8% 11-Dec-96 15:39:54 +bin.info
    5248    3480 33.6% 05-Dec-96 11:46:22 +TestExampleLib
     450     230 48.8% 11-Dec-96 15:49:34 +TestExampleLib.info
     944     591 37.3% 25-Jan-97 11:07:50 +example.library
    1201     683 43.1% 25-Jan-97 10:21:22 +Readme.MAXON
     274     191 30.2% 25-Jan-97 10:21:18 +Readme.SAS
     915     480 47.5% 25-Jan-97 10:21:12 +Readme.STORM
    1720     433 74.8% 11-Dec-96 15:39:56 +source.info
     125     117  6.4% 08-Jan-97 19:09:50 +example.fd
     425     247 41.8% 05-Dec-96 11:45:24 +example_protos.h
     289     185 35.9% 05-Dec-96 11:44:58 +example.h
     654     319 51.2% 11-Dec-96 15:00:22 +examplebase.h
     477     247 48.2% 08-Jan-97 19:10:26 +example_lib.h
     311     207 33.4% 05-Dec-96 11:45:38 +example_pragmas.h
     330     207 37.2% 05-Dec-96 11:45:50 +example.h
    1720     433 74.8% 11-Dec-96 15:39:42 +lib_source.info
    2844     941 66.9% 25-Jan-97 10:51:48 +compiler.h
     944     591 37.3% 25-Jan-97 11:07:48 +example.library
    3167    1195 62.2% 25-Jan-97 11:07:18 +LibInit.c
     888     542 38.9% 25-Jan-97 11:07:42 +LibInit.o
      25      25  0.0% 05-Dec-96 12:07:46 +make_storm.bat
     419     164 60.8% 11-Dec-96 15:31:14 +makefile.MAXON
     347     232 33.1% 05-Dec-96 11:36:28 +makefile.MAXON.info
     381     232 39.1% 05-Dec-96 11:36:28 +mcpp.SESSION
    1329     687 48.3% 25-Jan-97 10:26:48 +SampleFuncs.c
     335     229 31.6% 25-Jan-97 10:26:08 +SampleFuncs.h
     216     194 10.1% 25-Jan-97 11:07:48 +SampleFuncs.o
     128     105 17.9% 03-Jan-97 15:29:36 +SCOPTIONS
     395     148 62.5% 05-Dec-96 11:36:28 +smakefile
      95      85 10.5% 05-Dec-96 11:36:28 +smakefile.wth
    4335    1343 69.0% 25-Jan-97 10:27:16 +StartUp.c
    1120     598 46.6% 25-Jan-97 11:07:38 +StartUp.o
    1757     595 66.1% 03-Jan-97 15:44:56 +storm_project.¶
     624     350 43.9% 03-Jan-97 15:44:56 +storm_project.¶.info
     622     269 56.7% 03-Jan-97 15:44:30 +storm_smakefile
     119     100 15.9% 05-Dec-96 11:36:28 +SCOPTIONS
     256     105 58.9% 05-Dec-96 11:36:28 +smakefile
    5248    3480 33.6% 05-Dec-96 11:46:22 +TestExampleLib
     673     374 44.4% 05-Dec-96 11:46:12 +TestExampleLib.c
     835     394 52.8% 05-Dec-96 11:36:28 +TestExampleLib.info
     300     242 19.3% 05-Dec-96 11:46:20 +TestExampleLib.o
    9452    3483 63.1% 25-Jan-97 11:21:28 +ReadMe_First
-------- ------- ----- --------- --------
   55377   25619 53.7% 26-Jan-97 12:29:46   43 files
