// device-level overrides protected override void device_start() { m_dimemory = GetClassInterface <device_memory_interface_m6800>(); m_diexec = GetClassInterface <device_execute_interface_m6800>(); m_distate = GetClassInterface <device_state_interface_m6800>(); m_program = m_dimemory.space(AS_PROGRAM); m_cache = m_program.cache(0, 0, (int)endianness_t.ENDIANNESS_BIG); m_opcodes = m_dimemory.has_space(AS_OPCODES) ? m_dimemory.space(AS_OPCODES) : m_program; m_opcodes_cache = m_opcodes.cache(0, 0, (int)endianness_t.ENDIANNESS_BIG); m_pc.d = 0; m_s.d = 0; m_x.d = 0; m_d.d = 0; m_cc = 0; m_wai_state = 0; m_irq_state[0] = 0; m_irq_state[1] = 0; m_irq_state[2] = 0; save_item(m_ppc.w.l, "m_ppc.w.l"); save_item(m_pc.w.l, "m_pc.w.l"); save_item(m_s.w.l, "m_s.w.l"); save_item(m_x.w.l, "m_x.w.l"); save_item(m_d.w.l, "m_d.w.l"); save_item(m_cc, "m_cc"); save_item(m_wai_state, "m_wai_state"); save_item(m_nmi_state, "m_nmi_state"); save_item(m_nmi_pending, "m_nmi_pending"); save_item(m_irq_state, "m_irq_state"); m_distate.state_add(M6800_A, "A", m_d.b.h).formatstr("%02X"); m_distate.state_add(M6800_B, "B", m_d.b.l).formatstr("%02X"); m_distate.state_add(M6800_PC, "PC", m_pc.w.l).formatstr("%04X"); m_distate.state_add(M6800_S, "S", m_s.w.l).formatstr("%04X"); m_distate.state_add(M6800_X, "X", m_x.w.l).formatstr("%04X"); m_distate.state_add(M6800_CC, "CC", m_cc).formatstr("%02X"); m_distate.state_add(M6800_WAI_STATE, "WAI", m_wai_state).formatstr("%01X"); m_distate.state_add(STATE_GENPC, "GENPC", m_pc.w.l).noshow(); m_distate.state_add(STATE_GENPCBASE, "CURPC", m_pc.w.l).noshow(); m_distate.state_add(STATE_GENFLAGS, "GENFLAGS", m_cc).formatstr("%8s").noshow(); set_icountptr(m_icountRef); }
// device-level overrides protected override void device_start() { m_dimemory.space(AS_PROGRAM).cache(m_cprogram); m_dimemory.space(m_dimemory.has_space(AS_OPCODES) ? AS_OPCODES : AS_PROGRAM).cache(m_copcodes); m_dimemory.space(AS_PROGRAM).specific(m_program); m_pc.d = 0; m_s.d = 0; m_x.d = 0; m_d.d = 0; m_cc = 0; m_wai_state = 0; m_irq_state[0] = 0; m_irq_state[1] = 0; m_irq_state[2] = 0; save_item(NAME(new { m_ppc.w.l })); save_item(NAME(new { m_pc.w.l })); save_item(NAME(new { m_s.w.l })); save_item(NAME(new { m_x.w.l })); save_item(NAME(new { m_d.w.l })); save_item(NAME(new { m_cc })); save_item(NAME(new { m_wai_state })); save_item(NAME(new { m_nmi_state })); save_item(NAME(new { m_nmi_pending })); save_item(NAME(new { m_irq_state })); m_distate.state_add(M6800_A, "A", m_d.b.h).formatstr("%02X"); m_distate.state_add(M6800_B, "B", m_d.b.l).formatstr("%02X"); m_distate.state_add(M6800_PC, "PC", m_pc.w.l).formatstr("%04X"); m_distate.state_add(M6800_S, "S", m_s.w.l).formatstr("%04X"); m_distate.state_add(M6800_X, "X", m_x.w.l).formatstr("%04X"); m_distate.state_add(M6800_CC, "CC", m_cc).formatstr("%02X"); m_distate.state_add(M6800_WAI_STATE, "WAI", m_wai_state).formatstr("%01X"); m_distate.state_add(STATE_GENPC, "GENPC", m_pc.w.l).noshow(); m_distate.state_add(STATE_GENPCBASE, "CURPC", m_pc.w.l).noshow(); m_distate.state_add(STATE_GENFLAGS, "GENFLAGS", m_cc).formatstr("%8s").noshow(); set_icountptr(m_icount); }