mephisto*: none of them have beeper device sound (nw)

This commit is contained in:
hap 2019-07-12 18:08:26 +02:00
parent 5581efe84a
commit 82b8ffe22e
11 changed files with 165 additions and 149 deletions

View File

@ -3,7 +3,8 @@
// thanks-to:Berger
/******************************************************************************
CXG Chess 2001, also sold by Hanimex as HCG 1900
CXG Chess 2001, also sold by Hanimex as HCG 1900 and by CGL as Computachess Champion.
CXG Chess 3000 is assumed to be on similar hardware as this.
Hardware notes:
- Zilog Z8400APS @ 4 MHz (8MHz XTAL)
@ -37,7 +38,6 @@ public:
m_display(*this, "display"),
m_board(*this, "board"),
m_dac(*this, "dac"),
m_speaker_off(*this, "speaker_off"),
m_inputs(*this, "IN.%u", 0)
{ }
@ -54,15 +54,12 @@ private:
required_device<pwm_display_device> m_display;
required_device<sensorboard_device> m_board;
required_device<dac_bit_interface> m_dac;
required_device<timer_device> m_speaker_off;
required_ioport_array<2> m_inputs;
// periodic interrupts
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); }
TIMER_DEVICE_CALLBACK_MEMBER(speaker_off) { m_dac->write(0); }
// address maps
void main_map(address_map &map);
@ -72,13 +69,18 @@ private:
DECLARE_READ8_MEMBER(input_r);
u16 m_inp_mux;
int m_dac_data;
};
void ch2001_state::machine_start()
{
// zerofill, register for savestates
// zerofill
m_inp_mux = 0;
m_dac_data = 0;
// register for savestates
save_item(NAME(m_inp_mux));
save_item(NAME(m_dac_data));
}
@ -91,9 +93,9 @@ void ch2001_state::machine_start()
WRITE8_MEMBER(ch2001_state::speaker_w)
{
// 74ls109 clock pulse to speaker
m_dac->write(1);
m_speaker_off->adjust(attotime::from_usec(200)); // not accurate
// 74ls109 toggle to speaker
m_dac_data ^= 1;
m_dac->write(m_dac_data);
}
WRITE8_MEMBER(ch2001_state::leds_w)
@ -180,9 +182,9 @@ void ch2001_state::ch2001(machine_config &config)
Z80(config, m_maincpu, 8_MHz_XTAL/2);
m_maincpu->set_addrmap(AS_PROGRAM, &ch2001_state::main_map);
const attotime irq_period = attotime::from_hz(484); // theoretical frequency from 555 timer (22nF, 100K+33K, 1K2), measurement was 568Hz
const attotime irq_period = attotime::from_hz(533); // theoretical frequency from 555 timer (20nF, 100K+33K, 1K2), measurement was 568Hz
TIMER(config, m_irq_on).configure_periodic(FUNC(ch2001_state::irq_on<INPUT_LINE_IRQ0>), irq_period);
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(18300)); // active for 18.3us
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(16600)); // active for 16.6us
TIMER(config, "irq_off").configure_periodic(FUNC(ch2001_state::irq_off<INPUT_LINE_IRQ0>), irq_period);
SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
@ -197,8 +199,6 @@ void ch2001_state::ch2001(machine_config &config)
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
TIMER(config, m_speaker_off).configure_generic(FUNC(ch2001_state::speaker_off));
}

View File

@ -40,7 +40,8 @@ How to play (quick guide)
#include "cpu/m68000/m68000.h"
#include "machine/mmboard.h"
#include "machine/timer.h"
#include "sound/beep.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
// internal artwork
@ -54,7 +55,7 @@ public:
glasgow_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_beep(*this, "beeper")
, m_dac(*this, "dac")
, m_board(*this, "board")
, m_keyboard(*this, "LINE%u", 0)
, m_digits(*this, "digit%u", 0U)
@ -75,7 +76,7 @@ protected:
void glasgow_mem(address_map &map);
required_device<cpu_device> m_maincpu;
required_device<beep_device> m_beep;
required_device<dac_bit_interface> m_dac;
required_device<mephisto_board_device> m_board;
required_ioport_array<2> m_keyboard;
output_finder<4> m_digits;
@ -122,7 +123,7 @@ WRITE8_MEMBER( glasgow_state::glasgow_lcd_flag_w )
{
uint8_t const lcd_flag = data & 0x81;
m_beep->set_state(BIT(lcd_flag, 0));
m_dac->write(BIT(lcd_flag, 0));
if (lcd_flag)
m_led7 = 255;
@ -187,7 +188,7 @@ WRITE8_MEMBER( amsterd_state::write_board )
WRITE8_MEMBER( amsterd_state::write_beeper )
{
m_beep->set_state(BIT(data, 0));
m_dac->write(BIT(data, 0));
}
READ8_MEMBER( amsterd_state::read_newkeys ) //Amsterdam, Roma, Dallas 32, Roma 32
@ -317,13 +318,15 @@ void glasgow_state::glasgow(machine_config &config)
MEPHISTO_SENSORS_BOARD(config, m_board);
m_board->set_delay(attotime::from_msec(200));
TIMER(config, "nmi_timer").configure_periodic(FUNC(glasgow_state::update_nmi), attotime::from_hz(50));
/* video hardware */
config.set_default_layout(layout_mephisto_glasgow);
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 44).add_route(ALL_OUTPUTS, "mono", 0.50);
TIMER(config, "nmi_timer").configure_periodic(FUNC(glasgow_state::update_nmi), attotime::from_hz(50));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
void amsterd_state::amsterd(machine_config &config)

