ibmpc: Add Z-150 AT protocol recognition

https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige
This commit is contained in:
tmk 2020-05-13 23:34:42 +09:00
parent 343c32afc6
commit f80601db96
2 changed files with 9 additions and 3 deletions

View file

@ -359,12 +359,17 @@ ISR(IBMPC_INT_VECT)
case 0b01010000:
case 0b11010000:
// AT-done
// DO NOT check stop bit. Zenith Z-150(AT) asserts stop bit as low for no reason.
// https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige
// TODO: parity check?
ibmpc_isr_debug = isr_state;
// stop bit check
if (isr_state & 0x8000) {
ibmpc_protocol = IBMPC_PROTOCOL_AT;
} else {
// Zenith Z-150 AT(beige/white lable) asserts stop bit as low
// https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige
ibmpc_protocol = IBMPC_PROTOCOL_AT_Z150;
}
isr_state = isr_state>>6;
ibmpc_protocol = IBMPC_PROTOCOL_AT;
goto DONE;
break;
case 0b01100000:

View file

@ -72,6 +72,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define IBMPC_PROTOCOL_NO 0
#define IBMPC_PROTOCOL_AT 0x10
#define IBMPC_PROTOCOL_AT_Z150 0x11
#define IBMPC_PROTOCOL_XT 0x20
#define IBMPC_PROTOCOL_XT_IBM 0x21
#define IBMPC_PROTOCOL_XT_CLONE 0x22