diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2009-11-26 09:37:12 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2009-11-26 09:37:12 +0000 |
commit | 149c6aa7ca28feb9862daef56489b1da32483c19 (patch) | |
tree | 1066c4dafb9286a2465be60461a20a2daa6d8228 | |
parent | 6693a2612eed59b7766f1a0b47dfac71ac158fc0 (diff) |
CF clear after binary operations on Intel 8008 CPU core
-rw-r--r-- | src/emu/cpu/i8008/i8008.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/emu/cpu/i8008/i8008.c b/src/emu/cpu/i8008/i8008.c index 52b5c5f32c5..12a13c0434a 100644 --- a/src/emu/cpu/i8008/i8008.c +++ b/src/emu/cpu/i8008/i8008.c @@ -343,18 +343,21 @@ static void execute_one(i8008_state *cpustate, int opcode) tmp = GET_REG(cpustate,0) & ARG(cpustate); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 5 : // XRI tmp = GET_REG(cpustate,0) ^ ARG(cpustate); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 6 : // ORI tmp = GET_REG(cpustate,0) | ARG(cpustate); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 7 : // CPI @@ -374,12 +377,13 @@ static void execute_one(i8008_state *cpustate, int opcode) case 6 : // LrI cpustate->icount -= 8; if (REG_1==7) cpustate->icount -= 1; // LMI - SET_REG(cpustate,REG_1, ARG(cpustate)); break; + SET_REG(cpustate,REG_1, ARG(cpustate)); + break; case 7 : // RET cpustate->icount -= 5; POP_STACK(cpustate); cpustate->PC = GET_PC; - break; + break; } break; @@ -470,18 +474,21 @@ static void execute_one(i8008_state *cpustate, int opcode) tmp = GET_REG(cpustate,0) & GET_REG(cpustate,opcode & 7); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 5 : // XRx tmp = GET_REG(cpustate,0) ^ GET_REG(cpustate,opcode & 7); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 6 : // ORx tmp = GET_REG(cpustate,0) | GET_REG(cpustate,opcode & 7); SET_REG(cpustate,0,tmp & 0xff); UPDATE_FLAGS(cpustate,tmp & 0xff); + cpustate->CF = 0; break; case 7 : // CPx |