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

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

?? sacmv32.asm

?? 由SPCE061A控制SPLC501液晶的貪吃蛇游戲,很有意思
?? ASM
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
//============================================================
// 文件名稱:sacmV32.asm
// 實(shí)現(xiàn)功能:對(duì)A3200、A2000、A1600、S530、S480、S240、MS01、DVR等格式的初始化、初始化隊(duì)列
// 讀寫隊(duì)列、聲音高低的調(diào)節(jié)等函數(shù)
// 日期: 2003/6/16
//============================================================


.include spce.inc

//== User definition =====================
.define C_RampDelay 80

//---<< System Clock Setting >>----------------------
// Note: Please refer to spce.inc for BODY_TYPE definition.
//       This setting affects the validity of C_SystemClock.
//

.define C_SystemClock C_Fosc_49M
//.define C_SystemClock C_Fosc
//----<< Timer definition >>------------------------
.define C_Timer_Setting_8K_For_24MHz   0xF9FF
.define C_Timer_Setting_9K_For_24MHz   0xFAAA
.define C_Timer_Setting_10K_For_24MHz  0xFB33
.define C_Timer_Setting_11K_For_24MHz  0xFBA2
.define C_Timer_Setting_12K_For_24MHz  0xFBFF
.define C_Timer_Setting_16K_For_24MHz  0xFCFF
.define C_Timer_Setting_20K_For_24MHz  0xFD98
.define C_Timer_Setting_24K_For_24MHz  0xFDFF

.define C_Timer_Setting_8K_For_49MHz   0xF3FF
.define C_Timer_Setting_9K_For_49MHz   0xF555
.define C_Timer_Setting_10K_For_49MHz  0xF666
.define C_Timer_Setting_11K_For_49MHz  0xF745
.define C_Timer_Setting_12K_For_49MHz  0xF7FF
.define C_Timer_Setting_16K_For_49MHz  0xF9FF
.define C_Timer_Setting_20K_For_49MHz  0xFB33
.define C_Timer_Setting_24K_For_49MHz  0xFBFF

//---<< Timer setting >>
.define C_S200_Timer_Setting  C_Timer_Setting_16K_For_49MHz
.define C_S240_Timer_Setting  C_Timer_Setting_20K_For_49MHz
.define C_S480_Timer_Setting  C_Timer_Setting_16K_For_49MHz
.define C_S530_Timer_Setting  C_Timer_Setting_12K_For_49MHz


.define C_A1600_Timer_Setting 		C_Timer_Setting_16K_For_49MHz
.define C_A2000_Timer_Setting 		C_Timer_Setting_16K_For_49MHz

.define C_DVR_Timer_Setting   		C_Timer_Setting_8K_For_49MHz
.define C_DVR_Rec_Timer_Setting 	C_Timer_Setting_24K_For_49MHz
.define C_DVR_Play_Timer_Setting 	C_Timer_Setting_16K_For_49MHz
// For A3200 Timer setting , please go to F_SP_SACM_A3200_Init_, 
//                                        F_SP_SACM_2Ch_A3200_Init_
//                           it is determined by library internally.
// For Ms01 Timer setting , please go to F_SP_SACM_MS01_Init_
//-------------------------------------------------


//================================================== 


.PUBLIC	F_SP_RampUpDAC1 
.PUBLIC	F_SP_RampDnDAC1
.PUBLIC	F_SP_RampUpDAC2
.PUBLIC	F_SP_RampDnDAC2
.PUBLIC	_SP_RampUpDAC1 
.PUBLIC	_SP_RampDnDAC1 
.PUBLIC	_SP_RampUpDAC2 
.PUBLIC	_SP_RampDnDAC2 

.PUBLIC	_SP_InitQueue
.PUBLIC	_SP_InitQueue_A2000
.PUBLIC	_SP_InitQueue_S530
.PUBLIC	_SP_InitQueue_S480
.PUBLIC	_SP_InitQueue_S240
.PUBLIC	_SP_InitQueue_MS01
.PUBLIC	_SP_InitQueue_DVR

