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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usb_std.asm

?? 單片機USB接口模擬鍵盤,該程序可以控制PC機的PS/2鍵盤的NUM LOCK和SCROLL LOCK的燈,以此說明通訊正常
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
    JMP     USB_GetTableEntry_Local_Std
ENDIF
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_d2h_std_dev_08
;
;  DESCRIPTION:   Get Device Configuration
;
;****************************************************************
; STANDARD DEVICE IN REQUEST: Get_Device_Configuration
;****************************************************************
;
; bmRequestType  : (IN | STANDARD | DEVICE)       = 80h
; bRequest       : GET_CONFIGURATION              = 08h    
; wValue         : RESERVED                       = 0000h  
; wIndex         : RESERVED                       = 0000h
; wLength        : SIZEOF_DEVICE_CONFIGURATION    = 0001h  
; 
; The GET_DEVICE_CONFIGURATION request returns the currently 
; selected device configuration number. 
;
; request_value and request_index contain 0000h. request_length 
; contains 0001h and the one-byte configuration number is returned 
; in a separate data transfer.
;
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------
IF (USB_CB_SRC_d2h_std_dev_08 & USB_UM_SUPPLIED)
.LITERAL
GetConfigTransferDescrTable:
    TD_START_TABLE  1                  ; One entry
    TD_ENTRY    USB_DS_RAM, 1, USB_Configuration, NULL_PTR  ; Current configuration
.ENDLITERAL
export  USB_CB_d2h_std_dev_08
USB_CB_d2h_std_dev_08:
    MOV     [USB_t2], 0                ; Use the UM temp var--Selector
    MOV     A,>GetConfigTransferDescrTable  ; Get the ROM Address MSB
    MOV     X,<GetConfigTransferDescrTable  ; Get the ROM Address LSB
    JMP     USB_GetTableEntry_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_h2d_std_dev_01
;
;  DESCRIPTION:   Clear Device Feature
;
;****************************************************************
; STANDARD DEVICE OUT REQUEST: Clear_Device_Feature
;****************************************************************
;
; bmRequestType  : (OUT | STANDARD | DEVICE)      = 00h
; bRequest       : CLEAR_FEATURE                  = 01h    
; wValue         : FEATURE_SELECTOR               = --xxh  
; wIndex         : RESERVED                       = 0000h
; wLength        : RESERVED                       = 0000h  
; 
; The CLEAR_DEVICE_FEATURE request disables a particular feature 
; for a device. The only feature supported for a device is the 
; REMOTE_WAKEUP feature.
; 
;****************************************************************
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------
IF (USB_CB_SRC_h2d_std_dev_01 & USB_UM_SUPPLIED)
export  USB_CB_h2d_std_dev_01
USB_CB_h2d_std_dev_01:
    MOV     A, REG[USB_EP0DATA+wValueLo]  ; Get the Feature Selector
                                       ; Check against valid features
                                       ;  for device receipient
    CMP     A, USB_DEVICE_REMOTE_WAKEUP  ; Only remote wakeup is defined for clear
    JNZ     USB_Not_Supported          ;      
    AND     [USB_DeviceStatus], ~USB_DEVICE_STATUS_REMOTE_WAKEUP
    JMP     USB_NoDataStageControlTransfer_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_h2d_std_dev_03
;
;  DESCRIPTION:   Set Device Featue
;
;****************************************************************
; STANDARD DEVICE OUT REQUEST: Set_Device_Feature
;****************************************************************
;
; bmRequestType  : (OUT | STANDARD | DEVICE)      = 00h
; bRequest       : SET_FEATURE                    = 03h    
; wValue         : FEATURE_SELECTOR               = --xxh  
; wIndex         : RESERVED                       = 0000h
; wLength        : RESERVED                       = 0000h  
; 
; The SET_DEVICE_FEATURE request enables a particular feature
; on a device. The only feature supported for a device is the 
; REMOTE_WAKEUP feature.
;
;****************************************************************
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------
IF (USB_CB_SRC_h2d_std_dev_03 & USB_UM_SUPPLIED)
export  USB_CB_h2d_std_dev_03
USB_CB_h2d_std_dev_03:
    MOV     A, REG[USB_EP0DATA+wValueLo]  ; Get the Feature Selector
                                       ; Check against valid features
                                       ;  for device receipient
    CMP     A, USB_DEVICE_REMOTE_WAKEUP  ; Remote wakeup?
    JZ      .remote_wakeup

    CMP     A, USB_TEST_MODE           ; Test Mode 
    JZ      .test_mode
