summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-07-02 21:28:13 +0200
committer hap <happppp@users.noreply.github.com>2019-07-02 21:28:27 +0200
commitcfb9af8564609ffba308e6bdbc7e8944f1be8488 (patch)
treece0b324cfdb00c087fee418db14e707c3acf61b1
parentb6ce2e16d867b21119ce36f6e108d0866f396089 (diff)
fidelbase: remove sound handling (nw)
-rw-r--r--src/mame/drivers/aci_ggm.cpp12
-rw-r--r--src/mame/drivers/fidel_as12.cpp3
-rw-r--r--src/mame/drivers/fidel_cc7.cpp7
-rw-r--r--src/mame/drivers/fidel_chesster.cpp21
-rw-r--r--src/mame/drivers/fidel_csc.cpp32
-rw-r--r--src/mame/drivers/fidel_dames.cpp5
-rw-r--r--src/mame/drivers/fidel_desdis.cpp23
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp9
-rw-r--r--src/mame/drivers/fidel_elite.cpp27
-rw-r--r--src/mame/drivers/fidel_excel.cpp30
-rw-r--r--src/mame/drivers/fidel_phantom.cpp5
-rw-r--r--src/mame/drivers/fidel_sc12.cpp3
-rw-r--r--src/mame/drivers/fidel_sc6.cpp3
-rw-r--r--src/mame/drivers/fidel_sc8.cpp7
-rw-r--r--src/mame/drivers/fidel_sc9.cpp7
-rw-r--r--src/mame/drivers/fidel_vcc.cpp17
-rw-r--r--src/mame/drivers/fidel_vsc.cpp26
-rw-r--r--src/mame/drivers/intellect02.cpp13
-rw-r--r--src/mame/drivers/novag_delta1.cpp4
-rw-r--r--src/mame/drivers/novag_mk1.cpp7
-rw-r--r--src/mame/drivers/novag_presto.cpp4
-rw-r--r--src/mame/drivers/novag_sexpert.cpp6
-rw-r--r--src/mame/includes/fidelbase.h16
-rw-r--r--src/mame/layout/novag_cforte.lay77
-rw-r--r--src/mame/layout/novag_sforte.lay1
-rw-r--r--src/mame/layout/scisys_cp2000.lay7
-rw-r--r--src/mame/machine/fidelbase.cpp5
27 files changed, 271 insertions, 106 deletions
diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp
index 45a5963dc0c..0bb68a6d5c2 100644
--- a/src/mame/drivers/aci_ggm.cpp
+++ b/src/mame/drivers/aci_ggm.cpp
@@ -105,12 +105,6 @@ private:
void update_display();
TIMER_DEVICE_CALLBACK_MEMBER(ca1_off) { m_via->write_ca1(0); }
- u8 m_inp_mux;
- u16 m_digit_data;
- u8 m_shift_data;
- u8 m_shift_clock;
- u32 m_cart_mask;
-
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cartridge);
DECLARE_READ8_MEMBER(cartridge_r);
@@ -120,6 +114,12 @@ private:
DECLARE_WRITE_LINE_MEMBER(shift_clock_w);
DECLARE_WRITE_LINE_MEMBER(shift_data_w);
+
+ u8 m_inp_mux;
+ u16 m_digit_data;
+ u8 m_shift_data;
+ u8 m_shift_clock;
+ u32 m_cart_mask;
};
void ggm_state::machine_start()
diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp
index 45a66a11982..d0591705d66 100644
--- a/src/mame/drivers/fidel_as12.cpp
+++ b/src/mame/drivers/fidel_as12.cpp
@@ -22,6 +22,7 @@ magnetic chess board sensors. See fidel_sc12.cpp for a more technical descriptio
#include "cpu/m6502/r65c02.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -40,6 +41,7 @@ public:
as12_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
+ m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -49,6 +51,7 @@ public:
private:
// devices/pointers
required_device<timer_device> m_irq_on;
+ required_device<dac_bit_interface> m_dac;
required_device<generic_slot_device> m_cart;
// address maps
diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp
index d8550d1084e..59396d5313a 100644
--- a/src/mame/drivers/fidel_cc7.cpp
+++ b/src/mame/drivers/fidel_cc7.cpp
@@ -48,6 +48,7 @@ D0-D3: keypad row
#include "includes/fidelbase.h"
#include "cpu/z80/z80.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -62,7 +63,8 @@ class bcc_state : public fidelbase_state
{
public:
bcc_state(const machine_config &mconfig, device_type type, const char *tag) :
- fidelbase_state(mconfig, type, tag)
+ fidelbase_state(mconfig, type, tag),
+ m_dac(*this, "dac")
{ }
// machine drivers
@@ -70,6 +72,9 @@ public:
void bkc(machine_config &config);
private:
+ // devices/pointers
+ optional_device<dac_bit_interface> m_dac;
+
// address maps
void main_map(address_map &map);
void main_io(address_map &map);
diff --git a/src/mame/drivers/fidel_chesster.cpp b/src/mame/drivers/fidel_chesster.cpp
index 0662d3a4e3b..5627c302638 100644
--- a/src/mame/drivers/fidel_chesster.cpp
+++ b/src/mame/drivers/fidel_chesster.cpp
@@ -31,6 +31,7 @@ the S14001A in the 70s), this time a 65C02 software solution.
#include "cpu/m6502/r65c02.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -55,6 +56,9 @@ public:
void init_chesster();
+protected:
+ virtual void machine_start() override;
+
private:
// devices/pointers
required_device<timer_device> m_irq_on;
@@ -67,11 +71,12 @@ private:
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); }
- int m_numbanks;
-
// I/O handlers
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_READ8_MEMBER(input_r);
+
+ int m_numbanks;
+ u8 m_speech_bank;
};
void chesster_state::init_chesster()
@@ -80,6 +85,18 @@ void chesster_state::init_chesster()
m_rombank->configure_entries(0, m_numbanks, memregion("rombank")->base(), 0x4000);
}
+void chesster_state::machine_start()
+{
+ fidelbase_state::machine_start();
+
+ // zerofill
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_bank));
+}
+
+
/******************************************************************************
Devices, I/O
diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp
index 60d7780b14a..6b58c2f41cc 100644
--- a/src/mame/drivers/fidel_csc.cpp
+++ b/src/mame/drivers/fidel_csc.cpp
@@ -199,6 +199,8 @@ PCB label 510-1035A01
#include "cpu/m6502/m6502.h"
#include "machine/6821pia.h"
#include "machine/timer.h"
+#include "sound/s14001a.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -210,13 +212,19 @@ PCB label 510-1035A01
namespace {
+// CSC / shared
+
class csc_state : public fidelbase_state
{
public:
csc_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
- m_pia(*this, "pia%u", 0)
+ m_pia(*this, "pia%u", 0),
+ m_dac(*this, "dac"),
+ m_speech(*this, "speech"),
+ m_speech_rom(*this, "speech"),
+ m_language(*this, "language")
{ }
// machine drivers
@@ -226,9 +234,15 @@ public:
void rsc(machine_config &config);
protected:
+ virtual void machine_start() override;
+
// devices/pointers
required_device<timer_device> m_irq_on;
optional_device_array<pia6821_device, 2> m_pia;
+ required_device<dac_bit_interface> m_dac;
+ optional_device<s14001a_device> m_speech;
+ optional_region_ptr<u8> m_speech_rom;
+ optional_region_ptr<u8> m_language;
// address maps
void csc_map(address_map &map);
@@ -253,8 +267,23 @@ protected:
DECLARE_WRITE8_MEMBER(pia1_pb_w);
DECLARE_READ8_MEMBER(pia1_pb_r);
DECLARE_WRITE_LINE_MEMBER(pia1_ca2_w);
+
+ u8 m_speech_bank;
};
+void csc_state::machine_start()
+{
+ fidelbase_state::machine_start();
+
+ // zerofill
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_bank));
+}
+
+// SU9
+
class su9_state : public csc_state
{
public:
@@ -283,6 +312,7 @@ void su9_state::su9_set_cpu_freq()
}
+
/******************************************************************************
Devices, I/O
******************************************************************************/
diff --git a/src/mame/drivers/fidel_dames.cpp b/src/mame/drivers/fidel_dames.cpp
index 84773c93836..e29f2c0274b 100644
--- a/src/mame/drivers/fidel_dames.cpp
+++ b/src/mame/drivers/fidel_dames.cpp
@@ -22,6 +22,7 @@ It's a checkers game for once instead of chess
#include "cpu/z80/z80.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -36,7 +37,8 @@ class dsc_state : public fidelbase_state
public:
dsc_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
- m_irq_on(*this, "irq_on")
+ m_irq_on(*this, "irq_on"),
+ m_dac(*this, "dac")
{ }
// machine drivers
@@ -45,6 +47,7 @@ public:
private:
// devices/pointers
required_device<timer_device> m_irq_on;
+ required_device<dac_bit_interface> m_dac;
// address maps
void main_map(address_map &map);
diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp
index 4238b791d60..972a79f1151 100644
--- a/src/mame/drivers/fidel_desdis.cpp
+++ b/src/mame/drivers/fidel_desdis.cpp
@@ -44,6 +44,7 @@ Designer Mach IV Master 2325 (model 6129) overview:
#include "cpu/m6502/m65sc02.h"
#include "cpu/m68000/m68000.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -55,13 +56,16 @@ Designer Mach IV Master 2325 (model 6129) overview:
namespace {
+// Designer Display / shared
+
class desdis_state : public fidelbase_state
{
public:
desdis_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
- m_rombank(*this, "rombank")
+ m_rombank(*this, "rombank"),
+ m_dac(*this, "dac")
{ }
// machine drivers
@@ -74,6 +78,7 @@ protected:
// devices/pointers
required_device<timer_device> m_irq_on;
optional_memory_bank m_rombank;
+ required_device<dac_bit_interface> m_dac;
// address maps
void fdes2100d_map(address_map &map);
@@ -88,6 +93,13 @@ protected:
virtual DECLARE_READ8_MEMBER(input_r);
};
+void desdis_state::init_fdes2100d()
+{
+ m_rombank->configure_entries(0, 2, memregion("rombank")->base(), 0x4000);
+}
+
+// Designer Master
+
class desmas_state : public desdis_state
{
public:
@@ -111,14 +123,6 @@ private:
virtual DECLARE_WRITE8_MEMBER(lcd_w) override { desdis_state::lcd_w(space, offset, ~data); }
};
-
-// init
-
-void desdis_state::init_fdes2100d()
-{
- m_rombank->configure_entries(0, 2, memregion("rombank")->base(), 0x4000);
-}
-
void desmas_state::init_fdes2265()
{
u16 *rom = (u16*)memregion("maincpu")->base();
@@ -136,6 +140,7 @@ void desmas_state::init_fdes2265()
}
+
/******************************************************************************
Devices, I/O
******************************************************************************/
diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp
index 74ed1cdbd52..11246e95fc1 100644
--- a/src/mame/drivers/fidel_eag68k.cpp
+++ b/src/mame/drivers/fidel_eag68k.cpp
@@ -159,6 +159,7 @@ B0000x-xxxxxx: see V7, -800000
#include "machine/ram.h"
#include "machine/nvram.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -172,6 +173,8 @@ B0000x-xxxxxx: see V7, -800000
namespace {
+// EAG / shared
+
class eag_state : public fidelbase_state
{
public:
@@ -180,6 +183,7 @@ public:
m_maincpu(*this, "maincpu"),
m_irq_on(*this, "irq_on"),
m_ram(*this, "ram"),
+ m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -201,6 +205,7 @@ protected:
required_device<m68000_base_device> m_maincpu;
optional_device<timer_device> m_irq_on;
optional_device<ram_device> m_ram;
+ required_device<dac_bit_interface> m_dac;
optional_device<generic_slot_device> m_cart;
// address maps
@@ -223,6 +228,8 @@ protected:
DECLARE_WRITE8_MEMBER(digit_w);
};
+// EAG V5
+
class eagv5_state : public eag_state
{
public:
@@ -252,6 +259,8 @@ private:
DECLARE_READ8_MEMBER(sub_ack_r);
};
+// Excel 68000
+
class excel68k_state : public eag_state
{
public:
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index 486e3104edb..3b1d98d9206 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -53,6 +53,8 @@ It was probably only released in Germany.
#include "machine/i8255.h"
#include "machine/nvram.h"
#include "machine/timer.h"
+#include "sound/s14001a.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -76,6 +78,10 @@ public:
m_irq_on(*this, "irq_on"),
m_ppi8255(*this, "ppi8255"),
m_rombank(*this, "rombank"),
+ m_dac(*this, "dac"),
+ m_speech(*this, "speech"),
+ m_speech_rom(*this, "speech"),
+ m_language(*this, "language"),
m_cart(*this, "cartslot")
{ }
@@ -88,11 +94,18 @@ public:
void init_eag2100();
+protected:
+ virtual void machine_start() override;
+
private:
// devices/pointers
required_device<timer_device> m_irq_on;
optional_device<i8255_device> m_ppi8255;
optional_memory_bank m_rombank;
+ required_device<dac_bit_interface> m_dac;
+ required_device<s14001a_device> m_speech;
+ required_region_ptr<u8> m_speech_rom;
+ required_region_ptr<u8> m_language;
required_device<generic_slot_device> m_cart;
// address maps
@@ -116,6 +129,8 @@ private:
DECLARE_WRITE8_MEMBER(ppi_porta_w);
DECLARE_READ8_MEMBER(ppi_portb_r);
DECLARE_WRITE8_MEMBER(ppi_portc_w);
+
+ u8 m_speech_bank;
};
void elite_state::init_eag2100()
@@ -123,6 +138,18 @@ void elite_state::init_eag2100()
m_rombank->configure_entries(0, 4, memregion("rombank")->base(), 0x2000);
}
+void elite_state::machine_start()
+{
+ fidelbase_state::machine_start();
+
+ // zerofill
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_bank));
+}
+
+
/******************************************************************************
Devices, I/O
diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp
index 4e4e1530936..ccba4744720 100644
--- a/src/mame/drivers/fidel_excel.cpp
+++ b/src/mame/drivers/fidel_excel.cpp
@@ -134,6 +134,8 @@ Designer 2100 (model 6103): exactly same, but running at 5MHz
#include "cpu/m6502/r65c02.h"
#include "cpu/m6502/m65sc02.h"
#include "machine/timer.h"
+#include "sound/s14001a.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -150,7 +152,10 @@ class excel_state : public fidelbase_state
public:
excel_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
- m_irq_on(*this, "irq_on")
+ m_irq_on(*this, "irq_on"),
+ m_dac(*this, "dac"),
+ m_speech(*this, "speech"),
+ m_speech_rom(*this, "speech")
{ }
// machine drivers
@@ -166,9 +171,15 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(speech_bankswitch);
+protected:
+ virtual void machine_start() override;
+
private:
// devices/pointers
required_device<timer_device> m_irq_on;
+ required_device<dac_bit_interface> m_dac;
+ optional_device<s14001a_device> m_speech;
+ optional_region_ptr<u8> m_speech_rom;
// address maps
void fexcel_map(address_map &map);
@@ -182,8 +193,25 @@ private:
DECLARE_READ8_MEMBER(speech_r);
DECLARE_WRITE8_MEMBER(ttl_w);
DECLARE_READ8_MEMBER(ttl_r);
+
+ u8 m_speech_data;
+ u8 m_speech_bank;
};
+void excel_state::machine_start()
+{
+ fidelbase_state::machine_start();
+
+ // zerofill
+ m_speech_data = 0;
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_data));
+ save_item(NAME(m_speech_bank));
+}
+
+
/******************************************************************************
Devices, I/O
diff --git a/src/mame/drivers/fidel_phantom.cpp b/src/mame/drivers/fidel_phantom.cpp
index c516dc6090f..dd07c7b1f14 100644
--- a/src/mame/drivers/fidel_phantom.cpp
+++ b/src/mame/drivers/fidel_phantom.cpp
@@ -28,6 +28,7 @@ Fidelity Phantom (model 6100) overview:
#include "includes/fidelbase.h"
#include "cpu/m6502/r65c02.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -42,7 +43,8 @@ class phantom_state : public fidelbase_state
public:
phantom_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
- m_rombank(*this, "rombank")
+ m_rombank(*this, "rombank"),
+ m_dac(*this, "dac")
{ }
void fphantom(machine_config &config);
@@ -54,6 +56,7 @@ protected:
private:
// devices/pointers
required_memory_bank m_rombank;
+ required_device<dac_bit_interface> m_dac;
void main_map(address_map &map);
};
diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp
index c5285922089..9e6c1e9dec4 100644
--- a/src/mame/drivers/fidel_sc12.cpp
+++ b/src/mame/drivers/fidel_sc12.cpp
@@ -53,6 +53,7 @@ If control Q4 is set, printer data can be read from I0.
#include "includes/fidelbase.h"
#include "cpu/m6502/r65c02.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "machine/timer.h"
#include "bus/generic/slot.h"
@@ -72,6 +73,7 @@ public:
sc12_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
+ m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -82,6 +84,7 @@ public:
private:
// devices/pointers
required_device<timer_device> m_irq_on;
+ required_device<dac_bit_interface> m_dac;
required_device<generic_slot_device> m_cart;
// address maps
diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp
index 948277d4aad..f3e0b425162 100644
--- a/src/mame/drivers/fidel_sc6.cpp
+++ b/src/mame/drivers/fidel_sc6.cpp
@@ -26,6 +26,7 @@ SC6 program is contained in BO6 and CG6.
#include "includes/fidelbase.h"
#include "cpu/mcs48/mcs48.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -44,6 +45,7 @@ public:
sc6_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -53,6 +55,7 @@ public:
private:
// devices/pointers
required_device<mcs48_cpu_device> m_maincpu;
+ required_device<dac_bit_interface> m_dac;
required_device<generic_slot_device> m_cart;
// address maps
diff --git a/src/mame/drivers/fidel_sc8.cpp b/src/mame/drivers/fidel_sc8.cpp
index 8c0ee763dcf..a2a0a3c08dd 100644
--- a/src/mame/drivers/fidel_sc8.cpp
+++ b/src/mame/drivers/fidel_sc8.cpp
@@ -19,6 +19,7 @@ Fidelity Sensory Chess Challenger 8 overview:
#include "includes/fidelbase.h"
#include "cpu/z80/z80.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -32,13 +33,17 @@ class scc_state : public fidelbase_state
{
public:
scc_state(const machine_config &mconfig, device_type type, const char *tag) :
- fidelbase_state(mconfig, type, tag)
+ fidelbase_state(mconfig, type, tag),
+ m_dac(*this, "dac")
{ }
// machine drivers
void scc(machine_config &config);
private:
+ // devices/pointers
+ required_device<dac_bit_interface> m_dac;
+
// address maps
void main_map(address_map &map);
void main_io(address_map &map);
diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp
index 935730b43ac..37b70749a1a 100644
--- a/src/mame/drivers/fidel_sc9.cpp
+++ b/src/mame/drivers/fidel_sc9.cpp
@@ -42,6 +42,7 @@ IRQ and write strobe are unused. Maximum known size is 16KB.
#include "cpu/m6502/m6502.h"
#include "machine/timer.h"
+#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -55,12 +56,15 @@ IRQ and write strobe are unused. Maximum known size is 16KB.
namespace {
+// SC9 / shared
+
class sc9_state : public fidelbase_state
{
public:
sc9_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
+ m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -73,6 +77,7 @@ public:
protected:
// devices/pointers
required_device<timer_device> m_irq_on;
+ required_device<dac_bit_interface> m_dac;
required_device<generic_slot_device> m_cart;
// address maps
@@ -93,6 +98,8 @@ protected:
DECLARE_READ8_MEMBER(input_d7_r);
};
+// SC9C
+
class sc9c_state : public sc9_state
{
public:
diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp
index f80bc8d0a04..73825b3dd4e 100644
--- a/src/mame/drivers/fidel_vcc.cpp
+++ b/src/mame/drivers/fidel_vcc.cpp
@@ -107,6 +107,7 @@ determination and give you a language option on power up or something.
#include "cpu/z80/z80.h"
#include "machine/i8255.h"
+#include "sound/s14001a.h"
#include "speaker.h"
// internal artwork
@@ -120,7 +121,10 @@ class vcc_state : public fidelbase_state
public:
vcc_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag),
- m_ppi8255(*this, "ppi8255")
+ m_ppi8255(*this, "ppi8255"),
+ m_speech(*this, "speech"),
+ m_speech_rom(*this, "speech"),
+ m_language(*this, "language")
{ }
// RE button is tied to Z80 RESET pin
@@ -135,6 +139,9 @@ protected:
private:
// devices/pointers
required_device<i8255_device> m_ppi8255;
+ required_device<s14001a_device> m_speech;
+ required_region_ptr<u8> m_speech_rom;
+ required_region_ptr<u8> m_language;
// address maps
void main_map(address_map &map);
@@ -148,12 +155,20 @@ private:
DECLARE_WRITE8_MEMBER(ppi_portb_w);
DECLARE_READ8_MEMBER(ppi_portc_r);
DECLARE_WRITE8_MEMBER(ppi_portc_w);
+
+ u8 m_speech_bank;
};
void vcc_state::machine_start()
{
fidelbase_state::machine_start();
+ // zerofill
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_bank));
+
// game relies on RAM filled with FF at power-on
for (int i = 0; i < 0x400; i++)
m_maincpu->space(AS_PROGRAM).write_byte(i + 0x4000, 0xff);
diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp
index fb77e377b01..8498ac68913 100644
--- a/src/mame/drivers/fidel_vsc.cpp
+++ b/src/mame/drivers/fidel_vsc.cpp
@@ -158,6 +158,7 @@ IFP: Impact Printer - also compatible with C64 apparently.
#include "machine/i8255.h"
#include "machine/z80pio.h"
#include "machine/timer.h"
+#include "sound/s14001a.h"
#include "speaker.h"
// internal artwork
@@ -173,17 +174,26 @@ public:
fidelbase_state(mconfig, type, tag),
m_irq_on(*this, "irq_on"),
m_z80pio(*this, "z80pio"),
- m_ppi8255(*this, "ppi8255")
+ m_ppi8255(*this, "ppi8255"),
+ m_speech(*this, "speech"),
+ m_speech_rom(*this, "speech"),
+ m_language(*this, "language")
{ }
// machine drivers
void vsc(machine_config &config);
+protected:
+ virtual void machine_start() override;
+
private:
// devices/pointers
required_device<timer_device> m_irq_on;
required_device<z80pio_device> m_z80pio;
required_device<i8255_device> m_ppi8255;
+ required_device<s14001a_device> m_speech;
+ required_region_ptr<u8> m_speech_rom;
+ required_region_ptr<u8> m_language;
// address maps
void main_map(address_map &map);
@@ -204,8 +214,22 @@ private:
DECLARE_READ8_MEMBER(pio_porta_r);
DECLARE_READ8_MEMBER(pio_portb_r);
DECLARE_WRITE8_MEMBER(pio_portb_w);
+
+ u8 m_speech_bank;
};
+void vsc_state::machine_start()
+{
+ fidelbase_state::machine_start();
+
+ // zerofill
+ m_speech_bank = 0;
+
+ // register for savestates
+ save_item(NAME(m_speech_bank));
+}
+
+
/******************************************************************************
Devices, I/O
diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp
index edaac71698b..6079031582d 100644
--- a/src/mame/drivers/intellect02.cpp
+++ b/src/mame/drivers/intellect02.cpp
@@ -84,21 +84,20 @@ private:
required_device<generic_slot_device> m_cart;
required_ioport_array<2> m_inputs;
- DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
-
- // display stuff
- void update_display();
- u8 m_digit_data;
- u8 m_led_select;
-
// address maps
void main_map(address_map &map);
void main_io(address_map &map);
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
+
// I/O handlers
+ void update_display();
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(digit_w);
DECLARE_WRITE8_MEMBER(control_w);
+
+ u8 m_digit_data;
+ u8 m_led_select;
};
void intel02_state::machine_start()
diff --git a/src/mame/drivers/novag_delta1.cpp b/src/mame/drivers/novag_delta1.cpp
index 098e52c0672..3ab5b49493f 100644
--- a/src/mame/drivers/novag_delta1.cpp
+++ b/src/mame/drivers/novag_delta1.cpp
@@ -53,6 +53,8 @@ private:
void main_map(address_map &map);
void main_io(address_map &map);
+ TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); }
+
// I/O handlers
void update_display();
DECLARE_WRITE8_MEMBER(mux_w);
@@ -65,8 +67,6 @@ private:
u8 m_7seg_data;
bool m_7seg_rc;
bool m_blink;
-
- TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); }
};
void delta1_state::machine_start()
diff --git a/src/mame/drivers/novag_mk1.cpp b/src/mame/drivers/novag_mk1.cpp
index 99b7bdfe621..9bfba67f1c6 100644
--- a/src/mame/drivers/novag_mk1.cpp
+++ b/src/mame/drivers/novag_mk1.cpp
@@ -95,12 +95,13 @@ public:
m_inputs(*this, "IN.%u", 0)
{ }
+ DECLARE_INPUT_CHANGED_MEMBER(reset_switch) { update_reset(newval); }
+
+ // machine drivers
void cmpchess(machine_config &config);
void mk1(machine_config &config);
void cnc(machine_config &config);
- DECLARE_INPUT_CHANGED_MEMBER(reset_switch) { update_reset(newval); }
-
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -113,6 +114,7 @@ private:
optional_device<beep_device> m_beeper;
required_ioport_array<4> m_inputs;
+ // address maps
void main_map(address_map &map);
void main_io(address_map &map);
void cnc_io(address_map &map);
@@ -122,6 +124,7 @@ private:
void update_display();
void update_reset(ioport_value state);
+ // I/O handlers
DECLARE_READ8_MEMBER(beeper_r);
DECLARE_WRITE8_MEMBER(input_w);
DECLARE_READ8_MEMBER(input_r);
diff --git a/src/mame/drivers/novag_presto.cpp b/src/mame/drivers/novag_presto.cpp
index 3b8293589c2..cb4e3d57600 100644
--- a/src/mame/drivers/novag_presto.cpp
+++ b/src/mame/drivers/novag_presto.cpp
@@ -53,6 +53,8 @@ public:
void octo(machine_config &config);
protected:
+ virtual void machine_start() override;
+
// devices/pointers
required_device<mcs48_cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
@@ -69,8 +71,6 @@ protected:
bool m_kp_select;
u8 m_inp_mux;
u8 m_led_select;
-
- virtual void machine_start() override;
};
void presto_state::machine_start()
diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp
index 2990a4e3448..0caf493bb2e 100644
--- a/src/mame/drivers/novag_sexpert.cpp
+++ b/src/mame/drivers/novag_sexpert.cpp
@@ -70,6 +70,9 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(sexpert_cpu_freq) { sexpert_set_cpu_freq(); }
protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<timer_device> m_irq_on;
@@ -83,9 +86,6 @@ protected:
required_device<beep_device> m_beeper;
required_ioport_array<8> m_inputs;
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
void sexpert_set_cpu_freq();
// address maps
diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h
index 12703476197..ff82c666d80 100644
--- a/src/mame/includes/fidelbase.h
+++ b/src/mame/includes/fidelbase.h
@@ -15,9 +15,6 @@
#include "includes/chessbase.h"
#include "machine/bankdev.h"
-#include "machine/timer.h"
-#include "sound/dac.h"
-#include "sound/s14001a.h"
class fidelbase_state : public chessbase_state
{
@@ -25,11 +22,7 @@ public:
fidelbase_state(const machine_config &mconfig, device_type type, const char *tag) :
chessbase_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_mainmap(*this, "mainmap"),
- m_speech(*this, "speech"),
- m_speech_rom(*this, "speech"),
- m_language(*this, "language"),
- m_dac(*this, "dac")
+ m_mainmap(*this, "mainmap")
{ }
DECLARE_INPUT_CHANGED_MEMBER(div_changed) { div_refresh(newval); }
@@ -38,13 +31,6 @@ protected:
// devices/pointers
required_device<cpu_device> m_maincpu;
optional_device<address_map_bank_device> m_mainmap;
- optional_device<s14001a_device> m_speech;
- optional_region_ptr<u8> m_speech_rom;
- optional_region_ptr<u8> m_language;
- optional_device<dac_bit_interface> m_dac;
-
- u8 m_speech_data;
- u8 m_speech_bank; // speech rom higher address bits
// dynamic cpu divider
void div_trampoline_w(offs_t offset, u8 data);
diff --git a/src/mame/layout/novag_cforte.lay b/src/mame/layout/novag_cforte.lay
index 1116cfd9c18..a9ad65fa3c3 100644
--- a/src/mame/layout/novag_cforte.lay
+++ b/src/mame/layout/novag_cforte.lay
@@ -4,7 +4,6 @@
<!-- define elements -->
<element name="static_red"><rect><color red="0.7" green="0.13" blue="0.12" /></rect></element>
- <element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<!-- our digit element is bright-on-dark, this means the lcd panel is the wrong colour here -->
@@ -447,52 +446,50 @@
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="-15" right="111" top="-2" bottom="89" />
+ <bounds left="-12" right="111" top="-1" bottom="88" />
- <bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
- <group ref="sb_board"><bounds x="3" y="3" width="80" height="80" /></group>
-
- <group ref="sb_ui"><bounds x="-13" y="3" width="10" height="80" /></group>
+ <group ref="sb_board"><bounds x="4" y="3" width="80" height="80" /></group>
+ <group ref="sb_ui"><bounds x="-11" y="3" width="10" height="80" /></group>
<!-- chessboard coords -->
- <bezel element="text_8"><bounds x="-0.8" y="9" width="2" height="2" /></bezel>
- <bezel element="text_7"><bounds x="-0.8" y="19" width="2" height="2" /></bezel>
- <bezel element="text_6"><bounds x="-0.8" y="29" width="2" height="2" /></bezel>
- <bezel element="text_5"><bounds x="-0.8" y="39" width="2" height="2" /></bezel>
- <bezel element="text_4"><bounds x="-0.8" y="49" width="2" height="2" /></bezel>
- <bezel element="text_3"><bounds x="-0.8" y="59" width="2" height="2" /></bezel>
- <bezel element="text_2"><bounds x="-0.8" y="69" width="2" height="2" /></bezel>
- <bezel element="text_1"><bounds x="-0.8" y="79" width="2" height="2" /></bezel>
-
- <bezel element="text_a"><bounds x="5" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_b"><bounds x="15" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_c"><bounds x="25" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_d"><bounds x="35" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_e"><bounds x="45" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_f"><bounds x="55" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_g"><bounds x="65" y="85.5" width="2" height="2" /></bezel>
- <bezel element="text_h"><bounds x="75" y="85.5" width="2" height="2" /></bezel>
+ <bezel element="text_8"><bounds x="1.2" y="9" width="2" height="2" /></bezel>
+ <bezel element="text_7"><bounds x="1.2" y="19" width="2" height="2" /></bezel>
+ <bezel element="text_6"><bounds x="1.2" y="29" width="2" height="2" /></bezel>
+ <bezel element="text_5"><bounds x="1.2" y="39" width="2" height="2" /></bezel>
+ <bezel element="text_4"><bounds x="1.2" y="49" width="2" height="2" /></bezel>
+ <bezel element="text_3"><bounds x="1.2" y="59" width="2" height="2" /></bezel>
+ <bezel element="text_2"><bounds x="1.2" y="69" width="2" height="2" /></bezel>
+ <bezel element="text_1"><bounds x="1.2" y="79" width="2" height="2" /></bezel>
+
+ <bezel element="text_a"><bounds x="6" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_b"><bounds x="16" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_c"><bounds x="26" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_d"><bounds x="36" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_e"><bounds x="46" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_f"><bounds x="56" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_g"><bounds x="66" y="84.5" width="2" height="2" /></bezel>
+ <bezel element="text_h"><bounds x="76" y="84.5" width="2" height="2" /></bezel>
<!-- chessboard leds -->
- <bezel name="1.0" element="ledr"><bounds x="-1" y="7.5" width="2" height="1" /></bezel>
- <bezel name="1.1" element="ledr"><bounds x="-1" y="17.5" width="2" height="1" /></bezel>
- <bezel name="1.2" element="ledr"><bounds x="-1" y="27.5" width="2" height="1" /></bezel>
- <bezel name="1.3" element="ledr"><bounds x="-1" y="37.5" width="2" height="1" /></bezel>
- <bezel name="1.4" element="ledr"><bounds x="-1" y="47.5" width="2" height="1" /></bezel>
- <bezel name="1.5" element="ledr"><bounds x="-1" y="57.5" width="2" height="1" /></bezel>
- <bezel name="1.6" element="ledr"><bounds x="-1" y="67.5" width="2" height="1" /></bezel>
- <bezel name="1.7" element="ledr"><bounds x="-1" y="77.5" width="2" height="1" /></bezel>
-
- <bezel name="2.0" element="ledr"><bounds x="7.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.1" element="ledr"><bounds x="17.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.2" element="ledr"><bounds x="27.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.3" element="ledr"><bounds x="37.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.4" element="ledr"><bounds x="47.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.5" element="ledr"><bounds x="57.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.6" element="ledr"><bounds x="67.5" y="85" width="1" height="2" /></bezel>
- <bezel name="2.7" element="ledr"><bounds x="77.5" y="85" width="1" height="2" /></bezel>
+ <bezel name="1.0" element="ledr"><bounds x="1" y="7.5" width="2" height="1" /></bezel>
+ <bezel name="1.1" element="ledr"><bounds x="1" y="17.5" width="2" height="1" /></bezel>
+ <bezel name="1.2" element="ledr"><bounds x="1" y="27.5" width="2" height="1" /></bezel>
+ <bezel name="1.3" element="ledr"><bounds x="1" y="37.5" width="2" height="1" /></bezel>
+ <bezel name="1.4" element="ledr"><bounds x="1" y="47.5" width="2" height="1" /></bezel>
+ <bezel name="1.5" element="ledr"><bounds x="1" y="57.5" width="2" height="1" /></bezel>
+ <bezel name="1.6" element="ledr"><bounds x="1" y="67.5" width="2" height="1" /></bezel>
+ <bezel name="1.7" element="ledr"><bounds x="1" y="77.5" width="2" height="1" /></bezel>
+
+ <bezel name="2.0" element="ledr"><bounds x="8.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.1" element="ledr"><bounds x="18.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.2" element="ledr"><bounds x="28.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.3" element="ledr"><bounds x="38.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.4" element="ledr"><bounds x="48.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.5" element="ledr"><bounds x="58.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.6" element="ledr"><bounds x="68.5" y="84" width="1" height="2" /></bezel>
+ <bezel name="2.7" element="ledr"><bounds x="78.5" y="84" width="1" height="2" /></bezel>
<!-- right side lcd panel/leds -->
diff --git a/src/mame/layout/novag_sforte.lay b/src/mame/layout/novag_sforte.lay
index 3b1bd194ea7..0c39a77a6b5 100644
--- a/src/mame/layout/novag_sforte.lay
+++ b/src/mame/layout/novag_sforte.lay
@@ -5,7 +5,6 @@
<element name="static_red"><rect><color red="0.7" green="0.13" blue="0.12" /></rect></element>
<element name="static_lcd"><rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect></element>
- <element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="ledr" defstate="0">
diff --git a/src/mame/layout/scisys_cp2000.lay b/src/mame/layout/scisys_cp2000.lay
index de2ac7fa740..d6addead971 100644
--- a/src/mame/layout/scisys_cp2000.lay
+++ b/src/mame/layout/scisys_cp2000.lay
@@ -597,13 +597,12 @@
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="61" right="198" top="0" bottom="86" />
+ <bounds left="61" right="198.25" top="0" bottom="86" />
- <bezel element="black"><bounds x="102" y="2" width="82" height="82" /></bezel>
- <group ref="sb_board"><bounds x="103" y="3" width="80" height="80" /></group>
+ <group ref="sb_board"><bounds x="102" y="2" width="82" height="82" /></group>
<!-- putting sb_ui on the right side, since chesscomputer has its own ui on the left -->
- <group ref="sb_ui"><bounds x="186" y="3" width="10" height="80" /></group>
+ <group ref="sb_ui"><bounds x="186" y="2" width="10.25" height="82" /></group>
<!-- left side display -->
diff --git a/src/mame/machine/fidelbase.cpp b/src/mame/machine/fidelbase.cpp
index 5bac54d1cae..547ea7bd5f8 100644
--- a/src/mame/machine/fidelbase.cpp
+++ b/src/mame/machine/fidelbase.cpp
@@ -31,7 +31,6 @@ Read the official manual(s) on how to play.
#include "emu.h"
#include "includes/fidelbase.h"
-#include "machine/timer.h"
// machine start/reset
@@ -41,12 +40,8 @@ void fidelbase_state::machine_start()
chessbase_state::machine_start();
// zerofill/register for savestates
- m_speech_data = 0;
- m_speech_bank = 0;
m_div_config = 0;
- save_item(NAME(m_speech_data));
- save_item(NAME(m_speech_bank));
save_item(NAME(m_div_status));
save_item(NAME(m_div_config));
save_item(NAME(m_div_scale));