
*************************************************************************
*									*
*	Copyright (C) 1985, Commodore Amiga Inc.  All rights reserved.	*
*	Permission granted for non-commercial use			*								*
*									*
************************************************************************/


*************************************************************************
*
* testdev.asm -- test the mylib.asm code
*
* Source Control
* ------ -------
* 
* $Header: amain.asm,v 31.3 85/10/18 19:04:04 neil Exp $
*
* $Locker: neil $
*
* $Log:	amain.asm,v $
*
************************************************************************/

	INCLUDE	'exec/types.i'
	INCLUDE	'exec/libraries.i'
	INCLUDE	'exec/devices.i'
	INCLUDE	'exec/io.i'
	INCLUDE	'exec/tasks.i'
	INCLUDE	'exec/interrupts.i'

	INCLUDE	'asmsupp.i'
	INCLUDE	'mydev.i'



	XDEF	_main

	XREF	_printf
	XREF	_AbsExecBase
	XREF	_CreatePort
	XREF	_DeletePort
	XREF	_CreateStdIO
	XREF	_DeleteStdIO

	XLIB	OpenDevice
	XLIB	CloseDevice


_main:
	move.l	_AbsExecBase,a6

	;------ make a reply port
	pea	0
	pea	myName
	jsr	_CreatePort
	addq.l	#8,sp

	move.l	d0,Port
	beq.s	main_end

	;------ get an io request
	move.l	d0,-(sp)
	jsr	_CreateStdIO
	addq.l	#4,sp

	move.l	d0,Iob
	beq	main_DeletePort

	move.l	d0,a1
	move.l	#myName,LN_NAME(a1)

	;------ open the test device: this will bring it in from disk
	lea	myDevName(pc),a0
	moveq.l	#1,d0
	moveq.l	#0,d1
	CALLSYS	OpenDevice

	tst.l	d0
	beq.s	1$

	;------ couldn't find the library
	pea	0
	move.l	d0,a0
	move.b	IO_ERROR(a0),3(sp)
	pea	myDevName(pc)
	pea	nodevmsg(pc)
	jsr	_printf
	addq.l	#8,sp

	bra	main_DeleteIob

1$:

	;------ close the device
	move.l	Iob,a1
	CALLSYS	CloseDevice

main_DeleteIob:
	move.l	Iob,-(sp)
	jsr	_DeleteStdIO
	addq.l	#4,sp

main_DeletePort
	move.l	Port,-(sp)
	jsr	_DeletePort
	addq.l	#4,sp

main_end:
	rts

myDevName:	MYDEVNAME
myName:		dc.b	'testdev',0
nodevmsg:	dc.b	'can not open device "%s": error %ld',10,0
testmsg:	dc.b	'function MYFUNC%ld returned %ld',10,0

Port:	dc.l	0
Iob:	dc.l	0

	END
