Changed the Alpha 8x01 disassembler to use std::ostream internally

This commit is contained in:
Nathan Woods 2016-10-23 13:39:34 -04:00
parent 347b8cd925
commit fe7f15971e

View File

@ -349,7 +349,7 @@ static void InitDasm8201(void)
OpInizialized = 1;
}
CPU_DISASSEMBLE( alpha8201 )
static offs_t internal_disasm_alpha8201(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
{
offs_t dasmflags = 0;
int i;
@ -376,7 +376,7 @@ CPU_DISASSEMBLE( alpha8201 )
if (op == -1)
{
sprintf(buffer,"db %2.2x",code);
util::stream_format(stream, "db %2.2x",code);
return cnt;
}
@ -391,11 +391,11 @@ CPU_DISASSEMBLE( alpha8201 )
}
if (Op[op].type & 0x02)
sprintf(buffer, Op[op].fmt,disp,disp);
util::stream_format(stream, Op[op].fmt,disp,disp);
else if (Op[op].type & 0x01)
sprintf(buffer, Op[op].fmt,disp);
util::stream_format(stream, Op[op].fmt,disp);
else
sprintf(buffer, "%s",Op[op].fmt);
util::stream_format(stream, "%s",Op[op].fmt);
switch (code)
{
@ -413,3 +413,12 @@ CPU_DISASSEMBLE( alpha8201 )
return cnt | dasmflags | DASMFLAG_SUPPORTED;
}
CPU_DISASSEMBLE(alpha8201)
{
std::ostringstream stream;
offs_t result = internal_disasm_alpha8201(device, stream, pc, oprom, opram, options);
std::string stream_str = stream.str();
strcpy(buffer, stream_str.c_str());
return result;
}