diff options
Diffstat (limited to 'src/devices/cpu/nec/v25.h')
-rw-r--r-- | src/devices/cpu/nec/v25.h | 17 |
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; |