summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-09-08 17:33:06 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-09-08 17:33:06 +0200
commitc0b70ec30646ca6e6af9808eb8b965d82ffa4e44 (patch)
tree6e77367cd8bcb1d7dbf9296ba8d426a83052bb8d
parent1e3c05a1d7793d22f5acf7b6529ae1138f62ab29 (diff)
tms32025: removed MCFG macros (nw)
-rw-r--r--src/devices/cpu/tms32025/tms32025.h25
-rw-r--r--src/mame/drivers/coolpool.cpp15
-rw-r--r--src/mame/drivers/namcos21.cpp62
-rw-r--r--src/mame/drivers/namcos22.cpp76
-rw-r--r--src/mame/drivers/taitoair.cpp10
5 files changed, 83 insertions, 105 deletions
diff --git a/src/devices/cpu/tms32025/tms32025.h b/src/devices/cpu/tms32025/tms32025.h
index 47f116abd60..4deaac2423f 100644
--- a/src/devices/cpu/tms32025/tms32025.h
+++ b/src/devices/cpu/tms32025/tms32025.h
@@ -23,25 +23,6 @@
#pragma once
-#define MCFG_TMS32025_BIO_IN_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_bio_in_cb(DEVCB_##_devcb); /* BIO input */
-
-#define MCFG_TMS32025_HOLD_IN_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_hold_in_cb(DEVCB_##_devcb); /* HOLD input */
-
-#define MCFG_TMS32025_HOLD_ACK_OUT_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_hold_ack_out_cb(DEVCB_##_devcb); /* HOLD Acknowledge output */
-
-#define MCFG_TMS32025_XF_OUT_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_xf_out_cb(DEVCB_##_devcb); /* XF output */
-
-#define MCFG_TMS32025_DR_IN_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_dr_in_cb(DEVCB_##_devcb); /* Serial Data Receive input */
-
-#define MCFG_TMS32025_DX_OUT_CB(_devcb) \
- downcast<tms32025_device &>(*device).set_dx_out_cb(DEVCB_##_devcb); /* Serial Data Transmit output */
-
-
/****************************************************************************
* Interrupt constants
*/
@@ -84,12 +65,6 @@ public:
tms32025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- template<class Object> devcb_base &set_bio_in_cb(Object &&cb) { return m_bio_in.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_hold_in_cb(Object &&cb) { return m_hold_in.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_hold_ack_out_cb(Object &&cb) { return m_hold_ack_out.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_xf_out_cb(Object &&cb) { return m_xf_out.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_dr_in_cb(Object &&cb) { return m_dr_in.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_dx_out_cb(Object &&cb) { return m_dx_out.set_callback(std::forward<Object>(cb)); }
auto bio_in_cb() { return m_bio_in.bind(); }
auto hold_in_cb() { return m_hold_in.bind(); }
auto hold_ack_out_cb() { return m_hold_ack_out.bind(); }
diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp
index 14a5efa1a9c..6167a3d461a 100644
--- a/src/mame/drivers/coolpool.cpp
+++ b/src/mame/drivers/coolpool.cpp
@@ -764,12 +764,12 @@ MACHINE_CONFIG_START(coolpool_state::coolpool)
MCFG_TMS340X0_TO_SHIFTREG_CB(coolpool_state, to_shiftreg) /* write to shiftreg function */
MCFG_TMS340X0_FROM_SHIFTREG_CB(coolpool_state, from_shiftreg) /* read from shiftreg function */
- MCFG_DEVICE_ADD("dsp", TMS32026,XTAL(40'000'000))
- MCFG_DEVICE_PROGRAM_MAP(coolpool_dsp_pgm_map)
- MCFG_DEVICE_IO_MAP(coolpool_dsp_io_map)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, coolpool_state, dsp_bio_line_r))
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, coolpool_state, dsp_hold_line_r))
-// MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, coolpool_state, dsp_HOLDA_signal_w))
+ tms32026_device& dsp(TMS32026(config, m_dsp, XTAL(40'000'000)));
+ dsp.set_addrmap(AS_PROGRAM, &coolpool_state::coolpool_dsp_pgm_map);
+ dsp.set_addrmap(AS_IO, &coolpool_state::coolpool_dsp_io_map);
+ dsp.bio_in_cb().set(FUNC(coolpool_state::dsp_bio_line_r));
+ dsp.hold_in_cb().set(FUNC(coolpool_state::dsp_hold_line_r));
+// dsp.hold_ack_out_cb().set(FUNC(coolpool_state::dsp_HOLDA_signal_w));
MCFG_GENERIC_LATCH_16_ADD("main2dsp")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("dsp", 0)) /* ??? I have no idea who should generate this! */
@@ -805,8 +805,7 @@ MACHINE_CONFIG_START(coolpool_state::_9ballsht)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(nballsht_map)
- MCFG_DEVICE_MODIFY("dsp")
- MCFG_DEVICE_IO_MAP(nballsht_dsp_io_map)
+ subdevice<tms32026_device>("dsp")->set_addrmap(AS_IO, &coolpool_state::nballsht_dsp_io_map);
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp
index d7a135d46bc..7afbacf550b 100644
--- a/src/mame/drivers/namcos21.cpp
+++ b/src/mame/drivers/namcos21.cpp
@@ -1930,21 +1930,21 @@ MACHINE_CONFIG_START(namcos21_state::namcos21)
configure_c65_namcos21(config);
- MCFG_DEVICE_ADD("dspmaster", TMS32025,24000000) /* 24 MHz? overclocked */
- MCFG_DEVICE_PROGRAM_MAP(master_dsp_program)
- MCFG_DEVICE_DATA_MAP(master_dsp_data)
- MCFG_DEVICE_IO_MAP(master_dsp_io)
- MCFG_TMS32025_HOLD_IN_CB(CONSTANT(0))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(NOOP)
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos21_state, dsp_xf_w))
-
- MCFG_DEVICE_ADD("dspslave", TMS32025,24000000*4) /* 24 MHz?; overclocked */
- MCFG_DEVICE_PROGRAM_MAP(slave_dsp_program)
- MCFG_DEVICE_DATA_MAP(slave_dsp_data)
- MCFG_DEVICE_IO_MAP(slave_dsp_io)
- MCFG_TMS32025_HOLD_IN_CB(CONSTANT(0))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(NOOP)
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos21_state, slave_XF_output_w))
+ tms32025_device& dspmaster(TMS32025(config, m_dspmaster, 24000000)); /* 24 MHz? overclocked */
+ dspmaster.set_addrmap(AS_PROGRAM, &namcos21_state::master_dsp_program);
+ dspmaster.set_addrmap(AS_DATA, &namcos21_state::master_dsp_data);
+ dspmaster.set_addrmap(AS_IO, &namcos21_state::master_dsp_io);
+ dspmaster.hold_in_cb().set_constant(0);
+ dspmaster.hold_ack_out_cb().set_nop();
+ dspmaster.xf_out_cb().set(FUNC(namcos21_state::dsp_xf_w));
+
+ tms32025_device& dspslave(TMS32025(config, m_dspslave, 24000000*4)); /* 24 MHz? overclocked */
+ dspslave.set_addrmap(AS_PROGRAM, &namcos21_state::slave_dsp_program);
+ dspslave.set_addrmap(AS_DATA, &namcos21_state::slave_dsp_data);
+ dspslave.set_addrmap(AS_IO, &namcos21_state::slave_dsp_io);
+ dspslave.hold_in_cb().set_constant(0);
+ dspslave.hold_ack_out_cb().set_nop();
+ dspslave.xf_out_cb().set(FUNC(namcos21_state::slave_XF_output_w));
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
@@ -1995,14 +1995,14 @@ MACHINE_CONFIG_START(namcos21_state::driveyes)
configure_c65_namcos21(config);
- MCFG_DEVICE_ADD("dsp", TMS32025,24000000*2) /* 24 MHz? overclocked */
- MCFG_DEVICE_PROGRAM_MAP(winrun_dsp_program)
- MCFG_DEVICE_DATA_MAP(winrun_dsp_data)
- MCFG_DEVICE_IO_MAP(winrun_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos21_state, winrun_poly_reset_r))
- MCFG_TMS32025_HOLD_IN_CB(CONSTANT(0))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(NOOP)
- MCFG_TMS32025_XF_OUT_CB(NOOP)
+ tms32025_device& dsp(TMS32025(config, m_dsp, 24000000*2)); /* 24 MHz? overclocked */
+ dsp.set_addrmap(AS_PROGRAM, &namcos21_state::winrun_dsp_program);
+ dsp.set_addrmap(AS_DATA, &namcos21_state::winrun_dsp_data);
+ dsp.set_addrmap(AS_IO, &namcos21_state::winrun_dsp_io);
+ dsp.bio_in_cb().set(FUNC(namcos21_state::winrun_poly_reset_r));
+ dsp.hold_in_cb().set_constant(0);
+ dsp.hold_ack_out_cb().set_nop();
+ dsp.xf_out_cb().set_nop();
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
@@ -2054,14 +2054,14 @@ MACHINE_CONFIG_START(namcos21_state::winrun)
configure_c65_namcos21(config);
- MCFG_DEVICE_ADD("dsp", TMS32025,24000000) /* 24 MHz? overclocked */
- MCFG_DEVICE_PROGRAM_MAP(winrun_dsp_program)
- MCFG_DEVICE_DATA_MAP(winrun_dsp_data)
- MCFG_DEVICE_IO_MAP(winrun_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos21_state, winrun_poly_reset_r))
- MCFG_TMS32025_HOLD_IN_CB(CONSTANT(0))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(NOOP)
- MCFG_TMS32025_XF_OUT_CB(NOOP)
+ tms32025_device& dsp(TMS32025(config, m_dsp, 24000000)); /* 24 MHz? overclocked */
+ dsp.set_addrmap(AS_PROGRAM, &namcos21_state::winrun_dsp_program);
+ dsp.set_addrmap(AS_DATA, &namcos21_state::winrun_dsp_data);
+ dsp.set_addrmap(AS_IO, &namcos21_state::winrun_dsp_io);
+ dsp.bio_in_cb().set(FUNC(namcos21_state::winrun_poly_reset_r));
+ dsp.hold_in_cb().set_constant(0);
+ dsp.hold_ack_out_cb().set_nop();
+ dsp.xf_out_cb().set_nop();
MCFG_DEVICE_ADD("gpu", M68000,12288000) /* graphics coprocessor */
MCFG_DEVICE_PROGRAM_MAP(winrun_gpu_map)
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index ea9e61104cc..a2aeb4bbdbd 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -3759,26 +3759,28 @@ MACHINE_CONFIG_START(namcos22_state::namcos22)
MCFG_DEVICE_PROGRAM_MAP(namcos22_am)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos22_state, namcos22_interrupt)
- MCFG_DEVICE_ADD("master", TMS32025,SS22_MASTER_CLOCK) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(master_dsp_program)
- MCFG_DEVICE_DATA_MAP(master_dsp_data)
- MCFG_DEVICE_IO_MAP(master_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos22_state, pdp_status_r))
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, namcos22_state, dsp_hold_signal_r))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, namcos22_state, dsp_hold_ack_w))
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos22_state, dsp_xf_output_w))
- MCFG_TMS32025_DR_IN_CB(READ16(*this, namcos22_state, master_serial_io_r))
+ tms32025_device& master(TMS32025(config, m_master, SS22_MASTER_CLOCK)); /* ? */
+ master.set_addrmap(AS_PROGRAM, &namcos22_state::master_dsp_program);
+ master.set_addrmap(AS_DATA, &namcos22_state::master_dsp_data);
+ master.set_addrmap(AS_IO, &namcos22_state::master_dsp_io);
+ master.bio_in_cb().set(FUNC(namcos22_state::pdp_status_r));
+ master.hold_in_cb().set(FUNC(namcos22_state::dsp_hold_signal_r));
+ master.hold_ack_out_cb().set(FUNC(namcos22_state::dsp_hold_ack_w));
+ master.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w));
+ master.dr_in_cb().set(FUNC(namcos22_state::master_serial_io_r));
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("master_st", namcos22_state, dsp_master_serial_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("slave", TMS32025,SS22_MASTER_CLOCK) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(slave_dsp_program)
- MCFG_DEVICE_DATA_MAP(slave_dsp_data)
- MCFG_DEVICE_IO_MAP(slave_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos22_state, dsp_bioz_r))
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, namcos22_state, dsp_hold_signal_r))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, namcos22_state, dsp_hold_ack_w))
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos22_state, dsp_xf_output_w))
- MCFG_TMS32025_DX_OUT_CB(WRITE16(*this, namcos22_state, slave_serial_io_w))
+ tms32025_device& slave(TMS32025(config, m_slave, SS22_MASTER_CLOCK)); /* ? */
+ slave.set_addrmap(AS_PROGRAM, &namcos22_state::slave_dsp_program);
+ slave.set_addrmap(AS_DATA, &namcos22_state::slave_dsp_data);
+ slave.set_addrmap(AS_IO, &namcos22_state::slave_dsp_io);
+ slave.bio_in_cb().set(FUNC(namcos22_state::dsp_bioz_r));
+ slave.hold_in_cb().set(FUNC(namcos22_state::dsp_hold_signal_r));
+ slave.hold_ack_out_cb().set(FUNC(namcos22_state::dsp_hold_ack_w));
+ slave.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w));
+ slave.dx_out_cb().set(FUNC(namcos22_state::slave_serial_io_w));
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("slave_st", namcos22_state, dsp_slave_serial_irq, "screen", 0, 1)
MCFG_DEVICE_ADD("mcu", NAMCO_C74, SS22_MASTER_CLOCK/3) // C74 on the CPU board has no periodic interrupts, it runs entirely off Timer A0
@@ -3828,26 +3830,28 @@ MACHINE_CONFIG_START(namcos22_state::namcos22s)
MCFG_DEVICE_PROGRAM_MAP(namcos22s_am)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos22_state, namcos22s_interrupt)
- MCFG_DEVICE_ADD("master", TMS32025,SS22_MASTER_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(master_dsp_program)
- MCFG_DEVICE_DATA_MAP(master_dsp_data)
- MCFG_DEVICE_IO_MAP(master_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos22_state, pdp_status_r))
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, namcos22_state, dsp_hold_signal_r))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, namcos22_state, dsp_hold_ack_w))
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos22_state, dsp_xf_output_w))
- MCFG_TMS32025_DR_IN_CB(READ16(*this, namcos22_state, master_serial_io_r))
+ tms32025_device& master(TMS32025(config, m_master, SS22_MASTER_CLOCK));
+ master.set_addrmap(AS_PROGRAM, &namcos22_state::master_dsp_program);
+ master.set_addrmap(AS_DATA, &namcos22_state::master_dsp_data);
+ master.set_addrmap(AS_IO, &namcos22_state::master_dsp_io);
+ master.bio_in_cb().set(FUNC(namcos22_state::pdp_status_r));
+ master.hold_in_cb().set(FUNC(namcos22_state::dsp_hold_signal_r));
+ master.hold_ack_out_cb().set(FUNC(namcos22_state::dsp_hold_ack_w));
+ master.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w));
+ master.dr_in_cb().set(FUNC(namcos22_state::master_serial_io_r));
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("master_st", namcos22_state, dsp_master_serial_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("slave", TMS32025,SS22_MASTER_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(slave_dsp_program)
- MCFG_DEVICE_DATA_MAP(slave_dsp_data)
- MCFG_DEVICE_IO_MAP(slave_dsp_io)
- MCFG_TMS32025_BIO_IN_CB(READ16(*this, namcos22_state, dsp_bioz_r))
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, namcos22_state, dsp_hold_signal_r))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, namcos22_state, dsp_hold_ack_w))
- MCFG_TMS32025_XF_OUT_CB(WRITE16(*this, namcos22_state, dsp_xf_output_w))
- MCFG_TMS32025_DX_OUT_CB(WRITE16(*this, namcos22_state, slave_serial_io_w))
+ tms32025_device& slave(TMS32025(config, m_slave, SS22_MASTER_CLOCK));
+ slave.set_addrmap(AS_PROGRAM, &namcos22_state::slave_dsp_program);
+ slave.set_addrmap(AS_DATA, &namcos22_state::slave_dsp_data);
+ slave.set_addrmap(AS_IO, &namcos22_state::slave_dsp_io);
+ slave.bio_in_cb().set(FUNC(namcos22_state::dsp_bioz_r));
+ slave.hold_in_cb().set(FUNC(namcos22_state::dsp_hold_signal_r));
+ slave.hold_ack_out_cb().set(FUNC(namcos22_state::dsp_hold_ack_w));
+ slave.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w));
+ slave.dx_out_cb().set(FUNC(namcos22_state::slave_serial_io_w));
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("slave_st", namcos22_state, dsp_slave_serial_irq, "screen", 0, 1)
MCFG_DEVICE_ADD("mcu", M37710S4, SS22_MASTER_CLOCK/3)
diff --git a/src/mame/drivers/taitoair.cpp b/src/mame/drivers/taitoair.cpp
index bdddcf3e54f..5973c5b82e5 100644
--- a/src/mame/drivers/taitoair.cpp
+++ b/src/mame/drivers/taitoair.cpp
@@ -712,11 +712,11 @@ MACHINE_CONFIG_START(taitoair_state::airsys)
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000) / 4) // Z8400AB1
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("dsp", TMS32025, XTAL(36'000'000)) // Unverified
- MCFG_DEVICE_PROGRAM_MAP(DSP_map_program)
- MCFG_DEVICE_DATA_MAP(DSP_map_data)
- MCFG_TMS32025_HOLD_IN_CB(READ16(*this, taitoair_state, dsp_HOLD_signal_r))
- MCFG_TMS32025_HOLD_ACK_OUT_CB(WRITE16(*this, taitoair_state, dsp_HOLDA_signal_w))
+ tms32025_device& dsp(TMS32025(config, m_dsp, XTAL(36'000'000))); // Unverified
+ dsp.set_addrmap(AS_PROGRAM, &taitoair_state::DSP_map_program);
+ dsp.set_addrmap(AS_DATA, &taitoair_state::DSP_map_data);
+ dsp.hold_in_cb().set(FUNC(taitoair_state::dsp_HOLD_signal_r));
+ dsp.hold_ack_out_cb().set(FUNC(taitoair_state::dsp_HOLDA_signal_w));
MCFG_QUANTUM_PERFECT_CPU("maincpu")