mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
bus/bbc/fdc: Use arrays of floppy_connector.
This commit is contained in:
parent
e684acaa50
commit
41e787d858
@ -101,8 +101,8 @@ void bbc_acorn8271_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->hdl_wr_callback().set(FUNC(bbc_acorn8271_device::motor_w));
|
||||
m_fdc->opt_wr_callback().set(FUNC(bbc_acorn8271_device::side_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_acorn1770_device::device_add_mconfig(machine_config &config)
|
||||
@ -112,8 +112,8 @@ void bbc_acorn1770_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_intrq_w));
|
||||
m_fdc->drq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_drq_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
|
||||
@ -139,8 +139,7 @@ bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const
|
||||
: device_t(mconfig, BBC_ACORN8271, tag, owner, clock)
|
||||
, device_bbc_fdc_interface(mconfig, *this)
|
||||
, m_fdc(*this, "i8271")
|
||||
, m_floppy0(*this, "i8271:0")
|
||||
, m_floppy1(*this, "i8271:1")
|
||||
, m_floppy(*this, "i8271:%u", 0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -148,8 +147,7 @@ bbc_acorn1770_device::bbc_acorn1770_device(const machine_config &mconfig, const
|
||||
: device_t(mconfig, BBC_ACORN1770, tag, owner, clock)
|
||||
, device_bbc_fdc_interface(mconfig, *this)
|
||||
, m_fdc(*this, "wd1770")
|
||||
, m_floppy0(*this, "wd1770:0")
|
||||
, m_floppy1(*this, "wd1770:1")
|
||||
, m_floppy(*this, "wd1770:%u", 0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -200,15 +198,15 @@ void bbc_acorn8271_device::write(offs_t offset, uint8_t data)
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_acorn8271_device::motor_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state);
|
||||
m_fdc->ready_w(!state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_acorn8271_device::side_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->ss_w(state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->ss_w(state);
|
||||
}
|
||||
|
||||
|
||||
@ -238,8 +236,8 @@ void bbc_acorn1770_device::write(offs_t offset, uint8_t data)
|
||||
floppy_image_device *floppy = nullptr;
|
||||
|
||||
// bit 0, 1: drive select
|
||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
||||
if (BIT(data, 0)) floppy = m_floppy[0]->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy[1]->get_device();
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
// bit 2: side select
|
||||
|
@ -50,8 +50,7 @@ private:
|
||||
DECLARE_WRITE_LINE_MEMBER(side_w);
|
||||
|
||||
required_device<i8271_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
};
|
||||
|
||||
class bbc_acorn1770_device :
|
||||
@ -78,8 +77,7 @@ private:
|
||||
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
|
||||
|
||||
required_device<wd1770_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
|
||||
int m_fdc_ie;
|
||||
};
|
||||
|
@ -55,8 +55,8 @@ void bbc_ams3_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->hdl_wr_callback().set(FUNC(bbc_ams3_device::motor_w));
|
||||
m_fdc->opt_wr_callback().set(FUNC(bbc_ams3_device::side_w));
|
||||
// Hitachi HFD 305S
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, "3dsdd", FLOPPY_3_DSDD, true, bbc_ams3_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, "3dsdd", FLOPPY_3_DSDD, false, bbc_ams3_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], "3dsdd", FLOPPY_3_DSDD, true, bbc_ams3_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], "3dsdd", FLOPPY_3_DSDD, false, bbc_ams3_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
|
||||
@ -77,8 +77,7 @@ bbc_ams3_device::bbc_ams3_device(const machine_config &mconfig, const char *tag,
|
||||
: device_t(mconfig, BBC_AMS3, tag, owner, clock)
|
||||
, device_bbc_fdc_interface(mconfig, *this)
|
||||
, m_fdc(*this, "i8271")
|
||||
, m_floppy0(*this, "i8271:0")
|
||||
, m_floppy1(*this, "i8271:1")
|
||||
, m_floppy(*this, "i8271:%u", 0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -125,13 +124,13 @@ void bbc_ams3_device::write(offs_t offset, uint8_t data)
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_ams3_device::motor_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state);
|
||||
m_fdc->ready_w(!state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_ams3_device::side_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->ss_w(state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->ss_w(state);
|
||||
}
|
||||
|
@ -48,8 +48,7 @@ private:
|
||||
DECLARE_WRITE_LINE_MEMBER(side_w);
|
||||
|
||||
required_device<i8271_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
};
|
||||
|
||||
|
||||
|
@ -72,8 +72,8 @@ void bbc_cumana1_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w));
|
||||
m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_cumana2_device::device_add_mconfig(machine_config &config)
|
||||
@ -83,8 +83,8 @@ void bbc_cumana2_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w));
|
||||
m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
const tiny_rom_entry *bbc_cumana1_device::device_rom_region() const
|
||||
@ -110,8 +110,7 @@ bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_bbc_fdc_interface(mconfig, *this),
|
||||
m_fdc(*this, "mb8877a"),
|
||||
m_floppy0(*this, "mb8877a:0"),
|
||||
m_floppy1(*this, "mb8877a:1"),
|
||||
m_floppy(*this, "mb8877a:%u", 0),
|
||||
m_drive_control(0)
|
||||
{
|
||||
}
|
||||
@ -173,8 +172,8 @@ void bbc_cumanafdc_device::write(offs_t offset, uint8_t data)
|
||||
// bit 0: drive select
|
||||
switch (BIT(data, 0))
|
||||
{
|
||||
case 0: floppy = m_floppy0->get_device(); break;
|
||||
case 1: floppy = m_floppy1->get_device(); break;
|
||||
case 0: floppy = m_floppy[0]->get_device(); break;
|
||||
case 1: floppy = m_floppy[1]->get_device(); break;
|
||||
}
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
@ -219,6 +218,6 @@ WRITE_LINE_MEMBER(bbc_cumanafdc_device::fdc_drq_w)
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_cumanafdc_device::motor_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state);
|
||||
}
|
||||
|
@ -43,8 +43,7 @@ protected:
|
||||
virtual void write(offs_t offset, uint8_t data) override;
|
||||
|
||||
required_device<mb8877_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
|
||||
bool m_invert;
|
||||
|
||||
|
@ -104,8 +104,8 @@ void bbc_opus8272_device::device_add_mconfig(machine_config &config)
|
||||
I8272A(config, m_fdc, 20_MHz_XTAL / 5, true);
|
||||
m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_opus2791_device::device_add_mconfig(machine_config &config)
|
||||
@ -114,8 +114,8 @@ void bbc_opus2791_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
|
||||
m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_opus2793_device::device_add_mconfig(machine_config &config)
|
||||
@ -124,8 +124,8 @@ void bbc_opus2793_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
|
||||
m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_opus1770_device::device_add_mconfig(machine_config &config)
|
||||
@ -133,8 +133,8 @@ void bbc_opus1770_device::device_add_mconfig(machine_config &config)
|
||||
WD1770(config, m_fdc, DERIVED_CLOCK(1, 1));
|
||||
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
const tiny_rom_entry *bbc_opus8272_device::device_rom_region() const
|
||||
@ -170,8 +170,7 @@ bbc_opus8272_device::bbc_opus8272_device(const machine_config &mconfig, const ch
|
||||
device_t(mconfig, BBC_OPUS8272, tag, owner, clock),
|
||||
device_bbc_fdc_interface(mconfig, *this),
|
||||
m_fdc(*this, "i8272"),
|
||||
m_floppy0(*this, "i8272:0"),
|
||||
m_floppy1(*this, "i8272:1")
|
||||
m_floppy(*this, "i8272:%u", 0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -179,8 +178,7 @@ bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_typ
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_bbc_fdc_interface(mconfig, *this),
|
||||
m_fdc(*this, "fdc"),
|
||||
m_floppy0(*this, "fdc:0"),
|
||||
m_floppy1(*this, "fdc:1"),
|
||||
m_floppy(*this, "fdc:%u", 0),
|
||||
m_drive_control(0)
|
||||
{
|
||||
}
|
||||
@ -230,16 +228,16 @@ uint8_t bbc_opus8272_device::read(offs_t offset)
|
||||
break;
|
||||
|
||||
case 0x06:
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(1);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(1);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(1);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(1);
|
||||
[[fallthrough]];
|
||||
case 0x04:
|
||||
data = m_fdc->msr_r();
|
||||
break;
|
||||
|
||||
case 0x05:
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(0);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(0);
|
||||
[[fallthrough]];
|
||||
case 0x07:
|
||||
data = m_fdc->fifo_r();
|
||||
@ -257,15 +255,15 @@ void bbc_opus8272_device::write(offs_t offset, uint8_t data)
|
||||
case 0x01:
|
||||
switch (data & 0x01)
|
||||
{
|
||||
case 0: floppy = m_floppy1->get_device(); break;
|
||||
case 1: floppy = m_floppy0->get_device(); break;
|
||||
case 0: floppy = m_floppy[1]->get_device(); break;
|
||||
case 1: floppy = m_floppy[0]->get_device(); break;
|
||||
}
|
||||
m_fdc->set_floppy(floppy);
|
||||
break;
|
||||
|
||||
case 0x05:
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(0);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(0);
|
||||
[[fallthrough]];
|
||||
case 0x07:
|
||||
m_fdc->fifo_w(data);
|
||||
@ -300,8 +298,8 @@ void bbc_opusfdc_device::write(offs_t offset, uint8_t data)
|
||||
// bit 0: drive select
|
||||
switch (BIT(data, 0))
|
||||
{
|
||||
case 0: floppy = m_floppy0->get_device(); break;
|
||||
case 1: floppy = m_floppy1->get_device(); break;
|
||||
case 0: floppy = m_floppy[0]->get_device(); break;
|
||||
case 1: floppy = m_floppy[1]->get_device(); break;
|
||||
}
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
@ -320,6 +318,6 @@ void bbc_opusfdc_device::write(offs_t offset, uint8_t data)
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_opusfdc_device::motor_w)
|
||||
{
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state);
|
||||
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state);
|
||||
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state);
|
||||
}
|
||||
|
@ -41,8 +41,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_device<i8272a_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
};
|
||||
|
||||
|
||||
@ -66,8 +65,7 @@ protected:
|
||||
virtual void write(offs_t offset, uint8_t data) override;
|
||||
|
||||
required_device<wd_fdc_device_base> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
|
||||
private:
|
||||
int m_drive_control;
|
||||
|
@ -77,8 +77,8 @@ void bbc_weddb2_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
|
||||
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
void bbc_weddb3_device::device_add_mconfig(machine_config &config)
|
||||
@ -87,8 +87,8 @@ void bbc_weddb3_device::device_add_mconfig(machine_config &config)
|
||||
m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
|
||||
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
|
||||
}
|
||||
|
||||
const tiny_rom_entry *bbc_weddb2_device::device_rom_region() const
|
||||
@ -119,8 +119,7 @@ bbc_watfordfdc_device::bbc_watfordfdc_device(const machine_config &mconfig, devi
|
||||
bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: bbc_watfordfdc_device(mconfig, BBC_WEDDB2, tag, owner, clock)
|
||||
, m_fdc(*this, "wd1772")
|
||||
, m_floppy0(*this, "wd1772:0")
|
||||
, m_floppy1(*this, "wd1772:1")
|
||||
, m_floppy(*this, "wd1772:%u", 0)
|
||||
, m_drive_control(0)
|
||||
{
|
||||
}
|
||||
@ -128,8 +127,7 @@ bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *
|
||||
bbc_weddb3_device::bbc_weddb3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: bbc_watfordfdc_device(mconfig, BBC_WEDDB3, tag, owner, clock)
|
||||
, m_fdc(*this, "wd1770")
|
||||
, m_floppy0(*this, "wd1770:0")
|
||||
, m_floppy1(*this, "wd1770:1")
|
||||
, m_floppy(*this, "wd1770:%u", 0)
|
||||
, m_drive_control(0)
|
||||
{
|
||||
}
|
||||
@ -181,8 +179,8 @@ void bbc_weddb2_device::write(offs_t offset, uint8_t data)
|
||||
m_drive_control = data;
|
||||
|
||||
// bit 2: drive select
|
||||
floppy_image_device *floppy0 = m_floppy0->get_device();
|
||||
floppy_image_device *floppy1 = m_floppy1->get_device();
|
||||
floppy_image_device *floppy0 = m_floppy[0]->get_device();
|
||||
floppy_image_device *floppy1 = m_floppy[1]->get_device();
|
||||
floppy = (BIT(data, 2) ? floppy1 : floppy0);
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
@ -226,8 +224,8 @@ void bbc_weddb3_device::write(offs_t offset, uint8_t data)
|
||||
m_drive_control = data;
|
||||
|
||||
// bit 0, 1: drive select
|
||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
||||
if (BIT(data, 0)) floppy = m_floppy[0]->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy[1]->get_device();
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
// bit 2: side select
|
||||
|
@ -50,8 +50,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_device<wd_fdc_device_base> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
|
||||
int m_drive_control;
|
||||
};
|
||||
@ -73,8 +72,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_device<wd_fdc_device_base> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 2> m_floppy;
|
||||
|
||||
int m_drive_control;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user