From 4a4898a6b29faff9d03c4a7e4b2ff9ef108e54fc Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 8 Sep 2018 10:05:06 -0400 Subject: scn2674/scn2672: Remove MCFG macros (nw) --- src/devices/video/scn2674.h | 36 +++++++++++-------------- src/mame/drivers/ampex210.cpp | 27 ++++++++++--------- src/mame/drivers/cit220.cpp | 47 +++++++++++++++++---------------- src/mame/drivers/microterm.cpp | 60 ++++++++++++++++++++++-------------------- src/mame/drivers/mpu4vid.cpp | 10 +++---- src/mame/drivers/octopus.cpp | 12 ++++----- src/mame/drivers/qvt201.cpp | 18 ++++++------- src/mame/drivers/tr175.cpp | 45 ++++++++++++++++--------------- src/mame/drivers/tv955.cpp | 32 +++++++++++----------- src/mame/drivers/tv965.cpp | 29 ++++++++++---------- src/mame/drivers/v550.cpp | 39 ++++++++++++++------------- src/mame/drivers/vp122.cpp | 43 ++++++++++++++++-------------- src/mame/video/pcd.cpp | 21 ++++++++------- 13 files changed, 213 insertions(+), 206 deletions(-) diff --git a/src/devices/video/scn2674.h b/src/devices/video/scn2674.h index 0d75ef883ff..b594f0dcb52 100644 --- a/src/devices/video/scn2674.h +++ b/src/devices/video/scn2674.h @@ -6,27 +6,8 @@ #pragma once -#define MCFG_SCN2672_INTR_CALLBACK(_intr) \ - downcast(*device).set_intr_callback(DEVCB_##_intr); - -#define MCFG_SCN2672_CHARACTER_WIDTH(_value) \ - downcast(*device).set_character_width(_value); - -#define MCFG_SCN2672_DRAW_CHARACTER_CALLBACK_OWNER(_class, _method) \ - downcast(*device).set_display_callback(scn2672_device::draw_character_delegate(&_class::_method, #_class "::" #_method, this)); - #define SCN2672_DRAW_CHARACTER_MEMBER(_name) void _name(bitmap_rgb32 &bitmap, int x, int y, uint8_t linecount, uint8_t charcode, uint8_t attrcode, uint16_t address, bool cursor, bool dw, bool lg, bool ul, bool blink) - -#define MCFG_SCN2674_INTR_CALLBACK(_intr) \ - downcast(*device).set_intr_callback(DEVCB_##_intr); - -#define MCFG_SCN2674_CHARACTER_WIDTH(_value) \ - downcast(*device).set_character_width(_value); - -#define MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(_class, _method) \ - downcast(*device).set_display_callback(scn2674_device::draw_character_delegate(&_class::_method, #_class "::" #_method, this)); - #define SCN2674_DRAW_CHARACTER_MEMBER(_name) void _name(bitmap_rgb32 &bitmap, int x, int y, uint8_t linecount, uint8_t charcode, uint8_t attrcode, uint16_t address, bool cursor, bool dw, bool lg, bool ul, bool blink) @@ -40,9 +21,22 @@ public: typedef device_delegate draw_character_delegate; // static configuration - template devcb_base &set_intr_callback(Object &&cb) { return m_intr_cb.set_callback(std::forward(cb)); } + auto intr_callback() { return m_intr_cb.bind(); } void set_character_width(int value) { m_hpixels_per_column = value; } - template void set_display_callback(Object &&cb) { m_display_cb = std::forward(cb); } + template + void set_display_callback(void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name) + { + set_display_callback(draw_character_delegate(callback, name, nullptr, static_cast(nullptr))); + } + template + void set_display_callback(const char *devname, void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name) + { + set_display_callback(draw_character_delegate(callback, name, devname, static_cast(nullptr))); + } + void set_display_callback(draw_character_delegate callback) + { + m_display_cb = callback; + } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mame/drivers/ampex210.cpp b/src/mame/drivers/ampex210.cpp index ea8f2bbc8ff..62a576a9594 100644 --- a/src/mame/drivers/ampex210.cpp +++ b/src/mame/drivers/ampex210.cpp @@ -58,24 +58,25 @@ static INPUT_PORTS_START(ampex210p) INPUT_PORTS_END -MACHINE_CONFIG_START(ampex210_state::ampex210p) - MCFG_DEVICE_ADD("maincpu", Z80, 4'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) +void ampex210_state::ampex210p(machine_config &config) +{ + Z80(config, m_maincpu, 4'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &ex210_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ex210_state::io_map); mos6551_device &acia(MOS6551(config, "acia", 1'843'200)); acia.irq_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD("pvtc", SCN2672, 2'178'000) - MCFG_SCN2672_INTR_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) - MCFG_SCN2672_CHARACTER_WIDTH(10) - MCFG_SCN2672_DRAW_CHARACTER_CALLBACK_OWNER(ampex210_state, draw_character) - MCFG_VIDEO_SET_SCREEN("screen") + scn2672_device &pvtc(SCN2672(config, "pvtc", 2'178'000)); + pvtc.intr_callback().set_inputline("maincpu", INPUT_LINE_NMI); + pvtc.set_character_width(10); + pvtc.set_display_callback(FUNC(ampex210_state::draw_character)); + pvtc.set_screen("screen"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(21'780'000, 1000, 0, 800, 363, 0, 300) // clock guessed - MCFG_SCREEN_UPDATE_DEVICE("pvtc", scn2672_device, screen_update) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(21'780'000, 1000, 0, 800, 363, 0, 300); // clock guessed + screen.set_screen_update("pvtc", FUNC(scn2672_device::screen_update)); +} ROM_START(ampex210p) // Z80 (+6551,MC2672,3515260-01, 3 xtals, speaker) // 8k ram // amber diff --git a/src/mame/drivers/cit220.cpp b/src/mame/drivers/cit220.cpp index 806ddd99cf3..851c8fd4309 100644 --- a/src/mame/drivers/cit220.cpp +++ b/src/mame/drivers/cit220.cpp @@ -42,7 +42,7 @@ private: void keyboard_map(address_map &map); void kbd_io_map(address_map &map); - required_device m_maincpu; + required_device m_maincpu; required_device m_screen; //required_region_ptr m_p_chargen; }; @@ -106,35 +106,36 @@ static INPUT_PORTS_START( cit220p ) INPUT_PORTS_END -MACHINE_CONFIG_START(cit220_state::cit220p) - MCFG_DEVICE_ADD("maincpu", I8085A, 6000000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_I8085A_SOD(WRITELINE(*this, cit220_state, sod_w)) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24553200, 1580, 0, 1320, 259, 0, 240) // dot clock guessed - MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update) - - MCFG_DEVICE_ADD("avdc", SCN2674, 24553200 / 10) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", I8085_RST65_LINE)) - MCFG_SCN2674_CHARACTER_WIDTH(10) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(cit220_state, draw_character) - MCFG_DEVICE_ADDRESS_MAP(0, char_map) - MCFG_DEVICE_ADDRESS_MAP(1, attr_map) - MCFG_VIDEO_SET_SCREEN("screen") +void cit220_state::cit220p(machine_config &config) +{ + I8085A(config, m_maincpu, 6000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cit220_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &cit220_state::io_map); + m_maincpu->out_sod_func().set(FUNC(cit220_state::sod_w)); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(24553200, 1580, 0, 1320, 259, 0, 240); // dot clock guessed + m_screen->set_screen_update("avdc", FUNC(scn2674_device::screen_update)); + + scn2674_device &avdc(SCN2674(config, "avdc", 24553200 / 10)); + avdc.intr_callback().set_inputline(m_maincpu, I8085_RST65_LINE); + avdc.set_character_width(10); + avdc.set_display_callback(FUNC(cit220_state::draw_character)); + avdc.set_addrmap(0, &cit220_state::char_map); + avdc.set_addrmap(1, &cit220_state::attr_map); + avdc.set_screen(m_screen); scn2681_device &duart(SCN2681(config, "duart", 3686400)); duart.irq_cb().set_inputline("maincpu", I8085_RST55_LINE); duart.outport_cb().set("usart", FUNC(i8251_device::write_txc)).bit(3); // 9600 baud? duart.outport_cb().append("usart", FUNC(i8251_device::write_rxc)).bit(3); - MCFG_DEVICE_ADD("usart", I8251, 3000000) + I8251(config, "usart", 3000000); - MCFG_DEVICE_ADD("kbdmcu", I8035, 4608000) - MCFG_DEVICE_PROGRAM_MAP(keyboard_map) - MCFG_DEVICE_IO_MAP(kbd_io_map) -MACHINE_CONFIG_END + mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4608000)); + kbdmcu.set_addrmap(AS_PROGRAM, &cit220_state::keyboard_map); + kbdmcu.set_addrmap(AS_IO, &cit220_state::kbd_io_map); +} ROM_START( cit220p ) diff --git a/src/mame/drivers/microterm.cpp b/src/mame/drivers/microterm.cpp index beb1785ff17..a7ba32afebb 100644 --- a/src/mame/drivers/microterm.cpp +++ b/src/mame/drivers/microterm.cpp @@ -94,40 +94,42 @@ void microterm_state::mt5510_io_map(address_map &map) static INPUT_PORTS_START( microterm ) INPUT_PORTS_END -MACHINE_CONFIG_START(microterm_state::mt420) - MCFG_DEVICE_ADD("maincpu", Z80, 4'000'000) - MCFG_DEVICE_PROGRAM_MAP(mt420_mem_map) - MCFG_DEVICE_IO_MAP(mt420_io_map) +void microterm_state::mt420(machine_config &config) +{ + Z80(config, m_maincpu, 4'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, µterm_state::mt420_mem_map); + m_maincpu->set_addrmap(AS_IO, µterm_state::mt420_io_map); - scn2681_device &duart(SCN2681(config, "duart", XTAL(3'686'400))); // MC2681 + scn2681_device &duart(SCN2681(config, "duart", 3.6864_MHz_XTAL)); // MC2681 duart.irq_cb().set_inputline(m_maincpu, 0); duart.outport_cb().set("eeprom", FUNC(eeprom_serial_93cxx_device::di_write)).bit(5); duart.outport_cb().append("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)).bit(4); duart.outport_cb().append("eeprom", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(3); - MC2661(config, "aci", XTAL(3'686'400)); // SCN2641 + MC2661(config, "aci", 3.6864_MHz_XTAL); // SCN2641 EEPROM_93C46_16BIT(config, "eeprom").do_callback().set("duart", FUNC(scn2681_device::ip6_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(9'877'680), 612, 0, 480, 269, 0, 250) - //MCFG_SCREEN_RAW_PARAMS(XTAL(15'300'720), 948, 0, 792, 269, 0, 250) - MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update) - - MCFG_DEVICE_ADD("avdc", SCN2674, XTAL(9'877'680) / 6) - //MCFG_DEVICE_CLOCK(XTAL(15'300'720) / 6) - MCFG_SCN2674_CHARACTER_WIDTH(6) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(microterm_state, draw_character) - MCFG_DEVICE_ADDRESS_MAP(0, mt420_vram_map) - MCFG_VIDEO_SET_SCREEN("screen") -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(microterm_state::mt5510) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(6'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mt5510_mem_map) - MCFG_DEVICE_IO_MAP(mt5510_io_map) - - scn2681_device &duart(SCN2681(config, "duart", XTAL(3'686'400))); + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(9.87768_MHz_XTAL, 612, 0, 480, 269, 0, 250); + //screen.set_raw(15.30072_MHz_XTAL, 948, 0, 792, 269, 0, 250); + screen.set_screen_update("avdc", FUNC(scn2674_device::screen_update)); + + scn2674_device &avdc(SCN2674(config, "avdc", 9.87768_MHz_XTAL / 6)); + //avdc.set_clock(15.30072_MHz_XTAL / 6); + avdc.set_character_width(6); + avdc.set_display_callback(FUNC(microterm_state::draw_character)); + avdc.set_addrmap(0, µterm_state::mt420_vram_map); + avdc.set_screen("screen"); +} + +void microterm_state::mt5510(machine_config &config) +{ + Z80(config, m_maincpu, 6_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, µterm_state::mt5510_mem_map); + m_maincpu->set_addrmap(AS_IO, µterm_state::mt5510_io_map); + + scn2681_device &duart(SCN2681(config, "duart", 3.6864_MHz_XTAL)); duart.irq_cb().set_inputline(m_maincpu, 0); duart.outport_cb().set("eeprom1", FUNC(eeprom_serial_93cxx_device::di_write)).bit(6); duart.outport_cb().append("eeprom2", FUNC(eeprom_serial_93cxx_device::di_write)).bit(5); @@ -140,10 +142,10 @@ MACHINE_CONFIG_START(microterm_state::mt5510) EEPROM_93C46_16BIT(config, "eeprom2").do_callback().set("duart", FUNC(scn2681_device::ip5_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(45'830'400) / 2, 1120, 0, 960, 341, 0, 300) // wild guess at resolution - MCFG_SCREEN_UPDATE_DRIVER(microterm_state, mt5510_update) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(45.8304_MHz_XTAL / 2, 1120, 0, 960, 341, 0, 300); // wild guess at resolution + screen.set_screen_update(FUNC(microterm_state::mt5510_update)); +} /************************************************************************************************************** diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp index 2941cdd5dd6..febc474ff65 100644 --- a/src/mame/drivers/mpu4vid.cpp +++ b/src/mame/drivers/mpu4vid.cpp @@ -1295,11 +1295,11 @@ MACHINE_CONFIG_START(mpu4vid_state::mpu4_vid) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty) - MCFG_DEVICE_ADD("scn2674_vid", SCN2674, 0) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("video", M68K_IRQ_3)) - MCFG_SCN2674_CHARACTER_WIDTH(8) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(mpu4vid_state, display_pixels) - MCFG_DEVICE_ADDRESS_MAP(0, mpu4_vram) + SCN2674(config, m_scn2674, 0); + m_scn2674->intr_callback().set_inputline("video", M68K_IRQ_3); + m_scn2674->set_character_width(8); + m_scn2674->set_display_callback(FUNC(mpu4vid_state::display_pixels)); + m_scn2674->set_addrmap(0, &mpu4vid_state::mpu4_vram); MCFG_DEVICE_ADD("video", M68000, VIDEO_MASTER_CLOCK ) diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index 9c521fe2bed..c40ef4501af 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -1008,12 +1008,12 @@ MACHINE_CONFIG_START(octopus_state::octopus) // MCFG_SCREEN_PALETTE("palette") // MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("crtc", SCN2674, 0) // character clock can be selectable, either 16MHz or 17.6MHz - MCFG_SCN2674_INTR_CALLBACK(WRITELINE("pic_slave", pic8259_device, ir0_w)) - MCFG_SCN2674_CHARACTER_WIDTH(8) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(octopus_state, display_pixels) - MCFG_DEVICE_ADDRESS_MAP(0, octopus_vram) - MCFG_VIDEO_SET_SCREEN("screen") + SCN2674(config, m_crtc, 0); // character clock can be selectable, either 16MHz or 17.6MHz + m_crtc->intr_callback().set("pic_slave", FUNC(pic8259_device::ir0_w)); + m_crtc->set_character_width(8); + m_crtc->set_display_callback(FUNC(octopus_state::display_pixels)); + m_crtc->set_addrmap(0, &octopus_state::octopus_vram); + m_crtc->set_screen("screen"); ADDRESS_MAP_BANK(config, "z80_bank").set_map(&octopus_state::octopus_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x10000); diff --git a/src/mame/drivers/qvt201.cpp b/src/mame/drivers/qvt201.cpp index 8b415757045..49e6add37fb 100644 --- a/src/mame/drivers/qvt201.cpp +++ b/src/mame/drivers/qvt201.cpp @@ -118,15 +118,15 @@ MACHINE_CONFIG_START(qvt201_state::qvt201) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // TC5516APL-2 or uPD446C-2 + battery - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(48.654_MHz_XTAL / 3, 102 * 10, 0, 80 * 10, 265, 0, 250) - //MCFG_SCREEN_RAW_PARAMS(48.654_MHz_XTAL / 2, 170 * 9, 0, 132 * 9, 265, 0, 250) - MCFG_SCREEN_UPDATE_DEVICE("crtc", scn2672_device, screen_update) - - MCFG_DEVICE_ADD("crtc", SCN2672, 48.654_MHz_XTAL / 30) - MCFG_SCN2672_CHARACTER_WIDTH(10) // 9 in 132-column mode - MCFG_SCN2672_INTR_CALLBACK(WRITELINE("mainint", input_merger_device, in_w<0>)) - MCFG_VIDEO_SET_SCREEN("screen") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(48.654_MHz_XTAL / 3, 102 * 10, 0, 80 * 10, 265, 0, 250); + //screen.set_raw(48.654_MHz_XTAL / 2, 170 * 9, 0, 132 * 9, 265, 0, 250); + screen.set_screen_update("crtc", FUNC(scn2672_device::screen_update)); + + scn2672_device &crtc(SCN2672(config, "crtc", 48.654_MHz_XTAL / 30)); + crtc.set_character_width(10); // 9 in 132-column mode + crtc.intr_callback().set("mainint", FUNC(input_merger_device::in_w<0>)); + crtc.set_screen("screen"); MACHINE_CONFIG_END diff --git a/src/mame/drivers/tr175.cpp b/src/mame/drivers/tr175.cpp index a2483da9233..88429cf2fef 100644 --- a/src/mame/drivers/tr175.cpp +++ b/src/mame/drivers/tr175.cpp @@ -86,27 +86,30 @@ void tr175_state::ramdac_map(address_map &map) static INPUT_PORTS_START( tr175 ) INPUT_PORTS_END -MACHINE_CONFIG_START(tr175_state::tr175) - MCFG_DEVICE_ADD("maincpu", M68000, 12'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(28'322'000), 900, 0, 720, 449, 0, 416) // guess - MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update) - - MCFG_DEVICE_ADD("avdc", SCN2674, XTAL(28'322'000) / 18) // guess - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_2)) - MCFG_SCN2674_CHARACTER_WIDTH(18) // guess - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(tr175_state, draw_character) - MCFG_DEVICE_ADDRESS_MAP(0, vram_map) - MCFG_VIDEO_SET_SCREEN("screen") - - MCFG_DEVICE_ADD("duart", SCN2681, XTAL(11'059'200) / 3) // is this the right clock? - MCFG_MC68681_IRQ_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_1)) - - MCFG_PALETTE_ADD("palette", 0x100) - MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette") -MACHINE_CONFIG_END +void tr175_state::tr175(machine_config &config) +{ + M68000(config, m_maincpu, 12'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &tr175_state::mem_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(28.322_MHz_XTAL, 900, 0, 720, 449, 0, 416); // guess + screen.set_screen_update("avdc", FUNC(scn2674_device::screen_update)); + + scn2674_device &avdc(SCN2674(config, "avdc", 28.322_MHz_XTAL / 18)); // guess + avdc.intr_callback().set_inputline("maincpu", M68K_IRQ_2); + avdc.set_character_width(18); // guess + avdc.set_display_callback(FUNC(tr175_state::draw_character)); + avdc.set_addrmap(0, &tr175_state::vram_map); + avdc.set_screen("screen"); + + scn2681_device &duart(SCN2681(config, "duart", 11.0592_MHz_XTAL / 3)); // is this the right clock? + duart.irq_cb().set_inputline("maincpu", M68K_IRQ_1); + + PALETTE(config, "palette", 0x100); + ramdac_device &ramdac(RAMDAC(config, "ramdac", 0)); + ramdac.set_addrmap(0, &tr175_state::ramdac_map); + ramdac.set_palette("palette"); +} diff --git a/src/mame/drivers/tv955.cpp b/src/mame/drivers/tv955.cpp index e95f79084e5..f31cb308372 100644 --- a/src/mame/drivers/tv955.cpp +++ b/src/mame/drivers/tv955.cpp @@ -82,29 +82,29 @@ void tv955_state::mem_map(address_map &map) static INPUT_PORTS_START( tv955 ) INPUT_PORTS_END -MACHINE_CONFIG_START(tv955_state::tv955) - MCFG_DEVICE_ADD("maincpu", M65C02, 19.3396_MHz_XTAL / 9) - MCFG_DEVICE_PROGRAM_MAP(mem_map) +void tv955_state::tv955(machine_config &config) +{ + M65C02(config, m_maincpu, 19.3396_MHz_XTAL / 9); + m_maincpu->set_addrmap(AS_PROGRAM, &tv955_state::mem_map); - MCFG_INPUT_MERGER_ANY_HIGH("mainirq") - MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", m6502_device::IRQ_LINE)) + INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE); - MCFG_DEVICE_ADD("keyboard", I8049, 5.7143_MHz_XTAL) + I8049(config, "keyboard", 5.7143_MHz_XTAL); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // HM6116LP-4 + 3.2V battery - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(19.3396_MHz_XTAL, 846, 0, 720, 381, 0, 364) - //MCFG_SCREEN_RAW_PARAMS(31.684_MHz_XTAL, 1386, 0, 1188, 381, 0, 364) - MCFG_SCREEN_UPDATE_DEVICE("crtc", scn2674_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(19.3396_MHz_XTAL, 846, 0, 720, 381, 0, 364); + //screen.set_raw(31.684_MHz_XTAL, 1386, 0, 1188, 381, 0, 364); + screen.set_screen_update("crtc", FUNC(scn2674_device::screen_update)); - MCFG_DEVICE_ADD("crtc", SCN2674, 19.3396_MHz_XTAL / 9) + SCN2674(config, m_crtc, 19.3396_MHz_XTAL / 9); // Character clock is 31.684_MHz_XTAL / 9 in 132-column mode // Character cells are 9 pixels wide by 14 pixels high - MCFG_SCN2674_CHARACTER_WIDTH(9) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(tv955_state, draw_character) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", m6502_device::NMI_LINE)) - MCFG_VIDEO_SET_SCREEN("screen") + m_crtc->set_character_width(9); + m_crtc->set_display_callback(FUNC(tv955_state::draw_character)); + m_crtc->intr_callback().set_inputline(m_maincpu, m6502_device::NMI_LINE); + m_crtc->set_screen("screen"); MOS6551(config, m_hostuart, 0); m_hostuart->set_xtal(3.6864_MHz_XTAL); @@ -117,7 +117,7 @@ MACHINE_CONFIG_START(tv955_state::tv955) mos6551_device &keybuart(MOS6551(config, "keybuart", 0)); keybuart.set_xtal(3.6864_MHz_XTAL / 2); keybuart.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<2>)); -MACHINE_CONFIG_END +} /************************************************************************************************************** diff --git a/src/mame/drivers/tv965.cpp b/src/mame/drivers/tv965.cpp index 8cb3ae3f92c..35feda20d5c 100644 --- a/src/mame/drivers/tv965.cpp +++ b/src/mame/drivers/tv965.cpp @@ -70,30 +70,31 @@ void tv965_state::program_map(address_map &map) static INPUT_PORTS_START( tv965 ) INPUT_PORTS_END -MACHINE_CONFIG_START(tv965_state::tv965) - MCFG_DEVICE_ADD("maincpu", G65816, 44.4528_MHz_XTAL / 10) - MCFG_DEVICE_DATA_MAP(mem_map) - MCFG_DEVICE_PROGRAM_MAP(program_map) +void tv965_state::tv965(machine_config &config) +{ + G65816(config, m_maincpu, 44.4528_MHz_XTAL / 10); + m_maincpu->set_addrmap(AS_DATA, &tv965_state::mem_map); + m_maincpu->set_addrmap(AS_PROGRAM, &tv965_state::program_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // CXK5864BP-10L + battery - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(26.9892_MHz_XTAL, 1020, 0, 800, 441, 0, 416) - //MCFG_SCREEN_RAW_PARAMS(44.4528_MHz_XTAL, 1680, 0, 1320, 441, 0, 416) - MCFG_SCREEN_UPDATE_DEVICE("crtc", scn2672_device, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(26.9892_MHz_XTAL, 1020, 0, 800, 441, 0, 416); + //m_screen->set_raw(44.4528_MHz_XTAL, 1680, 0, 1320, 441, 0, 416); + m_screen->set_screen_update("crtc", FUNC(scn2672_device::screen_update)); - MCFG_DEVICE_ADD("crtc", SCN2672, 26.9892_MHz_XTAL / 10) - MCFG_SCN2672_CHARACTER_WIDTH(10) - MCFG_SCN2672_DRAW_CHARACTER_CALLBACK_OWNER(tv965_state, draw_character) - MCFG_SCN2672_INTR_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) - MCFG_VIDEO_SET_SCREEN("screen") + scn2672_device &crtc(SCN2672(config, "crtc", 26.9892_MHz_XTAL / 10)); + crtc.set_character_width(10); + crtc.set_display_callback(FUNC(tv965_state::draw_character)); + crtc.intr_callback().set_inputline("maincpu", INPUT_LINE_NMI); + crtc.set_screen("screen"); mos6551_device &acia1(MOS6551(config, "acia1", 0)); acia1.set_xtal(3.6864_MHz_XTAL / 2); // divider not verified, possibly even programmable mos6551_device &acia2(MOS6551(config, "acia2", 0)); acia2.set_xtal(3.6864_MHz_XTAL / 2); // divider not verified, possibly even programmable -MACHINE_CONFIG_END +} /************************************************************************************************************** diff --git a/src/mame/drivers/v550.cpp b/src/mame/drivers/v550.cpp index 546efa12438..eafbd292fbd 100644 --- a/src/mame/drivers/v550.cpp +++ b/src/mame/drivers/v550.cpp @@ -107,17 +107,18 @@ void v550_state::machine_start() m_usart->write_cts(0); } -MACHINE_CONFIG_START(v550_state::v550) - MCFG_DEVICE_ADD("maincpu", Z80, 34.846_MHz_XTAL / 16) // NEC D780C (2.177875 MHz verified) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) +void v550_state::v550(machine_config &config) +{ + Z80(config, m_maincpu, 34.846_MHz_XTAL / 16); // NEC D780C (2.177875 MHz verified) + m_maincpu->set_addrmap(AS_PROGRAM, &v550_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &v550_state::io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC D444C-2 + battery - MCFG_DEVICE_ADD("gdc", UPD7220, 34.846_MHz_XTAL / 16) // NEC D7220D (2.177875 MHz verified) - MCFG_VIDEO_SET_SCREEN("screen") + upd7220_device &gdc(UPD7220(config, "gdc", 34.846_MHz_XTAL / 16)); // NEC D7220D (2.177875 MHz verified) + gdc.set_screen("screen"); - MCFG_DEVICE_ADD("ppi", I8255, 0) // NEC D8255AC-5 + I8255(config, "ppi"); // NEC D8255AC-5 I8251(config, m_usart, 34.846_MHz_XTAL / 16); // NEC D8251AC m_usart->rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<1>)); @@ -137,21 +138,21 @@ MACHINE_CONFIG_START(v550_state::v550) brg2.fr_handler().set("usart", FUNC(i8251_device::write_txc)); brg2.fr_handler().append("usart", FUNC(i8251_device::write_rxc)); - MCFG_DEVICE_ADD("kbdmcu", I8035, 4'608'000) - MCFG_DEVICE_PROGRAM_MAP(kbd_map) + mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4'608'000)); + kbdmcu.set_addrmap(AS_PROGRAM, &v550_state::kbd_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(34.846_MHz_XTAL, 19 * 102, 0, 19 * 80, 295, 0, 272) - MCFG_SCREEN_UPDATE_DRIVER(v550_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(34.846_MHz_XTAL, 19 * 102, 0, 19 * 80, 295, 0, 272); + m_screen->set_screen_update(FUNC(v550_state::screen_update)); - MCFG_DEVICE_ADD("pvtc", SCN2672, 34.846_MHz_XTAL / 19) - MCFG_DEVICE_ADDRESS_MAP(0, pvtc_char_map) - MCFG_DEVICE_ADDRESS_MAP(1, pvtc_attr_map) - MCFG_SCN2672_CHARACTER_WIDTH(19) - MCFG_SCN2672_INTR_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) - MCFG_VIDEO_SET_SCREEN("screen") + scn2672_device &pvtc(SCN2672(config, "pvtc", 34.846_MHz_XTAL / 19)); + pvtc.set_addrmap(0, &v550_state::pvtc_char_map); + pvtc.set_addrmap(1, &v550_state::pvtc_attr_map); + pvtc.set_character_width(19); + pvtc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); + pvtc.set_screen("screen"); // SCB2673 clock verified at 17.423 MHz -MACHINE_CONFIG_END +} ROM_START( v550 ) diff --git a/src/mame/drivers/vp122.cpp b/src/mame/drivers/vp122.cpp index 451551c8a9e..4f96e34bd76 100644 --- a/src/mame/drivers/vp122.cpp +++ b/src/mame/drivers/vp122.cpp @@ -22,7 +22,8 @@ public: : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_screen(*this, "screen") - , m_p_chargen(*this, "chargen") + , m_avdc(*this, "avdc") + , m_chargen(*this, "chargen") { } void vp122(machine_config &config); @@ -39,7 +40,8 @@ private: required_device m_maincpu; required_device m_screen; - required_region_ptr m_p_chargen; + required_device m_avdc; + required_region_ptr m_chargen; }; @@ -87,25 +89,26 @@ void vp122_state::attr_map(address_map &map) static INPUT_PORTS_START( vp122 ) INPUT_PORTS_END -MACHINE_CONFIG_START(vp122_state::vp122) - MCFG_DEVICE_ADD("maincpu", I8085A, 8_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) +void vp122_state::vp122(machine_config &config) +{ + I8085A(config, m_maincpu, 8_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &vp122_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &vp122_state::io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // MK48Z02 - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(14.916_MHz_XTAL, 960, 0, 800, 259, 0, 240) - //MCFG_SCREEN_RAW_PARAMS(22.096_MHz_XTAL, 1422, 0, 1188, 259, 0, 240) - MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(14.916_MHz_XTAL, 960, 0, 800, 259, 0, 240); + //m_screen->set_raw(22.096_MHz_XTAL, 1422, 0, 1188, 259, 0, 240); + m_screen->set_screen_update("avdc", FUNC(scn2674_device::screen_update)); - MCFG_DEVICE_ADD("avdc", SCN2674, 14.916_MHz_XTAL / 10) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", I8085_RST65_LINE)) - MCFG_SCN2674_CHARACTER_WIDTH(10) // 9 in 132-column modes - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(vp122_state, draw_character) - MCFG_DEVICE_ADDRESS_MAP(0, char_map) - MCFG_DEVICE_ADDRESS_MAP(1, attr_map) - MCFG_VIDEO_SET_SCREEN("screen") + SCN2674(config, m_avdc, 14.916_MHz_XTAL / 10); + m_avdc->intr_callback().set_inputline(m_maincpu, I8085_RST65_LINE); + m_avdc->set_character_width(10); // 9 in 132-column modes + m_avdc->set_display_callback(FUNC(vp122_state::draw_character)); + m_avdc->set_addrmap(0, &vp122_state::char_map); + m_avdc->set_addrmap(1, &vp122_state::attr_map); + m_avdc->set_screen("screen"); scn2681_device &duart(SCN2681(config, "duart", 3.6864_MHz_XTAL)); duart.irq_cb().set_inputline("maincpu", I8085_RST55_LINE); @@ -113,11 +116,11 @@ MACHINE_CONFIG_START(vp122_state::vp122) duart.outport_cb().append("usart", FUNC(i8251_device::write_rxc)).bit(3); // OP7 = 0 for 80-column modes, 1 for 132-column modes - MCFG_DEVICE_ADD("usart", I8251, 8_MHz_XTAL / 2) + I8251(config, "usart", 8_MHz_XTAL / 2); - MCFG_DEVICE_ADD("pit", PIT8253, 0) + PIT8253(config, "pit", 0); // Input clocks are video-related and should differ for 80-column and 132-column modes -MACHINE_CONFIG_END +} /************************************************************************************************************** diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp index 288de3ae925..2a444997c4e 100644 --- a/src/mame/video/pcd.cpp +++ b/src/mame/video/pcd.cpp @@ -115,10 +115,11 @@ MACHINE_CONFIG_START(pcd_video_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 3) MCFG_PALETTE_INIT_OWNER(pcdx_video_device, pcdx) - MCFG_DEVICE_ADD("crtc", SCN2674, 0) - MCFG_SCN2674_CHARACTER_WIDTH(16) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(pcd_video_device, display_pixels) - MCFG_VIDEO_SET_SCREEN("screen") + scn2674_device &crtc(SCN2674(config, "crtc", 0)); + crtc.set_character_width(16); + crtc.set_display_callback(FUNC(pcd_video_device::display_pixels)); + crtc.set_screen("screen"); + MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", pcd_video_device, mouse_timer, attotime::from_hz(15000)) // guess MACHINE_CONFIG_END @@ -158,12 +159,12 @@ MACHINE_CONFIG_START(pcx_video_device::device_add_mconfig) MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("crtc", SCN2674, 0) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("graphics", MCS51_INT0_LINE)) - MCFG_SCN2674_CHARACTER_WIDTH(16) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(pcx_video_device, display_pixels) - MCFG_VIDEO_SET_SCREEN("screen") - MCFG_DEVICE_ADDRESS_MAP(0, pcx_vram) + scn2674_device &crtc(SCN2674(config, "crtc", 0)); + crtc.intr_callback().set_inputline("graphics", MCS51_INT0_LINE); + crtc.set_character_width(16); + crtc.set_display_callback(FUNC(pcx_video_device::display_pixels)); + crtc.set_screen("screen"); + crtc.set_addrmap(0, &pcx_video_device::pcx_vram); MACHINE_CONFIG_END -- cgit v1.2.3