home *** CD-ROM | disk | FTP | other *** search
- ; File: libraries.i
- ; asm(1.0) macro package - Various defines/macros that
- ; may be found useful.
- ;
- ; This macro package has been written and placed in the
- ; public domain by Douglas J Leavitt, 1986. This macro
- ; package is based on Commodore-Amiga header files printed
- ; In The ROM Kernel Manuals, published and printed by
- ; Commodore-Amiga, and Addison-Wesley publishing.
- ;
- ; The goal of this macro file is to be upwardly compatible
- ; with the include file of the same name.
- ;
-
- ifnd EXEC_LIBRARIES_I
- EXEC_LIBRARIES = 1
-
- ifnd ASM_COMMON
- include "common/asmcom.i"
- endc
- ifnd EXEC_TYPES_I
- include "exec/types.i"
- endc
- ifnd EXEC_NODES_I
- include "exec/nodes.i"
- endc
-
- LIB_VECTSIZE = 6
- LIB_RESERVED = 4
- LIB_BASE = -LIB_VECTSIZE
- LIB_USERDEF = LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE)
- LIB_NONSTD = LIB_USERDEF
-
- ; Set the base offset for function defs
- LIBINIT macro
- ___argchk=narg
- ARGCHK 0,1
- ifeq narg
- COUNT_LIB = LIB_USERDEF
- endc
- ifne narg
- COUNT_LIB = \1
- endc
- endm
-
- ; Define an entry
- LIBDEF macro
- ___argchk=narg
- ARGCHK 1,1
- LIBDEF = COUNT_LIB
- COUNT_LIB = COUNTLIB - LIB_VECTSIZE
- endm
-
- ; Invoke a library finction
- CALLIB macro
- ___argchk=narg
- ARGCHK 1,1
- jsr \1(a6)
- endm
-
- ; Invoke a library function when a6 is NOT set
- LINKLIB macro
- ___argchk=narg
- ARGCHK 2,2
- move.l a6,-(sp)
- move.l \2,a6
- jsr \1(a6)
- move.l (sp)+,a6
- endm
-
- ; Set up any default functions/variables/bitflags
-
- endc ; EXEC_LIBRARIES_I
-