diff --git a/src/mess/drivers/4004clk.c b/src/mess/drivers/4004clk.c index 9875212e5d8..099f95f7ec7 100644 --- a/src/mess/drivers/4004clk.c +++ b/src/mess/drivers/4004clk.c @@ -130,7 +130,7 @@ INPUT_PORTS_END TIMER_DEVICE_CALLBACK_MEMBER(nixieclock_state::timer_callback) { - i4004_set_test(machine().device("maincpu"),m_timer); + i4004_set_test(m_maincpu,m_timer); m_timer^=1; } diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c index 2c690f2a3c5..d3f62cb1b74 100644 --- a/src/mess/drivers/a2600.c +++ b/src/mess/drivers/a2600.c @@ -53,7 +53,8 @@ public: m_riot_ram(*this, "riot_ram"), m_banking_mode(0xff), m_joy1(*this, CONTROL1_TAG), - m_joy2(*this, CONTROL2_TAG) { } + m_joy2(*this, CONTROL2_TAG) , + m_maincpu(*this, "maincpu") { } dpc_t m_dpc; memory_region* m_extra_RAM; @@ -167,6 +168,7 @@ protected: int detect_32K_mode3F(); int detect_super_chip(); unsigned long detect_2600controllers(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/a51xx.c b/src/mess/drivers/a51xx.c index c6213339315..a0a2646b715 100644 --- a/src/mess/drivers/a51xx.c +++ b/src/mess/drivers/a51xx.c @@ -17,7 +17,8 @@ class a51xx_state : public driver_device { public: a51xx_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); @@ -25,6 +26,7 @@ public: DECLARE_VIDEO_START(a5130); UINT32 screen_update_a5120(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_a5130(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/a6809.c b/src/mess/drivers/a6809.c index cc04b645fbe..403ee8a9437 100644 --- a/src/mess/drivers/a6809.c +++ b/src/mess/drivers/a6809.c @@ -24,7 +24,8 @@ public: : driver_device(mconfig, type, tag), m_via(*this, "via"), m_videoram(*this, "videoram") - { } + , + m_maincpu(*this, "maincpu") { } required_device m_via; required_shared_ptr m_videoram; @@ -35,6 +36,7 @@ public: UINT8 m_keydata; virtual void machine_reset(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/a7000.c b/src/mess/drivers/a7000.c index 169c8a1312d..8d7e490e20c 100644 --- a/src/mess/drivers/a7000.c +++ b/src/mess/drivers/a7000.c @@ -576,7 +576,7 @@ TIMER_CALLBACK_MEMBER(a7000_state::IOMD_timer0_callback) m_IRQ_status_A|=0x20; if(m_IRQ_mask_A&0x20) { - generic_pulse_irq_line(machine().device("maincpu")->execute(), ARM7_IRQ_LINE,1); + generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE,1); } } @@ -585,7 +585,7 @@ TIMER_CALLBACK_MEMBER(a7000_state::IOMD_timer1_callback) m_IRQ_status_A|=0x40; if(m_IRQ_mask_A&0x40) { - generic_pulse_irq_line(machine().device("maincpu")->execute(), ARM7_IRQ_LINE,1); + generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE,1); } } @@ -594,7 +594,7 @@ TIMER_CALLBACK_MEMBER(a7000_state::flyback_timer_callback) m_IRQ_status_A|=0x08; if(m_IRQ_mask_A&0x08) { - generic_pulse_irq_line(machine().device("maincpu")->execute(), ARM7_IRQ_LINE,1); + generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE,1); } m_flyback_timer->adjust(machine().primary_screen->time_until_pos(m_vidc20_vert_reg[VDER])); diff --git a/src/mess/drivers/a7150.c b/src/mess/drivers/a7150.c index adf62789a01..96287e5164c 100644 --- a/src/mess/drivers/a7150.c +++ b/src/mess/drivers/a7150.c @@ -16,11 +16,13 @@ class a7150_state : public driver_device { public: a7150_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/altair.c b/src/mess/drivers/altair.c index f256758f46a..f781e7a30fc 100644 --- a/src/mess/drivers/altair.c +++ b/src/mess/drivers/altair.c @@ -106,7 +106,7 @@ QUICKLOAD_LOAD(altair) void altair_state::machine_reset() { // Set startup addess done by turn-key - machine().device("maincpu")->state().set_state_int(I8085_PC, 0xFD00); + m_maincpu->set_state_int(I8085_PC, 0xFD00); m_term_data = 0; } diff --git a/src/mess/drivers/amico2k.c b/src/mess/drivers/amico2k.c index 2c88725215a..b63190afda8 100644 --- a/src/mess/drivers/amico2k.c +++ b/src/mess/drivers/amico2k.c @@ -38,7 +38,8 @@ class amico2k_state : public driver_device { public: amico2k_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } void machine_start(); @@ -53,6 +54,7 @@ public: // timers emu_timer *m_led_refresh_timer; TIMER_CALLBACK_MEMBER(led_refresh); + required_device m_maincpu; }; diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c index c9a67697808..02184214f20 100644 --- a/src/mess/drivers/apc.c +++ b/src/mess/drivers/apc.c @@ -754,7 +754,7 @@ IRQ_CALLBACK_MEMBER(apc_state::irq_callback) void apc_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(apc_state::irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(apc_state::irq_callback),this)); m_fdc->set_rate(500000); m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(apc_state::fdc_irq), this)); @@ -887,7 +887,7 @@ WRITE_LINE_MEMBER(apc_state::apc_master_set_int_line) { //printf("%02x\n",interrupt); // printf("irq %d\n",state); - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } READ8_MEMBER(apc_state::get_slave_ack) diff --git a/src/mess/drivers/apexc.c b/src/mess/drivers/apexc.c index cd33ba698cc..ecd0059c356 100644 --- a/src/mess/drivers/apexc.c +++ b/src/mess/drivers/apexc.c @@ -14,7 +14,8 @@ class apexc_state : public driver_device { public: apexc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } UINT32 m_panel_data_reg; /* value of a data register on the control panel which can be edited - the existence of this register is a personnal @@ -41,6 +42,7 @@ public: void apexc_teletyper_init(); void apexc_teletyper_linefeed(); void apexc_teletyper_putchar(int character); + required_device m_maincpu; }; void apexc_state::machine_start() diff --git a/src/mess/drivers/applix.c b/src/mess/drivers/applix.c index 223264cd6ed..0c2b7c2d4fd 100644 --- a/src/mess/drivers/applix.c +++ b/src/mess/drivers/applix.c @@ -109,7 +109,7 @@ void applix_state::machine_reset() { UINT8* RAM = memregion("maincpu")->base(); memcpy(m_base, RAM+0x500000, 16); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } diff --git a/src/mess/drivers/astrocde.c b/src/mess/drivers/astrocde.c index da7009282ef..d9672114e4a 100644 --- a/src/mess/drivers/astrocde.c +++ b/src/mess/drivers/astrocde.c @@ -100,7 +100,7 @@ ADDRESS_MAP_END INPUT_CHANGED_MEMBER(astrocde_mess_state::set_write_protect) // run when RAM expansion write protect switch is changed { int ram_expansion_installed = 0, write_protect_on = 0, expansion_ram_start = 0, expansion_ram_end = 0, shadow_ram_end = 0; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *expram = machine().device("ram_tag")->pointer(); get_ram_expansion_settings(ram_expansion_installed, write_protect_on, expansion_ram_start, expansion_ram_end, shadow_ram_end); // passing by reference @@ -320,7 +320,7 @@ DRIVER_INIT_MEMBER(astrocde_state,astrocde) MACHINE_RESET_MEMBER(astrocde_mess_state, astrocde) { int ram_expansion_installed = 0, write_protect_on = 0, expansion_ram_start = 0, expansion_ram_end = 0, shadow_ram_end = 0; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *expram = machine().device("ram_tag")->pointer(); space.unmap_readwrite(0x5000, 0xffff); // unmap any previously installed expansion RAM diff --git a/src/mess/drivers/b16.c b/src/mess/drivers/b16.c index ab8783579cb..dcae69fd6e5 100644 --- a/src/mess/drivers/b16.c +++ b/src/mess/drivers/b16.c @@ -23,7 +23,8 @@ class b16_state : public driver_device public: b16_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_vram(*this, "vram"){ } + m_vram(*this, "vram"), + m_maincpu(*this, "maincpu") { } UINT8 *m_char_rom; required_shared_ptr m_vram; @@ -43,6 +44,7 @@ public: i8237_device *m_dma8237; virtual void machine_start(); virtual void machine_reset(); + required_device m_maincpu; }; #define mc6845_h_char_total (m_crtc_vreg[0]) diff --git a/src/mess/drivers/babbage.c b/src/mess/drivers/babbage.c index d2bdf2dbd9c..2f747339105 100644 --- a/src/mess/drivers/babbage.c +++ b/src/mess/drivers/babbage.c @@ -184,7 +184,7 @@ static Z80PIO_INTERFACE( babbage_z80pio1_intf ) READ8_MEMBER( babbage_state::pio2_a_r ) { - machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); // release interrupt + m_maincpu->set_input_line(0, CLEAR_LINE); // release interrupt return m_key; } diff --git a/src/mess/drivers/basic52.c b/src/mess/drivers/basic52.c index 1dcfee22ab1..a2167dd83f9 100644 --- a/src/mess/drivers/basic52.c +++ b/src/mess/drivers/basic52.c @@ -102,8 +102,8 @@ void basic52_state::machine_reset() WRITE8_MEMBER( basic52_state::kbd_put ) { - machine().device("maincpu")->execute().set_input_line(MCS51_RX_LINE, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(MCS51_RX_LINE, CLEAR_LINE); + m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE); + m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE); m_term_data = data; } diff --git a/src/mess/drivers/bbcbc.c b/src/mess/drivers/bbcbc.c index d216219628a..1b35a461ae1 100644 --- a/src/mess/drivers/bbcbc.c +++ b/src/mess/drivers/bbcbc.c @@ -103,7 +103,7 @@ INPUT_PORTS_END WRITE_LINE_MEMBER(bbcbc_state::tms_interrupt) { - machine().device("maincpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } static TMS9928A_INTERFACE(tms9129_interface) diff --git a/src/mess/drivers/besta.c b/src/mess/drivers/besta.c index ab3c1765959..03e3c47f769 100644 --- a/src/mess/drivers/besta.c +++ b/src/mess/drivers/besta.c @@ -121,7 +121,7 @@ void besta_state::machine_reset() memset(m_mpcc_regs, sizeof(m_mpcc_regs), 0); // should initialize to defined values m_mpcc_regs[8] = 0x80; // always ready to transmit - machine().device("maincpu")->reset(); + m_maincpu->reset(); } static GENERIC_TERMINAL_INTERFACE( terminal_intf ) diff --git a/src/mess/drivers/binbug.c b/src/mess/drivers/binbug.c index e6f6b051b2d..a0ea19a1400 100644 --- a/src/mess/drivers/binbug.c +++ b/src/mess/drivers/binbug.c @@ -64,7 +64,8 @@ public: m_keyboard(*this, KEYBOARD_TAG), m_cass(*this, CASSETTE_TAG), m_p_videoram(*this, "videoram"), - m_p_attribram(*this, "attribram") { } + m_p_attribram(*this, "attribram") , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(binbug_ctrl_w); DECLARE_READ8_MEMBER(binbug_serial_r); @@ -77,6 +78,7 @@ public: required_device m_cass; required_shared_ptr m_p_videoram; required_shared_ptr m_p_attribram; + required_device m_maincpu; }; WRITE8_MEMBER( binbug_state::binbug_ctrl_w ) diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c index 512094aa9c3..5bcfaf4090d 100644 --- a/src/mess/drivers/bml3.c +++ b/src/mess/drivers/bml3.c @@ -595,7 +595,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bml3_state::keyboard_callback) { m_keyb_press = scancode; m_keyb_press_flag = 1; - machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE); + m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE); return; } } @@ -608,7 +608,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bml3_state::keyboard_callback) #if 0 INTERRUPT_GEN_MEMBER(bml3_state::bml3_irq) { - machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE); + m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE); } #endif diff --git a/src/mess/drivers/busicom.c b/src/mess/drivers/busicom.c index 24b35c68e1b..3e97d142934 100644 --- a/src/mess/drivers/busicom.c +++ b/src/mess/drivers/busicom.c @@ -182,7 +182,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(busicom_state::timer_callback) m_timer ^=1; if (m_timer==1) m_drum_index++; if (m_drum_index==13) m_drum_index=0; - i4004_set_test(machine().device("maincpu"),m_timer); + i4004_set_test(m_maincpu,m_timer); } diff --git a/src/mess/drivers/c900.c b/src/mess/drivers/c900.c index 244408cefe0..af25ae445ff 100644 --- a/src/mess/drivers/c900.c +++ b/src/mess/drivers/c900.c @@ -16,9 +16,11 @@ class c900_state : public driver_device { public: c900_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START(c900_mem, AS_PROGRAM, 16, c900_state) diff --git a/src/mess/drivers/camplynx.c b/src/mess/drivers/camplynx.c index dde97451758..3b66b6f40aa 100644 --- a/src/mess/drivers/camplynx.c +++ b/src/mess/drivers/camplynx.c @@ -353,7 +353,7 @@ MACHINE_RESET_MEMBER(camplynx_state,lynx128k) WRITE8_MEMBER( camplynx_state::lynx128k_irq ) { - machine().device("maincpu")->execute().set_input_line(0, data); + m_maincpu->set_input_line(0, data); } diff --git a/src/mess/drivers/casloopy.c b/src/mess/drivers/casloopy.c index c6ef5b79d1a..ebaf2965e7a 100644 --- a/src/mess/drivers/casloopy.c +++ b/src/mess/drivers/casloopy.c @@ -160,7 +160,8 @@ public: : driver_device(mconfig, type, tag), m_bios_rom(*this, "bios_rom"), m_vregs(*this, "vregs") - { } + , + m_maincpu(*this, "maincpu") { } required_shared_ptr m_bios_rom; required_shared_ptr m_vregs; @@ -184,6 +185,7 @@ public: DECLARE_WRITE16_MEMBER(sh7021_w); DECLARE_READ8_MEMBER(casloopy_bitmap_r); DECLARE_WRITE8_MEMBER(casloopy_bitmap_w); + required_device m_maincpu; }; @@ -439,7 +441,7 @@ void casloopy_state::machine_start() void casloopy_state::machine_reset() { - //machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); //halt the CPU until we find enough data to proceed + //m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); //halt the CPU until we find enough data to proceed } diff --git a/src/mess/drivers/cat.c b/src/mess/drivers/cat.c index 17d5b15681f..080447d1fe9 100644 --- a/src/mess/drivers/cat.c +++ b/src/mess/drivers/cat.c @@ -812,12 +812,12 @@ TIMER_CALLBACK_MEMBER(cat_state::counter_6ms_callback) // is there some way to 'strobe' the duart to tell it that its input ports just changed? m_duart_inp ^= 0x04; m_6ms_counter++; - machine().device("maincpu")->execute().set_input_line(M68K_IRQ_1, ASSERT_LINE); // hack until duart ints work; as of march 2013 they do not work correctly here (they fire at the wrong rate) + m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE); // hack until duart ints work; as of march 2013 they do not work correctly here (they fire at the wrong rate) } IRQ_CALLBACK_MEMBER(cat_state::cat_int_ack) { - machine().device("maincpu")->execute().set_input_line(M68K_IRQ_1,CLEAR_LINE); + m_maincpu->set_input_line(M68K_IRQ_1,CLEAR_LINE); return M68K_INT_ACK_AUTOVECTOR; } @@ -833,7 +833,7 @@ MACHINE_START_MEMBER(cat_state,cat) MACHINE_RESET_MEMBER(cat_state,cat) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(cat_state::cat_int_ack),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(cat_state::cat_int_ack),this)); m_duart_inp = 0; m_6ms_counter = 0; m_floppy_control = 0; @@ -873,7 +873,7 @@ UINT32 cat_state::screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, TIMER_CALLBACK_MEMBER(cat_state::swyft_reset) { - memset(machine().device("maincpu")->memory().space(AS_PROGRAM).get_read_ptr(0xe2341), 0xff, 1); + memset(m_maincpu->space(AS_PROGRAM).get_read_ptr(0xe2341), 0xff, 1); } MACHINE_START_MEMBER(cat_state,swyft) @@ -921,7 +921,7 @@ static void duart_irq_handler(device_t *device, int state, UINT8 vector) #ifdef DEBUG_DUART_IRQ_HANDLER fprintf(stderr, "Duart IRQ handler called: state: %02X, vector: %06X\n", state, vector); #endif - //device->machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_1, state, vector); + //device->m_maincpu->set_input_line_and_vector(M68K_IRQ_1, state, vector); } static void duart_tx(device_t *device, int channel, UINT8 data) diff --git a/src/mess/drivers/cfx9850.c b/src/mess/drivers/cfx9850.c index 56d6c7b30bc..accdb6f0b09 100644 --- a/src/mess/drivers/cfx9850.c +++ b/src/mess/drivers/cfx9850.c @@ -39,7 +39,8 @@ public: m_ko9(*this, "KO9"), m_ko10(*this, "KO10"), m_ko11(*this, "KO11"), - m_ko12(*this, "KO12") { } + m_ko12(*this, "KO12") , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(cfx9850_kol_w); DECLARE_WRITE8_MEMBER(cfx9850_koh_w); @@ -64,6 +65,7 @@ protected: required_ioport m_ko10; required_ioport m_ko11; required_ioport m_ko12; + required_device m_maincpu; }; diff --git a/src/mess/drivers/chaos.c b/src/mess/drivers/chaos.c index e16e914263a..e348914bfba 100644 --- a/src/mess/drivers/chaos.c +++ b/src/mess/drivers/chaos.c @@ -38,7 +38,8 @@ public: chaos_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_terminal(*this, TERMINAL_TAG), - m_p_ram(*this, "p_ram") { } + m_p_ram(*this, "p_ram") , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(port1e_r); DECLARE_WRITE8_MEMBER(port1f_w); @@ -50,6 +51,7 @@ public: virtual void machine_reset(); required_device m_terminal; required_shared_ptr m_p_ram; + required_device m_maincpu; }; diff --git a/src/mess/drivers/chessmst.c b/src/mess/drivers/chessmst.c index 263abdc8433..5ded13b966c 100644 --- a/src/mess/drivers/chessmst.c +++ b/src/mess/drivers/chessmst.c @@ -22,7 +22,8 @@ public: chessmst_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_speaker(*this, SPEAKER_TAG) - { } + , + m_maincpu(*this, "maincpu") { } required_device m_speaker; @@ -37,6 +38,7 @@ public: DECLARE_READ8_MEMBER( pio2_port_a_r ); DECLARE_WRITE8_MEMBER( pio2_port_b_w ); DECLARE_INPUT_CHANGED_MEMBER(chessmst_sensor); + required_device m_maincpu; }; diff --git a/src/mess/drivers/chesstrv.c b/src/mess/drivers/chesstrv.c index ca8018b485c..fe85b16f21b 100644 --- a/src/mess/drivers/chesstrv.c +++ b/src/mess/drivers/chesstrv.c @@ -17,7 +17,8 @@ class chesstrv_state : public driver_device { public: chesstrv_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_start(); @@ -35,6 +36,7 @@ public: UINT8 *m_ram; UINT8 m_matrix; //TIMER_DEVICE_CALLBACK_MEMBER(borisdpl_timer_interrupt); + required_device m_maincpu; }; WRITE8_MEMBER( chesstrv_state::ram_addr_w ) @@ -197,7 +199,7 @@ INPUT_PORTS_END /* TIMER_DEVICE_CALLBACK_MEMBER(chesstrv_state::borisdpl_timer_interrupt) { - machine().device("maincpu")->execute().set_input_line_and_vector(F8_INPUT_LINE_INT_REQ, HOLD_LINE, 0x20); + m_maincpu->set_input_line_and_vector(F8_INPUT_LINE_INT_REQ, HOLD_LINE, 0x20); } */ diff --git a/src/mess/drivers/clcd.c b/src/mess/drivers/clcd.c index 8e72f496be6..9c6c638a6fa 100644 --- a/src/mess/drivers/clcd.c +++ b/src/mess/drivers/clcd.c @@ -46,7 +46,8 @@ public: m_col6(*this,"COL6"), m_col7(*this,"COL7"), m_special(*this,"SPECIAL") - { + , + m_maincpu(*this, "maincpu") { } TILE_GET_INFO_MEMBER(get_clcd_tilemap_tile_info) @@ -247,6 +248,7 @@ private: required_ioport m_col6; required_ioport m_col7; required_ioport m_special; + required_device m_maincpu; }; static ADDRESS_MAP_START( clcd_mem, AS_PROGRAM, 8, clcd_state ) diff --git a/src/mess/drivers/cm1800.c b/src/mess/drivers/cm1800.c index 950388561bf..ab6b8dcf4fb 100644 --- a/src/mess/drivers/cm1800.c +++ b/src/mess/drivers/cm1800.c @@ -40,7 +40,8 @@ class cm1800_state : public driver_device public: cm1800_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER( term_status_r ); DECLARE_READ8_MEMBER( term_r ); @@ -49,6 +50,7 @@ public: required_device m_terminal; virtual void machine_reset(); + required_device m_maincpu; }; READ8_MEMBER( cm1800_state::term_status_r ) diff --git a/src/mess/drivers/codata.c b/src/mess/drivers/codata.c index 7109a18b857..6479d97b816 100644 --- a/src/mess/drivers/codata.c +++ b/src/mess/drivers/codata.c @@ -15,12 +15,14 @@ class codata_state : public driver_device public: codata_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_p_base(*this, "p_base"){ } + m_p_base(*this, "p_base"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_p_base; virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; @@ -43,7 +45,7 @@ void codata_state::machine_reset() { UINT8* RAM = memregion("user1")->base(); memcpy(m_p_base, RAM, 16); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } void codata_state::video_start() diff --git a/src/mess/drivers/cortex.c b/src/mess/drivers/cortex.c index 1fedba3397e..04dba11ee24 100644 --- a/src/mess/drivers/cortex.c +++ b/src/mess/drivers/cortex.c @@ -25,11 +25,13 @@ class cortex_state : public driver_device { public: cortex_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START( cortex_mem, AS_PROGRAM, 8, cortex_state ) diff --git a/src/mess/drivers/cp1.c b/src/mess/drivers/cp1.c index dddcc4eb88f..d78ff595d6d 100644 --- a/src/mess/drivers/cp1.c +++ b/src/mess/drivers/cp1.c @@ -16,7 +16,8 @@ class cp1_state : public driver_device { public: cp1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(getp1); DECLARE_READ8_MEMBER(getp2); @@ -26,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(putp1); DECLARE_WRITE8_MEMBER(putp2); DECLARE_WRITE8_MEMBER(putbus); + required_device m_maincpu; }; READ8_MEMBER(cp1_state::getp1) diff --git a/src/mess/drivers/craft.c b/src/mess/drivers/craft.c index d70adaaea19..1d6136abd66 100644 --- a/src/mess/drivers/craft.c +++ b/src/mess/drivers/craft.c @@ -22,7 +22,7 @@ inline void craft_state::verboselog(int n_level, const char *s_fmt, ...) va_start( v, s_fmt ); vsprintf( buf, s_fmt, v ); va_end( v ); - logerror( "%08x: %s", machine().device("maincpu")->safe_pc(), buf ); + logerror( "%08x: %s", m_maincpu->safe_pc(), buf ); } } #else diff --git a/src/mess/drivers/csc.c b/src/mess/drivers/csc.c index f448669b8f7..2358f41b0b8 100644 --- a/src/mess/drivers/csc.c +++ b/src/mess/drivers/csc.c @@ -26,7 +26,8 @@ public: csc_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_speech(*this, "speech") - { } + , + m_maincpu(*this, "maincpu") { } required_device m_speech; @@ -47,6 +48,7 @@ public: UINT8 m_selector; TIMER_DEVICE_CALLBACK_MEMBER(irq_timer); + required_device m_maincpu; }; @@ -176,7 +178,7 @@ READ_LINE_MEMBER( csc_state::pia1_cb1_r ) TIMER_DEVICE_CALLBACK_MEMBER(csc_state::irq_timer) { - machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); + m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE); } /* Address maps */ diff --git a/src/mess/drivers/cxhumax.c b/src/mess/drivers/cxhumax.c index 8c634e03665..0dedb43964f 100644 --- a/src/mess/drivers/cxhumax.c +++ b/src/mess/drivers/cxhumax.c @@ -101,7 +101,7 @@ WRITE32_MEMBER( cxhumax_state::cx_gxa_w ) if((m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)]) || (m_intctrl_regs[INTREG(INTGROUP1, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)])) - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); break; default: @@ -321,7 +321,7 @@ TIMER_CALLBACK_MEMBER(cxhumax_state::timer_tick) /* Interrupt if Timer interrupt is not masked in ITC_INTENABLE_REG */ if (m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)] & INT_TIMER_BIT) - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); } } attotime period = attotime::from_hz(XTAL_54MHz)*m_timer_regs.timer[param].timebase; @@ -417,7 +417,7 @@ WRITE32_MEMBER( cxhumax_state::cx_uart2_w ) /* If INT is enabled at INT Ctrl raise it */ if(m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)]&INT_UART2_BIT) { - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); } } } @@ -547,9 +547,9 @@ WRITE32_MEMBER( cxhumax_state::cx_intctrl_w ) /* check if */ if((m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)]) || (m_intctrl_regs[INTREG(INTGROUP1, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)])) - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); else - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, CLEAR_LINE); } @@ -733,7 +733,7 @@ WRITE32_MEMBER( cxhumax_state::cx_i2c1_w ) m_intctrl_regs[INTREG(INTGROUP1, INTSTATSET)] |= 1<<7; if (m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)] & (1<<7)) { verboselog( machine(), 9, "(I2C1) Int\n" ); - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); } break; case I2C_STAT_REG: diff --git a/src/mess/drivers/dccons.c b/src/mess/drivers/dccons.c index 01a1e2682dd..ba7f65a8f1b 100644 --- a/src/mess/drivers/dccons.c +++ b/src/mess/drivers/dccons.c @@ -58,14 +58,14 @@ DRIVER_INIT_MEMBER(dc_cons_state,dc) DRIVER_INIT_MEMBER(dc_cons_state,dcus) { - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(FUNC(dc_cons_state::dcus_idle_skip_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(FUNC(dc_cons_state::dcus_idle_skip_r),this)); DRIVER_INIT_CALL(dc); } DRIVER_INIT_MEMBER(dc_cons_state,dcjp) { - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(FUNC(dc_cons_state::dcjp_idle_skip_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(FUNC(dc_cons_state::dcjp_idle_skip_r),this)); DRIVER_INIT_CALL(dc); } diff --git a/src/mess/drivers/dct11em.c b/src/mess/drivers/dct11em.c index 5ec2e467edb..af999f5b6a5 100644 --- a/src/mess/drivers/dct11em.c +++ b/src/mess/drivers/dct11em.c @@ -13,10 +13,12 @@ class dct11em_state : public driver_device { public: dct11em_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START( dct11em_mem, AS_PROGRAM, 16, dct11em_state ) diff --git a/src/mess/drivers/dectalk.c b/src/mess/drivers/dectalk.c index 1c439e102ee..22a41f04463 100644 --- a/src/mess/drivers/dectalk.c +++ b/src/mess/drivers/dectalk.c @@ -235,7 +235,8 @@ class dectalk_state : public driver_device public: dectalk_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } UINT8 m_data[8]; // hack to prevent gcc bitching about struct pointers. not used. UINT8 m_x2214_sram[256]; // NVRAM chip's temp sram space @@ -283,6 +284,7 @@ public: void dectalk_x2212_recall( ); void dectalk_semaphore_w ( UINT16 data ); UINT16 dectalk_outfifo_r ( ); + required_device m_maincpu; }; @@ -385,10 +387,10 @@ void dectalk_state::dectalk_semaphore_w ( UINT16 data ) #ifdef VERBOSE logerror("speech int fired!\n"); #endif - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_5, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); + m_maincpu->set_input_line_and_vector(M68K_IRQ_5, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); } else - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_5, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); + m_maincpu->set_input_line_and_vector(M68K_IRQ_5, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); } // read the output fifo and set the interrupt line active on the dsp @@ -430,7 +432,7 @@ static void dectalk_reset(device_t *device) void dectalk_state::machine_reset() { /* hook the RESET line, which resets a slew of other components */ - m68k_set_reset_callback(machine().device("maincpu"), dectalk_reset); + m68k_set_reset_callback(m_maincpu, dectalk_reset); } /* Begin 68k i/o handlers */ @@ -545,7 +547,7 @@ WRITE16_MEMBER(dectalk_state::m68k_spcflags_w)// 68k write to the speech flags ( #ifdef SPC_LOG_68K logerror(" speech int fired!\n"); #endif - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_5, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because semaphore was set + m_maincpu->set_input_line_and_vector(M68K_IRQ_5, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because semaphore was set } } else // data&0x40 == 0 @@ -553,7 +555,7 @@ WRITE16_MEMBER(dectalk_state::m68k_spcflags_w)// 68k write to the speech flags ( #ifdef SPC_LOG_68K logerror(" | 0x40 = 0: speech int disabled\n"); #endif - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_5, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled + m_maincpu->set_input_line_and_vector(M68K_IRQ_5, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled } } @@ -585,7 +587,7 @@ WRITE16_MEMBER(dectalk_state::m68k_tlcflags_w)// dtmf flags write #ifdef TLC_LOG logerror(" TLC int fired!\n"); #endif - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_4, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because tone detect was set + m_maincpu->set_input_line_and_vector(M68K_IRQ_4, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because tone detect was set } } else // data&0x40 == 0 @@ -594,7 +596,7 @@ WRITE16_MEMBER(dectalk_state::m68k_tlcflags_w)// dtmf flags write logerror(" | 0x40 = 0: tone detect int disabled\n"); #endif if (((data&0x4000)!=0x4000) || (m_tlc_ringdetect == 0)) // check to be sure we don't disable int if both ints fired at once - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_4, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled + m_maincpu->set_input_line_and_vector(M68K_IRQ_4, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled } if ((data&0x100) == 0x100) // bit 8: answer phone relay enable { @@ -618,7 +620,7 @@ WRITE16_MEMBER(dectalk_state::m68k_tlcflags_w)// dtmf flags write #ifdef TLC_LOG logerror(" TLC int fired!\n"); #endif - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_4, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because tone detect was set + m_maincpu->set_input_line_and_vector(M68K_IRQ_4, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); // set int because tone detect was set } } else // data&0x4000 == 0 @@ -627,7 +629,7 @@ WRITE16_MEMBER(dectalk_state::m68k_tlcflags_w)// dtmf flags write logerror(" | 0x4000 = 0: ring detect int disabled\n"); #endif if (((data&0x40)!=0x40) || (m_tlc_tonedetect == 0)) // check to be sure we don't disable int if both ints fired at once - machine().device("maincpu")->execute().set_input_line_and_vector(M68K_IRQ_4, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled + m_maincpu->set_input_line_and_vector(M68K_IRQ_4, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); // clear int because int is now disabled } } diff --git a/src/mess/drivers/dim68k.c b/src/mess/drivers/dim68k.c index 695e4a631a6..cb1d456a3ea 100644 --- a/src/mess/drivers/dim68k.c +++ b/src/mess/drivers/dim68k.c @@ -204,7 +204,7 @@ void dim68k_state::machine_reset() memcpy((UINT8*)m_ram.target(), ROM, 0x2000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } void dim68k_state::video_start() diff --git a/src/mess/drivers/dms5000.c b/src/mess/drivers/dms5000.c index 2198d39e639..9708442fc83 100644 --- a/src/mess/drivers/dms5000.c +++ b/src/mess/drivers/dms5000.c @@ -14,11 +14,13 @@ class dms5000_state : public driver_device { public: dms5000_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/dual68.c b/src/mess/drivers/dual68.c index bdabf54ee78..2c7c6c10b2d 100644 --- a/src/mess/drivers/dual68.c +++ b/src/mess/drivers/dual68.c @@ -67,7 +67,7 @@ void dual68_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x2000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } WRITE8_MEMBER( dual68_state::kbd_put ) diff --git a/src/mess/drivers/ec65.c b/src/mess/drivers/ec65.c index de69fe8e043..6fe4bbffacf 100644 --- a/src/mess/drivers/ec65.c +++ b/src/mess/drivers/ec65.c @@ -29,7 +29,8 @@ public: ec65_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_via_0(*this, VIA6522_0_TAG), - m_p_videoram(*this, "videoram"){ } + m_p_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(ec65_via_read_a); DECLARE_READ8_MEMBER(ec65_read_ca1 ); @@ -43,6 +44,7 @@ public: required_shared_ptr m_p_videoram; virtual void machine_reset(); virtual void video_start(); + required_device m_maincpu; }; static ADDRESS_MAP_START(ec65_mem, AS_PROGRAM, 8, ec65_state) diff --git a/src/mess/drivers/enterp.c b/src/mess/drivers/enterp.c index 0520677737e..c2bf9a7ce84 100644 --- a/src/mess/drivers/enterp.c +++ b/src/mess/drivers/enterp.c @@ -106,7 +106,7 @@ WRITE8_MEMBER(ep_state::enterprise_dave_reg_write) case 0x11: case 0x12: case 0x13: - enterprise_update_memory_page(machine().device("maincpu")->memory().space(AS_PROGRAM), offset - 0x0f, data); + enterprise_update_memory_page(m_maincpu->space(AS_PROGRAM), offset - 0x0f, data); break; case 0x15: @@ -168,7 +168,7 @@ static const dave_interface enterprise_dave_interface = void ep_state::machine_reset() { - machine().device("maincpu")->execute().set_input_line_vector(0, 0xff); + m_maincpu->set_input_line_vector(0, 0xff); } diff --git a/src/mess/drivers/ex800.c b/src/mess/drivers/ex800.c index cd9e7252308..02c29187744 100644 --- a/src/mess/drivers/ex800.c +++ b/src/mess/drivers/ex800.c @@ -136,7 +136,8 @@ class ex800_state : public driver_device { public: ex800_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } int m_irq_state; DECLARE_READ8_MEMBER(ex800_porta_r); @@ -155,6 +156,7 @@ public: DECLARE_WRITE8_MEMBER(ex800_gate7a_w); virtual void machine_start(); DECLARE_INPUT_CHANGED_MEMBER(online_switch); + required_device m_maincpu; }; @@ -197,7 +199,7 @@ INPUT_CHANGED_MEMBER(ex800_state::online_switch) { if (newval) { - machine().device("maincpu")->execute().set_input_line(UPD7810_INTF1, m_irq_state); + m_maincpu->set_input_line(UPD7810_INTF1, m_irq_state); m_irq_state = (m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE; } } diff --git a/src/mess/drivers/fidelz80.c b/src/mess/drivers/fidelz80.c index 8e323227e7a..c17d58fd28c 100644 --- a/src/mess/drivers/fidelz80.c +++ b/src/mess/drivers/fidelz80.c @@ -1008,7 +1008,7 @@ void fidelz80_state::machine_reset() TIMER_DEVICE_CALLBACK_MEMBER(fidelz80_state::nmi_timer) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } /****************************************************************************** diff --git a/src/mess/drivers/fk1.c b/src/mess/drivers/fk1.c index 9ad7fa07149..9918b5f42f7 100644 --- a/src/mess/drivers/fk1.c +++ b/src/mess/drivers/fk1.c @@ -390,7 +390,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(fk1_state::keyboard_callback) if (machine().root_device().ioport("LINE0")->read()) { m_int_vector = 6; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } } @@ -414,7 +414,7 @@ IRQ_CALLBACK_MEMBER(fk1_state::fk1_irq_callback) TIMER_DEVICE_CALLBACK_MEMBER(fk1_state::vsync_callback) { m_int_vector = 3; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } @@ -429,7 +429,7 @@ void fk1_state::machine_reset() membank("bank3")->set_base(ram + 0x8000); membank("bank4")->set_base(ram + 0xc000); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fk1_state::fk1_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fk1_state::fk1_irq_callback),this)); } UINT32 fk1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c index b79a5345833..ad90026b721 100644 --- a/src/mess/drivers/fm7.c +++ b/src/mess/drivers/fm7.c @@ -1295,7 +1295,7 @@ TIMER_CALLBACK_MEMBER(fm7_state::fm7_keyboard_poll) if(machine().root_device().ioport("key3")->read() & 0x40000) { m_break_flag = 1; - machine().device("maincpu")->execute().set_input_line(M6809_FIRQ_LINE,ASSERT_LINE); + m_maincpu->set_input_line(M6809_FIRQ_LINE,ASSERT_LINE); } else m_break_flag = 0; @@ -1339,7 +1339,7 @@ TIMER_CALLBACK_MEMBER(fm7_state::fm7_keyboard_poll) IRQ_CALLBACK_MEMBER(fm7_state::fm7_irq_ack) { if(irqline == M6809_FIRQ_LINE) - machine().device("maincpu")->execute().set_input_line(irqline,CLEAR_LINE); + m_maincpu->set_input_line(irqline,CLEAR_LINE); return -1; } @@ -1831,7 +1831,7 @@ DRIVER_INIT_MEMBER(fm7_state,fm7) m_subtimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_subtimer_irq),this)); m_keyboard_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_keyboard_poll),this)); m_fm77av_vsync_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm77av_vsync),this)); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_irq_ack),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_irq_ack),this)); machine().device("sub")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_sub_irq_ack),this)); } @@ -1955,7 +1955,7 @@ void fm7_state::machine_reset() } if(m_type == SYS_FM77AV || m_type == SYS_FM77AV40EX || m_type == SYS_FM11) { - fm7_mmr_refresh(machine().device("maincpu")->memory().space(AS_PROGRAM)); + fm7_mmr_refresh(m_maincpu->space(AS_PROGRAM)); } if(m_type == SYS_FM11) { diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c index 115ed6b0d76..25a5f771eab 100644 --- a/src/mess/drivers/fmtowns.c +++ b/src/mess/drivers/fmtowns.c @@ -329,7 +329,7 @@ WRITE8_MEMBER(towns_state::towns_system_w) switch(offset) { case 0x00: // bit 7 = NMI vector protect, bit 6 = power off, bit 0 = software reset, bit 3 = A20 line? -// space.machine().device("maincpu")->execute().set_input_line(INPUT_LINE_A20,(data & 0x08) ? CLEAR_LINE : ASSERT_LINE); +// space.m_maincpu->set_input_line(INPUT_LINE_A20,(data & 0x08) ? CLEAR_LINE : ASSERT_LINE); logerror("SYS: port 0x20 write %02x\n",data); break; case 0x02: @@ -2103,7 +2103,7 @@ static void towns_pcm_irq(device_t* device, int channel) WRITE_LINE_MEMBER(towns_state::towns_pic_irq) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); // logerror("PIC#1: set IRQ line to %i\n",interrupt); } @@ -2604,8 +2604,8 @@ void towns_state::driver_start() // CD-ROM init m_towns_cd.read_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(towns_state::towns_cdrom_read_byte),this), (void*)machine().device("dma_1")); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(towns_state::towns_irq_callback),this)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x100000,machine().device(RAM_TAG)->size()-1,0xffffffff,0,NULL); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(towns_state::towns_irq_callback),this)); + m_maincpu->space(AS_PROGRAM).install_ram(0x100000,machine().device(RAM_TAG)->size()-1,0xffffffff,0,NULL); } diff --git a/src/mess/drivers/fp1100.c b/src/mess/drivers/fp1100.c index c2fd8ab888b..4543cdd9f86 100644 --- a/src/mess/drivers/fp1100.c +++ b/src/mess/drivers/fp1100.c @@ -189,7 +189,7 @@ WRITE8_MEMBER( fp1100_state::main_to_sub_w ) READ8_MEMBER( fp1100_state::sub_to_main_r ) { machine().scheduler().synchronize(); // force resync -// machine().device("maincpu")->execute().set_input_line_and_vector(0, CLEAR_LINE, 0xf0); +// m_maincpu->set_input_line_and_vector(0, CLEAR_LINE, 0xf0); return m_main_latch; } @@ -241,7 +241,7 @@ READ8_MEMBER( fp1100_state::main_to_sub_r ) WRITE8_MEMBER( fp1100_state::sub_to_main_w ) { machine().scheduler().synchronize(); // force resync -// machine().device("maincpu")->execute().set_input_line_and_vector(0, ASSERT_LINE, 0xf0); +// m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, 0xf0); m_main_latch = data; } @@ -260,7 +260,7 @@ ADDRESS_MAP_END WRITE8_MEMBER( fp1100_state::portc_w ) { if((!(m_upd7801.portc & 8)) && data & 8) - machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE,0xf8); // TODO + m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xf8); // TODO m_upd7801.portc = data; } @@ -400,7 +400,7 @@ static MC6845_INTERFACE( mc6845_intf ) INTERRUPT_GEN_MEMBER(fp1100_state::fp1100_vblank_irq) { if(irq_mask & 0x10) - machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf0); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf0); } static MACHINE_CONFIG_START( fp1100, fp1100_state ) diff --git a/src/mess/drivers/fp6000.c b/src/mess/drivers/fp6000.c index 7189046e679..084583e2bdf 100644 --- a/src/mess/drivers/fp6000.c +++ b/src/mess/drivers/fp6000.c @@ -27,7 +27,8 @@ public: fp6000_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_gvram(*this, "gvram"), - m_vram(*this, "vram"){ } + m_vram(*this, "vram"), + m_maincpu(*this, "maincpu") { } UINT8 *m_char_rom; required_shared_ptr m_gvram; @@ -52,6 +53,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; void fp6000_state::video_start() diff --git a/src/mess/drivers/genpc.c b/src/mess/drivers/genpc.c index 1004c2aea5b..09dd50a8329 100644 --- a/src/mess/drivers/genpc.c +++ b/src/mess/drivers/genpc.c @@ -42,8 +42,10 @@ class genpc_state : public driver_device { public: genpc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } + required_device m_maincpu; }; static ADDRESS_MAP_START( pc8_map, AS_PROGRAM, 8, genpc_state ) diff --git a/src/mess/drivers/gizmondo.c b/src/mess/drivers/gizmondo.c index a45326e2245..f51fa531ef8 100644 --- a/src/mess/drivers/gizmondo.c +++ b/src/mess/drivers/gizmondo.c @@ -44,7 +44,8 @@ class gizmondo_state : public driver_device { public: gizmondo_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } UINT32 m_port[9]; device_t *m_s3c2440; @@ -53,6 +54,7 @@ public: virtual void machine_reset(); DECLARE_INPUT_CHANGED_MEMBER(port_changed); inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ...); + required_device m_maincpu; }; @@ -148,7 +150,7 @@ void gizmondo_state::machine_start() void gizmondo_state::machine_reset() { - machine().device("maincpu")->reset(); + m_maincpu->reset(); } /******************************************************************************* diff --git a/src/mess/drivers/glasgow.c b/src/mess/drivers/glasgow.c index 3cab4efa410..f50375bd0b3 100644 --- a/src/mess/drivers/glasgow.c +++ b/src/mess/drivers/glasgow.c @@ -277,12 +277,12 @@ WRITE32_MEMBER( glasgow_state::write_beeper32 ) TIMER_DEVICE_CALLBACK_MEMBER(glasgow_state::update_nmi) { - machine().device("maincpu")->execute().set_input_line(7, HOLD_LINE); + m_maincpu->set_input_line(7, HOLD_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(glasgow_state::update_nmi32) { - machine().device("maincpu")->execute().set_input_line(6, HOLD_LINE); + m_maincpu->set_input_line(6, HOLD_LINE); } void glasgow_state::machine_start() diff --git a/src/mess/drivers/gmaster.c b/src/mess/drivers/gmaster.c index d25a8ef9d73..884d6948de6 100644 --- a/src/mess/drivers/gmaster.c +++ b/src/mess/drivers/gmaster.c @@ -207,7 +207,7 @@ UINT32 gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind16 INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt) { - machine().device("maincpu")->execute().set_input_line(UPD7810_INTFE1, ASSERT_LINE); + m_maincpu->set_input_line(UPD7810_INTFE1, ASSERT_LINE); } static const UPD7810_CONFIG config = { diff --git a/src/mess/drivers/h19.c b/src/mess/drivers/h19.c index 50611f353c0..bee0c6d8ba1 100644 --- a/src/mess/drivers/h19.c +++ b/src/mess/drivers/h19.c @@ -87,7 +87,7 @@ READ8_MEMBER( h19_state::h19_80_r ) READ8_MEMBER( h19_state::h19_a0_r ) { // keyboard status - machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); return 0x7f; // says that a key is ready and no modifier keys are pressed } @@ -337,7 +337,7 @@ static MC6845_UPDATE_ROW( h19_update_row ) WRITE_LINE_MEMBER(h19_state::h19_ace_irq) { - machine().device("maincpu")->execute().set_input_line(0, (state ? HOLD_LINE : CLEAR_LINE)); + m_maincpu->set_input_line(0, (state ? HOLD_LINE : CLEAR_LINE)); } static const ins8250_interface h19_ace_interface = @@ -387,7 +387,7 @@ GFXDECODE_END WRITE8_MEMBER( h19_state::h19_kbd_put ) { m_term_data = data; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } static ASCII_KEYBOARD_INTERFACE( keyboard_intf ) diff --git a/src/mess/drivers/h8.c b/src/mess/drivers/h8.c index 4d5b3673e02..967c34971d3 100644 --- a/src/mess/drivers/h8.c +++ b/src/mess/drivers/h8.c @@ -56,7 +56,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(h8_state::h8_irq_pulse) { if (m_irq_ctl & 1) - machine().device("maincpu")->execute().set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf); + m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf); } READ8_MEMBER( h8_state::h8_f0_r ) @@ -104,7 +104,7 @@ WRITE8_MEMBER( h8_state::h8_f0_w ) output_set_value("mon_led",(data & 0x20) ? 0 : 1); m_beep->set_state((data & 0x80) ? 0 : 1); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); m_irq_ctl &= 0xf0; if (data & 0x40) m_irq_ctl |= 1; if (~data & 0x10) m_irq_ctl |= 2; @@ -196,7 +196,7 @@ But, all of this can only occur if bit 5 of port F0 is low. */ c=m_ff_b^1; // from /Q of 2nd flipflop m_ff_b=a; // from Q of 1st flipflop if (c) - machine().device("maincpu")->execute().set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xd7); + m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xd7); } } else diff --git a/src/mess/drivers/horizon.c b/src/mess/drivers/horizon.c index 861233c27b5..d80411c6b5d 100644 --- a/src/mess/drivers/horizon.c +++ b/src/mess/drivers/horizon.c @@ -64,12 +64,12 @@ INPUT_PORTS_END void horizon_state::machine_reset() { - machine().device("maincpu")->state().set_state_int(Z80_PC, 0xe800); + m_maincpu->set_state_int(Z80_PC, 0xe800); } MACHINE_RESET_MEMBER(horizon_state,horizon_sd) { - machine().device("maincpu")->state().set_state_int(Z80_PC, 0xe900); + m_maincpu->set_state_int(Z80_PC, 0xe900); } WRITE8_MEMBER( horizon_state::kbd_put ) diff --git a/src/mess/drivers/hp16500.c b/src/mess/drivers/hp16500.c index d5352a41a0c..43f13323a9d 100644 --- a/src/mess/drivers/hp16500.c +++ b/src/mess/drivers/hp16500.c @@ -26,10 +26,12 @@ class hp16500_state : public driver_device { public: hp16500_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void video_start(); UINT32 screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/hp49gp.c b/src/mess/drivers/hp49gp.c index 9e3e0726494..734bd2eb454 100644 --- a/src/mess/drivers/hp49gp.c +++ b/src/mess/drivers/hp49gp.c @@ -24,7 +24,8 @@ class hp49gp_state : public driver_device public: hp49gp_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_steppingstone(*this, "steppingstone"){ } + m_steppingstone(*this, "steppingstone"), + m_maincpu(*this, "maincpu") { } UINT32 m_port[9]; device_t *m_s3c2410; @@ -39,6 +40,7 @@ public: void lcd_spi_init( ); void lcd_spi_line_w( int line, int data); int lcd_spi_line_r( int line); + required_device m_maincpu; }; /*************************************************************************** @@ -248,7 +250,7 @@ void hp49gp_state::machine_start() void hp49gp_state::machine_reset() { - machine().device("maincpu")->reset(); + m_maincpu->reset(); } /*************************************************************************** diff --git a/src/mess/drivers/ht68k.c b/src/mess/drivers/ht68k.c index 1339424024d..c8dd0dcf98b 100644 --- a/src/mess/drivers/ht68k.c +++ b/src/mess/drivers/ht68k.c @@ -75,7 +75,7 @@ void ht68k_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x8000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } static void duart_irq_handler(device_t *device, int state, UINT8 vector) diff --git a/src/mess/drivers/hx20.c b/src/mess/drivers/hx20.c index 35653ef9b80..46a765e99d0 100644 --- a/src/mess/drivers/hx20.c +++ b/src/mess/drivers/hx20.c @@ -14,11 +14,13 @@ class hx20_state : public driver_device { public: hx20_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/ibmpc.c b/src/mess/drivers/ibmpc.c index 20afb2c82d9..c370c71d555 100644 --- a/src/mess/drivers/ibmpc.c +++ b/src/mess/drivers/ibmpc.c @@ -281,8 +281,10 @@ class ibmpc_state : public driver_device { public: ibmpc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } + required_device m_maincpu; }; static ADDRESS_MAP_START( pc8_map, AS_PROGRAM, 8, ibmpc_state ) diff --git a/src/mess/drivers/if800.c b/src/mess/drivers/if800.c index b26df58dbd6..5c7c7ed3a7a 100644 --- a/src/mess/drivers/if800.c +++ b/src/mess/drivers/if800.c @@ -18,13 +18,15 @@ public: : driver_device(mconfig, type, tag), m_hgdc(*this, "upd7220") , - m_video_ram(*this, "video_ram"){ } + m_video_ram(*this, "video_ram"), + m_maincpu(*this, "maincpu") { } required_device m_hgdc; required_shared_ptr m_video_ram; virtual void machine_start(); virtual void machine_reset(); + required_device m_maincpu; }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) diff --git a/src/mess/drivers/indiana.c b/src/mess/drivers/indiana.c index 3e8ae19b929..8f8d2854023 100644 --- a/src/mess/drivers/indiana.c +++ b/src/mess/drivers/indiana.c @@ -19,9 +19,11 @@ class indiana_state : public driver_device { public: indiana_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_DRIVER_INIT(indiana); virtual void machine_reset(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/ip20.c b/src/mess/drivers/ip20.c index 32bd9d4735f..020a6455192 100644 --- a/src/mess/drivers/ip20.c +++ b/src/mess/drivers/ip20.c @@ -50,8 +50,9 @@ public: : driver_device(mconfig, type, tag), m_wd33c93(*this, "scsi:wd33c93"), m_scc(*this, "scc"), - m_eeprom(*this, "eeprom") - { } + m_eeprom(*this, "eeprom"), + m_maincpu(*this, "maincpu") { } + HPC_t m_HPC; RTC_t m_RTC; @@ -68,6 +69,7 @@ public: required_device m_scc; required_device m_eeprom; inline void ATTR_PRINTF(3,4) verboselog(int n_level, const char *s_fmt, ... ); + required_device m_maincpu; }; diff --git a/src/mess/drivers/ipc.c b/src/mess/drivers/ipc.c index b8c2484e6e8..e573d4ec472 100644 --- a/src/mess/drivers/ipc.c +++ b/src/mess/drivers/ipc.c @@ -96,7 +96,7 @@ INPUT_PORTS_END void ipc_state::machine_reset() { - machine().device("maincpu")->state().set_state_int(I8085_PC, 0xE800); + m_maincpu->set_state_int(I8085_PC, 0xE800); } WRITE8_MEMBER( ipc_state::kbd_put ) diff --git a/src/mess/drivers/itt3030.c b/src/mess/drivers/itt3030.c index 49828728fd3..a4a953d9546 100644 --- a/src/mess/drivers/itt3030.c +++ b/src/mess/drivers/itt3030.c @@ -57,7 +57,7 @@ READ8_MEMBER(itt3030_state::unk2_r) UINT32 itt3030_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); for(int y = 0; y < 24; y++ ) { diff --git a/src/mess/drivers/jr100.c b/src/mess/drivers/jr100.c index a31414f019c..2af76473143 100644 --- a/src/mess/drivers/jr100.c +++ b/src/mess/drivers/jr100.c @@ -42,7 +42,8 @@ public: m_line5(*this, "LINE5"), m_line6(*this, "LINE6"), m_line7(*this, "LINE7"), - m_line8(*this, "LINE8") { } + m_line8(*this, "LINE8") , + m_maincpu(*this, "maincpu") { } required_shared_ptr m_ram; required_shared_ptr m_pcg; @@ -79,6 +80,7 @@ protected: required_ioport m_line6; required_ioport m_line7; required_ioport m_line8; + required_device m_maincpu; }; diff --git a/src/mess/drivers/juicebox.c b/src/mess/drivers/juicebox.c index 0be01710b4b..70a2cf834f9 100644 --- a/src/mess/drivers/juicebox.c +++ b/src/mess/drivers/juicebox.c @@ -259,7 +259,7 @@ void juicebox_state::machine_start() void juicebox_state::machine_reset() { - machine().device("maincpu")->reset(); + m_maincpu->reset(); smc_reset(); } diff --git a/src/mess/drivers/junior.c b/src/mess/drivers/junior.c index d074534e772..1d6babb41c1 100644 --- a/src/mess/drivers/junior.c +++ b/src/mess/drivers/junior.c @@ -34,7 +34,8 @@ public: junior_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_riot(*this, "riot") - { } + , + m_maincpu(*this, "maincpu") { } required_device m_riot; DECLARE_READ8_MEMBER(junior_riot_a_r); @@ -49,6 +50,7 @@ public: virtual void machine_reset(); DECLARE_INPUT_CHANGED_MEMBER(junior_reset); TIMER_DEVICE_CALLBACK_MEMBER(junior_update_leds); + required_device m_maincpu; }; @@ -179,7 +181,7 @@ WRITE8_MEMBER( junior_state::junior_riot_b_w ) WRITE_LINE_MEMBER( junior_state::junior_riot_irq ) { - machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(M6502_IRQ_LINE, state ? HOLD_LINE : CLEAR_LINE); } diff --git a/src/mess/drivers/k1003.c b/src/mess/drivers/k1003.c index afc3533d259..0cd35eaee84 100644 --- a/src/mess/drivers/k1003.c +++ b/src/mess/drivers/k1003.c @@ -48,7 +48,8 @@ class k1003_state : public driver_device { public: k1003_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(port2_r); DECLARE_READ8_MEMBER(key_r); @@ -59,6 +60,7 @@ public: UINT8 m_disp_2; UINT8 bit_to_dec(UINT8 val); virtual void machine_reset(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/konin.c b/src/mess/drivers/konin.c index 5e342eb9fb2..1d1437e8fe1 100644 --- a/src/mess/drivers/konin.c +++ b/src/mess/drivers/konin.c @@ -35,11 +35,13 @@ class konin_state : public driver_device { public: konin_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START( konin_mem, AS_PROGRAM, 8, konin_state ) diff --git a/src/mess/drivers/lynx.c b/src/mess/drivers/lynx.c index 47c342e82ad..b59a4c214b8 100644 --- a/src/mess/drivers/lynx.c +++ b/src/mess/drivers/lynx.c @@ -137,8 +137,9 @@ ROM_END static QUICKLOAD_LOAD( lynx ) { - device_t *cpu = image.device().machine().device("maincpu"); - address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); + lynx_state *state = image.device().machine().driver_data(); + device_t *cpu = state->m_maincpu; + address_space &space = state->m_maincpu->space(AS_PROGRAM); UINT8 *data = NULL; UINT8 *rom = image.device().machine().root_device().memregion("maincpu")->base(); UINT8 header[10]; // 80 08 dw Start dw Len B S 9 3 diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c index 15079faa3c3..ed36a14a98c 100644 --- a/src/mess/drivers/m20.c +++ b/src/mess/drivers/m20.c @@ -389,8 +389,8 @@ void m20_state::install_memory() m_memsize = m_ram->size(); UINT8 *memptr = m_ram->pointer(); - address_space& pspace = machine().device("maincpu")->memory().space(AS_PROGRAM); - address_space& dspace = machine().device("maincpu")->memory().space(AS_DATA); + address_space& pspace = m_maincpu->space(AS_PROGRAM); + address_space& dspace = m_maincpu->space(AS_DATA); /* install mainboard memory (aka DRAM0) */ diff --git a/src/mess/drivers/m79152pc.c b/src/mess/drivers/m79152pc.c index 302166ab9d0..1202bdc8567 100644 --- a/src/mess/drivers/m79152pc.c +++ b/src/mess/drivers/m79152pc.c @@ -17,7 +17,8 @@ public: m79152pc_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_p_videoram(*this, "p_videoram"), - m_p_attributes(*this, "p_attributes"){ } + m_p_attributes(*this, "p_attributes"), + m_maincpu(*this, "maincpu") { } UINT8 *m_p_chargen; required_shared_ptr m_p_videoram; @@ -25,6 +26,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state) diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c index 1f0af902ce8..1c8af822b25 100644 --- a/src/mess/drivers/mac.c +++ b/src/mess/drivers/mac.c @@ -445,8 +445,8 @@ WRITE8_MEMBER(mac_state::oss_w) READ32_MEMBER(mac_state::buserror_r) { - machine().device("maincpu")->execute().set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); + m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); + m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); return 0; } diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c index 18439193477..b52ad699819 100644 --- a/src/mess/drivers/mbc200.c +++ b/src/mess/drivers/mbc200.c @@ -43,7 +43,8 @@ public: m_floppy0(*this, FLOPPY_0), m_floppy1(*this, FLOPPY_1), m_vram(*this, "vram") - { } + , + m_maincpu(*this, "maincpu") { } virtual void machine_start(); @@ -63,6 +64,7 @@ public: virtual void video_start(); UINT32 screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mc10.c b/src/mess/drivers/mc10.c index 34d150fc45e..6fe1c183788 100644 --- a/src/mess/drivers/mc10.c +++ b/src/mess/drivers/mc10.c @@ -235,7 +235,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mc10_state::alice32_scanline) DRIVER_INIT_MEMBER(mc10_state,mc10) { - address_space &prg = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &prg = m_maincpu->space(AS_PROGRAM); /* initialize keyboard strobe */ m_keyboard_strobe = 0x00; diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index c3897139e45..5a04a0bb723 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -350,15 +350,15 @@ MACHINE_START_MEMBER(md_cons_state, ms_megadriv) vdp_get_word_from_68k_mem = vdp_get_word_from_68k_mem_console; // for now m_cartslot is only in MD and not 32x and SegaCD - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_slotcart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_slotcart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_slotcart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_slotcart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_slotcart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_slotcart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_slotcart)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_slotcart)); } MACHINE_RESET_MEMBER(md_cons_state,ms_megadriv ) { - machine().device("maincpu")->reset(); + m_maincpu->reset(); MACHINE_RESET_CALL_MEMBER( megadriv ); } @@ -1072,10 +1072,10 @@ MACHINE_START_MEMBER(pico_state,pico) m_io_penx = ioport("PENX"); m_io_peny = ioport("PENY"); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart)); } static MACHINE_CONFIG_START( pico, pico_state ) diff --git a/src/mess/drivers/mekd2.c b/src/mess/drivers/mekd2.c index c953c0e13a2..a98478ee9dc 100644 --- a/src/mess/drivers/mekd2.c +++ b/src/mess/drivers/mekd2.c @@ -163,13 +163,13 @@ INPUT_PORTS_END TIMER_CALLBACK_MEMBER(mekd2_state::mekd2_trace) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } WRITE_LINE_MEMBER( mekd2_state::mekd2_nmi_w ) { if (state) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); else machine().scheduler().timer_set(attotime::from_usec(18), timer_expired_delegate(FUNC(mekd2_state::mekd2_trace),this)); } diff --git a/src/mess/drivers/merlin.c b/src/mess/drivers/merlin.c index e27e8506401..6b38a0752c9 100644 --- a/src/mess/drivers/merlin.c +++ b/src/mess/drivers/merlin.c @@ -17,7 +17,8 @@ class merlin_state : public driver_device public: merlin_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_speaker(*this, "speaker") { } + m_speaker(*this, "speaker") , + m_maincpu(*this, "maincpu") { } virtual void machine_start(); @@ -30,6 +31,7 @@ public: protected: UINT16 m_o; UINT16 m_r; + required_device m_maincpu; }; diff --git a/src/mess/drivers/microdec.c b/src/mess/drivers/microdec.c index 94ed8073819..af41d06b930 100644 --- a/src/mess/drivers/microdec.c +++ b/src/mess/drivers/microdec.c @@ -17,7 +17,8 @@ class microdec_state : public driver_device public: microdec_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(terminal_status_r); DECLARE_READ8_MEMBER(terminal_r); @@ -29,6 +30,7 @@ public: virtual void machine_start(); void fdc_irq(bool state); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mk1.c b/src/mess/drivers/mk1.c index 38bc56aaccc..8defaeada47 100644 --- a/src/mess/drivers/mk1.c +++ b/src/mess/drivers/mk1.c @@ -49,7 +49,8 @@ class mk1_state : public driver_device { public: mk1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(mk1_f8_r); DECLARE_WRITE8_MEMBER(mk1_f8_w); @@ -57,6 +58,7 @@ public: UINT8 m_led[4]; virtual void machine_start(); TIMER_DEVICE_CALLBACK_MEMBER(mk1_update_leds); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mk14.c b/src/mess/drivers/mk14.c index 06f368a9da4..b386b8169ec 100644 --- a/src/mess/drivers/mk14.c +++ b/src/mess/drivers/mk14.c @@ -16,11 +16,13 @@ class mk14_state : public driver_device { public: mk14_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(keyboard_r); DECLARE_WRITE8_MEMBER(display_w); virtual void machine_reset(); + required_device m_maincpu; }; /* diff --git a/src/mess/drivers/mk2.c b/src/mess/drivers/mk2.c index 96c8fa3d693..fd44b55d46d 100644 --- a/src/mess/drivers/mk2.c +++ b/src/mess/drivers/mk2.c @@ -178,7 +178,7 @@ WRITE8_MEMBER( mk2_state::mk2_write_b ) m_led[4]|=data; - machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE ); + m_maincpu->set_input_line(M6502_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE ); } static MOS6530_INTERFACE( mk2_mos6530_interface ) diff --git a/src/mess/drivers/mk85.c b/src/mess/drivers/mk85.c index d6721816f34..747c349969d 100644 --- a/src/mess/drivers/mk85.c +++ b/src/mess/drivers/mk85.c @@ -25,11 +25,13 @@ class mk85_state : public driver_device { public: mk85_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mk90.c b/src/mess/drivers/mk90.c index e6370bf7fef..a9516b949f7 100644 --- a/src/mess/drivers/mk90.c +++ b/src/mess/drivers/mk90.c @@ -22,11 +22,13 @@ class mk90_state : public driver_device { public: mk90_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mmd1.c b/src/mess/drivers/mmd1.c index d153cd33984..1cbbd3452d8 100644 --- a/src/mess/drivers/mmd1.c +++ b/src/mess/drivers/mmd1.c @@ -153,7 +153,8 @@ class mmd1_state : public driver_device { public: mmd1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(mmd1_port0_w); DECLARE_WRITE8_MEMBER(mmd1_port1_w); @@ -171,6 +172,7 @@ public: DECLARE_DRIVER_INIT(mmd2); DECLARE_MACHINE_RESET(mmd1); DECLARE_MACHINE_RESET(mmd2); + required_device m_maincpu; }; diff --git a/src/mess/drivers/mmodular.c b/src/mess/drivers/mmodular.c index cda1358fced..7b60dab73e7 100644 --- a/src/mess/drivers/mmodular.c +++ b/src/mess/drivers/mmodular.c @@ -807,12 +807,12 @@ READ8_MEMBER(polgar_state::read_keys_board_academy) TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::cause_nmi) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::cause_M6502_irq) { - machine().device("maincpu")->execute().set_input_line(M65C02_IRQ_LINE, HOLD_LINE); + m_maincpu->set_input_line(M65C02_IRQ_LINE, HOLD_LINE); } @@ -948,7 +948,7 @@ WRITE16_MEMBER(polgar_state::write_unknown2) READ32_MEMBER(polgar_state::read_unknown3_32) { - logerror("Read from unknown3 offset: %x %08x\n",offset,(unsigned int) machine().device("maincpu")->state().state_int(M68K_PC)); + logerror("Read from unknown3 offset: %x %08x\n",offset,(unsigned int) m_maincpu->state_int(M68K_PC)); return 0xffffffff; //return unknown2_data|unknown2_data<<24; @@ -975,19 +975,19 @@ WRITE32_MEMBER(polgar_state::write_1000000) TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::timer_update_irq6) { - machine().device("maincpu")->execute().set_input_line(6, HOLD_LINE); + m_maincpu->set_input_line(6, HOLD_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::timer_update_irq2) { - machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE); + m_maincpu->set_input_line(2, HOLD_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::timer_update_irq_academy) { if (academyallowNMI) { - machine().device("maincpu")->execute().set_input_line(6, HOLD_LINE); + m_maincpu->set_input_line(6, HOLD_LINE); } } diff --git a/src/mess/drivers/mod8.c b/src/mess/drivers/mod8.c index a074bf79116..c3975601c82 100644 --- a/src/mess/drivers/mod8.c +++ b/src/mess/drivers/mod8.c @@ -25,7 +25,8 @@ public: mod8_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_teleprinter(*this, TELEPRINTER_TAG) - { } + , + m_maincpu(*this, "maincpu") { } required_device m_teleprinter; DECLARE_WRITE8_MEMBER(out_w); @@ -37,6 +38,7 @@ public: int m_tty_cnt; virtual void machine_reset(); IRQ_CALLBACK_MEMBER(mod8_irq_callback); + required_device m_maincpu; }; WRITE8_MEMBER( mod8_state::out_w ) @@ -90,13 +92,13 @@ IRQ_CALLBACK_MEMBER(mod8_state::mod8_irq_callback) void mod8_state::machine_reset() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mod8_state::mod8_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mod8_state::mod8_irq_callback),this)); } WRITE8_MEMBER( mod8_state::kbd_put ) { m_tty_key_data = data ^ 0xff; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } static GENERIC_TELEPRINTER_INTERFACE( teleprinter_intf ) diff --git a/src/mess/drivers/multi16.c b/src/mess/drivers/multi16.c index 30871f718e7..52af7e91710 100644 --- a/src/mess/drivers/multi16.c +++ b/src/mess/drivers/multi16.c @@ -125,7 +125,7 @@ IRQ_CALLBACK_MEMBER(multi16_state::multi16_irq_callback) WRITE_LINE_MEMBER( multi16_state::multi16_set_int_line ) { //printf("%02x\n",interrupt); - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } static const struct pic8259_interface multi16_pic8259_config = @@ -137,7 +137,7 @@ static const struct pic8259_interface multi16_pic8259_config = void multi16_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(multi16_state::multi16_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(multi16_state::multi16_irq_callback),this)); } diff --git a/src/mess/drivers/mz6500.c b/src/mess/drivers/mz6500.c index 54113d7cd45..91383c59160 100644 --- a/src/mess/drivers/mz6500.c +++ b/src/mess/drivers/mz6500.c @@ -19,7 +19,8 @@ public: m_hgdc(*this, "upd7220"), m_fdc(*this, "upd765") , - m_video_ram(*this, "video_ram"){ } + m_video_ram(*this, "video_ram"), + m_maincpu(*this, "maincpu") { } required_device m_hgdc; required_device m_fdc; @@ -30,6 +31,7 @@ public: required_shared_ptr m_video_ram; virtual void machine_reset(); virtual void video_start(); + required_device m_maincpu; }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) diff --git a/src/mess/drivers/nc.c b/src/mess/drivers/nc.c index bd380977d39..9efe4589da2 100644 --- a/src/mess/drivers/nc.c +++ b/src/mess/drivers/nc.c @@ -507,7 +507,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nc_state::dummy_timer_callback) case NC_TYPE_1xx: { LOG(("nmi triggered\n")); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } break; diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c index 699ee6a23a9..6a824d401f3 100644 --- a/src/mess/drivers/nes.c +++ b/src/mess/drivers/nes.c @@ -456,7 +456,7 @@ static const nes_interface nes_apu_interface = void nes_state::ppu_nmi(int *ppu_regs) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mess/drivers/ngp.c b/src/mess/drivers/ngp.c index 8e6a299593f..962f4c1a7d2 100644 --- a/src/mess/drivers/ngp.c +++ b/src/mess/drivers/ngp.c @@ -132,7 +132,8 @@ public: m_mainram( *this, "mainram" ), m_k1ge( *this, "k1ge" ), m_io_controls( *this, "Controls" ), - m_io_power( *this, "Power" ) { + m_io_power( *this, "Power" ) , + m_maincpu(*this, "maincpu") { m_flash_chip[0].present = 0; m_flash_chip[0].state = F_READ; m_flash_chip[0].data = NULL; @@ -200,6 +201,7 @@ protected: virtual void nvram_default(); virtual void nvram_read(emu_file &file); virtual void nvram_write(emu_file &file); + required_device m_maincpu; }; diff --git a/src/mess/drivers/okean240.c b/src/mess/drivers/okean240.c index 5cc2d23073c..af65b02a00e 100644 --- a/src/mess/drivers/okean240.c +++ b/src/mess/drivers/okean240.c @@ -63,7 +63,8 @@ public: m_scroll(0), m_p_videoram(*this, "p_videoram"), m_io_modifiers(*this, "MODIFIERS") - { } + , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(okean240_kbd_status_r); DECLARE_READ8_MEMBER(okean240a_kbd_status_r); @@ -88,6 +89,7 @@ public: protected: optional_ioport m_io_modifiers; ioport_port *m_io_port[11]; + required_device m_maincpu; }; // okean240 requires bit 4 to change diff --git a/src/mess/drivers/p112.c b/src/mess/drivers/p112.c index 694e61431d0..809342a9f8e 100644 --- a/src/mess/drivers/p112.c +++ b/src/mess/drivers/p112.c @@ -39,11 +39,13 @@ class p112_state : public driver_device { public: p112_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/p2000t.c b/src/mess/drivers/p2000t.c index 6a9dc9a2405..0eb879d92c7 100644 --- a/src/mess/drivers/p2000t.c +++ b/src/mess/drivers/p2000t.c @@ -204,7 +204,7 @@ INPUT_PORTS_END INTERRUPT_GEN_MEMBER(p2000t_state::p2000_interrupt) { - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } READ8_MEMBER( p2000t_state::videoram_r ) diff --git a/src/mess/drivers/p8k.c b/src/mess/drivers/p8k.c index 800b1eeb66f..c037330e54a 100644 --- a/src/mess/drivers/p8k.c +++ b/src/mess/drivers/p8k.c @@ -228,7 +228,7 @@ static GENERIC_TERMINAL_INTERFACE( terminal_intf ) WRITE_LINE_MEMBER( p8k_state::p8k_daisy_interrupt ) { - machine().device("maincpu")->execute().set_input_line(0, state); + m_maincpu->set_input_line(0, state); } /* Z80 DMA */ diff --git a/src/mess/drivers/palmz22.c b/src/mess/drivers/palmz22.c index a6b9df0d804..855794ef112 100644 --- a/src/mess/drivers/palmz22.c +++ b/src/mess/drivers/palmz22.c @@ -252,7 +252,7 @@ void palmz22_state::machine_start() void palmz22_state::machine_reset() { - machine().device("maincpu")->reset(); + m_maincpu->reset(); memset( m_port, 0, sizeof( m_port)); } diff --git a/src/mess/drivers/paso1600.c b/src/mess/drivers/paso1600.c index 9b16318c170..13f05887274 100644 --- a/src/mess/drivers/paso1600.c +++ b/src/mess/drivers/paso1600.c @@ -283,7 +283,7 @@ IRQ_CALLBACK_MEMBER(paso1600_state::paso1600_irq_callback) WRITE_LINE_MEMBER( paso1600_state::paso1600_set_int_line ) { //printf("%02x\n",interrupt); - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } static const struct pic8259_interface paso1600_pic8259_config = diff --git a/src/mess/drivers/pasogo.c b/src/mess/drivers/pasogo.c index fa706d4dd1d..1c1211a00ab 100644 --- a/src/mess/drivers/pasogo.c +++ b/src/mess/drivers/pasogo.c @@ -465,7 +465,7 @@ IRQ_CALLBACK_MEMBER(pasogo_state::pasogo_irq_callback) void pasogo_state::machine_reset() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pasogo_state::pasogo_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pasogo_state::pasogo_irq_callback),this)); } //static const unsigned i86_address_mask = 0x000fffff; @@ -492,7 +492,7 @@ static const pit8253_config pc_pit8254_config = WRITE_LINE_MEMBER(pasogo_state::pasogo_pic8259_set_int_line) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } static const pic8259_interface pasogo_pic8259_config = diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c index d91ced35785..99c644ea51c 100644 --- a/src/mess/drivers/pasopia7.c +++ b/src/mess/drivers/pasopia7.c @@ -539,7 +539,7 @@ void pasopia7_state::pasopia_nmi_trap() m_nmi_trap |= 2; if(m_nmi_mask == 0) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } } @@ -870,7 +870,7 @@ WRITE8_MEMBER( pasopia7_state::nmi_mask_w ) { m_nmi_reset &= ~4; m_nmi_trap &= ~2; - //machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); //guess + //m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); //guess } } diff --git a/src/mess/drivers/pb1000.c b/src/mess/drivers/pb1000.c index 19abf0394c6..5624f0cc268 100644 --- a/src/mess/drivers/pb1000.c +++ b/src/mess/drivers/pb1000.c @@ -485,8 +485,8 @@ static const hd61700_config pb2000c_config = TIMER_CALLBACK_MEMBER(pb1000_state::keyboard_timer) { - machine().device("maincpu")->execute().set_input_line(HD61700_KEY_INT, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(HD61700_KEY_INT, CLEAR_LINE); + m_maincpu->set_input_line(HD61700_KEY_INT, ASSERT_LINE); + m_maincpu->set_input_line(HD61700_KEY_INT, CLEAR_LINE); } void pb1000_state::machine_start() diff --git a/src/mess/drivers/pc100.c b/src/mess/drivers/pc100.c index 684533197b2..4419edf7e44 100644 --- a/src/mess/drivers/pc100.c +++ b/src/mess/drivers/pc100.c @@ -68,7 +68,8 @@ public: : driver_device(mconfig, type, tag), m_rtc(*this, "rtc"), m_palram(*this, "palram") - { } + , + m_maincpu(*this, "maincpu") { } required_device m_rtc; required_shared_ptr m_palram; @@ -116,6 +117,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(pc100_50hz_irq); TIMER_DEVICE_CALLBACK_MEMBER(pc100_10hz_irq); IRQ_CALLBACK_MEMBER(pc100_irq_callback); + required_device m_maincpu; }; void pc100_state::video_start() @@ -408,7 +410,7 @@ IRQ_CALLBACK_MEMBER(pc100_state::pc100_irq_callback) WRITE_LINE_MEMBER( pc100_state::pc100_set_int_line ) { //printf("%02x\n",interrupt); - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } static const struct pic8259_interface pc100_pic8259_config = @@ -420,7 +422,7 @@ static const struct pic8259_interface pc100_pic8259_config = void pc100_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc100_state::pc100_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc100_state::pc100_irq_callback),this)); m_kanji_rom = (UINT16 *)(*machine().root_device().memregion("kanji")); m_vram = (UINT16 *)(*memregion("vram")); } diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index 4385ab15422..4b15841fed9 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -2290,7 +2290,7 @@ void pc8801_state::pc8801_raise_irq(UINT8 irq,UINT8 state) WRITE_LINE_MEMBER(pc8801_state::pic_int_w) { - device_t *device = machine().device("maincpu"); + device_t *device = m_maincpu; // if (state == ASSERT_LINE) // { // } @@ -2298,7 +2298,7 @@ WRITE_LINE_MEMBER(pc8801_state::pic_int_w) WRITE_LINE_MEMBER(pc8801_state::pic_enlg_w) { - device_t *device = machine().device("maincpu"); + device_t *device = m_maincpu; //if (state == CLEAR_LINE) //{ //} @@ -2379,7 +2379,7 @@ WRITE_LINE_MEMBER(pc8801_state::pc8801_sound_irq) m_sound_irq_latch = 1; m_sound_irq_pending = 0; //IRQ_LOG(("sound\n")); - machine().device("maincpu")->execute().set_input_line(0,HOLD_LINE); + m_maincpu->set_input_line(0,HOLD_LINE); } else m_sound_irq_pending = 1; diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c index 3365970af20..42a8e673f35 100644 --- a/src/mess/drivers/pc88va.c +++ b/src/mess/drivers/pc88va.c @@ -710,7 +710,7 @@ WRITE8_MEMBER(pc88va_state::idp_command_w) void pc88va_state::tsp_sprite_enable(UINT32 spr_offset, UINT8 sw_bit) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); space.write_word(spr_offset, space.read_word(spr_offset) & ~0x200); space.write_word(spr_offset, space.read_word(spr_offset) | (sw_bit & 0x200)); @@ -1623,7 +1623,7 @@ IRQ_CALLBACK_MEMBER(pc88va_state::pc88va_irq_callback) WRITE_LINE_MEMBER(pc88va_state::pc88va_pic_irq) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); // logerror("PIC#1: set IRQ line to %i\n",interrupt); } @@ -1651,7 +1651,7 @@ static const struct pic8259_interface pc88va_pic8259_slave_config = void pc88va_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc88va_state::pc88va_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc88va_state::pc88va_irq_callback),this)); m_t3_mouse_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc88va_state::t3_mouse_callback),this)); m_t3_mouse_timer->adjust(attotime::never); diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index f4f9f6222b6..3b38257e98e 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -1855,7 +1855,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_f0_w) /* reset POR bit, TODO: is there any other way? */ por = machine().device("ppi8255_sys")->read(space, 2) & ~0x20; machine().device("ppi8255_sys")->write(space, 2,por); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); } if(offset == 0x02) @@ -2915,7 +2915,7 @@ ir7 WRITE_LINE_MEMBER(pc9801_state::pc9801_master_set_int_line) { //printf("%02x\n",interrupt); - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } READ8_MEMBER(pc9801_state::get_slave_ack) @@ -3338,7 +3338,7 @@ IRQ_CALLBACK_MEMBER(pc9801_state::irq_callback) MACHINE_START_MEMBER(pc9801_state,pc9801_common) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc9801_state::irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc9801_state::irq_callback),this)); m_rtc->cs_w(1); m_rtc->oe_w(0); // TODO: unknown connection, MS-DOS 6.2x wants this low somehow with the test mode diff --git a/src/mess/drivers/pce.c b/src/mess/drivers/pce.c index 62866fc9c4a..475772ecfd6 100644 --- a/src/mess/drivers/pce.c +++ b/src/mess/drivers/pce.c @@ -355,7 +355,7 @@ UINT32 pce_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, con WRITE_LINE_MEMBER(pce_state::pce_irq_changed) { - machine().device("maincpu")->execute().set_input_line(0, state); + m_maincpu->set_input_line(0, state); } diff --git a/src/mess/drivers/pcw.c b/src/mess/drivers/pcw.c index c695de298b3..b182c2250cd 100644 --- a/src/mess/drivers/pcw.c +++ b/src/mess/drivers/pcw.c @@ -423,7 +423,7 @@ WRITE8_MEMBER(pcw_state::pcw_system_control_w) /* reboot */ case 1: { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); popmessage("SYS: Reboot"); } break; @@ -1045,7 +1045,7 @@ void pcw_state::machine_reset() DRIVER_INIT_MEMBER(pcw_state,pcw) { - machine().device("maincpu")->execute().set_input_line_vector(0, 0x0ff); + m_maincpu->set_input_line_vector(0, 0x0ff); /* lower 4 bits are interrupt counter */ m_system_status = 0x000; diff --git a/src/mess/drivers/pdp11.c b/src/mess/drivers/pdp11.c index 8bbfcfa5269..945bd0b3418 100644 --- a/src/mess/drivers/pdp11.c +++ b/src/mess/drivers/pdp11.c @@ -283,7 +283,7 @@ MACHINE_RESET_MEMBER(pdp11_state,pdp11ub2) addr = 0165000; } addr += machine().root_device().ioport("S1_2")->read() * 2; - machine().device("maincpu")->state().set_state_int(T11_PC, addr); + m_maincpu->set_state_int(T11_PC, addr); } //0173000 @@ -299,7 +299,7 @@ MACHINE_RESET_MEMBER(pdp11_state,pdp11ub2) MACHINE_RESET_MEMBER(pdp11_state,pdp11qb) { - machine().device("maincpu")->state().set_state_int(T11_PC, 0xea00); + m_maincpu->set_state_int(T11_PC, 0xea00); } static const struct t11_setup pdp11_data = diff --git a/src/mess/drivers/pegasus.c b/src/mess/drivers/pegasus.c index 818ddc832f1..438929cc84d 100644 --- a/src/mess/drivers/pegasus.c +++ b/src/mess/drivers/pegasus.c @@ -98,7 +98,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(pegasus_state::pegasus_firq) WRITE_LINE_MEMBER( pegasus_state::pegasus_firq_clr ) { - machine().device("maincpu")->execute().set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); } READ8_MEMBER( pegasus_state::pegasus_keyboard_r ) diff --git a/src/mess/drivers/pes.c b/src/mess/drivers/pes.c index 0bf6477501c..35fe13d70ee 100644 --- a/src/mess/drivers/pes.c +++ b/src/mess/drivers/pes.c @@ -86,8 +86,8 @@ WRITE8_MEMBER(pes_state::pes_kbd_input) fprintf(stderr,"kb input fifo fullness: %d\n",(m_infifo_head_ptr-m_infifo_tail_ptr)&0x1F); #endif // todo: following two should be set so clear happens after one cpu cycle - machine().device("maincpu")->execute().set_input_line(MCS51_RX_LINE, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(MCS51_RX_LINE, CLEAR_LINE); + m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE); + m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE); } static GENERIC_TERMINAL_INTERFACE( pes_terminal_intf ) @@ -228,8 +228,8 @@ void pes_state::machine_reset() DRIVER_INIT_MEMBER(pes_state,pes) { - i8051_set_serial_tx_callback(machine().device("maincpu"), write8_delegate(FUNC(pes_state::data_from_i8031),this)); - i8051_set_serial_rx_callback(machine().device("maincpu"), read8_delegate(FUNC(pes_state::data_to_i8031),this)); + i8051_set_serial_tx_callback(m_maincpu, write8_delegate(FUNC(pes_state::data_from_i8031),this)); + i8051_set_serial_rx_callback(m_maincpu, read8_delegate(FUNC(pes_state::data_to_i8031),this)); } /****************************************************************************** diff --git a/src/mess/drivers/pimps.c b/src/mess/drivers/pimps.c index 92a4230c844..b842f1d93b0 100644 --- a/src/mess/drivers/pimps.c +++ b/src/mess/drivers/pimps.c @@ -30,7 +30,8 @@ class pimps_state : public driver_device public: pimps_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(term_status_r); DECLARE_READ8_MEMBER(term_r); @@ -39,6 +40,7 @@ public: virtual void machine_reset(); required_device m_terminal; + required_device m_maincpu; }; diff --git a/src/mess/drivers/pipbug.c b/src/mess/drivers/pipbug.c index 336a2b74944..b86654291fc 100644 --- a/src/mess/drivers/pipbug.c +++ b/src/mess/drivers/pipbug.c @@ -46,12 +46,14 @@ class pipbug_state : public driver_device public: pipbug_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(pipbug_ctrl_w); DECLARE_READ8_MEMBER(pipbug_serial_r); DECLARE_WRITE8_MEMBER(pipbug_serial_w); required_device m_terminal; + required_device m_maincpu; }; WRITE8_MEMBER( pipbug_state::pipbug_ctrl_w ) diff --git a/src/mess/drivers/pmi80.c b/src/mess/drivers/pmi80.c index 1a1a72cf10a..ebfaf4fad36 100644 --- a/src/mess/drivers/pmi80.c +++ b/src/mess/drivers/pmi80.c @@ -41,7 +41,8 @@ public: pmi80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_ledready(0) - { } + , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(keyboard_r); DECLARE_WRITE8_MEMBER(keyboard_w); @@ -49,6 +50,7 @@ public: UINT8 m_keyrow; bool m_ledready; virtual void machine_reset(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/pockstat.c b/src/mess/drivers/pockstat.c index 1a85bdabe6f..16f7bcd606a 100644 --- a/src/mess/drivers/pockstat.c +++ b/src/mess/drivers/pockstat.c @@ -92,7 +92,8 @@ class pockstat_state : public driver_device public: pockstat_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_lcd_buffer(*this, "lcd_buffer"){ } + m_lcd_buffer(*this, "lcd_buffer"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_lcd_buffer; ps_ftlb_regs_t m_ftlb_regs; @@ -131,6 +132,7 @@ public: UINT32 ps_intc_get_interrupt_line(UINT32 line); void ps_intc_set_interrupt_line(UINT32 line, int state); void ps_timer_start(int index); + required_device m_maincpu; }; @@ -320,19 +322,19 @@ void pockstat_state::ps_intc_set_interrupt_line(UINT32 line, int state) } if(m_intc_regs.hold & m_intc_regs.enable & PS_INT_IRQ_MASK) { - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE); } else { - machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(ARM7_IRQ_LINE, CLEAR_LINE); } if(m_intc_regs.hold & m_intc_regs.enable & PS_INT_FIQ_MASK) { - machine().device("maincpu")->execute().set_input_line(ARM7_FIRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(ARM7_FIRQ_LINE, ASSERT_LINE); } else { - machine().device("maincpu")->execute().set_input_line(ARM7_FIRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(ARM7_FIRQ_LINE, CLEAR_LINE); } } @@ -526,7 +528,7 @@ WRITE32_MEMBER(pockstat_state::ps_clock_w) case 0x0000/4: verboselog(0, "ps_clock_w: Clock Mode = %08x & %08x\n", data, mem_mask ); COMBINE_DATA(&m_clock_regs.mode); - machine().device("maincpu")->set_unscaled_clock(CPU_FREQ[m_clock_regs.mode & 0x0f]); + m_maincpu->set_unscaled_clock(CPU_FREQ[m_clock_regs.mode & 0x0f]); break; case 0x0004/4: verboselog(0, "ps_clock_w: Clock Control = %08x & %08x\n", data, mem_mask ); @@ -897,7 +899,7 @@ void pockstat_state::machine_start() void pockstat_state::machine_reset() { - machine().device("maincpu")->state().set_pc(0x4000000); + m_maincpu->set_pc(0x4000000); m_ps_flash_write_enable_count = 0; m_ps_flash_write_count = 0; diff --git a/src/mess/drivers/prestige.c b/src/mess/drivers/prestige.c index 9d9bd22ecb9..6637c19c695 100644 --- a/src/mess/drivers/prestige.c +++ b/src/mess/drivers/prestige.c @@ -472,7 +472,7 @@ UINT32 prestige_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer) { - machine().device("maincpu")->execute().set_input_line(0, ASSERT_LINE); + m_maincpu->set_input_line(0, ASSERT_LINE); } static MACHINE_CONFIG_START( prestige, prestige_state ) diff --git a/src/mess/drivers/psion.c b/src/mess/drivers/psion.c index 70628705b4c..d860d4a400f 100644 --- a/src/mess/drivers/psion.c +++ b/src/mess/drivers/psion.c @@ -25,7 +25,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(psion_state::nmi_timer) { if (m_enable_nmi) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } UINT8 psion_state::kb_read(running_machine &machine) diff --git a/src/mess/drivers/psx.c b/src/mess/drivers/psx.c index 2397bf14309..93b55e4f8cb 100644 --- a/src/mess/drivers/psx.c +++ b/src/mess/drivers/psx.c @@ -24,7 +24,8 @@ class psx1_state : public driver_device { public: psx1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } UINT8 *m_exe_buffer; int m_exe_size; @@ -49,6 +50,7 @@ public: int load_psf( cpu_device *cpu, unsigned char *p_n_file, int n_len ); void cd_dma_read( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size ); void cd_dma_write( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size ); + required_device m_maincpu; }; diff --git a/src/mess/drivers/pt68k4.c b/src/mess/drivers/pt68k4.c index 177535d9718..7b3440572f6 100644 --- a/src/mess/drivers/pt68k4.c +++ b/src/mess/drivers/pt68k4.c @@ -19,12 +19,14 @@ class pt68k4_state : public driver_device public: pt68k4_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_p_ram(*this, "p_ram"){ } + m_p_ram(*this, "p_ram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_p_ram; virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; static ADDRESS_MAP_START(pt68k4_mem, AS_PROGRAM, 16, pt68k4_state) @@ -45,7 +47,7 @@ void pt68k4_state::machine_reset() memcpy((UINT8*)m_p_ram.target(), user1, 8); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } void pt68k4_state::video_start() diff --git a/src/mess/drivers/pv2000.c b/src/mess/drivers/pv2000.c index faefde0710e..423d561e582 100644 --- a/src/mess/drivers/pv2000.c +++ b/src/mess/drivers/pv2000.c @@ -85,7 +85,7 @@ WRITE8_MEMBER( pv2000_state::pv2000_keys_w ) m_keyb_column = data & 0x0f; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); } @@ -308,7 +308,7 @@ WRITE_LINE_MEMBER( pv2000_state::pv2000_vdp_interrupt ) { // only if it goes up if (state && !m_last_state) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); m_last_state = state; @@ -329,7 +329,7 @@ WRITE_LINE_MEMBER( pv2000_state::pv2000_vdp_interrupt ) | ioport( "IN8" )->read(); if ( key_pressed && m_key_pressed != key_pressed ) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); m_key_pressed = key_pressed; } @@ -374,7 +374,7 @@ void pv2000_state::machine_reset() m_key_pressed = 0; m_keyb_column = 0; - machine().device("maincpu")->execute().set_input_line_vector(INPUT_LINE_IRQ0, 0xff); + m_maincpu->set_input_line_vector(INPUT_LINE_IRQ0, 0xff); memset(&memregion("maincpu")->base()[0x7000], 0xff, 0x1000); // initialize RAM } diff --git a/src/mess/drivers/pv9234.c b/src/mess/drivers/pv9234.c index 8eebfb91747..a09a76a9e5c 100644 --- a/src/mess/drivers/pv9234.c +++ b/src/mess/drivers/pv9234.c @@ -27,7 +27,8 @@ class pv9234_state : public driver_device public: pv9234_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_p_ram(*this, "p_ram"){ } + m_p_ram(*this, "p_ram"), + m_maincpu(*this, "maincpu") { } DECLARE_WRITE32_MEMBER(debug_w); DECLARE_WRITE32_MEMBER(debug1_w); @@ -36,6 +37,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/px4.c b/src/mess/drivers/px4.c index c063837a798..19d696a09d4 100644 --- a/src/mess/drivers/px4.c +++ b/src/mess/drivers/px4.c @@ -83,7 +83,8 @@ public: m_speaker(*this, SPEAKER_TAG), m_sio(*this, "sio"), m_rs232(*this, "rs232") - { } + , + m_maincpu(*this, "maincpu") { } // internal devices required_device m_z80; @@ -188,6 +189,7 @@ public: TIMER_CALLBACK_MEMBER(receive_data); TIMER_DEVICE_CALLBACK_MEMBER(frc_tick); TIMER_DEVICE_CALLBACK_MEMBER(upd7508_1sec_callback); + required_device m_maincpu; }; diff --git a/src/mess/drivers/pyl601.c b/src/mess/drivers/pyl601.c index 9fc7f94a186..e03eaf5d951 100644 --- a/src/mess/drivers/pyl601.c +++ b/src/mess/drivers/pyl601.c @@ -49,7 +49,8 @@ public: m_speaker(*this, SPEAKER_TAG), m_fdc(*this, "upd765"), m_ram(*this, RAM_TAG) - { } + , + m_maincpu(*this, "maincpu") { } UINT8 m_rom_page; UINT32 m_vdisk_addr; @@ -83,6 +84,7 @@ public: virtual void video_start(); INTERRUPT_GEN_MEMBER(pyl601_interrupt); DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device m_maincpu; }; diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c index 117ef5d63eb..0970412410d 100644 --- a/src/mess/drivers/qx10.c +++ b/src/mess/drivers/qx10.c @@ -65,7 +65,8 @@ public: m_hgdc(*this, "upd7220"), m_rtc(*this, "rtc"), m_vram_bank(0) - { } + , + m_maincpu(*this, "maincpu") { } required_device m_pit_1; required_device m_pit_2; @@ -147,6 +148,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(key_stroke); DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed); IRQ_CALLBACK_MEMBER(irq_callback); + required_device m_maincpu; }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) @@ -539,7 +541,7 @@ static const struct pit8253_config qx10_pit8253_2_config = WRITE_LINE_MEMBER( qx10_state::qx10_pic8259_master_set_int_line ) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } READ8_MEMBER( qx10_state::get_slave_ack ) @@ -909,7 +911,7 @@ INPUT_PORTS_END void qx10_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(qx10_state::irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(qx10_state::irq_callback),this)); m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(qx10_state::qx10_upd765_interrupt), this)); m_fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(qx10_state::drq_w), this)); } diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c index 1127b7b011e..8748f18ef65 100644 --- a/src/mess/drivers/rainbow.c +++ b/src/mess/drivers/rainbow.c @@ -81,7 +81,8 @@ public: m_lk201(*this, LK201_TAG), m_p_ram(*this, "p_ram"), m_shared(*this, "sh_ram") - { } + , + m_maincpu(*this, "maincpu") { } required_device m_crtc; @@ -134,6 +135,7 @@ public: UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); TIMER_DEVICE_CALLBACK_MEMBER(keyboard_tick); + required_device m_maincpu; }; void rainbow_state::machine_start() diff --git a/src/mess/drivers/rd110.c b/src/mess/drivers/rd110.c index 2c18d3aff0b..427377f7b15 100644 --- a/src/mess/drivers/rd110.c +++ b/src/mess/drivers/rd110.c @@ -80,6 +80,7 @@ private: UINT8 midi; int midi_pos; UINT8 port0; + required_device m_maincpu; }; d110_state::d110_state(const machine_config &mconfig, device_type type, const char *tag) : @@ -91,7 +92,8 @@ d110_state::d110_state(const machine_config &mconfig, device_type type, const ch memcs(*this, "memcs"), lcd(*this, "lcd"), midi_timer(*this, "midi_timer") -{ +, + m_maincpu(*this, "maincpu") { } diff --git a/src/mess/drivers/rmt32.c b/src/mess/drivers/rmt32.c index 84793cf0e57..c8da31571fe 100644 --- a/src/mess/drivers/rmt32.c +++ b/src/mess/drivers/rmt32.c @@ -218,6 +218,7 @@ private: UINT8 midi; int midi_pos; UINT8 port0; + required_device m_maincpu; }; mt32_state::mt32_state(const machine_config &mconfig, device_type type, const char *tag) : @@ -226,7 +227,8 @@ mt32_state::mt32_state(const machine_config &mconfig, device_type type, const ch ram(*this, "ram"), lcd(*this, "lcd"), midi_timer(*this, "midi_timer") -{ +, + m_maincpu(*this, "maincpu") { } diff --git a/src/mess/drivers/rt1715.c b/src/mess/drivers/rt1715.c index 318e826b979..c335e6ed41e 100644 --- a/src/mess/drivers/rt1715.c +++ b/src/mess/drivers/rt1715.c @@ -26,7 +26,8 @@ class rt1715_state : public driver_device { public: rt1715_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } int m_led1_val; int m_led2_val; @@ -39,6 +40,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void palette_init(); + required_device m_maincpu; }; diff --git a/src/mess/drivers/rvoice.c b/src/mess/drivers/rvoice.c index 71eef931bb3..f1f21f484d4 100644 --- a/src/mess/drivers/rvoice.c +++ b/src/mess/drivers/rvoice.c @@ -73,7 +73,8 @@ class rvoice_state : public driver_device { public: rvoice_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } hd63701y0_t m_hd63701y0; rvoicepc_t m_rvoicepc; @@ -82,6 +83,7 @@ public: DECLARE_DRIVER_INIT(rvoicepc); virtual void machine_reset(); DECLARE_WRITE8_MEMBER(null_kbd_put); + required_device m_maincpu; }; diff --git a/src/mess/drivers/rx78.c b/src/mess/drivers/rx78.c index 84234c795cd..6ab94f85bef 100644 --- a/src/mess/drivers/rx78.c +++ b/src/mess/drivers/rx78.c @@ -515,7 +515,7 @@ ROM_END DRIVER_INIT_MEMBER(rx78_state,rx78) { UINT32 ram_size = machine().device(RAM_TAG)->size(); - address_space &prg = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &prg = m_maincpu->space(AS_PROGRAM); if(ram_size == 0x4000) prg.unmap_readwrite(0x6000, 0xafff); diff --git a/src/mess/drivers/samcoupe.c b/src/mess/drivers/samcoupe.c index 0fed5564354..120357a0919 100644 --- a/src/mess/drivers/samcoupe.c +++ b/src/mess/drivers/samcoupe.c @@ -165,7 +165,7 @@ READ8_MEMBER(samcoupe_state::samcoupe_lmpr_r) WRITE8_MEMBER(samcoupe_state::samcoupe_lmpr_w) { - address_space &space_program = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space_program = m_maincpu->space(AS_PROGRAM); m_lmpr = data; samcoupe_update_memory(space_program); @@ -178,7 +178,7 @@ READ8_MEMBER(samcoupe_state::samcoupe_hmpr_r) WRITE8_MEMBER(samcoupe_state::samcoupe_hmpr_w) { - address_space &space_program = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space_program = m_maincpu->space(AS_PROGRAM); m_hmpr = data; samcoupe_update_memory(space_program); @@ -191,7 +191,7 @@ READ8_MEMBER(samcoupe_state::samcoupe_vmpr_r) WRITE8_MEMBER(samcoupe_state::samcoupe_vmpr_w) { - address_space &space_program = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space_program = m_maincpu->space(AS_PROGRAM); m_vmpr = data; samcoupe_update_memory(space_program); @@ -330,7 +330,7 @@ TIMER_CALLBACK_MEMBER(samcoupe_state::irq_off) /* clear interrupt */ if ((m_status & 0x1f) == 0x1f) - machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); } diff --git a/src/mess/drivers/saturn.c b/src/mess/drivers/saturn.c index b48df25097f..40400e662d3 100644 --- a/src/mess/drivers/saturn.c +++ b/src/mess/drivers/saturn.c @@ -618,10 +618,10 @@ MACHINE_START_MEMBER(sat_console_state,saturn) scsp_set_ram_base(machine().device("scsp"), m_sound_ram); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this)); machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this)); - machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff); + m_maincpu->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff); machine().device("slave")->memory().space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff); if (m_exp) @@ -632,37 +632,37 @@ MACHINE_START_MEMBER(sat_console_state,saturn) case 0x22: case 0x23: case 0x24: - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); break; case 0x5a: // Data RAM cart case 0x5c: - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); break; case 0xff: // ROM cart + mirror - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); break; @@ -733,7 +733,7 @@ MACHINE_RESET_MEMBER(sat_console_state,saturn) //memset(stv_m_workram_l, 0, 0x100000); //memset(stv_m_workram_h, 0, 0x100000); - machine().device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2); + m_maincpu->set_unscaled_clock(MASTER_CLOCK_320/2); machine().device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2); stvcd_reset(); @@ -846,7 +846,7 @@ void sat_console_state::saturn_init_driver(int rgn) m_vdp2.pal = (rgn == 12) ? 1 : 0; // set compatible options - sh2drc_set_options(machine().device("maincpu"), SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL); + sh2drc_set_options(m_maincpu, SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL); sh2drc_set_options(machine().device("slave"), SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL); /* amount of time to boost interleave for on MINIT / SINIT, needed for communication to work */ diff --git a/src/mess/drivers/sbc6510.c b/src/mess/drivers/sbc6510.c index 273df3069ba..21a78bbc65a 100644 --- a/src/mess/drivers/sbc6510.c +++ b/src/mess/drivers/sbc6510.c @@ -60,7 +60,8 @@ class sbc6510_state : public driver_device public: sbc6510_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) { } + m_terminal(*this, TERMINAL_TAG) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(a2_r); DECLARE_WRITE8_MEMBER(a2_w); @@ -77,6 +78,7 @@ public: protected: ioport_port *m_io_port[8]; + required_device m_maincpu; }; diff --git a/src/mess/drivers/sc2.c b/src/mess/drivers/sc2.c index 338c780f639..1bcc96c3679 100644 --- a/src/mess/drivers/sc2.c +++ b/src/mess/drivers/sc2.c @@ -21,7 +21,8 @@ public: sc2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_beep(*this, BEEPER_TAG) - { } + , + m_maincpu(*this, "maincpu") { } required_device m_beep; DECLARE_READ8_MEMBER(pio_port_a_r); @@ -37,6 +38,7 @@ public: void sc2_update_display(); virtual void machine_start(); virtual void machine_reset(); + required_device m_maincpu; }; READ8_MEMBER( sc2_state::sc2_beep ) diff --git a/src/mess/drivers/sdk85.c b/src/mess/drivers/sdk85.c index dad19ab71ea..62daadc7da6 100644 --- a/src/mess/drivers/sdk85.c +++ b/src/mess/drivers/sdk85.c @@ -30,12 +30,14 @@ class sdk85_state : public driver_device { public: sdk85_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(scanlines_w); DECLARE_WRITE8_MEMBER(digit_w); DECLARE_READ8_MEMBER(kbd_r); UINT8 m_digit; + required_device m_maincpu; }; static ADDRESS_MAP_START(sdk85_mem, AS_PROGRAM, 8, sdk85_state) diff --git a/src/mess/drivers/sdk86.c b/src/mess/drivers/sdk86.c index 085c4f245dd..da52a5590f7 100644 --- a/src/mess/drivers/sdk86.c +++ b/src/mess/drivers/sdk86.c @@ -35,12 +35,14 @@ class sdk86_state : public driver_device { public: sdk86_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(scanlines_w); DECLARE_WRITE8_MEMBER(digit_w); DECLARE_READ8_MEMBER(kbd_r); UINT8 m_digit; + required_device m_maincpu; }; static ADDRESS_MAP_START(sdk86_mem, AS_PROGRAM, 16, sdk86_state) diff --git a/src/mess/drivers/selz80.c b/src/mess/drivers/selz80.c index 5ba5d96b9d0..3f7d4ba7177 100644 --- a/src/mess/drivers/selz80.c +++ b/src/mess/drivers/selz80.c @@ -38,12 +38,14 @@ class selz80_state : public driver_device { public: selz80_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(scanlines_w); DECLARE_WRITE8_MEMBER(digit_w); DECLARE_READ8_MEMBER(kbd_r); UINT8 m_digit; + required_device m_maincpu; }; static ADDRESS_MAP_START(selz80_mem, AS_PROGRAM, 8, selz80_state) diff --git a/src/mess/drivers/sgi_ip6.c b/src/mess/drivers/sgi_ip6.c index 3c93fe280d4..44ac6b64f85 100644 --- a/src/mess/drivers/sgi_ip6.c +++ b/src/mess/drivers/sgi_ip6.c @@ -28,7 +28,8 @@ class sgi_ip6_state : public driver_device { public: sgi_ip6_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } ip6_regs_t m_ip6_regs; DECLARE_READ32_MEMBER(ip6_unk1_r); @@ -44,6 +45,7 @@ public: UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(sgi_ip6_vbl); inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... ); + required_device m_maincpu; }; diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c index 6ac59e19046..68359c9b70b 100644 --- a/src/mess/drivers/sm1800.c +++ b/src/mess/drivers/sm1800.c @@ -79,7 +79,7 @@ void sm1800_state::machine_reset() INTERRUPT_GEN_MEMBER(sm1800_state::sm1800_vblank_interrupt) { - machine().device("maincpu")->execute().set_input_line(0, m_irq_state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, m_irq_state ? HOLD_LINE : CLEAR_LINE); m_irq_state ^= 1; } diff --git a/src/mess/drivers/sms.c b/src/mess/drivers/sms.c index 41291bc2c2e..0a0ad8ae79b 100644 --- a/src/mess/drivers/sms.c +++ b/src/mess/drivers/sms.c @@ -359,7 +359,7 @@ INPUT_PORTS_END WRITE_LINE_MEMBER(sms_state::sms_int_callback) { - machine().device("maincpu")->execute().set_input_line(0, state); + m_maincpu->set_input_line(0, state); } static const sega315_5124_interface _315_5124_ntsc_intf = diff --git a/src/mess/drivers/socrates.c b/src/mess/drivers/socrates.c index d4c85fa5fb3..025c1f21a55 100644 --- a/src/mess/drivers/socrates.c +++ b/src/mess/drivers/socrates.c @@ -243,7 +243,7 @@ DRIVER_INIT_MEMBER(socrates_state,socrates) for (i = 0; i < 0x10000; i++) gfx[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); // init sound channels to both be on lowest pitch and max volume - machine().device("maincpu")->set_clock_scale(0.45f); /* RAM access waitstates etc. aren't emulated - slow the CPU to compensate */ + m_maincpu->set_clock_scale(0.45f); /* RAM access waitstates etc. aren't emulated - slow the CPU to compensate */ } READ8_MEMBER(socrates_state::socrates_rom_bank_r) @@ -906,7 +906,7 @@ INPUT_PORTS_END ******************************************************************************/ TIMER_CALLBACK_MEMBER(socrates_state::clear_irq_cb) { - machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); m_vblankstate = 0; } diff --git a/src/mess/drivers/spc1000.c b/src/mess/drivers/spc1000.c index ba0213ad930..de44c8b70fc 100644 --- a/src/mess/drivers/spc1000.c +++ b/src/mess/drivers/spc1000.c @@ -21,7 +21,8 @@ class spc1000_state : public driver_device public: spc1000_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_vdg(*this, "mc6847") {} + m_vdg(*this, "mc6847") , + m_maincpu(*this, "maincpu") {} required_device m_vdg; UINT8 m_IPLK; @@ -42,6 +43,7 @@ public: DECLARE_WRITE8_MEMBER(spc1000_gmode_w); DECLARE_READ8_MEMBER(spc1000_gmode_r); DECLARE_READ8_MEMBER(spc1000_mc6847_videoram_r); + required_device m_maincpu; }; @@ -225,7 +227,7 @@ INPUT_PORTS_END void spc1000_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *mem = memregion("maincpu")->base(); UINT8 *ram = machine().device(RAM_TAG)->pointer(); diff --git a/src/mess/drivers/ssem.c b/src/mess/drivers/ssem.c index 11b2b77f3bf..f587a97fbfa 100644 --- a/src/mess/drivers/ssem.c +++ b/src/mess/drivers/ssem.c @@ -94,7 +94,7 @@ INPUT_CHANGED_MEMBER(ssem_state::panel_check) UINT8 edit2_state = machine().root_device().ioport("EDIT2")->read(); UINT8 edit3_state = machine().root_device().ioport("EDIT3")->read(); UINT8 misc_state = machine().root_device().ioport("MISC")->read(); - device_t *ssem_cpu = machine().device("maincpu"); + device_t *ssem_cpu = m_maincpu; switch( (int)(FPTR)param ) { @@ -451,7 +451,7 @@ void ssem_state::glyph_print(bitmap_rgb32 &bitmap, INT32 x, INT32 y, const char UINT32 ssem_state::screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { UINT32 line = 0; - device_t *ssem_cpu = machine().device("maincpu"); + device_t *ssem_cpu = m_maincpu; UINT32 accum = ssem_cpu->state().state_int(SSEM_A); UINT32 bit = 0; UINT32 word = 0; diff --git a/src/mess/drivers/stopthie.c b/src/mess/drivers/stopthie.c index 5d7457e60c9..74ccd4592d9 100644 --- a/src/mess/drivers/stopthie.c +++ b/src/mess/drivers/stopthie.c @@ -9,11 +9,13 @@ class stopthie_state : public driver_device { public: stopthie_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(stopthie_read_k); DECLARE_WRITE16_MEMBER(stopthie_write_o); DECLARE_WRITE16_MEMBER(stopthie_write_r); + required_device m_maincpu; }; diff --git a/src/mess/drivers/sun1.c b/src/mess/drivers/sun1.c index c028085b5bd..c359e832d42 100644 --- a/src/mess/drivers/sun1.c +++ b/src/mess/drivers/sun1.c @@ -115,7 +115,7 @@ void sun1_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x4000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); m_term_data = 0; } diff --git a/src/mess/drivers/sun2.c b/src/mess/drivers/sun2.c index cbf42f54866..9eb5595e1cf 100644 --- a/src/mess/drivers/sun2.c +++ b/src/mess/drivers/sun2.c @@ -105,7 +105,7 @@ void sun2_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x8000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } diff --git a/src/mess/drivers/sun3.c b/src/mess/drivers/sun3.c index 7649996cfbc..8c037227888 100644 --- a/src/mess/drivers/sun3.c +++ b/src/mess/drivers/sun3.c @@ -250,7 +250,7 @@ void sun3_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x10000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } diff --git a/src/mess/drivers/sun4.c b/src/mess/drivers/sun4.c index 56c064dcce2..9db1ecdc3fa 100644 --- a/src/mess/drivers/sun4.c +++ b/src/mess/drivers/sun4.c @@ -391,9 +391,11 @@ class sun4_state : public driver_device { public: sun4_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); + required_device m_maincpu; }; static ADDRESS_MAP_START(sun4_mem, AS_PROGRAM, 32, sun4_state) diff --git a/src/mess/drivers/sys2900.c b/src/mess/drivers/sys2900.c index df5e795d82b..8cc448e782b 100644 --- a/src/mess/drivers/sys2900.c +++ b/src/mess/drivers/sys2900.c @@ -41,13 +41,15 @@ class sys2900_state : public driver_device { public: sys2900_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_DRIVER_INIT(sys2900); virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(sys2900_boot); + required_device m_maincpu; }; diff --git a/src/mess/drivers/tec1.c b/src/mess/drivers/tec1.c index 40e047e76c8..87d8c2dc1f1 100644 --- a/src/mess/drivers/tec1.c +++ b/src/mess/drivers/tec1.c @@ -187,7 +187,7 @@ READ8_MEMBER( tec1_state::latch_r ) READ8_MEMBER( tec1_state::tec1_kbd_r ) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); return m_kbd | ioport("SHIFT")->read(); } @@ -248,7 +248,7 @@ TIMER_CALLBACK_MEMBER(tec1_state::tec1_kbd_callback) if (machine().root_device().ioport(keynames[m_kbd_row])->read()) { m_kbd = tec1_convert_col_to_bin(machine().root_device().ioport(keynames[m_kbd_row])->read(), m_kbd_row); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, HOLD_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, HOLD_LINE); m_key_pressed = TRUE; } else diff --git a/src/mess/drivers/terak.c b/src/mess/drivers/terak.c index be90fdb9d69..4caa8022083 100644 --- a/src/mess/drivers/terak.c +++ b/src/mess/drivers/terak.c @@ -13,7 +13,8 @@ class terak_state : public driver_device { public: terak_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ16_MEMBER(terak_fdc_status_r); DECLARE_WRITE16_MEMBER(terak_fdc_command_w); @@ -25,6 +26,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; READ16_MEMBER( terak_state::terak_fdc_status_r ) diff --git a/src/mess/drivers/test_t400.c b/src/mess/drivers/test_t400.c index 3740b6339f8..3b4b06ca661 100644 --- a/src/mess/drivers/test_t400.c +++ b/src/mess/drivers/test_t400.c @@ -13,9 +13,11 @@ class t400_test_suite_state : public driver_device { public: t400_test_suite_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER( port_l_w ); + required_device m_maincpu; }; WRITE8_MEMBER( t400_test_suite_state::port_l_w ) diff --git a/src/mess/drivers/ti990_10.c b/src/mess/drivers/ti990_10.c index 90d08efaf27..70dbf7a1d74 100644 --- a/src/mess/drivers/ti990_10.c +++ b/src/mess/drivers/ti990_10.c @@ -81,7 +81,8 @@ class ti990_10_state : public driver_device { public: ti990_10_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } device_t *m_terminal; DECLARE_DRIVER_INIT(ti990_10); @@ -91,6 +92,7 @@ public: UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ti990_10_line_interrupt); void idle_callback(int state); + required_device m_maincpu; }; diff --git a/src/mess/drivers/ti990_4.c b/src/mess/drivers/ti990_4.c index 135b39ba4c6..f3f4f8992ff 100644 --- a/src/mess/drivers/ti990_4.c +++ b/src/mess/drivers/ti990_4.c @@ -52,7 +52,8 @@ class ti990_4_state : public driver_device { public: ti990_4_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } device_t *m_terminal; DECLARE_WRITE8_MEMBER(rset_callback); @@ -64,6 +65,7 @@ public: UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ti990_4_line_interrupt); void idle_callback(int state); + required_device m_maincpu; }; @@ -105,7 +107,7 @@ WRITE8_MEMBER(ti990_4_state::rset_callback) WRITE8_MEMBER(ti990_4_state::ckon_ckof_callback) { - device_t *maincpu = machine().device("maincpu"); + device_t *maincpu = m_maincpu; ti990_ckon_ckof_callback(maincpu, (offset & 0x1000) ? 1 : 0); } diff --git a/src/mess/drivers/ti99_2.c b/src/mess/drivers/ti99_2.c index b935151058a..96e681040af 100644 --- a/src/mess/drivers/ti99_2.c +++ b/src/mess/drivers/ti99_2.c @@ -87,7 +87,8 @@ class ti99_2_state : public driver_device public: ti99_2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_videoram; int m_ROM_paged; @@ -103,6 +104,7 @@ public: virtual void palette_init(); UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ti99_2_vblank_interrupt); + required_device m_maincpu; }; diff --git a/src/mess/drivers/tm990189.c b/src/mess/drivers/tm990189.c index cab4a47d1bb..64315c0fe40 100644 --- a/src/mess/drivers/tm990189.c +++ b/src/mess/drivers/tm990189.c @@ -78,7 +78,8 @@ public: m_speaker(*this, SPEAKER_TAG), m_cass(*this, CASSETTE_TAG), m_tms9918(*this, "tms9918" ) - { } + , + m_maincpu(*this, "maincpu") { } required_device m_tms9980a; required_device m_speaker; @@ -153,6 +154,7 @@ private: void led_set(int number, bool state); void segment_set(int offset, bool state); void digitsel(int offset, bool state); + required_device m_maincpu; }; diff --git a/src/mess/drivers/tricep.c b/src/mess/drivers/tricep.c index 1b733fc754e..34e9f13808b 100644 --- a/src/mess/drivers/tricep.c +++ b/src/mess/drivers/tricep.c @@ -60,7 +60,7 @@ void tricep_state::machine_reset() memcpy((UINT8*)m_p_ram.target(),user1,0x2000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } WRITE8_MEMBER( tricep_state::kbd_put ) diff --git a/src/mess/drivers/tsispch.c b/src/mess/drivers/tsispch.c index abad5d27b89..fea33b7c5ce 100644 --- a/src/mess/drivers/tsispch.c +++ b/src/mess/drivers/tsispch.c @@ -170,7 +170,7 @@ static GENERIC_TERMINAL_INTERFACE( tsispch_terminal_intf ) *****************************************************************************/ WRITE_LINE_MEMBER(tsispch_state::pic8259_set_int_line) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } static const struct pic8259_interface pic8259_config = @@ -272,7 +272,7 @@ void tsispch_state::machine_reset() int i; for (i=0; i<32; i++) m_infifo[i] = 0; m_infifo_tail_ptr = m_infifo_head_ptr = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(tsispch_state::irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(tsispch_state::irq_callback),this)); fprintf(stderr,"machine reset\n"); } diff --git a/src/mess/drivers/tutor.c b/src/mess/drivers/tutor.c index f137c66c81e..38dbff07233 100644 --- a/src/mess/drivers/tutor.c +++ b/src/mess/drivers/tutor.c @@ -406,7 +406,7 @@ WRITE8_MEMBER( tutor_state::tutor_mapper_w ) TIMER_CALLBACK_MEMBER(tutor_state::tape_interrupt_handler) { //assert(m_tape_interrupt_enable); - machine().device("maincpu")->execute().set_input_line(1, (m_cass->input() > 0.0) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(1, (m_cass->input() > 0.0) ? ASSERT_LINE : CLEAR_LINE); } /* CRU handler */ @@ -442,7 +442,7 @@ WRITE8_MEMBER( tutor_state::tutor_cassette_w ) else { m_tape_interrupt_timer->adjust(attotime::never); - machine().device("maincpu")->execute().set_input_line(1, CLEAR_LINE); + m_maincpu->set_input_line(1, CLEAR_LINE); } } break; diff --git a/src/mess/drivers/tx0.c b/src/mess/drivers/tx0.c index ead3d807319..c4f10ff48bb 100644 --- a/src/mess/drivers/tx0.c +++ b/src/mess/drivers/tx0.c @@ -648,20 +648,20 @@ TIMER_CALLBACK_MEMBER(tx0_state::reader_callback) if (data & 0100) { /* read current AC */ - ac = machine().device("maincpu")->state().state_int(TX0_AC); + ac = m_maincpu->state_int(TX0_AC); /* cycle right */ ac = (ac >> 1) | ((ac & 1) << 17); /* shuffle and insert data into AC */ ac = (ac /*& 0333333*/) | ((data & 001) << 17) | ((data & 002) << 13) | ((data & 004) << 9) | ((data & 010) << 5) | ((data & 020) << 1) | ((data & 040) >> 3); /* write modified AC */ - machine().device("maincpu")->state().set_state_int(TX0_AC, ac); + m_maincpu->set_state_int(TX0_AC, ac); m_tape_reader.rc = (m_tape_reader.rc+1) & 3; if (m_tape_reader.rc == 0) { /* IO complete */ m_tape_reader.rcl = 0; - machine().device("maincpu")->state().set_state_int(TX0_IO_COMPLETE, (UINT64)0); + m_maincpu->set_state_int(TX0_IO_COMPLETE, (UINT64)0); } } } @@ -697,7 +697,7 @@ void tx0_punchtape_image_device::call_unload() TIMER_CALLBACK_MEMBER(tx0_state::puncher_callback) { - machine().device("maincpu")->state().set_state_int(TX0_IO_COMPLETE, (UINT64)0); + m_maincpu->set_state_int(TX0_IO_COMPLETE, (UINT64)0); } /* @@ -792,7 +792,7 @@ static void typewriter_out(running_machine &machine, UINT8 data) */ TIMER_CALLBACK_MEMBER(tx0_state::prt_callback) { - machine().device("maincpu")->state().set_state_int(TX0_IO_COMPLETE, (UINT64)0); + m_maincpu->set_state_int(TX0_IO_COMPLETE, (UINT64)0); } /* @@ -819,7 +819,7 @@ static void tx0_io_prt(device_t *device) */ TIMER_CALLBACK_MEMBER(tx0_state::dis_callback) { - machine().device("maincpu")->state().set_state_int(TX0_IO_COMPLETE, (UINT64)0); + m_maincpu->set_state_int(TX0_IO_COMPLETE, (UINT64)0); } /* @@ -937,7 +937,7 @@ void tx0_magtape_image_device::call_unload() if ((state->m_magtape.state == MTS_SELECTED) || ((state->m_magtape.state == MTS_SELECTING) && (state->m_magtape.command == 2))) { /* unit has become unavailable */ state->m_magtape.state = MTS_UNSELECTING; - machine().device("maincpu")->state().set_state_int(TX0_PF, machine().device("maincpu")->state().state_int(TX0_PF) | PF_RWC); + state->m_maincpu->set_state_int(TX0_PF, state->m_maincpu->state_int(TX0_PF) | PF_RWC); schedule_unselect(state); } } @@ -1515,31 +1515,31 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt) if (control_transitions & tx0_stop_cyc0) { - machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC0, !machine().device("maincpu")->state().state_int(TX0_STOP_CYC0)); + m_maincpu->set_state_int(TX0_STOP_CYC0, !m_maincpu->state_int(TX0_STOP_CYC0)); } if (control_transitions & tx0_stop_cyc1) { - machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC1, !machine().device("maincpu")->state().state_int(TX0_STOP_CYC1)); + m_maincpu->set_state_int(TX0_STOP_CYC1, !m_maincpu->state_int(TX0_STOP_CYC1)); } if (control_transitions & tx0_gbl_cm_sel) { - machine().device("maincpu")->state().set_state_int(TX0_GBL_CM_SEL, !machine().device("maincpu")->state().state_int(TX0_GBL_CM_SEL)); + m_maincpu->set_state_int(TX0_GBL_CM_SEL, !m_maincpu->state_int(TX0_GBL_CM_SEL)); } if (control_transitions & tx0_stop) { - machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0); - machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0); + m_maincpu->set_state_int(TX0_RUN, (UINT64)0); + m_maincpu->set_state_int(TX0_RIM, (UINT64)0); } if (control_transitions & tx0_restart) { - machine().device("maincpu")->state().set_state_int(TX0_RUN, 1); - machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0); + m_maincpu->set_state_int(TX0_RUN, 1); + m_maincpu->set_state_int(TX0_RIM, (UINT64)0); } if (control_transitions & tx0_read_in) { /* set cpu to read instructions from perforated tape */ - machine().device("maincpu")->state().set_state_int(TX0_RESET, (UINT64)0); - machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0); - machine().device("maincpu")->state().set_state_int(TX0_RIM, 1); + m_maincpu->set_state_int(TX0_RESET, (UINT64)0); + m_maincpu->set_state_int(TX0_RUN, (UINT64)0); + m_maincpu->set_state_int(TX0_RIM, 1); } if (control_transitions & tx0_toggle_dn) { @@ -1557,16 +1557,16 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt) { if (m_tsr_index >= 2) { - UINT32 cm_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_CM_SEL); - machine().device("maincpu")->state().set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (m_tsr_index - 2))); + UINT32 cm_sel = (UINT32) m_maincpu->state_int(TX0_CM_SEL); + m_maincpu->set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (m_tsr_index - 2))); } } if (control_transitions & tx0_lr_sel) { if (m_tsr_index >= 2) { - UINT32 lr_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_LR_SEL); - machine().device("maincpu")->state().set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (m_tsr_index - 2)))); + UINT32 lr_sel = (UINT32) m_maincpu->state_int(TX0_LR_SEL); + m_maincpu->set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (m_tsr_index - 2)))); } } @@ -1582,7 +1582,7 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt) /* update toggle switch register */ if (tsr_transitions) - machine().device("maincpu")->state().set_state_int(TX0_TBR+m_tsr_index, machine().device("maincpu")->state().state_int(TX0_TBR+m_tsr_index) ^ tsr_transitions); + m_maincpu->set_state_int(TX0_TBR+m_tsr_index, m_maincpu->state_int(TX0_TBR+m_tsr_index) ^ tsr_transitions); /* remember new state of toggle switch register keys */ m_old_tsr_keys = tsr_keys; diff --git a/src/mess/drivers/uknc.c b/src/mess/drivers/uknc.c index 542c83238f9..f3a258bf0e4 100644 --- a/src/mess/drivers/uknc.c +++ b/src/mess/drivers/uknc.c @@ -14,11 +14,13 @@ class uknc_state : public driver_device { public: uknc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/unior.c b/src/mess/drivers/unior.c index f3819b1a353..03a7a24b082 100644 --- a/src/mess/drivers/unior.c +++ b/src/mess/drivers/unior.c @@ -42,7 +42,8 @@ class unior_state : public driver_device public: unior_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_p_videoram(*this, "p_videoram"){ } + m_p_videoram(*this, "p_videoram"), + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(vram_w); DECLARE_WRITE8_MEMBER(unior_4c_w); @@ -59,6 +60,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; READ8_MEMBER( unior_state::unior_4c_r ) @@ -241,7 +243,7 @@ INPUT_PORTS_END void unior_state::machine_reset() { - machine().device("maincpu")->state().set_state_int(I8085_PC, 0xF800); + m_maincpu->set_state_int(I8085_PC, 0xF800); } void unior_state::video_start() diff --git a/src/mess/drivers/unistar.c b/src/mess/drivers/unistar.c index 30fd828ba64..b31bb75b1ac 100644 --- a/src/mess/drivers/unistar.c +++ b/src/mess/drivers/unistar.c @@ -14,11 +14,13 @@ class unistar_state : public driver_device { public: unistar_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/vboy.c b/src/mess/drivers/vboy.c index a2d3d177318..b3a80576e3b 100644 --- a/src/mess/drivers/vboy.c +++ b/src/mess/drivers/vboy.c @@ -1374,8 +1374,8 @@ DEVICE_IMAGE_LOAD_MEMBER( vboy_state, vboy_cart ) { state->m_nvptr = (UINT8 *)&state->m_vboy_sram; - image.device().machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x06000000, 0x0600ffff, read32_delegate(FUNC(vboy_state::sram_r),state)); - image.device().machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x06000000, 0x0600ffff, write32_delegate(FUNC(vboy_state::sram_w),state)); + state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x06000000, 0x0600ffff, read32_delegate(FUNC(vboy_state::sram_r),state)); + state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x06000000, 0x0600ffff, write32_delegate(FUNC(vboy_state::sram_w),state)); image.battery_load(state->m_nvptr, 0x10000, 0x00); state->m_nvimage = image; diff --git a/src/mess/drivers/vector4.c b/src/mess/drivers/vector4.c index c1b5dcd9e98..755b366a7e9 100644 --- a/src/mess/drivers/vector4.c +++ b/src/mess/drivers/vector4.c @@ -74,7 +74,7 @@ INPUT_PORTS_END void vector4_state::machine_reset() { m_term_data = 0; - machine().device("maincpu")->state().set_state_int(Z80_PC, 0xe000); + m_maincpu->set_state_int(Z80_PC, 0xe000); } WRITE8_MEMBER( vector4_state::kbd_put ) diff --git a/src/mess/drivers/vg5k.c b/src/mess/drivers/vg5k.c index fa08091af59..6689ec8ca1d 100644 --- a/src/mess/drivers/vg5k.c +++ b/src/mess/drivers/vg5k.c @@ -279,13 +279,13 @@ INPUT_PORTS_END TIMER_CALLBACK_MEMBER(vg5k_state::z80_irq_clear) { - machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(vg5k_state::z80_irq) { - machine().device("maincpu")->execute().set_input_line(0, ASSERT_LINE); + m_maincpu->set_input_line(0, ASSERT_LINE); machine().scheduler().timer_set(attotime::from_usec(100), timer_expired_delegate(FUNC(vg5k_state::z80_irq_clear),this)); } @@ -338,7 +338,7 @@ DRIVER_INIT_MEMBER(vg5k_state,vg5k) /* install expansion memory*/ - address_space &program = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 *ram = machine().device(RAM_TAG)->pointer(); UINT16 ram_size = machine().device(RAM_TAG)->size(); diff --git a/src/mess/drivers/vii.c b/src/mess/drivers/vii.c index 73294992b15..11fa66eefce 100644 --- a/src/mess/drivers/vii.c +++ b/src/mess/drivers/vii.c @@ -523,7 +523,7 @@ WRITE16_MEMBER( vii_state::vii_video_w ) VII_VIDEO_IRQ_STATUS &= ~data; if(!VII_VIDEO_IRQ_STATUS) { - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, CLEAR_LINE); + m_maincpu->set_input_line(UNSP_IRQ0_LINE, CLEAR_LINE); } break; @@ -687,7 +687,7 @@ READ16_MEMBER( vii_state::vii_io_r ) break; case 0x2f: // Data Segment - val = machine().device("maincpu")->state().state_int(UNSP_SR) >> 10; + val = m_maincpu->state_int(UNSP_SR) >> 10; verboselog(3, "vii_io_r: Data Segment = %04x (%04x)\n", val, mem_mask); break; @@ -764,7 +764,7 @@ WRITE16_MEMBER( vii_state::vii_io_w ) COMBINE_DATA(&VII_CTLR_IRQ_ENABLE); if(!VII_CTLR_IRQ_ENABLE) { - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, CLEAR_LINE); + m_maincpu->set_input_line(UNSP_IRQ3_LINE, CLEAR_LINE); } break; @@ -773,13 +773,13 @@ WRITE16_MEMBER( vii_state::vii_io_w ) m_io_regs[0x22] &= ~data; if(!m_io_regs[0x22]) { - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, CLEAR_LINE); + m_maincpu->set_input_line(UNSP_IRQ3_LINE, CLEAR_LINE); } break; case 0x2f: // Data Segment - temp = machine().device("maincpu")->state().state_int(UNSP_SR); - machine().device("maincpu")->state().set_state_int(UNSP_SR, (temp & 0x03ff) | ((data & 0x3f) << 10)); + temp = m_maincpu->state_int(UNSP_SR); + m_maincpu->set_state_int(UNSP_SR, (temp & 0x03ff) | ((data & 0x3f) << 10)); verboselog(3, "vii_io_w: Data Segment = %04x (%04x)\n", data, mem_mask); break; @@ -1059,17 +1059,17 @@ INTERRUPT_GEN_MEMBER(vii_state::vii_vblank) if(VII_VIDEO_IRQ_STATUS) { verboselog(0, "Video IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE); } // { // verboselog(0, "audio 1 IRQ\n"); -// machine().device("maincpu")->execute().set_input_line(UNSP_IRQ1_LINE, ASSERT_LINE); +// m_maincpu->set_input_line(UNSP_IRQ1_LINE, ASSERT_LINE); // } if(m_io_regs[0x22] & m_io_regs[0x21] & 0x0c00) { verboselog(0, "timerA, timer B IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ2_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ2_LINE, ASSERT_LINE); } //if(m_io_regs[0x22] & m_io_regs[0x21] & 0x2100) @@ -1077,27 +1077,27 @@ INTERRUPT_GEN_MEMBER(vii_state::vii_vblank) if(VII_CTLR_IRQ_ENABLE) { verboselog(0, "UART, ADC IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE); } // { // verboselog(0, "audio 4 IRQ\n"); -// machine().device("maincpu")->execute().set_input_line(UNSP_IRQ4_LINE, ASSERT_LINE); +// m_maincpu->set_input_line(UNSP_IRQ4_LINE, ASSERT_LINE); // } if(m_io_regs[0x22] & m_io_regs[0x21] & 0x1200) { verboselog(0, "External IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ5_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ5_LINE, ASSERT_LINE); } if(m_io_regs[0x22] & m_io_regs[0x21] & 0x0070) { verboselog(0, "1024Hz, 2048HZ, 4096HZ IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ6_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ6_LINE, ASSERT_LINE); } if(m_io_regs[0x22] & m_io_regs[0x21] & 0x008b) { verboselog(0, "TMB1, TMB2, 4Hz, key change IRQ\n"); - machine().device("maincpu")->execute().set_input_line(UNSP_IRQ7_LINE, ASSERT_LINE); + m_maincpu->set_input_line(UNSP_IRQ7_LINE, ASSERT_LINE); } } diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c index 25f70c63cba..aa6f92cefa2 100644 --- a/src/mess/drivers/vt100.c +++ b/src/mess/drivers/vt100.c @@ -135,7 +135,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(vt100_state::keyboard_callback) { m_keyboard_int = 1; m_key_code = i | bit_sel(code); - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); break; } } @@ -364,7 +364,7 @@ void vt100_state::machine_reset() m_key_scan = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vt100_state::vt100_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vt100_state::vt100_irq_callback),this)); } READ8_MEMBER( vt100_state::vt100_read_video_ram_r ) diff --git a/src/mess/drivers/vt220.c b/src/mess/drivers/vt220.c index 32ff0ebe55f..c314aeee99a 100644 --- a/src/mess/drivers/vt220.c +++ b/src/mess/drivers/vt220.c @@ -15,11 +15,13 @@ class vt220_state : public driver_device { public: vt220_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/drivers/vt240.c b/src/mess/drivers/vt240.c index fad1b65ae50..9db93dffff5 100644 --- a/src/mess/drivers/vt240.c +++ b/src/mess/drivers/vt240.c @@ -96,7 +96,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) /* presumably communication with T11 */ READ8_MEMBER( vt240_state::test_r ) { - //machine().device("maincpu")->execute().set_input_line(I8085_RST65_LINE, CLEAR_LINE); + //m_maincpu->set_input_line(I8085_RST65_LINE, CLEAR_LINE); return rand(); } diff --git a/src/mess/drivers/vt320.c b/src/mess/drivers/vt320.c index afd8a6d6817..dbe1541cb1d 100644 --- a/src/mess/drivers/vt320.c +++ b/src/mess/drivers/vt320.c @@ -15,11 +15,13 @@ class vt320_state : public driver_device { public: vt320_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; /* diff --git a/src/mess/drivers/vt520.c b/src/mess/drivers/vt520.c index c5e80390b3a..a584a46ba3f 100644 --- a/src/mess/drivers/vt520.c +++ b/src/mess/drivers/vt520.c @@ -15,12 +15,14 @@ class vt520_state : public driver_device { public: vt520_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(vt520_some_r); virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; @@ -53,7 +55,7 @@ INPUT_PORTS_END void vt520_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *rom = memregion("maincpu")->base(); space.unmap_write(0x0000, 0xffff); membank("bank1")->set_base(rom + 0x70000); diff --git a/src/mess/drivers/vtech1.c b/src/mess/drivers/vtech1.c index 1adb2813282..35b7898b177 100644 --- a/src/mess/drivers/vtech1.c +++ b/src/mess/drivers/vtech1.c @@ -160,7 +160,8 @@ public: m_mc6847(*this, "mc6847"), m_speaker(*this, SPEAKER_TAG), m_cassette(*this, CASSETTE_TAG), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } /* devices */ required_device m_mc6847; @@ -201,6 +202,7 @@ public: DECLARE_READ8_MEMBER(vtech1_mc6847_videoram_r); void vtech1_get_track(); void vtech1_put_track(); + required_device m_maincpu; }; @@ -623,7 +625,7 @@ READ8_MEMBER(vtech1_state::vtech1_mc6847_videoram_r) DRIVER_INIT_MEMBER(vtech1_state,vtech1) { - address_space &prg = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &prg = m_maincpu->space(AS_PROGRAM); int id; /* ram */ @@ -676,7 +678,7 @@ DRIVER_INIT_MEMBER(vtech1_state,vtech1) DRIVER_INIT_MEMBER(vtech1_state,vtech1h) { - address_space &prg = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &prg = m_maincpu->space(AS_PROGRAM); DRIVER_INIT_CALL(vtech1); diff --git a/src/mess/drivers/vtech2.c b/src/mess/drivers/vtech2.c index 2ef659ed838..a063b08ebe0 100644 --- a/src/mess/drivers/vtech2.c +++ b/src/mess/drivers/vtech2.c @@ -400,7 +400,7 @@ void vtech2_state::palette_init() INTERRUPT_GEN_MEMBER(vtech2_state::vtech2_interrupt) { - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } static const cassette_interface laser_cassette_interface = diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index 35d340e3adf..6eef24905a1 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -201,7 +201,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::mfp_update_irq) // if(m_mfp.iera & (1 << x)) { m_current_vector[6] = (m_mfp.vr & 0xf0) | (x+8); - machine().device("maincpu")->execute().set_input_line_and_vector(m_mfp.irqline,ASSERT_LINE,(m_mfp.vr & 0xf0) | (x + 8)); + m_maincpu->set_input_line_and_vector(m_mfp.irqline,ASSERT_LINE,(m_mfp.vr & 0xf0) | (x + 8)); // logerror("MFP: Sent IRQ vector 0x%02x (IRQ line %i)\n",(m_mfp.vr & 0xf0) | (x+8),m_mfp.irqline); return; // one at a time only } @@ -220,7 +220,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::mfp_update_irq) // if(m_mfp.ierb & (1 << x)) { m_current_vector[6] = (m_mfp.vr & 0xf0) | x; - machine().device("maincpu")->execute().set_input_line_and_vector(m_mfp.irqline,ASSERT_LINE,(m_mfp.vr & 0xf0) | x); + m_maincpu->set_input_line_and_vector(m_mfp.irqline,ASSERT_LINE,(m_mfp.vr & 0xf0) | x); // logerror("MFP: Sent IRQ vector 0x%02x (IRQ line %i)\n",(m_mfp.vr & 0xf0) | x,m_mfp.irqline); return; // one at a time only } @@ -442,7 +442,7 @@ void x68k_state::x68k_keyboard_push_scancode(unsigned char code) if(machine().root_device().ioport("options")->read() & 0x01) { m_current_vector[6] = 0x4c; - machine().device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x4c); + m_maincpu->set_input_line_and_vector(6,ASSERT_LINE,0x4c); logerror("MFP: Receive buffer full IRQ sent\n"); } } @@ -637,7 +637,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_scc_ack) m_mouse.irqactive = 1; m_current_vector[5] = 0x54; m_current_irq_line = 5; - machine().device("maincpu")->execute().set_input_line_and_vector(5,ASSERT_LINE,0x54); + m_maincpu->set_input_line_and_vector(5,ASSERT_LINE,0x54); } } } @@ -1035,7 +1035,7 @@ void x68k_state::fdc_irq(bool state) m_ioc.irqstatus |= 0x80; m_current_irq_line = 1; logerror("FDC: IRQ triggered\n"); - machine().device("maincpu")->execute().set_input_line_and_vector(1, ASSERT_LINE, m_current_vector[1]); + m_maincpu->set_input_line_and_vector(1, ASSERT_LINE, m_current_vector[1]); } } @@ -1614,8 +1614,8 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_bus_error) v = 0x09; if(ram[v] != 0x02) // normal vector for bus errors points to 02FF0540 { - machine().device("maincpu")->execute().set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); + m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); + m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); popmessage("Bus error: Unused RAM access [%08x]", val); } } @@ -1626,7 +1626,7 @@ READ16_MEMBER(x68k_state::x68k_rom0_r) then access causes a bus error */ m_current_vector[2] = 0x02; // bus error m_current_irq_line = 2; -// machine().device("maincpu")->execute().set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); +// m_maincpu->set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); if(ioport("options")->read() & 0x02) { offset *= 2; @@ -1643,7 +1643,7 @@ WRITE16_MEMBER(x68k_state::x68k_rom0_w) then access causes a bus error */ m_current_vector[2] = 0x02; // bus error m_current_irq_line = 2; -// machine().device("maincpu")->execute().set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); +// m_maincpu->set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); if(ioport("options")->read() & 0x02) { offset *= 2; @@ -1659,7 +1659,7 @@ READ16_MEMBER(x68k_state::x68k_emptyram_r) Often a method for detecting amount of installed RAM, is to read or write at 1MB intervals, until a bus error occurs */ m_current_vector[2] = 0x02; // bus error m_current_irq_line = 2; -// machine().device("maincpu")->execute().set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); +// m_maincpu->set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); if(ioport("options")->read() & 0x02) { offset *= 2; @@ -1676,7 +1676,7 @@ WRITE16_MEMBER(x68k_state::x68k_emptyram_w) Often a method for detecting amount of installed RAM, is to read or write at 1MB intervals, until a bus error occurs */ m_current_vector[2] = 0x02; // bus error m_current_irq_line = 2; -// machine().device("maincpu")->execute().set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); +// m_maincpu->set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); if(ioport("options")->read() & 0x02) { offset *= 2; @@ -1796,7 +1796,7 @@ WRITE_LINE_MEMBER(x68k_state::mfp_irq_callback) state = HOLD_LINE; // to get around erroneous spurious interrupt // if((m_ioc.irqstatus & 0xc0) != 0) // if the FDC is busy, then we don't want to miss that IRQ // return; - machine().device("maincpu")->execute().set_input_line(6, state); + m_maincpu->set_input_line(6, state); m_current_vector[6] = 0; m_mfp_prev = state; } @@ -1828,12 +1828,12 @@ IRQ_CALLBACK_MEMBER(x68k_state::x68k_int_ack) if(m_current_vector[6] != 0x4b && m_current_vector[6] != 0x4c) m_current_vector[6] = m_mfpdev->get_vector(); else - machine().device("maincpu")->execute().set_input_line_and_vector(irqline,CLEAR_LINE,m_current_vector[irqline]); + m_maincpu->set_input_line_and_vector(irqline,CLEAR_LINE,m_current_vector[irqline]); logerror("SYS: IRQ acknowledged (vector=0x%02x, line = %i)\n",m_current_vector[6],irqline); return m_current_vector[6]; } - machine().device("maincpu")->execute().set_input_line_and_vector(irqline,CLEAR_LINE,m_current_vector[irqline]); + m_maincpu->set_input_line_and_vector(irqline,CLEAR_LINE,m_current_vector[irqline]); if(irqline == 1) // IOSC { m_ioc.irqstatus &= ~0xf0; @@ -1854,7 +1854,7 @@ WRITE_LINE_MEMBER(x68k_state::x68k_scsi_irq) { m_current_vector[1] = 0x6c; m_current_irq_line = 1; - machine().device("maincpu")->execute().set_input_line_and_vector(1,ASSERT_LINE,m_current_vector[1]); + m_maincpu->set_input_line_and_vector(1,ASSERT_LINE,m_current_vector[1]); } } @@ -2353,7 +2353,7 @@ void x68k_state::floppy_load_unload() m_current_vector[1] = 0x61; m_ioc.irqstatus |= 0x40; m_current_irq_line = 1; - machine().device("maincpu")->execute().set_input_line_and_vector(1,ASSERT_LINE,m_current_vector[1]); // Disk insert/eject interrupt + m_maincpu->set_input_line_and_vector(1,ASSERT_LINE,m_current_vector[1]); // Disk insert/eject interrupt logerror("IOC: Disk image inserted\n"); } } @@ -2373,7 +2373,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_net_irq) { m_current_vector[2] = 0xf9; m_current_irq_line = 2; - machine().device("maincpu")->execute().set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); + m_maincpu->set_input_line_and_vector(2,ASSERT_LINE,m_current_vector[2]); } WRITE_LINE_MEMBER(x68k_state::x68k_irq2_line) @@ -2383,7 +2383,7 @@ WRITE_LINE_MEMBER(x68k_state::x68k_irq2_line) m_net_timer->adjust(attotime::from_usec(16)); } else - machine().device("maincpu")->execute().set_input_line_and_vector(2,CLEAR_LINE,m_current_vector[2]); + m_maincpu->set_input_line_and_vector(2,CLEAR_LINE,m_current_vector[2]); logerror("EXP: IRQ2 set to %i\n",state); } @@ -2465,12 +2465,12 @@ MACHINE_RESET_MEMBER(x68k_state,x68000) } // reset CPU - machine().device("maincpu")->reset(); + m_maincpu->reset(); } MACHINE_START_MEMBER(x68k_state,x68000) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); /* Install RAM handlers */ m_spriteram = (UINT16*)(*memregion("user1")); space.install_read_handler(0x000000,0xbffffb,0xffffffff,0,read16_delegate(FUNC(x68k_state::x68k_emptyram_r),this)); @@ -2517,7 +2517,7 @@ MACHINE_START_MEMBER(x68k_state,x68000) MACHINE_START_MEMBER(x68k_state,x68030) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); /* Install RAM handlers */ m_spriteram = (UINT16*)(*memregion("user1")); space.install_read_handler(0x000000,0xbffffb,0xffffffff,0,read16_delegate(FUNC(x68k_state::x68k_rom0_r),this),0xffffffff); @@ -2585,7 +2585,7 @@ DRIVER_INIT_MEMBER(x68k_state,x68000) mfp_init(); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(x68k_state::x68k_int_ack),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(x68k_state::x68k_int_ack),this)); // init keyboard m_keyboard.delay = 500; // 3*100+200 diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index d84e7609995..d53981c1c8e 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -752,7 +752,7 @@ void z100_state::palette_init() void z100_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(z100_state::z100_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(z100_state::z100_irq_callback),this)); m_mc6845 = machine().device("crtc"); } diff --git a/src/mess/drivers/z1013.c b/src/mess/drivers/z1013.c index 37da283a42e..9e7df4f5efb 100644 --- a/src/mess/drivers/z1013.c +++ b/src/mess/drivers/z1013.c @@ -257,7 +257,7 @@ UINT32 z1013_state::screen_update_z1013(screen_device &screen, bitmap_ind16 &bit void z1013_state::machine_reset() { - machine().device("maincpu")->state().set_state_int(Z80_PC, 0xF000); + m_maincpu->set_state_int(Z80_PC, 0xF000); m_keyboard_part = 0; m_keyboard_line = 0; } diff --git a/src/mess/drivers/zrt80.c b/src/mess/drivers/zrt80.c index d990b78026a..0493b600fcc 100644 --- a/src/mess/drivers/zrt80.c +++ b/src/mess/drivers/zrt80.c @@ -52,7 +52,7 @@ public: READ8_MEMBER( zrt80_state::zrt80_10_r ) { UINT8 ret = m_term_data; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); return ret; } @@ -255,7 +255,7 @@ static const ins8250_interface zrt80_com_interface = WRITE8_MEMBER( zrt80_state::kbd_put ) { m_term_data = data; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } static ASCII_KEYBOARD_INTERFACE( keyboard_intf ) diff --git a/src/mess/includes/ac1.h b/src/mess/includes/ac1.h index ea327d8ddb7..89df64b9a3b 100644 --- a/src/mess/includes/ac1.h +++ b/src/mess/includes/ac1.h @@ -14,7 +14,8 @@ class ac1_state : public driver_device { public: ac1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } cassette_image_device *m_cassette; DECLARE_DRIVER_INIT(ac1); @@ -26,6 +27,7 @@ public: DECLARE_READ8_MEMBER(ac1_port_a_r); DECLARE_WRITE8_MEMBER(ac1_port_a_w); DECLARE_WRITE8_MEMBER(ac1_port_b_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/alesis.h b/src/mess/includes/alesis.h index db3ce2ff28c..138a812883f 100644 --- a/src/mess/includes/alesis.h +++ b/src/mess/includes/alesis.h @@ -62,8 +62,8 @@ public: alesis_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_lcdc(*this, "hd44780"), - m_cassette(*this, CASSETTE_TAG) - { } + m_cassette(*this, CASSETTE_TAG), + m_maincpu(*this, "maincpu") { } required_device m_lcdc; optional_device m_cassette; @@ -83,6 +83,7 @@ public: private: UINT8 m_kb_matrix; UINT8 m_lcd_digits[5]; + required_device m_maincpu; }; // device type definition diff --git a/src/mess/includes/apple1.h b/src/mess/includes/apple1.h index f6dc90cf63d..e9744813305 100644 --- a/src/mess/includes/apple1.h +++ b/src/mess/includes/apple1.h @@ -31,7 +31,8 @@ class apple1_state : public driver_device { public: apple1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } int m_vh_clrscrn_pressed; int m_kbd_data; @@ -55,6 +56,7 @@ public: DECLARE_READ8_MEMBER(apple1_pia0_kbdin); DECLARE_WRITE8_MEMBER(apple1_pia0_dspout); DECLARE_WRITE8_MEMBER(apple1_pia0_dsp_write_signal); + required_device m_maincpu; }; diff --git a/src/mess/includes/arcadia.h b/src/mess/includes/arcadia.h index 555f50f6e51..3f12cced2ac 100644 --- a/src/mess/includes/arcadia.h +++ b/src/mess/includes/arcadia.h @@ -38,7 +38,8 @@ public: m_controller2_col2(*this, "controller2_col2"), m_controller2_col3(*this, "controller2_col3"), m_controller2_extra(*this, "controller2_extra"), - m_joysticks(*this, "joysticks") { } + m_joysticks(*this, "joysticks") , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(arcadia_vsync_r); DECLARE_READ8_MEMBER(arcadia_video_r); @@ -111,5 +112,6 @@ protected: void arcadia_vh_draw_line(int y, UINT8 chars1[16]); int arcadia_sprite_collision(int n1, int n2); void arcadia_draw_sprites(); + required_device m_maincpu; }; #endif /* ARCADIA_H_ */ diff --git a/src/mess/includes/at.h b/src/mess/includes/at.h index bc6bdb8e1ff..56118175578 100644 --- a/src/mess/includes/at.h +++ b/src/mess/includes/at.h @@ -75,7 +75,9 @@ class at586_state : public driver_device { public: at586_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } + required_device m_maincpu; }; class at_state : public driver_device diff --git a/src/mess/includes/bk.h b/src/mess/includes/bk.h index 7ac1de87cfb..c192b0f94aa 100644 --- a/src/mess/includes/bk.h +++ b/src/mess/includes/bk.h @@ -13,7 +13,8 @@ class bk_state : public driver_device public: bk_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_bk0010_video_ram(*this, "video_ram"){ } + m_bk0010_video_ram(*this, "video_ram"), + m_maincpu(*this, "maincpu") { } UINT16 m_scrool; required_shared_ptr m_bk0010_video_ram; @@ -39,6 +40,7 @@ public: UINT32 screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(keyboard_callback); IRQ_CALLBACK_MEMBER(bk0010_irq_callback); + required_device m_maincpu; }; #endif /* BK_H_ */ diff --git a/src/mess/includes/busicom.h b/src/mess/includes/busicom.h index d4ba01696fa..1ae7f4fb423 100644 --- a/src/mess/includes/busicom.h +++ b/src/mess/includes/busicom.h @@ -12,7 +12,8 @@ class busicom_state : public driver_device { public: busicom_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_drum_index; UINT16 m_keyboard_shifter; @@ -32,6 +33,7 @@ public: virtual void palette_init(); UINT32 screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); + required_device m_maincpu; }; #endif /* BUSICOM_H_ */ diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h index 560ab18fccb..4233573841c 100644 --- a/src/mess/includes/c65.h +++ b/src/mess/includes/c65.h @@ -64,8 +64,8 @@ public: m_kernal(*this, "kernal"), m_c65_chargen(*this, "c65_chargen"), m_interface(*this, "interface"), - m_roml_writable(0) - { } + m_roml_writable(0), + m_maincpu(*this, "maincpu") { } optional_device m_iec; @@ -142,6 +142,7 @@ public: DECLARE_DEVICE_IMAGE_LOAD_MEMBER( c64_cart ); DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( c64_cart ); DECLARE_WRITE_LINE_MEMBER(c65_cia0_interrupt); + required_device m_maincpu; }; diff --git a/src/mess/includes/cgenie.h b/src/mess/includes/cgenie.h index f5a6b6384cc..d0d9acf04de 100644 --- a/src/mess/includes/cgenie.h +++ b/src/mess/includes/cgenie.h @@ -40,7 +40,8 @@ public: cgenie_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_colorram(*this, "colorram"), - m_fontram(*this, "fontram"){ } + m_fontram(*this, "fontram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_colorram; required_shared_ptr m_fontram; @@ -77,6 +78,7 @@ public: DECLARE_WRITE_LINE_MEMBER(cgenie_fdc_intrq_w); DECLARE_READ8_MEMBER(cgenie_sh_control_port_r); DECLARE_WRITE8_MEMBER(cgenie_sh_control_port_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/channelf.h b/src/mess/includes/channelf.h index e3e21990128..7b32fdcdf75 100644 --- a/src/mess/includes/channelf.h +++ b/src/mess/includes/channelf.h @@ -29,7 +29,8 @@ class channelf_state : public driver_device public: channelf_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_custom(*this,"custom") { } + m_custom(*this,"custom") , + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(channelf_port_0_r); DECLARE_READ8_MEMBER(channelf_port_1_r); @@ -55,6 +56,7 @@ public: UINT32 screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( channelf_cart ); required_device m_custom; + required_device m_maincpu; }; #endif /* CHANNELF_H_ */ diff --git a/src/mess/includes/comquest.h b/src/mess/includes/comquest.h index 9d087b4355a..a8fa9b2d540 100644 --- a/src/mess/includes/comquest.h +++ b/src/mess/includes/comquest.h @@ -12,7 +12,8 @@ class comquest_state : public driver_device { public: comquest_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_data[128][8]; void *m_timer; @@ -25,6 +26,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; #endif /* COMQUEST_H_ */ diff --git a/src/mess/includes/concept.h b/src/mess/includes/concept.h index 1f99adace3d..4ccfe8832cd 100644 --- a/src/mess/includes/concept.h +++ b/src/mess/includes/concept.h @@ -41,7 +41,8 @@ public: : driver_device(mconfig, type, tag), m_acia0(*this, ACIA_0_TAG), m_acia1(*this, ACIA_1_TAG), - m_videoram(*this,"videoram") { } + m_videoram(*this,"videoram") , + m_maincpu(*this, "maincpu") { } required_device m_acia0; required_device m_acia1; @@ -84,6 +85,7 @@ public: DECLARE_WRITE8_MEMBER(via_out_cb2); DECLARE_WRITE_LINE_MEMBER(concept_fdc_intrq_w); DECLARE_WRITE_LINE_MEMBER(concept_fdc_drq_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/dai.h b/src/mess/includes/dai.h index 1466d064767..5c356e14a76 100644 --- a/src/mess/includes/dai.h +++ b/src/mess/includes/dai.h @@ -55,8 +55,8 @@ public: : driver_device(mconfig, type, tag), m_pit(*this, "pit8253"), m_tms5501(*this, "tms5501"), - m_sound(*this, "custom") - { } + m_sound(*this, "custom"), + m_maincpu(*this, "maincpu") { } required_device m_pit; required_device m_tms5501; @@ -83,6 +83,7 @@ public: UINT32 screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(dai_bootstrap_callback); TIMER_CALLBACK_MEMBER(dai_timer); + required_device m_maincpu; }; diff --git a/src/mess/includes/dgn_beta.h b/src/mess/includes/dgn_beta.h index 537d399ddf2..0d16e02610b 100644 --- a/src/mess/includes/dgn_beta.h +++ b/src/mess/includes/dgn_beta.h @@ -87,7 +87,8 @@ public: dgn_beta_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_mc6845(*this, "crtc"), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } required_device m_mc6845; required_shared_ptr m_videoram; @@ -193,6 +194,7 @@ public: /* WD2797 FDC */ DECLARE_READ8_HANDLER(dgnbeta_wd2797_r); DECLARE_WRITE8_HANDLER(dgnbeta_wd2797_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/electron.h b/src/mess/includes/electron.h index 0fab2781654..b61d564a5b5 100644 --- a/src/mess/includes/electron.h +++ b/src/mess/includes/electron.h @@ -55,7 +55,8 @@ class electron_state : public driver_device { public: electron_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } ULA m_ula; emu_timer *m_tape_timer; @@ -79,6 +80,7 @@ public: TIMER_CALLBACK_MEMBER(electron_tape_timer_handler); TIMER_CALLBACK_MEMBER(setup_beep); TIMER_CALLBACK_MEMBER(electron_scanline_interrupt); + required_device m_maincpu; }; diff --git a/src/mess/includes/enterp.h b/src/mess/includes/enterp.h index d906cfb517e..a02cd8e958e 100644 --- a/src/mess/includes/enterp.h +++ b/src/mess/includes/enterp.h @@ -20,7 +20,8 @@ class ep_state : public driver_device { public: ep_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 exdos_card_value; /* state of the wd1770 irq/drq lines */ UINT8 keyboard_line; /* index of keyboard line to read */ @@ -36,6 +37,7 @@ public: DECLARE_READ8_MEMBER(enterprise_dave_reg_read); DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_intrq_w); DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_drq_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/fm7.h b/src/mess/includes/fm7.h index 8b93cb623b4..0260b6588f2 100644 --- a/src/mess/includes/fm7.h +++ b/src/mess/includes/fm7.h @@ -104,8 +104,8 @@ public: fm7_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_shared_ram(*this, "shared_ram"), - m_boot_ram(*this, "boot_ram") - { } + m_boot_ram(*this, "boot_ram"), + m_maincpu(*this, "maincpu") { } optional_shared_ptr m_shared_ram; optional_shared_ptr m_boot_ram; @@ -253,6 +253,7 @@ public: IRQ_CALLBACK_MEMBER(fm7_irq_ack); IRQ_CALLBACK_MEMBER(fm7_sub_irq_ack); DECLARE_WRITE_LINE_MEMBER(fm77av_fmirq); + required_device m_maincpu; }; #endif /*FM7_H_*/ diff --git a/src/mess/includes/galeb.h b/src/mess/includes/galeb.h index c3e3d19cbf4..084e5e1a2ce 100644 --- a/src/mess/includes/galeb.h +++ b/src/mess/includes/galeb.h @@ -13,12 +13,14 @@ class galeb_state : public driver_device public: galeb_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_video_ram(*this, "video_ram"){ } + m_video_ram(*this, "video_ram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_video_ram; DECLARE_READ8_MEMBER(galeb_keyboard_r); virtual void video_start(); UINT32 screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; /*----------- defined in video/galeb.c -----------*/ diff --git a/src/mess/includes/gamepock.h b/src/mess/includes/gamepock.h index 35183171629..44319186693 100644 --- a/src/mess/includes/gamepock.h +++ b/src/mess/includes/gamepock.h @@ -13,7 +13,8 @@ class gamepock_state : public driver_device { public: gamepock_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } virtual void machine_reset(); @@ -31,6 +32,7 @@ public: DECLARE_READ8_MEMBER( port_c_r ); UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gamepock_cart); + required_device m_maincpu; }; diff --git a/src/mess/includes/gmaster.h b/src/mess/includes/gmaster.h index ecf687cf062..245bc3d3a12 100644 --- a/src/mess/includes/gmaster.h +++ b/src/mess/includes/gmaster.h @@ -21,7 +21,8 @@ class gmaster_state : public driver_device { public: gmaster_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } GMASTER_VIDEO m_video; GMASTER_MACHINE m_gmachine; @@ -33,6 +34,7 @@ public: virtual void palette_init(); UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(gmaster_interrupt); + required_device m_maincpu; }; diff --git a/src/mess/includes/hec2hrp.h b/src/mess/includes/hec2hrp.h index 0bf7db10f76..a2a9a78f056 100644 --- a/src/mess/includes/hec2hrp.h +++ b/src/mess/includes/hec2hrp.h @@ -73,7 +73,8 @@ public: hec2hrp_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_videoram(*this,"videoram"), - m_hector_videoram(*this,"hector_videoram") { } + m_hector_videoram(*this,"hector_videoram") , + m_maincpu(*this, "maincpu") { } optional_shared_ptr m_videoram; optional_shared_ptr m_hector_videoram; @@ -141,6 +142,7 @@ public: void disc2_fdc_interrupt(bool state); void disc2_fdc_dma_irq(bool state); + required_device m_maincpu; }; /*----------- defined in machine/hec2hrp.c -----------*/ diff --git a/src/mess/includes/hp48.h b/src/mess/includes/hp48.h index dbd4e7021ba..1a5ddaafc27 100644 --- a/src/mess/includes/hp48.h +++ b/src/mess/includes/hp48.h @@ -44,7 +44,8 @@ class hp48_state : public driver_device { public: hp48_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 *m_videoram; UINT8 m_io[64]; @@ -86,6 +87,7 @@ public: TIMER_CALLBACK_MEMBER(hp48_timer2_cb); void hp48_update_annunciators(); void hp48_apply_modules(); + required_device m_maincpu; }; diff --git a/src/mess/includes/kramermc.h b/src/mess/includes/kramermc.h index 59590db0582..8d5f8f9ac78 100644 --- a/src/mess/includes/kramermc.h +++ b/src/mess/includes/kramermc.h @@ -13,7 +13,8 @@ class kramermc_state : public driver_device { public: kramermc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_key_row; DECLARE_DRIVER_INIT(kramermc); @@ -23,6 +24,7 @@ public: DECLARE_READ8_MEMBER(kramermc_port_a_r); DECLARE_READ8_MEMBER(kramermc_port_b_r); DECLARE_WRITE8_MEMBER(kramermc_port_a_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/llc.h b/src/mess/includes/llc.h index 44bc6bf7efe..a48398cb9b9 100644 --- a/src/mess/includes/llc.h +++ b/src/mess/includes/llc.h @@ -22,7 +22,8 @@ public: llc_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_speaker(*this, SPEAKER_TAG), - m_p_videoram(*this, "videoram"){ } + m_p_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(llc2_rom_disable_w); DECLARE_WRITE8_MEMBER(llc2_basic_enable_w); @@ -53,6 +54,7 @@ public: DECLARE_MACHINE_RESET(llc2); UINT32 screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; diff --git a/src/mess/includes/lviv.h b/src/mess/includes/lviv.h index 33f4146f1d3..4be85d8a2ca 100644 --- a/src/mess/includes/lviv.h +++ b/src/mess/includes/lviv.h @@ -14,7 +14,8 @@ class lviv_state : public driver_device { public: lviv_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } unsigned char * m_video_ram; unsigned short m_colortable[1][4]; @@ -40,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(lviv_ppi_1_porta_w); DECLARE_WRITE8_MEMBER(lviv_ppi_1_portb_w); DECLARE_WRITE8_MEMBER(lviv_ppi_1_portc_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/lynx.h b/src/mess/includes/lynx.h index 96a95f3e2a2..31179009587 100644 --- a/src/mess/includes/lynx.h +++ b/src/mess/includes/lynx.h @@ -101,7 +101,8 @@ public: m_mem_fc00(*this, "mem_fc00"), m_mem_fd00(*this, "mem_fd00"), m_mem_fe00(*this, "mem_fe00"), - m_mem_fffa(*this, "mem_fffa"){ } + m_mem_fffa(*this, "mem_fffa"), + m_maincpu(*this, "maincpu") { } virtual void video_start(); @@ -146,6 +147,7 @@ public: TIMER_CALLBACK_MEMBER(lynx_uart_timer); void lynx_postload(); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( lynx_cart ); + required_device m_maincpu; }; diff --git a/src/mess/includes/mboard.h b/src/mess/includes/mboard.h index ca25aa49365..553d7fe8782 100644 --- a/src/mess/includes/mboard.h +++ b/src/mess/includes/mboard.h @@ -40,7 +40,8 @@ class mboard_state : public driver_device { public: mboard_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER(mboard_read_board_8); DECLARE_WRITE8_MEMBER(mboard_write_board_8); @@ -91,6 +92,8 @@ private: void clear_board(); void set_artwork(); void check_board_buttons(); +public: + required_device m_maincpu; }; diff --git a/src/mess/includes/mc80.h b/src/mess/includes/mc80.h index a56e87780c2..6b6e51f14ff 100644 --- a/src/mess/includes/mc80.h +++ b/src/mess/includes/mc80.h @@ -18,7 +18,8 @@ class mc80_state : public driver_device public: mc80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_p_videoram(*this, "videoram"){ } + m_p_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } DECLARE_WRITE8_MEMBER(mc8030_zve_write_protect_w); DECLARE_WRITE8_MEMBER(mc8030_vis_w); @@ -48,6 +49,7 @@ public: DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); IRQ_CALLBACK_MEMBER(mc8020_irq_callback); IRQ_CALLBACK_MEMBER(mc8030_irq_callback); + required_device m_maincpu; }; diff --git a/src/mess/includes/microtan.h b/src/mess/includes/microtan.h index 3f8a8947b9a..dcc17198910 100644 --- a/src/mess/includes/microtan.h +++ b/src/mess/includes/microtan.h @@ -24,7 +24,8 @@ class microtan_state : public driver_device public: microtan_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_videoram; UINT8 m_chunky_graphics; @@ -77,6 +78,7 @@ public: DECLARE_WRITE8_MEMBER(via_1_out_cb2); DECLARE_WRITE_LINE_MEMBER(via_0_irq); DECLARE_WRITE_LINE_MEMBER(via_1_irq); + required_device m_maincpu; }; diff --git a/src/mess/includes/mikro80.h b/src/mess/includes/mikro80.h index 3037deca355..2e1d819d895 100644 --- a/src/mess/includes/mikro80.h +++ b/src/mess/includes/mikro80.h @@ -30,7 +30,8 @@ public: m_io_line5(*this, "LINE5"), m_io_line6(*this, "LINE6"), m_io_line7(*this, "LINE7"), - m_io_line8(*this, "LINE8") { } + m_io_line8(*this, "LINE8") , + m_maincpu(*this, "maincpu") { } required_shared_ptr m_cursor_ram; required_shared_ptr m_video_ram; @@ -66,6 +67,7 @@ protected: required_ioport m_io_line6; required_ioport m_io_line7; required_ioport m_io_line8; + required_device m_maincpu; }; diff --git a/src/mess/includes/mz700.h b/src/mess/includes/mz700.h index 0e4a6b6feae..f95217907e9 100644 --- a/src/mess/includes/mz700.h +++ b/src/mess/includes/mz700.h @@ -21,7 +21,8 @@ class mz_state : public driver_device { public: mz_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } int m_mz700; /* 1 if running on an mz700 */ @@ -91,6 +92,7 @@ public: DECLARE_WRITE8_MEMBER(pio_port_c_w); DECLARE_READ8_MEMBER(mz800_z80pio_port_a_r); DECLARE_WRITE8_MEMBER(mz800_z80pio_port_a_w); + required_device m_maincpu; }; diff --git a/src/mess/includes/nascom1.h b/src/mess/includes/nascom1.h index 0b1d2d4c2dd..7bd25b89e17 100644 --- a/src/mess/includes/nascom1.h +++ b/src/mess/includes/nascom1.h @@ -29,7 +29,8 @@ class nascom1_state : public driver_device public: nascom1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"){ } + m_videoram(*this, "videoram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_videoram; device_t *m_hd6402; @@ -56,6 +57,7 @@ public: DECLARE_WRITE8_MEMBER(nascom1_hd6402_so); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( nascom1_cassette ); DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( nascom1_cassette ); + required_device m_maincpu; }; diff --git a/src/mess/includes/nc.h b/src/mess/includes/nc.h index 6407351e044..a7da37d875b 100644 --- a/src/mess/includes/nc.h +++ b/src/mess/includes/nc.h @@ -29,7 +29,8 @@ class nc_state : public driver_device { public: nc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } emu_timer *m_serial_timer; char m_memory_config[4]; @@ -101,6 +102,7 @@ public: void nc100_machine_stop(); void nc200_machine_stop(); + required_device m_maincpu; }; diff --git a/src/mess/includes/next.h b/src/mess/includes/next.h index 6b3137c58a6..f2a6d42945a 100644 --- a/src/mess/includes/next.h +++ b/src/mess/includes/next.h @@ -30,8 +30,8 @@ public: net(*this, "net"), mo(*this, "mo"), fdc(*this, "fdc"), - vram(*this, "vram") - { } + vram(*this, "vram"), + m_maincpu(*this, "maincpu") { } required_device maincpu; required_device rtc; @@ -180,6 +180,7 @@ public: DECLARE_DRIVER_INIT(nextstc); DECLARE_DRIVER_INIT(nextctc); DECLARE_DRIVER_INIT(nexts); + required_device m_maincpu; }; #endif diff --git a/src/mess/includes/orao.h b/src/mess/includes/orao.h index 3a1eccc19d6..6e83076dde8 100644 --- a/src/mess/includes/orao.h +++ b/src/mess/includes/orao.h @@ -14,7 +14,8 @@ public: orao_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_memory(*this, "memory"), - m_video_ram(*this, "video_ram"){ } + m_video_ram(*this, "video_ram"), + m_maincpu(*this, "maincpu") { } required_shared_ptr m_memory; required_shared_ptr m_video_ram; @@ -25,6 +26,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_maincpu; }; #endif /* ORAO_H_ */ diff --git a/src/mess/includes/pc1251.h b/src/mess/includes/pc1251.h index 067b7206ff1..ea6fd045fb2 100644 --- a/src/mess/includes/pc1251.h +++ b/src/mess/includes/pc1251.h @@ -18,7 +18,8 @@ class pc1251_state : public driver_device { public: pc1251_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_outa; UINT8 m_outb; @@ -40,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(pc1251_lcd_write); virtual void machine_start(); DECLARE_MACHINE_START(pc1260); + required_device m_maincpu; }; #endif /* PC1251_H_ */ diff --git a/src/mess/includes/pc1350.h b/src/mess/includes/pc1350.h index 839813a0641..3dbd8deb5a6 100644 --- a/src/mess/includes/pc1350.h +++ b/src/mess/includes/pc1350.h @@ -18,7 +18,8 @@ class pc1350_state : public driver_device { public: pc1350_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_outa; UINT8 m_outb; @@ -39,6 +40,7 @@ public: DECLARE_READ8_MEMBER(pc1350_keyboard_line_r); virtual void machine_start(); + required_device m_maincpu; }; #endif /* PC1350_H_ */ diff --git a/src/mess/includes/pc1401.h b/src/mess/includes/pc1401.h index 02c00714835..853000c4778 100644 --- a/src/mess/includes/pc1401.h +++ b/src/mess/includes/pc1401.h @@ -18,7 +18,8 @@ class pc1401_state : public driver_device { public: pc1401_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_portc; UINT8 m_outa; @@ -39,6 +40,7 @@ public: DECLARE_WRITE8_MEMBER(pc1401_lcd_write); virtual void machine_start(); + required_device m_maincpu; }; #endif /* PC1401_H_ */ diff --git a/src/mess/includes/pc1403.h b/src/mess/includes/pc1403.h index 48febbcb18f..a021b77f8e4 100644 --- a/src/mess/includes/pc1403.h +++ b/src/mess/includes/pc1403.h @@ -18,7 +18,8 @@ class pc1403_state : public driver_device { public: pc1403_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_portc; UINT8 m_outa; @@ -43,6 +44,7 @@ public: DECLARE_WRITE8_MEMBER(pc1403_lcd_write); virtual void video_start(); virtual void machine_start(); + required_device m_maincpu; }; #endif /* PC1403_H_ */ diff --git a/src/mess/includes/pcw.h b/src/mess/includes/pcw.h index efee7a5e690..a4717fa8092 100644 --- a/src/mess/includes/pcw.h +++ b/src/mess/includes/pcw.h @@ -24,7 +24,8 @@ class pcw_state : public driver_device { public: pcw_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } int m_boot; int m_system_status; @@ -106,6 +107,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(pcw_timer_interrupt); void pcw_fdc_interrupt(bool state); + required_device m_maincpu; }; #endif /* PCW_H_ */ diff --git a/src/mess/includes/pdp1.h b/src/mess/includes/pdp1.h index 6333c04583b..178b899e6b8 100644 --- a/src/mess/includes/pdp1.h +++ b/src/mess/includes/pdp1.h @@ -233,7 +233,8 @@ class pdp1_state : public driver_device { public: pdp1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } pdp1_reset_param_t m_reset_param; int m_io_status; @@ -269,6 +270,7 @@ public: TIMER_CALLBACK_MEMBER(dpy_callback); TIMER_CALLBACK_MEMBER(il_timer_callback); void pdp1_machine_stop(); + required_device m_maincpu; }; /*----------- defined in video/pdp1.c -----------*/ diff --git a/src/mess/includes/pp01.h b/src/mess/includes/pp01.h index b4a6e9fdc14..bb4b889780d 100644 --- a/src/mess/includes/pp01.h +++ b/src/mess/includes/pp01.h @@ -14,7 +14,8 @@ class pp01_state : public driver_device { public: pp01_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_video_scroll; UINT8 m_memory_block[16]; @@ -42,6 +43,7 @@ public: DECLARE_WRITE8_MEMBER(pp01_8255_portb_w); DECLARE_WRITE8_MEMBER(pp01_8255_portc_w); DECLARE_READ8_MEMBER(pp01_8255_portc_r); + required_device m_maincpu; }; diff --git a/src/mess/includes/primo.h b/src/mess/includes/primo.h index c5bdf3cb7b9..6924c87e1c5 100644 --- a/src/mess/includes/primo.h +++ b/src/mess/includes/primo.h @@ -15,8 +15,8 @@ class primo_state : public driver_device public: primo_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_iec(*this, CBM_IEC_TAG) - { } + m_iec(*this, CBM_IEC_TAG), + m_maincpu(*this, "maincpu") { } required_device m_iec; @@ -35,6 +35,7 @@ public: DECLARE_MACHINE_RESET(primob); UINT32 screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(primo_vblank_interrupt); + required_device m_maincpu; }; diff --git a/src/mess/includes/px8.h b/src/mess/includes/px8.h index 0b20fcb27c6..ed4aeb2aeb7 100644 --- a/src/mess/includes/px8.h +++ b/src/mess/includes/px8.h @@ -31,8 +31,7 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, UPD70008_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) - , + m_ram(*this, RAM_TAG), m_video_ram(*this, "video_ram"){ } required_device m_maincpu; diff --git a/src/mess/includes/rmnimbus.h b/src/mess/includes/rmnimbus.h index 7155181327c..7f8992af3d0 100644 --- a/src/mess/includes/rmnimbus.h +++ b/src/mess/includes/rmnimbus.h @@ -392,8 +392,8 @@ class rmnimbus_state : public driver_device public: rmnimbus_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_scsibus(*this, SCSIBUS_TAG ":host") - { + m_scsibus(*this, SCSIBUS_TAG ":host"), + m_maincpu(*this, "maincpu") { } required_device m_scsibus; @@ -468,4 +468,5 @@ public: DECLARE_WRITE_LINE_MEMBER(nimbus_scsi_req_w); void nimbus_scsi_linechange( UINT8 mask, UINT8 state ); IRQ_CALLBACK_MEMBER(int_callback); + required_device m_maincpu; }; diff --git a/src/mess/includes/samcoupe.h b/src/mess/includes/samcoupe.h index 65f2eca95cc..847b8a7011d 100644 --- a/src/mess/includes/samcoupe.h +++ b/src/mess/includes/samcoupe.h @@ -37,7 +37,8 @@ class samcoupe_state : public driver_device { public: samcoupe_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { sam_bank_read_ptr[0] = NULL; sam_bank_write_ptr[0] = NULL; sam_bank_read_ptr[1] = NULL; @@ -116,6 +117,7 @@ public: UINT8* sam_bank_read_ptr[4]; UINT8* sam_bank_write_ptr[4]; DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device m_maincpu; }; diff --git a/src/mess/includes/sapi1.h b/src/mess/includes/sapi1.h index 86c36e501d4..92baf0350de 100644 --- a/src/mess/includes/sapi1.h +++ b/src/mess/includes/sapi1.h @@ -26,7 +26,8 @@ public: m_line1(*this, "LINE1"), m_line2(*this, "LINE2"), m_line3(*this, "LINE3"), - m_line4(*this, "LINE4") { } + m_line4(*this, "LINE4") , + m_maincpu(*this, "maincpu") { } required_shared_ptr m_sapi_video_ram; UINT8 m_keyboard_mask; @@ -58,6 +59,7 @@ protected: required_ioport m_line2; required_ioport m_line3; required_ioport m_line4; + required_device m_maincpu; }; #endif diff --git a/src/mess/includes/sms.h b/src/mess/includes/sms.h index 8dabdc32dc4..868f06b999b 100644 --- a/src/mess/includes/sms.h +++ b/src/mess/includes/sms.h @@ -38,7 +38,8 @@ public: m_has_bios_full(0), m_has_bios(0), m_has_fm(0), - m_mainram(*this, "mainram") { } + m_mainram(*this, "mainram") , + m_maincpu(*this, "maincpu") { } // device_ts required_device m_main_cpu; @@ -224,6 +225,7 @@ protected: void setup_cart_banks(); void setup_banks(); void sms_get_inputs(address_space &space); + required_device m_maincpu; }; diff --git a/src/mess/includes/ssystem3.h b/src/mess/includes/ssystem3.h index 17181e43c4d..59f5ebe0b04 100644 --- a/src/mess/includes/ssystem3.h +++ b/src/mess/includes/ssystem3.h @@ -38,7 +38,8 @@ class ssystem3_state : public driver_device { public: ssystem3_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 m_porta; UINT8 *m_videoram; @@ -52,6 +53,7 @@ public: DECLARE_READ8_MEMBER(ssystem3_via_read_a); DECLARE_READ8_MEMBER(ssystem3_via_read_b); DECLARE_WRITE8_MEMBER(ssystem3_via_write_b); + required_device m_maincpu; }; diff --git a/src/mess/includes/tx0.h b/src/mess/includes/tx0.h index bd5991b2879..68683303e92 100644 --- a/src/mess/includes/tx0.h +++ b/src/mess/includes/tx0.h @@ -130,7 +130,8 @@ class tx0_state : public driver_device { public: tx0_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } tape_reader_t m_tape_reader; tape_puncher_t m_tape_puncher; @@ -160,6 +161,7 @@ public: TIMER_CALLBACK_MEMBER(prt_callback); TIMER_CALLBACK_MEMBER(dis_callback); void tx0_machine_stop(); + required_device m_maincpu; }; diff --git a/src/mess/includes/ut88.h b/src/mess/includes/ut88.h index 69a9095fdaf..2b224de2d22 100644 --- a/src/mess/includes/ut88.h +++ b/src/mess/includes/ut88.h @@ -35,7 +35,8 @@ public: m_io_line5(*this, "LINE5"), m_io_line6(*this, "LINE6"), m_io_line7(*this, "LINE7"), - m_io_line8(*this, "LINE8") { } + m_io_line8(*this, "LINE8") , + m_maincpu(*this, "maincpu") { } required_device m_cass; optional_device m_ppi; @@ -75,6 +76,7 @@ protected: optional_ioport m_io_line6; optional_ioport m_io_line7; optional_ioport m_io_line8; + required_device m_maincpu; }; diff --git a/src/mess/includes/vtech2.h b/src/mess/includes/vtech2.h index fce81165c8e..9da01aa43a0 100644 --- a/src/mess/includes/vtech2.h +++ b/src/mess/includes/vtech2.h @@ -14,7 +14,8 @@ class vtech2_state : public driver_device { public: vtech2_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") { } UINT8 *m_videoram; int m_laser_latch; @@ -70,6 +71,7 @@ public: DECLARE_READ8_MEMBER(mra_bank4); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( laser_cart ); DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( laser_cart ); + required_device m_maincpu; }; diff --git a/src/mess/includes/x68k.h b/src/mess/includes/x68k.h index 37668f39939..2b50656641d 100644 --- a/src/mess/includes/x68k.h +++ b/src/mess/includes/x68k.h @@ -51,8 +51,8 @@ public: m_gvram16(*this, "gvram16"), m_tvram16(*this, "tvram16"), m_gvram32(*this, "gvram32"), - m_tvram32(*this, "tvram32") - { } + m_tvram32(*this, "tvram32"), + m_maincpu(*this, "maincpu") { } required_device m_mfpdev; required_device m_rtc; @@ -378,6 +378,7 @@ private: void x68k_draw_gfx_scanline(bitmap_ind16 &bitmap, rectangle cliprect, UINT8 priority); void x68k_draw_gfx(bitmap_ind16 &bitmap,rectangle cliprect); void x68k_draw_sprites(bitmap_ind16 &bitmap, int priority, rectangle cliprect); + required_device m_maincpu; }; diff --git a/src/mess/machine/aim65.c b/src/mess/machine/aim65.c index 49ee783b820..22c6d7e33b6 100644 --- a/src/mess/machine/aim65.c +++ b/src/mess/machine/aim65.c @@ -141,7 +141,7 @@ WRITE8_MEMBER( aim65_state::aim65_riot_a_w ) void aim65_state::machine_start() { ram_device *ram = machine().device(RAM_TAG); - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); /* Init RAM */ space.install_ram(0x0000, ram->size() - 1, ram->pointer()); diff --git a/src/mess/machine/apple1.c b/src/mess/machine/apple1.c index d0973ad4f78..a22498ed4b1 100644 --- a/src/mess/machine/apple1.c +++ b/src/mess/machine/apple1.c @@ -133,7 +133,7 @@ static const UINT8 apple1_control_keymap[] = DRIVER_INIT_MEMBER(apple1_state,apple1) { - address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space& space = m_maincpu->space(AS_PROGRAM); /* Set up the handlers for MESS's dynamically-sized RAM. */ space.install_readwrite_bank(0x0000, machine().device(RAM_TAG)->size() - 1, "bank1"); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); @@ -205,6 +205,7 @@ static int apple1_verify_header (UINT8 *data) *****************************************************************************/ SNAPSHOT_LOAD(apple1) { + apple1_state *state = image.device().machine().driver_data(); UINT64 filesize, datasize; UINT8 *snapbuf, *snapptr; UINT16 start_addr, end_addr, addr; @@ -245,7 +246,7 @@ SNAPSHOT_LOAD(apple1) for (addr = start_addr, snapptr = snapbuf + SNAP_HEADER_LEN; addr <= end_addr; addr++, snapptr++) - image.device().machine().device("maincpu")->memory().space(AS_PROGRAM).write_byte(addr, *snapptr); + state->m_maincpu->space(AS_PROGRAM).write_byte(addr, *snapptr); return IMAGE_INIT_PASS; @@ -286,14 +287,14 @@ TIMER_CALLBACK_MEMBER(apple1_state::apple1_kbd_poll) if (!m_reset_flag) { m_reset_flag = 1; /* using PULSE_LINE does not allow us to press and hold key */ - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); pia->reset(); } } else if (m_reset_flag) { /* RESET released--allow the processor to continue. */ m_reset_flag = 0; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); } /* The CLEAR SCREEN switch clears the video hardware. */ diff --git a/src/mess/machine/apple2gs.c b/src/mess/machine/apple2gs.c index f6fb7e85ff4..206c9471a9a 100644 --- a/src/mess/machine/apple2gs.c +++ b/src/mess/machine/apple2gs.c @@ -778,7 +778,7 @@ TIMER_CALLBACK_MEMBER(apple2gs_state::apple2gs_scanline_tick) /* call Apple II interrupt handler */ if ((machine().primary_screen->vpos() % 8) == 7) { - //apple2_interrupt(machine().device("maincpu")); + //apple2_interrupt(m_maincpu); /* TODO: check me! */ machine().primary_screen->update_partial(machine().primary_screen->vpos()); } diff --git a/src/mess/machine/apple3.c b/src/mess/machine/apple3.c index 10290837e09..fe27ba108c3 100644 --- a/src/mess/machine/apple3.c +++ b/src/mess/machine/apple3.c @@ -495,8 +495,8 @@ WRITE_LINE_MEMBER(apple3_state::apple2_via_1_irq_func) { if (!m_via_1_irq && state) { - machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, ASSERT_LINE); - machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); } m_via_1_irq = state; } @@ -730,5 +730,5 @@ DRIVER_INIT_MEMBER(apple3_state,apple3) m_via_1_irq = 0; apple3_update_memory(machine()); - machine().device("maincpu")->memory().space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(apple3_state::apple3_opbase), this)); + m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(apple3_state::apple3_opbase), this)); } diff --git a/src/mess/machine/at.c b/src/mess/machine/at.c index 8b7c35113cf..311cffc8024 100644 --- a/src/mess/machine/at.c +++ b/src/mess/machine/at.c @@ -357,7 +357,7 @@ IRQ_CALLBACK_MEMBER(at_state::at_irq_callback) MACHINE_START_MEMBER(at_state,at) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(at_state::at_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(at_state::at_irq_callback),this)); } MACHINE_RESET_MEMBER(at_state,at) diff --git a/src/mess/machine/b2m.c b/src/mess/machine/b2m.c index 5d6186a17fd..bb9a7b0dd2f 100644 --- a/src/mess/machine/b2m.c +++ b/src/mess/machine/b2m.c @@ -277,7 +277,7 @@ I8255A_INTERFACE( b2m_ppi8255_interface_3 ) WRITE_LINE_MEMBER(b2m_state::b2m_pic_set_int_line) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } /* Driver initialization */ @@ -371,6 +371,6 @@ void b2m_state::machine_reset() m_b2m_side = 0; m_b2m_drive = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(b2m_state::b2m_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(b2m_state::b2m_irq_callback),this)); b2m_set_bank(machine(), 7); } diff --git a/src/mess/machine/bbc.c b/src/mess/machine/bbc.c index a01df1820f8..47711b2f1cc 100644 --- a/src/mess/machine/bbc.c +++ b/src/mess/machine/bbc.c @@ -1413,7 +1413,7 @@ static void bbc_i8271_interrupt(device_t *device, int state) { /* I'll pulse it because if I used hold-line I'm not sure it would clear - to be checked */ - device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE); + drvstate->m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE); } } diff --git a/src/mess/machine/bk.c b/src/mess/machine/bk.c index f87f1c2a5c2..19167582635 100644 --- a/src/mess/machine/bk.c +++ b/src/mess/machine/bk.c @@ -58,7 +58,7 @@ TIMER_CALLBACK_MEMBER(bk_state::keyboard_callback) { m_key_irq_vector = 0xBC; } - machine().device("maincpu")->execute().set_input_line(0, ASSERT_LINE); + m_maincpu->set_input_line(0, ASSERT_LINE); break; } } @@ -78,7 +78,7 @@ IRQ_CALLBACK_MEMBER(bk_state::bk0010_irq_callback) void bk_state::machine_reset() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bk_state::bk0010_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bk_state::bk0010_irq_callback),this)); m_kbd_state = 0; m_scrool = 01330; diff --git a/src/mess/machine/cgenie.c b/src/mess/machine/cgenie.c index f902a9c73bc..3272e305b59 100644 --- a/src/mess/machine/cgenie.c +++ b/src/mess/machine/cgenie.c @@ -46,7 +46,7 @@ TIMER_CALLBACK_MEMBER(cgenie_state::handle_cassette_input) void cgenie_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); device_t *ay8910 = machine().device("ay8910"); UINT8 *ROM = memregion("maincpu")->base(); @@ -123,7 +123,7 @@ void cgenie_state::machine_reset() void cgenie_state::machine_start() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *gfx = memregion("gfx2")->base(); int i; @@ -415,7 +415,7 @@ INTERRUPT_GEN_MEMBER(cgenie_state::cgenie_timer_interrupt) if( (m_irq_status & IRQ_TIMER) == 0 ) { m_irq_status |= IRQ_TIMER; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } } @@ -430,7 +430,7 @@ WRITE_LINE_MEMBER(cgenie_state::cgenie_fdc_intrq_w) if( (m_irq_status & IRQ_FDC) == 0 ) { m_irq_status |= IRQ_FDC; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } } else @@ -595,7 +595,7 @@ INTERRUPT_GEN_MEMBER(cgenie_state::cgenie_frame_interrupt) m_tv_mode = ioport("DSW0")->read() & 0x10; /* force setting of background color */ m_port_ff ^= FF_BGD0; - cgenie_port_ff_w(machine().device("maincpu")->memory().space(AS_PROGRAM), 0, m_port_ff ^ FF_BGD0); + cgenie_port_ff_w(m_maincpu->space(AS_PROGRAM), 0, m_port_ff ^ FF_BGD0); } } diff --git a/src/mess/machine/compis.c b/src/mess/machine/compis.c index 11c97005895..905d70da605 100644 --- a/src/mess/machine/compis.c +++ b/src/mess/machine/compis.c @@ -818,7 +818,7 @@ READ16_MEMBER( compis_state::compis_i186_internal_port_r ) case 0x12: if (LOG_PORTS) logerror("%05X:read 80186 interrupt poll\n", m_maincpu->pc()); if (m_i186.intr.poll_status & 0x8000) - int_callback(*machine().device("maincpu"), 0); + int_callback(*m_maincpu, 0); return m_i186.intr.poll_status; case 0x13: @@ -1260,7 +1260,7 @@ static void compis_cpu_init(running_machine &machine) WRITE_LINE_MEMBER( compis_state::compis_pic8259_master_set_int_line ) { - machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); + m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); } WRITE_LINE_MEMBER( compis_state::compis_pic8259_slave_set_int_line ) @@ -1300,7 +1300,7 @@ IRQ_CALLBACK_MEMBER(compis_state::compis_irq_callback) DRIVER_INIT_MEMBER(compis_state,compis) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(compis_state::compis_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(compis_state::compis_irq_callback),this)); memset (&m_compis, 0, sizeof (m_compis) ); } diff --git a/src/mess/machine/dai.c b/src/mess/machine/dai.c index 67f72e08a2f..157704811c8 100644 --- a/src/mess/machine/dai.c +++ b/src/mess/machine/dai.c @@ -36,7 +36,7 @@ static void dai_update_memory(running_machine &machine, int dai_rom_bank) TIMER_CALLBACK_MEMBER(dai_state::dai_bootstrap_callback) { - machine().device("maincpu")->state().set_pc(0xc000); + m_maincpu->set_pc(0xc000); } diff --git a/src/mess/machine/dccons.c b/src/mess/machine/dccons.c index 50f7713ec5d..bc16869e319 100644 --- a/src/mess/machine/dccons.c +++ b/src/mess/machine/dccons.c @@ -90,7 +90,7 @@ TIMER_CALLBACK_MEMBER(dc_cons_state::atapi_xfer_end ) ddtdata.channel= -1; // not used ddtdata.mode= -1; // copy from/to buffer printf("ATAPI: DMA one sector to %x, %x remaining\n", atapi_xferbase, atapi_xferlen); - sh4_dma_ddt(machine().device("maincpu"), &ddtdata); + sh4_dma_ddt(m_maincpu, &ddtdata); atapi_xferbase += 2048; } diff --git a/src/mess/machine/electron.c b/src/mess/machine/electron.c index da9fce5d41a..07ac7f6ff3b 100644 --- a/src/mess/machine/electron.c +++ b/src/mess/machine/electron.c @@ -335,7 +335,7 @@ void electron_state::machine_reset() m_ula.screen_size = 0x8000 - 0x3000; m_ula.screen_addr = 0; m_ula.tape_running = 0; - m_ula.vram = (UINT8 *)machine().device("maincpu")->memory().space(AS_PROGRAM).get_read_ptr(m_ula.screen_base); + m_ula.vram = (UINT8 *)m_maincpu->space(AS_PROGRAM).get_read_ptr(m_ula.screen_base); } void electron_state::machine_start() diff --git a/src/mess/machine/hec2hrp.c b/src/mess/machine/hec2hrp.c index 3c6524cc066..6574905582a 100644 --- a/src/mess/machine/hec2hrp.c +++ b/src/mess/machine/hec2hrp.c @@ -192,7 +192,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_switch_bank_w) if (m_flag_clk ==1) { m_flag_clk=0; - machine().device("maincpu")->set_unscaled_clock(XTAL_5MHz); /* increase CPU*/ + m_maincpu->set_unscaled_clock(XTAL_5MHz); /* increase CPU*/ } } if (offset==0x04) { /* 0x804 => video page, BR*/ @@ -202,7 +202,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_switch_bank_w) if (m_flag_clk ==0) { m_flag_clk=1; - machine().device("maincpu")->set_unscaled_clock(XTAL_1_75MHz); /* slowdown CPU*/ + m_maincpu->set_unscaled_clock(XTAL_1_75MHz); /* slowdown CPU*/ } } if (offset==0x08) { /* 0x808 => base page, HR*/ @@ -211,7 +211,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_switch_bank_w) if (m_flag_clk ==1) { m_flag_clk=0; - machine().device("maincpu")->set_unscaled_clock(XTAL_5MHz); /* increase CPU*/ + m_maincpu->set_unscaled_clock(XTAL_5MHz); /* increase CPU*/ } } @@ -222,7 +222,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_switch_bank_w) if (m_flag_clk ==0) { m_flag_clk=1; - machine().device("maincpu")->set_unscaled_clock(XTAL_1_75MHz); /* slowdown CPU*/ + m_maincpu->set_unscaled_clock(XTAL_1_75MHz); /* slowdown CPU*/ } } } @@ -244,7 +244,7 @@ READ8_MEMBER(hec2hrp_state::hector_keyboard_r) if (data & 0x01) /* Reset machine ! (on ESC key)*/ { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); if (isHectorHR(machine())) /* aviable for HR and up */ { m_hector_flag_hr=1; diff --git a/src/mess/machine/hp48.c b/src/mess/machine/hp48.c index 03d4f913edb..c88e7c68654 100644 --- a/src/mess/machine/hp48.c +++ b/src/mess/machine/hp48.c @@ -697,7 +697,7 @@ void hp48_state::hp48_apply_modules() { int i; int nce2_enable = 1; - address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space& space = m_maincpu->space(AS_PROGRAM); m_io_addr = 0x100000; diff --git a/src/mess/machine/isa_ide_cd.c b/src/mess/machine/isa_ide_cd.c index 562a83e3e2d..266990f46fc 100644 --- a/src/mess/machine/isa_ide_cd.c +++ b/src/mess/machine/isa_ide_cd.c @@ -137,7 +137,7 @@ READ16_MEMBER( isa16_ide_cd_device::atapi_r ) } if (m_cur_drive==1) return 0x00; data = atapi_regs[reg]; - //logerror("ATAPI: reg %d = %x (offset %x mask %x) [%08x][read]\n", reg, data, offset, mem_mask,machine().device("maincpu")->safe_pc()); + //logerror("ATAPI: reg %d = %x (offset %x mask %x) [%08x][read]\n", reg, data, offset, mem_mask,m_maincpu->safe_pc()); data <<= shift; } return data; diff --git a/src/mess/machine/kaypro.c b/src/mess/machine/kaypro.c index 00f759675a9..b89b945216f 100644 --- a/src/mess/machine/kaypro.c +++ b/src/mess/machine/kaypro.c @@ -15,7 +15,7 @@ WRITE_LINE_MEMBER(kaypro_state::kaypro_interrupt) { - machine().device("maincpu")->execute().set_input_line(0, state); + m_maincpu->set_input_line(0, state); } READ8_MEMBER( kaypro_state::pio_system_r ) @@ -155,7 +155,7 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_system_port_w ) d0 drive A */ /* get address space */ - address_space &mem = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &mem = m_maincpu->space(AS_PROGRAM); if (BIT(data, 7)) { @@ -280,8 +280,8 @@ WRITE8_MEMBER(kaypro_state::kaypro_sio_w) TIMER_CALLBACK_MEMBER(kaypro_state::kaypro_timer_callback) { - if (machine().device("maincpu")->state().state_int(Z80_HALT)) - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + if (m_maincpu->state_int(Z80_HALT)) + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } WRITE_LINE_MEMBER( kaypro_state::kaypro_fdc_intrq_w ) @@ -289,7 +289,7 @@ WRITE_LINE_MEMBER( kaypro_state::kaypro_fdc_intrq_w ) if (state) machine().scheduler().timer_set(attotime::from_usec(25), timer_expired_delegate(FUNC(kaypro_state::kaypro_timer_callback),this)); else - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); } WRITE_LINE_MEMBER( kaypro_state::kaypro_fdc_drq_w ) @@ -297,7 +297,7 @@ WRITE_LINE_MEMBER( kaypro_state::kaypro_fdc_drq_w ) if (state) machine().scheduler().timer_set(attotime::from_usec(25), timer_expired_delegate(FUNC(kaypro_state::kaypro_timer_callback),this)); else - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); } diff --git a/src/mess/machine/llc.c b/src/mess/machine/llc.c index f4ecf9d4a67..e22bd01902c 100644 --- a/src/mess/machine/llc.c +++ b/src/mess/machine/llc.c @@ -152,7 +152,7 @@ DRIVER_INIT_MEMBER(llc_state,llc2) MACHINE_RESET_MEMBER(llc_state,llc2) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); space.unmap_write(0x0000, 0x3fff); membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base()); @@ -170,7 +170,7 @@ MACHINE_RESET_MEMBER(llc_state,llc2) WRITE8_MEMBER(llc_state::llc2_rom_disable_w) { - address_space &mem_space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &mem_space = m_maincpu->space(AS_PROGRAM); UINT8 *ram = machine().device(RAM_TAG)->pointer(); mem_space.install_write_bank(0x0000, 0xbfff, "bank1"); @@ -189,7 +189,7 @@ WRITE8_MEMBER(llc_state::llc2_rom_disable_w) WRITE8_MEMBER(llc_state::llc2_basic_enable_w) { - address_space &mem_space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &mem_space = m_maincpu->space(AS_PROGRAM); if (data & 0x02) { mem_space.unmap_write(0x4000, 0x5fff); diff --git a/src/mess/machine/lviv.c b/src/mess/machine/lviv.c index af649b01a6d..af526d8d416 100644 --- a/src/mess/machine/lviv.c +++ b/src/mess/machine/lviv.c @@ -163,7 +163,7 @@ READ8_MEMBER(lviv_state::lviv_io_r) WRITE8_MEMBER(lviv_state::lviv_io_w) { - address_space &cpuspace = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &cpuspace = m_maincpu->space(AS_PROGRAM); if (m_startup_mem_map) { UINT8 *ram = machine().device(RAM_TAG)->pointer(); @@ -223,7 +223,7 @@ I8255A_INTERFACE( lviv_ppi8255_interface_1 ) void lviv_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *mem; space.set_direct_update_handler(direct_update_delegate(FUNC(lviv_state::lviv_directoverride), this)); diff --git a/src/mess/machine/lynx.c b/src/mess/machine/lynx.c index 94d44d3e8df..4f2976e2343 100644 --- a/src/mess/machine/lynx.c +++ b/src/mess/machine/lynx.c @@ -603,7 +603,7 @@ static void lynx_blit_lines(lynx_state *state) TIMER_CALLBACK_MEMBER(lynx_state::lynx_blitter_timer) { m_blitter.busy=0; // blitter finished - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); } /* @@ -1636,16 +1636,16 @@ TIMER_CALLBACK_MEMBER(lynx_state::lynx_uart_timer) if (m_uart.serctl & 0x40) { m_mikey.data[0x81] |= 0x10; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); - machine().device("maincpu")->execute().set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + m_maincpu->set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); } } if (m_uart.serctl & 0x80) { m_mikey.data[0x81] |= 0x10; - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); - machine().device("maincpu")->execute().set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + m_maincpu->set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); } } @@ -1802,7 +1802,7 @@ WRITE8_MEMBER(lynx_state::mikey_write) m_mikey.data[0x81] &= ~data; // clear interrupt source // logerror("mikey write %.2x %.2x\n", offset, data); if (!m_mikey.data[0x81]) - machine().device("maincpu")->execute().set_input_line(M65SC02_IRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(M65SC02_IRQ_LINE, CLEAR_LINE); break; /* Is this correct? */ // Notes say writing to register will result in interupt being triggered. @@ -1810,8 +1810,8 @@ WRITE8_MEMBER(lynx_state::mikey_write) m_mikey.data[0x81] |= data; if (data) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); - machine().device("maincpu")->execute().set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + m_maincpu->set_input_line(M65SC02_IRQ_LINE, ASSERT_LINE); logerror("direct write to interupt register\n"); } break; @@ -1865,7 +1865,7 @@ WRITE8_MEMBER(lynx_state::mikey_write) m_mikey.data[offset] = data; if (!data && m_blitter.busy) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); /* A write of '0' to this address will reset the CPU bus request flip flop */ } break; @@ -1922,10 +1922,10 @@ WRITE8_MEMBER(lynx_state::lynx_memory_config_w) void lynx_state::machine_reset() { - lynx_memory_config_w(machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0); + lynx_memory_config_w(m_maincpu->space(AS_PROGRAM), 0, 0); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); - machine().device("maincpu")->execute().set_input_line(M65SC02_IRQ_LINE, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + m_maincpu->set_input_line(M65SC02_IRQ_LINE, CLEAR_LINE); memset(&m_suzy, 0, sizeof(m_suzy)); memset(&m_mikey, 0, sizeof(m_mikey)); @@ -1957,7 +1957,7 @@ void lynx_state::machine_reset() void lynx_state::lynx_postload() { - lynx_memory_config_w(machine().device("maincpu")->memory().space(AS_PROGRAM), 0, m_memory_config); + lynx_memory_config_w(m_maincpu->space(AS_PROGRAM), 0, m_memory_config); } void lynx_state::machine_start() diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c index 4288b0aee4d..1941aee5d8d 100644 --- a/src/mess/machine/mac.c +++ b/src/mess/machine/mac.c @@ -279,13 +279,13 @@ void mac_state::field_interrupts() if (m_last_taken_interrupt > -1) { - machine().device("maincpu")->execute().set_input_line(m_last_taken_interrupt, CLEAR_LINE); + m_maincpu->set_input_line(m_last_taken_interrupt, CLEAR_LINE); m_last_taken_interrupt = -1; } if (take_interrupt > -1) { - machine().device("maincpu")->execute().set_input_line(take_interrupt, ASSERT_LINE); + m_maincpu->set_input_line(take_interrupt, ASSERT_LINE); m_last_taken_interrupt = take_interrupt; } } @@ -398,7 +398,7 @@ void mac_state::v8_resize() } else { - address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space& space = m_maincpu->space(AS_PROGRAM); UINT32 onboard_amt, simm_amt, simm_size; static const UINT32 simm_sizes[4] = { 0, 2*1024*1024, 4*1024*1024, 8*1024*1024 }; @@ -489,13 +489,13 @@ void mac_state::set_memory_overlay(int overlay) } else if ((m_model == MODEL_MAC_PORTABLE) || (m_model == MODEL_MAC_PB100) || (m_model == MODEL_MAC_IIVX) || (m_model == MODEL_MAC_IIFX)) { - address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space& space = m_maincpu->space(AS_PROGRAM); space.unmap_write(0x000000, 0x9fffff, 0x9fffff, 0); mac_install_memory(machine(), 0x000000, memory_size-1, memory_size, memory_data, is_rom, "bank1"); } else if ((m_model == MODEL_MAC_PB140) || (m_model == MODEL_MAC_PB160) || ((m_model >= MODEL_MAC_PBDUO_210) && (m_model <= MODEL_MAC_PBDUO_270c))) { - address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space& space = m_maincpu->space(AS_PROGRAM); space.unmap_write(0x000000, 0xffffff, 0xffffff, 0); mac_install_memory(machine(), 0x000000, memory_size-1, memory_size, memory_data, is_rom, "bank1"); } @@ -1245,7 +1245,7 @@ WRITE8_MEMBER(mac_state::mac_adb_via_out_cb2) READ8_MEMBER(mac_state::mac_via_in_a) { -// printf("VIA1 IN_A (PC %x)\n", machine().device("maincpu")->safe_pc()); +// printf("VIA1 IN_A (PC %x)\n", m_maincpu->safe_pc()); switch (m_model) { @@ -1361,7 +1361,7 @@ READ8_MEMBER(mac_state::mac_via_in_b) } } -// printf("VIA1 IN_B = %02x (PC %x)\n", val, machine().device("maincpu")->safe_pc()); +// printf("VIA1 IN_B = %02x (PC %x)\n", val, m_maincpu->safe_pc()); return val; } @@ -1370,7 +1370,7 @@ WRITE8_MEMBER(mac_state::mac_via_out_a) { device_t *sound = machine().device("custom"); device_t *fdc = machine().device("fdc"); -// printf("VIA1 OUT A: %02x (PC %x)\n", data, machine().device("maincpu")->safe_pc()); +// printf("VIA1 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc()); if (ADB_IS_PM_VIA1) { @@ -1411,7 +1411,7 @@ WRITE8_MEMBER(mac_state::mac_via_out_a) WRITE8_MEMBER(mac_state::mac_via_out_b) { device_t *sound = machine().device("custom"); -// printf("VIA1 OUT B: %02x (PC %x)\n", data, machine().device("maincpu")->safe_pc()); +// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc()); if (ADB_IS_PM_VIA1) { @@ -1631,7 +1631,7 @@ READ8_MEMBER(mac_state::mac_via2_in_a) READ8_MEMBER(mac_state::mac_via2_in_b) { -// logerror("VIA2 IN B (PC %x)\n", machine().device("maincpu")->safe_pc()); +// logerror("VIA2 IN B (PC %x)\n", m_maincpu->safe_pc()); if (ADB_IS_PM_VIA2) { @@ -1660,7 +1660,7 @@ READ8_MEMBER(mac_state::mac_via2_in_b) WRITE8_MEMBER(mac_state::mac_via2_out_a) { -// logerror("VIA2 OUT A: %02x (PC %x)\n", data, machine().device("maincpu")->safe_pc()); +// logerror("VIA2 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc()); if (ADB_IS_PM_VIA2) { m_pm_data_send = data; @@ -1670,7 +1670,7 @@ WRITE8_MEMBER(mac_state::mac_via2_out_a) WRITE8_MEMBER(mac_state::mac_via2_out_b) { -// logerror("VIA2 OUT B: %02x (PC %x)\n", data, machine().device("maincpu")->safe_pc()); +// logerror("VIA2 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc()); if (ADB_IS_PM_VIA2) { @@ -1922,7 +1922,7 @@ WRITE_LINE_MEMBER(mac_state::cuda_reset_w) set_memory_overlay(1); } - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, state); + m_maincpu->set_input_line(INPUT_LINE_RESET, state); } void mac_state::mac_state_load() diff --git a/src/mess/machine/macpci.c b/src/mess/machine/macpci.c index e4a4033024c..a43e0c1794a 100644 --- a/src/mess/machine/macpci.c +++ b/src/mess/machine/macpci.c @@ -134,12 +134,12 @@ void macpci_state::machine_reset() m_via_cycles = -256; // for a 66 MHz PowerMac - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } WRITE_LINE_MEMBER(macpci_state::cuda_reset_w) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, state); + m_maincpu->set_input_line(INPUT_LINE_RESET, state); } WRITE_LINE_MEMBER(macpci_state::cuda_adb_linechange_w) diff --git a/src/mess/machine/mbee.c b/src/mess/machine/mbee.c index 739a93f0fee..2e786251065 100644 --- a/src/mess/machine/mbee.c +++ b/src/mess/machine/mbee.c @@ -565,7 +565,7 @@ INTERRUPT_GEN_MEMBER(mbee_state::mbee_interrupt) // Due to the uncertainly and hackage here, this is commented out for now - Robbbert - 05-Oct-2010 #if 0 - //address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + //address_space &space = m_maincpu->space(AS_PROGRAM); /* The printer status connects to the pio ASTB pin, and the printer changing to not busy should signal an interrupt routine at B61C, (next line) but this doesn't work. The line below does what the interrupt should be doing. */ @@ -753,8 +753,8 @@ DRIVER_INIT_MEMBER(mbee_state,mbeett) QUICKLOAD_LOAD( mbee ) { mbee_state *state = image.device().machine().driver_data(); - device_t *cpu = image.device().machine().device("maincpu"); - address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); + device_t *cpu = state->m_maincpu; + address_space &space = state->m_maincpu->space(AS_PROGRAM); UINT16 i, j; UINT8 data, sw = image.device().machine().root_device().ioport("CONFIG")->read() & 1; /* reading the dipswitch: 1 = autorun */ @@ -823,6 +823,7 @@ QUICKLOAD_LOAD( mbee ) QUICKLOAD_LOAD( mbee_z80bin ) { + mbee_state *state = image.device().machine().driver_data(); UINT16 execute_address, start_addr, end_addr; int autorun; @@ -836,8 +837,8 @@ QUICKLOAD_LOAD( mbee_z80bin ) /* check to see if autorun is on (I hate how this works) */ autorun = image.device().machine().root_device().ioport("CONFIG")->read_safe(0xFF) & 1; - device_t *cpu = image.device().machine().device("maincpu"); - address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); + device_t *cpu = state->m_maincpu; + address_space &space = state->m_maincpu->space(AS_PROGRAM); space.write_word(0xa6, execute_address); /* fix the EXEC command */ diff --git a/src/mess/machine/mc80.c b/src/mess/machine/mc80.c index 355856cc87d..f2c7e481e18 100644 --- a/src/mess/machine/mc80.c +++ b/src/mess/machine/mc80.c @@ -20,7 +20,7 @@ IRQ_CALLBACK_MEMBER(mc80_state::mc8020_irq_callback) MACHINE_RESET_MEMBER(mc80_state,mc8020) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mc80_state::mc8020_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mc80_state::mc8020_irq_callback),this)); } WRITE_LINE_MEMBER( mc80_state::ctc_z0_w ) @@ -114,7 +114,7 @@ IRQ_CALLBACK_MEMBER(mc80_state::mc8030_irq_callback ) MACHINE_RESET_MEMBER(mc80_state,mc8030) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mc80_state::mc8030_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mc80_state::mc8030_irq_callback),this)); } READ8_MEMBER( mc80_state::zve_port_a_r ) diff --git a/src/mess/machine/microtan.c b/src/mess/machine/microtan.c index 220a5b803fe..0659115aa55 100644 --- a/src/mess/machine/microtan.c +++ b/src/mess/machine/microtan.c @@ -382,7 +382,7 @@ READ8_MEMBER(microtan_state::microtan_bffx_r) /* This callback is called one clock cycle after BFF2 is written (delayed nmi) */ TIMER_CALLBACK_MEMBER(microtan_state::microtan_pulse_nmi) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } WRITE8_MEMBER(microtan_state::microtan_bffx_w) @@ -512,7 +512,7 @@ DRIVER_INIT_MEMBER(microtan_state,microtan) { UINT8 *dst = memregion("gfx2")->base(); int i; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); for (i = 0; i < 256; i++) { diff --git a/src/mess/machine/mz700.c b/src/mess/machine/mz700.c index 30d04f0808d..9558ff9901b 100644 --- a/src/mess/machine/mz700.c +++ b/src/mess/machine/mz700.c @@ -107,7 +107,7 @@ void mz_state::machine_start() m_ppi = machine().device("ppi8255"); /* reset memory map to defaults */ - mz700_bank_4_w(machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0); + mz700_bank_4_w(m_maincpu->space(AS_PROGRAM), 0, 0); } @@ -141,7 +141,7 @@ WRITE8_MEMBER(mz_state::mz700_e008_w) READ8_MEMBER(mz_state::mz800_bank_0_r) { UINT8 *videoram = m_videoram; - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); /* switch in cgrom */ spc.install_read_bank(0x1000, 0x1fff, "bank2"); @@ -180,7 +180,7 @@ READ8_MEMBER(mz_state::mz800_bank_0_r) WRITE8_MEMBER(mz_state::mz700_bank_0_w) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); spc.install_readwrite_bank(0x0000, 0x0fff, "bank1"); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); @@ -188,7 +188,7 @@ WRITE8_MEMBER(mz_state::mz700_bank_0_w) WRITE8_MEMBER(mz_state::mz800_bank_0_w) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); spc.install_readwrite_bank(0x0000, 0x7fff, "bank1"); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); @@ -196,7 +196,7 @@ WRITE8_MEMBER(mz_state::mz800_bank_0_w) READ8_MEMBER(mz_state::mz800_bank_1_r) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); /* switch in ram from 0x1000 to 0x1fff */ spc.install_readwrite_bank(0x1000, 0x1fff, "bank2"); @@ -220,7 +220,7 @@ READ8_MEMBER(mz_state::mz800_bank_1_r) WRITE8_MEMBER(mz_state::mz700_bank_1_w) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); if (m_mz700_mode) { @@ -246,7 +246,7 @@ WRITE8_MEMBER(mz_state::mz700_bank_1_w) WRITE8_MEMBER(mz_state::mz700_bank_2_w) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); spc.install_read_bank(0x0000, 0x0fff, "bank1"); spc.nop_write(0x0000, 0x0fff); @@ -256,7 +256,7 @@ WRITE8_MEMBER(mz_state::mz700_bank_2_w) WRITE8_MEMBER(mz_state::mz700_bank_3_w) { UINT8 *videoram = m_videoram; - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); if (m_mz700_mode) { @@ -303,7 +303,7 @@ WRITE8_MEMBER(mz_state::mz700_bank_3_w) WRITE8_MEMBER(mz_state::mz700_bank_4_w) { UINT8 *videoram = m_videoram; - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); if (m_mz700_mode) { @@ -359,7 +359,7 @@ WRITE8_MEMBER(mz_state::mz700_bank_4_w) WRITE8_MEMBER(mz_state::mz700_bank_5_w) { - address_space &spc = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &spc = m_maincpu->space(AS_PROGRAM); if (m_mz700_mode) { @@ -418,7 +418,7 @@ WRITE_LINE_MEMBER(mz_state::pit_out0_changed) WRITE_LINE_MEMBER(mz_state::pit_irq_2) { if (!m_intmsk) - machine().device("maincpu")->execute().set_input_line(0, state); + m_maincpu->set_input_line(0, state); } @@ -621,7 +621,7 @@ WRITE8_MEMBER(mz_state::mz800_display_mode_w) // { // logerror("mz800_display_mode_w: switching mode to %s\n", (BIT(data, 3) ? "mz700" : "mz800")); // m_mz700_mode = BIT(data, 3); -// mz700_bank_4_w(*machine().device("maincpu")->memory().&space(AS_PROGRAM), 0, 0); +// mz700_bank_4_w(*m_maincpu->&space(AS_PROGRAM), 0, 0); // } } @@ -644,7 +644,7 @@ WRITE8_MEMBER(mz_state::mz800_ramdisk_w) /* port EB */ WRITE8_MEMBER(mz_state::mz800_ramaddr_w) { - m_mz800_ramaddr = (machine().device("maincpu")->state().state_int(Z80_BC) & 0xff00) | (data & 0xff); + m_mz800_ramaddr = (m_maincpu->state_int(Z80_BC) & 0xff00) | (data & 0xff); LOG(1,"mz800_ramaddr_w",("%04X\n", m_mz800_ramaddr),machine()); } diff --git a/src/mess/machine/mz80.c b/src/mess/machine/mz80.c index 4ca1b09e615..6b9a2090950 100644 --- a/src/mess/machine/mz80.c +++ b/src/mess/machine/mz80.c @@ -68,7 +68,7 @@ WRITE_LINE_MEMBER( mz80_state::pit_out0_changed ) WRITE_LINE_MEMBER( mz80_state::pit_out2_changed ) { - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } I8255_INTERFACE( mz80k_8255_int ) diff --git a/src/mess/machine/nascom1.c b/src/mess/machine/nascom1.c index c1ee779c07b..d82efa9e50a 100644 --- a/src/mess/machine/nascom1.c +++ b/src/mess/machine/nascom1.c @@ -260,28 +260,28 @@ DRIVER_INIT_MEMBER(nascom1_state,nascom1) switch (machine().device(RAM_TAG)->size()) { case 1 * 1024: - machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite( + m_maincpu->space(AS_PROGRAM).nop_readwrite( 0x1400, 0x9000); break; case 16 * 1024: - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_bank( + m_maincpu->space(AS_PROGRAM).install_readwrite_bank( 0x1400, 0x4fff, "bank1"); - machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite( + m_maincpu->space(AS_PROGRAM).nop_readwrite( 0x5000, 0xafff); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); break; case 32 * 1024: - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_bank( + m_maincpu->space(AS_PROGRAM).install_readwrite_bank( 0x1400, 0x8fff, "bank1"); - machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite( + m_maincpu->space(AS_PROGRAM).nop_readwrite( 0x9000, 0xafff); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); break; case 40 * 1024: - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_bank( + m_maincpu->space(AS_PROGRAM).install_readwrite_bank( 0x1400, 0xafff, "bank1"); membank("bank1")->set_base(machine().device(RAM_TAG)->pointer()); break; diff --git a/src/mess/machine/nes.c b/src/mess/machine/nes.c index bfc3ca5f5ba..b29e4365dc6 100644 --- a/src/mess/machine/nes.c +++ b/src/mess/machine/nes.c @@ -33,7 +33,7 @@ void nes_state::init_nes_core() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); static const char *const bank_names[] = { "bank1", "bank2", "bank3", "bank4" }; int i; m_prg_chunks = 0; @@ -266,7 +266,7 @@ void nes_state::machine_reset() m_in_0.shift = 0; m_in_1.shift = 0; - machine().device("maincpu")->reset(); + m_maincpu->reset(); } TIMER_CALLBACK_MEMBER(nes_state::nes_irq_callback) diff --git a/src/mess/machine/partner.c b/src/mess/machine/partner.c index f2e289b580f..1a8d097ddec 100644 --- a/src/mess/machine/partner.c +++ b/src/mess/machine/partner.c @@ -361,7 +361,7 @@ WRITE8_MEMBER(partner_state::partner_mem_page_w) WRITE_LINE_MEMBER(partner_state::hrq_w) { /* HACK - this should be connected to the BUSREQ line of Z80 */ - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state); + m_maincpu->set_input_line(INPUT_LINE_HALT, state); /* HACK - this should be connected to the BUSACK line of Z80 */ machine().device("dma8257")->i8257_hlda_w(state); diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c index f18ea9dd278..adfc074651c 100644 --- a/src/mess/machine/pc.c +++ b/src/mess/machine/pc.c @@ -95,7 +95,7 @@ READ8_MEMBER(pc_state::ec1841_memboard_r) WRITE8_MEMBER(pc_state::ec1841_memboard_w) { pc_state *st = space.machine().driver_data(); - address_space &program = space.machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &program = st->m_maincpu->space(AS_PROGRAM); running_machine &machine = space.machine(); UINT8 current; diff --git a/src/mess/machine/pc1251.c b/src/mess/machine/pc1251.c index 71fc1487a8f..9841daf7c3d 100644 --- a/src/mess/machine/pc1251.c +++ b/src/mess/machine/pc1251.c @@ -87,7 +87,7 @@ READ_LINE_MEMBER(pc1251_state::pc1251_reset) void pc1251_state::machine_start() { - device_t *main_cpu = machine().device("maincpu"); + device_t *main_cpu = m_maincpu; UINT8 *ram = memregion("maincpu")->base() + 0x8000; UINT8 *cpu = sc61860_internal_ram(main_cpu); @@ -97,7 +97,7 @@ void pc1251_state::machine_start() MACHINE_START_MEMBER(pc1251_state,pc1260 ) { - device_t *main_cpu = machine().device("maincpu"); + device_t *main_cpu = m_maincpu; UINT8 *ram = memregion("maincpu")->base() + 0x4000; UINT8 *cpu = sc61860_internal_ram(main_cpu); diff --git a/src/mess/machine/pc1350.c b/src/mess/machine/pc1350.c index 391f3d3590f..527e2e01e00 100644 --- a/src/mess/machine/pc1350.c +++ b/src/mess/machine/pc1350.c @@ -90,7 +90,7 @@ TIMER_CALLBACK_MEMBER(pc1350_state::pc1350_power_up) void pc1350_state::machine_start() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); m_power = 1; machine().scheduler().timer_set(attotime::from_seconds(1), timer_expired_delegate(FUNC(pc1350_state::pc1350_power_up),this)); @@ -118,7 +118,7 @@ void pc1350_state::machine_start() space.nop_readwrite(0x2000, 0x3fff); } - device_t *main_cpu = machine().device("maincpu"); + device_t *main_cpu = m_maincpu; UINT8 *ram = machine().root_device().memregion("maincpu")->base() + 0x2000; UINT8 *cpu = sc61860_internal_ram(main_cpu); diff --git a/src/mess/machine/pc1401.c b/src/mess/machine/pc1401.c index 84ea72ec45f..32bebb8f4f1 100644 --- a/src/mess/machine/pc1401.c +++ b/src/mess/machine/pc1401.c @@ -111,7 +111,7 @@ READ_LINE_MEMBER(pc1401_state::pc1401_reset) void pc1401_state::machine_start() { - device_t *main_cpu = machine().device("maincpu"); + device_t *main_cpu = m_maincpu; UINT8 *ram = memregion("maincpu")->base() + 0x2000; UINT8 *cpu = sc61860_internal_ram(main_cpu); diff --git a/src/mess/machine/pc1403.c b/src/mess/machine/pc1403.c index c80b8ba819f..8d89b4820fc 100644 --- a/src/mess/machine/pc1403.c +++ b/src/mess/machine/pc1403.c @@ -122,7 +122,7 @@ READ8_MEMBER(pc1403_state::pc1403_inb) WRITE8_MEMBER(pc1403_state::pc1403_outc) { m_portc = data; -// logerror("%g pc %.4x outc %.2x\n", device->machine().time().as_double(), device->machine().device("maincpu")->safe_pc(), data); +// logerror("%g pc %.4x outc %.2x\n", device->machine().time().as_double(), device->m_maincpu->safe_pc(), data); } @@ -138,7 +138,7 @@ READ_LINE_MEMBER(pc1403_state::pc1403_reset) void pc1403_state::machine_start() { - device_t *main_cpu = machine().device("maincpu"); + device_t *main_cpu = m_maincpu; UINT8 *ram = memregion("maincpu")->base() + 0x8000; UINT8 *cpu = sc61860_internal_ram(main_cpu); diff --git a/src/mess/machine/rm380z.c b/src/mess/machine/rm380z.c index 3ea7615ed85..d5dc126170d 100644 --- a/src/mess/machine/rm380z.c +++ b/src/mess/machine/rm380z.c @@ -29,7 +29,7 @@ WRITE8_MEMBER( rm380z_state::port_write ) switch ( offset ) { case 0xFC: // PORT0 - //printf("FBFCw[%2.2x] FBFD [%2.2x] FBFE [%2.2x] PC [%4.4x] writenum [%4.4x]\n",data,m_fbfd,m_fbfe,machine().device("maincpu")->safe_pc(),writenum); + //printf("FBFCw[%2.2x] FBFD [%2.2x] FBFE [%2.2x] PC [%4.4x] writenum [%4.4x]\n",data,m_fbfd,m_fbfe,m_maincpu->safe_pc(),writenum); m_port0 = data; if (data&0x01) { @@ -43,7 +43,7 @@ WRITE8_MEMBER( rm380z_state::port_write ) break; case 0xFD: // screen line counter (?) - //printf("FBFC [%2.2x] FBFDw[%2.2x] FBFE [%2.2x] PC [%4.4x] writenum [%4.4x]\n",m_port0,data,m_fbfe,machine().device("maincpu")->safe_pc(),writenum); + //printf("FBFC [%2.2x] FBFDw[%2.2x] FBFE [%2.2x] PC [%4.4x] writenum [%4.4x]\n",m_port0,data,m_fbfe,m_maincpu->safe_pc(),writenum); m_old_old_fbfd=m_old_fbfd; m_old_fbfd=m_fbfd; @@ -56,7 +56,7 @@ WRITE8_MEMBER( rm380z_state::port_write ) break; case 0xFE: // line on screen to write to divided by 2 - //printf("FBFC [%2.2x] FBFD [%2.2x] FBFEw[%2.2x] PC [%4.4x] writenum [%4.4x]\n",m_port0,m_fbfd,data,machine().device("maincpu")->safe_pc(),writenum); + //printf("FBFC [%2.2x] FBFD [%2.2x] FBFEw[%2.2x] PC [%4.4x] writenum [%4.4x]\n",m_port0,m_fbfd,data,m_maincpu->safe_pc(),writenum); m_fbfe=data; break; @@ -81,7 +81,7 @@ READ8_MEMBER( rm380z_state::port_read ) data = m_port0_kbd; //if (m_port0_kbd!=0) m_port0_kbd=0; //m_port0_kbd=0; - //printf("read of port0 (kbd) from PC [%x]\n",machine().device("maincpu")->safe_pc()); + //printf("read of port0 (kbd) from PC [%x]\n",m_maincpu->safe_pc()); break; case 0xFD: // "counter" (?) @@ -91,7 +91,7 @@ READ8_MEMBER( rm380z_state::port_read ) case 0xFE: // PORT1 data = m_port1; - //printf("read of port1 from PC [%x]\n",machine().device("maincpu")->safe_pc()); + //printf("read of port1 from PC [%x]\n",m_maincpu->safe_pc()); break; case 0xFF: // user port @@ -134,7 +134,7 @@ READ8_MEMBER( rm380z_state::rm380z_portlow_r ) WRITE8_MEMBER( rm380z_state::rm380z_portlow_w ) { - //printf("port write [%x] [%x] at PC [%x]\n",offset,data,machine().device("maincpu")->safe_pc()); + //printf("port write [%x] [%x] at PC [%x]\n",offset,data,m_maincpu->safe_pc()); } READ8_MEMBER( rm380z_state::rm380z_porthi_r ) diff --git a/src/mess/machine/samcoupe.c b/src/mess/machine/samcoupe.c index 502bff8c941..2bd8b49ae23 100644 --- a/src/mess/machine/samcoupe.c +++ b/src/mess/machine/samcoupe.c @@ -208,7 +208,7 @@ void samcoupe_update_memory(address_space &space) WRITE8_MEMBER(samcoupe_state::samcoupe_ext_mem_w) { - address_space &space_program = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space_program = m_maincpu->space(AS_PROGRAM); if (offset & 1) m_hext = data; @@ -229,7 +229,7 @@ WRITE8_MEMBER(samcoupe_state::samcoupe_ext_mem_w) READ8_MEMBER(samcoupe_state::samcoupe_rtc_r) { - address_space &spaceio = machine().device("maincpu")->memory().space(AS_IO); + address_space &spaceio = m_maincpu->space(AS_IO); msm6242_device *rtc = dynamic_cast(machine().device("sambus_clock")); return rtc->read(spaceio,offset >> 12); } @@ -237,7 +237,7 @@ READ8_MEMBER(samcoupe_state::samcoupe_rtc_r) WRITE8_MEMBER(samcoupe_state::samcoupe_rtc_w) { - address_space &spaceio = machine().device("maincpu")->memory().space(AS_IO); + address_space &spaceio = m_maincpu->space(AS_IO); msm6242_device *rtc = dynamic_cast(machine().device("sambus_clock")); rtc->write(spaceio,offset >> 12, data); } @@ -312,8 +312,8 @@ void samcoupe_state::machine_start() void samcoupe_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); - address_space &spaceio = machine().device("maincpu")->memory().space(AS_IO); + address_space &space = m_maincpu->space(AS_PROGRAM); + address_space &spaceio = m_maincpu->space(AS_IO); /* initialize state */ m_lmpr = 0x0f; /* ROM0 paged in, ROM1 paged out RAM Banks */ diff --git a/src/mess/machine/sorcerer.c b/src/mess/machine/sorcerer.c index e87bf287975..aa1bf2993d0 100644 --- a/src/mess/machine/sorcerer.c +++ b/src/mess/machine/sorcerer.c @@ -405,7 +405,7 @@ MACHINE_START_MEMBER(sorcerer_state,sorcererd) void sorcerer_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); /* Initialize cassette interface */ m_cass_data.output.length = 0; diff --git a/src/mess/machine/vector06.c b/src/mess/machine/vector06.c index 1705ea47ac5..e41e7152778 100644 --- a/src/mess/machine/vector06.c +++ b/src/mess/machine/vector06.c @@ -143,13 +143,13 @@ TIMER_CALLBACK_MEMBER(vector06_state::reset_check_callback) if (BIT(val, 0)) { membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + 0x10000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } if (BIT(val, 1)) { membank("bank1")->set_base(machine().device(RAM_TAG)->pointer() + 0x0000); - machine().device("maincpu")->reset(); + m_maincpu->reset(); } } @@ -168,9 +168,9 @@ void vector06_state::machine_start() void vector06_state::machine_reset() { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vector06_state::vector06_irq_callback),this)); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vector06_state::vector06_irq_callback),this)); space.install_read_bank (0x0000, 0x7fff, "bank1"); space.install_write_bank(0x0000, 0x7fff, "bank2"); space.install_read_bank (0x8000, 0xffff, "bank3"); diff --git a/src/mess/machine/vtech2.c b/src/mess/machine/vtech2.c index d8fbb9caa43..c7a3fa6c536 100644 --- a/src/mess/machine/vtech2.c +++ b/src/mess/machine/vtech2.c @@ -147,7 +147,7 @@ WRITE8_MEMBER(vtech2_state::laser_bank_select_w) write8_delegate(FUNC(vtech2_state::mwa_bank4), this), }; - machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(offset * 0x4000, offset * 0x4000 + 0x3fff, mra_bank_soft[offset], mwa_bank_soft[offset]); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(offset * 0x4000, offset * 0x4000 + 0x3fff, mra_bank_soft[offset], mwa_bank_soft[offset]); } else { @@ -160,14 +160,14 @@ WRITE8_MEMBER(vtech2_state::laser_bank_select_w) { logerror("select bank #%d VIDEO!\n", offset+1); } - machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(offset * 0x4000, offset * 0x4000 + 0x3fff, mra_bank_hard[offset]); - machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_bank(offset * 0x4000, offset * 0x4000 + 0x3fff, mwa_bank_hard[offset]); + m_maincpu->space(AS_PROGRAM).install_read_bank(offset * 0x4000, offset * 0x4000 + 0x3fff, mra_bank_hard[offset]); + m_maincpu->space(AS_PROGRAM).install_write_bank(offset * 0x4000, offset * 0x4000 + 0x3fff, mwa_bank_hard[offset]); } else { logerror("select bank #%d MASKED!\n", offset+1); - machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite(offset * 0x4000, offset * 0x4000 + 0x3fff); + m_maincpu->space(AS_PROGRAM).nop_readwrite(offset * 0x4000, offset * 0x4000 + 0x3fff); } } diff --git a/src/mess/video/ac1.c b/src/mess/video/ac1.c index 7fdbe7030bb..8f9bb1cb116 100644 --- a/src/mess/video/ac1.c +++ b/src/mess/video/ac1.c @@ -29,7 +29,7 @@ void ac1_state::video_start() UINT32 ac1_state::screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x,y; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); for(y = 0; y < 16; y++ ) { @@ -45,7 +45,7 @@ UINT32 ac1_state::screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, UINT32 ac1_state::screen_update_ac1_32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x,y; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); for(y = 0; y < 32; y++ ) { diff --git a/src/mess/video/dai.c b/src/mess/video/dai.c index e1fe59dfc9b..de89e53b7f7 100644 --- a/src/mess/video/dai.c +++ b/src/mess/video/dai.c @@ -57,7 +57,7 @@ void dai_state::video_start() UINT32 dai_state::screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); int i, j, k, l; UINT8* char_rom = memregion("gfx1")->base(); diff --git a/src/mess/video/fm7.c b/src/mess/video/fm7.c index 995dde6cb55..f8746e6968b 100644 --- a/src/mess/video/fm7.c +++ b/src/mess/video/fm7.c @@ -73,7 +73,7 @@ READ8_MEMBER(fm7_state::fm7_cancel_ack) READ8_MEMBER(fm7_state::fm7_attn_irq_r) { m_video.attn_irq = 1; - machine().device("maincpu")->execute().set_input_line(M6809_FIRQ_LINE,ASSERT_LINE); + m_maincpu->set_input_line(M6809_FIRQ_LINE,ASSERT_LINE); return 0xff; } diff --git a/src/mess/video/hp48.c b/src/mess/video/hp48.c index 581decf504b..ad479e30a21 100644 --- a/src/mess/video/hp48.c +++ b/src/mess/video/hp48.c @@ -130,7 +130,7 @@ void hp48_state::palette_init() UINT32 hp48_state::screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { hp48_state *state = machine().driver_data(); - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); int x, y, xp, i, addr; int display = HP48_IO_4(0) >> 3; /* 1=on, 0=off */ int left_margin = HP48_IO_4(0) & 7; /* 0..7 pixels for main bitmap */ diff --git a/src/mess/video/kramermc.c b/src/mess/video/kramermc.c index 6a985fd8862..b75d377e082 100644 --- a/src/mess/video/kramermc.c +++ b/src/mess/video/kramermc.c @@ -30,7 +30,7 @@ void kramermc_state::video_start() UINT32 kramermc_state::screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x,y; - address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); for(y = 0; y < 16; y++ ) { diff --git a/src/mess/video/nubus_48gc.c b/src/mess/video/nubus_48gc.c index 7ea35c54b6e..77cb9e860d9 100644 --- a/src/mess/video/nubus_48gc.c +++ b/src/mess/video/nubus_48gc.c @@ -332,7 +332,7 @@ WRITE32_MEMBER( jmfb_device::mac_48gc_w ) READ32_MEMBER( jmfb_device::mac_48gc_r ) { -// printf("48gc_r: @ %x, mask %08x [PC=%x]\n", offset, mem_mask, machine().device("maincpu")->safe_pc()); +// printf("48gc_r: @ %x, mask %08x [PC=%x]\n", offset, mem_mask, m_maincpu->safe_pc()); switch (offset) { diff --git a/src/mess/video/rm380z.c b/src/mess/video/rm380z.c index 1e5fe666208..a178a35bf99 100644 --- a/src/mess/video/rm380z.c +++ b/src/mess/video/rm380z.c @@ -196,7 +196,7 @@ WRITE8_MEMBER( rm380z_state::videoram_write ) { rm380z_state *state = machine().driver_data(); - //printf("vramw [%2.2x][%2.2x] port0 [%2.2x] fbfd [%2.2x] fbfe [%2.2x] PC [%4.4x]\n",offset,data,state->m_port0,m_fbfd,m_fbfe,machine().device("maincpu")->safe_pc()); + //printf("vramw [%2.2x][%2.2x] port0 [%2.2x] fbfd [%2.2x] fbfe [%2.2x] PC [%4.4x]\n",offset,data,state->m_port0,m_fbfd,m_fbfe,m_maincpu->safe_pc()); int lineWidth=0x80; if (m_videomode==RM380Z_VIDEOMODE_40COL) diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c index c3357bb0960..ec1f72d1872 100644 --- a/src/mess/video/x68k.c +++ b/src/mess/video/x68k.c @@ -452,7 +452,7 @@ WRITE16_MEMBER(x68k_state::x68k_crtc_w ) } break; } -// logerror("CRTC: [%08x] Wrote %04x to CRTC register %i\n",machine().device("maincpu")->safe_pc(),data,offset); +// logerror("CRTC: [%08x] Wrote %04x to CRTC register %i\n",m_maincpu->safe_pc(),data,offset); } READ16_MEMBER(x68k_state::x68k_crtc_r ) @@ -468,7 +468,7 @@ READ16_MEMBER(x68k_state::x68k_crtc_r ) if(offset < 24) { -// logerror("CRTC: [%08x] Read %04x from CRTC register %i\n",machine().device("maincpu")->safe_pc(),m_crtc.reg[offset],offset); +// logerror("CRTC: [%08x] Read %04x from CRTC register %i\n",m_maincpu->safe_pc(),m_crtc.reg[offset],offset); switch(offset) { case 9: @@ -1253,7 +1253,7 @@ UINT32 x68k_state::screen_update_x68000(screen_device &screen, bitmap_ind16 &bit m_mfp.isra = 0; m_mfp.isrb = 0; // mfp_trigger_irq(MFP_IRQ_GPIP6); -// machine().device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x43); +// m_maincpu->set_input_line_and_vector(6,ASSERT_LINE,0x43); } if(machine().input().code_pressed(KEYCODE_9)) { diff --git a/src/mess/video/zx.c b/src/mess/video/zx.c index 6aa979b2b66..b5e38fa6c3c 100644 --- a/src/mess/video/zx.c +++ b/src/mess/video/zx.c @@ -98,8 +98,8 @@ TIMER_CALLBACK_MEMBER(zx_state::zx_ula_nmi) bitmap_ind16 &bitmap = m_bitmap; r.set(r1.min_x, r1.max_x, m_ula_scanline_count, m_ula_scanline_count); bitmap.fill(1, r); -// logerror("ULA %3d[%d] NMI, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) machine().device("maincpu")->state().state_int(Z80_R), (unsigned) machine().device("maincpu")->state().state_int(Z80_PC)); - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); +// logerror("ULA %3d[%d] NMI, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC)); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); if (++m_ula_scanline_count == height) m_ula_scanline_count = 0; } @@ -113,10 +113,10 @@ TIMER_CALLBACK_MEMBER(zx_state::zx_ula_irq) */ if (m_ula_irq_active) { -// logerror("ULA %3d[%d] IRQ, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) machine().device("maincpu")->state().state_int(Z80_R), (unsigned) machine().device("maincpu")->state().state_int(Z80_PC)); +// logerror("ULA %3d[%d] IRQ, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC)); m_ula_irq_active = 0; - machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_maincpu->set_input_line(0, HOLD_LINE); } }