Skip to content

Commit e47821d

Browse files
committed
tatrain: template instead of macro for cpu config
1 parent 778d0c6 commit e47821d

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

src/mame/saitek/tatrain.cpp

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class tatrain_state : public driver_device
6868
m_inputs(*this, "IN.%u", 0)
6969
{ }
7070

71+
template <typename T> void cpu_config(T &maincpu);
7172
void shared(machine_config &config);
7273
void tatrain(machine_config &config);
7374
void tatraina(machine_config &config);
@@ -195,19 +196,22 @@ INPUT_PORTS_END
195196
Machine Configs
196197
*******************************************************************************/
197198

198-
#define CPU_CONFIG() \
199-
maincpu.nvram_enable_backup(true); \
200-
maincpu.standby_cb().set(m_maincpu, FUNC(h8_device::nvram_set_battery)); \
201-
maincpu.standby_cb().append([this](int state) { if (state) m_display->clear(); }); \
202-
maincpu.write_port1().set(FUNC(tatrain_state::leds_w<0>)); \
203-
maincpu.write_port2().set(FUNC(tatrain_state::leds_w<1>)); \
204-
maincpu.write_port3().set(FUNC(tatrain_state::leds_w<2>)); \
205-
maincpu.read_port4().set(FUNC(tatrain_state::p4_r)); \
206-
maincpu.read_port5().set_constant(0xff); \
207-
maincpu.write_port5().set(FUNC(tatrain_state::p5_w)); \
208-
maincpu.read_port6().set_ioport("IN.2").invert(); \
209-
maincpu.write_port6().set(FUNC(tatrain_state::p6_w)); \
210-
maincpu.write_port7().set(FUNC(tatrain_state::p7_w))
199+
template <typename T>
200+
void tatrain_state::cpu_config(T &maincpu)
201+
{
202+
maincpu.nvram_enable_backup(true);
203+
maincpu.standby_cb().set(m_maincpu, FUNC(h8_device::nvram_set_battery));
204+
maincpu.standby_cb().append([this](int state) { if (state) m_display->clear(); });
205+
maincpu.write_port1().set(FUNC(tatrain_state::leds_w<0>));
206+
maincpu.write_port2().set(FUNC(tatrain_state::leds_w<1>));
207+
maincpu.write_port3().set(FUNC(tatrain_state::leds_w<2>));
208+
maincpu.read_port4().set(FUNC(tatrain_state::p4_r));
209+
maincpu.read_port5().set_constant(0xff);
210+
maincpu.write_port5().set(FUNC(tatrain_state::p5_w));
211+
maincpu.read_port6().set_ioport("IN.2").invert();
212+
maincpu.write_port6().set(FUNC(tatrain_state::p6_w));
213+
maincpu.write_port7().set(FUNC(tatrain_state::p7_w));
214+
}
211215

212216
void tatrain_state::shared(machine_config &config)
213217
{
@@ -229,17 +233,15 @@ void tatrain_state::shared(machine_config &config)
229233
void tatrain_state::tatrain(machine_config &config)
230234
{
231235
H83212(config, m_maincpu, 10_MHz_XTAL);
232-
auto &maincpu = downcast<h83212_device &>(*m_maincpu);
233-
CPU_CONFIG();
236+
cpu_config<h83212_device>(downcast<h83212_device &>(*m_maincpu));
234237

235238
shared(config);
236239
}
237240

238241
void tatrain_state::tatraina(machine_config &config)
239242
{
240243
H8323(config, m_maincpu, 20_MHz_XTAL);
241-
auto &maincpu = downcast<h8323_device &>(*m_maincpu);
242-
CPU_CONFIG();
244+
cpu_config<h8323_device>(downcast<h8323_device &>(*m_maincpu));
243245

244246
shared(config);
245247
}

0 commit comments

Comments
 (0)