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

📄 std.lst

📁 HT82J97滑鼠DEMO程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 184  0059              SetAddrWake:
 185  0059  0082                    MOV     		R1,A                	;
 186  005A  2800     E              JMP     		SendHandshake       	;send handshake flag
 187  005B              
 188  005B              ;****************************************************************************
 189  005B              GetStatus:
 190  005B  1080     E              SZ      		FIFO_wIndexH            ;Is wIndex == 0 ?
 191  005C  2800     E              JMP     		ToStallPipe0            ;No
 192  005D                          
 193  005D  0700     E              MOV     		A,FIFO_Type             ;Type (Device, Interface or
 194  005E  0E1F                    AND     		A,Setup_Rev             ;   Endpoint)
 195  005F  0080     E              MOV     		TEMP,A
 196  0060              ;!!!!! Need in same page
 197  0060  0A03                    SUB     		A,03H ;04H              ;Over 4 item ?
 198  0061  3C0A                    SZ      		C                       ;
 199  0062  2800     E              JMP     		ToStallPipe0            ;Yes
 200  0063  0700     E              MOV     		A,TEMP
 201  0064              get_status_pcl_5:
 202  0064  0386                    ADDM    		A,PCL
 203  0065  28D5                    JMP     		DeviceStatusS
 204  0066  28DC                    JMP     		InterfaceStatusS
 205  0067                         ;JMP     		EndpointStatusS
 206  0067              ;-----------------------------------------------------------------------------
 207  0067              EndpointStatusS:
 208  0067  0700     E              MOV     		A,FIFO_wIndexL
 209  0068  0E7F                    and     		a,01111111b
 210  0069  0200     E              SUB     		A,fifo_temp
 211  006A  3C0A                    SZ      		C
 212  006B  2800     E              JMP     		ToStallPiPe0    
 213  006C                  		;Don't care direction, maybe it's neccesary.
 214  006C  0F01        				mov		a,00000001b					;pipe0
 215  006D  3C00     E  				sz		FIFO_wIndexL.0
 216  006E  0F02        				mov		a,00000010b					;pipe1
 217  006F  3C00     E  				sz		FIFO_wIndexL.1
 218  0070  0F04        				mov		a,00000100b					;pipe2
 219  0071  0600     E  			and				a,STALL
 220  0072  390A        			snz				z
 221  0073              FoundStall:
 222  0073  0F01                    mov     		A,01H                   ;mask bits except stall bit
 223  0074  28D8                    JMP     		SendEndpointStsS        ;Send endpoint status
 224  0075              ;-------------------------------------------------------------------
 225  0075              DeviceStatusS:
 226  0075  1F05        			clr				acc
 227  0076  3C00     E  			sz				bRmtwakeup
 228  0077  3085        			set				acc.1	
 229  0078              SendEndpointStsS:
 230  0078  0080     E              MOV				FIFO_OUT1,A             ;low byte
 231  0079  1F00     E              CLR				FIFO_OUT2               ;high byte = 00H
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 5

 232  007A  0F02                    MOV				A,02H                   ;data length = 2
 233  007B  2800     E              JMP				SendFIFOOut             ;Send it
 234  007C              ;----------------------------------------------------------------
 235  007C              InterfaceStatusS:
 236  007C  3C00     E              sz				baddr_state
 237  007D  2800     E              jmp				TOstallpipe0
 238  007E  0700     E              MOV				A,FIFO_wIndexL
 239  007F  0A01                    SUB				A,INTERFACE_NO          ;Over 2 Interface ?
 240  0080  3C0A                    SZ				C                       ;
 241  0081  2800     E              JMP				ToStallPipe0            ;Yes
 242  0082              ;No Matter which Interface
 243  0082  1F05                    CLR				acc               		;low byte = 00H
 244  0083  28D8                    JMP				SendEndpointStsS        ;Send it
 245  0084              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 246  0084              ;Get string descriptor
 247  0084              std_des_pcl_start:
 248  0084              GetStringDes:
 249  0084  1080     E              SZ				FIFO_wIndexH
 250  0085  28F6                    JMP				get_other_string
 251  0086                      	;FIFO_wIndexL = Language ID
 252  0086  1080     E  			sz				fifo_windexl
 253  0087  28F6        			jmp				get_other_string
 254  0088  1080     E  			sz				fifo_wvaluel
 255  0089  2800     E  			jmp				tostallpipe0
 256  008A              
 257  008A              ;--------------------------------------------------------------------------------
 258  008A              get_string:		
 259  008A  0700     E  			mov				a,fifo_wvaluel
 260  008B  0A03        			sub				a,3
 261  008C  3C0A        			sz				c
 262  008D  2800     E  			jmp				Tostallpipe0
 263  008E              
 264  008E  0F00     E  			mov				a,low LangID			;00
 265  008F  3C00     E  			sz				fifo_wvaluel.0
 266  0090  0F00     E  			mov				a,low ManufactureS		;01
 267  0091  3C00     E  			sz				fifo_wvaluel.1
 268  0092  0F00     E  			mov				a,low ProductS			;10
 269  0093              
 270  0093  0087                    MOV				TBLP,A                  ;
 271  0094  1D80     E              TABRDL			TableLength    			;table length from TBLP
 272  0095  296A                    JMP				SendCnf        			;Read Device table and send it
 273  0096              
 274  0096              ;--------------------------------------------------------------------------------
 275  0096              get_other_string:
 276  0096  0700     E  			mov				a,fifo_windexH
 277  0097  0C04        			xor				a,LAND_ID_H
 278  0098  390A        			snz				z
 279  0099  2800     E  			jmp				ToStallPipe0
 280  009A              
 281  009A  0700     E  			mov				a,fifo_windexl
 282  009B  0C09        			xor				a,LAND_ID_L
 283  009C  390A        			snz				z
 284  009D  2800     E  			jmp				TOStallpipe0
 285  009E  28EA        			jmp				get_string
 286  009F              ;Standard--------------------------------------------------------------------
 287  009F              ;Get device descriptor
 288  009F              
 289  009F              readtable_withcheckindex:
 290  009F  1080     E              SZ				FIFO_wIndexL
 291  00A0  2800     E              JMP				ToStallPipe0
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 6

 292  00A1              readtable_withcheckHindex:
 293  00A1  1080     E              SZ				FIFO_wIndexH
 294  00A2  2800     E              JMP				ToStallPipe0
 295  00A3              out_of_rd_table_sendcnf:
 296  00A3  2969                    JMP				ReadEntityAndSendCnf    ;Read configuration table
 297  00A4              ;----------------------------------------------------------------------------------------------
 298  00A4              GetDeviceDes:
 299  00A4  0F00     E              MOV				A,LOW DeviceD           ;Set table pointer to device
 300  00A5  0087                    MOV				TBLP,A                  ;  table
 301  00A6  0F12                    MOV				A,Device_Length         ;(Entity length not included
 302  00A7  28FF        			jmp				readtable_withcheckindex
 303  00A8              ;----------------------------------------------------------------------------------------------
 304  00A8              ;(Configuration, interface & endpoint) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 305  00A8              GetConfigurationDes:
 306  00A8  0F00     E              MOV				A,LOW ConfigurationD    ;Set table pointer to
 307  00A9  0087                    MOV				TBLP,A                  ;configuration
 308  00AA  0F22        	        MOV				A,config_Length         ;(Entity length not included
 309  00AB  28FF        			jmp				readtable_withcheckindex
 310  00AC              ;Class-----------------------------------------------------------------------
 311  00AC              GetHID:
 312  00AC  0F00     E              MOV				A,LOW HID_0             ;Set table pointer to
 313  00AD  0087        			MOV				TBLP,A                  ;HID
 314  00AE  0F09                    MOV				A,HID_Length         	;(Entity length not included
 315  00AF  2903        			jmp				out_of_rd_table_sendcnf
 316  00B0              
 317  00B0              ;----------------------------------------------------------------------------------------------
 318  00B0              FIFO_Full:
 319  00B0  3000     E              SET				bFIFO_Full				;Send Request
 320  00B1              FIFO_NoFull:
 321  00B1  3400     E              CLR				bSend_Continue 			;clear continue send flag
 322  00B2  1080     E              SZ				TableLength             ;Finished read ?
 323  00B3  296D                    JMP				ReadAgain               ;No, Read Next Byte
 324  00B4              ;----------------------------------------------------------------------------------------------
 325  00B4              EndSend:
 326  00B4  3C00     E              sz     			bFIFO_Full	
 327  00B5  3000     E              set				bSend_Continue 			;if fifo_full & TableLength=0
 328  00B6              													;must send zero length data in next in token
 329  00B6  3C00     E  			sz				bSend_Continue 
 330  00B7  2800     E  			jmp				RequestResponse
 331  00B8              			
 332  00B8              
 333  00B8  3000     E  			set				bwait_setup
 334  00B9              
 335  00B9  1080     E  			SZ				FIFO_SendLen
 336  00BA  2800     E              jmp    			RequestResponse 
 337  00BB  2800     E  			jmp				SendHandshake			;send zero length
 338  00BC              
 339  00BC              ;----------------------------------------------------------------------------------------------
 340  00BC              GetConfiguration:
 341  00BC  1F00     E  			clr				FIFO_out1
 342  00BD  3C00     E  			sz				bcfgvalue
 343  00BE  3000     E              set				FIFO_OUT1.0           	;to FIFO
 344  00BF  0F01                    MOV				A,01H                   ;Send length = 1
 345  00C0  2800     E  			jmp				SendFIFOOut
 346  00C1              
 347  00C1              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 348  00C1              
 349  00C1              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 350  00C1              SetConfiguration:
 351  00C1  0F01                    mov				a,1
"File: STD.ASM       Holtek Cross-Assembler  Version 2.86      Page 7

 352  00C2  0200     E              sub				a,FIFO_wValueL           ;1 - FIFO_wValueL 
 353  00C3  380A                    snz				c
 354  00C4  2800     E              jmp				ToStallPipe0
 355  00C5  3400     E              clr				baddr_state 
 356  00C6  390A                    snz				z                        ;fifo_wvaluel=1
 357  00C7  3000     E              set				baddr_state
 358  00C8              
 359  00C8  1F00     E              CLR				STALL                   ;Reset all stall to 0
 360  00C9  0F43                    MOV				A,USB_STALL             ;
 361  00CA  0083                    MOV				MP1,A                   ;
 362  00CB  1F02                    CLR				R1                      ;
 363  00CC  1080     E  			sz				FIFO_wvalueL
 364  00CD  2930        			jmp				set_cfg
 365  00CE  3400     E  			clr				bcfgvalue
 366  00CF  2800     E              JMP				SendHandShake
 367  00D0              
 368  00D0              set_cfg:
 369  00D0  3000     E  			set				bcfgvalue
 370  00D1  3211                    set				timer1_on
 371  00D2  2800     E              JMP				SendHandShake
 372  00D3              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 373  00D3              
 374  00D3              
 375  00D3              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 376  00D3              GetDescriptor:  ;No check bmRequestType D4..0
 377  00D3              

⌨️ 快捷键说明

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