mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
-devices/sound/cdp1869: Removed MCFG macros, nw
-video/cidelsa, comx35, pecom, tmc600: Removed MACHINE_CONFIG macros, nw
This commit is contained in:
parent
5fbf0cbfac
commit
f8efff0afe
@ -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);
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user