summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit149c6aa7ca28feb9862daef56489b1da32483c19 (patch)
tree1066c4dafb9286a2465be60461a20a2daa6d8228
parent6693a2612eed59b7766f1a0b47dfac71ac158fc0 (diff)
CF clear after binary operations on Intel 8008 CPU core
-rw-r--r--src/emu/cpu/i8008/i8008.c11
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