亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usefunction.asm.bak

?? 使用GPTC6604做的一個(gè)錄放音DEMO
?? BAK
字號(hào):
.public F_USER_DVR1600_EndRecord
.public F_USER_DVR1600_GetData,F_USER_DVR1600_WriteData

.public F_SACM_DVR1600_GetADC
.public F_SACM_DVR1600_SendDAC1
.public F_SACM_DVR1600_SendDAC2
.public F_SACM_DVR1600_EndPlay
//.public F_SACM_DVR1600_ISR_On
//.public F_SACM_DVR1600_ISR_Off
.PUBLIC F_SP_SwitchChannel

.public F_SACM_RampUpDAC1
.public F_SACM_RampDnDAC1
.public F_SACM_RampUpDAC2
.public F_SACM_RampDnDAC2

.public F_SP_SACM_DVR1600_DAC_Timer_Init
.public F_SP_SACM_DVR1600_ADC_Timer_Init
.external R_Resouce_DS
.external F_WriteOneByte,F_ReadWord,F_FlashTest,FlashAddr,FlashData

.include var.inc
.include spt6604a.inc
.ram
.public R_ADC_Channel;
.var    R_ADC_Channel = 0;

.const	RW_Bank1	= 0x400
//======================
.code
////////////////////////////////////////////////////////
// Function: _SP_SACM_DAC_Timer_Init_
// Description: Select A1600_Play DAC Sampling Rate, 
//              called by library
//              
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////
F_SP_SACM_DVR1600_DAC_Timer_Init:
    push r1 to [sp];
    
//    R1 = C_DVR1600_DAC_Timer_Setting;  	
//	[P_TimerA_Data] = R1;
	
	pop r1 from [sp];
	retf;

////////////////////////////////////////////////////////
// Function: _SP_SACM_ADC_Timer_Init_
// Description: Select A1600_Rec ADC Sampling Rate
//              called by library
//              
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////

F_SP_SACM_DVR1600_ADC_Timer_Init:
    push r1 to [sp];
 
//    R1 = C_DVR1600_ADC_Timer_Setting;  	
//	[P_TimerA_Data] = R1;
	
	pop r1 from [sp];
	retf;

//---------------------------------------------------------------
//Function : F_SP_SwitchChannel
//Description: This function switches the A/D channel based on 
//             the parameter. 
//Used register: r1
//Return: none
//---------------------------------------------------------------
F_SP_SwitchChannel: .proc
   	push BP to [SP];
//   	BP = SP + 1;
 //  	R1 = [BP + 3]; //RceMonitorOff
    	
	pop BP from [SP];
retf
.ENDP
	

////////////////////////////////////////////////////////
// Function: F_SACM_DVR1600_EndPlay
// Description: call back from kernel when bit stream 
//              decoding is done 
//              
// Syntax  : F_SACM_DVR1600_EndPlay
// Destory: R1
// Parameter : None
// Return    : N/A
////////////////////////////////////////////////////////
F_SACM_DVR1600_EndPlay: .PROC
	push R1 to [SP]; 
    // implemented by designer and SA
    // User can also handle concatenation , Ramp down ant etc.
    nop
    nop
    pop R1 from [SP]; 
    retf; 
.ENDP

//--------------------------------------------------------------------
//-- Function: F_SACM_DVR1600_GetADC
//-- Parameter: N/A   
//-- Return: R1 = ADC data
//-- Description: This function called by library to get  
//                ADC data for recording. It can be from either Microphone
//                or line-in.
//                User would have to modified the function body 
//                based on the need to fulfill this request from 
//                library. 
//                User should store the value in register(R2-R5)if use them. 
//--------------------------------------------------------------------
// ffc0
// 0ffc
F_SACM_DVR1600_GetADC: .PROC
		R1=[P_Adc];	
		R1 = R1 LSR 4	
		R1 = R1 LSR 4	
		R1 &=0xFF
		nop
        retf
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_DVR1600_SendDAC1
// Description: send data to DAC1 from library 
//              
// Syntax  : F_SACM_DVR1600_SendDAC
// Destory: R4   (Suggest to be R1 by Arthur) 
// Parameter : R4: 16-bit unsign PCM
// Return    :None
////////////////////////////////////////////////////////
F_SACM_DVR1600_SendDAC1: .PROC
F_SACM_DVR1600_SendDAC2:
	//push R4 to [SP]; 
    // implemented by designer and SA
    R4 = R4 LSL 4
    R4 = R4 LSL 4
    R4 &=0xFF00
