nes-emu
Version:
A NES emulator
33 lines (32 loc) • 1.24 kB
JavaScript
;
var _InMemoryRegister = _interopRequireDefault(require("./InMemoryRegister"));
var _memory = require("../memory");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const should = require("chai").Should();
describe("registers", () => {
describe("InMemoryRegister", () => {
let memory, register;
beforeEach(() => {
memory = _memory.WithCompositeMemory.createSegment([new _InMemoryRegister.default(),
// byte 0
new _InMemoryRegister.default(),
// byte 1
new _InMemoryRegister.default(),
// byte 2
register = new _InMemoryRegister.default() // byte 3
.addField("booleanBit2", 2).addReadOnlyField("shortNumberBit5", 5, 2).addField("longNumberBit4", 4, 4)]);
});
it("allows reading subfields", () => {
memory.writeAt(3, 0b01100100);
register.booleanBit2.should.equal(1);
register.shortNumberBit5.should.equal(0b11);
register.longNumberBit4.should.equal(0b0110);
});
it("allows writing subfields", () => {
register.booleanBit2 = 1;
memory.readAt(3).should.equal(0b00000100);
register.longNumberBit4 = 0b1101;
memory.readAt(3).should.equal(0b11010100);
});
});
});