📄 usb-key.asm
字号:
*
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 + -