summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-05-21 09:36:44 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-05-21 09:36:44 +0200
commit8e0cdb1e18f5c993d418867ea3cd691241c55258 (patch)
tree9f9eb797711a366bd69b92f37ee55431d197e919
parent1a986cdf39db235c4b1ca70e74b3460524a5d0bd (diff)
rd2tank.cpp: device_finder (nw)
-rw-r--r--src/mame/drivers/r2dtank.cpp64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index 29a31bd6271..a6bfd3d1ab1 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -63,10 +63,32 @@ public:
m_palette(*this, "palette"),
m_audiocpu(*this, "audiocpu"),
m_soundlatch(*this, "soundlatch"),
- m_soundlatch2(*this, "soundlatch2") { }
+ m_soundlatch2(*this, "soundlatch2"),
+ m_pia_main(*this, "pia_main"),
+ m_pia_audio(*this, "pia_audio"),
+ m_ay1(*this, "ay1"),
+ m_ay2(*this, "ay2") { }
+ void r2dtank(machine_config &config);
+
+ DECLARE_CUSTOM_INPUT_MEMBER(get_ttl74123_output);
+
+protected:
+ virtual void machine_start() override;
+
+private:
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_colorram;
+ required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
+ required_device<cpu_device> m_audiocpu;
+ required_device<generic_latch_8_device> m_soundlatch;
+ required_device<generic_latch_8_device> m_soundlatch2;
+ required_device<pia6821_device> m_pia_main;
+ required_device<pia6821_device> m_pia_audio;
+ required_device<ay8910_device> m_ay1;
+ required_device<ay8910_device> m_ay2;
+
uint8_t m_flipscreen;
uint32_t m_ttl74123_output;
uint8_t m_AY8910_selected;
@@ -75,40 +97,22 @@ public:
DECLARE_WRITE8_MEMBER(audio_command_w);
DECLARE_READ8_MEMBER(audio_answer_r);
DECLARE_WRITE8_MEMBER(audio_answer_w);
- DECLARE_CUSTOM_INPUT_MEMBER(get_ttl74123_output);
DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
DECLARE_WRITE8_MEMBER(AY8910_select_w);
DECLARE_READ8_MEMBER(AY8910_port_r);
DECLARE_WRITE8_MEMBER(AY8910_port_w);
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
DECLARE_WRITE8_MEMBER(pia_comp_w);
- virtual void machine_start() override;
+
DECLARE_WRITE_LINE_MEMBER(ttl74123_output_changed);
MC6845_UPDATE_ROW(crtc_update_row);
- required_device<cpu_device> m_maincpu;
- required_device<palette_device> m_palette;
- required_device<cpu_device> m_audiocpu;
- required_device<generic_latch_8_device> m_soundlatch;
- required_device<generic_latch_8_device> m_soundlatch2;
- void r2dtank(machine_config &config);
void r2dtank_audio_map(address_map &map);
void r2dtank_main_map(address_map &map);
};
-
-/*************************************
- *
- * Prototypes
- *
- *************************************/
-
-
-
-
-
/*************************************
*
* Interrupt generation
@@ -117,10 +121,8 @@ public:
WRITE_LINE_MEMBER(r2dtank_state::main_cpu_irq)
{
- pia6821_device *pia0 = machine().device<pia6821_device>("pia_main");
- pia6821_device *pia1 = machine().device<pia6821_device>("pia_audio");
- int combined_state = pia0->irq_a_state() | pia0->irq_b_state() |
- pia1->irq_a_state() | pia1->irq_b_state();
+ int combined_state = m_pia_main->irq_a_state() | m_pia_main->irq_b_state() |
+ m_pia_audio->irq_a_state() | m_pia_audio->irq_b_state();
m_maincpu->set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
}
@@ -194,10 +196,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
uint8_t ret = 0;
if (m_AY8910_selected & 0x08)
- ret = machine().device<ay8910_device>("ay1")->data_r(space, 0);
+ ret = m_ay1->data_r(space, 0);
if (m_AY8910_selected & 0x10)
- ret = machine().device<ay8910_device>("ay2")->data_r(space, 0);
+ ret = m_ay2->data_r(space, 0);
return ret;
}
@@ -206,10 +208,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
WRITE8_MEMBER(r2dtank_state::AY8910_port_w)
{
if (m_AY8910_selected & 0x08)
- machine().device<ay8910_device>("ay1")->data_address_w(space, m_AY8910_selected >> 2, data);
+ m_ay1->data_address_w(space, m_AY8910_selected >> 2, data);
if (m_AY8910_selected & 0x10)
- machine().device<ay8910_device>("ay2")->data_address_w(space, m_AY8910_selected >> 2, data);
+ m_ay2->data_address_w(space, m_AY8910_selected >> 2, data);
}
@@ -227,8 +229,7 @@ WRITE8_MEMBER(r2dtank_state::AY8910_port_w)
WRITE_LINE_MEMBER(r2dtank_state::ttl74123_output_changed)
{
- pia6821_device *pia = machine().device<pia6821_device>("pia_main");
- pia->ca1_w(state);
+ m_pia_main->ca1_w(state);
m_ttl74123_output = state;
}
@@ -321,8 +322,7 @@ MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
WRITE8_MEMBER(r2dtank_state::pia_comp_w)
{
- device_t *device = machine().device("pia_main");
- downcast<pia6821_device *>(device)->write(machine().dummy_space(), offset, ~data);
+ m_pia_main->write(machine().dummy_space(), offset, ~data);
}