	section printer
	include	'exec/types.i'
	include	'exec/ports.i'
	include	'exec/devices.i'
	include	'exec/io.i'
	include	'devices/timer.i'

XREF_EXE	MACRO
	XREF	_LVO\1
	ENDM
XREF_DOS	MACRO
	XREF	_LVO\1
	ENDM
XREF_GFX	MACRO
	XREF	_LVO\1
	ENDM
XREF_ITU	MACRO
	XREF	_LVO\1
	ENDM

CALLEXE	MACRO
	CALLLIB	_LVO\1
	ENDM

LINKEXE	MACRO
	LINKLIB	_LVO\1,_SysBase
	ENDM

LINKDOS	MACRO
	LINKLIB	_LVO\1,_DOSBase
	ENDM

LINKGFX	MACRO
	LINKLIB	_LVO\1,_GfxBase
	ENDM

LINKITU	MACRO
	LINKLIB	_LVO\1,_IntuitionBase
	ENDM

	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
	jsr	DEV_BEGINIO(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
	end
