diff options
author | mooglyguy <therealmogminer@gmail.com> | 2020-01-02 02:27:04 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2020-01-02 02:27:04 +0100 |
commit | 2f5329f5229c6e7467f22988a6ed500a724d27e5 (patch) | |
tree | 060973226a1624f43a1eeecd8d455e0149da8ca6 | |
parent | 35438741bedf8cc53a2a70bba89b6a23818257ca (diff) |
-arm7: Added ARM710T variant subclass. [Ryan Holtz]
-psion5: Added skeleton driver for the Psion 5mx. [Ninji, Ryan Holtz]
-rw-r--r-- | scripts/target/mame/mess.lua | 1 | ||||
-rw-r--r-- | src/devices/cpu/arm7/arm7.cpp | 11 | ||||
-rw-r--r-- | src/devices/cpu/arm7/arm7.h | 8 | ||||
-rw-r--r-- | src/mame/drivers/psion5.cpp | 95 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 | ||||
-rw-r--r-- | src/mame/mess.flt | 1 |
6 files changed, 119 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 3d6b57cea6d..5f98c599668 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3086,6 +3086,7 @@ createMESSProjects(_target, _subtarget, "psion") files { MAME_DIR .. "src/mame/drivers/psion.cpp", MAME_DIR .. "src/mame/includes/psion.h", + MAME_DIR .. "src/mame/drivers/psion5.cpp", MAME_DIR .. "src/mame/machine/psion_pack.cpp", MAME_DIR .. "src/mame/machine/psion_pack.h", } diff --git a/src/devices/cpu/arm7/arm7.cpp b/src/devices/cpu/arm7/arm7.cpp index 4cf3b5fe351..af0bbe87c78 100644 --- a/src/devices/cpu/arm7/arm7.cpp +++ b/src/devices/cpu/arm7/arm7.cpp @@ -48,6 +48,7 @@ void (*arm7_coproc_dt_w_callback)(arm_state *arm, uint32_t insn, uint32_t *prn, DEFINE_DEVICE_TYPE(ARM7, arm7_cpu_device, "arm7_le", "ARM7 (little)") DEFINE_DEVICE_TYPE(ARM7_BE, arm7_be_cpu_device, "arm7_be", "ARM7 (big)") DEFINE_DEVICE_TYPE(ARM710A, arm710a_cpu_device, "arm710a", "ARM710a") +DEFINE_DEVICE_TYPE(ARM710T, arm710t_cpu_device, "arm710t", "ARM710T") DEFINE_DEVICE_TYPE(ARM7500, arm7500_cpu_device, "arm7500", "ARM7500") DEFINE_DEVICE_TYPE(ARM9, arm9_cpu_device, "arm9", "ARM9") DEFINE_DEVICE_TYPE(ARM920T, arm920t_cpu_device, "arm920t", "ARM920T") @@ -106,6 +107,16 @@ arm710a_cpu_device::arm710a_cpu_device(const machine_config &mconfig, const char } +arm710t_cpu_device::arm710t_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : arm7_cpu_device(mconfig, ARM710T, tag, owner, clock, 4, ARCHFLAG_MODE26, ENDIANNESS_LITTLE) +{ + m_copro_id = ARM9_COPRO_ID_MFR_ARM + | ARM9_COPRO_ID_ARCH_V4 + | ARM9_COPRO_ID_PART_ARM710 + | 0x00800000; +} + + arm7500_cpu_device::arm7500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : arm7_cpu_device(mconfig, ARM7500, tag, owner, clock, 4, ARCHFLAG_MODE26, ENDIANNESS_LITTLE) { diff --git a/src/devices/cpu/arm7/arm7.h b/src/devices/cpu/arm7/arm7.h index fa88ff1cd4c..938950cc9d8 100644 --- a/src/devices/cpu/arm7/arm7.h +++ b/src/devices/cpu/arm7/arm7.h @@ -602,6 +602,13 @@ public: arm710a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; +class arm710t_cpu_device : public arm7_cpu_device +{ +public: + // construction/destruction + arm710t_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + class arm9_cpu_device : public arm7_cpu_device { public: @@ -694,6 +701,7 @@ public: DECLARE_DEVICE_TYPE(ARM7, arm7_cpu_device) DECLARE_DEVICE_TYPE(ARM7_BE, arm7_be_cpu_device) DECLARE_DEVICE_TYPE(ARM710A, arm710a_cpu_device) +DECLARE_DEVICE_TYPE(ARM710T, arm710t_cpu_device) DECLARE_DEVICE_TYPE(ARM7500, arm7500_cpu_device) DECLARE_DEVICE_TYPE(ARM9, arm9_cpu_device) DECLARE_DEVICE_TYPE(ARM920T, arm920t_cpu_device) diff --git a/src/mame/drivers/psion5.cpp b/src/mame/drivers/psion5.cpp new file mode 100644 index 00000000000..1addef2930e --- /dev/null +++ b/src/mame/drivers/psion5.cpp @@ -0,0 +1,95 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz, Ash Wolf +/*************************************************************************** + + Psion 5mx (EPOC R5) series + + Skeleton driver by Ryan Holtz, ported from work by Ash Wolf + + TODO: + - everything + + More info: + https://github.com/Treeki/WindEmu + +****************************************************************************/ + + +#include "emu.h" +#include "cpu/arm7/arm7.h" + +#include "screen.h" + +class psion5_state : public driver_device +{ +public: + psion5_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void psion5mx(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + void main_map(address_map &map); + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + required_device<arm710t_cpu_device> m_maincpu; +}; + +void psion5_state::machine_start() +{ +} + +void psion5_state::machine_reset() +{ +} + +void psion5_state::main_map(address_map &map) +{ + map(0x00000000, 0x009fffff).rom().region("maincpu", 0); + map(0xc0000000, 0xc03fffff).ram().mirror(0x1fc00000); +} + +uint32_t psion5_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +/* Input ports */ +INPUT_PORTS_START( psion5 ) +INPUT_PORTS_END + +/* basic configuration for 2 lines display */ +void psion5_state::psion5mx(machine_config &config) +{ + /* basic machine hardware */ + ARM710T(config, m_maincpu, 18000000); // 18MHz, per wikipedia + m_maincpu->set_addrmap(AS_PROGRAM, &psion5_state::main_map); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* not accurate */ + screen.set_screen_update(FUNC(psion5_state::screen_update)); + screen.set_size(640, 240); + screen.set_visarea(0, 640-1, 0, 240-1); +} + +/* ROM definition */ + +ROM_START( psion5mx ) + ROM_REGION( 0xa00000, "maincpu", 0 ) + ROM_LOAD( "5mx.rom", 0x000000, 0xa00000, CRC(a1e2d038) SHA1(4c082321264e1ae7fe77699e59b8960460690fa6) ) +ROM_END + +/* Driver */ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1999, psion5mx, 0, 0, psion5mx, psion5, psion5_state, empty_init, "Psion", "5mx", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3596c69d2aa..296244967b8 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -33824,6 +33824,9 @@ psionp350 // psionp464 // psionxp // +@source:psion5.cpp +psion5mx // + @source:psx.cpp psa // 1995 Sony PlayStation (Asia-Pacific) pse // 1995 Sony PlayStation (Europe) diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 46a437a9368..558951d43b1 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -688,6 +688,7 @@ proteus3.cpp ps2.cpp ps2sony.cpp psion.cpp +psion5.cpp psx.cpp pt68k4.cpp ptcsol.cpp |