m68kdecode
Version:
Port of deplinenoise/m68kdecode to Typescript
40 lines • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.u8 = exports.i8 = exports.u16 = exports.i16 = exports.drDisp = exports.drDispScale = exports.simpleDisp = exports.getBits = void 0;
function getBits(word, first, length) {
const s = word >> first;
const mask = (1 << length) - 1;
return s & mask;
}
exports.getBits = getBits;
/// Convenience function (for tests and decoding cases) to generate a simple displacement value.
const simpleDisp = (disp) => ({
baseDisplacement: disp,
outerDisplacement: 0,
indexer: null,
indirection: null,
});
exports.simpleDisp = simpleDisp;
/// Convenience function (for tests and decoding cases) to generate a displacement with a data
/// register and scale.
const drDispScale = (dr, disp, scale) => ({
baseDisplacement: disp,
outerDisplacement: 0,
indexer: { kind: "DR", reg: dr, scale },
indirection: null,
});
exports.drDispScale = drDispScale;
/// Convenience function (for tests and decoding cases) to generate a displacement with a data
/// register.
const drDisp = (dr, disp) => (0, exports.drDispScale)(dr, disp, 0);
exports.drDisp = drDisp;
// Signed integer conversion
const i16 = (v) => (v << 16) >> 16;
exports.i16 = i16;
const u16 = (v) => v & 0xffff;
exports.u16 = u16;
const i8 = (v) => (v << 24) >> 24;
exports.i8 = i8;
const u8 = (v) => v & 0xff;
exports.u8 = u8;
//# sourceMappingURL=lib.js.map