From c0a81f91a5fdec27911419ced34019c0acd5c7a7 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 8 Apr 2020 20:38:05 -0400 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- Roland MC-300 Micro Composer [DBWBP] Roland MC-50 Micro Composer [DBWBP] Roland MC-50mkII Micro Composer [DBWBP] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/roland_mc50.cpp | 131 +++++++++++++++++++++++++++++++ src/mame/mame.lst | 5 ++ src/mame/mess.flt | 1 + 4 files changed, 138 insertions(+) create mode 100644 src/mame/drivers/roland_mc50.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 139f02cb7a6..d6b7593156e 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3282,6 +3282,7 @@ files { MAME_DIR .. "src/mame/drivers/roland_jv80.cpp", MAME_DIR .. "src/mame/drivers/roland_jx3p.cpp", MAME_DIR .. "src/mame/drivers/roland_jx8p.cpp", + MAME_DIR .. "src/mame/drivers/roland_mc50.cpp", MAME_DIR .. "src/mame/drivers/roland_mt32.cpp", MAME_DIR .. "src/mame/drivers/roland_r8.cpp", MAME_DIR .. "src/mame/drivers/roland_ra30.cpp", diff --git a/src/mame/drivers/roland_mc50.cpp b/src/mame/drivers/roland_mc50.cpp new file mode 100644 index 00000000000..a7066971ab2 --- /dev/null +++ b/src/mame/drivers/roland_mc50.cpp @@ -0,0 +1,131 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Roland MC-50 & similar MIDI sequencers. + +****************************************************************************/ + +#include "emu.h" +//#include "bus/midi/midi.h" +#include "cpu/z180/z180.h" +#include "imagedev/floppy.h" +#include "machine/wd_fdc.h" + +class roland_mc50_state : public driver_device +{ +public: + roland_mc50_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_mpu(*this, "mpu") + , m_wdfdc(*this, "wdfdc") + , m_wdfdd(*this, "wdfdc:0") + { + } + + void mc300(machine_config &config); + void mc50(machine_config &config); + void mc50mk2(machine_config &config); + +private: + void mem_map_mc300(address_map &map); + void mem_map_mc50(address_map &map); + void io_map(address_map &map); + + required_device m_mpu; + optional_device m_wdfdc; + //optional_device m_hdfdc; + optional_device m_wdfdd; +}; + +void roland_mc50_state::mem_map_mc300(address_map &map) +{ + map(0x00000, 0x01fff).rom().region("mpurom", 0); + map(0x40000, 0xfffff).ram(); +} + +void roland_mc50_state::mem_map_mc50(address_map &map) +{ + map(0x00000, 0x3ffff).rom().region("mpurom", 0); + map(0x40000, 0x7ffff).ram(); + map(0x80000, 0xfffff).rom().region("mpurom", 0); +} + +void roland_mc50_state::io_map(address_map &map) +{ + map(0x0000, 0x003f).noprw(); // internal registers + map(0x00c0, 0x00c3).mirror(0xff00).rw(m_wdfdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)); +} + +static INPUT_PORTS_START(mc50) +INPUT_PORTS_END + +static void mc50_floppies(device_slot_interface &device) +{ + device.option_add("35dd", FLOPPY_35_DD); +} + +void roland_mc50_state::mc300(machine_config &config) +{ + Z80180(config, m_mpu, 10_MHz_XTAL); + m_mpu->set_addrmap(AS_PROGRAM, &roland_mc50_state::mem_map_mc300); + m_mpu->set_addrmap(AS_IO, &roland_mc50_state::io_map); + + //bu3904s_device &fsk(BU3904S(config, "fsk", 10_MHz_XTAL / 2)); + //fsk.xint_callback().set_inputline(m_mpu, Z180_INPUT_LINE_IRQ0); + + WD1772(config, m_wdfdc, 8_MHz_XTAL); + m_wdfdc->intrq_wr_callback().set_inputline(m_mpu, Z180_INPUT_LINE_IRQ1); + m_wdfdc->drq_wr_callback().set_inputline(m_mpu, Z180_INPUT_LINE_DREQ0); + + FLOPPY_CONNECTOR(config, m_wdfdd, mc50_floppies, "35dd", floppy_image_device::default_floppy_formats); +} + +void roland_mc50_state::mc50(machine_config &config) +{ + Z80180(config, m_mpu, 10_MHz_XTAL); // HD64180R1F6 + m_mpu->set_addrmap(AS_PROGRAM, &roland_mc50_state::mem_map_mc50); + m_mpu->set_addrmap(AS_IO, &roland_mc50_state::io_map); + + //mn53015_device &fsk(MN53015(config, "fsk", 10_MHz_XTAL / 2)); + //fsk.int_callback().set_inputline(m_mpu, Z180_INPUT_LINE_IRQ0); + + WD1772(config, m_wdfdc, 8_MHz_XTAL); // WD1772-02 + m_wdfdc->intrq_wr_callback().set_inputline(m_mpu, Z180_INPUT_LINE_IRQ1); + m_wdfdc->drq_wr_callback().set_inputline(m_mpu, Z180_INPUT_LINE_DREQ0); + m_wdfdc->dden_w(0); + + FLOPPY_CONNECTOR(config, m_wdfdd, mc50_floppies, "35dd", floppy_image_device::default_floppy_formats); + + // TODO: LCD unit (EA-D20225PX-1) +} + +void roland_mc50_state::mc50mk2(machine_config &config) +{ + mc50(config); + + //config.device_remove("wdfdc"); + //HD63266(config, m_hdfdc, 16_MHz_XTAL); // HD63266F +} + +ROM_START(mc300) + ROM_REGION(0x2000, "mpurom", 0) + ROM_SYSTEM_BIOS(0, "v102", "Version 1.02") + ROMX_LOAD("osv1.02-27c64.bin", 0x0000, 0x2000, CRC(a509d5b2) SHA1(d5b23aa2514610d3a5b3f33bdf4479fdb8dc91bd), ROM_BIOS(0)) + ROM_SYSTEM_BIOS(1, "v101", "Version 1.01") + ROMX_LOAD("osv1.01-27c64.bin", 0x0000, 0x2000, CRC(459fd2a1) SHA1(5cea936807c80945ac39d0e7ecc63d3a2b968664), ROM_BIOS(1)) +ROM_END + +ROM_START(mc50) + ROM_REGION(0x80000, "mpurom", 0) + ROM_LOAD("mc50_mk1.ic9", 0x00000, 0x80000, CRC(322b5f73) SHA1(f5cb5738f03c51d7019a661ac660ecea56b44350)) +ROM_END + +ROM_START(mc50mk2) + ROM_REGION(0x80000, "mpurom", 0) + ROM_LOAD("mc50_mkii-firmware-v.0060.ic7", 0x00000, 0x80000, CRC(a428e378) SHA1(ac411c33ef79cf9ae51c5d5dbb1ed9ea5839db3e)) +ROM_END + +SYST(1988, mc300, 0, 0, mc300, mc50, roland_mc50_state, empty_init, "Roland", "MC-300 Micro Composer", MACHINE_IS_SKELETON) +SYST(1990, mc50, 0, 0, mc50, mc50, roland_mc50_state, empty_init, "Roland", "MC-50 Micro Composer", MACHINE_IS_SKELETON) +SYST(1992, mc50mk2, 0, 0, mc50mk2, mc50, roland_mc50_state, empty_init, "Roland", "MC-50mkII Micro Composer", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index ab321ef8b85..38c2f652df3 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -34655,6 +34655,11 @@ jx8p // jx8po // mks70 // +@source:roland_mc50.cpp +mc300 // +mc50 // +mc50mk2 // + @source:roland_mt32.cpp cm32l // mt32 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 6d30bddbdb6..dd5d6cef29f 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -763,6 +763,7 @@ roland_d50.cpp roland_jv80.cpp roland_jx3p.cpp roland_jx8p.cpp +roland_mc50.cpp roland_mt32.cpp roland_r8.cpp roland_ra30.cpp