⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb-key.asm

📁 MC68HC608JB8的固件例程源程序.zip
💻 ASM
📖 第 1 页 / 共 3 页
字号:
*
        db      KEY_3,KEY_H0,CKEY_NA,KEY_C           ; col 15 |  row 0-3
        db      KEY_H2,KEY_D,KEY_H4,KEY_E            ; PTB5   |  row 4-7
*
        db      KEY_2,KEY_H1,CKEY_NA,KEY_X           ; col 16 |  row 0-3
        db      CKEY_NA,KEY_S,KEY_CLK,KEY_W          ; PTB6   |  row 4-7
*
        db      KEY_1,KEY_TIL,CKEY_NA,KEY_Z          ; col 17 |  row 0-3
        db      KEY_ESC,KEY_A,KEY_TAB,KEY_Q          ; PTB7   |  row 4-7
*
        db      KEY_PDN,KEY_PUP,KEY_NMI,KEY_NMU      ; col 9  |  row 0-3
        db      KEY_NDT,KEY_N3,KEY_N6,KEY_N9         ; PTC0   |  row 4-7
*
        db      PKEY_SLP,KEY_INS,KEY_RGT,KEY_NSL     ; col 8  |  row 0-3
        db      KEY_N0,KEY_N2,KEY_N5,KEY_N8          ; PTC1   |  row 4-7
*
        db      PKEY_PWR,KEY_DEL,KEY_DWN,KEY_NLK     ; col 7  |  row 0-3
        db      KEY_SPC,KEY_N1,KEY_N4,KEY_N7         ; PTC2   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 6  |  row 0-3
        db      CKEY_NA,KEY_RSFT,KEY_LSFT,PKEY_WKE   ; PTC3   |  row 4-7
*
        db      KEY_PSC,CKEY_NA,KEY_RALT,CKEY_NA     ; col 3  |  row 0-3
        db      KEY_LALT,CKEY_NA,CKEY_NA,KEY_SLK     ; PTC4   |  row 4-7
*
        db      KEY_H5,KEY_LCTL,CKEY_NA,KEY_RCTL     ; col 2  |  row 0-3
        db      CKEY_NA,CKEY_NA,CKEY_NA,KEY_PSE      ; PTC5   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 1  |  row 0-3
        db      CKEY_NA,CKEY_NA,KEY_LGUI,CKEY_NA     ; PTC6   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 0  |  row 0-3
        db      CKEY_NA,KEY_RGUI,CKEY_NA,CKEY_NA     ; PTC7   |  row 4-7
*
        db      KEY_0,KEY_MIS,KEY_SL,CKEY_NA         ; col 4  |  row 0-3
        db      KEY_CC,KEY_COL,KEY_OQO,KEY_P         ; PTE0   |  row 4-7
*
        db      KEY_H21,KEY_H20,KEY_H9,KEY_RTN       ; col 5  |  row 0-3
        db      KEY_H22,KEY_BSL,KEY_BSP,CKEY_NA      ; PTE2   |  row 4-7
*
SKEY_TABLE_OFF   equ     *
        db      KEY_7,KEY_8,KEY_9,KEY_0		; SKEY_0, 1, 2, 3
        db      KEY_u,KEY_i,KEY_o,KEY_p         ;      4, 5, 6, 7
*
        db      KEY_j,KEY_k,KEY_l,KEY_COL       ; SKEY_8, 9, 10, 11
        db      KEY_RTN,KEY_m,KEY_DOT,KEY_LCTL    ;      12, 13, 14, 15
*

SKEY_TABLE_ON    equ     *
        db      KEY_N7,KEY_N8,KEY_N9,KEY_NMU	; SKEY_0, 1, 2, 3
        db      KEY_N4,KEY_N5,KEY_N6,KEY_NMI	;      4, 5, 6, 7
*
        db      KEY_N1,KEY_N2,KEY_N3,KEY_NPL    ; SKEY_8, 9, 10, 11
        db      KEY_NET,KEY_N0,KEY_NDT,KEY_RCTL  ;      12, 13, 14, 15


