diff options
author | wilbertpol <wilbertpol@users.noreply.github.com> | 2018-05-20 19:27:20 +0200 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2018-05-20 13:27:20 -0400 |
commit | 2beba4ce73fad917c7159a39939bace54f76494b (patch) | |
tree | e9d33c059bc5045f13d0c1748f0a044650370b8d /src/mame/drivers/mgames.cpp | |
parent | acf93837ac21b2b0bb003d1649b893200c269812 (diff) |
Replace set_led_value and set_lamp_value with output_finders. [Wilbe… (#3592)
* Replace set_led_value and set_lamp_value with output_finders. [Wilbert Pol]
* segaufo: keep the 2 bit lamp outputs
Diffstat (limited to 'src/mame/drivers/mgames.cpp')
-rw-r--r-- | src/mame/drivers/mgames.cpp | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/src/mame/drivers/mgames.cpp b/src/mame/drivers/mgames.cpp index 88cbab619ae..e69101cc0a0 100644 --- a/src/mame/drivers/mgames.cpp +++ b/src/mame/drivers/mgames.cpp @@ -225,16 +225,15 @@ class mgames_state : public driver_device { public: - mgames_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + mgames_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_video(*this, "video"), m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_lamp(*this, "lamp%u", 0U) + { } - uint8_t m_output[8]; - required_shared_ptr<uint8_t> m_video; - int m_mixdata; DECLARE_READ8_MEMBER(mixport_r); DECLARE_WRITE8_MEMBER(outport0_w); DECLARE_WRITE8_MEMBER(outport1_w); @@ -244,14 +243,22 @@ public: DECLARE_WRITE8_MEMBER(outport5_w); DECLARE_WRITE8_MEMBER(outport6_w); DECLARE_WRITE8_MEMBER(outport7_w); - virtual void video_start() override; DECLARE_PALETTE_INIT(mgames); uint32_t screen_update_mgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void mgames(machine_config &config); + void main_map(address_map &map); + +protected: + virtual void machine_start() override { m_lamp.resolve(); } + virtual void video_start() override; + + uint8_t m_output[8]; + required_shared_ptr<uint8_t> m_video; + int m_mixdata; required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; - void mgames(machine_config &config); - void main_map(address_map &map); + output_finder<10> m_lamp; }; @@ -349,8 +356,8 @@ READ8_MEMBER(mgames_state::mixport_r) WRITE8_MEMBER(mgames_state::outport0_w) { - output().set_lamp_value(1, (data & 1)); /* Lamp 1 - BET */ - output().set_lamp_value(5, (data >> 1) & 1); /* Lamp 5 - HOLD 1 */ + m_lamp[1] = BIT(data, 0); /* Lamp 1 - BET */ + m_lamp[5] = BIT(data, 1); /* Lamp 5 - HOLD 1 */ m_output[0] = data; popmessage("outport0 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]); @@ -370,8 +377,8 @@ WRITE8_MEMBER(mgames_state::outport0_w) WRITE8_MEMBER(mgames_state::outport1_w) { - output().set_lamp_value(2, (data & 1)); /* Lamp 2 - DEAL */ - output().set_lamp_value(6, (data >> 1) & 1); /* Lamp 6 - HOLD 2 */ + m_lamp[2] = BIT(data, 0); /* Lamp 2 - DEAL */ + m_lamp[6] = BIT(data, 1); /* Lamp 6 - HOLD 2 */ m_output[1] = data; popmessage("outport1 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]); @@ -391,8 +398,8 @@ WRITE8_MEMBER(mgames_state::outport1_w) WRITE8_MEMBER(mgames_state::outport2_w) { - output().set_lamp_value(3, (data & 1)); /* Lamp 3 - CANCEL */ - output().set_lamp_value(7, (data >> 1) & 1); /* Lamp 7 - HOLD 3 */ + m_lamp[3] = BIT(data, 0); /* Lamp 3 - CANCEL */ + m_lamp[7] = BIT(data, 1); /* Lamp 7 - HOLD 3 */ m_output[2] = data; popmessage("outport2 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]); @@ -412,8 +419,8 @@ WRITE8_MEMBER(mgames_state::outport2_w) WRITE8_MEMBER(mgames_state::outport3_w) { - output().set_lamp_value(4, (data & 1)); /* Lamp 4 - STAND */ - output().set_lamp_value(8, (data >> 1) & 1); /* Lamp 8 - HOLD 4 */ + m_lamp[4] = BIT(data, 0); /* Lamp 4 - STAND */ + m_lamp[8] = BIT(data, 1); /* Lamp 8 - HOLD 4 */ m_output[3] = data; popmessage("outport3 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]); @@ -433,7 +440,7 @@ WRITE8_MEMBER(mgames_state::outport3_w) WRITE8_MEMBER(mgames_state::outport4_w) { - output().set_lamp_value(9, (data >> 1) & 1); /* Lamp 9 - HOLD 5 */ + m_lamp[9] = BIT(data, 1); /* Lamp 9 - HOLD 5 */ m_output[4] = data; popmessage("outport4 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]); |