.PUBLIC	F_SP_InitQueue
.PUBLIC	F_SP_InitQueue_A2000
.PUBLIC	F_SP_InitQueue_S530
.PUBLIC	F_SP_InitQueue_S480
.PUBLIC	F_SP_InitQueue_S240
.PUBLIC	F_SP_InitQueue_MS01
.PUBLIC	F_SP_InitQueue_DVR

.PUBLIC	F_SP_ReadQueue
.PUBLIC F_SP_ReadQueue_A2000
.PUBLIC F_SP_ReadQueue_S530
.PUBLIC F_SP_ReadQueue_S480
.PUBLIC F_SP_ReadQueue_S240
.PUBLIC F_SP_ReadQueue_MS01
.PUBLIC F_SP_ReadQueue_DVR

.PUBLIC	F_SP_ReadQueue_NIC			// Read Queue with no index change
.PUBLIC	F_SP_ReadQueue_NIC_A2000
.PUBLIC	F_SP_ReadQueue_NIC_S530
.PUBLIC	F_SP_ReadQueue_NIC_S480
.PUBLIC	F_SP_ReadQueue_NIC_S240
.PUBLIC	F_SP_ReadQueue_NIC_MS01
.PUBLIC	F_SP_ReadQueue_NIC_DVR

.PUBLIC	F_SP_WriteQueue
.PUBLIC F_SP_WriteQueue_A2000
.PUBLIC F_SP_WriteQueue_S530
.PUBLIC F_SP_WriteQueue_S480
.PUBLIC F_SP_WriteQueue_S240
.PUBLIC F_SP_WriteQueue_MS01
.PUBLIC F_SP_WriteQueue_DVR

.PUBLIC F_SP_TestQueue
.PUBLIC F_SP_TestQueue_A2000
.PUBLIC F_SP_TestQueue_S530
.PUBLIC F_SP_TestQueue_S480
.PUBLIC F_SP_TestQueue_S240
.PUBLIC F_SP_TestQueue_MS01
.PUBLIC F_SP_TestQueue_DVR


.PUBLIC	_SP_GetResource	

.PUBLIC	F_RampUpDAC1 
.PUBLIC	F_RampDnDAC1 
.PUBLIC	F_RampUpDAC2 
.PUBLIC	F_RampDnDAC2 
.PUBLIC	_STD_RampUpDAC1 
.PUBLIC	_STD_RampDnDAC1 
.PUBLIC	_STD_RampUpDAC2 
.PUBLIC	_STD_RampDnDAC2 


/////////////////////////////////////////////////////////////////
// Note: This register map to the P_INT_Ctrl(0x7010)
// 	User's interrupt setting have to combine with this register 
//	while co-work with SACM library.
//
//  See. following function for example:
//	F_SP_SACM_A2000_Init_:
//	F_SP_SACM_S480_Init_:
//	F_SP_SACM_S240_Init_:
//	F_SP_SACM_MS01_Init_:
//	F_SP_SACM_DVR_Init_: 
//////////////////////////////////////////////////

//.external R_InterruptStatus // declared in spce.asm
//////////////////////////////////////////////////

.define C_QueueSize 50					
.RAM
.VAR 	R_Queue 
.DW		C_QueueSize-1	DUP(0) 
.VAR	R_ReadIndex 
.VAR	R_WriteIndex 

.CODE
//////////////////////////////////////////////////////
// Ramp Functions
//////////////////////////////////////////////////////	
////////////////////////////////////////////////////////
// Function: _SP_RampUpDAC1
// Description: Ramp Up before using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : SP_RampUpDAC1()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampUpDAC1:	.PROC
F_SP_RampUpDAC1:
		push r1,r2 to [sp] 
        r1=[P_DAC1] 
        r1 &= ~0x003f 
        cmp     r1,0x8000
        jb     	L_RU_NormalUp
        je      L_RU_End
                