View File

@ -67,7 +67,8 @@ Mephisto 4 Turbo Kit 18mhz - (mm4tk)
#include "machine/74259.h"
#include "machine/mmboard.h"
#include "machine/timer.h"
#include "sound/beep.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
// internal artwork
@ -81,7 +82,7 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_outlatch(*this, "outlatch")
, m_beep(*this, "beeper")
, m_dac(*this, "dac")
, m_key1(*this, "KEY1_%u", 0U)
, m_key2(*this, "KEY2_%u", 0U)
, m_digits(*this, "digit%u", 0U)
@ -95,7 +96,11 @@ public:
private:
required_device<m65c02_device> m_maincpu;
required_device<hc259_device> m_outlatch;
required_device<beep_device> m_beep;
required_device<dac_bit_interface> m_dac;
required_ioport_array<8> m_key1;
required_ioport_array<8> m_key2;
output_finder<4> m_digits;
DECLARE_WRITE8_MEMBER(write_lcd);
DECLARE_WRITE8_MEMBER(mephisto_NMI);
DECLARE_READ8_MEMBER(read_keys);
@ -114,10 +119,6 @@ private:
void mephisto_mem(address_map &map);
void mm2_mem(address_map &map);
void rebel5_mem(address_map &map);
required_ioport_array<8> m_key1;
required_ioport_array<8> m_key2;
output_finder<4> m_digits;
};
@ -294,12 +295,13 @@ void mephisto_state::mephisto(machine_config &config)
m_outlatch->q_out_cb<3>().set_output("led103");
m_outlatch->q_out_cb<4>().set_output("led104");
m_outlatch->q_out_cb<5>().set_output("led105");
m_outlatch->q_out_cb<6>().set(m_beep, FUNC(beep_device::set_state));
m_outlatch->q_out_cb<6>().set(m_dac, FUNC(dac_bit_interface::write));
m_outlatch->q_out_cb<7>().set(FUNC(mephisto_state::write_led7));
/* sound hardware */
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.0);
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
TIMER(config, "nmi_timer").configure_periodic(FUNC(mephisto_state::update_nmi), attotime::from_hz(600));

View File

