	IFND	EXEC_MACROS_I
EXEC_MACROS_I	SET	1

	IFND	DEBUG_DETAIL
DEBUG_DETAIL	SET	0
	ENDC

JSRLIB	MACRO
	XREF	_LVO\1
	jsr	_LVO\1(a6)
	ENDM

JMPLIB	MACRO
	XREF	_LVO\1
	jmp	_LVO\1(a6)
	ENDM

BSRSELF	MACRO
	XREF	\1
	bsr	\1
	ENDM

BRASELF	MACRO
	XREF	\1
	bra	\1
	ENDM

BLINK	MACRO
	IFNE	DEBUG_DETAIL
	bchg.b	#1,$bfe001
	ENDC
	ENDM

TRIGGER	MACRO
	IFGE	DEBUG_DETAIL-\1
	move.w	#$5555,$2fe
	ENDC
	ENDM

CLEAR	MACRO
	moveq.l	#0,\1
	ENDM

CLEARA	MACRO
	suba.l	\1,\1
	ENDM

	IFND	PRINTF
PRINTF	MACRO
	IFGE	DEBUG_DETAIL-\1
	XREF	kprint_macro
PUSHCOUNT SET	0
	IFNC	'\9',''
	move.l	\9,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\8',''
	move.l	\8,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\7',''
	move.l	\7,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\6',''
	move.l	\6,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\5',''
	move.l	\5,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\4',''
	move.l	\4,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	IFNC	'\3',''
	move.l	\3,-(sp)
PUSHCOUNT SET	PUSHCOUNT+4
	ENDC
	movem.l	a0/a1,-(sp)
	lea	PSS\@(pc),A0
	lea	4*2(SP),A1
	BSR	kprint_macro
	movem.l	(sp)+,a0/a1
	bra.s	PSE\@
PSS\@	dc.b	\2
	IFEQ	(\1&1)
	dc.b	13,10
	ENDC
	dc.b	0
	ds.w	0
PSE\@	lea	PUSHCOUNT(sp),sp
	ENDC
	ENDM
	ENDC
PUSHM_COUNT SET	0

PUSHM	MACRO
	IFGT	NARG-1
	FAIL	!!! TOO MANY ARGUMENTS TO PUSHM !!!
	ENDC
PUSHM_COUNT SET	PUSHM_COUNT+1
PUSHM_\*VALOF(PUSHM_COUNT)	REG	\1
	movem.l	PUSHM_\*VALOF(PUSHM_COUNT),-(sp)
	ENDM

POPM	MACRO
	movem.l	(sp)+,PUSHM_\*VALOF(PUSHM_COUNT)
	IFNC	'\1','NOBUMP'
PUSHM_COUNT SET	PUSHM_COUNT+1
	ENDC
	ENDM

	ENDC	;EXEC_MACROS_I
