diff --git a/src/mess/machine/dp8390.c b/src/mess/machine/dp8390.c index 32502dfb95d..a1ac879b12c 100644 --- a/src/mess/machine/dp8390.c +++ b/src/mess/machine/dp8390.c @@ -298,6 +298,9 @@ READ16_MEMBER(dp8390_device::dp8390_r) { case 0x8f: data = m_regs.imr; break; + case 0xc0: + data = m_regs.cr; + break; default: if(m_type == TYPE_RTL8019A) { switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { @@ -307,9 +310,7 @@ READ16_MEMBER(dp8390_device::dp8390_r) { case 0x0b: data = 'p'; break; - case 0xc0: - data = m_regs.cr; - break; + case 0xc1: data = m_8019regs.cr9346; break; @@ -465,12 +466,12 @@ WRITE16_MEMBER(dp8390_device::dp8390_w) { case 0x87: m_regs.ac = (m_regs.ac & 0xff00) | data; break; + case 0xc0: + set_cr(data); + break; default: if(m_type == TYPE_RTL8019A) { switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { - case 0xc0: - set_cr(data); - break; // XXX: rest of the regs default: logerror("rtl8019: invalid write page %01X reg %02X data %04X\n", (m_regs.cr & 0xc0) >> 6, offset & 0x0f, data); diff --git a/src/mess/machine/ne1000.c b/src/mess/machine/ne1000.c index 9e4eab9f4a3..771c3c091cd 100644 --- a/src/mess/machine/ne1000.c +++ b/src/mess/machine/ne1000.c @@ -97,6 +97,7 @@ WRITE_LINE_MEMBER(ne1000_device::ne1000_irq_w) { } READ8_MEMBER(ne1000_device::ne1000_mem_read) { + offset &= ~0xc000; // verify if(offset < 16) return m_prom[offset]; if((offset < (8*1024)) || (offset >= (16*1024))) { logerror("ne1000: invalid memory read %04X\n", offset); @@ -106,6 +107,7 @@ READ8_MEMBER(ne1000_device::ne1000_mem_read) { } WRITE8_MEMBER(ne1000_device::ne1000_mem_write) { + offset &= ~0xc000; // verify if((offset < (8*1024)) || (offset >= (16*1024))) { logerror("ne1000: invalid memory write %04X\n", offset); return; diff --git a/src/mess/machine/ne2000.c b/src/mess/machine/ne2000.c index 924ff2f5e1b..ec0ef281134 100644 --- a/src/mess/machine/ne2000.c +++ b/src/mess/machine/ne2000.c @@ -107,6 +107,7 @@ WRITE_LINE_MEMBER(ne2000_device::ne2000_irq_w) { } READ8_MEMBER(ne2000_device::ne2000_mem_read) { + offset &= ~0x8000; if(offset < 32) return m_prom[offset>>1]; if((offset < (16*1024)) || (offset >= (32*1024))) { logerror("ne2000: invalid memory read %04X\n", offset); @@ -116,6 +117,7 @@ READ8_MEMBER(ne2000_device::ne2000_mem_read) { } WRITE8_MEMBER(ne2000_device::ne2000_mem_write) { + offset &= ~0x8000; if((offset < (16*1024)) || (offset >= (32*1024))) { logerror("ne2000: invalid memory write %04X\n", offset); return;