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

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

?? jry9524_63723_asm.htm

?? Cy7c63723的完整固件 cy7c63723和CY7C63001相比
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
    and    A, 07h

    DELAY  35                           ; delay as per spec

    index  drive_table                  ; deassert clock
    or     A, (PS2_PULLUP | USB_PS2_MODE)
    iowr   USB_STATUS_CONTROL_REG
    and    A, 07h

;=====================================================================
; Substitute macro DELAY with a readProcessOptics procedure that
; consumes about the same amount of time. The reason is that we do not
; want to miss any optics count (To send or recive a bit in PS2 takes
; about 1 ms)
;======================================================================
    call   readProcessOptics
;   DELAY  30                           ; wait as per spec

    CLEARC
    pop    A
    ret

;========================================================================
; FUNCTION: getBit
;
; Receives  a bit
;
;
; Returns: 
;   MSB of (A) = state of bit clocked in
;   CF = 1 if error; CF = 0 if OK
;
;========================================================================
getBit:
    push   A                       
    iord   PORT2                        ; IF INHIBIT, get out now
    and    A,SCLK
    jz     .error
    mov    A, CLKL_DATAH                ; start with clock low, data high
    or     A, (PS2_PULLUP | USB_PS2_MODE)
    iowr   USB_STATUS_CONTROL_REG          
    and    A, 07h

    DELAY  35                           ; wait 35 usec

    mov    A,CLKH_DATAH                 ; raise clock line
    or     A, (PS2_PULLUP | USB_PS2_MODE);
    iowr   USB_STATUS_CONTROL_REG       ;
    and    A, 07h
    DELAY  5                            ; wait 5 usec 
    iord   PORT2                        ; read the data line

;=====================================================================
; Substitute macro DELAY with a readProcessOptics procedure that
; consumes about the same amount of time. The reason is that we do not
; want to miss any optics count (To send or recive a bit in PS2 takes
; about 1 ms)
;======================================================================
    push   A
    call   readProcessOptics
    pop    A

;   DELAY  30                           ; wait 30 usec
    and    A, SDATA                     ; mask off all but data bit
                                        ; (and instruction clears CF)
    jz     .low                         ; if data bit high,
    SETC                                ; set the carry

.low:
    pop    A                            ; pop acc and rotate carry into msb
    rrc    A
    CLEARC                              ; clear carry indicating success
    ret                                 ; return

.error:
    pop    A
    SETC
    ret

;========================================================================
; FUNCTION: ps2Receive
;
; Receives a byte 
;
;
; Returns: 
;   C= 0 if reception was successful
;   C= 1 if not
;
;========================================================================
ps2Receive:
    push   X                            ; save X, we'll wipe it out
    mov    X, 18                        ; do the following 18 times:

.wait:                                          
    DELAY  7                            ; kill time for 7 us
    iord   PORT2
    and    A, SDATA                     ; make sure data bit low
    jnz    .exitearly                   ; out now if not
    dec    X                            ; wait again
    jnz    .wait                        ;
                                        ; above loop consumes approx 180 us.
.start:
    DELAY  5
    mov    X, 8                         ; count 9  bits (8 data, 1 parity)
    mov    A, 0                         ; clear parity count
    mov    [ps2Temp0], A

.l1:
    call   getBit
    jc     .inhibit                     ; if not inhibiting
    cmp    A, 80h                       ; see if msbit = 1
    jc     .next                        ; yup,
    inc    [ps2Temp0]                   ; increment parity count

.next:
    dec    X                            ; decrement counter
    jc     .done                        ; if at -1, done    
    jnz    .l1    
    push   A                            ; else save partial result
                                        ; (save all 8 bits)
    jmp    .l1                          ; go and get parity bit

.inhibit:                               ; we were inhibited in
    dec    X                            ; the middle of getting stuff,
    jc     .done                        ; adjust stack appropriately
    push   A

.done:
    ; arrive here with data byte on the stack and the received parity bit in the msb
    ; of the accumulator. the calculated parity bit is in the lsb of ps2Temp0.
    ; if we arrived here due to host inhibit, both parity and data byte are
    ; garbage but that's ok -- we'll abort out of this routine anyway.

    mov    A, [ps2Temp0]                ; get computed parity
    and    A, 1
    mov    X, A
                                        ; X should be 1 if ok

    call   getBit                       ; get stop bit
    jc     .error                       ; if no problem getting it
    rlc    A                           
    jc     .ack                         ; if it's not a 1
    mov    X, 0                         ; X= 0 indicates an error

