📄 usb-key.asm
字号:
*****************************************************************************
* Copyright (c) Motorola 2000 *
* File Name: USB-KEY.ASM *
* *
* Description: Keyboard matrix scanner and handler in PS/2 mode *
* *
* *
* Assembler: CASM08Z (P&E Microcomputer Systems Inc) *
* Version: 3.16 *
* *
* Current Revision: 1.0 *
* Current Revision Release Date: 2000.05.08 by Derek Lau *
* *
* Updated History *
* Rev YYYY.MM.DD Author Description of Change *
* --- ----------- ------ --------------------- *
* 0.0 1998.06.05 Tony Luk orginal release *
* 1.0 1998.08.03 Tony Luk extended key matrix to 8 x 18 *
* 1.1 2000.05.08 Derek Lau support multimedia key *
*****************************************************************************
* This Program is a freeware to demonstrate the operation of Motorola *
* Microcontroller. Motorola reserves the right to make changes without *
* further notice to any product herein to improve reliability, function, or *
* design. Motorola does not assume any liability arising out of the *
* application or use of any product, circuit, or software described herein; *
* neither does it convey any license under its patent rights nor the rights *
* of others. Motorola products are not designed, intended, or authorized *
* for use as components in systems intended for surgical implant into the *
* body, or other applications intended to support life, or for any other *
* application in which the failure of the Motorola product could create a *
* situation where personal injury or death may occur. Should Buyer purchase *
* or use Motorola products for any such intended or unauthorized *
* application, Buyer shall indemnify and hold Motorola and its officers, *
* employees, subsidiaries, affiliates, and distributors harmless against *
* all claims, costs, damages, and expenses, and reasonable attorney fees *
* arising out of, directly or indirectly, any claim of personal injury or *
* death associated with such unintended or unauthorized use, even if such *
* claim alleges that Motorola was negligent regarding the design or *
* manufacture of the part. Motorola and the Motorola logo* are registered *
* trademarks of Motorola Inc *
*****************************************************************************
* Notes :
* - CASM08 assembler is NOT case sensitive
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* ====== Table of Key Codes ==============================================
* --- USB Usage Index for Keyboard/Keypad Page ---------------------------
* Reference : Device Class Definition for Human Interface Device(HID)
* Version 1.0 Draft #4
* - Appendix A.3 Keyboard/Keypad Page(0x07)
Key_ERO equ $01 ; error roll over
Key_POSTF equ $02 ; POST fail
Key_EUD equ $03 ; error undefined
KEY_a equ $04 ; a / A
KEY_b equ $05 ; b / B
KEY_c equ $06 ; c / C
KEY_d equ $07 ; d / D
KEY_e equ $08 ; e / E
KEY_f equ $09 ; f / F
KEY_g equ $0A ; g / G
KEY_h equ $0B ; h / H
KEY_i equ $0C ; i / I
KEY_j equ $0D ; j / J
KEY_k equ $0E ; k / K
KEY_l equ $0F ; l / L
KEY_m equ $10 ; m / M
KEY_n equ $11 ; n / N
KEY_o equ $12 ; o / O
KEY_p equ $13 ; p / P
KEY_q equ $14 ; q / Q
KEY_r equ $15 ; r / R
KEY_s equ $16 ; s / S
KEY_t equ $17 ; t / T
KEY_u equ $18 ; u / U
KEY_v equ $19 ; v / V
KEY_w equ $1A ; w / W
KEY_x equ $1B ; x / X
KEY_y equ $1C ; y / Y
KEY_z equ $1D ; z / Z
*
KEY_1 equ $1E ; 1 / !
KEY_2 equ $1F ; 2 / @
KEY_3 equ $20 ; 3 / #
KEY_4 equ $21 ; 4 / $
KEY_5 equ $22 ; 5 / %
KEY_6 equ $23 ; 6 / ^
KEY_7 equ $24 ; 7 / &
KEY_8 equ $25 ; 8 / *
KEY_9 equ $26 ; 9 / (
KEY_0 equ $27 ; 0 / )
*
KEY_RTN equ $28 ; <ENTER>
KEY_ESC equ $29 ; <esc>
KEY_BSP equ $2A ; <backspace>
KEY_TAB equ $2B ; <tab>
KEY_SPC equ $2C ; <space bar>
KEY_MIS equ $2D ; - / _
KEY_EQU equ $2E ; = / +
KEY_OQO equ $2F ; [ / {
KEY_EQO equ $30 ; ] / }
KEY_BSL equ $31 ; \ / |
KEY_NUP equ $32 ; non-US# / ~
KEY_COL equ $33 ; ; / :
KEY_CC equ $34 ; ' / "
KEY_TIL equ $35 ; ` / ~
KEY_CMA equ $36 ; , / <
KEY_DOT equ $37 ; . / >
KEY_SL equ $38 ; / / ?
KEY_CLK equ $39 ; <CAPS lock>
*
KEY_F1 equ $3A ; <F1>
KEY_F2 equ $3B ; <F2>
KEY_F3 equ $3C ; <F3>
KEY_F4 equ $3D ; <F4>
KEY_F5 equ $3E ; <F5>
KEY_F6 equ $3F ; <F6>
KEY_F7 equ $40 ; <F7>
KEY_F8 equ $41 ; <F8>
KEY_F9 equ $42 ; <F9>
KEY_F10 equ $43 ; <F10>
KEY_F11 equ $44 ; <F11>
KEY_F12 equ $45 ; <F12>
*
KEY_PSC equ $46 ; <print screen>
KEY_SLK equ $47 ; <SCROLL lock>
KEY_PSE equ $48 ; <pause>
KEY_INS equ $49 ; <insert>
KEY_HME equ $4A ; <home>
KEY_PUP equ $4B ; <page up>
KEY_DEL equ $4C ; <delete>
KEY_END equ $4D ; <end>
KEY_PDN equ $4E ; <page down>
KEY_RGT equ $4F ; <right arrow>
KEY_LFT equ $50 ; <left arrow>
KEY_DWN equ $51 ; <down arrow>
KEY_UP equ $52 ; <up arrow>
*
KEY_NLK equ $53 ; <NUM lock>
KEY_NSL equ $54 ; keypad /
KEY_NMU equ $55 ; keypad *
KEY_NMI equ $56 ; keypad -
KEY_NPL equ $57 ; keypad +
KEY_NET equ $58 ; keypad enter
KEY_N1 equ $59 ; keypad 1 / end
KEY_N2 equ $5A ; keypad 2 / down arrow
KEY_N3 equ $5B ; keypad 3 / page down
KEY_N4 equ $5C ; keypad 4 / left arrow
KEY_N5 equ $5D ; keypad 5
KEY_N6 equ $5E ; keypad 6 / right arrow
KEY_N7 equ $5F ; keypad 7 / home
KEY_N8 equ $60 ; keypad 8 / up arrow
KEY_N9 equ $61 ; keypad 9 / page up
KEY_N0 equ $62 ; keypad 0 / insert
KEY_NDT equ $63 ; keypad . / delete
KEY_NBS equ $64 ; non-US \ / |
KEY_APP equ $65 ; application (Win95)
KEY_PWR equ $66 ; power [MAC/UNIX]
KEY_EQ equ $67 ; = [MAC]
KEY_F13 equ $68 ; [MAC]
KEY_F14 equ $69 ; [MAC]
KEY_F15 equ $6A ; [MAC]
KEY_F16 equ $6B ;
KEY_F17 equ $6C ;
KEY_F18 equ $6D ;
KEY_F19 equ $6E ;
KEY_F20 equ $6F ;
KEY_F21 equ $70 ;
KEY_F22 equ $71 ;
KEY_F23 equ $72 ;
KEY_F24 equ $73 ;
KEY_UEXE equ $74 ; [UNIX]
KEY_UHLP equ $75 ; [UNIX]
KEY_UMNU equ $76 ; [UNIX]
KEY_USEL equ $77 ; [UNIX]
KEY_USTP equ $78 ; [UNIX]
KEY_UAGN equ $79 ; [UNIX]
KEY_UUDO equ $7A ; [UNIX]
KEY_UCUT equ $7B ; [UNIX]
KEY_UCPY equ $7C ; [UNIX]
KEY_UPTE equ $7D ; [UNIX]
KEY_UFND equ $7E ; [UNIX]
KEY_UMUT equ $7F ; Mute key [UNIX]
KEY_UVUP equ $80 ; Volume Up [UNIX]
KEY_UVDN equ $81 ; Volume Down [UNIX]
KEY_UCLK equ $82 ; [UNIX]
KEY_UNLK equ $83 ; [UNIX]
KEY_USLK equ $84 ; [UNIX]
*
KEY_NCMA equ $85 ; keypad ,
KEY_NEQU equ $86 ; keypad =
KEY_Kanji1 equ $87 ; kanji1
KEY_Kanji2 equ $88 ; kanji2
KEY_Kanji3 equ $89 ; kanji3
KEY_Kanji4 equ $8A ; kanji4
KEY_Kanji5 equ $8B ; kanji5
KEY_Kanji6 equ $8C ; kanji6
KEY_Kanji7 equ $8D ; kanji7
KEY_Kanji8 equ $8E ; kanji8
KEY_Kanji9 equ $8F ; kanji9
KEY_LANG1 equ $90 ; Language 1
KEY_LANG2 equ $91 ; Language 2
KEY_LANG3 equ $92 ; Language 3
KEY_LANG4 equ $93 ; Language 4
KEY_LANG5 equ $94 ; Language 5
KEY_LANG6 equ $95 ; Language 6
KEY_LANG7 equ $96 ; Language 7
KEY_LANG8 equ $97 ; Language 8
KEY_LANG9 equ $98 ; Language 9
KEY_AERSE equ $99 ; alternate erase
KEY_SYSREQ equ $9A ; SysReq / Attention
KEY_CANCEL equ $9B ; cancel
KEY_CLEAR equ $9C ; clear
KEY_PRIOR equ $9D ; prior
KEY_RETURN equ $9E ; return
KEY_SEPTOR equ $9F ; separator
KEY_OUT equ $A0 ; out
KEY_OPER equ $A1 ; oper
KEY_AGAIN equ $A2 ; clear / again
KEY_CRSEL equ $A3 ; CrSel / Props
KEY_EXSEL equ $A4 ; ExSel
*
* ------------------------------------------------------------
* Usage $A5 to $DF are reserved
* ------------------------------------------------------------
*
* --- Win98 Power Control Key Codes --------------------------------------
* (in Power Control Usage Page)
PKEY_PWR equ $A8 ; <power down>
PKEY_SLP equ $A9 ; <sleep>
PKEY_WKE equ $AA ; <wake up>
*
KEY_000 equ $AB ; REPEAT SEND 3 TIMES 0
*
PKEY_STANDBY equ $CB ; One key for all ACPI function
*
KEY_FN equ $AC ; FN key to alternate key function
*
* -------------------------------------------------------------
*
* ; FN - off FN - on
* ;--------------------------
SKEY_0 equ $C8 ;
SKEY_1 equ $C9 ;
SKEY_2 equ $CA ;
SKEY_3 equ $CB ;
SKEY_4 equ $CC ;
SKEY_5 equ $CD ;
SKEY_6 equ $CE ;
SKEY_7 equ $CF ;
SKEY_8 equ $D0 ;
SKEY_9 equ $D1 ;
SKEY_10 equ $D2 ;
SKEY_11 equ $D3 ;
SKEY_12 equ $D4 ;
SKEY_13 equ $D5 ;
SKEY_14 equ $D6 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -