mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
-arm7: Added ARM710T variant subclass. [Ryan Holtz]
-psion5: Added skeleton driver for the Psion 5mx. [Ninji, Ryan Holtz]
This commit is contained in:
parent
35438741be
commit
2f5329f522
@ -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",
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
|
95
src/mame/drivers/psion5.cpp
Normal file
95
src/mame/drivers/psion5.cpp
Normal file
@ -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 )
|
@ -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)
|
||||
|
@ -688,6 +688,7 @@ proteus3.cpp
|
||||
ps2.cpp
|
||||
ps2sony.cpp
|
||||
psion.cpp
|
||||
psion5.cpp
|
||||
psx.cpp
|
||||
pt68k4.cpp
|
||||
ptcsol.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user