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

📄 usb_oper.lst

📁 holtek mouse usb asm. FW
💻 LST
📖 第 1 页 / 共 5 页
字号:
 305  0097  1085        			SZ		ACC
 306  0098  2800     R  			JMP		HANDLE_REPORT_DESCRIPTOR
 307  0099              
 308  0099  0700        			MOV		A, ID0
 309  009A  1585        			DEC		ACC
 310  009B              
 311  009B  2800     R  			JMP		DESCR_SWITCH
 312  009C              
 313  009C              	HANDLE_REPORT_DESCRIPTOR:
 314  009C              		
 315  009C  0700        			MOV		A, ID0
 316  009D  0E0F        			AND		A, 00FH
 317  009E  0B06        			ADD		A, 006H
 318  009F  1481        			INC		MP0
 319  00A0  0300        			ADD		A, ID0
 320  00A1              
 321  00A1              	DESCR_SWITCH:
 322  00A1              			;SZ		USB_CONFIGURATION_DONE
 323  00A1              			;CLR		[0EH].4
 324  00A1  0386        			ADDM	A, PCL
 325  00A2  2800     R  			JMP		GET_DEVICE_DESCR				;1:GET DEVICE DESCRIPTOR
 326  00A3  2800     R  			JMP		GET_CONFIGURATION_DESCR			;2:GET CONFIGURATION DESCRIPTOR
 327  00A4  2800     R  			JMP		GET_STRING_DESCR				;3:GET STRING DESCRIPTOR
 328  00A5  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY		;4:GET INTERFACE DESCRIPTOR
 329  00A6  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY		;5:GET ENDPOINT DESCRIPTOR
 330  00A7  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY		;6:GET DEVICE QUALIFIER DESCRIPTOR (NOT SUPPORTED)
 331  00A8  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY		;7:GET OTHER SPEED CONFIGURATION DESCRIPTOR (NOT SUPPORTED)
 332  00A9  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY		;8:GET INTERFACEPOWER DESCRIPTOR (NOT SUPPORTED)
 333  00AA  2800     R  			JMP		GET_KB_REPORT_DESCR				;9:GET KEYBOARD REPORT DESCRIPTOR
 334  00AB  2800     R  			JMP		GET_MICE_REPORT_DESCR			;A:GET MOUSE REPORT DESCRIPTOR
 335  00AC              
 336  00AC              	GET_DEVICE_DESCR:
 337  00AC  3C00     R  			SZ		USB_CONFIGURATION_DONE
 338  00AD  320E        			SET		[0EH].4
 339  00AE  1481        			INC		MP0
 340  00AF  1481        			INC		MP0
 341  00B0  1481        			INC		MP0
 342  00B1              		
 343  00B1  340A        			CLR		CARRY
 344  00B2  0700        			MOV		A, ID0
 345  00B3  0080     R  			MOV		BYTE_REST, A
 346  00B4  0F12        			MOV		A, DEVICE_DESCR_LENGTH
 347  00B5  0280     R  			SUBM	A, BYTE_REST
 348  00B6  3C0A        			SZ		CARRY
 349  00B7  2800     R  			JMP		TAKE_ID0_DEVICE_DESCR
 350  00B8              		
 351  00B8  0080     R  			MOV		BYTE_REST, A
 352  00B9  2800     R  			JMP		DEVICE_DESCR_NEXT
 353  00BA              
 354  00BA              	TAKE_ID0_DEVICE_DESCR:
 355  00BA  0700        			MOV		A, ID0
 356  00BB  0080     R  			MOV		BYTE_REST, A	
 357  00BC              
