diff options
| -rw-r--r-- | hash/mpc60_flop.xml | 370 | ||||
| -rw-r--r-- | src/mame/akai/mpc60.cpp | 121 | ||||
| -rw-r--r-- | src/mame/layout/mpc60.lay | 12 | ||||
| -rw-r--r-- | src/mame/mame.lst | 1 |
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 & 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 & 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 |
