mirror of
https://github.com/holub/mame
synced 2025-05-25 07:15:25 +03:00
CF clear after binary operations on Intel 8008 CPU core
This commit is contained in:
parent
6693a2612e
commit
149c6aa7ca
@ -343,18 +343,21 @@ static void execute_one(i8008_state *cpustate, int opcode)
|
|||||||
tmp = GET_REG(cpustate,0) & ARG(cpustate);
|
tmp = GET_REG(cpustate,0) & ARG(cpustate);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 5 :
|
case 5 :
|
||||||
// XRI
|
// XRI
|
||||||
tmp = GET_REG(cpustate,0) ^ ARG(cpustate);
|
tmp = GET_REG(cpustate,0) ^ ARG(cpustate);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 6 :
|
case 6 :
|
||||||
// ORI
|
// ORI
|
||||||
tmp = GET_REG(cpustate,0) | ARG(cpustate);
|
tmp = GET_REG(cpustate,0) | ARG(cpustate);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 7 :
|
case 7 :
|
||||||
// CPI
|
// CPI
|
||||||
@ -374,12 +377,13 @@ static void execute_one(i8008_state *cpustate, int opcode)
|
|||||||
case 6 : // LrI
|
case 6 : // LrI
|
||||||
cpustate->icount -= 8;
|
cpustate->icount -= 8;
|
||||||
if (REG_1==7) cpustate->icount -= 1; // LMI
|
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
|
case 7 : // RET
|
||||||
cpustate->icount -= 5;
|
cpustate->icount -= 5;
|
||||||
POP_STACK(cpustate);
|
POP_STACK(cpustate);
|
||||||
cpustate->PC = GET_PC;
|
cpustate->PC = GET_PC;
|
||||||
break;
|
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);
|
tmp = GET_REG(cpustate,0) & GET_REG(cpustate,opcode & 7);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 5 :
|
case 5 :
|
||||||
// XRx
|
// XRx
|
||||||
tmp = GET_REG(cpustate,0) ^ GET_REG(cpustate,opcode & 7);
|
tmp = GET_REG(cpustate,0) ^ GET_REG(cpustate,opcode & 7);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 6 :
|
case 6 :
|
||||||
// ORx
|
// ORx
|
||||||
tmp = GET_REG(cpustate,0) | GET_REG(cpustate,opcode & 7);
|
tmp = GET_REG(cpustate,0) | GET_REG(cpustate,opcode & 7);
|
||||||
SET_REG(cpustate,0,tmp & 0xff);
|
SET_REG(cpustate,0,tmp & 0xff);
|
||||||
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
UPDATE_FLAGS(cpustate,tmp & 0xff);
|
||||||
|
cpustate->CF = 0;
|
||||||
break;
|
break;
|
||||||
case 7 :
|
case 7 :
|
||||||
// CPx
|
// CPx
|
||||||
|
Loading…
Reference in New Issue
Block a user