@ -21,6 +21,8 @@
#include "machine/nvram.h"
#include "machine/mmboard.h"
#include "machine/timer.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "screen.h"
#include "speaker.h"
#include "softlist.h"
@ -41,7 +43,7 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_board(*this, "board")
, m_beeper(*this, "beeper")
, m_dac(*this, "dac")
, m_keys(*this, "KEY.%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_low_leds(*this, "led%u", 0U)
@ -91,7 +93,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<mephisto_board_device> m_board;
required_device<beep_device> m_beeper;
required_device<dac_bit_interface> m_dac;
optional_ioport_array<2> m_keys;
output_finder<8> m_digits;
output_finder<16> m_low_leds, m_high_leds;
@ -228,7 +230,7 @@ WRITE8_MEMBER(mephisto_montec_state::montec_nmi_ack_w)
WRITE8_MEMBER(mephisto_montec_state::montec_beeper_w)
{
m_beeper->set_state(BIT(data, 7) ? 0 : 1);
m_dac->write(BIT(data, 7));
}
WRITE8_MEMBER(mephisto_montec_state::megaiv_led_w)
@ -247,7 +249,7 @@ WRITE8_MEMBER(mephisto_montec_state::megaiv_led_w)
}
}
m_beeper->set_state(BIT(data, 7));
m_dac->write(BIT(data, 7));
}
READ8_MEMBER(mephisto_montec_state::megaiv_input_r)
@ -324,7 +326,7 @@ WRITE8_MEMBER(mephisto_montec_state::smondial_led_data_w)
else
m_leds_mux |= (1 << offset);
m_beeper->set_state(BIT(m_leds_mux, 7));
m_dac->write(BIT(m_leds_mux, 7));
}
void mephisto_montec_state::smondial_mem(address_map &map)
@ -355,7 +357,7 @@ WRITE8_MEMBER(mephisto_montec_state::mondial2_input_mux_w)
}
m_input_mux = data ^ 0xff;
m_beeper->set_state(BIT(data, 7));
m_dac->write(BIT(data, 7));
m_maincpu->set_input_line(M65C02_NMI_LINE, CLEAR_LINE);
}
@ -396,7 +398,7 @@ WRITE8_MEMBER(mephisto_montec_state::mondial_input_mux_w)
}
m_input_mux = data;
m_beeper->set_state(BIT(data, 7));
m_dac->write(BIT(data, 7));
m_maincpu->set_input_line(M65C02_IRQ_LINE, CLEAR_LINE);
}
@ -516,8 +518,9 @@ void mephisto_montec_state::montec(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 3250).add_route(ALL_OUTPUTS, "mono", 1.0);
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
MEPHISTO_SENSORS_BOARD(config, m_board);
m_board->set_delay(attotime::from_msec(300));

View File

@ -12,6 +12,8 @@
#include "machine/nvram.h"
#include "machine/mmboard.h"
#include "machine/timer.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
#include "mephisto_modena.lh"
@ -24,7 +26,7 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_board(*this, "board")
, m_beeper(*this, "beeper")
, m_dac(*this, "dac")
, m_keys(*this, "KEY")
, m_digits(*this, "digit%u", 0U)
, m_leds1(*this, "led%u", 100U)
@ -48,7 +50,7 @@ protected:
private:
required_device<cpu_device> m_maincpu;
required_device<mephisto_board_device> m_board;
required_device<beep_device> m_beeper;
required_device<dac_bit_interface> m_dac;
required_ioport m_keys;
output_finder<4> m_digits;
output_finder<8> m_leds1;
@ -88,7 +90,7 @@ WRITE8_MEMBER(mephisto_modena_state::modena_led_w)
WRITE8_MEMBER(mephisto_modena_state::modena_io_w)
{
m_io_ctrl = data;
m_beeper->set_state(BIT(data, 6));
m_dac->write(BIT(data, 6));
}
WRITE8_MEMBER(mephisto_modena_state::modena_digits_w)
@ -154,8 +156,9 @@ void mephisto_modena_state::modena(machine_config &config)
config.set_default_layout(layout_mephisto_modena);
/* sound hardware */
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 3250).add_route(ALL_OUTPUTS, "mono", 1.0);
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}

View File

