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

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

?? ps2key.asm

?? Cypress 的(鼠標+鍵盤)復合設備匯編源程序
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
;
;========================================================================


ps2key_check_typematic:
    push    A                               ;save A
    mov     A,[ps2key_last_key_made]        ;if we've got a key make in the typematic buffer
    cmp     A,0
    jz      .exit
    mov     A,[ps2key_delay_ctr]            ;check the delay counter
    cmp     A,0                             ;if not zero
    jz      .exit
    dec     [ps2key_delay_ctr]              ;    decrement it
    jnz     .exit
    mov     A,[ps2key_type_period]          ; if now zero, reinitialize to
                                            ; typematic interval
    mov     [ps2key_delay_ctr],A             ;  and generate a key code

    ;we're generating a make code. Set the make flag, and if the
    ;key we must "repeat" requires an extension byte (E0), set the flag for
    ;that too
    SETBIT  PS2KEY_MAKE_FLAG,ps2key_flags           ;set make flag
    CLRBIT  PS2KEY_EXTENDED_FLAG,ps2key_flags       ;clear extension flag
    TSTBIT  PS2KEY_EXTENDED_FLAG,ps2key_last_flags  ;if typematic key was extended
    jz      .noextend
    SETBIT  PS2KEY_EXTENDED_FLAG,ps2key_flags       ;set extention flag
.noextend:
    mov     A,[ps2key_last_key_made]                ;get the key to be generated
    call    put_code                                ;and make it
.exit:
    pop     A
    ret
;========================================================================
; FUNCTION: check_typematic_break
;
;
; Checks to see if the key in A is the same as the current typematic key.
; If it is, it disables typematic action. this routine is typically called
; on key breaks to see if the current typematic key has been released.
;
; Returns:
;
;========================================================================

check_typematic_break:
    cmp     A,[ps2key_last_key_made]            ;if this key is the same as the last key make
    jnz     .exit
    call    ps2key_disable_typematic_action     ;turn off the typematic action
.exit:
    ret




;========================================================================
; ps2key_init
;
; initializes variables maintained by this module
;
;
;========================================================================


ps2key_init:
    CLEARRAM ps2key_ram_base,PS2KEY_RAM_SIZE        ;clear ram
    call    ps2key_clear_key_buffer
    mov     A,SCAN_SET_2                            ;initialize to scan set 2
    mov     [ps2key_scan_set],A
    call    ps2key_set_default_key_types               ;set default ss3 types
   ret
;========================================================================
; ps2key_clear_key_buffer
;
; clears the key buffer
;
;
;========================================================================

ps2key_clear_key_buffer:
    push    A
    mov     A,ps2key_key_buffer                     ;initialize buffer pointers
    mov     [ps2key_inptr],A
    mov     [ps2key_outptr],A
    mov     A,0
    mov     [ps2key_key_count],A
    pop     A
    ret



;========================================================================
; FUNCTION: ps2key_at101_2_ss3
;
;  returns the scan-set3 code for the at101 code passed in A
;
;
;
;
;========================================================================

 ps2key_at101_2_ss3:
    index scan_set_3_table
    ret

;========================================================================
; FUNCTION: ps2key_save_key_type
;
; saves the key type (in X) for the associated key (in A) in the key
; type array. The key is specified by its scan set 3 make code. The key
; type array is a packed array of 2-bit fields, into which the key type
; is inserted.
;
;========================================================================



XPAGEOFF
;
;define a lookup which returns the mask for each of the 4 possible 2-bit
;fields within a byte

ps2_key_mask:
    db      03,0ch,030h,0c0h

;define another lookup which returns the 2-bit values shifted into their
;proper fields for insertion into a byte

ps2_key_value:
    db      00h,01h,02h,03h             ;values for bits 1-0
    db      00h,04h,08h,0ch             ;values for bits 3-2
    db      00h,10h,20h,30h             ;values for bits 5-4
    db      00h,40h,080h,0c0h           ;values for bits 7-6
XPAGEON



