diff options
author | 2010-04-17 15:11:53 +0000 | |
---|---|---|
committer | 2010-04-17 15:11:53 +0000 | |
commit | 811b900a213ba4b8c57b8036e297650648736480 (patch) | |
tree | 53f48cd760fd0501ea24ba25a352cd1b13426276 /src/emu/cpu/f8 | |
parent | 7c364126ebc18c8df7100c34c74a249936d792ec (diff) |
F8 cpu disassembler improvements [Curt Coder]:
- fixed branch target PC
- added BP,BC,BZ,BR,BM,BNC,BNZ,BNO mnemonics
- removed extraneous $ from 2 byte hex values
Diffstat (limited to 'src/emu/cpu/f8')
-rw-r--r-- | src/emu/cpu/f8/f8.c | 2 | ||||
-rw-r--r-- | src/emu/cpu/f8/f8dasm.c | 49 |
2 files changed, 37 insertions, 14 deletions
diff --git a/src/emu/cpu/f8/f8.c b/src/emu/cpu/f8/f8.c index 3e82da7973e..2031d13df7a 100644 --- a/src/emu/cpu/f8/f8.c +++ b/src/emu/cpu/f8/f8.c @@ -1214,7 +1214,7 @@ static void f8_xm(f8_Regs *cpustate) /*************************************************** * O Z C S 1000 1101 - * 0 x 0 x CM + * x x x x CM ***************************************************/ static void f8_cm(f8_Regs *cpustate) /* SKR changed to match f8_ci(cpustate) */ { diff --git a/src/emu/cpu/f8/f8dasm.c b/src/emu/cpu/f8/f8dasm.c index ad21ab43ec6..187dd53a1e6 100644 --- a/src/emu/cpu/f8/f8dasm.c +++ b/src/emu/cpu/f8/f8dasm.c @@ -138,15 +138,15 @@ CPU_DISASSEMBLE( f8 ) sprintf(buffer, "OUT $%02X", oprom[size++]); break; case 0x28: /* 0010 1000 */ - sprintf(buffer, "PI $%02X$%02X", oprom[size + 0], oprom[size + 1]); + sprintf(buffer, "PI $%02X%02X", oprom[size + 0], oprom[size + 1]); size += 2; break; case 0x29: /* 0010 1001 */ - sprintf(buffer, "JMP $%02X$%02X", oprom[size + 0], oprom[size + 1]); + sprintf(buffer, "JMP $%02X%02X", oprom[size + 0], oprom[size + 1]); size += 2; break; case 0x2a: /* 0010 1010 */ - sprintf(buffer, "DCI $%02X$%02X", oprom[size + 0], oprom[size + 1]); + sprintf(buffer, "DCI $%02X%02X", oprom[size + 0], oprom[size + 1]); size += 2; break; case 0x2b: /* 0010 1011 */ @@ -282,16 +282,24 @@ CPU_DISASSEMBLE( f8 ) sprintf(buffer, "LIS $%02X", op & 0x0f); break; - case 0x80: /* 1000 0000 */ case 0x81: /* 1000 0001 */ + case 0x85: /* 1000 0101 */ + sprintf(buffer, "BP $%04X", pc + (INT8)oprom[size++] + 1); + break; + case 0x82: /* 1000 0010 */ - case 0x83: /* 1000 0011 */ + sprintf(buffer, "BC $%04X", pc + (INT8)oprom[size++] + 1); + break; + case 0x84: /* 1000 0100 */ - case 0x85: /* 1000 0101 */ + sprintf(buffer, "BZ $%04X", pc + (INT8)oprom[size++] + 1); + break; + + case 0x80: /* 1000 0000 */ + case 0x83: /* 1000 0011 */ case 0x86: /* 1000 0110 */ case 0x87: /* 1000 0111 */ - sprintf(buffer, "BT $%02X,$%04X", oprom[size + 0], pc + (INT8)oprom[size + 1]); - size += 2; + sprintf(buffer, "BT $%02X,$%04X", op & 0x07, pc + (INT8)oprom[size++] + 1); break; case 0x88: /* 1000 1000 */ @@ -323,18 +331,33 @@ CPU_DISASSEMBLE( f8 ) break; case 0x8f: /* 1000 1111 */ - sprintf(buffer, "BR7 $%04X", pc + (INT8)oprom[size++]); + sprintf(buffer, "BR7 $%04X", pc + (INT8)oprom[size++] + 1); break; case 0x90: /* 1001 0000 */ + sprintf(buffer, "BR $%04X", pc + (INT8)oprom[size++] + 1); + break; + case 0x91: /* 1001 0001 */ + case 0x95: /* 1001 0101 */ + sprintf(buffer, "BM $%04X", pc + (INT8)oprom[size++] + 1); + break; + case 0x92: /* 1001 0010 */ - case 0x93: /* 1001 0011 */ + sprintf(buffer, "BNC $%04X", pc + (INT8)oprom[size++] + 1); + break; + case 0x94: /* 1001 0100 */ - case 0x95: /* 1001 0101 */ + sprintf(buffer, "BNZ $%04X", pc + (INT8)oprom[size++] + 1); + break; + + case 0x98: /* 1001 1000 */ + sprintf(buffer, "BNO $%04X", pc + (INT8)oprom[size++] + 1); + break; + + case 0x93: /* 1001 0011 */ case 0x96: /* 1001 0110 */ case 0x97: /* 1001 0111 */ - case 0x98: /* 1001 1000 */ case 0x99: /* 1001 1001 */ case 0x9a: /* 1001 1010 */ case 0x9b: /* 1001 1011 */ @@ -342,7 +365,7 @@ CPU_DISASSEMBLE( f8 ) case 0x9d: /* 1001 1101 */ case 0x9e: /* 1001 1110 */ case 0x9f: /* 1001 1111 */ - sprintf(buffer, "BF $%02X,$%04X", op & 0x0f, pc + (INT8)oprom[size++]); + sprintf(buffer, "BF $%02X,$%04X", op & 0x0f, pc + (INT8)oprom[size++] + 1); break; case 0xa0: /* 1010 0000 */ |