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

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

?? counter.asm

?? 驅(qū)動(dòng)程序開發(fā)基礎(chǔ)教程
?? ASM
?? 第 1 頁 / 共 3 頁
字號(hào):
    ; New size
    mov  [gbUSBSendBytes],a

  USBSendDescriptorCheckLengthEnd:
    ret

;//$PAGE
;********************************************************
; USBSendROMBuffer()
; @func Send a number of ROM bytes on end point 0.
; @parm BYTE | gbUSBSendBytes | Number of bytes to send.
; @parm BYTE | gbUSBSendBuffer | Offset from ROM base
;       of data to send.
; @comm assumes IN packets are ignored in the interrupt routine
; @devnote Enables interrupts
;********************************************************
USBSendROMBuffer:

    ; Clear flag
    mov  a,0h
    iowr USBEndP0RxStatus

    ; Enable interrupts
    mov  a,[gbSysInterruptMask]
    and  a,~SysIntUSBEndP0
    iowr SysInterrupt

    ; Auto ACK OUT packet (This would be a Status Out)
    mov  a,USBControlAckStatusData
    iowr USBControl

    ; Initialize sequence
    mov  a,0h
    mov  [gbUSBSendSequence],a

    ; Send count
    mov  a,[gbUSBSendBytes]

USendROMBufferLoop:
    ; One 8-byte chunk or less left?
    cmp  a,08h
    jz   USendROMBufferLoopDone     ; exactly 8 bytes left, branch
    jc   USendROMBufferLoopDone     ; less than 8 bytes left, branch

    ; more than 8 bytes left, fall through and loop 
    ;    until there are 8 bytes or less.
    ; Save count
    push a

    ; Send 8 byte chunk
    mov  a,08h
    mov  [gbUSBSendBytes],a
    call _USBSendROMBuffer

    ; Check for OUT packet cancelling send
    iord USBEndP0RxStatus
    and  a,USBEndP0RxOut

    ; Restore count
    pop  a

    ; Handle exception: OUT packet cancel send
    jnz  USendROMBufferLoopExit     ; Cancelled

    ; Save bytes left
    sub  a,08h
    mov  [gbUSBSendBytes],a
    jmp  USendROMBufferLoop

  USendROMBufferLoopDone:
    ; Send last 8 or less bytes
    call _USBSendROMBuffer

USendROMBufferLoopExit:
    ret

;//$PAGE
;********************************************************
; _USBSendROMBuffer()
; @func Buffer and inialize USB send of up
;               to 8 bytes of ROM data on end point 0.
; @comm affects gbUSBSendBytes & gbUSBSendBuffer
;********************************************************
_USBSendROMBuffer:

    ; Save x
    push x

    ; Initialize
    mov  x,0h

  _USendROMBufferLoop:
    ; Any more?
    mov  a,0h
    cmp  a,[gbUSBSendBytes]
    jz  _USendROMBufferLoopDone         ; No more
    dec  [gbUSBSendBytes]

    ; Move bytes to FIFO
    mov  a,[gbUSBSendBuffer]
    index USBSendROMBufferBase
    mov  [x +USBEndP0FIFO],a
    inc  x

    ; Next byte
    inc  [gbUSBSendBuffer]
    jmp _USendROMBufferLoop

  _USendROMBufferLoopDone:
    ; Re-enable reception
    mov  a,0h
    iowr USBEndP0RxStatus

    ; Toggle sequence
    mov  a,USBEndP0TxSequence
    xor  [gbUSBSendSequence],a

    ; Send bytes
    push x
    pop  a
    or   a,[gbUSBSendSequence]
    or   a,USBEndP0TxRespond
    iowr USBEndP0TxConfig

    ; The FIFO is loaded, go and wait untill it's read
    call USBSendWaitForComplete

  _USendROMBufferEnd:
    ; Restore and exit
    pop  x
    ret

;//$PAGE
;********************************************************
; USBSendACK()
; func Respond to a "USB Status In" with a zero byte buffer with 
;   Sequence field set) on end point 0.
; Called by SetAddress and SetConfig commands
;********************************************************
USBSendACK:

    ; Status response to Status In is to send a zero byte packet
    mov  a,USBEndP0TxRespond | USBEndP0TxSequence
    iowr USBEndP0TxConfig

    ; Enable interrupts
    mov  a,[gbSysInterruptMask]
    iowr SysInterrupt

    ; Wait for send complete
    jmp  USBSendWaitForComplete

