diff --git a/src/devices/cpu/z80/t6a84.cpp b/src/devices/cpu/z80/t6a84.cpp index 269a4a0d9b3..a3d2e5d1fb0 100644 --- a/src/devices/cpu/z80/t6a84.cpp +++ b/src/devices/cpu/z80/t6a84.cpp @@ -179,12 +179,12 @@ uint32_t t6a84_device::stack_address(uint16_t address) uint8_t t6a84_device::stack_read(uint16_t addr) { - return m_stack.read_byte(translate_memory_address(addr)); + return m_stack.read_byte(addr); } void t6a84_device::stack_write(uint16_t addr, uint8_t value) { - m_stack.write_byte(translate_memory_address((uint32_t) addr), value); + m_stack.write_byte(addr, value); } uint8_t t6a84_device::data_page_r() diff --git a/src/devices/cpu/z80/z80.cpp b/src/devices/cpu/z80/z80.cpp index 46b3da1485b..9b85d3cfee4 100644 --- a/src/devices/cpu/z80/z80.cpp +++ b/src/devices/cpu/z80/z80.cpp @@ -73,7 +73,7 @@ void z80_device::leave_halt() ***************************************************************/ u8 z80_device::data_read(u16 addr) { - return m_data.read_interruptible(translate_memory_address(addr)); + return m_data.read_interruptible(addr); } /*************************************************************** @@ -81,7 +81,7 @@ u8 z80_device::data_read(u16 addr) ***************************************************************/ void z80_device::data_write(u16 addr, u8 value) { - m_data.write_interruptible(translate_memory_address((u32)addr), value); + m_data.write_interruptible(addr, value); } /*************************************************************** @@ -91,7 +91,7 @@ void z80_device::data_write(u16 addr, u8 value) ***************************************************************/ u8 z80_device::opcode_read() { - return m_opcodes.read_byte(translate_memory_address(PC)); + return m_opcodes.read_byte(PC); } /**************************************************************** @@ -103,7 +103,7 @@ u8 z80_device::opcode_read() ***************************************************************/ u8 z80_device::arg_read() { - return m_args.read_byte(translate_memory_address(PC)); + return m_args.read_byte(PC); } /*************************************************************** @@ -467,14 +467,13 @@ void z80_device::set_f(u8 f) void z80_device::illegal_1() { LOGMASKED(LOG_UNDOC, "ill. opcode $%02x $%02x ($%04x)\n", - m_opcodes.read_byte(translate_memory_address((PC - 1) & 0xffff)), - m_opcodes.read_byte(translate_memory_address(PC)), PC - 1); + m_opcodes.read_byte((PC - 1) & 0xffff), m_opcodes.read_byte(PC), PC - 1); } void z80_device::illegal_2() { LOGMASKED(LOG_UNDOC, "ill. opcode $ed $%02x\n", - m_opcodes.read_byte(translate_memory_address((PC - 1) & 0xffff))); + m_opcodes.read_byte((PC - 1) & 0xffff)); } /**************************************************************************** diff --git a/src/devices/cpu/z80/z80.h b/src/devices/cpu/z80/z80.h index 57751694c7f..0978b03cbbe 100644 --- a/src/devices/cpu/z80/z80.h +++ b/src/devices/cpu/z80/z80.h @@ -66,7 +66,6 @@ protected: // device_memory_interface implementation virtual space_config_vector memory_space_config() const override; - virtual u32 translate_memory_address(u16 address) { return address; } // device_state_interface implementation virtual void state_import(const device_state_entry &entry) override; diff --git a/src/devices/cpu/z80/z84c015.cpp b/src/devices/cpu/z80/z84c015.cpp index 66807a920a6..60108e15c0d 100644 --- a/src/devices/cpu/z80/z84c015.cpp +++ b/src/devices/cpu/z80/z84c015.cpp @@ -9,6 +9,8 @@ #include "emu.h" #include "z84c015.h" +#include "z80.inc" + DEFINE_DEVICE_TYPE(Z84C015, z84c015_device, "z84c015", "Zilog Z84C015") void z84c015_device::internal_io_map(address_map &map) const @@ -60,6 +62,26 @@ u32 z84c015_device::translate_memory_address(u16 addr) ? 0x20000 : 0) | addr; } +u8 z84c015_device::data_read(u16 addr) +{ + return m_data.read_interruptible(translate_memory_address(addr)); +} + +void z84c015_device::data_write(u16 addr, u8 value) +{ + m_data.write_interruptible(translate_memory_address(addr), value); +} + +u8 z84c015_device::opcode_read() +{ + return m_opcodes.read_byte(translate_memory_address(PC)); +} + +u8 z84c015_device::arg_read() +{ + return m_args.read_byte(translate_memory_address(PC)); +} + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- diff --git a/src/devices/cpu/z80/z84c015.h b/src/devices/cpu/z80/z84c015.h index 4443cdfc7cd..0b5261cba34 100644 --- a/src/devices/cpu/z80/z84c015.h +++ b/src/devices/cpu/z80/z84c015.h @@ -40,9 +40,15 @@ protected: void internal_io_map(address_map &map) const; virtual space_config_vector memory_space_config() const override; virtual bool memory_translate(int spacenum, int intention, offs_t &address, address_space *&target_space) override; - virtual u32 translate_memory_address(u16 address) override; + + u8 data_read(u16 addr) override; + void data_write(u16 addr, u8 value) override; + u8 opcode_read() override; + u8 arg_read() override; private: + u32 translate_memory_address(u16 address); + // system control registers u8 m_scrp; u8 m_wcr;