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

📄 std1.lst

📁 合泰USB键盘程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 8

 414  00C6  0087                        MOV     TBLP,A                  ;  configuration
 415  00C7              
 416  00C7  0FDB        				MOV		A,LOW EndSend
 417  00C8              
 418  00C8  3C00     E  				sz		des_count.0				;
 419  00C9  28D8        				jmp		exit_of_ednpointDes
 420  00CA  0FC8        				mov		a,GetInterfaceDes
 421  00CB              exit_of_ednpointDes:
 422  00CB  0080     E                  MOV     ReturnAddr,A          	;  to ReturnAddr
 423  00CC  1480     E  				inc		des_count
 424  00CD  298F                        JMP     GetTableLength
 425  00CE              ;----------------------------------------------------------------------------------------------
 426  00CE              EndSend:
 427  00CE  3C00     E                  sz     	bFLAG_RsqF
 428  00CF  3000     E                  set     bFLAG_SndFC 			;clear continue send flag
 429  00D0              
 430  00D0  3C00     E  				sz		bFLAG_SndFC 
 431  00D1  2800     E  				jmp		RequestResponse
 432  00D2              				
 433  00D2              
 434  00D2  1080     E  				SZ      FIFO_SendLen
 435  00D3  28E3                        jmp    	out_of_RequestResponse         ;Responde
 436  00D4  3000     E  				set		bwait_setup
 437  00D5  2800     E  				jmp		SendHandshake
 438  00D6              
 439  00D6              out_of_RequestResponse:
 440  00D6  2800     E  				jmp		RequestResponse
 441  00D7              
 442  00D7              GetEnd:
 443  00D7  2800     E                  JMP     ExitExt
 444  00D8              ;Class-----------------------------------------------------------------------
 445  00D8              GetHID:
 446  00D8  0700     E  				MOV		a,FIFO_wIndexL			;
 447  00D9  0080     E  				mov		des_count,a
 448  00DA  2011        				call	get_HID_des_adr
 449  00DB  0087        				MOV     TBLP,A                  ;HID
 450  00DC  0FDB                        MOV     A,LOW EndSend          	;Set Return Address
 451  00DD  0080     E                  MOV     ReturnAddr,A          	;to ReturnAddr
 452  00DE  298B        				jmp		ReadTableAndSendcnf	
 453  00DF              
 454  00DF              ;----------------------------------------------------------------------------------------------
 455  00DF              				                
 456  00DF              GetEntity:
 457  00DF  0700     E  				MOV		a,FIFO_wIndexL			;
 458  00E0  0080     E  				mov		des_count,a
 459  00E1  2019        				call	get_entity_des_adr
 460  00E2  0087                        MOV     TBLP,A                  ;  Entity
 461  00E3  0FDB                        MOV     A,LOW EndSend           ;Set Return Address
 462  00E4  0080     E                  MOV     ReturnAddr,A          	;  to ReturnAddr
 463  00E5  2986                        JMP     ReadEntityAndSendCnf    ;Read Entity table
 464  00E6              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 465  00E6              
 466  00E6              ReadTASTag:
 467  00E6  3000     E                  SET     bFLAG_RsqF	;Send Request
 468  00E7              ReadNextCnfLp:
 469  00E7  3400     E                  CLR     bFLAG_SndFC ;clear continue send flag
 470  00E8  1080     E                  SZ      TableLength             ;Finished read ?
 471  00E9  2996                        JMP     ReadAgain               ;No
 472  00EA              
 473  00EA              ;Write next descriptor
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 9

 474  00EA  0700     E                  MOV     A,ReturnAddr          	;Get return address
 475  00EB              ;!!!!! Need in same page
 476  00EB              std_des_end_pcl:
 477  00EB  0086                        MOV     PCL,A                   ;  & return
 478  00EC                              ;Return
 479  00EC              ;----------------------------------------------------------------------------------------------
 480  00EC              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 481  00EC              SetFeature:
 482  00EC  1080     E                  SZ      FIFO_wValueH          	;wValueH == 0 ?
 483  00ED  2800     E                  JMP		ToStallPipe0            ;No
 484  00EE              
 485  00EE  1080     E                  SZ      FIFO_wIndexH          	;wIndexH == 0 ?
 486  00EF  2800     E                  JMP		ToStallPipe0            ;No
 487  00F0              
 488  00F0  0700     E                  MOV     A,FIFO_Type           	;Type (Device, Interface or
 489  00F1  0E1F                        AND     A,Setup_Rev             ;   Endpoint)
 490  00F2  0080     E                  MOV     TEMP,A                	;
 491  00F3  0A04                        SUB     A,04H                   ;Over 4 item ?
 492  00F4  3D0A                        SZ      Z                       ;
 493  00F5  2800     E                  JMP		ToStallPipe0            ;Yes
 494  00F6              ;!!!!! Need in same page
 495  00F6  0700     E                  MOV     A,TEMP                	;
 496  00F7              set_feature_pcl_5:
 497  00F7  0386                        ADDM    A,PCL
 498  00F8  2915                        JMP     DeviceStatusSF
 499  00F9  2800     E                  JMP     TostallPipe0
 500  00FA  2909                        JMP     EndpointStatusSF
 501  00FB  2800     E                  JMP		ToStallPipe0
 502  00FC              ;-----------------------------------------------------------------------------
 503  00FC              EndpointStatusSF:                               ;clear stall flag
 504  00FC  1080     E                  SZ      FIFO_wValueL          	;ENDPOINT_STALL = 0 ?
 505  00FD  2800     E                  JMP		ToStallPipe0            ;No
 506  00FE              
 507  00FE              ;Check	Endpoint Number
 508  00FE              ;				snz		fifo_windexL.7
 509  00FE              ;				jmp		ToStallpipe0
 510  00FE              
 511  00FE  0700     E                  MOV     A,FIFO_wIndexL        	;Get endpoint number
 512  00FF  0E7F        				and		a,01111111b
 513  0100  0200     E  				SUB		A,FIFO_temp
 514  0101  3C0A        				SZ		C
 515  0102  2800     E  				JMP		ToStallPipe0
 516  0103              
 517  0103  0700     E                  MOV     A,FIFO_wIndexL        	;Get endpoint number
 518  0104  0E0F                        AND     A,0FH                   ;  Ignore direction
 519  0105  2000     E  				call	GetPipeBit
 520  0106  2000     E                  CALL    SetStall                ;Set endpoint stall
 521  0107  2800     E                  JMP     SendHandshake           ;send handshake flag
 522  0108              ;-----------------------------------------------------------------------------
 523  0108              DeviceStatusSF:
 524  0108  0700     E                  MOV     A,FIFO_wValueL        	;DEVICE_REMOTE_WAKEUP = 1 ?
 525  0109  0C01                        XOR     A,01H                   ;
 526  010A  390A                        SNZ     Z                       ;
 527  010B  2800     E                  JMP		ToStallPipe0            ;No
 528  010C              
 529  010C  1080     E                  SZ      FIFO_wIndexL          	;Is wIndex == 0 ?
 530  010D  2800     E                  JMP		ToStallPipe0            ;No
 531  010E                     ;enable remote wakeup           			;Yes
 532  010E  3000     E                  SET     bRmtWakeup   	;enable remote wakeup (flag)
 533  010F  1800     E  				rla		cmd_addr
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 10

 534  0110  0EFE        				and		a,11111110b
 535  0111  0080     E  				mov		fifo_addr,a
 536  0112  3000     E                  SET     ADDR_Wake  	;Set remote wakeup flag
 537  0113              SetAddrWake:
 538  0113  0F42                        MOV     A,USB_ADDR_WAKE     	;Address & Remote wakeup address
 539  0114  0083                        MOV     MP1,A               	;
 540  0115  0700     E                  MOV     A,FIFO_ADDR       		;Write to Address Register
 541  0116  0082                        MOV     R1,A                	;
 542  0117  2800     E                  JMP     SendHandshake       	;send handshake flag
 543  0118              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 544  0118              SetConfiguration:  			;(ok)
 545  0118  0F01        				mov		a,1
 546  0119  0200     E  				sub		a,FIFO_wValueL			;1 - FIFO_wValueL 
 547  011A  380A        				snz		c
 548  011B  2800     E  				jmp		ToStallPipe0			; other value except 0,1
 549  011C  3400     E  				clr		baddr_state	
 550  011D  390A        				snz		z						;fifo_wvaluel=1 ?
 551  011E  3000     E  				set		baddr_state					
 552  011F              
 553  011F  0FF8        				mov		a,11111000b
 554  0120  0080     E  				mov		STALL,a
 555  0121  0F43                        MOV     A,USB_STALL             ;
 556  0122  0083                        MOV     MP1,A                   ;
 557  0123  1F02                        CLR     R1                      ;
 558  0124  3400     E                  CLR     bFLAG_HvRpt 			;reset to nonreport
 559  0125              
 560  0125  1080     E  				sz		FIFO_wvalueL
 561  0126  2936        				jmp		set_cfg
 562  0127  3400     E  				clr		bcfgvalue
 563  0128  2800     E                  JMP     SendHandShake
 564  0129              
 565  0129              set_cfg:
 566  0129  3000     E  				set		bcfgvalue
 567  012A  2800     E                  JMP     SendHandShake
 568  012B              
 569  012B              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 570  012B              
 571  012B              
 572  012B              
 573  012B              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 574  012B              GetDescriptor:  ;No check bmRequestType D4..0
 575  012B                              ;Check bmRequestType direction
 576  012B  3800     E                  SNZ     FIFO_Type.@Setup_D    	;device to host ?
 577  012C  2800     E                  JMP		ToStallPipe0            ;No:Error
 578  012D              
 579  012D  0700     E  				MOV		A,FIFO_Type				;only (device,interface & endpoint)
 580  012E  0E1F        				AND		A,Setup_Rev
 581  012F  0A03        				SUB		A,03H
 582  0130  3C0A        				SZ		C
 583  0131  2800     E  				JMP		ToStallPipe0
 584  0132              
 585  0132  0700     E  				mov		a,fifo_wlengthh
 586  0133  0080     E  				mov		lengthh,a
 587  0134  0700     E  				mov		a,fifo_wlengthl
 588  0135  0080     E  				mov		lengthl,a
 589  0136  0FDB        				MOV		A,LOW EndSend
 590  0137  0080     E                  MOV     ReturnAddr,A  
 591  0138              
 592  0138  0700     E  				MOV		A,FIFO_Type
 593  0139  0E1E        				and		a,00011110b
