summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-12-07 15:48:49 +0100
committer mooglyguy <therealmogminer@gmail.com>2018-12-07 15:49:01 +0100
commit97e392975716f39076818dfd5144721cbefe368a (patch)
tree2240bd22a050304bdeccfca8114beb33a1ec2f15
parente754e4358699b1ef7f37bb54f1ce63fa832dd5b5 (diff)
sm510, sm8500, sparc, superfx, t11: Removed MCFG, nw
-rw-r--r--src/devices/bus/snes/sfx.cpp11
-rw-r--r--src/devices/cpu/sm510/sm500.h15
-rw-r--r--src/devices/cpu/sm510/sm510.h79
-rw-r--r--src/devices/cpu/sm8500/sm8500.h10
-rw-r--r--src/devices/cpu/sparc/sparc.h4
-rw-r--r--src/devices/cpu/superfx/superfx.h6
-rw-r--r--src/devices/cpu/t11/t11.h8
-rw-r--r--src/mame/drivers/atarisy2.cpp6
-rw-r--r--src/mame/drivers/bk.cpp39
-rw-r--r--src/mame/drivers/dct11em.cpp42
-rw-r--r--src/mame/drivers/dvk_kcgd.cpp8
-rw-r--r--src/mame/drivers/galgame.cpp37
-rw-r--r--src/mame/drivers/gamecom.cpp10
-rw-r--r--src/mame/drivers/hh_sm510.cpp1086
-rw-r--r--src/mame/drivers/mk85.cpp37
-rw-r--r--src/mame/drivers/mk90.cpp37
-rw-r--r--src/mame/drivers/ms0515.cpp8
-rw-r--r--src/mame/drivers/pdp11.cpp14
-rw-r--r--src/mame/drivers/rzone.cpp34
-rw-r--r--src/mame/drivers/sun4.cpp8
-rw-r--r--src/mame/drivers/terak.cpp34
-rw-r--r--src/mame/drivers/uknc.cpp43
-rw-r--r--src/mame/drivers/vax11.cpp8
-rw-r--r--src/mame/drivers/vt240.cpp10
-rw-r--r--src/mame/includes/bk.h3
-rw-r--r--src/mame/includes/gamecom.h2
-rw-r--r--src/mame/includes/hh_sm510.h5
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<sm500_device &>(*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 <class Object> devcb_base &set_write_o_callback(Object &&cb) { return m_write_o.set_callback(std::forward<Object>(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<sm510_base_device &>(*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<sm510_base_device &>(*device).set_read_ba_callback(DEVCB_##_devcb);
-
-// 1-bit B(beta) input pin (pull-up)
-#define MCFG_SM510_READ_B_CB(_devcb) \
- downcast<sm510_base_device &>(*device).set_read_b_callback(DEVCB_##_devcb);
-
-// 8-bit S strobe output port
-#define MCFG_SM510_WRITE_S_CB(_devcb) \
- downcast<sm510_base_device &>(*device).set_write_s_callback(DEVCB_##_devcb);
-
-// 1/2/4-bit R (buzzer/melody) output port
-#define MCFG_SM510_WRITE_R_CB(_devcb) \
- downcast<sm510_base_device &>(*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<sm510_base_device &>(*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<sm510_base_device &>(*device).set_write_sega_callback(DEVCB_##_devcb);
-#define MCFG_SM510_WRITE_SEGB_CB(_devcb) \
- downcast<sm510_base_device &>(*device).set_write_segb_callback(DEVCB_##_devcb);
-#define MCFG_SM510_WRITE_SEGC_CB(_devcb) \
- downcast<sm510_base_device &>(*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<sm510_base_device &>(*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 <class Object> devcb_base &set_read_k_callback(Object &&cb) { return m_read_k.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_read_ba_callback(Object &&cb) { return m_read_ba.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_read_b_callback(Object &&cb) { return m_read_b.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_s_callback(Object &&cb) { return m_write_s.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_r_callback(Object &&cb) { return m_write_r.set_callback(std::forward<Object>(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 <class Object> devcb_base &set_write_sega_callback(Object &&cb) { return m_write_sega.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_segb_callback(Object &&cb) { return m_write_segb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_segc_callback(Object &&cb) { return m_write_segc.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_segbs_callback(Object &&cb) { return m_write_segbs.set_callback(std::forward<Object>(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<sm8500_cpu_device &>(*device).set_dma_cb(DEVCB_##_devcb);
-
-#define MCFG_SM8500_TIMER_CB(_devcb) \
- downcast<sm8500_cpu_device &>(*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 <class Object> devcb_base &set_dma_cb(Object &&cb) { return m_dma_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_timer_cb(Object &&cb) { return m_timer_func.set_callback(std::forward<Object>(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 <map>
#endif
-// TODO: when there are more SPARC CPUs, move setter to a base class
-#define MCFG_SPARC_ADD_ASI_DESC(desc) \
- downcast<mb86901_device &>(*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<superfx_device &>(*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 <class Object> devcb_base &set_out_irq_func(Object &&cb) { return m_out_irq_func.set_callback(std::forward<Object>(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<t11_device &>(*device).set_initial_mode(_mode);
-
-#define MCFG_T11_RESET(_devcb) \
- downcast<t11_device &>(*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 <class Object> devcb_base &set_out_reset_func(Object &&cb) { return m_out_reset_func.set_callback(std::forward<Object>(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<cpu_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<t11_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<uint32_t[]> m_videoram;
- required_device<cpu_device> m_maincpu;
+ required_device<k1801vm2_device> m_maincpu;
// required_device<ms7004_device> m_ms7004;
required_device<palette_device> m_palette;
required_device<screen_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu;
required_device<palette_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<cpu_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<k1801vm2_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<cpu_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<k1801vm2_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu; // actual CPU is T11 clone, KR1807VM1
required_device<ram_device> m_ram;
required_device<kr1818vg93_device> m_fdc;
required_device<floppy_image_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu;
required_device<generic_terminal_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<cpu_device> m_maincpu;
+ required_device<t11_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<cpu_device> m_maincpu;
+ required_device<k1801vm2_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu;
required_device<generic_terminal_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu;
required_device<cpu_device> m_i8085;
required_device<i8251_device> m_i8251;
required_device<scn2681_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<cpu_device> m_maincpu;
+ required_device<t11_device> m_maincpu;
required_device<cassette_image_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<uint8_t> m_p_videoram;
required_shared_ptr<uint8_t> m_p_nvram;
- required_device<cpu_device> m_maincpu;
+ required_device<sm8500_cpu_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<dac_byte_interface> m_dac;
required_device<dac_byte_interface> 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<cpu_device> m_maincpu;
+ required_device<sm510_base_device> m_maincpu;
optional_ioport_array<8> m_inp_matrix; // max 8
output_finder<16, 16, 4> m_out_x;
optional_device<speaker_sound_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);
};