; Flow here for any other selector is invalid for device receipient
    JMP     USB_Not_Supported
; Jump here to enable remote wake up
.remote_wakeup:
    OR      [USB_DeviceStatus], USB_DEVICE_STATUS_REMOTE_WAKEUP
    JMP     .finish
; Jump here to enable test mode
.test_mode:
    JMP     USB_Not_Supported
.finish:
    JMP     USB_NoDataStageControlTransfer_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_h2d_std_dev_05
;
;  DESCRIPTION:   Set Device Address
;
;****************************************************************
; STANDARD DEVICE OUT REQUEST: Set_Device_Address
;****************************************************************
;
; bmRequestType  : (OUT | STANDARD | DEVICE)      = 00h
; bRequest       : SET_ADDRESS                    = 05h    
; wValue         : DEVICE_ADDRESS                 = 00xxh  
; wIndex         : RESERVED                       = 0000h
; wLength        : RESERVED                       = 0000h  
; 
; The SET_DEVICE_ADDRESS request sets the USB device address
; for all future USB accesses. 
;
;****************************************************************
;
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------

IF (USB_CB_SRC_h2d_std_dev_05 & USB_UM_SUPPLIED)
export  USB_CB_h2d_std_dev_05
USB_CB_h2d_std_dev_05:
      
    MOV     [USB_fDataPending], USB_ADDRESS_CHANGE_PENDING       
    MOV     A, REG[USB_EP0DATA+wValueLo]       
    MOV     [USB_TransferBuffer],A       
                                                   
    JMP     USB_NoDataStageControlTransfer_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_h2d_std_dev_09
;
;  DESCRIPTION:   Set Configuration
;
;****************************************************************
; STANDARD DEVICE OUT REQUEST: Set_Device_Configuration
;****************************************************************
;
; bmRequestType  : (OUT | STANDARD | DEVICE)      = 00h
; bRequest       : SET_CONFIGURATION              = 09h    
; wValue         : CONFIGURATION_VALUE            = --xxh  
; wIndex         : RESERVED                       = 0000h
; wLength        : RESERVED                       = 0000h  
; 
; The SET_DEVICE_CONFIGURATION request selects a device 
; configuration to be activated as the current configuration. 
;
;****************************************************************
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------

IF (USB_CB_SRC_h2d_std_dev_09 & USB_UM_SUPPLIED)
export  USB_CB_h2d_std_dev_09
USB_CB_h2d_std_dev_09:
    CALL    USB_GET_DEVICE_TABLE_ENTRY ; Get the selected device
    MOV     [USB_t2],USB_t1            ; Set the GETWORD destination 
    CALL    USB_GETWORD                ; Get the pointer to the CONFIG_LOOKUP table
                                       ; ITempW has the address
    MOV     A, REG[USB_EP0DATA+wValueLo]  ; Get the configuration number
    MOV     [USB_t2],A                 ; Save it 
    MOV     A, [USB_t1]                ; Get the CONFIG_LOOKUP ROM Address MSB
    MOV     X, [USB_t1+1]              ; Get the CONFIG_LOOKUP ROM Address LSB
    ROMX                               ; First entry is the table size (only a byte)
    CMP     A, [USB_t2]                ; Range check
    JC      USB_Not_Supported

; Refactored from the two loops below
    MOV     [USB_Configuration],[USB_t2]  ; Save the config number

    CMP     [USB_t2], 0                ; Unconfigure?
    JZ      .unconfigure

; Flow here to configure the endpoints
    MOV     A, [USB_t1]                ; Get the CONFIG_LOOKUP ROM Address MSB
    MOV     X, [USB_t1+1]              ; Get the CONFIG_LOOKUP ROM Address LSB
    INC     X                          ; Point to the first table entry
    ADC     A, 0                       ;
    MOV    [USB_t2], USB_t1            ; Set up the destination  
    CALL    USB_GETWORD                ; Get the pointer to the CONFIG_LOOKUP table
                                       ; ITempW has the address
    MOV     X, 0                       ; Start the index at 0, but we INC first
