*
* PWait - wait for a time
* 
* PWait(seconds, micros)
*

	INCLUDE "exec/types.i"
	INCLUDE "exec/ports.i"
	INCLUDE "exec/devices.i"
	INCLUDE "exec/io.i"

	INCLUDE	"devices/timer.i"
	INCLUDE	"macros.i"
	INCLUDE	"devices/prtbase.i"

	XREF_EXE	Forbid
	XREF_EXE	Permit
	XREF_EXE	WaitIO

	XREF		_SysBase
	XREF		_PD

	XDEF		_PWait

_PWait:
		movem.l a4/a6, -(a7)
		move.l	_PD,a4
		move.l	pd_PBothReady(a4),a0
		jsr 	(a0)
		tst.l	d0
		bne.s	error

		lea	pd_TIOR(a4),a1
		move.w	#TR_ADDREQUEST,IO_COMMAND(a1)
		move.l	12(a7),IOTV_TIME+TV_SECS(a1)
		move.l	16(a7),IOTV_TIME+TV_MICRO(a1)
		clr.b	IO_FLAGS(a1)
		move.l	IO_DEVICE(a1),a6
		LINKEXE	Forbid
		lea	pd_TIOR(a4),a1
		LINKEXE	WaitIO
		LINKEXE	Permit
		moveq	#0,d0
		tst.l	d0
error:
		movem.l	(a7)+,a4/a6
		rts
