	incdir	include:
	include lvo/lvos.i
	include	exec/exec.i
	include	devices/audio.i

	lea	BSS_DATA,a4
	move.l	4.w,a6
	CallLib	CreateMsgPort
	move.l	d0,AudioMP(a4)
	beq.w	NoAudMsgPort

	move.l	d0,a0			; Message port
	moveq.l	#ioa_SIZEOF,d0
	CallLib	CreateIORequest
	move.l	d0,AudioIO(a4)
	beq.w	NoAudIO

	bsr.w	MainProgram

	move.l	4.w,a6
	move.l	AudioIO(a4),a0
	CallLib	DeleteIORequest

NoAudIO:
	move.l	4.w,a6
	move.l	AudioMP(a4),a0
	CallLib	DeleteMsgPort

NoAudMsgPort:

	moveq	#0,d0			; We don't want any returncode
	rts				; exit


; ----------------------MAIN PROGRAM------------------------------------

MainProgram:

	move.l	4.w,a6
	lea	AudioName(pc),a0	; a0 = DevName
					; d0 = UnitNumber	(not used)
	move.l	AudioIO(a4),a1		; a1 = IORequest
					; d1 = Flags		(not used)

	move.b	#127,LN_PRI(a1)
	move.l	AudioMP(a4),MN_REPLYPORT(a1)
	move.w	#0,ioa_AllocKey(a1)
	lea	AudioChan(pc),a3
	move.l	a3,ioa_Data(a1)
	move.l	#4,ioa_Length(a1)

	
	CallLib	OpenDevice
	tst.l	d0
	bne	.NoAudio

	move.l	AudioIO(a4),a1
	move.w	#CMD_WRITE,IO_COMMAND(a1)
	move.b	#ADIOF_PERVOL,IO_FLAGS(a1)
	move.l	#Sound,ioa_Data(a1)
	move.l	#$10,ioa_Length(a1)
	move.w	#700,ioa_Period(a1)
	move.w	#64,ioa_Volume(a1)
	move.w	#$1e,ioa_Cycles(a1)

	move.l	IO_DEVICE(a1),a6
	jsr	-$1e(a6)

	move.l	AudioIO(a4),a1
	move.l	4.w,a6
	CallLib	WaitIO


	move.l	AudioIO(a4),a1
	CallLib	CloseDevice
.NoAudio:	
	rts

AudioName:	dc.b	'audio.device',0
AudioChan:	dc.b	1,2,4,8





	section	Chip,DATA_C
Sound:
	dc.l	$7f5a2810
	dc.l	$f0d8a681
	dc.l	$81a6d8f0
	dc.l	$10285a7f

	section	DATA,BSS

	STRUCTURE	BSS,0
		STRUCT	MarkedTracks,1764*2	; Mark block list (2byte/block)
		WORD	SelectedDrive
		STRUCT	NGadget,30		; Store for gadgets
		LONG	FileHd
		LONG	StartupWB
		LONG	IntBase
		LONG	GadToolsBase
		STRUCT	RequestStruct,5*4	; 4 longwords for request
		LONG	WindowHd
		LONG	GadgetPointer
		LONG	ScreenAddress
		LONG	TrackIO
		LONG	TrackMP
		STRUCT	DriveList,5*4		; For drivelist
		LONG	AudioIO
		LONG	AudioMP
		LONG	DosBase
		LONG	MemPointer
		LONG	MemPointer2
		LONG	ChangeCount
		LONG	SectorMap
		LONG	MenuAddress
		STRUCT	FileBuffer,50		; 50 bytes for prefs-file
		STRUCT	BootBlockMem,1024
*
* Following does NOT have to be word aligned
*
		STRUCT	ReqBuffer,27
		BYTE	cCHKBOX
		BYTE	cSYS
		BYTE	_ErrReq
		BYTE	_Install
		BYTE	_MarkErr
		LABEL	BSS_SIZEOF

BSS_DATA:	ds.b	BSS_SIZEOF