L_RU_DownLoop:
        call    F_Delay         
        r2 = 0x0001 
        [P_Watchdog_Clear] = r2 
        r1 -= 0x40 
        [P_DAC1] = r1 
        cmp     r1,0x8000 
        jne     L_RU_DownLoop   
L_RD_DownEnd:
        jmp     L_RU_End 

L_RU_NormalUp:
L_RU_Loop:
        call    F_Delay 
        r2 = 0x0001 
        [P_Watchdog_Clear] = r2 
        r1 += 0x40 
        [P_DAC1] = r1 
        cmp     r1, 0x8000 
        jne     L_RU_Loop 
L_RU_End:
		pop     r1,r2 from [sp] 
  		retf 
    	.ENDP
    
////////////////////////////////////////////////////////
// Function: _SP_RampDnDAC1
// Description: Ramp down after using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : SP_RampDnDAC1()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampDnDAC1:	.PROC
F_SP_RampDnDAC1:
		push r1,r2 to [sp] 
  		//int off 
    	r1 = [P_DAC1] 
     	r1 &= ~0x003F 
      	jz      L_RD_End 
L_RD_Loop:                
        call    F_Delay         
        r2 = 0x0001 
        [P_Watchdog_Clear] = r2 
        r1 -= 0x40 
        [P_DAC1] = r1   
        jnz     L_RD_Loop 
L_RD_End:       
        pop     r1,r2 from [sp] 
        retf 
		.ENDP

////////////////////////////////////////////////////////
// Function: _SP_RampUpDAC2
// Description: Ramp Up before using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : SP_RampUpDAC2()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampUpDAC2:	.PROC
F_SP_RampUpDAC2:
		push r1,r2 to [sp] 
  		r1=[P_DAC2] 
    	r1 &= ~0x003f 
     	cmp     r1,0x8000
      	jb     	L_RU_NormalUp_   
       	je      L_RU_End 
                
L_RU_DownLoop_:
        call    F_Delay         
        r2 = 0x0001 
        [P_Watchdog_Clear] = r2 
        r1 -= 0x40 
        [P_DAC2] = r1 
        cmp     r1,0x8000 
        jne     L_RU_DownLoop_   
L_RD_DownEnd_:
        jmp     L_RU_End_ 

L_RU_NormalUp_:
L_RU_Loop_:
		call    F_Delay 
  		r2 = 0x0001 
    	[P_Watchdog_Clear] = r2 
        r1 += 0x40 
        [P_DAC2] = r1 
        cmp     r1, 0x8000 
        jne     L_RU_Loop_ 
L_RU_End_:
   		pop     r1,r2 from [sp] 
     	retf 
      	.ENDP

////////////////////////////////////////////////////////
// Function: _SP_RampDnDAC2
// Description: Ramp down after using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : SP_RampDnDAC2()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampDnDAC2:	.PROC
F_SP_RampDnDAC2:
		//int off 
		push r1,r2 to [sp] 
                
        r1 = [P_DAC2] 
        r1 &= ~0x003F 
        jz      L_RD_End_ 
L_RD_Loop_:                
        call    F_Delay         
        r2 = 0x0001 
        [P_Watchdog_Clear] = r2 
        r1 -= 0x40 
        [P_DAC2] = r1   
        jnz     L_RD_Loop_ 
L_RD_End_:       
        pop     r1,r2 from [sp] 
        retf 
		.ENDP

	
//-------------------------------------------------------
// Function: F_Delay
// Description: Provide delay for Ramp up/down 
//              The delay time is adjustable by adjusting C_RampDelay
// Destory: R1
//-------------------------------------------------------			
F_Delay:
        push r1 to [sp] 
        r1 = C_RampDelay; 							// Ramp Up/Dn delay per step

L_D_Loop:
        r1 -= 1 
        jnz     L_D_Loop  
        pop     r1 from [sp] 
        RETF	 



//////////////////////////////////////////////////////
// Queue Functions
//////////////////////////////////////////////////////				

