亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usblib2.asm

?? 合泰USB鍵盤程序
?? ASM
字號:
include		ht82k96e.inc
;include    	usbrf.inc
include		usbfifo.inc



extern		stall			:byte
extern		FIFO_Type		:byte
extern		FIFO_OUT1 		:byte
extern		int_temp1		:byte
extern		int_temp2		:byte
extern		fifo_sendlen	:byte
extern		bhas_len0		:bit
;extern		bFLAG_FIFO_REDY		:bit
;extern		bFLAG_AdrF		:bit
extern		bRmtWakeup		:bit
extern		baddr_state		:bit

extern		CMD_ADDR		:byte

FIFO_temp		equ			int_temp1
fifo_no			equ			int_temp2
FIFO_ADDR		equ			int_temp1



USBlib		.Section	AT 270H 'code'   ;AT	USBlib_ADDRESS
;----------------------------------------------------------------------------
;FIFO 0 ready to read ?

FIFO0_Rd_Check:
				mov		a,00000000b
				jmp		FIFO_Check

FIFO1_RD_check:
				mov		a,00001000b
				jmp		FIFO_Check
FIFO2_RD_check:
				mov		a,00010000b
				jmp		FIFO_Check
FIFO3_RD_check:
				mov		a,00011000b
				jmp		FIFO_Check

				
;----------------------------------------------------------------------------
;Len 0 ready to write ?
LEN0_Wr_Check:
;FIFO 0 ready to write ?
FIFO0_Wr_Check:
				mov		a,00000010b
				jmp		FIFO_Check
FIFO1_Wr_check:
				mov		a,00001010b
				jmp		FIFO_Check
FIFO2_Wr_check:
				mov		a,00010010b
				jmp		FIFO_Check
FIFO3_Wr_check:
				mov		a,00011010b
				jmp		FIFO_Check
				
FIFO_Check:
				mov		FIFO_temp,a
                MOV     A,USB_MISC
                MOV     MP1,A
				mov		a,r1
				and		a,11100000b
				or		a,fifo_temp
				mov		r1,a
				call	wait_4us
                SET     R1.@USB_Req         	;Set request
				call	wait_4us
                MOV     A,(01H SHL @USB_Ready) 	;access ready flag
Check:
				call	wait_28us
                AND     A,R1        			;Z=0:ready/1:not ready
                RET

;----------------------------------------------------------------------------
;----BEGIN (Read FIFO)
ReadFIFO0:
                MOV     A,USB_FIFO0
                JMP     ReadFIFO
ReadFIFO1:
                MOV     A,USB_FIFO1
				JMP		ReadFIFO	
ReadFIFO2:
                MOV     A,USB_FIFO2
				JMP		ReadFIFO	
ReadFIFO3:
                MOV     A,USB_FIFO3
				JMP		ReadFIFO	

ReadFIFO:
                MOV     FIFO_NO,A             	;FIFO NO.
                CLR     FIFO_SendLen            ;Initial length to 0
                MOV     A,OFFSET FIFO_Type      ;set input FIFO buffer pointer
                MOV     MP0,A                   ;
ReadFIFOLoop:
                MOV     A,FIFO_NO              	;FIFO NO.
                MOV     MP1,A                   ;
                MOV     A,R1                    ;Read FIFO data
				nop
                MOV     R0,A                    ;
                INC     FIFO_SendLen            ;Getting data length++
                INC     MP0                     ;Update to next pointer
                MOV     A,FIFO_SIZE             ;FIFO full ?
                XOR     A,FIFO_SendLen          ;
                SZ      Z                       ;
                JMP     E1ND_Request             ;Yes
                MOV     A,USB_MISC              ;Check ready ?
                MOV     MP1,A                   ;
				call	wait_28us
                SZ      R1.@USB_Ready           ;
                JMP     ReadFIFOLoop            ;Yes
                JMP     E1ND_Request             ;No Exit for not 8 bytes data
;----END (Read FIFO)

;----------------------------------------------------------------------------
;----BEGIN (Write FIFO)
;Write FIFO_OUT1 Data to FIFO Buffer 
WriteFIFO0:
                MOV     A,USB_FIFO0
                JMP     WriteFIFO
WriteFIFO1:
                MOV     A,USB_FIFO1
				JMP		WriteFIFO
WriteFIFO2:
                MOV     A,USB_FIFO2
				JMP		WriteFIFO
WriteFIFO3:
                MOV     A,USB_FIFO3
				JMP		WriteFIFO

