diff options
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 |
commit | fa9c035c8024e0f78fde882fb3e8437485ec91ae (patch) | |
tree | 4fb29b5714ac6c7fbde0aff8a60f0ee690a324bb /src/devices/bus | |
parent | f474673bc58555910852bae062f030283407c448 (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.h | 14 | ||||
-rw-r--r-- | src/devices/bus/a2bus/q68.h | 16 | ||||
-rw-r--r-- | src/devices/bus/amiga/keyboard/a2000.h | 30 | ||||
-rw-r--r-- | src/devices/bus/amiga/keyboard/mitsumi.cpp | 70 | ||||
-rw-r--r-- | src/devices/bus/mackbd/keyboard.cpp | 10 | ||||
-rw-r--r-- | src/devices/bus/mackbd/pluskbd.cpp | 4 |
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 { |