;*******************************************************************************
; C H A M E L E O N   DSP Assembler file                                       *
;*******************************************************************************
;Aleix Riera
;www.fjarre.com/~aleix
;aleix@fjarre.com
;*******************************************************************************
;
; MODULE: IN
;	Sepparate L+R from input buffer
;
;	OUT_L[i] = IN[2i]
;	OUT_R[i] = IN[2i+1]
;
;	NOTE: First sample is threated as the LEFT one.
;
; ARGUMENTS:
;	(X)   = InAddr		- Input Stereo DMA buffer (double buffer) (X)
;	(X+1) = OutAddr		- Output Stereo buffer (L)
;
;******************************************************************************
module_in:
	define	R_In			'R1'
	define	R_OutL			'R2'
	define	R_OutR			'R5'

;===============================CODE=====================================

	MOVE	X:(R_X)+,R_In
	MOVE	X:(R_X),R_OutL
	MOVE	X:(R_X),R_OutR

	NOP
	MOVE	X:(R_In)+,X0
	.LOOP	#BUFFER_SIZE
	;----------------------------------------------------------------
	MOVE	X0,X:(R_OutL)+
	MOVE	X:(R_In)+,Y0
	MOVE	X:(R_In)+,X0	Y0,Y:(R_OutR)+
	;----------------------------------------------------------------
	.ENDL

;===============================CODE=====================================

	undef	R_In
	undef	R_OutL
	undef	R_OutR
	
	RTS