ADDRESS_MAP_END // disasm offs_t sm511_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE(sm511); return CPU_DISASSEMBLE_NAME(sm511)(this, stream, pc, oprom, opram, options); }
ADDRESS_MAP_END // disasm offs_t sm511_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE(sm511); return CPU_DISASSEMBLE_NAME(sm511)(this, buffer, pc, oprom, opram, options); }
offs_t z8002_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE( z8000 ); return CPU_DISASSEMBLE_NAME(z8000)(this, buffer, pc, oprom, opram, options); }
offs_t lr35902_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE( lr35902 ); return CPU_DISASSEMBLE_NAME( lr35902 )(NULL, buffer, pc, oprom, opram, 0); }
CPU_DISASSEMBLE( upi41 ); CPU_DISASSEMBLE( v60 ); CPU_DISASSEMBLE( v70 ); CPU_DISASSEMBLE( v810 ); CPU_DISASSEMBLE( x86_16 ); CPU_DISASSEMBLE( x86_32 ); CPU_DISASSEMBLE( x86_64 ); CPU_DISASSEMBLE( z180 ); CPU_DISASSEMBLE( z8 ); CPU_DISASSEMBLE( z80 ); CPU_DISASSEMBLE( z8000 ); static const dasm_table_entry dasm_table[] = { { "8x300", _16be, 0, CPU_DISASSEMBLE_NAME(n8x300) }, { "adsp21xx", _24le, -2, CPU_DISASSEMBLE_NAME(adsp21xx) }, { "alpha8201", _8bit, 0, CPU_DISASSEMBLE_NAME(alpha8201) }, { "am29000", _32be, 0, CPU_DISASSEMBLE_NAME(am29000) }, { "amis2000", _8bit, 0, CPU_DISASSEMBLE_NAME(amis2000) }, { "apexc", _32be, 0, CPU_DISASSEMBLE_NAME(apexc) }, { "arm", _32le, 0, CPU_DISASSEMBLE_NAME(arm) }, { "arm_be", _32be, 0, CPU_DISASSEMBLE_NAME(arm_be) }, { "arm7", _32le, 0, CPU_DISASSEMBLE_NAME(arm7arm) }, { "arm7_be", _32be, 0, CPU_DISASSEMBLE_NAME(arm7arm_be) }, { "arm7thumb", _16le, 0, CPU_DISASSEMBLE_NAME(arm7thumb) }, { "arm7thumbb", _16be, 0, CPU_DISASSEMBLE_NAME(arm7thumb_be) }, { "asap", _32le, 0, CPU_DISASSEMBLE_NAME(asap) }, { "avr8", _16le, 0, CPU_DISASSEMBLE_NAME(avr8) }, { "ccpu", _8bit, 0, CPU_DISASSEMBLE_NAME(ccpu) }, { "cdp1801", _8bit, 0, CPU_DISASSEMBLE_NAME(cdp1801) },
// disasm offs_t m58846_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE(m58846); return CPU_DISASSEMBLE_NAME(m58846)(this, stream, pc, oprom, opram, options); }
offs_t amis2000_base_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) { extern CPU_DISASSEMBLE(amis2000); return CPU_DISASSEMBLE_NAME(amis2000)(this, stream, pc, oprom, opram, options); }
offs_t m6805_base_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE( m6805 ); return CPU_DISASSEMBLE_NAME(m6805)(this, buffer, pc, oprom, opram, options); }
CPU_DISASSEMBLE( upd7810 ); CPU_DISASSEMBLE( upd7807 ); CPU_DISASSEMBLE( upd7801 ); CPU_DISASSEMBLE( upd78c05 ); CPU_DISASSEMBLE( v60 ); CPU_DISASSEMBLE( v70 ); CPU_DISASSEMBLE( v810 ); CPU_DISASSEMBLE( z180 ); CPU_DISASSEMBLE( z8000 ); CPU_DISASSEMBLE( z80 ); CPU_DISASSEMBLE( z8 ); static const dasm_table_entry dasm_table[] = { { "adsp21xx", _24le, -2, CPU_DISASSEMBLE_NAME(adsp21xx) }, { "alpha8201", _8bit, 0, CPU_DISASSEMBLE_NAME(alpha8201) }, { "arm", _32le, 0, CPU_DISASSEMBLE_NAME(arm) }, { "arm7", _32le, 0, CPU_DISASSEMBLE_NAME(arm7arm) }, { "arm7thumb", _16le, 0, CPU_DISASSEMBLE_NAME(arm7thumb) }, { "asap", _32le, 0, CPU_DISASSEMBLE_NAME(asap) }, { "avr8", _16le, 0, CPU_DISASSEMBLE_NAME(avr8) }, { "ccpu", _8bit, 0, CPU_DISASSEMBLE_NAME(ccpu) }, { "cdp1802", _8bit, 0, CPU_DISASSEMBLE_NAME(cdp1802) }, { "cop410", _8bit, 0, CPU_DISASSEMBLE_NAME(cop410) }, { "cop420", _8bit, 0, CPU_DISASSEMBLE_NAME(cop420) }, { "cop444", _8bit, 0, CPU_DISASSEMBLE_NAME(cop444) }, { "cp1610", _16be, -1, CPU_DISASSEMBLE_NAME(cp1610) }, { "cquestsnd", _64be, -3, CPU_DISASSEMBLE_NAME(cquestsnd) }, { "cquestrot", _64be, -3, CPU_DISASSEMBLE_NAME(cquestrot) }, { "cquestlin", _64be, -3, CPU_DISASSEMBLE_NAME(cquestlin) },
offs_t hp_nanoprocessor_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE(hp_nanoprocessor); return CPU_DISASSEMBLE_NAME(hp_nanoprocessor)(this , stream , pc , oprom , opram , options); }
static CPU_GET_INFO( nec ) { nec_state_t *nec_state = (device != NULL && device->token() != NULL) ? get_safe_token(device) : NULL; int flags; switch (state) { /* --- the following bits of info are returned as 64-bit signed integers --- */ case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(nec_state_t); break; case CPUINFO_INT_INPUT_LINES: info->i = 1; break; case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break; case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_LITTLE; break; case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break; case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break; case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 8; break; case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; case CPUINFO_INT_MAX_CYCLES: info->i = 80; break; case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 16; break; case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 20; break; case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break; case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 0; break; case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 0; break; case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; break; case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 16; break; case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 16; break; case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break; case CPUINFO_INT_INPUT_STATE + 0: info->i = (nec_state->pending_irq & INT_IRQ) ? ASSERT_LINE : CLEAR_LINE; break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: info->i = nec_state->nmi_state; break; case CPUINFO_INT_INPUT_STATE + NEC_INPUT_LINE_POLL: info->i = nec_state->poll_state; break; case CPUINFO_INT_PREVIOUSPC: /* not supported */ break; case CPUINFO_INT_PC: case CPUINFO_INT_REGISTER + NEC_PC: info->i = ((Sreg(PS)<<4) + nec_state->ip); break; case CPUINFO_INT_REGISTER + NEC_IP: info->i = nec_state->ip; break; case CPUINFO_INT_SP: info->i = (Sreg(SS)<<4) + Wreg(SP); break; case CPUINFO_INT_REGISTER + NEC_SP: info->i = Wreg(SP); break; case CPUINFO_INT_REGISTER + NEC_FLAGS: info->i = CompressFlags(); break; case CPUINFO_INT_REGISTER + NEC_AW: info->i = Wreg(AW); break; case CPUINFO_INT_REGISTER + NEC_CW: info->i = Wreg(CW); break; case CPUINFO_INT_REGISTER + NEC_DW: info->i = Wreg(DW); break; case CPUINFO_INT_REGISTER + NEC_BW: info->i = Wreg(BW); break; case CPUINFO_INT_REGISTER + NEC_BP: info->i = Wreg(BP); break; case CPUINFO_INT_REGISTER + NEC_IX: info->i = Wreg(IX); break; case CPUINFO_INT_REGISTER + NEC_IY: info->i = Wreg(IY); break; case CPUINFO_INT_REGISTER + NEC_ES: info->i = Sreg(DS1); break; case CPUINFO_INT_REGISTER + NEC_CS: info->i = Sreg(PS); break; case CPUINFO_INT_REGISTER + NEC_SS: info->i = Sreg(SS); break; case CPUINFO_INT_REGISTER + NEC_DS: info->i = Sreg(DS0); break; case CPUINFO_INT_REGISTER + NEC_PENDING: info->i = nec_state->pending_irq; break; /* --- the following bits of info are returned as pointers to data or functions --- */ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(nec); break; case CPUINFO_FCT_INIT: /* set per-CPU */ break; case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(nec); break; case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(nec); break; case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(necv); break; case CPUINFO_FCT_BURN: info->burn = NULL; break; case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(nec); break; case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &nec_state->icount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "NEC"); break; case CPUINFO_STR_FAMILY: strcpy(info->s, "NEC V-Series"); break; case CPUINFO_STR_VERSION: strcpy(info->s, "2.0"); break; case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; case CPUINFO_STR_CREDITS: strcpy(info->s, "Bryan McPhail (V25/V35 support added by Alex W. Jackson)"); break; case CPUINFO_STR_FLAGS: flags = CompressFlags(); sprintf(info->s, "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", flags & 0x8000 ? 'N':'E', flags & 0x4000 ? '?':'.', flags & 0x2000 ? '?':'.', flags & 0x1000 ? '?':'.', flags & 0x0800 ? 'O':'.', flags & 0x0400 ? 'D':'.', flags & 0x0200 ? 'I':'.', flags & 0x0100 ? 'T':'.', flags & 0x0080 ? 'S':'.', flags & 0x0040 ? 'Z':'.', flags & 0x0020 ? '?':'.', flags & 0x0010 ? 'A':'.', flags & 0x0008 ? '?':'.', flags & 0x0004 ? 'P':'.', flags & 0x0002 ? '.':'?', flags & 0x0001 ? 'C':'.'); break; case CPUINFO_STR_REGISTER + NEC_PC: sprintf(info->s, "PC:%05X", (Sreg(PS)<<4) + nec_state->ip); break; case CPUINFO_STR_REGISTER + NEC_IP: sprintf(info->s, "IP:%04X", nec_state->ip); break; case CPUINFO_STR_REGISTER + NEC_SP: sprintf(info->s, "SP:%04X", Wreg(SP)); break; case CPUINFO_STR_REGISTER + NEC_FLAGS: sprintf(info->s, "F:%04X", CompressFlags()); break; case CPUINFO_STR_REGISTER + NEC_AW: sprintf(info->s, "AW:%04X", Wreg(AW)); break; case CPUINFO_STR_REGISTER + NEC_CW: sprintf(info->s, "CW:%04X", Wreg(CW)); break; case CPUINFO_STR_REGISTER + NEC_DW: sprintf(info->s, "DW:%04X", Wreg(DW)); break; case CPUINFO_STR_REGISTER + NEC_BW: sprintf(info->s, "BW:%04X", Wreg(BW)); break; case CPUINFO_STR_REGISTER + NEC_BP: sprintf(info->s, "BP:%04X", Wreg(BP)); break; case CPUINFO_STR_REGISTER + NEC_IX: sprintf(info->s, "IX:%04X", Wreg(IX)); break; case CPUINFO_STR_REGISTER + NEC_IY: sprintf(info->s, "IY:%04X", Wreg(IY)); break; case CPUINFO_STR_REGISTER + NEC_ES: sprintf(info->s, "DS1:%04X", Sreg(DS1)); break; case CPUINFO_STR_REGISTER + NEC_CS: sprintf(info->s, "PS:%04X", Sreg(PS)); break; case CPUINFO_STR_REGISTER + NEC_SS: sprintf(info->s, "SS:%04X", Sreg(SS)); break; case CPUINFO_STR_REGISTER + NEC_DS: sprintf(info->s, "DS0:%04X", Sreg(DS0)); break; } }
offs_t m6805_base_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(m6805)(this, stream, pc, oprom, opram, options); }
offs_t nec_common_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE( nec ); return CPU_DISASSEMBLE_NAME(nec)(this, buffer, pc, oprom, opram, options); }
offs_t hmcs40_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) { extern CPU_DISASSEMBLE(hmcs40); return CPU_DISASSEMBLE_NAME(hmcs40)(this, stream, pc, oprom, opram, options); }
offs_t tms32082_mp_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(tms32082_mp)(this, stream, pc, oprom, opram, options); }
offs_t tms32082_mp_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(tms32082_mp)(this, buffer, pc, oprom, opram, options); }
offs_t hp_nanoprocessor_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE(hp_nanoprocessor); return CPU_DISASSEMBLE_NAME(hp_nanoprocessor)(this , buffer , pc , oprom , opram , options); }
offs_t i860_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE( i860 ); return CPU_DISASSEMBLE_NAME(i860)(this, buffer, pc, oprom, opram, options); }
// disasm offs_t kb1013vk12_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { extern CPU_DISASSEMBLE(kb1013vk12); return CPU_DISASSEMBLE_NAME(kb1013vk12)(this, buffer, pc, oprom, opram, options); }