summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/instantm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/instantm.cpp')
-rw-r--r--src/mame/drivers/instantm.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/src/mame/drivers/instantm.cpp b/src/mame/drivers/instantm.cpp
deleted file mode 100644
index 6cb6101263d..00000000000
--- a/src/mame/drivers/instantm.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-/******************************************************************************************************************************
-
-has a sticker marked
-Part # 04-0008
-Main PCB w/ Dark-Slide
-Serial# : 0115
-
-2x Z80
-
-
-
-There were several different designs for this, it's possible they used
-different speech roms etc.
-
-ToDo:
-- work out how the cpus communicate (there's an interrupt handler in main cpu)
-- clear up the speech
-- inputs
-- mechanical matters (camera, printer, etc)
-
-At the moment it simply outputs all the speech strings, one after the other, then stops.
-
-*****************************************************************************************************************************/
-
-#include "emu.h"
-#include "cpu/z80/z80.h"
-#include "machine/clock.h"
-#include "sound/dac.h"
-#include "sound/volt_reg.h"
-#include "speaker.h"
-
-class instantm_state : public driver_device
-{
-public:
- instantm_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- { }
-
- void instantm(machine_config &config);
-
-private:
- DECLARE_READ8_MEMBER(port01_r);
- DECLARE_WRITE8_MEMBER(port01_w);
- DECLARE_WRITE_LINE_MEMBER(clock_w);
-
- void main_map(address_map &map);
- void sub_io(address_map &map);
- void sub_map(address_map &map);
-
- u8 m_port01;
- bool m_clock_en;
- virtual void machine_start() override;
- virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
-};
-
-// return instruction from main cpu
-READ8_MEMBER( instantm_state::port01_r )
-{
- return m_port01;
-}
-
-// tell maincpu the speech is done
-WRITE8_MEMBER( instantm_state::port01_w )
-{
- // bump to next bit of speech for now
- if ((m_port01 & 15) < 15)
- m_port01++;
- else
- m_clock_en = false;
-}
-
-// clock out the speech bytes
-WRITE_LINE_MEMBER( instantm_state::clock_w )
-{
- if (m_clock_en)
- m_port01 ^= 0x80;
-}
-
-
-
-void instantm_state::main_map(address_map &map)
-{
- map(0x0000, 0x1fff).rom();
- map(0x4000, 0x47ff).ram();
- map(0x8000, 0x8000); //.w(FUNC(instantm_state::));
- map(0xc000, 0xc000); //.w(FUNC(instantm_state::));
- map(0xc400, 0xc400); //.w(FUNC(instantm_state::));
- map(0xc800, 0xc800); //.w(FUNC(instantm_state::));
- map(0xcc00, 0xcc00); //.w(FUNC(instantm_state::));
- map(0xec00, 0xec00); //.r(FUNC(instantm_state::));
- map(0xf000, 0xf000); //.r(FUNC(instantm_state::));
- map(0xf400, 0xf400); //.r(FUNC(instantm_state::));
- map(0xfc00, 0xfc00); //.r(FUNC(instantm_state::));
-}
-
-// doesn't use ram
-void instantm_state::sub_map(address_map &map)
-{
- map(0x0000, 0xffff).rom();
- map(0x0000, 0x0000).w("dac", FUNC(dac_byte_interface::data_w));
-}
-
-void instantm_state::sub_io(address_map &map)
-{
- map.global_mask(0xff);
- map(0x01, 0x01).rw(FUNC(instantm_state::port01_r), FUNC(instantm_state::port01_w));
-}
-
-static INPUT_PORTS_START( instantm )
-INPUT_PORTS_END
-
-
-void instantm_state::machine_start()
-{
-}
-
-void instantm_state::machine_reset()
-{
- m_port01 = 0xf0; // bit 4 low sends subcpu to a test mode
- m_clock_en = true;
-}
-
-// OSC1 = XTAL(3'579'545)
-
-void instantm_state::instantm(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, XTAL(3'579'545));
- m_maincpu->set_addrmap(AS_PROGRAM, &instantm_state::main_map);
-
- z80_device &subcpu(Z80(config, "subcpu", XTAL(3'579'545)));
- subcpu.set_addrmap(AS_PROGRAM, &instantm_state::sub_map);
- subcpu.set_addrmap(AS_IO, &instantm_state::sub_io);
-
- // all guesswork
- clock_device &voice_clock(CLOCK(config, "voice_clock", 24000));
- voice_clock.signal_handler().set(FUNC(instantm_state::clock_w));
-
- SPEAKER(config, "speaker").front_center();
- MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
- voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
- vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
- vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-}
-
-
-
-ROM_START( instantm )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "system5.3beta.u16", 0x00000, 0x02000, CRC(a1701f4b) SHA1(fa5b0234bd2b666e478aa41129479bb6cec2bcf5) )
-
- ROM_REGION( 0x10000, "subcpu", 0 )
- ROM_LOAD( "speechus10.u20", 0x00000, 0x10000, CRC(1797bcee) SHA1(c6fb7fbe8592dfae3ba44b49b5ce447206515b77) )
-ROM_END
-
-
-GAME( 199?, instantm, 0, instantm, instantm, instantm_state, empty_init, ROT0, "Capcom / Polaroid", "Polaroid Instant Memories", MACHINE_IS_SKELETON_MECHANICAL )