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