Further cleanups to the TLCS900 disassemlber; fixed some paren spacing, converted a char[] buffer to std::string

This commit is contained in:
Nathan Woods 2016-10-29 22:44:18 -04:00
parent 06613b3dd1
commit a05f144d1e

View File

@ -1436,7 +1436,7 @@ static const char *const s_cond[16] =
static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
{
const tlcs900inst *dasm;
char buf[32];
std::string buf;
uint8_t op, op1;
uint32_t imm;
int flags = 0;
@ -1449,56 +1449,57 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
/* Check for extended addressing modes */
switch( dasm->mnemonic )
{
default:
break;
default:
break;
case M_80:
sprintf( buf, "%s", s_reg32[op & 0x07] );
buf = string_format("%s", s_reg32[op & 0x07]);
op = oprom[ pos++ ];
dasm = &mnemonic_80[ op ];
break;
case M_88:
imm = oprom[ pos++ ];
sprintf( buf, "%s+0x%02x", s_reg32[op & 0x07], imm );
buf = string_format("%s+0x%02x", s_reg32[op & 0x07], imm);
op = oprom[ pos++ ];
dasm = &mnemonic_88[ op ];
break;
case M_90:
sprintf( buf, "%s", s_reg32[op & 0x07] );
buf = string_format("%s", s_reg32[op & 0x07]);
op = oprom[ pos++ ];
dasm = &mnemonic_90[ op ];
break;
case M_98:
imm = oprom[ pos++ ];
sprintf( buf, "%s+0x%02x", s_reg32[op & 0x07], imm );
buf = string_format("%s+0x%02x", s_reg32[op & 0x07], imm);
op = oprom[ pos++ ];
dasm = &mnemonic_98[ op ];
break;
case M_A0:
sprintf( buf, "%s", s_reg32[op & 0x07] );
buf = string_format("%s", s_reg32[op & 0x07]);
op = oprom[ pos++ ];
dasm = &mnemonic_a0[ op ];
break;
case M_A8:
imm = oprom[ pos++ ];
sprintf( buf, "%s+0x%02x", s_reg32[op & 0x07], imm );
buf = string_format("%s+0x%02x", s_reg32[op & 0x07], imm);
op = oprom[ pos++ ];
dasm = &mnemonic_a0[ op ];
break;
case M_B0:
sprintf( buf, "%s", s_reg32[op & 0x07] );
buf = string_format("%s", s_reg32[op & 0x07]);
op = oprom[ pos++ ];
dasm = &mnemonic_b0[ op ];
break;
case M_B8:
imm = oprom[ pos++ ];
sprintf( buf, "%s+0x%02x", s_reg32[op & 0x07], imm );
buf = string_format("%s+0x%02x", s_reg32[op & 0x07], imm);
op = oprom[ pos++ ];
dasm = &mnemonic_b8[ op ];
break;
@ -1508,20 +1509,20 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
{
case 0x00: /* 0xC0 */
imm = oprom[ pos++ ];
sprintf( buf, "0x%02x", imm );
buf = string_format("0x%02x", imm);
break;
case 0x01: /* 0xC1 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%04x", imm);
break;
case 0x02: /* 0xC2 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
sprintf( buf, "0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
buf = string_format("0x%06x", imm);
break;
case 0x03: /* 0xC3 */
@ -1529,18 +1530,18 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm & 0x03 )
{
case 0x00:
sprintf( buf, "%s", s_allreg32[imm] );
buf = string_format("%s", s_allreg32[imm]);
break;
case 0x01:
op = imm;
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "%s+0x%04x", s_allreg32[op], imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("%s+0x%04x", s_allreg32[op], imm);
break;
case 0x02:
sprintf( buf, "unknown" );
buf = string_format("unknown");
break;
case 0x03:
@ -1549,19 +1550,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x03:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg8[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg8[op1]);
break;
case 0x07:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg16[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg16[op1]);
break;
case 0x13:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%06x", pc + pos + (int16_t)imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%06x", pc + pos + (int16_t)imm);
break;
}
break;
@ -1570,12 +1571,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x04: /* 0xC4 */
imm = oprom[ pos++ ];
sprintf( buf, "-%s", s_allreg32[imm] );
buf = string_format("-%s", s_allreg32[imm]);
break;
case 0x05: /* 0xC5 */
imm = oprom[ pos++ ];
sprintf( buf, "%s+", s_allreg32[imm] );
buf = string_format("%s+", s_allreg32[imm]);
break;
}
op = oprom[ pos++ ];
@ -1585,12 +1586,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case oC8:
if ( op & 0x08 )
{
sprintf( buf, "%s", s_reg8[ op & 0x07 ] );
buf = string_format("%s", s_reg8[ op & 0x07 ]);
}
else
{
imm = oprom[ pos++ ];
sprintf( buf, "%s", s_allreg8[imm] );
buf = string_format("%s", s_allreg8[imm]);
}
op = oprom[ pos++ ];
dasm = &mnemonic_c8[ op ];
@ -1601,20 +1602,20 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
{
case 0x00: /* 0xD0 */
imm = oprom[ pos++ ];
sprintf( buf, "0x%02x", imm );
buf = string_format("0x%02x", imm);
break;
case 0x01: /* 0xD1 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%04x", imm);
break;
case 0x02: /* 0xD2 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
sprintf( buf, "0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
buf = string_format("0x%06x", imm);
break;
case 0x03: /* 0xD3 */
@ -1622,18 +1623,18 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm & 0x03 )
{
case 0x00:
sprintf( buf, "%s", s_allreg32[imm] );
buf = string_format("%s", s_allreg32[imm]);
break;
case 0x01:
op = imm;
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "%s+0x%04x", s_allreg32[op], imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("%s+0x%04x", s_allreg32[op], imm);
break;
case 0x02:
sprintf( buf, "unknown" );
buf = string_format("unknown");
break;
case 0x03:
@ -1642,19 +1643,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x03:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg8[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg8[op1]);
break;
case 0x07:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg16[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg16[op1]);
break;
case 0x13:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%06x", pc + pos + (int16_t)imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%06x", pc + pos + (int16_t)imm);
break;
}
break;
@ -1663,12 +1664,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x04: /* 0xD4 */
imm = oprom[ pos++ ];
sprintf( buf, "-%s", s_allreg32[imm] );
buf = string_format("-%s", s_allreg32[imm]);
break;
case 0x05: /* 0xD5 */
imm = oprom[ pos++ ];
sprintf( buf, "%s+", s_allreg32[imm] );
buf = string_format("%s+", s_allreg32[imm]);
break;
}
op = oprom[ pos++ ];
@ -1678,12 +1679,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case oD8:
if ( op & 0x08 )
{
sprintf( buf, "%s", s_reg16[ op & 0x07 ] );
buf = string_format("%s", s_reg16[ op & 0x07 ]);
}
else
{
imm = oprom[ pos++ ];
sprintf( buf, "%s", s_allreg16[imm] );
buf = string_format("%s", s_allreg16[imm]);
}
op = oprom[ pos++ ];
@ -1695,20 +1696,20 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
{
case 0x00: /* 0xE0 */
imm = oprom[ pos++ ];
sprintf( buf, "0x%02x", imm );
buf = string_format("0x%02x", imm);
break;
case 0x01: /* 0xE1 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%04x", imm);
break;
case 0x02: /* 0xE2 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
sprintf( buf, "0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
buf = string_format("0x%06x", imm);
break;
case 0x03: /* 0xE3 */
@ -1716,18 +1717,18 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm & 0x03 )
{
case 0x00:
sprintf( buf, "%s", s_allreg32[imm] );
buf = string_format("%s", s_allreg32[imm]);
break;
case 0x01:
op = imm;
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "%s+0x%04x", s_allreg32[op], imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("%s+0x%04x", s_allreg32[op], imm);
break;
case 0x02:
sprintf( buf, "unknown" );
buf = string_format("unknown");
break;
case 0x03:
@ -1736,19 +1737,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x03:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg8[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg8[op1]);
break;
case 0x07:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg16[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg16[op1]);
break;
case 0x13:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%06x", pc + pos + (int16_t)imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%06x", pc + pos + (int16_t)imm);
break;
}
break;
@ -1757,12 +1758,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x04: /* 0xE4 */
imm = oprom[ pos++ ];
sprintf( buf, "-%s", s_allreg32[imm] );
buf = string_format("-%s", s_allreg32[imm]);
break;
case 0x05: /* 0xE5 */
imm = oprom[ pos++ ];
sprintf( buf, "%s+", s_allreg32[imm] );
buf = string_format("%s+", s_allreg32[imm]);
break;
}
op = oprom[ pos++ ];
@ -1772,12 +1773,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case M_E8:
if ( op & 0x08 )
{
sprintf( buf, "%s", s_reg32[ op & 0x07 ] );
buf = string_format("%s", s_reg32[ op & 0x07 ]);
}
else
{
imm = oprom[ pos++ ];
sprintf( buf, "%s", s_allreg32[imm] );
buf = string_format("%s", s_allreg32[imm]);
}
op = oprom[ pos++ ];
dasm = &mnemonic_e8[ op ];
@ -1788,20 +1789,20 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
{
case 0x00: /* 0xF0 */
imm = oprom[ pos++ ];
sprintf( buf, "0x%02x", imm );
buf = string_format("0x%02x", imm);
break;
case 0x01: /* 0xF1 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%04x", imm);
break;
case 0x02: /* 0xF2 */
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
sprintf( buf, "0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
buf = string_format("0x%06x", imm);
break;
case 0x03: /* 0xF3 */
@ -1809,18 +1810,18 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm & 0x03 )
{
case 0x00:
sprintf( buf, "%s", s_allreg32[imm] );
buf = string_format("%s", s_allreg32[imm]);
break;
case 0x01:
op = imm;
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "%s+0x%04x", s_allreg32[op], imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("%s+0x%04x", s_allreg32[op], imm);
break;
case 0x02:
sprintf( buf, "unknown" );
buf = string_format("unknown");
break;
case 0x03:
@ -1829,19 +1830,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x03:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg8[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg8[op1]);
break;
case 0x07:
op = oprom[ pos++ ];
op1 = oprom[ pos++ ];
sprintf( buf, "%s+%s", s_allreg32[op], s_allreg16[op1] );
buf = string_format("%s+%s", s_allreg32[op], s_allreg16[op1]);
break;
case 0x13:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
sprintf( buf, "0x%06x", pc + pos + (int16_t)imm );
imm = imm | ( oprom[ pos++ ] << 8);
buf = string_format("0x%06x", pc + pos + (int16_t)imm);
break;
}
break;
@ -1850,12 +1851,12 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case 0x04: /* 0xF4 */
imm = oprom[ pos++ ];
sprintf( buf, "-%s", s_allreg32[imm] );
buf = string_format("-%s", s_allreg32[imm]);
break;
case 0x05: /* 0xF5 */
imm = oprom[ pos++ ];
sprintf( buf, "%s+", s_allreg32[imm] );
buf = string_format("%s+", s_allreg32[imm]);
break;
}
op = oprom[ pos++ ];
@ -1863,13 +1864,13 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
break;
}
util::stream_format(stream, "%s", s_mnemonic[ dasm->mnemonic ] );
util::stream_format(stream, "%s", s_mnemonic[ dasm->mnemonic ]);
switch( dasm->mnemonic )
{
default:
/* maybe assert */
break;
default:
/* maybe assert */
break;
case M_CALL:
case M_CALR:
flags = DASMFLAG_STEP_OVER;
@ -1887,27 +1888,27 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
break;
case O_A:
util::stream_format(stream, " A" );
util::stream_format(stream, " A");
break;
case O_C8:
util::stream_format(stream, " %s", s_reg8[op & 0x07] );
util::stream_format(stream, " %s", s_reg8[op & 0x07]);
break;
case O_C16:
util::stream_format(stream, " %s", s_reg16[op & 0x07] );
util::stream_format(stream, " %s", s_reg16[op & 0x07]);
break;
case O_C32:
util::stream_format(stream, " %s", s_reg32[op & 0x07] );
util::stream_format(stream, " %s", s_reg32[op & 0x07]);
break;
case O_MC16:
util::stream_format(stream, " %s", s_mulreg16[op & 0x07] );
util::stream_format(stream, " %s", s_mulreg16[op & 0x07]);
break;
case O_CC:
util::stream_format(stream, " %s", s_cond[op & 0x0F] );
util::stream_format(stream, " %s", s_cond[op & 0x0F]);
break;
case O_CR8:
@ -1915,19 +1916,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x22:
util::stream_format(stream, " DMAM0" );
util::stream_format(stream, " DMAM0");
break;
case 0x26:
util::stream_format(stream, " DMAM1" );
util::stream_format(stream, " DMAM1");
break;
case 0x2a:
util::stream_format(stream, " DMAM2" );
util::stream_format(stream, " DMAM2");
break;
case 0x2e:
util::stream_format(stream, " DMAM3" );
util::stream_format(stream, " DMAM3");
break;
default:
util::stream_format(stream, " unknown" );
util::stream_format(stream, " unknown");
break;
}
break;
@ -1937,19 +1938,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x20:
util::stream_format(stream, " DMAC0" );
util::stream_format(stream, " DMAC0");
break;
case 0x24:
util::stream_format(stream, " DMAC1" );
util::stream_format(stream, " DMAC1");
break;
case 0x28:
util::stream_format(stream, " DMAC2" );
util::stream_format(stream, " DMAC2");
break;
case 0x2c:
util::stream_format(stream, " DMAC3" );
util::stream_format(stream, " DMAC3");
break;
default:
util::stream_format(stream, " unknown" );
util::stream_format(stream, " unknown");
break;
}
break;
@ -1959,78 +1960,78 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x00:
util::stream_format(stream, " DMAS0" );
util::stream_format(stream, " DMAS0");
break;
case 0x04:
util::stream_format(stream, " DMAS1" );
util::stream_format(stream, " DMAS1");
break;
case 0x08:
util::stream_format(stream, " DMAS2" );
util::stream_format(stream, " DMAS2");
break;
case 0x0c:
util::stream_format(stream, " DMAS3" );
util::stream_format(stream, " DMAS3");
break;
case 0x10:
util::stream_format(stream, " DMAD0" );
util::stream_format(stream, " DMAD0");
break;
case 0x14:
util::stream_format(stream, " DMAD1" );
util::stream_format(stream, " DMAD1");
break;
case 0x18:
util::stream_format(stream, " DMAD2" );
util::stream_format(stream, " DMAD2");
break;
case 0x1c:
util::stream_format(stream, " DMAD3" );
util::stream_format(stream, " DMAD3");
break;
default:
util::stream_format(stream, " unknown" );
util::stream_format(stream, " unknown");
break;
}
break;
case O_D8:
imm = oprom[ pos++ ];
util::stream_format(stream, " 0x%06x", ( pc + pos + (int8_t)imm ) & 0xFFFFFF );
util::stream_format(stream, " 0x%06x", ( pc + pos + (int8_t)imm ) & 0xFFFFFF);
break;
case O_D16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, " 0x%06x", ( pc + pos + (int16_t)imm ) & 0xFFFFFF );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, " 0x%06x", ( pc + pos + (int16_t)imm ) & 0xFFFFFF);
break;
case O_F:
util::stream_format(stream, " F" );
util::stream_format(stream, " F");
break;
case O_I3:
util::stream_format(stream, " %d", op & 0x07 );
util::stream_format(stream, " %d", op & 0x07);
break;
case O_I8:
imm = oprom[ pos++ ];
util::stream_format(stream, " 0x%02x", imm );
util::stream_format(stream, " 0x%02x", imm);
break;
case O_I16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, " 0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, " 0x%04x", imm);
break;
case O_I24:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
util::stream_format(stream, " 0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
util::stream_format(stream, " 0x%06x", imm);
break;
case O_I32:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
imm = imm | ( oprom[ pos++ ] << 24 );
util::stream_format(stream, "0x%08x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
imm = imm | ( oprom[ pos++ ] << 24);
util::stream_format(stream, "0x%08x", imm);
break;
case O_M:
@ -2039,31 +2040,31 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case M_CALL:
case M_JP:
case M_LDA:
util::stream_format(stream, " %s", buf );
util::stream_format(stream, " %s", buf);
break;
default:
util::stream_format(stream, " (%s)", buf );
util::stream_format(stream, " (%s)", buf);
break;
}
break;
case O_M8:
imm = oprom[ pos++ ];
util::stream_format(stream, " (0x%02x)", imm );
util::stream_format(stream, " (0x%02x)", imm);
break;
case O_M16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, " (0x%04x)", imm );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, " (0x%04x)", imm);
break;
case O_R:
util::stream_format(stream, " %s", buf );
util::stream_format(stream, " %s", buf);
break;
case O_SR:
util::stream_format(stream, " SR" );
util::stream_format(stream, " SR");
break;
}
@ -2073,27 +2074,27 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
break;
case O_A:
util::stream_format(stream, ",A" );
util::stream_format(stream, ",A");
break;
case O_C8:
util::stream_format(stream, ",%s", s_reg8[op & 0x07] );
util::stream_format(stream, ",%s", s_reg8[op & 0x07]);
break;
case O_C16:
util::stream_format(stream, ",%s", s_reg16[op & 0x07] );
util::stream_format(stream, ",%s", s_reg16[op & 0x07]);
break;
case O_C32:
util::stream_format(stream, ",%s", s_reg32[op & 0x07] );
util::stream_format(stream, ",%s", s_reg32[op & 0x07]);
break;
case O_MC16:
util::stream_format(stream, ",%s", s_mulreg16[op & 0x07] );
util::stream_format(stream, ",%s", s_mulreg16[op & 0x07]);
break;
case O_CC:
util::stream_format(stream, ",%s", s_cond[op & 0x0F] );
util::stream_format(stream, ",%s", s_cond[op & 0x0F]);
break;
case O_CR8:
@ -2101,19 +2102,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x22:
util::stream_format(stream, ",DMAM0" );
util::stream_format(stream, ",DMAM0");
break;
case 0x26:
util::stream_format(stream, ",DMAM1" );
util::stream_format(stream, ",DMAM1");
break;
case 0x2a:
util::stream_format(stream, ",DMAM2" );
util::stream_format(stream, ",DMAM2");
break;
case 0x2e:
util::stream_format(stream, ",DMAM3" );
util::stream_format(stream, ",DMAM3");
break;
default:
util::stream_format(stream, ",unknown" );
util::stream_format(stream, ",unknown");
break;
}
break;
@ -2123,19 +2124,19 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x20:
util::stream_format(stream, ",DMAC0" );
util::stream_format(stream, ",DMAC0");
break;
case 0x24:
util::stream_format(stream, ",DMAC1" );
util::stream_format(stream, ",DMAC1");
break;
case 0x28:
util::stream_format(stream, ",DMAC2" );
util::stream_format(stream, ",DMAC2");
break;
case 0x2c:
util::stream_format(stream, ",DMAC3" );
util::stream_format(stream, ",DMAC3");
break;
default:
util::stream_format(stream, ",unknown" );
util::stream_format(stream, ",unknown");
break;
}
break;
@ -2145,78 +2146,78 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
switch( imm )
{
case 0x00:
util::stream_format(stream, ",DMAS0" );
util::stream_format(stream, ",DMAS0");
break;
case 0x04:
util::stream_format(stream, ",DMAS1" );
util::stream_format(stream, ",DMAS1");
break;
case 0x08:
util::stream_format(stream, ",DMAS2" );
util::stream_format(stream, ",DMAS2");
break;
case 0x0c:
util::stream_format(stream, ",DMAS3" );
util::stream_format(stream, ",DMAS3");
break;
case 0x10:
util::stream_format(stream, ",DMAD0" );
util::stream_format(stream, ",DMAD0");
break;
case 0x14:
util::stream_format(stream, ",DMAD1" );
util::stream_format(stream, ",DMAD1");
break;
case 0x18:
util::stream_format(stream, ",DMAD2" );
util::stream_format(stream, ",DMAD2");
break;
case 0x1c:
util::stream_format(stream, ",DMAD3" );
util::stream_format(stream, ",DMAD3");
break;
default:
util::stream_format(stream, ",unknown" );
util::stream_format(stream, ",unknown");
break;
}
break;
case O_D8:
imm = oprom[ pos++ ];
util::stream_format(stream, ",0x%06x", ( pc + pos + (int8_t)imm ) & 0xFFFFFF );
util::stream_format(stream, ",0x%06x", ( pc + pos + (int8_t)imm ) & 0xFFFFFF);
break;
case O_D16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, ",0x%06x", ( pc + pos + (int16_t)imm ) & 0xFFFFFF );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, ",0x%06x", ( pc + pos + (int16_t)imm ) & 0xFFFFFF);
break;
case O_F:
util::stream_format(stream, ",F'" );
util::stream_format(stream, ",F'");
break;
case O_I3:
util::stream_format(stream, ",%d", op & 0x07 );
util::stream_format(stream, ",%d", op & 0x07);
break;
case O_I8:
imm = oprom[ pos++ ];
util::stream_format(stream, ",0x%02x", imm );
util::stream_format(stream, ",0x%02x", imm);
break;
case O_I16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, ",0x%04x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, ",0x%04x", imm);
break;
case O_I24:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
util::stream_format(stream, ",0x%06x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
util::stream_format(stream, ",0x%06x", imm);
break;
case O_I32:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
imm = imm | ( oprom[ pos++ ] << 16 );
imm = imm | ( oprom[ pos++ ] << 24 );
util::stream_format(stream, ",0x%08x", imm );
imm = imm | ( oprom[ pos++ ] << 8);
imm = imm | ( oprom[ pos++ ] << 16);
imm = imm | ( oprom[ pos++ ] << 24);
util::stream_format(stream, ",0x%08x", imm);
break;
case O_M:
@ -2225,31 +2226,31 @@ static offs_t internal_disasm_tlcs900(cpu_device *device, std::ostream &stream,
case M_CALL:
case M_JP:
case M_LDA:
util::stream_format(stream, ",%s", buf );
util::stream_format(stream, ",%s", buf);
break;
default:
util::stream_format(stream, ",(%s)", buf );
util::stream_format(stream, ",(%s)", buf);
break;
}
break;
case O_M8:
imm = oprom[ pos++ ];
util::stream_format(stream, ",(0x%02x)", imm );
util::stream_format(stream, ",(0x%02x)", imm);
break;
case O_M16:
imm = oprom[ pos++ ];
imm = imm | ( oprom[ pos++ ] << 8 );
util::stream_format(stream, ",(0x%04x)", imm );
imm = imm | ( oprom[ pos++ ] << 8);
util::stream_format(stream, ",(0x%04x)", imm);
break;
case O_R:
util::stream_format(stream, ",%s", buf );
util::stream_format(stream, ",%s", buf);
break;
case O_SR:
util::stream_format(stream, ",SR" );
util::stream_format(stream, ",SR");
break;
}