"File: USB_OPER.ASM  Holtek Cross-Assembler  Version 2.86      Page 7

 358  00BC              	DEVICE_DESCR_NEXT:
 359  00BC  1F00     R  			CLR		BYTE_POS
 360  00BD  0F00        			MOV		A, LOW DEVICED
 361  00BE  0080     R  			MOV		BYTE_SADDR, A
 362  00BF  0087        			MOV		TBLP, A
 363  00C0  2000     R  			CALL	WRITE_FIFO0
 364  00C1              		
 365  00C1              
 366  00C1  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 367  00C2              
 368  00C2              	GET_CONFIGURATION_DESCR:
 369  00C2  3C00     R  			SZ		USB_CONFIGURATION_DONE
 370  00C3  320E        			SET		[0EH].4
 371  00C4  1481        			INC		MP0
 372  00C5  1481        			INC		MP0
 373  00C6  1481        			INC		MP0
 374  00C7              		
 375  00C7  0700        			MOV		A, ID0
 376  00C8  0080     R  			MOV		BYTE_REST, A
 377  00C9              
 378  00C9  0FFF        			MOV		A, 0FFH
 379  00CA  0400     R  			XOR		A, BYTE_REST
 380  00CB  1085        			SZ		ACC
 381  00CC  2800     R  			JMP		CONFIGURATION_DESCR_NEXT
 382  00CD              
 383  00CD  0F3B        			MOV		A, ALL_CONFIGURATION_LENGTH
 384  00CE  0080     R  			MOV		BYTE_REST, A
 385  00CF              		
 386  00CF              	CONFIGURATION_DESCR_NEXT:
 387  00CF  1F00     R  			CLR		BYTE_POS
 388  00D0  0F09        			MOV		A, LOW CONFIGURATIOND
 389  00D1  0080     R  			MOV		BYTE_SADDR, A
 390  00D2  0087        			MOV		TBLP, A
 391  00D3  2000     R  			CALL	WRITE_FIFO0
 392  00D4              		
 393  00D4              
 394  00D4  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 395  00D5              
 396  00D5              	GET_STRING_DESCR:
 397  00D5  3C00     R  			SZ		USB_CONFIGURATION_DONE
 398  00D6  320E        			SET		[0EH].4
 399  00D7  1581        			DEC		MP0
 400  00D8              
 401  00D8  0700        			MOV		A, ID0
 402  00D9  1085        			SZ		ACC
 403  00DA  2800     R  			JMP		SEND_PRODUCTS
 404  00DB              
 405  00DB  0F04        			MOV		A, LANGID_LENGTH
 406  00DC  0080     R  			MOV		BYTE_REST, A
 407  00DD  0F94        			MOV		A, LOW LANGID
 408  00DE  0087        			MOV		TBLP, A
 409  00DF  2800     R  			JMP		STRING_DESCR_NEXT
 410  00E0              
 411  00E0              	SEND_PRODUCTS:
 412  00E0  0F1A        			MOV		A, STRING_DESCR_LENGTH
 413  00E1  0080     R  			MOV		BYTE_REST, A
 414  00E2  0F9D        			MOV		A, LOW PRODUCTS
 415  00E3  0087        			MOV		TBLP, A
 416  00E4              
 417  00E4              	STRING_DESCR_NEXT:
"File: USB_OPER.ASM  Holtek Cross-Assembler  Version 2.86      Page 8

 418  00E4  1F00     R  			CLR		BYTE_POS
 419  00E5  0080     R  			MOV		BYTE_SADDR, A
 420  00E6  2000     R  			CALL	WRITE_FIFO0
 421  00E7              		
 422  00E7              
 423  00E7  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 424  00E8              
 425  00E8              	GET_KB_REPORT_DESCR:
 426  00E8  3C00     R  			SZ		USB_CONFIGURATION_DONE
 427  00E9  320E        			SET		[0EH].4
 428  00EA  1481        			INC		MP0
 429  00EB  1481        			INC		MP0
 430  00EC              
 431  00EC  340A        			CLR		CARRY
 432  00ED  0700        			MOV		A, ID0
 433  00EE  0080     R  			MOV		BYTE_REST, A
 434  00EF  0F3F        			MOV		A, KB_REPORT_DESCR_LENGTH
 435  00F0  0280     R  			SUBM	A, BYTE_REST
 436  00F1  3C0A        			SZ		CARRY
 437  00F2  2800     R  			JMP		TAKE_ID0_KBREPORT_DESCR
 438  00F3              		
 439  00F3  0080     R  			MOV		BYTE_REST, A
 440  00F4  2800     R  			JMP		KBREPORT_DESCR_NEXT
 441  00F5              
 442  00F5              	TAKE_ID0_KBREPORT_DESCR:
 443  00F5  0700        			MOV		A, ID0
 444  00F6  0080     R  			MOV		BYTE_REST, A	
 445  00F7              
 446  00F7              	KBREPORT_DESCR_NEXT:
 447  00F7  1F00     R  			CLR		BYTE_POS
 448  00F8  0F2A        			MOV		A, LOW KBREPORTD
 449  00F9  0080     R  			MOV		BYTE_SADDR, A
 450  00FA  0087        			MOV		TBLP, A
 451  00FB  2000     R  			CALL	WRITE_FIFO0
 452  00FC              
 453  00FC  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 454  00FD              	
 455  00FD              	GET_MICE_REPORT_DESCR:
 456  00FD  3C00     R  			SZ		USB_CONFIGURATION_DONE
 457  00FE  320E        			SET		[0EH].4
 458  00FF  1481        			INC		MP0
 459  0100  1481        			INC		MP0
 460  0101              		
 461  0101  340A        			CLR		CARRY
 462  0102  0700        			MOV		A, ID0
 463  0103  0080     R  			MOV		BYTE_REST, A
 464  0104  0F81        			MOV		A, MICE_REPORT_DESCR_LENGTH
 465  0105  0280     R  			SUBM	A, BYTE_REST
 466  0106  3C0A        			SZ		CARRY
 467  0107  2800     R  			JMP		TAKE_ID0_MICEREPORT_DESCR
 468  0108              		
 469  0108  0080     R  			MOV		BYTE_REST, A
 470  0109  2800     R  			JMP		MICEREPORT_DESCR_NEXT
 471  010A              
 472  010A              	TAKE_ID0_MICEREPORT_DESCR:
 473  010A  0700        			MOV		A, ID0
 474  010B  0080     R  			MOV		BYTE_REST, A	
 475  010C              
 476  010C              	MICEREPORT_DESCR_NEXT:
 477  010C  1F00     R  			CLR		BYTE_POS
"File: USB_OPER.ASM  Holtek Cross-Assembler  Version 2.86      Page 9

 478  010D  0F4B        			MOV		A, LOW MICEREPORTD
 479  010E  0080     R  			MOV		BYTE_SADDR, A
 480  010F  0087        			MOV		TBLP, A
 481  0110  2000     R  			CALL	WRITE_FIFO0
 482  0111              		
 483  0111  3000     R  			SET		USB_CONFIGURATION_DONE
 484  0112              			;SNZ		USB_CONFIGURATION_DONE
 485  0112              			;CALL 	WRITE_FIFO2
 486  0112              
 487  0112  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 488  0113              
 489  0113              
 490  0113              	NEXT_CHECK_EP0_0:
 491  0113  0700        			MOV		A, ID0
 492  0114  0E60        			AND		A, 060H
 493  0115              
 494  0115  0C20        			XOR		A, 020H	
 495  0116  1085        			SZ		ACC
 496  0117  2800     R  			JMP		NEXT_CHECK_EP0_1
 497  0118              
 498  0118              			;THIS IS THE HOST-TO-DEVICE, CLASS COMMAND
 499  0118              
 500  0118              			;CLASS COMMAND 0X0A
 501  0118  1481        			INC		MP0
 502  0119  0F0A        			MOV		A, 00AH
 503  011A  0400        			XOR		A, ID0
 504  011B  1085        			SZ		ACC
 505  011C  2800     R  			JMP		CHECK_IF_OTHER_210
 506  011D  2800     R  			JMP		CLASS_0_LEN
 507  011E              
 508  011E              	CHECK_IF_OTHER_210:
 509  011E              			;CLASS COMMAND 0X0B
 510  011E  0F0B        			MOV		A, 00BH
 511  011F  0400        			XOR		A, ID0
 512  0120  1085        			SZ		ACC
 513  0121  2800     R  			JMP		CHECK_IF_OTHER_211
 514  0122              
 515  0122  1481        			INC		MP0
 516  0123              			;INC		MP0
 517  0123              			;INC		MP0
 518  0123  0700        			MOV		A, ID0
 519  0124              
 520  0124  3000     R  			SET		NOT_BOOT_TYPE
 521  0125  3805        			SNZ		ACC.0
 522  0126  3400     R  			CLR		NOT_BOOT_TYPE
 523  0127              
 524  0127  2800     R  			JMP		CLASS_0_LEN
 525  0128              
 526  0128              	CHECK_IF_OTHER_211:
 527  0128              			;CLASS COMMAND 0X09
 528  0128  0F09        			MOV		A, 009H
 529  0129  0400        			XOR		A, ID0
 530  012A  1085        			SZ		ACC
 531  012B  2800     R  			JMP		NOT_SUPPORTED_CLASS_COMMAND
 532  012C              
 533  012C  3000     R  			SET		ZERO_IN_TOKEN_REQUIRED
 534  012D  2800     R  			JMP		NOT_SUPPORTED_CLASS_COMMAND
 535  012E              
 536  012E              	CLASS_0_LEN:
 537  012E  2000     R  			CALL	WRITE_LEN0_TOFIFO0