@ -365,7 +365,7 @@ void mephisto_academy_state::academy(machine_config &config)
hc259_device &outlatch(HC259(config.replace(), "outlatch"));
outlatch.q_out_cb<1>().set(FUNC(mephisto_academy_state::academy_nmi_w));
outlatch.q_out_cb<2>().set("display:beeper", FUNC(beep_device::set_state)).invert();
outlatch.q_out_cb<2>().set("display:dac", FUNC(dac_byte_interface::write));
config.set_default_layout(layout_mephisto_academy);
}

View File

@ -297,8 +297,8 @@ void risc2500_state::risc2500(machine_config &config)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}

View File

@ -4,7 +4,8 @@
<!-- define elements -->
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="black"><rect><color red="0.15" green="0.15" blue="0.15" /></rect></element>
<element name="white"><rect><color red="0.7" green="0.7" blue="0.7" /></rect></element>
<element name="disk_white"><disk><color red="0.7" green="0.7" blue="0.7" /></disk></element>
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
@ -16,12 +17,12 @@
</element>
<element name="butd" defstate="0">
<disk state="0"><color red="0.4" green="0.4" blue="0.4" /></disk>
<disk state="1"><color red="0.3" green="0.3" blue="0.3" /></disk>
<disk state="0"><color red="0.2" green="0.2" blue="0.2" /></disk>
<disk state="1"><color red="0.35" green="0.35" blue="0.35" /></disk>
</element>
<element name="butr" defstate="0">
<rect state="0"><color red="0.4" green="0.4" blue="0.4" /></rect>
<rect state="1"><color red="0.3" green="0.3" blue="0.3" /></rect>
<rect state="0"><color red="0.2" green="0.2" blue="0.2" /></rect>
<rect state="1"><color red="0.35" green="0.35" blue="0.35" /></rect>
</element>
<element name="text_1">
@ -91,47 +92,47 @@
</element>
<element name="text_white">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="White"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="White"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_black">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="Black"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="Black"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p1">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[K]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[K]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p2">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[Q]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[Q]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p3">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[R]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[R]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p4">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[B]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[B]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p5">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[N]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[N]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_p6">
<rect><color red="0.15" green="0.15" blue="0.15" /></rect>
<text string="[P]"><color red="0.81" green="0.8" blue="0.79" /></text>
<rect><color red="0.7" green="0.7" blue="0.7" /></rect>
<text string="[P]"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_b1"><text string="Set up"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b2"><text string="New Game"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b3"><text string="Hint"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b4"><text string="Sound"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b5"><text string="Level"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b6"><text string="Forward"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b7"><text string="Take Back"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b8"><text string="Move"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b1"><text string="Set up"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b2"><text string="New Game"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b3"><text string="Hint"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b4"><text string="Sound"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b5"><text string="Level"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b6"><text string="Forward"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b7"><text string="Take Back"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_b8"><text string="Move"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<!-- sb board -->
@ -298,9 +299,9 @@
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uib2">
<rect><color red="0.85" green="0.74" blue="0.5" /></rect>
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
@ -309,13 +310,13 @@
<rect><color red="0.85" green="0.74" blue="0.5" /></rect>
<text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uih2">
<rect><color red="0.85" green="0.74" blue="0.5" /></rect>
<text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uiu2a">
<rect><color red="0.85" green="0.74" blue="0.5" /></rect>
<text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text>
@ -334,13 +335,13 @@
</element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
<color red="0.7" green="0.7" blue="0.7" />
</simplecounter>
</element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
<color red="0.7" green="0.7" blue="0.7" />
</simplecounter>
</element>
@ -465,55 +466,55 @@
<bezel element="text_b2"><bounds x="7" y="101.4" width="12" height="1.8" /></bezel>
<bezel element="butr" inputtag="IN.1" inputmask="0x02"><bounds x="10" y="103.8" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="20.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="20.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="20.5" y="89.5" width="7" height="8.4" /></bezel>
<bezel name="8.1" element="led2"><bounds x="23.25" y="90" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="21" y="91.8" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="21" y="91.8" width="6" height="2" /></bezel>
<bezel element="text_p1"><bounds x="21" y="91.9" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x02"><bounds x="21" y="94.3" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="28.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="28.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="28.5" y="89.5" width="7" height="8.4" /></bezel>
<bezel name="8.2" element="led2"><bounds x="31.25" y="90" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="29" y="91.8" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="29" y="91.8" width="6" height="2" /></bezel>
<bezel element="text_p2"><bounds x="29" y="91.9" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x04"><bounds x="29" y="94.3" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="36.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="36.2" y="89.2" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="36.5" y="89.5" width="7" height="8.4" /></bezel>
<bezel name="8.3" element="led2"><bounds x="39.25" y="90" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="37" y="91.8" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="37" y="91.8" width="6" height="2" /></bezel>
<bezel element="text_p3"><bounds x="37" y="91.9" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x08"><bounds x="37" y="94.3" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="20.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="20.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="20.5" y="99" width="7" height="8.4" /></bezel>
<bezel name="8.4" element="led2"><bounds x="23.25" y="99.5" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="21" y="101.3" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="21" y="101.3" width="6" height="2" /></bezel>
<bezel element="text_p4"><bounds x="21" y="101.4" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x10"><bounds x="21" y="103.8" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="28.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="28.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="28.5" y="99" width="7" height="8.4" /></bezel>
<bezel name="8.5" element="led2"><bounds x="31.25" y="99.5" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="29" y="101.3" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="29" y="101.3" width="6" height="2" /></bezel>
<bezel element="text_p5"><bounds x="29" y="101.4" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x20"><bounds x="29" y="103.8" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="36.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="white"><bounds x="36.2" y="98.7" width="7.6" height="9" /></bezel>
<bezel element="blackb"><bounds x="36.5" y="99" width="7" height="8.4" /></bezel>
<bezel name="8.6" element="led2"><bounds x="39.25" y="99.5" width="1.5" height="1.5" /></bezel>
<bezel element="black"><bounds x="37" y="101.3" width="6" height="2" /></bezel>
<bezel element="white"><bounds x="37" y="101.3" width="6" height="2" /></bezel>
<bezel element="text_p6"><bounds x="37" y="101.4" width="6" height="1.5" /></bezel>
<bezel element="butr" inputtag="IN.0" inputmask="0x40"><bounds x="37" y="103.8" width="6" height="2" /></bezel>
<bezel element="black"><bounds x="46.5" y="89.2" width="7" height="9" /></bezel>
<bezel element="white"><bounds x="46.5" y="89.2" width="7" height="9" /></bezel>
<bezel element="blackb"><bounds x="46.8" y="89.5" width="6.4" height="8.4" /></bezel>
<bezel name="8.7" element="led2"><bounds x="49.25" y="90" width="1.5" height="1.5" /></bezel>
<bezel element="text_white"><bounds x="48" y="91.8" width="4" height="1.5" /></bezel>
<bezel element="butd" inputtag="IN.0" inputmask="0x80"><bounds x="48.5" y="94" width="3" height="3" /></bezel>
<bezel element="black"><bounds x="46.5" y="98.7" width="7" height="9" /></bezel>
<bezel element="white"><bounds x="46.5" y="98.7" width="7" height="9" /></bezel>
<bezel element="blackb"><bounds x="46.8" y="99" width="6.4" height="8.4" /></bezel>
<bezel name="8.0" element="led2"><bounds x="49.25" y="99.5" width="1.5" height="1.5" /></bezel>
<bezel element="text_black"><bounds x="48" y="101.3" width="4" height="1.5" /></bezel>
@ -532,8 +533,8 @@
<bezel element="text_b8"><bounds x="68" y="98.7" width="12" height="1.8" /></bezel>
<bezel element="butr" inputtag="IN.1" inputmask="0x20"><bounds x="73" y="101" width="2" height="6" /></bezel>
<bezel element="black"><bounds x="61.85" y="89.2" width="0.3" height="18.5" /></bezel>
<bezel element="black"><bounds x="69.85" y="89.2" width="0.3" height="18.5" /></bezel>
<bezel element="white"><bounds x="61.85" y="89.2" width="0.3" height="18.5" /></bezel>
<bezel element="white"><bounds x="69.85" y="89.2" width="0.3" height="18.5" /></bezel>
</view>
</mamelayout>

