mirror of
https://github.com/holub/mame
synced 2025-06-05 20:33:45 +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;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
m_romport[2] = data;
|
m_romport[2] = data;
|
||||||
if(BIT(data, 3))
|
m_fdc->mr_w(!BIT(data, 3));
|
||||||
m_fdc->soft_reset();
|
m_fdc->dden_w(!BIT(data, 2));
|
||||||
m_fdc->dden_w(!BIT(data, 2) ? true : false);
|
|
||||||
m_dmamplex = (data >> 4) & 3;
|
m_dmamplex = (data >> 4) & 3;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
|
@ -26,10 +26,8 @@ public:
|
|||||||
void lb186(machine_config &config);
|
void lb186(machine_config &config);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_WRITE8_MEMBER(sio_out_w);
|
void sio_out_w(uint8_t data);
|
||||||
DECLARE_WRITE8_MEMBER(drive_sel_w);
|
void drive_sel_w(uint8_t data);
|
||||||
DECLARE_READ8_MEMBER(scsi_dack_r);
|
|
||||||
DECLARE_WRITE8_MEMBER(scsi_dack_w);
|
|
||||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||||
static void ncr5380(device_t *device);
|
static void ncr5380(device_t *device);
|
||||||
void lb186_io(address_map &map);
|
void lb186_io(address_map &map);
|
||||||
@ -40,24 +38,13 @@ private:
|
|||||||
required_device<ncr5380n_device> m_scsi;
|
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);
|
m_fdc->mr_w(BIT(data, 5));
|
||||||
}
|
|
||||||
|
|
||||||
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_maincpu->tmrin1_w(BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE);
|
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));
|
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(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(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(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));
|
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)
|
WRITE8_MEMBER(ngen_state::fdc_control_w)
|
||||||
{
|
{
|
||||||
m_fdc->set_floppy(m_fd0->get_device());
|
m_fdc->set_floppy(m_fd0->get_device());
|
||||||
m_fd0->get_device()->mon_w(~data & 0x04);
|
m_fd0->get_device()->mon_w(!BIT(data, 2));
|
||||||
m_fd0->get_device()->ss_w(data & 0x20);
|
m_fd0->get_device()->ss_w(BIT(data, 5));
|
||||||
if(~data & 0x80)
|
m_fdc->mr_w(BIT(data, 7));
|
||||||
m_fdc->soft_reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hard disk control register
|
// Hard disk control register
|
||||||
|
@ -345,11 +345,9 @@ void sbrain_state::ppi_pc_w(u8 data)
|
|||||||
m_keydown &= 2; // ack DR
|
m_keydown &= 2; // ack DR
|
||||||
|
|
||||||
m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE);
|
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))
|
if (BIT(data, 3))
|
||||||
{
|
|
||||||
m_fdc->soft_reset();
|
|
||||||
disk_select_w(0);
|
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_subcpu->set_input_line(Z80_INPUT_LINE_BUSRQ, BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE); // ignored in z80.cpp
|
||||||
m_busak = BIT(data, 5);
|
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 4: interrupt enable (S5 wire link not fitted)
|
||||||
|
|
||||||
// bit 5: reset
|
// 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));
|
m_wd1770->dden_w(BIT(data, 5));
|
||||||
|
|
||||||
// bit 2: reset
|
// 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)
|
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));
|
m_wd1772->dden_w(BIT(data, 5));
|
||||||
|
|
||||||
// bit 2: reset
|
// 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