WriteFIFO:
                MOV     FIFO_NO,A             	;FIFO NO.
                MOV     A,OFFSET FIFO_OUT1      ;set output FIFO buffer pointer
                MOV     MP0,A                   ;
WriteFIFOLoop:
                SZ      FIFO_SendLen           	;Any data to write ?
                JMP     WriteFIFOTag            ;Yes
                JMP     EndWrite                ;No
WriteFIFOTag:
                MOV     A,FIFO_NO              	;FIFO NO.
                MOV     MP1,A                   ;
				
				SET		FIFO_w_c_b
                MOV     A,R0                    ;Write data to FIFO
                MOV     R1,A                    ;
				CLR		FIFO_w_c_b				

                DEC     FIFO_SendLen           	;Getting data length++
                INC     MP0                     ;Update to next pointer
                MOV     A,USB_MISC              ;End of FIFO ?
                MOV     MP1,A                   ;
				call	wait_28us
                SZ      R1.@USB_Ready           ;
                JMP     WriteFIFOLoop           ;No
				jmp		EndWrite
;------------------------------------------------------------------------
WriteLen0:
;;				SnZ		bFLAG_FIFO_REDY
;;				jmp		E1ND_Request
;;                set     bFLAG_AdrF  	;have finished address write
;;				clr		bFLAG_FIFO_REDY
;;				clr		int_reg.@int0
;;wait_int0_high:
;;				clr		wdt
;;				snz		int_reg.@int0
;;				jmp		wait_int0_high
EndWrite:
;----------------------------------------------------------------------------
;----BEGIN (End request)
E1ND_Request:
                MOV     A,USB_MISC
                MOV     MP1,A
                MOV     A,(01H SHL @USB_Tx) ;Change Tx state
				clr		intc.0
                XORM    A,R1                ;
				call	wait_4us
                CLR     R1.@USB_Req         ;End request
				set		intc.0
                RET

;;wait_zero_len_out:
;;				sz		r1.@USB_Setup
;;				ret    							;continue to scan keyboard
;;
;;				set		r1.@USB_Tx
;;				call	wait_4us
;;				set		R1.@usb_req
;;				call	wait_28us
;;				sz		R1.@USB_Ready
;;				jmp		chg_address_now
;;				clr		r1.@USB_Req 
;;				jmp		wait_zero_len_out
;;
;;chg_address_now:
;;				clr		r1.@USB_Req 
;;                rla     CMD_ADDR             	;Yes
;;;SetAddress:
;;                AND     A,0FEH              	;& save it
;;                MOV     FIFO_ADDR,A       		;Move address to adress buffer
;;                SZ      bRmtWakeup 				;Remote wakeup exist ?
;;                SET     FIFO_ADDR.0				;Yes:Set remote wakeup flag
;;                MOV     A,USB_ADDR_WAKE     	;MP1 point to Address register
;;                MOV     MP1,A               	;
;;                MOV     A,FIFO_ADDR        		;Write to Address Register
;;                MOV     R1,A                	;
;;				sz		CMD_ADDR
;;				set		baddr_state			
;;                CLR     bFLAG_AdrF  			;have finished address write
;;		
;;                RET
;;----END (End request)
;
;;----END (Write FIFO)

;----------------------------------------------------------------------------
;----BEGIN (Clear FIFO)
ClearFIFO1:
				set		r1.@USB_Clear
				clr		r1.@USB_Tx
				call	wait_4us
                CLR     R1.@USB_Clear       ;Disable Clear
                CLR     R1.@USB_Req         ;End request
                RET




;----END (Clear FIFO)
wait_28us:
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
				jmp		$+1
wait_4us:
				ret




;----------------------------------------------------------------------------
;----BEGIN (Check setup)
;Output: Z = 0:Setup/1:None
;CheckSetup:
;                MOV     A,USB_MISC          	;MP1 point to Misc. register
;                MOV     MP1,A               	;
;                MOV     A,(01H SHL @USB_Setup)  ;Misc. Register Setup flag
;                JMP     Check

;----------------------------------------------------------------------------
;----BEGIN (Get pipe bit)
;Input : ACC pipe number
;Output: ACC pip bit (D0:pipe 0, D1:pipe 1...)
GetPipeBit:
                INC     ACC
                MOV     FIFO_TEMP,A
                MOV     A,80H
GetPipeBitLoop:
                RL      ACC
                SDZ     FIFO_TEMP 
                JMP     GetPipeBitLoop
                RET
;----END (Get pipe bit)