.configure_next:
    INC     X                          ; Do the next one
    PUSH    X                          ; Save the endpoint number
    MOV     A, [USB_t1]                ; Get the CONFIG_LOOKUP ROM Address MSB
    MOV     X, [USB_t1+1]              ; Get the CONFIG_LOOKUP ROM Address LSB
    ROMX
    INC     [USB_t1+1]                 ; Point to the next 
    ADC     [USB_t1], 0                ;
    POP     X
    CALL    ConfigureEP                ; X contains the EP number
                                       ; A contains the EP Direction
    MOV     A, X                       ; 
    CMP     A, USB_MAX_EP_NUMBER       ; Configure each of the endpoints
    JNZ     .configure_next            ; Do another one?
; Flow here when we are done
    JMP     .done

; Jump here to unconfigure the endpoints
.unconfigure:
    MOV     X, USB_MAX_EP_NUMBER       ; Configure each of the endpoints
.unconfigure_next:
    MOV     [X+USB_EndpointAPIStatus], NO_EVENT_ALLOWED ; For the API
    MOV     REG[X+EP0MODE], USB_MODE_DISABLE ; Disable the endpoint
    DEC     X                          ; One more down
    JNZ     .unconfigure_next          ; Don't unconfigure EP0
.done:
    JMP     USB_NoDataStageControlTransfer_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_d2h_std_ifc_00
;
;  DESCRIPTION:   Get Interface Status
;
;****************************************************************
; STANDARD INTERFACE IN REQUEST: Get_Interface_Status
;****************************************************************
;
; bmRequestType  : (IN | STANDARD | INTERFACE)    = 81h    
; bRequest       : GET_STATUS                     = 00h    
; wValue         : RESERVED                       = 0000h  
; wIndex         : INTERFACE                      = --xxh
; wLength        : SIZEOF_INTERFACE_STATUS        = 0002h  
; 
; The GET_INTERFACE_STATUS request returns status for the 
; specified interface.
;
;****************************************************************
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------
IF (USB_CB_SRC_d2h_std_ifc_00 & USB_UM_SUPPLIED)
.LITERAL
GetInterfaceStatusTransferDescrTable:
    TD_START_TABLE  1                  ; One entry
    TD_ENTRY        USB_DS_RAM, 2, USB_TransferBuffer, NULL_PTR  ; Reuse the transfer buffer
.ENDLITERAL
export  USB_CB_d2h_std_ifc_00
USB_CB_d2h_std_ifc_00:

    MOV     [USB_TransferBuffer], 0    ; Zero the transfer buffer
    MOV     [USB_TransferBuffer+1], 0  ; 

    MOV     [USB_t2], 0                ; Use the UM temp var--Selector
    MOV     A,>GetInterfaceStatusTransferDescrTable  ; Get the ROM Address MSB
    MOV     X,<GetInterfaceStatusTransferDescrTable  ; Get the ROM Address LSB

    JMP     USB_GetTableEntry_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_d2h_std_ifc_10
;
;  DESCRIPTION:   Get Interface
;
;****************************************************************
; STANDARD INTERFACE IN REQUEST: Get_Interface
;****************************************************************
;
; bmRequestType  : (IN | STANDARD | INTERFACE)    = 81h
; bRequest       : GET_INTERFACE                  = 0Ah    
; wValue         : RESERVED                       = 0000h  
; wIndex         : INTERFACE                      = xxxxh
; wLength        : SIZEOF_GET_INTERFACE           = 0001h  
; 
; The GET_INTERFACE request returns the selected alternate 
; setting for the specified interface. 
;
;****************************************************************
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;
;  RETURNS:
;
;  SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
;
;  THEORY of OPERATION or PROCEDURE:
;
;-----------------------------------------------------------------------------

