mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
New machines marked as NOT_WORKING
---------------------------------- Roland R-8M Total Percussion Sound Module (v1.04) [DBWBP]
This commit is contained in:
parent
9ba04478ba
commit
3c1420a1df
6 changed files with 119 additions and 8 deletions
|
@ -3222,6 +3222,7 @@ files {
|
|||
MAME_DIR .. "src/mame/drivers/roland_d50.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_d110.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_mt32.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_r8.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_sc55.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/tb303.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/tr606.cpp",
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
#include "upd78k2.h"
|
||||
#include "upd78k2d.h"
|
||||
|
||||
// device type definition
|
||||
// device type definitions
|
||||
DEFINE_DEVICE_TYPE(UPD78210, upd78210_device, "upd78210", "NEC uPD78210")
|
||||
DEFINE_DEVICE_TYPE(UPD78213, upd78213_device, "upd78213", "NEC uPD78213")
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -23,11 +24,12 @@ DEFINE_DEVICE_TYPE(UPD78213, upd78213_device, "upd78213", "NEC uPD78213")
|
|||
// upd78k2_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
upd78k2_device::upd78k2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor mem_map, address_map_constructor sfr_map)
|
||||
upd78k2_device::upd78k2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int iram_bits, address_map_constructor mem_map, address_map_constructor sfr_map)
|
||||
: cpu_device(mconfig, type, tag, owner, clock)
|
||||
, m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0, mem_map)
|
||||
, m_iram_config("IRAM", ENDIANNESS_LITTLE, 16, 8, 0, address_map_constructor(FUNC(upd78k2_device::iram_map), this))
|
||||
, m_iram_config("IRAM", ENDIANNESS_LITTLE, 16, iram_bits, 0, address_map_constructor(FUNC(upd78k2_device::iram_map), this))
|
||||
, m_sfr_config("SFR", ENDIANNESS_LITTLE, 16, 8, 0, sfr_map)
|
||||
, m_iram_addrmask((offs_t(1) << iram_bits) - 1)
|
||||
, m_program_space(nullptr)
|
||||
, m_program_cache(nullptr)
|
||||
, m_iram_cache(nullptr)
|
||||
|
@ -47,7 +49,7 @@ upd78k2_device::upd78k2_device(const machine_config &mconfig, device_type type,
|
|||
|
||||
void upd78k2_device::iram_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0xff).ram().share("iram");
|
||||
map(0, m_iram_addrmask).ram().share("iram");
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,7 +75,7 @@ device_memory_interface::space_config_vector upd78k2_device::memory_space_config
|
|||
|
||||
inline u8 upd78k2_device::register_base() const noexcept
|
||||
{
|
||||
return (BIT(m_psw, 5) ? 0xe0 : 0xf0) | (~m_psw & 0x08);
|
||||
return ((BIT(m_psw, 5) ? 0xe0 : 0xf0) & m_iram_addrmask) | (~m_psw & 0x08);
|
||||
}
|
||||
|
||||
|
||||
|
@ -173,12 +175,44 @@ void upd78k2_device::state_string_export(const device_state_entry &entry, std::s
|
|||
// 78K/II SUBSERIES DEVICES
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// upd78210_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
upd78210_device::upd78210_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: upd78k2_device(mconfig, UPD78210, tag, owner, clock, 7,
|
||||
address_map_constructor(),
|
||||
address_map_constructor(FUNC(upd78210_device::sfr_map), this))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// create_disassembler -
|
||||
//-------------------------------------------------
|
||||
|
||||
std::unique_ptr<util::disasm_interface> upd78210_device::create_disassembler()
|
||||
{
|
||||
return std::make_unique<upd78214_disassembler>();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// sfr_map - type-specific SFR map
|
||||
//-------------------------------------------------
|
||||
|
||||
void upd78210_device::sfr_map(address_map &map)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// upd78213_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
upd78213_device::upd78213_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: upd78k2_device(mconfig, UPD78213, tag, owner, clock,
|
||||
: upd78k2_device(mconfig, UPD78213, tag, owner, clock, 8,
|
||||
address_map_constructor(FUNC(upd78213_device::mem_map), this),
|
||||
address_map_constructor(FUNC(upd78213_device::sfr_map), this))
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
// TODO: callbacks and configuration thereof
|
||||
|
||||
protected:
|
||||
upd78k2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor mem_map, address_map_constructor sfr_map);
|
||||
upd78k2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int iram_bits, address_map_constructor mem_map, address_map_constructor sfr_map);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
@ -60,6 +60,7 @@ private:
|
|||
address_space_config m_program_config;
|
||||
address_space_config m_iram_config;
|
||||
address_space_config m_sfr_config;
|
||||
const offs_t m_iram_addrmask;
|
||||
address_space *m_program_space;
|
||||
memory_access_cache<0, 0, ENDIANNESS_LITTLE> *m_program_cache;
|
||||
memory_access_cache<1, 0, ENDIANNESS_LITTLE> *m_iram_cache;
|
||||
|
@ -73,6 +74,23 @@ private:
|
|||
s32 m_icount;
|
||||
};
|
||||
|
||||
// ======================> upd78210_device
|
||||
|
||||
class upd78210_device : public upd78k2_device
|
||||
{
|
||||
public:
|
||||
// device type constructor
|
||||
upd78210_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
private:
|
||||
// type-specific internal memory maps
|
||||
void sfr_map(address_map &map);
|
||||
};
|
||||
|
||||
// ======================> upd78213_device
|
||||
|
||||
class upd78213_device : public upd78k2_device
|
||||
|
@ -91,7 +109,8 @@ private:
|
|||
void sfr_map(address_map &map);
|
||||
};
|
||||
|
||||
// device type declaration
|
||||
// device type declarations
|
||||
DECLARE_DEVICE_TYPE(UPD78210, upd78210_device)
|
||||
DECLARE_DEVICE_TYPE(UPD78213, upd78213_device)
|
||||
|
||||
#endif // MAME_CPU_UPD78K_UPD78K2_H
|
||||
|
|
53
src/mame/drivers/roland_r8.cpp
Normal file
53
src/mame/drivers/roland_r8.cpp
Normal file
|
@ -0,0 +1,53 @@
|
|||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/****************************************************************************
|
||||
|
||||
Skeleton driver for Roland R-8 drum machine.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/upd78k/upd78k2.h"
|
||||
|
||||
class roland_r8_state : public driver_device
|
||||
{
|
||||
public:
|
||||
roland_r8_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
{
|
||||
}
|
||||
|
||||
void r8(machine_config &config);
|
||||
|
||||
private:
|
||||
void mem_map(address_map &map);
|
||||
|
||||
required_device<upd78210_device> m_maincpu;
|
||||
};
|
||||
|
||||
|
||||
void roland_r8_state::mem_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x1ffff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START(r8)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void roland_r8_state::r8(machine_config &config)
|
||||
{
|
||||
UPD78210(config, m_maincpu, 12_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &roland_r8_state::mem_map);
|
||||
}
|
||||
|
||||
|
||||
ROM_START(r8m)
|
||||
ROM_REGION(0x20000, "maincpu", 0)
|
||||
ROM_LOAD("rolandr8mv104.bin", 0x00000, 0x20000, CRC(5e95e2f6) SHA1(b4e1a8f15f72a9db9aa8fd41ee3c3ebd10460587))
|
||||
ROM_END
|
||||
|
||||
|
||||
SYST(1990, r8m, 0, 0, r8, r8, roland_r8_state, empty_init, "Roland", "R-8M Total Percussion Sound Module (v1.04)", MACHINE_IS_SKELETON)
|
|
@ -34514,6 +34514,9 @@ d110 //
|
|||
cm32l //
|
||||
mt32 //
|
||||
|
||||
@source:roland_r8.cpp
|
||||
r8m //
|
||||
|
||||
@source:roland_sc55.cpp
|
||||
sc55 // 1991 Sound Canvas SC-55
|
||||
|
||||
|
|
|
@ -744,6 +744,7 @@ roland_cm32p.cpp
|
|||
roland_d110.cpp
|
||||
roland_d50.cpp
|
||||
roland_mt32.cpp
|
||||
roland_r8.cpp
|
||||
roland_sc55.cpp
|
||||
rt1715.cpp
|
||||
rvoice.cpp
|
||||
|
|
Loading…
Reference in a new issue