;----------------------------------------------------------------------------
;----BEGIN (Set Stall)
;Input : ACC = Pipe number
SetStall:
                MOV     FIFO_TEMP ,A   	;
                MOV     A,USB_STALL     ;MP1 point to Stall register (Read Only)
                MOV     MP1,A           ;
                MOV     A,FIFO_TEMP 
                OR      A,STALL        	;Set stall bit
                JMP     SetStallTag
;----END (Set Stall)


;----------------------------------------------------------------------------
;----BEGIN (Clear Stall)
;Input : ACC = Pipe number
ClearStall:
                MOV     FIFO_TEMP,A         ;
                MOV     A,USB_STALL         ;MP1 point to Stall register
                MOV     MP1,A               ;
                MOV     A,FIFO_TEMP 
                CPL     ACC                 ;Clear stall bit
                AND     A,STALL            	;
SetStallTag:
                MOV     STALL,A       		;Update Satll buffer
                MOV     R1,A            	;Update Stall register
                RET
;----END (Clear Sta

;----------------------------------------------------------------------------
;----BEGIN (Set Address)
;Input : ACC = Address
;SetAddress:
;                RL      ACC                 	;Shift address to D1
;                AND     A,0FEH              	;& save it
;                MOV     FIFO_ADDR,A       		;Move address to adress buffer
;                SZ      STD_FLAG.@RmtWakeup 	;Remote wakeup exist ?
;                SET     FIFO_ADDR.@ADDR_Wake	;Yes:Set remote wakeup flag
;                MOV     A,USB_ADDR_WAKE     	;MP1 point to Address register
;                MOV     MP1,A               	;
;                MOV     A,FIFO_ADDR        		;Write to Address Register
;                MOV     R1,A                	;
;                RET



;----- END (USB function) --------------------------------------------------


;public	LEN0_Rd_Check
public	LEN0_Wr_Check
public	FIFO0_Rd_Check
;public	FIFO0_Rd_Check1
public	FIFO1_Rd_Check
public	FIFO2_Rd_Check
public	FIFO3_Rd_Check
public	FIFO0_Wr_Check
public	FIFO1_Wr_Check
public	FIFO2_Wr_Check
public	FIFO3_Wr_Check
;public	ReadLen0
public	ReadFIFO0
public	ReadFIFO1
public	ReadFIFO2
public	ReadFIFO3
public	WriteLen0
public	WriteFIFO0
public	WriteFIFO1
public	WriteFIFO2
;public	ClearFIFO0
public	ClearFIFO1
;public	ClearFIFO2
;public	CheckSetup
;public	CheckPipe
public	GetPipeBit
public	SetStall
public	ClearStall
;public	SetAddress
;public	SetRemoteFun
;public	END_Request
END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美色图| 亚洲国产精品成人综合色在线婷婷| 日韩午夜在线观看视频| 中文字幕第一区二区| 石原莉奈一区二区三区在线观看| 成人一区二区三区在线观看 | 91美女视频网站| 欧美电影免费观看高清完整版在线| 亚洲精品第一国产综合野| 国产激情偷乱视频一区二区三区| 欧美精品在线一区二区三区| 亚洲视频免费看| 国产成人精品aa毛片| 欧美电视剧免费全集观看| 一个色综合网站| gogo大胆日本视频一区| 久久久九九九九| 美国三级日本三级久久99| 欧美色大人视频| 一区二区三区色| www.av精品| 国产精品久久久久久户外露出 | 亚洲综合免费观看高清完整版在线| 国产精品一二三区| 日韩视频中午一区| 免费观看在线色综合| 欧美日韩国产高清一区二区| 亚洲永久免费视频| 欧美亚洲高清一区| 亚洲成av人片一区二区梦乃| 欧美网站一区二区| 亚洲成人免费影院| 欧美一级黄色大片| 蜜桃精品视频在线观看| 日韩欧美国产系列| 寂寞少妇一区二区三区| 久久久午夜电影| 国产一区视频网站| 精品福利一二区| 国产一区二区精品在线观看| 久久久精品日韩欧美| 懂色av中文字幕一区二区三区 | 国产欧美一区在线| 精品亚洲成a人| 久久久国产精品不卡| 成人ar影院免费观看视频| 亚洲丝袜另类动漫二区| 91成人在线观看喷潮| 日韩1区2区日韩1区2区| 欧美成人在线直播| 粉嫩一区二区三区在线看| ●精品国产综合乱码久久久久 | 欧美区在线观看| 久久激情综合网| 国产三级精品视频| 91网站最新网址| 午夜视频一区在线观看| 欧美大片在线观看一区二区| 国产成人免费av在线| 亚洲精品欧美在线| 日韩欧美黄色影院| 99精品国产视频| 日本午夜精品视频在线观看| 久久亚洲精品小早川怜子| 一本一道久久a久久精品综合蜜臀| 亚洲mv在线观看| 久久久久久电影| 欧美三级视频在线观看| 国产中文一区二区三区| 亚洲自拍偷拍综合| 亚洲精品在线观看视频| 色欧美片视频在线观看在线视频| 美腿丝袜一区二区三区| 亚洲免费视频成人| 久久久天堂av| 欧美日本免费一区二区三区| 成人av在线一区二区| 天天色天天爱天天射综合| 中文子幕无线码一区tr| 777久久久精品| 99九九99九九九视频精品| 九九精品一区二区| 亚洲无线码一区二区三区| 久久久久国产精品麻豆ai换脸| 欧美日韩aaaaaa| 成人18精品视频| 久久99久久精品| 婷婷成人激情在线网| 亚洲欧美另类久久久精品| 国产午夜精品美女毛片视频| 欧美一三区三区四区免费在线看| 91蝌蚪国产九色| 成人性生交大合| 国产在线乱码一区二区三区| 日韩制服丝袜先锋影音| 一区二区日韩av| 中文字幕在线不卡国产视频| 国产婷婷精品av在线| 日韩亚洲欧美在线| 欧美二区在线观看| 欧美天堂一区二区三区| 91免费视频观看| 成人精品国产一区二区4080| 国产精品一区二区无线| 韩国成人福利片在线播放| 日韩中文字幕麻豆| 午夜在线电影亚洲一区| 亚洲一区二区视频| 亚洲一区二区三区小说| 一区二区视频在线| 亚洲乱码精品一二三四区日韩在线 | 日产国产欧美视频一区精品| 亚洲va欧美va国产va天堂影院| 亚洲成av人在线观看| 图片区日韩欧美亚洲| 午夜视频久久久久久| 日韩成人伦理电影在线观看| 免费成人av在线| 国产一区二区精品久久99| 国产一区二三区好的| 国产福利精品导航| 不卡一区二区中文字幕| 99久久精品久久久久久清纯| 97成人超碰视| 欧美日本在线一区| 欧美一区二区成人| 精品国产一二三区| 国产午夜精品在线观看| 亚洲欧洲精品一区二区三区| 亚洲黄一区二区三区| 一区二区在线看| 蜜臀av一级做a爰片久久| 久久99久久久久| 成人精品高清在线| 色婷婷综合中文久久一本| 欧美色手机在线观看| 欧美一区二区精美| 久久精品人人做人人综合 | 欧美本精品男人aⅴ天堂| 久久人人97超碰com| 亚洲日本青草视频在线怡红院 | 六月丁香综合在线视频| 国产成人精品www牛牛影视| 91麻豆国产在线观看| 欧美男生操女生| 国产日韩亚洲欧美综合| 一二三区精品视频| 精品伊人久久久久7777人| 99免费精品在线| 欧美精品乱人伦久久久久久| 久久久久久久精| 亚洲成人在线免费| 成人黄色电影在线 | 欧美日韩精品一区二区三区蜜桃| 日韩精品在线一区二区| 亚洲欧洲av另类| 久久99精品久久久| 欧美在线播放高清精品| 欧美精品一区二区三区蜜桃| 亚洲精品日产精品乱码不卡| 韩国在线一区二区| 欧美精品在线一区二区三区| 中文乱码免费一区二区| 美女久久久精品| 在线视频综合导航| 中文字幕二三区不卡| 另类综合日韩欧美亚洲| 欧美色国产精品| 亚洲欧洲成人自拍| 国产老肥熟一区二区三区| 欧美丰满嫩嫩电影| 一区二区在线观看视频| 成人18视频日本| 国产日韩av一区| 精品一区二区免费| 欧美日韩国产一级片| 亚洲日本乱码在线观看| 丁香婷婷综合网| 欧美精品一区二| 免费成人小视频| 欧美理论电影在线| 亚洲综合区在线| 色美美综合视频| 一区二区中文字幕在线| 国产成人在线影院| 久久这里都是精品| 激情五月激情综合网| 日韩欧美的一区| 久久精品国产99| 日韩视频一区二区| 美腿丝袜在线亚洲一区| 日韩一级免费一区| 日本亚洲最大的色成网站www| 欧美日韩久久不卡| 亚洲成a天堂v人片| 欧美体内she精视频| 亚洲无人区一区| 在线观看免费一区| 午夜精品爽啪视频| 欧美一三区三区四区免费在线看|