Some minor CPU bugfixes - one for 808x and one for the new dynarec.
This commit is contained in:
@@ -426,13 +426,13 @@ pfq_write(void)
|
|||||||
free in the queue. */
|
free in the queue. */
|
||||||
tempw = readmemwf(pfq_ip);
|
tempw = readmemwf(pfq_ip);
|
||||||
*(uint16_t *) &(pfq[pfq_pos]) = tempw;
|
*(uint16_t *) &(pfq[pfq_pos]) = tempw;
|
||||||
pfq_ip += 2;
|
pfq_ip = (pfq_ip + 2) & 0xffff;
|
||||||
pfq_pos += 2;
|
pfq_pos += 2;
|
||||||
} else if (!is8086 && (pfq_pos < pfq_size)) {
|
} else if (!is8086 && (pfq_pos < pfq_size)) {
|
||||||
/* The 8088 fetches 1 byte at a time, and only if there's at least 1 byte
|
/* The 8088 fetches 1 byte at a time, and only if there's at least 1 byte
|
||||||
free in the queue. */
|
free in the queue. */
|
||||||
pfq[pfq_pos] = readmembf(pfq_ip);
|
pfq[pfq_pos] = readmembf(pfq_ip);
|
||||||
pfq_ip++;
|
pfq_ip = (pfq_ip + 1) & 0xffff;
|
||||||
pfq_pos++;
|
pfq_pos++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2248,7 +2248,7 @@ execx86(int cycs)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
opcode = orig_opcode;
|
opcode = orig_opcode;
|
||||||
cpu_state.pc--;
|
cpu_state.pc = (cpu_state.pc - 1) & 0xffff;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
|
@@ -416,7 +416,11 @@ typedef struct {
|
|||||||
#define CPU_STATUS_PMODE (1 << 2)
|
#define CPU_STATUS_PMODE (1 << 2)
|
||||||
#define CPU_STATUS_V86 (1 << 3)
|
#define CPU_STATUS_V86 (1 << 3)
|
||||||
#define CPU_STATUS_SMM (1 << 4)
|
#define CPU_STATUS_SMM (1 << 4)
|
||||||
|
#ifdef USE_NEW_DYNAREC
|
||||||
|
#define CPU_STATUS_FLAGS 0xff
|
||||||
|
#else
|
||||||
#define CPU_STATUS_FLAGS 0xffff
|
#define CPU_STATUS_FLAGS 0xffff
|
||||||
|
#endif
|
||||||
|
|
||||||
/*If the cpu_state.flags below are set in cpu_cur_status, they must be set in block->status.
|
/*If the cpu_state.flags below are set in cpu_cur_status, they must be set in block->status.
|
||||||
Otherwise they are ignored*/
|
Otherwise they are ignored*/
|
||||||
|
Reference in New Issue
Block a user