.badstop:                               
    call   getBit                       ; keep looking for it
    jc     .error
    rlc    a
    jnc    .badstop

.ack:
                                        ; arrive here with x = 1 if no errors
    call   send_0                       ; send a 0 to ack the transaction
    mov    A, X
    cmp    A, 0
    jz     .error

.exit:
    mov    A, CLKH_DATAH                ; make sure PS2 bus is left idle
    or     A, (PS2_PULLUP | USB_PS2_MODE)
    iowr   USB_STATUS_CONTROL_REG
    and    A, 07h
    jmp    .return

.error:
    mov    A,CLKH_DATAH                 ; make sure PS2 bus is left idle
    or     A, (PS2_PULLUP | USB_PS2_MODE)
    iowr   USB_STATUS_CONTROL_REG
    and    A, 07h
    SETC                                ;set carry indicating a problem

.return:
    pop    A                            ; pop result into ACC  
    pop    X                            ; restore X
    ret

.exitearly:
    SETC
    pop    X
    ret


;********************************************************************
;
;         Main Entry for USB Interface
;
;********************************************************************

usbMain:
    ;
    ; set wakeup timer interval and disable XTALOUT 
    ;
    mov    A, WAKEUP_ADJUST2 | WAKEUP_ADJUST0 | INTERNAL_CLK | PRECISION_USB_CLOCKING 
    iowr    CLOCK_CONFIG

    ;
    ; initialize USB variables
    ;
    mov    A, 00h        
    mov    [ep0InMachine], A
    mov    [configuration], A
    mov    [ep1Stall], A
    mov    [idle], A
    mov    [suspendCount], A
    mov    [intTemp], A
    mov    [idleTimer], A
    mov    [idlePrescaler], A
    mov    [ep0Transtype], A
    mov    [ep1DmaBuff0], A
    mov    [ep1DmaBuff1], A
    mov    [ep1DmaBuff2], A
    mov    [ep1DmaBuff3], A

    mov    A, HID_REPORT
    mov    [protocol], A

    mov    A, SET
    mov    [remoteWakeup], A

    ;
    ; enable USB address for endpoint 0
    ;
    mov    A, ADDRESS_ENABLE
    iowr   USB_ADDRESS

    ;
    ; enable global and EP0 interrupts
    ;
    mov          A, (1MS_INT | USB_RESET_INT)
    iowr   GLOBAL_INTERRUPT_REG

    mov    A, EP0_INT            
    iowr   ENDPOINT_INT

    ei

    ;
    ; enable USB pullup resistor
    ;
    mov    A, VREG_ENABLE  
    iowr   USB_STATUS_CONTROL_REG

;********************************************************************
;
;         Main Task Loop for USB Interface
;
;********************************************************************
usbTaskLoop:
    ;
    ; usb main loop - watchdog clear
    ;

    iowr   WATCHDOG_REG                 ; clear watchdog
    call   processButtons        
    mov    A, [eventMachine]
    cmp    A, EVENT_PENDING             ; need to send data back to host?
    jnz    usbOptic                     ; no - go do optics
    mov    A, [buttonValue]             ; assign button value to EP1
    mov    [ep1DmaBuff0], A             ; 

usbOptic:
    call   readProcessOptics
    mov    A, [eventMachine]
    cmp    A, EVENT_PENDING             ; need to send data back to host?
    jnz    usbOptic2                    ; no - continue
    mov    A, [xCount]                  ; yes, save data to EP1 FIFO
    mov    [ep1DmaBuff1], A             ;

    mov    A, [yCount]                  ; need to invert y-coordinate for
    cpl    A                            ; proper direction
    inc    A                            ;
    mov    [ep1DmaBuff2], A             ;

    mov    A, [protocol]
    cmp    A, 01h                       ; is it 4-byte packet?
    jnz    usbOptic2                    ; go if 3-byte packet
    mov    A, [zCount]                  ;
    mov    [ep1DmaBuff3], A             ;


; this task sends data out from endpoint 1 if the endpoint is configured
; and not set to stall

usbOptic2:
    mov    A, [eventMachine]
    jacc   eventMachineJumptable
        
