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

📄 usblib2.lst

📁 合泰USB键盘程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 178  0059  0F02                        MOV     A,(01H SHL @USB_Tx) ;Change Tx state
 179  005A  340B        				clr		intc.0
 180  005B  0482                        XORM    A,R1                ;
 181  005C  22E2        				call	wait_4us
 182  005D  3402                        CLR     R1.@USB_Req         ;End request
 183  005E  300B        				set		intc.0
 184  005F  0003                        RET
 185  0060              
 186  0060              ;;wait_zero_len_out:
 187  0060              ;;				sz		r1.@USB_Setup
 188  0060              ;;				ret    							;continue to scan keyboard
 189  0060              ;;
 190  0060              ;;				set		r1.@USB_Tx
 191  0060              ;;				call	wait_4us
 192  0060              ;;				set		R1.@usb_req
 193  0060              ;;				call	wait_28us
 194  0060              ;;				sz		R1.@USB_Ready
 195  0060              ;;				jmp		chg_address_now
 196  0060              ;;				clr		r1.@USB_Req 
 197  0060              ;;				jmp		wait_zero_len_out
 198  0060              ;;
 199  0060              ;;chg_address_now:
 200  0060              ;;				clr		r1.@USB_Req 
 201  0060              ;;                rla     CMD_ADDR             	;Yes
 202  0060              ;;;SetAddress:
 203  0060              ;;                AND     A,0FEH              	;& save it
 204  0060              ;;                MOV     FIFO_ADDR,A       		;Move address to adress buffer
 205  0060              ;;                SZ      bRmtWakeup 				;Remote wakeup exist ?
 206  0060              ;;                SET     FIFO_ADDR.0				;Yes:Set remote wakeup flag
 207  0060              ;;                MOV     A,USB_ADDR_WAKE     	;MP1 point to Address register
 208  0060              ;;                MOV     MP1,A               	;
 209  0060              ;;                MOV     A,FIFO_ADDR        		;Write to Address Register
 210  0060              ;;                MOV     R1,A                	;
 211  0060              ;;				sz		CMD_ADDR
 212  0060              ;;				set		baddr_state			
 213  0060              ;;                CLR     bFLAG_AdrF  			;have finished address write
 214  0060              ;;		
 215  0060              ;;                RET
 216  0060              ;;----END (End request)
 217  0060              ;
 218  0060              ;;----END (Write FIFO)
 219  0060              
 220  0060              ;----------------------------------------------------------------------------
 221  0060              ;----BEGIN (Clear FIFO)
 222  0060              ClearFIFO1:
 223  0060  3102        				set		r1.@USB_Clear
 224  0061  3482        				clr		r1.@USB_Tx
 225  0062  22E2        				call	wait_4us
 226  0063  3502                        CLR     R1.@USB_Clear       ;Disable Clear
 227  0064  3402                        CLR     R1.@USB_Req         ;End request
 228  0065  0003                        RET
 229  0066              
 230  0066              
 231  0066              
 232  0066              
 233  0066              ;----END (Clear FIFO)
 234  0066              wait_28us:
 235  0066  2AD7        				jmp		$+1
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 5

 236  0067  2AD8        				jmp		$+1
 237  0068  2AD9        				jmp		$+1
 238  0069  2ADA        				jmp		$+1
 239  006A  2ADB        				jmp		$+1
 240  006B  2ADC        				jmp		$+1
 241  006C  2ADD        				jmp		$+1
 242  006D  2ADE        				jmp		$+1
 243  006E  2ADF        				jmp		$+1
 244  006F  2AE0        				jmp		$+1
 245  0070  2AE1        				jmp		$+1
 246  0071  2AE2        				jmp		$+1
 247  0072              wait_4us:
 248  0072  0003        				ret
 249  0073              
 250  0073              
 251  0073              
 252  0073              
 253  0073              ;----------------------------------------------------------------------------
 254  0073              ;----BEGIN (Check setup)
 255  0073              ;Output: Z = 0:Setup/1:None
 256  0073              ;CheckSetup:
 257  0073              ;                MOV     A,USB_MISC          	;MP1 point to Misc. register
 258  0073              ;                MOV     MP1,A               	;
 259  0073              ;                MOV     A,(01H SHL @USB_Setup)  ;Misc. Register Setup flag
 260  0073              ;                JMP     Check
 261  0073              
 262  0073              ;----------------------------------------------------------------------------
 263  0073              ;----BEGIN (Get pipe bit)
 264  0073              ;Input : ACC pipe number
 265  0073              ;Output: ACC pip bit (D0:pipe 0, D1:pipe 1...)
 266  0073              GetPipeBit:
 267  0073  1485                        INC     ACC
 268  0074  0080     E                  MOV     FIFO_TEMP,A
 269  0075  0F80                        MOV     A,80H
 270  0076              GetPipeBitLoop:
 271  0076  1885                        RL      ACC
 272  0077  1780     E                  SDZ     FIFO_TEMP 
 273  0078  2AE6                        JMP     GetPipeBitLoop
 274  0079  0003                        RET
 275  007A              ;----END (Get pipe bit)
 276  007A              
 277  007A              ;----------------------------------------------------------------------------
 278  007A              ;----BEGIN (Set Stall)
 279  007A              ;Input : ACC = Pipe number
 280  007A              SetStall:
 281  007A  0080     E                  MOV     FIFO_TEMP ,A   	;
 282  007B  0F43                        MOV     A,USB_STALL     ;MP1 point to Stall register (Read Only)
 283  007C  0083                        MOV     MP1,A           ;
 284  007D  0700     E                  MOV     A,FIFO_TEMP 
 285  007E  0500     E                  OR      A,STALL        	;Set stall bit
 286  007F  2AF6                        JMP     SetStallTag
 287  0080              ;----END (Set Stall)
 288  0080              
 289  0080              
 290  0080              ;----------------------------------------------------------------------------
 291  0080              ;----BEGIN (Clear Stall)
 292  0080              ;Input : ACC = Pipe number
 293  0080              ClearStall:
 294  0080  0080     E                  MOV     FIFO_TEMP,A         ;
 295  0081  0F43                        MOV     A,USB_STALL         ;MP1 point to Stall register
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 6

 296  0082  0083                        MOV     MP1,A               ;
 297  0083  0700     E                  MOV     A,FIFO_TEMP 
 298  0084  0185                        CPL     ACC                 ;Clear stall bit
 299  0085  0600     E                  AND     A,STALL            	;
 300  0086              SetStallTag:
 301  0086  0080     E                  MOV     STALL,A       		;Update Satll buffer
 302  0087  0082                        MOV     R1,A            	;Update Stall register
 303  0088  0003                        RET
 304  0089              ;----END (Clear Sta
 305  0089              
 306  0089              ;----------------------------------------------------------------------------
 307  0089              ;----BEGIN (Set Address)
 308  0089              ;Input : ACC = Address
 309  0089              ;SetAddress:
 310  0089              ;                RL      ACC                 	;Shift address to D1
 311  0089              ;                AND     A,0FEH              	;& save it
 312  0089              ;                MOV     FIFO_ADDR,A       		;Move address to adress buffer
 313  0089              ;                SZ      STD_FLAG.@RmtWakeup 	;Remote wakeup exist ?
 314  0089              ;                SET     FIFO_ADDR.@ADDR_Wake	;Yes:Set remote wakeup flag
 315  0089              ;                MOV     A,USB_ADDR_WAKE     	;MP1 point to Address register
 316  0089              ;                MOV     MP1,A               	;
 317  0089              ;                MOV     A,FIFO_ADDR        		;Write to Address Register
 318  0089              ;                MOV     R1,A                	;
 319  0089              ;                RET
 320  0089              
 321  0089              
 322  0089              
 323  0089              ;----- END (USB function) --------------------------------------------------
 324  0089              
 325  0089              
 326  0089              ;public	LEN0_Rd_Check
 327  0089              public	LEN0_Wr_Check
 328  0089              public	FIFO0_Rd_Check
 329  0089              ;public	FIFO0_Rd_Check1
 330  0089              public	FIFO1_Rd_Check
 331  0089              public	FIFO2_Rd_Check
 332  0089              public	FIFO3_Rd_Check
 333  0089              public	FIFO0_Wr_Check
 334  0089              public	FIFO1_Wr_Check
 335  0089              public	FIFO2_Wr_Check
 336  0089              public	FIFO3_Wr_Check
 337  0089              ;public	ReadLen0
 338  0089              public	ReadFIFO0
 339  0089              public	ReadFIFO1
 340  0089              public	ReadFIFO2
 341  0089              public	ReadFIFO3
 342  0089              public	WriteLen0
 343  0089              public	WriteFIFO0
 344  0089              public	WriteFIFO1
 345  0089              public	WriteFIFO2
 346  0089              ;public	ClearFIFO0
 347  0089              public	ClearFIFO1
 348  0089              ;public	ClearFIFO2
 349  0089              ;public	CheckSetup
 350  0089              ;public	CheckPipe
 351  0089              public	GetPipeBit
 352  0089              public	SetStall
 353  0089              public	ClearStall
 354  0089              ;public	SetAddress
 355  0089              ;public	SetRemoteFun
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 7

 356  0089              ;public	END_Request
 357  0089              END


        0 Errors

⌨️ 快捷键说明

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