diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/audio/bu3905.cpp | 31 | ||||
-rw-r--r-- | src/mame/audio/bu3905.h | 56 | ||||
-rw-r--r-- | src/mame/drivers/boss_se70.cpp | 54 | ||||
-rw-r--r-- | src/mame/drivers/boss_sx700.cpp | 53 | ||||
-rw-r--r-- | src/mame/drivers/roland_s10.cpp | 7 | ||||
-rw-r--r-- | src/mame/drivers/roland_s50.cpp | 17 | ||||
-rw-r--r-- | src/mame/mame.lst | 6 | ||||
-rw-r--r-- | src/mame/mess.flt | 2 |
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 |