
		IFND	struct_macros_i

struct_macros_i	set	1


; macros to build a structure on the stack

STRUCT		macro				; start structure definition
softset		set	0
\1		equ	softset
		endm

UBYTE		macro				; define a byte
	IFGE	NARG-3
		ERROR	Wrong UBYTE '\1' definition !
	ENDC
	IFEQ	NARG-2
softset		set	softset-1*\2
	ENDC
	IFEQ	NARG-1
softset		set	softset-1
	ENDC
\1		equ	softset
		endm

UWORD		macro				; define a word
	IFGE	NARG-3
		ERROR	Wrong UWORD '\1' definition !
	ENDC
	IFEQ	NARG-2
softset		set	softset-2*\2
	ENDC
	IFEQ	NARG-1
softset		set	softset-2
	ENDC
\1		equ	softset
		endm

ULONG		macro				; define a long
	IFGE	NARG-3
		ERROR	Wrong ULONG '\1' definition !
	ENDC
	IFEQ	NARG-2
softset		set	softset-4*\2
	ENDC
	IFEQ	NARG-1
softset		set	softset-4
	ENDC
\1		equ	softset
		endm

LABEL		macro				; end structure definition
\1		equ	softset
		endm

; macros to call system functions

CALL		macro
		move.l	\2,a6
		jsr	_LVO\1(a6)
		endm

RECALL		macro
		jsr	_LVO\1(a6)
		endm

		ENDC
