AT KBC fixes for the Dell.

This commit is contained in:
OBattler
2025-05-18 08:17:04 +02:00
parent 7b9b2bc10d
commit 196289d6e5

View File

@@ -1088,12 +1088,24 @@ write64_generic(void *priv, uint8_t val)
/* (B0 or F0) | (0x04 or 0x0c) */
kbc_delay_to_ob(dev, dev->p1 | fixed_bits, 0, 0x00);
} else if (((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) && ((dev->flags & KBC_TYPE_MASK) < KBC_TYPE_GREEN)) {
/* (B0 or F0) | (0x08 or 0x0c) */
uint8_t p1_out = ((dev->p1 | fixed_bits) & 0xf0) |
(((dev->flags & KBC_VEN_MASK) == KBC_VEN_ACER) ? 0x08 : 0x0c);
if (!strcmp(machine_get_internal_name(), "alfredo"))
p1_out &= 0xef;
kbc_delay_to_ob(dev, p1_out, 0, 0x00);
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);
*/
uint8_t p1 = 0x24;
kbc_delay_to_ob(dev, p1, 0, 0x01);
} else {
/* (B0 or F0) | (0x08 or 0x0c) */
uint8_t p1_out = ((dev->p1 | fixed_bits) & 0xf0) |
(((dev->flags & KBC_VEN_MASK) == KBC_VEN_ACER) ? 0x08 : 0x0c);
if (!strcmp(machine_get_internal_name(), "alfredo"))
p1_out &= 0xef;
kbc_delay_to_ob(dev, p1_out, 0, 0x00);
}
} else if (kbc_ven == KBC_VEN_COMPAQ)
kbc_delay_to_ob(dev, dev->p1 | (hasfpu ? 0x00 : 0x04), 0, 0x00);
else