////////////////////////////////////////////////////////
// Function: _SP_InitQueue
// Description: Initiate queue for algorism use 
// Syntax  : SP_InitQueue()
// Destory: R1
////////////////////////////////////////////////////////
_SP_InitQueue:	.PROC
_SP_InitQueue_A2000:
_SP_InitQueue_S530:
_SP_InitQueue_S480:
_SP_InitQueue_S240:
_SP_InitQueue_MS01:
_SP_InitQueue_DVR:

F_SP_InitQueue_A2000:
F_SP_InitQueue_S530:
F_SP_InitQueue_S480:
F_SP_InitQueue_S240:
F_SP_InitQueue_MS01:
F_SP_InitQueue_DVR:
F_SP_InitQueue:
		R1 = R_Queue
		R2 = 0 
?L_ClearQueueLoop:		
		[R1++] = R2
		cmp	R1, R_Queue+C_QueueSize
		jne	?L_ClearQueueLoop
			
		R1 = 0
		[R_ReadIndex] = R1
		[R_WriteIndex] = R1
				
		RETF
		.ENDP
		
//-------------------------------------------------------
// Function: F_SP_ReadQueue_Xnnn
// Description Get a data form Queue
// Output:  R1: Data read
// Destory: R1,R2
//-------------------------------------------------------
F_SP_ReadQueue_A2000:
F_SP_ReadQueue_S530:
F_SP_ReadQueue_S480:
F_SP_ReadQueue_S240:
F_SP_ReadQueue_MS01:
F_SP_ReadQueue_DVR:
F_SP_ReadQueue:
		R2 = [R_ReadIndex]
		cmp R2,[R_WriteIndex]
		je	L_RQ_QueueEmpty

		R2 += R_Queue				// get queue data address
		R1 = [R2]
		
		R2 = [R_ReadIndex]
		R2 += 1
		cmp	R2, C_QueueSize
		jne	L_RQ_NotQueueBottom
		R2 = 0
L_RQ_NotQueueBottom:	
		[R_ReadIndex] = R2		
		//r2 = 0x0000 						// get queue data
		retf 
L_RQ_QueueEmpty:
		//r2 = 0x8000 						// queue empty
		retf 

//-------------------------------------------------------
// Function: F_SP_ReadQueue_NIC_Xnnn
// Description: Get a data from Queue but do 
//			not change queue index
// Output:  R1: Data read
// Destory: R1,R2
//-------------------------------------------------------
F_SP_ReadQueue_NIC:
F_SP_ReadQueue_NIC_A2000:
F_SP_ReadQueue_NIC_S530:
F_SP_ReadQueue_NIC_S480:
F_SP_ReadQueue_NIC_S240:
F_SP_ReadQueue_NIC_MS01:
F_SP_ReadQueue_NIC_DVR:
		R2 = [R_ReadIndex]
		cmp R2,[R_WriteIndex]
		je	?L_RQ_QueueEmpty

		R2 += R_Queue				// get queue data index
		R1 = [R2]
?L_RQ_QueueEmpty:
		RETF
		
//-------------------------------------------------------
// Function: F_SP_WriteQueue_Xnnn
// Description: Put a data to Queue
// Input  :  R1 Data to write 
// Destory: R1,R2
//-------------------------------------------------------
F_SP_WriteQueue_A2000:
F_SP_WriteQueue_S530:
F_SP_WriteQueue_S480:
F_SP_WriteQueue_S240:
F_SP_WriteQueue_MS01:
F_SP_WriteQueue_DVR:
F_SP_WriteQueue:
		R2 = [R_WriteIndex] 			// put data to queue
		R2 += R_Queue
		[R2] = R1

		R2 = [R_WriteIndex]
		R2 += 1
		cmp	R2, C_QueueSize
		jne	L_WQ_NotQueueBottom
		R2 = 0
L_WQ_NotQueueBottom:
		[R_WriteIndex] = R2
		RETF

		

