Added another Olivetti workaround to the AT keyboard controller code (the rewrite that works just fine even on the Olivetti M240 without any hacks, can't come soon enough!), fixes #1861.
This commit is contained in:
@@ -679,17 +679,21 @@ add_to_kbc_queue_front(atkbd_t *dev, uint8_t val, uint8_t channel, uint8_t stat_
|
|||||||
if (channel == 2) {
|
if (channel == 2) {
|
||||||
if (dev->mem[0] & 0x02)
|
if (dev->mem[0] & 0x02)
|
||||||
picint(0x1000);
|
picint(0x1000);
|
||||||
dev->last_irq = 0x1000;
|
if (kbc_ven != KBC_VEN_OLIVETTI)
|
||||||
|
dev->last_irq = 0x1000;
|
||||||
} else {
|
} else {
|
||||||
if (dev->mem[0] & 0x01)
|
if (dev->mem[0] & 0x01)
|
||||||
picint(2);
|
picint(2);
|
||||||
dev->last_irq = 2;
|
if (kbc_ven != KBC_VEN_OLIVETTI)
|
||||||
|
dev->last_irq = 2;
|
||||||
}
|
}
|
||||||
dev->out = val;
|
dev->out = val;
|
||||||
if (channel == 2)
|
if (channel == 2)
|
||||||
dev->status = (dev->status & ~STAT_IFULL) | (STAT_OFULL | STAT_MFULL) | stat_hi;
|
dev->status = (dev->status & ~STAT_IFULL) | (STAT_OFULL | STAT_MFULL) | stat_hi;
|
||||||
else
|
else
|
||||||
dev->status = (dev->status & ~(STAT_IFULL | STAT_MFULL)) | STAT_OFULL | stat_hi;
|
dev->status = (dev->status & ~(STAT_IFULL | STAT_MFULL)) | STAT_OFULL | stat_hi;
|
||||||
|
if (kbc_ven == KBC_VEN_OLIVETTI)
|
||||||
|
dev->last_irq = 0x0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user