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

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

?? usbsm.lst

?? Cypress 的(鼠標+鍵盤)復合設備匯編源程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
0035            ;========================================================================
0035            ;                       program listing
0035            ;======================================================================== 
0035            
0035            
0035            ;========================================================================
0035            ; The 128 uSec interrupt is not used by the keyboard code.  The keyboard
0035            ; only does not require the DAC or GPIO port in this version of
0035            ; firmware.  It may be necessary to enable GPIO interrupts when the
0035            ; keyboard enters a power down suspend mode.
0035            DoNothing_ISR:
0035 73    [08]         reti                    ; return from interrupt
0036            
0036            ;========================================================================
0036            ; Suspend
0036            ;
0036            ; This routine is invoked from the main loop when bus activity has ceased for
0036            ; 3 msec or more. This routine prepares the keyboard for suspension, suspends
0036            ; the part, and restores the keyboard upon a subsequent resume.
0036            ;========================================================================
0036            ; Suspend
0036            ;
0036            ; This routine is invoked from the main loop when bus activity has ceased for
0036            ; 3 msec or more. This routine prepares the keyboard for suspension, suspends
0036            ; the part, and restores the keyboard upon a subsequent resume.
0036            
0036            Suspend:
0036            
0036 2D    [05]         push A
0037                                                            ; (since all pins are guaranteed to not float)
0037            
0037 54 E3 [10]         call mouse_suspend              ; put PS/2 mouse in stream mode
0039 70    [08]         di                                      ; disable interrupts
003A 19 FF [04]         mov A, RESISTIVE_NEG          ; all ports resistive neg so that
003C 2A 08 [05]         iowr GPIO_Config              ; we stay within suspend current budget (500uA)
003E 19 00 [04]         mov A, 0                      ; pull down the column lines
0040 2A 00 [05]         iowr Port0_Data
0042 2A 01 [05]         iowr Port1_Data
0044 1A 88 [06]         mov A, [ksc_p3out]
0046 0D 07 [04]         or A, P3_LED_MASK             ; turn LEDs off
0048 10 3F [04]         and A, ~P3_KEY_MASK             ; don't touch bit 6 & 7 (PS/2 mouse interface)
004A 2A 03 [05]         iowr Port3_Data                 
004C 19 FF [04]         mov A, FFh
004E 2A 06 [05]         iowr Port2_Interrupt            ; enable port 2 GPIO interrupt for keyboard
0050 19 20 [04]         mov A, GPIO_ONLY_MASK         ; enable GPIO interrupt only
0052 2A 20 [05]         iowr Global_Interrupt
0054 1A 22 [06]         mov A, [remote_wakeup_status] ; is remote wakeup feature enabled?
0056 16 02 [04]         cmp A, ENABLE_REMOTE_WAKEUP
0058 B0 5B [05]         jnz  Suspend_controller
005A 72    [08]         ei
005B            Suspend_controller:
005B            
005B 29 FF [05]         iord Status_Control           ; set the suspend bit causing suspend
005D 0D 08 [04]         or A, 08h
005F 2A FF [05]         iowr Status_Control           ; we are suspended here
0061            
0061            ; resume !!!!!!                                 
0061 20    [04]         nop                           ; execute a nop after resuming
0062                
0062 70    [08]         di
0063 2A 26 [05]     iowr Watchdog
0065 29 1F [05]         iord USB_Status_Control         ; check if there is no bus activity
0067 10 08 [04]         and A, 08h
0069 16 00 [04]         cmp A, 00h
006B B0 9D [05]         jnz GPIO_disable_interrupts   ; if there is bus activity, 
006D                                                            ; disable interrupts and exit
006D            
006D            
006D 19 04 [04]         mov A, TIMER_ONLY_MASK          ; enable 1ms interrupt
006F 2A 20 [05]         iowr Global_Interrupt
0071 72    [08]         ei
0072 1A 2F [06]         mov A, [1ms_counter]            ; clear wakeup counter
0074 01 05 [04]         add A,5
0076            
0076            wakeup_delay:                           ; wait 5ms before we send the wakeup signal
0076 2A 26 [05]     iowr Watchdog
0078 17 2F [06]         cmp A, [1ms_counter]
007A B0 76 [05]         jnz wakeup_delay
007C            
007C 70    [08]         di                                      ; disable interrupts
007D            
007D 29 1F [05]         iord USB_Status_Control         ; check again if there is no bus activity
007F 10 08 [04]         and A, 08h                              ; after 5ms
0081 16 00 [04]         cmp A, 00h
0083 B0 9D [05]         jnz GPIO_disable_interrupts   ; if there is bus activity, 
0085                                                            ; disable interrupts and exit
0085            
0085            
0085 19 02 [04]         mov A, FORCE_J                ; force J state to correct cross-over voltage
0087 2A 1F [05]         iowr USB_Status_Control       ; problem during resume signalling
0089            
0089 19 01 [04]         mov A, FORCE_K                  ; start sending resume signal
008B 2A 1F [05]         iowr USB_Status_Control
008D            
008D 72    [08]         ei                                      ; enable 1ms interrupt again
008E 1A 2F [06]         mov A, [1ms_counter]            ; clear wakeup counter
0090 01 0A [04]     add A,0ah
0092            
0092            wakeup_duration:                                ; send resume signal for 10ms
0092 2A 26 [05]     iowr Watchdog
0094 17 2F [06]         cmp A, [1ms_counter]
0096 B0 92 [05]         jnz wakeup_duration
0098            
0098 70    [08]         di                                      ; disable interrupts
0099            
0099 19 00 [04]         mov A, NOT_FORCING              ; let SIE control D+/D-
009B 2A 1F [05]         iowr USB_Status_Control         
009D            
009D            
009D            GPIO_disable_interrupts:                ;
009D                                                            ;interrupts are off when we get here
009D 29 1F [05]         iord USB_Status_Control
009F 10 F7 [04]         and A, F7h                              ; clear Bus Activity bit
00A1 2A 1F [05]         iowr USB_Status_Control
00A3            
00A3 19 00 [04]         mov A, 0
00A5 2A 06 [05]         iowr Port2_Interrupt            ; disable GPIO interrupt for keyboard
00A7            
00A7 19 25 [04]         mov A, GPIO_TIMER_RESET_MASK  ; enable GPIO and 1ms interrupts
00A9 2A 20 [05]         iowr Global_Interrupt
00AB            
00AB            
00AB 72    [08]         ei
00AC 54 F8 [10]         call mouse_resume                       ; put PS/2 mouse into polling mode
00AE 70    [08]         di  
00AF            Skip_suspend:
00AF 19 F5 [04]         mov A, NORMAL                 ; restore original GPIO configuration
00B1 2A 08 [05]         iowr GPIO_Config                        
00B3 19 00 [04]       mov A,0
00B5 31 34 [05]       mov [suspend_counter],A
00B7 53 9E [10]         call ksc_restore_ports            ; restore column ports to pre-suspend values
00B9 72    [08]     ei
00BA 2B    [04]     pop A
00BB 3F    [08]     ret
00BC            
00BC            
00BC            
00BC            check_activity:
00BC            
00BC 29 1F [05]         iord    USB_Status_Control                  ; check if there is  bus activity
00BE 10 08 [04]         and     A, 08h
00C0 3F    [08]     ret
00C1            
00C1            ;========================================================================
00C1            ; The 1 msec interrupt is used to clear the watchdog timer, to maintain
00C1            ; all timers with a 1msec granularity
00C1            ;========================================================================
00C1            
00C1            One_mSec_ISR:
00C1 23 2F [07]     inc         [1ms_counter]                               ;increment 1msec timer
00C3 1A 2F [06]     mov         A,[1ms_counter]
00C5 10 03 [04]     and         A,3                         
00C7                
00C7 B0 CF [05]     jnz         check_bus_activity_status           ;every 4 msec, do the following:
00C9            
00C9 1A 38 [06]     mov         A,[background_flags]                ; set the flag to scan the keyboard
00CB 0D 02 [04]     or          A,SCAN_FLAG
00CD 31 38 [05]     mov         [background_flags],A
00CF            
00CF            check_bus_activity_status:
00CF 29 1F [05]         iord    USB_Status_Control                              ; check if there is no bus activity
00D1 10 08 [04]         and             A, 08h
00D3 16 00 [04]         cmp             A,0h
00D5 A0 E3 [05]         jz              Inc_counter                                             ; if there was bus activity
00D7 29 1F [05]         iord    USB_Status_Control                              ;   clear the bus activity bit
00D9 10 F7 [04]         and             A, 0F7h
00DB 2A 1F [05]         iowr    USB_Status_Control
00DD 19 00 [04]         mov             A, 0h                                                   ;   clear the suspend counter
00DF 31 34 [05]         mov             [suspend_counter], A                    ;   
00E1 80 F1 [05]         jmp             Exit_1ms
00E3            
00E3            Inc_counter:                                                            ;there was no bus activity,
00E3 23 34 [07]     inc         [suspend_counter]                               ;so increment the bus activity counter
00E5 1A 34 [06]         mov             A,[suspend_counter]
00E7 16 03 [04]         cmp             A, 03h                                                  ;if 3msecs of bus inactivity passed
00E9 C0 F1 [05]     jc          Exit_1ms
00EB 1A 38 [06]     mov         A,[background_flags]                    ; set the suspend flag
00ED 0D 01 [04]     or          A,SUSPEND_FLAG
00EF 31 38 [05]     mov         [background_flags],A                    ;
00F1            
00F1            
00F1            Exit_1ms:
00F1 56 E6 [10]     call mouse_1mS_int                          ; call the mouse 1msec ISR code.
00F3 2B    [04]         pop A
00F4 73    [08]         reti                                    ; return from interrupt
00F5            ;========================================================================
00F5            ; Endpoint one is used to send keyboard data to the host.  This interrupt
00F5            ; occurs if the USB serial interface engine has transferred a packet
00F5            ; to the host (including NAKs).
00F5            ;
00F5            ; This routine disables another transfer until valid data has been loaded
00F5            ; into the endpoint.  This routine is also responsible for toggling the
00F5            ; data 0/1 bit for endpoint one after every successful transfer.
00F5            USB_EP1_ISR:
00F5 2D    [05]         push    A                                               ; save accumulator on stack
00F6 29 14 [05]         iord    EP_A1_Mode                              ; test whether we have an ACK bit
00F8 10 10 [04]         and             A, ACK_BIT
00FA A1 08 [05]         jz doneEP1                                              ; do nothing if we don't have an ACK bit
00FC            
00FC 19 0C [04]         mov             A, NAKIN                                ; clear ACK bit
00FE 20    [04]         NOP
00FF 1F    [04]         XPAGE
0100 2A 14 [05]         iowr    EP_A1_Mode
0102            
0102 29 13 [05]         iord    EP_A1_Counter                   ; flip data 0/1 bit after
0104 13 80 [04]         xor             A, DATATOGGLE           ; a successful data transfer
0106 2A 13 [05]         iowr    EP_A1_Counter
0108            
0108            
0108            doneEP1:
0108 2B    [04]         pop             A                                               ; restore accumulator from stack
0109 73    [08]         reti                                                    ; return from interrupt
010A            
010A            ;========================================================================
010A            ; Endpoint two is used to consumer/power key  data to the host.  This interrupt
010A            ; occurs if the USB serial interface engine has transferred a packet
010A            ; to the host (including NAKs).
010A            ;
010A            ; This routine disables another transfer until valid data has been loaded
010A            ; into the endpoint.  This routine is also responsible for toggling the
010A            ; data 0/1 bit for endpoint one after every successful transfer.
010A            USB_EP2_ISR:
010A 2D    [05]         push    A                                       ; save accumulator on stack
010B 29 16 [05]         iord    EP_A2_Mode                      ; test whether we have an ACK bit
010D 10 10 [04]         and             A, ACK_BIT
010F A1 1B [05]         jz              doneEP2                         ; do nothing if we don't have an ACK bit
0111            
0111 19 0C [04]         mov             A, NAKIN                        ; clear ACK bit
0113 2A 16 [05]         iowr    EP_A2_Mode
0115            
0115 29 15 [05]         iord    EP_A2_Counter           ; flip data 0/1 bit after
0117 13 80 [04]         xor             A, DATATOGGLE       ; a successful data transfer
0119 2A 15 [05]         iowr    EP_A2_Counter
0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇xxxx精品少妇偷拍| 欧美一区二区三区四区视频| 91福利视频在线| 欧美一三区三区四区免费在线看 | 成人网在线播放| 色婷婷综合久久久中文一区二区| 日本韩国一区二区| 欧美精品一区二区三区四区| 综合婷婷亚洲小说| 精品一区二区三区免费毛片爱| 国产v日产∨综合v精品视频| 欧美唯美清纯偷拍| 伊人性伊人情综合网| 毛片av一区二区三区| 欧美伊人久久大香线蕉综合69| 精品91自产拍在线观看一区| 亚洲香肠在线观看| 成人午夜视频在线| 日韩欧美自拍偷拍| 亚洲国产你懂的| 色域天天综合网| 国产精品久久久久久久久久久免费看| 亚洲国产日韩精品| 色婷婷av一区二区三区软件| 久久九九久精品国产免费直播| 天堂午夜影视日韩欧美一区二区| 波多野结衣的一区二区三区| 国产亚洲福利社区一区| 美女视频网站久久| 51精品久久久久久久蜜臀| 国产精品区一区二区三区| 国产伦精品一区二区三区免费 | 国产资源精品在线观看| 欧美一级艳片视频免费观看| 五月婷婷激情综合网| 欧美美女一区二区三区| 日韩高清电影一区| 欧美一区二区不卡视频| 伊人婷婷欧美激情| 日本成人在线视频网站| 在线免费观看日本一区| 一区二区三区产品免费精品久久75| 成人av小说网| 一区二区三区91| 欧美一区二区免费视频| 久久精品国产亚洲高清剧情介绍| 国产三级久久久| 99精品在线观看视频| 亚洲欧美欧美一区二区三区| 色94色欧美sute亚洲线路一ni| 亚洲综合一二区| 欧美成人福利视频| 成人av电影免费观看| 亚洲国产一区二区视频| 日韩精品一区二| 99在线精品一区二区三区| 亚洲h精品动漫在线观看| 久久久久久久久久电影| 一本高清dvd不卡在线观看| 日本中文一区二区三区| 欧美国产97人人爽人人喊| 欧美色窝79yyyycom| 国产一区二区看久久| 亚洲午夜电影网| 美脚の诱脚舐め脚责91| 日韩视频永久免费| 不卡的av网站| 久久99久久99小草精品免视看| 成人欧美一区二区三区白人| 91精品国产全国免费观看| a在线欧美一区| 国产精品主播直播| 日本强好片久久久久久aaa| 一区视频在线播放| 久久久久九九视频| 欧美一二区视频| 欧美日韩亚洲另类| 日本久久一区二区三区| 成人高清伦理免费影院在线观看| 青青草97国产精品免费观看无弹窗版| 《视频一区视频二区| 中文字幕不卡在线| 久久久综合视频| 日韩免费电影一区| 这里只有精品视频在线观看| 欧美日韩一区视频| 综合色天天鬼久久鬼色| 国产情人综合久久777777| 欧美大片在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一区日本一区韩国一区| 欧美日韩成人在线| 91精品国产综合久久久久久| 欧美日韩在线播| 日韩精品专区在线影院观看| 日韩一级大片在线观看| 亚洲精品一区二区三区四区高清| 日韩一区二区三区视频在线| 欧美一级黄色片| 久久夜色精品国产欧美乱极品| 精品久久一二三区| 欧美激情在线一区二区三区| 欧美国产精品专区| 亚洲日本一区二区| 丝袜脚交一区二区| 精品在线免费视频| 国产成人在线影院| 欧美性三三影院| 精品成人一区二区三区四区| 国产精品美女久久久久久| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品亚洲人成人网| 久久精品国产色蜜蜜麻豆| 成人sese在线| 欧美一级久久久久久久大片| 国产精品网曝门| 亚洲va天堂va国产va久| 国产福利一区二区三区视频| 一本久久综合亚洲鲁鲁五月天 | 国产精品久久久久久久第一福利| 亚洲一区在线视频观看| 国产不卡在线播放| 欧美日韩国产另类不卡| 欧美高清在线一区| 麻豆国产一区二区| 日本国产一区二区| 中文字幕第一区第二区| 91久久精品国产91性色tv| 亚洲精品一区二区三区香蕉| 亚洲高清不卡在线观看| 成人激情黄色小说| 久久蜜桃一区二区| 麻豆精品视频在线观看| 91国模大尺度私拍在线视频| 国产视频一区在线观看| 精品在线你懂的| 日韩三级视频在线观看| 丝袜美腿亚洲一区二区图片| 91免费版pro下载短视频| 欧美激情一区二区三区全黄| 国产原创一区二区三区| 日韩片之四级片| 日韩国产欧美视频| 欧美一级日韩不卡播放免费| 亚洲电影中文字幕在线观看| 色久综合一二码| 亚洲永久免费av| 欧美日韩夫妻久久| 日韩av在线发布| 欧美va亚洲va| 国产一区二区三区香蕉| 国产亚洲欧美激情| 99久久99久久免费精品蜜臀| 亚洲色图制服诱惑| 欧美日韩国产小视频在线观看| 首页亚洲欧美制服丝腿| 日韩欧美亚洲国产精品字幕久久久| 久久成人综合网| 国产精品美日韩| 欧美日韩国产天堂| 国产一区二区三区免费| 国产精品美女久久久久aⅴ国产馆| 91女厕偷拍女厕偷拍高清| 亚洲国产成人va在线观看天堂| 51久久夜色精品国产麻豆| 国产盗摄女厕一区二区三区| 中文字幕日韩一区二区| 色吊一区二区三区| 精品免费日韩av| 欧美剧在线免费观看网站 | 欧美激情一区二区三区全黄| 99久久夜色精品国产网站| 亚洲一区二区三区在线播放| 欧美一区二区三区啪啪| 国产白丝精品91爽爽久久| 午夜影视日本亚洲欧洲精品| 91精品国产综合久久久久久久久久| 国产福利电影一区二区三区| 亚洲在线中文字幕| 精品电影一区二区| 欧美日韩在线免费视频| 国产精品一二三区| 一区二区欧美视频| 中文字幕一区二区三区乱码在线| 日韩欧美亚洲国产精品字幕久久久| 国产成人午夜99999| 日韩激情中文字幕| 一区二区激情小说| 久久精子c满五个校花| 欧美情侣在线播放| 欧美亚洲免费在线一区| 色欲综合视频天天天| 国产精品99久| 国产美女精品在线| 国产福利视频一区二区三区| 日韩精品一区第一页| 91在线视频官网| 色偷偷成人一区二区三区91| 黄一区二区三区| 激情小说亚洲一区|