//    [P_Ch0Envelope] = R4;
    [P_Ch0Envelope] = R4
    nop;
    retf; 
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_RampDnDAC1
// Description: Ramp down after using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : F_SACM_RampDnDAC1
// Destory: R1
////////////////////////////////////////////////////////
F_SACM_RampUpDAC1: .PROC
F_SACM_RampUpDAC2:
		push R1 to [SP]; 
    	R1 = [P_Ch0Envelope]; 
    	R1 &= 0xff00; 
    	jz ?_Branch_0; 
    
?_Loop_0:  
    	call F_SACM_Delay;
    	R1 -= 0x0100; 
    	[P_Ch0Envelope] = R1;   
    	jnz ?_Loop_0; 
    
?_Branch_0:       
    	pop R1 from [SP]; 
    	retf; 
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_RampUpDAC
// Description: Ramp Up before using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : F_SACM_RampUpDAC1()
// Destory: R1
////////////////////////////////////////////////////////
F_SACM_RampDnDAC2: .PROC
F_SACM_RampDnDAC1:
		push R1 to [SP]; 
  		R1 = [P_Ch0Envelope]; 
    	R1 &= 0xff00; 
    	cmp R1, 0x8000;
    	jb ?_Loop_0;
       
    	je ?_Branch_0; 
				                
?_Loop_1:
    	call F_SACM_Delay;
    	R1 -= 0x0100; 
    	[P_Ch0Envelope] = R1; 
    	cmp R1, 0x8000; 
    	jne ?_Loop_1; 
      
    	jmp ?_Branch_0; 

?_Loop_0:
		call F_SACM_Delay; 
    	R1 += 0x0100; 
    	[P_Ch0Envelope] = R1; 
    	cmp R1, 0x8000; 
    	jne ?_Loop_0; 
    
?_Branch_0:
   		pop R1 from [SP]; 
.ENDP
		RETF
F_SACM_Delay:
		push R1 TO [SP]
?loop:
		R1 = 0x3F
		R1 -=1
		JNZ  ?loop
		pop	R1 From [sp]
		RETF
//======================
//
//======================
F_USER_DVR1600_WriteData:
//	input Parameter:
//              Buffer Start Adr:R1; Buffer Length:R2 
//	retf;
	    Bp = [RW_Address]
    	nop
L_LoopSaveData:
        R3 =  [R1]
        [FlashAddr] = bp
		[FlashData] = R3
        Call	F_WriteOneByte
		R3 = R3 LSR	4
		R3 = R3 LSR	4
        [FlashAddr] = bp
		[FlashData] = R3
        Call	F_WriteOneByte

        R3 =  [R1++]
        DS:[bp++] = R3      //Save into SRAM at odd 
        R4 = [RW_Length]
        R4+=1
		[RW_Length] = R4
//		Call	F_WriterWord
L_AddressInc:        
        CMP		R5,C_EndAddrBuf
        JE		L_Exit
        CMP		R5,0xFFD0
        JNE		L_NotOver
        R5 = 0
        SR |=RW_Bank1
L_NotOver:        
        R2 -=1
        jnz	L_LoopSaveData
        [RW_Address] = bp
		RETF
L_Exit:
		R1 = C_EndAddrFlag
		[RW_Flag] = R1
        [RW_Address] = bp
		RETF
//============================
//  Input Parameter
//   R1:Length Low
//   R2:Length High
F_USER_DVR1600_EndRecord: 
		SR &=0x3FF 
	    Bp = C_UserBuffer  
//	    R3 = [RW_Length]
//    	[bp++] = R3
		[BP++] = R1       // save length for total
		[BP++] = R2       // save length for total
		R1 = C_RecEndFlag
		[RW_Flag] = R1
		RETF
//======================

//======================
F_USER_DVR1600_GetData:
//	input Parameter:
//          Buffer Start Adr:R1; Buffer Length:R2 
//  Get Data Length
		
	    Bp = [RW_Address]
