ibmpc_usb: Add Z-150 AT support
This commit is contained in:
parent
e020a2233b
commit
822a8673e7
2 changed files with 10 additions and 1 deletions
|
|
@ -55,6 +55,9 @@ static uint16_t read_keyboard_id(void)
|
|||
uint16_t id = 0;
|
||||
int16_t code = 0;
|
||||
|
||||
// temporary fix Z-150 AT should response with ID
|
||||
if (ibmpc_protocol == IBMPC_PROTOCOL_AT_Z150) return 0xFFFD;
|
||||
|
||||
// Disable
|
||||
//code = ibmpc_host_send(0xF5);
|
||||
|
||||
|
|
@ -276,6 +279,8 @@ uint8_t matrix_scan(void)
|
|||
keyboard_kind = PC_XT;
|
||||
} else if (0xFFFE == keyboard_id) { // CodeSet2 PS/2 fails to response?
|
||||
keyboard_kind = PC_AT;
|
||||
} else if (0xFFFD == keyboard_id) { // Zenith Z-150 AT
|
||||
keyboard_kind = PC_AT_Z150;
|
||||
} else if (0x00FF == keyboard_id) { // Mouse is not supported
|
||||
xprintf("Mouse: not supported\n");
|
||||
keyboard_kind = NONE;
|
||||
|
|
@ -318,6 +323,9 @@ uint8_t matrix_scan(void)
|
|||
case PC_AT:
|
||||
led_set(host_keyboard_leds());
|
||||
break;
|
||||
case PC_AT_Z150:
|
||||
// TODO: do not set indicators temporarily for debug
|
||||
break;
|
||||
case PC_TERMINAL:
|
||||
// Set all keys to make/break type
|
||||
ibmpc_host_send(0xF8);
|
||||
|
|
@ -355,6 +363,7 @@ uint8_t matrix_scan(void)
|
|||
if (process_cs1(code) == -1) state = INIT;
|
||||
break;
|
||||
case PC_AT:
|
||||
case PC_AT_Z150:
|
||||
if (process_cs2(code) == -1) state = INIT;
|
||||
break;
|
||||
case PC_TERMINAL:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef IBMPC_USB_H
|
||||
#define IBMPC_USB_H
|
||||
|
||||
typedef enum { NONE, PC_XT, PC_AT, PC_TERMINAL } keyboard_kind_t;
|
||||
typedef enum { NONE, PC_XT, PC_AT, PC_TERMINAL, PC_AT_Z150 } keyboard_kind_t;
|
||||
|
||||
extern uint16_t keyboard_id;
|
||||
extern keyboard_kind_t keyboard_kind;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue