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

📄 function.lst

📁 Holtek audio decoder , Dongle 参考范例
💻 LST
📖 第 1 页 / 共 5 页
字号:
 285  0077  0F2D        		MOV		A,USB_FIFO5
 286  0078  2800     R  		JMP		Read_FIFO
 287  0079              
 288  0079              Read_FIFO:
 289  0079  3026        		SET		MISC.@MISC_REQ
 290  007A              
 291  007A  0080     E  		MOV		FIFO_TEMP,A		;FIFO_TEMP SAVE FIFOX ADDRESS
 292  007B  1F00     E  		CLR		FIFO_SendLen
 293  007C  0F00     E  		MOV		A,OFFSET FIFO_Type
 294  007D  0081        		MOV		MP0,A
 295  007E              Read_FIFO_Loop:
"File: FUNCTION.ASM  Holtek Cross-Assembler  Version 2.86      Page 6

 296  007E  0700     E  		MOV		A,FIFO_TEMP
 297  007F  0083        		MOV		MP1,A
 298  0080  0702        		MOV		A,R1
 299  0081  0080        		MOV		R0,A
 300  0082  1480     E  		INC		FIFO_SendLen
 301  0083  1481        		INC		MP0
 302  0084  0700     E  		MOV		A,FIFO_SIZE
 303  0085  0400     E  		XOR		A,FIFO_SendLen
 304  0086  3D0A        		SZ		Z				;1=FIFO_SIZE=FIFO_SendLen
 305  0087  2800     R  		JMP		Read_FIFO_End
 306  0088  0F26        		MOV		A,USB_MISC
 307  0089  0083        		MOV		MP1,A
 308  008A  2000     R  		CALL		Delay_28us
 309  008B  3F02        		SZ		R1.@MISC_Ready
 310  008C  2800     R  		JMP		Read_FIFO_LOOP
 311  008D  2800     R  		JMP		Read_FIFO_End
 312  008E              
 313  008E              Send_Hand_Shake:
 314  008E              Send_Hand_Shake_wait:
 315  008E              		; protect die loop
 316  008E  2000     R  		call		Check_Real_Cmd
 317  008F  3C00     E  		sz		bFlag_Real_Cmd
 318  0090              		;jmp		USB_EP0_ISR_END
 319  0090  0003        		ret				;modify by 2006-02-16
 320  0091              
 321  0091  2000     R  		CALL		FIFO0_WR_CHECK
 322  0092  3800     E  		SNZ		bFlag_FIFO_Ready
 323  0093  2800     R  		JMP		Send_Hand_Shake_wait
 324  0094              
 325  0094  3026        		set		MISC.@MISC_REQ
 326  0095              WriteLen0:
 327  0095              Write_FIFO_OK:
 328  0095              Read_FIFO_End:
 329  0095  0F26        		MOV		A,USB_MISC
 330  0096  0083        		MOV		MP1,A
 331  0097  0F02        		MOV		A,(01H SHL @MISC_TX)		;Change TX State
 332  0098              		;CLR		INTC0.0
 333  0098  0482        		XORM		A,R1
 334  0099  2000     R  		CALL		Delay_3us
 335  009A  3402        		CLR		R1.@MISC_REQ
 336  009B              		;SET		INTC0.0
 337  009B  0003        		RET
 338  009C              ;============================================================
 339  009C              ;Function:Write FIFOx from FIFO_OUTx
 340  009C              ;============================================================
 341  009C              Write_FIFO0:
 342  009C  0F28        		MOV		A,USB_FIFO0
 343  009D  2800     R  		JMP		Write_FIFO
 344  009E              Write_FIFO1:
 345  009E  0F29        		MOV		A,USB_FIFO1
 346  009F  2800     R  		JMP		Write_FIFO
 347  00A0              Write_FIFO2:
 348  00A0  0F2A        		MOV		A,USB_FIFO2
 349  00A1  2800     R  		JMP		Write_FIFO
 350  00A2              Write_FIFO3:
 351  00A2  0F2B        		MOV		A,USB_FIFO3
 352  00A3  2800     R  		JMP		Write_FIFO
 353  00A4              Write_FIFO4:
 354  00A4  0F2C        		MOV		A,USB_FIFO4
 355  00A5  2800     R  		JMP		Write_FIFO
