summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-01-21 15:44:55 -0500
committer AJR <ajrhacker@users.noreply.github.com>2020-01-21 15:44:55 -0500
commitaa2fa1ddb9f588acc327afc3f399786114290a2b (patch)
tree17c34e60cb61ce1f79fed57a75039a5ba9d24a04
parentc5bd7bc71e80097539c22634b70955f6ee618ecb (diff)
gigatron: Add to full build; fix outdated code in CPU device and add some missing stuff (nw)
-rw-r--r--scripts/target/mame/mess.lua2
-rw-r--r--src/devices/cpu/gigatron/gigatron.cpp19
-rw-r--r--src/devices/cpu/gigatron/gigatron.h9
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();
};