diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-04 09:56:25 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-04 09:56:25 +1000 |
commit | 7d96346c6a9e997e647ab6a943f5230ba6a7dc38 (patch) | |
tree | 2508b6807aa99de57584499f103a2cce66ab8669 | |
parent | 5397a78d9cfe58ab8e7a359e552cf3614fd91be6 (diff) |
(nw) output finder for vd,zac_1,zac_2,zac_proto
-rw-r--r-- | src/mame/drivers/vd.cpp | 21 | ||||
-rw-r--r-- | src/mame/drivers/zac_1.cpp | 22 | ||||
-rw-r--r-- | src/mame/drivers/zac_2.cpp | 22 | ||||
-rw-r--r-- | src/mame/drivers/zac_proto.cpp | 9 |
4 files changed, 36 insertions, 38 deletions
diff --git a/src/mame/drivers/vd.cpp b/src/mame/drivers/vd.cpp index 587934dfed5..0509f5f34ff 100644 --- a/src/mame/drivers/vd.cpp +++ b/src/mame/drivers/vd.cpp @@ -31,6 +31,7 @@ public: vd_state(const machine_config &mconfig, device_type type, const char *tag) : genpin_class(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_digits(*this, "digit%u", 0U) { } DECLARE_READ8_MEMBER(ack_r); @@ -42,16 +43,14 @@ public: void vd(machine_config &config); void vd_io(address_map &map); void vd_map(address_map &map); -protected: - // devices - required_device<cpu_device> m_maincpu; - - // driver_device overrides - virtual void machine_reset() override; private: uint8_t m_t_c; uint8_t segment[5]; + virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } + required_device<cpu_device> m_maincpu; + output_finder<60> m_digits; }; @@ -173,11 +172,11 @@ WRITE8_MEMBER( vd_state::col_w ) if (data != 0x3f) { data &= 7; - output().set_digit_value(data + 11, segment[0]); - output().set_digit_value(data + 21, segment[1]); - output().set_digit_value(data + 31, segment[2]); - output().set_digit_value(data + 41, segment[3]); - output().set_digit_value(data + 51, segment[4]); + m_digits[data + 11] = segment[0]; + m_digits[data + 21] = segment[1]; + m_digits[data + 31] = segment[2]; + m_digits[data + 41] = segment[3]; + m_digits[data + 51] = segment[4]; } } diff --git a/src/mame/drivers/zac_1.cpp b/src/mame/drivers/zac_1.cpp index 128017046b7..8e5e590ab87 100644 --- a/src/mame/drivers/zac_1.cpp +++ b/src/mame/drivers/zac_1.cpp @@ -40,9 +40,10 @@ class zac_1_state : public genpin_class { public: zac_1_state(const machine_config &mconfig, device_type type, const char *tag) - : genpin_class(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_p_ram(*this, "ram") + : genpin_class(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_p_ram(*this, "ram") + , m_digits(*this, "digit%u", 0U) { } DECLARE_READ8_MEMBER(ctrl_r); @@ -61,18 +62,15 @@ public: void zac_1_data(address_map &map); void zac_1_io(address_map &map); void zac_1_map(address_map &map); -protected: - - // devices - required_device<cpu_device> m_maincpu; - required_shared_ptr<uint8_t> m_p_ram; - - // driver_device overrides - virtual void machine_reset() override; private: uint8_t m_t_c; uint8_t m_out_offs; uint8_t m_input_line; + virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } + required_device<cpu_device> m_maincpu; + required_shared_ptr<uint8_t> m_p_ram; + output_finder<78> m_digits; }; @@ -242,7 +240,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_1_state::zac_1_outtimer) { uint8_t display = (m_out_offs >> 3) & 7; uint8_t digit = m_out_offs & 7; - output().set_digit_value(display * 10 + digit, patterns[m_p_ram[m_out_offs]&15]); + m_digits[display * 10 + digit] = patterns[m_p_ram[m_out_offs]&15]; } else if (m_out_offs == 0x4a) // outhole diff --git a/src/mame/drivers/zac_2.cpp b/src/mame/drivers/zac_2.cpp index 19ee625eab9..52f2e45ad69 100644 --- a/src/mame/drivers/zac_2.cpp +++ b/src/mame/drivers/zac_2.cpp @@ -22,6 +22,7 @@ public: , m_maincpu(*this, "maincpu") , m_p_ram(*this, "ram") , m_row(*this, "ROW.%u", 0) + , m_digits(*this, "digit%u", 0U) { } DECLARE_READ8_MEMBER(ctrl_r); @@ -30,25 +31,22 @@ public: DECLARE_WRITE8_MEMBER(data_w); DECLARE_READ_LINE_MEMBER(serial_r); DECLARE_WRITE_LINE_MEMBER(serial_w); - uint8_t m_t_c; - uint8_t m_out_offs; - required_device<cpu_device> m_maincpu; - required_shared_ptr<uint8_t> m_p_ram; - required_ioport_array<6> m_row; TIMER_DEVICE_CALLBACK_MEMBER(zac_2_inttimer); TIMER_DEVICE_CALLBACK_MEMBER(zac_2_outtimer); void zac_2(machine_config &config); void zac_2_data(address_map &map); void zac_2_io(address_map &map); void zac_2_map(address_map &map); -protected: - - // devices - - // driver_device overrides - virtual void machine_reset() override; private: uint8_t m_input_line; + uint8_t m_t_c; + uint8_t m_out_offs; + virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } + required_device<cpu_device> m_maincpu; + required_shared_ptr<uint8_t> m_p_ram; + required_ioport_array<6> m_row; + output_finder<78> m_digits; }; @@ -207,7 +205,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_2_state::zac_2_outtimer) { uint8_t display = (m_out_offs >> 3) & 7; uint8_t digit = m_out_offs & 7; - output().set_digit_value(display * 10 + digit, patterns[m_p_ram[m_out_offs]&15]); + m_digits[display * 10 + digit] = patterns[m_p_ram[m_out_offs]&15]; } } diff --git a/src/mame/drivers/zac_proto.cpp b/src/mame/drivers/zac_proto.cpp index b8dd01d2382..af577670aa0 100644 --- a/src/mame/drivers/zac_proto.cpp +++ b/src/mame/drivers/zac_proto.cpp @@ -31,6 +31,7 @@ public: zac_proto_state(const machine_config &mconfig, device_type type, const char *tag) : genpin_class(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_digits(*this, "digit%u", 0U) { } DECLARE_WRITE8_MEMBER(out0_w); @@ -41,7 +42,9 @@ public: void zac_proto_map(address_map &map); private: virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } required_device<cpu_device> m_maincpu; + output_finder<11> m_digits; }; @@ -221,9 +224,9 @@ WRITE8_MEMBER( zac_proto_state::digit_w ) static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; // 9368 (outputs 0-9,A-F) static const uint8_t decimals[10] = { 0, 0, 0x80, 0, 0, 0x80, 0, 0, 0, 0 }; offset<<=1; - output().set_digit_value(offset, patterns[data&15] | decimals[offset]); + m_digits[offset] = patterns[data&15] | decimals[offset]; offset++; - output().set_digit_value(offset, patterns[data>>4] | decimals[offset]); + m_digits[offset] = patterns[data>>4] | decimals[offset]; } WRITE8_MEMBER( zac_proto_state::sound_w ) @@ -233,7 +236,7 @@ WRITE8_MEMBER( zac_proto_state::sound_w ) void zac_proto_state::machine_reset() { - output().set_digit_value(10, 0x3f); // units shows zero all the time + m_digits[10] = 0x3f; // units shows zero all the time } MACHINE_CONFIG_START(zac_proto_state::zac_proto) |