summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author Michael Zapf <Michael.Zapf@mizapf.de>2018-08-21 20:04:41 +0200
committer Michael Zapf <Michael.Zapf@mizapf.de>2018-08-21 20:04:41 +0200
commit6bf57e9b143ee92f6a87cbf8ae8813add840feb6 (patch)
tree5afe470c84e07b4a94ecc39a0f7bfa3e343a3893 /src/mame
parent71da8e2ae2521d4c895520c85e45e3ccfdb56e30 (diff)
ti9x: Various MCFG removals. (nw)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/milton6805.cpp9
-rw-r--r--src/mame/drivers/ti990_10.cpp12
-rw-r--r--src/mame/drivers/ti990_4.cpp24
-rw-r--r--src/mame/drivers/ti99_4p.cpp51
-rw-r--r--src/mame/drivers/ti99_8.cpp1
-rw-r--r--src/mame/drivers/tm990189.cpp17
-rw-r--r--src/mame/drivers/tutor.cpp29
-rw-r--r--src/mame/video/733_asr.h16
-rw-r--r--src/mame/video/911_vdt.h9
9 files changed, 69 insertions, 99 deletions
diff --git a/src/mame/drivers/milton6805.cpp b/src/mame/drivers/milton6805.cpp
index 8aede5998f3..03789aff3c8 100644
--- a/src/mame/drivers/milton6805.cpp
+++ b/src/mame/drivers/milton6805.cpp
@@ -121,11 +121,10 @@ MACHINE_CONFIG_START(milton_state::milton)
MCFG_DEVICE_ADD("maincpu", M6805, 3120000) // MC6805P2, needs a CPU core
MCFG_DEVICE_PROGRAM_MAP(prg_map)
- MCFG_DEVICE_ADD("grom3", TMC0430, 3120000 / 8)
- downcast<tmc0430_device &>(*device).set_region_and_ident("groms", 0x0000, 0);
-
- MCFG_DEVICE_ADD("grom4", TMC0430, 3120000 / 8)
- downcast<tmc0430_device &>(*device).set_region_and_ident("groms", 0x2000, 1);
+ // GROMs. They still require a ready callback and external clock
+ // of 3120000/8 Hz, pulsing their glock_in line (see tmc0430.cpp and ti99_4x.cpp)
+ TMC0430(config, "grom3", "groms", 0x0000, 0);
+ TMC0430(config, "grom4", "groms", 0x2000, 1);
SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("sp0250", SP0250, 3120000)
diff --git a/src/mame/drivers/ti990_10.cpp b/src/mame/drivers/ti990_10.cpp
index 2b20aebe9ac..8ebe64d4728 100644
--- a/src/mame/drivers/ti990_10.cpp
+++ b/src/mame/drivers/ti990_10.cpp
@@ -325,17 +325,15 @@ MACHINE_CONFIG_START(ti990_10_state::ti990_10)
m_maincpu->set_addrmap(AS_IO, &ti990_10_state::ti990_10_io);
// VDT 911 terminal
- MCFG_DEVICE_ADD(m_terminal, VDT911, 0)
- MCFG_VDT911_KEYINT_HANDLER(WRITELINE(*this, ti990_10_state, key_interrupt))
- MCFG_VDT911_LINEINT_HANDLER(WRITELINE(*this, ti990_10_state, line_interrupt))
+ VDT911(config, m_terminal, 0);
+ m_terminal->keyint_cb().set(FUNC(ti990_10_state::key_interrupt));
+ m_terminal->lineint_cb().set(FUNC(ti990_10_state::line_interrupt));
// Hard disk
- MCFG_DEVICE_ADD("hdc", TI990_HDC, 0)
- MCFG_TI990_HDC_INT_CALLBACK(WRITELINE(*this, ti990_10_state, ti990_set_int13))
+ TI990_HDC(config, "hdc", 0).int_cb().set(FUNC(ti990_10_state::ti990_set_int13));
// Tape controller
- MCFG_DEVICE_ADD("tpc", TI990_TAPE_CTRL, 0)
- MCFG_TI990_TAPE_INT_HANDLER(WRITELINE(*this, ti990_10_state, tape_interrupt))
+ TI990_TAPE_CTRL(config, "tpc", 0).int_cb().set(FUNC(ti990_10_state::tape_interrupt));
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ti990_4.cpp b/src/mame/drivers/ti990_4.cpp
index 0f0186a8ddd..f816bd3156c 100644
--- a/src/mame/drivers/ti990_4.cpp
+++ b/src/mame/drivers/ti990_4.cpp
@@ -303,15 +303,14 @@ MACHINE_CONFIG_START(ti990_4_state::ti990_4)
MCFG_MACHINE_RESET_OVERRIDE(ti990_4_state, ti990_4 )
// Terminal
- MCFG_DEVICE_ADD("asr733", ASR733, 0)
- MCFG_ASR733_KEYINT_HANDLER(WRITELINE(*this, ti990_4_state, asrkey_interrupt))
- MCFG_ASR733_LINEINT_HANDLER(WRITELINE(*this, ti990_4_state, line_interrupt))
+ asr733_device& term(ASR733(config, "asr733", 0));
+ term.keyint_cb().set(FUNC(ti990_4_state::asrkey_interrupt));
+ term.lineint_cb().set(FUNC(ti990_4_state::line_interrupt));
// Floppy controller
- MCFG_DEVICE_ADD("fd800", TI99X_FD800, 0)
- MCFG_FD800_INT_HANDLER(WRITELINE(*this, ti990_4_state, fd_interrupt))
+ TI99X_FD800(config, "fd800", 0).int_cb().set(FUNC(ti990_4_state::fd_interrupt));
-// MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface)
+ // TODO: Add floppy drives
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ti990_4_state::ti990_4v)
@@ -323,16 +322,15 @@ MACHINE_CONFIG_START(ti990_4_state::ti990_4v)
m_maincpu->extop_cb().set(FUNC(ti990_4_state::external_operation));
m_maincpu->intlevel_cb().set(FUNC(ti990_4_state::interrupt_level));
- // Terminal
- MCFG_DEVICE_ADD("vdt911", VDT911, 0)
- MCFG_VDT911_KEYINT_HANDLER(WRITELINE(*this, ti990_4_state, vdtkey_interrupt))
- MCFG_VDT911_LINEINT_HANDLER(WRITELINE(*this, ti990_4_state, line_interrupt))
+ // VDT 911 terminal
+ vdt911_device& term(VDT911(config, "vdt911", 0));
+ term.keyint_cb().set(FUNC(ti990_4_state::vdtkey_interrupt));
+ term.lineint_cb().set(FUNC(ti990_4_state::line_interrupt));
// Floppy controller
- MCFG_DEVICE_ADD("fd800", TI99X_FD800, 0)
- MCFG_FD800_INT_HANDLER(WRITELINE(*this, ti990_4_state, fd_interrupt))
+ TI99X_FD800(config, "fd800", 0).int_cb().set(FUNC(ti990_4_state::fd_interrupt));
-// MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface)
+ // TODO: Add floppy drives
MACHINE_CONFIG_END
/*
diff --git a/src/mame/drivers/ti99_4p.cpp b/src/mame/drivers/ti99_4p.cpp
index 77334665dd8..19d3b1b8d98 100644
--- a/src/mame/drivers/ti99_4p.cpp
+++ b/src/mame/drivers/ti99_4p.cpp
@@ -123,18 +123,23 @@
#include "imagedev/cassette.h"
#include "machine/ram.h"
#include "machine/tms9901.h"
-#include "sound/wave.h"
#include "speaker.h"
#define TI99_SGCPU_TAG "sgcpu"
#define TI99_AMSRAM_TAG "amsram1meg"
-#define TRACE_ILLWRITE 0
-#define TRACE_READY 0
-#define TRACE_INT 0
-#define TRACE_ADDRESS 0
-#define TRACE_MEM 0
-#define TRACE_MUX 0
+// Debugging
+#define LOG_WARN (1U<<1) // Warnings
+#define LOG_ILLWRITE (1U<<2)
+#define LOG_READY (1U<<3)
+#define LOG_INT (1U<<4)
+#define LOG_ADDRESS (1U<<5)
+#define LOG_MEM (1U<<6)
+#define LOG_MUX (1U<<7)
+
+#define VERBOSE ( LOG_WARN )
+
+#include "logmacro.h"
class ti99_4p_state : public driver_device
{
@@ -440,7 +445,7 @@ READ8_MEMBER( ti99_4p_state::setoffset )
m_addr_buf = offset;
m_waitcount = 0;
- if (TRACE_ADDRESS) logerror("set address %04x\n", m_addr_buf);
+ LOGMASKED(LOG_ADDRESS, "set address %04x\n", m_addr_buf);
m_decode = SGCPU_NONE;
m_muxready = true;
@@ -523,7 +528,7 @@ READ16_MEMBER( ti99_4p_state::memread )
// Reading the even address now
m_peribox->readz(space, m_addr_buf, &hbyte);
m_peribox->memen_in(CLEAR_LINE);
- if (TRACE_MEM) logerror("Read even byte from address %04x -> %02x\n", m_addr_buf, hbyte);
+ LOGMASKED(LOG_MEM, "Read even byte from address %04x -> %02x\n", m_addr_buf, hbyte);
value = (hbyte<<8) | m_latch;
}
@@ -545,7 +550,7 @@ WRITE16_MEMBER( ti99_4p_state::memwrite )
switch (m_decode)
{
case SGCPU_SYSROM:
- if (TRACE_ILLWRITE) logerror("Ignoring ROM write access at %04x\n", m_addr_buf);
+ LOGMASKED(LOG_ILLWRITE, "Ignoring ROM write access at %04x\n", m_addr_buf);
break;
case SGCPU_RAM:
@@ -560,7 +565,7 @@ WRITE16_MEMBER( ti99_4p_state::memwrite )
break;
case SGCPU_INTDSR:
- if (TRACE_ILLWRITE) logerror("Ignoring DSR write access at %04x\n", m_addr_buf);
+ LOGMASKED(LOG_ILLWRITE, "Ignoring DSR write access at %04x\n", m_addr_buf);
break;
case SGCPU_MAPPER:
@@ -587,7 +592,7 @@ WRITE16_MEMBER( ti99_4p_state::memwrite )
m_latch = (data >> 8) & 0xff;
// write odd byte
- if (TRACE_MEM) logerror("datamux: write odd byte to address %04x <- %02x\n", m_addr_buf+1, data & 0xff);
+ LOGMASKED(LOG_MEM, "datamux: write odd byte to address %04x <- %02x\n", m_addr_buf+1, data & 0xff);
m_peribox->write(space, m_addr_buf+1, data & 0xff);
m_peribox->memen_in(CLEAR_LINE);
}
@@ -637,10 +642,10 @@ WRITE_LINE_MEMBER( ti99_4p_state::datamux_clock_in )
// return immediately if the datamux is currently inactive
if (m_waitcount>0)
{
- if (TRACE_MUX) logerror("datamux: wait count %d\n", m_waitcount);
+ LOGMASKED(LOG_MUX, "datamux: wait count %d\n", m_waitcount);
if (m_sysready==CLEAR_LINE)
{
- if (TRACE_MUX) logerror("datamux: stalled due to external READY=0\n");
+ LOGMASKED(LOG_MUX, "datamux: stalled due to external READY=0\n");
return;
}
@@ -660,7 +665,7 @@ WRITE_LINE_MEMBER( ti99_4p_state::datamux_clock_in )
m_peribox->readz(*m_spacep, m_addr_buf+1, &m_latch);
m_peribox->memen_in(CLEAR_LINE);
- if (TRACE_MEM) logerror("datamux: read odd byte from address %04x -> %02x\n", m_addr_buf+1, m_latch);
+ LOGMASKED(LOG_MEM, "datamux: read odd byte from address %04x -> %02x\n", m_addr_buf+1, m_latch);
// do the setaddress for the even address
m_peribox->memen_in(ASSERT_LINE);
@@ -687,7 +692,7 @@ WRITE_LINE_MEMBER( ti99_4p_state::datamux_clock_in )
m_peribox->setaddress_dbin(*m_spacep, m_addr_buf, m_dbin);
// write even byte
- if (TRACE_MEM) logerror("datamux: write even byte to address %04x <- %02x\n", m_addr_buf, m_latch);
+ LOGMASKED(LOG_MEM, "datamux: write even byte to address %04x <- %02x\n", m_addr_buf, m_latch);
m_peribox->write(*m_spacep, m_addr_buf, m_latch);
m_peribox->memen_in(CLEAR_LINE);
}
@@ -874,10 +879,7 @@ void ti99_4p_state::ready_join()
{
int combined = (m_sysready == ASSERT_LINE && m_muxready)? ASSERT_LINE : CLEAR_LINE;
- if (TRACE_READY)
- {
- if (m_ready_prev != combined) logerror("READY level = %d\n", combined);
- }
+ if (m_ready_prev != combined) LOGMASKED(LOG_READY, "READY level = %d\n", combined);
m_ready_prev = combined;
m_cpu->set_ready(combined);
}
@@ -887,10 +889,7 @@ void ti99_4p_state::ready_join()
*/
WRITE_LINE_MEMBER( ti99_4p_state::ready_line )
{
- if (TRACE_READY)
- {
- if (state != m_sysready) logerror("READY line from PBox = %d\n", state);
- }
+ if (state != m_sysready) LOGMASKED(LOG_READY, "READY line from PBox = %d\n", state);
m_sysready = (line_state)state;
// Also propagate to CPU via driver
ready_join();
@@ -906,13 +905,13 @@ void ti99_4p_state::set_9901_int( int line, line_state state)
WRITE_LINE_MEMBER( ti99_4p_state::extint )
{
- if (TRACE_INT) logerror("EXTINT level = %02x\n", state);
+ LOGMASKED(LOG_INT, "EXTINT level = %02x\n", state);
set_9901_int(1, (line_state)state);
}
WRITE_LINE_MEMBER( ti99_4p_state::notconnected )
{
- if (TRACE_INT) logerror("Setting a not connected line ... ignored\n");
+ LOGMASKED(LOG_INT, "Setting a not connected line ... ignored\n");
}
/*
diff --git a/src/mame/drivers/ti99_8.cpp b/src/mame/drivers/ti99_8.cpp
index 3e13fab920d..7c40a137f28 100644
--- a/src/mame/drivers/ti99_8.cpp
+++ b/src/mame/drivers/ti99_8.cpp
@@ -176,7 +176,6 @@ Known Issues (MZ, 2010-11-07)
#include "bus/ti99/ti99defs.h"
#include "sound/sn76496.h"
-#include "sound/wave.h"
#include "machine/tms9901.h"
#include "machine/tmc0430.h"
#include "imagedev/cassette.h"
diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp
index ab41a5286d8..8f5e56fa064 100644
--- a/src/mame/drivers/tm990189.cpp
+++ b/src/mame/drivers/tm990189.cpp
@@ -67,7 +67,6 @@
#include "machine/tms9901.h"
#include "machine/tms9902.h"
#include "sound/spkrdev.h"
-#include "sound/wave.h"
#include "video/tms9928a.h"
#include "speaker.h"
@@ -837,11 +836,10 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */
- MCFG_CASSETTE_ADD( "cassette" )
+ CASSETTE(config, "cassette", 0).add_route(ALL_OUTPUTS, "mono", 0.25);
TMS9901(config, m_tms9901_usr, 2000000);
m_tms9901_usr->p_out_cb(0).set(FUNC(tm990189_state::usr9901_led0_w));
@@ -870,10 +868,9 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189)
m_tms9901_sys->p_out_cb(15).set(FUNC(tm990189_state::sys9901_tapewdata_w));
m_tms9901_sys->intlevel_cb().set(FUNC(tm990189_state::sys9901_interrupt_callback));
- TMS9902(config, m_tms9902, 2000000);
- m_tms9902->xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted
+ TMS9902(config, m_tms9902, 2000000).xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted
+ TM990_189_RS232(config, "rs232", 0, m_tms9902);
- MCFG_DEVICE_ADD("rs232", TM990_189_RS232, 0, m_tms9902)
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_timer", tm990189_state, display_callback, attotime::from_hz(30))
// Need to delay the timer, or it will spoil the initial LOAD
// TODO: Fix this, probably inside CPU
@@ -900,11 +897,10 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* one two-level buzzer */
/* Devices */
- MCFG_CASSETTE_ADD( "cassette" )
+ CASSETTE(config, "cassette", 0).add_route(ALL_OUTPUTS, "mono", 0.25);
TMS9901(config, m_tms9901_usr, 2000000);
m_tms9901_usr->p_out_cb(0).set(FUNC(tm990189_state::usr9901_led0_w));
@@ -933,10 +929,9 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v)
m_tms9901_sys->p_out_cb(15).set(FUNC(tm990189_state::sys9901_tapewdata_w));
m_tms9901_sys->intlevel_cb().set(FUNC(tm990189_state::sys9901_interrupt_callback));
- TMS9902(config, m_tms9902, 2000000);
- m_tms9902->xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted
+ TMS9902(config, m_tms9902, 2000000).xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted;
+ TM990_189_RS232(config, "rs232", 0, m_tms9902);
- MCFG_DEVICE_ADD("rs232", TM990_189_RS232, 0, m_tms9902)
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_timer", tm990189_state, display_callback, attotime::from_hz(30))
MCFG_TIMER_START_DELAY(attotime::from_msec(150))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp
index 1878f588a1e..5d02eaff528 100644
--- a/src/mame/drivers/tutor.cpp
+++ b/src/mame/drivers/tutor.cpp
@@ -173,7 +173,6 @@ A=AMA, P=PRO, these keys don't exist, and so the games cannot be played.
#include "cpu/tms9900/tms9995.h"
#include "imagedev/cassette.h"
#include "sound/sn76496.h"
-#include "sound/wave.h"
#include "video/tms9928a.h"
#include "bus/centronics/ctronics.h"
@@ -752,32 +751,30 @@ MACHINE_CONFIG_START(tutor_state::tutor)
m_maincpu->set_addrmap(AS_PROGRAM, &tutor_state::tutor_memmap);
m_maincpu->set_addrmap(AS_IO, &tutor_state::tutor_io);
- /* video hardware */
+ // video hardware
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
vdp.set_screen("screen");
vdp.set_vram_size(0x4000);
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
- /* sound */
- SPEAKER(config, "mono").front_center();
+ // Sound
+ SPEAKER(config, "sound_out").front_center();
+ SN76489A(config, "sn76489a", 3579545).add_route(ALL_OUTPUTS, "sound_out", 0.75);
- MCFG_DEVICE_ADD("sn76489a", SN76489A, 3579545) /* 3.579545 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
-
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
-
- MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, tutor_state, write_centronics_busy))
+ CENTRONICS(config, m_centronics, centronics_devices, "printer").busy_handler().set(FUNC(tutor_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
- MCFG_CASSETTE_ADD( "cassette" )
+ // Cassette
+ SPEAKER(config, "cass_out").front_center();
+ CASSETTE(config, "cassette", 0).add_route(ALL_OUTPUTS, "cass_out", 0.25);
+
+ // Cartridge slot
+ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "tutor_cart", nullptr);
- /* cartridge */
- MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_linear_slot, "tutor_cart")
+ // software lists
+ SOFTWARE_LIST(config, "cart_list").set_type("tutor", SOFTWARE_LIST_ORIGINAL_SYSTEM);
- /* software lists */
- MCFG_SOFTWARE_LIST_ADD("cart_list","tutor")
MACHINE_CONFIG_END
MACHINE_CONFIG_START(tutor_state::pyuutajr)
diff --git a/src/mame/video/733_asr.h b/src/mame/video/733_asr.h
index 6d5527762bf..c76e533c391 100644
--- a/src/mame/video/733_asr.h
+++ b/src/mame/video/733_asr.h
@@ -24,14 +24,8 @@ public:
DECLARE_READ8_MEMBER(cru_r);
DECLARE_WRITE8_MEMBER(cru_w);
- template <class Object> devcb_base &set_keyint_callback(Object &&cb)
- {
- return m_keyint_line.set_callback(std::forward<Object>(cb));
- }
- template <class Object> devcb_base &set_lineint_callback(Object &&cb)
- {
- return m_lineint_line.set_callback(std::forward<Object>(cb));
- }
+ auto keyint_cb() { return m_keyint_line.bind(); }
+ auto lineint_cb() { return m_lineint_line.bind(); }
protected:
// device-level overrides
@@ -86,10 +80,4 @@ private:
DECLARE_DEVICE_TYPE(ASR733, asr733_device)
-#define MCFG_ASR733_KEYINT_HANDLER( _intcallb ) \
- downcast<asr733_device &>(*device).set_keyint_callback(DEVCB_##_intcallb);
-
-#define MCFG_ASR733_LINEINT_HANDLER( _intcallb ) \
- downcast<asr733_device &>(*device).set_lineint_callback(DEVCB_##_intcallb);
-
#endif // MAME_VIDEO_733_ASR
diff --git a/src/mame/video/911_vdt.h b/src/mame/video/911_vdt.h
index b92c0a9d748..fdbf0c8fb4f 100644
--- a/src/mame/video/911_vdt.h
+++ b/src/mame/video/911_vdt.h
@@ -59,6 +59,9 @@ public:
return m_lineint_line.set_callback(std::forward<Object>(cb));
}
+ auto keyint_cb() { return m_keyint_line.bind(); }
+ auto lineint_cb() { return m_lineint_line.bind(); }
+
protected:
// device-level overrides
void device_start() override;
@@ -114,10 +117,4 @@ private:
DECLARE_DEVICE_TYPE(VDT911, vdt911_device)
-#define MCFG_VDT911_KEYINT_HANDLER( _intcallb ) \
- downcast<vdt911_device &>(*device).set_keyint_callback(DEVCB_##_intcallb);
-
-#define MCFG_VDT911_LINEINT_HANDLER( _intcallb ) \
- downcast<vdt911_device &>(*device).set_lineint_callback(DEVCB_##_intcallb);
-
#endif // MAME_VIDEO_911_VDT_H