diff options
-rw-r--r-- | scripts/target/mame/mess.lua | 2 | ||||
-rw-r--r-- | src/devices/cpu/gigatron/gigatron.cpp | 19 | ||||
-rw-r--r-- | src/devices/cpu/gigatron/gigatron.h | 9 |
3 files changed, 24 insertions, 6 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index d0a774aaeb2..86220fa754d 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -153,6 +153,7 @@ CPUS["VT61"] = true CPUS["PACE"] = true CPUS["WE32000"] = true CPUS["RX01"] = true +CPUS["GTRON"] = true -------------------------------------------------- -- specify available sound cores; some of these are @@ -4127,6 +4128,7 @@ files { MAME_DIR .. "src/mame/drivers/fs3216.cpp", MAME_DIR .. "src/mame/drivers/ft68m.cpp", MAME_DIR .. "src/mame/drivers/gameking.cpp", + MAME_DIR .. "src/mame/drivers/gigatron.cpp", MAME_DIR .. "src/mame/drivers/gimix.cpp", MAME_DIR .. "src/mame/drivers/goupil.cpp", MAME_DIR .. "src/mame/drivers/grfd2301.cpp", diff --git a/src/devices/cpu/gigatron/gigatron.cpp b/src/devices/cpu/gigatron/gigatron.cpp index 4eb9e3c9858..4a56be8ef41 100644 --- a/src/devices/cpu/gigatron/gigatron.cpp +++ b/src/devices/cpu/gigatron/gigatron.cpp @@ -8,7 +8,7 @@ #include "emu.h" #include "gigatron.h" -#include "debugger.h" +#include "gigatrondasm.h" DEFINE_DEVICE_TYPE(GTRON, gigatron_cpu_device, "gigatron", "GTRON") @@ -44,7 +44,7 @@ void gigatron_cpu_device::execute_run() do { - debugger_instruction_hook(this, m_pc); + debugger_instruction_hook(m_pc); opcode = gigatron_readop(m_pc); m_pc++; @@ -74,7 +74,7 @@ void gigatron_cpu_device::device_start() state_add( STATE_GENPCBASE, "CURPC", m_r[7] ).noshow(); state_add( STATE_GENFLAGS, "GENFLAGS", m_flags ).noshow(); - m_icountptr = &m_icount; + set_icountptr(m_icount); } #if 0 @@ -123,7 +123,16 @@ void gigatron_cpu_device::state_string_export(const device_state_entry &entry, s } -offs_t gigatron_cpu_device::disassemble(char *buffer, offs_t pc, const uint32_t *oprom, const uint32_t *opram, uint32_t options) +std::unique_ptr<util::disasm_interface> gigatron_cpu_device::create_disassembler() { - return CPU_DISASSEMBLE_NAME(gigatron)(this, buffer, pc, opcodes, params, options); + return std::make_unique<gigatron_disassembler>(); +} + + +device_memory_interface::space_config_vector gigatron_cpu_device::memory_space_config() const +{ + return space_config_vector { + std::make_pair(AS_PROGRAM, &m_program_config), + std::make_pair(AS_DATA, &m_data_config) + }; } diff --git a/src/devices/cpu/gigatron/gigatron.h b/src/devices/cpu/gigatron/gigatron.h index 4f4b73da26c..27099efa572 100644 --- a/src/devices/cpu/gigatron/gigatron.h +++ b/src/devices/cpu/gigatron/gigatron.h @@ -39,9 +39,15 @@ protected: // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; + // device_disasm_interface overrides + virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; + + // device_memory_interface overrides + virtual space_config_vector memory_space_config() const override; private: address_space_config m_program_config; + address_space_config m_data_config; uint8_t m_pc; /* registers */ uint8_t m_flags; /* flags */ @@ -49,8 +55,9 @@ private: address_space *m_data; int m_icount; - void gigatron_illegal(); + uint32_t m_r[8]; + void gigatron_illegal(); }; |