summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2018-04-11 00:57:16 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2018-04-11 00:57:16 +1000
commit0d775d7cae4a80130aa93b66ef9ba02a74d28fb5 (patch)
tree562be4bbcf3b8628f7f477bfb20bb81419053cb9
parentbc543572ec8876652c3e28dde11b871f98eee920 (diff)
(nw) output finder for polgar, mephisto, mephisto_montec
-rw-r--r--src/mame/drivers/kungfur.cpp10
-rw-r--r--src/mame/drivers/mephisto.cpp8
-rw-r--r--src/mame/drivers/mephisto_montec.cpp8
-rw-r--r--src/mame/drivers/polgar.cpp5
4 files changed, 21 insertions, 10 deletions
diff --git a/src/mame/drivers/kungfur.cpp b/src/mame/drivers/kungfur.cpp
index c393bea2e85..5fd30695409 100644
--- a/src/mame/drivers/kungfur.cpp
+++ b/src/mame/drivers/kungfur.cpp
@@ -69,11 +69,11 @@ class kungfur_state : public driver_device
{
public:
kungfur_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- , m_adpcm1(*this, "adpcm1")
- , m_adpcm2(*this, "adpcm2")
- , m_digits(*this, "digit%u", 0U)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_adpcm1(*this, "adpcm1"),
+ m_adpcm2(*this, "adpcm2"),
+ m_digits(*this, "digit%u", 0U)
{ }
DECLARE_WRITE8_MEMBER(kungfur_output_w);
diff --git a/src/mame/drivers/mephisto.cpp b/src/mame/drivers/mephisto.cpp
index d853893d7f3..981c3612456 100644
--- a/src/mame/drivers/mephisto.cpp
+++ b/src/mame/drivers/mephisto.cpp
@@ -94,6 +94,7 @@ public:
, m_key2_5(*this, "KEY2_5")
, m_key2_6(*this, "KEY2_6")
, m_key2_7(*this, "KEY2_7")
+ , m_digits(*this, "digit%u", 0U)
{ }
required_device<m65c02_device> m_maincpu;
@@ -140,14 +141,15 @@ protected:
required_ioport m_key2_5;
required_ioport m_key2_6;
required_ioport m_key2_7;
+ output_finder<4> m_digits;
};
WRITE8_MEMBER( mephisto_state::write_lcd )
{
- if (m_led7 == 0) output().set_digit_value(m_lcd_shift_counter,data); // 0x109 MM IV // 0x040 MM V
+ if (m_led7 == 0) m_digits[m_lcd_shift_counter] = data; // 0x109 MM IV // 0x040 MM V
- //output().set_digit_value(m_lcd_shift_counter,data ^ m_p_ram[0x165]); // 0x109 MM IV // 0x040 MM V
+ //m_digits[m_lcd_shift_counter] = data ^ m_p_ram[0x165]; // 0x109 MM IV // 0x040 MM V
m_lcd_shift_counter--;
m_lcd_shift_counter &= 3;
}
@@ -327,12 +329,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_irq)//only mm2
void mephisto_state::machine_start()
{
+ m_digits.resolve();
m_lcd_shift_counter = 3;
m_allowNMI = 1;
}
MACHINE_START_MEMBER(mephisto_state,mm2)
{
+ m_digits.resolve();
m_lcd_shift_counter = 3;
m_led7=0xff;
}
diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp
index 05aed239e6d..3aba7444cd2 100644
--- a/src/mame/drivers/mephisto_montec.cpp
+++ b/src/mame/drivers/mephisto_montec.cpp
@@ -40,6 +40,7 @@ public:
, m_board(*this, "board")
, m_beeper(*this, "beeper")
, m_keys(*this, "KEY.%u", 0)
+ , m_digits(*this, "digit%u", 0U)
{ }
@@ -83,6 +84,7 @@ private:
required_device<mephisto_board_device> m_board;
required_device<beep_device> m_beeper;
optional_ioport_array<2> m_keys;
+ output_finder<8> m_digits;
uint8_t m_lcd_mux;
uint8_t m_input_mux;
@@ -101,6 +103,8 @@ private:
void mephisto_montec_state::machine_start()
{
+ m_digits.resolve();
+
save_item(NAME(m_lcd_mux));
save_item(NAME(m_input_mux));
save_item(NAME(m_leds_mux));
@@ -173,8 +177,8 @@ WRITE8_MEMBER(mephisto_montec_state::montec_lcd_clk_w)
if (m_display.shift == 8)
{
- if (m_lcd_mux & 0x01) output().set_digit_value(0 + m_display.pos, bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1));
- if (m_lcd_mux & 0x02) output().set_digit_value(4 + m_display.pos, bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1));
+ if (m_lcd_mux & 0x01) m_digits[0 + m_display.pos] = bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1);
+ if (m_lcd_mux & 0x02) m_digits[4 + m_display.pos] = bitswap<8>(m_display.data, 0,3,2,7,6,5,4,1);
m_display.shift = 0;
m_display.pos = (m_display.pos + 1) & 3;
diff --git a/src/mame/drivers/polgar.cpp b/src/mame/drivers/polgar.cpp
index 4d8081646f8..b48ee627b94 100644
--- a/src/mame/drivers/polgar.cpp
+++ b/src/mame/drivers/polgar.cpp
@@ -30,6 +30,7 @@ public:
mephisto_polgar_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_keys(*this, "KEY")
+ , m_digits(*this, "digit%u", 0U)
{ }
DECLARE_WRITE8_MEMBER(polgar_led_w);
@@ -38,8 +39,10 @@ public:
void polgar10(machine_config &config);
void polgar(machine_config &config);
void polgar_mem(address_map &map);
+ virtual void sound_start() override { m_digits.resolve(); }
protected:
optional_ioport m_keys;
+ output_finder<4> m_digits;
};
class mephisto_risc_state : public mephisto_polgar_state
@@ -338,7 +341,7 @@ WRITE8_MEMBER(mephisto_modena_state::modena_io_w)
WRITE8_MEMBER(mephisto_modena_state::modena_digits_w)
{
- output().set_digit_value(m_digits_idx, data ^ ((m_io_ctrl & 0x10) ? 0xff : 0x00));
+ m_digits[m_digits_idx] = data ^ ((m_io_ctrl & 0x10) ? 0xff : 0x00);
m_digits_idx = (m_digits_idx + 1) & 3;
}