eventPending:
    ;
    ; if not configured then skip data transfer
    ;
    mov    A, [configuration]
    cmp    A, 01h
    jnz    eventTaskDone                ; go if not configured

    ;
    ; if stalled then skip data transfer
    ;
    mov    A, [ep1Stall]
    cmp    A, FFh
    jz     eventTaskDone                ; go if EP1 stalled

    mov    A, [protocol]
    cmp    A, 01h                       ; is z-wheel enabled in either USB 
                                        ; (REPORT_PROTOCOL mode) or PS2 mode?
    mov    A, MOUSE_PACKET_4            ; set up endpoint 1 to send 4 bytes
    jz     formPacket                   ; go if wheel button supported
    dec    A                            ; set up endpoint 1 to send 3 bytes

formPacket:            
    or     A, [ep1DataToggle]           ;
    iowr   EP1_COUNT                    ;
    mov    A, ACK_IN                    ; set to ack on endpoint 1
    iowr   EP1_MODE                     ;

eventTaskDone:
    mov    A, NO_EVENT_PENDING          ; clear pending events
    mov    [eventMachine], A 

noEventTask:
    jmp usbTaskLoop


;========================================================================
; FUNCTION: Interrupt handler: dualUsbBusReset_ps2Error
;    Purpose: 
;      If USB 
;        process USB reset
;      Else
;        goes to error handler
;
;========================================================================
dualUsbBusReset_ps2Error:
    mov    A, [dualInterfaceMouse]      ; get interface type in (A)
    cmp    A, USB_MOUSE
    jz     usbBusReset                  ; go if USB 
    jmp    ps2Error                     ; should not get here if PS2

usbBusReset:
    mov    A, STALL_IN_OUT              ; set to STALL INs&OUTs
    iowr   EP0_MODE                     ;
    mov    A, ADDRESS_ENABLE            ; enable USB address 0
    iowr   USB_ADDRESS                  ;
    mov    A, DISABLE                   ; disable endpoint1
    iowr   EP1_MODE                     ;
    mov    A, 00h                       ; reset program stack pointer
    mov    psp,a                        ;
    jmp    usbMain

