diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp index e9a68e48d9a..f0e4cc3e814 100644 --- a/src/mame/drivers/altos8600.cpp +++ b/src/mame/drivers/altos8600.cpp @@ -464,9 +464,8 @@ WRITE8_MEMBER(altos8600_state::romport_w) break; case 5: m_romport[2] = data; - if(BIT(data, 3)) - m_fdc->soft_reset(); - m_fdc->dden_w(!BIT(data, 2) ? true : false); + m_fdc->mr_w(!BIT(data, 3)); + m_fdc->dden_w(!BIT(data, 2)); m_dmamplex = (data >> 4) & 3; break; case 7: diff --git a/src/mame/drivers/lb186.cpp b/src/mame/drivers/lb186.cpp index eea822f8c1a..92ddb98e54e 100644 --- a/src/mame/drivers/lb186.cpp +++ b/src/mame/drivers/lb186.cpp @@ -26,10 +26,8 @@ public: void lb186(machine_config &config); private: - DECLARE_WRITE8_MEMBER(sio_out_w); - DECLARE_WRITE8_MEMBER(drive_sel_w); - DECLARE_READ8_MEMBER(scsi_dack_r); - DECLARE_WRITE8_MEMBER(scsi_dack_w); + void sio_out_w(uint8_t data); + void drive_sel_w(uint8_t data); DECLARE_FLOPPY_FORMATS( floppy_formats ); static void ncr5380(device_t *device); void lb186_io(address_map &map); @@ -40,24 +38,13 @@ private: required_device m_scsi; }; -WRITE8_MEMBER(lb186_state::scsi_dack_w) +void lb186_state::sio_out_w(uint8_t data) { - m_scsi->dma_w(data); -} - -READ8_MEMBER(lb186_state::scsi_dack_r) -{ - return m_scsi->dma_r(); -} - -WRITE8_MEMBER(lb186_state::sio_out_w) -{ - if(!BIT(data, 5)) - m_fdc->soft_reset(); + m_fdc->mr_w(BIT(data, 5)); m_maincpu->tmrin1_w(BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE); } -WRITE8_MEMBER(lb186_state::drive_sel_w) +void lb186_state::drive_sel_w(uint8_t data) { m_fdc->dden_w(BIT(data, 5)); @@ -103,7 +90,7 @@ void lb186_state::lb186_io(address_map &map) map(0x1000, 0x101f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write)).umask16(0x00ff); map(0x1080, 0x108f).rw(m_scsi, FUNC(ncr5380n_device::read), FUNC(ncr5380n_device::write)).umask16(0x00ff); map(0x1100, 0x1107).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff); - map(0x1180, 0x1180).rw(FUNC(lb186_state::scsi_dack_r), FUNC(lb186_state::scsi_dack_w)); + map(0x1180, 0x1180).rw(m_scsi, FUNC(ncr5380n_device::dma_r), FUNC(ncr5380n_device::dma_w)); map(0x1200, 0x1200).w(FUNC(lb186_state::drive_sel_w)); } diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index c250242658d..85c65c2855d 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -617,10 +617,9 @@ WRITE_LINE_MEMBER(ngen_state::fdc_drq_w) WRITE8_MEMBER(ngen_state::fdc_control_w) { m_fdc->set_floppy(m_fd0->get_device()); - m_fd0->get_device()->mon_w(~data & 0x04); - m_fd0->get_device()->ss_w(data & 0x20); - if(~data & 0x80) - m_fdc->soft_reset(); + m_fd0->get_device()->mon_w(!BIT(data, 2)); + m_fd0->get_device()->ss_w(BIT(data, 5)); + m_fdc->mr_w(BIT(data, 7)); } // Hard disk control register diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp index b197ddea568..de2e101d8fc 100644 --- a/src/mame/drivers/sbrain.cpp +++ b/src/mame/drivers/sbrain.cpp @@ -345,11 +345,9 @@ void sbrain_state::ppi_pc_w(u8 data) m_keydown &= 2; // ack DR m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE); + m_fdc->mr_w(!BIT(data, 3)); if (BIT(data, 3)) - { - m_fdc->soft_reset(); disk_select_w(0); - } m_subcpu->set_input_line(Z80_INPUT_LINE_BUSRQ, BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE); // ignored in z80.cpp m_busak = BIT(data, 5); } diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp index eb8580f5499..2599ad3bd1f 100644 --- a/src/mame/machine/bbc.cpp +++ b/src/mame/machine/bbc.cpp @@ -1118,7 +1118,7 @@ WRITE8_MEMBER(bbc_state::bbcbp_drive_control_w) // bit 4: interrupt enable (S5 wire link not fitted) // bit 5: reset - if (!BIT(data, 5)) m_wd1770->soft_reset(); + m_wd1770->mr_w(BIT(data, 5)); } /* @@ -1152,7 +1152,7 @@ WRITE8_MEMBER(bbc_state::bbcm_drive_control_w) m_wd1770->dden_w(BIT(data, 5)); // bit 2: reset - if (!BIT(data, 2)) m_wd1770->soft_reset(); + m_wd1770->mr_w(BIT(data, 2)); } WRITE8_MEMBER(bbc_state::bbcmc_drive_control_w) @@ -1172,7 +1172,7 @@ WRITE8_MEMBER(bbc_state::bbcmc_drive_control_w) m_wd1772->dden_w(BIT(data, 5)); // bit 2: reset - if (!BIT(data, 2)) m_wd1772->soft_reset(); + m_wd1772->mr_w(BIT(data, 2)); } /**************************************