summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/audio/bu3905.cpp31
-rw-r--r--src/mame/audio/bu3905.h56
-rw-r--r--src/mame/drivers/boss_se70.cpp54
-rw-r--r--src/mame/drivers/boss_sx700.cpp53
-rw-r--r--src/mame/drivers/roland_s10.cpp7
-rw-r--r--src/mame/drivers/roland_s50.cpp17
-rw-r--r--src/mame/mame.lst6
-rw-r--r--src/mame/mess.flt2
8 files changed, 223 insertions, 3 deletions
diff --git a/src/mame/audio/bu3905.cpp b/src/mame/audio/bu3905.cpp
new file mode 100644
index 00000000000..734eb8fc287
--- /dev/null
+++ b/src/mame/audio/bu3905.cpp
@@ -0,0 +1,31 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton device for Roland BU3905 output assigner gate array.
+
+ This 42-pin IC has Roland part number 15229873. Most of its outputs
+ are used to control analog switches. The CE0 and XRST inputs are
+ normally tied to Vcc.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "bu3905.h"
+
+// device type definition
+DEFINE_DEVICE_TYPE(BU3905, bu3905_device, "bu3905", "Roland BU3905S R11-0006 Output Assigner")
+
+bu3905_device::bu3905_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, BU3905, tag, owner, clock)
+{
+}
+
+void bu3905_device::device_start()
+{
+}
+
+void bu3905_device::write(offs_t offset, u8 data)
+{
+ logerror("%s: Writing %02X to offset %X\n", machine().describe_context(), data, offset & 0xf);
+}
diff --git a/src/mame/audio/bu3905.h b/src/mame/audio/bu3905.h
new file mode 100644
index 00000000000..7446aceff87
--- /dev/null
+++ b/src/mame/audio/bu3905.h
@@ -0,0 +1,56 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+ _____ _____
+ XCE2 1 |* \_/ | 42 VDD
+ XCE1 2 | | 41 Q7
+ CE0 3 | | 40 Q6
+ D7 4 | | 39 Q5
+ D6 5 | | 38 Q4
+ D5 6 | | 37 Q3
+ D4 7 | | 36 Q2
+ D3 8 | | 35 Q1
+ D2 9 | | 34 Q0
+ D1 10 | | 33 XQ7
+ NC 11 | BU3905S | 32 NC
+ D0 12 | | 31 XQ6
+ A3 13 | | 30 XQ5
+ A2 14 | | 29 XQ4
+ A1 15 | | 28 XQ3
+ A0 16 | | 27 XQ2
+ CH0 17 | | 26 XQ1
+ CH1 18 | | 25 XQ0
+ CH2 19 | | 24 AXO
+ XEN 20 | | 23 AXI
+ GND 21 |_____________| 22 XRST
+
+****************************************************************************/
+
+#ifndef MAME_AUDIO_BU3905_H
+#define MAME_AUDIO_BU3905_H
+
+#pragma once
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> bu3905_device
+
+class bu3905_device : public device_t
+{
+public: // construction/destruction
+ bu3905_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ void write(offs_t offset, u8 data);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+};
+
+// device type declaration
+DECLARE_DEVICE_TYPE(BU3905, bu3905_device)
+
+#endif // MAME_AUDIO_BU3905_H
diff --git a/src/mame/drivers/boss_se70.cpp b/src/mame/drivers/boss_se70.cpp
new file mode 100644
index 00000000000..4762e7d6be5
--- /dev/null
+++ b/src/mame/drivers/boss_se70.cpp
@@ -0,0 +1,54 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Boss SE-70 signal processor.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/h8500/h8510.h"
+
+class boss_se70_state : public driver_device
+{
+public:
+ boss_se70_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void se70(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<h8510_device> m_maincpu;
+};
+
+
+void boss_se70_state::mem_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).mirror(0xf00000).rom().region("program", 0);
+}
+
+
+static INPUT_PORTS_START(se70)
+INPUT_PORTS_END
+
+void boss_se70_state::se70(machine_config &config)
+{
+ HD6415108(config, m_maincpu, 16_MHz_XTAL);
+ // TODO: operates in mode 3 with 8-bit data bus
+ m_maincpu->set_addrmap(AS_PROGRAM, &boss_se70_state::mem_map);
+
+ //TC6088AF(config, "csp", 65.152_MHz_XTAL);
+ //UPD65622GF040(config, "interface", 24.576_MHz_XTAL);
+}
+
+ROM_START(se70)
+ ROM_REGION16_BE(0x80000, "program", 0)
+ ROM_LOAD("boss_se-70_v1.01.ic29", 0x00000, 0x80000, CRC(f19151f3) SHA1(6c0de1e0debe72374802d54f8d37517b3ad0b131)) // 27C4001
+ROM_END
+
+SYST(1993, se70, 0, 0, se70, se70, boss_se70_state, empty_init, "Roland", "Boss SE-70 Studio Effects Processor", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/boss_sx700.cpp b/src/mame/drivers/boss_sx700.cpp
new file mode 100644
index 00000000000..82c97c93fed
--- /dev/null
+++ b/src/mame/drivers/boss_sx700.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Boss SX-700 signal processor.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/h8/h83002.h"
+
+class boss_sx700_state : public driver_device
+{
+public:
+ boss_sx700_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void sx700(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<h83002_device> m_maincpu;
+};
+
+
+void boss_sx700_state::mem_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom().region("program", 0);
+}
+
+
+static INPUT_PORTS_START(sx700)
+INPUT_PORTS_END
+
+void boss_sx700_state::sx700(machine_config &config)
+{
+ H83002(config, m_maincpu, 16_MHz_XTAL); // HD6413002F
+ // TODO: operates in mode 3 with 8-bit data bus
+ m_maincpu->set_addrmap(AS_PROGRAM, &boss_sx700_state::mem_map);
+
+ //TC170C140AF_003(config, "dsp", 67.7376_MHz_XTAL);
+}
+
+ROM_START(sx700)
+ ROM_REGION16_BE(0x80000, "program", 0)
+ ROM_LOAD("sx-700_1_0_2.ic17", 0x00000, 0x80000, CRC(6739f525) SHA1(3370f43fd586baa0bcc71891a766b45e1d42253d)) // M27C4001-10F1
+ROM_END
+
+SYST(1996, sx700, 0, 0, sx700, sx700, boss_sx700_state, empty_init, "Roland", "Boss SX-700 Studio Effects Processor", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/roland_s10.cpp b/src/mame/drivers/roland_s10.cpp
index fae40341c26..7b063794a06 100644
--- a/src/mame/drivers/roland_s10.cpp
+++ b/src/mame/drivers/roland_s10.cpp
@@ -11,6 +11,7 @@
****************************************************************************/
#include "emu.h"
+#include "audio/bu3905.h"
//#include "bus/midi/midi.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/i8251.h"
@@ -66,6 +67,7 @@ class roland_s220_state : public roland_s10_state
public:
roland_s220_state(const machine_config &mconfig, device_type type, const char *tag)
: roland_s10_state(mconfig, type, tag)
+ , m_outctrl(*this, "outctrl")
{
}
@@ -80,6 +82,8 @@ private:
void led_latch2_w(u8 data);
void s220_ext_map(address_map &map);
+
+ required_device<bu3905_device> m_outctrl;
};
@@ -136,6 +140,7 @@ void roland_s10_state::led_latch_w(u8 data)
void roland_s220_state::output_control_w(offs_t offset, u8 data)
{
+ m_outctrl->write(offset, data & 0x0f);
}
void roland_s220_state::vca_cv_w(offs_t offset, u8 data)
@@ -276,6 +281,8 @@ void roland_s220_state::s220(machine_config &config)
subdevice<screen_device>("screen")->set_size(6*16, 8*2);
subdevice<screen_device>("screen")->set_visarea_full();
m_lcdc->set_pixel_update_cb(FUNC(roland_s220_state::lcd_pixel_update));
+
+ BU3905(config, m_outctrl);
}
diff --git a/src/mame/drivers/roland_s50.cpp b/src/mame/drivers/roland_s50.cpp
index 50d7440c6b0..25310f10fca 100644
--- a/src/mame/drivers/roland_s50.cpp
+++ b/src/mame/drivers/roland_s50.cpp
@@ -7,6 +7,7 @@
****************************************************************************/
#include "emu.h"
+#include "audio/bu3905.h"
//#include "bus/midi/midi.h"
#include "cpu/mcs96/i8x9x.h"
#include "imagedev/floppy.h"
@@ -199,6 +200,9 @@ void roland_s50_state::s550_io_map(address_map &map)
map(0x1000, 0x1000).r(m_vdp, FUNC(tms3556_device::vram_r));
map(0x1002, 0x1002).rw(m_vdp, FUNC(tms3556_device::initptr_r), FUNC(tms3556_device::vram_w));
map(0x1004, 0x1004).rw(m_vdp, FUNC(tms3556_device::reg_r), FUNC(tms3556_device::reg_w));
+ //map(0x1800, 0x181f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff);
+ map(0x2800, 0x281f).w("outas", FUNC(bu3905_device::write)).umask16(0x00ff);
+ //map(0x3800, 0x381f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
//map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00);
}
@@ -212,7 +216,7 @@ void roland_w30_state::w30_mem_map(address_map &map)
map(0xc600, 0xc600).rw(FUNC(roland_w30_state::psram_bank_r), FUNC(roland_w30_state::psram_bank_w));
map(0xc800, 0xc807).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff);
map(0xd806, 0xd806).r(FUNC(roland_w30_state::unknown_status_r));
- //map(0xe000, 0xe01f).rw("scsic", FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
+ //map(0xe000, 0xe01f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
map(0xe400, 0xe403).rw("lcd", FUNC(lm24014h_device::read), FUNC(lm24014h_device::write)).umask16(0x00ff);
//map(0xe800, 0xe83f).w("output", FUNC(upd65006gf_376_3b8_device::write)).umask16(0x00ff);
//map(0xf000, 0xf01f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff);
@@ -336,6 +340,13 @@ void roland_s50_state::s550(machine_config &config)
//UPD7537(config.device_replace(), "fipcpu", 400_kHz_XTAL);
config.device_remove("keyscan");
+
+ //MB89352(config, m_scsic, 8_MHz_XTAL); // on Option Board
+ //m_scsic->intr_callback().set_inputline(m_maincpu, i8x9x_device::EXTINT_LINE);
+
+ BU3905(config, "outas");
+
+ //MB654419U(config, m_tvf, 20_MHz_XTAL);
}
void roland_w30_state::w30(machine_config &config)
@@ -365,7 +376,7 @@ void roland_w30_state::w30(machine_config &config)
// Floppy unit: FX-354 (307F1JC)
FLOPPY_CONNECTOR(config, m_floppy, s50_floppies, "35dd", floppy_image_device::default_floppy_formats).enable_sound(true);
- //MB89352(config, "scsic", 8_MHz_XTAL); // by option
+ //MB89352(config, m_scsic, 8_MHz_XTAL); // by option
LM24014H(config, "lcd"); // LCD unit: LM240142
@@ -423,7 +434,7 @@ void roland_w30_state::s330(machine_config &config)
//R15229874(config, m_wave, 26.88_MHz_XTAL);
//m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
- //BU3905S(config, "output");
+ BU3905(config, "outas");
//MB654419U(config, m_tvf, 20_MHz_XTAL);
}
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 813be03360b..651cd04d30f 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -9389,6 +9389,12 @@ boogwingu // MBD (c) 1992 (USA, v1.7)
ragtime // MBD (c) 1992 (Japan, v1.5)
ragtimea // MBD (c) 1992 (Japan, v1.3)
+@source:boss_se70.cpp
+se70 //
+
+@source:boss_sx700.cpp
+sx700 //
+
@source:bottom9.cpp
bottom9 // GX891 (c) 1989
bottom9n // GX891 (c) 1989
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 6fda91a1d77..134f52d74a4 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -121,6 +121,8 @@ blw700i.cpp
bmjr.cpp
bml3.cpp
bob85.cpp
+boss_se70.cpp
+boss_sx700.cpp
bpmmicro.cpp
br8641.cpp
bullet.cpp