diff options
Diffstat (limited to 'src/mame/machine/midwunit.cpp')
-rw-r--r-- | src/mame/machine/midwunit.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mame/machine/midwunit.cpp b/src/mame/machine/midwunit.cpp index 4ae8a44fe86..730ca5f49f8 100644 --- a/src/mame/machine/midwunit.cpp +++ b/src/mame/machine/midwunit.cpp @@ -89,7 +89,7 @@ WRITE16_MEMBER(midwunit_state::midwunit_io_w) m_dcs->reset_w(newword & 0x10); /* bit 5 (active low) reset security chip */ - m_midway_serial_pic->reset_w(newword & 0x20); + if (m_midway_serial_pic) m_midway_serial_pic->reset_w(newword & 0x20); break; case 3: @@ -127,8 +127,12 @@ READ16_MEMBER(midwunit_state::midwunit_io_r) return m_ports[offset]->read(); case 4: - return (m_midway_serial_pic->status_r(space,0) << 12) | midwunit_sound_state_r(space,0,0xffff); + { + int picret = 0; + if (m_midway_serial_pic) picret = m_midway_serial_pic->status_r(space, 0); + return (picret << 12) | midwunit_sound_state_r(space, 0, 0xffff); + } default: logerror("%08X:Unknown I/O read from %d\n", space.device().safe_pc(), offset); break; @@ -357,14 +361,18 @@ MACHINE_RESET_MEMBER(midwunit_state,midwunit) READ16_MEMBER(midwunit_state::midwunit_security_r) { - return m_midway_serial_pic->read(space,0); + uint16_t picret = 0; + if (m_midway_serial_pic) picret = m_midway_serial_pic->read(space, 0); + return picret; } WRITE16_MEMBER(midwunit_state::midwunit_security_w) { if (offset == 0 && ACCESSING_BITS_0_7) - m_midway_serial_pic->write(space, 0, data); + { + if (m_midway_serial_pic) m_midway_serial_pic->write(space, 0, data); + } } |