mirror of
https://github.com/86Box/86Box.git
synced 2026-02-25 12:55:32 -07:00
Merge remote-tracking branch 'upstream/master' into feature/ich2
This commit is contained in:
@@ -82,7 +82,8 @@
|
||||
#define KBC_VEN_NCR 0x24
|
||||
#define KBC_VEN_ALI 0x28
|
||||
#define KBC_VEN_SIEMENS 0x2c
|
||||
#define KBC_VEN_MASK 0x3c
|
||||
#define KBC_VEN_COMPAQ 0x30
|
||||
#define KBC_VEN_MASK 0x7c
|
||||
|
||||
#define FLAG_CLOCK 0x01
|
||||
#define FLAG_CACHE 0x02
|
||||
@@ -981,6 +982,8 @@ write64_generic(void *priv, uint8_t val)
|
||||
} else if (((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) && ((dev->flags & KBC_TYPE_MASK) < KBC_TYPE_GREEN))
|
||||
/* (B0 or F0) | (0x08 or 0x0c) */
|
||||
kbc_delay_to_ob(dev, ((dev->p1 | fixed_bits) & 0xf0) | (((dev->flags & KBC_VEN_MASK) == KBC_VEN_ACER) ? 0x08 : 0x0c), 0, 0x00);
|
||||
else if (kbc_ven == KBC_VEN_COMPAQ)
|
||||
kbc_delay_to_ob(dev, dev->p1 | (hasfpu ? 0x00 : 0x04), 0, 0x00);
|
||||
else
|
||||
/* (B0 or F0) | (0x04 or 0x44) */
|
||||
kbc_delay_to_ob(dev, dev->p1 | fixed_bits, 0, 0x00);
|
||||
@@ -1968,6 +1971,7 @@ kbc_at_init(const device_t *info)
|
||||
case KBC_VEN_GENERIC:
|
||||
case KBC_VEN_NCR:
|
||||
case KBC_VEN_IBM_PS1:
|
||||
case KBC_VEN_COMPAQ:
|
||||
dev->write64_ven = write64_generic;
|
||||
break;
|
||||
|
||||
@@ -2141,6 +2145,20 @@ const device_t keyboard_at_ncr_device = {
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_compaq_device = {
|
||||
.name = "PC/AT Keyboard (Compaq)",
|
||||
.internal_name = "keyboard_at_compaq",
|
||||
.flags = DEVICE_KBC,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_COMPAQ,
|
||||
.init = kbc_at_init,
|
||||
.close = kbc_at_close,
|
||||
.reset = kbc_at_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_device = {
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2",
|
||||
|
||||
@@ -119,6 +119,8 @@ static void
|
||||
serial_passthrough_speed_changed(void *priv)
|
||||
{
|
||||
serial_passthrough_t *dev = (serial_passthrough_t *) priv;
|
||||
if (!dev)
|
||||
return;
|
||||
|
||||
timer_stop(&dev->host_to_serial_timer);
|
||||
/* FIXME: do something to dev->baudrate */
|
||||
@@ -132,9 +134,11 @@ static void
|
||||
serial_passthrough_dev_close(void *priv)
|
||||
{
|
||||
serial_passthrough_t *dev = (serial_passthrough_t *) priv;
|
||||
if (!dev)
|
||||
return;
|
||||
|
||||
/* Detach passthrough device from COM port */
|
||||
if (dev && dev->serial && dev->serial->sd)
|
||||
if (dev->serial && dev->serial->sd)
|
||||
memset(dev->serial->sd, 0, sizeof(serial_device_t));
|
||||
|
||||
plat_serpt_close(dev);
|
||||
@@ -184,6 +188,10 @@ serial_passthrough_dev_init(const device_t *info)
|
||||
/* Attach passthrough device to a COM port */
|
||||
dev->serial = serial_attach_ex(dev->port, serial_passthrough_rcr_cb,
|
||||
serial_passthrough_write, serial_passthrough_transmit_period, serial_passthrough_lcr_callback, dev);
|
||||
if (!dev->serial) {
|
||||
free(dev);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strncpy(dev->host_serial_path, device_get_config_string("host_serial_path"), 1023);
|
||||
#ifdef _WIN32
|
||||
|
||||
Reference in New Issue
Block a user