diff options
Diffstat (limited to 'src/emu/cpu/dsp56k/dsp56k.c')
-rw-r--r-- | src/emu/cpu/dsp56k/dsp56k.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c index 408521ea8fc..9e151019c7e 100644 --- a/src/emu/cpu/dsp56k/dsp56k.c +++ b/src/emu/cpu/dsp56k/dsp56k.c @@ -108,7 +108,7 @@ const device_type DSP56156 = &device_creator<dsp56k_device>; * Internal Memory Maps ****************************************************************************/ static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16, dsp56k_device ) - AM_RANGE(0x0000,0x07ff) AM_READWRITE(program_r, program_w) /* 1-5 */ + AM_RANGE(0x0000,0x07ff) AM_RAM AM_SHARE("dsk56k_program_ram") /* 1-5 */ // AM_RANGE(0x2f00,0x2fff) AM_ROM /* 1-5 PROM reserved memory. Is this the right spot for it? */ ADDRESS_MAP_END @@ -122,29 +122,14 @@ dsp56k_device::dsp56k_device(const machine_config &mconfig, const char *tag, dev : cpu_device(mconfig, DSP56156, "DSP56156", tag, owner, clock, "dsp56156", __FILE__) , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1, ADDRESS_MAP_NAME(dsp56156_program_map)) , m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1, ADDRESS_MAP_NAME(dsp56156_x_data_map)) + , m_program_ram(*this, "dsk56k_program_ram") { } - -/*************************************************************************** - Direct Update Handler -***************************************************************************/ -DIRECT_UPDATE_MEMBER( dsp56k_device::dsp56k_direct_handler ) -{ - if (address <= (0x07ff<<1)) - { - direct.explicit_configure(0x0000<<1, 0x07ff<<1, (0x07ff<<1) | 1, m_dsp56k_core.program_ram); - return ~0; - } - - return address; -} - - /*************************************************************************** MEMORY ACCESSORS ***************************************************************************/ -#define ROPCODE(pc) cpustate->direct->read_decrypted_word(pc) +#define ROPCODE(pc) cpustate->direct->read_word(pc) /*************************************************************************** @@ -255,6 +240,7 @@ void dsp56k_device::device_start() memset(&m_dsp56k_core, 0, sizeof(m_dsp56k_core)); m_dsp56k_core.device = this; + m_dsp56k_core.program_ram = m_program_ram; /* Call specific module inits */ pcu_init(&m_dsp56k_core, this); @@ -292,16 +278,11 @@ void dsp56k_device::device_start() save_item(NAME(m_dsp56k_core.HI.bootstrap_offset)); save_item(NAME(m_dsp56k_core.peripheral_ram)); - save_item(NAME(m_dsp56k_core.program_ram)); m_dsp56k_core.program = &space(AS_PROGRAM); m_dsp56k_core.direct = &m_dsp56k_core.program->direct(); m_dsp56k_core.data = &space(AS_DATA); - /* Setup the direct memory handler for this CPU */ - /* NOTE: Be sure to grab this guy and call him if you ever install another direct_update_hander in a driver! */ - m_dsp56k_core.program->set_direct_update_handler(direct_update_delegate(FUNC(dsp56k_device::dsp56k_direct_handler), this)); - state_add(DSP56K_PC, "PC", m_dsp56k_core.PCU.pc).formatstr("%04X"); state_add(DSP56K_SR, "SR", m_dsp56k_core.PCU.sr).formatstr("%04X"); state_add(DSP56K_LC, "LC", m_dsp56k_core.PCU.lc).formatstr("%04X"); |