summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/hd61700/hd61700.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/hd61700/hd61700.cpp')
-rw-r--r--src/devices/cpu/hd61700/hd61700.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/devices/cpu/hd61700/hd61700.cpp b/src/devices/cpu/hd61700/hd61700.cpp
index cc27d85850f..1c6225a9d79 100644
--- a/src/devices/cpu/hd61700/hd61700.cpp
+++ b/src/devices/cpu/hd61700/hd61700.cpp
@@ -24,6 +24,7 @@
#include "emu.h"
#include "hd61700.h"
+#include "hd61700d.h"
#include "debugger.h"
@@ -296,18 +297,15 @@ void hd61700_cpu_device::state_string_export(const device_state_entry &entry, st
//-------------------------------------------------
-// disasm_disassemble - call the disassembly
+// disassemble - call the disassembly
// helper function
//-------------------------------------------------
-offs_t hd61700_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
+util::disasm_interface *hd61700_cpu_device::create_disassembler()
{
- extern CPU_DISASSEMBLE( hd61700 );
- return CPU_DISASSEMBLE_NAME(hd61700)(this, stream, pc, oprom, opram, options);
+ return new hd61700_disassembler;
}
-
-
//-------------------------------------------------
// check_irqs - check if need interrupts
//-------------------------------------------------
@@ -2756,7 +2754,7 @@ inline uint8_t hd61700_cpu_device::read_op()
if (m_pc <= INT_ROM)
{
- data = m_program->read_word(addr18<<1);
+ data = m_program->read_word(addr18);
if (!(m_fetch_addr&1))
data = (data>>8) ;
@@ -2764,9 +2762,9 @@ inline uint8_t hd61700_cpu_device::read_op()
else
{
if (m_fetch_addr&1)
- data = m_program->read_word((addr18+1)<<1);
+ data = m_program->read_word(addr18 + 1);
else
- data = m_program->read_word((addr18+0)<<1);
+ data = m_program->read_word(addr18 + 0);
}
m_fetch_addr += ((m_pc > INT_ROM) ? 2 : 1);
@@ -2782,12 +2780,12 @@ inline uint8_t hd61700_cpu_device::read_op()
inline uint8_t hd61700_cpu_device::mem_readbyte(uint8_t segment, uint16_t offset)
{
- return m_program->read_word(make_18bit_addr(segment, offset)<<1) & 0xff;
+ return m_program->read_word(make_18bit_addr(segment, offset)) & 0xff;
}
inline void hd61700_cpu_device::mem_writebyte(uint8_t segment, uint16_t offset, uint8_t data)
{
- m_program->write_word(make_18bit_addr(segment, offset)<<1, data);
+ m_program->write_word(make_18bit_addr(segment, offset), data);
}
inline uint32_t hd61700_cpu_device::make_18bit_addr(uint8_t segment, uint16_t offset)