⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buffer.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	LDPK	_buffer
	LAC	_buffer
	SUB	* 
	SBRK	2
	ADD	*+,AR0
	SACL	* 
	LT	* ,AR2
	MPYK	9
	PAC
	ADDK	2
	ADLK	_buffer+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	15
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L107
L108:
	.line	12
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	2
	SUBS	* 
	BLZ	L105
	B	EPI0_9
L103:
	.line	21
;>>>> 		else if( labeldata[0] == 0 )
	LDPK	_labeldata
	LAC	_labeldata
EPI0_9:
	.line	24
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	497,000000000H,4

	.sym	_db,_db,32,3,0

	.func	498
;>>>> 	static void db( )		
;>>>> 		uchar i,j;   
******************************************************
* FUNCTION DEF : _db
******************************************************
_db:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,6
	LAR	AR0,*0+,AR2

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_flags,3,12,1,16
	.sym	_num_card,4,12,1,16
	.sym	_len,5,12,1,16
	.line	4
;>>>> 		uchar flags = 0;	            
;>>>> 	   	uchar num_card;
;>>>> 	   	uchar len;   	
	LACK	0
	LARK	AR2,3
	MAR	*0+
	SACL	* ,AR1
	.line	8
;>>>> 	    myInvOut();   	
	CALL	_myInvOut
	.line	9
;>>>> 		num_card = labeldata[0];  
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	10
;>>>> 		if( num_card != 0 )
	LAC	* 
	BZ	EPI0_10
	.line	12
;>>>> 			bReadTag = 1;
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
	.line	13
;>>>> 			if(buffer[0] >= 0x0b) {return;}
;>>>> 			//buffer[0] += num_card;	
	LDPK	_buffer
	ZALS	_buffer
	SUBK	11
	BGEZ	EPI0_10
	.line	15
;>>>> 			len = 1+1+(c_db_n+1)*5;	
	LDPK	_c_db_n
	LAC	_c_db_n
	ADDK	1
	MAR	*+,AR0
	SACL	* 
	LT	* ,AR2
	MPYK	5
	PAC
	ADDK	2
	SACL	* 
	.line	16
;>>>> 			flags = ISOFlagsSys&0xfb;	// not inventory
	LACK	251
	LDPK	_ISOFlagsSys
	AND	_ISOFlagsSys
	SBRK	2
	SACL	* 
	.line	17
;>>>> 			flags |= 0x60;			// address_flag	,option_flag
	ORK	96
	SACL	* 
	.line	18
;>>>> 		    for(i=0;i<num_card;i++)		// read multiple blocks
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BGEZ	EPI0_10
	MAR	*-
L113:
	.line	20
;>>>> 		    	viccdata[0] = 15;     	//len
	LACK	15
	LDPK	_viccdata
	SACL	_viccdata
	.line	21
;>>>> 		      	viccdata[1] = flags;    //flags
	BLDD	*-,#_viccdata+1
	.line	22
;>>>> 		      	viccdata[2] = 0x23;	//cmd
	LACK	35
	LDPK	_viccdata+2
	SACL	_viccdata+2
	.line	23
;>>>> 		      	for(j=0;j<8;j++)	// copy uid
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L116
	MAR	*-
	RSXM ;;;
L115:
	.line	25
;>>>> 		      		viccdata[3+j] = labeldata[i*10+10-j];	      			
	LT	*+
	MPYK	10
	PAC
	ADDK	10
	ADLK	_labeldata+0,0
	SUB	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_viccdata+3,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	23
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L115
L116:
	.line	27
;>>>> 		      	viccdata[11] = c_db_adr;	//start addr
	LDPK	_c_db_adr
	BLDD	_c_db_adr,#_viccdata+11
	.line	28
;>>>> 		      	viccdata[12] = c_db_n;		// length
	BLDD	_c_db_n,#_viccdata+12
	.line	29
;>>>> 		      	wr_crc_send();                                                    
	CALL	_wr_crc_send,AR1
	.line	31
;>>>> 	      		ISOMode = ISOModeSys&0xe7;	//read ,all	      		
	LACK	231
	LDPK	_ISOModeSys
	AND	_ISOModeSys
	LDPK	_ISOMode
	SACL	_ISOMode
	.line	32
;>>>> 	      		sendISOCmd();
	CALL	_sendISOCmd
	.line	33
;>>>> 	      		CS_RAM_1;
	LACK	63487
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	2056
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	35
;>>>> 	      		if(viccdata[1] == 0)	// read correctly
	LDPK	_viccdata+1
	LAC	_viccdata+1
	BNZ	L117
	.line	37
