nes-emu
Version:
A NES emulator
64 lines (63 loc) • 1.59 kB
JavaScript
var _ = _interopRequireDefault(require("."));
var _createTestContext = _interopRequireDefault(require("../../helpers/createTestContext"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const should = require("chai").Should();
describe("instructions", () => {
describe("logical", () => {
let cpu, context;
beforeEach(() => {
({
cpu,
context
} = (0, _createTestContext.default)());
});
[{
instruction: "AND",
value1: 0b10100100,
value2: 0b10000100,
result: 0b10000100,
zero: false,
negative: true
}, {
instruction: "EOR",
value1: 0b00100100,
value2: 0b00010100,
result: 0b00110000,
zero: false,
negative: false
}, {
instruction: "EOR",
value1: 0b11111111,
value2: 0b11111111,
result: 0b00000000,
zero: true,
negative: false
}, {
instruction: "ORA",
value1: 0b00100100,
value2: 0b00010100,
result: 0b00110100,
zero: false,
negative: false
}].forEach(_ref => {
let {
instruction,
value1,
value2,
result,
zero,
negative
} = _ref;
describe(instruction, () => {
it("stores the right result", () => {
cpu.registers.a.value = value1;
_.default[instruction].execute(context, value2);
cpu.registers.a.value.should.equal(result);
cpu.flags.z = zero;
cpu.flags.n = negative;
});
});
});
});
});
;