From 6457e5ab97dfd566e352eb6d9e0058c0068c7633 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 15 Nov 2019 23:28:05 -0500 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- Eurit 30 [Cyberia/2 Filebase] --- scripts/target/mame/mess.lua | 1 + src/devices/cpu/m37710/m37710.cpp | 30 +++++++++++++++++ src/devices/cpu/m37710/m37710.h | 10 ++++++ src/mame/drivers/eurit.cpp | 55 +++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 6 files changed, 100 insertions(+) create mode 100644 src/mame/drivers/eurit.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index f31d2bd657d..bd443d697a7 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -4039,6 +4039,7 @@ files { MAME_DIR .. "src/mame/drivers/esprit.cpp", MAME_DIR .. "src/mame/drivers/eti660.cpp", MAME_DIR .. "src/mame/includes/eti660.h", + MAME_DIR .. "src/mame/drivers/eurit.cpp", MAME_DIR .. "src/mame/drivers/eurocom2.cpp", MAME_DIR .. "src/mame/drivers/excali64.cpp", MAME_DIR .. "src/mame/drivers/facit4440.cpp", diff --git a/src/devices/cpu/m37710/m37710.cpp b/src/devices/cpu/m37710/m37710.cpp index 58e1bf9537d..ded2f58d719 100644 --- a/src/devices/cpu/m37710/m37710.cpp +++ b/src/devices/cpu/m37710/m37710.cpp @@ -81,6 +81,7 @@ DEFINE_DEVICE_TYPE(M37702M2, m37702m2_device, "m37702m2", "Mitsubishi M37702M2") DEFINE_DEVICE_TYPE(M37702S1, m37702s1_device, "m37702s1", "Mitsubishi M37702S1") DEFINE_DEVICE_TYPE(M37710S4, m37710s4_device, "m37710s4", "Mitsubishi M37710S4") DEFINE_DEVICE_TYPE(M37720S1, m37720s1_device, "m37720s1", "Mitsubishi M37720S1") +DEFINE_DEVICE_TYPE(M37730S2, m37730s2_device, "m37730s2", "Mitsubishi M37730S2") // On-board RAM, ROM, and peripherals @@ -221,6 +222,30 @@ void m37720s1_device::map(address_map &map) map(0x000080, 0x00027f).ram(); } +// M37730S2: 1024 bytes internal RAM, no internal ROM +void m37730s2_device::map(address_map &map) +{ + map(0x000002, 0x000015).rw(FUNC(m37730s2_device::port_r), FUNC(m37730s2_device::port_w)); // FIXME: P4-P6 and P8 only + map(0x000030, 0x000030).rw(FUNC(m37730s2_device::uart0_mode_r), FUNC(m37730s2_device::uart0_mode_w)); + map(0x000031, 0x000031).w(FUNC(m37730s2_device::uart0_baud_w)); + map(0x000032, 0x000033).w(FUNC(m37730s2_device::uart0_tbuf_w)); + map(0x000034, 0x000034).rw(FUNC(m37730s2_device::uart0_ctrl_reg0_r), FUNC(m37730s2_device::uart0_ctrl_reg0_w)); + map(0x000035, 0x000035).rw(FUNC(m37730s2_device::uart0_ctrl_reg1_r), FUNC(m37730s2_device::uart0_ctrl_reg1_w)); + map(0x000036, 0x000037).r(FUNC(m37730s2_device::uart0_rbuf_r)); + map(0x000040, 0x000040).rw(FUNC(m37730s2_device::count_start_r), FUNC(m37730s2_device::count_start_w)); + map(0x000042, 0x000042).w(FUNC(m37730s2_device::one_shot_start_w)); + map(0x000044, 0x000044).rw(FUNC(m37730s2_device::up_down_r), FUNC(m37730s2_device::up_down_w)); + map(0x000046, 0x000051).rw(FUNC(m37730s2_device::timer_reg_r), FUNC(m37730s2_device::timer_reg_w)); + map(0x000056, 0x00005b).rw(FUNC(m37730s2_device::timer_mode_r), FUNC(m37730s2_device::timer_mode_w)); + map(0x00005e, 0x00005e).rw(FUNC(m37730s2_device::proc_mode_r), FUNC(m37730s2_device::proc_mode_w)); + map(0x000060, 0x000060).w(FUNC(m37730s2_device::watchdog_timer_w)); + map(0x000061, 0x000061).rw(FUNC(m37730s2_device::watchdog_freq_r), FUNC(m37730s2_device::watchdog_freq_w)); + map(0x000062, 0x000062).rw(FUNC(m37730s2_device::waveform_mode_r), FUNC(m37730s2_device::waveform_mode_w)); + map(0x000064, 0x000065).w(FUNC(m37730s2_device::pulse_output_w)); + map(0x00006c, 0x00007f).rw(FUNC(m37730s2_device::int_control_r), FUNC(m37730s2_device::int_control_w)); + map(0x000080, 0x00047f).ram(); +} + // many other combinations of RAM and ROM size exist @@ -262,6 +287,11 @@ m37720s1_device::m37720s1_device(const machine_config &mconfig, const char *tag, { } +m37730s2_device::m37730s2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : m37710_cpu_device(mconfig, M37730S2, tag, owner, clock, address_map_constructor(FUNC(m37730s2_device::map), this)) +{ +} + std::vector> m37710_cpu_device::memory_space_config() const { return std::vector> { diff --git a/src/devices/cpu/m37710/m37710.h b/src/devices/cpu/m37710/m37710.h index 667dcbd1e13..191168c15d3 100644 --- a/src/devices/cpu/m37710/m37710.h +++ b/src/devices/cpu/m37710/m37710.h @@ -2168,10 +2168,20 @@ protected: void map(address_map &map); }; +class m37730s2_device : public m37710_cpu_device +{ +public: + // construction/destruction + m37730s2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + void map(address_map &map); +}; + DECLARE_DEVICE_TYPE(M37702M2, m37702m2_device) DECLARE_DEVICE_TYPE(M37702S1, m37702s1_device) DECLARE_DEVICE_TYPE(M37710S4, m37710s4_device) DECLARE_DEVICE_TYPE(M37720S1, m37720s1_device) +DECLARE_DEVICE_TYPE(M37730S2, m37730s2_device) /* ======================================================================== */ diff --git a/src/mame/drivers/eurit.cpp b/src/mame/drivers/eurit.cpp new file mode 100644 index 00000000000..5140cdc9dcb --- /dev/null +++ b/src/mame/drivers/eurit.cpp @@ -0,0 +1,55 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Ascom Eurit Euro-ISDN Telefon. + +****************************************************************************/ + +#include "emu.h" +#include "cpu/m37710/m37710.h" + +class eurit_state : public driver_device +{ +public: + eurit_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void eurit30(machine_config &mconfig); + +private: + void mem_map(address_map &map); + + required_device m_maincpu; +}; + + +void eurit_state::mem_map(address_map &map) +{ + map(0x000480, 0x007fff).ram(); + map(0x008000, 0x00ffff).rom().region("firmware", 0x8000); + map(0x040000, 0x05ffff).rom().region("firmware", 0); + map(0x0c0000, 0x0c0007).noprw(); // ? +} + + +static INPUT_PORTS_START(eurit30) +INPUT_PORTS_END + +void eurit_state::eurit30(machine_config &config) +{ + M37730S2(config, m_maincpu, 8'000'000); // type and clock unknown + m_maincpu->set_addrmap(AS_PROGRAM, &eurit_state::mem_map); +} + + +ROM_START(eurit30) + ROM_REGION(0x20000, "firmware", 0) + ROM_LOAD("d_2.210", 0x00000, 0x20000, CRC(c77be0ac) SHA1(1eaba66dcb4f64cc33565ca85de25341572ddb2e)) +ROM_END + + +SYST(1996, eurit30, 0, 0, eurit30, eurit30, eurit_state, empty_init, "Ascom", "Eurit 30", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5960815c464..12600dbea08 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12945,6 +12945,9 @@ promutrvb // (c) 1985 Enerdyne Technologies Inc promutrvc // (c) 1985 Enerdyne Technologies Inc strvmstr // (c) 1986 Enerdyne Technologies Inc +@source:eurit.cpp +eurit30 // + @source:eurocom2.cpp eurocom2 // waveterm // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index c1345f91d73..96cb8538b9a 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -243,6 +243,7 @@ esqkt.cpp esqmr.cpp et3400.cpp eti660.cpp +eurit.cpp eurocom2.cpp europc.cpp eva.cpp