ps2key_save_key_type:
    push    A                           ;save key code
    push    X                           ;save X register
    swap    A,X                         ;A <- key type
    mov     [ps2_temp0],A               ;save type in working register
    swap    A,X                         ;get scan code back in A

    cmp     A,LAST_SCAN3_CODE           ;if valid code
    jnc     .exit
    push    A                           ;save scan code
    rrc     A                           ;divide code by 4
    rrc     A
    and     A,03fh                      ;make sure bits 6 and 7 are clear
                                        ;this is now the byte-index into type  array
    mov     X,A                         ;put it in index reg
    pop     A                           ;restore scan code

    and     A,3                         ;mask off all but 2 ls bits
    push    A                           ;and save it
    index   ps2_key_mask                ;get mask for this pair of bits within byte
    cpl     A                           ;complement it
    and     A,[X + ps2key_type_array]   ;apply it to array at byte index
    mov     [X + ps2key_type_array],A   ;and save it
    pop     A                           ;get bits 1 and 0 of scan code AGAIN
    asl     A                           ;shift left by 2 bits
    asl     A
    add     a,[ps2_temp0]               ;add in value to set bits to
    index   ps2_key_value               ;look up this value
    or      a,[X + ps2key_type_array]   ;apply it to type ram array
    mov     [X + ps2key_type_array],A   ;and save it there
.exit:
    pop     X                           ;restore X and A registers
    pop     A
    ret

;========================================================================
; FUNCTION: ps2key_get_key_type
;
;
;returns the key type in X, for the given key code specified in A.
;
;the key is identified by its scan set 3 make code.
;
;========================================================================


ps2key_get_key_type:
    push    A                       ;save A

    push    A                       ;save it again
    rrc     A                       ;divide code by 4
    rrc     A
    and     A,03fh                  ;make sure bits 6 and 7 are clear
                                    ;this is now the byte-index into  ram array
    mov     X,A                     ;put it in index reg
    mov     A,[X + ps2key_type_array]  ;get the byte that contains the setting into A
    mov     X,A                     ;put it in X
    pop     A                       ;restore scan code
    and     A,3                     ;mask off all but 2 ls bits
    swap    A,X                     ;A now contains byte with settings, X the bit offset
.lp:
    dec     X                       ;loop, shifting by two bits until
    jc      .lp1                    ;desired bits are in bits 1 and 0
    asr     a
    asr     a
    jmp     .lp
.lp1:
    and     A,3                     ;clean up bits 7-2
    mov     X,A                     ;move into x register
    pop     A                       ;restore a register
    ret                             ;return


;========================================================================
; FUNCTION: ps2key_set_all_keys
;
;
;sets the type of all keys to the type specified in the A register
;
;the key is identified by its scan set 3 make code.
;
;========================================================================
XPAGEOFF

;define a table of 3 entries that defines key types as either
;all typematic, make_break, or make

set_keys_table:
 TYPE    TYPEMATIC,TYPEMATIC,TYPEMATIC,TYPEMATIC
 TYPE    MAKE_BREAK,MAKE_BREAK,MAKE_BREAK,MAKE_BREAK
 TYPE    MAKE,MAKE,MAKE,MAKE
XPAGEON
ps2key_set_all_keys:

    index   set_keys_table                  ;translate key type into entire byte
    mov     X,PS2_TYPE_ARRAY_SIZE-1         ;and fill key type array with this byte
.lp1:
    mov     [X+ps2key_type_array],A
    dec     X
    jnc     .lp1
    ret

;========================================================================
; FUNCTION: ps2key_set_default_key_types
;
;
;sets the type of all keys to the defaults
;
;
;========================================================================

ps2key_set_default_key_types:
   push     A                                        ;save regs
   push     X

    mov     X,PS2_TYPE_ARRAY_SIZE-1           ;set A and X to length of copy
    mov     A,PS2_TYPE_ARRAY_SIZE-1

.l1:
    push    A                                        ;save A
    index   typematic_default_table           ;get ROM value
    mov     [x+ps2key_type_array],a              ;move it into RAM
    pop     A                                        ;restore A
    dec     A                                        ;decrement pointers
    dec     X
    jnc     .l1

    ;now restore rate and interval to the defaults

    mov     A,PS2_DEFAULT_TYPEMATIC_DELAY
    mov     [ps2key_type_delay],A
    mov     A,PS2_DFFAULT_TYPEMATIC_INTERVAL
    mov     [ps2key_type_period],A

    pop     X
    pop     A
    ret


    XPAGEOFF

;this table is sorted according to scan 3 make codes!!!

