summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2013-08-15 00:34:29 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2013-08-15 00:34:29 +0000
commit5c17a1f4af483815907f97e6c0dc1ff643ee7efa (patch)
treead4efedebb1a869a962aa6ef0657b4ccbdc114a2
parent6f2346a11df1f101a7786eb5404f05569ca0b2cd (diff)
Third take is the right one
-rw-r--r--.gitattributes1
-rw-r--r--src/mess/drivers/zaurus.c146
2 files changed, 147 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
index 0aa9391fcac..8474f6bc3a5 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6624,6 +6624,7 @@ src/mess/drivers/z80dev.c svneol=native#text/plain
src/mess/drivers/z80ne.c svneol=native#text/plain
src/mess/drivers/z88.c svneol=native#text/plain
src/mess/drivers/z9001.c svneol=native#text/plain
+src/mess/drivers/zaurus.c svneol=native#text/plain
src/mess/drivers/zexall.c svneol=native#text/plain
src/mess/drivers/zrt80.c svneol=native#text/plain
src/mess/drivers/zsbc3.c svneol=native#text/plain
diff --git a/src/mess/drivers/zaurus.c b/src/mess/drivers/zaurus.c
new file mode 100644
index 00000000000..ee3d7b5f9b7
--- /dev/null
+++ b/src/mess/drivers/zaurus.c
@@ -0,0 +1,146 @@
+/***************************************************************************
+
+ Sharp Zaurus PDA skeleton driver (SL, ARM/Linux based, 4th generation)
+
+ TODO:
+ - PXA-255 ID opcode fails on this
+ - ARM TLB look-up errors
+ - Dumps are questionable to say the least
+
+***************************************************************************/
+
+
+#include "emu.h"
+#include "cpu/arm7/arm7.h"
+#include "cpu/arm7/arm7core.h"
+#include "machine/pxa255.h"
+
+#define MAIN_CLOCK XTAL_8MHz
+
+class zaurus_state : public driver_device
+{
+public:
+ zaurus_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_ram(*this, "ram")
+ { }
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<UINT32> m_ram;
+
+ // screen updates
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+protected:
+ // driver_device overrides
+ virtual void machine_start();
+ virtual void machine_reset();
+
+ virtual void video_start();
+ virtual void palette_init();
+};
+
+void zaurus_state::video_start()
+{
+}
+
+UINT32 zaurus_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
+{
+
+
+ return 0;
+}
+
+static ADDRESS_MAP_START( zaurus_map, AS_PROGRAM, 32, zaurus_state )
+ AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_REGION("firmware", 0)
+ AM_RANGE(0xa0000000, 0xa07fffff) AM_RAM AM_SHARE("ram")
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( zaurus )
+INPUT_PORTS_END
+
+
+
+void zaurus_state::machine_start()
+{
+}
+
+void zaurus_state::machine_reset()
+{
+}
+
+
+void zaurus_state::palette_init()
+{
+}
+
+// TODO: main CPU differs greatly between versions!
+static MACHINE_CONFIG_START( zaurus, zaurus_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",PXA255,MAIN_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(zaurus_map)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
+ MCFG_SCREEN_UPDATE_DRIVER(zaurus_state, screen_update)
+ MCFG_SCREEN_SIZE(32*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
+
+ MCFG_PALETTE_LENGTH(8)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+// MCFG_SOUND_ADD("aysnd", AY8910, MAIN_CLOCK/4)
+// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+/* was labeled SL-C500 */
+ROM_START( zsl5500 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "sl-c500 v1.20 (zimage).bin", 0x000000, 0x13c000, BAD_DUMP CRC(dc1c259f) SHA1(8150744196a72821ae792462d0381182274c2ce0) )
+ROM_END
+
+ROM_START( zsl5600 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "zaurus sl-b500 - 5600 (zimage).bin", 0x000000, 0x11b6b0, BAD_DUMP CRC(779c70a1) SHA1(26824e3dc563b681f195029f220dfaa405613f9e) )
+ROM_END
+
+ROM_START( zslc750 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "zaurus sl-c750 (zimage).bin", 0x000000, 0x121544, BAD_DUMP CRC(56353f4d) SHA1(8e1fff6e93d560bd6572c5c163bbd81378693f68) )
+ROM_END
+
+ROM_START( zslc760 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "zaurus sl-c760 (zimage).bin", 0x000000, 0x120b44, BAD_DUMP CRC(feedcba3) SHA1(1821ad0fc03a8c3832ad5fe2221c21c1ca277508) )
+ROM_END
+
+ROM_START( zslc3000 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "openzaurus 3.5.3 - zimage-sharp sl-c3000-20050428091110.bin", 0x000000, 0x12828c, BAD_DUMP CRC(fd94510d) SHA1(901f8154b4228a448f5551f0c9f21c2153e1e3a1) )
+ROM_END
+
+ROM_START( zslc1000 )
+ ROM_REGION32_LE( 0x200000, "firmware", ROMREGION_ERASE00 )
+ ROM_LOAD( "openzaurus 3.5.3 - zimage-sharp sl-c1000-20050427214434.bin", 0x000000, 0x128980, BAD_DUMP CRC(1e1a9279) SHA1(909ac3f00385eced55822d6a155b79d9d25f43b3) )
+ROM_END
+
+GAME( 2002, zsl5500, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-5500 \"Collie\"", GAME_IS_SKELETON )
+GAME( 2002, zsl5600, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-5600 / SL-B500 \"Poodle\"", GAME_IS_SKELETON )
+GAME( 2003, zslc750, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-C750 \"Shepherd\" (Japan)", GAME_IS_SKELETON )
+GAME( 2004, zslc760, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-C760 \"Husky\" (Japan)", GAME_IS_SKELETON )
+GAME( 200?, zslc3000, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-C3000 \"Spitz\" (Japan)", GAME_IS_SKELETON )
+GAME( 200?, zslc1000, 0, zaurus, zaurus, driver_device, 0, ROT0, "Sharp", "Zaurus SL-C3000 \"Akita\" (Japan)", GAME_IS_SKELETON )