Switch to modern TMS9995 implementation. [Michael Zapf]

This commit is contained in:
Michael Zapf 2013-10-20 15:49:59 +00:00
parent 6787c71769
commit 2013a62515
3 changed files with 38 additions and 16 deletions

View File

@ -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 )

View File

@ -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)

View File

@ -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)