summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-04-10 11:31:17 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-04-10 11:31:17 +0000
commit10d146a6be20998acfca4e5533c8fe35f50ada9e (patch)
tree963d8ffd698ed08017935ac958a333e7b8a20290 /src/mess/drivers
parenta77e9c9f62b001c1519f8a3262524c5347f78f36 (diff)
changed machine().device("maincpu") with m_maincpu in mess tree part (nw)
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/4004clk.c2
-rw-r--r--src/mess/drivers/a2600.c4
-rw-r--r--src/mess/drivers/a51xx.c4
-rw-r--r--src/mess/drivers/a6809.c4
-rw-r--r--src/mess/drivers/a7000.c6
-rw-r--r--src/mess/drivers/a7150.c4
-rw-r--r--src/mess/drivers/altair.c2
-rw-r--r--src/mess/drivers/amico2k.c4
-rw-r--r--src/mess/drivers/apc.c4
-rw-r--r--src/mess/drivers/apexc.c4
-rw-r--r--src/mess/drivers/applix.c2
-rw-r--r--src/mess/drivers/astrocde.c4
-rw-r--r--src/mess/drivers/b16.c4
-rw-r--r--src/mess/drivers/babbage.c2
-rw-r--r--src/mess/drivers/basic52.c4
-rw-r--r--src/mess/drivers/bbcbc.c2
-rw-r--r--src/mess/drivers/besta.c2
-rw-r--r--src/mess/drivers/binbug.c4
-rw-r--r--src/mess/drivers/bml3.c4
-rw-r--r--src/mess/drivers/busicom.c2
-rw-r--r--src/mess/drivers/c900.c4
-rw-r--r--src/mess/drivers/camplynx.c2
-rw-r--r--src/mess/drivers/casloopy.c6
-rw-r--r--src/mess/drivers/cat.c10
-rw-r--r--src/mess/drivers/cfx9850.c4
-rw-r--r--src/mess/drivers/chaos.c4
-rw-r--r--src/mess/drivers/chessmst.c4
-rw-r--r--src/mess/drivers/chesstrv.c6
-rw-r--r--src/mess/drivers/clcd.c4
-rw-r--r--src/mess/drivers/cm1800.c4
-rw-r--r--src/mess/drivers/codata.c6
-rw-r--r--src/mess/drivers/cortex.c4
-rw-r--r--src/mess/drivers/cp1.c4
-rw-r--r--src/mess/drivers/craft.c2
-rw-r--r--src/mess/drivers/csc.c6
-rw-r--r--src/mess/drivers/cxhumax.c12
-rw-r--r--src/mess/drivers/dccons.c4
-rw-r--r--src/mess/drivers/dct11em.c4
-rw-r--r--src/mess/drivers/dectalk.c22
-rw-r--r--src/mess/drivers/dim68k.c2
-rw-r--r--src/mess/drivers/dms5000.c4
-rw-r--r--src/mess/drivers/dual68.c2
-rw-r--r--src/mess/drivers/ec65.c4
-rw-r--r--src/mess/drivers/enterp.c4
-rw-r--r--src/mess/drivers/ex800.c6
-rw-r--r--src/mess/drivers/fidelz80.c2
-rw-r--r--src/mess/drivers/fk1.c6
-rw-r--r--src/mess/drivers/fm7.c8
-rw-r--r--src/mess/drivers/fmtowns.c8
-rw-r--r--src/mess/drivers/fp1100.c8
-rw-r--r--src/mess/drivers/fp6000.c4
-rw-r--r--src/mess/drivers/genpc.c4
-rw-r--r--src/mess/drivers/gizmondo.c6
-rw-r--r--src/mess/drivers/glasgow.c4
-rw-r--r--src/mess/drivers/gmaster.c2
-rw-r--r--src/mess/drivers/h19.c6
-rw-r--r--src/mess/drivers/h8.c6
-rw-r--r--src/mess/drivers/horizon.c4
-rw-r--r--src/mess/drivers/hp16500.c4
-rw-r--r--src/mess/drivers/hp49gp.c6
-rw-r--r--src/mess/drivers/ht68k.c2
-rw-r--r--src/mess/drivers/hx20.c4
-rw-r--r--src/mess/drivers/ibmpc.c4
-rw-r--r--src/mess/drivers/if800.c4
-rw-r--r--src/mess/drivers/indiana.c4
-rw-r--r--src/mess/drivers/ip20.c6
-rw-r--r--src/mess/drivers/ipc.c2
-rw-r--r--src/mess/drivers/itt3030.c2
-rw-r--r--src/mess/drivers/jr100.c4
-rw-r--r--src/mess/drivers/juicebox.c2
-rw-r--r--src/mess/drivers/junior.c6
-rw-r--r--src/mess/drivers/k1003.c4
-rw-r--r--src/mess/drivers/konin.c4
-rw-r--r--src/mess/drivers/lynx.c5
-rw-r--r--src/mess/drivers/m20.c4
-rw-r--r--src/mess/drivers/m79152pc.c4
-rw-r--r--src/mess/drivers/mac.c4
-rw-r--r--src/mess/drivers/mbc200.c4
-rw-r--r--src/mess/drivers/mc10.c2
-rw-r--r--src/mess/drivers/megadriv.c18
-rw-r--r--src/mess/drivers/mekd2.c4
-rw-r--r--src/mess/drivers/merlin.c4
-rw-r--r--src/mess/drivers/microdec.c4
-rw-r--r--src/mess/drivers/mk1.c4
-rw-r--r--src/mess/drivers/mk14.c4
-rw-r--r--src/mess/drivers/mk2.c2
-rw-r--r--src/mess/drivers/mk85.c4
-rw-r--r--src/mess/drivers/mk90.c4
-rw-r--r--src/mess/drivers/mmd1.c4
-rw-r--r--src/mess/drivers/mmodular.c12
-rw-r--r--src/mess/drivers/mod8.c8
-rw-r--r--src/mess/drivers/multi16.c4
-rw-r--r--src/mess/drivers/mz6500.c4
-rw-r--r--src/mess/drivers/nc.c2
-rw-r--r--src/mess/drivers/nes.c2
-rw-r--r--src/mess/drivers/ngp.c4
-rw-r--r--src/mess/drivers/okean240.c4
-rw-r--r--src/mess/drivers/p112.c4
-rw-r--r--src/mess/drivers/p2000t.c2
-rw-r--r--src/mess/drivers/p8k.c2
-rw-r--r--src/mess/drivers/palmz22.c2
-rw-r--r--src/mess/drivers/paso1600.c2
-rw-r--r--src/mess/drivers/pasogo.c4
-rw-r--r--src/mess/drivers/pasopia7.c4
-rw-r--r--src/mess/drivers/pb1000.c4
-rw-r--r--src/mess/drivers/pc100.c8
-rw-r--r--src/mess/drivers/pc8801.c6
-rw-r--r--src/mess/drivers/pc88va.c6
-rw-r--r--src/mess/drivers/pc9801.c6
-rw-r--r--src/mess/drivers/pce.c2
-rw-r--r--src/mess/drivers/pcw.c4
-rw-r--r--src/mess/drivers/pdp11.c4
-rw-r--r--src/mess/drivers/pegasus.c2
-rw-r--r--src/mess/drivers/pes.c8
-rw-r--r--src/mess/drivers/pimps.c4
-rw-r--r--src/mess/drivers/pipbug.c4
-rw-r--r--src/mess/drivers/pmi80.c4
-rw-r--r--src/mess/drivers/pockstat.c16
-rw-r--r--src/mess/drivers/prestige.c2
-rw-r--r--src/mess/drivers/psion.c2
-rw-r--r--src/mess/drivers/psx.c4
-rw-r--r--src/mess/drivers/pt68k4.c6
-rw-r--r--src/mess/drivers/pv2000.c8
-rw-r--r--src/mess/drivers/pv9234.c4
-rw-r--r--src/mess/drivers/px4.c4
-rw-r--r--src/mess/drivers/pyl601.c4
-rw-r--r--src/mess/drivers/qx10.c8
-rw-r--r--src/mess/drivers/rainbow.c4
-rw-r--r--src/mess/drivers/rd110.c4
-rw-r--r--src/mess/drivers/rmt32.c4
-rw-r--r--src/mess/drivers/rt1715.c4
-rw-r--r--src/mess/drivers/rvoice.c4
-rw-r--r--src/mess/drivers/rx78.c2
-rw-r--r--src/mess/drivers/samcoupe.c8
-rw-r--r--src/mess/drivers/saturn.c36
-rw-r--r--src/mess/drivers/sbc6510.c4
-rw-r--r--src/mess/drivers/sc2.c4
-rw-r--r--src/mess/drivers/sdk85.c4
-rw-r--r--src/mess/drivers/sdk86.c4
-rw-r--r--src/mess/drivers/selz80.c4
-rw-r--r--src/mess/drivers/sgi_ip6.c4
-rw-r--r--src/mess/drivers/sm1800.c2
-rw-r--r--src/mess/drivers/sms.c2
-rw-r--r--src/mess/drivers/socrates.c4
-rw-r--r--src/mess/drivers/spc1000.c6
-rw-r--r--src/mess/drivers/ssem.c4
-rw-r--r--src/mess/drivers/stopthie.c4
-rw-r--r--src/mess/drivers/sun1.c2
-rw-r--r--src/mess/drivers/sun2.c2
-rw-r--r--src/mess/drivers/sun3.c2
-rw-r--r--src/mess/drivers/sun4.c4
-rw-r--r--src/mess/drivers/sys2900.c4
-rw-r--r--src/mess/drivers/tec1.c4
-rw-r--r--src/mess/drivers/terak.c4
-rw-r--r--src/mess/drivers/test_t400.c4
-rw-r--r--src/mess/drivers/ti990_10.c4
-rw-r--r--src/mess/drivers/ti990_4.c6
-rw-r--r--src/mess/drivers/ti99_2.c4
-rw-r--r--src/mess/drivers/tm990189.c4
-rw-r--r--src/mess/drivers/tricep.c2
-rw-r--r--src/mess/drivers/tsispch.c4
-rw-r--r--src/mess/drivers/tutor.c4
-rw-r--r--src/mess/drivers/tx0.c44
-rw-r--r--src/mess/drivers/uknc.c4
-rw-r--r--src/mess/drivers/unior.c6
-rw-r--r--src/mess/drivers/unistar.c4
-rw-r--r--src/mess/drivers/vboy.c4
-rw-r--r--src/mess/drivers/vector4.c2
-rw-r--r--src/mess/drivers/vg5k.c6
-rw-r--r--src/mess/drivers/vii.c28
-rw-r--r--src/mess/drivers/vt100.c4
-rw-r--r--src/mess/drivers/vt220.c4
-rw-r--r--src/mess/drivers/vt240.c2
-rw-r--r--src/mess/drivers/vt320.c4
-rw-r--r--src/mess/drivers/vt520.c6
-rw-r--r--src/mess/drivers/vtech1.c8
-rw-r--r--src/mess/drivers/vtech2.c2
-rw-r--r--src/mess/drivers/x68k.c44
-rw-r--r--src/mess/drivers/z100.c2
-rw-r--r--src/mess/drivers/z1013.c2
-rw-r--r--src/mess/drivers/zrt80.c4
181 files changed, 557 insertions, 372 deletions
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<cpu_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<cpu_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<via6522_device> m_via;
required_shared_ptr<UINT8> m_videoram;
@@ -35,6 +36,7 @@ public:
UINT8 m_keydata;
virtual void machine_reset();
+ required_device<cpu_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<cpu_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<cpu_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<cpu_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_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_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<UINT16> m_vram;
@@ -43,6 +44,7 @@ public:
i8237_device *m_dma8237;
virtual void machine_start();
virtual void machine_reset();
+ required_device<cpu_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<cassette_image_device> m_cass;
required_shared_ptr<const UINT8> m_p_videoram;
required_shared_ptr<const UINT8> m_p_attribram;
+ required_device<cpu_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<cpu_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<UINT32> m_bios_rom;
required_shared_ptr<UINT32> 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<cpu_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<cpu_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<generic_terminal_device> m_terminal;
required_shared_ptr<UINT8> m_p_ram;
+ required_device<cpu_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<speaker_sound_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<cpu_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<cpu_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<cpu_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<generic_terminal_device> m_terminal;
virtual void machine_reset();
+ required_device<cpu_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<UINT16> 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<cpu_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<cpu_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<cpu_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<s14001a_device> m_speech;
@@ -47,6 +48,7 @@ public:
UINT8 m_selector;
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer);
+ required_device<cpu_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<cpu_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<cpu_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<cpu_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<UINT8> m_p_videoram;
virtual void machine_reset();
virtual void video_start();
+ required_device<cpu_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<cpu_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_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_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<UINT16> 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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<upd7220_device> m_hgdc;
required_shared_ptr<UINT8> m_video_ram;
virtual void machine_start();
virtual void machine_reset();
+ required_device<cpu_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<cpu_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<scc8530_t> m_scc;
required_device<eeprom_device> m_eeprom;
inline void ATTR_PRINTF(3,4) verboselog(int n_level, const char *s_fmt, ... );
+ required_device<cpu_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<UINT8> m_ram;
required_shared_ptr<UINT8> m_pcg;
@@ -79,6 +80,7 @@ protected:
required_ioport m_line6;
required_ioport m_line7;
required_ioport m_line8;
+ required_device<cpu_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<riot6532_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<cpu_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<cpu_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<cpu_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<lynx_state>();
+ 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<UINT8> 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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<teleprinter_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<cpu_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<upd7220_device> m_hgdc;
required_device<upd765a_device> m_fdc;
@@ -30,6 +31,7 @@ public:
required_shared_ptr<UINT8> m_video_ram;
virtual void machine_reset();
virtual void video_start();
+ required_device<cpu_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<cpu_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<cpu_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<cpu_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<msm58321_device> m_rtc;
required_shared_ptr<UINT16> 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<cpu_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<i8255_device>("ppi8255_sys")->read(space, 2) & ~0x20;
machine().device<i8255_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<generic_terminal_device> m_terminal;
+ required_device<cpu_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<serial_terminal_device> m_terminal;
+ required_device<cpu_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<cpu_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<UINT32> 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<cpu_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<cpu_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<UINT16> 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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<pit8253_device> m_pit_1;
required_device<pit8253_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<cpu_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<vt100_video_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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_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<cpu_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<beep_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<mc6847_base_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<cpu_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_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<cpu_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<UINT8> 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<cpu_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<tms9980a_device> m_tms9980a;
required_device<speaker_sound_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<cpu_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<cpu_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<cpu_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<cpu_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_device>(RAM_TAG)->pointer();
UINT16 ram_size = machine().device<ram_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<cpu_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<cpu_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<cpu_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<mc6847_base_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<cpu_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<mc6845_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 )