cmi2x.cpp: Hook up second floppy. [Ryan Holtz]

This commit is contained in:
therealmogminer@gmail.com 2016-08-27 15:54:45 +02:00
parent 69d0834ce6
commit 01c2af0bbc

View File

@ -381,9 +381,8 @@ public:
, m_acia_mkbd_cmi(*this, "acia_mkbd_cmi") , m_acia_mkbd_cmi(*this, "acia_mkbd_cmi")
, m_cmi07_ptm(*this, "cmi07_ptm") , m_cmi07_ptm(*this, "cmi07_ptm")
, m_qfc9_region(*this, "qfc9") , m_qfc9_region(*this, "qfc9")
, m_floppy_0(*this, "wd1791:0") , m_floppy0(*this, "wd1791:0")
, m_floppy_1(*this, "wd1791:1") , m_floppy1(*this, "wd1791:1")
, m_floppy(nullptr)
, m_wd1791(*this, "wd1791") , m_wd1791(*this, "wd1791")
, m_channels(*this, "cmi01a_%u", 0) , m_channels(*this, "cmi01a_%u", 0)
, m_cmi10_pia_u20(*this, "cmi10_pia_u20") , m_cmi10_pia_u20(*this, "cmi10_pia_u20")
@ -542,9 +541,8 @@ protected:
required_device<ptm6840_device> m_cmi07_ptm; required_device<ptm6840_device> m_cmi07_ptm;
required_memory_region m_qfc9_region; required_memory_region m_qfc9_region;
required_device<floppy_connector> m_floppy_0; required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy_1; required_device<floppy_connector> m_floppy1;
floppy_image_device *m_floppy;
required_device<fd1791_t> m_wd1791; required_device<fd1791_t> m_wd1791;
required_device_array<cmi01a_device, 8> m_channels; required_device_array<cmi01a_device, 8> m_channels;
@ -1462,20 +1460,15 @@ void cmi_state::write_fdc_ctrl(UINT8 data)
int drive = data & 1; int drive = data & 1;
int side = BIT(data, 5) ? 1 : 0; int side = BIT(data, 5) ? 1 : 0;
m_floppy = nullptr; switch (drive)
if (drive)
{ {
m_floppy = m_floppy_1->get_device(); case 0: m_wd1791->set_floppy(m_floppy0->get_device()); break;
} case 1: m_wd1791->set_floppy(m_floppy1->get_device()); break;
else
{
m_floppy = m_floppy_0->get_device();
} }
if (m_floppy) if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(side);
m_floppy->ss_w(side); if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(side);
m_wd1791->set_floppy(m_floppy);
m_wd1791->dden_w(BIT(data, 7) ? true : false); m_wd1791->dden_w(BIT(data, 7) ? true : false);
m_fdc_ctrl = data; m_fdc_ctrl = data;
@ -2695,7 +2688,7 @@ static MACHINE_CONFIG_START( cmi2x, cmi_state )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(cmi_state, wd1791_irq)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(cmi_state, wd1791_irq))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(cmi_state, wd1791_drq)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(cmi_state, wd1791_drq))
MCFG_FLOPPY_DRIVE_ADD("wd1791:0", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd1791:0", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1791:1", cmi2x_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd1791:1", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
// Channel cards // Channel cards
MCFG_CMI01A_ADD("cmi01a_0", 0) MCFG_CMI01A_ADD("cmi01a_0", 0)