"File: STD1.ASM      Holtek Cross-Assembler  Version 2.86      Page 11

 594  013A  390A        				snz		z
 595  013B  2800     E  				jmp		Tostallpipe0
 596  013C              
 597  013C  3400     E  				clr		brd_h_table
 598  013D  1F00     E  				clr		des_count
 599  013E  3C00     E  				sz		fifo_type.0
 600  013F  29AC                        JMP     ClassDst_Interface      ;   Class (new)
 601  0140              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 602  0140              
 603  0140              StandardDst:
 604  0140  0700     E                  MOV     A,FIFO_wValueH        	;Descriptor
 605  0141  0E1F                        AND     A,wValueH_Dst           ;  Stanard, Class & Vendor
 606  0142  0080     E                  MOV     TEMP,A                	;
 607  0143  0A04                        SUB     A,04H                   ;Over 4 item ?
 608  0144  3C0A                        SZ      C                       ;
 609  0145  2800     E                  JMP		ToStallPipe0            ;Yes
 610  0146  0700     E                  MOV     A,TEMP
 611  0147              std_device_pcl_5:
 612  0147  0386                        ADDM    A,PCL
 613  0148  2800     E                  JMP		ToStallPipe0            ;Reserve
 614  0149  28B8                        JMP     GetDeviceDes            ;Get device descriptor
 615  014A  28BF                        JMP     GetConfigurationDes     ;Get configuration descriptor
 616  014B  289E                        JMP     GetstringDes           	;Get string descriptor
 617  014C              
 618  014C              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 619  014C              
 620  014C              
 621  014C              GetTableBeg:
 622  014C  0F00     E                  MOV     A,OFFSET FIFO_OUT1  ;Let MP0 pointer to FIFO_OUT1

⌨️ 快捷键说明

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