"File: USB_OPER.ASM  Holtek Cross-Assembler  Version 2.86      Page 10

 538  012F              
 539  012F              	NOT_SUPPORTED_CLASS_COMMAND:
 540  012F              
 541  012F  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 542  0130              
 543  0130              	NEXT_CHECK_EP0_1:
 544  0130  0700        			MOV		A, ID0
 545  0131  0E60        			AND		A, 060H
 546  0132              
 547  0132  0C40        			XOR		A, 040H	
 548  0133  1085        			SZ		ACC
 549  0134  2800     R  			JMP		EXIT_EP0_OUTPACKET_ANALY
 550  0135              
 551  0135              			;THIS IS THE HOST-TO-DEVICE, VENDOR COMMAND
 552  0135              			
 553  0135              	EXIT_EP0_OUTPACKET_ANALY:
 554  0135              		
 555  0135  0003        			RET
 556  0136              
 557  0136              EP0_INHANDLE:
 558  0136  1080     R  			SZ		BYTE_REST
 559  0137  2000     R  			CALL	WRITE_FIFO0
 560  0138              
 561  0138  0F45        			MOV		A, SIE
 562  0139  0083        			MOV		MP1, A
 563  013A              		
 564  013A  3582        			CLR		ID1.IN
 565  013B              
 566  013B  0003        			RET
 567  013C              
 568  013C              CHECK_EP0_FIFO_READY:
 569  013C  3400     R  			CLR		EP0_READY
 570  013D  0F46        			MOV		A, MISC
 571  013E  0083        			MOV		MP1, A
 572  013F  0FE0        			MOV		A, 0E0H
 573  0140  0682        			ANDM	A, ID1
 574  0141              
 575  0141  2000     R  			CALL	USB_MISC_DELAY
 576  0142              
 577  0142  3002        			SET		ID1.REQ			
 578  0143              
 579  0143  2000     R  			CALL	USB_MISC_DELAY			
 580  0144              
 581  0144  3F02        			SZ		ID1.READY
 582  0145  3000     R  			SET		EP0_READY
 583  0146              
 584  0146  2000     R  			CALL	USB_MISC_DELAY
 585  0147  3402        			CLR		ID1.REQ
 586  0148  0003        			RET
 587  0149              
 588  0149              READ_FIFO0:
 589  0149  0F08        			MOV		A, 8
 590  014A  0080     R  			MOV		USB_LCOUNT,A
 591  014B              
 592  014B              	RFIFO0:
 593  014B  0F90        			MOV		A, EP0_BUFF
 594  014C  0081        			MOV		MP0, A	
 595  014D              
 596  014D  0F46        			MOV		A, MISC
 597  014E  0083        			MOV		MP1, A
"File: USB_OPER.ASM  Holtek Cross-Assembler  Version 2.86      Page 11

 598  014F  0FE0        			MOV		A, 0E0H
 599  0150  0682        			ANDM	A, ID1
 600  0151              
 601  0151  2000     R  			CALL	USB_MISC_DELAY
 602  0152              
 603  0152  3002        			SET		ID1.REQ			
 604  0153              
 605  0153              	RFIFO0LOOP:
 606  0153  0F46        			MOV		A, MISC
 607  0154  0083        			MOV		MP1, A
 608  0155              
 609  0155  2000     R  			CALL	USB_MISC_DELAY			
 610  0156              
 611  0156  3B02        			SNZ		ID1.READY
 612  0157  2800     R  			JMP		READ_FIFO0END	
 613  0158              

⌨️ 快捷键说明

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