浏览代码

Small instruction fixup

v2
Nathaniel Walizer 6 个月前
父节点
当前提交
30fb37210f
共有 1 个文件被更改,包括 12 次插入3 次删除
  1. +12
    -3
      src/f6502.c

+ 12
- 3
src/f6502.c 查看文件

@@ -771,7 +771,7 @@ static int f6502_do_step(f6502_Core* core, int clocks) {


case 0x16: // ASL zp, X case 0x16: // ASL zp, X
ASL(A_ZPX); ASL(A_ZPX);
CLK(4);
CLK(6);
break; break;


// Undefined: 0x17 // Undefined: 0x17
@@ -1018,9 +1018,12 @@ static int f6502_do_step(f6502_Core* core, int clocks) {
// Undefined: 0x57 // Undefined: 0x57


case 0x58: // CLI case 0x58: // CLI
{ register uint8_t p_old = P;
{ //register uint8_t p_old = P;
CLR(P, f6502_Status_I); CLR(P, f6502_Status_I);
CLK(2); CLK(2);
// TODO: Should this not be delayed one instruction?
/*

if ( (p_old & f6502_Status_I) && if ( (p_old & f6502_Status_I) &&
(core->interrupts & f6502_Int_IRQ)) { (core->interrupts & f6502_Int_IRQ)) {
CLK(7); CLK(7);
@@ -1030,7 +1033,7 @@ static int f6502_do_step(f6502_Core* core, int clocks) {
PC = f6502_read16(&core->memory, PC = f6502_read16(&core->memory,
f6502_Vector_IRQ); f6502_Vector_IRQ);
} }
*/
} break; } break;


case 0x59: // EOR abs, Y case 0x59: // EOR abs, Y
@@ -1231,6 +1234,8 @@ static int f6502_do_step(f6502_Core* core, int clocks) {
CLK(4); CLK(4);
break; break;


// Undefined: 0x8F

case 0x90: // BCC case 0x90: // BCC
BIF(!(P & f6502_Status_C)); BIF(!(P & f6502_Status_C));
break; break;
@@ -1561,6 +1566,8 @@ static int f6502_do_step(f6502_Core* core, int clocks) {
CLK(5); CLK(5);
break; break;


// Undefined: 0xE7

case 0xE8: // INX case 0xE8: // INX
++X; ++X;
TEST(X); TEST(X);
@@ -1643,6 +1650,8 @@ static int f6502_do_step(f6502_Core* core, int clocks) {
CLK(7); CLK(7);
break; break;


// Undefined: 0xFF

/* "Special" i.e. "unofficial" instructions */ /* "Special" i.e. "unofficial" instructions */
/* Timing & progression only, no side effects */ /* Timing & progression only, no side effects */




正在加载...
取消
保存