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

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

?? ps2.lst

?? Cypress 的(鼠標+鍵盤)復合設備匯編源程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
001F            
001F            illegal_int:
001F            sys_reset:
001F 70    [08]     di                                        ;disable interrupts   
0020 19 FF [04]     mov       A,0ffh 
0022 2A 03 [05]     iowr      PORT3_DATA_REG
0024 19 F5 [04]     mov        A,NORMAL                        ;configure GPIO reg
0026 2A 08 [05]     iowr     GPIO_CONFIG_REG
0028 19 FF [04]     mov     A,0ffh                          ;drive connect bit high
002A 2A 03 [05]     iowr    PORT3_DATA_REG
002C            
002C            
002C            
002C 19 00 [04]     mov     a,0                             ;set psp stack to 0
002E 60    [04]     mov     psp,a                           ; 
002F 19 FF [04]     mov     a,0ffh                          ;set dsp stack to 0xff
0031 30    [05]     swap    a,dsp                           ;now we can call functions
0032            
0032 19 00 [04]     mov     A,0                             ;zero endpoint interrupt reg
0034 2A 21 [05]     iowr    ENDPOINT_INTERRUPT_REG            
0036 31 20 [05]     mov     [dual_ifc_keyboard],A           ;set type to ps2 initially
0038 80 43 [05]    jmp      ps2main                        ; go straight to ps2
003A            
003A            .bummer:
003A 80 3A [05]     jmp     .bummer                          ;loop if we ever get here
003C            
003C            
003C            ; the dsp will remain at 0 for both ps2 and usb. Allow 30h bytes for it.
003C            
003C            dsp_stack_size:                 equ     30h
003C            
003C            ; the psp will start at 0xff for ps2 and 0xe0 for usb (to avoid the
003C            ; USB queues)
003C            
003C            psp_stack_size:                 equ     20h
003C            
003C            ram_base:                       equ     psp_stack_size  ;application ram start
003C            dual_ifc_keyboard:              equ     ram_base        ;keyboard type
003C            dual_ifc_1ms:                   equ     ram_base+1      ;1msec counter
003C            ps2main_ram_base:               equ     ram_base+2      ;and ps2 ram also
003C            
003C            ;include all code which resides in lower 4k now.
003C            
003C            ;========================================================================
003C            ;   FILE: ps2main.asm
003C            ;
003C            ;   This file contains the code that implements the ps2 interface to the
003C            ;   host. 
003C            ;
003C            ;REVISION_HISTORY:
003C            ;
003C            ;3/26/99 replaced command processor jump table "calls" with "jmps"
003C            ;
003C            ;2/10/99 Added XPAGEOFF,XPAGEON around command processor jump table
003C            ;
003C            ;8/25/98 Added a 250 usec delay after the reception of a RESET command but
003C            ;prior to the ACK of the command.  Some PC's did not like it without this delay.
003C            ;
003C            ;========================================================================
003C            
003C            
003C                   XPAGEON
003C            
003C            ;RAM use for this module
003C            
003C            ps2_flags:                      equ       ps2main_ram_base+0 ;flag byte
003C            ps2_last_xmit:                  equ       ps2main_ram_base+1 ;last sent byte     
003C            ps2_xmit_holding_reg:           equ       ps2main_ram_base+2 ;next byte to send
003C            ps2_temp0:                      equ       ps2main_ram_base+3 ;temp register 1
003C            ps2_temp1:                      equ       ps2main_ram_base+4 ;temp register 2
003C            ps2_delay:                      equ       ps2main_ram_base+5 ;used for generating delays
003C            ps2_ghost_flagsV:                         equ       ps2main_ram_base+6 ;used to detect PS2 ghost
003C            c750ms_high_byteV:                equ       ps2main_ram_base+7 ;used for generating delay
003C            c750ms_low_byteV:                         equ       ps2main_ram_base+8 ;used for generating delay
003C            PS2MAIN_RAM_SIZE:               equ       9
003C            
003C                                 
003C            ;========================================================================
003C            ;   FUNCTION: ps2main
003C            ;
003C            ;   Main entry point for ps2. Sets up ports, initializes RAM,
003C            ;   calls initialization function for various modules, calls
003C            ;   the BAT function, then enters the main processing loop.
003C            ;
003C            ;
003C            ;
003C            ;========================================================================
003C            soft_reset:
003C 70    [08]     di
003D 19 00 [04]     mov     a,0                             ;set psp stack to 0
003F 60    [04]     mov     psp,a                           ; 
0040 19 FF [04]     mov     a,0ffh                          ;set dsp stack to 0xff
0042 30    [05]     swap    a,dsp                           ;now we can call functions
0043            
0043            ps2main:
0043 2A 26 [05]     iowr    WATCHDOG_REG
0045 19 F5 [04]     mov     A,NORMAL                         ;configure GPIO reg
0047 2A 08 [05]     iowr    GPIO_CONFIG_REG
0049 19 07 [04]     mov     A,CLKH_DATAH
004B 2A 1F [05]     iowr    USB_STATUS_CONTROL_REG          ;initialize control reg    
004D            
004D                ;clear variables local to this module
004D            
**** MACRO ****     CLEARRAM ps2main_ram_base,PS2MAIN_RAM_SIZE
004D 1C 08 [04]     mov     X,PS2MAIN_RAM_SIZE - 1
004F 19 00 [04]     mov     A,0
0051            lp#1:
0051 32 22 [06]     mov     [X + ps2main_ram_base],A
0053 26    [04]     dec     X
0054 D0 51 [05]     jnc     lp#1:
0056            
0056 9B 4F [10]     call    ksc_init_keyscan                    ;initialize the key scanner
0058 96 D0 [10]     call    ps2key_init                         ;and ps2-specific key scanning routines        
005A 19 04 [04]     mov     A,PS2_ENABLED_INTERRUPTS            ;enable ps2 interrupts        
005C 2A 20 [05]     iowr    GLOBAL_INTERRUPT_REG
005E 72    [08]     ei                                          ;enable interrupts                                                       
005F 92 86 [10]     call    ps2_BAT                             ;test the system
0061 31 24 [05]     mov     [ ps2_xmit_holding_reg],A           ;place result in holding register for transmission
**** MACRO ****     SETBIT  PS2_XMIT,ps2_flags                  ;set bit to indicate transmission necessary
0063 19 02 [04]     mov A,PS2_XMIT
0065 33 22 [07]     or  [ps2_flags                  ],A
**** MACRO ****     SETBIT   PS2_SCAN_KBD,ps2_flags              ;enable scanning
0067 19 08 [04]     mov A,PS2_SCAN_KBD
0069 33 22 [07]     or  [ps2_flags              ],A
006B 19 00 [04]     mov     A,0
006D 31 21 [05]     mov     [dual_ifc_1ms],A
006F            .loop:
006F 2A 26 [05]     iowr    WATCHDOG_REG
0071 90 C4 [10]     call    ps2_idle_loop                       ;do all stuff we need to whilst sitting around
0073 90 A4 [10]     call    ps2_get_byte                        ;see if a byte has come in
0075 D0 79 [05]     jnc     .l0
0077 91 05 [10]     call    ps2_do_command                      ;it has, kick off command processor
0079            .l0:
0079 1A 21 [06]     mov     A,[dual_ifc_1ms]                       ;else check for scanning interval  
007B 16 04 [04]     cmp     A,PS2_SCAN_INTERVAL                 ; 
007D C0 8B [05]     jc      .l1                                 ;not time to scan yet, loop
007F            
007F 19 00 [04]     mov     A,0                                 ;reset scanning interval
0081 31 21 [05]     mov     [dual_ifc_1ms],A       
0083            
**** MACRO ****     TSTBIT  PS2_SCAN_KBD,ps2_flags              ;if scanning enabled
0083 19 08 [04]     mov A,PS2_SCAN_KBD
0085 11 22 [06]     and A,[ps2_flags              ]
0087 A0 8B [05]     jz      .l1                                           
0089 93 C5 [10]     call    ps2_scan_keys                       ;  scan the keyboard                       
008B            .l1:
**** MACRO ****     TSTBIT  PS2_XMIT,ps2_flags                  ;  and if we're not sending something else
008B 19 02 [04]     mov A,PS2_XMIT
008D 11 22 [06]     and A,[ps2_flags                  ]
008F B0 9B [05]     jnz     .l2                                 
0091 96 2B [10]     call    ps2_getkey                          ;  see if the keyboard scan resulted in something
0093 C0 9B [05]     jc      .l2                                 
0095 31 24 [05]     mov     [ ps2_xmit_holding_reg],A           ;  get it if so, place in holding register
**** MACRO ****     SETBIT  PS2_XMIT,ps2_flags                  ;  set flag indicating transmission necessary
0097 19 02 [04]     mov A,PS2_XMIT
0099 33 22 [07]     or  [ps2_flags                  ],A
009B            .l2:
009B 80 6F [05]     jmp     .loop                               ;  and loop
009D            
009D            
009D            
009D            
009D            ;========================================================================
009D            ; FUNCTION: ps2_wait_byte
009D            ;
009D            ;
009D            ; waits for reception of a byte from the host. This is called to get
009D            ; extra bytes in a command from the host. While the byte is waited for,
009D            ; the idle loop is called to keep other tasks going.
009D            ;
009D            ; Returns:  A:  received byte from host
009D            ;           C:  1
009D            ;
009D            ;
009D            ;========================================================================
009D            
009D            ps2_wait_byte:
009D 90 C4 [10]     call    ps2_idle_loop                   ;do boring stuff
009F 90 A4 [10]     call    ps2_get_byte                    ;see if host has sent us something
00A1 D0 9D [05]     jnc     ps2_wait_byte                   ;no, continue to wait
00A3 3F    [08]     ret                                     ;yes, return with carry set
00A4            
00A4            
00A4            
00A4            
00A4            ;========================================================================
00A4            ; FUNCTION: ps2_get_byte
00A4            ;
00A4            ;
00A4            ; tries to get a byte from the host
00A4            ;
00A4            ; Returns:  A:  received byte from host
00A4            ;           C:  1 if A is valid, 0 if no byte received
00A4            ;
00A4            ;========================================================================
00A4            
00A4            ps2_get_byte:
00A4 29 1F [05]    iord     USB_STATUS_CONTROL_REG                  ;if host inhibit condition,           
00A6 10 20 [04]    and      A,PS2_CLOCK_BIT                      
00A8 A0 C1 [05]    jz       .no                                     ;skip this whole operation
00AA 29 1F [05]    iord     USB_STATUS_CONTROL_REG                  ;if host holding us off
00AC 10 10 [04]    and      A,PS2_DATA_BIT                          ;skip too
00AE B0 C1 [05]    jnz      .no                                 
00B0            
00B0 29 1F [05]    iord     USB_STATUS_CONTROL_REG                  ;check for inhibit again
00B2 10 20 [04]    and      A,PS2_CLOCK_BIT
00B4 A0 C1 [05]    jz       .no                                 
00B6 93 69 [10]    call     ps2_receive                             ;all ok, try for byte
00B8 C0 BD [05]    jc       .no1                                    ;if byte received
**** MACRO ****    SETC                                             ;set carry and exit
00BA 3A    [04]     cpl   A
00BB 3A    [04]     cpl   A
00BC 3F    [08]    ret
00BD            
00BD            .no1:
**** MACRO ****    SETBIT       PS2_RESEND_REQUESTED,ps2_flags      ;if something went awry during reception,
00BD 19 04 [04]     mov A,PS2_RESEND_REQUESTED
00BF 33 22 [07]     or  [ps2_flags      ],A
00C1                                                                ;flag a resend request
00C1            .no:
**** MACRO ****    CLEARC                                           ;indicate nothing gotten,gained
00C1 0D 00 [04]     or    A,0
00C3            
00C3 3F    [08]    ret
00C4            
00C4            
00C4            ;========================================================================
00C4            ; FUNCTION: ps2_idle_loop
00C4            ;
00C4            ; the idle loop does the things that must be done during times when nothing
00C4            ; else is happening.
00C4            ;
00C4            ; Returns: nothing
00C4            ;========================================================================
00C4            
00C4            ps2_idle_loop:
00C4 29 1F [05]    iord     USB_STATUS_CONTROL_REG              ;if host inhibit                  
00C6 10 20 [04]    and      A,PS2_CLOCK_BIT                     ;don't bother with anything
00C8 A1 04 [05]    jz       .il2                                 
**** MACRO ****    TSTBIT   PS2_RESEND_REQUESTED,ps2_flags      ;if we need last transmission resent
00CA 19 04 [04]     mov A,PS2_RESEND_REQUESTED
00CC 11 22 [06]     and A,[ps2_flags      ]
00CE A0 DC [05]    jz       .il0                             
00D0            
00D0 19 FE [04]    mov      A,PS2_RSND                          ;send a resend request
00D2 92 BC [10]    call     ps2_send
00D4 C1 04 [05]    jc       .il2                             
**** MACRO ****    CLRBIT   PS2_RESEND_REQUESTED,ps2_flags      ;and clear the resend requirement

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人影院在线观看网| 中文字幕一区二区在线播放 | 日日夜夜免费精品视频| 欧美精品乱码久久久久久按摩| 精品一区二区免费| 一区二区三区在线视频观看| 日韩欧美中文字幕公布| av在线综合网| 国产精选一区二区三区 | 蜜臀av一级做a爰片久久| 亚洲日本欧美天堂| 久久久久成人黄色影片| 日韩网站在线看片你懂的| 欧美性猛片xxxx免费看久爱| 成人国产一区二区三区精品| 捆绑变态av一区二区三区| 丝瓜av网站精品一区二区| 亚洲国产三级在线| 一区二区三区日韩精品视频| 中文字幕一区二区三区乱码在线| 国产天堂亚洲国产碰碰| 国产农村妇女精品| 国产欧美精品一区二区色综合朱莉| 日韩欧美中文字幕公布| 3d动漫精品啪啪一区二区竹菊| 欧美日韩一级黄| 欧美丰满嫩嫩电影| 精品欧美一区二区在线观看| 日韩三级视频在线观看| xfplay精品久久| 国产日韩欧美不卡在线| 中文字幕一区二区三区蜜月| 中文字幕亚洲区| 日韩精品每日更新| 麻豆91精品91久久久的内涵| 狠狠狠色丁香婷婷综合激情| av资源站一区| 91.com视频| 国产日韩欧美精品一区| 夜夜精品视频一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 国产麻豆午夜三级精品| 在线观看日韩精品| 精品国产电影一区二区| 国产精品不卡在线| 首页国产欧美久久| 成人av网站免费| 69堂成人精品免费视频| 欧美激情在线一区二区三区| 天堂精品中文字幕在线| 成人丝袜18视频在线观看| 欧美老肥妇做.爰bbww| 国产精品久久久久久久久快鸭| 日本不卡视频在线观看| 欧美日韩一级黄| 色激情天天射综合网| 色综合久久中文综合久久97| 精品免费日韩av| 亚洲国产aⅴ成人精品无吗| a美女胸又www黄视频久久| 欧美成人一区二区三区片免费| 亚洲一区免费视频| 北条麻妃一区二区三区| 久久久久久久久久久久电影| 婷婷丁香激情综合| 欧美三级三级三级| 一片黄亚洲嫩模| 色偷偷久久一区二区三区| 中文字幕精品一区| 国产精品1024久久| 国产精品久久久久久久久免费樱桃 | 高清成人免费视频| 久久久久久毛片| 久久99久久精品欧美| 7777精品伊人久久久大香线蕉| 亚洲午夜影视影院在线观看| 欧美专区在线观看一区| 午夜精品一区在线观看| 91精品在线免费观看| 青青青爽久久午夜综合久久午夜| 在线不卡免费欧美| 免费成人在线观看| 精品国精品国产| 国产69精品久久777的优势| 亚洲视频一区二区免费在线观看| 91在线观看免费视频| 亚洲不卡在线观看| www激情久久| 91成人在线免费观看| 男人的j进女人的j一区| 国产欧美久久久精品影院| 一本色道亚洲精品aⅴ| 一区二区三区av电影| 欧美大度的电影原声| 成人丝袜高跟foot| 日本不卡免费在线视频| 亚洲国产成人私人影院tom| 在线观看区一区二| 国产一区激情在线| 亚洲欧美日韩一区二区三区在线观看| 在线免费亚洲电影| 国产精品 欧美精品| 天涯成人国产亚洲精品一区av| 久久精品人人爽人人爽| 欧美日韩国产在线观看| 91在线观看一区二区| 国产在线视频精品一区| 亚洲成av人影院在线观看网| 国产精品成人免费| 久久亚区不卡日本| 91精品国产91久久久久久一区二区 | 国产欧美一区二区精品性| 欧美亚洲尤物久久| 一本一道综合狠狠老| 不卡电影免费在线播放一区| 国产在线播精品第三| 奇米精品一区二区三区在线观看一| 亚洲国产成人私人影院tom| 国产三级欧美三级日产三级99| 91搞黄在线观看| 琪琪一区二区三区| 亚洲免费观看高清完整版在线 | 亚洲国产精品久久久久秋霞影院 | 日韩经典一区二区| 亚洲午夜免费视频| 视频精品一区二区| 天天色综合成人网| 三级不卡在线观看| 久久机这里只有精品| 精品一区二区三区蜜桃| 国产综合一区二区| 国产一区二区在线免费观看| 国产成人精品免费网站| www.日韩在线| 欧美性欧美巨大黑白大战| 欧美精品日韩综合在线| 欧美在线观看视频一区二区| 欧美日韩www| 久久久另类综合| 一区二区三区日韩欧美精品| 日韩成人免费电影| 韩国毛片一区二区三区| 久久黄色级2电影| av在线不卡网| 欧美高清视频一二三区| 精品入口麻豆88视频| 国产精品久99| 三级精品在线观看| www.亚洲激情.com| 91精品中文字幕一区二区三区| 国产丝袜欧美中文另类| 亚洲一区二区三区不卡国产欧美| 久久99久久久久| 在线观看视频欧美| 国产欧美一区二区精品性色| 天堂一区二区在线| 99久久精品国产导航| 精品国产一区a| 午夜久久久久久久久| 91美女片黄在线| 久久品道一品道久久精品| 亚洲一区二区欧美激情| 国产91露脸合集magnet | 一级日本不卡的影视| 精品一区在线看| 777奇米成人网| 一区二区三区四区视频精品免费 | 久久精品视频网| 精品一区二区三区免费| 欧美一区二区三区免费观看视频| 综合久久一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩不卡视频| 日韩不卡免费视频| 欧美日韩另类国产亚洲欧美一级| 伊人色综合久久天天人手人婷| 国内一区二区视频| 精品国产亚洲在线| 国产曰批免费观看久久久| 日韩欧美在线1卡| 日本不卡视频一二三区| 日韩一区二区电影网| 日日摸夜夜添夜夜添精品视频 | 99re成人精品视频| 一区二区三区视频在线看| 欧美色窝79yyyycom| 五月综合激情网| 日韩视频一区在线观看| 美女精品自拍一二三四| av成人动漫在线观看| 欧美国产成人精品| jiyouzz国产精品久久| 亚洲国产成人在线| 一本到不卡免费一区二区| 天天操天天干天天综合网| 欧美一区二区三区电影| 看片网站欧美日韩| 国产精品你懂的| 3d成人动漫网站| 顶级嫩模精品视频在线看|