//-------------------------------------------------------
// Function: F_SP_ReadQueue_NIC_Xnnn
// Description: Test Queue Status
// Output:  R1: queue status
//	            0: not Full, not empty
//              1: full
//              2: empty 
// Destory: R1
//-------------------------------------------------------
F_SP_TestQueue_A2000:
F_SP_TestQueue_S530:
F_SP_TestQueue_S480:
F_SP_TestQueue_S240:
F_SP_TestQueue_MS01:
F_SP_TestQueue_DVR:
F_SP_TestQueue:
		//... Test Queue Empty ...
		R1 = [R_ReadIndex] 
		cmp R1,[R_WriteIndex] 
		je	L_TQ_QueueEmpty 

		//... Test Queue Full ...
		R1 = [R_ReadIndex] 				// For N Queue Full: 1.R=0 and W=N-1 2. R<>0 and W=R-1 
		jnz	L_TQ_JudgeCond2 
		R1 = [R_WriteIndex] 
		cmp	R1, C_QueueSize-1 			// Cond1
		je	L_TQ_QueueFull 			
L_TQ_JudgeCond2:		
		R1 = [R_ReadIndex] 
		R1 -=1 
		cmp R1,[R_WriteIndex] 
		je	L_TQ_QueueFull 	

		r1 = 0 							// not Full, not empty
		retf 
L_TQ_QueueFull:
		r1 = 1 							// full
		retf 