.PAGE
$endif


$if KeyType3
* - for Win98 keyboard[Model# K280W]
* - F1-F12 replaced with Multimedia Keys H0 - H11
* - 
KEY_TABLE:
*
        db      KEY_END,KEY_HME,KEY_LFT,CKEY_NA      ; col 10 |  row 0-3
        db      KEY_UP,KEY_NET,CKEY_NA,KEY_NPL       ; PTB0   |  row 4-7
*
        db      KEY_9,KEY_H7,KEY_APP,KEY_DOT         ; col 11 |  row 0-3
        db      CKEY_NA,KEY_L,KEY_H6,KEY_O           ; PTB1   |  row 4-7
*
        db      KEY_8,KEY_EQU,CKEY_NA,KEY_CMA        ; col 12 |  row 0-3
        db      KEY_H5,KEY_K,KEY_EQO,KEY_I           ; PTB2   |  row 4-7
*
        db      KEY_7,KEY_6,KEY_N,KEY_M              ; col 13 |  row 0-3
        db      KEY_H,KEY_J,KEY_Y,KEY_U              ; PTB3   |  row 4-7
*
        db      KEY_4,KEY_5,KEY_B,KEY_V              ; col 14 |  row 0-3
        db      KEY_G,KEY_F,KEY_T,KEY_R              ; PTB4   |  row 4-7
*
        db      KEY_3,KEY_H1,CKEY_NA,KEY_C           ; col 15 |  row 0-3
        db      KEY_H3,KEY_D,KEY_H2,KEY_E            ; PTB5   |  row 4-7
*
        db      KEY_2,KEY_H0,CKEY_NA,KEY_X           ; col 16 |  row 0-3
        db      CKEY_NA,KEY_S,KEY_CLK,KEY_W          ; PTB6   |  row 4-7
*
        db      KEY_1,KEY_TIL,CKEY_NA,KEY_Z          ; col 17 |  row 0-3
        db      KEY_ESC,KEY_A,KEY_TAB,KEY_Q          ; PTB7   |  row 4-7
*
        db      KEY_PDN,KEY_PUP,KEY_NMI,KEY_NMU      ; col 9  |  row 0-3
        db      KEY_NDT,KEY_N3,KEY_N6,KEY_N9         ; PTC0   |  row 4-7
*
        db      PKEY_SLP,KEY_INS,KEY_RGT,KEY_NSL     ; col 8  |  row 0-3
        db      KEY_N0,KEY_N2,KEY_N5,KEY_N8          ; PTC1   |  row 4-7
*
        db      PKEY_PWR,KEY_DEL,KEY_DWN,KEY_NLK     ; col 7  |  row 0-3
        db      KEY_SPC,KEY_N1,KEY_N4,KEY_N7         ; PTC2   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 6  |  row 0-3
        db      CKEY_NA,KEY_RSFT,KEY_LSFT,PKEY_WKE   ; PTC3   |  row 4-7
*
        db      KEY_PSC,CKEY_NA,KEY_RALT,CKEY_NA     ; col 3  |  row 0-3
        db      KEY_LALT,CKEY_NA,CKEY_NA,KEY_SLK     ; PTC4   |  row 4-7
*
        db      KEY_H4,KEY_LCTL,CKEY_NA,KEY_RCTL     ; col 2  |  row 0-3
        db      CKEY_NA,CKEY_NA,CKEY_NA,KEY_PSE      ; PTC5   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 1  |  row 0-3
        db      CKEY_NA,CKEY_NA,KEY_LGUI,CKEY_NA     ; PTC6   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA      ; col 0  |  row 0-3
        db      CKEY_NA,KEY_RGUI,CKEY_NA,CKEY_NA     ; PTC7   |  row 4-7
*
        db      KEY_0,KEY_MIS,KEY_SL,CKEY_NA         ; col 4  |  row 0-3
        db      KEY_CC,KEY_COL,KEY_OQO,KEY_P         ; PTE0   |  row 4-7
*
        db      KEY_H9,KEY_H8,KEY_H11,KEY_RTN       ; col 5  |  row 0-3
        db      KEY_H10,KEY_BSL,KEY_BSP,CKEY_NA      ; PTE2   |  row 4-7
*
SKEY_TABLE_OFF   equ     *
        db      KEY_7,KEY_8,KEY_9,KEY_0		; SKEY_0, 1, 2, 3
        db      KEY_u,KEY_i,KEY_o,KEY_p         ;      4, 5, 6, 7
*
        db      KEY_j,KEY_k,KEY_l,KEY_COL       ; SKEY_8, 9, 10, 11
        db      KEY_RTN,KEY_m,KEY_DOT,KEY_LCTL    ;      12, 13, 14, 15
*

SKEY_TABLE_ON    equ     *
        db      KEY_N7,KEY_N8,KEY_N9,KEY_NMU	; SKEY_0, 1, 2, 3
        db      KEY_N4,KEY_N5,KEY_N6,KEY_NMI	;      4, 5, 6, 7
*
        db      KEY_N1,KEY_N2,KEY_N3,KEY_NPL    ; SKEY_8, 9, 10, 11
        db      KEY_NET,KEY_N0,KEY_NDT,KEY_RCTL  ;      12, 13, 14, 15


.PAGE
$endif
*

.PAGE
* ====== Key Matrix Table(Type 3) ========================================
* for KH12 demo kit keyboard matrix
* - for Win98 keyboard[Model# K280W]
*   "POWER" key at (col_14,row_7)
*   "SLEEP" key at (col_13,row_7)
*   "WAKE" key at (col_10,row_7)
$if KeyType4
KEY_TABLE:
*
        db      KEY_CLK,KEY_W,CKEY_NA,KEY_S         ; col 0  |  row 0-3
        db      CKEY_NA,KEY_X,KEY_2,KEY_F1          ; PTB0   |  row 4-7
*
        db      KEY_TAB,KEY_Q,KEY_ESC,KEY_A         ; col 1  |  row 0-3
        db      CKEY_NA,KEY_Z,KEY_1,KEY_TIL         ; PTB1   |  row 4-7
*
        db      KEY_F3,KEY_E,KEY_F4,KEY_D           ; col 2  |  row 0-3
        db      CKEY_NA,KEY_C,KEY_3,KEY_F2          ; PTB2   |  row 4-7
*
        db      KEY_T,KEY_R,KEY_G,KEY_F             ; col 3  |  row 0-3
        db      KEY_B,KEY_V,KEY_4,KEY_5             ; PTB3   |  row 4-7
*
        db      KEY_Y,KEY_U,KEY_H,KEY_J             ; col 4  |  row 0-3
        db      KEY_N,KEY_M,KEY_7,KEY_6             ; PTB4   |  row 4-7
*
        db      KEY_EQO,KEY_I,KEY_F6,KEY_K          ; col 5  |  row 0-3
        db      CKEY_NA,KEY_CMA,KEY_8,KEY_EQU       ; PTB5   |  row 4-7
*
        db      KEY_F7,KEY_O,CKEY_NA,KEY_L          ; col 6  |  row 0-3
        db      KEY_APP,KEY_DOT,KEY_9,KEY_F8        ; PTB6   |  row 4-7
*
        db      CKEY_NA,KEY_NPL,KEY_UP,KEY_NET      ; col 7  |  row 0-3
        db      KEY_LFT,CKEY_NA,KEY_END,KEY_HME     ; PTB7   |  row 4-7
*
        db      CKEY_NA,CKEY_NA,CKEY_NA,KEY_RGUI    ; col 17 |  row 0-3
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA     ; PTC0   |  row 4-7
*
        db      KEY_LGUI,CKEY_NA,CKEY_NA,CKEY_NA    ; col 16 |  row 0-3
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA     ; PTC1   |  row 4-7
*
        db      CKEY_NA,KEY_PSE,CKEY_NA,CKEY_NA     ; col 15 |  row 0-3
        db      CKEY_NA,KEY_RCTL,KEY_F5,KEY_LCTL    ; PTC2   |  row 4-7
*
        db      CKEY_NA,KEY_SLK,KEY_LALT,CKEY_NA    ; col 14 |  row 0-3
        db      KEY_RALT,CKEY_NA,KEY_PSC,CKEY_NA    ; PTC3   |  row 4-7
*
        db      KEY_LSFT,PKEY_WKE,CKEY_NA,KEY_RSFT  ; col 11 |  row 0-3
        db      CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA     ; PTC4   |  row 4-7
*
        db      KEY_N4,KEY_N7,KEY_SPC,KEY_N1        ; col 10 |  row 0-3
        db      KEY_DWN,KEY_NLK,PKEY_PWR,KEY_DEL    ; PTC5   |  row 4-7
*
        db      KEY_N5,KEY_N8,KEY_N0,KEY_N2         ; col 9  |  row 0-3
        db      KEY_RGT,KEY_NSL,PKEY_SLP,KEY_INS    ; PTC6   |  row 4-7
*
        db      KEY_N6,KEY_N9,KEY_NDT,KEY_N3        ; col 8  |  row 0-3
        db      KEY_NMI,KEY_NMU,KEY_PDN,KEY_PUP     ; PTC7   |  row 4-7
*
        db      KEY_BSP,CKEY_NA,KEY_F11,KEY_BSL     ; col 12 |  row 0-3
        db      KEY_F12,KEY_RTN,KEY_F10,KEY_F9      ; PTE0   |  row 4-7
*
        db      KEY_OQO,KEY_P,KEY_CC,KEY_COL        ; col 13 |  row 0-3
        db      KEY_SL,CKEY_NA,KEY_0,KEY_MIS        ; PTE2   |  row 4-7
*
SKEY_TABLE_OFF   equ     *
        db      KEY_7,KEY_8,KEY_9,KEY_0		; SKEY_0, 1, 2, 3
        db      KEY_u,KEY_i,KEY_o,KEY_p         ;      4, 5, 6, 7
*
        db      KEY_j,KEY_k,KEY_l,KEY_COL       ; SKEY_8, 9, 10, 11
        db      KEY_RTN,KEY_m,KEY_DOT,KEY_LCTL    ;      12, 13, 14, 15
*

SKEY_TABLE_ON    equ     *
        db      KEY_N7,KEY_N8,KEY_N9,KEY_NMU	; SKEY_0, 1, 2, 3
        db      KEY_N4,KEY_N5,KEY_N6,KEY_NMI	;      4, 5, 6, 7
*
        db      KEY_N1,KEY_N2,KEY_N3,KEY_NPL    ; SKEY_8, 9, 10, 11
        db      KEY_NET,KEY_N0,KEY_NDT,KEY_RCTL  ;      12, 13, 14, 15
*
$endif


* ====== Subroutines =====================================================

* --------------------------------------------------------------------- *
* LOCATE_KEY - return key number from KET_TABLE[row,col]                *
* In       :  reg_A             row number                              *
*             reg_X             column number                           *
* Out      :  V_KeyNum          key number                              *
* --------------------------------------------------------------------- *
ULOCATE_KEY:
LOCATE_KEY:
*
* --- Calculate Index to KNum_Table ---------------------------------
        sta     V_KeyNum                ; temp storage for row #
*
        lda     #K_RowMax
        mul                             ; reg_A * reg_X -> reg_X:reg_A
        add     V_KeyNum
*
* --- Get the [(COL*K_RowMax)+ROW]th item in KNUM_Table -------------
        tax
        lda     KEY_TABLE,x
        sta     V_KeyNum                ; store result
*
* -------------------------------------------------------------------
LKEY_EXIT:
        rts




* ====== End of File =====================================================
            end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -