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

📄 std1.lst

📁 合泰USB键盘程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 623  014D  0081                        MOV     MP0,A           	;
 624  014E  1F00     E                  CLR     FIFO_SendLen       	;Send data length = 0
 625  014F              ;Check whether all data is written
 626  014F              GetTableLp:
 627  014F  1080     E  				sz		tablelength			;check whether out of number to send
 628  0150  2961        				jmp		read_data_again		
 629  0151  0FDB        				MOV		A,LOW EndSend
 630  0152  0080     E                  MOV     ReturnAddr,A 
 631  0153  0003        				ret
 632  0154              ;----------------------------------------------------------------------------------------------
 633  0154              read_data_again:
 634  0154              
 635  0154  3800     E  				snz		brd_h_table								
 636  0155  296F        				jmp		read_L_table_byte
 637  0156              ;read_H_byte
 638  0156  3400     E  				clr		brd_h_table
 639  0157  1D80        				TABRDL	R0
 640  0158  1487        				INC		TBLP
 641  0159  0708        				mov		a,tblh
 642  015A  0E3F        				and		a,00111111b
 643  015B  0C3F        				xor		a,3FH
 644  015C  3D0A        				sz		z
 645  015D  2961        				jmp		read_data_again			;GetTableTag	
 646  015E  0708        				mov		a,tblh
 647  015F  0E3F        				and		a,00111111b
 648  0160  0080        				mov		R0,a
 649  0161  2971        				jmp		read_next_table
 650  0162              read_L_table_byte:
 651  0162  3000     E  				set		brd_h_table
 652  0163  1D80                        TABRDL  R0          		;Get table and write FIFO_OUTx
 653  0164              read_next_table:
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 12

 654  0164  1481                        INC     MP0         		;Update memory pointer 0
 655  0165  1480     E                  INC     FIFO_SendLen  		;Update send FIFO length
 656  0166  1080     E  				sz		lengthl
 657  0167  297A        				jmp		skip_check_lengthh	
 658  0168  1080     E  				sz		lengthH
 659  0169  297E        				jmp		check_length_data
 660  016A              out_descript:								;out_of_number to send
 661  016A  0FDB        				MOV		A,LOW EndSend
 662  016B  0080     E                  MOV     ReturnAddr,A 					
 663  016C  297B        				jmp		get_table_lp
 664  016D              skip_check_lengthh:
 665  016D  1580     E  				dec		lengthl
 666  016E              get_table_lp:
 667  016E  1780     E                  SDZ     TableLength 		;end_of_Tablelength
 668  016F  2981                        JMP     GetTableTag
 669  0170  0003                        RET
 670  0171              
 671  0171              check_length_data:
 672  0171  1F80     E  				set		lengthl
 673  0172  1580     E  				dec		lengthH
 674  0173  297B        				jmp		get_table_lp		
 675  0174              
 676  0174              
 677  0174              ;Check whether FIFO_SIZE data has written
 678  0174              GetTableTag:
 679  0174  0700     E                  MOV     A,FIFO_SendLen     	;
 680  0175  0C08                        XOR     A,FIFO_SIZE         ;
 681  0176  390A                        SNZ     Z                   ;
 682  0177  295C                        JMP     GetTableLp          ;No
 683  0178  0003                        RET							;FIFO FULL
 684  0179              
 685  0179              
 686  0179              
 687  0179              
 688  0179              
 689  0179              ;----------------------------------------------------------------------------------------------
 690  0179              
 691  0179              ;stack 1
 692  0179              ;!!!!! Must in same page with caller
 693  0179              ReadEntityAndSendCnf:
 694  0179  0700     E  				MOV		a,FIFO_wIndexL			;
 695  017A  0080     E  				mov		des_count,a
 696  017B  201D        				call	get_entity_length
 697  017C              
 698  017C  0080     E                  MOV     TableLength,A         	; in entity table)
 699  017D  298C        				jmp		SendCnf
 700  017E              
 701  017E              ;----------------------------------------------------------------------------------------------
 702  017E              ;stack 1
 703  017E              ReadTableAndSendCnf:
 704  017E  1D80     E                  TABRDL  TableLength    			;table length from TBLP
 705  017F              SendCnf:
 706  017F  21A3        				call	gettablenolength
 707  0180  2159        				call	GetTableBeg
 708  0181  299E        	            JMP     ReadNextXX
 709  0182              ;----------------------------------------------------------------------------------------------
 710  0182              ;input point for get the next table data
 711  0182              GetTableLength:
 712  0182  3400     E  				clr		brd_h_table
 713  0183  1D80     E                  TABRDL  TableLength   			;table length
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 13

 714  0184  21A3                        CALL    GetTableNoLength        ;
 715  0185              gettablelength_cont:
 716  0185  3C00     E                  SZ      bFLAG_RsqF	
 717  0186  2996                        JMP     ReadAgain
 718  0187  215C                        CALL    GetTableLp
 719  0188  299E                        JMP     ReadNextXX
 720  0189              ;----------------------------------------------------------------------------------------------
 721  0189              ;out_of_send_data_subroutine
 722  0189              ReadAgain:
 723  0189  3400     E  				clr     bFLAG_RsqF
 724  018A  3000     E                  SET     bFLAG_SndFC 			;Set continue send flag
 725  018B  0707                        MOV     A,TBLP                  ;Save TBLP
 726  018C  0080     E                  MOV     FIFO_TBLP,A             ;
 727  018D  2800     E                  JMP     RequestResponse		
 728  018E              
 729  018E              ;----------------------------------------------------------------------------------------------
 730  018E              ;input point of the get next 8-byte table data
 731  018E              ReadNextCnf:
 732  018E  0700     E                  MOV     A,FIFO_TBLP           	;Restore TBLP
 733  018F  0087                        MOV     TBLP,A                  ;
 734  0190  2159                        CALL    GetTableBeg             ;Read next
 735  0191              
 736  0191              ;Check Whether FIFO data is FULL
 737  0191              ReadNextXX:
 738  0191  0700     E                  MOV     A,FIFO_SendLen        	;FIFO full ?
 739  0192  0C08                        XOR     A,FIFO_SIZE             ;
 740  0193  3D0A                        SZ      Z                       ;
 741  0194  28F3                        JMP     ReadTASTag              ;Yes
 742  0195  28F4                        JMP     ReadNextCnfLp			;NO
 743  0196              
 744  0196              
 745  0196              ;---------------------------------------------------------------------------------------------
 746  0196              ;stack 1
 747  0196              GetTableNoLength:
 748  0196  1080     E                  SZ      LengthH      		;Table length >= wLengthH ?
 749  0197  0003        				ret					        ;No
 750  0198  0700     E                  MOV     A,TableLength      	;Table length >= wLengthL ?
 751  0199  0200     E                  SUB     A,LengthL    		;
 752  019A  380A                        SNZ     C                   ;
 753  019B  0003        				ret
 754  019C              set_tablelength:
 755  019C  0700     E                  MOV     A,LengthL     		;Yes
 756  019D  0080     E                  MOV     TableLength,A     	;Update Tablelength by FIFO_wLengthL
 757  019E  0003        				ret
 758  019F              
 759  019F              ;---------------------------------------------------------------------------------------------
 760  019F              ClassDst_Interface:
 761  019F  0700     E  				MOV		A,FIFO_wIndexL
 762  01A0  0A02        				SUB		A,INTERFACE_NO
 763  01A1  3C0A        				SZ		C
 764  01A2  2800     E  				JMP		ToStallPipe0
 765  01A3              Skip_Check_Endpoint:
 766  01A3  0700     E                  MOV     A,FIFO_wValueH        	;Descriptor
 767  01A4  0E1F                        AND     A,wValueH_Dst           ;  Stanard, Class & Vendor
 768  01A5  0080     E                  MOV     TEMP,A                	;
 769  01A6  0A04                        SUB     A,04H                   ;Over 4 iteM ?
 770  01A7  3C0A                        SZ      C                       ;
 771  01A8  2800     E                  JMP		ToStallPipe0            ;Yes
 772  01A9              				
 773  01A9  0700     E                  MOV     A,TEMP
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 14

 774  01AA              class_des_pcl_5:
 775  01AA  0386                        ADDM    A,PCL
 776  01AB  2800     E                  JMP		ToStallPipe0            ;Designator set no support
 777  01AC  28E5                        JMP     GetHID                  ;Get HID descriptor
 778  01AD  28EC                        JMP     GetEntity               ;Get entity descriptor
 779  01AE  2800     E                  JMP		ToStallPipe0            ;No support designator set
 780  01AF              
 781  01AF              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 782  01AF              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 783  01AF              SetAddressC:
 784  01AF  1080     E                  SZ      FIFO_wValueH          	;Is wValueH == 0 ?
 785  01B0  2800     E                  JMP		ToStallPipe0            ;No:Error
 786  01B1  0700     E                  MOV     A,FIFO_wValueL        	;Save address to CMD_ADDR
 787  01B2  0080     E                  MOV     CMD_ADDR,A            	;
 788  01B3              
 789  01B3  0F45        				mov		a,USB_SIES
 790  01B4  0083        				mov		mp1,a
 791  01B5  0F01        				mov		a,00000001b
 792  01B6  0582        				orm		a,R1
 793  01B7              
 794  01B7  1800     E  				rla		CMD_ADDR
 795  01B8  0EFE                        AND     A,0FEH              	;& save it
 796  01B9  0080     E                  MOV     FIFO_ADDR,A       		;Move address to adress buffer
 797  01BA  3C00     E                  SZ      bRmtWakeup 				;Remote wakeup exist ?
 798  01BB  3000     E                  SET     FIFO_addr.0				;Yes:Set remote wakeup flag
 799  01BC  0F42                        MOV     A,USB_ADDR_WAKE     	;MP1 point to Address register
 800  01BD  0083                        MOV     MP1,A               	;
 801  01BE  0700     E                  MOV     A,FIFO_ADDR        		;Write to Address Register
 802  01BF  0082                        MOV     R1,A                	;
 803  01C0              
 804  01C0  1080     E  				sz		CMD_ADDR
 805  01C1  3000     E  				set		baddr_state			
 806  01C2              
 807  01C2  2800     E                  JMP     SendHandshake
 808  01C3              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 809  01C3              			
 810  01C3              
 811  01C3              PUBLIC			StandardRequest
 812  01C3              PUBLIC			GetEnd
 813  01C3              PUBLIC			ReadNextCnf
 814  01C3              public			std_request_pcl_14
 815  01C3              public			clear_feature_pcl_5
 816  01C3              public			set_feature_pcl_5
 817  01C3              public			std_des_start_pcl
 818  01C3              public			std_des_end_pcl
 819  01C3              public			GetStringDes
 820  01C3              public			std_device_pcl_5
 821  01C3              public			class_des_pcl_5
 822  01C3              public			get_status_pcl_5
 823  01C3              public			get_interface_pcl_3
 824  01C3              public			get_endpt_pcl_3
 825  01C3              public			get_entity_pcl_3
 826  01C3              public			get_HID_pcl_3
 827  01C3              public			get_entity_len_pcl_3
 828  01C3              END


        0 Errors

⌨️ 快捷键说明

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