L_TQ_QueueEmpty:
		r1 = 2 							// empty
		retf 



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久| 欧美日本一区二区三区四区| 精品亚洲aⅴ乱码一区二区三区| 欧美aaaaaa午夜精品| 国产精品一二三四五| 97se亚洲国产综合自在线不卡| 在线视频国产一区| 精品福利在线导航| 亚洲欧洲日韩女同| 免费成人性网站| 久久一日本道色综合| 亚洲成人免费观看| 国产一二三精品| 7777精品久久久大香线蕉| 国产午夜精品久久久久久久 | av电影天堂一区二区在线观看| 在线电影院国产精品| 国产精品久久久久婷婷| 久久国产三级精品| 欧美一区二区视频在线观看| 日韩一区在线看| 欧美日韩极品在线观看一区| 日本va欧美va精品发布| 2021久久国产精品不只是精品| 成人精品视频一区| 久久久美女毛片| 精品一区二区成人精品| 国产欧美精品一区二区三区四区| 美腿丝袜在线亚洲一区 | 成人免费视频视频在线观看免费| 亚洲欧美一区二区不卡| 欧美一级搡bbbb搡bbbb| 成人动漫av在线| 久久九九久久九九| 一本久道中文字幕精品亚洲嫩| 国产欧美一区二区精品仙草咪| 欧美综合欧美视频| 国产麻豆视频一区| 亚州成人在线电影| 国产精品免费av| 国产麻豆视频精品| 天堂va蜜桃一区二区三区漫画版| 欧美日韩在线观看一区二区| 亚洲一级二级三级在线免费观看| 99精品国产一区二区三区不卡| 天堂影院一区二区| 国产精品成人午夜| 精品久久国产老人久久综合| 全部av―极品视觉盛宴亚洲| 国产精品美女久久久久高潮| 欧美肥妇毛茸茸| 色综合天天综合在线视频| **性色生活片久久毛片| 精品盗摄一区二区三区| 欧美精品第一页| 91麻豆国产香蕉久久精品| 亚洲欧洲成人自拍| 久久综合色播五月| 日韩亚洲欧美成人一区| 国产一区久久久| 秋霞国产午夜精品免费视频| 亚洲大片免费看| 亚洲免费在线看| 综合在线观看色| 欧美日韩一区三区| 日本高清不卡在线观看| 五月婷婷综合网| 久久久久国产精品麻豆| 欧美一级片在线观看| 99久久免费视频.com| 激情综合五月天| 美腿丝袜在线亚洲一区| 亚洲国产欧美在线| 成人免费小视频| 国产精品色婷婷| 精品国产在天天线2019| 成人免费视频网站在线观看| 国产98色在线|日韩| 日本一区二区三区久久久久久久久不 | 国产精品自拍av| 午夜久久久久久久久久一区二区| 椎名由奈av一区二区三区| 欧美一区二区女人| 欧美偷拍一区二区| 一区二区三区不卡视频| 成人aa视频在线观看| 激情综合色播五月| 国产日韩欧美麻豆| 久久久噜噜噜久久中文字幕色伊伊 | 国产亚洲欧美日韩在线一区| 日韩你懂的电影在线观看| 国产麻豆精品在线观看| 七七婷婷婷婷精品国产| 五月天激情综合| 亚洲va韩国va欧美va| 樱花影视一区二区| 亚洲欧美国产三级| 亚洲色图视频免费播放| 亚洲国产毛片aaaaa无费看| 亚洲制服丝袜在线| 亚洲国产一区二区三区| 亚洲一区欧美一区| 亚洲不卡在线观看| 日本午夜精品一区二区三区电影| 久久久久久久久久久99999| 日韩你懂的在线播放| 久久九九全国免费| 久久女同精品一区二区| 久久伊人中文字幕| 国产精品美女久久久久久| 国产精品素人一区二区| 亚洲欧美电影院| 亚洲va欧美va国产va天堂影院| 日本视频一区二区| 日本中文一区二区三区| 成人黄色av网站在线| 色综合天天做天天爱| 欧美日本一区二区在线观看| 91精品国产黑色紧身裤美女| 精品国精品自拍自在线| 中文字幕在线视频一区| 国产精品热久久久久夜色精品三区| 国产精品毛片无遮挡高清| 亚洲综合小说图片| 麻豆传媒一区二区三区| 成人午夜大片免费观看| 欧美在线视频日韩| 亚洲视频综合在线| 欧美一激情一区二区三区| 欧美一级搡bbbb搡bbbb| 日韩一级黄色片| 久久久国产精品午夜一区ai换脸 | 日韩成人精品在线观看| 亚洲综合无码一区二区| 蜜芽一区二区三区| 成人激情免费网站| 欧美日韩专区在线| 国产精品美女久久久久久久久久久 | 亚洲综合一区二区精品导航| 青椒成人免费视频| 不卡一二三区首页| 日韩视频在线你懂得| 国产精品成人在线观看| 亚洲区小说区图片区qvod| 日韩vs国产vs欧美| 99re热视频这里只精品| 欧美大片免费久久精品三p| 中文字幕视频一区| 日韩电影在线免费看| 成人妖精视频yjsp地址| 欧美一区二区三级| 亚洲人午夜精品天堂一二香蕉| 亚洲国产人成综合网站| 93久久精品日日躁夜夜躁欧美| 欧美一区二区三区免费大片 | 国产精品嫩草影院com| 免费在线观看精品| 在线观看日韩一区| 国产精品福利一区二区三区| 精品在线一区二区| 欧美日韩在线直播| 国产人妖乱国产精品人妖| 亚洲国产精品欧美一二99| aaa亚洲精品| 亚洲国产精品成人综合色在线婷婷 | 亚洲免费观看高清在线观看| 国产综合色在线视频区| 91精品午夜视频| 亚洲一区在线观看免费 | 国产成人av电影在线播放| 4438x亚洲最大成人网| 亚洲不卡av一区二区三区| 91在线一区二区| 国产精品三级视频| 国产精品 欧美精品| 欧美刺激脚交jootjob| 麻豆精品视频在线观看免费| 欧美一区二区三区的| 午夜精品福利久久久| 欧洲视频一区二区| 一区二区三区中文字幕| 91视频国产观看| 久久免费电影网| 乱一区二区av| 欧美xxxxx裸体时装秀| 精品一区二区影视| 欧美本精品男人aⅴ天堂| 国产一区中文字幕| xnxx国产精品| 国产宾馆实践打屁股91| 国产精品免费久久| 91久久人澡人人添人人爽欧美| 亚洲免费观看高清完整版在线观看 | 综合久久久久久| 99视频精品免费视频| 国产精品色哟哟| 在线电影一区二区三区| 国产剧情av麻豆香蕉精品| 亚洲图片另类小说| 欧美高清视频一二三区|