typematic_default_table:                                    ;set3 code

    TYPE TYPEMATIC,TYPEMATIC,MAKE_BREAK,MAKE_BREAK          ;0-3
    TYPE MAKE_BREAK,MAKE_BREAK,MAKE_BREAK,MAKE              ;4-7
    TYPE MAKE,MAKE_BREAK,TYPEMATIC,TYPEMATIC                ;8-b
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;c-f
    TYPE TYPEMATIC,MAKE_BREAK,MAKE_BREAK,TYPEMATIC          ;10-13
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,MAKE                ;14-17
    TYPE MAKE_BREAK,MAKE_BREAK,TYPEMATIC,TYPEMATIC          ;18-1b
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;1c-1f
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;20-23
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;24-27
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;28-2b
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;2c-2f
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;30-33
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;34-37
    TYPE MAKE_BREAK,MAKE,TYPEMATIC,TYPEMATIC                ;38-3b
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;3c-3f
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;40-43
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;44-47
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;48-4b
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,MAKE                 ;4c-4f
    TYPE MAKE_BREAK,TYPEMATIC,TYPEMATIC,TYPEMATIC           ;50-53
    TYPE TYPEMATIC,TYPEMATIC,MAKE,MAKE                      ;54-57
    TYPE MAKE,MAKE_BREAK,TYPEMATIC,TYPEMATIC                ;58-5b
    TYPE TYPEMATIC,TYPEMATIC,MAKE,MAKE                      ;5c-5f
    TYPE TYPEMATIC,TYPEMATIC,MAKE,TYPEMATIC                 ;60-63
    TYPE TYPEMATIC,MAKE,TYPEMATIC,MAKE                      ;64-67
    TYPE MAKE,MAKE,TYPEMATIC,MAKE                           ;68-6b
    TYPE MAKE,MAKE,MAKE,MAKE                                ;6c-6f
    TYPE MAKE,MAKE,MAKE,MAKE                                ;70-73
    TYPE MAKE,MAKE,MAKE,MAKE                                ;74-77
    TYPE MAKE,MAKE,MAKE,TYPEMATIC                           ;78-7b
    TYPE TYPEMATIC,MAKE,MAKE,MAKE                           ;7c-7f
    TYPE TYPEMATIC,TYPEMATIC,TYPEMATIC,TYPEMATIC            ;80-83
    TYPE MAKE,MAKE,MAKE,MAKE                                ;84-87
    TYPE MAKE,MAKE,MAKE,MAKE_BREAK                          ;88-8b
    TYPE MAKE_BREAK,MAKE_BREAK,MAKE,MAKE                    ;8c-8f






scan_set_1_table:                                       ;IBM key no.

    db          000h,029h,002h,003h,004h,005h,006h,007h ;0-7
    db          008h,009h,00ah,00bh,00ch,00dh,000h,00eh ;8-15
    db          00fh,010h,011h,012h,013h,014h,015h,016h ;16-23
    db          017h,018h,019h,01ah,01bh,02bh,03ah,01eh ;24-31
    db          01fh,020h,021h,022h,023h,024h,025h,026h ;32-39
    db          027h,028h,02bh,01ch,02ah,056h,02ch,02dh ;40-47
    db          02eh,02fh,030h,031h,032h,033h,034h,035h ;48-55
    db          000h,036h,01dh,000h,038h,039h,038h,000h ;56-63
    db          01dh,000h,000h,000h,000h,000h,000h,000h ;64-71
    db          000h,000h,000h,052h,053h,000h,000h,04bh ;72-79
    db          047h,04fh,000h,048h,050h,049h,051h,000h ;80-87
    db          000h,04dh,045h,047h,04bh,04fh,000h,035h ;88-95
    db          048h,04ch,050h,052h,037h,049h,04dh,051h ;96-103
    db          053h,04ah,04eh,000h,01ch,000h,001h,000h ;104-111
    db          03bh,03ch,03dh,03eh,03fh,040h,041h,042h ;112-119
    db          043h,044h,057h,058h,037h,046h,046h,05bh ;120-127
    db          05ch,05dh,05eh,05fh,063h,000h,000h,054h       ;128-235
        db      025h,026h,032h,017h,030h,02eh,05fh,01eh
        db      020h,022h,021h,023h,024h,012h,000h,000h

scan_set_2_table:                                       ;IBM key no.

    db          000h,00eh,016h,01eh,026h,025h,02eh,036h ;0-7
    db          03dh,03eh,046h,045h,04eh,055h,000h,066h ;8-15
    db          00dh,015h,01dh,024h,02dh,02ch,035h,03ch ;16-23
    db          043h,044h,04dh,054h,05bh,05dh,058h,01ch ;24-31
    db          01bh,023h,02bh,034h,033h,03bh,042h,04bh ;32-39
    db          04ch,052h,05dh,05ah,012h,061h,01ah,022h ;40-47
    db          021h,02ah,032h,031h,03ah,041h,049h,04ah ;48-55
    db          000h,059h,014h,000h,011h,029h,011h,000h ;56-63
    db          014h,000h,000h,000h,000h,000h,000h,000h ;64-71
    db          000h,000h,000h,070h,071h,000h,000h,06bh ;72-79
    db          06ch,069h,000h,075h,072h,07dh,07ah,000h ;80-87
    db          000h,074h,077h,06ch,06bh,069h,000h,04ah ;88-95
    db          075h,073h,072h,070h,07ch,07dh,074h,07ah ;96-103
    db          071h,07bh,079h,000h,05ah,000h,076h,000h ;104-111
    db          005h,006h,004h,00ch,003h,00bh,083h,00ah ;112-119
    db          001h,009h,078h,007h,07ch,07eh,07eh,01fh ;120-127
    db          027h,02fh,037h,03fh,078h,000h,000h,084h       ;128-235
        db      042h,04bh,03ah,043h,032h,021h,03fh,01ch
        db      023h,034h,02bh,033h,03bh,024h,000h,000h

