summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/quizshow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/quizshow.cpp')
-rw-r--r--src/mame/drivers/quizshow.cpp15
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