;********************************************************
; USBSendWaitForComplete()
; @func Wait for send to complete on end point 0.
;********************************************************

; At some point, either the 0 data will be ACK'd or a SETUP
;    will come in. 
; Either event will cause the "Enable Respond
;    to In Packets" to be reset, and we will fall out of the loop.
; In either case, an EP0 IRQ will be generated (5.9.2.2 in Cyp
;    device spec) if EP0 irq is enabled.

USBSendWaitForComplete:

    ; Poll the send complete bit
    ; This will be reset when the data has been sent to the host
    ;   and the host has ACK's, or the host has sent another SETUP
    ;   which should terminate this activity in any case.
    iord USBEndP0TxConfig
    and  a,USBEndP0TxRespond
    jz   USBSendWaitComplete

    ; Check for OUT packet cancelling send. A STATUS OUT should
    ;   terminate any pending IN's. A Setup could also set the Out bit.
    iord USBEndP0RxStatus
    and  a,USBEndP0RxOut
    jnz  USBSendWaitComplete    ; Cancelled

    ; Keep waiting
    jmp  USBSendWaitForComplete

  USBSendWaitComplete:
    ret

;********************************************************
; USBEventEP0VendorRqst()
; @func Vendor request on end point zero.
; @devnote Runs in interrupt disabled context.
;********************************************************
USBEventEP0VendorRqst:

    ; Save it
    push x

    ; Check Protocol
    mov  a,[USBEndP0FIFO_1]
    cmp  a,0h
    jnz  USBEventEP0Stall                   ; No

    ;*********************************************
    ; Reset Counter Event
    ;*********************************************
    ; Initialize Counter
    mov  a,0
    mov  [gbButtonClicks],a     ; Initial state of 0, no button pushed
    mov  [USBEndP1FIFO_0],a

    iord USBEndP1TxConfig
    and  a,40h
    or   a,91h
    iowr USBEndP1TxConfig

    ;USBEventEP0VendorRqstFinish:

    ; Protocol ACK
    mov  a,42h
    mov  [USBEndP0FIFO_0],a

    ; Auto ACK OUT packet
    mov  a,USBControlAckStatusData
    iowr USBControl

    ; Send bytes as Data1
    mov  a,8
    or   a,USBEndP0TxSequence
    or   a,USBEndP0TxRespond
    iowr USBEndP0TxConfig

    ;call USBSendWaitForComplete

    ; Restore it
    pop  x

    ; Return
    jmp  USBEventEP0End

;********************************************************
; Data Segment (ROM)
;********************************************************
USBSendROMBufferBase:
USBDeviceDescription:
    db 12h          ; Length
    db 01h          ; Type (1=device)
    db 10h,01h      ; Complies to USB Spec. v1.10
    db 00h          ; Class code (0=??)
    db 00h          ; SubClass code (0=??)
    db 00h          ; Protocol (0=none)(9.6.1)
    db 08h          ; Max. packet size for port0
    db 34h,12h      ; Vendor ID: (0x1234=WahBook)
    db 78h,56h      ; Product ID (0x01=USB Counter)
    db 00h,01h      ; Device release v1.00
    db 01h          ; Manufacturer string descriptor index (0=none)
    db 02h          ; Product string descriptor index (0=none)
    db 03h          ; Serial number string descriptor index (0=none)
    db 01h          ; Number of possible configurations
USBDeviceDescriptionEnd:

;*************************************************
;
USBConfigurationDescription:
    db 09h          ; Length
    db 02h          ; Type (2=config)
    db 19h,00h      ; Total data length (1 config,1 interface,1 endpoints)
    db 01h          ; Interface supported (1=???)
    db 01h          ; Configuration value (1=???)
    db 04h          ; Confituration string descriptor index (0=none)
    db 80h          ; Configuration (bus powered)
    db 32h          ; Maximum power consumption in 2mA units
USBConfigurationDescriptionEnd:

