diff --git a/src/chipset/sis_5571.c b/src/chipset/sis_5571.c index 3980704fd..02e86a98a 100644 --- a/src/chipset/sis_5571.c +++ b/src/chipset/sis_5571.c @@ -27,6 +27,7 @@ #include <86box/nvr.h> #include <86box/apm.h> #include <86box/acpi.h> +#include <86box/keyboard.h> #include <86box/hdd.h> #include <86box/hdc.h> #include <86box/hdc_ide.h> @@ -166,6 +167,8 @@ sis_5571_init(UNUSED(const device_t *info)) dev->ide = device_add_linked(&sis_5572_ide_device, dev->sis); dev->usb = device_add_linked(&sis_5572_usb_device, dev->sis); + device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS); + return dev; } diff --git a/src/chipset/sis_5581.c b/src/chipset/sis_5581.c index 998ac5350..525fe6598 100644 --- a/src/chipset/sis_5581.c +++ b/src/chipset/sis_5581.c @@ -27,6 +27,7 @@ #include <86box/nvr.h> #include <86box/apm.h> #include <86box/acpi.h> +#include <86box/keyboard.h> #include <86box/hdd.h> #include <86box/hdc.h> #include <86box/hdc_ide.h> @@ -166,6 +167,8 @@ sis_5581_init(UNUSED(const device_t *info)) dev->ide = device_add_linked(&sis_5582_ide_device, dev->sis); dev->usb = device_add_linked(&sis_5582_usb_device, dev->sis); + device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS); + return dev; } diff --git a/src/chipset/sis_5591.c b/src/chipset/sis_5591.c index 3cb11cb5b..d814e0f74 100644 --- a/src/chipset/sis_5591.c +++ b/src/chipset/sis_5591.c @@ -27,6 +27,7 @@ #include <86box/nvr.h> #include <86box/apm.h> #include <86box/acpi.h> +#include <86box/keyboard.h> #include <86box/hdd.h> #include <86box/hdc.h> #include <86box/hdc_ide.h> @@ -178,6 +179,8 @@ sis_5591_init(UNUSED(const device_t *info)) else dev->pmu = device_add_linked(&sis_5595_pmu_device, dev->sis); + device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS); + return dev; } diff --git a/src/chipset/sis_5600.c b/src/chipset/sis_5600.c index 1ed7f9ad0..564243c68 100644 --- a/src/chipset/sis_5600.c +++ b/src/chipset/sis_5600.c @@ -27,6 +27,7 @@ #include <86box/nvr.h> #include <86box/apm.h> #include <86box/acpi.h> +#include <86box/keyboard.h> #include <86box/hdd.h> #include <86box/hdc.h> #include <86box/hdc_ide.h> @@ -178,6 +179,8 @@ sis_5600_init(UNUSED(const device_t *info)) else dev->pmu = device_add_linked(&sis_5595_pmu_device, dev->sis); + device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS); + return dev; } diff --git a/src/chipset/umc_8886.c b/src/chipset/umc_8886.c index 0ed062450..29e2d46da 100644 --- a/src/chipset/umc_8886.c +++ b/src/chipset/umc_8886.c @@ -419,6 +419,9 @@ umc_8886_init(const device_t *info) device_add(&ide_um8673f_device); } + if (machine_get_kbc_device(machine) == NULL) + device_add_params(&kbc_at_device, (void *) KBC_VEN_UMC); + umc_8886_reset(dev); return dev; diff --git a/src/chipset/via_pipc.c b/src/chipset/via_pipc.c index 248664983..7915b199e 100644 --- a/src/chipset/via_pipc.c +++ b/src/chipset/via_pipc.c @@ -43,6 +43,7 @@ #include <86box/hdc.h> #include <86box/hdc_ide.h> #include <86box/hdc_ide_sff8038i.h> +#include <86box/keyboard.h> #include <86box/usb.h> #include <86box/machine.h> #include <86box/smbus.h> @@ -1774,6 +1775,38 @@ pipc_init(const device_t *info) acpi_set_irq_mode(dev->acpi, 0); } + uint32_t kbc_params = 0x00424600; + /* + NOTE: The VIA VT82C42N returns 0x46 ('F') in command 0xA1 (so it + emulates the AMI KF/AMIKey KBC firmware), and 0x42 ('B') in + command 0xAF. + + The version on the VIA VT82C686B southbridge also returns + 'F' in command 0xA1, but 0x45 ('E') in command 0xAF. + The version on the VIA VT82C586B southbridge also returns + 'F' in command 0xA1, but 0x44 ('D') in command 0xAF. + The version on the VIA VT82C586A southbridge also returns + 'F' in command 0xA1, but 0x43 ('C') in command 0xAF. + */ + switch (dev->local) { + /* 596A, 596B, 686B, and 8231 are guesses because we have no probes yet. */ + case VIA_PIPC_586A: case VIA_PIPC_596A: + kbc_params = 0x00434600; + break; + case VIA_PIPC_586B: case VIA_PIPC_596B: + kbc_params = 0x00444600; + break; + case VIA_PIPC_686A: case VIA_PIPC_686B: + case VIA_PIPC_8231: + kbc_params = 0x00454600; + break; + } + + kbc_params |= KBC_VEN_VIA; + + if (machine_get_kbc_device(machine) == NULL) + device_add_params(&kbc_at_device, (void *) (uintptr_t) kbc_params); + return dev; } diff --git a/src/device/kbc_at.c b/src/device/kbc_at.c index 83e01511e..4c0ea4155 100644 --- a/src/device/kbc_at.c +++ b/src/device/kbc_at.c @@ -62,35 +62,6 @@ #define CCB_MASK 0x68 #define MODE_MASK 0x6c -#define KBC_TYPE_ISA 0x00 /* AT ISA-based chips */ -#define KBC_TYPE_PS2_1 0x01 /* PS2 on PS/2, type 1 */ -#define KBC_TYPE_PS2_2 0x02 /* PS2 on PS/2, type 2 */ -#define KBC_TYPE_GREEN 0x03 /* PS2 green controller */ -#define KBC_TYPE_MASK 0x03 - -#define KBC_VEN_GENERIC 0x00 -#define KBC_VEN_IBM_PS1 0x04 -#define KBC_VEN_TOSHIBA 0x08 -#define KBC_VEN_OLIVETTI 0x0c -#define KBC_VEN_AMI 0x10 -#define KBC_VEN_TRIGEM_AMI 0x14 -#define KBC_VEN_QUADTEL 0x18 -#define KBC_VEN_PHOENIX 0x1c -#define KBC_VEN_ACER 0x20 -#define KBC_VEN_NCR 0x24 -#define KBC_VEN_ALI 0x28 -#define KBC_VEN_SIEMENS 0x2c -#define KBC_VEN_COMPAQ 0x30 -#define KBC_VEN_IBM 0x34 -#define KBC_VEN_AWARD 0x38 -#define KBC_VEN_VIA 0x3c -#define KBC_VEN_CHIPS 0x40 -#define KBC_VEN_HOLTEK 0x44 -#define KBC_VEN_UMC 0x48 -#define KBC_VEN_MASK 0x7c - -#define KBC_FLAG_IS_ASIC 0x80000000 - #define FLAG_CLOCK 0x01 #define FLAG_CACHE 0x02 #define FLAG_PS2 0x04 @@ -136,7 +107,9 @@ typedef struct atkbc_t { uint8_t irq_state; uint8_t do_irq; uint8_t is_asic; - uint8_t pad; + uint8_t is_green; + uint8_t kblock_switch; + uint8_t is_type2; uint8_t mem[0x100]; @@ -173,6 +146,8 @@ typedef struct atkbc_t { kbc_at_port_t *kbc_at_ports[2] = { NULL, NULL }; static uint8_t kbc_ami_revision = '8'; +static uint8_t kbc_ami_is_clone = 0; + static uint8_t kbc_award_revision = 0x42; static uint8_t kbc_chips_revision = 0xa6; @@ -269,7 +244,7 @@ kbc_translate(atkbc_t *dev, uint8_t val) { int xt_mode = (dev->mem[0x20] & 0x20) && !(dev->misc_flags & FLAG_PS2); /* The IBM AT keyboard controller firmware does not apply translation in XT mode. */ - int translate = !xt_mode && ((dev->mem[0x20] & 0x40) || ((dev->flags & KBC_TYPE_MASK) == KBC_TYPE_PS2_2)); + int translate = !xt_mode && ((dev->mem[0x20] & 0x40) || (dev->is_type2)); uint8_t kbc_ven = dev->flags & KBC_VEN_MASK; int ret = - 1; @@ -399,7 +374,7 @@ kbc_send_to_ob(atkbc_t *dev, uint8_t val, uint8_t channel, uint8_t stat_hi) if (temp == -1) return; - if ((kbc_ven == KBC_VEN_AMI) || (kbc_ven == KBC_VEN_TRIGEM_AMI) || + if ((kbc_ven == KBC_VEN_AMI) || (kbc_ven == KBC_VEN_AMI_TRIGEM) || (kbc_ven == KBC_VEN_HOLTEK) || (kbc_ven == KBC_VEN_UMC) || (dev->misc_flags & FLAG_PS2)) stat_hi |= ((dev->p1 & 0x80) ? 0x10 : 0x00); @@ -426,10 +401,7 @@ kbc_send_to_ob(atkbc_t *dev, uint8_t val, uint8_t channel, uint8_t stat_hi) if (dev->irq[0] != 0xffff) picintlevel(1 << dev->irq[0], &dev->irq_state); -#ifdef WRONG_CONDITION - if ((dev->channel > 0) || dev->is_asic || (kbc_ven == KBC_VEN_IBM_PS1) || (kbc_ven == KBC_VEN_IBM)) -#endif - kbc_do_irq(dev); + kbc_do_irq(dev); dev->ob = temp; } @@ -915,7 +887,7 @@ write_cmd(atkbc_t *dev, uint8_t val) kbc_at_log("ATkbc: write command byte: %02X (old: %02X)\n", val, dev->mem[0x20]); /* PS/2 type 2 keyboard controllers always force the XLAT bit to 0. */ - if ((dev->flags & KBC_TYPE_MASK) == KBC_TYPE_PS2_2) { + if (dev->is_type2) { val &= ~CCB_TRANSLATE; dev->mem[0x20] &= ~CCB_TRANSLATE; } else if (!(dev->misc_flags & FLAG_PS2)) { @@ -1051,6 +1023,8 @@ write_cmd_ami(void *priv, uint8_t val) atkbc_t *dev = (atkbc_t *) priv; uint8_t kbc_ven = dev->flags & KBC_VEN_MASK; uint8_t ret = 1; + char *copr = NULL; + int coprlen = 0; switch (val) { default: @@ -1070,8 +1044,45 @@ write_cmd_ami(void *priv, uint8_t val) break; case 0xa0: /* copyright message */ - kbc_at_queue_add(dev, 0x28); - kbc_at_queue_add(dev, 0x00); + switch (kbc_ami_revision) { + case 0x35: + copr = "(C)1994 AMI"; + coprlen = strlen(copr) + 1; + break; + case 0x38: + case 0x42: case 0x44: + case 0x45: + copr = "(C) AMERICAN MEGATRENDS INC."; + coprlen = strlen(copr); /* No trailing zero. */ + break; + case 0x46: + copr = "(C)1990 AMERICAN MEGATRENDS INC"; + coprlen = strlen(copr) + 1; + break; + case 0x48: + copr = "(C)1992 AMERICAN MEGATRENDS INC"; + coprlen = strlen(copr) + 1; + break; + case 0x50: case 0x52: + copr = "(C)1993 AMI"; + coprlen = strlen(copr) + 1; + break; + case 0x5a: + if (dev->is_green) + /* + ( C ) 1 9 9 0 A M I + But TriGem forgot to reencrypt it. + */ + copr = "\xFA\x97\xDA\xD9\xD8\xD8\xF9\xFB\xD7\x56\xD6"; + else + copr = "(C)1990 AMERICAN MEGATRENDS INC"; + coprlen = strlen(copr) + 1; + break; + } + + for (int i = 0; i < coprlen; i++) + kbc_at_queue_add(dev, copr[i]); + ret = 0; break; @@ -1285,6 +1296,187 @@ write_cmd_ami(void *priv, uint8_t val) return ret; } +static uint8_t +write_cmd_data_sis(void *priv, uint8_t val) +{ + atkbc_t *dev = (atkbc_t *) priv; + + switch (dev->command) { + /* 0x40 - 0x5F are aliases for 0x60-0x7F */ + case 0x40 ... 0x5f: + kbc_at_log("ATkbc: SIS - alias write to %02X\n", dev->command & 0x1f); + dev->mem[(dev->command & 0x1f) + 0x20] = val; + if (dev->command == 0x60) + write_cmd(dev, val); + return 0; + + case 0xcb: /* set keyboard mode */ + kbc_at_log("ATkbc: SIS - set keyboard mode\n"); + dev->ami_flags = val; + dev->misc_flags &= ~FLAG_PS2; + if (val & 0x01) { + kbc_at_log("ATkbc: SIS: Emulate PS/2 keyboard\n"); + dev->misc_flags |= FLAG_PS2; + kbc_at_do_poll = kbc_at_poll_ps2; + } else { + kbc_at_log("ATkbc: SIS: Emulate AT keyboard\n"); + kbc_at_do_poll = kbc_at_poll_at; + } + return 0; + + default: + break; + } + + return 1; +} + +static uint8_t +write_cmd_sis(void *priv, uint8_t val) +{ + atkbc_t *dev = (atkbc_t *) priv; + uint8_t ret = 1; + + switch (val) { + default: + break; + + case 0x00 ... 0x1f: + kbc_at_log("ATkbc: SIS - alias read from %08X\n", val); + kbc_delay_to_ob(dev, dev->mem[val + 0x20], 0, 0x00); + ret = 0; + break; + + case 0x40 ... 0x5f: + kbc_at_log("ATkbc: SIS - alias write to %08X\n", dev->command); + dev->wantdata = 1; + dev->state = STATE_KBC_PARAM; + ret = 0; + break; + + case 0xa0: /* copyright message */ + kbc_at_queue_add(dev, 0x28); + kbc_at_queue_add(dev, 0x00); + ret = 0; + break; + + case 0xa1: /* get controller version */ + kbc_at_log("ATkbc: SIS - get controller version\n"); + kbc_delay_to_ob(dev, 'H', 0, 0x00); + ret = 0; + break; + + case 0xa4: /* write clock = low */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - write clock = low\n"); + dev->misc_flags &= ~FLAG_CLOCK; + ret = 0; + } + break; + + case 0xa5: /* write clock = high */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - write clock = high\n"); + dev->misc_flags |= FLAG_CLOCK; + ret = 0; + } + break; + + case 0xa6: /* read clock */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - read clock\n"); + kbc_delay_to_ob(dev, (dev->misc_flags & FLAG_CLOCK) ? 0xff : 0x00, 0, 0x00); + ret = 0; + } + break; + + case 0xa7: /* write cache bad */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - write cache bad\n"); + dev->misc_flags &= FLAG_CACHE; + ret = 0; + } + break; + + case 0xa8: /* write cache good */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - write cache good\n"); + dev->misc_flags |= FLAG_CACHE; + ret = 0; + } + break; + + case 0xa9: /* read cache */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: SIS - read cache\n"); + kbc_delay_to_ob(dev, (dev->misc_flags & FLAG_CACHE) ? 0xff : 0x00, 0, 0x00); + ret = 0; + } + break; + + case 0xb0 ... 0xb1: + /* set KBC lines P10-P11 (P1 bits 0-1) low */ + if (!(dev->misc_flags & FLAG_PS2)) { + kbc_at_log("ATkbc: set KBC lines P10-P11 (P1 bits 0-3) low\n"); + dev->p1 &= ~(1 << (val & 0x03)); + kbc_delay_to_ob(dev, dev->ob, 0, 0x00); + dev->pending++; + ret = 0; + } + break; + + case 0xb8 ... 0xb9: + /* set KBC lines P10-P11 (P1 bits 0-1) high */ + kbc_at_log("ATkbc: set KBC lines P10-P11 (P1 bits 0-3) high\n"); + if (!(dev->misc_flags & FLAG_PS2)) { + dev->p1 |= (1 << (val & 0x03)); + kbc_delay_to_ob(dev, dev->ob, 0, 0x00); + dev->pending++; + } + ret = 0; + break; + + case 0xc1: /* set port P17 to 0 & KBLOCK disabled */ + kbc_at_log("ATkbc: SIS - set port P17 to 0 & KBLOCK disabled\n"); + if (!dev->kblock_switch) + dev->p1 &= 0x7f; + ret = 0; + break; + case 0xc7: /* set port P17 to 1 */ + kbc_at_log("ATkbc: SIS - set port P17 to 1\n"); + if (!dev->kblock_switch) + dev->p1 |= 0x80; + ret = 0; + break; + + case 0xca: /* read keyboard mode */ + kbc_at_log("ATkbc: AMI - read keyboard mode\n"); + kbc_delay_to_ob(dev, dev->ami_flags, 0, 0x00); + ret = 0; + break; + + case 0xcb: /* set keyboard mode */ + kbc_at_log("ATkbc: AMI - set keyboard mode\n"); + dev->wantdata = 1; + dev->state = STATE_KBC_PARAM; + ret = 0; + break; + + case 0xd6: /* enable KBLOCK switch */ + kbc_at_log("ATkbc: SIS - enable KBLOCK switch\n"); + dev->kblock_switch = 1; + ret = 0; + break; + case 0xd7: /* disable KBLOCK switch */ + kbc_at_log("ATkbc: SIS - disable KBLOCK switch\n"); + dev->kblock_switch = 0; + ret = 0; + break; + } + + return ret; +} + static uint8_t write_cmd_umc(void *priv, uint8_t val) { @@ -2012,11 +2204,6 @@ write_cmd_toshiba(void *priv, uint8_t val) static uint8_t read_p1(atkbc_t *dev) { - uint8_t kbc_ven = dev->flags & KBC_VEN_MASK; - uint8_t ret = 0xff; - uint8_t current_drive; - uint8_t fixed_bits; - /* P1 bits: 76543210 ----------------- @@ -2082,93 +2269,9 @@ read_p1(atkbc_t *dev) Compaq: Reserved; NCR: DMA mode. */ - fixed_bits = 4; + uint8_t ret = machine_get_p1(dev->p1) | (dev->p1 & 0x03); - /* The SMM handlers of Intel AMI Pentium BIOS'es expect bit 6 to be set. */ - if ((kbc_ven == KBC_VEN_AMI) && ((dev->flags & KBC_TYPE_MASK) == KBC_TYPE_GREEN)) - fixed_bits |= 0x40; - - if (!strcmp(machine_get_internal_name(), "dells333sl")) - /* - Dell System 333s/L: - - Bit 5: Stuck in reboot loop if clear. - */ - ret = 0x20 | (video_is_mda() ? 0x40 : 0x00); - else if (kbc_ven == KBC_VEN_IBM_PS1) { - current_drive = fdc_get_current_drive(); - /* (B0 or F0) | (fdd_is_525(current_drive) on bit 6) */ - ret = dev->p1 | fixed_bits | (fdd_is_525(current_drive) ? 0x40 : 0x00); - } else if (kbc_ven == KBC_VEN_NCR) { - /* Switch settings: - - Bit 7: Keyboard disable; - - Bit 6: Display type (0 color, 1 mono); - - Bit 5: Power-on default speed (0 high, 1 low); - - Bit 4: Sense RAM size (0 unsupported, 1 512k on system board); - - Bit 3: Coprocessor detect; - - Bit 2: Unused; - - Bit 1: High/Auto speed; - - Bit 0: DMA mode. - - (B0 or F0) | 0x04 | (display on bit 6) | (fpu on bit 3) - */ - ret = (dev->p1 | fixed_bits | (video_is_mda() ? 0x40 : 0x00) | - (hasfpu ? 0x08 : 0x00)) & 0xdf; - } else if (kbc_ven == KBC_VEN_TRIGEM_AMI) { - /* Switch settings: - - Bit 3, 2: - - 1, 1: TriGem logo; - - 1, 0: Garbled logo; - - 0, 1: Epson logo; - - 0, 0: Generic AMI logo. - */ - if (dev->misc_flags & FLAG_PCI) - fixed_bits |= 8; - - /* (B0 or F0) | (0x04 or 0x0c) */ - ret = dev->p1 | fixed_bits; - } else if (((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) && - ((dev->flags & KBC_TYPE_MASK) < KBC_TYPE_GREEN)) { - if (!strcmp(machine_get_internal_name(), "dell466np")) - /* - Dell 466/NP: - - Bit 2: Keyboard fuse (must be set); - - Bit 4: Password disable jumper (must be clear); - - Bit 5: Manufacturing jumper (must be set). - */ - ret = 0x24; - else if (!strcmp(machine_get_internal_name(), "optiplex_gxl")) - /* - Dell OptiPlex GXL/GXM: - - Bit 3: Password disable jumper (must be clear); - - Bit 4: Keyboard fuse (must be set); - - Bit 5: Manufacturing jumper (must be set). - */ - ret = 0x30; - else if (!strcmp(machine_get_internal_name(), "dellplato") || - !strcmp(machine_get_internal_name(), "dellhannibalp") || - !strcmp(machine_get_internal_name(), "dellxp60")) - /* - Dell Dimension XPS Pxxx & Pxxxa/Mxxxa: - - Bit 3: Password disable jumper (must be clear); - - Bit 4: Clear CMOS jumper (must be set). - */ - ret = 0x10; - else { - /* (B0 or F0) | (0x08 or 0x0c) */ - ret = ((dev->p1 | fixed_bits) & 0xf0) | - (((dev->flags & KBC_VEN_MASK) == KBC_VEN_ACER) ? 0x08 : 0x0c); - - if (!strcmp(machine_get_internal_name(), "alfredo")) - ret &= 0xef; - } - } else if (kbc_ven == KBC_VEN_COMPAQ) - ret = dev->p1 | (hasfpu ? 0x00 : 0x04); - else - /* (B0 or F0) | (0x04 or 0x44) */ - ret = dev->p1 | fixed_bits; - - dev->p1 = ((dev->p1 + 1) & 3) | (dev->p1 & 0xfc); - pclog("P1 = %02X\n", dev->p1); + dev->p1 = ((dev->p1 + 1) & 0x03) | (dev->p1 & 0xfc); return ret; } @@ -2263,17 +2366,10 @@ kbc_at_process_cmd(void *priv) case 0xaa: /* self-test */ kbc_at_log("ATkbc: self-test\n"); - if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) { + if (machine_has_flags_ex(MACHINE_PS2_KBC)) { if (dev->state != STATE_RESET) { kbc_at_log("ATkbc: self-test reinitialization\n"); - /* - Yes, the firmware has an OR, but we need to make sure - to keep any forcibly lowered bytes lowered. - - TODO: Proper P1 implementation, with OR and AND flags - in the machine table. - */ - dev->p1 = dev->p1 & 0xff; + dev->p1 |= 0xff; write_p2(dev, 0x4b); if (dev->irq[1] != 0xffff) picintc(1 << dev->irq[1]); @@ -2293,14 +2389,7 @@ kbc_at_process_cmd(void *priv) } else { if (dev->state != STATE_RESET) { kbc_at_log("ATkbc: self-test reinitialization\n"); - /* - Yes, the firmware has an OR, but we need to make sure - to keep any forcibly lowered bytes lowered. - - TODO: Proper P1 implementation, with OR and AND flags - in the machine table. - */ - dev->p1 = dev->p1 & 0xff; + dev->p1 |= 0xff; write_p2(dev, 0xcf); if (dev->irq[0] != 0xffff) picintclevel(1 << dev->irq[0], &dev->irq_state); @@ -2644,7 +2733,7 @@ kbc_at_port_1_read(uint16_t port, void *priv) atkbc_t *dev = (atkbc_t *) priv; uint8_t ret = 0xff; - if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) + if (machine_has_flags_ex(MACHINE_PS2_KBC)) cycles -= ISA_CYCLES(8); ret = dev->ob; @@ -2669,7 +2758,7 @@ kbc_at_port_2_read(uint16_t port, void *priv) atkbc_t *dev = (atkbc_t *) priv; uint8_t ret = 0xff; - if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) + if (machine_has_flags_ex(MACHINE_PS2_KBC)) cycles -= ISA_CYCLES(8); ret = dev->status; @@ -2705,10 +2794,10 @@ kbc_at_reset(void *priv) dev->sc_or = 0; - dev->ami_flags = ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? 0x01 : 0x00; + dev->ami_flags = (machine_has_flags_ex(MACHINE_PS2_KBC)) ? 0x01 : 0x00; dev->misc_flags &= FLAG_PCI; - if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) { + if (machine_has_flags_ex(MACHINE_PS2_KBC)) { dev->misc_flags |= FLAG_PS2; kbc_at_do_poll = kbc_at_poll_ps2; if (dev->irq[1] != 0xffff) @@ -2725,7 +2814,7 @@ kbc_at_reset(void *priv) dev->misc_flags |= FLAG_CACHE; dev->p2 = 0xcd; - if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) { + if (machine_has_flags_ex(MACHINE_PS2_KBC)) { write_p2(dev, 0x4b); } else { /* The real thing writes CF and then AND's it with BF. */ @@ -2741,7 +2830,7 @@ kbc_at_close(void *priv) { atkbc_t *dev = (atkbc_t *) priv; #ifdef OLD_CODE - int max_ports = ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? 2 : 1; + int max_ports = machine_has_flags_ex(MACHINE_PS2_KBC) ? 2 : 1; #else int max_ports = 2; #endif @@ -2792,7 +2881,7 @@ kbc_at_set_irq(int num, uint16_t irq, void *priv) atkbc_t *dev = (atkbc_t *) priv; if (dev->irq[num] != 0xffff) { - if ((num == 0) && ((dev->flags & KBC_TYPE_MASK) < KBC_TYPE_PS2_1)) + if ((num == 0) && !machine_has_flags_ex(MACHINE_PS2_KBC)) picintclevel(1 << dev->irq[num], &dev->irq_state); else picintc(1 << dev->irq[num]); @@ -2809,9 +2898,12 @@ kbc_at_init(const device_t *info) dev = (atkbc_t *) calloc(1, sizeof(atkbc_t)); + dev->kblock_switch = 1; + dev->flags = info->local; - dev->is_asic = !!(info->local & KBC_FLAG_IS_ASIC); + dev->is_asic = !!(info->local & KBC_FLAG_IS_ASIC); + dev->is_type2 = !!(info->local & KBC_FLAG_IS_TYPE2); video_reset(gfxcard[0]); kbc_at_reset(dev); @@ -2872,7 +2964,8 @@ kbc_at_init(const device_t *info) dev->write_cmd_ven = write_cmd_ami; break; - case KBC_VEN_TRIGEM_AMI: + case KBC_VEN_AMI_TRIGEM: + dev->is_green = !!(info->local & KBC_FLAG_IS_GREEN); kbc_ami_revision = 'Z'; dev->write_cmd_data_ven = write_cmd_data_ami; dev->write_cmd_ven = write_cmd_ami; @@ -2880,26 +2973,8 @@ kbc_at_init(const device_t *info) case KBC_VEN_AMI: case KBC_VEN_HOLTEK: - if ((info->local & 0xff00) != 0x0000) - kbc_ami_revision = (info->local >> 8) & 0xff; - else if ((dev->flags & KBC_TYPE_MASK) == KBC_TYPE_GREEN) - kbc_ami_revision = '5'; - else if ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) { - if (cpu_64bitbus) - kbc_ami_revision = 'R'; - else if (is486) - kbc_ami_revision = 'P'; - else - kbc_ami_revision = 'H'; - } else if (is386 && !is486) { - if (cpu_16bitbus) - kbc_ami_revision = 'D'; - else - kbc_ami_revision = 'B'; - } else if (!is386) - kbc_ami_revision = '8'; - else - kbc_ami_revision = 'F'; + kbc_ami_is_clone = !!(info->local & KBC_FLAG_IS_CLONE); + kbc_ami_revision = (info->local >> 8) & 0xff; dev->write_cmd_data_ven = write_cmd_data_ami; dev->write_cmd_ven = write_cmd_ami; @@ -2914,6 +2989,16 @@ kbc_at_init(const device_t *info) dev->write_cmd_ven = write_cmd_umc; break; + case KBC_VEN_SIS: + if ((info->local & 0xff00) != 0x0000) + kbc_ami_revision = (info->local >> 8) & 0xff; + else + kbc_ami_revision = 0x48; + + dev->write_cmd_data_ven = write_cmd_data_sis; + dev->write_cmd_ven = write_cmd_sis; + break; + case KBC_VEN_CHIPS: if ((info->local & 0xff00) != 0x0000) kbc_chips_revision = (info->local >> 8) & 0xff; @@ -2939,11 +3024,7 @@ kbc_at_init(const device_t *info) break; } -#ifdef OLD_CODE - max_ports = ((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? 2 : 1; -#else max_ports = 2; -#endif for (int i = 0; i < max_ports; i++) { kbc_at_ports[i] = (kbc_at_port_t *) calloc(1, sizeof(kbc_at_port_t)); @@ -2956,11 +3037,11 @@ kbc_at_init(const device_t *info) /* The actual keyboard. */ if (keyboard_type == KEYBOARD_TYPE_INTERNAL) { if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS)) - device_add(((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? &keyboard_ps55_device : + device_add(machine_has_flags_ex(MACHINE_PS2_KBC) ? &keyboard_ps55_device : &keyboard_ax_device); else device_add_params(&keyboard_at_generic_device, (void *) (uintptr_t) - (((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? FLAG_PS2_KBD : 0x00)); + (machine_has_flags_ex(MACHINE_PS2_KBC) ? FLAG_PS2_KBD : 0x00)); } else keyboard_add_device(); @@ -2975,526 +3056,7 @@ const device_t kbc_at_device = { .name = "PC/AT Keyboard Controller", .internal_name = "kbc_at", .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_GENERIC, - .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 kbc_at_siemens_device = { - .name = "PC/AT Keyboard Controller", - .internal_name = "kbc_at", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_SIEMENS, - .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 kbc_at_ami_device = { - .name = "PC/AT Keyboard Controller (AMI)", - .internal_name = "kbc_at_ami", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_AMI, - .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 kbc_at_holtek_device = { - .name = "PC/AT Keyboard (Holtek)", - .internal_name = "keyboard_at_holtek", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_HOLTEK | KBC_FLAG_IS_ASIC, - .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 kbc_at_umc_device = { - .name = "PC/AT Keyboard (UMC)", - .internal_name = "keyboard_at_umc", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_UMC | KBC_FLAG_IS_ASIC, - .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 kbc_at_award_device = { - .name = "PC/AT Keyboard (Award)", - .internal_name = "keyboard_at_award", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_AWARD, - .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 kbc_at_chips_device = { - .name = "PC/AT Keyboard (C&T)", - .internal_name = "keyboard_at_chips", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_CHIPS, - .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 kbc_at_quadtel_device = { - .name = "PC/AT Keyboard (Quadtel)", - .internal_name = "keyboard_at_quadtel", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_QUADTEL, - .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 kbc_at_tg_ami_device = { - .name = "PC/AT Keyboard Controller (TriGem AMI)", - .internal_name = "kbc_at_tg_ami", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_TRIGEM_AMI, - .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 kbc_at_toshiba_device = { - .name = "PC/AT Keyboard Controller (Toshiba)", - .internal_name = "kbc_at_toshiba", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_TOSHIBA, - .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 kbc_at_olivetti_device = { - .name = "PC/AT Keyboard Controller (Olivetti)", - .internal_name = "kbc_at_olivetti", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_OLIVETTI, - .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 kbc_at_ncr_device = { - .name = "PC/AT Keyboard Controller (NCR)", - .internal_name = "kbc_at_ncr", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_NCR, - .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 kbc_at_via_device = { - .name = "PC/AT Keyboard (VIA)", - .internal_name = "keyboard_at_via", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_VIA | KBC_FLAG_IS_ASIC, - .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 kbc_at_compaq_device = { - .name = "PC/AT Keyboard Controller (Compaq)", - .internal_name = "kbc_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 kbc_at_phoenix_device = { - .name = "PC/AT Keyboard Controller (Phoenix)", - .internal_name = "kbc_at_phoenix", - .flags = DEVICE_KBC, - .local = KBC_TYPE_ISA | KBC_VEN_PHOENIX, - .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 kbc_ps2_device = { - .name = "PS/2 Keyboard Controller", - .internal_name = "kbc_ps2", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC, - .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 kbc_ps2_ps1_device = { - .name = "PS/2 Keyboard Controller (IBM PS/1)", - .internal_name = "kbc_ps2_ps1", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1, - .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 kbc_ps2_ps1_pci_device = { - .name = "PS/2 Keyboard Controller (IBM PS/1)", - .internal_name = "kbc_ps2_ps1_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1, - .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 kbc_ps2_xi8088_device = { - .name = "PS/2 Keyboard Controller (Xi8088)", - .internal_name = "kbc_ps2_xi8088", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC, - .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 kbc_ps2_acer_device = { - .name = "PS/2 Keyboard (Acer 90M002A)", - .internal_name = "keyboard_ps2_acer_pci", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_ACER, - .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 kbc_ps2_ami_device = { - .name = "PS/2 Keyboard Controller (AMI)", - .internal_name = "kbc_ps2_ami", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_AMI, - .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 kbc_ps2_compaq_device = { - .name = "PS/2 Keyboard Controller (Compaq)", - .internal_name = "kbc_at_compaq", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | 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 kbc_ps2_holtek_device = { - .name = "PS/2 Keyboard Controller (Holtek)", - .internal_name = "kbc_ps2_holtek", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_HOLTEK | KBC_FLAG_IS_ASIC, - .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 kbc_ps2_umc_device = { - .name = "PS/2 Keyboard (UMC)", - .internal_name = "keyboard_ps2_umc", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_UMC | KBC_FLAG_IS_ASIC, - .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 kbc_ps2_award_device = { - .name = "PS/2 Keyboard (Award)", - .internal_name = "keyboard_ps2_award", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_AWARD, - .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 kbc_ps2_via_device = { - .name = "PS/2 Keyboard (VIA)", - .internal_name = "keyboard_ps2_via", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_VIA | KBC_FLAG_IS_ASIC, - .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 kbc_ps2_phoenix_device = { - .name = "PS/2 Keyboard Controller (Phoenix)", - .internal_name = "kbc_ps2_phoenix", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX, - .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 kbc_ps2_tg_ami_device = { - .name = "PS/2 Keyboard Controller (TriGem AMI)", - .internal_name = "kbc_ps2_tg_ami", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI, - .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 kbc_ps2_mca_1_device = { - .name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 1)", - .internal_name = "kbc_ps2_mca_1", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_IBM, - .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 kbc_ps2_mca_2_device = { - .name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 2)", - .internal_name = "kbc_ps2_mca_2", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_2 | KBC_VEN_IBM, - .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 kbc_ps2_quadtel_device = { - .name = "PS/2 Keyboard Controller (Quadtel/MegaPC)", - .internal_name = "kbc_ps2_quadtel", - .flags = DEVICE_KBC, - .local = KBC_TYPE_PS2_1 | KBC_VEN_QUADTEL, - .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 kbc_ps2_pci_device = { - .name = "PS/2 Keyboard Controller (PCI)", - .internal_name = "kbc_ps2_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC, - .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 kbc_ps2_ami_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (AMI)", - .internal_name = "kbc_ps2_ami_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_AMI, - .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 kbc_ps2_ali_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (ALi M5123/M1543C)", - .internal_name = "kbc_ps2_ali_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_ALI, - .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 kbc_ps2_intel_ami_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (AMI)", - .internal_name = "kbc_ps2_intel_ami_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_GREEN | KBC_VEN_AMI, - .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 kbc_ps2_tg_ami_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (TriGem AMI)", - .internal_name = "kbc_ps2_tg_ami_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI, - .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 kbc_ps2_acer_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (Acer 90M002A)", - .internal_name = "kbc_ps2_acer_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_ACER, - .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 kbc_ps2_phoenix_pci_device = { - .name = "PS/2 Keyboard Controller (PCI) (Phoenix)", - .internal_name = "kbc_ps2_phoenix_pci", - .flags = DEVICE_KBC | DEVICE_PCI, - .local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX, + .local = KBC_VEN_GENERIC, .init = kbc_at_init, .close = kbc_at_close, .reset = kbc_at_reset, diff --git a/src/include/86box/keyboard.h b/src/include/86box/keyboard.h index d11601285..8220799fc 100644 --- a/src/include/86box/keyboard.h +++ b/src/include/86box/keyboard.h @@ -118,101 +118,42 @@ typedef struct scancode { const uint8_t brk[4]; } scancode; -#define STATE_SHIFT_MASK 0x22 -#define STATE_RSHIFT 0x20 -#define STATE_LSHIFT 0x02 +#define STATE_SHIFT_MASK 0x22 +#define STATE_RSHIFT 0x20 +#define STATE_LSHIFT 0x02 -#define FAKE_LSHIFT_ON 0x100 -#define FAKE_LSHIFT_OFF 0x101 -#define LSHIFT_ON 0x102 -#define LSHIFT_OFF 0x103 -#define RSHIFT_ON 0x104 -#define RSHIFT_OFF 0x105 +#define FAKE_LSHIFT_ON 0x100 +#define FAKE_LSHIFT_OFF 0x101 +#define LSHIFT_ON 0x102 +#define LSHIFT_OFF 0x103 +#define RSHIFT_ON 0x104 +#define RSHIFT_OFF 0x105 -/* KBC #define's */ -/* IBM-style controllers */ -#define KBC_IBM_PC_XT 0x0000 /* IBM PC/XT */ -#define KBC_IBM_PCJR 0x0001 /* IBM PCjr */ -#define KBC_IBM_TYPE_1 0x0002 /* IBM AT / PS/2 Type 1 */ -#define KBC_IBM_TYPE_2 0x0003 /* IBM PS/2 Type 2 */ -#define KBC_AMI_ACCESS_METHODS 0x0004 /* Access Methods AMI */ -#define KBC_JU_JET 0x0005 /* Ju-Jet */ -/* OEM proprietary */ -#define KBC_TANDY 0x0011 /* Tandy 1000/1000HX */ -#define KBC_TANDY_SL2 0x0012 /* Tandy 1000SL2 */ -#define KBC_AMSTRAD 0x0013 /* Amstrad */ -#define KBC_OLIVETTI_XT 0x0014 /* Olivetti XT */ -#define KBC_OLIVETTI 0x0015 /* Olivetti AT */ -#define KBC_TOSHIBA 0x0016 /* Toshiba AT */ -#define KBC_COMPAQ 0x0017 /* Compaq */ -#define KBC_NCR 0x0018 /* NCR */ -#define KBC_QUADTEL 0x0019 /* Quadtel */ -#define KBC_SIEMENS 0x001A /* Siemens */ -/* Phoenix MultiKey/42 */ -#define PHOENIX_MK42_105 0x0521 /* Phoenix MultiKey/42 1.05 */ -#define PHOENIX_MK42_129 0x2921 /* Phoenix MultiKey/42 1.29 */ -#define PHOENIX_MK42_138 0x3821 /* Phoenix MultiKey/42 1.38 */ -#define PHOENIX_MK42_140 0x3821 /* Phoenix MultiKey/42 1.40 */ -#define PHOENIX_MKC42_214 0x1422 /* Phoenix MultiKey/C42 2.14 */ -#define PHOENIX_MK42I_416 0x1624 /* Phoenix MultiKey/42i 4.16 */ -#define PHOENIX_MK42I_419 0x1924 /* Phoenix MultiKey/42i 4.19 */ -/* AMI 0x3x */ -#define KBC_ACER_V30 0x0030 /* Acer (0xA1 returns nothing, 0xAF returns 0x00) */ -#define KBC_AMI_MEGAKEY_SUPER_IO 0x0035 /* AMI '5' MegaKey 1994 NSC (and SM(S)C?) */ -#define KBC_AMI_8 0x0038 /* AMI '8' */ -/* AMI 0x4x */ -#define KBC_AMI_B 0x0042 /* AMI 'B' */ -#define KBC_AMI_D 0x0044 /* AMI 'D' */ -#define KBC_AMI_E 0x0045 /* AMI 'E' */ -#define KBC_AMIKEY 0x0046 /* AMI 'F'/AMIKEY */ -#define KBC_AMIKEY_2 0x0048 /* AMI 'H'/AMIEY-2 */ -#define KBC_MR 0x004D /* MR 'M' - Temporary classification until we get a dump */ -/* AMI 0x5x */ -#define KBC_AMI_MEGAKEY_1993 0x0050 /* AMI 'P' MegaKey 1993 */ -#define KBC_AMI_MEGAKEY_1994 0x0052 /* AMI 'R' MegaKey 1994 - 0xA0 returns 1993 copyright */ -#define KBC_AMI_TRIGEM 0x005A /* TriGem AMI 'Z' (1990 AMI copyright) */ -/* AMI 0x6x */ -#define KBC_TANDON 0x0061 /* Tandon 'a' - Temporary classification until we get a dump */ -/* Holtek */ -#define KBC_HT_REGIONAL_6542 0x1046 /* Holtek 'F' (Regional 6542) */ -#define KBC_HT_HT6542B_BESTKEY 0x1048 /* Holtek 'H' (Holtek HT6542B, BestKey) */ -/* AMI 0x0x clone without command 0xA0 */ -#define KBC_UNK_00 0x2000 /* Unknown 0x00 */ -#define KBC_UNK_01 0x2001 /* Unknown 0x01 */ -/* AMI 0x3x clone without command 0xA0 */ -#define KBC_UNK_7 0x2037 /* Unknown '7' - Temporary classification until we get a dump */ -#define KBC_UNK_9 0x2037 /* Unknown '9' - Temporary classification until we get a dump */ -#define KBC_JETKEY_NO_VER 0x2038 /* No-version JetKey '8' */ -/* AMI 0x4x clone without command 0xA0 */ -#define KBC_UNK_A 0x2041 /* Unknown 'A' - Temporary classification until we get a dump */ -#define KBC_JETKEY_5_W83C42 0x2046 /* JetKey 5.0 'F' and Winbond W83C42 */ -#define KBC_UNK_G 0x2047 /* Unknown 'G' - Temporary classification until we get a dump */ -#define KBC_MB_300E_SIS 0x2048 /* MB-300E Non-VIA 'H' and SiS 5582/559x */ -#define KBC_UNK_L 0x204C /* Unknown 'L' - Temporary classification until we get a dump */ -/* AMI 0x0x clone with command 0xA0 (Get Copyright String) only returning 0x00 */ -#define KBC_VPC_2007 0x3000 /* Microsoft Virtual PC 2007 - everything returns 0x00 */ -/* AMI 0x4x clone with command 0xA0 (Get Copyright String) only returning 0x00 */ -#define KBC_ALI_M148X 0x3045 /* ALi M148x 'E'/'U' (0xA1 actually returns 'F' but BIOS shows 'E' or 'U') */ -#define KBC_LANCE_UTRON 0x3046 /* Lance LT38C41 'F', Utron */ -/* AMI 0x5x clone with command 0xA0 (Get Copyright String) only returning 0x00 */ -#define KBC_SARC_6042 0x3055 /* SARC 6042 'U' */ -/* Award and clones */ -#define KBC_AWARD 0x4200 /* Award (0xA1 returns 0x00) - Temporary classification until we get \ - the real 0xAF return */ -#define KBC_VIA_VT82C4XN 0x4246 /* VIA VT82C41N, VT82C4N (0xA1 returns 'F') */ -#define KBC_VIA_VT82C586A 0x4346 /* VIA VT82C586A (0xA1 returns 'F') */ -#define KBC_VIA_VT82C586B 0x4446 /* VIA VT82C586B (0xA1 returns 'F') */ -#define KBC_VIA_VT82C686B 0x4546 /* VIA VT82C686B (0xA1 returns 'F') */ -/* UMC */ -#define KBC_UMC_UM8886 0x5048 /* UMC UM8886 'H' */ -/* IBM-style controllers with inverted P1 video type bit polarity */ -#define KBC_IBM_TYPE_1_XI8088 0x8000 /* Xi8088: IBM Type 1 */ -/* AMI (this is the 0xA1 revision byte) with inverted P1 video type bit polarity */ -#define KBC_ACER_V30_INV 0x8030 /* Acer (0xA1 returns nothing, 0xAF returns 0x00) */ -/* Holtek with inverted P1 video type bit polarity */ -#define KBC_HT_HT6542B_XI8088 0x9048 /* Xi8088: Holtek 'H' (Holtek HT6542B, BestKey) */ -/* Award and clones with inverted P1 video type bit polarity */ -#define KBC_VIA_VT82C4XN_XI8088 0xC246 /* Xi8088: VIA VT82C41N, VT82C4N (0xA1 returns 'F') */ +#define KBC_VEN_GENERIC 0x00 +#define KBC_VEN_ACER 0x01 +#define KBC_VEN_ALI 0x02 +#define KBC_VEN_AMI 0x03 +#define KBC_VEN_AMI_TRIGEM 0x04 +#define KBC_VEN_AWARD 0x05 +#define KBC_VEN_CHIPS 0x06 +#define KBC_VEN_COMPAQ 0x07 +#define KBC_VEN_HOLTEK 0x08 +#define KBC_VEN_IBM 0x09 +#define KBC_VEN_NCR 0x0a +#define KBC_VEN_OLIVETTI 0x0b +#define KBC_VEN_QUADTEL 0x0c +#define KBC_VEN_PHOENIX 0x0d +#define KBC_VEN_SIEMENS 0x0e +#define KBC_VEN_TOSHIBA 0x0f +#define KBC_VEN_VIA 0x10 +#define KBC_VEN_UMC 0x11 +#define KBC_VEN_SIS 0x12 +#define KBC_VEN_MASK 0x1f + +#define KBC_FLAG_IS_ASIC 0x80000000 +#define KBC_FLAG_IS_CLONE 0x40000000 +#define KBC_FLAG_IS_GREEN 0x20000000 +#define KBC_FLAG_IS_TYPE2 0x10000000 #ifdef __cplusplus extern "C" { @@ -256,47 +197,8 @@ extern const device_t kbc_xt_zenith_device; extern const device_t kbc_xt_hyundai_device; extern const device_t kbc_xt_fe2010_device; extern const device_t kbc_xtclone_device; + extern const device_t kbc_at_device; -extern const device_t kbc_at_ami_device; -extern const device_t kbc_at_award_device; -extern const device_t kbc_at_chips_device; -extern const device_t kbc_at_holtek_device; -extern const device_t kbc_at_phoenix_device; -extern const device_t kbc_at_quadtel_device; -extern const device_t kbc_at_compaq_device; -extern const device_t kbc_at_umc_device; -extern const device_t kbc_at_via_device; -extern const device_t kbc_at_phoenix_device; -extern const device_t kbc_at_ncr_device; -extern const device_t kbc_at_olivetti_device; -extern const device_t kbc_at_siemens_device; -extern const device_t kbc_at_tg_ami_device; -extern const device_t kbc_at_toshiba_device; -extern const device_t kbc_ps2_device; -extern const device_t kbc_ps2_ps1_device; -extern const device_t kbc_ps2_ps1_pci_device; -extern const device_t kbc_ps2_xi8088_device; -extern const device_t kbc_ps2_acer_device; -extern const device_t kbc_ps2_ami_device; -extern const device_t kbc_ps2_award_device; -extern const device_t kbc_ps2_compaq_device; -extern const device_t kbc_ps2_holtek_device; -extern const device_t kbc_ps2_mca_1_device; -extern const device_t kbc_ps2_mca_2_device; -extern const device_t kbc_ps2_olivetti_device; -extern const device_t kbc_ps2_phoenix_device; -extern const device_t kbc_ps2_quadtel_device; -extern const device_t kbc_ps2_umc_device; -extern const device_t kbc_ps2_via_device; -extern const device_t kbc_ps2_tg_ami_device; -extern const device_t kbc_ps2_tg_ami_green_device; -extern const device_t kbc_ps2_pci_device; -extern const device_t kbc_ps2_ami_pci_device; -extern const device_t kbc_ps2_intel_ami_pci_device; -extern const device_t kbc_ps2_acer_pci_device; -extern const device_t kbc_ps2_ali_pci_device; -extern const device_t kbc_ps2_phoenix_pci_device; -extern const device_t kbc_ps2_tg_ami_pci_device; extern const device_t keyboard_pc_xt_device; extern const device_t keyboard_at_device; diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index fe679775d..acba9cd45 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -8,15 +8,15 @@ * * Handling of the emulated machines. * - * - * * Authors: Sarah Walker, * Miran Grca, * Fred N. van Kempen, + * Jasmine Iwanek, * * Copyright 2008-2020 Sarah Walker. - * Copyright 2016-2020 Miran Grca. + * Copyright 2016-2025 Miran Grca. * Copyright 2017-2020 Fred N. van Kempen. + * Copyright 2025 Jasmine Iwanek. */ #ifndef EMU_MACHINE_H @@ -338,7 +338,7 @@ typedef struct _machine_ { uint32_t type; uintptr_t chipset; int (*init)(const struct _machine_ *); - uint8_t (*p1_handler)(uint8_t write, uint8_t val); + uint8_t (*p1_handler)(void); uint32_t (*gpio_handler)(uint8_t write, uint32_t val); uintptr_t available_flag; uint32_t (*gpio_acpi_handler)(uint8_t write, uint32_t val); @@ -409,6 +409,9 @@ extern const char * machine_get_internal_name_ex(int m); extern const char * machine_get_nvr_name_ex(int m); extern int machine_get_nvrmask(int m); extern int machine_has_flags(int m, int flags); +extern void machine_set_ps2(void); +extern void machine_force_ps2(int is_ps2); +extern int machine_has_flags_ex(int flags); extern int machine_has_bus(int m, int bus_flags); extern int machine_has_cartridge(int m); extern int machine_has_jumpered_ecp_dma(int m, int dma); @@ -424,13 +427,19 @@ extern void machine_close(void); extern int machine_has_mouse(void); extern int machine_is_sony(void); +extern uint8_t machine_compaq_p1_handler(void); +extern uint8_t machine_generic_p1_handler(void); +extern uint8_t machine_ncr_p1_handler(void); +extern uint8_t machine_ps1_p1_handler(void); +extern uint8_t machine_t3100e_p1_handler(void); + extern uint8_t machine_get_p1_default(void); -extern uint8_t machine_get_p1(void); extern void machine_set_p1_default(uint8_t val); extern void machine_set_p1(uint8_t val); extern void machine_and_p1(uint8_t val); extern void machine_init_p1(void); extern uint8_t machine_handle_p1(uint8_t write, uint8_t val); +extern uint8_t machine_get_p1(uint8_t kbc_p1); extern uint32_t machine_get_gpio_default(void); extern uint32_t machine_get_gpio(void); extern void machine_set_gpio_default(uint32_t val); diff --git a/src/machine/m_at_286.c b/src/machine/m_at_286.c index dda2e822f..c85c392b8 100644 --- a/src/machine/m_at_286.c +++ b/src/machine/m_at_286.c @@ -136,7 +136,7 @@ machine_at_ibm_common_init(const machine_t *model) { machine_at_common_init_ex(model, 1); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); mem_remap_top(384); @@ -285,7 +285,7 @@ machine_at_portableii_init(const machine_t *model) device_add(&compaq_device); machine_at_common_init(model); - device_add(&kbc_at_compaq_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -316,7 +316,7 @@ machine_at_portableiii_init(const machine_t *model) device_add(&compaq_device); machine_at_common_init(model); - device_add(&kbc_at_compaq_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -333,7 +333,7 @@ machine_at_grid1520_init(const machine_t *model) { machine_at_common_ide_init(model); mem_remap_top(384); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); // for now just select CGA with amber monitor //device_add(&cga_device); @@ -358,7 +358,7 @@ machine_at_mr286_init(const machine_t *model) return ret; machine_at_common_ide_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -366,6 +366,23 @@ machine_at_mr286_init(const machine_t *model) return ret; } +uint8_t +machine_ncr_p1_handler(void) +{ + /* switch settings + * bit 7: keyboard disable + * bit 6: display type (0 color, 1 mono) + * bit 5: power-on default speed (0 high, 1 low) + * bit 4: sense RAM size (0 unsupported, 1 512k on system board) + * bit 3: coprocessor detect + * bit 2: unused + * bit 1: high/auto speed + * bit 0: dma mode + */ + /* (B0 or F0) | 0x04 | (display on bit 6) | (fpu on bit 3) */ + return (video_is_mda() ? 0x40 : 0x00) | (hasfpu ? 0x08 : 0x00) | 0x90; +} + /* * Current bugs: * - ctrl-alt-del produces an 8042 error @@ -383,7 +400,7 @@ machine_at_pc8_init(const machine_t *model) return ret; machine_at_common_init(model); - device_add(&kbc_at_ncr_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -411,7 +428,7 @@ machine_at_m290_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_olivetti_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -482,7 +499,7 @@ machine_at_mbc17_init(const machine_t *model) machine_at_common_ide_init(model); device_add(&sanyo_device); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -503,7 +520,7 @@ machine_at_ax286_init(const machine_t *model) return ret; machine_at_common_ide_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -524,7 +541,7 @@ machine_at_siemens_init(const machine_t *model) machine_at_common_init_ex(model, 1); - device_add(&kbc_at_siemens_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); mem_remap_top(384); @@ -545,7 +562,7 @@ machine_at_ctat_common_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); } int @@ -578,7 +595,7 @@ machine_at_super286c_init(const machine_t *model) machine_at_common_init(model); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -652,7 +669,7 @@ machine_at_quadt286_init(const machine_t *model) return ret; machine_at_common_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -665,7 +682,7 @@ machine_at_quadt286_init(const machine_t *model) void machine_at_headland_common_init(const machine_t *model, int type) { - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if ((type != 2) && (fdc_current[0] == FDC_INTERNAL)) device_add(&fdc_at_device); @@ -718,7 +735,7 @@ machine_at_ataripc4_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -741,7 +758,7 @@ machine_at_neat_ami_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -771,7 +788,7 @@ machine_at_3302_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); - device_add(&kbc_at_ncr_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -788,7 +805,7 @@ machine_at_px286_init(const machine_t *model) return ret; machine_at_common_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -829,17 +846,7 @@ machine_at_scat_init(const machine_t *model, int is_v4, int is_ami) { machine_at_common_init(model); - if ((machines[machine].bus_flags & MACHINE_BUS_PS2) && (strcmp(machine_get_internal_name(), "pc5286"))) { - if (is_ami) - device_add(&kbc_ps2_ami_device); - else - device_add(&kbc_ps2_device); - } else { - if (is_ami) - device_add(&kbc_at_ami_device); - else - device_add(&kbc_at_device); - } + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (is_v4) device_add(&scat_4_device); diff --git a/src/machine/m_at_386dx.c b/src/machine/m_at_386dx.c index 0d7d8d507..90461d554 100644 --- a/src/machine/m_at_386dx.c +++ b/src/machine/m_at_386dx.c @@ -51,6 +51,12 @@ #include <86box/sound.h> /* ISA */ +uint8_t +machine_compaq_p1_handler(void) +{ + return machine_generic_p1_handler() | (hasfpu ? 0x00 : 0x04); +} + static void machine_at_deskpro386_common_init(const machine_t *model) { @@ -62,7 +68,8 @@ machine_at_deskpro386_common_init(const machine_t *model) device_add(&compaq_386_device); machine_at_common_init(model); - device_add(&kbc_at_compaq_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); } int @@ -122,7 +129,8 @@ machine_at_portableiii386_init(const machine_t *model) device_add(&compaq_386_device); machine_at_common_init(model); - device_add(&kbc_at_compaq_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -140,6 +148,7 @@ machine_at_micronics386_init(const machine_t *model) return ret; machine_at_init(model); + device_add(&port_92_device); if (fdc_current[0] == FDC_INTERNAL) @@ -161,6 +170,7 @@ machine_at_micronics386px_init(const machine_t *model) return ret; machine_at_init(model); + device_add(&port_92_device); if (fdc_current[0] == FDC_INTERNAL) @@ -182,8 +192,10 @@ machine_at_acc386_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&acc2168_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -205,12 +217,13 @@ machine_at_ecs386_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&cs8230_device); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -228,12 +241,13 @@ machine_at_spc6000a_init(const machine_t *model) return ret; machine_at_common_init_ex(model, 1); + device_add(&cs8230_device); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -250,8 +264,10 @@ machine_at_tandy4000_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&cs8230_device); - device_add(&kbc_at_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -269,11 +285,13 @@ machine_at_ecs386v_init(const machine_t *model) 0x000f0000, 65536, 0); if (bios_only || !ret) - return ret; + return ret; machine_at_common_init(model); + device_add(&ali1429_device); - device_add(&kbc_ps2_intel_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -296,7 +314,8 @@ machine_at_dataexpert386wb_init(const machine_t *model) machine_at_common_init(model); device_add(&opti391_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -320,7 +339,7 @@ machine_at_opti495_init(const machine_t *model) device_add(&opti495slc_device); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -341,8 +360,10 @@ machine_at_asus3863364k_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&rabbit_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -362,8 +383,10 @@ machine_at_asus386_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&rabbit_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_386dx_486.c b/src/machine/m_at_386dx_486.c index b20fc3502..f4fb1f713 100644 --- a/src/machine/m_at_386dx_486.c +++ b/src/machine/m_at_386dx_486.c @@ -63,10 +63,12 @@ machine_at_exp4349_init(const machine_t *model) machine_at_common_init(model); device_add(&ali1429g_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); + return ret; } @@ -91,7 +93,8 @@ machine_at_c747_init(const machine_t *model) No idea what KBC it actually has but this produces the desired behavior: command A9 does absolutely nothing. */ - device_add(&kbc_at_siemens_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add_params(&um866x_device, (void *) (UM82C862F | UM866X_IDE_PRI)); return ret; @@ -104,7 +107,7 @@ machine_at_opti495_ami_common_init(const machine_t *model) device_add(&opti495sx_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_386sx.c b/src/machine/m_at_386sx.c index 82ae3b79d..4aed9f0b1 100644 --- a/src/machine/m_at_386sx.c +++ b/src/machine/m_at_386sx.c @@ -62,7 +62,7 @@ machine_at_pc916sx_init(const machine_t *model) machine_at_common_init(model); - device_add(&kbc_at_ncr_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); mem_remap_top(384); if (fdc_current[0] == FDC_INTERNAL) @@ -84,7 +84,7 @@ machine_at_quadt386sx_init(const machine_t *model) return ret; machine_at_common_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -152,7 +152,7 @@ machine_at_pbl300sx_init(const machine_t *model) machine_at_common_init(model); device_add(&acc2036_device); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um866x_device, (void *) (UM82C862F | UM866X_IDE_PRI)); if (gfxcard[0] == VID_INTERNAL) @@ -178,7 +178,8 @@ machine_at_arb1374_init(const machine_t *model) device_add(&ali1217_device); device_add(&ide_isa_device); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0 | W83XX7_IDE_PRI)); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -199,7 +200,8 @@ machine_at_sbc350a_init(const machine_t *model) device_add(&ali1217_device); device_add(&ide_isa_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -224,7 +226,7 @@ machine_at_flytech386_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(&tvga8900d_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -244,7 +246,8 @@ machine_at_325ax_init(const machine_t *model) device_add(&ali1217_device); device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -264,7 +267,8 @@ machine_at_mr1217_init(const machine_t *model) device_add(&ali1217_device); device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -284,6 +288,7 @@ machine_at_acer100t_init(const machine_t *model) machine_at_ps2_ide_init(model); device_add(&ali1409_device); + if (gfxcard[0] == VID_INTERNAL) device_add(&oti077_acer100t_device); @@ -333,7 +338,7 @@ machine_at_adi386sx_init(const machine_t *model) device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */ device_add(&intel_82335_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -356,7 +361,7 @@ machine_at_shuttle386sx_init(const machine_t *model) machine_at_common_init(model); device_add(&intel_82335_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -379,7 +384,7 @@ machine_at_cmdsl386sx16_init(const machine_t *model) machine_at_common_init(model); - device_add(&kbc_ps2_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -429,7 +434,7 @@ machine_at_if386sx_init(const machine_t *model) machine_at_common_init_ex(model, 2); device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */ - device_add(&kbc_at_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&neat_sx_device); @@ -462,7 +467,7 @@ machine_at_svc386sxp1_init(const machine_t *model) machine_at_common_init(model); device_add(&opti283_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -524,10 +529,7 @@ machine_at_scamp_common_init(const machine_t *model, int is_ps2) { machine_at_common_ide_init(model); - if (is_ps2) - device_add(&kbc_ps2_ami_device); - else - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -645,7 +647,7 @@ machine_at_scatsx_init(const machine_t *model) { machine_at_common_init(model); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -687,7 +689,7 @@ machine_at_wd76c10_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(¶dise_wd90c11_megapc_device); - device_add(&kbc_ps2_quadtel_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&wd76c10_device); diff --git a/src/machine/m_at_486slc.c b/src/machine/m_at_486slc.c index f237a8aea..156eae16b 100644 --- a/src/machine/m_at_486slc.c +++ b/src/machine/m_at_486slc.c @@ -63,7 +63,7 @@ machine_at_rycleopardlx_init(const machine_t *model) machine_at_common_init(model); device_add(&opti283_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_common.c b/src/machine/m_at_common.c index 8d97533c5..9526c7749 100644 --- a/src/machine/m_at_common.c +++ b/src/machine/m_at_common.c @@ -93,7 +93,7 @@ machine_at_init(const machine_t *model) { machine_at_common_init(model); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); } void @@ -101,7 +101,7 @@ machine_at_ps2_init(const machine_t *model) { machine_at_common_init(model); - device_add(&kbc_ps2_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); } void diff --git a/src/machine/m_at_m6117.c b/src/machine/m_at_m6117.c index 9558dacf3..2d8116b12 100644 --- a/src/machine/m_at_m6117.c +++ b/src/machine/m_at_m6117.c @@ -59,7 +59,7 @@ machine_at_pja511m_init(const machine_t *model) device_add_inst_params(&fdc37c669_device, 1, (void *) FDC37C6XX_IDE_PRI); device_add_inst_params(&fdc37c669_device, 2, (void *) 0); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ali6117d_device); device_add(&sst_flash_29ee010_device); @@ -80,7 +80,7 @@ machine_at_prox1332_init(const machine_t *model) machine_at_common_init(model); device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ali6117d_device); device_add(&sst_flash_29ee010_device); diff --git a/src/machine/m_at_slot1.c b/src/machine/m_at_slot1.c index f92917505..12fd9861f 100644 --- a/src/machine/m_at_slot1.c +++ b/src/machine/m_at_slot1.c @@ -140,7 +140,7 @@ machine_at_kn97_init(const machine_t *model) pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i440fx_device); device_add(&piix3_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&intel_flash_bxt_device); device_add(&lm78_device); /* fans: Chassis, CPU, Power; temperature: MB */ @@ -772,7 +772,6 @@ machine_at_ficka6130_init(const machine_t *model) device_add(&via_apro_device); device_add(&via_vt82c596a_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); - device_add(&kbc_ps2_ami_pci_device); device_add(&sst_flash_29ee020_device); spd_register(SPD_TYPE_SDRAM, 0x7, 256); @@ -916,7 +915,6 @@ machine_at_p6f99_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0); device_add(&sis_5600_device); - device_add(&kbc_ps2_ami_pci_device); device_add(&it8661f_device); device_add(&winbond_flash_w29c020_device); @@ -949,7 +947,6 @@ machine_at_m747_init(const machine_t *model) pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0); device_add(&sis_5600_device); - device_add(&kbc_ps2_ami_pci_device); device_add(&it8661f_device); device_add(&winbond_flash_w29c020_device); diff --git a/src/machine/m_at_socket1.c b/src/machine/m_at_socket1.c index 960bbce07..4357a1b42 100644 --- a/src/machine/m_at_socket1.c +++ b/src/machine/m_at_socket1.c @@ -61,8 +61,10 @@ machine_at_cs4031_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&cs4031_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -83,8 +85,10 @@ machine_at_ga486l_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&opti381_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -108,7 +112,7 @@ machine_at_svc486wb_init(const machine_t *model) device_add(&opti493_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_isa_device); return ret; @@ -130,7 +134,7 @@ machine_at_mvi486_init(const machine_t *model) device_add(&opti498_device); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_isa_device); device_add_params(&pc873xx_device, (void *) (PCX73XX_IDE_PRI | PCX730X_398)); @@ -143,8 +147,10 @@ static void machine_at_sis401_common_init(const machine_t *model) { machine_at_common_init(model); + device_add(&sis_85c401_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -195,8 +201,10 @@ machine_at_av4_init(const machine_t *model) return ret; machine_at_common_init(model); + device_add(&sis_85c460_device); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -222,7 +230,7 @@ machine_at_advantage40xxd_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um866x_device, (void *) (UM82C863F | UM866X_IDE_PRI)); device_add(&intel_flash_bxt_device); @@ -244,7 +252,7 @@ machine_at_dtk461_init(const machine_t *model) machine_at_common_init(model); device_add(&sl82c461_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -267,7 +275,8 @@ machine_at_486vchd_init(const machine_t *model) machine_at_common_init(model); device_add(&via_vt82c49x_device); - device_add(&kbc_at_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -386,7 +395,7 @@ machine_at_isa486c_init(const machine_t *model) device_add(&isa486c_device); device_add(&port_92_key_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -410,7 +419,7 @@ machine_at_genoa486_init(const machine_t *model) device_add(&compaq_genoa_device); device_add(&port_92_key_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_socket2.c b/src/machine/m_at_socket2.c index 2ddbd288c..6c24070ba 100644 --- a/src/machine/m_at_socket2.c +++ b/src/machine/m_at_socket2.c @@ -62,7 +62,7 @@ machine_at_pb410a_init(const machine_t *model) machine_at_ibm_common_ide_init(model); - device_add(&kbc_ps2_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&acc3221_device); device_add(&acc2168_device); @@ -93,7 +93,7 @@ machine_at_acera1g_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(&gd5428_onboard_device); - device_add(&kbc_ps2_acer_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&pc87310_device, (void *) (PC87310_ALI)); device_add(&ide_ali5213_device); @@ -111,7 +111,7 @@ machine_at_ali1429_common_init(const machine_t *model, int is_green) else device_add(&ali1429_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -170,8 +170,11 @@ machine_at_pci400ca_init(const machine_t *model) pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sio_device); + device_add(&intel_flash_bxt_ami_device); device_add(&i420tx_device); @@ -203,7 +206,8 @@ machine_at_g486ip_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 1 */ pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */ pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 05 = Slot 3 */ - device_add(&kbc_ps2_ami_pci_device); /* AMI Megakey 1993 stanalone ('P') */ + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ims8848_device); @@ -232,7 +236,7 @@ machine_at_cobalt_init(const machine_t *model) device_add(&ide_isa_sec_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); @@ -257,7 +261,7 @@ machine_at_cougar_init(const machine_t *model) device_add(&opti499_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -284,7 +288,7 @@ machine_at_decpclpv_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); - device_add(&kbc_ps2_phoenix_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_isa_2ch_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C663 | FDC37C6XX_IDE_PRI)); @@ -315,7 +319,7 @@ machine_at_dell466np_init(const machine_t *model) mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000); mem_mapping_set_exec(&bios_mapping, rom); - device_add(&kbc_ps2_phoenix_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_isa_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C661 | FDC37C6XX_IDE_PRI)); @@ -340,7 +344,8 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2 device_add(&et4000w32_onboard_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C661 | FDC37C6XX_IDE_PRI)); - device_add(&kbc_ps2_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_socket3.c b/src/machine/m_at_socket3.c index ca45064b1..1d46ebe18 100644 --- a/src/machine/m_at_socket3.c +++ b/src/machine/m_at_socket3.c @@ -62,7 +62,8 @@ machine_at_atc1762_init(const machine_t *model) machine_at_common_init(model); device_add(&ali1429g_device); - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -84,7 +85,8 @@ machine_at_ecsal486_init(const machine_t *model) machine_at_common_init(model); device_add(&ali1429g_device); - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -107,7 +109,9 @@ machine_at_ap4100aa_init(const machine_t *model) device_add(&ami_1994_nvr_device); device_add(&ali1429g_device); - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&ide_vlb_device); device_add_params(&um866x_device, (void *) UM8663BF); @@ -133,7 +137,7 @@ machine_at_4gpv5_init(const machine_t *model) device_add(&contaq_82c596a_device); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -157,7 +161,7 @@ machine_at_greenb_init(const machine_t *model) device_add(&contaq_82c597_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -174,7 +178,7 @@ machine_at_403tg_common_init(const machine_t *model, int nvr_hack) device_add(&opti895_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -243,7 +247,9 @@ machine_at_acerv10_init(const machine_t *model) machine_at_common_init(model); device_add(&sis_85c461_device); - device_add(&kbc_ps2_acer_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&ide_isa_device); if (fdc_current[0] == FDC_INTERNAL) @@ -276,7 +282,8 @@ machine_at_win471_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -293,7 +300,8 @@ machine_at_vi15g_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -310,7 +318,8 @@ machine_at_vli486sv2g_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -330,7 +339,8 @@ machine_at_dvent4xx_init(const machine_t *model) device_add(&sis_85c471_device); device_add(&ide_cmd640_vlb_pri_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); - device_add(&kbc_ps2_phoenix_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); @@ -350,7 +360,8 @@ machine_at_dtk486_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); - device_add(&kbc_at_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -367,7 +378,8 @@ machine_at_ami471_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -384,8 +396,10 @@ machine_at_px471_init(const machine_t *model) return ret; machine_at_sis_85c471_common_init(model); + device_add(&ide_vlb_device); - device_add(&kbc_at_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -406,7 +420,8 @@ machine_at_tg486g_init(const machine_t *model) device_add(&sis_85c471_device); device_add(&ide_isa_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI)); - device_add(&kbc_ps2_tg_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (gfxcard[0] != VID_INTERNAL) { for (uint16_t i = 0; i < 32768; i++) diff --git a/src/machine/m_at_socket370.c b/src/machine/m_at_socket370.c index 60da8e2b8..1094e59f5 100644 --- a/src/machine/m_at_socket370.c +++ b/src/machine/m_at_socket370.c @@ -266,7 +266,6 @@ machine_at_m773_init(const machine_t *model) pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4); device_add(&i440bx_device); device_add(&slc90e66_device); - device_add(&kbc_ps2_ami_pci_device); device_add(&it8671f_device); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x3, 256); @@ -307,7 +306,6 @@ machine_at_apas3_init(const machine_t *model) device_add(&via_apro_device); device_add(&via_vt82c586b_device); device_add_params(&fdc37c669_device, (void *) 0); - device_add(&kbc_ps2_ami_pci_device); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x7, 256); @@ -374,7 +372,6 @@ machine_at_6via90ap_init(const machine_t *model) pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4); device_add(&via_apro133a_device); device_add(&via_vt82c686b_device); /* fans: CPU1, CPU2; temperatures: CPU, System, unused */ - device_add(&kbc_ps2_ami_pci_device); device_add(ics9xxx_get(ICS9250_18)); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x7, 1024); @@ -415,7 +412,6 @@ machine_at_cuv4xls_init(const machine_t *model) pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4); device_add(&via_apro133a_device); device_add(&via_vt82c686b_device); - device_add(&kbc_ps2_ami_pci_device); device_add(ics9xxx_get(ICS9250_18)); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0xF, 1024); @@ -449,7 +445,6 @@ machine_at_7sbb_init(const machine_t *model) pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4); device_add(&sis_5600_device); - device_add(&kbc_ps2_ami_pci_device); device_add(&it8661f_device); device_add(&sst_flash_29ee020_device); /* assumed */ diff --git a/src/machine/m_at_socket3_pci.c b/src/machine/m_at_socket3_pci.c index 3803e486f..77563f3cb 100644 --- a/src/machine/m_at_socket3_pci.c +++ b/src/machine/m_at_socket3_pci.c @@ -78,7 +78,7 @@ machine_at_ms4134_init(const machine_t *model) device_add(&ali1435_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -111,7 +111,7 @@ machine_at_tg486gp_init(const machine_t *model) device_add(&ali1435_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_ps2_tg_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -143,7 +143,9 @@ machine_at_sbc490_init(const machine_t *model) device_add(&ali1489_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sst_flash_29ee010_device); return ret; @@ -170,7 +172,7 @@ machine_at_abpb4_init(const machine_t *model) device_add(&ali1489_device); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sst_flash_29ee010_device); return ret; @@ -193,7 +195,9 @@ machine_at_arb1476_init(const machine_t *model) device_add(&ali1489_device); device_add_params(&fdc37c669_device, (void *) 0); - device_add(&kbc_ps2_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sst_flash_29ee010_device); return ret; @@ -220,7 +224,7 @@ machine_at_win486pci_init(const machine_t *model) device_add(&ali1489_device); device_add_params(&gm82c803ab_device, (void *) GM82C803B); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -243,7 +247,9 @@ machine_at_tf486_init(const machine_t *model) pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); device_add(&ali1489_device); - device_add(&kbc_at_phoenix_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add_params(&w83977_device, (void *) (W83977EF | W83977_NO_NVR)); device_add(&sst_flash_29ee010_device); @@ -272,7 +278,9 @@ machine_at_ms4145_init(const machine_t *model) device_add(&ali1489_device); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); - device_add(&kbc_at_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sst_flash_29ee010_device); return ret; @@ -301,7 +309,9 @@ machine_at_pc330_6573_common_init(const machine_t *model) device_add(&opti602_device); device_add(&opti802g_device); device_add(&opti822_device); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); device_add(&ide_opti611_vlb_device); device_add(&intel_flash_bxt_device); @@ -410,7 +420,7 @@ machine_at_pb450_init(const machine_t *model) device_add(&opti895_device); device_add(&opti602_device); device_add(&opti822_device); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); device_add(&ide_opti611_vlb_device); device_add(&intel_flash_bxt_device); @@ -439,7 +449,8 @@ machine_at_486pi_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1); pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&i420ex_device); @@ -467,7 +478,9 @@ machine_at_bat4ip3e_init(const machine_t *model) pci_register_slot(0x0a, PCI_CARD_NORMAL, 1, 2, 1, 2); device_add(&phoenix_486_jumper_pci_device); - device_add(&kbc_ps2_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&i420ex_device); device_add(&ide_cmd640_pci_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -495,7 +508,8 @@ machine_at_486ap4_init(const machine_t *model) pci_register_slot(0x0a, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0a = Slot 2 */ pci_register_slot(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0b = Slot 3 */ pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 0c = Slot 4 */ - device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */ + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -524,7 +538,9 @@ machine_at_ninja_init(const machine_t *model) pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 1, 2); pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1); pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 1, 2, 1); - device_add(&kbc_ps2_phoenix_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&intel_flash_bxt_ami_device); device_add(&i420ex_device); @@ -551,7 +567,8 @@ machine_at_sb486p_init(const machine_t *model) pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2); pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add_params(&i82091aa_device, (void *) I82091AA_022); device_add(&i420ex_device); @@ -577,7 +594,9 @@ machine_at_amis76_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4); pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sio_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_ami_device); @@ -611,7 +630,9 @@ machine_at_486sp3_init(const machine_t *model) pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */ pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 06 = Slot 4 */ pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_at_ami_device); /* Uses the AMIKEY KBC */ + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sio_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C663 | FDC37C6XX_IDE_PRI)); device_add(&sst_flash_29ee010_device); @@ -645,7 +666,9 @@ machine_at_alfredo_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_phoenix_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sio_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C663); device_add(&intel_flash_bxt_ami_device); @@ -677,7 +700,9 @@ machine_at_486sp3g_init(const machine_t *model) pci_register_slot(0x05, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 05 = Slot 2 */ pci_register_slot(0x04, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 04 = Slot 3 */ pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */ + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&sio_zb_device); device_add_params(&pc873xx_device, (void *) (PC87332 | PCX73XX_IDE_PRI | PCX730X_398)); device_add(&sst_flash_29ee010_device); @@ -755,7 +780,7 @@ machine_at_sb486pv_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add(&ide_rz1000_pci_single_channel_device); device_add_params(&i82091aa_device, (void *) I82091AA_26E); @@ -790,8 +815,8 @@ machine_at_pci400cb_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0E = Slot 2 */ pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0D = Slot 3 */ pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 0C = Slot 4 */ - device_add(&kbc_ps2_ami_pci_device); /* Assume AMI Megakey 1993 standalone ('P') - because of the Tekram machine below. */ + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ims8848_device); @@ -814,6 +839,8 @@ machine_at_sis_85c496_common_init(UNUSED(const machine_t *model)) pci_set_irq_routing(PCI_INTB, PCI_IRQ_DISABLED); pci_set_irq_routing(PCI_INTC, PCI_IRQ_DISABLED); pci_set_irq_routing(PCI_INTD, PCI_IRQ_DISABLED); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); } int @@ -838,7 +865,7 @@ machine_at_acerp3_init(const machine_t *model) pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); - device_add(&kbc_ps2_acer_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_cmd640_pci_legacy_only_device); if (gfxcard[0] == VID_INTERNAL) @@ -869,7 +896,7 @@ machine_at_486sp3c_init(const machine_t *model) pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&intel_flash_bxt_device); @@ -897,7 +924,7 @@ machine_at_ls486e_init(const machine_t *model) pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -923,7 +950,7 @@ machine_at_m4li_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -948,7 +975,7 @@ machine_at_ms4144_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sst_flash_29ee010_device); @@ -976,7 +1003,7 @@ machine_at_r418_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -1002,7 +1029,7 @@ machine_at_4saw2_init(const machine_t *model) pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add_params(&w837x7_device, (void *) (W83777F | W837X7_KEY_89)); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&intel_flash_bxt_device); @@ -1030,7 +1057,7 @@ machine_at_4dps_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add_params(&w837x7_device, (void *) (W83787IF | W837X7_KEY_89)); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&intel_flash_bxt_device); @@ -1061,7 +1088,6 @@ machine_at_atc1415_init(const machine_t *model) device_add(&umc_hb4_device); device_add(&umc_8886bf_device); device_add(&intel_flash_bxt_device); - device_add(&kbc_at_ami_device); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -1093,7 +1119,6 @@ machine_at_84xxuuda_init(const machine_t *model) device_add(&umc_8886bf_device); device_add_params(&um866x_device, (void *) UM8663BF); device_add(&winbond_flash_w29c010_device); - device_add(&kbc_ps2_ami_device); return ret; } @@ -1124,7 +1149,7 @@ machine_at_pl4600c_init(const machine_t *model) device_add(&umc_8886af_device); device_add_params(&um866x_device, (void *) UM8663AF); device_add(&sst_flash_29ee010_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (gfxcard[0] == VID_INTERNAL) device_add(&gd5430_onboard_pci_device); @@ -1166,7 +1191,8 @@ machine_at_ecs486_init(const machine_t *model) device_add(&ide_cmd640_pci_legacy_only_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); - device_add(&kbc_ps2_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -1195,7 +1221,8 @@ machine_at_actionpc2600_init(const machine_t *model) device_add(&umc_8886bf_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); - device_add(&kbc_ps2_tg_ami_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); @@ -1228,7 +1255,9 @@ machine_at_actiontower8400_init(const machine_t *model) device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&ide_cmd640_pci_device); device_add(&intel_flash_bxt_device); // The ActionPC 2600 has this so I'm gonna assume this does too. - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + if (gfxcard[0] == VID_INTERNAL) device_add(machine_get_vid_device(machine)); @@ -1259,7 +1288,6 @@ machine_at_m919_init(const machine_t *model) device_add(&umc_8886af_device); /* AF is correct - the BIOS does IDE writes to ports 108h and 109h. */ device_add_params(&um866x_device, (void *) UM8663BF); device_add(&sst_flash_29ee010_device); - device_add(&kbc_at_ami_device); return ret; } @@ -1288,7 +1316,7 @@ machine_at_spc7700plw_init(const machine_t *model) device_add(&umc_8886af_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -1370,9 +1398,10 @@ machine_at_hot433a_init(const machine_t *model) device_add_params(&um8669f_device, (void *) 0); device_add(&winbond_flash_w29c010_device); if (is_award) - device_add(&kbc_ps2_ami_device); + machine_force_ps2(1); else - device_add(&kbc_at_ami_device); + machine_force_ps2(0); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); pic_toggle_latch(is_award); @@ -1403,7 +1432,7 @@ machine_at_g486vpa_init(const machine_t *model) device_add(&via_vt82c49x_pci_ide_device); device_add(&via_vt82c505_device); device_add_params(&pc873xx_device, (void *) (PC87332 | PCX73XX_IDE_SEC | PCX730X_398)); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sst_flash_29ee010_device); return ret; @@ -1432,7 +1461,9 @@ machine_at_486vipio2_init(const machine_t *model) device_add(&via_vt82c49x_pci_ide_device); device_add(&via_vt82c505_device); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); - device_add(&kbc_ps2_ami_pci_device); + + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + device_add(&winbond_flash_w29c010_device); return ret; diff --git a/src/machine/m_at_socket4.c b/src/machine/m_at_socket4.c index 71df21326..2e5768cbc 100644 --- a/src/machine/m_at_socket4.c +++ b/src/machine/m_at_socket4.c @@ -102,7 +102,7 @@ machine_at_v12p_init(const machine_t *model) pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 0, 0, 0); pci_register_slot(0x05, PCI_CARD_NORMAL, 0, 0, 0, 0); device_add(&i430lx_device); - device_add(&kbc_ps2_acer_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add_params(&pc87310_device, (void *) (PC87310_ALI)); device_add(&amd_am28f010_flash_device); @@ -134,7 +134,7 @@ machine_at_ambradp60_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); device_add(&intel_flash_bxt_ami_device); @@ -165,7 +165,7 @@ machine_at_excaliburpci_init(const machine_t *model) pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_cmd640_pci_legacy_only_device); device_add(&i430lx_device); @@ -195,7 +195,7 @@ machine_at_p5mp3_init(const machine_t *model) pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */ pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&fdc_at_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430lx_device); device_add(&sio_zb_device); @@ -230,7 +230,7 @@ machine_at_dellxp60_init(const machine_t *model) pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430lx_device); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_ami_device); @@ -261,7 +261,7 @@ machine_at_opti560l_init(const machine_t *model) pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430lx_device); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add_params(&i82091aa_device, (void *) I82091AA_022); device_add(&intel_flash_bxt_ami_device); @@ -286,7 +286,7 @@ machine_at_award_common_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add(&intel_flash_bxt_device); } @@ -332,7 +332,7 @@ machine_at_valuepointp60_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ps1_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); device_add(&intel_flash_bxt_ami_device); @@ -360,7 +360,7 @@ machine_at_premiere_common_init(const machine_t *model, int pci_switch) pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add(&ide_rz1000_pci_single_channel_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); @@ -408,7 +408,7 @@ machine_at_m5pi_init(const machine_t *model) pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430lx_device); device_add(&sio_zb_device); - device_add(&kbc_ps2_phoenix_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_w83769f_pci_single_channel_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); device_add(&intel_flash_bxt_ami_device); @@ -444,7 +444,7 @@ machine_at_pb520r_init(const machine_t *model) if (gfxcard[0] == VID_INTERNAL) device_add(&gd5434_onboard_pci_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sio_zb_device); device_add_params(&i82091aa_device, (void *) (I82091AA_022 | I82091AA_IDE_PRI)); device_add(&intel_flash_bxt_ami_device); @@ -469,7 +469,7 @@ machine_at_excalibur_init(const machine_t *model) device_add(&opti5x7_device); device_add(&ide_opti611_vlb_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C661); - device_add(&kbc_ps2_intel_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); return ret; } @@ -497,7 +497,7 @@ machine_at_globalyst330_p5_init(const machine_t *model) device_add(&opti5x7_pci_device); device_add(&opti822_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -528,7 +528,7 @@ machine_at_p5vl_init(const machine_t *model) device_add(&opti5x7_pci_device); device_add(&opti822_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -560,7 +560,7 @@ machine_at_excaliburpci2_init(const machine_t *model) pci_register_slot(0x0C, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_cmd640_pci_legacy_only_device); device_add(&sis_85c50x_device); @@ -587,7 +587,7 @@ machine_at_sp4_common_init(const machine_t *model) pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_85c50x_device); device_add(&ide_cmd640_pci_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); } @@ -631,7 +631,7 @@ machine_at_ecs50x_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_85c50x_device); device_add_params(&ide_cmd640_pci_device, (void *) 0x100000); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); diff --git a/src/machine/m_at_socket4_5.c b/src/machine/m_at_socket4_5.c index 815cd7810..368f8397f 100644 --- a/src/machine/m_at_socket4_5.c +++ b/src/machine/m_at_socket4_5.c @@ -63,7 +63,7 @@ machine_at_pci56001_init(const machine_t *model) device_add(&opti5x7_pci_device); device_add(&opti822_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); diff --git a/src/machine/m_at_socket5.c b/src/machine/m_at_socket5.c index bb13c58a6..a078dd626 100644 --- a/src/machine/m_at_socket5.c +++ b/src/machine/m_at_socket5.c @@ -83,7 +83,7 @@ machine_at_p54np4_init(const machine_t *model) pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430nx_device); device_add(&sio_zb_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_PRI)); device_add(&intel_flash_bxt_device); @@ -215,7 +215,7 @@ machine_at_d842_init(const machine_t *model) pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); /* Slot 01 */ pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); /* Slot 02 */ - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430nx_device); device_add(&sio_zb_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -244,7 +244,7 @@ machine_at_tek932_init(const machine_t *model) pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - device_add(&kbc_ps2_intel_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430nx_device); device_add(&sio_zb_device); device_add(&ide_vlb_device); @@ -277,7 +277,7 @@ machine_at_acerv30_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i430fx_device); device_add(&piix_device); - device_add(&kbc_ps2_acer_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&sst_flash_29ee010_device); @@ -306,7 +306,7 @@ machine_at_apollo_init(const machine_t *model) pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398)); @@ -342,7 +342,7 @@ machine_at_optiplexgxl_init(const machine_t *model) if (sound_card_current[0] == SOUND_INTERNAL) machine_snd = device_add(machine_get_snd_device(machine)); - device_add(&kbc_ps2_phoenix_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_02E)); @@ -405,8 +405,7 @@ machine_at_pt2000_init(const machine_t *model) pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - /* Should be VIA, but we do not emulate that yet. */ - device_add(&kbc_ps2_holtek_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398)); @@ -463,7 +462,7 @@ machine_at_powermatev_init(const machine_t *model) pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0); pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -492,7 +491,7 @@ machine_at_hawk_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_tg_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -524,7 +523,7 @@ machine_at_ncselp90_init(const machine_t *model) device_add(&opti5x7_pci_device); device_add(&opti822_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&ide_opti611_vlb_device); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); device_add(&ide_vlb_2ch_device); @@ -554,7 +553,7 @@ machine_at_hot543_init(const machine_t *model) device_add(&opti5x7_pci_device); device_add(&opti822_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_at_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -576,7 +575,7 @@ machine_at_pat54pv_init(const machine_t *model) machine_at_common_init(model); device_add(&opti5x7_device); - device_add(&kbc_ps2_intel_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); @@ -625,7 +624,7 @@ machine_at_sq588_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_85c50x_device); device_add(&ide_cmd640_pci_single_channel_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) (FDC37C665 | FDC37C6XX_IDE_SEC)); device_add(&sst_flash_29ee010_device); @@ -654,7 +653,7 @@ machine_at_p54sps_init(const machine_t *model) pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_85c50x_device); device_add(&ide_pci_2ch_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); device_add(&sst_flash_29ee010_device); @@ -685,7 +684,7 @@ machine_at_ms5109_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_550x_85c503_device); device_add(&ide_w83769f_pci_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); device_add(&sst_flash_29ee010_device); @@ -720,7 +719,7 @@ machine_at_torino_init(const machine_t *model) device_add(&sis_550x_85c503_device); device_add(&ide_um8673f_device); - device_add(&kbc_ps2_tg_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_ami_device); @@ -753,7 +752,7 @@ machine_at_hot539_init(const machine_t *model) device_add(&umc_8890_device); device_add(&umc_8886af_device); device_add(&sst_flash_29ee010_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um866x_device, (void *) UM8663AF); return ret; diff --git a/src/machine/m_at_socket7.c b/src/machine/m_at_socket7.c index b3738f0ff..d44758564 100644 --- a/src/machine/m_at_socket7.c +++ b/src/machine/m_at_socket7.c @@ -96,7 +96,7 @@ machine_at_p55t2p4_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430hx_device); device_add(&piix3_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&intel_flash_bxt_device); @@ -118,7 +118,7 @@ machine_at_p65up5_common_init(const machine_t *model, const device_t *northbridg pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(northbridge); device_add(&piix3_ioapic_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); device_add(&ioapic_device); @@ -333,7 +333,7 @@ machine_at_epc2102_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430hx_device); device_add(&piix3_device); - device_add(&kbc_ps2_intel_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&i82091aa_device, (void *) I82091AA_022); device_add(&radisys_config_device); device_add(&sst_flash_39sf010_device); @@ -492,7 +492,7 @@ machine_at_ap5vm_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&ncr53c810_onboard_pci_device); device_add(&intel_flash_bxt_device); @@ -522,7 +522,7 @@ machine_at_p55tvp4_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); // It uses the AMIKEY KBC + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&intel_flash_bxt_device); @@ -550,7 +550,7 @@ machine_at_5ivg_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&gm82c803c_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -579,7 +579,7 @@ machine_at_8500tvxa_init(const machine_t *model) pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 3, 2, 1); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um8669f_device, (void *) 0); device_add(&sst_flash_29ee010_device); @@ -701,7 +701,7 @@ machine_at_p5vxb_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); @@ -863,7 +863,7 @@ machine_at_lgibmx52_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&winbond_flash_w29c010_device); @@ -964,7 +964,7 @@ machine_at_mb520n_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c669_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -993,7 +993,7 @@ machine_at_i430vx_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); device_add(&i430vx_device); device_add(&piix3_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um8669f_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -1065,7 +1065,7 @@ machine_at_tx97_init(const machine_t *model) pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4); device_add(&i430tx_device); device_add(&piix4_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); device_add(&intel_flash_bxt_device); spd_register(SPD_TYPE_SDRAM, 0x3, 128); @@ -1319,7 +1319,7 @@ machine_at_mb540n_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */ device_add(&i430tx_device); device_add(&piix4_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um8669f_device, (void *) 0); device_add(&sst_flash_29ee010_device); spd_register(SPD_TYPE_SDRAM, 0x3, 128); @@ -1350,7 +1350,7 @@ machine_at_56a5_init(const machine_t *model) pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4); device_add(&i430tx_device); device_add(&piix4_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); spd_register(SPD_TYPE_SDRAM, 0x3, 128); @@ -1412,7 +1412,7 @@ machine_at_richmond_init(const machine_t *model) pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i430tx_device); device_add(&piix4_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&it8671f_device); device_add(&intel_flash_bxt_device); spd_register(SPD_TYPE_SDRAM, 0x3, 128); @@ -1445,7 +1445,6 @@ machine_at_ficva502_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); device_add(&via_vpx_device); device_add(&via_vt82c586b_device); - device_add(&kbc_ps2_pci_device); device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370); device_add(&sst_flash_29ee010_device); spd_register(SPD_TYPE_SDRAM, 0x3, 256); @@ -1478,7 +1477,6 @@ machine_at_ficpa2012_init(const machine_t *model) device_add(&via_vp3_device); device_add(&via_vt82c586b_device); - device_add(&kbc_ps2_pci_device); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); spd_register(SPD_TYPE_SDRAM, 0x7, 512); @@ -1510,7 +1508,6 @@ machine_at_via809ds_init(const machine_t *model) device_add(&via_vp3_device); device_add(&via_vt82c586b_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&fdc37c669_device, (void *) 0); device_add(&intel_flash_bxt_device); spd_register(SPD_TYPE_SDRAM, 0x7, 512); @@ -1541,7 +1538,6 @@ machine_at_cb52xsi_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_5571_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370); device_add(&sst_flash_29ee010_device); @@ -1570,7 +1566,6 @@ machine_at_ms5146_init(const machine_t *model) pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_5571_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); @@ -1599,7 +1594,6 @@ machine_at_r534f_init(const machine_t *model) pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_5571_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); @@ -1629,7 +1623,6 @@ machine_at_sp97xv_init(const machine_t *model) pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x13, PCI_CARD_VIDEO, 1, 2, 3, 4); /* On-chip SiS graphics, absent here. */ device_add(&sis_5581_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0)); device_add(&sst_flash_29ee010_device); @@ -1656,7 +1649,6 @@ machine_at_sq578_init(const machine_t *model) pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4); device_add(&sis_5581_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); device_add(&sst_flash_29ee010_device); @@ -1685,7 +1677,6 @@ machine_at_ms5172_init(const machine_t *model) pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2); device_add(&sis_5591_1997_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); device_add(&sst_flash_29ee010_device); diff --git a/src/machine/m_at_socket7_3v.c b/src/machine/m_at_socket7_3v.c index 76d266ee4..1166173f2 100644 --- a/src/machine/m_at_socket7_3v.c +++ b/src/machine/m_at_socket7_3v.c @@ -54,7 +54,7 @@ machine_at_p54tp4xe_common_init(const machine_t *model) pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -113,7 +113,7 @@ machine_at_exp8551_init(const machine_t *model) pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); @@ -419,7 +419,7 @@ machine_at_ms5119_init(const machine_t *model) device_add(&i430fx_device); device_add(&piix_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); device_add(&sst_flash_29ee010_device); @@ -512,7 +512,7 @@ machine_at_mb500n_init(const machine_t *model) pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2); pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_no_mirq_device); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); @@ -544,7 +544,7 @@ machine_at_fmb_init(const machine_t *model) device_add(&i430fx_device); device_add(&piix_no_mirq_device); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89)); device_add(&intel_flash_bxt_device); @@ -604,7 +604,7 @@ machine_at_ap53_init(const machine_t *model) pci_register_slot(0x06, PCI_CARD_VIDEO, 1, 2, 3, 4); device_add(&i430hx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c669_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -633,7 +633,7 @@ machine_at_8500tuc_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); device_add(&i430hx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um8669f_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -707,7 +707,7 @@ machine_at_d943_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 3, 2, 4); device_add(&i430hx_device); device_add(&piix3_device); - device_add(&kbc_ps2_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); spd_register(SPD_TYPE_EDO, 0x7, 256); @@ -824,7 +824,7 @@ machine_at_5sbm2_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2); - device_add(&kbc_at_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&sis_550x_device); device_add_params(&um866x_device, (void *) UM8663AF); device_add(&sst_flash_29ee010_device); @@ -855,7 +855,7 @@ machine_at_amis727_init(const machine_t *model) pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_5511_device); - device_add(&kbc_ps2_intel_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); @@ -926,7 +926,7 @@ machine_at_ap5s_init(const machine_t *model) pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&sis_5511_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&sst_flash_29ee010_device); @@ -957,7 +957,7 @@ machine_at_pc140_6260_init(const machine_t *model) device_add(&gd5436_onboard_pci_device); device_add(&sis_5511_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c669_device, (void *) 0); device_add(&sst_flash_29ee010_device); @@ -986,7 +986,7 @@ machine_at_ms5124_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); device_add(&sis_5511_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_88)); device_add(&sst_flash_29ee010_device); diff --git a/src/machine/m_at_socket8.c b/src/machine/m_at_socket8.c index 23bd36d3c..bcbf6ba18 100644 --- a/src/machine/m_at_socket8.c +++ b/src/machine/m_at_socket8.c @@ -64,7 +64,7 @@ machine_at_ap61_init(const machine_t *model) device_add(&i450kx_device); device_add(&sio_zb_device); device_add(&ide_cmd646_device); - device_add(&kbc_ps2_acer_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&sst_flash_29ee010_device); @@ -98,7 +98,7 @@ machine_at_p6rp4_init(const machine_t *model) device_add(&sio_zb_device); device_add(&ide_cmd646_device); /* Input port bit 2 must be 1 or CMOS Setup is disabled. */ - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c6xx_device, (void *) FDC37C665); device_add(&intel_flash_bxt_device); @@ -246,7 +246,7 @@ machine_at_8600ttc_init(const machine_t *model) pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i440fx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c669_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -347,7 +347,7 @@ machine_at_686nx_init(const machine_t *model) pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i440fx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&um8669f_device, (void *) 0); device_add(&intel_flash_bxt_device); @@ -450,7 +450,7 @@ machine_at_lgibmx61_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i440fx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&w83877_device, (void *) (W83877F | W83877_250)); device_add(&sst_flash_29ee010_device); @@ -507,7 +507,7 @@ machine_at_mb600n_init(const machine_t *model) pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&i440fx_device); device_add(&piix3_device); - device_add(&kbc_ps2_ami_pci_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add_params(&fdc37c669_device, (void *) 0); device_add(&intel_flash_bxt_device); diff --git a/src/machine/m_at_sockets7.c b/src/machine/m_at_sockets7.c index bee5939f9..a39b2cef4 100644 --- a/src/machine/m_at_sockets7.c +++ b/src/machine/m_at_sockets7.c @@ -231,7 +231,6 @@ machine_at_ax59pro_init(const machine_t *model) device_add(&via_mvp3_device); device_add(&via_vt82c586b_device); - device_add(&kbc_ps2_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_250)); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x7, 256); @@ -260,7 +259,6 @@ machine_at_delhi3_init(const machine_t *model) device_add(&via_mvp3_device); device_add(&via_vt82c596a_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_250)); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x3, 256); @@ -294,7 +292,6 @@ machine_at_mvp3_init(const machine_t *model) device_add(&via_mvp3_device); device_add(&via_vt82c586b_device); - device_add(&kbc_ps2_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); device_add(&sst_flash_39sf010_device); spd_register(SPD_TYPE_SDRAM, 0x3, 256); @@ -326,7 +323,6 @@ machine_at_ficva503a_init(const machine_t *model) device_add(&via_mvp3_device); device_add(&via_vt82c686a_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */ - device_add(&kbc_ps2_ami_pci_device); device_add(&sst_flash_39sf020_device); spd_register(SPD_TYPE_SDRAM, 0x7, 256); hwm_values.temperatures[0] += 2; /* CPU offset */ @@ -364,7 +360,6 @@ machine_at_5emapro_init(const machine_t *model) device_add(&via_mvp3_device); /* Rebranded as EQ82C6638 */ device_add(&via_vt82c686a_device); - device_add(&kbc_ps2_ami_pci_device); device_add(&sst_flash_39sf010_device); spd_register(SPD_TYPE_SDRAM, 0x7, 256); device_add(&via_vt82c686_hwm_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */ @@ -398,7 +393,6 @@ machine_at_5sg100_init(const machine_t *model) pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3); pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0); device_add(&sis_5591_1997_device); - device_add(&kbc_ps2_ami_pci_device); device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0)); device_add(&sst_flash_29ee010_device); diff --git a/src/machine/m_at_t3100e.c b/src/machine/m_at_t3100e.c index fb9676d5c..4919f4975 100644 --- a/src/machine/m_at_t3100e.c +++ b/src/machine/m_at_t3100e.c @@ -794,6 +794,12 @@ upper_write_raml(uint32_t addr, uint32_t val, void *priv) *(uint32_t *) &ram[addr] = val; } +uint8_t +machine_t3100e_p1_handler(void) +{ + return (t3100e_mono_get() & 1) ? 0xff : 0xbf; +} + int machine_at_t3100e_init(const machine_t *model) { @@ -811,11 +817,10 @@ machine_at_t3100e_init(const machine_t *model) machine_at_common_ide_init(model); - device_add(&kbc_at_toshiba_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); - if (fdc_current[0] == FDC_INTERNAL) { + if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - } /* Hook up system control port */ io_sethandler(0x8084, 0x0001, diff --git a/src/machine/m_ps1.c b/src/machine/m_ps1.c index cce0b9d00..c8973cbb1 100644 --- a/src/machine/m_ps1.c +++ b/src/machine/m_ps1.c @@ -395,13 +395,22 @@ ps1_common_init(const machine_t *model) dma16_init(); pic2_init(); - device_add(&kbc_ps2_ps1_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&port_6x_device); /* Audio uses ports 200h and 202-207h, so only initialize gameport on 201h. */ standalone_gameport_type = &gameport_201_device; } +uint8_t +machine_ps1_p1_handler(void) +{ + const uint8_t current_drive = fdc_get_current_drive(); + + /* (B0 or F0) | (fdd_is_525(current_drive) on bit 6) */ + return 0xb0 | (fdd_is_525(current_drive) ? 0x40 : 0x00); +} + int machine_ps1_m2011_init(const machine_t *model) { diff --git a/src/machine/m_ps2_isa.c b/src/machine/m_ps2_isa.c index b8114622b..d768975d5 100644 --- a/src/machine/m_ps2_isa.c +++ b/src/machine/m_ps2_isa.c @@ -201,7 +201,7 @@ ps2_isa_common_init(const machine_t *model) dma16_init(); pic2_init(); - device_add(&kbc_ps2_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&port_6x_ps2_device); } diff --git a/src/machine/m_ps2_mca.c b/src/machine/m_ps2_mca.c index 42fe64cf8..e8be93038 100644 --- a/src/machine/m_ps2_mca.c +++ b/src/machine/m_ps2_mca.c @@ -1160,7 +1160,6 @@ ps2_mca_board_model_50_init(void) mem_remap_top(384); mca_init(4); - device_add(&kbc_ps2_mca_2_device); ps2.planar_read = model_50_read; ps2.planar_write = model_50_write; @@ -1181,7 +1180,6 @@ ps2_mca_board_model_60_init(void) mem_remap_top(384); mca_init(8); - device_add(&kbc_ps2_mca_2_device); ps2.planar_read = model_50_read; ps2.planar_write = model_50_write; @@ -1241,7 +1239,6 @@ ps2_mca_board_model_55sx_init(int has_sec_nvram, int slots) } mca_init(slots); - device_add(&kbc_ps2_mca_1_device); if (has_sec_nvram) device_add(&ps2_nvr_55ls_device); @@ -1420,7 +1417,6 @@ ps2_mca_board_model_70_type34_init(int is_type4, int slots) ps2.split_addr = mem_size * 1024; mca_init(slots); - device_add(&kbc_ps2_mca_1_device); ps2.planar_read = model_70_type3_read; ps2.planar_write = model_70_type3_write; @@ -1513,7 +1509,6 @@ ps2_mca_board_model_80_type2_init(void) ps2.split_addr = mem_size * 1024; mca_init(8); - device_add(&kbc_ps2_mca_1_device); ps2.planar_read = model_80_read; ps2.planar_write = model_80_write; @@ -1628,6 +1623,8 @@ machine_ps2_model_50_init(const machine_t *model) ps2.planar_id = 0xfbff; ps2_mca_board_model_50_init(); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1651,6 +1648,8 @@ machine_ps2_model_60_init(const machine_t *model) ps2.planar_id = 0xf7ff; ps2_mca_board_model_60_init(); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1671,6 +1670,8 @@ machine_ps2_model_55sx_init(const machine_t *model) ps2.planar_id = 0xfbff; ps2_mca_board_model_55sx_init(0, 4); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1691,6 +1692,8 @@ machine_ps2_model_65sx_init(const machine_t *model) ps2.planar_id = 0xe3ff; ps2_mca_board_model_55sx_init(1, 8); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1711,6 +1714,8 @@ machine_ps2_model_70_type3_init(const machine_t *model) ps2.planar_id = 0xf9ff; ps2_mca_board_model_70_type34_init(0, 4); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1731,6 +1736,8 @@ machine_ps2_model_80_init(const machine_t *model) ps2.planar_id = 0xfdff; ps2_mca_board_model_80_type2_init(); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1751,6 +1758,8 @@ machine_ps2_model_80_axx_init(const machine_t *model) ps2.planar_id = 0xfff9; ps2_mca_board_model_70_type34_init(0, 8); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1771,6 +1780,8 @@ machine_ps2_model_70_type4_init(const machine_t *model) ps2.planar_id = 0xf9ff; ps2_mca_board_model_70_type34_init(1, 4); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } @@ -1782,7 +1793,6 @@ ps55_mca_board_model_50t_init(void) ps2.split_addr = mem_size * 1024; /* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */ mca_init(5); - device_add(&kbc_ps2_mca_1_device); ps2.planar_read = ps55_model_50t_read; ps2.planar_write = ps55_model_50tv_write; @@ -1826,7 +1836,6 @@ ps55_mca_board_model_50v_init(void) ps2.split_addr = mem_size * 1024; /* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */ mca_init(5); - device_add(&kbc_ps2_mca_1_device); ps2.planar_read = ps55_model_50v_read; ps2.planar_write = ps55_model_50tv_write; @@ -1878,7 +1887,7 @@ ps55_mca_board_model_50v_init(void) } int -machine_ps55_model_50t_init(const machine_t* model) +machine_ps55_model_50t_init(const machine_t *model) { int ret; @@ -1903,11 +1912,13 @@ machine_ps55_model_50t_init(const machine_t* model) ps2.planar_id = 0xffee; ps55_mca_board_model_50t_init(); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } int -machine_ps55_model_50v_init(const machine_t* model) +machine_ps55_model_50v_init(const machine_t *model) { int ret; @@ -1928,5 +1939,7 @@ machine_ps55_model_50v_init(const machine_t* model) ps2.planar_id = 0xf1ff; ps55_mca_board_model_50v_init(); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); + return ret; } diff --git a/src/machine/m_xt.c b/src/machine/m_xt.c index b09111b19..954483d62 100644 --- a/src/machine/m_xt.c +++ b/src/machine/m_xt.c @@ -734,7 +734,7 @@ machine_xt_compaq_portable_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_xt_device); nmi_init(); - if (joystick_type) + if (joystick_type[0]) device_add(&gameport_200_device); lpt_t *lpt = device_add_inst(&lpt_port_device, 1); diff --git a/src/machine/m_xt_xi8088.c b/src/machine/m_xt_xi8088.c index 0e70893fb..756432405 100644 --- a/src/machine/m_xt_xi8088.c +++ b/src/machine/m_xt_xi8088.c @@ -204,7 +204,7 @@ machine_xt_xi8088_init(const machine_t *model) if (fdc_current[0] == FDC_INTERNAL) device_add(&fdc_at_device); - device_add(&kbc_ps2_xi8088_device); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&port_6x_xi8088_device); nmi_init(); device_add(&ibmat_nvr_device); diff --git a/src/machine/machine.c b/src/machine/machine.c index 4bd87ffd9..50b0bb150 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -139,6 +139,10 @@ void machine_init(void) { bios_only = 0; + + machine_set_p1_default(machines[machine].kbc_p1); + machine_set_ps2(); + (void) machine_init_ex(machine); } diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index aaf156102..be40a4038 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -166,10 +166,7 @@ const machine_filter_t machine_chipsets[] = { { "WD76C10", MACHINE_CHIPSET_WD76C10 } }; -/* Machines to add before machine freeze: - - TMC Mycomp PCI54ST; - - Zeos Quadtel 486. - +/* NOTE: The AMI MegaKey tests were done on a real Intel Advanced/ATX (thanks, MrKsoft for running my AMIKEY.COM on it), but the technical specifications of the other Intel machines confirm @@ -184,16 +181,6 @@ const machine_filter_t machine_chipsets[] = { BIOS (likely a laptop one since the AMIKey-3 is a laptop KBC firmware!) Intel forked. - NOTE: The VIA VT82C42N returns 0x46 ('F') in command 0xA1 (so it - emulates the AMI KF/AMIKey KBC firmware), and 0x42 ('B') in - command 0xAF. - The version on the VIA VT82C686B southbridge also returns - 'F' in command 0xA1, but 0x45 ('E') in command 0xAF. - The version on the VIA VT82C586B southbridge also returns - 'F' in command 0xA1, but 0x44 ('D') in command 0xAF. - The version on the VIA VT82C586A southbridge also returns - 'F' in command 0xA1, but 0x43 ('C') in command 0xAF. - NOTE: The AMI MegaKey commands blanked in the technical reference are CC and and C4, which are Set P14 High and Set P14 Low, respectively. Also, AMI KBC command C1, mysteriously missing @@ -235,6 +222,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -277,6 +265,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc82_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -319,6 +308,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, /* TODO: No specific kbd_device yet */ + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -361,6 +351,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -403,6 +394,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt86_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -445,6 +437,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -487,6 +480,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -529,6 +523,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -571,6 +566,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -613,6 +609,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc82_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -655,6 +652,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_compaq_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -697,6 +695,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -739,6 +738,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc82_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -781,6 +781,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -823,6 +824,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -855,7 +857,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PC, - .flags = MACHINE_FLAGS_NONE, /* Machine has internal video: Paradise PVC2 */ + .flags = MACHINE_FDC, /* Machine has internal video: Paradise PVC2 */ .ram = { .min = 128, .max = 640, @@ -865,12 +867,13 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, .kbd_device = &keyboard_pc_xt_device, - .fdc_device = NULL, + .fdc_device = &fdc_xt_device, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, @@ -897,7 +900,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PC, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_FDC, .ram = { .min = 128, .max = 640, @@ -907,12 +910,13 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, .kbd_device = &keyboard_pc_xt_device, - .fdc_device = NULL, + .fdc_device = &fdc_xt_device, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, @@ -939,7 +943,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PC, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_FDC, .ram = { .min = 128, .max = 640, @@ -949,12 +953,13 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, .kbd_device = &keyboard_pc_xt_device, - .fdc_device = NULL, + .fdc_device = &fdc_xt_device, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, @@ -991,6 +996,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1033,6 +1039,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1075,6 +1082,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1117,6 +1125,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1159,6 +1168,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1201,6 +1211,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1243,6 +1254,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_olivetti_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1285,6 +1297,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1327,6 +1340,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1369,6 +1383,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1411,6 +1426,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pravetz_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1453,6 +1469,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1495,6 +1512,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1527,7 +1545,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PC, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_FDC, .ram = { .min = 256, .max = 640, @@ -1537,12 +1555,13 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, .kbd_device = &keyboard_pc_xt_device, - .fdc_device = NULL, + .fdc_device = &fdc_xt_device, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, @@ -1579,6 +1598,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1621,6 +1641,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1663,6 +1684,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_tandy_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1705,6 +1727,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_tandy_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1747,6 +1770,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_t1x00_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1779,7 +1803,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PC, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_FDC, .ram = { .min = 256, .max = 768, @@ -1789,12 +1813,13 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &vendex_device, .kbd_device = &keyboard_pc_xt_device, - .fdc_device = NULL, + .fdc_device = &fdc_xt_device, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, @@ -1831,6 +1856,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1849,7 +1875,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_8088, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_xt_xi8088_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -1873,8 +1899,8 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = &kbc_ps2_xi8088_device, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_p1 = 0x00400cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &xi8088_device, @@ -1916,6 +1942,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -1958,6 +1985,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_zenith_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2000,6 +2028,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_zenith_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2042,6 +2071,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_zenith_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2084,6 +2114,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_pc_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2126,6 +2157,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2168,6 +2200,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2212,6 +2245,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2254,6 +2288,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2296,6 +2331,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2338,6 +2374,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2380,6 +2417,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2422,6 +2460,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2464,6 +2503,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2506,6 +2546,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_compaq_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2548,6 +2589,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2632,6 +2674,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2675,6 +2718,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2717,6 +2761,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xtclone_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2759,6 +2804,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL /* TODO: No specific kbd_device yet */, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2801,6 +2847,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_t1x00_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2843,6 +2890,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2885,6 +2933,7 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = &kbc_xt_lxt3_device, + .kbc_params = 0x00000000, .kbc_p1 = 0xff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, @@ -2905,7 +2954,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ibmat_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -2929,8 +2978,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &ibmat_device, @@ -2948,7 +2998,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps1_m2011_init, - .p1_handler = NULL, + .p1_handler = machine_ps1_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -2972,8 +3022,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &ps1_2011_device, @@ -2991,7 +3042,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_m30_286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3015,8 +3066,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3034,7 +3086,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ibmxt286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3058,8 +3110,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &ibmxt286_device, @@ -3077,7 +3130,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ibmatami_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3101,12 +3154,12 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, - .kbd_device = NULL, .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, @@ -3121,7 +3174,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, /* Machine has chipset: Faraday FE3400B */ .init = machine_at_cmdpc_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3145,8 +3198,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3164,7 +3218,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_at_portableii_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3188,8 +3242,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3207,7 +3262,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_at_portableiii_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3231,8 +3286,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3249,7 +3305,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, /* Machine has chipset: Faraday FE3400B */ .init = machine_at_grid1520_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3273,8 +3329,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3292,7 +3349,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_mr286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3316,8 +3373,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3335,7 +3393,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_pc8_init, - .p1_handler = NULL, + .p1_handler = machine_ncr_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3359,8 +3417,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_NCR, + .kbc_p1 = 0x000004df, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3378,7 +3437,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, /* Yes, it's M290 with 98/86 gate array, not M290-30 with VLSI TOPCAT chipset. */ .init = machine_at_m290_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3402,8 +3461,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_OLIVETTI, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3421,7 +3481,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ibmatpx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3445,8 +3505,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3464,7 +3525,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ibmatquadtel_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3488,8 +3549,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_QUADTEL, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3508,7 +3570,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_pb286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3532,8 +3594,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3546,12 +3609,12 @@ const machine_t machines[] = { }, /* Has unknown KBC firmware. */ { - .name = "[ISA] Sanyo MBC-17", + .name = "[ISA] Sanyo MBC-17PLUS", .internal_name = "mbc17", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_mbc17_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3575,8 +3638,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3594,7 +3658,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_ax286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3618,8 +3682,10 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + /* The version number is a guess - we have no probe of this machine's controller. */ + .kbc_params = KBC_VEN_PHOENIX | 0x00010500, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3637,7 +3703,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_siemens_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3661,8 +3727,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_SIEMENS, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3680,7 +3747,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_at_t3100e_init, - .p1_handler = NULL, + .p1_handler = machine_t3100e_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3704,8 +3771,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_TOSHIBA, + .kbc_p1 = 0x0000bfff, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3724,7 +3792,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_CT_AT, .init = machine_at_dells200_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3748,8 +3816,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3762,12 +3831,12 @@ const machine_t machines[] = { }, /* has an Award-branded KBC controller */ { - .name = "[C&T PC/AT] Hyundai Super-286C", + .name = "[NEAT] Hyundai Super-286C", .internal_name = "super286c", .type = MACHINE_TYPE_286, - .chipset = MACHINE_CHIPSET_CT_AT, + .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_super286c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3791,12 +3860,12 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AWARD | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, - .kbd_device = NULL, .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, @@ -3811,7 +3880,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_CT_AT, .init = machine_at_at122_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3835,8 +3904,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3855,7 +3925,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_CT_AT, .init = machine_at_tuliptc7_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3879,8 +3949,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3898,7 +3969,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_CT_AT, .init = machine_at_wellamerastar_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3922,8 +3993,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_CHIPS | 0x0000a600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3941,7 +4013,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_GC103, .init = machine_at_quadt286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -3965,8 +4037,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_QUADTEL, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -3977,14 +4050,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Most likely has AMI 'F' KBC firmware. */ + /* Has AMI 'B' KBC firmware. */ { .name = "[GC103] TriGem 286M", .internal_name = "tg286m", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_GC103, .init = machine_at_tg286m_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4008,8 +4081,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004200, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4020,13 +4094,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Most likely has Chips & Technologies KBC firmware. */ { .name = "[NEAT] Atari PC 4", .internal_name = "ataripc4", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_ataripc4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4050,8 +4125,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = &kbc_at_ami_device, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_CHIPS | 0x0000a600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4062,14 +4138,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has "AMI KEYBOARD BIOS", most likely 'F'. */ + /* This has an AMIKey-2, which is 'H'. */ { .name = "[NEAT] DataExpert 286", .internal_name = "ami286", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_neat_ami_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4093,8 +4169,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4105,14 +4182,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* Has NCR KBC firmware. */ { .name = "[NEAT] NCR 3302", .internal_name = "3302", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_3302_init, - .p1_handler = NULL, + .p1_handler = machine_ncr_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4136,8 +4213,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_NCR, + .kbc_p1 = 0x000004df, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4148,14 +4226,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* Has Phoenix MultiKey/42 KBC firmware. */ { .name = "[NEAT] Arche AMA-2010", .internal_name = "px286", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_px286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4179,26 +4257,27 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + /* The version number is a guess - we have no probe of this machine's controller. */ + .kbc_params = KBC_VEN_PHOENIX | 0x00010500, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, - .kbd_device = NULL, .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, .net_device = NULL }, - /* Has Quadtel KBC firmware. */ + /* Has the VLSI 82C113 with on-chip KBC. */ { .name = "[SCAMP] Amstrad PC7286", .internal_name = "pc7286", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_VLSI_SCAMP, .init = machine_at_pc7286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4222,8 +4301,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4241,7 +4321,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_pc5286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4266,7 +4346,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &f82c710_device, @@ -4284,7 +4365,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_gw286ct_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4308,8 +4389,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_CHIPS | 0x0000a600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &f82c710_device, @@ -4320,14 +4402,16 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM PS/2 Type 1 KBC firmware. */ + /* Has IBM PS/2 Type 1 KBC firmware - that's actually a guess since we + do not currently have a picture of the motherboard. + In the code, we actually give it the AMI PS/2 controller. */ { .name = "[SCAT] Goldstar GDC-212M", .internal_name = "gdc212m", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_gdc212m_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4351,8 +4435,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4370,7 +4455,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_award286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4394,8 +4479,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4413,7 +4499,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_super286tr_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4437,8 +4523,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4455,7 +4542,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_drsm35286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4479,8 +4566,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4498,7 +4586,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_deskmaster286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4522,8 +4610,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4534,14 +4623,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM PS/2 Type 1 KBC firmware. */ + /* Has a Samsung (SEC) V1.4 KBC firmware. */ + /* TODO: Do kbc_at.c logging to see if the BIOS sends any proprietary commands. */ { .name = "[SCAT] Samsung SPC-4200P", .internal_name = "spc4200p", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_spc4200p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4565,8 +4655,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4577,14 +4668,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM PS/2 Type 1 KBC firmware. */ + /* Most likely has a Samsung (SEC) V1.4 KBC firmware like the SPC-4200P above. */ { .name = "[SCAT] Samsung SPC-4216P", .internal_name = "spc4216p", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_spc4216p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4608,8 +4699,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4620,14 +4712,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM PS/2 Type 1 KBC firmware. */ + /* Most likely has a Samsung (SEC) V1.4 KBC firmware like the SPC-4200P above. */ { .name = "[SCAT] Samsung SPC-4620P", .internal_name = "spc4620p", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_spc4620p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4651,8 +4743,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4663,13 +4756,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Has AMI '8' KBC firmware. */ { .name = "[SCAT] Senor Science Co. SCAT-286-003", .internal_name = "senorscat286", .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_SCAT, .init = machine_at_senor_scat286_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4693,8 +4787,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00003800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4713,7 +4808,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_50_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4737,8 +4832,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM | KBC_FLAG_IS_TYPE2, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4756,7 +4852,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_286, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_60_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4780,8 +4876,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM | KBC_FLAG_IS_TYPE2, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4802,7 +4899,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps1_m2121_init, - .p1_handler = NULL, + .p1_handler = machine_ps1_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4826,26 +4923,26 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, - .kbd_device = NULL, .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* Has NCR KBC firmware. */ { .name = "[ISA] NCR PC916SX", .internal_name = "pc916sx", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_DISCRETE, /* Machine has chipset: TI TACT82000 */ .init = machine_at_pc916sx_init, - .p1_handler = NULL, + .p1_handler = machine_ncr_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4869,8 +4966,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_NCR, + .kbc_p1 = 0x000004df, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4888,7 +4986,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_DISCRETE, /* Machine has chipset: VLSI TOPCAT */ .init = machine_at_quadt386sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4912,8 +5010,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_QUADTEL, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -4931,7 +5030,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ACC_2036, .init = machine_at_pbl300sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4955,8 +5054,10 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + /* The version number is a guess - we have no probe of this machine's controller. */ + .kbc_params = KBC_VEN_PHOENIX | 0x00010500, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &pbl300sx_device, @@ -4967,14 +5068,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has a Holtek keyboard controller which clones AMI 'H'. */ { .name = "[ALi M1217] Acrosser AR-B1374", .internal_name = "arb1374", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1217, .init = machine_at_arb1374_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -4998,8 +5099,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5010,14 +5112,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has the AMIKey-2 KBC. */ + /* Has the AMIKey-2 KBC - that's actually a guess since we + do not currently have a picture of the motherboard. */ { .name = "[ALi M1217] AAEON SBC-350A", .internal_name = "sbc350a", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1217, .init = machine_at_sbc350a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5041,8 +5144,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5060,7 +5164,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1217, .init = machine_at_flytech386_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5084,8 +5188,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5096,14 +5201,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a JetKey KBC without version, shows up as a 'H'. */ + /* Has a JetKey KBC without version, which is a clone of AMI '8'. */ { .name = "[ALi M1217] Chaintech 325AX", .internal_name = "325ax", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1217, .init = machine_at_325ax_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5127,8 +5232,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00003800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5139,14 +5245,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a JetKey KBC without version, shows up as a 'H'. */ + /* Has a JetKey KBC without version, which is a clone of AMI '8'. */ { .name = "[ALi M1217] Chaintech 325AX (MR BIOS)", .internal_name = "mr1217", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1217, .init = machine_at_mr1217_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5170,8 +5276,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00003800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5182,13 +5289,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Uses a NEC/Acer 90M002A. + This is a strange one - it has command AF but it returns 0x00. */ { .name = "[ALi M1409] Acer 100T", .internal_name = "acer100t", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_ALI_M1409, .init = machine_at_acer100t_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5201,7 +5310,6 @@ const machine_t machines[] = { .max_voltage = 0, .min_multi = 0, .max_multi = 0, - }, .bus_flags = MACHINE_PS2, .flags = MACHINE_IDE | MACHINE_VIDEO , /* Machine has internal OTI 077 Video card*/ @@ -5213,8 +5321,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5234,7 +5343,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_HT18, .init = machine_at_ama932j_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5258,8 +5367,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5270,16 +5380,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has an unknown KBC firmware with commands B8 and BB in the style of - Phoenix MultiKey and AMIKey-3(!), but also commands E1 and EA with - unknown functions. */ + /* Most likely has a Phoenix MultiKey/42 keyboard controller. */ { .name = "[Intel 82335] ADI 386SX", .internal_name = "adi386sx", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_INTEL_82335, .init = machine_at_adi386sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5303,8 +5411,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00010500, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5321,7 +5430,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_INTEL_82335, .init = machine_at_shuttle386sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5345,8 +5454,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004400, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5366,7 +5476,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_cmdsl386sx16_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5381,7 +5491,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_PS2, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_IDE, .ram = { .min = 1024, .max = 8192, @@ -5390,8 +5500,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5409,7 +5520,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_NEAT, .init = machine_at_neat_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5433,8 +5544,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5450,7 +5562,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_NEAT_SX, .init = machine_at_if386sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5474,8 +5586,10 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + /* The version number is a guess - we have no probe of this machine's controller. */ + .kbc_params = KBC_VEN_PHOENIX | 0x00010500, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5493,7 +5607,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_OPTI_283, .init = machine_at_svc386sxp1_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5517,8 +5631,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00003800, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5536,7 +5651,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_OPTI_291, .init = machine_at_awardsx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5560,8 +5675,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5581,7 +5697,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_VLSI_SCAMP, .init = machine_at_cmdsl386sx25_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5605,8 +5721,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = NULL, /* The keyboard controller is part of the VL82c113. */ + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5626,7 +5743,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_VLSI_SCAMP, .init = machine_at_dataexpert386sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5650,8 +5767,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004400, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5670,7 +5788,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_VLSI_SCAMP, .init = machine_at_dells333sl_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5694,8 +5812,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00002020, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &dells333sl_device, @@ -5706,14 +5825,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM PS/2 Type 1 KBC firmware. */ + /* The only photo we have is too blurry to read the marking on the + the keyboard controller, but it's possibly a Phoenix. */ { .name = "[SCAMP] Samsung SPC-6033P", .internal_name = "spc6033p", .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_VLSI_SCAMP, .init = machine_at_spc6033p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5737,8 +5857,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, /* Possibly. */ + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5757,7 +5878,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_SCAT_SX, .init = machine_at_kmxc02_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5781,8 +5902,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, /* Possibly. */ + .kbc_params = KBC_VEN_AMI | 0x00004600, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5800,7 +5922,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_WD76C10, .init = machine_at_wd76c10_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5824,8 +5946,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_QUADTEL, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5845,7 +5968,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_55sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5869,8 +5992,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5888,7 +6012,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386SX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_65sx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5910,14 +6034,12 @@ const machine_t machines[] = { .step = 1024 }, .nvrmask = 63, - .jumpered_ecp_dma = 0, - .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, - .kbd_device = NULL, .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, @@ -5933,7 +6055,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_M6117, .chipset = MACHINE_CHIPSET_ALI_M6117, .init = machine_at_pja511m_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -5957,8 +6079,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -5976,7 +6099,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_M6117, .chipset = MACHINE_CHIPSET_ALI_M6117, .init = machine_at_prox1332_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6000,8 +6123,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6022,7 +6146,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486SLC, .chipset = MACHINE_CHIPSET_OPTI_283, .init = machine_at_rycleopardlx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6046,8 +6170,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6067,7 +6192,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_deskpro386_init, - .p1_handler = NULL, + .p1_handler = machine_compaq_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6091,8 +6216,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_COMPAQ, + .kbc_p1 = 0x000000f4, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6103,13 +6229,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Uses Compaq KBC firmware. */ { .name = "[ISA] Compaq Deskpro 386 (May 1988)", .internal_name = "deskpro386_05_1988", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_deskpro386_05_1988_init, - .p1_handler = NULL, + .p1_handler = machine_compaq_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6133,8 +6260,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_COMPAQ, + .kbc_p1 = 0x000000f4, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6145,13 +6273,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Uses Compaq KBC firmware. */ { .name = "[ISA] Compaq Portable III (386)", .internal_name = "portableiii386", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_portableiii386_init, - .p1_handler = NULL, + .p1_handler = machine_compaq_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6175,8 +6304,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_COMPAQ, + .kbc_p1 = 0x000000f4, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6187,14 +6317,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* Has Phoenix MultiKey/42 KBC firmware. */ { .name = "[ISA] Micronics 09-00021 (Tandon BIOS)", .internal_name = "micronics386", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_micronics386_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6218,8 +6348,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6237,7 +6368,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_DISCRETE, .init = machine_at_micronics386px_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6261,8 +6392,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6273,14 +6405,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a Jetkey V3, which identifies as a 'B'. */ + /* Has a Jetkey V3, which we currently lack a probe of, but an + old test by Carlos showed it as being 'F'. */ { .name = "[ACC 2168] Juko AT046DX3", .internal_name = "acc386", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_ACC_2168, .init = machine_at_acc386_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6304,8 +6437,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6323,7 +6457,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_CT_386, .init = machine_at_ecs386_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6347,8 +6481,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00003800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6359,14 +6494,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* Unknown - we give it an AT Award keyboard controller. */ { .name = "[C&T 386/AT] Samsung SPC-6000A", .internal_name = "spc6000a", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_CT_386, .init = machine_at_spc6000a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6390,8 +6525,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AWARD | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6402,14 +6538,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has IBM AT KBC firmware. */ + /* I found one board picture of it and I can't really read the + keyboard controller markings from it, but it may be Phoenix. */ { .name = "[C&T 386/AT] Tandy 4000", .internal_name = "tandy4000", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_CT_386, .init = machine_at_tandy4000_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6433,8 +6570,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6445,14 +6583,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a Lance LT38C41 with AMI Megakey P KBC firmware */ + /* Has a Lance LT38C41 that clones an AMIKEY ('F'). */ { .name = "[ALi M1429] ECS Panda 386V", .internal_name = "ecs386v", .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_ALI_M1429, .init = machine_at_ecs386v_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6476,8 +6614,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, /* TODO: Lance LT38C41. */ + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6492,7 +6631,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_OPTI_391, .init = machine_at_dataexpert386wb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6516,8 +6655,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | KBC_FLAG_IS_CLONE | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6537,7 +6677,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_OPTI_495SLC, .init = machine_at_opti495_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6561,8 +6701,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6580,7 +6721,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_SIS_310, .init = machine_at_asus3863364k_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6604,8 +6745,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AWARD | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6623,7 +6765,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_SIS_310, .init = machine_at_asus386_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6647,8 +6789,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6668,7 +6811,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_80_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6692,8 +6835,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6711,7 +6855,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps55_model_50t_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6735,8 +6879,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6754,7 +6899,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps55_model_50v_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6778,8 +6923,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6792,14 +6938,14 @@ const machine_t machines[] = { }, /* 386DX/486 machines */ - /* Winbond W83C42 with unknown firmware. */ + /* Winbond W83C42 - ASIC that clones AMI 'F'. */ { .name = "[ALi M1429G] DataExpert EXP4349", .internal_name = "exp4349", .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_exp4349_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6823,8 +6969,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00021400, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6842,7 +6989,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_OPTI_495SX, .init = machine_at_c747_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6866,8 +7013,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_SIEMENS, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6878,14 +7026,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMIKey F KBC firmware. */ + /* Has AMIKey 'F' or MR BIOS 'M' KBC firmware, we give it the latter + for the sake of keyboard controller diversity. */ { .name = "[OPTi 495SX] DataExpert SX495", .internal_name = "ami495", .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_OPTI_495SX, .init = machine_at_opti495_ami_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6909,8 +7058,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004d00, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6921,14 +7071,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMIKey F KBC firmware (it's just the MR BIOS for the above machine). */ + /* Has AMIKey 'F' or MR BIOS 'M' KBC firmware + (it's just the MR BIOS for the above machine). */ { .name = "[OPTi 495SX] DataExpert SX495 (MR BIOS)", .internal_name = "mr495", .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_OPTI_495SX, .init = machine_at_opti495_mr_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6952,8 +7103,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004d00, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -6971,7 +7123,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_70_type3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -6995,8 +7147,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7014,7 +7167,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_386DX_486, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_80_axx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7038,8 +7191,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7052,16 +7206,15 @@ const machine_t machines[] = { }, /* 486 machines - Socket 1 */ - /* Has JetKey 5 KBC Firmware - but the BIOS string ends in a hardcoded -F, and - the BIOS also explicitly expects command A1 to return a 'F', so it looks like - the JetKey 5 is a clone of AMIKey type F. */ + /* Has JetKey V5 KBC Firmware - we now have a photo of the board and its POST + screen, so we can match JetKey V5 to 'F'. */ { .name = "[CS4031] AMI 486 CS4031", .internal_name = "cs4031", .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_CT_CS4031, .init = machine_at_cs4031_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7085,8 +7238,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7104,7 +7258,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_OPTI_381, .init = machine_at_ga486l_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7128,8 +7282,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7147,7 +7302,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_OPTI_493, .init = machine_at_svc486wb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7171,8 +7326,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7191,7 +7347,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_OPTI_498, .init = machine_at_mvi486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7215,8 +7371,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7234,7 +7391,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_SIS_401, .init = machine_at_isa486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7258,8 +7415,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7270,14 +7428,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMIKey H KBC firmware, per the screenshot in "How computers & MS-DOS work". */ + /* Has AMIKey H KBC firmware, per the screenshot in "How computers & MS-DOS work". + Also seen with an AMI 'F'. */ { .name = "[SiS 401] Chaintech 433SC", .internal_name = "sis401", .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_SIS_401, .init = machine_at_sis401_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7301,8 +7460,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7313,15 +7473,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMIKey F KBC firmware, per a photo of a monitor with the BIOS screen on - eBay. */ + /* Seen with both AMIKey F and AMIKey-2 H KBC firmwares. */ { .name = "[SiS 460] ABIT AV4", .internal_name = "av4", .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_SIS_460, .init = machine_at_av4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7345,8 +7504,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7364,7 +7524,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_advantage40xxd_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7388,8 +7548,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7407,7 +7568,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_SYMPHONY_SL82C460, .init = machine_at_dtk461_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7431,8 +7592,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7446,14 +7608,15 @@ const machine_t machines[] = { /* The chip is a Lance LT38C41, a clone of the Intel 8041, and the BIOS sends commands BC, BD, and C9 which exist on both AMIKey and Phoenix MultiKey/42, but it does not write a byte after C9, which is consistent with AMIKey, so - this must have some form of AMIKey. */ + this must have some form of AMIKey. + This is also seen with a genuine AMI 'F' (one of the photos on TheRetroWeb). */ { .name = "[VIA VT82C495] FIC 486-VC-HD", .internal_name = "486vchd", .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_VIA_VT82C495, .init = machine_at_486vchd_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7477,8 +7640,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7496,7 +7660,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_VLSI_VL82C480, .init = machine_at_vect486vl_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7520,8 +7684,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = NULL, /* The keyboard controller is part of the VL82c113. */ + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7532,14 +7697,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a VLSI VL82C114 Combination I/O which holds the KBC. */ + /* Has a standard IBM PS/2 KBC firmware or a clone thereof. */ { .name = "[VLSI 82C481] Siemens Nixdorf D824", .internal_name = "d824", .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_VLSI_VL82C481, .init = machine_at_d824_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7563,8 +7728,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7582,7 +7748,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_VLSI_VL82C486, .init = machine_at_tuliptc38_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7607,7 +7773,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7625,7 +7792,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_ZYMOS_POACH, .init = machine_at_isa486c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7649,8 +7816,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AWARD | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7668,7 +7836,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_ZYMOS_POACH, .init = machine_at_genoa486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7692,8 +7860,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7711,7 +7880,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486, .chipset = MACHINE_CHIPSET_PROPRIETARY, .init = machine_ps2_model_70_type4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7735,8 +7904,9 @@ const machine_t machines[] = { .nvrmask = 63, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_IBM, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7757,7 +7927,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_ACC_2168, .init = machine_at_pb410a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7781,8 +7951,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900 /* Guess. */, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7800,7 +7971,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_acera1g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7824,8 +7995,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7843,7 +8015,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_winbios1429_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7867,8 +8039,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7879,18 +8052,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. - It also has those Ex commands also seen on the VIA VT82C42N (the BIOS - supposedly sends command EF. - The board was also seen in 2003 with a -H string - perhaps someone swapped - the KBC? */ + /* Has JetKey V5.0 KBC Firmware which clones an AMI 'H'. + The board was also seen 2003 with a -F string. */ { .name = "[ALi M1429] Olystar LIL1429", .internal_name = "ali1429", .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_ALI_M1429, .init = machine_at_ali1429_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7914,8 +8084,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7926,14 +8097,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMI MegaKey KBC. */ + /* Has AMI 'H' KBC. */ { .name = "[i420TX] J-Bond PCI400C-A", .internal_name = "pci400ca", .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_INTEL_420TX, .init = machine_at_pci400ca_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -7957,8 +8128,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = &kbc_at_ami_device, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -7976,7 +8148,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_IMS_8848, .init = machine_at_g486ip_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8000,8 +8172,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8012,13 +8185,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Has AMIKey-2 'H' KBC firmware. */ { .name = "[OPTi 499] Alaris Cobalt LPX", .internal_name = "cobalt", .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_OPTI_499, .init = machine_at_cobalt_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8042,8 +8216,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8061,7 +8236,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_OPTI_499, .init = machine_at_cougar_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8085,8 +8260,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8104,7 +8280,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_SIS_461, .init = machine_at_decpclpv_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8128,8 +8304,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8147,7 +8324,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_SIS_461, .init = machine_at_dell466np_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8171,8 +8348,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00002420, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8191,7 +8369,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_SIS_461, .init = machine_at_valuepoint433_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8215,8 +8393,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8234,7 +8413,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S2, .chipset = MACHINE_CHIPSET_VLSI_VL82C480, .init = machine_at_martin_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8259,7 +8438,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8280,7 +8460,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_atc1762_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8304,8 +8484,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | KBC_FLAG_IS_CLONE | KBC_FLAG_IS_ASIC | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8323,7 +8504,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_ecsal486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8347,8 +8528,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8359,14 +8541,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This uses a VIA VT82C42N KBC, which is a clone of type 'F' with additional commands */ + /* This uses a VIA VT82C42N KBC, which is a clone of type 'F' with additional commands. + It's really an ASIC clone of the Award KBC, which is itself an extended clone of AMI 'F'. */ { .name = "[ALi M1429G] Lanner Electronics AP-4100AA", .internal_name = "ap4100aa", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_ap4100aa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8390,8 +8573,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8409,7 +8593,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_CONTAQ_82C596, .init = machine_at_4gpv5_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8433,8 +8617,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8445,14 +8630,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has AMI MegaKey KBC firmware. */ + /* Has AMI MegaKey 'P' KBC firmware. */ { .name = "[Contaq 82C597] Visionex Green-B", .internal_name = "greenb", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_CONTAQ_82C597, .init = machine_at_greenb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8476,8 +8661,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8495,7 +8681,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_403tg_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8519,8 +8705,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8531,14 +8718,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */ + /* This is Version 2.0 - it has a VIA VT82C42N KBC. */ { .name = "[OPTi 895] Jetway J-403TG Rev D", .internal_name = "403tg_d", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_403tg_d_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8562,8 +8749,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8581,7 +8769,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_403tg_d_mr_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8605,8 +8793,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8617,14 +8806,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Uses an NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware. */ + /* Uses an Acer 90M002A. + This is a strange one - it has command AF but it returns 0x00. */ { .name = "[SiS 461] Acer V10", .internal_name = "acerv10", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_461, .init = machine_at_acerv10_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8648,8 +8838,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8669,7 +8860,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_win471_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8693,8 +8884,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8712,7 +8904,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_vi15g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8736,8 +8928,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8755,7 +8948,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_vli486sv2g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8779,8 +8972,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8791,14 +8985,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Unknown revision phoenix 1993 multikey */ + /* Has an Intel 82C42PE with Phoenix MultiKey/C42 KBC firmware, copyrighted 1993. */ { .name = "[SiS 471] DEC Venturis 4xx", .internal_name = "dvent4xx", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_dvent4xx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8822,8 +9016,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED, .default_jumpered_ecp_dma = 4, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00021400, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8834,14 +9029,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */ + /* Has JetKey v5.0G KBC Firmware which is a clone of AMIKey type F. */ { .name = "[SiS 471] DTK PKM-0038S E-2", .internal_name = "dtk486", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_dtk486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8865,8 +9060,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | KBC_FLAG_IS_CLONE | KBC_FLAG_IS_ASIC | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8884,7 +9080,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_ami471_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8908,8 +9104,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | KBC_FLAG_IS_CLONE | KBC_FLAG_IS_ASIC | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8920,14 +9117,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has MR (!) KBC firmware, which is a clone of the standard IBM PS/2 KBC firmware. */ + /* Has MR BIOS V307UT KBC firmware, which, bizarrely enough, is actually a genuine AMI 'H'. */ { .name = "[SiS 471] SiS VL-BUS 471 REV. A1", .internal_name = "px471", .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_px471_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8951,8 +9148,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -8970,7 +9168,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3, .chipset = MACHINE_CHIPSET_SIS_471, .init = machine_at_tg486g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -8994,8 +9192,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | 0x00005a00, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9007,16 +9206,17 @@ const machine_t machines[] = { .net_device = NULL }, + /* 486 machines - Socket 3 PCI */ /* 486 machines which utilize the PCI bus */ /* Machine with ALi M1429G chipset and M1435 southbridge */ - /* Has an AMIKEY-2 KBC. */ + /* Has an AMIKEY-2 KBC which is type 'H'. */ { .name = "[ALi M1429G] MSI MS-4134", .internal_name = "ms4134", .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_ms4134_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9040,8 +9240,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9059,7 +9260,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1429G, .init = machine_at_tg486gp_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9083,8 +9284,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | 0x00005a00, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9102,7 +9304,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_sbc490_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9126,8 +9328,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_0 | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9146,7 +9349,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_abpb4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9170,8 +9373,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ALI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9189,7 +9393,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_arb1476_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9213,8 +9417,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00014000, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9236,7 +9441,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_win486pci_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9261,7 +9466,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00005500, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9279,7 +9485,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_tf486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9303,8 +9509,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00014000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9326,7 +9533,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_ALI_M1489, .init = machine_at_ms4145_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9350,8 +9557,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ALI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9369,7 +9577,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_aptiva510_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9393,8 +9601,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9412,7 +9621,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_pc330_6573_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9436,8 +9645,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9455,7 +9665,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_OPTI_895_802G, .init = machine_at_pb450_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9479,8 +9689,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00021400, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &pb450_device, @@ -9498,7 +9709,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420EX, .init = machine_at_486pi_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9522,8 +9733,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9541,7 +9753,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420EX, .init = machine_at_bat4ip3e_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9565,8 +9777,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00021400, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9584,7 +9797,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420EX, .init = machine_at_486ap4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9608,8 +9821,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9627,7 +9841,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420EX, .init = machine_at_ninja_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9651,8 +9865,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED, .default_jumpered_ecp_dma = 4, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9670,7 +9885,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420EX, .init = machine_at_sb486p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9694,8 +9909,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005200, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9713,7 +9929,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420TX, .init = machine_at_amis76_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9737,8 +9953,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9759,7 +9976,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420TX, .init = machine_at_486sp3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9783,8 +10000,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9802,7 +10020,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420TX, .init = machine_at_alfredo_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9826,8 +10044,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9846,7 +10065,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420ZX, .init = machine_at_486sp3g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9870,8 +10089,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9889,7 +10109,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_INTEL_420ZX, .init = machine_at_sb486pv_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9914,8 +10134,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &sb486pv_device, @@ -9933,7 +10154,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_IMS_8848, .init = machine_at_pci400cb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9957,8 +10178,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -9969,13 +10191,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Has Acer KBC firmware. */ { .name = "[SiS 496] Acer P3", .internal_name = "acerp3", .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_acerp3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -9999,8 +10222,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER | 0x00004200, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10011,14 +10235,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 496] ASUS PVI-486SP3C", .internal_name = "486sp3c", .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_486sp3c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10042,8 +10266,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10061,7 +10286,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_ls486e_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10085,8 +10310,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10104,7 +10330,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_m4li_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10128,8 +10354,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10147,7 +10374,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_ms4144_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10171,8 +10398,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10183,14 +10411,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Revision 1 has a Lance LT38C41L, revision 2 has a Holtek HT6542B. Another variant with a Bestkey KBC might exist as well. */ + /* Revision 1 has a Lance LT38C41L, revision 2 has a Holtek HT6542B. + Another variant with a Bestkey KBC might exist as well. */ { .name = "[SiS 496] Rise Computer R418", .internal_name = "r418", .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_r418_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10214,8 +10443,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10226,15 +10456,15 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has a Holtek HT6542B KBC and the BIOS does not send a single non-standard KBC command, so it - must be an ASIC that clones the standard IBM PS/2 KBC. */ + /* This has a Holtek HT6542B KBC and the BIOS does not send a single non-standard KBC command. + The Holtek is an ASIC clone of AMI 'H' with a Holtek copyright string. */ { .name = "[SiS 496] Soyo 4SAW2", .internal_name = "4saw2", .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_4saw2_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10258,8 +10488,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10278,7 +10509,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_SIS_496, .init = machine_at_4dps_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10302,8 +10533,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10321,7 +10553,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_atc1415_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10345,8 +10577,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = NULL, /* UMC UM8886 on-chip KBC. */ + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10365,7 +10598,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_84xxuuda_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10390,7 +10623,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10409,7 +10643,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_pl4600c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10433,8 +10667,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10452,7 +10687,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_ecs486_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10476,8 +10711,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10495,7 +10731,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_actionpc2600_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10519,8 +10755,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | 0x00005a00, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10539,7 +10776,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_actiontower8400_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10563,8 +10800,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | 0x00005a00, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10583,7 +10821,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_m919_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10607,8 +10845,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = NULL, /* UMC UM8886 on-chip KBC. */ + .kbc_params = 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10626,7 +10865,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_spc7700plw_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10650,8 +10889,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = NULL, /* UMC UM8886 on-chip KBC. */ + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10669,7 +10909,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_UMC_UM8881, .init = machine_at_hot433a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10693,8 +10933,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &hot433a_device, @@ -10712,7 +10953,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_VIA_VT82C496G, .init = machine_at_g486vpa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10736,8 +10977,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10755,7 +10997,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_S3_PCI, .chipset = MACHINE_CHIPSET_VIA_VT82C496G, .init = machine_at_486vipio2_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10779,8 +11021,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10802,7 +11045,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_CLIENT, .init = machine_at_itoxstar_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10827,7 +11070,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10846,7 +11090,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II, .init = machine_at_arb1423c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10871,7 +11115,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10890,7 +11135,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II, .init = machine_at_arb1479_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10915,7 +11160,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10934,7 +11180,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II, .init = machine_at_iach488_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -10959,7 +11205,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -10978,7 +11225,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_ELITE, .init = machine_at_pcm9340_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11003,7 +11250,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11022,7 +11270,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_486_MISC, .chipset = MACHINE_CHIPSET_STPC_ATLAS, .init = machine_at_pcm5330_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11047,7 +11295,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11061,13 +11310,14 @@ const machine_t machines[] = { /* Socket 4 machines */ /* 430LX */ + /* Hacer Acer 90M002A V4.10H KBC. */ { .name = "[i430LX] Acer V12P", .internal_name = "v12p", .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_v12p_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11091,8 +11341,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER | 0x00000000, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &v12p_device, @@ -11112,7 +11363,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_ambradp60_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11136,8 +11387,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11159,7 +11411,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_excaliburpci_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11183,8 +11435,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11202,7 +11455,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_p5mp3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11226,8 +11479,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11245,7 +11499,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_dellxp60_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11269,8 +11523,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00001010, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11288,7 +11543,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_opti560l_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11312,8 +11567,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11331,7 +11587,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_586is_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11355,8 +11611,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11374,7 +11631,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_valuepointp60_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11398,8 +11655,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11417,7 +11675,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_revenge_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11441,8 +11699,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11460,7 +11719,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_m5pi_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11484,8 +11743,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11495,7 +11755,7 @@ const machine_t machines[] = { .vid_device = NULL, .snd_device = NULL, .net_device = NULL - }, + }, /* This has the Phoenix MultiKey KBC firmware. */ { .name = "[i430LX] Packard Bell PB520R", @@ -11503,7 +11763,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_INTEL_430LX, .init = machine_at_pb520r_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11527,8 +11787,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11550,7 +11811,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_excalibur_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11574,8 +11835,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, /* Guess. */ + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11595,7 +11857,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_globalyst330_p5_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11619,8 +11881,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11638,7 +11901,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_p5vl_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11662,8 +11925,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11683,7 +11947,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_excaliburpci2_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11707,8 +11971,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_0 | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005200, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11719,14 +11984,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 501] ASUS PCI/I-P5SP4", .internal_name = "p5sp4", .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_p5sp4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11750,8 +12015,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11762,14 +12028,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 501] ECS SI5PI AIO", .internal_name = "ecs50x", .type = MACHINE_TYPE_SOCKET4, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_ecs50x_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11793,8 +12059,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11815,7 +12082,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET4_5, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_pci56001_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11839,8 +12106,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11862,7 +12130,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_ambradp90_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11886,8 +12154,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11905,7 +12174,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_p54np4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11929,8 +12198,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11948,7 +12218,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_dellplato_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -11972,8 +12242,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00001010, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -11991,7 +12262,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_586ip_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12015,8 +12286,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12034,7 +12306,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_plato_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12058,8 +12330,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00012900, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12070,13 +12343,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Has unknown KBC firmware. */ { .name = "[i430NX] Siemens-Nixdorf D842", .internal_name = "d842", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_d842_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12089,7 +12363,7 @@ const machine_t machines[] = { .max_voltage = 3520, .min_multi = 1.5, .max_multi = 2.0 - }, + }, .bus_flags = MACHINE_PS2_PCI, .flags = MACHINE_IDE_DUAL | MACHINE_APM, /* Machine has onboard video: TLI ET4000/w32p */ .ram = { @@ -12100,8 +12374,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &d842_device, @@ -12119,7 +12394,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430NX, .init = machine_at_tek932_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12143,8 +12418,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005200, /* Guess. */ + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12164,7 +12440,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_acerv30_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12188,8 +12464,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_ACER | 0x00000000, + .kbc_p1 = 0x004008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12207,7 +12484,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_apollo_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12231,8 +12508,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12243,14 +12521,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a National Semiconductor PC87332VLJ Super I/O with AMIKey 'F' KBC firmware. */ + /* Has Dell KBC firmware. */ { .name = "[i430FX] Dell OptiPlex GXL/GXM", .internal_name = "optiplexgxl", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_optiplexgxl_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12274,8 +12552,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12293,7 +12572,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_pt2000_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12317,8 +12596,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12338,7 +12618,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_zappa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12363,7 +12643,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12381,7 +12662,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_powermatev_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12405,8 +12686,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12424,7 +12706,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_hawk_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12448,8 +12730,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | KBC_FLAG_IS_GREEN | 0x00005a00, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12462,13 +12745,14 @@ const machine_t machines[] = { }, /* OPTi 596/597 */ + /* Has unknown KBC firmware. */ { .name = "[OPTi 597] Northgate Computer Systems Elegance Pentium 90", .internal_name = "ncselp90", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_ncselp90_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12492,8 +12776,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004d00, /* Guess */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12504,13 +12789,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* Has unknown KBC firmware. */ { .name = "[OPTi 597] Shuttle HOT-543", .internal_name = "hot543", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_hot543_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12534,8 +12820,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12555,7 +12842,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_OPTI_547_597, .init = machine_at_pat54pv_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12579,8 +12866,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005000, /* Guess. */ + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12593,14 +12881,14 @@ const machine_t machines[] = { }, /* SiS 85C50x */ - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 501] ASUS PCI/I-P54SP4", .internal_name = "p54sp4", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_p54sp4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12624,8 +12912,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12636,14 +12925,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 501] BCM SQ-588", .internal_name = "sq588", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_sq588_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12667,8 +12956,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12686,7 +12976,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_SIS_501, .init = machine_at_p54sps_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12710,8 +13000,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = &kbc_at_ami_device, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_PHOENIX | 0x00021400, /* Guess. */ + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12722,14 +13013,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[SiS 5501] MSI MS-5109", .internal_name = "ms5109", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_SIS_5501, .init = machine_at_ms5109_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12753,8 +13044,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_0 | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12772,7 +13064,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_SIS_5501, .init = machine_at_torino_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12796,8 +13088,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI_TRIGEM | KBC_FLAG_IS_GREEN | 0x00005a00, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12810,14 +13103,14 @@ const machine_t machines[] = { }, /* UMC 889x */ - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[UMC 889x] Shuttle HOT-539", .internal_name = "hot539", .type = MACHINE_TYPE_SOCKET5, .chipset = MACHINE_CHIPSET_UMC_UM8890BF, .init = machine_at_hot539_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12841,8 +13134,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12856,7 +13150,7 @@ const machine_t machines[] = { /* Socket 7 (Single Voltage) machines */ /* 430FX */ - /* This has an AMIKey-2, which is an updated version of type 'H'. + /* This has an AMIKey-2, which is type 'H'. This also seems to be revision 2.1 with the FDC37C665 SIO. */ { .name = "[i430FX] ASUS P/I-P55TP4XE", @@ -12864,7 +13158,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_p54tp4xe_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12888,8 +13182,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12907,7 +13202,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_p54tp4xe_mr_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12931,8 +13226,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12950,7 +13246,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_exp8551_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -12974,8 +13270,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -12995,7 +13292,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_gw2katx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13020,7 +13317,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13039,7 +13337,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_vectra54_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13064,7 +13362,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13084,7 +13383,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_thor_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13109,7 +13408,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13129,7 +13429,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_mrthor_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13154,7 +13454,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13174,7 +13475,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_endeavor_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = machine_at_endeavor_gpio_handler, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13199,7 +13500,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13210,14 +13512,14 @@ const machine_t machines[] = { .snd_device = &sb_vibra16s_onboard_device, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[i430FX] MSI MS-5119", .internal_name = "ms5119", .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_ms5119_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13241,8 +13543,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13261,7 +13564,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_pb640_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13286,7 +13589,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13304,7 +13608,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_mb500n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13328,8 +13632,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_0 | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13340,14 +13645,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has an AMI MegaKey 'H' KBC firmware (1992). */ + /* Has an AMIKEY-2 'H' KBC firmware (1992). */ { .name = "[i430FX] QDI FMB", .internal_name = "fmb", .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430FX, .init = machine_at_fmb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13371,8 +13676,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13394,7 +13700,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_acerv35n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13419,7 +13725,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13437,7 +13744,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_ap53_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13461,8 +13768,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13473,14 +13781,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* [TEST] Has a VIA 82C42N KBC, with AMIKey F KBC firmware. */ + /* [TEST] Has a VIA 82C42N KBC that emulates the AMIKey F KBC firmware. */ { .name = "[i430HX] Biostar MB-8500TUC", .internal_name = "8500tuc", .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_8500tuc_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13504,8 +13812,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13516,13 +13825,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, + /* It possible has AMIKEY-2 'H' KBC firmware. */ { .name = "[i430HX] Siemens-Nixdorf D943", .internal_name = "d943", .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_d943_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13546,8 +13856,9 @@ const machine_t machines[] = { .nvrmask = 511, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &d943_device, @@ -13568,7 +13879,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_gw2kma_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13593,7 +13904,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13613,7 +13925,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_SIS_5501, .init = machine_at_5sbm2_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13637,8 +13949,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x000004f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &c5sbm2_device, @@ -13658,7 +13971,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_SIS_5511, .init = machine_at_amis727_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13682,8 +13995,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005200, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13701,7 +14015,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_SIS_5511, .init = machine_at_ap5s_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13725,8 +14039,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &ap5s_device, @@ -13744,7 +14059,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_SIS_5511, .init = machine_at_pc140_6260_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13768,8 +14083,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13787,7 +14103,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_SIS_5511, .init = machine_at_ms5124_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13811,8 +14127,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_MBDMA, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13834,7 +14151,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_acerm3a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13859,7 +14176,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13877,7 +14195,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_p55t2p4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13901,8 +14219,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13913,14 +14232,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* The base board has a Holtek HT6542B with the AMIKey-2 (updated 'H') KBC firmware. */ + /* The base board has a Holtek HT6542B which emulates the AMIKey-2 ('H') KBC firmware. */ { .name = "[i430HX] ASUS P/I-P65UP5 (C-P55T2D)", .internal_name = "p65up5_cp55t2d", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_p65up5_cp55t2d_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13945,7 +14264,9 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -13963,7 +14284,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_cu430hx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -13989,7 +14310,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14009,7 +14331,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_tc430hx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14035,7 +14357,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14054,7 +14377,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_m7shi_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14079,7 +14402,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14097,7 +14421,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_epc2102_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14121,8 +14445,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_USE_CONFIG, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00005200, /* Guess. */ + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14143,7 +14468,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_pcv90_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14169,7 +14494,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14188,7 +14514,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_p55t2s_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14213,7 +14539,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14231,7 +14558,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_equium5200_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14257,7 +14584,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14275,7 +14603,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430HX, .init = machine_at_infinia7200_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14301,7 +14629,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14321,7 +14650,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_ap5vm_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14345,8 +14674,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14364,7 +14694,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_p55tvp4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14388,8 +14718,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14408,7 +14739,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_5ivg_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14432,8 +14763,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, /* Guess. */ + .kbc_params = KBC_VEN_AMI | 0x00004800, /* Guess. */ + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14444,14 +14776,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* [TEST] Has AMIKey 'F' KBC firmware on a VIA VT82C42N KBC. */ + /* [TEST] Has a VIA VT82C42N KBC. */ { .name = "[i430VX] Biostar MB-8500TVX-A", .internal_name = "8500tvxa", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_8500tvxa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14475,8 +14807,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14495,7 +14828,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_presario2240_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14520,7 +14853,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14539,7 +14873,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_presario4500_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14564,7 +14898,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14583,7 +14918,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_dellhannibalp_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14609,7 +14944,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14627,7 +14963,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_p5vxb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14651,8 +14987,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14671,7 +15008,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_p55va_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14696,7 +15033,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14710,28 +15048,27 @@ const machine_t machines[] = { /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI MegaKey (revision '5') KBC firmware. */ { - .name = "[i430VX] Gateway 2000 Hitman", + .name = "[i430VX] Gateway 2000 Tigereye", .internal_name = "gw2kte", - .type = MACHINE_TYPE_SOCKET7, + .type = MACHINE_TYPE_SOCKET7_3V, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_gw2kte_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, .cpu = { .package = CPU_PKG_SOCKET5_7, - .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P, - CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L), + .block = CPU_BLOCK_NONE, .min_bus = 50000000, .max_bus = 66666667, - .min_voltage = 2200, + .min_voltage = 3380, .max_voltage = 3520, .min_multi = 1.5, .max_multi = 3.0 }, .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, - .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal video: S3 Trio64V+ */ + .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, .ram = { .min = 8192, .max = 131072, @@ -14741,7 +15078,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14749,7 +15087,7 @@ const machine_t machines[] = { .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, - .snd_device = &sb_vibra16c_onboard_device, + .snd_device = NULL, .net_device = NULL }, /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix @@ -14760,7 +15098,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_brio80xx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14785,7 +15123,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14796,14 +15135,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has the AMIKey-2 (updated 'H') KBC firmware. */ + /* Has the AMIKey-2 ('H') KBC firmware. */ { .name = "[i430VX] LG IBM Multinet x52 (MSI MS-5136)", .internal_name = "lgibmx52", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_lgibmx52_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14827,8 +15166,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &lgibmx52_device, @@ -14848,7 +15188,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_pb680_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14874,7 +15214,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14893,7 +15234,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_pb810_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14918,7 +15259,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14937,7 +15279,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_mb520n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -14961,8 +15303,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -14981,7 +15324,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430VX, .init = machine_at_i430vx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15005,8 +15348,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15026,7 +15370,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_nupro592_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15051,7 +15395,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15062,14 +15407,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has the AMIKey KBC firmware, which is an updated 'F' type (YM430TX is based on the TX97). */ + /* This has the AMIKey KBC firmware, which is type 'F' (YM430TX is based on the TX97). */ { .name = "[i430TX] ASUS TX97", .internal_name = "tx97", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_tx97_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15093,8 +15438,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15120,7 +15466,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_optiplexgn_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15146,7 +15492,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15165,7 +15512,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_tomahawk_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15190,7 +15537,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15201,14 +15549,14 @@ const machine_t machines[] = { .snd_device = &cs4236b_device, .net_device = &pcnet_am79c973_onboard_device }, - /* This has the AMIKey KBC firmware, which is an updated 'F' type. */ + /* This has the Winbond W83977 Super I/O Chip with AMIKey-2 KBC firmware, which is type 'H'. */ { .name = "[i430TX] Intel YM430TX (Yamamoto)", .internal_name = "ym430tx", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_ym430tx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15234,7 +15582,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15258,7 +15607,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_thunderbolt_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15284,7 +15633,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15296,14 +15646,14 @@ const machine_t machines[] = { .net_device = NULL }, /* Has a SM(S)C FDC37C67x Super I/O chip with on-chip KBC with Phoenix or - AMIKey-2 KBC firmware. */ + AMI MEGAKEY '5' KBC firmware. */ { .name = "[i430TX] NEC Mate NX MA23C", .internal_name = "ma23c", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_ma23c_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15328,7 +15678,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15339,14 +15690,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has the Phoenix MultiKey KBC firmware. */ + /* This has the Phoenix MultiKey KBC firmware on the NSC Suepr I/O chip. */ { .name = "[i430TX] Packard Bell PB790", .internal_name = "an430tx", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_an430tx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15372,7 +15723,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15391,7 +15743,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_mb540n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15415,8 +15767,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15434,7 +15787,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_56a5_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15458,8 +15811,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15470,14 +15824,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* [TEST] Has AMIKey 'H' KBC firmware. */ + /* [TEST] Has AMIKey 'H' KBC firmware on the Winbond W83967 Super I/O chip. */ { .name = "[i430TX] Supermicro P5MMS98", .internal_name = "p5mms98", .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_p5mms98_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15502,7 +15856,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15520,7 +15875,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_INTEL_430TX, .init = machine_at_richmond_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15544,8 +15899,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15566,7 +15922,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_VPX, .init = machine_at_ficva502_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15591,7 +15947,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15612,7 +15969,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3, .init = machine_at_ficpa2012_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15637,7 +15994,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15656,7 +16014,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3, .init = machine_at_via809ds_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15681,7 +16039,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15701,7 +16060,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5571, .init = machine_at_cb52xsi_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15726,7 +16085,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15744,7 +16104,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5571, .init = machine_at_ms5146_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15769,7 +16129,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15787,7 +16148,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5571, .init = machine_at_r534f_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15812,7 +16173,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15832,7 +16194,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5581, .init = machine_at_sp97xv_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15857,7 +16219,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15875,7 +16238,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5581, .init = machine_at_sq578_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15900,7 +16263,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15920,7 +16284,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_SIS_5591, .init = machine_at_ms5172_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15945,7 +16309,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -15965,7 +16330,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS, .init = machine_at_m5ata_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -15990,7 +16355,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16008,7 +16374,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS, .init = machine_at_ms5164_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16033,7 +16399,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16051,7 +16418,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS, .init = machine_at_m560_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16076,7 +16443,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16097,7 +16465,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V, .init = machine_at_p5a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16122,7 +16490,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16141,7 +16510,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V, .init = machine_at_m579_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16166,7 +16535,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16184,7 +16554,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V, .init = machine_at_gwlucas_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16209,7 +16579,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16227,7 +16598,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V, .init = machine_at_5aa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16252,7 +16623,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16270,7 +16642,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V, .init = machine_at_5ax_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16295,7 +16667,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16316,7 +16689,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3, .init = machine_at_ax59pro_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16341,7 +16714,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16360,7 +16734,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3, .init = machine_at_delhi3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16385,7 +16759,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16404,7 +16779,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3, .init = machine_at_mvp3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16429,7 +16804,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16448,7 +16824,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3, .init = machine_at_ficva503a_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16473,7 +16849,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16492,7 +16869,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3, .init = machine_at_5emapro_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16517,7 +16894,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16537,7 +16915,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKETS7, .chipset = MACHINE_CHIPSET_SIS_5591, .init = machine_at_5sg100_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16562,7 +16940,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16576,14 +16955,14 @@ const machine_t machines[] = { /* Socket 8 machines */ /* 450KX */ - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[i450KX] AOpen AP61", .internal_name = "ap61", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_450KX, .init = machine_at_ap61_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16607,8 +16986,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_DISABLED | MACHINE_DMA_1 | MACHINE_DMA_3, .default_jumpered_ecp_dma = 3, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x000008f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16619,14 +16999,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has an AMIKey-2, which is an updated version of type 'H'. */ + /* This has an AMIKey-2, which is type 'H'. */ { .name = "[i450KX] ASUS P/I-P6RP4", .internal_name = "p6rp4", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_450KX, .init = machine_at_p6rp4_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16650,8 +17030,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = MACHINE_DMA_1, .default_jumpered_ecp_dma = 1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16669,7 +17050,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_450KX, .init = machine_at_ficpo6000_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16694,7 +17075,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = MACHINE_DMA_1, .default_jumpered_ecp_dma = 1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = &ficpo6000_device, @@ -16715,7 +17097,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_acerv60n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16740,7 +17122,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16751,14 +17134,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* The base board has a Holtek HT6542B with AMIKey-2 (updated 'H') KBC firmware. */ + /* The base board has a Holtek HT6542B with AMIKey-2 ('H') KBC firmware. */ { .name = "[i440FX] ASUS P/I-P65UP5 (C-P6ND)", .internal_name = "p65up5_cp6nd", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_p65up5_cp6nd_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16782,8 +17165,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16794,14 +17178,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a VIA VT82C42N with likely AMIKey 'F' KBC firmware. */ + /* Has a VIA VT82C42N KBC. */ { .name = "[i440FX] Biostar MB-8600TTC", .internal_name = "8600ttc", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_8600ttc_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16825,8 +17209,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16844,7 +17229,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_dellvenus_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16869,7 +17254,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16887,7 +17273,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_gw2kvenus_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16912,7 +17298,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16923,14 +17310,14 @@ const machine_t machines[] = { .snd_device = &cs4236_onboard_device, .net_device = NULL }, - /* Has the AMIKey-2 (updated 'H') KBC firmware. */ + /* Has the AMIKey-2 ('H') KBC firmware. */ { .name = "[i440FX] Gigabyte GA-686NX", .internal_name = "686nx", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_686nx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -16954,8 +17341,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -16975,7 +17363,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_ap440fx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17000,7 +17388,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17020,7 +17409,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_vs440fx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17045,7 +17434,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17056,14 +17446,14 @@ const machine_t machines[] = { .snd_device = &cs4236_onboard_device, .net_device = NULL }, - /* Has the AMIKey-2 (updated 'H') KBC firmware. */ + /* Has the AMIKey-2 ('H') KBC firmware. */ { .name = "[i440FX] LG IBM Multinet x61 (MSI MS-6106)", .internal_name = "lgibmx61", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_lgibmx61_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17087,8 +17477,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17107,7 +17498,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_m6mi_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17132,7 +17523,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17143,14 +17535,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* Has a VIA VT82C42N KBC with likely AMI MegaKey firmware. */ + /* Has a VIA VT82C42N KBC. */ { .name = "[i440FX] PC Partner MB600N", .internal_name = "mb600n", .type = MACHINE_TYPE_SOCKET8, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_mb600n_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17174,8 +17566,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_VIA | 0x00424600, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17196,7 +17589,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_ALI_ALADDIN_PRO_II, .init = machine_at_m729_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17221,7 +17614,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17242,7 +17636,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_acerv62x_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17267,7 +17661,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17278,14 +17673,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* The base board has a Holtek HT6542B KBC with AMIKey-2 (updated 'H') KBC firmware. */ + /* The base board has a Holtek HT6542B KBC which emulates the AMIKEY-2 'H' KBC firmware. */ { .name = "[i440FX] ASUS P/I-P65UP5 (C-PKND)", .internal_name = "p65up5_cpknd", .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_p65up5_cpknd_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17309,8 +17704,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17321,15 +17717,14 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - /* This has a Holtek KBC and the BIOS does not send a single non-standard KBC command, so it - must be an ASIC that clones the standard IBM PS/2 KBC. */ + /* This has a Holtek KBC. */ { .name = "[i440FX] ASUS KN97", .internal_name = "kn97", .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440FX, .init = machine_at_kn97_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17353,8 +17748,9 @@ const machine_t machines[] = { .nvrmask = 127, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_HOLTEK | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17375,7 +17771,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440LX, .init = machine_at_lx6_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17400,7 +17796,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17419,7 +17816,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440LX, .init = machine_at_optiplexgxa_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17444,7 +17841,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17463,7 +17861,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440LX, .init = machine_at_spitfire_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17488,7 +17886,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17507,7 +17906,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440LX, .init = machine_at_ma30d_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17532,7 +17931,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x0000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17553,7 +17953,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440EX, .init = machine_at_p6i440e2_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17578,7 +17978,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17599,7 +18000,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_bf6_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17624,7 +18025,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17643,7 +18045,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_bx6_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17668,7 +18070,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17687,7 +18090,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_ax6bc_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17712,7 +18115,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17731,7 +18135,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_p2bls_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17756,7 +18160,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17775,7 +18180,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_p3bf_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17800,7 +18205,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17819,7 +18225,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_686bx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17844,7 +18250,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17862,7 +18269,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_lgibmx7g_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17887,7 +18294,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17906,7 +18314,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_p6sba_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17931,7 +18339,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17950,7 +18359,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_s1846_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -17975,7 +18384,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -17996,7 +18406,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440ZX, .init = machine_at_vei8_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18021,7 +18431,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18040,7 +18451,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440ZX, .init = machine_at_ms6168_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18065,7 +18476,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18084,7 +18496,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_INTEL_440ZX, .init = machine_at_borapro_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18109,7 +18521,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18130,7 +18543,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66, .init = machine_at_atc6310bxii_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18155,7 +18568,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18176,7 +18590,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO, .init = machine_at_ficka6130_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18201,7 +18615,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18220,7 +18635,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133, .init = machine_at_p3v133_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18245,7 +18660,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18264,7 +18680,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A, .init = machine_at_p3v4x_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18289,7 +18705,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18308,7 +18725,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A, .init = machine_at_gt694va_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18332,8 +18749,9 @@ const machine_t machines[] = { .nvrmask = 255, .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, - .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_device = &kbc_at_device, + .kbc_params = KBC_VEN_AMI | 0x00004800, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18353,7 +18771,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_SIS_5600, .init = machine_at_p6f99_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18378,7 +18796,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18396,7 +18815,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1, .chipset = MACHINE_CHIPSET_SIS_5600, .init = machine_at_m747_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18421,7 +18840,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18443,7 +18863,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1_2, .chipset = MACHINE_CHIPSET_INTEL_440GX, .init = machine_at_fw6400gx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18468,7 +18888,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000044f0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18483,14 +18904,14 @@ const machine_t machines[] = { /* Slot 1/Socket 370 machines */ /* 440BX */ /* OEM version of ECS P6BXT-A+ REV 1.3x/2.2x. Has a Winbond W83977EF Super - I/O chip with on-chip KBC with AMIKey-2 KBC firmware.*/ + I/O chip with on-chip KBC with AMIKey-2 KBC firmware.*/ { .name = "[i440BX] Compaq ProSignia S316/318 (Intel)", .internal_name = "prosignias31x_bx", .type = MACHINE_TYPE_SLOT1_370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133, .init = machine_at_prosignias31x_bx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18515,7 +18936,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18534,7 +18956,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1_370, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_s1857_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18559,7 +18981,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18579,7 +19002,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT1_370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133, .init = machine_at_p6bat_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18604,7 +19027,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18626,7 +19050,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT2, .chipset = MACHINE_CHIPSET_INTEL_440GX, .init = machine_at_6gxu_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18651,7 +19075,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18670,7 +19095,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SLOT2, .chipset = MACHINE_CHIPSET_INTEL_440GX, .init = machine_at_s2dge_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18695,7 +19120,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18717,7 +19143,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_INTEL_440LX, .init = machine_at_s370slm_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18742,7 +19168,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18763,7 +19190,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_awo671r_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18789,7 +19216,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18808,7 +19236,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_ambx133_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18833,7 +19261,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18852,7 +19281,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_cubx_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18877,7 +19306,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18898,7 +19328,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_INTEL_440ZX, .init = machine_at_63a1_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18923,7 +19353,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18944,7 +19375,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66, .init = machine_at_atc7020bxii_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -18969,7 +19400,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -18988,7 +19420,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66, .init = machine_at_m773_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19013,7 +19445,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19034,7 +19467,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO, .init = machine_at_apas3_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19059,7 +19492,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19078,7 +19512,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133, .init = machine_at_p6bap_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19103,7 +19537,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19122,7 +19557,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A, .init = machine_at_6via90ap_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19147,7 +19582,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19166,7 +19602,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A, .init = machine_at_cuv4xls_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19191,7 +19627,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19211,7 +19648,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_SOCKET370, .chipset = MACHINE_CHIPSET_SIS_5600, .init = machine_at_7sbb_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19236,7 +19673,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19257,7 +19695,7 @@ const machine_t machines[] = { .type = MACHINE_TYPE_MISC, .chipset = MACHINE_CHIPSET_INTEL_440BX, .init = machine_at_vpc2007_init, - .p1_handler = NULL, + .p1_handler = machine_generic_p1_handler, .gpio_handler = NULL, .available_flag = MACHINE_AVAILABLE, .gpio_acpi_handler = NULL, @@ -19282,7 +19720,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000cf0, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19325,7 +19764,8 @@ const machine_t machines[] = { .jumpered_ecp_dma = 0, .default_jumpered_ecp_dma = -1, .kbc_device = NULL, - .kbc_p1 = 0xff, + .kbc_params = 0x00000000, + .kbc_p1 = 0x00000000, .gpio = 0xffffffff, .gpio_acpi = 0xffffffff, .device = NULL, @@ -19354,6 +19794,8 @@ static uint32_t machine_gpio; static uint32_t machine_gpio_acpi_default; static uint32_t machine_gpio_acpi; +static int machine_is_ps2 = 0; + void *machine_snd = NULL; uint8_t @@ -19362,12 +19804,6 @@ machine_get_p1_default(void) return machine_p1_default; } -uint8_t -machine_get_p1(void) -{ - return machine_p1; -} - void machine_set_p1_default(uint8_t val) { @@ -19387,18 +19823,29 @@ machine_and_p1(uint8_t val) } uint8_t -machine_handle_p1(uint8_t write, uint8_t val) +machine_generic_p1_handler(void) { - uint8_t ret = 0xff; + return video_is_mda() ? 0xf0 : 0xb0; +} + +uint8_t +machine_get_p1(uint8_t kbc_p1) +{ + uint8_t low_bits = ((machine_p1 >> 8) + 1) & 0x03; + uint8_t ret = 0xff; if (machines[machine].p1_handler) - ret = machines[machine].p1_handler(write, val); - else { - if (write) - machine_p1 = machine_p1_default & val; - else - ret = machine_p1; - } + ret = machines[machine].p1_handler(); + + ret &= (machine_p1 & 0xff); + + ret |= ((machine_p1 >> 8) & 0xff); + + ret ^= ((machine_p1 >> 16) & 0xff); + + ret &= kbc_p1; + + machine_p1 = (machine_p1 & 0xfffffcff) | (low_bits << 8); return ret; } @@ -19627,6 +20074,36 @@ machine_has_flags(int m, int flags) return ret; } +void +machine_set_ps2(void) +{ + if (machines[machine].bus_flags & MACHINE_BUS_PS2_PORTS) + machine_is_ps2 = 1; + else + machine_is_ps2 = 0; +} + +void +machine_force_ps2(int is_ps2) +{ + machine_is_ps2 = is_ps2; +} + +int +machine_has_flags_ex(int flags) +{ + int ret = machine_has_flags(machine, flags); + + if (flags & MACHINE_PS2_KBC) { + if (machine_is_ps2) + ret |= MACHINE_PS2_KBC; + else + ret &= ~MACHINE_PS2_KBC; + } + + return ret; +} + int machine_has_bus(int m, int bus_flags) { diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index bdf7e8c2f..5bc43f2c6 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -28,10 +28,10 @@ msgid "&Pause" msgstr "일시정지(&P)" msgid "Pause" -msgstr "" +msgstr "일시정지" msgid "Re&sume" -msgstr "" +msgstr "상태에서 재개" msgid "E&xit" msgstr "끝내기(&X)" @@ -148,13 +148,13 @@ msgid "RGB &Color" msgstr "RGB 천연색(&C)" msgid "RGB (no brown)" -msgstr "" +msgstr "RGB (갈색 없음)" msgid "&RGB Grayscale" msgstr "RGB 회색조(&R)" msgid "Generic RGBI color monitor" -msgstr "" +msgstr "일반 RGBI 컬러 모니터" msgid "&Amber monitor" msgstr "주황색 모니터(&A)" @@ -193,7 +193,7 @@ msgid "&Settings..." msgstr "설정(&S)..." msgid "Settings..." -msgstr "" +msgstr "설정..." msgid "&Update status bar icons" msgstr "상태 바 아이콘 갱신하기(&U)" @@ -361,7 +361,7 @@ msgid "Configure" msgstr "설정" msgid "CPU:" -msgstr "" +msgstr "CPU:" msgid "CPU type:" msgstr "CPU 종류:" @@ -400,13 +400,13 @@ msgid "Dynamic Recompiler" msgstr "동적 재컴파일" msgid "CPU frame size" -msgstr "" +msgstr "CPU 프레임 크기" msgid "Larger frames (less smooth)" -msgstr "" +msgstr "더 큰 프레임 (덜 부드럽음)" msgid "Smaller frames (smoother)" -msgstr "" +msgstr "더 작은 프레임 (더 부드러운)" msgid "Video:" msgstr "비디오 카드:" @@ -424,25 +424,25 @@ msgid "XGA Graphics" msgstr "XGA 그래픽" msgid "IBM PS/55 Display Adapter Graphics" -msgstr "" +msgstr "IBM PS/55 디스플레이 어댑터 그래픽스" msgid "Keyboard:" -msgstr "" +msgstr "키보드:" msgid "Keyboard" -msgstr "" +msgstr "키보드" msgid "Mouse:" msgstr "마우스:" msgid "Mouse" -msgstr "" +msgstr "마우스" msgid "Joystick:" msgstr "조이스틱:" msgid "Joystick" -msgstr "" +msgstr "조이스틱" msgid "Joystick 1..." msgstr "조이스틱 1..." @@ -475,7 +475,7 @@ msgid "MIDI In Device:" msgstr "MIDI 입력 장치:" msgid "MIDI Out:" -msgstr "" +msgstr "MIDI 출력:" msgid "Standalone MPU-401" msgstr "MPU-401 단독 사용" @@ -517,7 +517,7 @@ msgid "LPT4 Device:" msgstr "LPT4 장치:" msgid "Internal LPT ECP DMA:" -msgstr "" +msgstr "내부 LPT의 ECP의 DMA:" msgid "Serial port 1" msgstr "직렬 포트 1" @@ -547,7 +547,7 @@ msgid "FD Controller:" msgstr "FD 컨트롤러:" msgid "CD-ROM Controller:" -msgstr "" +msgstr "CD-ROM 컨트롤러:" msgid "Tertiary IDE Controller" msgstr "제3의 IDE 컨트롤러" @@ -556,7 +556,7 @@ msgid "Quaternary IDE Controller" msgstr "제4의 IDE 컨트롤러" msgid "Hard disk" -msgstr "" +msgstr "하드 디스크" msgid "SCSI" msgstr "SCSI" @@ -580,7 +580,7 @@ msgid "Hard disks:" msgstr "하드 디스크:" msgid "Firmware Version" -msgstr "" +msgstr "펌웨어 버전" msgid "&New..." msgstr "새로 만들기(&N)..." @@ -640,13 +640,13 @@ msgid "MO drives:" msgstr "광자기 드라이브:" msgid "MO:" -msgstr "" +msgstr "광자기:" msgid "Removable disks:" -msgstr "" +msgstr "제거 가능한 디스크:" msgid "Removable disk drives:" -msgstr "" +msgstr "제거 가능한 디스크 드라이브:" msgid "ZIP 250" msgstr "ZIP 250" @@ -658,7 +658,7 @@ msgid "ISA Memory Expansion" msgstr "ISA 메모리 확장 카드" msgid "ISA ROM Cards" -msgstr "" +msgstr "ISA ROM 카드" msgid "Card 1:" msgstr "카드 1:" @@ -673,13 +673,13 @@ msgid "Card 4:" msgstr "카드 4:" msgid "Generic ISA ROM Board" -msgstr "" +msgstr "일반 ISA ROM 보드" msgid "Generic Dual ISA ROM Board" -msgstr "" +msgstr "일반 듀얼 ISA ROM 보드" msgid "Generic Quad ISA ROM Board" -msgstr "" +msgstr "일반 쿼드 ISA ROM 보드" msgid "ISABugger device" msgstr "ISABugger 장치" @@ -703,16 +703,16 @@ msgid "Speed" msgstr "속도" msgid "Removable disk %1 (%2): %3" -msgstr "" +msgstr "제거 가능한 디스크 %1 (%2): %3" msgid "&Removable disk %1 (%2): %3" -msgstr "" +msgstr "제거 가능한 디스크(&R) %1 (%2): %3" msgid "Removable disk images" -msgstr "" +msgstr "제거 가능한 디스크 이미지" msgid "Image %1" -msgstr "" +msgstr "이미지 %1" msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory." msgstr "86Box에서 사용 가능한 ROM 이미지를 찾을 수 없습니다.\n\nROM 세트를다운로드 후 \"roms\" 디렉토리에 압축을 풀어 주세요." @@ -772,13 +772,13 @@ msgid "Ports (COM & LPT)" msgstr "포트 (COM & LPT)" msgid "Ports" -msgstr "" +msgstr "포트" msgid "Serial ports:" -msgstr "" +msgstr "시리얼 포트:" msgid "Parallel ports:" -msgstr "" +msgstr "병렬 포트:" msgid "Storage controllers" msgstr "장치 컨트롤러" @@ -787,13 +787,13 @@ msgid "Hard disks" msgstr "하드 디스크" msgid "Disks:" -msgstr "" +msgstr "디스크:" msgid "Floppy:" -msgstr "" +msgstr "플로피:" msgid "Controllers:" -msgstr "" +msgstr "컨트롤러:" msgid "Floppy & CD-ROM drives" msgstr "플로피 / CD-ROM" @@ -805,7 +805,7 @@ msgid "Other peripherals" msgstr "기타 주변기기" msgid "Other devices" -msgstr "" +msgstr "기타 저장장치" msgid "Click to capture mouse" msgstr "이 창을 클릭하면 마우스를 사용합니다" @@ -874,7 +874,7 @@ msgid "CH Flightstick Pro" msgstr "CH Flightstick Pro" msgid "CH Flightstick Pro + CH Pedals" -msgstr "" +msgstr "CH Flightstick Pro + CH Pedals" msgid "Microsoft SideWinder Pad" msgstr "Microsoft SideWinder Pad" @@ -883,28 +883,28 @@ msgid "Thrustmaster Flight Control System" msgstr "Thrustmaster Flight Control System" msgid "Thrustmaster FCS + Rudder Control System" -msgstr "" +msgstr "Thrustmaster FCS + Rudder Control System" msgid "2-button gamepad(s)" -msgstr "" +msgstr "2버튼 게임패드" msgid "2-button flight yoke" -msgstr "" +msgstr "2버튼 비행 조종간" msgid "4-button gamepad" -msgstr "" +msgstr "4버튼 게임패드" msgid "4-button flight yoke" -msgstr "" +msgstr "4버튼 비행 조종간" msgid "2-button flight yoke with throttle" -msgstr "" +msgstr "2버튼 비행 조종간과 스로틀" msgid "4-button flight yoke with throttle" -msgstr "" +msgstr "4버튼 비행 조종간과 스로틀" msgid "Win95 Steering Wheel (3-axis, 4-button)" -msgstr "" +msgstr "Win95 조타륜 (3축, 4버튼)" msgid "None" msgstr "없음" @@ -952,13 +952,13 @@ msgid "Internal device" msgstr "내부 장치" msgid "&File" -msgstr "" +msgstr "파일(&F)" msgid "&New machine..." -msgstr "" +msgstr "새로운 기계(&N)..." msgid "&Check for updates..." -msgstr "" +msgstr "업데이트 확인 중(&C)..." msgid "Exit" msgstr "끝내기" @@ -1057,7 +1057,7 @@ msgid "Pause execution" msgstr "실행 일시 중지" msgid "Ctrl+Alt+Del" -msgstr "" +msgstr "Ctrl+Alt+Del" msgid "Press Ctrl+Alt+Del" msgstr "Ctrl+Alt+Del" @@ -1069,271 +1069,271 @@ msgid "Hard reset" msgstr "재시작" msgid "Force shutdown" -msgstr "" +msgstr "강제 종료" msgid "Start" -msgstr "" +msgstr "시작" msgid "Not running" -msgstr "" +msgstr "실행 중이 아닙니다" msgid "Running" -msgstr "" +msgstr "실행 중입니다" msgid "Paused" -msgstr "" +msgstr "일시 중지되었습니다" msgid "Waiting" -msgstr "" +msgstr "대기 중입니다" msgid "Powered Off" -msgstr "" +msgstr "전원이 꺼져 있습니다" msgid "%n running" -msgstr "" +msgstr "%n 실행 중입니다" msgid "%n paused" -msgstr "" +msgstr "%n 일시 중지되었습니다" msgid "%n waiting" -msgstr "" +msgstr "%n 대기 중입니다" msgid "%1 total" -msgstr "" +msgstr "%1 총계" msgid "VMs: %1" -msgstr "" +msgstr "가상 머신: %1" msgid "System Directory:" -msgstr "" +msgstr "시스템 디렉토리:" msgid "Choose directory" -msgstr "" +msgstr "디렉토리 선택" msgid "Choose configuration file" -msgstr "" +msgstr "구성 파일 선택" msgid "86Box configuration files (86box.cfg)" -msgstr "" +msgstr "86Box 구성 파일 (86box.cfg)" msgid "Configuration read failed" -msgstr "" +msgstr "구성 읽기 실패" msgid "Unable to open the selected configuration file for reading: %1" -msgstr "" +msgstr "선택한 구성 파일을 읽기 위해 열 수 없습니다: %1" msgid "Use regular expressions in search box" -msgstr "" +msgstr "검색 상자에 정규 표현식 사용" msgid "%1 machine(s) are currently active. Are you sure you want to exit the VM manager anyway?" -msgstr "" +msgstr "현재 %1대의 머신이 활성화되어 있습니다. 가상 머신 관리자를 종료하시겠습니까?" msgid "Add new system wizard" -msgstr "" +msgstr "새 시스템 마법사 추가" msgid "Introduction" -msgstr "" +msgstr "서론" msgid "This will help you add a new system to 86Box." -msgstr "" +msgstr "이것은 86Box에 새로운 시스템을 추가하는 데 도움이 될 것입니다." msgid "New configuration" -msgstr "" +msgstr "새로운 구성" msgid "Complete" -msgstr "" +msgstr "완료" msgid "The wizard will now launch the configuration for the new system." -msgstr "" +msgstr "마법사가 이제 새로운 시스템의 설정을 시작합니다." msgid "Use existing configuration" -msgstr "" +msgstr "기존 구성 사용" msgid "Type some notes here" -msgstr "" +msgstr "여기 메모를 입력하세요" msgid "Paste the contents of the existing configuration file into the box below." -msgstr "" +msgstr "기존 구성 파일의 내용을 아래 상자에 붙여넣으세요." msgid "Load configuration from file" -msgstr "" +msgstr "파일에서 구성 로드" msgid "System name" -msgstr "" +msgstr "시스템 이름" msgid "System name:" -msgstr "" +msgstr "시스템 이름:" msgid "System name cannot contain certain characters" -msgstr "" +msgstr "시스템 이름에는 특정 문자를 포함할 수 없습니다" msgid "System name already exists" -msgstr "" +msgstr "시스템 이름이 이미 존재합니다" msgid "Please enter a directory for the system" -msgstr "" +msgstr "시스템을 위한 디렉토리를 입력해 주세요" msgid "Directory does not exist" -msgstr "" +msgstr "디렉토리가 존재하지 않습니다" msgid "A new directory for the system will be created in the selected directory above" -msgstr "" +msgstr "위에서 선택한 디렉토리에 시스템용 새로운 디렉토리가 생성됩니다" msgid "System location:" -msgstr "" +msgstr "시스템 위치:" msgid "System name and location" -msgstr "" +msgstr "시스템 이름 및 위치" msgid "Enter the name of the system and choose the location" -msgstr "" +msgstr "시스템 이름을 입력하고 위치를 선택하세요" msgid "Enter the name of the system" -msgstr "" +msgstr "시스템 이름을 입력하세요" msgid "Please enter a system name" -msgstr "" +msgstr "시스템 이름을 입력해 주세요" msgid "Display name (optional):" -msgstr "" +msgstr "표시 이름 (선택 사항):" msgid "Display name:" -msgstr "" +msgstr "표시 이름:" msgid "Set display name" -msgstr "" +msgstr "표시 이름 설정" msgid "Enter the new display name (blank to reset)" -msgstr "" +msgstr "새 표시 이름을 입력하세요 (비워두면 초기화됩니다)" msgid "Change &display name..." -msgstr "" +msgstr "표시 이름 변경(&D)..." msgid "Context Menu" -msgstr "" +msgstr "컨텍스트 메뉴" msgid "&Open folder..." -msgstr "" +msgstr "폴더 열기(&O)..." msgid "Open p&rinter tray..." -msgstr "" +msgstr "프린터 트레이를 열기(&R)..." msgid "Set &icon..." -msgstr "" +msgstr "아이콘 설정(&I)..." msgid "Select an icon" -msgstr "" +msgstr "아이콘을 선택하세요" msgid "C&lone..." -msgstr "" +msgstr "클론(&L)..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" -msgstr "" +msgstr "가상 머신 \"%1\" (%2)는 다음으로 복제됩니다:" msgid "Directory %1 already exists" -msgstr "" +msgstr "%1 디렉토리가 이미 존재합니다" msgid "You cannot use the following characters in the name: %1" -msgstr "" +msgstr "이름에 다음 문자를 사용할 수 없습니다: %1" msgid "Clone" -msgstr "" +msgstr "클론" msgid "Failed to create directory for cloned VM" -msgstr "" +msgstr "클론된 가상 머신을 위한 디렉토리를 생성하지 못했습니다" msgid "Failed to clone VM." -msgstr "" +msgstr "가상 머신 복제에 실패했습니다." msgid "Directory in use" -msgstr "" +msgstr "사용 중인 디렉토리" msgid "The selected directory is already in use. Please select a different directory." -msgstr "" +msgstr "선택한 디렉토리가 이미 사용 중입니다. 다른 디렉토리를 선택해 주시기 바랍니다." msgid "Create directory failed" -msgstr "" +msgstr "디렉토리 생성 실패" msgid "Unable to create the directory for the new system" -msgstr "" +msgstr "새 시스템용 디렉토리를 생성할 수 없습니다" msgid "Configuration write failed" -msgstr "" +msgstr "구성 쓰기 실패" msgid "Unable to open the configuration file at %1 for writing" -msgstr "" +msgstr "%1에서 구성 파일을 쓰기 위해 열 수 없습니다" msgid "Error adding system" -msgstr "" +msgstr "시스템 추가 오류" msgid "Remove directory failed" -msgstr "" +msgstr "디렉토리 제거에 실패했습니다" msgid "Some files in the machine's directory were unable to be deleted. Please delete them manually." -msgstr "" +msgstr "기계 디렉토리 내의 일부 파일이 삭제되지 않았습니다. 해당 파일을 수동으로 삭제해 주시기 바랍니다." msgid "Build" -msgstr "" +msgstr "빌드" msgid "Version" -msgstr "" +msgstr "버전" msgid "An update to 86Box is available: %1 %2" -msgstr "" +msgstr "86Box의 업데이트가 가능합니다: %1 %2" msgid "An error has occurred while checking for updates: %1" -msgstr "" +msgstr "업데이트 확인 중 오류가 발생했습니다: %1" msgid "An update to 86Box is available!" -msgstr "" +msgstr "86Box의 업데이트가 제공됩니다!" msgid "Warning" -msgstr "" +msgstr "경고" msgid "&Kill" -msgstr "" +msgstr "강제 종료(&K)" msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?" -msgstr "" +msgstr "가상 머신을 강제 종료하면 데이터 손실이 발생할 수 있습니다. 86Box 프로세스가 멈춘 경우에만 이 작업을 수행하십시오.\n\n가상 머신 \"%1\"을 정말로 종료하시겠습니까?" msgid "&Delete" -msgstr "" +msgstr "삭제(&D)" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "" +msgstr "정말 가상 머신 \"%1\"과 모든 파일을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다!" msgid "Show &config file" -msgstr "" +msgstr "구성 파일 표시(&C)" msgid "No screenshot" -msgstr "" +msgstr "스크린샷 없음" msgid "Search" -msgstr "" +msgstr "검색" msgid "Searching for VMs..." -msgstr "" +msgstr "가상 머신을 검색 중입니다..." msgid "Found %1" -msgstr "" +msgstr "%1 발견됨" msgid "System" -msgstr "" +msgstr "시스템" msgid "Storage" -msgstr "" +msgstr "장치" msgid "Disk %1: " -msgstr "" +msgstr "디스크 %1: " msgid "No disks" -msgstr "" +msgstr "디스크 없음" msgid "Audio" -msgstr "" +msgstr "오디오" msgid "Audio:" -msgstr "" +msgstr "오디오:" msgid "ACPI shutdown" msgstr "ACPI 종료" @@ -1489,7 +1489,7 @@ msgid "CD-ROM %1 (%2): %3" msgstr "CD-ROM %1 (%2): %3" msgid "&CD-ROM %1 (%2): %3" -msgstr "" +msgstr "CD-ROM(&C) %1 (%2): %3" msgid "160 KB" msgstr "160 KB" @@ -1675,7 +1675,7 @@ msgid "Null Driver" msgstr "Null 드라이버" msgid "NIC:" -msgstr "" +msgstr "NIC:" msgid "NIC %1 (%2) %3" msgstr "NIC %1 (%2) %3" @@ -1747,7 +1747,7 @@ msgid "MiB" msgstr "MiB" msgid "GiB" -msgstr "" +msgstr "GiB" msgid "Network Card #1" msgstr "네트워크 카드 1" @@ -1795,22 +1795,22 @@ msgid "Renderer &options..." msgstr "렌더러 옵션...(&O)" msgid "PC/XT Keyboard" -msgstr "" +msgstr "PC/XT 키보드" msgid "AT Keyboard" -msgstr "" +msgstr "AT 키보드" msgid "AX Keyboard" -msgstr "" +msgstr "AX 키보드" msgid "PS/2 Keyboard" -msgstr "" +msgstr "PS/2 키보드" msgid "PS/55 Keyboard" -msgstr "" +msgstr "PS/55 키보드" msgid "Keys" -msgstr "" +msgstr "키" msgid "Logitech/Microsoft Bus Mouse" msgstr "로지텍/마이크로소프트 버스 마우스" @@ -1822,28 +1822,28 @@ msgid "Mouse Systems Serial Mouse" msgstr "마우스 시스템 시리얼 마우스" msgid "Mouse Systems Bus Mouse" -msgstr "" +msgstr "마우스 시스템 버스 마우스" msgid "Microsoft Serial Mouse" -msgstr "마이크로소프트 직렬 마우스" +msgstr "마이크로소프트 시리얼 마우스" msgid "Microsoft Serial BallPoint" -msgstr "" +msgstr "마이크로소프트 볼펜 시리얼 마우스" msgid "Logitech Serial Mouse" -msgstr "로지텍 직렬 마우스" +msgstr "로지텍 시리얼 마우스" msgid "PS/2 Mouse" msgstr "PS/2 마우스" msgid "PS/2 QuickPort Mouse" -msgstr "" +msgstr "PS/2 QuickPort 마우스" msgid "3M MicroTouch (Serial)" msgstr "3M 마이크로터치(직렬)" msgid "Default Baud rate" -msgstr "" +msgstr "기본 보드 속도" msgid "[COM] Standard Hayes-compliant Modem" msgstr "[COM] 표준 헤이즈 호환 모뎀" @@ -1870,52 +1870,52 @@ msgid "MIDI Input Device" msgstr "미디 입력 장치" msgid "BIOS file" -msgstr "" +msgstr "BIOS 파일" msgid "BIOS file (ROM #1)" -msgstr "" +msgstr "BIOS 파일 (ROM 1)" msgid "BIOS file (ROM #2)" -msgstr "" +msgstr "BIOS 파일 (ROM 2)" msgid "BIOS file (ROM #3)" -msgstr "" +msgstr "BIOS 파일 (ROM 3)" msgid "BIOS file (ROM #4)" -msgstr "" +msgstr "BIOS 파일 (ROM 4)" msgid "BIOS address" msgstr "BIOS 주소" msgid "BIOS address (ROM #1)" -msgstr "" +msgstr "BIOS 주소 (ROM 1)" msgid "BIOS address (ROM #2)" -msgstr "" +msgstr "BIOS 주소 (ROM 2)" msgid "BIOS address (ROM #3)" -msgstr "" +msgstr "BIOS 주소 (ROM 3)" msgid "BIOS address (ROM #4)" -msgstr "" +msgstr "BIOS 주소 (ROM 4)" msgid "Enable BIOS extension ROM Writes" msgstr "BIOS 확장 ROM 쓰기 활성화" msgid "Enable BIOS extension ROM Writes (ROM #1)" -msgstr "" +msgstr "BIOS 확장 ROM 쓰기 활성화 (ROM 1)" msgid "Enable BIOS extension ROM Writes (ROM #2)" -msgstr "" +msgstr "BIOS 확장 ROM 쓰기 활성화 (ROM 2)" msgid "Enable BIOS extension ROM Writes (ROM #3)" -msgstr "" +msgstr "BIOS 확장 ROM 쓰기 활성화 (ROM 3)" msgid "Enable BIOS extension ROM Writes (ROM #4)" -msgstr "" +msgstr "BIOS 확장 ROM 쓰기 활성화 (ROM 4)" msgid "Linear framebuffer base" -msgstr "" +msgstr "선형 프레임버퍼의 기본 주소" msgid "Address" msgstr "주소" @@ -1924,25 +1924,25 @@ msgid "IRQ" msgstr "IRQ" msgid "Serial port IRQ" -msgstr "" +msgstr "시리얼 포트 IRQ" msgid "Parallel port IRQ" -msgstr "" +msgstr "병렬 포트 IRQ" msgid "BIOS Revision" msgstr "BIOS 개정" msgid "BIOS Version" -msgstr "" +msgstr "BIOS 버전" msgid "BIOS Language" -msgstr "" +msgstr "BIOS 언어" msgid "IBM 5161 Expansion Unit" -msgstr "" +msgstr "IBM 5161 확장 유닛" msgid "IBM Cassette Basic" -msgstr "" +msgstr "IBM 카세트 베이직" msgid "Translate 26 -> 17" msgstr "번역 26 -> 17" @@ -1960,16 +1960,16 @@ msgid "BIOS size" msgstr "BIOS 크기" msgid "BIOS size (ROM #1)" -msgstr "" +msgstr "BIOS 크기 (ROM 1)" msgid "BIOS size (ROM #2)" -msgstr "" +msgstr "BIOS 크기 (ROM 2)" msgid "BIOS size (ROM #3)" -msgstr "" +msgstr "BIOS 크기 (ROM 3)" msgid "BIOS size (ROM #4)" -msgstr "" +msgstr "BIOS 크기 (ROM 4)" msgid "Map C0000-C7FFF as UMB" msgstr "C0000-C7FFF를 UMB로 매핑하기" @@ -2047,7 +2047,7 @@ msgid "Interpolation Method" msgstr "보간 방법" msgid "Dynamic Sample Loading" -msgstr "" +msgstr "샘플의 동적 로딩" msgid "Reverb Output Gain" msgstr "리버브 출력의 게인" @@ -2137,10 +2137,10 @@ msgid "Enable Game port" msgstr "게임 포트 사용" msgid "SID Model" -msgstr "" +msgstr "SID 모델" msgid "SID Filter Strength" -msgstr "" +msgstr "SID 필터 강도" msgid "Surround module" msgstr "서라운드 모듈" @@ -2155,10 +2155,10 @@ msgid "SB Address" msgstr "SB 주소" msgid "Adlib Address" -msgstr "" +msgstr "Adlib 주소" msgid "Use EEPROM setting" -msgstr "" +msgstr "EEPROM 설정 사용" msgid "WSS IRQ" msgstr "WSS IRQ" @@ -2245,13 +2245,13 @@ msgid "Blend" msgstr "블렌드" msgid "Font" -msgstr "" +msgstr "폰트" msgid "Bilinear filtering" msgstr "이중선형 필터링" msgid "Video chroma-keying" -msgstr "" +msgstr "비디오 크로마 키잉" msgid "Dithering" msgstr "디더링" @@ -2296,31 +2296,31 @@ msgid "EMS mode" msgstr "EMS 모드" msgid "EMS Address" -msgstr "" +msgstr "EMS 주소" msgid "EMS 1 Address" -msgstr "" +msgstr "EMS 1 주소" msgid "EMS 2 Address" -msgstr "" +msgstr "EMS 2 주소" msgid "EMS Memory Size" -msgstr "" +msgstr "EMS 메모리 용량" msgid "EMS 1 Memory Size" -msgstr "" +msgstr "EMS 1 메모리 용량" msgid "EMS 2 Memory Size" -msgstr "" +msgstr "EMS 2 메모리 용량" msgid "Enable EMS" -msgstr "" +msgstr "EMS 활성화" msgid "Enable EMS 1" -msgstr "" +msgstr "EMS 1 활성화" msgid "Enable EMS 2" -msgstr "" +msgstr "EMS 2 활성화" msgid "Address for > 2 MB" msgstr "2MB 이상의 주소" @@ -2380,7 +2380,7 @@ msgid "Five + Wheel" msgstr "5개 + 휠" msgid "Five + 2 Wheels" -msgstr "" +msgstr "5개 + 2휠" msgid "A3 - SMT2 Serial / SMT3(R)V" msgstr "A3 - SMT2 직렬/SMT3(R)V" @@ -2446,7 +2446,7 @@ msgid "Composite" msgstr "합성" msgid "True color" -msgstr "" +msgstr "진정한 색상" msgid "Old" msgstr "Old" @@ -2482,13 +2482,13 @@ msgid "Linear interpolation" msgstr "선형 보간" msgid "Has secondary 8x8 character set" -msgstr "" +msgstr "8x8 보조 문자 집합" msgid "Has Quadcolor II daughter board" -msgstr "" +msgstr "쿼드컬러 II 딸보드" msgid "Alternate monochrome contrast" -msgstr "" +msgstr "대체 단색 대비" msgid "128 KB" msgstr "128 KB" @@ -2524,7 +2524,7 @@ msgid "Gray" msgstr "회색" msgid "Grayscale" -msgstr "" +msgstr "그레이스케일" msgid "Color" msgstr "색상" @@ -2542,10 +2542,10 @@ msgid "Bochs latest" msgstr "Bochs 최신 정보" msgid "Apply overscan deltas" -msgstr "" +msgstr "오버스캔 델타 적용" msgid "Mono Interlaced" -msgstr "" +msgstr "모노 인터레이스" msgid "Mono Non-Interlaced" msgstr "모노 비인터레이스" @@ -2554,13 +2554,13 @@ msgid "Color Interlaced" msgstr "컬러 인터레이스" msgid "Color Non-Interlaced" -msgstr "비인터레이스 컬러" +msgstr "컬러 비인터레이스" msgid "3Dfx Voodoo Graphics" msgstr "3Dfx 부두 그래픽" msgid "3Dfx Voodoo 2" -msgstr "" +msgstr "3Dfx Voodoo 2" msgid "Obsidian SB50 + Amethyst (2 TMUs)" msgstr "옵시디언 SB50 + 자수정(TMU 2개)" @@ -2632,7 +2632,7 @@ msgid "Named Pipe (Server)" msgstr "네임드 파이프(서버)" msgid "Named Pipe (Client)" -msgstr "" +msgstr "네임드 파이프(클라이언트)" msgid "Host Serial Passthrough" msgstr "호스트 직렬 포트 패스스루" @@ -2650,28 +2650,28 @@ msgid "High performance impact" msgstr "성능에 미치는 영향" msgid "[Generic] RAM Disk (max. speed)" -msgstr "[Generic] RAM 디스크(최대 속도)" +msgstr "[일반] RAM 디스크(최대 속도)" msgid "[Generic] 1989 (3500 RPM)" -msgstr "" +msgstr "[일반] 1989 (3500 RPM)" msgid "[Generic] 1992 (3600 RPM)" -msgstr "" +msgstr "[일반] 1992 (3600 RPM)" msgid "[Generic] 1994 (4500 RPM)" -msgstr "" +msgstr "[일반] 1994 (4500 RPM)" msgid "[Generic] 1996 (5400 RPM)" -msgstr "" +msgstr "[일반] 1996 (5400 RPM)" msgid "[Generic] 1997 (5400 RPM)" -msgstr "" +msgstr "[일반] 1997 (5400 RPM)" msgid "[Generic] 1998 (5400 RPM)" -msgstr "" +msgstr "[일반] 1998 (5400 RPM)" msgid "[Generic] 2000 (7200 RPM)" -msgstr "" +msgstr "[일반] 2000 (7200 RPM)" msgid "IBM 8514/A clone (ISA)" msgstr "IBM 8514/A 클론(ISA)" @@ -2680,10 +2680,10 @@ msgid "Vendor" msgstr "제조사" msgid "30 Hz (JMP2 = 1)" -msgstr "" +msgstr "30 Hz (JMP2 = 1)" msgid "60 Hz (JMP2 = 2)" -msgstr "" +msgstr "60 Hz (JMP2 = 2)" msgid "Generic PC/XT Memory Expansion" msgstr "일반 PC/XT 메모리 확장 카드" @@ -2698,241 +2698,241 @@ msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for t msgstr "일반 ESC/P 도트 매트릭스 프린터의 에뮬레이션을 사용하려면 \"roms/printer/fonts\" 디렉터리에 있는 트루타입 글꼴이 필요합니다." msgid "Inhibit multimedia keys" -msgstr "" +msgstr "멀티미디어 키 사용 금지" msgid "Ask for confirmation before saving settings" -msgstr "" +msgstr "설정을 저장하기 전에 확인을 요청합니다" msgid "Ask for confirmation before hard resetting" -msgstr "" +msgstr "하드 리셋을 실행하기 전에 확인을 요청합니다" msgid "Ask for confirmation before quitting" -msgstr "" +msgstr "종료하기 전에 확인을 요청합니다" msgid "Options" -msgstr "" +msgstr "옵션" msgid "Model" -msgstr "" +msgstr "모델" msgid "Model:" -msgstr "" +msgstr "모델:" msgid "Failed to initialize Vulkan renderer." -msgstr "" +msgstr "Vulkan 렌더러 초기화 실패." msgid "GLSL Error" -msgstr "" +msgstr "GLSL 오류" msgid "Could not load shader: %1" -msgstr "" +msgstr "셰이더를 로드할 수 없습니다: %1" msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "" +msgstr "OpenGL 버전 3.0 이상이 필요합니다. 현재 GLSL 버전은 %1.%2입니다" msgid "Could not load texture: %1" -msgstr "" +msgstr "텍스처를 로드할 수 없습니다: %1" msgid "Could not compile shader:\n\n%1" -msgstr "" +msgstr "셰이더를 컴파일할 수 없습니다:\n\n%1" msgid "Program not linked:\n\n%1" -msgstr "" +msgstr "프로그램이 연결되지 않았습니다:\n\n%1" msgid "Shader Manager" -msgstr "" +msgstr "셰이더 관리자" msgid "Shader Configuration" -msgstr "" +msgstr "셰이더 구성" msgid "Add" -msgstr "" +msgstr "추가" msgid "Move up" -msgstr "" +msgstr "위쪽으로 이동" msgid "Move down" -msgstr "" +msgstr "아래로 이동" msgid "Could not load file %1" -msgstr "" +msgstr "파일 %1을 로드할 수 없습니다" msgid "Key Bindings:" -msgstr "" +msgstr "키 바인딩:" msgid "Action" -msgstr "" +msgstr "행동" msgid "Keybind" -msgstr "" +msgstr "키 바인딩" msgid "Clear binding" -msgstr "" +msgstr "바인딩 해제" msgid "Bind" -msgstr "" +msgstr "묶습니다" msgid "Bind Key" -msgstr "" +msgstr "키를 묶습니다" msgid "Enter key combo:" -msgstr "" +msgstr "키 조합을 입력하세요:" msgid "Bind conflict" -msgstr "" +msgstr "바인딩 충돌" msgid "This key combo is already in use." -msgstr "" +msgstr "이 키 조합은 이미 사용 중입니다." msgid "Send Control+Alt+Del" -msgstr "" +msgstr "Ctrl+Alt+Del 보내기" msgid "Send Control+Alt+Escape" -msgstr "" +msgstr "Ctrl+Alt+Esc 보내기" msgid "Toggle fullscreen" -msgstr "" +msgstr "전체 화면 모드 전환" msgid "Screenshot" -msgstr "" +msgstr "스크린샷" msgid "Release mouse pointer" -msgstr "" +msgstr "마우스 포인터를 해제합니다" msgid "Toggle pause" -msgstr "" +msgstr "일시정지 토글" msgid "Toggle mute" -msgstr "" +msgstr "음소거 켜기/끄기" msgid "Text files" -msgstr "" +msgstr "텍스트 파일" msgid "ROM files" -msgstr "" +msgstr "ROM 파일" msgid "SoundFont files" -msgstr "" +msgstr "SoundFont 파일" msgid "Local Switch" -msgstr "" +msgstr "로컬 스위치" msgid "Remote Switch" -msgstr "" +msgstr "원격 스위치" msgid "Switch:" -msgstr "" +msgstr "스위치:" msgid "Hub Mode" -msgstr "" +msgstr "허브 모드" msgid "Hostname:" -msgstr "" +msgstr "호스트 이름:" msgid "ISA RAM:" -msgstr "" +msgstr "ISA RAM:" msgid "ISA ROM:" -msgstr "" +msgstr "ISA ROM:" msgid "&Wipe NVRAM" -msgstr "" +msgstr "NVRAM 지우기(&W)" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "" +msgstr "이 작업은 가상 머신에 위치한 \"nvr\" 하위 디렉토리 내의 모든 NVRAM(및 관련) 파일을 삭제합니다. 해당 가상 머신의 BIOS 설정(및 가상 머신 내의 다른 장치 설정)을 다시 구성해야 할 수 있습니다.\n\n가상 머신 \"%1\"의 모든 NVRAM 내용을 삭제하시겠습니까?" msgid "Success" -msgstr "" +msgstr "성공" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "" +msgstr "가상 머신 \"%1\"의 NVRAM 내용을 성공적으로 지웠습니다" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "" +msgstr "가상 머신 \"%1\"의 NVRAM 내용을 지우려고 시도하는 과정에서 오류가 발생했습니다" msgid "%1 VM Manager" -msgstr "" +msgstr "%1 가상 머신 관리자" msgid "%n disk(s)" -msgstr "" +msgstr "%n 디스크" msgid "Unknown Status" -msgstr "" +msgstr "알 수 없는 상태" msgid "No Machines Found!" -msgstr "" +msgstr "기계가 없습니다!" msgid "Check for updates on startup" -msgstr "" +msgstr "시작 시 업데이트 확인" msgid "Unable to determine release information" -msgstr "" +msgstr "출시 정보를 확인할 수 없습니다" msgid "There was an error checking for updates:\n\n%1\n\nPlease try again later." -msgstr "" +msgstr "업데이트 확인 중 오류가 발생했습니다:\n\n%1\n\n나중에 다시 시도해 주시기 바랍니다." msgid "Update check complete" -msgstr "" +msgstr "업데이트 확인 완료" msgid "stable" -msgstr "" +msgstr "안정" msgid "beta" -msgstr "" +msgstr "베타" msgid "You are running the latest %1 version of 86Box: %2" -msgstr "" +msgstr "현재 86Box의 최신 %1 버전을 실행 중입니다: %2" msgid "version" -msgstr "" +msgstr "버전" msgid "build" -msgstr "" +msgstr "빌드" msgid "You are currently running version %1." -msgstr "" +msgstr "현재 %1 버전을 실행 중입니다." msgid "Version %1 is now available." -msgstr "" +msgstr "버전 %1이 이제 사용 가능합니다." msgid "You are currently running build %1." -msgstr "" +msgstr "현재 %1 빌드를 실행 중입니다." msgid "Build %1 is now available." -msgstr "" +msgstr "빌드 %1이 이제 사용 가능합니다." msgid "Would you like to visit the download page?" -msgstr "" +msgstr "다운로드 페이지로 이동하시겠습니까?" msgid "Visit download page" -msgstr "" +msgstr "다운로드 페이지 방문" msgid "Update check" -msgstr "" +msgstr "업데이트 확인" msgid "Checking for updates..." -msgstr "" +msgstr "업데이트 확인 중..." msgid "86Box Update" -msgstr "" +msgstr "86Box 업데이트" msgid "Release notes:" -msgstr "" +msgstr "릴리스 노트:" msgid "%1 Hz" msgstr "%1 Hz" msgid "Virtual machine crash" -msgstr "" +msgstr "가상 머신의 예상치 못한 종료" msgid "The virtual machine \"%1\"'s process has unexpectedly terminated with exit code %2." -msgstr "" +msgstr "가상 머신 \"%1\"의 프로세스가 예상치 않게 종료되었으며 종료 코드는 %2입니다." msgid "The system will not be added." -msgstr "" +msgstr "시스템은 추가되지 않을 것입니다." msgid "&Update mouse every CPU frame" -msgstr "" +msgstr "마우스를 각 CPU 프레임마다 업데이트합니다(&U)" msgid "Hue" msgstr "색조" diff --git a/src/sio/sio_ali5123.c b/src/sio/sio_ali5123.c index a6cd12554..5dad42252 100644 --- a/src/sio/sio_ali5123.c +++ b/src/sio/sio_ali5123.c @@ -530,7 +530,7 @@ ali5123_init(const device_t *info) io_sethandler(FDC_PRIMARY_ADDR, 0x0002, ali5123_read, NULL, NULL, ali5123_write, NULL, NULL, dev); - device_add(&kbc_ps2_ali_pci_device); + device_add_params(&kbc_at_device, (void *) KBC_VEN_ALI); return dev; } diff --git a/src/sio/sio_fdc37c67x.c b/src/sio/sio_fdc37c67x.c index 9b9e40903..943b78b21 100644 --- a/src/sio/sio_fdc37c67x.c +++ b/src/sio/sio_fdc37c67x.c @@ -764,20 +764,20 @@ fdc37c67x_init(const device_t *info) switch (dev->kbc_type) { case FDC37XXX1: - dev->kbc = device_add(&kbc_ps2_compaq_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ); break; case FDC37XXX2: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; case FDC37XXX3: default: - dev->kbc = device_add(&kbc_ps2_pci_device); + dev->kbc = device_add(&kbc_at_device); break; case FDC37XXX5: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800)); break; case FDC37XXX7: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_fdc37c93x.c b/src/sio/sio_fdc37c93x.c index d5cd72c67..47e73ebae 100644 --- a/src/sio/sio_fdc37c93x.c +++ b/src/sio/sio_fdc37c93x.c @@ -1919,20 +1919,20 @@ fdc37c93x_init(const device_t *info) switch (dev->kbc_type) { case FDC37XXX1: - dev->kbc = device_add(&kbc_ps2_compaq_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ); break; case FDC37XXX2: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; case FDC37XXX3: default: - dev->kbc = device_add(&kbc_ps2_pci_device); + dev->kbc = device_add(&kbc_at_device); break; case FDC37XXX5: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800)); break; case FDC37XXX7: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_fdc37m60x.c b/src/sio/sio_fdc37m60x.c index 1ffa0f16d..e6470a6ea 100644 --- a/src/sio/sio_fdc37m60x.c +++ b/src/sio/sio_fdc37m60x.c @@ -655,20 +655,20 @@ fdc37m60x_init(const device_t *info) switch (dev->kbc_type) { case FDC37XXX1: - dev->kbc = device_add(&kbc_ps2_compaq_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ); break; case FDC37XXX2: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; case FDC37XXX3: default: - dev->kbc = device_add(&kbc_ps2_pci_device); + dev->kbc = device_add(&kbc_at_device); break; case FDC37XXX5: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800)); break; case FDC37XXX7: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_it86x1f.c b/src/sio/sio_it86x1f.c index 4c97f481a..324914355 100644 --- a/src/sio/sio_it86x1f.c +++ b/src/sio/sio_it86x1f.c @@ -32,6 +32,7 @@ #include <86box/fdd.h> #include <86box/fdc.h> #include <86box/gameport.h> +#include <86box/keyboard.h> #include <86box/sio.h> #include <86box/isapnp.h> #include <86box/plat_fallthrough.h> @@ -854,6 +855,9 @@ it86x1f_init(UNUSED(const device_t *info)) dev->unlock_id = it86x1f_models[i].unlock_id; io_sethandler(0x279, 1, NULL, NULL, NULL, it86x1f_write_unlock, NULL, NULL, dev); + if (info->local == ITE_IT8671F) + device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00004800)); + it86x1f_reset(dev); return dev; diff --git a/src/sio/sio_pc87306.c b/src/sio/sio_pc87306.c index 6401a5dd1..604432cfc 100644 --- a/src/sio/sio_pc87306.c +++ b/src/sio/sio_pc87306.c @@ -537,13 +537,13 @@ pc87306_init(UNUSED(const device_t *info)) switch (dev->kbc_type) { case PCX730X_AMI: default: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; case PCX730X_PHOENIX_42: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700)); break; case PCX730X_PHOENIX_42I: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_pc87307.c b/src/sio/sio_pc87307.c index 48c2aeb27..44db6ee9d 100644 --- a/src/sio/sio_pc87307.c +++ b/src/sio/sio_pc87307.c @@ -902,16 +902,16 @@ pc87307_init(const device_t *info) lpt_set_cnfga_readout(dev->lpt, 0x14); switch (info->local & PCX730X_KBC) { - default: case PCX730X_AMI: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + default: + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; /* Optiplex! */ case PCX730X_PHOENIX_42: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700)); break; case PCX730X_PHOENIX_42I: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_pc87309.c b/src/sio/sio_pc87309.c index a6e4a5fa3..415bbbdc4 100644 --- a/src/sio/sio_pc87309.c +++ b/src/sio/sio_pc87309.c @@ -737,16 +737,16 @@ pc87309_init(const device_t *info) lpt_set_cnfga_readout(dev->lpt, 0x14); switch (info->local & PCX730X_KBC) { - default: case PCX730X_AMI: - dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device); + default: + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500)); break; /* Optiplex! */ case PCX730X_PHOENIX_42: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700)); break; case PCX730X_PHOENIX_42I: - dev->kbc = device_add(&kbc_ps2_phoenix_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600)); break; } diff --git a/src/sio/sio_w83877.c b/src/sio/sio_w83877.c index 6ca0a019b..04599b5f8 100644 --- a/src/sio/sio_w83877.c +++ b/src/sio/sio_w83877.c @@ -408,6 +408,8 @@ w83877_write(uint16_t port, uint8_t val, void *priv) case 0x26: if (valxor & 0x0f) w83877_lpt_handler(dev); + if (valxor & 0xf0) + w83877_fdc_handler(dev); break; case 0x27: if (valxor & 0xef) diff --git a/src/sio/sio_w83977.c b/src/sio/sio_w83977.c index 0ac531c9b..a14e50942 100644 --- a/src/sio/sio_w83977.c +++ b/src/sio/sio_w83977.c @@ -1294,10 +1294,10 @@ w83977_init(const device_t *info) switch (dev->kbc_type) { case W83977_AMI: - dev->kbc = device_add(&kbc_ps2_ami_pci_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00004800)); break; case W83977_PHOENIX: - dev->kbc = device_add(&kbc_ps2_phoenix_device); + dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041900)); break; }