	include	"ASM1:Includes/Includes.inc"
	include	"ASM1:Includes/Tags.inc"
	include	"ASM1:Includes/Const.inc"

_NoCommand		=	0
_Load			=	1
_Stop			=	2
_Pause			=	3
_Play			=	4
_Forward		=	5
_KillMod		=	6
_PalNtsc		=	7
_Filter			=	8
_Hide			=	9
_Backward		=	10
_ModInfo		=	11
_Equalizer		=	12
_Extend			=	13
_Protect		=	14
_LoadConfig		=	15
_SaveConfig		=	16
_Up			=	17
_Down			=	18
_Loop			=	19
;-------------------------------Startup----------------------------------
	move.l	a0,a5
	move.l	d0,d7

	movea.l	ExecBase,a6

	suba.l	a1,a1
	jsr	FindTask(a6)			;task finden
	move.l	d0,MyTask

;	bra	clistart			;nur fuer test!
wbstart

	move.l	d0,a4
	tst.l	$ac(a4)
	bne	clistart			;clistart!

	lea	$5c(a4),a0
	jsr	WaitPort(a6)			;auf message warten

	lea	$5c(a4),a0
	jsr	GetMsg(a6)			;message holen
	move.l	d0,WBenchMsg			;und sichern

	bsr	main				;start

	jsr	Forbid(a6)			;tasks stoppen
	move.l	WBenchMsg,a1
	jsr	ReplyMsg(a6)			;message löschen

	moveq	#0,d0
	rts					;und weg

clistart
	bsr	main

	moveq	#0,d0
	rts


;----------------------------------Main----------------------------------
main
;-------------------------------FindAlien--------------------------------
findalien
	lea	MsgPortName,a1			;na wie heisst er?
	jsr	FindPort(a6)			;isser schon da?
	tst.l	d0				;na??
	beq	end

	move.l	d0,d7

	lea	MsgPort,a1
	jsr	AddPort(a6)			;mein eigener port! wow!

	movea.l	d7,a0				;ZielPort
	lea	Msg,a1				;meine msg
	jsr	PutMsg(a6)

	lea	MsgPort,a0
	jsr	WaitPort(a6)			;auf reply warten!

	lea	MsgPort,a0
	jsr	GetMsg(a6)			;reply entfernen

	lea	MsgPort,a1
	jsr	RemPort(a6)			;port entfernen
endfindalien
;-----------------------------------End----------------------------------
end
	rts					;schluss! aus! ende!!


;-----------------------------------Data---------------------------------
	section	DATA,data
WBenchMsg
	dc.l	0
;----------------------------------MsgPort-------------------------------
MsgPort
	dc.l	0,0				;nächste,vorherige node
	dc.b	NT_MSGPORT,0			;typ,priorität
	dc.l	ReplyPortName			;name

	dc.b	PA_SIGNAL			;flags
	dc.b	31				;sigbitnumber
MyTask
	dc.l	0				;sigtask

	dc.l	0				;head
	dc.l	0				;tail
	dc.l	0				;tailpred
	dc.b	NT_MSGPORT			;typ
	dc.b	0				;pad	
MsgPortName
	dc.b	"ModPlayerControlPort",0
	even
ReplyPortName
	dc.b	"ModPlayerReplyPort",0
	even
;------------------------------------Msg---------------------------------
Msg
	dc.l	0,0				;nächste,vorherige node
	dc.b	NT_MSGPORT,0			;typ,priorität
	dc.l	MsgPortName			;name

MyPort
	dc.l	MsgPort				;replyport
	dc.w	MsgEnd-Msg			;laenge

	dc.l	_Up				;data
MsgEnd
