diff options
-rw-r--r-- | src/mame/drivers/kungfur.cpp | 10 | ||||
-rw-r--r-- | src/mame/drivers/mephisto.cpp | 8 | ||||
-rw-r--r-- | src/mame/drivers/mephisto_montec.cpp | 8 | ||||
-rw-r--r-- | src/mame/drivers/polgar.cpp | 5 |
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; } |