/ Issue a QIO.

	.globl	__qiow

/
/ This routine is used to issue QIOW directives from
/ all over the I/O package.
/ r0=I/O function code
/ r4=IOV pointer
/ The IOPL paramaters are on the stack (pushed right
/ to left).
/
/ Returns with c bit clear if all ok, or the c bit set
/ and the error code in r0 on error.
/
/ In RSX-11M V02, this routine actually does a QIO and a
/ WTSE. But the Gods are none the wiser.
/
/ Uses: r0, r1
/

__qiow:	mov	(sp)+,r1
	clr	-(sp)
	mov	r4,-(sp)
	add	$V_IOSB,(sp)
	mov	$1,-(sp)
	mov	V_LUN(r4),-(sp)
	mov	r0,-(sp)
	mov	$1.+[12.<<8.],-(sp)
	emt	377
	bcc	0f
	mov	_dsw,r0
	br	1f

0:
	mov	$1,-(sp)
	mov	$41.+[2.<<8.],-(sp)
	emt	377
	bcc	0f
	mov	_dsw,r0
	br	1f
 
0:
	movb	V_IOSB(r4),r0
	cmp	r0,$IS.SUC
	bne	0f
	clc
	br	1f

0:
	sec

1:
	jmp	(r1)
