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

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

?? counter.asm

?? 驅(qū)動程序開發(fā)基礎(chǔ)教程
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
  USBEventEP0SetupTargetEndpointOUT:
    cmp  a,USBRqstTargetEndPoint
    jz   USBEventEP0Stall               ; Yes

  USBEventEP0SetupTargetDeviceIN:
    cmp  a,USBRqstTargetDevice | USBRqstTypeDirection
    jz   USBEventEP0SetupGetDescriptor  ; Yes

  USBEventEP0SetupTargetInterfaceIN:
    cmp  a,USBRqstTargetInterface | USBRqstTypeDirection
    jz   USBEventEP0Stall               ; Yes Oops! We don't have an interface.

  USBEventEP0SetupTargetEndpointIN:
    cmp  a,USBRqstTargetEndPoint | USBRqstTypeDirection
    jz   USBEventEP0Stall               ; Yes

    ; Vendor specific commands
  USBEventEP0SetupTargetVendorIN_OUT:
    ; Check request (IN packet OK, OUT packet ERR)
    mov  a,[USBEndP0FIFO_0]
    and  a,USBRqstTypeVendor | USBRqstTargetEndPoint | USBRqstTypeDirection
    cmp  a,USBRqstTypeVendor | USBRqstTargetEndPoint | USBRqstTypeDirection
    jz   USBEventEP0VendorRqst

    ; Unsupported request !!!
    jmp  USBEventEP0Stall               ; Oops! We don't support whatever
                                        ;   request was made.

;//$PAGE
;********************************************************
; USBEventEP0SetupIsSet()
; @func End point event SETUP to set address.
; @devnote Runs in interrupt enabled context.
;********************************************************
USBEventEP0SetupIsSetAddress:

    ; Set device address?
    mov  a,[USBRqstMessage]
    cmp  a,USBRqstSetAddress
    jz   USBEventEP0SetupSetAddress         ; Yes

    ; Set device configuration?
    mov  a,[USBRqstMessage]
    cmp  a,USBRqstSetConfiguration
    jz   USBEventEP0SetupSetConfig          ; Yes

    ; Unsupported set request !!!
    jmp  USBEventEP0Stall                   ; No. Stall

;********************************************************
; USBEventEP0SetupSetAddress()
; @func End point zero event SETUP to set address.
; @devnote Runs in interrupt enabled context.
; @comm
; The status token of the SetAddress is an IN. So, we send status manually.
;********************************************************
USBEventEP0SetupSetAddress:

    ; Send ACK
    call USBSendACK
    ; Now that we have been acknowleged, we actually set the address.
    ; This is different from all other commands which execute first
    ;   and then acknowlege (_________________)

    ; Set Address
    mov  a,[USBRqstWordValueLo]
    iowr USBDeviceAddress

    ; Done
    jmp  USBEventEP0End

;********************************************************
; USBEventEP0SetupSetConfig()
; @func End point zero event SETUP to Set Configuration.
; @devnote Runs in interrupt enabled context.
; 1
;  set enumerated (gbSysEnumerated) state, 
;  enable GPIO (and EP1, if appropriate)
;  Enable P0 and P1
; 0
;  Reset enumerated (gbSysEnumerated) state, 
;  Turn off LED
;  Reset variables
;  Disable GPIO and EP1
;  Disable dallas chip and P0 and P1
;********************************************************
USBEventEP0SetupSetConfig:

    ; Enumerated !
    ; Write a 0 to the LED on P13 to turn it on
    mov a,~(LED_ON)
    iowr SysPort1

    mov  a,10h
    iowr USBEndP1TxConfig;NAK

    ; enable all appropriate irq's
    mov  a,SysIntTimer1024us | SysIntGPIO | SysIntUSBEndP0 | SysIntUSBEndP1
    mov  [gbSysInterruptMask],a

    ; Send ACK
    call USBSendACK
    jmp  USBEventEP0End

;//$PAGE
;********************************************************
; USBEventEP0SetupGetDescriptor()
; @func End point zero event SETUP to Get Descriptor.
; @devnote Runs in interrupt enabled context.
;********************************************************
USBEventEP0SetupGetDescriptor:

    ; Get descriptor type
    mov  a,[USBRqstWordValueHi]

  USBEventEP0SetupGetDescriptorDevice:
    ; Device Descriptor?
    cmp  a,USBDescriptorTypeDevice
    jnz  USBEventEP0SetupGetDescriptorConfig    ; No

    ;*********************************************
    ; Get Device Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBDeviceDescription -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,12h                  ;[USBDeviceDescription]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorConfig:
    ; Configuration Descriptor?
    cmp  a,USBDescriptorTypeConfig
    jnz  USBEventEP0SetupGetDescriptorString    ; No

    ;*********************************************
    ; Get Configuration Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBConfigurationDescription -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,09h                  ;[USBConfigurationDescription]
    add  a,09h                  ;[USBInterfaceDescription]
    add  a,07h                  ;[USBEndPointDescriptionInt]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString:
    ; Get String Descriptor?
    cmp  a,USBDescriptorTypeString
    jnz  USBEventEP0SetupGetDescriptorEnd       ; No

    ;*********************************************
    ; Get String Descriptor Event
    ;*********************************************

    ; Get string descriptor index
    mov  a,[USBRqstWordValueLo]

  USBEventEP0SetupGetDescriptorString0:
    cmp  a,0h
    jnz  USBEventEP0SetupGetDescriptorString1   ; No

    ;*********************************************
    ; Get String Language(s) Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringLanguageDescription -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,4h                   ;[USBStringLanguageDescription]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString1:
    cmp  a,1
    jnz  USBEventEP0SetupGetDescriptorString2   ; No

    ;*********************************************
    ; Get String 1 Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringDescription1 -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,10h                  ;[USBStringDescription1]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString2:
    cmp  a,2
    jnz  USBEventEP0SetupGetDescriptorString3   ; No

    ;*********************************************
    ; Get String 2 Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringDescription2 -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,10h                  ;[USBStringDescription2]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString3:
    cmp  a,3
    jnz  USBEventEP0SetupGetDescriptorString4   ; No

    ;*********************************************
    ; Get String 3 Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringDescription3 -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,0Ah                  ;[USBStringDescription3]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString4:
    cmp  a,4
    jnz  USBEventEP0SetupGetDescriptorString5   ; No

    ;*********************************************
    ; Get String 4 Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringDescription4 -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,28h                  ;[USBStringDescription4]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorString5:
    cmp  a,5
    jnz  USBEventEP0SetupGetDescriptorEnd       ; No

    ;*********************************************
    ; Get String 5 Descriptor Event
    ;*********************************************
    ; Descriptor pointer
    mov  a,(USBStringDescription5 -USBSendROMBufferBase)
    mov  [gbUSBSendBuffer],a

    ; Descriptor size
    mov  a,3Eh                  ;[USBStringDescription5]
    mov  [gbUSBSendBytes],a

    ; Check request size field
    call USBSendDescriptorCheckLength

    ; Send buffer
    call USBSendROMBuffer
    jmp  USBEventEP0End

  USBEventEP0SetupGetDescriptorEnd:
    ; Unsupported Get request !!!
    jmp  USBEventEP0Stall

