Issue #16: Memory window should not reset device registers
This commit is contained in:
1 parent
9cdd718e8d
commit
96819f1bf7
26 files changed
+355
-318
No files matched your search
@@ -117,31 +117,31 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
0x1e, 0x04, 0x2c); // ASL $2c04,X
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0x2c30));
|
||||
assertEquals(0x00, bus.read(0x2c30, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x02, bus.read(0x2c31));
|
||||
assertEquals(0x02, bus.read(0x2c31, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x04, bus.read(0x2c32));
|
||||
assertEquals(0x04, bus.read(0x2c32, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x88, bus.read(0x2c33));
|
||||
assertEquals(0x88, bus.read(0x2c33, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0x2c34));
|
||||
assertEquals(0x00, bus.read(0x2c34, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertTrue(cpu.getCarryFlag());
|
||||
@@ -229,61 +229,61 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
0x3e, 0x01, 0x10); // ROL $1001,X (m=%10000001, c=0)
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0x1070));
|
||||
assertEquals(0x00, bus.read(0x1070, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x02, bus.read(0x1071));
|
||||
assertEquals(0x02, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step(2);
|
||||
assertEquals(0x05, bus.read(0x1071));
|
||||
assertEquals(0x05, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x0a, bus.read(0x1071));
|
||||
assertEquals(0x0a, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x14, bus.read(0x1071));
|
||||
assertEquals(0x14, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x28, bus.read(0x1071));
|
||||
assertEquals(0x28, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x50, bus.read(0x1071));
|
||||
assertEquals(0x50, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0xa0, bus.read(0x1071));
|
||||
assertEquals(0xa0, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x40, bus.read(0x1071));
|
||||
assertEquals(0x40, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertTrue(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x81, bus.read(0x1071));
|
||||
assertEquals(0x81, bus.read(0x1071, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
@@ -346,38 +346,38 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
0x5e, 0x05, 0xab); // LSR $ab05,X
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab30));
|
||||
assertEquals(0x00, bus.read(0xab30, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab31));
|
||||
assertEquals(0x00, bus.read(0xab31, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertTrue(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x01, bus.read(0xab32));
|
||||
assertEquals(0x01, bus.read(0xab32, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x22, bus.read(0xab33));
|
||||
assertEquals(0x22, bus.read(0xab33, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x40, bus.read(0xab34));
|
||||
assertEquals(0x40, bus.read(0xab34, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
// Setting Carry should not affect the result.
|
||||
cpu.step(2);
|
||||
assertEquals(0x01, bus.read(0xab35));
|
||||
assertEquals(0x01, bus.read(0xab35, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
@@ -609,61 +609,61 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
cpu.setXRegister(0x30);
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab40));
|
||||
assertEquals(0x00, bus.read(0xab40, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x08, bus.read(0xab41));
|
||||
assertEquals(0x08, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x04, bus.read(0xab41));
|
||||
assertEquals(0x04, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x02, bus.read(0xab41));
|
||||
assertEquals(0x02, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x01, bus.read(0xab41));
|
||||
assertEquals(0x01, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab41));
|
||||
assertEquals(0x00, bus.read(0xab41, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertTrue(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x80, bus.read(0xab41));
|
||||
assertEquals(0x80, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x40, bus.read(0xab41));
|
||||
assertEquals(0x40, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x20, bus.read(0xab41));
|
||||
assertEquals(0x20, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x10, bus.read(0xab41));
|
||||
assertEquals(0x10, bus.read(0xab41, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
assertFalse(cpu.getCarryFlag());
|
||||
@@ -677,7 +677,7 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
cpu.setAccumulator(0x00);
|
||||
bus.loadProgram(0x9d, 0x10, 0xab); // STA $ab10,X
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab40));
|
||||
assertEquals(0x00, bus.read(0xab40, true));
|
||||
// STA should have NO affect on flags.
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
@@ -688,7 +688,7 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
cpu.setAccumulator(0x0f);
|
||||
bus.loadProgram(0x9d, 0x10, 0xab); // STA $ab10,X
|
||||
cpu.step();
|
||||
assertEquals(0x0f, bus.read(0xab40));
|
||||
assertEquals(0x0f, bus.read(0xab40, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
|
||||
@@ -698,7 +698,7 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
cpu.setAccumulator(0x80);
|
||||
bus.loadProgram(0x9d, 0x10, 0xab); // STA $ab10,X
|
||||
cpu.step();
|
||||
assertEquals(0x80, bus.read(0xab40));
|
||||
assertEquals(0x80, bus.read(0xab40, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
}
|
||||
@@ -808,22 +808,22 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
cpu.setXRegister(0x30);
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0xff, bus.read(0xab40));
|
||||
assertEquals(0xff, bus.read(0xab40, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab41));
|
||||
assertEquals(0x00, bus.read(0xab41, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x7f, bus.read(0xab42));
|
||||
assertEquals(0x7f, bus.read(0xab42, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0xfe, bus.read(0xab43));
|
||||
assertEquals(0xfe, bus.read(0xab43, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
}
|
||||
@@ -1051,17 +1051,17 @@ public class CpuAbsoluteXModeTest extends TestCase {
|
||||
0xfe, 0x12, 0xab); // INC $ab12,X
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x01, bus.read(0xab30));
|
||||
assertEquals(0x01, bus.read(0xab30, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x80, bus.read(0xab31));
|
||||
assertEquals(0x80, bus.read(0xab31, true));
|
||||
assertFalse(cpu.getZeroFlag());
|
||||
assertTrue(cpu.getNegativeFlag());
|
||||
|
||||
cpu.step();
|
||||
assertEquals(0x00, bus.read(0xab32));
|
||||
assertEquals(0x00, bus.read(0xab32, true));
|
||||
assertTrue(cpu.getZeroFlag());
|
||||
assertFalse(cpu.getNegativeFlag());
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user