diff options
author | 2018-12-31 01:05:07 +0100 | |
---|---|---|
committer | 2018-12-31 01:05:29 +0100 | |
commit | f8efff0afe11c3e9157823618613d89a5398f86f (patch) | |
tree | c011f70294d3abf70f1fa9bb1d98579d207cc600 /src | |
parent | 5fbf0cbfac36949349b5eff189c04093ae32f360 (diff) |
-devices/sound/cdp1869: Removed MCFG macros, nw
-video/cidelsa, comx35, pecom, tmc600: Removed MACHINE_CONFIG macros, nw
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/sound/cdp1869.h | 119 | ||||
-rw-r--r-- | src/mame/video/cidelsa.cpp | 71 | ||||
-rw-r--r-- | src/mame/video/comx35.cpp | 52 | ||||
-rw-r--r-- | src/mame/video/pecom.cpp | 24 | ||||
-rw-r--r-- | src/mame/video/tmc600.cpp | 26 |
5 files changed, 155 insertions, 137 deletions
diff --git a/src/devices/sound/cdp1869.h b/src/devices/sound/cdp1869.h index 1f67c9af3f0..96f8b4dbbf3 100644 --- a/src/devices/sound/cdp1869.h +++ b/src/devices/sound/cdp1869.h @@ -81,55 +81,14 @@ #include "emupal.h" #include "screen.h" - - //************************************************************************** -// INTERFACE CONFIGURATION MACROS +// TYPE DEFINITIONS //************************************************************************** -#define MCFG_CDP1869_ADD(_tag, _pixclock, _map) \ - MCFG_DEVICE_ADD(_tag, CDP1869, _pixclock) \ - MCFG_DEVICE_ADDRESS_MAP(0, _map) - -#define MCFG_CDP1869_SCREEN_PAL_ADD(_cdptag, _tag, _clock) \ - MCFG_SCREEN_ADD(_tag, RASTER) \ - MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ - MCFG_SCREEN_RAW_PARAMS(_clock, cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, cdp1869_device::TOTAL_SCANLINES_PAL, cdp1869_device::SCANLINE_VBLANK_END_PAL, cdp1869_device::SCANLINE_VBLANK_START_PAL) - -#define MCFG_CDP1869_SCREEN_NTSC_ADD(_cdptag, _tag, _clock) \ - MCFG_SCREEN_ADD(_tag, RASTER) \ - MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ - MCFG_SCREEN_RAW_PARAMS(_clock, cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, cdp1869_device::TOTAL_SCANLINES_NTSC, cdp1869_device::SCANLINE_VBLANK_END_NTSC, cdp1869_device::SCANLINE_VBLANK_START_NTSC) - -#define MCFG_CDP1869_SET_SCREEN MCFG_VIDEO_SET_SCREEN - #define CDP1869_CHAR_RAM_READ_MEMBER(name) uint8_t name(uint16_t pma, uint8_t cma, uint8_t pmd) #define CDP1869_CHAR_RAM_WRITE_MEMBER(name) void name(uint16_t pma, uint8_t cma, uint8_t pmd, uint8_t data) #define CDP1869_PCB_READ_MEMBER(name) int name(uint16_t pma, uint8_t cma, uint8_t pmd) -#define MCFG_CDP1869_PAL_NTSC_CALLBACK(_read) \ - downcast<cdp1869_device &>(*device).set_pal_ntsc_rd_callback(DEVCB_##_read); - -#define MCFG_CDP1869_PRD_CALLBACK(_write) \ - downcast<cdp1869_device &>(*device).set_prd_wr_callback(DEVCB_##_write); - -#define MCFG_CDP1869_COLOR_CLOCK(_clk) \ - downcast<cdp1869_device &>(*device).set_color_clock(_clk); - -#define MCFG_CDP1869_CHAR_RAM_READ_OWNER(_class, _method) \ - downcast<cdp1869_device &>(*device).set_char_ram_read(cdp1869_device::char_ram_read_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(_class, _method) \ - downcast<cdp1869_device &>(*device).set_char_ram_write(cdp1869_device::char_ram_write_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_CDP1869_CHAR_PCB_READ_OWNER(_class, _method) \ - downcast<cdp1869_device &>(*device).set_pcb_read(cdp1869_device::pcb_read_delegate(&_class::_method, #_class "::" #_method, this)); - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - // ======================> cdp1869_device class cdp1869_device : public device_t, @@ -182,21 +141,79 @@ public: static constexpr unsigned PALETTE_LENGTH = 8+64; - typedef device_delegate<uint8_t (uint16_t pma, uint8_t cma, uint8_t pmd)> char_ram_read_delegate; - typedef device_delegate<void (uint16_t pma, uint8_t cma, uint8_t pmd, uint8_t data)> char_ram_write_delegate; - typedef device_delegate<int (uint16_t pma, uint8_t cma, uint8_t pmd)> pcb_read_delegate; - // construction/destruction + template <typename T> + cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&addrmap) + : cdp1869_device(mconfig, tag, owner, clock) + { + set_addrmap(0, std::forward<T>(addrmap)); + } cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <class Object> devcb_base &set_pal_ntsc_rd_callback(Object &&cb) { return m_read_pal_ntsc.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_prd_wr_callback(Object &&cb) { return m_write_prd.set_callback(std::forward<Object>(cb)); } - template <typename Object> void set_char_ram_read(Object &&cb) { m_in_char_ram_func = std::forward<Object>(cb); } - template <typename Object> void set_char_ram_write(Object &&cb) { m_out_char_ram_func = std::forward<Object>(cb); } - template <typename Object> void set_pcb_read(Object &&cb) { m_in_pcb_func = std::forward<Object>(cb); } + auto pal_ntsc_callback() { return m_read_pal_ntsc.bind(); } + auto prd_callback() { return m_write_prd.bind(); } void set_color_clock(int color_clock) { m_color_clock = color_clock; } void set_color_clock(const XTAL &xtal) { xtal.validate("selecting cdp1869 clock"); set_color_clock(xtal.value()); } + // delegate setters + typedef device_delegate<uint8_t (uint16_t pma, uint8_t cma, uint8_t pmd)> char_ram_read_delegate; + void set_char_ram_read_callback(char_ram_read_delegate callback) { m_in_char_ram_func = callback; } + template <class FunctionClass> void set_char_ram_read_callback(const char *devname, + uint8_t (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) + { + set_char_ram_read_callback(char_ram_read_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); + } + template <class FunctionClass> void set_char_ram_read_callback( + uint8_t (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) + { + set_char_ram_read_callback(char_ram_read_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + + typedef device_delegate<void (uint16_t pma, uint8_t cma, uint8_t pmd, uint8_t data)> char_ram_write_delegate; + void set_char_ram_write_callback(char_ram_write_delegate callback) { m_out_char_ram_func = callback; } + template <class FunctionClass> void set_char_ram_write_callback(const char *devname, + void (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t, uint8_t), const char *name) + { + set_char_ram_write_callback(char_ram_write_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); + } + template <class FunctionClass> void set_char_ram_write_callback( + void (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t, uint8_t), const char *name) + { + set_char_ram_write_callback(char_ram_write_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + + typedef device_delegate<int (uint16_t pma, uint8_t cma, uint8_t pmd)> pcb_read_delegate; + void set_pcb_read_callback(pcb_read_delegate callback) { m_in_pcb_func = callback; } + template <class FunctionClass> void set_pcb_read_callback(const char *devname, + int (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) + { + set_pcb_read_callback(pcb_read_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); + } + template <class FunctionClass> void set_pcb_read_callback( + int (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) + { + set_pcb_read_callback(pcb_read_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + + // helper functions + template <typename T, typename U> screen_device& add_pal_screen(machine_config &config, T &&screen_tag, U &&clock) + { + screen_device &screen(SCREEN(config, std::forward<T>(screen_tag), SCREEN_TYPE_RASTER)); + screen.set_screen_update(tag(), FUNC(cdp1869_device::screen_update)); + screen.set_raw(std::forward<U>(clock), cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, + cdp1869_device::TOTAL_SCANLINES_PAL, cdp1869_device::SCANLINE_VBLANK_END_PAL, cdp1869_device::SCANLINE_VBLANK_START_PAL); + return screen; + } + + template <typename T, typename U> screen_device& add_ntsc_screen(machine_config &config, T &&screen_tag, U &&clock) + { + screen_device &screen(SCREEN(config, std::forward<T>(screen_tag), SCREEN_TYPE_RASTER)); + screen.set_screen_update(tag(), FUNC(cdp1869_device::screen_update)); + screen.set_raw(std::forward<U>(clock), cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, + cdp1869_device::TOTAL_SCANLINES_NTSC, cdp1869_device::SCANLINE_VBLANK_END_NTSC, cdp1869_device::SCANLINE_VBLANK_START_NTSC); + return screen; + } + virtual void io_map(address_map &map); virtual void char_map(address_map &map); virtual void page_map(address_map &map); diff --git a/src/mame/video/cidelsa.cpp b/src/mame/video/cidelsa.cpp index bc56502f0e4..a5d1832d4b8 100644 --- a/src/mame/video/cidelsa.cpp +++ b/src/mame/video/cidelsa.cpp @@ -150,47 +150,48 @@ WRITE8_MEMBER( draco_state::psg_pb_w ) /* Machine Drivers */ -MACHINE_CONFIG_START(cidelsa_state::destryer_video) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, DESTRYER_CHR2) - MCFG_SCREEN_DEFAULT_POSITION(1.226, 0.012, 1.4, 0.044) - +void cidelsa_state::destryer_video(machine_config &config) +{ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, DESTRYER_CHR2, cidelsa_page_ram) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(cidelsa_state, cidelsa_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(cidelsa_state, cidelsa_charram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(cidelsa_state, cidelsa_charram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, cidelsa_state, prd_w)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(cidelsa_state::altair_video) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, ALTAIR_CHR2) - MCFG_SCREEN_DEFAULT_POSITION(1.226, 0.012, 1.4, 0.044) + CDP1869(config, m_vis, DESTRYER_CHR2, &cidelsa_state::cidelsa_page_ram); + screen_device &screen(m_vis->add_pal_screen(config, SCREEN_TAG, DESTRYER_CHR2)); + screen.set_default_position(1.226, 0.012, 1.4, 0.044); + m_vis->set_pcb_read_callback(FUNC(cidelsa_state::cidelsa_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(cidelsa_state::cidelsa_charram_r)); + m_vis->set_char_ram_write_callback(FUNC(cidelsa_state::cidelsa_charram_w)); + m_vis->pal_ntsc_callback().set_constant(1); + m_vis->prd_callback().set(FUNC(cidelsa_state::prd_w)); + m_vis->add_route(ALL_OUTPUTS, "mono", 0.25); +} +void cidelsa_state::altair_video(machine_config &config) +{ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, ALTAIR_CHR2, cidelsa_page_ram) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(cidelsa_state, cidelsa_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(cidelsa_state, cidelsa_charram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(cidelsa_state, cidelsa_charram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, cidelsa_state, prd_w)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(draco_state::draco_video) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, DRACO_CHR2) - MCFG_SCREEN_DEFAULT_POSITION(1.226, 0.012, 1.360, 0.024) + CDP1869(config, m_vis, ALTAIR_CHR2, &cidelsa_state::cidelsa_page_ram); + screen_device &screen(m_vis->add_pal_screen(config, SCREEN_TAG, ALTAIR_CHR2)); + screen.set_default_position(1.226, 0.012, 1.4, 0.044); + m_vis->set_pcb_read_callback(FUNC(cidelsa_state::cidelsa_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(cidelsa_state::cidelsa_charram_r)); + m_vis->set_char_ram_write_callback(FUNC(cidelsa_state::cidelsa_charram_w)); + m_vis->pal_ntsc_callback().set_constant(1); + m_vis->prd_callback().set(FUNC(cidelsa_state::prd_w)); + m_vis->add_route(ALL_OUTPUTS, "mono", 0.25); +} +void draco_state::draco_video(machine_config &config) +{ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, DRACO_CHR2, draco_page_ram) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(draco_state, draco_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(draco_state, draco_charram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(draco_state, draco_charram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1)) + CDP1869(config, m_vis, DRACO_CHR2, &draco_state::draco_page_ram); + screen_device &screen(m_vis->add_pal_screen(config, SCREEN_TAG, DRACO_CHR2)); + screen.set_default_position(1.226, 0.012, 1.360, 0.024); + m_vis->set_pcb_read_callback(FUNC(draco_state::draco_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(draco_state::draco_charram_r)); + m_vis->set_char_ram_write_callback(FUNC(draco_state::draco_charram_w)); + m_vis->pal_ntsc_callback().set_constant(1); + m_vis->prd_callback().set_inputline(CDP1802_TAG, COSMAC_INPUT_LINE_EF1); + AY8910(config, m_psg, DRACO_SND_CHR1); m_psg->set_flags(AY8910_SINGLE_OUTPUT); m_psg->port_b_write_callback().set(FUNC(draco_state::psg_pb_w)); m_psg->add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/comx35.cpp b/src/mame/video/comx35.cpp index 7c31d10be56..3fcf318ee8b 100644 --- a/src/mame/video/comx35.cpp +++ b/src/mame/video/comx35.cpp @@ -89,40 +89,40 @@ void comx35_state::video_start() /* Machine Drivers */ -MACHINE_CONFIG_START(comx35_state::comx35_pal_video) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) - +void comx35_state::comx35_pal_video(machine_config &config) +{ /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(comx35_state, comx35_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(comx35_state, comx35_charram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(comx35_state, comx35_charram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, comx35_state, prd_w)) - MCFG_CDP1869_SET_SCREEN(SCREEN_TAG) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + CDP1869(config, m_vis, cdp1869_device::DOT_CLK_PAL, &comx35_state::cdp1869_page_ram); + m_vis->add_pal_screen(config, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL); + m_vis->set_color_clock(cdp1869_device::COLOR_CLK_PAL); + m_vis->set_pcb_read_callback(FUNC(comx35_state::comx35_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(comx35_state::comx35_charram_r)); + m_vis->set_char_ram_write_callback(FUNC(comx35_state::comx35_charram_w)); + m_vis->pal_ntsc_callback().set_constant(1); + m_vis->prd_callback().set(FUNC(comx35_state::prd_w)); + m_vis->set_screen(SCREEN_TAG); + m_vis->add_route(ALL_OUTPUTS, "mono", 0.25); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(comx35_state::comx35_ntsc_video) - MCFG_CDP1869_SCREEN_NTSC_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_NTSC) +} +void comx35_state::comx35_ntsc_video(machine_config &config) +{ /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_NTSC, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_NTSC) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(comx35_state, comx35_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(comx35_state, comx35_charram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(comx35_state, comx35_charram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(0)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, comx35_state, prd_w)) - MCFG_CDP1869_SET_SCREEN(SCREEN_TAG) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + CDP1869(config, m_vis, cdp1869_device::DOT_CLK_NTSC, &comx35_state::cdp1869_page_ram); + m_vis->add_ntsc_screen(config, SCREEN_TAG, cdp1869_device::DOT_CLK_NTSC); + m_vis->set_color_clock(cdp1869_device::COLOR_CLK_NTSC); + m_vis->set_pcb_read_callback(FUNC(comx35_state::comx35_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(comx35_state::comx35_charram_r)); + m_vis->set_char_ram_write_callback(FUNC(comx35_state::comx35_charram_w)); + m_vis->pal_ntsc_callback().set_constant(0); + m_vis->prd_callback().set(FUNC(comx35_state::prd_w)); + m_vis->set_screen(SCREEN_TAG); + m_vis->add_route(ALL_OUTPUTS, "mono", 0.25); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/pecom.cpp b/src/mame/video/pecom.cpp index 1cd4c67287f..1c583f3c0b8 100644 --- a/src/mame/video/pecom.cpp +++ b/src/mame/video/pecom.cpp @@ -91,18 +91,18 @@ void pecom_state::video_start() save_pointer(NAME(m_charram), PECOM_CHAR_RAM_SIZE); } -MACHINE_CONFIG_START(pecom_state::pecom_video) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) - +void pecom_state::pecom_video(machine_config &config) +{ SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(pecom_state, pecom_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(pecom_state, pecom_char_ram_r) - MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(pecom_state, pecom_char_ram_w) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, pecom_state, pecom_prd_w)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + CDP1869(config, m_cdp1869, cdp1869_device::DOT_CLK_PAL, &pecom_state::cdp1869_page_ram); + m_cdp1869->add_pal_screen(config, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL); + m_cdp1869->set_color_clock(cdp1869_device::COLOR_CLK_PAL); + m_cdp1869->set_pcb_read_callback(FUNC(pecom_state::pecom_pcb_r)); + m_cdp1869->set_char_ram_read_callback(FUNC(pecom_state::pecom_char_ram_r)); + m_cdp1869->set_char_ram_write_callback(FUNC(pecom_state::pecom_char_ram_w)); + m_cdp1869->pal_ntsc_callback().set_constant(1); + m_cdp1869->prd_callback().set(FUNC(pecom_state::pecom_prd_w)); + m_cdp1869->add_route(ALL_OUTPUTS, "mono", 0.25); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/tmc600.cpp b/src/mame/video/tmc600.cpp index bfa59a47995..7839a4c0229 100644 --- a/src/mame/video/tmc600.cpp +++ b/src/mame/video/tmc600.cpp @@ -116,20 +116,20 @@ static GFXDECODE_START( gfx_tmc600 ) GFXDECODE_ENTRY( "chargen", 0x0000, tmc600_charlayout, 0, 36 ) GFXDECODE_END -MACHINE_CONFIG_START(tmc600_state::tmc600_video) +void tmc600_state::tmc600_video(machine_config &config) +{ // video hardware - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, CDP1869_TAG":palette", gfx_tmc600) + GFXDECODE(config, "gfxdecode", CDP1869_TAG":palette", gfx_tmc600); // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) - MCFG_CDP1869_CHAR_PCB_READ_OWNER(tmc600_state, tmc600_pcb_r) - MCFG_CDP1869_CHAR_RAM_READ_OWNER(tmc600_state, tmc600_char_ram_r) - MCFG_CDP1869_PAL_NTSC_CALLBACK(CONSTANT(1)) - MCFG_CDP1869_PRD_CALLBACK(WRITELINE(*this, tmc600_state, prd_w)) - MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + CDP1869(config, m_vis, cdp1869_device::DOT_CLK_PAL, &tmc600_state::cdp1869_page_ram); + m_vis->add_pal_screen(config, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL); + m_vis->set_color_clock(cdp1869_device::COLOR_CLK_PAL); + m_vis->set_pcb_read_callback(FUNC(tmc600_state::tmc600_pcb_r)); + m_vis->set_char_ram_read_callback(FUNC(tmc600_state::tmc600_char_ram_r)); + m_vis->pal_ntsc_callback().set_constant(1); + m_vis->prd_callback().set(FUNC(tmc600_state::prd_w)); + m_vis->set_screen(SCREEN_TAG); + m_vis->add_route(ALL_OUTPUTS, "mono", 0.25); +} |