;========================================================================
; FUNCTION: dual1msTimer
;    Purpose: 
;      Poll the buttons every ms;
;      If USB 
;         watches for USB suspend and handles the HID idle timer
;
;========================================================================
dual1msTimer:
    push   A
    inc    [dualInterface1ms]           ; otherwise, increment 1ms counter

    ;
    ; poll buttons for button on/off state
    ;
    ; No

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品97视觉盛宴| 大桥未久av一区二区三区中文| 日韩成人一级大片| 日韩成人av影视| 国产精品一区二区男女羞羞无遮挡| 高清不卡在线观看av| 91久久精品网| 日韩视频免费直播| 国产精品久久99| 奇米亚洲午夜久久精品| 丁香五精品蜜臀久久久久99网站| 在线中文字幕一区二区| 精品国产91洋老外米糕| 中文字幕一区二区三区视频| 日韩精彩视频在线观看| 成人动漫一区二区在线| 欧美精品一卡二卡| 国产精品无人区| 午夜av电影一区| 国产白丝精品91爽爽久久| 欧美日本在线播放| 久久久久久久久久久电影| 一二三区精品视频| 亚洲国产欧美日韩另类综合| 日本不卡视频一二三区| 亚洲一二三专区| 青椒成人免费视频| 99re在线精品| 欧美久久久久中文字幕| 欧美一卡在线观看| 亚洲精品乱码久久久久久黑人 | 884aa四虎影成人精品一区| 中文字幕成人av| 五月天中文字幕一区二区| 国内精品国产成人国产三级粉色| 美腿丝袜在线亚洲一区| 色999日韩国产欧美一区二区| 色诱亚洲精品久久久久久| 丰满放荡岳乱妇91ww| 日韩欧美国产综合在线一区二区三区| 日韩一级免费观看| 久久午夜羞羞影院免费观看| 亚洲国产美国国产综合一区二区| heyzo一本久久综合| 精品欧美黑人一区二区三区| 午夜在线成人av| av在线一区二区三区| 在线国产亚洲欧美| 欧美一二三四在线| 一二三四区精品视频| 另类小说综合欧美亚洲| 亚洲一级在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美三级韩国三级日本三斤| 精品视频在线视频| 亚洲精品国产精品乱码不99| 天天操天天干天天综合网| 国产亚洲欧美色| 美女视频一区二区| 99视频精品免费视频| 免费高清视频精品| 欧美日韩黄视频| 欧美经典三级视频一区二区三区| 欧美国产一区在线| 国产美女久久久久| 欧美午夜电影一区| 欧美午夜精品免费| 一区二区三区精品视频在线| 久久99精品久久久久久动态图| 国产精品一区一区| 久久精品网站免费观看| 日韩成人一级片| 欧美一级一级性生活免费录像| 中文字幕五月欧美| 久久99日本精品| 精品国精品国产| 日韩精品国产精品| 欧美一区二区成人6969| 亚洲午夜视频在线观看| 欧美日韩国产首页| 亚洲欧洲日韩综合一区二区| 自拍偷自拍亚洲精品播放| 99久久亚洲一区二区三区青草| 成人黄页在线观看| 欧美久久一二三四区| 青青草成人在线观看| 在线免费观看日韩欧美| 奇米888四色在线精品| 在线观看国产91| 日韩一区欧美小说| 欧美午夜精品理论片a级按摩| 自拍偷拍国产精品| 国产成人自拍网| 国产精品沙发午睡系列990531| 国内外成人在线| 欧美肥妇bbw| 韩国精品主播一区二区在线观看| 欧美三片在线视频观看| 在线观看日韩av先锋影音电影院| 日韩一区在线免费观看| 懂色一区二区三区免费观看| 国产一区二区免费视频| 国产女同性恋一区二区| 国产麻豆精品在线观看| 韩国三级电影一区二区| 国产精品国产精品国产专区不蜜| 国产一区二区三区免费在线观看 | 亚洲午夜精品久久久久久久久| 91丨porny丨国产入口| 中文字幕乱码久久午夜不卡 | 久久久久久久久久美女| 国产另类ts人妖一区二区| 精品国产一区二区三区忘忧草| 成人91在线观看| 最好看的中文字幕久久| 国产iv一区二区三区| 亚洲一区二区中文在线| 欧美日韩视频专区在线播放| 紧缚奴在线一区二区三区| 亚洲精品在线观看视频| 精品一区二区三区免费视频| 亚洲天堂福利av| 91啦中文在线观看| 欧美激情一区三区| 欧美日韩电影一区| 麻豆精品在线播放| 欧美电影一区二区三区| 美女任你摸久久| 久久综合999| 欧美亚洲一区三区| 视频在线观看一区| 国产一区视频导航| 亚洲风情在线资源站| 欧美一区二区三区免费在线看| 高清日韩电视剧大全免费| 亚洲乱码国产乱码精品精的特点| 色播五月激情综合网| 国内精品第一页| 国产精品国产a| 久久国产精品色| 亚洲成a人片在线不卡一二三区| 欧美精品高清视频| 天天射综合影视| 久久伊人中文字幕| 91网站在线播放| 国产精品亚洲午夜一区二区三区| 中文字幕av一区二区三区免费看| 激情欧美一区二区| 天天操天天综合网| 国产日韩精品一区二区浪潮av| 欧美日韩成人综合天天影院 | 丁香婷婷综合网| 国产精品久久久一本精品| 在线观看视频欧美| 五月综合激情婷婷六月色窝| 日韩欧美成人激情| 日本一区中文字幕| 久久久国产精品不卡| 99视频国产精品| 无吗不卡中文字幕| 国产精品伦一区二区三级视频| 久久婷婷一区二区三区| 91精品福利视频| 免费成人小视频| 日韩和的一区二区| 国产精品久久久久天堂| 国产传媒欧美日韩成人| 中文字幕不卡在线播放| 欧美日韩成人激情| av亚洲精华国产精华| 国产高清精品久久久久| 五月婷婷激情综合| 日韩精品免费专区| 亚洲色欲色欲www| 国产亚洲精品超碰| 欧美福利视频一区| 97超碰欧美中文字幕| 成人免费av网站| 日韩精品成人一区二区在线| 视频一区二区国产| 中文字幕一区二区视频| 欧美日韩美女一区二区| 欧美日韩一区二区三区四区五区| 国产一区亚洲一区| 成熟亚洲日本毛茸茸凸凹| 日韩精品久久理论片| 久久精品一区二区三区四区| 日韩欧美国产综合一区 | 久久亚洲二区三区| 欧美日韩三级在线| 亚洲一区在线观看视频| 亚洲精品国产一区二区精华液 | 欧美一区二区成人6969| 不卡高清视频专区| 99热这里都是精品| 国产a久久麻豆| 五月婷婷激情综合网| 久久精品av麻豆的观看方式| 亚洲国产精品自拍| 琪琪一区二区三区|