summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/jvh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/jvh.cpp')
-rw-r--r--src/mame/drivers/jvh.cpp151
1 files changed, 151 insertions, 0 deletions
diff --git a/src/mame/drivers/jvh.cpp b/src/mame/drivers/jvh.cpp
new file mode 100644
index 00000000000..ae46237bf2a
--- /dev/null
+++ b/src/mame/drivers/jvh.cpp
@@ -0,0 +1,151 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*******************************************************************************
+
+ PINBALL
+ JVH : Escape, and Movie Masters
+
+********************************************************************************/
+#include "emu.h"
+#include "cpu/tms9900/tms9980a.h"
+#include "cpu/m6800/m6800.h"
+
+class jvh_state : public driver_device
+{
+public:
+ jvh_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+protected:
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+
+ // driver_device overrides
+ virtual void machine_reset();
+public:
+ DECLARE_DRIVER_INIT(jvh);
+};
+
+
+
+static ADDRESS_MAP_START( jvh_map, AS_PROGRAM, 8, jvh_state )
+ AM_RANGE(0x0000, 0x3bff) AM_ROM
+ AM_RANGE(0x3c00, 0x3cff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( escape_io, AS_IO, 8, jvh_state )
+ //AM_RANGE(0x01, 0x02) AM_READ(sw1_r)
+ //AM_RANGE(0x03, 0x05) AM_READ(dip_r)
+ //AM_RANGE(0x06, 0x07) AM_READ(sw6_r)
+ //AM_RANGE(0x10, 0x15) AM_WRITE(snd_w)
+ //AM_RANGE(0x16, 0x16) AM_WRITE(latch_w)
+ //AM_RANGE(0x17, 0x19) AM_WRITE(out1a_w)
+ //AM_RANGE(0x1a, 0x1a) AM_WRITE(enable_w)
+ //AM_RANGE(0x1b, 0x1f) AM_WRITE(out1b_w)
+ //AM_RANGE(0x20, 0x27) AM_WRITE(out2a_w)
+ //AM_RANGE(0x28, 0x2f) AM_WRITE(out2b_w)
+ //AM_RANGE(0x30, 0x37) AM_WRITE(out3a_w)
+ //AM_RANGE(0x3e, 0x3e) AM_WRITE(irq_enable)
+ //AM_RANGE(0x3f, 0x3f) AM_WRITE(zc_enable)
+ //AM_RANGE(0x40, 0x47) AM_WRITE(digit_w)
+ //AM_RANGE(0x48, 0x4b) AM_WRITE(bcd_w)
+ //AM_RANGE(0x4c, 0x50) AM_WRITE(panel_w)
+ //AM_RANGE(0x51, 0x55) AM_WRITE(col_w)
+ //AM_RANGE(0x58, 0x5f) AM_WRITE(out5b_w)
+ //AM_RANGE(0x60, 0x67) AM_WRITE(out6a_w)
+ //AM_RANGE(0x68, 0x6f) AM_WRITE(out6b_w)
+ //AM_RANGE(0x70, 0x74) AM_WRITE(out7a_w)
+ //AM_RANGE(0x75, 0x7f) AM_WRITE(sol_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( movmastr_io, AS_IO, 8, jvh_state )
+ //AM_RANGE(0x01, 0x02) AM_READ(sw1_r)
+ //AM_RANGE(0x03, 0x05) AM_READ(dip_r)
+ //AM_RANGE(0x08, 0x09) AM_READ(sw6_r)
+ //AM_RANGE(0x00, 0x07) AM_WRITE(out0a2_w)
+ //AM_RANGE(0x08, 0x0f) AM_WRITE(out0b2_w)
+ //AM_RANGE(0x10, 0x17) AM_WRITE(out1a2_w)
+ //AM_RANGE(0x18, 0x1f) AM_WRITE(out1b2_w)
+ //AM_RANGE(0x20, 0x27) AM_WRITE(out2a2_w)
+ //AM_RANGE(0x28, 0x2f) AM_WRITE(out2b2_w)
+ //AM_RANGE(0x30, 0x30) AM_WRITE(out3a2_w)
+ //AM_RANGE(0x31, 0x36) AM_WRITE(snd_w)
+ //AM_RANGE(0x37, 0x37) AM_WRITE(latch_w)
+ //AM_RANGE(0x3e, 0x3e) AM_WRITE(irq_enable)
+ //AM_RANGE(0x3f, 0x3f) AM_WRITE(zc_enable)
+ //AM_RANGE(0x40, 0x47) AM_WRITE(out4a2_w)
+ //AM_RANGE(0x48, 0x4a) AM_WRITE(out4b2_w)
+ //AM_RANGE(0x4b, 0x4b) AM_WRITE(enable_w)
+ //AM_RANGE(0x4c, 0x4f) AM_WRITE(out4c2_w)
+ //AM_RANGE(0x50, 0x55) AM_WRITE(col_w)
+ //AM_RANGE(0x57, 0x5a) AM_WRITE(bcd_w)
+ //AM_RANGE(0x5b, 0x5f) AM_WRITE(panel_w)
+ //AM_RANGE(0x60, 0x67) AM_WRITE(digit_w)
+ //AM_RANGE(0x68, 0x6f) AM_WRITE(out6b2_w)
+ //AM_RANGE(0x70, 0x74) AM_WRITE(out7a2_w)
+ //AM_RANGE(0x75, 0x7f) AM_WRITE(sol_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( jvh_sub_map, AS_PROGRAM, 8, jvh_state )
+ AM_RANGE(0x0000, 0x007f) AM_RAM
+ //AM_RANGE(0x0080, 0x008f) via6522_r,w
+ AM_RANGE(0xc000, 0xdfff) AM_MIRROR(0x2000) AM_ROM
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( jvh )
+INPUT_PORTS_END
+
+void jvh_state::machine_reset()
+{
+}
+
+DRIVER_INIT_MEMBER(jvh_state,jvh)
+{
+}
+
+static MACHINE_CONFIG_START( jvh, jvh_state )
+ // CPU TMS9980A; no line connections
+ MCFG_TMS99xx_ADD("maincpu", TMS9980A, 1000000, jvh_map, escape_io)
+ MCFG_CPU_ADD("cpu2", M6800, 1000000)
+ MCFG_CPU_PROGRAM_MAP(jvh_sub_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( jvh2, jvh_state )
+ // CPU TMS9980At; no line connections
+ MCFG_TMS99xx_ADD("maincpu", TMS9980A, 1000000, jvh_map, movmastr_io)
+ MCFG_CPU_ADD("cpu2", M6800, 1000000)
+ MCFG_CPU_PROGRAM_MAP(jvh_sub_map)
+MACHINE_CONFIG_END
+
+
+
+/*-------------------------------------------------------------------
+/ Escape
+/-------------------------------------------------------------------*/
+ROM_START(escape)
+ ROM_REGION(0x4000, "maincpu", 0)
+ ROM_LOAD("cpu_ic1.bin", 0x0000, 0x2000, CRC(fadb8f9a) SHA1(b7e7ea8e33847c14a3414f5e367e304f12c0bc00))
+ ROM_LOAD("cpu_ic7.bin", 0x2000, 0x2000, CRC(2f9402b4) SHA1(3d3bae7e4e5ad40e3c8019d55392defdffd21cc4))
+
+ ROM_REGION(0x10000, "cpu2", 0)
+ ROM_LOAD("snd.bin", 0xc000, 0x2000, CRC(2477bbe2) SHA1(f636952822153f43e9d09f8211edde1057249203))
+ROM_END
+
+/*-------------------------------------------------------------------
+/ Movie Masters
+/-------------------------------------------------------------------*/
+ROM_START(movmastr)
+ ROM_REGION(0x4000, "maincpu", 0)
+ ROM_LOAD("mm_ic1.764", 0x0000, 0x2000, CRC(fb59920d) SHA1(05536c4c036a8d73516766e14f4449665b2ec180))
+ ROM_LOAD("mm_ic7.764", 0x2000, 0x2000, CRC(9b47af41) SHA1(ae795c22aa437d6c71312d93de8a87f43ee500fb))
+
+ ROM_REGION(0x10000, "cpu2", 0)
+ ROM_LOAD("snd.bin", 0xc000, 0x2000, NO_DUMP)
+ROM_END
+
+
+GAME(1987, escape, 0, jvh, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Escape", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(19??, movmastr, 0, jvh2, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Movie Masters", MACHINE_IS_SKELETON_MECHANICAL)