diff options
Diffstat (limited to 'src/mame/drivers/meritm.cpp')
-rw-r--r-- | src/mame/drivers/meritm.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp index 1c42c12280a..001d469f427 100644 --- a/src/mame/drivers/meritm.cpp +++ b/src/mame/drivers/meritm.cpp @@ -254,10 +254,10 @@ public: void init_megat3te(); virtual void machine_start() override; virtual void video_start() override; - void machine_start_meritm_crt250_questions() ATTR_COLD; - void machine_start_meritm_crt250_crt252_crt258() ATTR_COLD; - void machine_start_meritm_crt260() ATTR_COLD; - void machine_start_merit_common() ATTR_COLD; + DECLARE_MACHINE_START(meritm_crt250_questions); + DECLARE_MACHINE_START(meritm_crt250_crt252_crt258); + DECLARE_MACHINE_START(meritm_crt260); + DECLARE_MACHINE_START(merit_common); uint32_t screen_update_meritm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(vblank_start_tick); TIMER_DEVICE_CALLBACK_MEMBER(vblank_end_tick); @@ -1043,7 +1043,7 @@ static const z80_daisy_config meritm_daisy_chain[] = { nullptr } }; -void meritm_state::machine_start_merit_common() +MACHINE_START_MEMBER(meritm_state,merit_common) { m_z80pio_0->strobe_a(1); m_z80pio_0->strobe_b(1); @@ -1056,22 +1056,23 @@ void meritm_state::machine_start() m_bank1->configure_entries(0, 8, m_region_maincpu->base(), 0x10000); m_bank = 0xff; meritm_crt250_switch_banks(); - machine_start_merit_common(); + MACHINE_START_CALL_MEMBER(merit_common); save_item(NAME(m_bank)); + } -void meritm_state::machine_start_meritm_crt250_questions() +MACHINE_START_MEMBER(meritm_state,meritm_crt250_questions) { meritm_state::machine_start(); save_item(NAME(m_questions_loword_address)); } -void meritm_state::machine_start_meritm_crt250_crt252_crt258() +MACHINE_START_MEMBER(meritm_state,meritm_crt250_crt252_crt258) { - machine_start_meritm_crt250_questions(); + MACHINE_START_CALL_MEMBER(meritm_crt250_questions); } -void meritm_state::machine_start_meritm_crt260() +MACHINE_START_MEMBER(meritm_state,meritm_crt260) { m_ram = std::make_unique<uint8_t[]>( 0x8000 ); machine().device<nvram_device>("nvram")->set_base(m_ram.get(), 0x8000); @@ -1082,7 +1083,7 @@ void meritm_state::machine_start_meritm_crt260() m_bank = 0xff; m_psd_a15 = 0; meritm_switch_banks(); - machine_start_merit_common(); + MACHINE_START_CALL_MEMBER(merit_common); save_item(NAME(m_bank)); save_item(NAME(m_psd_a15)); save_pointer(NAME(m_ram.get()), 0x8000); @@ -1154,14 +1155,14 @@ MACHINE_CONFIG_START(meritm_state::meritm_crt250_questions) meritm_crt250(config); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(meritm_crt250_questions_map) - set_machine_start_cb(config, driver_callback_delegate(&machine_start_meritm_crt250_questions, this)); + MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt250_questions) MACHINE_CONFIG_END MACHINE_CONFIG_START(meritm_state::meritm_crt250_crt252_crt258) meritm_crt250_questions(config); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(meritm_crt250_crt258_io_map) - set_machine_start_cb(config, driver_callback_delegate(&machine_start_meritm_crt250_crt252_crt258, this)); + MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt250_crt252_crt258) MCFG_DEVICE_ADD("ns16550", NS16550, UART_CLK) MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) @@ -1181,7 +1182,7 @@ MACHINE_CONFIG_START(meritm_state::meritm_crt260) MCFG_WATCHDOG_ADD("watchdog") MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(1200)) // DS1232, TD connected to VCC - set_machine_start_cb(config, driver_callback_delegate(&machine_start_meritm_crt260, this)); + MCFG_MACHINE_START_OVERRIDE(meritm_state,meritm_crt260) MCFG_DEVICE_ADD("ns16550", NS16550, UART_CLK) MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) |