trunk/src/emu/cpu/tms0980/tms0980d.c
| r243229 | r243230 | |
| 1 | | /******************************************************************* |
| 1 | // license:BSD-3-Clause |
| 2 | // copyright-holders:Wilbert Pol, hap |
| 3 | /* |
| 2 | 4 | |
| 3 | | TMS0980 disassembly |
| 5 | TMS0980/TMS1000-family disassembler |
| 4 | 6 | |
| 5 | | *******************************************************************/ |
| 7 | */ |
| 6 | 8 | |
| 7 | 9 | #include "emu.h" |
| 8 | 10 | #include "debugger.h" |
| 9 | 11 | #include "tms0980.h" |
| 10 | 12 | |
| 11 | 13 | |
| 12 | | #define _OVER DASMFLAG_STEP_OVER |
| 13 | | #define _OUT DASMFLAG_STEP_OUT |
| 14 | | |
| 15 | | |
| 16 | 14 | enum e_mnemonics { |
| 17 | 15 | zA10AAC=0, zA6AAC, zA8AAC, zAC1AC, zACACC, zACNAA, zALEC, zALEM, zAMAAC, zBRANCH, zCALL, zCCLA, |
| 18 | 16 | zCLA, zCLO, zCOMC, zCOMX, zCOMX8, zCPAIZ, zCTMDYN, zDAN, zDMAN, zDMEA, zDNAA, |
| r243229 | r243230 | |
| 24 | 22 | zILL |
| 25 | 23 | }; |
| 26 | 24 | |
| 27 | | |
| 28 | | enum e_addressing { |
| 29 | | zB0=0, zI2, zI3, zI4, zB7 |
| 30 | | }; |
| 31 | | |
| 32 | | |
| 33 | 25 | static const char *const s_mnemonic[] = { |
| 34 | | "a10aac", "a6aac", "a8aac", "ac1ac", "acacc", "acnaa", "alec", "alem", "amaac", "branch", "call", "ccla", |
| 35 | | "cla", "clo", "comc", "comx", "comx8", "cpaiz", "ctmdyn", "dan", "dman", "dmea", "dnaa", |
| 36 | | "dyn", "ia", "imac", "iyc", "knez", "ldp", "ldx", "ldx", "ldx", "mnea", "mnez", |
| 37 | | "ndmea", "off", "rbit", "reac", "retn", "rstr", "sal", "saman", "sbit", |
| 38 | | "sbl", "seac", "setr", "tam", "tamacs", "tamdyn", "tamiy", "tamiyc", "tamza", |
| 39 | | "tay", "tbit", "tcmiy", "tcy", "tdo", "tka", "tkm", "tma", |
| 40 | | "tmy", "tya", "xda", "xma", "ymcy", "ynea", "ynec", |
| 41 | | "illegal" |
| 26 | "A10AAC", "A6AAC", "A8AAC", "AC1AC", "ACACC", "ACNAA", "ALEC", "ALEM", "AMAAC", "BRANCH", "CALL", "CCLA", |
| 27 | "CLA", "CLO", "COMC", "COMX", "COMX8", "CPAIZ", "CTMDYN", "DAN", "DMAN", "DMEA", "DNAA", |
| 28 | "DYN", "IA", "IMAC", "IYC", "KNEZ", "LDP", "LDX", "LDX", "LDX", "MNEA", "MNEZ", |
| 29 | "NDMEA", "OFF", "RBIT", "REAC", "RETN", "RSTR", "SAL", "SAMAN", "SBIT", |
| 30 | "SBL", "SEAC", "SETR", "TAM", "TAMACS", "TAMDYN", "TAMIY", "TAMIYC", "TAMZA", |
| 31 | "TAY", "TBIT", "TCMIY", "TCY", "TDO", "TKA", "TKM", "TMA", |
| 32 | "TMY", "TYA", "XDA", "XMA", "YMCY", "YNEA", "YNEC", |
| 33 | "?" |
| 42 | 34 | }; |
| 43 | 35 | |
| 44 | 36 | |
| 37 | #define _OVER DASMFLAG_STEP_OVER |
| 38 | #define _OUT DASMFLAG_STEP_OUT |
| 39 | |
| 45 | 40 | static const UINT32 s_flags[] = { |
| 46 | 41 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _OVER, 0, |
| 47 | 42 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| r243229 | r243230 | |
| 54 | 49 | }; |
| 55 | 50 | |
| 56 | 51 | |
| 52 | enum e_addressing { |
| 53 | zB0=0, zI2, zI3, zI4, zB7 |
| 54 | }; |
| 55 | |
| 57 | 56 | static const UINT8 s_addressing[] = { |
| 58 | 57 | zB0, zB0, zB0, zI4, zI4, zI4, zI4, zB0, zB0, zB7, zB7, zB0, |
| 59 | 58 | zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, |