summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/scudsp/scudsp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/scudsp/scudsp.cpp')
-rw-r--r--src/devices/cpu/scudsp/scudsp.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/devices/cpu/scudsp/scudsp.cpp b/src/devices/cpu/scudsp/scudsp.cpp
index e9a55e3df0f..b61c4aedf6d 100644
--- a/src/devices/cpu/scudsp/scudsp.cpp
+++ b/src/devices/cpu/scudsp/scudsp.cpp
@@ -92,6 +92,7 @@
#include "emu.h"
#include "scudsp.h"
+#include "scudspdasm.h"
#include "debugger.h"
@@ -124,10 +125,10 @@ DEFINE_DEVICE_TYPE(SCUDSP, scudsp_cpu_device, "scudsp", "Sega SCUDSP")
#define FLAGS_MASK 0x06ff8000
#define INSTA_DMA 1
-#define scudsp_readop(A) m_program->read_dword(A << 2)
-#define scudsp_writeop(A, B) m_program->write_dword(A << 2, B)
-#define scudsp_readmem(A,MD) m_data->read_dword((A | (MD << 6)) << 2)
-#define scudsp_writemem(A,MD,B) m_data->write_dword((A | (MD << 6)) << 2, B)
+#define scudsp_readop(A) m_program->read_dword(A)
+#define scudsp_writeop(A, B) m_program->write_dword(A, B)
+#define scudsp_readmem(A,MD) m_data->read_dword(A | (MD << 6))
+#define scudsp_writemem(A,MD,B) m_data->write_dword(A | (MD << 6), B)
uint32_t scudsp_cpu_device::scudsp_get_source_mem_reg_value( uint32_t mode )
{
@@ -1009,13 +1010,21 @@ void scudsp_cpu_device::execute_set_input(int irqline, int state)
}
}
+static ADDRESS_MAP_START( program_map, AS_PROGRAM, 32, scudsp_cpu_device )
+ AM_RANGE(0x00, 0xff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( data_map, AS_DATA, 32, scudsp_cpu_device )
+ AM_RANGE(0x00, 0xff) AM_RAM
+ADDRESS_MAP_END
+
scudsp_cpu_device::scudsp_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: cpu_device(mconfig, SCUDSP, tag, owner, clock)
, m_out_irq_cb(*this)
, m_in_dma_cb(*this)
, m_out_dma_cb(*this)
- , m_program_config("program", ENDIANNESS_BIG, 32, 8, -2)
- , m_data_config("data", ENDIANNESS_BIG, 32, 8, -2)
+ , m_program_config("program", ENDIANNESS_BIG, 32, 8, -2, ADDRESS_MAP_NAME(program_map))
+ , m_data_config("data", ENDIANNESS_BIG, 32, 8, -2, ADDRESS_MAP_NAME(data_map))
{
}
@@ -1042,8 +1051,7 @@ void scudsp_cpu_device::state_string_export(const device_state_entry &entry, std
}
-offs_t scudsp_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
+util::disasm_interface *scudsp_cpu_device::create_disassembler()
{
- extern CPU_DISASSEMBLE( scudsp );
- return CPU_DISASSEMBLE_NAME(scudsp)(this, stream, pc, oprom, opram, options);
+ return new scudsp_disassembler;
}