*****************************************************************************
**                                                                         **
** Noiseconverter: Kurt                                                    **
**                                                                         **
** Project: Eagleplayer 2.04                                               **
** Authors: Jan Blumenthal & Henryk Richter                                **
** Start  : 1993/01/09                                                     **
** $Header$                                                                **
**                                                                         **
*****************************************************************************
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program (See the included file COPYING);
** if not, write to the Free Software Foundation, Inc.,
** 675 Mass Ave, Cambridge, MA 02139, USA.
**
***************************************************************************** 


*-----------------------------------------------------------------------------*
*			Noiseconverter V1.0				      *
*				Kurt					      *
*-----------------------------------------------------------------------------*
			incdir	include:
			include	misc/eagleplayerconverter.i
			include	exec/exec_lib.i
			
	CONVERTERHEADER	TAGS

	dc.b	"Noiseconverter-Kurt V1.0",10
	dc.b	"done by Eagleeye/DFT 28.02.97",0
	even

Tags:		dc.l	CV_Convertername,Convertername
		dc.l	CV_Convert,Convert
		dc.l	CV_RequestConverter,1
		dc.l	CV_Version,1<<16!0
		dc.l	CV_Creator,Creator
		dc.l	0


Creator:	dc.b	"???, adapted by DEFECT",0
Convertername:	dc.b	"Kurt",0
		even

*-----------------------------------------------------------------------------*
* Input: a0=Adr der Datei
*	 d0=Size der Datei
* Output:d0=ConvertSize oder NULL
*	 d1=Flags
*	 d2=Memsize or NULL
*	 a0=ConvertAdr
*	 a1=Formatname
*	 a2=SamplePtr (für Protrackerclones) oder NULL
Convert:	move.l	a0,a4
		cmp.l	#"KURT",$438(a0)
		bne.s	.Error
		move.l	#"M.K.",$438(a0)
		move.l	d0,d5

		bsr.w	BerechPattern
		move.l	d0,d6

		move.l	#1024/4,d4		;are Longwords)
		mulu	d6,d4
		subq.l	#1,d4
		lea	$43c(a4),a1
		lea	Temp(pc),a2
		lea	My_Periods(pc),a3
.Prun_Change:	move.l	(a1),(a2)
		move.b	(a2),d2			;Samplenummer
		moveq	#0,d3
		move.b	1(a2),d3		;Nummer des Period-Wertes
		add.w	d3,d3			;da Worte
		move.w	(a3,d3.w),d3		;Periode holen
		move.w	d3,(a2)			;sichern
		move.b	d2,d3
		and.b	#$f0,d2
		or.b	d2,(a2)
		lsl.b	#4,d3
		and.b	#$f0,d3
		or.b	d3,2(a2)
		move.l	(a2),(a1)+
		dbf	d4,.Prun_Change

		move.l	a4,a0
		move.l	d5,d0
		moveq	#0,d1
		sub.l	a2,a2
		lea	Convertername(pc),a1
		moveq	#0,d2				;kein neuer Mem
		tst.l	d0
		rts

.Error:		moveq	#0,d0
		rts

Temp:		dc.l	0
*-----------------------------------------------------------------------------*
BerechPattern:	movem.l	d1-a6,-(a7)
BerechPattern3:	lea	$3B8(a0),a1		;Patternnummern
		moveq	#$7F,d2
		moveq	#0,d0
.NR_Check2:
		cmp.b	(A1)+,d0
		bge.s	.hi
		move.b	-1(a1),d0
.hi		dbf	d2,.NR_Check2
		addq.w	#1,d0
		movem.l	(a7)+,d1-a6
		rts

My_Periods:
Pro_Myperiods	dc.w	0
ProPC_Periods
	dc.w	856,808,762,720,678,640,604,570,538,508,480,453
	dc.w	428,404,381,360,339,320,302,285,269,254,240,226
	dc.w	214,202,190,180,170,160,151,143,135,127,120,113
	dc.w	$6b,$5f,$55,$50,$47,$477,$2fb,$23b,$11e,0
