summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--hash/mpc60_flop.xml370
-rw-r--r--src/mame/akai/mpc60.cpp121
-rw-r--r--src/mame/layout/mpc60.lay12
-rw-r--r--src/mame/mame.lst1
4 files changed, 488 insertions, 16 deletions
diff --git a/hash/mpc60_flop.xml b/hash/mpc60_flop.xml
new file mode 100644
index 00000000000..83b817f6013
--- /dev/null
+++ b/hash/mpc60_flop.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<!--
+license:CC0-1.0
+-->
+<softwarelist name="mpc60_flop" description="Akai MPC60 floppies">
+ <software name="disk1ss" supported="yes">
+ <description>MPC60 Disk 1 - Studio Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="mpc60_disk1_studio_set.hfe" size="2008064" crc="c197e8b6" sha1="aee42d018660344e62bd0a42f4daf6324c891ff1"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="disk2rs" supported="yes">
+ <description>MPC60 Disk 2 - Rock Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="mpc60_disk2_rock_set.hfe" size="2008064" crc="a01eb230" sha1="79ec727fb8f956b9c693534beb949c8b0354ac5e"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="disk3ds" supported="yes">
+ <description>MPC60 Disk 3 - Dry Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="mpc60_disk3_dry_set.hfe" size="2008064" crc="5d5c007c" sha1="b915cfe114be7c85516fc40342297366f8fee0ec"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="disk4ss" supported="yes">
+ <description>MPC60 Disk 4 - Synth Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="mpc60_disk4_synth_set.hfe" size="2008064" crc="9539afea" sha1="035595f5fc77ec9988cc93ec0b00f1f29cd4183d"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl601" supported="yes">
+ <description>MPC60 Sound Library SL601 - Samba Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl601.hfe" size="2008064" crc="2eb88e58" sha1="b544ce1049da5c3da5d36f2cbd5a3b15bb8c6ff6"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl602" supported="yes">
+ <description>MPC60 Sound Library SL602 - Ambience Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl602.hfe" size="2008064" crc="2db2005f" sha1="935dbe79e69b05addea9ee89eb4eb1f031a89b5b"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl604" supported="yes">
+ <description>MPC60 Sound Library SL604 - Loft Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl604.hfe" size="2008064" crc="464bfa94" sha1="7129221aa2153e2de3543c3e4d48ed5c16ff7ee0"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl605" supported="yes">
+ <description>MPC60 Sound Library SL605 - Real Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl605.hfe" size="2008064" crc="76f6ba4f" sha1="61cd4384d14e17e284be59e6017c0f7195019b8b"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl606" supported="yes">
+ <description>MPC60 Sound Library SL606 - Solid Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl606.hfe" size="2008064" crc="d227fe12" sha1="ad82623694c8fbe66213d6008eb566ba111ca0ce"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl607" supported="yes">
+ <description>MPC60 Sound Library SL607 - Native Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl607.hfe" size="2008064" crc="45eb987c" sha1="5f391c3de8561f8626683a364eb0710add419ae9"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl608" supported="yes">
+ <description>MPC60 Sound Library SL608 - Live Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl608.hfe" size="2008064" crc="8282a126" sha1="19e25c7dc15ff1852c2b36aa6b6429cdc674b362"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl609" supported="yes">
+ <description>MPC60 Sound Library SL609 - LA-1 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl609.hfe" size="2008064" crc="5faa4078" sha1="a1d0bd886cf8b6f5551f2e416a797a8e0f0e0805"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl610" supported="yes">
+ <description>MPC60 Sound Library SL610 - UK-1 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl610.hfe" size="2008064" crc="600696a4" sha1="38f12f41613ca35b5151a68a9602a30406e8b262"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl612" supported="yes">
+ <description>MPC60 Sound Library SL612 - Power Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl612.hfe" size="2008064" crc="b0761ecd" sha1="d13272856fc88406e30238886b86e9c33bf979c9"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl613" supported="yes">
+ <description>MPC60 Sound Library SL613 - Metal Drum</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl613.hfe" size="2008064" crc="6a27ac34" sha1="802791a48e4ef063bb1516c70aace654c9278262"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl614" supported="yes">
+ <description>MPC60 Sound Library SL614 - UK-2 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl614.hfe" size="2008064" crc="fb72b0f4" sha1="5fb12522ad06ef46b0acf3639e39151508fd7feb"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl615" supported="yes">
+ <description>MPC60 Sound Library SL615 - UK-3 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl615.hfe" size="2008064" crc="77328b9c" sha1="baebecb4f6511155c41a6f5e3459a76aed62d6ea"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl616" supported="yes">
+ <description>MPC60 Sound Library SL616 - UK-4 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl616.hfe" size="2008064" crc="4e4dc7bd" sha1="34f302be0f7d2875b26ac58fd00a81c238297337"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl617" supported="yes">
+ <description>MPC60 Sound Library SL617 - UK-5 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl617.hfe" size="2008064" crc="9317118e" sha1="21a596fc989a857d04e8f33065745d97de52df8c"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl618" supported="yes">
+ <description>MPC60 Sound Library SL618 - UK-6 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl618.hfe" size="2008064" crc="2e80d20b" sha1="a6216eeebbc5d1ef59a78820c4aee976a464852a"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl619" supported="yes">
+ <description>MPC60 Sound Library SL619 - UK-7 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl619.hfe" size="2008064" crc="5ebe44ab" sha1="a287feb6a587e58b33453f7917d83c33e7921f90"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl620" supported="yes">
+ <description>MPC60 Sound Library SL620 - UK-8 Set</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl620.hfe" size="2008064" crc="e6e09c02" sha1="69307c4ea0a4843032ec3139493c03f3ea17a20b"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl101" supported="yes">
+ <description>MPC60 Sound Library SL101 - Percussion 1</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl101 percussion 1.hfe" size="2008064" crc="f3b86993" sha1="b2cd8319369d5616b19fce19f500dae031ac563c"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl102" supported="yes">
+ <description>MPC60 Sound Library SL102 - Live Kit 1</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl102 live kit 1.hfe" size="2008064" crc="d1e2ea2c" sha1="b8908aebfdb4f4b371577e0292a9af1fa63aa8b3"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl103" supported="yes">
+ <description>MPC60 Sound Library SL103 - Live Kit 2</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl103 live kit 2.hfe" size="2008064" crc="cd92d49b" sha1="a102d7a7e1b8d67e35b3bc09fb64da4e9bd02aa0"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl104" supported="yes">
+ <description>MPC60 Sound Library SL104 - Gated Kit</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl104 gated kit.hfe" size="2008064" crc="47072e48" sha1="50e418a83053ac93a0b4a38cb85bf6d90f521fd3"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl105" supported="yes">
+ <description>MPC60 Sound Library SL105 - Electronic Drums 1</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl105 electronic drums 1.hfe" size="2008064" crc="bbed0aea" sha1="c825015151fd7bdfe23218c049f8ce0c2268707d"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl106" supported="yes">
+ <description>MPC60 Sound Library SL106 - Percussion 2</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl106 percussion 2.hfe" size="2008064" crc="fb80bc59" sha1="ed547477c71e36eeec15654945515bcb8d4ce8aa"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl107" supported="yes">
+ <description>MPC60 Sound Library SL107 - Tuned Percussion</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl107 tuned percussion.hfe" size="2008064" crc="92339b7e" sha1="93d9bc21b287576587b353e6717f30373a499923"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl108" supported="yes">
+ <description>MPC60 Sound Library SL108 - 808 &amp; 909 Kits</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl108 808 &amp; 9000 kits.hfe" size="2008064" crc="1b854311" sha1="c70582c6de2a954ee6a19b06a60e30cb6ca0b7b2"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl109" supported="yes">
+ <description>MPC60 Sound Library SL109 - Live Kit 3</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl109 live kit 3.hfe" size="2008064" crc="4cb9e9fb" sha1="87c0081241e376afc64eab744cfee3fcd67958de"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl110" supported="yes">
+ <description>MPC60 Sound Library SL110 - Live Kit 4</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl110 live kit 4.hfe" size="2008064" crc="19bbad6f" sha1="fa8a8c3923ba28b79a249b6763f8735d8ae06369"/>
+ </dataarea>
+ </part>
+ </software>
+ <software name="sl111" supported="yes">
+ <description>MPC60 Sound Library SL111 - Live Kit 5</description>
+ <year>1988</year>
+ <publisher>Akai</publisher>
+ <info name="usage" value="Use with MPC60 or MPC3000"/>
+ <part name="disk1" interface="floppy_3_5">
+ <dataarea name="flop" size="2008064">
+ <rom name="sl111 live kit 5.hfe" size="2008064" crc="1df23087" sha1="0f92e121f7aa00b5e55560681a47180dba9439f4"/>
+ </dataarea>
+ </part>
+ </software>
+</softwarelist>
diff --git a/src/mame/akai/mpc60.cpp b/src/mame/akai/mpc60.cpp
index b0b732db9f9..2e856e73dd8 100644
--- a/src/mame/akai/mpc60.cpp
+++ b/src/mame/akai/mpc60.cpp
@@ -2,23 +2,29 @@
// copyright-holders:AJR, R. Belmont
/***************************************************************************
- mpc60.cpp - Akai / Roger Linn MPC3000 music workstation
+ mpc60.cpp - Akai / Roger Linn MPC60 music workstation
Driver by R. Belmont and AJR
+ This driver includes support for the Marion Systems SCSI option board,
+ which gives the machine much-needed mass storage capabilities. Even
+ without using IRQs or DMA, the SCSI is still much faster than the DSDD
+ floppy drive.
+
Hardware:
- CPU: 80186 at 10 MHz
- Floppy: uPD72065
+ CPU: 80186 at 10 MHz (input clock 20 MHz, internal /2)
+ Floppy: uPD72066
LCD: LC7981
UARTs: MB89371 (x2)
Panel controller CPU: NEC uPD78C11 @ 12 MHz
- (internal ROM is not dumped but the panel works fine without it)
Sound DSP: L4003
+ SCSI: NCR5380
***************************************************************************/
#include "emu.h"
#include "bus/midi/midi.h"
+#include "bus/nscsi/devices.h"
#include "cpu/i86/i186.h"
#include "cpu/upd7810/upd7810.h"
#include "formats/dfi_dsk.h"
@@ -36,6 +42,7 @@
#include "machine/i8255.h"
#include "machine/input_merger.h"
#include "machine/mb89371.h"
+#include "machine/ncr5380.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "machine/upd765.h"
@@ -44,6 +51,7 @@
#include "emupal.h"
#include "screen.h"
+#include "softlist_dev.h"
#include "speaker.h"
#include "mpc60.lh"
@@ -88,6 +96,10 @@ protected:
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;
+ void io_map(address_map &map) ATTR_COLD;
+
+ required_device<cpu_device> m_maincpu;
+
private:
u8 nvram_r(offs_t offset);
void nvram_w(offs_t offset, u8 data);
@@ -98,7 +110,6 @@ private:
void mpc60_palette(palette_device &palette) const;
void mem_map(address_map &map) ATTR_COLD;
- void io_map(address_map &map) ATTR_COLD;
void panel_map(address_map &map) ATTR_COLD;
void lcd_map(address_map &map) ATTR_COLD;
void dsp_map(address_map &map) ATTR_COLD;
@@ -119,7 +130,6 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(dial_timer_tick);
- required_device<cpu_device> m_maincpu;
required_device<upd7810_device> m_panelcpu;
required_device<l4003_sound_device> m_dsp;
required_device<upd72065_device> m_fdc;
@@ -130,7 +140,7 @@ private:
required_device<hc259_device> m_loled, m_hiled;
required_ioport_array<8> m_keys;
required_ioport_array<4> m_drums;
- required_ioport m_dataentry;
+ required_ioport m_dataentry;
std::unique_ptr<u8[]> m_nvram_data;
@@ -140,6 +150,28 @@ private:
uint8_t m_ppi_portc;
};
+class mpc60_scsi_state: public mpc60_state
+{
+public:
+ mpc60_scsi_state(const machine_config &mconfig, device_type type, const char *tag)
+ : mpc60_state(mconfig, type, tag),
+ m_ncr5380(*this, "ncr5380"),
+ m_scsibus(*this, "scsi")
+ {
+ }
+
+ void mpc60_scsi(machine_config &config);
+
+private:
+ uint8_t scsi_dma_r();
+ void scsi_dma_w(uint8_t data);
+
+ void scsi_io_map(address_map &map) ATTR_COLD;
+
+ required_device<ncr5380_device> m_ncr5380;
+ required_device<nscsi_bus_device> m_scsibus;
+};
+
void mpc60_state::machine_start()
{
m_nvram_data = make_unique_clear<u8[]>(0x800);
@@ -199,6 +231,23 @@ void mpc60_state::io_map(address_map &map)
map(0x0200, 0x0207).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
}
+void mpc60_scsi_state::scsi_io_map(address_map &map)
+{
+ mpc60_state::io_map(map);
+ map(0x0220, 0x023f).m(m_ncr5380, FUNC(ncr5380_device::map)).umask16(0x00ff);
+ map(0x0230, 0x0231).rw(FUNC(mpc60_scsi_state::scsi_dma_r), FUNC(mpc60_scsi_state::scsi_dma_w));
+}
+
+uint8_t mpc60_scsi_state::scsi_dma_r()
+{
+ return m_ncr5380->dma_r();
+}
+
+void mpc60_scsi_state::scsi_dma_w(uint8_t data)
+{
+ m_ncr5380->dma_w(data);
+}
+
void mpc60_state::panel_map(address_map &map)
{
map(0x4000, 0x5fff).rom().region("panel", 0);
@@ -577,7 +626,7 @@ void mpc60_state::mpc60(machine_config &config)
// IC8 - Rx is MIDI in 1 & 2, Tx is MIDI out 1 & 2
MB89371(config, m_sio[1], 20_MHz_XTAL / 4);
m_sio[1]->rxrdy_handler<0>().set("rxrdy", FUNC(input_merger_device::in_w<1>));
- m_sio[1]->rxrdy_handler<0>().set("rxrdy", FUNC(input_merger_device::in_w<2>));
+ m_sio[1]->rxrdy_handler<1>().set("rxrdy", FUNC(input_merger_device::in_w<2>));
m_sio[1]->txrdy_handler<0>().set("txrdy", FUNC(input_merger_device::in_w<2>));
m_sio[1]->txrdy_handler<1>().set("txrdy", FUNC(input_merger_device::in_w<3>));
m_sio[1]->txd_handler<0>().set("mdout1", FUNC(midi_port_device::write_txd));
@@ -642,11 +691,30 @@ void mpc60_state::mpc60(machine_config &config)
m_midiclock->signal_handler().append(m_sio[1], FUNC(mb89371_device::write_txc<0>));
m_midiclock->signal_handler().append(m_sio[1], FUNC(mb89371_device::write_txc<1>));
- //L4003(config, "voicelsi", 35.84_MHz_XTAL);
+ SOFTWARE_LIST(config, "flop_mpc60").set_original("mpc60_flop");
config.set_default_layout(layout_mpc60);
}
+void mpc60_scsi_state::mpc60_scsi(machine_config &config)
+{
+ mpc60(config);
+
+ m_maincpu->set_addrmap(AS_IO, &mpc60_scsi_state::scsi_io_map);
+
+ NSCSI_BUS(config, m_scsibus);
+ NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, "harddisk", false);
+ NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr, false);
+ NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr, false);
+ NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr, false);
+ NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr, false);
+ NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr, false);
+ NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr, false);
+
+ NCR5380(config, m_ncr5380, 16_MHz_XTAL / 2);
+ m_scsibus->set_external_device(7, m_ncr5380);
+}
+
ROM_START(mpc60)
ROM_REGION16_LE(0x40000, "program", 0)
ROM_SYSTEM_BIOS(0, "v212", "v2.12") // V2.12 CPU ROMs (MBM27C512-20)
@@ -654,6 +722,7 @@ ROM_START(mpc60)
ROMX_LOAD("mp6cpu3.ic3", 0x00001, 0x10000, CRC(f068838b) SHA1(42e815880d1c1a5b7d1c7933aad9c28410fc2627), ROM_BIOS(0) | ROM_SKIP(1))
ROMX_LOAD("mp6cpu1.ic4", 0x20000, 0x10000, CRC(1271bc73) SHA1(99fd6fa4c04e5bdf868e78072fec5b55c01350da), ROM_BIOS(0) | ROM_SKIP(1))
ROMX_LOAD("mpc6cpu4.ic5", 0x20001, 0x10000, CRC(d922a66d) SHA1(0f4bc0522b9826d617f4af72382d75853515d7f5), ROM_BIOS(0) | ROM_SKIP(1))
+
ROM_SYSTEM_BIOS(1, "v112", "v1.12")
ROMX_LOAD("mpc60_v1-12_2.ic2", 0x00000, 0x10000, CRC(ddf26146) SHA1(987547198dc3984ab3dfa7f133ba7dca702cc269), ROM_BIOS(1) | ROM_SKIP(1))
ROMX_LOAD("mpc60_v1-12_4.ic3", 0x00001, 0x10000, CRC(9725d193) SHA1(6efda3d6760b3951c5036108106d446f6e128c59), ROM_BIOS(1) | ROM_SKIP(1))
@@ -671,6 +740,38 @@ ROM_START(mpc60)
ROM_LOAD("akai mpc60 panel eprom op v1-1 2764.ic2", 0x0000, 0x2000, CRC(f1332f47) SHA1(dd5e917d16941fce3db4bfe21d37f722d6262561))
ROM_END
+ROM_START(mpc60scsi)
+ ROM_REGION16_LE(0x40000, "program", 0)
+ ROM_SYSTEM_BIOS(0, "v214", "v2.14") // V2.14 is identical to V2.12 but with SCSI support
+ ROMX_LOAD("mpc60_2_14_3.ic5", 0x000000, 0x010000, CRC(62a3da24) SHA1(c97c434e2fcba9097db2eb6c2b57637ffdefc085), ROM_BIOS(0) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_2_14_4.ic3", 0x000001, 0x010000, CRC(63eb7c2d) SHA1(fa117d30db58a5a9c7456276bb0c65aec9a9aac2), ROM_BIOS(0) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_2_14_1.ic4", 0x020000, 0x010000, CRC(6a452666) SHA1(52643a0f2799292eb69d2ea992427a402ba94da1), ROM_BIOS(0) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_2_14_2.ic2", 0x020001, 0x010000, CRC(0cb5d810) SHA1(cdc6ee933d7e113055deb873ca22620b2e41a897), ROM_BIOS(0) | ROM_SKIP(1))
+
+ ROM_SYSTEM_BIOS(1, "v212", "v2.12") // V2.12 CPU ROMs (MBM27C512-20)
+ ROMX_LOAD("mp6cpu2.ic2", 0x00000, 0x10000, CRC(e71b1acb) SHA1(b56ddfff1c546fc21341b1a614e18da9726312f4), ROM_BIOS(1) | ROM_SKIP(1))
+ ROMX_LOAD("mp6cpu3.ic3", 0x00001, 0x10000, CRC(f068838b) SHA1(42e815880d1c1a5b7d1c7933aad9c28410fc2627), ROM_BIOS(1) | ROM_SKIP(1))
+ ROMX_LOAD("mp6cpu1.ic4", 0x20000, 0x10000, CRC(1271bc73) SHA1(99fd6fa4c04e5bdf868e78072fec5b55c01350da), ROM_BIOS(1) | ROM_SKIP(1))
+ ROMX_LOAD("mpc6cpu4.ic5", 0x20001, 0x10000, CRC(d922a66d) SHA1(0f4bc0522b9826d617f4af72382d75853515d7f5), ROM_BIOS(1) | ROM_SKIP(1))
+
+ ROM_SYSTEM_BIOS(2, "v112", "v1.12")
+ ROMX_LOAD("mpc60_v1-12_2.ic2", 0x00000, 0x10000, CRC(ddf26146) SHA1(987547198dc3984ab3dfa7f133ba7dca702cc269), ROM_BIOS(2) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_v1-12_4.ic3", 0x00001, 0x10000, CRC(9725d193) SHA1(6efda3d6760b3951c5036108106d446f6e128c59), ROM_BIOS(2) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_v1-12_1.ic4", 0x20000, 0x10000, CRC(f202dbb1) SHA1(6fd82224a99b52b6c414b88d5c920abda32ffa32), ROM_BIOS(2) | ROM_SKIP(1))
+ ROMX_LOAD("mpc60_v1-12_3.ic5", 0x20001, 0x10000, CRC(ba5a1640) SHA1(1f9f49c49a3682b9a44d614ac411a7c043df399e), ROM_BIOS(2) | ROM_SKIP(1))
+
+ ROM_REGION16_LE(0x10000, "waves", 0)
+ ROM_LOAD16_BYTE("mpc60_voice_1_v1-0.ic17", 0x00000, 0x08000, CRC(b8fdfe3e) SHA1(c2f0e1d8813d4178d2f883a3f3e461e036b56229)) // lowest nibble is unused
+ ROM_LOAD16_BYTE("mpc60_voice_2_v1-0.ic18", 0x00001, 0x08000, CRC(42f8e0a6) SHA1(a22dbefb9dafbb0c4095fd0bf4e63e67b5ec3b95))
+
+ ROM_REGION(0x1000, "panelcpu", 0)
+ ROM_LOAD("upd78c11g-044-36.ic1", 0x0000, 0x1000, CRC(59fee9fa) SHA1(830eea667e46437f9a65280bf59234107abe49c8))
+
+ ROM_REGION(0x2000, "panel", 0)
+ ROM_LOAD("akai mpc60 panel eprom op v1-1 2764.ic2", 0x0000, 0x2000, CRC(f1332f47) SHA1(dd5e917d16941fce3db4bfe21d37f722d6262561))
+ROM_END
+
} // anonymous namespace
-SYST(1987, mpc60, 0, 0, mpc60, mpc60, mpc60_state, empty_init, "Akai Electric", "MPC60 MIDI Production Center", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
+SYST(1988, mpc60, 0, 0, mpc60, mpc60, mpc60_state, empty_init, "Akai Electric", "MPC60 MIDI Production Center", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND)
+SYST(1988, mpc60scsi, mpc60, 0, mpc60_scsi, mpc60, mpc60_scsi_state, empty_init, "Akai Electric", "MPC60 MIDI Production Center (with SCSI)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/layout/mpc60.lay b/src/mame/layout/mpc60.lay
index 921374103d6..51fddfad9f0 100644
--- a/src/mame/layout/mpc60.lay
+++ b/src/mame/layout/mpc60.lay
@@ -369,22 +369,22 @@
<group name="left-buttons">
<!-- Full Level -->
<element ref="button-black-outline1"><bounds x="20" y="140" width="270" height="126" /><color red="0" green="0" blue="0" /></element>
- <element ref="button-white" inputtag="Y0" inputmask="0x04">
+ <element ref="button-white" inputtag="Y0" inputmask="0x01">
<bounds x="35" y="155" width="240" height="96" /></element>
<element ref="button-text-black-fulllevel"><bounds x="0" y="0" width="310" height="70" /><color red="0" green="0" blue="0" /></element>
- <element ref="led"><bounds x="115" y="75" width="75" height="20" /><animate name="led10" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
+ <element ref="led"><bounds x="115" y="75" width="75" height="20" /><animate name="led12" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
<!-- 16 Levels -->
<element ref="button-black-outline1"><bounds x="20" y="465" width="270" height="126" /><color red="0" green="0" blue="0" /></element>
- <element ref="button-white" inputtag="Y0" inputmask="0x01">
+ <element ref="button-white" inputtag="Y0" inputmask="0x02">
<bounds x="35" y="480" width="240" height="96" /></element>
<element ref="button-text-black-16levels"><bounds x="0" y="325" width="310" height="70" /><color red="0" green="0" blue="0" /></element>
- <element ref="led"><bounds x="115" y="400" width="75" height="20" /><animate name="led12" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
+ <element ref="led"><bounds x="115" y="400" width="75" height="20" /><animate name="led11" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
<!-- Bank 2 -->
<element ref="button-black-outline1"><bounds x="20" y="790" width="270" height="126" /><color red="0" green="0" blue="0" /></element>
- <element ref="button-white" inputtag="Y0" inputmask="0x02">
+ <element ref="button-white" inputtag="Y0" inputmask="0x04">
<bounds x="35" y="805" width="240" height="96" /></element>
<element ref="button-text-black-bank2"><bounds x="0" y="650" width="310" height="70" /><color red="0" green="0" blue="0" /></element>
- <element ref="led"><bounds x="115" y="725" width="75" height="20" /><animate name="led11" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
+ <element ref="led"><bounds x="115" y="725" width="75" height="20" /><animate name="led10" /><color state="0" red="0.6" green="0" blue="0" /><color state="1" red="1.0" green="0" blue="0" /></element>
<!-- After -->
<element ref="button-black-outline1"><bounds x="20" y="1115" width="270" height="126" /><color red="0" green="0" blue="0" /></element>
<element ref="button-white" inputtag="Y0" inputmask="0x08">
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 11d59d428cf..392fd6dd8fe 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -566,6 +566,7 @@ vx600
@source:akai/mpc60.cpp
mpc60
+mpc60scsi
@source:akai/mpc2000.cpp
mpc2000xl