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

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

?? 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜三级一区二区三| 99热精品国产| 欧美一区二区三区在线观看 | 欧美不卡123| 日本亚洲最大的色成网站www| 欧美日韩一卡二卡| 一区二区三区在线观看视频| 97久久精品人人做人人爽50路| 国产精品国产自产拍高清av| 成人午夜碰碰视频| 国产精品国产成人国产三级 | 午夜久久久久久久久久一区二区| 色婷婷av一区二区| 亚洲一区二区偷拍精品| 欧美日韩综合一区| 视频一区二区三区入口| 7777精品伊人久久久大香线蕉超级流畅 | 日本一区二区三区在线观看| 国产成人自拍高清视频在线免费播放| 精品免费视频.| 麻豆精品在线播放| 久久嫩草精品久久久精品一| 大尺度一区二区| 一区在线观看视频| 欧美日韩高清一区二区不卡| 日本不卡一区二区三区 | 精品少妇一区二区三区视频免付费| 久久99热狠狠色一区二区| 久久久亚洲精品一区二区三区 | 亚洲麻豆国产自偷在线| 色先锋aa成人| 麻豆精品新av中文字幕| 欧美videos大乳护士334| 国产成人精品www牛牛影视| 亚洲欧美日韩综合aⅴ视频| 欧美日精品一区视频| 天堂精品中文字幕在线| 精品免费日韩av| 91视频在线看| 久久国产尿小便嘘嘘尿| 精品99一区二区| 日本国产一区二区| 毛片不卡一区二区| 亚洲天堂2014| 日韩三级中文字幕| 色婷婷亚洲婷婷| 激情欧美一区二区三区在线观看| 中文字幕日本不卡| 91麻豆精品国产自产在线观看一区| 国产在线精品一区二区不卡了| 亚洲狼人国产精品| 久久综合av免费| 色94色欧美sute亚洲线路二| 国产精品伊人色| 日日摸夜夜添夜夜添精品视频| 国产视频一区二区在线观看| 91毛片在线观看| 国产精品99精品久久免费| 天天综合日日夜夜精品| 中文字幕中文字幕一区二区| 精品乱人伦小说| 在线观看一区二区视频| 成人黄页毛片网站| 一区二区三区日韩精品视频| 久久婷婷久久一区二区三区| 7777精品久久久大香线蕉| 韩国视频一区二区| 婷婷中文字幕一区三区| 综合网在线视频| 国产精品女主播av| 国产精品视频看| 国产精品乱人伦| 中文字幕日韩一区| 亚洲欧美电影院| 亚洲网友自拍偷拍| 亚洲高清中文字幕| 日韩vs国产vs欧美| 老司机精品视频线观看86| 久久99国产精品久久99果冻传媒| 久久精品72免费观看| 国产一区二区在线电影| 国产一区999| 成人免费精品视频| 91首页免费视频| 欧美精选午夜久久久乱码6080| 91精品国产乱| 久久久久久一级片| 欧美激情中文字幕一区二区| 国产精品传媒在线| 夜夜嗨av一区二区三区中文字幕| 亚洲一区二区av电影| 日本成人在线看| 国产乱妇无码大片在线观看| 成人av在线一区二区| 欧美影院午夜播放| 欧美成人精品3d动漫h| 国产欧美一区二区精品忘忧草| 中文字幕欧美区| 亚洲成人精品影院| 精品无人码麻豆乱码1区2区 | 国产高清亚洲一区| 99精品欧美一区二区三区小说 | jizzjizzjizz欧美| 国产亚洲精品超碰| 国产精品久久99| 日韩电影在线免费| 国产成人精品免费在线| 欧洲激情一区二区| 久久亚洲一级片| 亚洲精品午夜久久久| 激情深爱一区二区| 在线看国产一区二区| 精品成a人在线观看| 亚洲少妇中出一区| 麻豆视频观看网址久久| 91在线视频官网| 精品美女被调教视频大全网站| 最新日韩在线视频| 男女性色大片免费观看一区二区| 成人性生交大片免费| 欧美电影在哪看比较好| 国产精品麻豆99久久久久久| 免费高清在线一区| 色综合久久天天| 久久久久免费观看| 日本三级亚洲精品| 91久久精品一区二区| 久久久综合九色合综国产精品| 亚洲午夜影视影院在线观看| 成人免费看视频| 精品国产凹凸成av人导航| 午夜天堂影视香蕉久久| 北条麻妃一区二区三区| 日韩视频免费直播| 三级欧美在线一区| 色综合亚洲欧洲| 欧美国产日本韩| 久久av老司机精品网站导航| 欧美日韩日日摸| 一区二区三区四区在线免费观看| 久久se精品一区精品二区| 欧美日韩色综合| 亚洲精品乱码久久久久| 丁香啪啪综合成人亚洲小说| 精品少妇一区二区三区视频免付费| 亚洲一区二三区| 91亚洲精华国产精华精华液| 久久久国产精品不卡| 激情六月婷婷久久| 日韩久久久久久| 日本不卡视频在线观看| 欧美日韩国产123区| 亚洲成a人片在线观看中文| 91麻豆国产福利在线观看| 国产精品不卡在线观看| 97久久人人超碰| 国产精品剧情在线亚洲| 成人动漫一区二区三区| 国产精品护士白丝一区av| 成人丝袜视频网| 国产精品青草综合久久久久99| 国产+成+人+亚洲欧洲自线| www久久精品| 国产成人亚洲综合a∨婷婷图片| 精品国产乱码久久久久久老虎| 理论片日本一区| 久久综合色鬼综合色| 国产精品一区在线| 国产清纯在线一区二区www| 国产美女在线观看一区| 国产亚洲欧美日韩俺去了| 精品一区二区综合| 精品国产污网站| 国产经典欧美精品| 国产精品久久久久影视| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲日本在线视频观看| 在线观看亚洲一区| 日韩精品一卡二卡三卡四卡无卡| 欧美一区二区视频免费观看| 狠狠色伊人亚洲综合成人| 国产调教视频一区| 99精品久久免费看蜜臀剧情介绍| 一区二区三区精品久久久| 91.com在线观看| 国产乱色国产精品免费视频| 国产精品人成在线观看免费| 91福利在线观看| 麻豆成人久久精品二区三区小说| 欧美成人女星排行榜| 成人激情免费视频| 亚洲国产精品嫩草影院| 精品少妇一区二区| 不卡影院免费观看| 偷拍与自拍一区| 久久精品一区四区| 日本道精品一区二区三区 | 精品国产123| av激情综合网| 日韩—二三区免费观看av|