mirror of
https://github.com/holub/mame
synced 2025-04-19 07:00:31 +03:00
hp21mx: Add DMS instructions to disassembler
This commit is contained in:
parent
55f72a2a83
commit
f7e96d5581
@ -525,6 +525,111 @@ offs_t hp21mx_disassembler::dasm_mac(std::ostream &stream, u16 inst, offs_t pc,
|
||||
return 1 | SUPPORTED;
|
||||
}
|
||||
}
|
||||
else if ((inst & 01740) == 01700)
|
||||
{
|
||||
// Dynamic Mapping System
|
||||
switch (inst & 04027)
|
||||
{
|
||||
case 04002:
|
||||
stream << "MBI";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04003:
|
||||
stream << "MBF";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04004:
|
||||
stream << "MBW";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04005:
|
||||
stream << "MWI";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04006:
|
||||
stream << "MWF";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04007:
|
||||
stream << "MWW";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0010: case 04010:
|
||||
util::stream_format(stream, "SY%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0011: case 04011:
|
||||
util::stream_format(stream, "US%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0012: case 0013: case 04012: case 04013:
|
||||
util::stream_format(stream, "P%c%c", 'A' + BIT(inst, 0), cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04014:
|
||||
stream << "SSM ";
|
||||
format_address(stream, opcodes.r16(pc + 1));
|
||||
return 2 | SUPPORTED;
|
||||
|
||||
case 04015:
|
||||
stream << "JRS ";
|
||||
format_address(stream, opcodes.r16(pc + 1));
|
||||
stream << ',';
|
||||
format_address(stream, opcodes.r16(pc + 2));
|
||||
return 3 | SUPPORTED;
|
||||
|
||||
case 04020:
|
||||
stream << "XMM";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04021:
|
||||
stream << "XMS";
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0022: case 04022:
|
||||
util::stream_format(stream, "XM%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0024: case 04024:
|
||||
util::stream_format(stream, "XL%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0025: case 04025:
|
||||
util::stream_format(stream, "XS%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0026: case 04026:
|
||||
util::stream_format(stream, "XC%c", cab(inst));
|
||||
return 1 | STEP_COND | SUPPORTED;
|
||||
|
||||
case 0027: case 04027:
|
||||
util::stream_format(stream, "LF%c ", cab(inst));
|
||||
format_address(stream, opcodes.r16(pc + 1));
|
||||
return 2 | SUPPORTED;
|
||||
|
||||
case 0030: case 04030:
|
||||
util::stream_format(stream, "RS%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 0031: case 04031:
|
||||
util::stream_format(stream, "RV%c", cab(inst));
|
||||
return 1 | SUPPORTED;
|
||||
|
||||
case 04032: case 04034: case 04036:
|
||||
util::stream_format(stream, "%cJP ", "DSU"[BIT(inst, 1, 2) - 1]);
|
||||
format_address(stream, opcodes.r16(pc + 1));
|
||||
return 2 | SUPPORTED;
|
||||
|
||||
case 04033: case 04035: case 04037:
|
||||
util::stream_format(stream, "%cJS ", "DSU"[BIT(inst, 1, 2) - 1]);
|
||||
format_address(stream, opcodes.r16(pc + 1));
|
||||
return 2 | STEP_OVER | SUPPORTED;
|
||||
|
||||
default:
|
||||
util::stream_format(stream, "MAC %oB", inst & 05777);
|
||||
return 1 | SUPPORTED;
|
||||
}
|
||||
}
|
||||
else
|
||||
return hp2100_disassembler::dasm_mac(stream, inst, pc, opcodes);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user