View File

@ -4,9 +4,9 @@
<!-- define elements -->
<element name="black"><rect><color red="0.07" green="0.08" blue="0.07" /></rect></element>
<element name="green"><rect><color red="0.0" green="0.55" blue="0.25" /></rect></element>
<element name="green"><rect><color red="0.1" green="0.65" blue="0.35" /></rect></element>
<element name="disk_black"><disk><color red="0.07" green="0.08" blue="0.07" /></disk></element>
<element name="disk_green"><disk><color red="0.0" green="0.55" blue="0.25" /></disk></element>
<element name="disk_green"><disk><color red="0.1" green="0.65" blue="0.35" /></disk></element>
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
@ -25,126 +25,126 @@
</element>
<element name="text_1">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_2">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="2"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_3">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="3"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_4">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="4"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_5">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="5"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_6">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="6"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_7">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="7"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_8">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="8"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_a">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="A"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_b">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="B"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_c">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="C"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_d">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="D"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_e">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="E"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_f">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="F"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_g">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="G"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_h">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="H"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_re">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="RE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_spk">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="spk"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_pv">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="PV"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_lv">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="LV"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_cl">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="CL"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_dm">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="DM"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_rv">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="RV"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_st">
<disk><color red="0.0" green="0.55" blue="0.25" /></disk>
<disk><color red="0.1" green="0.65" blue="0.35" /></disk>
<text string="ST"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_exp">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="EXPERT"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_mon">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="MONITOR"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_sa">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="Set-up &quot;A&quot;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_sb">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="Set-up &quot;B&quot;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<!-- sb board -->
<element name="cblack"><rect><color red="0.0" green="0.3" blue="0.12" /></rect></element>
<element name="cwhite"><rect><color red="0.0" green="0.55" blue="0.25" /></rect></element>
<element name="cblack"><rect><color red="0.005" green="0.35" blue="0.15" /></rect></element>
<element name="cwhite"><rect><color red="0.1" green="0.65" blue="0.35" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
@ -247,38 +247,38 @@
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2a">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="RESET A"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uib2b">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="RESET B"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uib3">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2b">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2c">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2d">
<rect><color red="0.0" green="0.55" blue="0.25" /></rect>
<rect><color red="0.1" green="0.65" blue="0.35" /></rect>
<text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu3a" defstate="0">

