ibm4704_usb: Fix scan code range for Alps 102-key
This commit is contained in:
parent
449b31c18b
commit
75ca495c01
@ -152,12 +152,16 @@ Keyobard sends these bytes to host.
|
|||||||
FD Command out of bound 00d8h
|
FD Command out of bound 00d8h
|
||||||
Key out of bound
|
Key out of bound
|
||||||
7E Read/Parity error in receive from host 00bch
|
7E Read/Parity error in receive from host 00bch
|
||||||
|
80-FB? scan code(make)
|
||||||
|
00-7B? scan code(break)
|
||||||
|
note: Alps model spits scan code 7B(FB) at least.
|
||||||
|
|
||||||
|
|
||||||
Set Key Flag command(FC)
|
Set Key Flag command(FC)
|
||||||
------------------------
|
------------------------
|
||||||
After 'Power on Reset' firmware enters this command mode and waits for data from host,
|
After 'Power on Reset' firmware enters this command mode and waits for data from host,
|
||||||
so that you don't need to send 'FC' and it doesn't send any scancode until you send 'FF'.
|
so that you don't need to send 'FC' and it doesn't send any scancode until you send 'FF'.
|
||||||
|
With Alps models you need to send 'FC' command to enter this mode.
|
||||||
|
|
||||||
Data sent from host:
|
Data sent from host:
|
||||||
|
|
||||||
@ -166,8 +170,8 @@ Data sent from host:
|
|||||||
| `-----`--- scan code
|
| `-----`--- scan code
|
||||||
`------------- enable bit(0: enable repeat, 1: enable break)
|
`------------- enable bit(0: enable repeat, 1: enable break)
|
||||||
|
|
||||||
00-79 Enable repeat
|
00-7B? Enable repeat
|
||||||
80-F9 Enable break(FA-FF are used as other commands, see above.)
|
80-FB? Enable break
|
||||||
FE Resend(011ah) no need to use
|
FE Resend(011ah) no need to use
|
||||||
FF End(0114h) exits FC command mode.
|
FF End(0114h) exits FC command mode.
|
||||||
|
|
||||||
@ -178,5 +182,5 @@ Response from keyboard:
|
|||||||
Examples:
|
Examples:
|
||||||
To enable break code of all keys.
|
To enable break code of all keys.
|
||||||
|
|
||||||
FC 80 81 ... F7 FF
|
FC 80 81 ... FB FF
|
||||||
|
|
||||||
|
@ -106,8 +106,8 @@ uint8_t matrix_scan(void)
|
|||||||
if (code==0xFF) {
|
if (code==0xFF) {
|
||||||
// Not receivd
|
// Not receivd
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((code&0x7F) >= 0x7A) {
|
} else if ((code&0x7F) >= 0x7C) {
|
||||||
// 0xFF-FA and 0x7F-7A is not scancode
|
// 0xFF-FC and 0x7F-7C is not scancode
|
||||||
xprintf("Error: %02X\n", code);
|
xprintf("Error: %02X\n", code);
|
||||||
matrix_clear();
|
matrix_clear();
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user