;//$PAGE
;********************************************************
; USBSendDescriptorCheckLength()
; @func Check and update send length for Get Descriptor
;       requests on end point 0.
; @parm BYTE | gbUSBSendBytes | Number of bytes to send.
;********************************************************
USBSendDescriptorCheckLength:

    ; High byte set? (Assume <255 bytes)
    mov  a,[USBEndP0FIFO_7]
    cmp  a,0
    jnz  USBSendDescriptorCheckLengthEnd    ; Yes

    ; Check size
    mov  a,[USBEndP0FIFO_6]
    cmp  a,[gbUSBSendBytes]
    jz   USBSendDescriptorCheckLengthEnd    ; equal
    jnc  USBSendDescriptorCheckLengthEnd    ; greater than

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩一区二区三区| 成人免费视频网站在线观看| 欧美性感一区二区三区| 亚洲欧美国产三级| 欧美人伦禁忌dvd放荡欲情| 日韩精品1区2区3区| 欧美videos中文字幕| 激情欧美一区二区| 国产精品女上位| 91精品91久久久中77777| 亚洲成人你懂的| 欧美电影免费观看高清完整版在| 久久精品国产99| 亚洲国产精品av| 欧美羞羞免费网站| 美脚の诱脚舐め脚责91| 日本一区二区动态图| 色老汉一区二区三区| 亚洲电影在线免费观看| 精品久久人人做人人爽| 成人激情动漫在线观看| 亚洲国产精品人人做人人爽| 日韩精品一区二区三区中文精品| 粉嫩嫩av羞羞动漫久久久| 一区二区免费视频| 日韩欧美国产午夜精品| 不卡电影免费在线播放一区| 舔着乳尖日韩一区| 日本一区二区视频在线| 91超碰这里只有精品国产| 国产精品一级片| 亚洲成人免费看| 中文无字幕一区二区三区| 欧美日韩亚洲综合在线 | 欧美三级视频在线观看| 久国产精品韩国三级视频| 亚洲色图视频免费播放| 欧美一级午夜免费电影| 不卡视频在线观看| 精品无人区卡一卡二卡三乱码免费卡| 亚洲日本韩国一区| 26uuu精品一区二区| 91国产丝袜在线播放| 国产精品99久久久久久久女警| 亚洲第一成人在线| 国产精品久久久久久久久动漫| 欧美一级理论性理论a| 91久色porny | 一区二区三区在线高清| 2024国产精品视频| 欧美日韩精品一区二区三区四区| 成人免费毛片嘿嘿连载视频| 老司机免费视频一区二区| 亚洲另类春色校园小说| 欧美国产国产综合| 精品国产91乱码一区二区三区| 精品视频一区二区不卡| 91亚洲精品久久久蜜桃| 粉嫩蜜臀av国产精品网站| 精品一区二区在线播放| 日韩av高清在线观看| 亚洲午夜激情网站| 亚洲美女精品一区| 亚洲欧美日韩综合aⅴ视频| 日本一区二区三区四区在线视频 | 青娱乐精品视频在线| 一区二区三区色| 一区二区三区中文字幕电影 | 日韩精品一区二区三区三区免费| 欧美色爱综合网| 欧美日韩精品免费观看视频| 91久久线看在观草草青青 | 国精品**一区二区三区在线蜜桃| 日本不卡一区二区| 日韩成人一级大片| 麻豆精品一区二区| 久久精品国产成人一区二区三区 | 91精品国产综合久久久久久久 | 久久久国产综合精品女国产盗摄| 日韩一区二区在线看片| 69久久99精品久久久久婷婷 | 国产精品免费人成网站| 国产日韩欧美精品电影三级在线| 国产日韩欧美激情| 国产精品国产成人国产三级| 中文字幕在线不卡视频| 亚洲欧美一区二区三区孕妇| 亚洲色图一区二区| 午夜精品在线视频一区| 六月丁香婷婷色狠狠久久| 久久99精品久久久久久久久久久久| 日本伊人色综合网| 国产精品一区免费在线观看| 成人一道本在线| 在线视频欧美精品| 欧美男女性生活在线直播观看| 欧美一区二区三区婷婷月色| 精品国产乱子伦一区| 欧美国产日产图区| 一个色妞综合视频在线观看| 日韩高清不卡在线| 国产精品一区二区果冻传媒| 99re这里只有精品首页| 欧美日韩一级大片网址| 精品少妇一区二区三区视频免付费| 久久久一区二区| 一区二区三区中文在线观看| 日韩国产在线观看一区| 国产一二三精品| 欧美综合视频在线观看| 日韩精品专区在线| 亚洲欧洲成人精品av97| 视频一区国产视频| 国产成人午夜片在线观看高清观看| 色综合中文字幕国产| 国产午夜精品在线观看| 中文字幕中文字幕在线一区| 丝袜美腿亚洲色图| 国产成人午夜高潮毛片| 欧美性三三影院| 久久综合久久鬼色中文字| 中文字幕一区二区三区av| 免费在线观看成人| 99精品视频在线播放观看| 91麻豆精品国产91久久久使用方法| 久久精品无码一区二区三区| 亚洲一区二区视频| 国产成人小视频| 欧美一区午夜精品| 亚洲欧美国产三级| 国产精品亚洲午夜一区二区三区| 欧洲一区二区三区免费视频| 国产午夜一区二区三区| 奇米影视7777精品一区二区| 一本大道久久a久久精二百| 久久综合国产精品| 爽好久久久欧美精品| 99国产精品99久久久久久| www久久精品| 日韩黄色小视频| 在线视频中文字幕一区二区| 国产精品美女久久久久久| 久国产精品韩国三级视频| 欧美人与z0zoxxxx视频| 一区二区三区在线观看动漫| 福利电影一区二区| 亚洲精品在线三区| 蜜桃久久久久久| 欧美麻豆精品久久久久久| 一区二区三区四区不卡在线 | 波多野结衣欧美| 久久综合色鬼综合色| 日韩电影免费在线| 欧美日韩五月天| 亚洲色图另类专区| 91香蕉国产在线观看软件| 国产视频一区二区三区在线观看| 免费看日韩a级影片| 91精品国产综合久久蜜臀| 亚洲国产综合色| 在线观看一区二区视频| 亚洲色图.com| 日本国产一区二区| 亚洲精品高清视频在线观看| 99re亚洲国产精品| 中文字幕在线一区二区三区| 99热99精品| 亚洲欧美日韩中文播放| 色综合久久中文字幕| 亚洲欧美日韩系列| 在线欧美小视频| 亚洲国产精品久久久男人的天堂 | 欧美日韩国产色站一区二区三区| 亚洲欧美偷拍三级| 91精品福利视频| 亚洲第一福利视频在线| 欧美军同video69gay| 色综合色综合色综合| 亚洲二区在线观看| 国产精品久久久久影院色老大 | 国产福利一区二区| 久久久久国产精品麻豆| 成人免费三级在线| 亚洲人吸女人奶水| 91福利资源站| 日本一道高清亚洲日美韩| 欧美大度的电影原声| 国产一区二区在线电影| 国产日产欧美一区二区视频| www.亚洲在线| 亚洲第一福利视频在线| 日韩欧美激情四射| 岛国精品在线观看| 亚洲欧美日韩国产手机在线 | 69久久99精品久久久久婷婷| 蜜乳av一区二区三区| 国产视频一区在线播放| 色又黄又爽网站www久久| 性久久久久久久| 久久精品一区二区三区不卡|