;	File:	types.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	ASM_COMMON
	include		"asm/asmcom.i"
	endc			; ASM_COMMON

	ifnd	EXEC_TYPES_I
	EXEC_TYPES_I = 1

EXTERN_LIB	macro
	___argchk=narg
	ARGCHK	1,1
	global	_LVO\1
	endm

STRUCTURE	macro
	___argchk=narg
	ARGCHK	2,2
	\1 = 0
	SOFFSET = \2
	endm

;	Common increment size macro
___INCDEF	macro
	___argchk=narg
	ARGCHK	2,2
	\\1 = SOFFSET
	SOFFSET = SOFFSET + \\2
	endm

;	 8 bit value macros
BYTE	macro
	___INCDEF	\1,1
	endm
UBYTE	macro
	___INCDEF	\1,1
	endm

;	16 bit value macros
BOOL	macro
	___INCDEF	\1,2
	endm
WORD	macro
	___INCDEF	\1,2
	endm
UWORD	macro
	___INCDEF	\1,2
	endm
SHORT	macro
	___INCDEF	\1,2
	endm
USHORT	macro
	___INCDEF	\1,2
	endm
RPTR	macro
	___INCDEF	\1,2
	endm

;	32 bit value macros
APTR	macro
	___INCDEF	\1,4
	endm
LONG	macro
	___INCDEF	\1,4
	endm
ULONG	macro
	___INCDEF	\1,4
	endm
FLOAT	macro
	___INCDEF	\1,4
	endm

;	64 bit value macros
DOUBLE	macro
	___INCDEF	\1,8
	endm

;	Extraneous macros
STRUCT	macro
	___argchk=narg
	ARGCHK	2,2
	\1 = SOFFSET
	SOFFSET = SOFFSET + \2
	endm

;	Bitdef macros

;	Unused, but avaiable for backwards compatible use
BITDEF0	macro
	___argchk=narg
	ARGCHK	4,4
	\1\3\2 = \4
	endm

BITDEF	macro
	___argchk=narg
	ARGCHK	3,3
	\1B_\2 = \3
	\1F_\2 = 1 << \3
	endm

	endc			; EXEC_TYPES_I