;>>>> 	      			buffer[0] ++;
	LDPK	_buffer
	LAC	_buffer
	ADDK	1
	SACL	_buffer
	.line	38
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+1] = c_db_adr;	
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	*-,AR0
	PAC
	ADLK	_buffer+1,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_adr,* ,AR2
	.line	39
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+2] = c_db_n;	
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* ,AR0
	PAC
	ADLK	_buffer+2,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_n,* ,AR2
	.line	40
;>>>> 	      			for(j=0;j<(c_db_n+1)*5;j++)// copy block status and block data
	LACK	0
	SBRK	3
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BGEZ	L117
	RSXM ;;;
L118:
	.line	42
;>>>> 	      				buffer[(buffer[0]-num_card+i)*len+3+j] = viccdata[2+j];
;>>>> 		else
	LAC	* ,AR0
	ADLK	_viccdata+2,0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADDK	3
	ADLK	_buffer+0,0
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	40
	LAC	* 
	ADDK	1
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BLZ	L118
L117:
	.line	18
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	*-
	BLZ	L113
EPI0_10:
	.line	50
	MAR	* ,AR1
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	547,000000000H,6

	.sym	_serialNumDb,_serialNumDb,32,3,0

	.func	548
;>>>> 	static void serialNumDb( )
;>>>> 		uchar i,j;   
******************************************************
* FUNCTION DEF : _serialNumDb
******************************************************
_serialNumDb:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,6
	LAR	AR0,*0+,AR2

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_flags,3,12,1,16
	.sym	_num_card,4,12,1,16
	.sym	_len,5,12,1,16
	.line	4
;>>>> 		uchar flags = 0;	            
;>>>> 	   	uchar num_card; 
;>>>> 	   	uchar len;   	
	LACK	0
	LARK	AR2,3
	MAR	*0+
	SACL	* ,AR1
	.line	8
;>>>> 		myInvOut();   
	CALL	_myInvOut
	.line	9
;>>>> 		num_card = labeldata[0];   			     		
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	10
;>>>> 		if( num_card != 0 )
	LAC	* 
	BZ	L121
	.line	12
;>>>> 			bReadTag = 1;
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
	.line	13
;>>>> 			if(buffer[0] >= 0x0b) {return;}                   		
;>>>> 		    //buffer[0] += num_card;	        
	LDPK	_buffer
	ZALS	_buffer
	SUBK	11
	BGEZ	EPI0_11
	.line	15
;>>>> 			len = 1+8+1+1+(c_db_n+1)*5;
	LDPK	_c_db_n
	LAC	_c_db_n
	ADDK	1
	MAR	*+,AR0
	SACL	* 
	LT	* ,AR2
	MPYK	5
	PAC
	ADDK	11
	SACL	* 
	.line	17
;>>>> 			flags = ISOFlagsSys&0xfb;	// not inventory
	LACK	251
	LDPK	_ISOFlagsSys
	AND	_ISOFlagsSys
	SBRK	2
	SACL	* 
	.line	18
;>>>> 		    flags |= 0x60;			// address_flag	,option_flag
	ORK	96
	SACL	* 
	.line	19
;>>>> 		    for(i=0;i<num_card;i++)		// read multiple blocks
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BGEZ	EPI0_11
	MAR	*-
L123:
	.line	21
;>>>> 		    	viccdata[0] = 15;     	//len
	LACK	15
	LDPK	_viccdata
	SACL	_viccdata
	.line	22
;>>>> 		      	viccdata[1] = flags;    //flags
	BLDD	*-,#_viccdata+1
	.line	23
;>>>> 		      	viccdata[2] = 0x23;	//cmd
	LACK	35
	LDPK	_viccdata+2
	SACL	_viccdata+2
	.line	24
;>>>> 		      	for(j=0;j<8;j++)	// copy uid
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L126
	MAR	*-
	RSXM ;;;
L125:
	.line	26
;>>>> 		      		viccdata[3+j] = labeldata[i*10+10-j];	      			
	LT	*+
	MPYK	10
	PAC
	ADDK	10
	ADLK	_labeldata+0,0
	SUB	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_viccdata+3,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	24
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L125
L126:
	.line	28
;>>>> 		      	viccdata[11] = c_db_adr;	//start addr
	LDPK	_c_db_adr
	BLDD	_c_db_adr,#_viccdata+11
	.line	29
;>>>> 		      	viccdata[12] = c_db_n;		// length
	BLDD	_c_db_n,#_viccdata+12
	.line	30
;>>>> 		      	wr_crc_send();                                                    
	CALL	_wr_crc_send,AR1
	.line	31
