summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-03-09 09:35:55 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-03-09 09:35:55 -0400
commit0caaf4a024efe2c11b7a3894f17e509319786f5e (patch)
treeb977ab0b2e00a2acd6fc4eb83ca578f675c6f1ed
parentcd65d52fcd60af6fb44e8651ce74eb317fb0b11e (diff)
New machines marked as NOT_WORKING
---------------------------------- K1 Digital Multi-Dimensional Synthesizer [DBWBP] K1rII Digital Multi-Dimensional Synthesizer Module [DBWBP] K5 Digital Multi-Dimensional Synthesizer [DBWBP] New clones marked as NOT_WORKING -------------------------------- K1m Digital Multi-Dimensional Synthesizer Module [DBWBP] K1r Digital Multi-Dimensional Synthesizer Module [DBWBP] K5m Digital Multi-Dimensional Synthesizer Module [DBWBP]
-rw-r--r--scripts/target/mame/mess.lua7
-rw-r--r--src/devices/cpu/upd78k/upd78k3.cpp21
-rw-r--r--src/devices/cpu/upd78k/upd78k3.h14
-rw-r--r--src/mame/drivers/kawai_k1.cpp94
-rw-r--r--src/mame/drivers/kawai_k5.cpp61
-rw-r--r--src/mame/mame.lst10
-rw-r--r--src/mame/mess.flt2
7 files changed, 205 insertions, 4 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 6a01f9d593a..6551182823e 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -1183,6 +1183,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"intv",
"isc",
"jazz",
+ "kawai",
"kaypro",
"koei",
"kontron",
@@ -2605,6 +2606,12 @@ files {
MAME_DIR .. "src/mame/machine/mct_adr.h",
}
+createMESSProjects(_target, _subtarget, "kawai")
+files {
+ MAME_DIR .. "src/mame/drivers/kawai_k1.cpp",
+ MAME_DIR .. "src/mame/drivers/kawai_k5.cpp",
+}
+
createMESSProjects(_target, _subtarget, "kaypro")
files {
MAME_DIR .. "src/mame/drivers/kaypro.cpp",
diff --git a/src/devices/cpu/upd78k/upd78k3.cpp b/src/devices/cpu/upd78k/upd78k3.cpp
index c22fd2ee674..f2831c543b2 100644
--- a/src/devices/cpu/upd78k/upd78k3.cpp
+++ b/src/devices/cpu/upd78k/upd78k3.cpp
@@ -12,7 +12,8 @@
#include "upd78k3.h"
#include "upd78k3d.h"
-// device type definition
+// device type definitions
+DEFINE_DEVICE_TYPE(UPD78310, upd78310_device, "upd78310", "NEC uPD78310")
DEFINE_DEVICE_TYPE(UPD78312, upd78312_device, "upd78312", "NEC uPD78312")
//**************************************************************************
@@ -268,14 +269,28 @@ void upd78k3_device::state_string_export(const device_state_entry &entry, std::s
//-------------------------------------------------
upd78312_device::upd78312_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : upd78k3_device(mconfig, UPD78312, tag, owner, clock,
- address_map_constructor(FUNC(upd78312_device::mem_map), this),
+ : upd78312_device(mconfig, UPD78312, tag, owner, clock, address_map_constructor(FUNC(upd78312_device::mem_map), this))
+{
+}
+
+upd78312_device::upd78312_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map)
+ : upd78k3_device(mconfig, type, tag, owner, clock, map,
address_map_constructor(FUNC(upd78312_device::sfr_map), this))
{
}
//-------------------------------------------------
+// upd78310_device - constructor
+//-------------------------------------------------
+
+upd78310_device::upd78310_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : upd78312_device(mconfig, UPD78310, tag, owner, clock, address_map_constructor())
+{
+}
+
+
+//-------------------------------------------------
// create_disassembler -
//-------------------------------------------------
diff --git a/src/devices/cpu/upd78k/upd78k3.h b/src/devices/cpu/upd78k/upd78k3.h
index 1b7d9d663d5..07fcb49534a 100644
--- a/src/devices/cpu/upd78k/upd78k3.h
+++ b/src/devices/cpu/upd78k/upd78k3.h
@@ -98,6 +98,8 @@ public:
upd78312_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
+ upd78312_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map);
+
// device_disasm_interface overrides
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
@@ -113,7 +115,17 @@ private:
void sfr_map(address_map &map);
};
-// device type declaration
+// ======================> upd78310_device
+
+class upd78310_device : public upd78312_device
+{
+public:
+ // device type constructor
+ upd78310_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+// device type declarations
+DECLARE_DEVICE_TYPE(UPD78310, upd78310_device)
DECLARE_DEVICE_TYPE(UPD78312, upd78312_device)
#endif // MAME_CPU_UPD78K_UPD7832_H
diff --git a/src/mame/drivers/kawai_k1.cpp b/src/mame/drivers/kawai_k1.cpp
new file mode 100644
index 00000000000..b348da67b36
--- /dev/null
+++ b/src/mame/drivers/kawai_k1.cpp
@@ -0,0 +1,94 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Skeleton driver for Kawai K1 synthesizer.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/upd78k/upd78k3.h"
+#include "machine/nvram.h"
+
+class kawai_k1_state : public driver_device
+{
+public:
+ kawai_k1_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_mpu(*this, "mpu")
+ {
+ }
+
+ void k1(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<upd78310_device> m_mpu;
+};
+
+
+void kawai_k1_state::mem_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region("coderom", 0);
+ map(0x8000, 0x9fff).ram();
+ map(0xa000, 0xbfff).ram().share("toneram");
+}
+
+
+static INPUT_PORTS_START(k1)
+INPUT_PORTS_END
+
+void kawai_k1_state::k1(machine_config &config)
+{
+ UPD78310(config, m_mpu, 12_MHz_XTAL); // µPD78310G-36
+ m_mpu->set_addrmap(AS_PROGRAM, &kawai_k1_state::mem_map);
+
+ NVRAM(config, "toneram", nvram_device::DEFAULT_ALL_0); // LC3564PL-12 + battery
+}
+
+ROM_START(k1)
+ ROM_REGION(0x8000, "coderom", 0)
+ //ROM_SYSTEM_BIOS(0, "v1.3", "Version 1.3")
+ ROM_LOAD("p104c_e4dp.u20", 0x0000, 0x8000, CRC(5d266846) SHA1(42a2820873817ca05dd085dfb728e8bcadb1342a)) // TC54256AP
+
+ ROM_REGION(0x80000, "waverom", 0)
+ ROM_LOAD("p106-m8dw.u8", 0x00000, 0x80000, CRC(b411b848) SHA1(1ea7ca6270b5c128f4e24fa540d205411982e4c1)) // MN234002KAD
+ROM_END
+
+ROM_START(k1m)
+ ROM_REGION(0x8000, "coderom", 0)
+ ROM_SYSTEM_BIOS(0, "v1.5", "Version 1.5")
+ ROMX_LOAD("p105e.ic7", 0x0000, 0x8000, CRC(ff560060) SHA1(28d55ec30acbbc1c41d09b7704725f226d1f682c), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "v1.1", "Version 1.1")
+ ROMX_LOAD("p105a.ic7", 0x0000, 0x8000, CRC(957e8f55) SHA1(b5db5e619acc0a4af3b85a450ad51ce7f2a21900), ROM_BIOS(1))
+
+ ROM_REGION(0x80000, "waverom", 0)
+ ROM_LOAD("waverom_p106-m8dw.ic16", 0x00000, 0x80000, CRC(b411b848) SHA1(1ea7ca6270b5c128f4e24fa540d205411982e4c1))
+ROM_END
+
+ROM_START(k1r)
+ ROM_REGION(0x8000, "coderom", 0)
+ ROM_SYSTEM_BIOS(0, "v1.4", "Version 1.4")
+ ROMX_LOAD("p163a.ic7", 0x0000, 0x8000, CRC(5c0e5b4b) SHA1(2348989ddf9398d66cfdff4675dc8e56a5a20d93), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "v1.3", "Version 1.3")
+ ROMX_LOAD("k1r_v1.3.ic7", 0x0000, 0x8000, CRC(25b395b0) SHA1(1e0e1735b7f2c8cb1c9946048c5a7b8e848db2ea), ROM_BIOS(1))
+
+ ROM_REGION(0x80000, "waverom", 0)
+ ROM_LOAD("waverom_p106-m8dw.ic16", 0x00000, 0x80000, CRC(b411b848) SHA1(1ea7ca6270b5c128f4e24fa540d205411982e4c1))
+ROM_END
+
+ROM_START(k1rii)
+ ROM_REGION(0x8000, "coderom", 0)
+ //ROM_SYSTEM_BIOS(0, "v1.0", "Version 1.0")
+ ROM_LOAD("p205_e4dp.bin", 0x0000, 0x8000, CRC(be15cf1f) SHA1(07a2b7d55cc1f5c49a73e8bc2f50d2f6f0d6c4a8))
+
+ ROM_REGION(0x80000, "waverom", 0)
+ ROM_LOAD("p106.bin", 0x00000, 0x80000, NO_DUMP)
+ROM_END
+
+SYST(1988, k1, 0, 0, k1, k1, kawai_k1_state, empty_init, "Kawai Musical Instrument Manufacturing", "K1 Digital Multi-Dimensional Synthesizer", MACHINE_IS_SKELETON)
+SYST(1988, k1m, k1, 0, k1, k1, kawai_k1_state, empty_init, "Kawai Musical Instrument Manufacturing", "K1m Digital Multi-Dimensional Synthesizer Module", MACHINE_IS_SKELETON)
+SYST(1988, k1r, k1, 0, k1, k1, kawai_k1_state, empty_init, "Kawai Musical Instrument Manufacturing", "K1r Digital Multi-Dimensional Synthesizer Module", MACHINE_IS_SKELETON)
+
+SYST(1989, k1rii, 0, 0, k1, k1, kawai_k1_state, empty_init, "Kawai Musical Instrument Manufacturing", "K1rII Digital Multi-Dimensional Synthesizer Module", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/kawai_k5.cpp b/src/mame/drivers/kawai_k5.cpp
new file mode 100644
index 00000000000..e3f55b91921
--- /dev/null
+++ b/src/mame/drivers/kawai_k5.cpp
@@ -0,0 +1,61 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Skeleton driver for Kawai K5 synthesizer.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/nec/v5x.h"
+
+class kawai_k5_state : public driver_device
+{
+public:
+ kawai_k5_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void k5(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<v40_device> m_maincpu;
+};
+
+
+void kawai_k5_state::mem_map(address_map &map)
+{
+ map(0x00000, 0x0ffff).rom().region("coderom", 0);
+ map(0x14000, 0x142ff).ram();
+ map(0x18000, 0x1ffff).ram();
+ map(0xf0000, 0xfffff).rom().region("coderom", 0);
+}
+
+
+static INPUT_PORTS_START(k5)
+INPUT_PORTS_END
+
+void kawai_k5_state::k5(machine_config &config)
+{
+ V40(config, m_maincpu, 16'000'000); // XTAL unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &kawai_k5_state::mem_map);
+}
+
+ROM_START(k5)
+ ROM_REGION(0x10000, "coderom", 0)
+ //ROM_SYSTEM_BIOS(0, "v1.3", "Version 1.3")
+ ROM_LOAD("k5_1.3.bin", 0x00000, 0x10000, CRC(cbefe520) SHA1(8c53867ebc403d24320a57a5ff2d37ab6c1fc994))
+ROM_END
+
+ROM_START(k5m)
+ ROM_REGION(0x10000, "coderom", 0)
+ //ROM_SYSTEM_BIOS(0, "v1.2", "Version 1.2")
+ ROM_LOAD("k5m_1.2.bin", 0x00000, 0x10000, CRC(d2ab0fac) SHA1(34f0c2685b39e459a915ed5effa5b7a4cd2a1f8a))
+ROM_END
+
+SYST(1987, k5, 0, 0, k5, k5, kawai_k5_state, empty_init, "Kawai Musical Instrument Manufacturing", "K5 Digital Multi-Dimensional Synthesizer", MACHINE_IS_SKELETON)
+SYST(1987, k5m, k5, 0, k5, k5, kawai_k5_state, empty_init, "Kawai Musical Instrument Manufacturing", "K5m Digital Multi-Dimensional Synthesizer Module", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 79af63303ab..dc5cb9f9f69 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -18463,6 +18463,16 @@ wndrplnt // (c) 1987 Data East Corporation (Japan)
@source:kas89.cpp
kas89 // 1989, SFC S.R.L.
+@source:kawai_k1.cpp
+k1 //
+k1m //
+k1r //
+k1rii //
+
+@source:kawai_k5.cpp
+k5 //
+k5m //
+
@source:kaypro.cpp
kaypro1 // Kaypro 1
kaypro10 // Kaypro 10/83
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 3461d9b5f0f..472e2d886e8 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -433,6 +433,8 @@ jupiter.cpp
k1003.cpp
k28.cpp
k8915.cpp
+kawai_k1.cpp
+kawai_k5.cpp
kaypro.cpp
kc.cpp
kdt6.cpp