diff options
Diffstat (limited to 'src/mame/drivers/jvh.cpp')
-rw-r--r-- | src/mame/drivers/jvh.cpp | 151 |
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) |