summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/z8000/z8000.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/z8000/z8000.cpp')
-rw-r--r--src/devices/cpu/z8000/z8000.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/devices/cpu/z8000/z8000.cpp b/src/devices/cpu/z8000/z8000.cpp
index ad3a740ef30..ef210facf4c 100644
--- a/src/devices/cpu/z8000/z8000.cpp
+++ b/src/devices/cpu/z8000/z8000.cpp
@@ -448,13 +448,13 @@ void z8002_device::Interrupt()
if (m_irq_req & Z8000_NVI)
{
- int type = standard_irq_callback(0);
+ int type = standard_irq_callback(NVI_LINE);
set_irq(type | Z8000_NVI);
}
if (m_irq_req & Z8000_VI)
{
- int type = standard_irq_callback(1);
+ int type = standard_irq_callback(VI_LINE);
set_irq(type | Z8000_VI);
}
@@ -636,6 +636,28 @@ void z8002_device::state_string_export(const device_state_entry &entry, std::str
}
}
+void z8002_device::register_save_state()
+{
+ save_item(NAME(m_op));
+ save_item(NAME(m_ppc));
+ save_item(NAME(m_pc));
+ save_item(NAME(m_psapseg));
+ save_item(NAME(m_psapoff));
+ save_item(NAME(m_fcw));
+ save_item(NAME(m_refresh));
+ save_item(NAME(m_nspseg));
+ save_item(NAME(m_nspoff));
+ save_item(NAME(m_irq_req));
+ save_item(NAME(m_irq_vec));
+ save_item(NAME(m_op_valid));
+ save_item(NAME(m_regs.Q));
+ save_item(NAME(m_nmi_state));
+ save_item(NAME(m_irq_state));
+ save_item(NAME(m_mi));
+ save_item(NAME(m_icount));
+ save_item(NAME(m_vector_mult));
+}
+
void z8002_device::init_tables()
{
/* set up the zero, sign, parity lookup table */
@@ -671,6 +693,7 @@ void z8001_device::device_start()
init_tables();
register_debug_state();
+ register_save_state();
set_icountptr(m_icount);
m_mo_out.resolve_safe();
@@ -694,6 +717,7 @@ void z8002_device::device_start()
init_tables();
register_debug_state();
+ register_save_state();
set_icountptr(m_icount);
m_mo_out.resolve_safe();
@@ -756,7 +780,7 @@ void z8002_device::execute_run()
void z8002_device::execute_set_input(int irqline, int state)
{
- if (irqline == INPUT_LINE_NMI)
+ if (irqline == NMI_LINE)
{
if (m_nmi_state == state)
return;
@@ -772,7 +796,7 @@ void z8002_device::execute_set_input(int irqline, int state)
else if (irqline < 2)
{
m_irq_state[irqline] = state;
- if (irqline == 0)
+ if (irqline == NVI_LINE)
{
if (state == CLEAR_LINE)
{