L_LoopGetData:
        CMP		R5,C_EndAddrBuf
        JE		L_ExitGetData
        R3 =DS:[bp++]
        [R1++] =R3
        CMP		R5,0xFFD0
        JNE		L_NotOverPlay
        R5 = 0
        SR |=RW_Bank1
L_NotOverPlay:        
	    R3 = [RW_Length]
	    R3 -=1
	    [RW_Length] = R3
		TEST  R3,0xFFFF
		JZ	  L_ExitGetData
        R2 -=1
        JNZ	L_LoopGetData
L_ExitLoopGetData:
        [RW_Address] = bp
        RETF
L_ExitGetData:
		R1 = C_EndAddrFlag
		[RW_Flag] = R1
		RETF
////////////////////////////////////////////////////////
.external R_Resouce_BS
.public	F_GetInternalROMData;
F_GetInternalROMData:
   	push R1, R3 to [SP];  // add by adamcar 
	SR &= 0x3FF
	r3 = [R_Resouce_BS]
	R4 =[R3++];
	cmp R3, 0;
	jnz ?L_End;
	SR &= 0x3FF
	[R_Resouce_DS] = SR;

?L_End:
	[R_Resouce_BS] = R3; 
	 
	pop R1, R3 from [SP];
	//-----------------------
	// end of user define area
    //-----------------------
	retf;