IF (USB_CB_SRC_d2h_std_ifc_10 & USB_UM_SUPPLIED)
.LITERAL
GetInterfaceTransferDescrTable:
    TD_START_TABLE  1                  ; One entry
    TD_ENTRY        USB_DS_RAM, 1, USB_TransferBuffer, NULL_PTR  ; Reuse the transfer buffer
.ENDLITERAL
export  USB_CB_d2h_std_ifc_10
USB_CB_d2h_std_ifc_10:
    MOV     A, REG[USB_EP0DATA+wIndexLo]  ; Get the interface number
    CMP     A, 1h                      ; Valid interface number? (UM Parameter: NumInterfaces)
    JNC     USB_Not_Supported

    MOV     X, A                       ; The interface number is the index into alternates settings table

    MOV     A, [X + USB_InterfaceSetting]  ; Save the current interface setting
    MOV     [USB_TransferBuffer], A    ; into the transfer buffer

    MOV     [USB_t2], 0                ; Use the UM temp var--Selector
    MOV     A,>GetInterfaceTransferDescrTable  ; Get the ROM Address MSB
    MOV     X,<GetInterfaceTransferDescrTable  ; Get the ROM Address LSB

    JMP     USB_GetTableEntry_Local_Std
ENDIF
;-----------------------------------------------------------------------------
;  FUNCTION NAME: USB_CB_d2h_std_ep_00
;
;  DESCRIPTION:   Get Endpoint Status
;
;****************************************************************
; STANDARD ENDPOINT IN REQUEST: Get_Endpoint_Status
;****************************************************************
;
; bmRequestType  : (IN | STANDARD | ENDPOINT)     = 82h    
; bRequest       : GET_STATUS                     = 00h    
; wValue         : RESERVED                       = 0000h  
; wIndex         : ENDPOINT                       = 00xxh

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
风间由美一区二区av101| 日韩一区中文字幕| 91丨九色丨蝌蚪丨老版| 亚洲第一主播视频| 国产精品不卡在线| 日韩一区二区三区视频| 91在线看国产| 国产高清不卡二三区| 视频精品一区二区| 国产午夜亚洲精品不卡| 日韩一区二区麻豆国产| 91污在线观看| 精彩视频一区二区三区| 亚洲高清免费在线| 亚洲一区二区三区美女| 国产精品乱码一区二三区小蝌蚪| 日韩一级成人av| 欧美一区二区三区免费大片| 欧美激情一区二区三区不卡 | 日韩免费在线观看| 欧美婷婷六月丁香综合色| 白白色 亚洲乱淫| 国产在线看一区| 九九视频精品免费| 国产精品一区二区三区网站| 久久99蜜桃精品| 国产成人精品一区二| 国产精品456| 粉嫩aⅴ一区二区三区四区五区| 蜜臀av一区二区| 国产91露脸合集magnet | 欧美精品一区二区高清在线观看 | 色素色在线综合| 欧美精品乱码久久久久久| 欧美日韩国产精品成人| 欧美日韩一区二区欧美激情| 欧美视频第二页| 久久综合色一综合色88| **网站欧美大片在线观看| 亚洲一区在线观看视频| 久久不见久久见免费视频1| 懂色中文一区二区在线播放| 99精品热视频| 日韩欧美一二区| 亚洲欧洲日韩一区二区三区| 午夜精品免费在线观看| 激情综合色综合久久综合| 国产一区二区在线影院| 91丨九色丨黑人外教| 精品少妇一区二区三区在线播放| 欧美国产禁国产网站cc| 三级影片在线观看欧美日韩一区二区| 国产一区二区在线影院| 欧美日韩日日夜夜| 国产精品久久久久久久浪潮网站 | 99久久99久久精品免费看蜜桃| 欧美日韩精品三区| 亚洲欧美日韩国产一区二区三区| 麻豆精品在线看| 欧美日韩成人在线| 亚洲美女在线一区| 不卡一区中文字幕| 精品国产乱码久久久久久久久| 亚洲欧美日韩电影| 中文字幕一区二区三区四区| 亚洲一二三四区| 91免费看`日韩一区二区| 国产女人aaa级久久久级| 国产一区二区免费视频| 欧美成人福利视频| 日产欧产美韩系列久久99| 欧美性猛交xxxx黑人交| 亚洲欧美色一区| 色婷婷国产精品| 亚洲卡通欧美制服中文| 99re这里只有精品视频首页| 一区免费观看视频| av福利精品导航| 亚洲一线二线三线视频| 欧美日韩一区视频| 免费在线观看不卡| 国产三级一区二区三区| 国产成人午夜99999| 久久综合五月天婷婷伊人| 国产一本一道久久香蕉| 51精品国自产在线| 国产精品 欧美精品| 日韩理论片一区二区| 欧美在线高清视频| 奇米在线7777在线精品| 欧美激情一区三区| 99re热这里只有精品免费视频| 亚洲成在线观看| 久久精品一区二区三区不卡| 成人免费视频一区| 日韩电影免费在线| 国产精品乱人伦一区二区| 51午夜精品国产| 91色porny| 国产一区二区福利| 日韩av中文在线观看| 欧美高清在线视频| 欧美一级生活片| 在线观看亚洲成人| 国产91精品在线观看| 免费观看成人av| 一区二区三区不卡视频在线观看 | 亚洲私人影院在线观看| 日韩美女主播在线视频一区二区三区| 成人国产精品免费观看动漫| 全部av―极品视觉盛宴亚洲| 亚洲老司机在线| 中文字幕日韩av资源站| 久久久国产精华| 91视频观看免费| 欧美日韩国产综合视频在线观看| 亚洲欧美国产高清| 精品av久久707| 欧美成人欧美edvon| 欧美浪妇xxxx高跟鞋交| 欧美乱熟臀69xxxxxx| 欧洲国产伦久久久久久久| 色老汉一区二区三区| 欧美性感一类影片在线播放| 一本一道综合狠狠老| 91丨九色porny丨蝌蚪| av在线播放成人| 成人精品免费看| 欧美一a一片一级一片| 欧美精品1区2区3区| 精品美女在线播放| 国产精品视频第一区| 伊人性伊人情综合网| 日韩精品欧美成人高清一区二区| 久久激情五月激情| 波多野结衣亚洲一区| 欧美猛男超大videosgay| 欧美一级免费观看| 国产精品福利电影一区二区三区四区| 一区二区三区日韩| 久久99国产精品久久| 色综合久久久久综合体| 欧美人牲a欧美精品| 国产亚洲精品久| 天天综合天天做天天综合| 久久99国产精品麻豆| 亚洲18影院在线观看| 蜜臀av性久久久久av蜜臀妖精 | 亚洲欧美激情一区二区| 国产精品久久免费看| 国产精品久线在线观看| 1000精品久久久久久久久| 亚洲免费三区一区二区| 一区二区久久久久| 亚洲中国最大av网站| 日韩制服丝袜av| 韩国女主播成人在线| 国产一区二区三区在线看麻豆| 日本不卡一二三区黄网| 久久精品国产在热久久| 国产成人在线网站| 色综合久久综合| 日韩一级黄色片| 国产日韩av一区| 日韩精品视频网站| 久久久久九九视频| 亚洲欧美一区二区视频| 亚洲国产综合人成综合网站| 日韩黄色片在线观看| 国产综合色精品一区二区三区| 国产成a人亚洲精品| 欧美日韩精品系列| 日韩一区欧美一区| 蜜桃视频一区二区三区在线观看| 成人avav影音| 久久国产精品99久久人人澡| 国产成人小视频| 日韩女优av电影| 亚洲成av人片观看| 粉嫩aⅴ一区二区三区四区五区| 在线视频亚洲一区| 国产精品国产精品国产专区不片| 国产日韩欧美精品综合| 国产美女精品在线| 日韩欧美在线观看一区二区三区| 亚洲女人小视频在线观看| 高清免费成人av| 久久日韩粉嫩一区二区三区| 亚洲欧洲中文日韩久久av乱码| 国产精品自产自拍| 欧美亚洲国产一区二区三区va | 奇米精品一区二区三区在线观看| 91网站在线播放| 欧美电视剧免费观看| 夜夜操天天操亚洲| 色婷婷久久一区二区三区麻豆| 豆国产96在线|亚洲| 欧美成人激情免费网| 狠狠色综合日日| 久久久久久免费网|