; a0 - window

; d0 - class
; d1 - code
; d2 - qualifier
; d3 - iaddress

	xdef	_WaitIMessage

_WaitIMessage
	movem.l	a2-a3/a6,-(a7)
	move.l	$56(a0),a2	; a2=port
	movea.l	4.w,a6
	move.l	a2,a0
	jsr	-372(a6)		; getmsg
	move.l	d0,a3		; a3=mes
	tst.l	d0
	bne.s	.1
.2:	move.l	a2,a0
	jsr	-384(a6)		; waitport
	move.l	a2,a0
	jsr	-372(a6)		; getmsg
	move.l	d0,a3
	tst.l	d0
	beq.s	.2
.1	clr.l	d1
	clr.l	d2
	move.l	28(a3),d3		; iaddress
	move.w	26(a3),d2		; qualifier
	move.w	24(a3),d1		; code
	move.l	20(a3),d0		; class
	movem.l	d0-d1,-(a7)
	move.l	a3,a1
	jsr	-378(a6)		; reply
	movem.l	(a7)+,d0-d1
	movem.l	(a7)+,a2-a3/a6
	rts