"File: FUNCTION.ASM  Holtek Cross-Assembler  Version 2.86      Page 7

 356  00A6              Write_FIFO5:
 357  00A6  0F2D        		MOV		A,USB_FIFO5
 358  00A7  2800     R  		JMP		Write_FIFO
 359  00A8              
 360  00A8              Write_FIFO:
 361  00A8  0001        		clr wdt	
 362  00A9  3026        		SET		MISC.@MISC_REQ
 363  00AA  0080     E  		MOV		FIFO_TEMP,A		;FIFO NO Address
 364  00AB  0F00     E  		MOV		A,OFFSET FIFO_OUT1
 365  00AC  0081        		MOV		MP0,A
 366  00AD              Write_FIFO_Loop:
 367  00AD  0001        		clr wdt	
 368  00AE  0700     E  		MOV		A,FIFO_SendLen
 369  00AF  0C00        		XOR		A,00H
 370  00B0  3D0A        		SZ		Z
 371  00B1  2800     R  		JMP		Write_FIFO_End
 372  00B2              		
 373  00B2  0700     E  		MOV		A,FIFO_TEMP
 374  00B3  0083        		MOV		MP1,A
 375  00B4  0700        		MOV		A,R0
 376  00B5  0082        		MOV		R1,A
 377  00B6  1580     E  		DEC		FIFO_SendLen
 378  00B7  0700     E  		MOV		A,FIFO_SendLen
 379  00B8  0C00        		XOR		A,00H
 380  00B9  3D0A        		SZ		Z
 381  00BA  2800     R  		JMP		Write_FIFO_End		;;FIFO_SendLen=0 means send complete
 382  00BB  1481        		INC		MP0
 383  00BC  0F26        		MOV		A,USB_MISC
 384  00BD  0083        		MOV		MP1,A
 385  00BE  2000     R  		call		Delay_28us
 386  00BF  3F02        		SZ		R1.@MISC_Ready
 387  00C0  2800     R  		JMP		Write_FIFO_Loop
 388  00C1              Write_FIFO_End:
 389  00C1  0001        		clr wdt	
 390  00C2  2800     R  		JMP		Write_FIFO_OK
 391  00C3              
 392  00C3              
 393  00C3              get_descriptor_length:
 394  00C3  0001        		clr wdt	
 395  00C4  0700     E  		MOV		A,FIFO_WLENGTHH
 396  00C5  0C00        		XOR		A,0
 397  00C6  390A        		SNZ		Z
 398  00C7  2800     R  		JMP		use_actual_length
 399  00C8  0700     E  		MOV		A,FIFO_WLENGTHL
 400  00C9  0C00        		XOR		A,0
 401  00CA  3D0A        		SZ		Z
 402  00CB  2800     R  		JMP		use_actual_length
 403  00CC  0700     E  		MOV		A,FIFO_WLENGTHL
 404  00CD  0200     E  		SUB		A,data_count
 405  00CE  3C0A        		SZ		C			;if(FIFO_LENGTHL>data_count) c=1
 406  00CF  2800     R  		JMP		use_actual_length
 407  00D0  0700     E  		MOV		A,FIFO_WLENGTHL
 408  00D1  0080     E  		MOV		data_count,A
 409  00D2              use_actual_length:
 410  00D2  0003        		RET
 411  00D3              control_read:
 412  00D3  0001        		clr wdt	
 413  00D4  0700     E  		MOV		A,data_start
 414  00D5  0087        		MOV		TBLP,A
 415  00D6              control_read_data_stage:
"File: FUNCTION.ASM  Holtek Cross-Assembler  Version 2.86      Page 8

 416  00D6  0001        		clr wdt	
 417  00D7  0F00        		MOV		A,00H
 418  00D8  0080     E  		MOV		Loop_Counter,A
 419  00D9  0080     E  		MOV		FIFO_SendLen,A
 420  00DA              
 421  00DA              
 422  00DA  3EA6        		SZ		MISC.@MISC_SCMD
 423  00DB  2800     R  		JMP		control_read_status_stage_end
 424  00DC  0001        		clr wdt	
 425  00DD              		
 426  00DD  0F00     E  		MOV		A,OFFSET FIFO_TYPE
 427  00DE  0081        		MOV		MP0,A
 428  00DF              
 429  00DF  0700     E  		MOV		A,data_count
 430  00E0  0C00        		XOR		A,00H
 431  00E1  3D0A        		SZ		Z
 432  00E2  2800     R  		JMP		dma_load_done			;A=00H
 433  00E3              
 434  00E3              dma_load_loop:
 435  00E3  0001        		clr wdt	
 436  00E4  3800     E  		SNZ		bFlag_RD_HTable
 437  00E5  2800     R  		JMP		Read_Low_Bytes
 438  00E6              Read_High_Bytes:
 439  00E6  0001        		clr wdt	
 440  00E7  3400     E  		CLR		bFlag_RD_HTable
 441  00E8  1D80        		TABRDL		R0
 442  00E9  1487        		INC		TBLP
 443  00EA  1480     E  		INC		data_start
 444  00EB  0708        		MOV		A,TBLH
 445  00EC  0E3F        		AND		A,00111111b
 446  00ED  0080        		MOV		R0,A
 447  00EE  0C3F        		XOR		A,3FH
 448  00EF  3D0A        		SZ		Z
 449  00F0  2800     R  		JMP		dma_load_loop
 450  00F1              
 451  00F1  2800     R  		JMP		Check_Read_Length
 452  00F2              
 453  00F2              Read_Low_Bytes:
 454  00F2  0001        		clr wdt	
 455  00F3  3000     E  		SET		bFlag_RD_HTable
 456  00F4  1D80        		TABRDL		R0
 457  00F5  0700        		MOV		A,R0
 458  00F6              Check_Read_Length:
 459  00F6  0001        		clr wdt	
 460  00F7  1481        		INC		MP0
 461  00F8  1480     E  		INC		loop_counter
 462  00F9  1480     E  		INC		FIFO_SendLen
 463  00FA  1580     E  		DEC		data_count
 464  00FB  3D0A        		SZ		Z
 465  00FC  2800     R  		JMP		wait_control_read
 466  00FD  0700     E  		MOV		A,loop_counter
 467  00FE  0C08        		XOR		A,EP0_FIFO_SIZE
 468  00FF  390A        		SNZ		Z
 469  0100  2800     R  		JMP		dma_load_loop
 470  0101  2800     R  		jmp		wait_control_read
 471  0102              dma_load_done:
 472  0102  0001        		clr wdt	
 473  0103              		;SZ		MISC.@MISC_SCMD
 474  0103              		;JMP		control_read_status_stage_end
 475  0103  2000     R  		CALL		Send_Hand_Shake
