summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/nec/v25.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/nec/v25.h')
-rw-r--r--src/devices/cpu/nec/v25.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/devices/cpu/nec/v25.h b/src/devices/cpu/nec/v25.h
index 4e1abc14683..726f4557e59 100644
--- a/src/devices/cpu/nec/v25.h
+++ b/src/devices/cpu/nec/v25.h
@@ -6,6 +6,7 @@
#pragma once
+#include "necdasm.h"
#define NEC_INPUT_LINE_INTP0 10
#define NEC_INPUT_LINE_INTP1 11
@@ -15,13 +16,15 @@
enum
{
V25_PC=0,
- V25_IP, V25_AW, V25_CW, V25_DW, V25_BW, V25_SP, V25_BP, V25_IX, V25_IY,
- V25_FLAGS, V25_ES, V25_CS, V25_SS, V25_DS,
+ V25_AW, V25_CW, V25_DW, V25_BW, V25_SP, V25_BP, V25_IX, V25_IY,
+ V25_DS1, V25_PS, V25_SS, V25_DS0,
+ V25_AL, V25_AH, V25_CL, V25_CH, V25_DL, V25_DH, V25_BL, V25_BH,
+ V25_PSW,
V25_IDB,
V25_PENDING
};
-class v25_common_device : public cpu_device
+class v25_common_device : public cpu_device, public nec_disassembler::config
{
public:
// configuration helpers
@@ -60,6 +63,7 @@ protected:
// device_memory_interface overrides
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;
// device_state_interface overrides
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
@@ -68,16 +72,21 @@ protected:
// device_disasm_interface overrides
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
+ virtual int get_mode() const override { return 1; }
private:
address_space_config m_program_config;
address_space_config m_data_config;
address_space_config m_io_config;
+ memory_access<20, 0, 0, ENDIANNESS_LITTLE>::cache m_cache8;
+ memory_access<20, 1, 0, ENDIANNESS_LITTLE>::cache m_cache16;
+
/* internal RAM and register banks */
required_shared_ptr<uint16_t> m_internal_ram;
uint16_t m_ip;
+ uint16_t m_prev_ip;
/* PSW flags */
int32_t m_SignVal;
@@ -118,7 +127,7 @@ private:
address_space *m_program;
std::function<u8 (offs_t address)> m_dr8;
- address_space *m_data;
+ memory_access<9, 1, 0, ENDIANNESS_LITTLE>::specific m_data;
address_space *m_io;
int m_icount;