From 2013a62515e61692128270606865325a6e6b844b Mon Sep 17 00:00:00 2001 From: Michael Zapf Date: Sun, 20 Oct 2013 15:49:59 +0000 Subject: [PATCH] Switch to modern TMS9995 implementation. [Michael Zapf] --- src/mame/drivers/jpmmps.c | 19 ++++++++++++++----- src/mame/drivers/jpms80.c | 17 ++++++++++++----- src/mame/drivers/nsm.c | 18 ++++++++++++------ 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/src/mame/drivers/jpmmps.c b/src/mame/drivers/jpmmps.c index db3f7ccc709..462ef030d98 100644 --- a/src/mame/drivers/jpmmps.c +++ b/src/mame/drivers/jpmmps.c @@ -28,7 +28,7 @@ #include "emu.h" -#include "cpu/tms9900/tms9900l.h" +#include "cpu/tms9900/tms9995.h" #include "sound/sn76496.h" #include "machine/i8255.h" #include "machine/tms9902.h" @@ -136,7 +136,7 @@ WRITE8_MEMBER(jpmmps_state::jpmmps_psg_buf_w) WRITE8_MEMBER(jpmmps_state::jpmmps_ic22_portc_w) { //Handle PSG - + if (m_psg_latch != (data & 0x04)) { if (!m_psg_latch)//falling edge @@ -217,12 +217,21 @@ MACHINE_START_MEMBER(jpmmps_state,jpmmps) } +static TMS9995_CONFIG( cpuconf95 ) +{ + DEVCB_NULL, // external op + DEVCB_NULL, // Instruction acquisition + DEVCB_NULL, // clock out + DEVCB_NULL, // HOLDA + DEVCB_NULL, // DBIN + INTERNAL_RAM, // use internal RAM + NO_OVERFLOW_INT // The generally available versions of TMS9995 have a deactivated overflow interrupt +}; + static MACHINE_CONFIG_START( jpmmps, jpmmps_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", TMS9995L, MAIN_CLOCK) - MCFG_CPU_PROGRAM_MAP(jpmmps_map) - MCFG_CPU_IO_MAP(jpmmps_io_map) + MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CLOCK, jpmmps_map, jpmmps_io_map, cpuconf95) MCFG_I8255_ADD( "ppi8255_ic26", ppi8255_intf_ic26 ) MCFG_I8255_ADD( "ppi8255_ic21", ppi8255_intf_ic21 ) diff --git a/src/mame/drivers/jpms80.c b/src/mame/drivers/jpms80.c index a9a6515f438..5b53dd7875d 100644 --- a/src/mame/drivers/jpms80.c +++ b/src/mame/drivers/jpms80.c @@ -22,7 +22,7 @@ System80 is based on the SRU platform, but with more outputs and finally a separ #include "emu.h" -#include "cpu/tms9900/tms9900l.h" +#include "cpu/tms9900/tms9995.h" #include "sound/ay8910.h" #include "machine/tms9902.h" @@ -88,13 +88,20 @@ static const tms9902_interface tms9902_config = DEVCB_NULL /* called for setting interface parameters and line states */ }; +static TMS9995_CONFIG( cpuconf95 ) +{ + DEVCB_NULL, // external op + DEVCB_NULL, // Instruction acquisition + DEVCB_NULL, // clock out + DEVCB_NULL, // HOLDA + DEVCB_NULL, // DBIN + INTERNAL_RAM, // use internal RAM + NO_OVERFLOW_INT // The generally available versions of TMS9995 have a deactivated overflow interrupt +}; static MACHINE_CONFIG_START( jpms80, jpms80_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", TMS9995L, MAIN_CLOCK) - MCFG_CPU_PROGRAM_MAP(jpms80_map) - MCFG_CPU_IO_MAP(jpms80_io_map) - + MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CLOCK, jpms80_map, jpms80_io_map, cpuconf95) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_TMS9902_ADD("tms9902duart", tms9902_config, DUART_CLOCK) diff --git a/src/mame/drivers/nsm.c b/src/mame/drivers/nsm.c index e6b35a7352f..e905f48db23 100644 --- a/src/mame/drivers/nsm.c +++ b/src/mame/drivers/nsm.c @@ -16,7 +16,7 @@ ToDo: *********************************************************************************/ #include "machine/genpin.h" -#include "cpu/tms9900/tms9900l.h" +#include "cpu/tms9900/tms9995.h" #include "sound/ay8910.h" #include "nsm.lh" @@ -48,10 +48,8 @@ private: static ADDRESS_MAP_START( nsm_map, AS_PROGRAM, 8, nsm_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xf0fb) AM_READ_LEGACY(tms9995_internal1_r) AM_RANGE(0xffec, 0xffed) AM_DEVWRITE("ay1", ay8910_device, address_data_w) AM_RANGE(0xffee, 0xffef) AM_DEVWRITE("ay2", ay8910_device, address_data_w) - AM_RANGE(0xfffc, 0xffff) AM_READ_LEGACY(tms9995_internal2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( nsm_io_map, AS_IO, 8, nsm_state ) @@ -110,6 +108,16 @@ WRITE8_MEMBER( nsm_state::cru_w ) } } +static TMS9995_CONFIG( cpuconf95 ) +{ + DEVCB_NULL, // external op + DEVCB_NULL, // Instruction acquisition + DEVCB_NULL, // clock out + DEVCB_NULL, // HOLDA + DEVCB_NULL, // DBIN + INTERNAL_RAM, // use internal RAM + NO_OVERFLOW_INT // The generally available versions of TMS9995 have a deactivated overflow interrupt +}; void nsm_state::machine_reset() { @@ -117,9 +125,7 @@ void nsm_state::machine_reset() static MACHINE_CONFIG_START( nsm, nsm_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", TMS9995L, 11052000) - MCFG_CPU_PROGRAM_MAP(nsm_map) - MCFG_CPU_IO_MAP(nsm_io_map) + MCFG_TMS99xx_ADD("maincpu", TMS9995, 11052000, nsm_map, nsm_io_map, cpuconf95) /* Video */ MCFG_DEFAULT_LAYOUT(layout_nsm)