summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2021-06-20 17:32:35 -0400
committer AJR <ajrhacker@users.noreply.github.com>2021-06-20 17:34:42 -0400
commit87894e9c99a63d33100e982674d491234a432ca4 (patch)
tree361e10b3d8c846a0cb661ab55d4aea5232a30cf5
parentcf01398c86af96c7320726de6361e9bbca4db68c (diff)
adam, bw2, cbm2, newbrain, pet, plus4, pofo, vic10, vic20: Eliminate bus tag macros and legacy lookups; use finder arrays in some places
-rw-r--r--src/devices/bus/adam/exp.h8
-rw-r--r--src/devices/bus/bw2/exp.h7
-rw-r--r--src/devices/bus/cbm2/exp.cpp9
-rw-r--r--src/devices/bus/cbm2/exp.h7
-rw-r--r--src/devices/bus/newbrain/eim.cpp2
-rw-r--r--src/devices/bus/newbrain/exp.h7
-rw-r--r--src/devices/bus/newbrain/fdc.cpp14
-rw-r--r--src/devices/bus/newbrain/fdc.h5
-rw-r--r--src/devices/bus/pet/exp.h7
-rw-r--r--src/devices/bus/plus4/c1551.cpp4
-rw-r--r--src/devices/bus/plus4/exp.cpp9
-rw-r--r--src/devices/bus/plus4/exp.h7
-rw-r--r--src/devices/bus/pofo/exp.h7
-rw-r--r--src/devices/bus/pofo/hpc104.cpp2
-rw-r--r--src/devices/bus/vic10/exp.cpp9
-rw-r--r--src/devices/bus/vic10/exp.h8
-rw-r--r--src/devices/bus/vic20/exp.h8
-rw-r--r--src/devices/bus/vip/exp.h7
-rw-r--r--src/mame/drivers/adam.cpp34
-rw-r--r--src/mame/drivers/cbm2.cpp2
-rw-r--r--src/mame/drivers/pet.cpp2
-rw-r--r--src/mame/drivers/plus4.cpp2
-rw-r--r--src/mame/drivers/pofo.cpp2
-rw-r--r--src/mame/drivers/vic10.cpp2
-rw-r--r--src/mame/drivers/vic20.cpp2
-rw-r--r--src/mame/includes/adam.h8
-rw-r--r--src/mame/includes/bw2.h2
-rw-r--r--src/mame/includes/newbrain.h2
-rw-r--r--src/mame/includes/vip.h2
29 files changed, 38 insertions, 149 deletions
diff --git a/src/devices/bus/adam/exp.h b/src/devices/bus/adam/exp.h
index ee74bf0396a..d9e993c3a1f 100644
--- a/src/devices/bus/adam/exp.h
+++ b/src/devices/bus/adam/exp.h
@@ -15,14 +15,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define ADAM_LEFT_EXPANSION_SLOT_TAG "slot1"
-#define ADAM_CENTER_EXPANSION_SLOT_TAG "slot2"
-#define ADAM_RIGHT_EXPANSION_SLOT_TAG "slot3"
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h
index dfb5924351b..6c6acf11f9a 100644
--- a/src/devices/bus/bw2/exp.h
+++ b/src/devices/bus/bw2/exp.h
@@ -43,13 +43,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define BW2_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/cbm2/exp.cpp b/src/devices/bus/cbm2/exp.cpp
index 7bc35f33120..cc0f3516bc5 100644
--- a/src/devices/bus/cbm2/exp.cpp
+++ b/src/devices/bus/cbm2/exp.cpp
@@ -76,15 +76,6 @@ cbm2_expansion_slot_device::cbm2_expansion_slot_device(const machine_config &mco
void cbm2_expansion_slot_device::device_start()
{
m_card = get_card_device();
-
- // inherit bus clock
- // FIXME: this should be unnecessary as slots pass DERIVED_CLOCK(1, 1) through by default
- if (clock() == 0)
- {
- cbm2_expansion_slot_device *root = machine().device<cbm2_expansion_slot_device>(CBM2_EXPANSION_SLOT_TAG);
- assert(root);
- set_unscaled_clock(root->clock());
- }
}
diff --git a/src/devices/bus/cbm2/exp.h b/src/devices/bus/cbm2/exp.h
index 9781e4ac05a..b9f967137ca 100644
--- a/src/devices/bus/cbm2/exp.h
+++ b/src/devices/bus/cbm2/exp.h
@@ -34,13 +34,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define CBM2_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/newbrain/eim.cpp b/src/devices/bus/newbrain/eim.cpp
index be3cae2e615..7b3685eeea7 100644
--- a/src/devices/bus/newbrain/eim.cpp
+++ b/src/devices/bus/newbrain/eim.cpp
@@ -113,7 +113,7 @@ newbrain_eim_device::newbrain_eim_device(const machine_config &mconfig, const ch
device_newbrain_expansion_slot_interface(mconfig, *this),
m_ctc(*this, Z80CTC_TAG),
m_acia(*this, MC6850_TAG),
- m_exp(*this, NEWBRAIN_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_rom(*this, "eim"),
m_ram(*this, RAM_TAG)
{
diff --git a/src/devices/bus/newbrain/exp.h b/src/devices/bus/newbrain/exp.h
index e8293a9c540..922ef17213a 100644
--- a/src/devices/bus/newbrain/exp.h
+++ b/src/devices/bus/newbrain/exp.h
@@ -43,13 +43,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define NEWBRAIN_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/newbrain/fdc.cpp b/src/devices/bus/newbrain/fdc.cpp
index a356d034a39..fa046e0d5a9 100644
--- a/src/devices/bus/newbrain/fdc.cpp
+++ b/src/devices/bus/newbrain/fdc.cpp
@@ -135,11 +135,8 @@ newbrain_fdc_device::newbrain_fdc_device(const machine_config &mconfig, const ch
device_newbrain_expansion_slot_interface(mconfig, *this),
m_maincpu(*this, Z80_TAG),
m_fdc(*this, UPD765_TAG),
- m_floppy0(*this, UPD765_TAG ":0"),
- m_floppy1(*this, UPD765_TAG ":1"),
- m_floppy2(*this, UPD765_TAG ":2"),
- m_floppy3(*this, UPD765_TAG ":3"),
- m_exp(*this, NEWBRAIN_EXPANSION_SLOT_TAG)
+ m_floppy(*this, UPD765_TAG ":%u", 0U),
+ m_exp(*this, "exp")
{
}
@@ -224,10 +221,9 @@ void newbrain_fdc_device::iorq_w(offs_t offset, uint8_t data, bool &prtov)
void newbrain_fdc_device::moton(int state)
{
- 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_floppy2->get_device()) m_floppy2->get_device()->mon_w(!state);
- if (m_floppy3->get_device()) m_floppy3->get_device()->mon_w(!state);
+ for (auto &floppy : m_floppy)
+ if (floppy->get_device())
+ floppy->get_device()->mon_w(!state);
}
diff --git a/src/devices/bus/newbrain/fdc.h b/src/devices/bus/newbrain/fdc.h
index e5d6665a078..3ac24faffa6 100644
--- a/src/devices/bus/newbrain/fdc.h
+++ b/src/devices/bus/newbrain/fdc.h
@@ -57,10 +57,7 @@ private:
required_device<z80_device> m_maincpu;
required_device<upd765a_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- required_device<floppy_connector> m_floppy1;
- required_device<floppy_connector> m_floppy2;
- required_device<floppy_connector> m_floppy3;
+ required_device_array<floppy_connector, 4> m_floppy;
required_device<newbrain_expansion_slot_device> m_exp;
void moton(int state);
diff --git a/src/devices/bus/pet/exp.h b/src/devices/bus/pet/exp.h
index d3adf1e9262..14fe9296a8d 100644
--- a/src/devices/bus/pet/exp.h
+++ b/src/devices/bus/pet/exp.h
@@ -17,13 +17,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define PET_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp
index 5811f7b42f7..b8ecd0b7642 100644
--- a/src/devices/bus/plus4/c1551.cpp
+++ b/src/devices/bus/plus4/c1551.cpp
@@ -368,7 +368,7 @@ void c1551_device::device_add_mconfig(machine_config &config)
connector.set_fixed(true);
connector.set_formats(c1551_device::floppy_formats);
- PLUS4_EXPANSION_SLOT(config, m_exp, 0);
+ PLUS4_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1));
m_exp->irq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(plus4_expansion_slot_device::irq_w));
m_exp->cd_rd_callback().set(DEVICE_SELF_OWNER, FUNC(plus4_expansion_slot_device::dma_cd_r));
m_exp->cd_wr_callback().set(DEVICE_SELF_OWNER, FUNC(plus4_expansion_slot_device::dma_cd_w));
@@ -417,7 +417,7 @@ c1551_device::c1551_device(const machine_config &mconfig, const char *tag, devic
, m_ga(*this, C64H156_TAG)
, m_pla(*this, PLA_TAG)
, m_floppy(*this, C64H156_TAG":0:525ssqd")
- , m_exp(*this, PLUS4_EXPANSION_SLOT_TAG)
+ , m_exp(*this, "exp")
, m_jp1(*this, "JP1")
, m_leds(*this, "led%u", 0U)
, m_tcbm_data(0xff)
diff --git a/src/devices/bus/plus4/exp.cpp b/src/devices/bus/plus4/exp.cpp
index f47e9d5fac3..fb0387908ef 100644
--- a/src/devices/bus/plus4/exp.cpp
+++ b/src/devices/bus/plus4/exp.cpp
@@ -90,15 +90,6 @@ void plus4_expansion_slot_device::device_start()
m_read_dma_cd.resolve_safe(0xff);
m_write_dma_cd.resolve_safe();
m_write_aec.resolve_safe();
-
- // inherit bus clock
- // FIXME: this should be unnecessary as slots pass DERIVED_CLOCK(1, 1) through by default
- if (clock() == 0)
- {
- plus4_expansion_slot_device *root = machine().device<plus4_expansion_slot_device>(PLUS4_EXPANSION_SLOT_TAG);
- assert(root);
- set_unscaled_clock(root->clock());
- }
}
diff --git a/src/devices/bus/plus4/exp.h b/src/devices/bus/plus4/exp.h
index fb03fb7fd4b..785207dd4f1 100644
--- a/src/devices/bus/plus4/exp.h
+++ b/src/devices/bus/plus4/exp.h
@@ -43,13 +43,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define PLUS4_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/pofo/exp.h b/src/devices/bus/pofo/exp.h
index f760ce694c3..4078535e2c7 100644
--- a/src/devices/bus/pofo/exp.h
+++ b/src/devices/bus/pofo/exp.h
@@ -48,13 +48,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define PORTFOLIO_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/pofo/hpc104.cpp b/src/devices/bus/pofo/hpc104.cpp
index 2cf0d03b825..0d8953b20c6 100644
--- a/src/devices/bus/pofo/hpc104.cpp
+++ b/src/devices/bus/pofo/hpc104.cpp
@@ -100,7 +100,7 @@ pofo_hpc104_device::pofo_hpc104_device(const machine_config &mconfig, device_typ
device_portfolio_expansion_slot_interface(mconfig, *this),
device_nvram_interface(mconfig, *this),
m_ccm(*this, PORTFOLIO_MEMORY_CARD_SLOT_B_TAG),
- m_exp(*this, PORTFOLIO_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_nvram(*this, "nvram", 0x40000, ENDIANNESS_LITTLE),
m_io_sw1(*this, "SW1")
{
diff --git a/src/devices/bus/vic10/exp.cpp b/src/devices/bus/vic10/exp.cpp
index 69c33da6a1d..48f42ad73c1 100644
--- a/src/devices/bus/vic10/exp.cpp
+++ b/src/devices/bus/vic10/exp.cpp
@@ -79,15 +79,6 @@ void vic10_expansion_slot_device::device_start()
m_write_res.resolve_safe();
m_write_cnt.resolve_safe();
m_write_sp.resolve_safe();
-
- // inherit bus clock
- // FIXME: this should be unnecessary as slots pass DERIVED_CLOCK(1, 1) through by default
- if (clock() == 0)
- {
- vic10_expansion_slot_device *root = machine().device<vic10_expansion_slot_device>(VIC10_EXPANSION_SLOT_TAG);
- assert(root);
- set_unscaled_clock(root->clock());
- }
}
diff --git a/src/devices/bus/vic10/exp.h b/src/devices/bus/vic10/exp.h
index 20d21f99e1c..c2b1f52ec70 100644
--- a/src/devices/bus/vic10/exp.h
+++ b/src/devices/bus/vic10/exp.h
@@ -41,14 +41,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define VIC10_EXPANSION_SLOT_TAG "exp"
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/vic20/exp.h b/src/devices/bus/vic20/exp.h
index 96583a29577..dab459cf7bf 100644
--- a/src/devices/bus/vic20/exp.h
+++ b/src/devices/bus/vic20/exp.h
@@ -40,14 +40,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define VIC20_EXPANSION_SLOT_TAG "exp"
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/bus/vip/exp.h b/src/devices/bus/vip/exp.h
index bb9cd203690..aa50074e9ca 100644
--- a/src/devices/bus/vip/exp.h
+++ b/src/devices/bus/vip/exp.h
@@ -40,13 +40,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define VIP_EXPANSION_SLOT_TAG "exp"
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index c4052ae3162..d3abeeeb31e 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -458,9 +458,9 @@ uint8_t adam_state::mreq_r(offs_t offset)
}
data = m_cart->bd_r(offset & 0x7fff, data, cs1, cs2, cs3, cs4);
- data = m_slot1->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
- data = m_slot2->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- data = m_slot3->bd_r(offset, data, 1, 1, 1, cas1, cas2);
+ data = m_slot[0]->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ data = m_slot[1]->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ data = m_slot[2]->bd_r(offset, data, 1, 1, 1, cas1, cas2);
return data;
}
@@ -516,9 +516,9 @@ void adam_state::mreq_w(offs_t offset, uint8_t data)
m_ram->pointer()[offset] = data;
}
- m_slot1->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
- m_slot2->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- m_slot3->bd_w(offset, data, 1, 1, 1, cas1, cas2);
+ m_slot[0]->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ m_slot[1]->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ m_slot[2]->bd_w(offset, data, 1, 1, 1, cas1, cas2);
}
@@ -557,9 +557,9 @@ uint8_t adam_state::iorq_r(offs_t offset)
break;
}
- data = m_slot1->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
- data = m_slot2->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- data = m_slot3->bd_r(offset, data, 1, 1, 1, cas1, cas2);
+ data = m_slot[0]->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ data = m_slot[1]->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ data = m_slot[2]->bd_r(offset, data, 1, 1, 1, cas1, cas2);
return data;
}
@@ -609,9 +609,9 @@ void adam_state::iorq_w(offs_t offset, uint8_t data)
break;
}
- m_slot1->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
- m_slot2->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- m_slot3->bd_w(offset, data, 1, 1, 1, cas1, cas2);
+ m_slot[0]->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ m_slot[1]->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ m_slot[2]->bd_w(offset, data, 1, 1, 1, cas1, cas2);
}
@@ -1076,11 +1076,11 @@ void adam_state::adam(machine_config &config)
ADAMNET_SLOT(config, "net15", m_adamnet, adamnet_devices, nullptr);
COLECOVISION_CARTRIDGE_SLOT(config, m_cart, colecovision_cartridges, nullptr);
- ADAM_EXPANSION_SLOT(config, m_slot1, XTAL(7'159'090)/2, adam_slot1_devices, "adamlink");
- m_slot1->irq().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- ADAM_EXPANSION_SLOT(config, m_slot2, XTAL(7'159'090)/2, adam_slot2_devices, nullptr);
- m_slot2->irq().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- ADAM_EXPANSION_SLOT(config, m_slot3, XTAL(7'159'090)/2, adam_slot3_devices, "ram");
+ ADAM_EXPANSION_SLOT(config, m_slot[0], XTAL(7'159'090)/2, adam_slot1_devices, "adamlink"); // left
+ m_slot[0]->irq().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ ADAM_EXPANSION_SLOT(config, m_slot[1], XTAL(7'159'090)/2, adam_slot2_devices, nullptr); // center
+ m_slot[1]->irq().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ ADAM_EXPANSION_SLOT(config, m_slot[2], XTAL(7'159'090)/2, adam_slot3_devices, "ram"); // right
COLECOVISION_CONTROL_PORT(config, m_joy1, colecovision_control_port_devices, "hand");
m_joy1->irq().set(FUNC(adam_state::joy1_irq_w));
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index f9f45d9e660..6a4e1eb5cd6 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -81,7 +81,7 @@ public:
m_ieee2(*this, DS75161A_TAG),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG),
- m_exp(*this, CBM2_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_user(*this, USER_PORT_TAG),
m_ram(*this, RAM_TAG),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index c6520fffa3e..f67490ba38a 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -202,7 +202,7 @@ public:
m_palette(*this, "palette"),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
m_cassette2(*this, PET_DATASSETTE_PORT2_TAG),
- m_exp(*this, PET_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_user(*this, PET_USER_PORT_TAG),
m_speaker(*this, "speaker"),
m_cart_9000(*this, "cart_9000"),
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 75ee574eb33..c7d44f5fba5 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -61,7 +61,7 @@ public:
m_iec(*this, CBM_IEC_TAG),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG),
- m_exp(*this, PLUS4_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_user(*this, PET_USER_PORT_TAG),
m_ram(*this, RAM_TAG),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp
index 66e20a90ec3..70d3cf11108 100644
--- a/src/mame/drivers/pofo.cpp
+++ b/src/mame/drivers/pofo.cpp
@@ -81,7 +81,7 @@ public:
m_keyboard(*this, "keyboard"),
m_dtmf(*this, PCD3311T_TAG),
m_ccm(*this, PORTFOLIO_MEMORY_CARD_SLOT_A_TAG),
- m_exp(*this, PORTFOLIO_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_timer_tick(*this, TIMER_TICK_TAG),
m_nvram(*this, "nvram"),
m_ram(*this, "ram"),
diff --git a/src/mame/drivers/vic10.cpp b/src/mame/drivers/vic10.cpp
index b41700fbbcb..3d43698692c 100644
--- a/src/mame/drivers/vic10.cpp
+++ b/src/mame/drivers/vic10.cpp
@@ -42,7 +42,7 @@ public:
m_cia(*this, MOS6526_TAG),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG),
- m_exp(*this, VIC10_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_ram(*this, RAM_TAG),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
m_color_ram(*this, "color_ram", 0x400, ENDIANNESS_LITTLE),
diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp
index b3b030a876d..4c6058c2c97 100644
--- a/src/mame/drivers/vic20.cpp
+++ b/src/mame/drivers/vic20.cpp
@@ -44,7 +44,7 @@ public:
m_vic(*this, VIC_TAG),
m_iec(*this, CBM_IEC_TAG),
m_joy(*this, CONTROL1_TAG),
- m_exp(*this, VIC20_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_user(*this, PET_USER_PORT_TAG),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
m_ram(*this, RAM_TAG),
diff --git a/src/mame/includes/adam.h b/src/mame/includes/adam.h
index e4f74309486..723b3edabc0 100644
--- a/src/mame/includes/adam.h
+++ b/src/mame/includes/adam.h
@@ -35,9 +35,7 @@ public:
m_psg(*this, SN76489A_TAG),
m_ram(*this, RAM_TAG),
m_adamnet(*this, "adamnet"),
- m_slot1(*this, ADAM_LEFT_EXPANSION_SLOT_TAG),
- m_slot2(*this, ADAM_CENTER_EXPANSION_SLOT_TAG),
- m_slot3(*this, ADAM_RIGHT_EXPANSION_SLOT_TAG),
+ m_slot(*this, "slot%u", 1U),
m_cart(*this, COLECOVISION_CARTRIDGE_SLOT_TAG),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG),
@@ -57,9 +55,7 @@ public:
required_device<sn76489a_device> m_psg;
required_device<ram_device> m_ram;
required_device<adamnet_device> m_adamnet;
- required_device<adam_expansion_slot_device> m_slot1;
- required_device<adam_expansion_slot_device> m_slot2;
- required_device<adam_expansion_slot_device> m_slot3;
+ required_device_array<adam_expansion_slot_device, 3> m_slot;
required_device<colecovision_cartridge_slot_device> m_cart;
required_device<colecovision_control_port_device> m_joy1;
required_device<colecovision_control_port_device> m_joy2;
diff --git a/src/mame/includes/bw2.h b/src/mame/includes/bw2.h
index d4d64e68388..01f31234785 100644
--- a/src/mame/includes/bw2.h
+++ b/src/mame/includes/bw2.h
@@ -37,7 +37,7 @@ public:
m_lcdc(*this, MSM6255_TAG),
m_pit(*this, "ic6"),
m_centronics(*this, CENTRONICS_TAG),
- m_exp(*this, BW2_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_ram(*this, RAM_TAG),
m_floppy0(*this, WD2797_TAG":0"),
m_floppy1(*this, WD2797_TAG":1"),
diff --git a/src/mame/includes/newbrain.h b/src/mame/includes/newbrain.h
index 80eb1dec811..381b8e53682 100644
--- a/src/mame/includes/newbrain.h
+++ b/src/mame/includes/newbrain.h
@@ -30,7 +30,7 @@ public:
m_maincpu(*this, Z80_TAG),
m_cop(*this, COP420_TAG),
m_palette(*this, "palette"),
- m_exp(*this, NEWBRAIN_EXPANSION_SLOT_TAG),
+ m_exp(*this, "exp"),
m_cassette1(*this, "cassette1"),
m_cassette2(*this, "cassette2"),
m_rs232_v24(*this, RS232_V24_TAG),
diff --git a/src/mame/includes/vip.h b/src/mame/includes/vip.h
index 785df2b45ba..7f1013779e2 100644
--- a/src/mame/includes/vip.h
+++ b/src/mame/includes/vip.h
@@ -30,7 +30,7 @@ public:
, m_cassette(*this, "cassette")
, m_beeper(*this, DISCRETE_TAG)
, m_byteio(*this, VIP_BYTEIO_PORT_TAG)
- , m_exp(*this, VIP_EXPANSION_SLOT_TAG)
+ , m_exp(*this, "exp")
, m_ram(*this, RAM_TAG)
, m_rom(*this, CDP1802_TAG)
, m_chip8(*this, "chip8")