Previous 199869 Revisions Next

r34285 Friday 9th January, 2015 at 11:39:10 UTC by hap
fix disasm for rbit and sbit
[src/emu/cpu/tms0980]tms0980d.c

trunk/src/emu/cpu/tms0980/tms0980d.c
r242796r242797
11/*******************************************************************
22
3tms0980d.c
4TMS0980 disassembly
3  TMS0980 disassembly
54
65*******************************************************************/
76
r242796r242797
1716enum e_mnemonics {
1817   zA10AAC=0, zA6AAC, zA8AAC, zAC1AC, zACACC, zACNAA, zALEC, zALEM, zAMAAC, zBRANCH, zCALL, zCCLA,
1918   zCLA, zCLO, zCOMC, zCOMX, zCOMX8, zCPAIZ, zCTMDYN, zDAN, zDMAN, zDMEA, zDNAA,
20   zDYN, zIA, zIMAC, zIYC, zKNE, zKNEZ, zLDP, zLDX, zLDX3, zLDX4, zMNEA, zMNEZ,
19   zDYN, zIA, zIMAC, zIYC, zKNEZ, zLDP, zLDX, zLDX3, zLDX4, zMNEA, zMNEZ,
2120   zNDMEA, zOFF, zRBIT, zREAC, zRETN, zRSTR, zSAL, zSAMAN, zSBIT,
2221   zSBL, zSEAC, zSETR, zTAM, zTAMACS, zTAMDYN, zTAMIY, zTAMIYC, zTAMZA,
2322   zTAY, zTBIT, zTCMIY, zTCY, zTDO, zTKA, zTKM, zTMA,
r242796r242797
2726
2827
2928enum e_addressing {
30   zB0=0, zB2, zI2, zI3, zI4, zB7
29   zB0=0, zI2, zI3, zI4, zB7
3130};
3231
3332
3433static const char *const s_mnemonic[] = {
3534   "a10aac", "a6aac", "a8aac", "ac1ac", "acacc", "acnaa", "alec", "alem", "amaac", "branch", "call", "ccla",
3635   "cla", "clo", "comc", "comx", "comx8", "cpaiz", "ctmdyn", "dan", "dman", "dmea", "dnaa",
37   "dyn", "ia", "imac", "iyc", "kne", "knez", "ldp", "ldx", "ldx", "ldx", "mnea", "mnez",
36   "dyn", "ia", "imac", "iyc", "knez", "ldp", "ldx", "ldx", "ldx", "mnea", "mnez",
3837   "ndmea", "off", "rbit", "reac", "retn", "rstr", "sal", "saman", "sbit",
3938   "sbl", "seac", "setr", "tam", "tamacs", "tamdyn", "tamiy", "tamiyc", "tamza",
4039   "tay", "tbit", "tcmiy", "tcy", "tdo", "tka", "tkm", "tma",
r242796r242797
4645static const UINT32 s_flags[] = {
4746   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _OVER, 0,
4847   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5049   0, 0, 0, 0, _OUT, 0, 0, 0, 0,
5150   0, 0, 0, 0, 0, 0, 0, 0, 0,
5251   0, 0, 0, 0, 0, 0, 0, 0,
r242796r242797
5857static const UINT8 s_addressing[] = {
5958   zB0, zB0, zB0, zI4, zI4, zI4, zI4, zB0, zB0, zB7, zB7, zB0,
6059   zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0,
61   zB0, zB0, zB0, zB0, zB0, zB0, zI4, zI2, zI3, zI4, zB0, zB0,
62   zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0, zB0,
63   zB0, zB0, zB0, zB0, zI4, zB0, zB0, zB0, zB2,
64   zB0, zB2, zI4, zI4, zB0, zB0, zB0, zB0,
60   zB0, zB0, zB0, zB0, zB0, zI4, zI2, zI3, zI4, zB0, zB0,
61   zB0, zB0, zI2, zB0, zB0, zB0, zB0, zB0, zI2,
62   zB0, zB0, zB0, zB0, zI4, zB0, zB0, zB0, zB0,
63   zB0, zI2, zI4, zI4, zB0, zB0, zB0, zB0,
6564   zB0, zB0, zB0, zB0, zI4, zB0, zI4,
6665   zB0
6766};
r242796r242797
7069static const UINT8 tms0980_mnemonic[512] = {
7170   /* 0x000 */
7271   zCOMX, zALEM, zYNEA, zXMA, zDYN, zIYC, zCLA, zDMAN,
73   zTKA, zMNEA, zTKM, zILL, zILL, zSETR, zKNE, zILL,
72   zTKA, zMNEA, zTKM, zILL, zILL, zSETR, zKNEZ, zILL,
7473   /* 0x010 */
7574   zDMEA, zDNAA, zCCLA, zNDMEA, zILL, zAMAAC, zILL, zILL,
7675   zCTMDYN, zXDA, zILL, zILL, zILL, zILL, zILL, zILL,
r242796r242797
234233   zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL, zCALL,
235234};
236235
236
237237static const UINT8 tms0980_i2_value[4] =
238238{
239239   0x00, 0x02, 0x01, 0x03
r242796r242797
246246{
247247   0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F
248248};
249static const UINT8 tms0980_bit_value[4] = { 1, 4, 2, 8 };
250249
251250
252251CPU_DISASSEMBLE( tms0980 ) {
r242796r242797
262261   dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
263262
264263   switch( s_addressing[instr] ) {
264   default:
265265   case zB0:
266266      break;
267   case zB2:
268      dst += sprintf( dst, "%d", tms0980_bit_value[ op & 3 ] );
269      break;
270267   case zI2:
271268      dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
272269      break;
r242796r242797
295292   dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
296293
297294   switch( s_addressing[instr] ) {
295   default:
298296   case zB0:
299297      break;
300   case zB2:
301      dst += sprintf( dst, "%d", tms0980_bit_value[ op & 3 ] );
302      break;
303298   case zI2:
304299      dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
305300      break;
r242796r242797
328323   dst += sprintf( dst, "%-8s ", s_mnemonic[instr] );
329324
330325   switch( s_addressing[instr] ) {
326   default:
331327   case zB0:
332328      break;
333   case zB2:
334      dst += sprintf( dst, "%d", tms0980_bit_value[ op & 3 ] );
335      break;
336329   case zI2:
337330      dst += sprintf( dst, "%d", tms0980_i2_value[ op & 0x03 ] );
338331      break;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team