diff options
author | 2016-11-15 20:39:06 -0500 | |
---|---|---|
committer | 2016-11-15 20:40:30 -0500 | |
commit | 3589318d9be94f922ca8541db609862cbcddea0f (patch) | |
tree | ab3a0fede7393e8e92ca82a8386fb9b25776ad4f /src/devices/cpu/m68000 | |
parent | 0ca7ac3b2a1a61e4ea7c65564a7bd90561fb13d1 (diff) |
Changed the m68k disassembler to use 'std::ostream &' internally
Diffstat (limited to 'src/devices/cpu/m68000')
-rw-r--r-- | src/devices/cpu/m68000/m68000.h | 1 | ||||
-rw-r--r-- | src/devices/cpu/m68000/m68kdasm.cpp | 17 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/devices/cpu/m68000/m68000.h b/src/devices/cpu/m68000/m68000.h index 61c0af7a228..ac7c0021421 100644 --- a/src/devices/cpu/m68000/m68000.h +++ b/src/devices/cpu/m68000/m68000.h @@ -109,6 +109,7 @@ enum M68K_FPSR, M68K_FPCR }; +unsigned int m68k_disassemble_raw(std::ostream &stream, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type); unsigned int m68k_disassemble_raw(char* str_buff, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type); class m68000_base_device; diff --git a/src/devices/cpu/m68000/m68kdasm.cpp b/src/devices/cpu/m68000/m68kdasm.cpp index 8f9e9987cb8..c92b73126c5 100644 --- a/src/devices/cpu/m68000/m68kdasm.cpp +++ b/src/devices/cpu/m68000/m68kdasm.cpp @@ -3829,7 +3829,7 @@ static void build_opcode_table(void) /* ======================================================================== */ /* Disasemble one instruction at pc and store in str_buff */ -static unsigned int m68k_disassemble(char* str_buff, unsigned int pc, unsigned int cpu_type) +static unsigned int m68k_disassemble(std::ostream &stream, unsigned int pc, unsigned int cpu_type) { if(!g_initialized) { @@ -3875,7 +3875,7 @@ static unsigned int m68k_disassemble(char* str_buff, unsigned int pc, unsigned i g_cpu_ir = read_imm_16(); g_opcode_type = 0; g_instruction_table[g_cpu_ir](); - sprintf(str_buff, "%s%s", g_dasm_str, g_helper_str); + util::stream_format(stream, "%s%s", g_dasm_str, g_helper_str); return COMBINE_OPCODE_FLAGS(g_cpu_pc - pc); } @@ -3889,17 +3889,26 @@ char* m68ki_disassemble_quick(unsigned int pc, unsigned int cpu_type) } #endif -unsigned int m68k_disassemble_raw(char* str_buff, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type) +unsigned int m68k_disassemble_raw(std::ostream &stream, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type) { unsigned int result; g_rawop = opdata; g_rawbasepc = pc; - result = m68k_disassemble(str_buff, pc, cpu_type); + result = m68k_disassemble(stream, pc, cpu_type); g_rawop = nullptr; return result; } +unsigned int m68k_disassemble_raw(char* str_buff, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type) +{ + std::ostringstream stream; + unsigned int result = m68k_disassemble_raw(stream, pc, opdata, argdata, cpu_type); + std::string stream_str = stream.str(); + strcpy(str_buff, stream_str.c_str()); + return result; +} + #ifdef UNUSED_FUNCTION /* Check if the instruction is a valid one */ unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cpu_type) |