// Function: F_SP_SACM_DVR1600_Init_
// Description: Hardware initilazation, System Clock, DAC, INT
//              
// Syntax  : F_SP_SACM_Init_
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////
// call by decode.asm to initilaize the hardware for decode  // by Arthur
.public F_SP_SACM_DVR1600_Init_
F_SP_SACM_DVR1600_Init_:
		FIQ on;
		IRQ on;
		retf
			

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女同一区二区三区| 欧美伊人精品成人久久综合97| 日韩三级视频中文字幕| 天堂一区二区在线| 91精品国产综合久久久久久漫画| 午夜精品福利一区二区三区蜜桃| 欧美蜜桃一区二区三区| 久久精品国产澳门| 日本一区免费视频| 一本大道综合伊人精品热热| 亚洲成人你懂的| 久久网站最新地址| 99re视频精品| 视频精品一区二区| 中文字幕的久久| 欧美日韩一区精品| 国产一区中文字幕| 亚洲精品国产品国语在线app| 欧美日韩精品免费| 国产91露脸合集magnet| 亚洲欧美一区二区三区极速播放 | 免费观看成人av| 久久精品男人的天堂| 99精品热视频| 美腿丝袜一区二区三区| 欧美高清一级片在线观看| 欧美自拍偷拍一区| 国产精品一区专区| 一区二区三区产品免费精品久久75| 制服丝袜亚洲色图| 成人一区二区在线观看| 午夜成人免费电影| 国产精品嫩草久久久久| 欧美一区二区视频观看视频| 国产高清不卡一区| 日日摸夜夜添夜夜添国产精品 | 亚洲欧洲美洲综合色网| 91.麻豆视频| 成人毛片在线观看| 日本视频免费一区| 亚洲激情av在线| 欧美精品一区二区三区蜜桃视频 | 日韩国产成人精品| 国产精品乱码一区二三区小蝌蚪| 欧美日韩的一区二区| 成人18精品视频| 激情久久五月天| 亚洲成av人片一区二区梦乃| 亚洲国产精品成人综合色在线婷婷| 欧美日韩免费一区二区三区 | 国产一区在线观看视频| 亚洲国产欧美日韩另类综合| 中文字幕不卡在线| 精品国产一区久久| 91精品婷婷国产综合久久 | 日韩中文字幕不卡| 一区二区三区不卡在线观看 | 高清不卡在线观看| 国内精品久久久久影院色| 亚洲国产欧美在线| 一区二区三区**美女毛片| 国产欧美va欧美不卡在线| 日韩欧美高清一区| 欧美一区二区三区日韩| 欧美在线观看视频在线| 99re这里只有精品6| 成人免费的视频| 国产91丝袜在线播放九色| 国产自产视频一区二区三区| 日本91福利区| 美日韩一区二区| 男人操女人的视频在线观看欧美| 亚洲国产日产av| 午夜电影一区二区| 一区二区三区四区在线播放| 亚洲精选视频免费看| 亚洲乱码国产乱码精品精98午夜 | 久久久精品人体av艺术| 精品久久久久99| 久久亚洲免费视频| 久久久久久久久久久久久女国产乱| 日韩欧美中文一区| 久久久久久久网| 亚洲国产精品黑人久久久| 国产精品欧美久久久久一区二区| 久久久高清一区二区三区| 国产情人综合久久777777| 中文字幕精品综合| 中文字幕在线一区免费| 亚洲欧美日韩国产手机在线| 亚洲综合色区另类av| 一区二区三区精品| 日本午夜一本久久久综合| 精品在线免费观看| 国产91精品免费| 色综合久久综合| 欧美少妇一区二区| 日韩精品中午字幕| 国产亚洲精品aa午夜观看| 国产精品久久夜| 一区二区三区四区五区视频在线观看| 亚洲午夜在线观看视频在线| 天堂av在线一区| 国产尤物一区二区在线| 99国产精品99久久久久久| 欧美午夜电影在线播放| 日韩欧美中文字幕制服| 国产女主播在线一区二区| 亚洲自拍偷拍麻豆| 精品一区二区在线观看| 成人免费毛片片v| 欧美日韩精品专区| 久久久av毛片精品| 亚洲国产一区在线观看| 韩国三级在线一区| 91社区在线播放| 精品欧美一区二区在线观看| 国产精品视频免费| 日本网站在线观看一区二区三区| 国产99久久久国产精品免费看| 色婷婷综合久久久中文一区二区 | 91视视频在线观看入口直接观看www| 欧美性感一类影片在线播放| 日韩欧美中文字幕一区| 国产精品久久久久久久午夜片 | 喷水一区二区三区| 大陆成人av片| 91麻豆精品国产91久久久使用方法| 国产亚洲欧美日韩在线一区| 夜夜操天天操亚洲| 国产99久久久国产精品免费看 | 国产拍揄自揄精品视频麻豆| 亚洲一级二级三级在线免费观看| 国产美女在线精品| 欧美高清hd18日本| 中文字幕在线一区| 国精产品一区一区三区mba桃花| 色欧美乱欧美15图片| 国产偷国产偷亚洲高清人白洁| 性欧美大战久久久久久久久| 国产成人三级在线观看| 日韩欧美一级在线播放| 亚洲综合成人在线视频| 9久草视频在线视频精品| 精品国产百合女同互慰| 视频在线观看国产精品| 91久久免费观看| 亚洲影院久久精品| k8久久久一区二区三区| 精品处破学生在线二十三| 天天爽夜夜爽夜夜爽精品视频| 91极品美女在线| 亚洲精品视频一区| 99久久免费视频.com| 欧美经典一区二区| 国产电影精品久久禁18| 精品欧美一区二区三区精品久久| 琪琪久久久久日韩精品| 欧美日韩国产天堂| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品国产一区二区精华液 | 777午夜精品免费视频| 一区二区欧美精品| 欧洲激情一区二区| 一区二区三区四区在线播放| 一本大道av一区二区在线播放| 亚洲丝袜制服诱惑| 色婷婷精品大视频在线蜜桃视频| 亚洲视频一二区| 一本一本久久a久久精品综合麻豆| 欧美国产视频在线| 99久久免费视频.com| 中文字幕亚洲视频| 91免费精品国自产拍在线不卡| 最新日韩av在线| 91精品福利在线| 午夜国产精品一区| 欧美一级视频精品观看| 久久精品国产在热久久| www国产精品av| 夫妻av一区二区| 国产精品久久99| 91黄色小视频| 秋霞电影网一区二区| 精品国产欧美一区二区| 成人免费高清在线| 亚洲一区二区视频在线观看| 欧美一级国产精品| 国产美女一区二区| 亚洲日本乱码在线观看| 欧美日韩精品免费观看视频| 麻豆精品在线看| 亚洲国产成人午夜在线一区| 91麻豆福利精品推荐| 亚洲大片在线观看| 久久久久久影视| 在线视频亚洲一区| 久久激情五月婷婷| 综合中文字幕亚洲| 欧美一区二区视频在线观看2022|