Assorted ACC 2036 and OAK OTi-037 fixes, fixes #5697.
This commit is contained in:
@@ -158,7 +158,7 @@ acc2036_recalc(acc2036_t *dev)
|
|||||||
/* 0E0000-0FFFFF */
|
/* 0E0000-0FFFFF */
|
||||||
master_write = dev->regs[0x02] & 0x02;
|
master_write = dev->regs[0x02] & 0x02;
|
||||||
master_read = dev->regs[0x02] & 0x01;
|
master_read = dev->regs[0x02] & 0x01;
|
||||||
bit = (((i - 8) >> 2) + 2);
|
bit = ((i - 8) >> 2);
|
||||||
val = dev->regs[0x0c] & (1 << bit);
|
val = dev->regs[0x0c] & (1 << bit);
|
||||||
if (i >= 20) {
|
if (i >= 20) {
|
||||||
ew_flag = MEM_WRITE_EXTANY;
|
ew_flag = MEM_WRITE_EXTANY;
|
||||||
|
|||||||
@@ -1817,8 +1817,6 @@ read_p1(atkbc_t *dev)
|
|||||||
Compaq: Reserved;
|
Compaq: Reserved;
|
||||||
NCR: DMA mode.
|
NCR: DMA mode.
|
||||||
*/
|
*/
|
||||||
kbc_at_log("ATkbc: read P1\n");
|
|
||||||
|
|
||||||
fixed_bits = 4;
|
fixed_bits = 4;
|
||||||
|
|
||||||
/* The SMM handlers of Intel AMI Pentium BIOS'es expect bit 6 to be set. */
|
/* 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;
|
break;
|
||||||
|
|
||||||
case 0xc0: /* read P1 */
|
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);
|
kbc_delay_to_ob(dev, read_p1(dev), 0, 0x00);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ typedef struct {
|
|||||||
rom_t bios_rom;
|
rom_t bios_rom;
|
||||||
|
|
||||||
int index;
|
int index;
|
||||||
|
int en_map;
|
||||||
uint8_t regs[32];
|
uint8_t regs[32];
|
||||||
|
|
||||||
uint8_t chip_id;
|
uint8_t chip_id;
|
||||||
@@ -88,6 +89,12 @@ oti_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
case 0x3c3:
|
case 0x3c3:
|
||||||
if (!oti->chip_id) {
|
if (!oti->chip_id) {
|
||||||
oti->enable_register = val & 1;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
svga_out(addr, val, svga);
|
svga_out(addr, val, svga);
|
||||||
@@ -245,11 +252,14 @@ oti_in(uint16_t addr, void *priv)
|
|||||||
case 0x3c8:
|
case 0x3c8:
|
||||||
case 0x3c9:
|
case 0x3c9:
|
||||||
if (oti->chip_id == OTI_077 || oti->chip_id == OTI_077_ACER100T)
|
if (oti->chip_id == OTI_077 || oti->chip_id == OTI_077_ACER100T)
|
||||||
return sc1148x_ramdac_in(addr, 0, svga->ramdac, svga);
|
temp = sc1148x_ramdac_in(addr, 0, svga->ramdac, svga);
|
||||||
return svga_in(addr, svga);
|
else
|
||||||
|
temp = svga_in(addr, svga);
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x3CF:
|
case 0x3CF:
|
||||||
return svga->gdcreg[svga->gdcaddr & 0xf];
|
temp = svga->gdcreg[svga->gdcaddr & 0xf];
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x3d4:
|
case 0x3d4:
|
||||||
temp = svga->crtcreg;
|
temp = svga->crtcreg;
|
||||||
|
|||||||
Reference in New Issue
Block a user