--  Copyright (c) Texas Instruments, Inc.  2007
--  02/23/07    Changes for fixing Volume Clamping

-- DSP audio main program-- DSP audio main program

-- The TAS3204 SAP-In and SAP-Out data addresses are fixed by the hardware.
.data HWSDIN1L_D    @0x000 
.data HWSDIN1R_D    @0x001 
.data HWSDIN2L_D    @0x002 
.data HWSDIN2R_D    @0x003 
.data HWADC1L_D    @0x004 
.data HWADC1R_D    @0x005 
.data HWADC2L_D    @0x006 
.data HWADC2R_D    @0x007 

.data HWSDOUT1L_D   @0x014 -- SDOUT1L
.data HWSDOUT1R_D   @0x015 -- SDOUT1R		
.data HWSDOUT2L_D   @0x016 -- SDOUT2L
.data HWSDOUT2R_D   @0x017 -- SDOUT2R
.data HWDAC1L_D   @0x010 -- DAC1L
.data HWDAC1R_D   @0x011 -- DAC1R		
.data HWDAC2L_D   @0x012 -- DAC2L
.data HWDAC2R_D   @0x013 -- DAC2R		

.data SDIN1L_D  
.data SDIN1R_D 
.data SDIN2L_D 
.data SDIN2R_D 
.data ADC1L_D  
.data ADC1R_D  
.data ADC2L_D  
.data ADC2R_D  

-- Reserved data addresses that should not be used by variables
.data Reserved1 @0x2FE
.data Reserved2 @0x2FF
.data Reserved3 @0x300
.data LFS 		@0x301
.data Reserved4 @0x302
.data Reserved5 @700      -- Dither seed
.data Reserved6 @701
.data Reserved7 @702

-- Version Information
.coef TAS3204AudioApp_1_Version @16 =0

-- Global definitions that components can rely on
.coef ONE =1.00F
.coef VONEL =1.00F  -- Constant gain for all channels (TAS3204) 
.coef ZERO =0.0F

.data one_D  =0x000000800000  -- =0x000000080000  
.data mone_D =0xffffff800000 


-- This routine verifies that the STOP Command is seen. There is a jump to here from the end.
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
JMP(PC)	| NOP | NOP | NOP | PCADDR(PMRK_B)
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
PMRK_D:
STOP(PC)| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
JMP(PC)	| NOP | NOP | NOP | PCADDR(PMRK_D)
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
PMRK_B:

-- Copy Fixed Input Locations to Movable Input Locations
NOP | NOP| LD(HWSDIN1L_D,B)| NOP | NOP
NOP | NOP| LD(HWSDIN1R_D,B)| NOP | ST(B,DATA,SDIN1L_D)
NOP | NOP| LD(HWSDIN2L_D,B)| NOP | ST(B,DATA,SDIN1R_D)
NOP | NOP| LD(HWSDIN2R_D,B)| NOP | ST(B,DATA,SDIN2L_D)
NOP | NOP| LD(HWADC1L_D,B) | NOP | ST(B,DATA,SDIN2R_D)
NOP | NOP| LD(HWADC1R_D,B) | NOP | ST(B,DATA,ADC1L_D)
NOP | NOP| LD(HWADC2L_D,B) | NOP | ST(B,DATA,ADC1R_D)
NOP | NOP| LD(HWADC2R_D,B) | NOP | ST(B,DATA,ADC2L_D)
NOP | NOP| NOP	            | NOP | ST(B,DATA,ADC2R_D)

-- DSP calculation code that may be placed at the end of memory
.include "DSP_calc.asm"

-- DSP flow code, that must be placed in a specific order and connected together with DSP_Links.asm below
.include "DSP_flow.asm"

-- This routine is put into the End of the code to verify that the STOP Command is seen.
STOP(PC)| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
JMP(PC)	| NOP | NOP | NOP | PCADDR(PMRK_D)
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP
NOP	| NOP | NOP | NOP | NOP

-- link commands that connect components
.include "DSP_links.asm"
	
-- END DSP audio application framework















