diff options
Diffstat (limited to 'src/devices/cpu/mcs51/mcs51.cpp')
-rw-r--r-- | src/devices/cpu/mcs51/mcs51.cpp | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/src/devices/cpu/mcs51/mcs51.cpp b/src/devices/cpu/mcs51/mcs51.cpp index a76e2bb5ea4..66eb3f50316 100644 --- a/src/devices/cpu/mcs51/mcs51.cpp +++ b/src/devices/cpu/mcs51/mcs51.cpp @@ -418,15 +418,15 @@ device_memory_interface::space_config_vector mcs51_cpu_device::memory_space_conf ***************************************************************************/ /* Read Opcode/Opcode Arguments from Program Code */ -#define ROP(pc) m_cache->read_byte(pc) -#define ROP_ARG(pc) m_cache->read_byte(pc) +#define ROP(pc) m_program.read_byte(pc) +#define ROP_ARG(pc) m_program.read_byte(pc) /* Read a byte from External Code Memory (Usually Program Rom(s) Space) */ -#define CODEMEM_R(a) (uint8_t)m_program->read_byte(a) +#define CODEMEM_R(a) (uint8_t)m_program.read_byte(a) /* Read/Write a byte from/to External Data Memory (Usually RAM or other I/O) */ -#define DATAMEM_R(a) (uint8_t)m_io->read_byte(a) -#define DATAMEM_W(a,v) m_io->write_byte(a, v) +#define DATAMEM_R(a) (uint8_t)m_io.read_byte(a) +#define DATAMEM_W(a,v) m_io.write_byte(a, v) /* Read/Write a byte from/to the Internal RAM */ @@ -435,8 +435,8 @@ device_memory_interface::space_config_vector mcs51_cpu_device::memory_space_conf /* Read/Write a byte from/to the Internal RAM indirectly */ /* (called from indirect addressing) */ -uint8_t mcs51_cpu_device::iram_iread(offs_t a) { return (a <= m_ram_mask) ? m_data->read_byte(a) : 0xff; } -void mcs51_cpu_device::iram_iwrite(offs_t a, uint8_t d) { if (a <= m_ram_mask) m_data->write_byte(a, d); } +uint8_t mcs51_cpu_device::iram_iread(offs_t a) { return (a <= m_ram_mask) ? m_data.read_byte(a) : 0xff; } +void mcs51_cpu_device::iram_iwrite(offs_t a, uint8_t d) { if (a <= m_ram_mask) m_data.write_byte(a, d); } #define IRAM_IR(a) iram_iread(a) #define IRAM_IW(a, d) iram_iwrite(a, d) @@ -829,13 +829,13 @@ offs_t mcs51_cpu_device::external_ram_iaddr(offs_t offset, offs_t mem_mask) uint8_t mcs51_cpu_device::iram_read(size_t offset) { - return (((offset) < 0x80) ? m_data->read_byte(offset) : sfr_read(offset)); + return (((offset) < 0x80) ? m_data.read_byte(offset) : sfr_read(offset)); } void mcs51_cpu_device::iram_write(size_t offset, uint8_t data) { if ((offset) < 0x80) - m_data->write_byte(offset, data); + m_data.write_byte(offset, data); else sfr_write(offset, data); } @@ -2012,7 +2012,7 @@ void mcs51_cpu_device::execute_run() /* Read next opcode */ PPC = PC; debugger_instruction_hook(PC); - op = m_cache->read_byte(PC++); + op = m_program.read_byte(PC++); /* process opcode and count cycles */ m_inst_cycles = mcs51_cycles[op]; @@ -2079,7 +2079,7 @@ void mcs51_cpu_device::sfr_write(size_t offset, uint8_t data) /* no write in this case according to manual */ return; } - m_data->write_byte((size_t)offset | 0x100, data); + m_data.write_byte((size_t)offset | 0x100, data); } uint8_t mcs51_cpu_device::sfr_read(size_t offset) @@ -2114,7 +2114,7 @@ uint8_t mcs51_cpu_device::sfr_read(size_t offset) case ADDR_SBUF: case ADDR_IE: case ADDR_IP: - return m_data->read_byte((size_t) offset | 0x100); + return m_data.read_byte((size_t) offset | 0x100); /* Illegal or non-implemented sfr */ default: LOG(("mcs51 '%s': attemping to read an invalid/non-implemented SFR address: %x at 0x%04x\n", tag(), (uint32_t)offset,PC)); @@ -2126,10 +2126,9 @@ uint8_t mcs51_cpu_device::sfr_read(size_t offset) void mcs51_cpu_device::device_start() { - m_program = &space(AS_PROGRAM); - m_cache = m_program->cache<0, 0, ENDIANNESS_LITTLE>(); - m_data = &space(AS_DATA); - m_io = &space(AS_IO); + space(AS_PROGRAM).cache(m_program); + space(AS_DATA).specific(m_data); + space(AS_IO).specific(m_io); m_port_in_cb.resolve_all_safe(0xff); m_port_out_cb.resolve_all_safe(); @@ -2321,7 +2320,7 @@ void i8052_device::sfr_write(size_t offset, uint8_t data) case ADDR_RCAP2H: case ADDR_TL2: case ADDR_TH2: - m_data->write_byte((size_t) offset | 0x100, data); + m_data.write_byte((size_t) offset | 0x100, data); break; default: @@ -2339,7 +2338,7 @@ uint8_t i8052_device::sfr_read(size_t offset) case ADDR_RCAP2H: case ADDR_TL2: case ADDR_TH2: - return m_data->read_byte((size_t) offset | 0x100); + return m_data.read_byte((size_t) offset | 0x100); default: return mcs51_cpu_device::sfr_read(offset); } @@ -2369,7 +2368,7 @@ void i80c52_device::sfr_write(size_t offset, uint8_t data) i8052_device::sfr_write(offset, data); return; } - m_data->write_byte((size_t) offset | 0x100, data); + m_data.write_byte((size_t) offset | 0x100, data); } uint8_t i80c52_device::sfr_read(size_t offset) @@ -2380,7 +2379,7 @@ uint8_t i80c52_device::sfr_read(size_t offset) case ADDR_IPH: case ADDR_SADDR: case ADDR_SADEN: - return m_data->read_byte((size_t) offset | 0x100); + return m_data.read_byte((size_t) offset | 0x100); default: return i8052_device::sfr_read(offset); } @@ -2434,7 +2433,7 @@ void ds5002fp_device::sfr_write(size_t offset, uint8_t data) mcs51_cpu_device::sfr_write(offset, data); return; } - m_data->write_byte((size_t) offset | 0x100, data); + m_data.write_byte((size_t) offset | 0x100, data); } uint8_t ds5002fp_device::sfr_read(size_t offset) @@ -2455,7 +2454,7 @@ uint8_t ds5002fp_device::sfr_read(size_t offset) default: return mcs51_cpu_device::sfr_read(offset); } - return m_data->read_byte((size_t) offset | 0x100); + return m_data.read_byte((size_t) offset | 0x100); } /* |