Assorted ACC 2036 and OAK OTi-037 fixes, fixes #5697.

This commit is contained in:
OBattler
2025-06-25 04:45:40 +02:00
parent 6a8eaf507c
commit 2e4eed0ac0
3 changed files with 15 additions and 7 deletions

View File

@@ -158,7 +158,7 @@ acc2036_recalc(acc2036_t *dev)
/* 0E0000-0FFFFF */
master_write = dev->regs[0x02] & 0x02;
master_read = dev->regs[0x02] & 0x01;
bit = (((i - 8) >> 2) + 2);
bit = ((i - 8) >> 2);
val = dev->regs[0x0c] & (1 << bit);
if (i >= 20) {
ew_flag = MEM_WRITE_EXTANY;

View File

@@ -1817,8 +1817,6 @@ read_p1(atkbc_t *dev)
Compaq: Reserved;
NCR: DMA mode.
*/
kbc_at_log("ATkbc: read P1\n");
fixed_bits = 4;
/* The SMM handlers of Intel AMI Pentium BIOS'es expect bit 6 to be set. */
@@ -2108,7 +2106,7 @@ kbc_at_process_cmd(void *priv)
break;
case 0xc0: /* read P1 */
kbc_at_log("ATkbc: read P2\n");
kbc_at_log("ATkbc: read P1\n");
kbc_delay_to_ob(dev, read_p1(dev), 0, 0x00);
break;

View File

@@ -55,6 +55,7 @@ typedef struct {
rom_t bios_rom;
int index;
int en_map;
uint8_t regs[32];
uint8_t chip_id;
@@ -88,6 +89,12 @@ oti_out(uint16_t addr, uint8_t val, void *priv)
case 0x3c3:
if (!oti->chip_id) {
oti->enable_register = val & 1;
if ((val & 0x01) && oti->en_map)
mem_mapping_enable(&svga->mapping);
else if (!(val & 0x01)) {
oti->en_map = svga->mapping.enable;
mem_mapping_disable(&svga->mapping);
}
return;
}
svga_out(addr, val, svga);
@@ -245,11 +252,14 @@ oti_in(uint16_t addr, void *priv)
case 0x3c8:
case 0x3c9:
if (oti->chip_id == OTI_077 || oti->chip_id == OTI_077_ACER100T)
return sc1148x_ramdac_in(addr, 0, svga->ramdac, svga);
return svga_in(addr, svga);
temp = sc1148x_ramdac_in(addr, 0, svga->ramdac, svga);
else
temp = svga_in(addr, svga);
break;
case 0x3CF:
return svga->gdcreg[svga->gdcaddr & 0xf];
temp = svga->gdcreg[svga->gdcaddr & 0xf];
break;
case 0x3d4:
temp = svga->crtcreg;