📄 ps2-key.asm
字号:
db PKEY_VLDN,PKEY_NXTR,PKEY_VLUP,PKEY_PRTR ; | row 0-3
db PKEY_PLAY,PKEY_LALT,PKEY_RALT,PKEY_KAN5 ; PTB5 | row 4-7
*
; db PKEY_MUTE,PKEY_MEDIA,PKEY_LSFT,PKEY_RSFT ; | row 0-3
db PKEY_MUTE,PKEY_MEDIA,PKEY_FN,PKEY_RSFT ; | row 0-3
db PKEY_WFVR,PKEY_NA,PKEY_NA,PKEY_KAN4 ; PTB6 | row 4-7
*
db PKEY_STOP,PKEY_LGUI,PKEY_MAIL,PKEY_WHME ; | row 0-3
db PKEY_CALC,PKEY_MYPC,PKEY_NA,PKEY_KAN2 ; PTB7 | row 4-7
*
db PKEY_7,PKEY_8,PKEY_9,PKEY_0 ; | row 0-3 |
db PKEY_u,PKEY_i,PKEY_o,PKEY_p ; PTC0 | row 4-7 |
*
db PKEY_LFT,PKEY_UP,PKEY_DWN,PKEY_RGT ; | row 0-3
db PKEY_NBS,PKEY_KAN1,PKEY_NCMA,PKEY_APP ; PTC1 | row 4-7
*
db PKEY_KAN3,PKEY_INS,PKEY_DEL,PKEY_NLK ; | row 0-3
db PKEY_BSL,PKEY_PSC,PKEY_SLK,PKEY_PSE ; PTC2 | row 4-7
*
db PKEY_F4,PKEY_F5,PKEY_F6,PKEY_F7 ; | row 0-3
db PKEY_F8,PKEY_F10,PKEY_F11,PKEY_F12 ; PTC3 | row 4-7
*
db PKEY_z,PKEY_x,PKEY_c,PKEY_v ; | row 0-3
db PKEY_a,PKEY_s,PKEY_d,PKEY_f ; PTC4 | row 4-7
*
db PKEY_q,PKEY_w,PKEY_e,PKEY_r ; | row 0-3
db PKEY_1,PKEY_2,PKEY_3,PKEY_4 ; PTC5 | row 4-7
*
db PKEY_ESC,PKEY_F1,PKEY_F2,PKEY_F3 ; | row 0-3
db PKEY_TIL,PKEY_TAB,PKEY_SPC,PKEY_CMA ; PTC6 | row 4-7
*
db PKEY_FN,PKEY_NA,PKEY_SLP,PKEY_WFND ; | row 0-3
db PKEY_CLK,PKEY_NA,PKEY_NA,PKEY_RGUI ; PTC7 | row 4-7
*
db PKEY_5,PKEY_t,PKEY_g,PKEY_b ; | row 0-3
db PKEY_6,PKEY_y,PKEY_h,PKEY_n ; PTE0 | row 4-7
*
db PKEY_MIS,PKEY_EQU,PKEY_BSP,PKEY_OQO ; | row 0-3
db PKEY_EQO,PKEY_CC,PKEY_NUP,PKEY_F9 ; PTE2 | row 4-7
*
*
*
$endif
Fn_Keys_Table:
db PKEY_7,PKEY_8,PKEY_9,PKEY_0
db PKEY_u,PKEY_i,PKEY_o,PKEY_p
db PKEY_j,PKEY_k,PKEY_l,PKEY_COL
db PKEY_RTN,PKEY_m,PKEY_DOT,PKEY_LCTL
*
Fn_Keys_TEnd:
K_N_Fn_Keys equ {Fn_Keys_TEnd - Fn_Keys_Table}
Fn_Key_Def_Table: ; [FN] KEY PRESSED
db PKEY_N7,PKEY_N8,PKEY_N9,PKEY_NMU
db PKEY_N4,PKEY_N5,PKEY_N6,PKEY_NMI
db PKEY_N1,PKEY_N2,PKEY_N3,PKEY_NPL
db PKEY_NET,PKEY_N0,PKEY_NDT,PKEY_RCTL
$endif
* ====== Key Matrix Map ==================================================
* JB8 PCB version 0.1 and 0.2
* - for Win98 keyboard[Model# K280W]
** - F1-F12 replaced with Multimedia Keys
* - H1, H0, H4, H2, H5, H7, H6, H19, H20, H21, H22, H9
$if KeyType2
PKEY_TABLE equ *
*
db PKEY_END,PKEY_HME,PKEY_LFT,CKEY_NA ; col 10 | row 0-3
db PKEY_UP,PKEY_NET,CKEY_NA,PKEY_NPL ; PTB0 | row 4-7
*
db PKEY_9,PKEY_WBCK,PKEY_APP,PKEY_DOT ; col 11 | row 0-3
db CKEY_NA,PKEY_L,PKEY_VLUP,PKEY_O ; PTB1 | row 4-7
*
db PKEY_8,PKEY_EQU,CKEY_NA,PKEY_CMA ; col 12 | row 0-3
db PKEY_VLDN,PKEY_K,PKEY_EQO,PKEY_I ; PTB2 | row 4-7
*
db PKEY_7,PKEY_6,PKEY_N,PKEY_M ; col 13 | row 0-3
db PKEY_H,PKEY_J,PKEY_Y,PKEY_U ; PTB3 | row 4-7
*
db PKEY_4,PKEY_5,PKEY_B,PKEY_V ; col 14 | row 0-3
db PKEY_G,PKEY_F,PKEY_T,PKEY_R ; PTB4 | row 4-7
*
db PKEY_3,PKEY_NXTR,CKEY_NA,PKEY_C ; col 15 | row 0-3
db PKEY_STOP,PKEY_D,PKEY_PLAY,PKEY_E ; PTB5 | row 4-7
*
db PKEY_2,PKEY_PRTR,CKEY_NA,PKEY_X ; col 16 | row 0-3
db CKEY_NA,PKEY_S,PKEY_CLK,PKEY_W ; PTB6 | row 4-7
*
db PKEY_1,PKEY_TIL,CKEY_NA,PKEY_Z ; col 17 | row 0-3
db PKEY_ESC,PKEY_A,PKEY_TAB,PKEY_Q ; PTB7 | row 4-7
*
db PKEY_PDN,PKEY_PUP,PKEY_NMI,PKEY_NMU ; col 9 | row 0-3
db PKEY_NDT,PKEY_N3,PKEY_N6,PKEY_N9 ; PTC0 | row 4-7
*
db PS2KEY_SLP,PKEY_INS,PKEY_RGT,PKEY_NSL ; col 8 | row 0-3
db PKEY_N0,PKEY_N2,PKEY_N5,PKEY_N8 ; PTC1 | row 4-7
*
db PS2KEY_PWR,PKEY_DEL,PKEY_DWN,PKEY_NLK ; col 7 | row 0-3
db PKEY_SPC,PKEY_N1,PKEY_N4,PKEY_N7 ; PTC2 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 6 | row 0-3
db CKEY_NA,PKEY_RSFT,PKEY_LSFT,PS2KEY_WKE; PTC3 | row 4-7
*
db PKEY_PSC,CKEY_NA,PKEY_RALT,CKEY_NA ; col 3 | row 0-3
db PKEY_LALT,CKEY_NA,CKEY_NA,PKEY_SLK ; PTC4 | row 4-7
*
db PKEY_MUTE,PKEY_LCTL,CKEY_NA,PKEY_RCTL ; col 2 | row 0-3
db CKEY_NA,CKEY_NA,CKEY_NA,PKEY_PSE ; PTC5 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 1 | row 0-3
db CKEY_NA,CKEY_NA,PKEY_LGUI,CKEY_NA ; PTC6 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 0 | row 0-3
db CKEY_NA,PKEY_RGUI,CKEY_NA,CKEY_NA ; PTC7 | row 4-7
*
db PKEY_0,PKEY_MIS,PKEY_SL,CKEY_NA ; col 4 | row 0-3
db PKEY_CC,PKEY_COL,PKEY_OQO,PKEY_P ; PTE0 | row 4-7
*
db PKEY_WSTP,PKEY_WFRD,PKEY_MAIL,PKEY_RTN ; col 5 | row 0-3
db PKEY_WRFH,PKEY_BSL,PKEY_BSP,CKEY_NA ; PTE2 | row 4-7
$endif
$if KeyType3
* - for Win98 keyboard[Model# K280W]
* - F1-F12 replaced with Multimedia Keys H0 - H11
* -
PKEY_TABLE equ *
*
db PKEY_END,PKEY_HME,PKEY_LFT,CKEY_NA ; col 10 | row 0-3
db PKEY_UP,PKEY_NET,CKEY_NA,PKEY_NPL ; PTB0 | row 4-7
*
db PKEY_9,PKEY_VLDN,PKEY_APP,PKEY_DOT ; col 11 | row 0-3
db CKEY_NA,PKEY_L,PKEY_VLUP,PKEY_O ; PTB1 | row 4-7
*
db PKEY_8,PKEY_EQU,CKEY_NA,PKEY_CMA ; col 12 | row 0-3
db PKEY_MUTE,PKEY_K,PKEY_EQO,PKEY_I ; PTB2 | row 4-7
*
db PKEY_7,PKEY_6,PKEY_N,PKEY_M ; col 13 | row 0-3
db PKEY_H,PKEY_J,PKEY_Y,PKEY_U ; PTB3 | row 4-7
*
db PKEY_4,PKEY_5,PKEY_B,PKEY_V ; col 14 | row 0-3
db PKEY_G,PKEY_F,PKEY_T,PKEY_R ; PTB4 | row 4-7
*
db PKEY_3,PKEY_PRTR,CKEY_NA,PKEY_C ; col 15 | row 0-3
db PKEY_F4,PKEY_D,PKEY_STOP,PKEY_E ; PTB5 | row 4-7
*
db PKEY_2,PKEY_NXTR,CKEY_NA,PKEY_X ; col 16 | row 0-3
db CKEY_NA,PKEY_S,PKEY_CLK,PKEY_W ; PTB6 | row 4-7
*
db PKEY_1,PKEY_TIL,CKEY_NA,PKEY_Z ; col 17 | row 0-3
db PKEY_ESC,PKEY_A,PKEY_TAB,PKEY_Q ; PTB7 | row 4-7
*
db PKEY_PDN,PKEY_PUP,PKEY_NMI,PKEY_NMU ; col 9 | row 0-3
db PKEY_NDT,PKEY_N3,PKEY_N6,PKEY_N9 ; PTC0 | row 4-7
*
db PS2KEY_SLP,PKEY_INS,PKEY_RGT,PKEY_NSL ; col 8 | row 0-3
db PKEY_N0,PKEY_N2,PKEY_N5,PKEY_N8 ; PTC1 | row 4-7
*
db PS2KEY_PWR,PKEY_DEL,PKEY_DWN,PKEY_NLK ; col 7 | row 0-3
db PKEY_SPC,PKEY_N1,PKEY_N4,PKEY_N7 ; PTC2 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 6 | row 0-3
db CKEY_NA,PKEY_RSFT,PKEY_LSFT,PS2KEY_WKE; PTC3 | row 4-7
*
db PKEY_PSC,CKEY_NA,PKEY_RALT,CKEY_NA ; col 3 | row 0-3
db PKEY_LALT,CKEY_NA,CKEY_NA,PKEY_SLK ; PTC4 | row 4-7
*
db PKEY_PLAY,PKEY_LCTL,CKEY_NA,PKEY_RCTL ; col 2 | row 0-3
db CKEY_NA,CKEY_NA,CKEY_NA,PKEY_PSE ; PTC5 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 1 | row 0-3
db CKEY_NA,CKEY_NA,PKEY_LGUI,CKEY_NA ; PTC6 | row 4-7
*
db CKEY_NA,CKEY_NA,CKEY_NA,CKEY_NA ; col 0 | row 0-3
db CKEY_NA,PKEY_RGUI,CKEY_NA,CKEY_NA ; PTC7 | row 4-7
*
db PKEY_0,PKEY_MIS,PKEY_SL,CKEY_NA ; col 4 | row 0-3
db PKEY_CC,PKEY_COL,PKEY_OQO,PKEY_P ; PTE0 | row 4-7
*
db PKEY_MAIL,PKEY_MEDIA,PKEY_MYPC,PKEY_RTN ; col 5 | row 0-3
db PKEY_CALC,PKEY_BSL,PKEY_BSP,CKEY_NA ; PTE2 | row 4-7
$endif
$if KeyType4
.PAGE
* ====== Key Matrix Map ==================================================
* for keyboard verion 0.0 (KH12 type keyboard)
*
PKEY_TABLE equ *
db PKEY_CLK,PKEY_W,PKEY_NA,PKEY_S ; col 0 | row 0-3
db PKEY_NA,PKEY_X,PKEY_2,PKEY_F1 ; PTB0 | row 4-7
*
db PKEY_TAB,PKEY_Q,PKEY_ESC,PKEY_A ; col 1 | row 0-3
db PKEY_NA,PKEY_Z,PKEY_1,PKEY_TIL ; PTB1 | row 4-7
*
db PKEY_F3,PKEY_E,PKEY_F4,PKEY_D ; col 2 | row 0-3
db PKEY_NA,PKEY_C,PKEY_3,PKEY_F2 ; PTB2 | row 4-7
*
db PKEY_T,PKEY_R,PKEY_G,PKEY_F ; col 3 | row 0-3
db PKEY_B,PKEY_V,PKEY_4,PKEY_5 ; PTB3 | row 4-7
*
db PKEY_Y,PKEY_U,PKEY_H,PKEY_J ; col 4 | row 0-3
db PKEY_N,PKEY_M,PKEY_7,PKEY_6 ; PTB4 | row 4-7
*
db PKEY_EQO,PKEY_I,PKEY_F6,PKEY_K ; col 5 | row 0-3
db PKEY_NA,PKEY_CMA,PKEY_8,PKEY_EQU ; PTB5 | row 4-7
*
db PKEY_F7,PKEY_O,PKEY_NA,PKEY_L ; col 6 | row 0-3
db PKEY_APP,PKEY_DOT,PKEY_9,PKEY_F8 ; PTB6 | row 4-7
*
db PKEY_NA,PKEY_NPL,PKEY_UP,PKEY_NET ; col 7 | row 0-3
db PKEY_LFT,PKEY_NA,PKEY_END,PKEY_HME ; PTB7 | row 4-7
*
db PKEY_NA,PKEY_NA,PKEY_NA,PKEY_RGUI ; col 17 | row 0-3
db PKEY_NA,PKEY_NA,PKEY_NA,PKEY_NA ; PTC0 | row 4-7
db PKEY_LGUI,PKEY_NA,PKEY_NA,CKEY_NA ; col 16 | row 0-3
db PKEY_NA,PKEY_NA,PKEY_NA,PKEY_NA ; PTC1 | row 4-7
*
db PKEY_NA,PKEY_PSE,PKEY_NA,PKEY_NA ; col 15 | row 0-3
db PKEY_NA,PKEY_RCTL,PKEY_F5,PKEY_LCTL ; PTC2 | row 4-7
*
db PKEY_NA,PKEY_SLK,PKEY_LALT,PKEY_NA ; col 14 | row 0-3
db PKEY_RALT,PKEY_NA,PKEY_PSC,PKEY_NA ; PTC3 | row 4-7
*
db PKEY_LSFT,PS2KEY_WKE,PKEY_NA,PKEY_RSFT ; col 11 | row 0-3
db PKEY_NA,PKEY_NA,PKEY_NA,PKEY_NA ; PTC4 | row 4-7
*
db PKEY_N4,PKEY_N7,PKEY_SPC,PKEY_N1 ; col 10 | row 0-3
db PKEY_DWN,PKEY_NLK,PS2KEY_PWR,PKEY_DEL ; PTC5 | row 4-7
*
db PKEY_N5,PKEY_N8,PKEY_N0,PKEY_N2 ; col 9 | row 0-3
db PKEY_RGT,PKEY_NSL,PS2KEY_SLP,PKEY_INS ; PTC6 | row 4-7
*
db PKEY_N6,PKEY_N9,PKEY_NDT,PKEY_N3 ; col 8 | row 0-3
db PKEY_NMI,PKEY_NMU,PKEY_PDN,PKEY_PUP ; PTC7 | row 4-7
*
db PKEY_BSP,PKEY_NA,PKEY_F11,PKEY_BSL ; col 12 | row 0-3
db PKEY_F12,PKEY_RTN,PKEY_F10,PKEY_F9 ; PTE0 | row 4-7
*
db PKEY_OQO,PKEY_P,PKEY_CC,PKEY_COL ; col 13 | row 0-3
db PKEY_SL,PKEY_NA,PKEY_0,PKEY_MIS ; PTE2 | row 4-7
$endif
.PAGE
* ====== 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 *
* --------------------------------------------------------------------- *
PLOCATE_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 PKEY_TABLE,x
sta V_KeyNum ; store result
*
* -------------------------------------------------------------------
LPKEY_EXIT:
rts
* ====== End of File =====================================================
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -