summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit7d96346c6a9e997e647ab6a943f5230ba6a7dc38 (patch)
tree2508b6807aa99de57584499f103a2cce66ab8669
parent5397a78d9cfe58ab8e7a359e552cf3614fd91be6 (diff)
(nw) output finder for vd,zac_1,zac_2,zac_proto
-rw-r--r--src/mame/drivers/vd.cpp21
-rw-r--r--src/mame/drivers/zac_1.cpp22
-rw-r--r--src/mame/drivers/zac_2.cpp22
-rw-r--r--src/mame/drivers/zac_proto.cpp9
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)