;>>>> 	      		ISOMode = ISOModeSys&0xe7;	//read ,all	      		
	LACK	231
	LDPK	_ISOModeSys
	AND	_ISOModeSys
	LDPK	_ISOMode
	SACL	_ISOMode
	.line	32
;>>>> 	      		sendISOCmd();
	CALL	_sendISOCmd
	.line	33
;>>>> 	      		CS_RAM_1;
	LACK	63487
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	2056
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	35
;>>>> 	      		if(viccdata[1] == 0)	// read correctly
	LDPK	_viccdata+1
	LAC	_viccdata+1
	BNZ	L127
	.line	37
;>>>> 	      			buffer[0] ++;
	LDPK	_buffer
	LAC	_buffer
	ADDK	1
	SACL	_buffer
	.line	38
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+1] = 0x03;	//tr_typ
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* ,AR0
	PAC
	ADLK	_buffer+1,0
	SACL	* 
	LAR	AR3,* ,AR3
	LACK	3
	SACL	* ,AR2
	.line	39
;>>>> 	      			for(j=0;j<8;j++)//copy uid
	LACK	0
	SBRK	3
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L129
	MAR	*-
	RSXM ;;;
L128:
	.line	41
;>>>> 	      				buffer[(buffer[0]-num_card+i)*len+2+j] = labeldata[i*10+3+j];
	LT	*+
	MPYK	10
	PAC
	ADDK	3
	ADLK	_labeldata+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADDK	2
	ADLK	_buffer+0,0
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	39
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L128
L129:
	.line	43
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+10] = c_db_adr;
	LAC	_buffer
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	*-,AR0
	PAC
	ADLK	_buffer+10,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_adr,* ,AR2
	.line	44
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+11] = c_db_n;
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* ,AR0
	PAC
	ADLK	_buffer+11,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_n,* ,AR2
	.line	45
;>>>> 	      			for(j=0;j<(c_db_n+1)*5;j++)// copy block status and block data
	LACK	0
	SBRK	3
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BGEZ	L127
	RSXM ;;;
L130:
	.line	47
;>>>> 	      				buffer[(buffer[0]-num_card+i)*len+12+j] = viccdata[2+j];
	LAC	* ,AR0
	ADLK	_viccdata+2,0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADDK	12
	ADLK	_buffer+0,0
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	45
	LAC	* 
	ADDK	1
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BLZ	L130
L127:
	.line	19
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	*-
	BLZ	L123
	B	EPI0_11
L121:
	.line	52
;>>>> 		else if( labeldata[0] == 0 )
	LDPK	_labeldata
	LAC	_labeldata
EPI0_11:
	.line	55
	MAR	* ,AR1
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	602,000000000H,6

	.sym	_serialNumTimer,_serialNumTimer,32,3,0

	.func	603
;>>>> 	static void serialNumTimer()
;>>>> 		uchar i,j;  
******************************************************
* FUNCTION DEF : _serialNumTimer
******************************************************
_serialNumTimer:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,6
	LAR	AR0,*0+,AR2

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_flags,3,12,1,16
	.sym	_num_card,4,12,1,16
	.sym	_len,5,12,1,16
	.line	4
;>>>> 		uchar flags = 0;	            
;>>>> 	   	uchar num_card;
;>>>> 	   	uchar len;   	
	LACK	0
	LARK	AR2,3
	MAR	*0+
	SACL	* ,AR1
	.line	8
;>>>> 		myInvOut();
	CALL	_myInvOut
	.line	9
;>>>> 	    num_card = labeldata[0];     		
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	10
;>>>> 		if( num_card != 0 )
	LAC	* 
	BZ	L134
	.line	12
;>>>> 			bReadTag = 1;
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
	.line	13
;>>>> 			if(buffer[0] >= 0x0b) {return;}
	LDPK	_buffer
	ZALS	_buffer
	SUBK	11
	BGEZ	EPI0_12
	.line	14
;>>>> 		   	buffer[0] += num_card;	        
	ADDK	11
	ADD	*+
	SACL	_buffer
	.line	16
;>>>> 		   len = 1+8+4;	//tr_typ+snr+timer
	LACK	13
	SACL	* 
	.line	17
;>>>> 		   for(i=0;i<num_card;i++)
	LACK	0
	SBRK	4
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BGEZ	EPI0_12
L136:
	.line	19
;>>>> 		       	buffer[(buffer[0]-num_card+i)*13 + 1] = 0x03;	//tr-type
	LDPK	_buffer
	LAC	_buffer
	SUB	* 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -