summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-11-10 19:39:41 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2020-11-10 19:39:41 +0100
commit055249b50c0e69da4624b84338663868226b3d09 (patch)
tree5354cb6bd5a705fabb6b411cc7fde78af9753610
parent4a2e49d2c7ec9685f003ae12fd9b86c8b10addeb (diff)
New machines marked as NOT_WORKING
---------------------------------- IQ-7000 [Sean Riddle, Recreativas.org] New NOT_WORKING software list additions --------------------------------------- 3 Dimensional Spreadsheet (IQ-8B01) [Recreativas.org] 8-Language Translator (IQ-703A) [Sean Riddle, Recreativas.org] Time Expense Manager (IQ-701A) [Recreativas.org]
-rw-r--r--hash/wizard_cart.xml51
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/wizard.cpp134
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
5 files changed, 190 insertions, 0 deletions
diff --git a/hash/wizard_cart.xml b/hash/wizard_cart.xml
new file mode 100644
index 00000000000..1187f9b3a79
--- /dev/null
+++ b/hash/wizard_cart.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<!--
+license:CC0
+-->
+
+<softwarelist name="wizard_cart" description="Sharp Wizard series cartridges">
+
+ <software name="3dssheet" supported="no">
+ <description>3 Dimensional Spreadsheet (IQ-8B01)</description>
+ <year>1990</year>
+ <publisher>PCSG</publisher>
+ <part name="cart" interface="wizard_cart">
+ <dataarea name="rom" size="0x20000">
+ <rom name="3dssheet.bin" size="0x20000" crc="c0440ad2" sha1="f7bb4eb99755ff0cc2496724e55d7be70552069a" />
+ </dataarea>
+ <dataarea name="sram" size="0x10000">
+ <rom name="3dssheet_sram.bin" size="0x10000" crc="25920e43" sha1="8581044402aca56da9147f13abd8a58af861c473" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="8ltransl" supported="no">
+ <description>8-Language Translator (IQ-703A)</description>
+ <year>1988</year>
+ <publisher>Sharp Corporation</publisher>
+ <part name="cart" interface="wizard_cart">
+ <dataarea name="rom" size="0x40000">
+ <rom name="8ltransl.bin" size="0x40000" crc="eb755572" sha1="bf2a43c30cdee042824f1ffb5063e23c183c5c29" />
+ </dataarea>
+ <dataarea name="sram" size="0x10000">
+ <rom name="8ltransl_sram.bin" size="0x10000" status="nodump"/>
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="timeexpm" supported="no">
+ <description>Time Expense Manager (IQ-701A)</description>
+ <year>1988</year>
+ <publisher>Traveling Software, Inc.</publisher>
+ <part name="cart" interface="wizard_cart">
+ <dataarea name="rom" size="0x10000">
+ <rom name="timeexpm.bin" size="0x10000" crc="16d8d9e3" sha1="37eb163e86a0b57fc87c68d09e77020b26b217e5" />
+ </dataarea>
+ <dataarea name="sram" size="0x8000">
+ <rom name="timeexpm_sram.bin" size="0x8000" crc="f82cdc90" sha1="b0a2626c4d18a1b255548e0b1a61265b0aaa9656" status="baddump"/>
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index ba5dd78e47b..93fcb0a4e7a 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3590,6 +3590,7 @@ files {
MAME_DIR .. "src/mame/video/mz80.cpp",
MAME_DIR .. "src/mame/machine/mz80.cpp",
MAME_DIR .. "src/mame/drivers/mz2000.cpp",
+ MAME_DIR .. "src/mame/drivers/wizard.cpp",
MAME_DIR .. "src/mame/drivers/x1.cpp",
MAME_DIR .. "src/mame/includes/x1.h",
MAME_DIR .. "src/mame/machine/x1.cpp",
diff --git a/src/mame/drivers/wizard.cpp b/src/mame/drivers/wizard.cpp
new file mode 100644
index 00000000000..6612ad24c44
--- /dev/null
+++ b/src/mame/drivers/wizard.cpp
@@ -0,0 +1,134 @@
+// license:BSD-3-Clause
+// copyright-holders:
+
+/*
+Sharp Wizard series of electronic organizers
+
+Currently only the IQ-7000 is dumped (sold in the US as OZ-7000)
+
+Other known undumped models are:
+IQ-7100M
+OZ-7200 WIZARD
+IQ-7300M
+IQ-7520M
+IQ-7700M
+IQ-7720M
+IQ-8100M
+IQ-8200
+IQ-8300M
+IQ-8500M
+IQ-8900G
+IQ-8920G
+OZ-9520 WIZARD
+IQ-9000G
+IQ-9200G
+
+Sharp followed up with the Zaurus series (see drivers/zaurus.cpp)
+*/
+
+#include "emu.h"
+
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+#include "cpu/arm7/arm7.h" // wrong, needs CPU core
+#include "cpu/arm7/arm7core.h"
+
+#include "screen.h"
+#include "softlist.h"
+#include "speaker.h"
+#include "screen.h"
+
+
+namespace {
+
+class wizard_state : public driver_device
+{
+public:
+ wizard_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_cart(*this, "cartslot")
+ , m_cart_region(nullptr)
+ { }
+
+ void iq7000(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);
+
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
+
+ required_device<cpu_device> m_maincpu;
+ required_device<generic_slot_device> m_cart;
+ memory_region *m_cart_region;
+};
+
+
+void wizard_state::machine_start()
+{
+ // if there's a cart, override the standard mapping
+ if (m_cart && m_cart->exists())
+ {
+ m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG);
+ }
+}
+
+void wizard_state::machine_reset()
+{
+}
+
+DEVICE_IMAGE_LOAD_MEMBER(wizard_state::cart_load)
+{
+ uint32_t size = m_cart->common_get_size("rom");
+
+ m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
+
+ return image_init_result::PASS;
+}
+
+static INPUT_PORTS_START( iq7000 )
+INPUT_PORTS_END
+
+uint32_t wizard_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void wizard_state::main_map(address_map &map)
+{
+}
+
+void wizard_state::iq7000(machine_config &config)
+{
+ ARM9(config, m_maincpu, 240000000); // actually Sharp SC62015B02, currently unemulated
+ m_maincpu->set_addrmap(AS_PROGRAM, &wizard_state::main_map);
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); // all wrong, TBD
+ screen.set_refresh_hz(50);
+ screen.set_screen_update(FUNC(wizard_state::screen_update));
+ screen.set_size(96, 64);
+ screen.set_visarea_full();
+
+ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "wizard_cart");
+ m_cart->set_width(GENERIC_ROM16_WIDTH);
+ m_cart->set_device_load(FUNC(wizard_state::cart_load));
+
+ SOFTWARE_LIST(config, "cart_list").set_original("wizard_cart");
+}
+
+ROM_START( iq7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "iq7000.bin", 0x00000, 0x10000, CRC(04ba80ca) SHA1(fe25e7c892b1e57641ff75bcd703882e28627fda) )
+ROM_END
+
+} // Anonymous namespace
+
+
+CONS( 2015, iq7000, 0, 0, iq7000, iq7000, wizard_state, empty_init, "Sharp", "IQ-7000", MACHINE_IS_SKELETON )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index d5b000e3701..ae3fdf6b3a7 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -42158,6 +42158,9 @@ wiz // (c) 1985 Seibu Kaihatsu
wizt // (c) 1985 Taito Corporation
wizta // (c) 1985 Taito Corporation
+@source:wizard.cpp
+iq7000 //
+
@source:wmg.cpp
wmg // Williams 6in1 Multigame, Clay Cowgill
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 17981558ed3..a8f97e43210 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -1110,6 +1110,7 @@ vtech2.cpp
vtech_eu3a12.cpp
wangpc.cpp
wicat.cpp
+wizard.cpp
wrinkles.cpp
wswan.cpp
wxstar4000.cpp