broken-neees
Version:
A really broken NEEES emulator that introduces glitches and random bugs on purpose!
40 lines (39 loc) • 1.08 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _byte = _interopRequireDefault(require("../lib/byte"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class FlagsRegister {
constructor() {
this.c = false;
this.z = false;
this.i = false;
this.d = false;
this.v = false;
this.n = false;
}
getValue() {
return _byte.default.bitfield(this.c, this.z, this.i, this.d, 0, 1, this.v, this.n);
}
setValue(value) {
this.c = _byte.default.getFlag(value, 0);
this.z = _byte.default.getFlag(value, 1);
this.i = _byte.default.getFlag(value, 2);
this.d = _byte.default.getFlag(value, 3);
this.v = _byte.default.getFlag(value, 6);
this.n = _byte.default.getFlag(value, 7);
}
updateZero(value) {
this.z = value === 0;
}
updateNegative(value) {
this.n = _byte.default.isNegative(value);
}
updateZeroAndNegative(value) {
this.updateZero(value);
this.updateNegative(value);
}
}
exports.default = FlagsRegister;