summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2018-04-06 10:40:47 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2018-04-06 10:40:47 +1000
commit707764f7d62f3c9938249c48aa7600739a71204e (patch)
treef9faef5b8713cd70064282f36e4499bf18d0edcb
parent6e9cf05474e0c124fe24f68967eccf26f18d1914 (diff)
(nw) output finder for llc1 and ut88mini
-rw-r--r--src/mame/includes/llc.h2
-rw-r--r--src/mame/includes/ut88.h43
-rw-r--r--src/mame/machine/llc.cpp6
-rw-r--r--src/mame/machine/ut88.cpp3
4 files changed, 32 insertions, 22 deletions
diff --git a/src/mame/includes/llc.h b/src/mame/includes/llc.h
index 400ccfe245a..f81f74fcca0 100644
--- a/src/mame/includes/llc.h
+++ b/src/mame/includes/llc.h
@@ -30,6 +30,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_ram(*this, RAM_TAG)
, m_p_chargen(*this, "chargen")
+ , m_digits(*this, "digit%u", 0U)
{ }
DECLARE_WRITE8_MEMBER(llc2_rom_disable_w);
@@ -68,6 +69,7 @@ private:
required_device<cpu_device> m_maincpu;
optional_device<ram_device> m_ram;
required_region_ptr<u8> m_p_chargen;
+ output_finder<8> m_digits;
};
#endif // MAME_INCLUDES_LLC_H
diff --git a/src/mame/includes/ut88.h b/src/mame/includes/ut88.h
index 263328cb02b..2b58f83afc4 100644
--- a/src/mame/includes/ut88.h
+++ b/src/mame/includes/ut88.h
@@ -26,26 +26,28 @@ public:
};
ut88_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_cassette(*this, "cassette"),
- m_ppi(*this, "ppi8255"),
- m_dac(*this, "dac"),
- m_p_videoram(*this, "videoram"),
- m_region_maincpu(*this, "maincpu"),
- m_region_proms(*this, "proms"),
- m_bank1(*this, "bank1"),
- m_io_line0(*this, "LINE0"),
- m_io_line1(*this, "LINE1"),
- m_io_line2(*this, "LINE2"),
- m_io_line3(*this, "LINE3"),
- m_io_line4(*this, "LINE4"),
- m_io_line5(*this, "LINE5"),
- m_io_line6(*this, "LINE6"),
- m_io_line7(*this, "LINE7"),
- m_io_line8(*this, "LINE8") ,
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ : driver_device(mconfig, type, tag)
+ , m_cassette(*this, "cassette")
+ , m_ppi(*this, "ppi8255")
+ , m_dac(*this, "dac")
+ , m_p_videoram(*this, "videoram")
+ , m_region_maincpu(*this, "maincpu")
+ , m_region_proms(*this, "proms")
+ , m_bank1(*this, "bank1")
+ , m_io_line0(*this, "LINE0")
+ , m_io_line1(*this, "LINE1")
+ , m_io_line2(*this, "LINE2")
+ , m_io_line3(*this, "LINE3")
+ , m_io_line4(*this, "LINE4")
+ , m_io_line5(*this, "LINE5")
+ , m_io_line6(*this, "LINE6")
+ , m_io_line7(*this, "LINE7")
+ , m_io_line8(*this, "LINE8")
+ , m_maincpu(*this, "maincpu")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ , m_digits(*this, "digit%u", 0U)
+ { }
DECLARE_READ8_MEMBER(ut88_keyboard_r);
DECLARE_WRITE8_MEMBER(ut88_keyboard_w);
@@ -92,6 +94,7 @@ private:
required_device<cpu_device> m_maincpu;
optional_device<gfxdecode_device> m_gfxdecode;
optional_device<palette_device> m_palette;
+ output_finder<6> m_digits;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
};
diff --git a/src/mame/machine/llc.cpp b/src/mame/machine/llc.cpp
index bf9beffe2ce..da38ec324a1 100644
--- a/src/mame/machine/llc.cpp
+++ b/src/mame/machine/llc.cpp
@@ -82,7 +82,10 @@ WRITE8_MEMBER(llc_state::llc1_port1_b_w)
count++;
if (count == 1)
- output().set_digit_value(digit, data & 0x7f);
+ {
+ if (digit < 8)
+ m_digits[digit] = data & 0x7f;
+ }
else
if (count == 3)
{
@@ -103,6 +106,7 @@ MACHINE_RESET_MEMBER(llc_state,llc1)
MACHINE_START_MEMBER(llc_state,llc1)
{
+ m_digits.resolve();
}
/* Driver initialization */
diff --git a/src/mame/machine/ut88.cpp b/src/mame/machine/ut88.cpp
index caaa2a2542d..b649c00a59f 100644
--- a/src/mame/machine/ut88.cpp
+++ b/src/mame/machine/ut88.cpp
@@ -44,7 +44,7 @@ void ut88_state::device_timer(emu_timer &timer, device_timer_id id, int param, v
break;
case TIMER_UPDATE_DISPLAY:
for (int i=0;i<6;i++)
- output().set_digit_value(i, hex_to_7seg[m_lcd_digit[i]]);
+ m_digits[i] = hex_to_7seg[m_lcd_digit[i]];
timer_set(attotime::from_hz(60), TIMER_UPDATE_DISPLAY);
break;
default:
@@ -167,6 +167,7 @@ DRIVER_INIT_MEMBER(ut88_state,ut88mini)
MACHINE_START_MEMBER(ut88_state,ut88mini)
{
+ m_digits.resolve();
timer_set(attotime::from_hz(60), TIMER_UPDATE_DISPLAY);
}