Merge pull request #6110 from win2kgamer/machine-fixes-2

More machine and SIO fixes
This commit is contained in:
Miran Grča
2025-08-31 12:31:29 +02:00
committed by GitHub
4 changed files with 24 additions and 22 deletions

View File

@@ -277,7 +277,7 @@ machine_at_ms4145_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&ali1489_device);
device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_89));
device_add_params(&w837x7_device, (void *) (W83787F | W837X7_KEY_88));
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);

View File

@@ -9371,7 +9371,7 @@ const machine_t machines[] = {
.max_multi = 0
},
.bus_flags = MACHINE_PCI,
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
.flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
.ram = {
.min = 1024,
.max = 65536,

View File

@@ -108,25 +108,27 @@ um866x_lpt_handler(um866x_t *dev)
int enabled = (dev->regs[0] & 0x08);
lpt_port_remove(dev->lpt);
switch(dev->regs[1] & 0xc0) {
case 0x00:
enabled = 0;
break;
case 0x40:
lpt_set_epp(dev->lpt, 1);
lpt_set_ecp(dev->lpt, 0);
lpt_set_ext(dev->lpt, 0);
break;
case 0x80:
lpt_set_epp(dev->lpt, 0);
lpt_set_ecp(dev->lpt, 0);
lpt_set_ext(dev->lpt, 1);
break;
case 0xc0:
lpt_set_epp(dev->lpt, 0);
lpt_set_ecp(dev->lpt, 1);
lpt_set_ext(dev->lpt, 0);
break;
if (dev->max_reg != 0x00) {
switch(dev->regs[1] & 0xc0) {
case 0x00:
enabled = 0;
break;
case 0x40:
lpt_set_epp(dev->lpt, 1);
lpt_set_ecp(dev->lpt, 0);
lpt_set_ext(dev->lpt, 0);
break;
case 0x80:
lpt_set_epp(dev->lpt, 0);
lpt_set_ecp(dev->lpt, 0);
lpt_set_ext(dev->lpt, 1);
break;
case 0xc0:
lpt_set_epp(dev->lpt, 0);
lpt_set_ecp(dev->lpt, 1);
lpt_set_ext(dev->lpt, 0);
break;
}
}
if (enabled) {
switch ((dev->regs[1] >> 3) & 0x01) {

View File

@@ -390,7 +390,7 @@ w837x7_reset(w837x7_t *dev)
if (dev->has_ide == 0x02)
dev->regs[0x00] = 0x90;
else if (dev->has_ide == 0x01)
else
dev->regs[0x00] = 0xd0;
if (dev->ide_start)