scan_set_3_table:                                       ;IBM key no.

    db          000h,00eh,016h,01eh,026h,025h,02eh,036h ;0-7
    db          03dh,03eh,046h,045h,04eh,055h,000h,066h ;8-15
    db          00dh,015h,01dh,024h,02dh,02ch,035h,03ch ;16-23
    db          043h,044h,04dh,054h,05bh,05ch,014h,01ch ;24-31
    db          01bh,023h,02bh,034h,033h,03bh,042h,04bh ;32-39
    db          04ch,052h,053h,05ah,012h,013h,01ah,022h ;40-47
    db          021h,02ah,032h,031h,03ah,041h,049h,04ah ;48-55
    db          000h,059h,011h,000h,019h,029h,039h,000h ;56-63
    db          058h,000h,000h,000h,000h,000h,000h,000h ;64-71
    db          000h,000h,000h,067h,064h,000h,000h,061h ;72-79
    db          06eh,065h,000h,063h,060h,06fh,06dh,000h ;80-87
    db          000h,06ah,076h,06ch,06bh,069h,000h,077h ;88-95
    db          075h,073h,072h,070h,07eh,07dh,074h,07ah ;96-103
    db          071h,084h,07ch,000h,079h,000h,008h,000h ;104-111
    db          007h,00fh,017h,01fh,027h,02fh,037h,03fh ;112-119
    db          047h,04fh,056h,05eh,057h,05fh,062h,08bh ;120-127
    db          08ch,08dh,081h,082h,083h,000h,000h,000h       ;128-235
        db      002h,003h,004h,005h,006h,018h,000h,028h
        db      030h,038h,040h,048h,050h,009h,000h,000h


ss1_key126_make_scan_code:
    db          0e1h,01dh,045h,0e1h,09dh,0c5h,00h
