xes_call	macro

		move.w	#-1,-(a7)
		trap	#5
		
		endm


xes_submit	macro

		move.l	#parmblk,-(a7)
		move.w	#-1,-(a7)
		xes_call
		
		endm


xes_init	macro
* \1 = address of parameter block.

		move.l	\1,-(a7)
		move.w	#0,-(a7)
		trap	#5
		
		endm

xes_rsrcinit	macro
* \1 = fixup flag (0 to fix, nonzero to not fix)
* \2 = scaling method.
* \3 = address of binary resource tree to fix up.
		move.w	\1,WNX_in
		move.w	\2,WNX_in+2
		move.l	\3,WNX_in+4

		move.l	#parmblk,-(a7)
		move.w	#1,-(a7)
		xes_call

* old method:
		*move.l	#parmblk,-(a7)
		*move.l	\1,-(a7)
		*move.w	#1,-(a7)
		*trap	#5
		
		endm
		

xes_sibling	macro
* \1.L = address of 16 byte string (not necessarily null terminated) to
*        check for in the WNX i.d. field of the parmblks of other WNXes...

		move.l	\1,WNX_in

		move.l	#parmblk,-(a7)
		move.w	#2,-(a7)
		xes_call

		endm


xes_mesagwrite	macro
* \1.L = pointer to recipient list...
* \2.W = length (in bytes) of message (including XES header which is 16 bytes)
* \3.L = pointer to message

		move.l	\1,WNX_in
		move.w	\2,WNX_in+4
		move.l	\3,WNX_in+6

		move.l	#parmblk,-(a7)
		move.w	#4,-(a7)
		xes_call

		endm


xes_malloc	macro
* \1.L = amount of memory to allocate.

		move.l	\1,WNX_in
		
		move.l	#parmblk,-(a7)
		move.w	#38,-(a7)
		xes_call

		endm		


xes_flush	macro

		move.l	#parmblk,-(a7)
		move.w	#39,-(a7)
		xes_call
		
		endm
		

xes_genv	macro

		move.l	#parmblk,-(a7)
		move.w	#40,-(a7)
		xes_call
		
		endm
		
		
xes_pwindow	macro

		move.l	#parmblk,-(a7)
		move.w	#41,-(a7)
		xes_call
		
		endm


xes_draw	macro
* \1.W = index of starting object to draw.
* \2.W = index of ending object to draw.

		move.w	\1,WNX_in
		move.w	\2,WNX_in+2
		
		move.l	#parmblk,-(a7)
		move.w	#42,-(a7)
		xes_call
		
		endm
		
		
xes_redraw	macro
* \1.W = handle of the window to redraw.
* \2.W = -1 if to align tree to window's work area x,y coords.
* \3.L = pointer to the resource tree to use for redraw.
* \4.W = 0 to suppress the actual redrawing (i.e. just align the
*	 .RSC to the window's work area...  used during WM_MOVED
*	 messages, which may or may not need a true redraw...
 
		move.w	\1,WNX_in
		move.w	\2,WNX_in+2
		move.l	\3,WNX_in+4
		move.w	\4,WNX_in+8
		
		move.l	#parmblk,-(a7)
		move.w	#43,-(a7)
		xes_call
		
		endm
		
		
xes_chrsrc	macro
* \1.W = requested tree's index.

		move.w	\1,WNX_in
		
		move.l	#parmblk,-(a7)
		move.w	#50,-(a7)
		xes_call
		
		endm


xes_stredit	macro
* \1.W = handle of the window the resource is in.
* \2.L = address of the resource the editable text object is in.
* \3.W = index of the object to edit (must be F_text or F_boxtext)
* \4.W = input character.
* \5.W = -1 or current cursor position.
*	(NOTE: -1 places cursor at end of the string)

		move.w	\1,WNX_in
		move.l	\2,WNX_in+2
		move.w	\3,WNX_in+6
		move.w	\4,WNX_in+8
		move.w	\5,WNX_in+10
		
		move.l	#parmblk,-(a7)
		move.w	#64,-(a7)
		xes_call

		endm
		

xes_xformdo	macro
* \1.W = handle of the window the resource is in.
* \2.L = address of the resource tree to check.
* \3.W = index of the object clicked on, -1 if unknown.

		move.w	\1,WNX_in
		move.l	\2,WNX_in+2
		move.w	\3,WNX_in+6
		
		move.l	#parmblk,-(a7)
		move.w	#65,-(a7)
		xes_call
		
		endm
