diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-03 20:32:32 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-03 20:32:32 +1000 |
commit | 63026947dd4e1f581475a908469aa915f0b94746 (patch) | |
tree | 65561e4a4f65b2a076f570922b87c528f52e1c92 | |
parent | cb498414243a3cd977d9d3c69350ed88d696c5e8 (diff) |
(nw) output finder for by6803,model1,st_mp200,videopkr
-rw-r--r-- | src/mame/drivers/by6803.cpp | 13 | ||||
-rw-r--r-- | src/mame/drivers/model1.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/st_mp200.cpp | 13 | ||||
-rw-r--r-- | src/mame/drivers/videopkr.cpp | 16 | ||||
-rw-r--r-- | src/mame/includes/model1.h | 3 | ||||
-rw-r--r-- | src/mame/machine/model1.cpp | 1 |
6 files changed, 31 insertions, 19 deletions
diff --git a/src/mame/drivers/by6803.cpp b/src/mame/drivers/by6803.cpp index 7143cd34801..a427761af69 100644 --- a/src/mame/drivers/by6803.cpp +++ b/src/mame/drivers/by6803.cpp @@ -44,6 +44,7 @@ public: , m_io_x2(*this, "X2") , m_io_x3(*this, "X3") , m_io_x4(*this, "X4") + , m_digits(*this, "digit%u", 0U) { } DECLARE_DRIVER_INIT(by6803); @@ -78,6 +79,7 @@ private: //uint8_t m_digit; uint8_t m_segment; virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } required_device<m6803_cpu_device> m_maincpu; required_device<pia6821_device> m_pia0; required_device<pia6821_device> m_pia1; @@ -87,6 +89,7 @@ private: required_ioport m_io_x2; required_ioport m_io_x3; required_ioport m_io_x4; + output_finder<40> m_digits; }; @@ -229,19 +232,19 @@ WRITE8_MEMBER( by6803_state::pia0_a_w ) switch (m_pia0_a) { case 0x10: // wrong - output().set_digit_value(m_digit, m_segment); + m_digits[m_digit] = m_segment; break; case 0x1d: - output().set_digit_value(8+m_digit, m_segment); + m_digits[8+m_digit] = m_segment; break; case 0x1b: - output().set_digit_value(16+m_digit, m_segment); + m_digits[16+m_digit] = m_segment; break; case 0x07: - output().set_digit_value(24+m_digit, m_segment); + m_digits[24+m_digit] = m_segment; break; case 0x0f: - output().set_digit_value(32+m_digit, m_segment); + m_digits[32+m_digit] m_segment; break; default: break; diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp index e2a101227bf..39bc2d1b2f6 100644 --- a/src/mame/drivers/model1.cpp +++ b/src/mame/drivers/model1.cpp @@ -673,11 +673,11 @@ WRITE16_MEMBER(model1_state::io_w) output().set_led_value(4, data & 0x40); // VIEW4 output().set_led_value(5, data & 0x80); // RACE LEADER m_lamp_state = data; - output().set_digit_value(1, data); + m_digits[1] = data; return; } else if (offset == 0x11) { // drive board commands - output().set_digit_value(0, data); + m_digits[0] = data; return; } logerror("IOW: %02x %02x\n", offset, data); diff --git a/src/mame/drivers/st_mp200.cpp b/src/mame/drivers/st_mp200.cpp index cc74fb852e7..3ce08a92113 100644 --- a/src/mame/drivers/st_mp200.cpp +++ b/src/mame/drivers/st_mp200.cpp @@ -48,6 +48,7 @@ public: , m_io_x2(*this, "X2") , m_io_x3(*this, "X3") , m_io_x4(*this, "X4") + , m_digits(*this, "digit%u", 0U) { } DECLARE_DRIVER_INIT(st_mp200); @@ -101,6 +102,7 @@ private: required_ioport m_io_x2; required_ioport m_io_x3; required_ioport m_io_x4; + output_finder<47> m_digits; }; @@ -465,11 +467,11 @@ WRITE8_MEMBER( st_mp200_state::u11_a_w ) if (BIT(data, 0) && (m_counter > 8)) { static const uint8_t patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543 - output().set_digit_value(m_digit, patterns[m_segment[0]]); - output().set_digit_value(10+m_digit, patterns[m_segment[1]]); - output().set_digit_value(20+m_digit, patterns[m_segment[2]]); - output().set_digit_value(30+m_digit, patterns[m_segment[3]]); - output().set_digit_value(40+m_digit, patterns[m_segment[4]]); + m_digits[m_digit] = patterns[m_segment[0]]; + m_digits[10+m_digit] = patterns[m_segment[1]]; + m_digits[20+m_digit] = patterns[m_segment[2]]; + m_digits[30+m_digit] = patterns[m_segment[3]]; + m_digits[40+m_digit] = patterns[m_segment[4]]; } } } @@ -531,6 +533,7 @@ WRITE8_MEMBER( st_mp200_state::u11_b_w ) void st_mp200_state::machine_start() { + m_digits.resolve(); } void st_mp200_state::machine_reset() diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp index 25eeb0250a0..b64eebcd605 100644 --- a/src/mame/drivers/videopkr.cpp +++ b/src/mame/drivers/videopkr.cpp @@ -305,11 +305,13 @@ class videopkr_state : public driver_device { public: videopkr_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_soundcpu(*this, "soundcpu"), - m_dac(*this, "dac"), - m_gfxdecode(*this, "gfxdecode") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_soundcpu(*this, "soundcpu") + , m_dac(*this, "dac") + , m_gfxdecode(*this, "gfxdecode") + , m_digits(*this, "digit%u", 0U) + { } uint8_t m_data_ram[0x100]; uint8_t m_video_ram[0x0400]; @@ -379,6 +381,7 @@ public: required_device<cpu_device> m_soundcpu; required_device<dac_byte_interface> m_dac; required_device<gfxdecode_device> m_gfxdecode; + output_finder<28> m_digits; void babypkr(machine_config &config); void videodad(machine_config &config); void videopkr(machine_config &config); @@ -433,7 +436,7 @@ void videopkr_state::count_7dig(unsigned long data, uint8_t index) for (i = 0; i < 7; i++) { - output().set_digit_value(index+i, dec_7seg((strn[6 - i] | 0x10) - 0x30)); + m_digits[index+i] = dec_7seg((strn[6 - i] | 0x10) - 0x30); } } @@ -1241,6 +1244,7 @@ GFXDECODE_END void videopkr_state::machine_start() { + m_digits.resolve(); m_vp_sound_p2 = 0xff; /* default P2 latch value */ m_sound_latch = 0xff; /* default sound data latch value */ m_p24_data = 0xff; diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h index 4ea3866ae15..062fe7c876e 100644 --- a/src/mame/includes/model1.h +++ b/src/mame/includes/model1.h @@ -52,6 +52,7 @@ public: , m_tiles(*this, "tile") , m_analog_ports(*this, "AN.%u", 0) , m_digital_ports(*this, "IN.%u", 0) + , m_digits(*this, "digit%u", 0U) { } @@ -501,7 +502,7 @@ private: uint16_t m_lamp_state; optional_ioport_array<8> m_analog_ports; required_ioport_array<3> m_digital_ports; - + output_finder<2> m_digits; }; diff --git a/src/mame/machine/model1.cpp b/src/mame/machine/model1.cpp index f12e8a45e47..d5693f8d658 100644 --- a/src/mame/machine/model1.cpp +++ b/src/mame/machine/model1.cpp @@ -1934,6 +1934,7 @@ WRITE16_MEMBER(model1_state::model1_tgp_copro_ram_w) MACHINE_START_MEMBER(model1_state,model1) { + m_digits.resolve(); m_ram_data = std::make_unique<uint32_t[]>(0x10000); m_io_command = 0; |