ss2_key126_make_scan_code:
    db          0e1h,014h,077h,0e1h,0f0h,014h,0f0h,077h,00h
    XPAGEON



















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久| 91福利国产成人精品照片| 亚洲色图第一区| 欧美一级高清片| 91色九色蝌蚪| 国产另类ts人妖一区二区| 亚洲美腿欧美偷拍| 久久久久久麻豆| 91精品国产一区二区三区香蕉| 洋洋av久久久久久久一区| 久久久不卡网国产精品一区| 欧美日韩在线不卡| 94-欧美-setu| 国产91精品久久久久久久网曝门| 天堂蜜桃一区二区三区| 成人免费一区二区三区在线观看| 日韩久久免费av| 欧美精品成人一区二区三区四区| 97久久精品人人做人人爽50路| 九九热在线视频观看这里只有精品| 亚洲福利一区二区| 亚洲免费观看高清完整版在线观看| 国产欧美视频一区二区| 不卡av电影在线播放| 国产在线不卡一区| 日韩精品久久久久久| 亚洲网友自拍偷拍| 亚洲乱码一区二区三区在线观看| 国产午夜精品美女毛片视频| 欧美精品vⅰdeose4hd| 色婷婷国产精品| 91免费看`日韩一区二区| 成人精品视频网站| 国产99久久久精品| 国产精品亚洲一区二区三区妖精| 久久99精品视频| 蜜桃视频在线一区| 久久国产尿小便嘘嘘| 蜜桃视频免费观看一区| 麻豆91在线看| 精品一区二区久久久| 久久不见久久见中文字幕免费| 蜜臀99久久精品久久久久久软件| 午夜精品成人在线| 日韩av电影天堂| 毛片不卡一区二区| 韩国精品在线观看| 国产福利电影一区二区三区| 成人免费视频网站在线观看| 国产成人aaaa| 一本到高清视频免费精品| 色欧美片视频在线观看| 在线观看视频一区二区| 欧美男男青年gay1069videost| 欧美乱妇20p| 欧美大片在线观看一区| 久久久国产一区二区三区四区小说| 国产区在线观看成人精品| 国产精品免费人成网站| 自拍偷拍欧美激情| 午夜成人在线视频| 另类欧美日韩国产在线| 国产成人在线网站| 91免费版pro下载短视频| 欧美午夜精品理论片a级按摩| 91精品黄色片免费大全| 久久天天做天天爱综合色| 国产人成亚洲第一网站在线播放 | 亚洲国产美女搞黄色| 日韩在线观看一区二区| 老色鬼精品视频在线观看播放| 国产伦精品一区二区三区免费迷 | 久久久青草青青国产亚洲免观| 欧美韩国日本综合| 亚洲精品免费看| 久久国产剧场电影| 成人网在线免费视频| 欧美色视频在线观看| 欧美成人一级视频| 亚洲欧美另类久久久精品2019| 视频一区二区不卡| 大桥未久av一区二区三区中文| 欧美中文字幕一区二区三区| 欧美mv日韩mv国产网站app| 日韩理论电影院| 日韩成人dvd| 成人97人人超碰人人99| 在线成人午夜影院| 国产精品青草久久| 日本欧美在线观看| 91一区在线观看| 欧美成人一区二区三区| 亚洲综合在线电影| 国产乱国产乱300精品| 欧美日韩和欧美的一区二区| 国产欧美中文在线| 日本少妇一区二区| 日本高清视频一区二区| 久久亚洲二区三区| 日韩在线a电影| 91亚洲大成网污www| 精品欧美乱码久久久久久1区2区| 亚洲欧美电影院| 成人性视频网站| 欧美mv和日韩mv国产网站| 亚洲一区在线电影| 99免费精品视频| 欧美精品一区二区高清在线观看| 亚洲午夜羞羞片| 成人av网在线| 久久一区二区三区四区| 日韩av在线发布| 色偷偷成人一区二区三区91| 国产日产精品1区| 久久97超碰国产精品超碰| 欧美日产国产精品| 一区二区三区四区在线播放| 国产成人午夜精品5599| 精品国产伦理网| 三级在线观看一区二区| 在线观看视频91| 亚洲欧洲综合另类在线| 成人av小说网| 国产精品二区一区二区aⅴ污介绍| 国产酒店精品激情| 26uuu色噜噜精品一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩国产首页| 午夜精品久久久久久久蜜桃app| 色狠狠一区二区| 国产精品美女久久久久高潮| 国产高清在线精品| 国产日产欧美一区二区视频| 国产成人亚洲综合a∨婷婷| 国产日韩av一区| 成人免费电影视频| 国产精品第四页| 99精品国产视频| 亚洲色图另类专区| 欧美性大战久久久久久久蜜臀| 一区二区不卡在线播放| 欧美中文字幕一二三区视频| 亚洲电影视频在线| 777午夜精品免费视频| 日韩电影免费一区| 日韩欧美电影在线| 国产专区综合网| 中文一区二区完整视频在线观看| 豆国产96在线|亚洲| 国产精品免费视频观看| 色综合久久精品| 亚洲国产日韩一区二区| 欧美亚洲国产bt| 日韩精品欧美精品| 精品久久国产老人久久综合| 国模套图日韩精品一区二区 | 91精品在线麻豆| 久久精品国内一区二区三区| 精品三级av在线| 国产成人啪午夜精品网站男同| 国产精品丝袜黑色高跟| 色婷婷综合久久久中文字幕| 亚洲va国产天堂va久久en| 日韩一区二区在线播放| 国产福利一区二区三区视频在线| 国产午夜一区二区三区| 91原创在线视频| 日本成人超碰在线观看| 久久美女高清视频| 91视频免费看| 丝袜美腿亚洲一区| 国产网红主播福利一区二区| 一本大道综合伊人精品热热| 日日夜夜精品视频天天综合网| 久久久久久久久免费| 色综合久久综合| 免费观看在线色综合| 国产精品欧美一区喷水| 日本久久一区二区| 久久国产生活片100| 亚洲男人电影天堂| 精品日韩在线观看| 色94色欧美sute亚洲线路一久 | 色悠久久久久综合欧美99| 日本视频免费一区| 亚洲欧美日韩一区二区| 日韩欧美国产综合一区| 99久久精品99国产精品| 秋霞电影一区二区| 中文字幕免费不卡在线| 欧美疯狂性受xxxxx喷水图片| 国产不卡视频在线观看| 日本美女一区二区| 亚洲男人都懂的| 国产性天天综合网| 欧美一级高清片在线观看| 在线观看国产精品网站| 国产成人av电影| 黄色成人免费在线| 日韩精品一卡二卡三卡四卡无卡|