From 82b8ffe22e2d6581229858bd3d4ad97b21b508f8 Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 12 Jul 2019 18:08:26 +0200 Subject: mephisto*: none of them have beeper device sound (nw) --- src/mame/drivers/cxg_ch2001.cpp | 26 ++++----- src/mame/drivers/glasgow.cpp | 21 ++++--- src/mame/drivers/mephisto.cpp | 22 +++---- src/mame/drivers/mephisto_montec.cpp | 21 ++++--- src/mame/drivers/modena.cpp | 13 +++-- src/mame/drivers/polgar.cpp | 2 +- src/mame/drivers/saitek_risc2500.cpp | 4 +- src/mame/layout/cxg_ch2001.lay | 109 ++++++++++++++++++----------------- src/mame/layout/fidel_rsc.lay | 80 ++++++++++++------------- src/mame/machine/mmboard.cpp | 12 ++-- src/mame/machine/mmboard.h | 4 +- 11 files changed, 165 insertions(+), 149 deletions(-) diff --git a/src/mame/drivers/cxg_ch2001.cpp b/src/mame/drivers/cxg_ch2001.cpp index ea29e4aae2f..5dce74742f9 100644 --- a/src/mame/drivers/cxg_ch2001.cpp +++ b/src/mame/drivers/cxg_ch2001.cpp @@ -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 m_display; required_device m_board; required_device m_dac; - required_device m_speaker_off; required_ioport_array<2> m_inputs; // periodic interrupts template TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); } template 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), 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), 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)); } diff --git a/src/mame/drivers/glasgow.cpp b/src/mame/drivers/glasgow.cpp index aeae4ab3463..92360f65a22 100644 --- a/src/mame/drivers/glasgow.cpp +++ b/src/mame/drivers/glasgow.cpp @@ -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 m_maincpu; - required_device m_beep; + required_device m_dac; required_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) diff --git a/src/mame/drivers/mephisto.cpp b/src/mame/drivers/mephisto.cpp index 6792e50d7d1..3c56c16caa8 100644 --- a/src/mame/drivers/mephisto.cpp +++ b/src/mame/drivers/mephisto.cpp @@ -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 m_maincpu; required_device m_outlatch; - required_device m_beep; + required_device 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)); diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp index f6c53969ddb..26b035a54d9 100644 --- a/src/mame/drivers/mephisto_montec.cpp +++ b/src/mame/drivers/mephisto_montec.cpp @@ -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 m_maincpu; required_device m_board; - required_device m_beeper; + required_device 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)); diff --git a/src/mame/drivers/modena.cpp b/src/mame/drivers/modena.cpp index 61601a7e8c5..2c2ccc3fb9b 100644 --- a/src/mame/drivers/modena.cpp +++ b/src/mame/drivers/modena.cpp @@ -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 m_maincpu; required_device m_board; - required_device m_beeper; + required_device 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); } diff --git a/src/mame/drivers/polgar.cpp b/src/mame/drivers/polgar.cpp index b2893ac51eb..6bc4e55efe6 100644 --- a/src/mame/drivers/polgar.cpp +++ b/src/mame/drivers/polgar.cpp @@ -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); } diff --git a/src/mame/drivers/saitek_risc2500.cpp b/src/mame/drivers/saitek_risc2500.cpp index df3c07fcd16..59a30a31718 100644 --- a/src/mame/drivers/saitek_risc2500.cpp +++ b/src/mame/drivers/saitek_risc2500.cpp @@ -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); } diff --git a/src/mame/layout/cxg_ch2001.lay b/src/mame/layout/cxg_ch2001.lay index 5c04a96f11a..8304354a823 100644 --- a/src/mame/layout/cxg_ch2001.lay +++ b/src/mame/layout/cxg_ch2001.lay @@ -4,7 +4,8 @@ - + + @@ -16,12 +17,12 @@ - - + + - - + + @@ -91,47 +92,47 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + + + + + + + @@ -298,9 +299,9 @@ - - - + + + @@ -309,13 +310,13 @@ - - + + - + @@ -334,13 +335,13 @@ - + - + - + @@ -465,55 +466,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -532,8 +533,8 @@ - - + + diff --git a/src/mame/layout/fidel_rsc.lay b/src/mame/layout/fidel_rsc.lay index 816df53a9d1..8070e054c8c 100644 --- a/src/mame/layout/fidel_rsc.lay +++ b/src/mame/layout/fidel_rsc.lay @@ -4,9 +4,9 @@ - + - + @@ -25,126 +25,126 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -247,38 +247,38 @@ - + - + - + - + - + - + - + - + diff --git a/src/mame/machine/mmboard.cpp b/src/mame/machine/mmboard.cpp index 66340bf3e11..e40c9e45514 100644 --- a/src/mame/machine/mmboard.cpp +++ b/src/mame/machine/mmboard.cpp @@ -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; } diff --git a/src/mame/machine/mmboard.h b/src/mame/machine/mmboard.h index 2ea9ed3eec1..554b79424db 100644 --- a/src/mame/machine/mmboard.h +++ b/src/mame/machine/mmboard.h @@ -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 m_lcdc; - required_device m_beeper; + required_device m_dac; uint8_t m_latch; uint8_t m_ctrl; }; -- cgit v1.2.3