diff options
author | Vas Crabb <vas@vastheman.com> | 2018-05-31 10:51:18 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2018-05-31 10:51:18 +1000 |
commit | d8a1e0da880089634c2e86d2344648f289ab238a (patch) | |
tree | f134d3871682fa2f0ed1fe34e0ee388b51631e60 | |
parent | 1473bbb4e5f5f84360482f33607b00135f2166de (diff) |
hp9k_3xx.cpp: more plausible GPIB mapping - not throoughly tested, @sschelle might want to look at this (nw)
-rw-r--r-- | src/mame/drivers/hp9k_3xx.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp index feaa1d11dd2..eddbb4cfc8f 100644 --- a/src/mame/drivers/hp9k_3xx.cpp +++ b/src/mame/drivers/hp9k_3xx.cpp @@ -202,7 +202,7 @@ void hp9k3xx_state::hp9k3xx_common(address_map &map) map(0x00000000, 0x0001ffff).rom().region("maincpu", 0).w(this, FUNC(hp9k3xx_state::led_w)); // writes to 1fffc are the LED map(0x00428000, 0x00428003).rw(m_iocpu, FUNC(upi41_cpu_device::upi41_master_r), FUNC(upi41_cpu_device::upi41_master_w)).umask32(0x00ff00ff); - map(0x00470000, 0x0047ffff).rw(this, FUNC(hp9k3xx_state::gpib_r), FUNC(hp9k3xx_state::gpib_w)).umask16(0x00ff); + map(0x00470000, 0x0047000f).mirror(0x0000fff0).rw(this, FUNC(hp9k3xx_state::gpib_r), FUNC(hp9k3xx_state::gpib_w)).umask16(0x00ff); map(0x005f8000, 0x005f800f).rw(PTM6840_TAG, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask32(0x00ff00ff); @@ -216,7 +216,7 @@ void hp9k3xx_state::hp9k310_map(address_map &map) map(0x000000, 0x01ffff).rom().region("maincpu", 0).nopw(); // writes to 1fffc are the LED map(0x428000, 0x428003).rw(m_iocpu, FUNC(upi41_cpu_device::upi41_master_r), FUNC(upi41_cpu_device::upi41_master_w)).umask16(0x00ff); - map(0x470000, 0x47800f).rw(this, FUNC(hp9k3xx_state::gpib_r), FUNC(hp9k3xx_state::gpib_w)).umask16(0x00ff); + map(0x470000, 0x47000f).mirror(0x00fff0).rw(this, FUNC(hp9k3xx_state::gpib_r), FUNC(hp9k3xx_state::gpib_w)).umask16(0x00ff); map(0x510000, 0x510003).rw(this, FUNC(hp9k3xx_state::buserror16_r), FUNC(hp9k3xx_state::buserror16_w)); // no "Alpha display" map(0x538000, 0x538003).rw(this, FUNC(hp9k3xx_state::buserror16_r), FUNC(hp9k3xx_state::buserror16_w)); // no "Graphics" @@ -319,9 +319,7 @@ WRITE_LINE_MEMBER(hp9k3xx_state::gpib_irq) WRITE8_MEMBER(hp9k3xx_state::gpib_w) { - offset &= 0xf; - - if (offset >= 0x08) { + if (offset & 0x08) { m_tms9914->reg8_w(space, offset & 0x07, data); return; } @@ -332,9 +330,7 @@ READ8_MEMBER(hp9k3xx_state::gpib_r) { uint8_t data = 0xff; - offset &= 0xf; - - if (offset >= 0x8) { + if (offset & 0x8) { data = m_tms9914->reg8_r(space, offset & 0x07); return data; } |