summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-09-06 23:41:35 +1000
committer Vas Crabb <vas@vastheman.com>2021-09-06 23:41:35 +1000
commitfa9c035c8024e0f78fde882fb3e8437485ec91ae (patch)
tree4fb29b5714ac6c7fbde0aff8a60f0ee690a324bb /src/devices/bus
parentf474673bc58555910852bae062f030283407c448 (diff)
Allow devices to specify a parent for the purpose of searching for ROMs.
Diffstat (limited to 'src/devices/bus')
-rw-r--r--src/devices/bus/a2bus/grappler.h14
-rw-r--r--src/devices/bus/a2bus/q68.h16
-rw-r--r--src/devices/bus/amiga/keyboard/a2000.h30
-rw-r--r--src/devices/bus/amiga/keyboard/mitsumi.cpp70
-rw-r--r--src/devices/bus/mackbd/keyboard.cpp10
-rw-r--r--src/devices/bus/mackbd/pluskbd.cpp4
6 files changed, 122 insertions, 22 deletions
diff --git a/src/devices/bus/a2bus/grappler.h b/src/devices/bus/a2bus/grappler.h
index 8e3857414da..6106c9bbd96 100644
--- a/src/devices/bus/a2bus/grappler.h
+++ b/src/devices/bus/a2bus/grappler.h
@@ -58,6 +58,12 @@
#include "cpu/mcs48/mcs48.h"
+DECLARE_DEVICE_TYPE(A2BUS_GRAPPLER, a2bus_grappler_device)
+DECLARE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device)
+DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUS, a2bus_buf_grapplerplus_device)
+DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUSA, a2bus_buf_grapplerplus_reva_device)
+
+
class a2bus_grappler_device_base : public device_t, public device_a2bus_card_interface
{
public:
@@ -270,15 +276,11 @@ class a2bus_buf_grapplerplus_reva_device : public a2bus_buf_grapplerplus_device
public:
a2bus_buf_grapplerplus_reva_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
+ static auto parent_rom_device_type() { return &A2BUS_BUFGRAPPLERPLUS; }
+
protected:
// device_t implementation
virtual void device_add_mconfig(machine_config &config) override;
};
-
-DECLARE_DEVICE_TYPE(A2BUS_GRAPPLER, a2bus_grappler_device)
-DECLARE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device)
-DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUS, a2bus_buf_grapplerplus_device)
-DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUSA, a2bus_buf_grapplerplus_reva_device)
-
#endif // MAME_BUS_A2BUS_GRAPPLERPLUS_H
diff --git a/src/devices/bus/a2bus/q68.h b/src/devices/bus/a2bus/q68.h
index c52c9567bc9..34664a284f0 100644
--- a/src/devices/bus/a2bus/q68.h
+++ b/src/devices/bus/a2bus/q68.h
@@ -15,6 +15,15 @@
#include "a2bus.h"
+
+//**************************************************************************
+// DEVICE TYPE DECLARATION
+//**************************************************************************
+
+DECLARE_DEVICE_TYPE(A2BUS_Q68, a2bus_q68_device)
+DECLARE_DEVICE_TYPE(A2BUS_Q68PLUS, a2bus_q68plus_device)
+
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -61,6 +70,8 @@ class a2bus_q68plus_device : public a2bus_68k_device
public:
a2bus_q68plus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ static auto parent_rom_device_type() { return &A2BUS_Q68; }
+
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -68,9 +79,4 @@ private:
void m68008_mem(address_map &map);
};
-
-// device type definition
-DECLARE_DEVICE_TYPE(A2BUS_Q68, a2bus_q68_device)
-DECLARE_DEVICE_TYPE(A2BUS_Q68PLUS, a2bus_q68plus_device)
-
#endif // MAME_BUS_A2BUS_Q68_H
diff --git a/src/devices/bus/amiga/keyboard/a2000.h b/src/devices/bus/amiga/keyboard/a2000.h
index 7a710f6ad37..806991be949 100644
--- a/src/devices/bus/amiga/keyboard/a2000.h
+++ b/src/devices/bus/amiga/keyboard/a2000.h
@@ -14,6 +14,17 @@
#include "keyboard.h"
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_US, bus::amiga::keyboard, a2000_kbd_g80_us_device)
+DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_DE, bus::amiga::keyboard, a2000_kbd_g80_de_device)
+DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_SE, bus::amiga::keyboard, a2000_kbd_g80_se_device)
+DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_DK, bus::amiga::keyboard, a2000_kbd_g80_dk_device)
+DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_GB, bus::amiga::keyboard, a2000_kbd_g80_gb_device)
+
+
namespace bus::amiga::keyboard {
//**************************************************************************
@@ -73,6 +84,8 @@ class a2000_kbd_g80_de_device : public a2000_kbd_g80_device
public:
a2000_kbd_g80_de_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ static auto parent_rom_device_type() { return &A2000_KBD_G80_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override;
};
@@ -84,6 +97,8 @@ class a2000_kbd_g80_se_device : public a2000_kbd_g80_device
public:
a2000_kbd_g80_se_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ static auto parent_rom_device_type() { return &A2000_KBD_G80_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override;
};
@@ -95,6 +110,8 @@ class a2000_kbd_g80_dk_device : public a2000_kbd_g80_device
public:
a2000_kbd_g80_dk_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ static auto parent_rom_device_type() { return &A2000_KBD_G80_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override;
};
@@ -106,21 +123,12 @@ class a2000_kbd_g80_gb_device : public a2000_kbd_g80_device
public:
a2000_kbd_g80_gb_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ static auto parent_rom_device_type() { return &A2000_KBD_G80_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override;
};
} // namespace bus::amiga::keyboard
-
-//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-
-DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_US, bus::amiga::keyboard, a2000_kbd_g80_us_device)
-DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_DE, bus::amiga::keyboard, a2000_kbd_g80_de_device)
-DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_SE, bus::amiga::keyboard, a2000_kbd_g80_se_device)
-DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_DK, bus::amiga::keyboard, a2000_kbd_g80_dk_device)
-DECLARE_DEVICE_TYPE_NS(A2000_KBD_G80_GB, bus::amiga::keyboard, a2000_kbd_g80_gb_device)
-
#endif // MAME_BUS_AMIGA_KEYBOARD_A2000_H
diff --git a/src/devices/bus/amiga/keyboard/mitsumi.cpp b/src/devices/bus/amiga/keyboard/mitsumi.cpp
index 038d8bb72d7..7557d04b95c 100644
--- a/src/devices/bus/amiga/keyboard/mitsumi.cpp
+++ b/src/devices/bus/amiga/keyboard/mitsumi.cpp
@@ -665,6 +665,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_US, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_us); }
};
@@ -676,6 +678,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_de); }
};
@@ -687,6 +691,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_fr); }
};
@@ -698,6 +704,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_it); }
};
@@ -709,6 +717,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_se); }
};
@@ -720,6 +730,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_es); }
};
@@ -731,6 +743,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_dk); }
};
@@ -742,6 +756,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_ch); }
};
@@ -753,6 +769,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_no); }
};
@@ -764,6 +782,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_gb); }
};
@@ -780,6 +800,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_US, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_us); }
};
@@ -791,6 +813,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_de); }
};
@@ -802,6 +826,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_fr); }
};
@@ -813,6 +839,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_it); }
};
@@ -824,6 +852,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_se); }
};
@@ -835,6 +865,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_es); }
};
@@ -846,6 +878,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_dk); }
};
@@ -857,6 +891,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_ch); }
};
@@ -868,6 +904,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_no); }
};
@@ -879,6 +917,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_gb); }
};
@@ -906,6 +946,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_de); }
};
@@ -917,6 +959,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_fr); }
};
@@ -928,6 +972,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_it); }
};
@@ -939,6 +985,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_se); }
};
@@ -950,6 +998,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_dk); }
};
@@ -961,6 +1011,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_gb); }
};
@@ -988,6 +1040,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_de); }
};
@@ -999,6 +1053,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_fr); }
};
@@ -1010,6 +1066,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_it); }
};
@@ -1021,6 +1079,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_se); }
};
@@ -1032,6 +1092,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_es); }
};
@@ -1043,6 +1105,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_dk); }
};
@@ -1054,6 +1118,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_ch); }
};
@@ -1065,6 +1131,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_no); }
};
@@ -1076,6 +1144,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_gb); }
};
diff --git a/src/devices/bus/mackbd/keyboard.cpp b/src/devices/bus/mackbd/keyboard.cpp
index 4f0de812c19..7818797904b 100644
--- a/src/devices/bus/mackbd/keyboard.cpp
+++ b/src/devices/bus/mackbd/keyboard.cpp
@@ -742,6 +742,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{
@@ -757,6 +759,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{
@@ -772,6 +776,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{
@@ -839,6 +845,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{
@@ -854,6 +862,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110; }
+
protected:
virtual void device_add_mconfig(machine_config &config) override
{
diff --git a/src/devices/bus/mackbd/pluskbd.cpp b/src/devices/bus/mackbd/pluskbd.cpp
index 6cc707607f4..de744f9219b 100644
--- a/src/devices/bus/mackbd/pluskbd.cpp
+++ b/src/devices/bus/mackbd/pluskbd.cpp
@@ -475,6 +475,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110A; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{
@@ -490,6 +492,8 @@ public:
{
}
+ static auto parent_rom_device_type() { return &MACKBD_M0110A; }
+
protected:
virtual ioport_constructor device_input_ports() const override
{