mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
(nw) output finder for vd,zac_1,zac_2,zac_proto
This commit is contained in:
parent
5397a78d9c
commit
7d96346c6a
@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user