Short: AmigaGuide to AmigaDOS Shared Libraries Author: dast@sth.frontec.se Uploader: istrice paola dei unipd it Type: docs/help Architecture: generic The original file I've found in `aminet/docs/help/' was a standard plain file: short, printable ... readable ..., but not the best for a quick consultation. That is why I've translated it to an AmigaGuide for- mat: a bit longer, more readable, easy to use, ... 8) The translation was made with the great aid of `AGW' by David L. McPaul (you may find in `aminet/text/hyper/AGWriter???.lha'). P.S.: the guide has several nodes linked to AutoDocs (in the AmigaGuide format). Then you are supposed to have propely set AmigaGuide path env (try `aminet/text/hyper/GuidePrefs.lha' if you are not so con- fident with this issue), and to have the AmigaGuide version of AutoDocs. You are also supposed to have the assignment `TEXT-INCLUDE:' set too. Of course you also need include-files. I (the AmigaGuide-er) may be reached at the following addresses: E-Mail: istrice@paola.dei.unipd.it istrice2@maya.dei.unipd.it Ciao Alessandro Ponzio //// //// //// //// \\\\ //// \\\X/// \XXX/ Amiga® ************************************************************************* This is an ASCII formatted article describing most of the things AmigaDOS shared libraries are all about. This is the table of contents: 1 Shared Library Overview 1.1 Shared Library 1.2 Link Library 1.3 ROM Based/Disk Based Libraries 1.4 Memory Usage 1.5 Other Operating Systems 1.6 Advantages 2 Calling Shared Library Functions 2.1 Address Library Functions 2.2 Library Base 2.3 Index 2.4 Parameters 2.5 Access Libraries 2.5.1 OpenLibrary() 2.5.2 CloseLibrary() 2.5.3 RemLibrary() 2.6 Return Code 2.7 Glue Code 2.8 C and Register Parameters 2.8.1 SAS/Dice pragmas 2.8.2 Aztec/Maxon pragmas 2.8.3 How to create pragma files 2.9 Near Data Effects 2.10 Registers 3 Parts of an AmigaDOS Shared Library Image 3.1 Prevent Execution 3.2 ROMTag Structure 3.3 Init Table 3.4 Function Pointer Table 3.5 Data Table 3.6 Init Routine 3.7 Functions 4 Libraries in the System 4.1 Library Opening Details 4.2 Library List 4.3 Patching Libraries 5 Programming 5.1 Functions 5.1.1 Open() 5.1.2 Close() 5.1.3 Expunge() 5.1.4 Extfunc() 5.2 Function Descriptor File 5.3 Glue Code 5.4 Compiling 5.5 Linking 5.6 Debugging 5.7 Hints 6 Support library calls from ARexx 6.1 How ARexx access the library 6.2 ARexx calls a library function 6.3 ARexx function Appendix A. Version numbers and shared libraries B. Further reading C. Library source examples