;*************************************************
;
USBInterfaceDescription:
    db 09h          ; Length
    db 04h          ; Type (4=interface)
    db 00h          ; Number of interfaces (0 based)
    db 00h          ; Alternate settings
    db 01h          ; Number of endpoints (1 based) (9.6.3)
    db 00h          ; Class code (0=non-specified,1=kb,2=mouse,3=joystick ???)
    db 00h          ; Subclass code (0=???)
    db 00h          ; Protocol code (0=non-specified)
    db 05h          ; Interface string index (0=non-specified, 1,2,3,...)
USBInterfaceDescriptionEnd:

;*************************************************
; Never used for EP0
USBEndPointDescriptionInt:
    db 07h          ; Length
    db 05h          ; Type (5=endpoint)
    db 81h          ; Address (EP#=1 | [0x80=IN, 0=OUT])
    db 03h          ; Attribute (0=control,1=isochronous,2=bulk,3=interrupt)
    db 08h,00h      ; Max packet size
    db B8h          ; Interval (200 ms)
USBEndPointDescriptionIntEnd:

;*************************************************
;
USBStringLanguageDescription:
    db 04h          ; Length
    db 03h          ; Type (3=string)
    db 09h          ; Language:  English
    db 01h          ; Sub-language: US

USBStringDescription1:
    db 10h          ; Length
    db 03h          ; Type (3=string)
    dsu "WAHBOOK"

USBStringDescription2:
    db 10h          ; Length
    db 03h          ; Type (3=string)
    dsu "Counter"

USBStringDescription3:
    db 0Ah          ; Length
    db 03h          ; Type (3=string)
    dsu "0001"

USBStringDescription4:
    db 28h          ; Length
    db 03h          ; Type (3=string)
    dsu "Count Button Clicks"

USBStringDescription5:
    db 3Eh          ; Length
    db 03h          ; Type (3=string)
    dsu "EndPoint1 200ms Interrupt Pipe"

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91污片在线观看| 国产老女人精品毛片久久| 国产欧美精品在线观看| 精品奇米国产一区二区三区| 欧美精品乱码久久久久久按摩| 欧美亚洲一区三区| 欧美日韩午夜精品| 欧美精品日韩一区| 日韩一区二区三区精品视频| 日韩欧美一级二级三级| 26uuuu精品一区二区| 亚洲欧美综合色| 亚洲精品国产无天堂网2021| 一二三区精品视频| 欧美aaa在线| 精品一区二区三区视频在线观看| 国产精品综合视频| 91在线免费看| 欧美一区二区在线免费播放| 欧美变态tickle挠乳网站| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美剧情电影在线观看完整版免费励志电影 | 国产喂奶挤奶一区二区三区| 中文字幕在线不卡视频| 亚洲一区二区美女| 久久er99精品| 91天堂素人约啪| 欧美日韩一区二区电影| 亚洲精品一线二线三线无人区| 欧美国产日韩一二三区| 亚洲国产精品尤物yw在线观看| 日本不卡视频一二三区| 国产福利一区二区三区| 在线免费一区三区| 欧美www视频| 亚洲欧美日韩在线不卡| 麻豆成人免费电影| 色婷婷综合久久久中文字幕| 日韩一区二区视频在线观看| 亚洲视频一二三| 国产一区二区三区免费看| 91麻豆精品秘密| 久久久亚洲精品石原莉奈| 亚洲情趣在线观看| 国产一区二区导航在线播放| 欧美亚洲精品一区| 中文字幕一区二区不卡| 久久91精品久久久久久秒播| 欧美三级电影网站| 国产精品麻豆久久久| 精品在线观看免费| 欧美日韩精品系列| 亚洲欧美日韩成人高清在线一区| 国产一区二区调教| 欧美sm美女调教| 日韩av电影免费观看高清完整版在线观看| 成人免费高清在线| 国产网红主播福利一区二区| 美女www一区二区| 91精品国产欧美一区二区成人| 亚洲欧美日本韩国| 色中色一区二区| 国产精品久久久久久亚洲伦| 国产成人高清在线| 久久久午夜精品| 国产精品99久久久久久久女警| 日韩欧美一二三区| 久久av中文字幕片| 日韩欧美一区二区三区在线| 日韩不卡免费视频| 制服丝袜中文字幕亚洲| 日本美女视频一区二区| 欧美日韩国产系列| 男男gaygay亚洲| 欧美精品国产精品| 美女久久久精品| 精品欧美一区二区久久| 国产在线不卡一卡二卡三卡四卡| 日韩欧美国产精品一区| 国产在线国偷精品免费看| 久久精品亚洲乱码伦伦中文| 激情综合色播激情啊| 久久亚洲精品小早川怜子| 国产一区二区主播在线| 国产精品成人一区二区三区夜夜夜 | 日韩和欧美一区二区三区| 欧美狂野另类xxxxoooo| 久久99精品久久久| 欧美激情一区二区三区蜜桃视频| 成人av在线网站| 最新日韩av在线| 欧美日本一道本| 久久99热国产| 国产精品国产三级国产普通话99 | 99久久er热在这里只有精品15| 国产精品视频线看| 色域天天综合网| 美美哒免费高清在线观看视频一区二区| 欧美一卡二卡三卡| 岛国精品一区二区| 亚洲在线视频网站| 亚洲精品一区二区三区在线观看| 国产成人精品综合在线观看| 一区二区三区在线免费| 欧美一级二级三级乱码| 国产91精品露脸国语对白| 亚洲欧美区自拍先锋| 精品88久久久久88久久久| av高清久久久| 美国十次综合导航| 亚洲欧美日韩系列| 久久综合中文字幕| 色综合久久久久久久久久久| 美女视频一区二区| 亚洲黄一区二区三区| 精品国产一区二区三区久久久蜜月| 国产精品自拍网站| 亚洲成人免费观看| 国产精品区一区二区三区| 欧美另类z0zxhd电影| 99麻豆久久久国产精品免费优播| 蜜桃视频在线一区| 亚洲一区自拍偷拍| 国产精品久久久久久久久动漫 | 日韩一区二区三区免费看| 91蝌蚪porny| 国产最新精品精品你懂的| 婷婷国产在线综合| 91精品麻豆日日躁夜夜躁| 91麻豆精品秘密| 久久国产精品第一页| 亚洲综合色在线| 亚洲欧美在线高清| 国产亚洲精品精华液| 91精品午夜视频| 欧美日韩国产经典色站一区二区三区| 成人高清av在线| 成人丝袜高跟foot| 国产一区二区精品久久| 麻豆精品在线观看| 青青国产91久久久久久| 亚洲一区二区欧美| 亚洲精品综合在线| 一区二区三区中文在线| **性色生活片久久毛片| 国产精品乱人伦| 国产精品美女久久久久久久| 中文字幕第一区综合| 国产午夜精品一区二区三区嫩草| 久久久五月婷婷| 久久久精品日韩欧美| 国产午夜亚洲精品羞羞网站| 26uuu另类欧美亚洲曰本| 精品国产百合女同互慰| 日韩女优av电影| 久久久噜噜噜久噜久久综合| 久久综合久久综合九色| 国产婷婷色一区二区三区在线| 2024国产精品| 日本一区二区三区dvd视频在线| 国产婷婷色一区二区三区| 国产农村妇女精品| 亚洲日穴在线视频| 亚洲一区二区免费视频| 热久久免费视频| 国产在线精品一区二区夜色| 懂色中文一区二区在线播放| 北条麻妃国产九九精品视频| 色噜噜狠狠成人中文综合| 欧美日韩精品系列| 久久―日本道色综合久久| 国产精品久久久久aaaa樱花 | 国产欧美一区二区精品性色超碰| 精品88久久久久88久久久| 国产婷婷色一区二区三区四区| 1024成人网| 丝袜美腿一区二区三区| 国产精品一区三区| 91免费观看视频| 日韩精品一区二区在线| 成人免费在线播放视频| 日韩国产精品久久久久久亚洲| 国产麻豆精品视频| 欧洲亚洲精品在线| 久久综合久久久久88| 亚洲最大成人网4388xx| 国产一区视频在线看| 欧美性色欧美a在线播放| 精品成人一区二区三区四区| 亚洲精品成人精品456| 久久99最新地址| 欧美日韩一区二区三区在线 | 日本精品裸体写真集在线观看| 91精品国产综合久久久久久漫画| 久久久久久一二三区| 一区二区三区中文在线观看| 国产九色精品成人porny| 欧美色爱综合网| 亚洲欧美怡红院| 狠狠色丁香婷婷综合久久片|