OPTi 5x7 no longer does excess logging, running of timers on the recompiler is now done on every fourth AT KBC port 61h read instead of every 3F4h read, added some safety precautions to io.c to handle the cases where a handler removes itself, implmented the STPC ELCR and refresh control, and fixed the messed up register reading in the PC87307 and PC87309 implementations.
This commit is contained in:
@@ -413,11 +413,11 @@ pc87307_read(uint16_t port, void *priv)
|
||||
ret = dev->cur_reg;
|
||||
else {
|
||||
if (dev->cur_reg >= 0x30)
|
||||
ret = dev->regs[dev->cur_reg];
|
||||
ret = dev->ld_regs[dev->regs[0x07]][dev->cur_reg - 0x30];
|
||||
else if (dev->cur_reg == 0x24)
|
||||
ret = dev->pcregs[dev->regs[0x23]];
|
||||
else
|
||||
ret = dev->ld_regs[dev->regs[0x07]][dev->cur_reg - 0x30];
|
||||
ret = dev->regs[dev->cur_reg];
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -337,9 +337,9 @@ pc87309_read(uint16_t port, void *priv)
|
||||
if (index)
|
||||
ret = dev->cur_reg & 0x1f;
|
||||
else {
|
||||
if (dev->cur_reg == 8)
|
||||
ret = 0x70;
|
||||
else if (dev->cur_reg < 28)
|
||||
if (dev->cur_reg >= 0x30)
|
||||
ret = dev->ld_regs[dev->regs[0x07]][dev->cur_reg - 0x30];
|
||||
else
|
||||
ret = dev->regs[dev->cur_reg];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user