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

📄 std.lst

📁 HT82J97滑鼠DEMO程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 378  00D3  0700     E              mov				a,fifo_wlengthh
 379  00D4  0080     E              mov				lengthh,a
 380  00D5  0700     E              mov				a,fifo_wlengthl
 381  00D6  0080     E              mov				lengthl,a
 382  00D7  3400     E   			clr				brd_h_table
 383  00D8              
 384  00D8  0700     E              MOV				A,FIFO_Type             ;only (device,interface & endpoint)
 385  00D9  0E1F                    AND				A,Setup_Rev
 386  00DA  3D0A        			sz				z
 387  00DB  299B        			jmp				StandardDst				;10000000
 388  00DC  0C01        			xor				a,1
 389  00DD  3D0A        			sz				z
 390  00DE  2983                    JMP				ClassDst_Interface      ;10000001Class (new)
 391  00DF  2800     E              JMP				ToStallPipe0
 392  00E0              
 393  00E0              ;-----------------------------------------------------------------------------------------
 394  00E0              ;
 395  00E0              ; Read FIFO_SIZE bytes or until TableLength=0
 396  00E0              ; 
 397  00E0              ;-----------------------------------------------------------------------------------------
 398  00E0              GetTableBeg:
 399  00E0  0F00     E              MOV				A,OFFSET FIFO_OUT1		;Let MP0 pointer to FIFO_OUT1
 400  00E1  0081                    MOV				MP0,A           		;
 401  00E2  1F00     E              CLR			    FIFO_SendLen       		;Send data length = 0
 402  00E3              ;Check whether all data is written
 403  00E3              GetTableLp:
 404  00E3  1080     E  			sz				tablelength				;check whether out of number to send
 405  00E4  2946        			jmp				read_data_again		
 406  00E5  0003        			ret
 407  00E6              
 408  00E6              ;----------------------------------------------------------------------------------------------
 409  00E6              ;
 410  00E6              ; Read one byte from table
 411  00E6              ;
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 8

 412  00E6              ;----------------------------------------------------------------------------------------------
 413  00E6              read_data_again:
 414  00E6  3800     E  			snz				brd_h_table								
 415  00E7  2954        			jmp				read_L_table_byte
 416  00E8              ;read_H_byte
 417  00E8  3400     E  			clr				brd_h_table
 418  00E9  1D80        			TABRDL			R0
 419  00EA  1487        			INC				TBLP
 420  00EB  0708        			mov				a,tblh
 421  00EC  0E3F        			and				a,INVALID_CODE
 422  00ED  0C3F        			xor				a,INVALID_CODE
 423  00EE  3D0A        			sz				z
 424  00EF  2946        			jmp				read_data_again			;GetTableTag	
 425  00F0  0708        			mov				a,tblh
 426  00F1  0E3F        			and				a,INVALID_CODE
 427  00F2  0080        			mov				R0,a
 428  00F3  2956        			jmp				read_next_table
 429  00F4              read_L_table_byte:	
 430  00F4  3000     E  			set				brd_h_table
 431  00F5  1D80                    TABRDL			R0          			;Get table and write FIFO_OUTx
 432  00F6              ;-----------------------------------------------------------------------------------
 433  00F6              read_next_table:
 434  00F6  1481                    INC				MP0         			;Update memory pointer 0
 435  00F7  1480     E              INC				FIFO_SendLen  			;Update send FIFO length
 436  00F8  1080     E  			sz				lengthl
 437  00F9  295D        			jmp				skip_check_lengthh	
 438  00FA  1080     E  			sz				lengthH
 439  00FB  2961        			jmp				check_length_data
 440  00FC              out_descript:										;out_of_number to send
 441  00FC  295E        			jmp				get_table_lp
 442  00FD              skip_check_lengthh:
 443  00FD  1580     E  			dec				lengthl
 444  00FE              get_table_lp:
 445  00FE  1780     E              SDZ				TableLength 			;end_of_Tablelength
 446  00FF  2964                    JMP				GetTableTag
 447  0100  0003                    RET
 448  0101              
 449  0101              check_length_data:
 450  0101  1F80     E  			set				lengthl
 451  0102  1580     E  			dec				lengthH
 452  0103  295E        			jmp				get_table_lp		
 453  0104              
 454  0104              ;Check whether FIFO_SIZE data has written
 455  0104              GetTableTag:
 456  0104  0700     E              MOV				A,FIFO_SendLen     		;
 457  0105  0C08                    XOR				A,FIFO_SIZE				;
 458  0106  390A                    SNZ				Z						;
 459  0107  2943                    JMP				GetTableLp				;No
 460  0108  0003                    RET										;FIFO FULL
 461  0109              
 462  0109              ;----------------------------------------------------------------------------------------------
 463  0109              ;
 464  0109              ;
 465  0109              ;----------------------------------------------------------------------------------------------
 466  0109              ;stack 1
 467  0109              ;!!!!! Must in same page with caller
 468  0109              
 469  0109              ReadEntityAndSendCnf:
 470  0109  0080     E              MOV				TableLength,A         	; in entity table)
 471  010A              SendCnf:
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 9

 472  010A  217A        			call			gettablenolength
 473  010B  2140        			call			GetTableBeg
 474  010C  2975        	        JMP				ReadNextXX
 475  010D              ;----------------------------------------------------------------------------------------------
 476  010D              ReadAgain:
 477  010D  3400     E  			clr				bFIFO_Full
 478  010E  3000     E              SET				bSend_Continue				;Set continue send flag
 479  010F  0707                    MOV				A,TBLP                  ;Save TBLP
 480  0110  0080     E              MOV				FIFO_TBLP,A				;
 481  0111  2800     E              JMP				RequestResponse		
 482  0112              ;----------------------------------------------------------------------------------------------
 483  0112              ;input point of the get next 8-byte table data
 484  0112              ReadNextCnf:
 485  0112  0700     E              MOV				A,FIFO_TBLP           	;Restore TBLP
 486  0113  0087                    MOV				TBLP,A                  ;
 487  0114  2140                    CALL			GetTableBeg             ;Read next 8 byte or until TableLength=0
 488  0115              
 489  0115              ;
 490  0115              ;Check Whether FIFO data is FULL
 491  0115              ;
 492  0115              ReadNextXX:
 493  0115  0700     E              MOV				A,FIFO_SendLen        	;FIFO full ?
 494  0116  0C08                    XOR				A,FIFO_SIZE				;
 495  0117  3D0A                    SZ				Z                       ;
 496  0118  2910                    JMP				FIFO_Full              ;Yes
 497  0119  2911                    JMP				FIFO_NoFull			;NO
 498  011A              
 499  011A              ;---------------------------------------------------------------------------------------------
 500  011A              ;stack 1
 501  011A              GetTableNoLength:
 502  011A  1080     E              SZ				LengthH      		;Table length >= wLengthH ?
 503  011B  0003        			ret							        ;No
 504  011C  0700     E              MOV				A,TableLength      	;Table length >= wLengthL ?
 505  011D  0200     E              SUB				A,LengthL    		;
 506  011E  380A                    SNZ				C                   ;
 507  011F  0003        			ret
 508  0120              set_tablelength:
 509  0120  0700     E              MOV				A,LengthL     		;Yes
 510  0121  0080     E              MOV				TableLength,A     	;Update Tablelength by FIFO_wLengthL
 511  0122  0003        			ret
 512  0123              
 513  0123              ;---------------------------------------------------------------------------------------------
 514  0123              ClassDst_Interface:
 515  0123  0700     E  			MOV				A,FIFO_wIndexL
 516  0124  0A01        			SUB				A,INTERFACE_NO
 517  0125  3C0A        			SZ				C
 518  0126  2800     E  			JMP				ToStallPipe0
 519  0127              Skip_Check_Endpoint:
 520  0127  0700     E              MOV				A,FIFO_wValueH      ;Descriptor
 521  0128  0E1F                    AND				A,wValueH_Dst       ;  Stanard, Class & Vendor
 522  0129  0080     E              MOV				TEMP,A              ;
 523  012A  0A03                    SUB				A,03H               ;Over 4 iteM ?
 524  012B  3C0A                    SZ				C                   ;
 525  012C  2800     E              JMP				ToStallPipe0        ;Yes
 526  012D              				
 527  012D  0700     E              MOV				A,TEMP
 528  012E              class_des_pcl_5:
 529  012E  0386                    ADDM			A,PCL
 530  012F  2800     E              JMP				ToStallPipe0        ;Designator set no support
 531  0130  290C                    JMP				GetHID              ;Get HID descriptor
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 10

 532  0131              ;           JMP				GetEntity           ;Get entity descriptor
 533  0131              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 534  0131              GetEntity:
 535  0131  0700     E  			MOV				a,FIFO_wIndexL		;
 536  0132  0080     E  			MOV				TEMP,A
 537  0133  0F00     E              MOV				A,LOW Entity_0      ;Set table pointer to
 538  0134  1080     E  			sz				TEMP
 539  0135  0F00     E  			mov				a, LOW ENTITY_1
 540  0136  0087                    MOV				TBLP,A              ;Entity
 541  0137              
 542  0137  0F2F                    MOV				A,Entity_Length_0   ;(Entity length not included
 543  0138  1080     E  			sz				TEMP
 544  0139  0F00        			MOV				A, Entity_Length_1	
 545  013A  2901        			jmp				readtable_withcheckHindex
 546  013B              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 547  013B              StandardDst:
 548  013B              
 549  013B  0700     E              MOV				A,FIFO_wValueH		;Descriptor
 550  013C  0E1F                    AND				A,wValueH_Dst       ;  Stanard, Class & Vendor
 551  013D  0080     E              MOV				TEMP,A              ;
 552  013E  0A04                    SUB				A,04H               ;Over 4 item ?
 553  013F  3C0A                    SZ				C                   ;
 554  0140  2800     E              JMP				ToStallPipe0        ;Yes
 555  0141  0700     E              MOV				A,TEMP
 556  0142              std_device_pcl_5:
 557  0142  0386                    ADDM			A,PCL
 558  0143  2800     E              JMP				ToStallPipe0        ;Reserve
 559  0144  2904                    JMP				GetDeviceDes        ;Get device descriptor
 560  0145  2908                    JMP				GetConfigurationDes ;Get configuration descriptor
 561  0146  28E4                    JMP				GetStringDes        ;Get string descriptor
 562  0147              ;-------------------------------------------------------------------------------
 563  0147              
 564  0147              PUBLIC		StandardRequest
 565  0147              PUBLIC		ReadNextCnf
 566  0147              public		GetDeviceDes
 567  0147              END


        0 Errors

⌨️ 快捷键说明

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