summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/bus/adamnet/fdc.cpp7
-rw-r--r--src/devices/bus/adamnet/fdc.h2
-rw-r--r--src/devices/bus/cbmiec/c1541.cpp2
-rw-r--r--src/devices/bus/cbmiec/c1571.cpp8
-rw-r--r--src/devices/bus/cbmiec/c1581.cpp2
-rw-r--r--src/devices/bus/cbmiec/fd2000.cpp4
-rw-r--r--src/devices/bus/compucolor/floppy.cpp2
-rw-r--r--src/devices/bus/ieee488/c2031.cpp2
-rw-r--r--src/devices/bus/ieee488/c2040.cpp12
-rw-r--r--src/devices/bus/msx_cart/msx_audio.cpp11
-rw-r--r--src/devices/bus/msx_cart/msx_audio.h1
-rw-r--r--src/devices/bus/plus4/c1551.cpp2
-rw-r--r--src/devices/imagedev/floppy.h5
-rw-r--r--src/emu/validity.cpp69
14 files changed, 72 insertions, 57 deletions
diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp
index 9eff427a77a..5fbdd822e44 100644
--- a/src/devices/bus/adamnet/fdc.cpp
+++ b/src/devices/bus/adamnet/fdc.cpp
@@ -172,7 +172,7 @@ adam_fdc_device::adam_fdc_device(const machine_config &mconfig, const char *tag,
device_adamnet_card_interface(mconfig, *this),
m_maincpu(*this, M6801_TAG),
m_fdc(*this, WD2793_TAG),
- m_floppy0(*this, WD2793_TAG":0:525ssdd"),
+ m_connector(*this, WD2793_TAG":0"),
m_floppy(nullptr),
m_ram(*this, "ram"),
m_sw3(*this, "SW3")
@@ -239,7 +239,8 @@ READ8_MEMBER( adam_fdc_device::p1_r )
uint8_t data = 0x00;
// disk in place
- data |= m_floppy0->exists() ? 0x00 : 0x01;
+ floppy_image_device *floppy0 = m_connector->get_device();
+ data |= (floppy0 != nullptr && floppy0->exists()) ? 0x00 : 0x01;
// floppy data request
data |= m_fdc->drq_r() ? 0x04 : 0x00;
@@ -283,7 +284,7 @@ WRITE8_MEMBER( adam_fdc_device::p1_w )
if (BIT(data, 5))
{
- m_floppy = m_floppy0;
+ m_floppy = m_connector->get_device();
}
m_fdc->set_floppy(m_floppy);
diff --git a/src/devices/bus/adamnet/fdc.h b/src/devices/bus/adamnet/fdc.h
index 356c69a314e..6cdaedbc133 100644
--- a/src/devices/bus/adamnet/fdc.h
+++ b/src/devices/bus/adamnet/fdc.h
@@ -52,7 +52,7 @@ protected:
required_device<cpu_device> m_maincpu;
required_device<wd2793_device> m_fdc;
- required_device<floppy_image_device> m_floppy0;
+ required_device<floppy_connector> m_connector;
floppy_image_device *m_floppy;
required_shared_ptr<uint8_t> m_ram;
required_ioport m_sw3;
diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp
index 092d2155ee2..19d70310ba1 100644
--- a/src/devices/bus/cbmiec/c1541.cpp
+++ b/src/devices/bus/cbmiec/c1541.cpp
@@ -836,7 +836,7 @@ MACHINE_CONFIG_MEMBER( c1541_device_base::device_add_mconfig )
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_ATN_CALLBACK(WRITELINE(c1541_device_base, atn_w))
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1541_device_base, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1540_floppies, "525ssqd", c1541_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1540_floppies, "525ssqd", c1541_device_base::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp
index a3f1ffd0ffd..d0028133d48 100644
--- a/src/devices/bus/cbmiec/c1571.cpp
+++ b/src/devices/bus/cbmiec/c1571.cpp
@@ -632,7 +632,7 @@ MACHINE_CONFIG_MEMBER( c1570_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2)
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
MACHINE_CONFIG_END
@@ -668,7 +668,7 @@ MACHINE_CONFIG_MEMBER( c1571_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2)
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
MACHINE_CONFIG_END
@@ -698,7 +698,7 @@ MACHINE_CONFIG_MEMBER( c1571cr_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2)
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
MACHINE_CONFIG_END
@@ -734,7 +734,7 @@ MACHINE_CONFIG_MEMBER( mini_chief_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2)
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0)
MCFG_ISA8_CPU(M6502_TAG)
diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp
index c5bfb3d40fb..85e037a42be 100644
--- a/src/devices/bus/cbmiec/c1581.cpp
+++ b/src/devices/bus/cbmiec/c1581.cpp
@@ -279,7 +279,7 @@ MACHINE_CONFIG_MEMBER( c1581_device::device_add_mconfig )
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1581_device, cia_pb_w))
MCFG_WD1772_ADD(WD1772_TAG, XTAL_16MHz/2)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp
index 6f5cc650245..e067583d7eb 100644
--- a/src/devices/bus/cbmiec/fd2000.cpp
+++ b/src/devices/bus/cbmiec/fd2000.cpp
@@ -223,7 +223,7 @@ MACHINE_CONFIG_MEMBER( fd2000_device::device_add_mconfig )
MCFG_DP8473_ADD(DP8473V_TAG)
- MCFG_FLOPPY_DRIVE_ADD(DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
MACHINE_CONFIG_END
@@ -239,7 +239,7 @@ MACHINE_CONFIG_MEMBER( fd4000_device::device_add_mconfig )
MCFG_PC8477A_ADD(PC8477AV1_TAG)
- MCFG_FLOPPY_DRIVE_ADD(PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/compucolor/floppy.cpp b/src/devices/bus/compucolor/floppy.cpp
index f61a9a706ee..d7702286d48 100644
--- a/src/devices/bus/compucolor/floppy.cpp
+++ b/src/devices/bus/compucolor/floppy.cpp
@@ -51,7 +51,7 @@ SLOT_INTERFACE_END
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( compucolor_floppy_device::device_add_mconfig )
- MCFG_FLOPPY_DRIVE_ADD("floppy", compucolor_floppies, "525sssd", compucolor_floppy_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED("floppy", compucolor_floppies, "525sssd", compucolor_floppy_device::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp
index 846d3512a9b..3ba4ef1471f 100644
--- a/src/devices/bus/ieee488/c2031.cpp
+++ b/src/devices/bus/ieee488/c2031.cpp
@@ -325,7 +325,7 @@ MACHINE_CONFIG_MEMBER( c2031_device::device_add_mconfig )
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(WRITELINE(c2031_device, byte_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c2031_floppies, "525ssqd", c2031_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c2031_floppies, "525ssqd", c2031_device::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp
index 982dd693743..cea7a1c7351 100644
--- a/src/devices/bus/ieee488/c2040.cpp
+++ b/src/devices/bus/ieee488/c2040.cpp
@@ -486,8 +486,8 @@ MACHINE_CONFIG_MEMBER( c2040_device::device_add_mconfig )
MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w))
MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1))
MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1))
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c2040_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c2040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":0", c2040_floppies, "525ssqd", c2040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":1", c2040_floppies, "525ssqd", c2040_device::floppy_formats)
MACHINE_CONFIG_END
@@ -529,8 +529,8 @@ MACHINE_CONFIG_MEMBER( c3040_device::device_add_mconfig )
MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w))
MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1))
MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1))
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c3040_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c3040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":0", c2040_floppies, "525ssqd", c3040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":1", c2040_floppies, "525ssqd", c3040_device::floppy_formats)
MACHINE_CONFIG_END
@@ -572,8 +572,8 @@ MACHINE_CONFIG_MEMBER( c4040_device::device_add_mconfig )
MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w))
MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1))
MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1))
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c4040_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c4040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":0", c2040_floppies, "525ssqd", c4040_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(FDC_TAG":1", c2040_floppies, "525ssqd", c4040_device::floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/msx_cart/msx_audio.cpp b/src/devices/bus/msx_cart/msx_audio.cpp
index 1327a298474..ed91ed28732 100644
--- a/src/devices/bus/msx_cart/msx_audio.cpp
+++ b/src/devices/bus/msx_cart/msx_audio.cpp
@@ -126,6 +126,17 @@ READ8_MEMBER(msx_cart_msx_audio_hxmu900_device::read_cart)
}
+ROM_START( msx_hxmu )
+ ROM_REGION(0x8000, "y8950", ROMREGION_ERASE00)
+ROM_END
+
+
+const tiny_rom_entry *msx_cart_msx_audio_hxmu900_device::device_rom_region() const
+{
+ return ROM_NAME( msx_hxmu );
+}
+
+
diff --git a/src/devices/bus/msx_cart/msx_audio.h b/src/devices/bus/msx_cart/msx_audio.h
index 02093ce94f4..034fb38566d 100644
--- a/src/devices/bus/msx_cart/msx_audio.h
+++ b/src/devices/bus/msx_cart/msx_audio.h
@@ -23,6 +23,7 @@ public:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
virtual void initialize_cartridge() override;
diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp
index 266720d26cf..c15932c30b2 100644
--- a/src/devices/bus/plus4/c1551.cpp
+++ b/src/devices/bus/plus4/c1551.cpp
@@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( c1551 )
MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz)
MCFG_64H156_BYTE_CALLBACK(DEVWRITELINE(C64H156_TAG, c64h156_device, atni_w))
- MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1551_floppies, "525ssqd", c1551_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1551_floppies, "525ssqd", c1551_device::floppy_formats)
MCFG_PLUS4_PASSTHRU_EXPANSION_SLOT_ADD()
MACHINE_CONFIG_END
diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h
index f18e6425797..9f2d494fb7f 100644
--- a/src/devices/imagedev/floppy.h
+++ b/src/devices/imagedev/floppy.h
@@ -30,6 +30,11 @@
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
static_cast<floppy_connector *>(device)->set_formats(_formats);
+#define MCFG_FLOPPY_DRIVE_ADD_FIXED(_tag, _slot_intf, _def_slot, _formats) \
+ MCFG_DEVICE_ADD(_tag, FLOPPY_CONNECTOR, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, true) \
+ static_cast<floppy_connector *>(device)->set_formats(_formats);
+
#define MCFG_FLOPPY_DRIVE_SOUND(_doit) \
static_cast<floppy_connector *>(device)->enable_sound(_doit);
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp
index 86020e7719c..c31052f9982 100644
--- a/src/emu/validity.cpp
+++ b/src/emu/validity.cpp
@@ -1834,54 +1834,51 @@ void validity_checker::validate_devices()
// if it's a slot, iterate over possible cards (don't recurse, or you'll stack infinite tee connectors)
device_slot_interface *const slot = dynamic_cast<device_slot_interface *>(&device);
- if (slot && !slot->fixed())
+ if (slot != nullptr)
{
for (auto &option : slot->option_list())
{
- if (option.second->selectable())
- {
- std::string const card_tag(util::string_format("_%s", option.second->name()));
- device_t *const card = m_current_config->device_add(&slot->device(), card_tag.c_str(), option.second->devtype(), option.second->clock());
+ std::string const card_tag(util::string_format("_%s", option.second->name()));
+ device_t *const card = m_current_config->device_add(&slot->device(), card_tag.c_str(), option.second->devtype(), option.second->clock());
- const char *const def_bios = option.second->default_bios();
- if (def_bios)
- device_t::static_set_default_bios_tag(*card, def_bios);
- machine_config_constructor const additions = option.second->machine_config();
- if (additions)
- (*additions)(*m_current_config, card, card);
+ const char *const def_bios = option.second->default_bios();
+ if (def_bios)
+ device_t::static_set_default_bios_tag(*card, def_bios);
+ machine_config_constructor const additions = option.second->machine_config();
+ if (additions)
+ (*additions)(*m_current_config, card, card);
- for (device_slot_interface &subslot : slot_interface_iterator(*card))
+ for (device_slot_interface &subslot : slot_interface_iterator(*card))
+ {
+ if (subslot.fixed())
{
- if (subslot.default_option() && *subslot.default_option())
+ device_slot_option const *const suboption = subslot.option(subslot.default_option());
+ if (suboption)
{
- device_slot_option const *const suboption = subslot.option(subslot.default_option());
- if (suboption)
- {
- device_t *const sub_card = m_current_config->device_add(&subslot.device(), suboption->name(), suboption->devtype(), suboption->clock());
- const char *const sub_bios = suboption->default_bios();
- if (sub_bios)
- device_t::static_set_default_bios_tag(*sub_card, sub_bios);
- machine_config_constructor const sub_additions = suboption->machine_config();
- if (sub_additions)
- (*sub_additions)(*m_current_config, sub_card, sub_card);
- }
+ device_t *const sub_card = m_current_config->device_add(&subslot.device(), suboption->name(), suboption->devtype(), suboption->clock());
+ const char *const sub_bios = suboption->default_bios();
+ if (sub_bios)
+ device_t::static_set_default_bios_tag(*sub_card, sub_bios);
+ machine_config_constructor const sub_additions = suboption->machine_config();
+ if (sub_additions)
+ (*sub_additions)(*m_current_config, sub_card, sub_card);
}
}
+ }
- for (device_t &card_dev : device_iterator(*card))
- card_dev.config_complete();
- validate_roms(*card);
-
- for (device_t &card_dev : device_iterator(*card))
- {
- m_current_device = &card_dev;
- card_dev.findit(true);
- card_dev.validity_check(*this);
- m_current_device = nullptr;
- }
+ for (device_t &card_dev : device_iterator(*card))
+ card_dev.config_complete();
+ validate_roms(*card);
- m_current_config->device_remove(&slot->device(), card_tag.c_str());
+ for (device_t &card_dev : device_iterator(*card))
+ {
+ m_current_device = &card_dev;
+ card_dev.findit(true);
+ card_dev.validity_check(*this);
+ m_current_device = nullptr;
}
+
+ m_current_config->device_remove(&slot->device(), card_tag.c_str());
}
}
}