home *** CD-ROM | disk | FTP | other *** search
-
- COMPILER EXTENSIONS
-
- AUTO LIBRARY OPENNING
-
- Certain Amiga libraries are supported on an autoinit basis. Normally
- you declare the library base variable then OpenLibrary() it in your
- main.
-
- If you EXTERN the library base variable instead then it will be brought
- in from auto.lib along with autoinit code to automatically
- OpenLibrary() it on startup and CloseLibrary() it on shutdown.
-
- You can tell when the autoinit feature is not supported for a given
- library base variable when the linker comes up with an 'undefined symbol'
- error for base variable name.
-
- AUTOINIT CODE
-
- The _autoinit keyword may be used to qualify a subroutine and make it
- autoinitialied.... that is, called automatically by the startup code to
- initialize various items.
-
- An _autoinit subroutine may not call any fd or stdio functions, but may
- call memory allocation functions.
-
- Ordering of _autoinit calls on startup depends on the ordering of
- object modules in your link line.
-
- INTERRUPT QUALIFIER
- (not amiga compatible)
-
- You may qualify any subroutine with the interrupt qualifier which will
- cause said routine to save all registers it uses and terminate with an
- RTE instead of an RTS. Normally a subroutine only keeps A2-A7/D2-D7
- intact. An interrupt service routine returns no value.
-
- THIS WILL NOT WORK ON THE AMIGA. Amiga interrupt routines have other
- requirements not the least of which being that they return with RTS.
-
- Note that this general feature is meant for use with custom 68000 based
- systems (i.e. within a kernel) and does not usually work with operating
- systems. For example, the Amiga expects interrupt routines to return
- with RTS and the Z condition code to reflect a certain status.
-
- NOTE, ANY C MODULE CONTAINING an interrupt qualified routine should be
- compiled with the LARGE DATA MODEL because the small-data model base
- register (A4) is not available from within interrupt service routines.
- Normally is suffices to compile the module containing the interrupt
- service routine with the large data model. Such programs may not be
- made resident.
-
-
-