mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
tms1k: make disasm tables human-readable and added initial TP0320
This commit is contained in:
parent
49281dda99
commit
f5caa4a869
@ -491,6 +491,12 @@ offs_t tms0980_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UIN
|
|||||||
return CPU_DISASSEMBLE_NAME(tms0980)(this, buffer, pc, oprom, opram, options);
|
return CPU_DISASSEMBLE_NAME(tms0980)(this, buffer, pc, oprom, opram, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
offs_t tp0320_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options)
|
||||||
|
{
|
||||||
|
extern CPU_DISASSEMBLE(tp0320);
|
||||||
|
return CPU_DISASSEMBLE_NAME(tp0320)(this, buffer, pc, oprom, opram, options);
|
||||||
|
}
|
||||||
|
|
||||||
void tms1xxx_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const
|
void tms1xxx_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const
|
||||||
{
|
{
|
||||||
switch (entry.index())
|
switch (entry.index())
|
||||||
|
@ -489,6 +489,7 @@ protected:
|
|||||||
// overrides
|
// overrides
|
||||||
//virtual void device_start() override;
|
//virtual void device_start() override;
|
||||||
//virtual void device_reset() override;
|
//virtual void device_reset() override;
|
||||||
|
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) override;
|
||||||
|
|
||||||
//virtual machine_config_constructor device_mconfig_additions() const override;
|
//virtual machine_config_constructor device_mconfig_additions() const override;
|
||||||
};
|
};
|
||||||
|
@ -13,26 +13,26 @@
|
|||||||
|
|
||||||
enum e_mnemonics
|
enum e_mnemonics
|
||||||
{
|
{
|
||||||
zA10AAC=0, zA6AAC, zA8AAC, zAC1AC, zACACC, zACNAA, zALEC, zALEM, zAMAAC, zBRANCH, zCALL, zCCLA,
|
zILL = 0,
|
||||||
|
zA10AAC, zA6AAC, zA8AAC, zAC1AC, zACACC, zACNAA, zALEC, zALEM, zAMAAC, zBRANCH, zCALL, zCCLA,
|
||||||
zCLA, zCLO, zCOMC, zCOMX, zCOMX8, zCPAIZ, zCTMDYN, zDAN, zDMAN, zDMEA, zDNAA,
|
zCLA, zCLO, zCOMC, zCOMX, zCOMX8, zCPAIZ, zCTMDYN, zDAN, zDMAN, zDMEA, zDNAA,
|
||||||
zDYN, zIA, zIMAC, zIYC, zKNEZ, zLDP, zLDX, zLDX3, zLDX4, zMNEA, zMNEZ,
|
zDYN, zIA, zIMAC, zIYC, zKNEZ, zLDP, zLDX2, zLDX3, zLDX4, zMNEA, zMNEZ,
|
||||||
zNDMEA, zOFF, zRBIT, zREAC, zRETN, zRSTR, zSAL, zSAMAN, zSBIT,
|
zNDMEA, zOFF, zRBIT, zREAC, zRETN, zRSTR, zSAL, zSAMAN, zSBIT,
|
||||||
zSBL, zSEAC, zSETR, zTAM, zTAMACS, zTAMDYN, zTAMIY, zTAMIYC, zTAMZA,
|
zSBL, zSEAC, zSETR, zTAM, zTAMACS, zTAMDYN, zTAMIY, zTAMIYC, zTAMZA,
|
||||||
zTAY, zTBIT, zTCMIY, zTCY, zTDO, zTKA, zTKM, zTMA,
|
zTAY, zTBIT, zTCMIY, zTCY, zTDO, zTKA, zTKM, zTMA,
|
||||||
zTMY, zTYA, zXDA, zXMA, zYMCY, zYNEA, zYNEC,
|
zTMY, zTYA, zXDA, zXMA, zYMCY, zYNEA, zYNEC
|
||||||
zILL
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *const s_mnemonic[] =
|
static const char *const s_mnemonic[] =
|
||||||
{
|
{
|
||||||
|
"?",
|
||||||
"A10AAC", "A6AAC", "A8AAC", "AC1AC", "ACACC", "ACNAA", "ALEC", "ALEM", "AMAAC", "BRANCH", "CALL", "CCLA",
|
"A10AAC", "A6AAC", "A8AAC", "AC1AC", "ACACC", "ACNAA", "ALEC", "ALEM", "AMAAC", "BRANCH", "CALL", "CCLA",
|
||||||
"CLA", "CLO", "COMC", "COMX", "COMX8", "CPAIZ", "CTMDYN", "DAN", "DMAN", "DMEA", "DNAA",
|
"CLA", "CLO", "COMC", "COMX", "COMX8", "CPAIZ", "CTMDYN", "DAN", "DMAN", "DMEA", "DNAA",
|
||||||
"DYN", "IA", "IMAC", "IYC", "KNEZ", "LDP", "LDX", "LDX", "LDX", "MNEA", "MNEZ",
|
"DYN", "IA", "IMAC", "IYC", "KNEZ", "LDP", "LDX", "LDX", "LDX", "MNEA", "MNEZ",
|
||||||
"NDMEA", "OFF", "RBIT", "REAC", "RETN", "RSTR", "SAL", "SAMAN", "SBIT",
|
"NDMEA", "OFF", "RBIT", "REAC", "RETN", "RSTR", "SAL", "SAMAN", "SBIT",
|
||||||
"SBL", "SEAC", "SETR", "TAM", "TAMACS", "TAMDYN", "TAMIY", "TAMIYC", "TAMZA",
|
"SBL", "SEAC", "SETR", "TAM", "TAMACS", "TAMDYN", "TAMIY", "TAMIYC", "TAMZA",
|
||||||
"TAY", "TBIT", "TCMIY", "TCY", "TDO", "TKA", "TKM", "TMA",
|
"TAY", "TBIT", "TCMIY", "TCY", "TDO", "TKA", "TKM", "TMA",
|
||||||
"TMY", "TYA", "XDA", "XMA", "YMCY", "YNEA", "YNEC",
|
"TMY", "TYA", "XDA", "XMA", "YMCY", "YNEA", "YNEC"
|
||||||
"?"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -41,323 +41,241 @@ static const char *const s_mnemonic[] =
|
|||||||
|
|
||||||
static const UINT32 s_flags[] =
|
static const UINT32 s_flags[] =
|
||||||
{
|
{
|
||||||
|
0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _OVER, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _OVER, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, _OUT, 0, 0, 0, 0,
|
0, 0, 0, 0, _OUT, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0
|
||||||
0
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum e_addressing
|
enum e_addressing
|
||||||
{
|
{
|
||||||
zB0=0, zI2, zI3, zI4, zB7
|
zB0 = 0, zI2, zI3, zI4, zB7
|
||||||
};
|
};
|
||||||
|
|
||||||
static const UINT8 s_addressing[] =
|
static const UINT8 s_addressing[] =
|
||||||
{
|
{
|
||||||
|
zB0,
|
||||||
zB0, zB0, zB0, zI4, zI4, zI4, zI4, zB0, zB0, zB7, zB7, zB0,
|
zB0, zB0, zB0, zI4, zI4, zI4, zI4, zB0, zB0, zB7, zB7, zB0,
|
||||||
zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0,
|
zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0,
|
||||||
zB0, zB0, zB0, zB0, zB0, zI4, zI2, zI3, zI4, zB0, zB0,
|
zB0, zB0, zB0, zB0, zB0, zI4, zI2, zI3, zI4, zB0, zB0,
|
||||||
zB0, zB0, zI2, zB0, zB0, zB0, zB0, zB0, zI2,
|
zB0, zB0, zI2, zB0, zB0, zB0, zB0, zB0, zI2,
|
||||||
zB0, zB0, zB0, zB0, zI4, zB0, zB0, zB0, zB0,
|
zB0, zB0, zB0, zB0, zI4, zB0, zB0, zB0, zB0,
|
||||||
zB0, zI2, zI4, zI4, zB0, zB0, zB0, zB0,
|
zB0, zI2, zI4, zI4, zB0, zB0, zB0, zB0,
|
||||||
zB0, zB0, zB0, zB0, zI4, zB0, zI4,
|
zB0, zB0, zB0, zB0, zI4, zB0, zI4
|
||||||
zB0
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static const UINT8 tms0980_i2_value[4] =
|
|
||||||
{
|
|
||||||
0, 2, 1, 3
|
|
||||||
};
|
|
||||||
static const UINT8 tms0980_i3_value[8] =
|
|
||||||
{
|
|
||||||
0, 4, 2, 6, 1, 5, 3, 7
|
|
||||||
};
|
|
||||||
static const UINT8 tms0980_i4_value[16] =
|
|
||||||
{
|
|
||||||
0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// opcode luts
|
// opcode luts
|
||||||
|
|
||||||
static const UINT8 tms0980_mnemonic[512] =
|
|
||||||
{
|
|
||||||
/* 0x000 */
|
|
||||||
zCOMX, zALEM, zYNEA, zXMA, zDYN, zIYC, zCLA, zDMAN,
|
|
||||||
zTKA, zMNEA, zTKM, zILL, zILL, zSETR, zKNEZ, zILL,
|
|
||||||
/* 0x010 */
|
|
||||||
zDMEA, zDNAA, zCCLA, zNDMEA, zILL, zAMAAC, zILL, zILL,
|
|
||||||
zCTMDYN, zXDA, zILL, zILL, zILL, zILL, zILL, zILL,
|
|
||||||
/* 0x020 */
|
|
||||||
zTBIT, zTBIT, zTBIT, zTBIT, zILL, zILL, zILL, zILL,
|
|
||||||
zTAY, zTMA, zTMY, zTYA, zTAMDYN, zTAMIYC, zTAMZA, zTAM,
|
|
||||||
/* 0x030 */
|
|
||||||
zSAMAN, zCPAIZ, zIMAC, zMNEZ, zILL, zILL, zILL, zILL,
|
|
||||||
zTCY, zYNEC, zTCMIY, zACACC, zACNAA, zTAMACS, zALEC, zYMCY,
|
|
||||||
/* 0x040 */
|
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
|
||||||
/* 0x050 */
|
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
|
||||||
/* 0x060 */
|
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
|
||||||
/* 0x070 */
|
|
||||||
zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC,
|
|
||||||
zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC,
|
|
||||||
/* 0x080 */
|
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
|
||||||
/* 0x090 */
|
|
||||||
zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4,
|
|
||||||
zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4,
|
|
||||||
/* 0x0A0 */
|
|
||||||
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT,
|
|
||||||
zILL, zILL, zILL, zILL, zILL, zILL, zILL, zILL,
|
|
||||||
/* 0x0B0 */
|
|
||||||
zTDO, zSAL, zCOMX8, zSBL, zREAC, zSEAC, zOFF, zILL,
|
|
||||||
zILL, zILL, zILL, zILL, zILL, zILL, zILL, zRETN,
|
|
||||||
/* 0x0C0 */
|
|
||||||
zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA,
|
|
||||||
zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA,
|
|
||||||
/* 0x0D0 */
|
|
||||||
zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS,
|
|
||||||
zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS,
|
|
||||||
/* 0x0E0 */
|
|
||||||
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC,
|
|
||||||
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC,
|
|
||||||
/* 0x0F0 */
|
|
||||||
zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY,
|
|
||||||
zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY,
|
|
||||||
/* 0x100 */
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
/* 0x180 */
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static const UINT8 tms1000_mnemonic[256] =
|
static const UINT8 tms1000_mnemonic[256] =
|
||||||
{
|
{
|
||||||
/* 0x00 */
|
/* 0x00 */
|
||||||
zCOMX, zA8AAC, zYNEA, zTAM, zTAMZA, zA10AAC, zA6AAC, zDAN,
|
zCOMX, zA8AAC, zYNEA, zTAM, zTAMZA, zA10AAC, zA6AAC, zDAN, zTKA, zKNEZ, zTDO, zCLO, zRSTR, zSETR, zIA, zRETN, // 0
|
||||||
zTKA, zKNEZ, zTDO, zCLO, zRSTR, zSETR, zIA, zRETN,
|
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, // 1
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
zTAMIY, zTMA, zTMY, zTYA, zTAY, zAMAAC, zMNEZ, zSAMAN, zIMAC, zALEM, zDMAN, zIYC, zDYN, zCPAIZ, zXMA, zCLA, // 2
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT, zTBIT, zTBIT, zTBIT, zTBIT, zLDX2, zLDX2, zLDX2, zLDX2, // 3
|
||||||
zTAMIY, zTMA, zTMY, zTYA, zTAY, zAMAAC, zMNEZ, zSAMAN,
|
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, // 4
|
||||||
zIMAC, zALEM, zDMAN, zIYC, zDYN, zCPAIZ, zXMA, zCLA,
|
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, // 5
|
||||||
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT,
|
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, // 6
|
||||||
zTBIT, zTBIT, zTBIT, zTBIT, zLDX, zLDX, zLDX, zLDX,
|
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, // 7
|
||||||
/* 0x40 */
|
/* 0x80 */
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 8
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 9
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // A
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // B
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // C
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // D
|
||||||
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // E
|
||||||
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL // F
|
||||||
/* 0x80 */
|
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
/* 0xc0 */
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const UINT8 tms1100_mnemonic[256] =
|
static const UINT8 tms1100_mnemonic[256] =
|
||||||
{
|
{
|
||||||
/* 0x00 */
|
/* 0x00 */
|
||||||
zMNEA, zALEM, zYNEA, zXMA, zDYN, zIYC, zAMAAC, zDMAN,
|
zMNEA, zALEM, zYNEA, zXMA, zDYN, zIYC, zAMAAC, zDMAN, zTKA, zCOMX, zTDO, zCOMC, zRSTR, zSETR, zKNEZ, zRETN, // 0
|
||||||
zTKA, zCOMX, zTDO, zCOMC, zRSTR, zSETR, zKNEZ, zRETN,
|
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, // 1
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
zTAY, zTMA, zTMY, zTYA, zTAMDYN, zTAMIYC, zTAMZA, zTAM, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, // 2
|
||||||
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP,
|
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT, zTBIT, zTBIT, zTBIT, zTBIT, zSAMAN, zCPAIZ, zIMAC, zMNEZ, // 3
|
||||||
/* 0x20 */
|
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, // 4
|
||||||
zTAY, zTMA, zTMY, zTYA, zTAMDYN, zTAMIYC, zTAMZA, zTAM,
|
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, // 5
|
||||||
zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3, zLDX3,
|
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, // 6
|
||||||
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT,
|
zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zCLA, // 7
|
||||||
zTBIT, zTBIT, zTBIT, zTBIT, zSAMAN, zCPAIZ, zIMAC, zMNEZ,
|
/* 0x80 */
|
||||||
/* 0x40 */
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 8
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 9
|
||||||
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // A
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // B
|
||||||
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // C
|
||||||
/* 0x60 */
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // D
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // E
|
||||||
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY,
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL // F
|
||||||
zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC,
|
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
|
||||||
zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zAC1AC, zCLA,
|
};
|
||||||
/* 0x80 */
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
static const UINT8 tms0980_mnemonic[512] =
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
{
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
/* 0x000 */
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
zCOMX, zALEM, zYNEA, zXMA, zDYN, zIYC, zCLA, zDMAN, zTKA, zMNEA, zTKM, 0, 0, zSETR, zKNEZ, 0, // 0
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
zDMEA, zDNAA, zCCLA, zNDMEA, 0, zAMAAC, 0, 0, zCTMDYN, zXDA, 0, 0, 0, 0, 0, 0, // 1
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
zTBIT, zTBIT, zTBIT, zTBIT, 0, 0, 0, 0, zTAY, zTMA, zTMY, zTYA, zTAMDYN, zTAMIYC, zTAMZA, zTAM, // 2
|
||||||
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH,
|
zSAMAN, zCPAIZ, zIMAC, zMNEZ, 0, 0, 0, 0, zTCY, zYNEC, zTCMIY, zACACC, zACNAA, zTAMACS, zALEC, zYMCY, // 3
|
||||||
/* 0xC0 */
|
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, // 4
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, // 5
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, // 6
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, // 7
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
/* 0x080 */
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, // 8
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, // 9
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT, 0, 0, 0, 0, 0, 0, 0, 0, // A
|
||||||
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
|
zTDO, zSAL, zCOMX8, zSBL, zREAC, zSEAC, zOFF, 0, 0, 0, 0, 0, 0, 0, 0, zRETN, // B
|
||||||
|
zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, // C
|
||||||
|
zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, // D
|
||||||
|
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, // E
|
||||||
|
zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, // F
|
||||||
|
/* 0x100 */
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 0
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 1
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 2
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 3
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 4
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 5
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 6
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 7
|
||||||
|
/* 0x180 */
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // 8
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // 9
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // A
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // B
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // C
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // D
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // E
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL // F
|
||||||
|
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static const UINT8 tp0320_mnemonic[512] =
|
||||||
|
{
|
||||||
|
/* 0x000 */
|
||||||
|
0, zALEM, zYNEA, zXMA, zDYN, zIYC, zCLA, zDMAN, zTKA, zMNEA, zTKM, 0, 0, 0, zKNEZ, 0, // 0
|
||||||
|
zDMEA, zDNAA, zCCLA, zNDMEA, 0, zAMAAC, 0, 0, zCTMDYN, zXDA, 0, 0, 0, 0, 0, 0, // 1
|
||||||
|
zTBIT, zTBIT, zTBIT, zTBIT, 0, 0, 0, 0, zTAY, zTMA, zTMY, zTYA, zTAMDYN, zTAMIYC, zTAMZA, zTAM, // 2
|
||||||
|
zSAMAN, zCPAIZ, zIMAC, zMNEZ, 0, 0, 0, zYMCY, zTCY, zYNEC, zTCMIY, zACACC, zACNAA, zTAMACS, zALEC, 0, // 3
|
||||||
|
zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, zTCY, // 4
|
||||||
|
zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, zYNEC, // 5
|
||||||
|
zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, zTCMIY, // 6
|
||||||
|
zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, zACACC, // 7
|
||||||
|
/* 0x080 */
|
||||||
|
zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, zLDP, // 8
|
||||||
|
zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, zLDX4, // 9
|
||||||
|
zSBIT, zSBIT, zSBIT, zSBIT, zRBIT, zRBIT, zRBIT, zRBIT, 0, 0, 0, 0, 0, 0, 0, 0, // A
|
||||||
|
zTDO, zSAL, zCOMX8, zSBL, zREAC, zSEAC, zOFF, 0, 0, 0, 0, 0, 0, 0, 0, zRETN, // B
|
||||||
|
zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, zACNAA, // C
|
||||||
|
zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, zTAMACS, // D
|
||||||
|
zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, zALEC, // E
|
||||||
|
zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, zYMCY, // F
|
||||||
|
/* 0x100 */
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 0
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 1
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 2
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 3
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 4
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 5
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 6
|
||||||
|
zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, zBRANCH, // 7
|
||||||
|
/* 0x180 */
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // 8
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // 9
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // A
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // B
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // C
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // D
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, // E
|
||||||
|
zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL // F
|
||||||
|
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// disasm
|
// disasm
|
||||||
|
|
||||||
CPU_DISASSEMBLE( tms0980 )
|
static const UINT8 i2_value[4] =
|
||||||
{
|
{
|
||||||
char *dst = buffer;
|
0, 2, 1, 3
|
||||||
UINT16 op, instr;
|
};
|
||||||
|
|
||||||
|
static const UINT8 i3_value[8] =
|
||||||
|
{
|
||||||
|
0, 4, 2, 6, 1, 5, 3, 7
|
||||||
|
};
|
||||||
|
|
||||||
|
static const UINT8 i4_value[16] =
|
||||||
|
{
|
||||||
|
0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf
|
||||||
|
};
|
||||||
|
|
||||||
|
static offs_t tms1k_dasm(char *dst, const UINT8 *oprom, const UINT8 *lut_mnemonic, UINT16 opcode_mask)
|
||||||
|
{
|
||||||
|
// get current opcode
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
|
UINT16 op = oprom[pos++];
|
||||||
|
if (opcode_mask & 0x100)
|
||||||
|
op = (op << 8 | oprom[pos++]) & 0x1ff;
|
||||||
|
|
||||||
op = ( ( oprom[pos] << 8 ) | oprom[pos + 1] ) & 0x01FF;
|
// convert to mnemonic/param
|
||||||
pos += 2;
|
UINT16 instr = lut_mnemonic[op];
|
||||||
|
dst += sprintf(dst, "%-8s ", s_mnemonic[instr]);
|
||||||
instr = tms0980_mnemonic[op];
|
|
||||||
|
|
||||||
dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
|
|
||||||
|
|
||||||
switch( s_addressing[instr] )
|
switch( s_addressing[instr] )
|
||||||
{
|
{
|
||||||
default:
|
|
||||||
case zB0:
|
|
||||||
break;
|
|
||||||
case zI2:
|
case zI2:
|
||||||
dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
|
dst += sprintf(dst, "%d", i2_value[op & 0x03]);
|
||||||
break;
|
|
||||||
case zI4:
|
|
||||||
dst += sprintf( dst, "%d", tms0980_i4_value[ op & 0x0F ] );
|
|
||||||
break;
|
|
||||||
case zB7:
|
|
||||||
dst += sprintf( dst, "$%02X", ( op & 0x7F ) << 1 );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CPU_DISASSEMBLE( tms1000 )
|
|
||||||
{
|
|
||||||
char *dst = buffer;
|
|
||||||
UINT8 op, instr;
|
|
||||||
int pos = 0;
|
|
||||||
|
|
||||||
op = oprom[pos];
|
|
||||||
pos += 1;
|
|
||||||
|
|
||||||
instr = tms1000_mnemonic[op];
|
|
||||||
|
|
||||||
dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
|
|
||||||
|
|
||||||
switch( s_addressing[instr] )
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case zB0:
|
|
||||||
break;
|
|
||||||
case zI2:
|
|
||||||
dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
|
|
||||||
break;
|
|
||||||
case zI4:
|
|
||||||
dst += sprintf( dst, "%d", tms0980_i4_value[ op & 0x0F ] );
|
|
||||||
break;
|
|
||||||
case zB7:
|
|
||||||
dst += sprintf( dst, "$%02X", ( op & 0x3F ) );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CPU_DISASSEMBLE( tms1100 )
|
|
||||||
{
|
|
||||||
char *dst = buffer;
|
|
||||||
UINT8 op, instr;
|
|
||||||
int pos = 0;
|
|
||||||
|
|
||||||
op = oprom[pos];
|
|
||||||
pos += 1;
|
|
||||||
|
|
||||||
instr = tms1100_mnemonic[op];
|
|
||||||
|
|
||||||
dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
|
|
||||||
|
|
||||||
switch( s_addressing[instr] )
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case zB0:
|
|
||||||
break;
|
|
||||||
case zI2:
|
|
||||||
dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
|
|
||||||
break;
|
break;
|
||||||
case zI3:
|
case zI3:
|
||||||
dst += sprintf( dst, "%d", tms0980_i3_value[ op & 0x07 ] );
|
dst += sprintf(dst, "%d", i3_value[op & 0x07]);
|
||||||
break;
|
break;
|
||||||
case zI4:
|
case zI4:
|
||||||
dst += sprintf( dst, "%d", tms0980_i4_value[ op & 0x0F ] );
|
dst += sprintf(dst, "%d", i4_value[op & 0x0f]);
|
||||||
break;
|
break;
|
||||||
case zB7:
|
case zB7:
|
||||||
dst += sprintf( dst, "$%02X", ( op & 0x3F ) );
|
if (opcode_mask & 0x100)
|
||||||
|
dst += sprintf(dst, "$%02X", op << 1 & 0xfe);
|
||||||
|
else
|
||||||
|
dst += sprintf(dst, "$%02X", op & 0x3f);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
|
return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CPU_DISASSEMBLE(tms1000)
|
||||||
|
{
|
||||||
|
return tms1k_dasm(buffer, oprom, tms1000_mnemonic, 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
CPU_DISASSEMBLE(tms1100)
|
||||||
|
{
|
||||||
|
return tms1k_dasm(buffer, oprom, tms1100_mnemonic, 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
CPU_DISASSEMBLE(tms0980)
|
||||||
|
{
|
||||||
|
return tms1k_dasm(buffer, oprom, tms0980_mnemonic, 0x1ff);
|
||||||
|
}
|
||||||
|
|
||||||
|
CPU_DISASSEMBLE(tp0320)
|
||||||
|
{
|
||||||
|
return tms1k_dasm(buffer, oprom, tp0320_mnemonic, 0x1ff);
|
||||||
|
}
|
||||||
|
@ -181,6 +181,7 @@ CPU_DISASSEMBLE( tms7000 );
|
|||||||
CPU_DISASSEMBLE( tms9900 );
|
CPU_DISASSEMBLE( tms9900 );
|
||||||
CPU_DISASSEMBLE( tms9980 );
|
CPU_DISASSEMBLE( tms9980 );
|
||||||
CPU_DISASSEMBLE( tms9995 );
|
CPU_DISASSEMBLE( tms9995 );
|
||||||
|
CPU_DISASSEMBLE( tp0320 );
|
||||||
CPU_DISASSEMBLE( tx0_64kw );
|
CPU_DISASSEMBLE( tx0_64kw );
|
||||||
CPU_DISASSEMBLE( tx0_8kw );
|
CPU_DISASSEMBLE( tx0_8kw );
|
||||||
CPU_DISASSEMBLE( ucom4 );
|
CPU_DISASSEMBLE( ucom4 );
|
||||||
@ -333,6 +334,7 @@ static const dasm_table_entry dasm_table[] =
|
|||||||
{ "tms9900", _16be, 0, CPU_DISASSEMBLE_NAME(tms9900) },
|
{ "tms9900", _16be, 0, CPU_DISASSEMBLE_NAME(tms9900) },
|
||||||
{ "tms9980", _8bit, 0, CPU_DISASSEMBLE_NAME(tms9980) },
|
{ "tms9980", _8bit, 0, CPU_DISASSEMBLE_NAME(tms9980) },
|
||||||
{ "tms9995", _8bit, 0, CPU_DISASSEMBLE_NAME(tms9995) },
|
{ "tms9995", _8bit, 0, CPU_DISASSEMBLE_NAME(tms9995) },
|
||||||
|
{ "tp0320", _16be, 0, CPU_DISASSEMBLE_NAME(tp0320) },
|
||||||
{ "tx0_64kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_64kw) },
|
{ "tx0_64kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_64kw) },
|
||||||
{ "tx0_8kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_8kw) },
|
{ "tx0_8kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_8kw) },
|
||||||
{ "ucom4", _8bit, 0, CPU_DISASSEMBLE_NAME(ucom4) },
|
{ "ucom4", _8bit, 0, CPU_DISASSEMBLE_NAME(ucom4) },
|
||||||
|
Loading…
Reference in New Issue
Block a user