diff options
Diffstat (limited to 'src/mame/drivers/quizshow.cpp')
-rw-r--r-- | src/mame/drivers/quizshow.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mame/drivers/quizshow.cpp b/src/mame/drivers/quizshow.cpp index 4c736e2cf87..1f9a7d7b697 100644 --- a/src/mame/drivers/quizshow.cpp +++ b/src/mame/drivers/quizshow.cpp @@ -45,7 +45,8 @@ public: m_dac(*this, "dac"), m_main_ram(*this, "main_ram"), m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen") + m_screen(*this, "screen"), + m_lamp(*this, "lamp%u", 0U) { } DECLARE_CUSTOM_INPUT_MEMBER(tape_headpos_r); @@ -54,6 +55,7 @@ public: void quizshow(machine_config &config); protected: + virtual void machine_start() override { m_lamp.resolve(); } virtual void machine_reset() override; virtual void video_start() override; void mem_map(address_map &map); @@ -79,6 +81,7 @@ private: required_shared_ptr<uint8_t> m_main_ram; required_device<gfxdecode_device> m_gfxdecode; required_device<screen_device> m_screen; + output_finder<11> m_lamp; tilemap_t *m_tilemap; uint32_t m_clocks; @@ -143,7 +146,7 @@ WRITE8_MEMBER(quizshow_state::lamps1_w) { // d0-d3: P1 answer button lamps for (int i = 0; i < 4; i++) - output().set_lamp_value(i, data >> i & 1); + m_lamp[i] = BIT(data, i); // d4-d7: N/C } @@ -152,7 +155,7 @@ WRITE8_MEMBER(quizshow_state::lamps2_w) { // d0-d3: P2 answer button lamps for (int i = 0; i < 4; i++) - output().set_lamp_value(i + 4, data >> i & 1); + m_lamp[i + 4] = BIT(data, i); // d4-d7: N/C } @@ -160,8 +163,8 @@ WRITE8_MEMBER(quizshow_state::lamps2_w) WRITE8_MEMBER(quizshow_state::lamps3_w) { // d0-d1: start button lamps - output().set_lamp_value(8, data >> 0 & 1); - output().set_lamp_value(9, data >> 1 & 1); + m_lamp[8] = BIT(data, 0); + m_lamp[9] = BIT(data, 1); // d2-d3: unused? (chip is shared with tape_control_w) // d4-d7: N/C @@ -170,7 +173,7 @@ WRITE8_MEMBER(quizshow_state::lamps3_w) WRITE8_MEMBER(quizshow_state::tape_control_w) { // d2: enable user category select (changes tape head position) - output().set_lamp_value(10, data >> 2 & 1); + m_lamp[10] = BIT(data, 2); m_category_enable = (data & 0xc) == 0xc; // d3: tape motor |