mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
wd_fdc: Adopt new mr_w handler in various drivers (nw)
This commit is contained in:
parent
48a79e58c0
commit
b937a83163
@ -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:
|
||||
|
@ -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<ncr5380n_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));
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
/**************************************
|
||||
|
Loading…
Reference in New Issue
Block a user