void alpha8201_cpu_device::state_export(const device_state_entry &entry) { switch (entry.index()) { case ALPHA8201_SP: m_sp = M_RDMEM(0x001); break; case ALPHA8201_R0: m_R[0] = RD_REG(0); break; case ALPHA8201_R1: m_R[1] = RD_REG(1); break; case ALPHA8201_R2: m_R[2] = RD_REG(2); break; case ALPHA8201_R3: m_R[3] = RD_REG(3); break; case ALPHA8201_R4: m_R[4] = RD_REG(4); break; case ALPHA8201_R5: m_R[5] = RD_REG(5); break; case ALPHA8201_R6: m_R[6] = RD_REG(6); break; case ALPHA8201_R7: m_R[7] = RD_REG(7); break; } }
void alpha8201_cpu_device::state_import(const device_state_entry &entry) { switch (entry.index()) { case ALPHA8201_SP: M_WRMEM(0x001, m_sp); break; case ALPHA8201_R0: WR_REG(0, m_R[0]); break; case ALPHA8201_R1: WR_REG(1, m_R[1]); break; case ALPHA8201_R2: WR_REG(2, m_R[2]); break; case ALPHA8201_R3: WR_REG(3, m_R[3]); break; case ALPHA8201_R4: WR_REG(4, m_R[4]); break; case ALPHA8201_R5: WR_REG(5, m_R[5]); break; case ALPHA8201_R6: WR_REG(6, m_R[6]); break; case ALPHA8201_R7: WR_REG(7, m_R[7]); break; } }
void pic16c62x_device::state_export(const device_state_entry &entry) { switch (entry.index()) { case PIC16C62x_STR: m_debugger_temp = STATUS; break; case PIC16C62x_TMR0: m_debugger_temp = TMR0; break; case PIC16C62x_PRTA: m_debugger_temp = PORTA & 0x1f; break; case PIC16C62x_PRTB: m_debugger_temp = PORTB; break; case PIC16C62x_FSR: m_debugger_temp = ((FSR) & m_picRAMmask) | (UINT8)(~m_picRAMmask); break; } }
// disasm void melps4_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) { switch (entry.index()) { // obviously not from a single flags register, letters are made up case STATE_GENFLAGS: strprintf(str, "%c%c%c%c%c %c%c%c", m_intp ? 'P':'p', m_inte ? 'I':'i', m_sm ? 'S':'s', m_cps ? 'D':'d', m_cy ? 'C':'c', m_irqflag[0] ? 'X':'.', // exf m_irqflag[1] ? '1':'.', // 1f m_irqflag[2] ? '2':'.' // 2f ); break; default: break; } }
void nec_common_device::state_import(const device_state_entry &entry) { switch (entry.index()) { case NEC_PC: if( m_debugger_temp - (Sreg(PS)<<4) < 0x10000 ) { m_ip = m_debugger_temp - (Sreg(PS)<<4); } else { Sreg(PS) = m_debugger_temp >> 4; m_ip = m_debugger_temp & 0x0000f; } break; case NEC_FLAGS: ExpandFlags(m_debugger_temp); break; } }
void i860_cpu_device::state_export(const device_state_entry &entry) { #define I860_GET_INFO_F(fnum) m_freg[fnum] = m_frg[0+(4*fnum)] | ( m_frg[1+(4*fnum)] << 8 ) | ( m_frg[2+(4*fnum)] << 16 ) | ( m_frg[3+(4*fnum)] << 24) switch (entry.index()) { case I860_F0: I860_GET_INFO_F(0); break; case I860_F1: I860_GET_INFO_F(1); break; case I860_F2: I860_GET_INFO_F(2); break; case I860_F3: I860_GET_INFO_F(3); break; case I860_F4: I860_GET_INFO_F(4); break; case I860_F5: I860_GET_INFO_F(5); break; case I860_F6: I860_GET_INFO_F(6); break; case I860_F7: I860_GET_INFO_F(7); break; case I860_F8: I860_GET_INFO_F(8); break; case I860_F9: I860_GET_INFO_F(9); break; case I860_F10: I860_GET_INFO_F(10); break; case I860_F11: I860_GET_INFO_F(11); break; case I860_F12: I860_GET_INFO_F(12); break; case I860_F13: I860_GET_INFO_F(13); break; case I860_F14: I860_GET_INFO_F(14); break; case I860_F15: I860_GET_INFO_F(15); break; case I860_F16: I860_GET_INFO_F(16); break; case I860_F17: I860_GET_INFO_F(17); break; case I860_F18: I860_GET_INFO_F(18); break; case I860_F19: I860_GET_INFO_F(19); break; case I860_F20: I860_GET_INFO_F(20); break; case I860_F21: I860_GET_INFO_F(21); break; case I860_F22: I860_GET_INFO_F(22); break; case I860_F23: I860_GET_INFO_F(23); break; case I860_F24: I860_GET_INFO_F(24); break; case I860_F25: I860_GET_INFO_F(25); break; case I860_F26: I860_GET_INFO_F(26); break; case I860_F27: I860_GET_INFO_F(27); break; case I860_F28: I860_GET_INFO_F(28); break; case I860_F29: I860_GET_INFO_F(29); break; case I860_F30: I860_GET_INFO_F(30); break; case I860_F31: I860_GET_INFO_F(31); break; } }
void minx_cpu_device::state_string_export(const device_state_entry &entry, astring &string) { switch (entry.index()) { case STATE_GENFLAGS: string.printf( "%c%c%c%c%c%c%c%c-%c%c%c%c%c", m_F & FLAG_I ? 'I' : '.', m_F & FLAG_D ? 'D' : '.', m_F & FLAG_L ? 'L' : '.', m_F & FLAG_B ? 'B' : '.', m_F & FLAG_S ? 'S' : '.', m_F & FLAG_O ? 'O' : '.', m_F & FLAG_C ? 'C' : '.', m_F & FLAG_Z ? 'Z' : '.', m_E & EXEC_X0 ? '0' : '.', m_E & EXEC_X1 ? '1' : '.', m_E & EXEC_X2 ? '2' : '.', m_E & EXEC_DZ ? 'z' : '.', m_E & EXEC_EN ? 'E' : '.' ); break; } }
void pic16c62x_device::state_string_export(const device_state_entry &entry, std::string &str) { switch (entry.index()) { case PIC16C62x_PSCL: strprintf(str, "%c%02X", ((m_OPTION & 0x08) ? 'W' : 'T'), m_prescaler); break; case STATE_GENFLAGS: strprintf(str, "%01x%c%c%c%c%c %c%c%c%03x", (STATUS & 0xe0) >> 5, STATUS & 0x10 ? '.':'O', /* WDT Overflow */ STATUS & 0x08 ? 'P':'D', /* Power/Down */ STATUS & 0x04 ? 'Z':'.', /* Zero */ STATUS & 0x02 ? 'c':'b', /* Nibble Carry/Borrow */ STATUS & 0x01 ? 'C':'B', /* Carry/Borrow */ m_OPTION & 0x20 ? 'C':'T', /* Counter/Timer */ m_OPTION & 0x10 ? 'N':'P', /* Negative/Positive */ m_OPTION & 0x08 ? 'W':'T', /* WatchDog/Timer */ m_OPTION & 0x08 ? (1<<(m_OPTION&7)) : (2<<(m_OPTION&7)) ); break; } }
void pic16c62x_device::state_import(const device_state_entry &entry) { switch (entry.index()) { case PIC16C62x_STR: STATUS = m_debugger_temp; break; case PIC16C62x_TMR0: TMR0 = m_debugger_temp; break; case PIC16C62x_PRTA: PORTA = m_debugger_temp; break; case PIC16C62x_PRTB: PORTB = m_debugger_temp; break; case PIC16C62x_FSR: FSR = ((m_debugger_temp & m_picRAMmask) | (UINT8)(~m_picRAMmask)); break; case PIC16C62x_PSCL: m_prescaler = m_debugger_temp; break; } }
void dsp32c_device::state_string_export(const device_state_entry &entry, astring &string) { switch (entry.index()) { case STATE_GENFLAGS: string.printf("%c%c%c%c%c%c%c%c", NFLAG ? 'N':'.', ZFLAG ? 'Z':'.', UFLAG ? 'U':'.', VFLAG ? 'V':'.', nFLAG ? 'n':'.', zFLAG ? 'z':'.', cFLAG ? 'c':'.', vFLAG ? 'v':'.'); break; case DSP32_A0: case DSP32_A1: case DSP32_A2: case DSP32_A3: string.printf("%8g", *(double *)entry.dataptr()); break; } }
void dsp32c_device::state_export(const device_state_entry &entry) { switch (entry.index()) { case STATE_GENFLAGS: // no actual flags register, so just make something up m_iotemp = ((zFLAG != 0) << 0) | ((nFLAG != 0) << 1) | ((cFLAG != 0) << 2) | ((vFLAG != 0) << 3) | ((ZFLAG != 0) << 4) | ((NFLAG != 0) << 5) | ((UFLAG != 0) << 6) | ((VFLAG != 0) << 7); break; case DSP32_PCR: m_iotemp = m_pcr; break; default: fatalerror("dsp32c_device::state_export called for unexpected value\n"); } }
void mcs96_device::state_string_export(const device_state_entry &entry, std::string &str) const { switch(entry.index()) { case STATE_GENFLAGS: case MCS96_PSW: str = string_format("%c%c%c%c%c%c%c %c%c%c%c%c%c%c%c", PSW & F_Z ? 'Z' : '.', PSW & F_N ? 'N' : '.', PSW & F_V ? 'V' : '.', PSW & F_VT ? 'v' : '.', PSW & F_C ? 'C' : '.', PSW & F_I ? 'I' : '.', PSW & F_ST ? 'S' : '.', PSW & 0x80 ? '7' : '.', PSW & 0x40 ? '6' : '.', PSW & 0x20 ? '5' : '.', PSW & 0x10 ? '4' : '.', PSW & 0x08 ? '3' : '.', PSW & 0x04 ? '2' : '.', PSW & 0x02 ? '1' : '.', PSW & 0x01 ? '0' : '.'); break; } }
void dsp32c_device::state_export(const device_state_entry &entry) { switch (entry.index()) { case STATE_GENFLAGS: // no actual flags register, so just make something up m_iotemp = (zFLAG ? 0x01 : 0) | (nFLAG ? 0x02 : 0) | (cFLAG ? 0x04 : 0) | (vFLAG ? 0x08 : 0) | (ZFLAG ? 0x10 : 0) | (NFLAG ? 0x20 : 0) | (UFLAG ? 0x40 : 0) | (VFLAG ? 0x80 : 0); break; case DSP32_PCR: m_iotemp = m_pcr; break; default: fatalerror("dsp32c_device::state_export called for unexpected value\n"); } }
void dsp16_device::state_string_export(const device_state_entry &entry, astring &string) { switch (entry.index()) { case STATE_GENFLAGS: string.printf("(below)"); break; case DSP16_AUC: { astring alignString; const UINT8 align = m_auc & 0x03; switch (align) { case 0x00: alignString.printf("xy"); break; case 0x01: alignString.printf("/4"); break; case 0x02: alignString.printf("x4"); break; case 0x03: alignString.printf(",,"); break; } string.printf("%c%c%c%c%c%s", m_auc & 0x40 ? 'Y':'.', m_auc & 0x20 ? '1':'.', m_auc & 0x10 ? '0':'.', m_auc & 0x08 ? '1':'.', m_auc & 0x04 ? '0':'.', alignString.cstr()); break; } case DSP16_PSW: string.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", m_psw & 0x8000 ? 'M':'.', m_psw & 0x4000 ? 'E':'.', m_psw & 0x2000 ? 'L':'.', m_psw & 0x1000 ? 'V':'.', m_psw & 0x0800 ? ',':',', m_psw & 0x0400 ? ',':',', m_psw & 0x0200 ? 'O':'.', m_psw & 0x0100 ? '1':'.', m_psw & 0x0080 ? '1':'.', m_psw & 0x0040 ? '1':'.', m_psw & 0x0020 ? '1':'.', m_psw & 0x0010 ? 'O':'.', m_psw & 0x0008 ? '1':'.', m_psw & 0x0004 ? '1':'.', m_psw & 0x0002 ? '1':'.', m_psw & 0x0001 ? '1':'.'); break; case DSP16_PIOC: { astring strobeString; const UINT8 strobe = (m_pioc & 0x6000) >> 13; switch (strobe) { case 0x00: strobeString.printf("1T"); break; case 0x01: strobeString.printf("2T"); break; case 0x02: strobeString.printf("3T"); break; case 0x03: strobeString.printf("4T"); break; } string.printf("%c%s%c%c%c%c%c%c%c%c%c%c%c%c%c", m_pioc & 0x8000 ? 'I':'.', strobeString.cstr(), m_pioc & 0x1000 ? 'O':'I', m_pioc & 0x0800 ? 'O':'I', m_pioc & 0x0400 ? 'S':'.', m_pioc & 0x0200 ? 'I':'.', m_pioc & 0x0100 ? 'O':'.', m_pioc & 0x0080 ? 'P':'.', m_pioc & 0x0040 ? 'P':'.', m_pioc & 0x0020 ? 'I':'.', m_pioc & 0x0010 ? 'I':'.', m_pioc & 0x0008 ? 'O':'.', m_pioc & 0x0004 ? 'P':'.', m_pioc & 0x0002 ? 'P':'.', m_pioc & 0x0001 ? 'I':'.'); break; } // Placeholder for a better view later (TODO) case DSP16_SIOC: { astring clkString; const UINT8 clk = (m_sioc & 0x0180) >> 7; switch (clk) { case 0x00: clkString.printf("/4"); break; case 0x01: clkString.printf("12"); break; case 0x02: clkString.printf("16"); break; case 0x03: clkString.printf("20"); break; } string.printf("%c%s%c%c%c%c%c%c%c", m_sioc & 0x0200 ? 'I':'O', clkString.cstr(), m_sioc & 0x0040 ? 'L':'M', m_sioc & 0x0020 ? 'I':'O', m_sioc & 0x0010 ? 'I':'O', m_sioc & 0x0008 ? 'I':'O', m_sioc & 0x0004 ? 'I':'O', m_sioc & 0x0002 ? '2':'1', m_sioc & 0x0001 ? '2':'1'); break; } } }
void hcd62121_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) { switch (entry.index()) { case STATE_GENPC: strprintf(str, "%06X", (m_cseg << 16) | m_ip); break; case STATE_GENFLAGS: strprintf(str, "%s-%s-%s-%c-%c", m_f & _FLAG_ZH ? "ZH":"__", m_f & _FLAG_CL ? "CL":"__", m_f & _FLAG_ZL ? "ZL":"__", m_f & _FLAG_C ? 'C':'_', m_f & _FLAG_Z ? 'Z':'_' ); break; case HCD62121_R00: strprintf(str, "%02X%02X%02X%02X", m_reg[0x00], m_reg[0x01], m_reg[0x02], m_reg[0x03]); break; case HCD62121_R04: strprintf(str, "%02X%02X%02X%02X", m_reg[0x04], m_reg[0x05], m_reg[0x06], m_reg[0x07]); break; case HCD62121_R08: strprintf(str, "%02X%02X%02X%02X", m_reg[0x08], m_reg[0x09], m_reg[0x0A], m_reg[0x0B]); break; case HCD62121_R0C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x0C], m_reg[0x0D], m_reg[0x0E], m_reg[0x0F]); break; case HCD62121_R10: strprintf(str, "%02X%02X%02X%02X", m_reg[0x10], m_reg[0x11], m_reg[0x12], m_reg[0x13]); break; case HCD62121_R14: strprintf(str, "%02X%02X%02X%02X", m_reg[0x14], m_reg[0x15], m_reg[0x16], m_reg[0x17]); break; case HCD62121_R18: strprintf(str, "%02X%02X%02X%02X", m_reg[0x18], m_reg[0x19], m_reg[0x1A], m_reg[0x1B]); break; case HCD62121_R1C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x1C], m_reg[0x1D], m_reg[0x1E], m_reg[0x1F]); break; case HCD62121_R20: strprintf(str, "%02X%02X%02X%02X", m_reg[0x20], m_reg[0x21], m_reg[0x22], m_reg[0x23]); break; case HCD62121_R24: strprintf(str, "%02X%02X%02X%02X", m_reg[0x24], m_reg[0x25], m_reg[0x26], m_reg[0x27]); break; case HCD62121_R28: strprintf(str, "%02X%02X%02X%02X", m_reg[0x28], m_reg[0x29], m_reg[0x2A], m_reg[0x2B]); break; case HCD62121_R2C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x2C], m_reg[0x2D], m_reg[0x2E], m_reg[0x2F]); break; case HCD62121_R30: strprintf(str, "%02X%02X%02X%02X", m_reg[0x30], m_reg[0x31], m_reg[0x32], m_reg[0x33]); break; case HCD62121_R34: strprintf(str, "%02X%02X%02X%02X", m_reg[0x34], m_reg[0x35], m_reg[0x36], m_reg[0x37]); break; case HCD62121_R38: strprintf(str, "%02X%02X%02X%02X", m_reg[0x38], m_reg[0x39], m_reg[0x3A], m_reg[0x3B]); break; case HCD62121_R3C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x3C], m_reg[0x3D], m_reg[0x3E], m_reg[0x3F]); break; case HCD62121_R40: strprintf(str, "%02X%02X%02X%02X", m_reg[0x40], m_reg[0x41], m_reg[0x42], m_reg[0x43]); break; case HCD62121_R44: strprintf(str, "%02X%02X%02X%02X", m_reg[0x44], m_reg[0x45], m_reg[0x46], m_reg[0x47]); break; case HCD62121_R48: strprintf(str, "%02X%02X%02X%02X", m_reg[0x48], m_reg[0x49], m_reg[0x4A], m_reg[0x4B]); break; case HCD62121_R4C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x4C], m_reg[0x4D], m_reg[0x4E], m_reg[0x4F]); break; case HCD62121_R50: strprintf(str, "%02X%02X%02X%02X", m_reg[0x50], m_reg[0x51], m_reg[0x52], m_reg[0x53]); break; case HCD62121_R54: strprintf(str, "%02X%02X%02X%02X", m_reg[0x54], m_reg[0x55], m_reg[0x56], m_reg[0x57]); break; case HCD62121_R58: strprintf(str, "%02X%02X%02X%02X", m_reg[0x58], m_reg[0x59], m_reg[0x5A], m_reg[0x5B]); break; case HCD62121_R5C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x5C], m_reg[0x5D], m_reg[0x5E], m_reg[0x5F]); break; case HCD62121_R60: strprintf(str, "%02X%02X%02X%02X", m_reg[0x60], m_reg[0x61], m_reg[0x62], m_reg[0x63]); break; case HCD62121_R64: strprintf(str, "%02X%02X%02X%02X", m_reg[0x64], m_reg[0x65], m_reg[0x66], m_reg[0x67]); break; case HCD62121_R68: strprintf(str, "%02X%02X%02X%02X", m_reg[0x68], m_reg[0x69], m_reg[0x6A], m_reg[0x6B]); break; case HCD62121_R6C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x6C], m_reg[0x6D], m_reg[0x6E], m_reg[0x6F]); break; case HCD62121_R70: strprintf(str, "%02X%02X%02X%02X", m_reg[0x70], m_reg[0x71], m_reg[0x72], m_reg[0x73]); break; case HCD62121_R74: strprintf(str, "%02X%02X%02X%02X", m_reg[0x74], m_reg[0x75], m_reg[0x76], m_reg[0x77]); break; case HCD62121_R78: strprintf(str, "%02X%02X%02X%02X", m_reg[0x78], m_reg[0x79], m_reg[0x7A], m_reg[0x7B]); break; case HCD62121_R7C: strprintf(str, "%02X%02X%02X%02X", m_reg[0x7C], m_reg[0x7D], m_reg[0x7E], m_reg[0x7F]); break; } }
void dsp16_device::state_string_export(const device_state_entry &entry, std::string &str) const { switch (entry.index()) { case STATE_GENFLAGS: str = "(below)"; break; case DSP16_AUC: { std::string alignString; const uint8_t align = m_auc & 0x03; switch (align) { case 0x00: alignString = "xy"; break; case 0x01: alignString = "/4"; break; case 0x02: alignString = "x4"; break; case 0x03: alignString = ",,"; break; } str = string_format("%c%c%c%c%c%s", m_auc & 0x40 ? 'Y':'.', m_auc & 0x20 ? '1':'.', m_auc & 0x10 ? '0':'.', m_auc & 0x08 ? '1':'.', m_auc & 0x04 ? '0':'.', alignString); } break; case DSP16_PSW: str = string_format("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", m_psw & 0x8000 ? 'M':'.', m_psw & 0x4000 ? 'E':'.', m_psw & 0x2000 ? 'L':'.', m_psw & 0x1000 ? 'V':'.', m_psw & 0x0800 ? ',':',', m_psw & 0x0400 ? ',':',', m_psw & 0x0200 ? 'O':'.', m_psw & 0x0100 ? '1':'.', m_psw & 0x0080 ? '1':'.', m_psw & 0x0040 ? '1':'.', m_psw & 0x0020 ? '1':'.', m_psw & 0x0010 ? 'O':'.', m_psw & 0x0008 ? '1':'.', m_psw & 0x0004 ? '1':'.', m_psw & 0x0002 ? '1':'.', m_psw & 0x0001 ? '1':'.'); break; case DSP16_PIOC: { std::string strobeString; const uint8_t strobe = (m_pioc & 0x6000) >> 13; switch (strobe) { case 0x00: strobeString = "1T"; break; case 0x01: strobeString = "2T"; break; case 0x02: strobeString = "3T"; break; case 0x03: strobeString = "4T"; break; } str = string_format("%c%s%c%c%c%c%c%c%c%c%c%c%c%c%c", m_pioc & 0x8000 ? 'I':'.', strobeString, m_pioc & 0x1000 ? 'O':'I', m_pioc & 0x0800 ? 'O':'I', m_pioc & 0x0400 ? 'S':'.', m_pioc & 0x0200 ? 'I':'.', m_pioc & 0x0100 ? 'O':'.', m_pioc & 0x0080 ? 'P':'.', m_pioc & 0x0040 ? 'P':'.', m_pioc & 0x0020 ? 'I':'.', m_pioc & 0x0010 ? 'I':'.', m_pioc & 0x0008 ? 'O':'.', m_pioc & 0x0004 ? 'P':'.', m_pioc & 0x0002 ? 'P':'.', m_pioc & 0x0001 ? 'I':'.'); } break; // Placeholder for a better view later (TODO) case DSP16_SIOC: { std::string clkString; const uint8_t clk = (m_sioc & 0x0180) >> 7; switch (clk) { case 0x00: clkString = "/4"; break; case 0x01: clkString = "12"; break; case 0x02: clkString = "16"; break; case 0x03: clkString = "20"; break; } str = string_format("%c%s%c%c%c%c%c%c%c", m_sioc & 0x0200 ? 'I':'O', clkString, m_sioc & 0x0040 ? 'L':'M', m_sioc & 0x0020 ? 'I':'O', m_sioc & 0x0010 ? 'I':'O', m_sioc & 0x0008 ? 'I':'O', m_sioc & 0x0004 ? 'I':'O', m_sioc & 0x0002 ? '2':'1', m_sioc & 0x0001 ? '2':'1'); } break; } }