The Super I/O chip keyboard controllers and a compile fix to the PS/55 machines.

This commit is contained in:
OBattler
2025-08-23 02:22:08 +02:00
parent 6de179581d
commit e34dc90cd4
8 changed files with 33 additions and 27 deletions

View File

@@ -1793,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_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
ps2.planar_read = ps55_model_50t_read;
ps2.planar_write = ps55_model_50tv_write;
@@ -1837,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_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
ps2.planar_read = ps55_model_50v_read;
ps2.planar_write = ps55_model_50tv_write;
@@ -1889,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;
@@ -1914,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;
@@ -1939,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;
}

View File

@@ -767,17 +767,17 @@ fdc37c67x_init(const device_t *info)
dev->kbc = device_add(&kbc_ps2_compaq_device);
break;
case FDC37XXX2:
dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
dev->kbc = device_add_params(&kbc_ps2_ami_device, (void *) 0x00003500);
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_ps2_pci_device);
dev->kbc = device_add(&kbc_ps2_device);
break;
case FDC37XXX5:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013800);
break;
case FDC37XXX7:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}

View File

@@ -1922,17 +1922,17 @@ fdc37c93x_init(const device_t *info)
dev->kbc = device_add(&kbc_ps2_compaq_device);
break;
case FDC37XXX2:
dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
dev->kbc = device_add_params(&kbc_ps2_ami_device, (void *) 0x00003500);
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_ps2_pci_device);
dev->kbc = device_add(&kbc_ps2_device);
break;
case FDC37XXX5:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013800);
break;
case FDC37XXX7:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}

View File

@@ -658,17 +658,17 @@ fdc37m60x_init(const device_t *info)
dev->kbc = device_add(&kbc_ps2_compaq_device);
break;
case FDC37XXX2:
dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
dev->kbc = device_add_params(&kbc_ps2_ami_device, (void *) 0x00003500);
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_ps2_pci_device);
dev->kbc = device_add(&kbc_ps2_device);
break;
case FDC37XXX5:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013800);
break;
case FDC37XXX7:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}

View File

@@ -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_ps2_ami_device, (void *) 0x00004800);
it86x1f_reset(dev);
return dev;

View File

@@ -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_ps2_ami_device, (void *) 0x00003500);
break;
case PCX730X_PHOENIX_42:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013700);
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}

View File

@@ -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_ps2_ami_device, (void *) 0x00003500);
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013700);
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}

View File

@@ -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_ps2_ami_device, (void *) 0x00003500);
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
dev->kbc = device_add(&kbc_ps2_phoenix_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00013700);
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
dev->kbc = device_add_params(&kbc_ps2_phoenix_device, (void *) 0x00041600);
break;
}