summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fidel_desdis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fidel_desdis.cpp')
-rw-r--r--src/mame/drivers/fidel_desdis.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp
index 28ca0fbb13d..80dde524446 100644
--- a/src/mame/drivers/fidel_desdis.cpp
+++ b/src/mame/drivers/fidel_desdis.cpp
@@ -46,6 +46,7 @@ Designer Mach IV Master 2325 (model 6129) overview:
#include "machine/timer.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
+#include "video/pwm.h"
#include "speaker.h"
// internal artwork
@@ -65,6 +66,7 @@ public:
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
m_rombank(*this, "rombank"),
+ m_display(*this, "display"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
@@ -81,6 +83,7 @@ protected:
// devices/pointers
required_device<timer_device> m_irq_on;
optional_memory_bank m_rombank;
+ required_device<pwm_display_device> m_display;
required_device<dac_bit_interface> m_dac;
required_ioport_array<9> m_inputs;
@@ -184,7 +187,7 @@ WRITE8_MEMBER(desdis_state::control_w)
m_dac->write(BIT(sel, 9));
// 74259 Q0,Q1: led select (active low)
- display_matrix(9, 2, led_data, ~m_select & 3, false);
+ m_display->matrix_partial(0, 2, ~m_select & 3, led_data, false);
// 74259 Q2: book rom A14
if (m_rombank != nullptr)
@@ -194,12 +197,9 @@ WRITE8_MEMBER(desdis_state::control_w)
if (~q3_old & m_select & 8)
{
for (int i = 0; i < 4; i++)
- m_display_state[i+2] = m_lcd_data >> (8*i) & 0xff;
+ m_display->write_row(i+2, m_lcd_data >> (8*i) & 0xff);
}
-
- m_display_maxy += 4;
- set_display_segmask(0x3c, 0x7f);
- display_update();
+ m_display->update();
}
WRITE8_MEMBER(desdis_state::lcd_w)
@@ -386,7 +386,9 @@ void desdis_state::fdes2100d(machine_config &config)
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(15250)); // active for 15.25us
TIMER(config, "irq_off").configure_periodic(FUNC(desdis_state::irq_off<M6502_IRQ_LINE>), irq_period);
- TIMER(config, "display_decay").configure_periodic(FUNC(desdis_state::display_decay_tick), attotime::from_msec(1));
+ /* video hardware */
+ PWM_DISPLAY(config, m_display).set_size(2+4, 9);
+ m_display->set_segmask(0x3c, 0x7f);
config.set_default_layout(layout_fidel_desdis);
/* sound hardware */
@@ -415,7 +417,9 @@ void desmas_state::fdes2265(machine_config &config)
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(6000)); // active for 6us
TIMER(config, "irq_off").configure_periodic(FUNC(desmas_state::irq_off<M68K_IRQ_4>), irq_period);
- TIMER(config, "display_decay").configure_periodic(FUNC(desmas_state::display_decay_tick), attotime::from_msec(1));
+ /* video hardware */
+ PWM_DISPLAY(config, m_display).set_size(2+4, 9);
+ m_display->set_segmask(0x3c, 0x7f);
config.set_default_layout(layout_fidel_desdis_68kr);
/* sound hardware */