;
; romtag for sana2par.device
;

	xref	_SysBase
	xref	_DOSBase
	xref	_UtilityBase

	section	"text",code

	xref	_DevOpen
	xref	_DevClose
	xref	_DevExpunge
	xref	_DevBeginIO
	xref	_DevAbortIO
;	xref	_DevInit
;	xref	_LoadPrefs

	include "exec/types.i"
	include "exec/devices.i"
	include "exec/initializers.i"
	include	"exec/resident.i"
	include	"exec/tasks.i"
	include "exec/libraries.i"

call	MACRO
	xref	_LVO\1
	jsr	_LVO\1(a6)
	ENDM

; load error
error:
	moveq	#-1,d0
	rts

romtag:
	dc.w	RTC_MATCHWORD
	dc.l	romtag
	dc.l	EndCode
	dc.b	RTF_AUTOINIT
	dc.b	VERSION,NT_DEVICE,0
	dc.l	devname
	dc.l	devid
	dc.l	Init

devname: dc.b "plip.device",0
	dc.b	0,"$VER: "
devid: dc.b "plip 38.11 (27.06.94)",13,10
	dc.b	"by Oliver Wagner & Michael Balzer",13,10,0
	ds.w	0

VERSION equ 38
REVISION equ 11

	STRUCTURE	MyDev,LIB_SIZE
	UBYTE	md_Flags
	UBYTE	md_Pad1
	ULONG	md_SegList
	LABEL	MyDev_Sizeof
Init:
	dc.l	MyDev_Sizeof
	dc.l	functable,datatable,initroutine

functable:
	dc.l	_DevOpen
	dc.l	_DevClose
	dc.l	_DevExpunge
	dc.l	error
	dc.l	_DevBeginIO
	dc.l	_DevAbortIO
* private device jump extension
	dc.l	-1
datatable:
	INITBYTE	LN_TYPE,NT_DEVICE
	INITLONG	LN_NAME,devname
	INITBYTE	LIB_FLAGS,LIBF_SUMUSED!LIBF_CHANGED
	INITWORD	LIB_VERSION,VERSION
	INITWORD	LIB_REVISION,REVISION
	INITLONG	LIB_IDSTRING,devid
	dc.w	0

	xref	__BSSBAS
	xref	__BSSLEN
	xref	_LinkerDB

	lea	__BSSBAS,a0
	add.l	__BSSLEN,d0
initroutine:
; d0 = devbase, a0=seglist, a6=sysbase
	movem.l	a1/d1/a0/d0/a4,-(sp)
	move.l	d0,a1
	move.l	a0,md_SegList(a1)
	lea	_LinkerDB,a4
	move.l	a6,_SysBase(a4)

	lea	utilityname(pc),a1
	jsr	-408(a6)	; openlib
	move.l	d0,_UtilityBase(a4)
	beq.s	initerror

	lea	dosname(pc),a1
	jsr	-408(a6)	; openlib
	move.l	d0,_DOSBase(a4)
	beq.s	initerror

	movem.l	(sp)+,d0/d1/a0/a1/a4
	rts

; init failed...
initerror:
	movem.l	(sp),d0/d1/a0/a1/a4
	moveq	#0,d0
	rts

EndCode:
utilityname:	dc.b	"utility.library",0
dosname:
		dc.b	"dos.library",0
	ds.w	0

	END
