diff --git a/src/devices/cpu/t11/t11dasm.cpp b/src/devices/cpu/t11/t11dasm.cpp index 536d811eff0..13705f53477 100644 --- a/src/devices/cpu/t11/t11dasm.cpp +++ b/src/devices/cpu/t11/t11dasm.cpp @@ -119,10 +119,11 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data case 000: util::stream_format(stream, "HALT"); break; case 001: util::stream_format(stream, "WAIT"); break; case 002: util::stream_format(stream, "RTI"); flags = STEP_OUT; break; - case 003: util::stream_format(stream, "BPT"); break; - case 004: util::stream_format(stream, "IOT"); break; + case 003: util::stream_format(stream, "BPT"); flags = STEP_OVER; break; + case 004: util::stream_format(stream, "IOT"); flags = STEP_OVER; break; case 005: util::stream_format(stream, "RESET"); break; - case 006: util::stream_format(stream, "RTT"); break; + case 006: util::stream_format(stream, "RTT"); flags = STEP_OUT; break; + case 007: util::stream_format(stream, "MFPT"); break; default: util::stream_format(stream, ".WORD %06o", op); break; } break; @@ -135,21 +136,22 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data { case 000: if( (lo & 7) == 7 ) - util::stream_format(stream, "RTS"); + util::stream_format(stream, "RETURN"); else util::stream_format(stream, "RTS %s", regs[lo & 7]); flags = STEP_OUT; break; + // 00023x: SPL (not implemented on T-11) case 040: case 050: switch( lo & 15 ) { case 000: util::stream_format(stream, "NOP"); break; case 017: util::stream_format(stream, "CCC"); break; - case 001: util::stream_format(stream, "CEC"); break; - case 002: util::stream_format(stream, "CEV"); break; - case 004: util::stream_format(stream, "CEZ"); break; - case 010: util::stream_format(stream, "CEN"); break; + case 001: util::stream_format(stream, "CLC"); break; + case 002: util::stream_format(stream, "CLV"); break; + case 004: util::stream_format(stream, "CLZ"); break; + case 010: util::stream_format(stream, "CLN"); break; default: util::stream_format(stream, "Ccc #%02o", lo & 15); break; } break; @@ -207,7 +209,7 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data case 0004400: case 0004500: case 0004600: case 0004700: ea1 = MakeEA (lo, pc, opcodes); if ( (hi & 7) == 7 ) - util::stream_format(stream, "JSR %s", ea1); + util::stream_format(stream, "CALL %s", ea1); else util::stream_format(stream, "JSR %s,%s", regs[hi & 7], ea1); flags = STEP_OVER; @@ -260,13 +262,17 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data ea1 = MakeEA (lo, pc, opcodes); util::stream_format(stream, "ASL %s", ea1); break; -/* case 0006400: - util::stream_format(stream, "MARK #%o", lo); - break;*/ + // 0064xx: MARK (not implemented on T-11) + // 0065xx: MFPI (not implemented on T-11) + // 0066xx: MTPI (not implemented on T-11) case 0006700: ea1 = MakeEA (lo, pc, opcodes); util::stream_format(stream, "SXT %s", ea1); break; + // 0070xx: CSM (not implemented on T-11) + // 0072xx: TSTSET (not implemented on T-11) + // 0073xx: WRTLCK (not implemented on T-11) + case 0010000: case 0010100: case 0010200: case 0010300: case 0010400: case 0010500: case 0010600: case 0010700: case 0011000: case 0011100: case 0011200: case 0011300: case 0011400: case 0011500: case 0011600: case 0011700: case 0012000: case 0012100: case 0012200: case 0012300: case 0012400: case 0012500: case 0012600: case 0012700: @@ -277,13 +283,7 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data case 0017000: case 0017100: case 0017200: case 0017300: case 0017400: case 0017500: case 0017600: case 0017700: ea1 = MakeEA (hi, pc, opcodes); ea2 = MakeEA (lo, pc, opcodes); - if (lo == 046) /* MOV src,-(SP) */ - util::stream_format(stream, "PUSH %s", ea1); - else - if (hi == 026) /* MOV (SP)+,buffer */ - util::stream_format(stream, "POP %s", ea2); - else /* all other */ - util::stream_format(stream, "MOV %s,%s", ea1, ea2); + util::stream_format(stream, "MOV %s,%s", ea1, ea2); break; case 0020000: case 0020100: case 0020200: case 0020300: case 0020400: case 0020500: case 0020600: case 0020700: case 0021000: case 0021100: case 0021200: case 0021300: case 0021400: case 0021500: case 0021600: case 0021700: @@ -346,11 +346,16 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data util::stream_format(stream, "ADD %s,%s", ea1, ea2); break; + // 070xxx: MUL (not implemented on T-11) + // 071xxx: DIV (not implemented on T-11) + // 072xxx: ASH (not implemented on T-11) + // 073xxx: ASHC (not implemented on T-11) case 0074000: case 0074100: case 0074200: case 0074300: case 0074400: case 0074500: case 0074600: case 0074700: ea1 = MakeEA (lo, pc, opcodes); util::stream_format(stream, "XOR %s,%s", regs[hi & 7], ea1); break; - + // 075xxx: Floating Instruction Set (not implemented on T-11) + // 076xxx: Commercial Instruction Set (not implemented on T-11) case 0077000: case 0077100: case 0077200: case 0077300: case 0077400: case 0077500: case 0077600: case 0077700: addr = (pc - 2 * lo) & 0177777; util::stream_format(stream, "SOB %s,%06o", regs[hi & 7], addr); @@ -390,9 +395,11 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data break; case 0104000: case 0104100: case 0104200: case 0104300: util::stream_format(stream, "EMT %03o", op & 0377); + flags = STEP_OVER; break; case 0104400: case 0104500: case 0104600: case 0104700: util::stream_format(stream, "TRAP %03o", op & 0377); + flags = STEP_OVER; break; case 0105000: @@ -447,6 +454,8 @@ offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data ea1 = MakeEA (lo, pc, opcodes); util::stream_format(stream, "MTPS %s", ea1); break; + // 1065xx: MFPD (not implemented on T-11) + // 1066xx: MTPD (not implemented on T-11) case 0106700: ea1 = MakeEA (lo, pc, opcodes); util::stream_format(stream, "MFPS %s", ea1);