"File: FUNCTION.ASM  Holtek Cross-Assembler  Version 2.86      Page 9

 476  0104  2800     R  		jmp		control_read_status_stage_end		
 477  0105              
 478  0105              wait_control_read:
 479  0105  0001        		clr wdt	
 480  0106  2000     R  		call		Check_Real_Cmd
 481  0107  3C00     E  		sz		bFlag_Real_Cmd
 482  0108  2800     R  		jmp		control_read_status_stage_end		
 483  0109              		
 484  0109  0001        		clr wdt	
 485  010A  2000     R  		CALL		FIFO0_WR_CHECK
 486  010B  3800     E  		SNZ		bFlag_FIFO_Ready
 487  010C  2800     R  		JMP		wait_control_read	;wait FIFO0 Ready
 488  010D  2000     R  		CALL		Write_FIFO0
 489  010E              control_read_status_stage_end:
 490  010E  0001        		clr wdt					
 491  010F  0000        		NOP
 492  0110  0003        		RET		
 493  0111              
 494  0111              
 495  0111              
 496  0111              ;-----------------------------------------------------------
 497  0111              ; Check_Real_Cmd : if have new cmd , set bFlag_Real_Cmd else clr bFlag_Real_Cmd
 498  0111              ;-----------------------------------------------------------
 499  0111              Check_Real_Cmd:
 500  0111  0001        		clr wdt
 501  0112  3400     E  		clr		bFlag_Real_Cmd
 502  0113  3EA6        		SZ		MISC.@MISC_SCMD
 503  0114  3000     E  		set		bFlag_Real_Cmd
 504  0115  3FA6        		SZ		MISC.@MISC_LEN0
 505  0116  3000     E  		set		bFlag_Real_Cmd
 506  0117  0003        		RET
 507  0118              
 508  0118              ;***************************************************************
 509  0118              ;		USB	 Stage3 
 510  0118              ;		Process the request
 511  0118              ;***************************************************************
 512  0118              ;Set the device address to the wValue in the SETUP packet at the completion
 513  0118              ;of the current transaction
 514  0118              ;-----------------------------------------------------------
 515  0118              ; Set Address
 516  0118              ;-----------------------------------------------------------
 517  0118              SetAddress:
 518  0118  0001        		clr wdt			
 519  0119  0700     E  		MOV		A,FIFO_WVALUEL		;save address to FIFO_ADDR
 520  011A  0080     E  		MOV		FIFO_ADDR,A
 521  011B  0080     E  		MOV		FIFO_TEMP,A		
 522  011C              
 523  011C  0F25        		MOV		A,USB_SIES
 524  011D  0083        		MOV		MP1,A
 525  011E  0F01        		MOV		A,00000001b
 526  011F  0582        		ORM		A,R1
 527  0120  1800     E  		RLA		FIFO_TEMP
 528  0121  0EFE        		AND		A,0FEH
 529  0122  0080     E  		MOV		FIFO_TEMP,A
 530  0123              		
 531  0123  0F23        		MOV		A,USB_AWR
 532  0124  0083        		MOV		MP1,A
 533  0125  0700     E  		MOV		A,FIFO_TEMP
 534  0126  0082        		MOV		R1,A
 535  0127  0000        		NOP
"File: FUNCTION.ASM  Holtek Cross-Assembler  Version 2.86      Page 10

 536  0128              
 537  0128  2000     R  		CALL		Send_Hand_Shake		;send a handshake with host
 538  0129              		
 539  0129  3000     E  		SET		bFlag_Set_Address
 540  012A              		;;RET					;for test
 541  012A  2800     E  		JMP		USB_EP0_ISR_END
 542  012B              
 543  012B              ;-----------------------------------------------------------
 544  012B              ; Set Configuration
 545  012B              ;-----------------------------------------------------------
 546  012B              SetConfiguration:
 547  012B              		;//modify windows 2000 bug
 548  012B  0001        		clr wdt	
 549  012C  339C        		set		USVC.7			;unmute	SPK	
 550  012D  33B0        		set		PGA_CTRL.7		;unmute MIC
 551  012E              		
 552  012E  0700     E  		MOV		A,FIFO_WVALUEL	
 553  012F  0080     E  		MOV		USB_Configuration,A
 554  0130  1F24        		CLR		STALL
 555  0131              		;MOV		A,USB_STALL
 556  0131              		;MOV		MP1,A
 557  0131              		;CLR 		R1					;not stall
 558  0131  3000     E  		set		bFlag_SetConfiguration_Ready		
 559  0132              SetConfiguration_wait:
 560  0132  2000     R  		CALL		Send_Hand_Shake
 561  0133  2800     E  		JMP		USB_EP0_ISR_END
 562  0134              
 563  0134              ;-----------------------------------------------------------
 564  0134              ; Set Interface
 565  0134              ;-----------------------------------------------------------
 566  0134              SetInterface:
 567  0134  0001        		clr wdt	
 568  0135  0700     E  		MOV		A,FIFO_WVALUEL
 569  0136  0080     E  		MOV		USB_Interface_Alt,A
 570  0137  0700     E  		MOV		A,FIFO_WINDEXL
 571  0138  0080     E  		MOV		USB_Interface,A
 572  0139  3000     E  		set		bFlag_SetInterface_Ready
 573  013A  3012        		set		pa.0

⌨️ 快捷键说明

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