View File

@ -9,6 +9,7 @@
#include "emu.h"
#include "mmboard.h"
#include "sound/volt_reg.h"
//**************************************************************************
@ -170,7 +171,7 @@ WRITE8_MEMBER( mephisto_board_device::led_w )
mephisto_display_modul_device::mephisto_display_modul_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, MEPHISTO_DISPLAY_MODUL, tag, owner, clock)
, m_lcdc(*this, "hd44780")
, m_beeper(*this, "beeper")
, m_dac(*this, "dac")
{
}
@ -193,8 +194,11 @@ void mephisto_display_modul_device::device_add_mconfig(machine_config &config)
m_lcdc->set_lcd_size(2, 16);
/* sound hardware */
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 3250).add_route(ALL_OUTPUTS, "mono", 1.0);
SPEAKER(config, "speaker").front_center();
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
@ -234,7 +238,7 @@ WRITE8_MEMBER(mephisto_display_modul_device::io_w)
if (BIT(data, 1) && !BIT(m_ctrl, 1))
m_lcdc->write(BIT(data, 0), m_latch);
m_beeper->set_state(BIT(data, 2) | BIT(data, 3));
m_dac->write(data >> 2 & 3);
m_ctrl = data;
}

View File

@ -13,8 +13,8 @@
#include "machine/sensorboard.h"
#include "sound/beep.h"
#include "video/hd44780.h"
#include "sound/dac.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
@ -112,7 +112,7 @@ protected:
private:
optional_device<hd44780_device> m_lcdc;
required_device<beep_device> m_beeper;
required_device<dac_byte_interface> m_dac;
uint8_t m_latch;
uint8_t m_ctrl;
};