// 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 m_maincpu; // driver_device overrides virtual void machine_reset() override; 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)