From 97e392975716f39076818dfd5144721cbefe368a Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Fri, 7 Dec 2018 15:48:49 +0100 Subject: sm510, sm8500, sparc, superfx, t11: Removed MCFG, nw --- src/devices/bus/snes/sfx.cpp | 11 +- src/devices/cpu/sm510/sm500.h | 15 +- src/devices/cpu/sm510/sm510.h | 79 +-- src/devices/cpu/sm8500/sm8500.h | 10 +- src/devices/cpu/sparc/sparc.h | 4 - src/devices/cpu/superfx/superfx.h | 6 +- src/devices/cpu/t11/t11.h | 8 +- src/mame/drivers/atarisy2.cpp | 6 +- src/mame/drivers/bk.cpp | 39 +- src/mame/drivers/dct11em.cpp | 42 +- src/mame/drivers/dvk_kcgd.cpp | 8 +- src/mame/drivers/galgame.cpp | 37 +- src/mame/drivers/gamecom.cpp | 10 +- src/mame/drivers/hh_sm510.cpp | 1086 +++++++++++++++++++------------------ src/mame/drivers/mk85.cpp | 37 +- src/mame/drivers/mk90.cpp | 37 +- src/mame/drivers/ms0515.cpp | 8 +- src/mame/drivers/pdp11.cpp | 14 +- src/mame/drivers/rzone.cpp | 34 +- src/mame/drivers/sun4.cpp | 8 +- src/mame/drivers/terak.cpp | 34 +- src/mame/drivers/uknc.cpp | 43 +- src/mame/drivers/vax11.cpp | 8 +- src/mame/drivers/vt240.cpp | 10 +- src/mame/includes/bk.h | 3 +- src/mame/includes/gamecom.h | 2 +- src/mame/includes/hh_sm510.h | 5 +- 27 files changed, 784 insertions(+), 820 deletions(-) diff --git a/src/devices/bus/snes/sfx.cpp b/src/devices/bus/snes/sfx.cpp index b46750a9f81..9fd99ca53d5 100644 --- a/src/devices/bus/snes/sfx.cpp +++ b/src/devices/bus/snes/sfx.cpp @@ -86,11 +86,12 @@ WRITE_LINE_MEMBER(sns_rom_superfx_device::snes_extern_irq_w) } -MACHINE_CONFIG_START(sns_rom_superfx_device::device_add_mconfig) - MCFG_DEVICE_ADD("superfx", SUPERFX, 21480000) /* 21.48MHz */ - MCFG_DEVICE_PROGRAM_MAP(sfx_map) - MCFG_SUPERFX_OUT_IRQ(WRITELINE(*this, sns_rom_superfx_device, snes_extern_irq_w)) /* IRQ line from cart */ -MACHINE_CONFIG_END +void sns_rom_superfx_device::device_add_mconfig(machine_config &config) +{ + SUPERFX(config, m_superfx, 21480000); /* 21.48MHz */ + m_superfx->set_addrmap(AS_PROGRAM, &sns_rom_superfx_device::sfx_map); + m_superfx->irq().set(FUNC(sns_rom_superfx_device::snes_extern_irq_w)); /* IRQ line from cart */ +} READ8_MEMBER( sns_rom_superfx_device::chip_read ) { diff --git a/src/devices/cpu/sm510/sm500.h b/src/devices/cpu/sm510/sm500.h index c0c9d112504..12d083e5a82 100644 --- a/src/devices/cpu/sm510/sm500.h +++ b/src/devices/cpu/sm510/sm500.h @@ -14,15 +14,6 @@ #include "sm510.h" -// I/O ports setup - -// LCD segment outputs: H1/2 as a0, O group as a1-a4, O data as d0-d3 -#define MCFG_SM500_WRITE_O_CB(_devcb) \ - downcast(*device).set_write_o_callback(DEVCB_##_devcb); - -// see sm510.h for ACL, K, R, alpha, beta - - // pinout reference /* @@ -79,8 +70,10 @@ class sm500_device : public sm510_base_device public: sm500_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 32768); - // configuration helpers - template devcb_base &set_write_o_callback(Object &&cb) { return m_write_o.set_callback(std::forward(cb)); } + // see sm510.h for ACL, K, R, alpha, beta + + // LCD segment outputs: H1/2 as a0, O group as a1-a4, O data as d0-d3 + auto write_o() { return m_write_o.bind(); } protected: sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_pins, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); diff --git a/src/devices/cpu/sm510/sm510.h b/src/devices/cpu/sm510/sm510.h index 986381dd63c..6cf7ef24411 100644 --- a/src/devices/cpu/sm510/sm510.h +++ b/src/devices/cpu/sm510/sm510.h @@ -13,55 +13,12 @@ // I/O ports setup -// 4-bit K input port (pull-down) -#define MCFG_SM510_READ_K_CB(_devcb) \ - downcast(*device).set_read_k_callback(DEVCB_##_devcb); // when in halt state, any K input going High can wake up the CPU, // driver is required to use set_input_line(SM510_INPUT_LINE_K, state) #define SM510_INPUT_LINE_K 0 -// 1-bit BA(aka alpha) input pin (pull-up) -#define MCFG_SM510_READ_BA_CB(_devcb) \ - downcast(*device).set_read_ba_callback(DEVCB_##_devcb); - -// 1-bit B(beta) input pin (pull-up) -#define MCFG_SM510_READ_B_CB(_devcb) \ - downcast(*device).set_read_b_callback(DEVCB_##_devcb); - -// 8-bit S strobe output port -#define MCFG_SM510_WRITE_S_CB(_devcb) \ - downcast(*device).set_write_s_callback(DEVCB_##_devcb); - -// 1/2/4-bit R (buzzer/melody) output port -#define MCFG_SM510_WRITE_R_CB(_devcb) \ - downcast(*device).set_write_r_callback(DEVCB_##_devcb); -// For SM510, SM500, SM5A, R port output is selected with a mask option, -// either from the divider or direct contol. Documented options are: -// SM510/SM5A: control, 2(4096Hz meant for alarm sound) -// SM500: 14, 11, 3 (divider f1, f4, f12) -#define MCFG_SM510_R_MASK_OPTION(_bit) \ - downcast(*device).set_r_mask_option(_bit); #define SM510_R_CONTROL_OUTPUT -1 -// LCD segment outputs: H1-4 as offset(low), a/b/c 1-16 as data d0-d15 -#define MCFG_SM510_WRITE_SEGA_CB(_devcb) \ - downcast(*device).set_write_sega_callback(DEVCB_##_devcb); -#define MCFG_SM510_WRITE_SEGB_CB(_devcb) \ - downcast(*device).set_write_segb_callback(DEVCB_##_devcb); -#define MCFG_SM510_WRITE_SEGC_CB(_devcb) \ - downcast(*device).set_write_segc_callback(DEVCB_##_devcb); - -// LCD bs output: same as above, but only up to 2 bits used -#define MCFG_SM510_WRITE_SEGBS_CB(_devcb) \ - downcast(*device).set_write_segbs_callback(DEVCB_##_devcb); - -// LCD output lazy combination -#define MCFG_SM510_WRITE_SEGS_CB(_devcb) \ - MCFG_SM510_WRITE_SEGA_CB(_devcb) \ - MCFG_SM510_WRITE_SEGB_CB(_devcb) \ - MCFG_SM510_WRITE_SEGC_CB(_devcb) \ - MCFG_SM510_WRITE_SEGBS_CB(_devcb) - // ACL input pin #define SM510_INPUT_LINE_ACL INPUT_LINE_RESET @@ -125,18 +82,34 @@ public: , m_write_r(*this) { } - // configuration helpers - template devcb_base &set_read_k_callback(Object &&cb) { return m_read_k.set_callback(std::forward(cb)); } - template devcb_base &set_read_ba_callback(Object &&cb) { return m_read_ba.set_callback(std::forward(cb)); } - template devcb_base &set_read_b_callback(Object &&cb) { return m_read_b.set_callback(std::forward(cb)); } - template devcb_base &set_write_s_callback(Object &&cb) { return m_write_s.set_callback(std::forward(cb)); } - template devcb_base &set_write_r_callback(Object &&cb) { return m_write_r.set_callback(std::forward(cb)); } + // For SM510, SM500, SM5A, R port output is selected with a mask option, + // either from the divider or direct contol. Documented options are: + // SM510/SM5A: control, 2(4096Hz meant for alarm sound) + // SM500: 14, 11, 3 (divider f1, f4, f12) void set_r_mask_option(int bit) { m_r_mask_option = bit; } - template devcb_base &set_write_sega_callback(Object &&cb) { return m_write_sega.set_callback(std::forward(cb)); } - template devcb_base &set_write_segb_callback(Object &&cb) { return m_write_segb.set_callback(std::forward(cb)); } - template devcb_base &set_write_segc_callback(Object &&cb) { return m_write_segc.set_callback(std::forward(cb)); } - template devcb_base &set_write_segbs_callback(Object &&cb) { return m_write_segbs.set_callback(std::forward(cb)); } + // 4-bit K input port (pull-down) + auto read_k() { return m_read_k.bind(); } + + // 1-bit BA(aka alpha) input pin (pull-up) + auto read_ba() { return m_read_ba.bind(); } + + // 1-bit B(beta) input pin (pull-up) + auto read_b() { return m_read_b.bind(); } + + // 8-bit S strobe output port + auto write_s() { return m_write_s.bind(); } + + // 1/2/4-bit R (buzzer/melody) output port + auto write_r() { return m_write_r.bind(); } + + // LCD segment outputs: H1-4 as offset(low), a/b/c 1-16 as data d0-d15 + auto write_sega() { return m_write_sega.bind(); } + auto write_segb() { return m_write_segb.bind(); } + auto write_segc() { return m_write_segc.bind(); } + + // LCD bs output: same as above, but only up to 2 bits used + auto write_segbs() { return m_write_segbs.bind(); } protected: // device-level overrides diff --git a/src/devices/cpu/sm8500/sm8500.h b/src/devices/cpu/sm8500/sm8500.h index bd18a889bee..3661d92290c 100644 --- a/src/devices/cpu/sm8500/sm8500.h +++ b/src/devices/cpu/sm8500/sm8500.h @@ -5,12 +5,6 @@ #pragma once -#define MCFG_SM8500_DMA_CB(_devcb) \ - downcast(*device).set_dma_cb(DEVCB_##_devcb); - -#define MCFG_SM8500_TIMER_CB(_devcb) \ - downcast(*device).set_timer_cb(DEVCB_##_devcb); - enum { /* "main" 16 bit register */ @@ -29,8 +23,8 @@ public: sm8500_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); // configuration helpers - template devcb_base &set_dma_cb(Object &&cb) { return m_dma_func.set_callback(std::forward(cb)); } - template devcb_base &set_timer_cb(Object &&cb) { return m_timer_func.set_callback(std::forward(cb)); } + auto dma_cb() { return m_dma_func.bind(); } + auto timer_cb() { return m_timer_func.bind(); } /* interrupts */ static constexpr int ILL_INT = 0; diff --git a/src/devices/cpu/sparc/sparc.h b/src/devices/cpu/sparc/sparc.h index ff337da962c..488a9f38dfa 100644 --- a/src/devices/cpu/sparc/sparc.h +++ b/src/devices/cpu/sparc/sparc.h @@ -19,10 +19,6 @@ #include #endif -// TODO: when there are more SPARC CPUs, move setter to a base class -#define MCFG_SPARC_ADD_ASI_DESC(desc) \ - downcast(*device).add_asi_desc([](sparc_disassembler *dasm) { dasm->add_asi_desc(desc); }); - class mb86901_device : public cpu_device, public sparc_mmu_host_interface, protected sparc_disassembler::config { public: diff --git a/src/devices/cpu/superfx/superfx.h b/src/devices/cpu/superfx/superfx.h index 90e98790d4f..b69c5c96f34 100644 --- a/src/devices/cpu/superfx/superfx.h +++ b/src/devices/cpu/superfx/superfx.h @@ -89,10 +89,6 @@ enum #define SUPERFX_CFGR_MS0 0x20 // MS0 -#define MCFG_SUPERFX_OUT_IRQ(_devcb) \ - downcast(*device).set_out_irq_func(DEVCB_##_devcb); - - class superfx_device : public cpu_device, public superfx_disassembler::config { public: @@ -100,7 +96,7 @@ public: superfx_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); // configuration helpers - template devcb_base &set_out_irq_func(Object &&cb) { return m_out_irq_func.set_callback(std::forward(cb)); } + auto irq() { return m_out_irq_func.bind(); } uint8_t mmio_read(uint32_t addr); void mmio_write(uint32_t addr, uint8_t data); diff --git a/src/devices/cpu/t11/t11.h b/src/devices/cpu/t11/t11.h index 5c4d964ff46..842a48e53d3 100644 --- a/src/devices/cpu/t11/t11.h +++ b/src/devices/cpu/t11/t11.h @@ -28,12 +28,6 @@ enum #define T11_TRAP 0x01C /* TRAP instruction vector */ -#define MCFG_T11_INITIAL_MODE(_mode) \ - downcast(*device).set_initial_mode(_mode); - -#define MCFG_T11_RESET(_devcb) \ - downcast(*device).set_out_reset_func(DEVCB_##_devcb); - class t11_device : public cpu_device { public: @@ -42,7 +36,7 @@ public: // configuration helpers void set_initial_mode(const uint16_t mode) { c_initial_mode = mode; } - template devcb_base &set_out_reset_func(Object &&cb) { return m_out_reset_func.set_callback(std::forward(cb)); } + auto out_reset() { return m_out_reset_func.bind(); } protected: t11_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/mame/drivers/atarisy2.cpp b/src/mame/drivers/atarisy2.cpp index 4633c00bc76..7542b0879ab 100644 --- a/src/mame/drivers/atarisy2.cpp +++ b/src/mame/drivers/atarisy2.cpp @@ -1185,9 +1185,9 @@ GFXDECODE_END MACHINE_CONFIG_START(atarisy2_state::atarisy2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", T11, MASTER_CLOCK/2) - MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */ - MCFG_DEVICE_PROGRAM_MAP(main_map) + T11(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_initial_mode(0x36ff); /* initial mode word has DAL15,14,11,8 pulled low */ + m_maincpu->set_addrmap(AS_PROGRAM, &atarisy2_state::main_map); M6502(config, m_audiocpu, SOUND_CLOCK/8); m_audiocpu->set_addrmap(AS_PROGRAM, &atarisy2_state::sound_map); diff --git a/src/mame/drivers/bk.cpp b/src/mame/drivers/bk.cpp index 806013ab896..e2d4650a84c 100644 --- a/src/mame/drivers/bk.cpp +++ b/src/mame/drivers/bk.cpp @@ -12,7 +12,6 @@ #include "emu.h" #include "includes/bk.h" -#include "cpu/t11/t11.h" #include "sound/wave.h" #include "formats/rk_cas.h" @@ -165,34 +164,34 @@ static INPUT_PORTS_START( bk0010 ) INPUT_PORTS_END -MACHINE_CONFIG_START(bk_state::bk0010) +void bk_state::bk0010(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", T11, 3000000) - MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */ - MCFG_DEVICE_PROGRAM_MAP(bk0010_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(bk_state,bk0010_irq_callback) + T11(config, m_maincpu, 3000000); + m_maincpu->set_initial_mode(0x36ff); /* initial mode word has DAL15,14,11,8 pulled low */ + m_maincpu->set_addrmap(AS_PROGRAM, &bk_state::bk0010_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(bk_state::bk0010_irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(bk_state, screen_update_bk0010) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(bk_state::screen_update_bk0010)); + screen.set_palette("palette"); + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); SPEAKER(config, "mono").front_center(); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_CASSETTE_ADD( "cassette" ) - MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED) - MCFG_CASSETTE_INTERFACE("bk0010_cass") + CASSETTE(config, m_cassette); + m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)); + m_cassette->set_interface("bk0010_cass"); - MCFG_SOFTWARE_LIST_ADD("cass_list","bk0010") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cass_list").set_original("bk0010"); +} MACHINE_CONFIG_START(bk_state::bk0010fd) bk0010(config); diff --git a/src/mame/drivers/dct11em.cpp b/src/mame/drivers/dct11em.cpp index 42ca84a4083..c2f843e5c55 100644 --- a/src/mame/drivers/dct11em.cpp +++ b/src/mame/drivers/dct11em.cpp @@ -18,17 +18,21 @@ class dct11em_state : public driver_device { public: dct11em_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { } void dct11em(machine_config &config); private: virtual void machine_reset() override; virtual void video_start() override; - uint32_t screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; + void dct11em_mem(address_map &map); + + uint32_t screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_maincpu; }; void dct11em_state::dct11em_mem(address_map &map) @@ -58,24 +62,24 @@ uint32_t dct11em_state::screen_update_dct11em(screen_device &screen, bitmap_ind1 } -MACHINE_CONFIG_START(dct11em_state::dct11em) +void dct11em_state::dct11em(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",T11, 7500000) // 7.5MHz XTAL - MCFG_T11_INITIAL_MODE(0x1403) /* according to specs */ - MCFG_DEVICE_PROGRAM_MAP(dct11em_mem) - + T11(config, m_maincpu, 7500000); // 7.5MHz XTAL + m_maincpu->set_initial_mode(0x1403); /* according to specs */ + m_maincpu->set_addrmap(AS_PROGRAM, &dct11em_state::dct11em_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(dct11em_state, screen_update_dct11em) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(dct11em_state::screen_update_dct11em)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} /* ROM definition */ ROM_START( dct11em ) diff --git a/src/mame/drivers/dvk_kcgd.cpp b/src/mame/drivers/dvk_kcgd.cpp index feec8e6adac..68f74b371cc 100644 --- a/src/mame/drivers/dvk_kcgd.cpp +++ b/src/mame/drivers/dvk_kcgd.cpp @@ -116,7 +116,7 @@ private: } m_video; std::unique_ptr m_videoram; - required_device m_maincpu; + required_device m_maincpu; // required_device m_ms7004; required_device m_palette; required_device m_screen; @@ -347,9 +347,9 @@ static GFXDECODE_START( gfx_kcgd ) GFXDECODE_END MACHINE_CONFIG_START(kcgd_state::kcgd) - MCFG_DEVICE_ADD("maincpu", K1801VM2, XTAL(30'800'000)/4) - MCFG_DEVICE_PROGRAM_MAP(kcgd_mem) - MCFG_T11_INITIAL_MODE(0100000) + K1801VM2(config, m_maincpu, XTAL(30'800'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &kcgd_state::kcgd_mem); + m_maincpu->set_initial_mode(0100000); MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", kcgd_state, scanline_callback, attotime::from_hz(50*28*11)) // XXX verify MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL(30'800'000)/KCGD_HORZ_START)) diff --git a/src/mame/drivers/galgame.cpp b/src/mame/drivers/galgame.cpp index 4d590ee07fe..049d9f83849 100644 --- a/src/mame/drivers/galgame.cpp +++ b/src/mame/drivers/galgame.cpp @@ -59,7 +59,7 @@ private: uint32_t screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(galaxygame_irq); IRQ_CALLBACK_MEMBER(galaxygame_irq_callback); - required_device m_maincpu; + required_device m_maincpu; required_device m_palette; void galaxygame_map(address_map &map); }; @@ -325,26 +325,25 @@ void galaxygame_state::machine_reset() m_interrupt = 0; } -MACHINE_CONFIG_START(galaxygame_state::galaxygame) - - MCFG_DEVICE_ADD("maincpu", T11, 3000000 ) - MCFG_DEVICE_PROGRAM_MAP(galaxygame_map) - MCFG_T11_INITIAL_MODE(5 << 13) - MCFG_DEVICE_PERIODIC_INT_DRIVER(galaxygame_state, galaxygame_irq, 60) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(galaxygame_state,galaxygame_irq_callback) +void galaxygame_state::galaxygame(machine_config &config) +{ + T11(config, m_maincpu, 3000000); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxygame_state::galaxygame_map); + m_maincpu->set_initial_mode(5 << 13); + m_maincpu->set_irq_acknowledge_callback(FUNC(galaxygame_state::galaxygame_irq_callback)); + m_maincpu->set_periodic_int(FUNC(galaxygame_state::galaxygame_irq), attotime::from_hz(60)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511) - MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") - -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 512); + screen.set_visarea(0, 511, 0, 511); + screen.set_screen_update(FUNC(galaxygame_state::screen_update_galaxygame)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} ROM_START(galgame) // Original Galaxy Game listing, the one used in the 2nd hardware revision (blue dual cabinet) diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp index 2724610768b..eb23311e848 100644 --- a/src/mame/drivers/gamecom.cpp +++ b/src/mame/drivers/gamecom.cpp @@ -257,11 +257,11 @@ INTERRUPT_GEN_MEMBER(gamecom_state::gamecom_interrupt) MACHINE_CONFIG_START(gamecom_state::gamecom) /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", SM8500, XTAL(11'059'200)/2 ) /* actually it's an sm8521 microcontroller containing an sm8500 cpu */ - MCFG_DEVICE_PROGRAM_MAP( gamecom_mem_map) - MCFG_SM8500_DMA_CB( WRITE8( *this, gamecom_state, gamecom_handle_dma ) ) - MCFG_SM8500_TIMER_CB( WRITE8( *this, gamecom_state, gamecom_update_timers ) ) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gamecom_state, gamecom_interrupt) + SM8500(config, m_maincpu, XTAL(11'059'200)/2); /* actually it's an sm8521 microcontroller containing an sm8500 cpu */ + m_maincpu->set_addrmap(AS_PROGRAM, &gamecom_state::gamecom_mem_map); + m_maincpu->dma_cb().set(FUNC(gamecom_state::gamecom_handle_dma)); + m_maincpu->timer_cb().set(FUNC(gamecom_state::gamecom_update_timers)); + m_maincpu->set_vblank_int("screen", FUNC(gamecom_state::gamecom_interrupt)); MCFG_QUANTUM_TIME(attotime::from_hz(60)) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index a6812d27c5f..1e7de904861 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -20,7 +20,6 @@ #include "emu.h" #include "includes/hh_sm510.h" -#include "cpu/sm510/sm510.h" #include "cpu/sm510/sm500.h" #include "rendlay.h" #include "screen.h" @@ -222,6 +221,13 @@ WRITE8_MEMBER(hh_sm510_state::piezo2bit_input_w) input_w(space, 0, data >> 1); } +void hh_sm510_state::write_segs(machine_config &config) +{ + m_maincpu->write_sega().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segb().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segc().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->write_segbs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); +} @@ -283,12 +289,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kdribble_state::kdribble) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -355,12 +361,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(ktopgun_state::ktopgun) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -429,11 +435,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kcontra_state::kcontra) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -501,11 +507,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(ktmnt_state::ktmnt) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -570,11 +576,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kgradius_state::kgradius) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -637,11 +643,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kloneran_state::kloneran) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -708,11 +714,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kblades_state::kblades) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -780,11 +786,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(knfl_state::knfl) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -851,11 +857,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kbilly_state::kbilly) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -916,11 +922,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kbucky_state::kbucky) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -985,11 +991,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(kgarfld_state::kgarfld) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -1077,12 +1083,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_mmouse_state::gnw_mmouse) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM5A) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) // ? - MCFG_SM500_WRITE_O_CB(WRITE8(*this, hh_sm510_state, sm500_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_input_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) + sm5a_device &sm5a(SM5A(config, m_maincpu)); + sm5a.set_r_mask_option(SM510_R_CONTROL_OUTPUT); // ? + sm5a.write_o().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); + sm5a.read_k().set(FUNC(hh_sm510_state::input_r)); + sm5a.write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + sm5a.read_ba().set_ioport("BA"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -1111,12 +1117,12 @@ MACHINE_CONFIG_START(gnw_mmouse_state::nupogodi) gnw_mmouse(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", KB1013VK12) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM500_WRITE_O_CB(WRITE8(*this, hh_sm510_state, sm500_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_input_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) + kb1013vk12_device &sm5a(KB1013VK12(config.replace(), m_maincpu)); + sm5a.set_r_mask_option(SM510_R_CONTROL_OUTPUT); + sm5a.write_o().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); + sm5a.read_k().set(FUNC(hh_sm510_state::input_r)); + sm5a.write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + sm5a.read_ba().set_ioport("BA"); /* video hardware */ MCFG_SCREEN_MODIFY("screen") @@ -1190,14 +1196,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_opanic_state::gnw_opanic) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -1275,13 +1281,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_dkong_state::gnw_dkong) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -1355,13 +1361,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_mickdon_state::gnw_mickdon) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r2_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r2_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -1444,14 +1450,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_ghouse_state::gnw_ghouse) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -1529,13 +1535,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_dkong2_state::gnw_dkong2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -1614,14 +1620,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_mario_state::gnw_mario) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_left", "svg_left") @@ -1706,14 +1712,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_dkjr_state::gnw_dkjr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -1787,14 +1793,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_mariocm_state::gnw_mariocm) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -1862,13 +1868,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_tfish_state::gnw_tfish) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -1945,12 +1951,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_smb_state::gnw_smb) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2026,12 +2032,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_climber_state::gnw_climber) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2127,13 +2133,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(gnw_boxing_state::gnw_boxing) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2236,14 +2242,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tgaunt_state::tgaunt) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2338,14 +2344,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tddragon_state::tddragon) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2432,14 +2438,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tkarnov_state::tkarnov) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2525,14 +2531,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tvindictr_state::tvindictr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2641,14 +2647,14 @@ void tgaiden_state::machine_start() MACHINE_CONFIG_START(tgaiden_state::tgaiden) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, tgaiden_state, write_r)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(tgaiden_state::write_r)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2730,14 +2736,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tbatman_state::tbatman) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2823,14 +2829,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsharr2_state::tsharr2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -2913,14 +2919,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tstrider_state::tstrider) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3007,14 +3013,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tgoldnaxe_state::tgoldnaxe) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3118,14 +3124,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(trobocop2_state::trobocop2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3225,14 +3231,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(taltbeast_state::taltbeast) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3319,14 +3325,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsf2010_state::tsf2010) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3409,14 +3415,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tswampt_state::tswampt) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3503,14 +3509,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tspidman_state::tspidman) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3597,14 +3603,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(txmen_state::txmen) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3691,14 +3697,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tddragon3_state::tddragon3) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3785,14 +3791,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tflash_state::tflash) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3880,13 +3886,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tmchammer_state::tmchammer) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -3973,14 +3979,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tbtoads_state::tbtoads) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4067,14 +4073,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(thook_state::thook) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4160,14 +4166,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tbttf_state::tbttf) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4256,14 +4262,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(taddams_state::taddams) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4350,14 +4356,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(thalone_state::thalone) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4440,14 +4446,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(txmenpx_state::txmenpx) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4534,14 +4540,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(thalone2_state::thalone2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4623,13 +4629,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsonic_state::tsonic) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, piezo2bit_input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo2bit_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4716,14 +4722,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(trobocop3_state::trobocop3) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4806,14 +4812,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tdummies_state::tdummies) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4900,14 +4906,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsfight2_state::tsfight2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -4994,14 +5000,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(twworld_state::twworld) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5084,14 +5090,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tjpark_state::tjpark) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5173,13 +5179,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsonic2_state::tsonic2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, piezo2bit_input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo2bit_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5271,14 +5277,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsddragon_state::tsddragon) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5366,14 +5372,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tdennis_state::tdennis) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5464,14 +5470,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tnmarebc_state::tnmarebc) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, tnmarebc_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(tnmarebc_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5558,14 +5564,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(ttransf2_state::ttransf2) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5648,14 +5654,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(topaliens_state::topaliens) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5743,14 +5749,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tmkombat_state::tmkombat) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5837,14 +5843,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tshadow_state::tshadow) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -5931,14 +5937,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tskelwarr_state::tskelwarr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6026,14 +6032,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tbatfor_state::tbatfor) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6121,14 +6127,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tjdredd_state::tjdredd) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6216,14 +6222,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tapollo13_state::tapollo13) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6311,14 +6317,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tgoldeye_state::tgoldeye) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6401,14 +6407,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tinday_state::tinday) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6491,14 +6497,14 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tsjam_state::tsjam) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) // no external XTAL - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM510(config, m_maincpu); // no external XTAL + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6581,13 +6587,13 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tbatmana_state::tbatmana) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, piezo2bit_input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo2bit_r1_w)) - MCFG_SM510_READ_BA_CB(IOPORT("BA")) - MCFG_SM510_READ_B_CB(IOPORT("B")) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6684,12 +6690,12 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tigarden_state::tigarden) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(2) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -6784,11 +6790,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(nummunch_state::nummunch) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM511) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w)) + SM511(config, m_maincpu); + write_segs(config); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") diff --git a/src/mame/drivers/mk85.cpp b/src/mame/drivers/mk85.cpp index b1161c79b20..54aa9cfa102 100644 --- a/src/mame/drivers/mk85.cpp +++ b/src/mame/drivers/mk85.cpp @@ -39,9 +39,12 @@ public: private: virtual void machine_reset() override; virtual void video_start() override; - uint32_t screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; + void mk85_mem(address_map &map); + + uint32_t screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_maincpu; }; @@ -70,24 +73,24 @@ uint32_t mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind16 &bit return 0; } -MACHINE_CONFIG_START(mk85_state::mk85) +void mk85_state::mk85(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", K1801VM2, XTAL(4'000'000)) - MCFG_T11_INITIAL_MODE(0) - MCFG_DEVICE_PROGRAM_MAP(mk85_mem) - + K1801VM2(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_initial_mode(0); + m_maincpu->set_addrmap(AS_PROGRAM, &mk85_state::mk85_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(mk85_state, screen_update_mk85) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(mk85_state::screen_update_mk85)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} /* ROM definition */ ROM_START( mk85 ) diff --git a/src/mame/drivers/mk90.cpp b/src/mame/drivers/mk90.cpp index 158b23f281e..776f2268281 100644 --- a/src/mame/drivers/mk90.cpp +++ b/src/mame/drivers/mk90.cpp @@ -34,9 +34,12 @@ public: private: virtual void machine_reset() override; virtual void video_start() override; - uint32_t screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; + void mk90_mem(address_map &map); + + uint32_t screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_maincpu; }; @@ -73,24 +76,24 @@ uint32_t mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind16 &bit return 0; } -MACHINE_CONFIG_START(mk90_state::mk90) +void mk90_state::mk90(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", K1801VM2, XTAL(4'000'000)) - MCFG_T11_INITIAL_MODE(0x8000) - MCFG_DEVICE_PROGRAM_MAP(mk90_mem) - + K1801VM2(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_initial_mode(0x8000); + m_maincpu->set_addrmap(AS_PROGRAM, &mk90_state::mk90_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(mk90_state, screen_update_mk90) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(mk90_state::screen_update_mk90)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} /* ROM definition */ ROM_START( mk90 ) diff --git a/src/mame/drivers/ms0515.cpp b/src/mame/drivers/ms0515.cpp index d8122586284..dcd7ceb96a5 100644 --- a/src/mame/drivers/ms0515.cpp +++ b/src/mame/drivers/ms0515.cpp @@ -113,7 +113,7 @@ private: void irq_encoder(int irq, int state); - required_device m_maincpu; + required_device m_maincpu; // actual CPU is T11 clone, KR1807VM1 required_device m_ram; required_device m_fdc; required_device m_floppy0; @@ -524,9 +524,9 @@ WRITE_LINE_MEMBER(ms0515_state::irq11_w) MACHINE_CONFIG_START(ms0515_state::ms0515) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", T11, XTAL(15'000'000) / 2) // actual CPU is T11 clone, KR1807VM1 - MCFG_T11_INITIAL_MODE(0xf2ff) - MCFG_DEVICE_PROGRAM_MAP(ms0515_mem) + T11(config, m_maincpu, XTAL(15'000'000) / 2); // actual CPU is T11 clone, KR1807VM1 + m_maincpu->set_initial_mode(0xf2ff); + m_maincpu->set_addrmap(AS_PROGRAM, &ms0515_state::ms0515_mem); /* video hardware -- 50 Hz refresh rate */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp index d3ad18e4506..e48405c021f 100644 --- a/src/mame/drivers/pdp11.cpp +++ b/src/mame/drivers/pdp11.cpp @@ -108,7 +108,7 @@ public: void pdp11qb(machine_config &config); private: - required_device m_maincpu; + required_device m_maincpu; required_device m_terminal; DECLARE_READ16_MEMBER( teletype_ctrl_r ); DECLARE_WRITE16_MEMBER( teletype_ctrl_w ); @@ -355,10 +355,9 @@ void pdp11_state::kbd_put(u8 data) MACHINE_CONFIG_START(pdp11_state::pdp11) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",T11, XTAL(4'000'000)) // Need proper CPU here - MCFG_T11_INITIAL_MODE(6 << 13) - MCFG_DEVICE_PROGRAM_MAP(pdp11_mem) - + T11(config, m_maincpu, XTAL(4'000'000)); // Need proper CPU here + m_maincpu->set_initial_mode(6 << 13); + m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11_mem); /* video hardware */ MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) @@ -376,9 +375,8 @@ MACHINE_CONFIG_START(pdp11_state::pdp11qb) pdp11(config); MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11qb) - MCFG_DEVICE_MODIFY("maincpu") - MCFG_T11_INITIAL_MODE(0 << 13) - MCFG_DEVICE_PROGRAM_MAP(pdp11qb_mem) + m_maincpu->set_initial_mode(0 << 13); + m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11qb_mem); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp index fa6905d839d..3dada88ed57 100644 --- a/src/mame/drivers/rzone.cpp +++ b/src/mame/drivers/rzone.cpp @@ -245,11 +245,11 @@ INPUT_PORTS_END MACHINE_CONFIG_START(rzone_state::rzbatfor) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM512) // no external XTAL - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, rzone_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, rzone_state, t2_write_s)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, rzone_state, t2_write_r)) + SM512(config, m_maincpu); // no external XTAL + write_segs(config); + m_maincpu->read_k().set(FUNC(rzone_state::input_r)); + m_maincpu->write_s().set(FUNC(rzone_state::t2_write_s)); + m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -270,12 +270,12 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(rzone_state::rztoshden) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, rzone_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, rzone_state, t1_write_s)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, rzone_state, t1_write_r)) + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); + write_segs(config); + m_maincpu->read_k().set(FUNC(rzone_state::input_r)); + m_maincpu->write_s().set(FUNC(rzone_state::t1_write_s)); + m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") @@ -296,12 +296,12 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(rzone_state::rzindy500) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SM510) // no external XTAL - MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT) // confirmed - MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w)) - MCFG_SM510_READ_K_CB(READ8(*this, rzone_state, input_r)) - MCFG_SM510_WRITE_S_CB(WRITE8(*this, rzone_state, t1_write_s)) - MCFG_SM510_WRITE_R_CB(WRITE8(*this, rzone_state, t1_write_r)) + SM510(config, m_maincpu); // no external XTAL + m_maincpu->set_r_mask_option(SM510_R_CONTROL_OUTPUT); // confirmed + write_segs(config); + m_maincpu->read_k().set(FUNC(rzone_state::input_r)); + m_maincpu->write_s().set(FUNC(rzone_state::t1_write_s)); + m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp index 8647575379e..bcea4fdf672 100644 --- a/src/mame/drivers/sun4.cpp +++ b/src/mame/drivers/sun4.cpp @@ -1848,8 +1848,8 @@ void sun4_state::ncr53c90a(device_t *device) MACHINE_CONFIG_START(sun4_state::sun4) /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, MB86901, 16'670'000) - MCFG_SPARC_ADD_ASI_DESC(sun4_asi_desc) + MB86901(config, m_maincpu, 16'670'000); + m_maincpu->add_asi_desc([](sparc_disassembler *dasm) { dasm->add_asi_desc(sun4_asi_desc); }); m_maincpu->set_addrmap(0, &sun4_state::sun4c_debugger_map); // TODO: MMU for sun4 hardware @@ -1934,8 +1934,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(sun4_state::sun4c) /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, MB86901, 20'000'000) - MCFG_SPARC_ADD_ASI_DESC(sun4c_asi_desc) + MB86901(config, m_maincpu, 20'000'000); + m_maincpu->add_asi_desc([](sparc_disassembler *dasm) { dasm->add_asi_desc(sun4c_asi_desc); }); m_maincpu->set_addrmap(0, &sun4_state::sun4c_debugger_map); SUN4C_MMU(config, m_mmu, 20'000'000, 7, 0x7f); diff --git a/src/mame/drivers/terak.cpp b/src/mame/drivers/terak.cpp index bb2fc931eaf..307a9116acd 100644 --- a/src/mame/drivers/terak.cpp +++ b/src/mame/drivers/terak.cpp @@ -23,7 +23,7 @@ public: terak_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - { } + { } void terak(machine_config &config); @@ -40,7 +40,7 @@ private: uint8_t m_cmd; virtual void machine_reset() override; virtual void video_start() override; - required_device m_maincpu; + required_device m_maincpu; }; READ16_MEMBER( terak_state::terak_fdc_status_r ) @@ -102,24 +102,24 @@ uint32_t terak_state::screen_update_terak(screen_device &screen, bitmap_ind16 &b } -MACHINE_CONFIG_START(terak_state::terak) +void terak_state::terak(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",T11, XTAL(4'000'000)) - MCFG_T11_INITIAL_MODE(6 << 13) - MCFG_DEVICE_PROGRAM_MAP(mem_map) + T11(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_initial_mode(6 << 13); + m_maincpu->set_addrmap(AS_PROGRAM, &terak_state::mem_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(terak_state, screen_update_terak) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") - -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(terak_state::screen_update_terak)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} /* ROM definition */ ROM_START( terak ) diff --git a/src/mame/drivers/uknc.cpp b/src/mame/drivers/uknc.cpp index 9622f9b2bcc..ec65f19cc8f 100644 --- a/src/mame/drivers/uknc.cpp +++ b/src/mame/drivers/uknc.cpp @@ -18,8 +18,9 @@ class uknc_state : public driver_device { public: uknc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { } void uknc(machine_config &config); @@ -27,7 +28,7 @@ private: virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; + required_device m_maincpu; void uknc_mem(address_map &map); void uknc_sub_mem(address_map &map); @@ -66,28 +67,28 @@ uint32_t uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind16 &bit return 0; } -MACHINE_CONFIG_START(uknc_state::uknc) +void uknc_state::uknc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", K1801VM2, 8000000) - MCFG_T11_INITIAL_MODE(0x8000) - MCFG_DEVICE_PROGRAM_MAP(uknc_mem) - - MCFG_DEVICE_ADD("subcpu", K1801VM2, 6000000) - MCFG_T11_INITIAL_MODE(0x8000) - MCFG_DEVICE_PROGRAM_MAP(uknc_sub_mem) + K1801VM2(config, m_maincpu, 8000000); + m_maincpu->set_initial_mode(0x8000); + m_maincpu->set_addrmap(AS_PROGRAM, &uknc_state::uknc_mem); + k1801vm2_device &subcpu(K1801VM2(config, "subcpu", 6000000)); + subcpu.set_initial_mode(0x8000); + subcpu.set_addrmap(AS_PROGRAM, &uknc_state::uknc_sub_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(uknc_state, screen_update_uknc) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD_MONOCHROME("palette") -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(uknc_state::screen_update_uknc)); + screen.set_palette("palette"); + + PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome)); +} /* ROM definition */ ROM_START( uknc ) diff --git a/src/mame/drivers/vax11.cpp b/src/mame/drivers/vax11.cpp index 7fd7a59a210..6be5d7cde69 100644 --- a/src/mame/drivers/vax11.cpp +++ b/src/mame/drivers/vax11.cpp @@ -83,7 +83,7 @@ public: void vax11(machine_config &config); private: - required_device m_maincpu; + required_device m_maincpu; required_device m_terminal; DECLARE_READ16_MEMBER( term_r ); DECLARE_READ16_MEMBER( term_tx_status_r ); @@ -142,9 +142,9 @@ void vax11_state::kbd_put(u8 data) MACHINE_CONFIG_START(vax11_state::vax11) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",T11, XTAL(4'000'000)) // Need proper CPU here - MCFG_T11_INITIAL_MODE(0 << 13) - MCFG_DEVICE_PROGRAM_MAP(vax11_mem) + T11(config, m_maincpu, XTAL(4'000'000)); // Need proper CPU here + m_maincpu->set_initial_mode(0 << 13); + m_maincpu->set_addrmap(AS_PROGRAM, &vax11_state::vax11_mem); /* video hardware */ MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp index 51ff55baf52..5f6cf9f0ca3 100644 --- a/src/mame/drivers/vt240.cpp +++ b/src/mame/drivers/vt240.cpp @@ -59,7 +59,7 @@ public: void vt240(machine_config &config); private: - required_device m_maincpu; + required_device m_maincpu; required_device m_i8085; required_device m_i8251; required_device m_duart; @@ -655,10 +655,10 @@ static INPUT_PORTS_START( vt240 ) INPUT_PORTS_END MACHINE_CONFIG_START(vt240_state::vt240) - MCFG_DEVICE_ADD("maincpu", T11, XTAL(7'372'800)) // confirm - MCFG_DEVICE_PROGRAM_MAP(vt240_mem) - MCFG_T11_INITIAL_MODE(5 << 13) - MCFG_T11_RESET(WRITELINE(*this, vt240_state, t11_reset_w)) + T11(config, m_maincpu, XTAL(7'372'800)); // confirm + m_maincpu->set_addrmap(AS_PROGRAM, &vt240_state::vt240_mem); + m_maincpu->set_initial_mode(5 << 13); + m_maincpu->out_reset().set(FUNC(vt240_state::t11_reset_w)); MCFG_DEVICE_ADD("charcpu", I8085A, XTAL(16'097'280) / 2) MCFG_DEVICE_PROGRAM_MAP(vt240_char_mem) diff --git a/src/mame/includes/bk.h b/src/mame/includes/bk.h index 7b3f71263a8..f9a9c8d9066 100644 --- a/src/mame/includes/bk.h +++ b/src/mame/includes/bk.h @@ -10,6 +10,7 @@ #pragma once +#include "cpu/t11/t11.h" #include "imagedev/cassette.h" class bk_state : public driver_device @@ -47,7 +48,7 @@ public: uint32_t screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(keyboard_callback); IRQ_CALLBACK_MEMBER(bk0010_irq_callback); - required_device m_maincpu; + required_device m_maincpu; required_device m_cassette; void bk0010(machine_config &config); void bk0010fd(machine_config &config); diff --git a/src/mame/includes/gamecom.h b/src/mame/includes/gamecom.h index 75db40ddb68..9ad26af4dc7 100644 --- a/src/mame/includes/gamecom.h +++ b/src/mame/includes/gamecom.h @@ -283,7 +283,7 @@ private: virtual void video_start() override; required_shared_ptr m_p_videoram; required_shared_ptr m_p_nvram; - required_device m_maincpu; + required_device m_maincpu; required_device m_screen; required_device m_dac; required_device m_dac0; diff --git a/src/mame/includes/hh_sm510.h b/src/mame/includes/hh_sm510.h index 4211307659e..017cccbe548 100644 --- a/src/mame/includes/hh_sm510.h +++ b/src/mame/includes/hh_sm510.h @@ -9,6 +9,7 @@ #ifndef MAME_INCLUDES_HH_SM510_H #define MAME_INCLUDES_HH_SM510_H +#include "cpu/sm510/sm510.h" #include "machine/timer.h" #include "sound/spkrdev.h" @@ -28,7 +29,7 @@ public: { } // devices - required_device m_maincpu; + required_device m_maincpu; optional_ioport_array<8> m_inp_matrix; // max 8 output_finder<16, 16, 4> m_out_x; optional_device m_speaker; @@ -70,6 +71,8 @@ public: protected: virtual void machine_start() override; virtual void machine_reset() override; + + void write_segs(machine_config &config); }; -- cgit v1.2.3