UNPKG

fma-snes65816

Version:
190 lines (174 loc) 6.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _InstructionParameter = require('./InstructionParameter'); var Parameter = _interopRequireWildcard(_InstructionParameter); var _InstructionWriter = require('./InstructionWriter'); var _InstructionWriter2 = _interopRequireDefault(_InstructionWriter); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var InstructionType = function () { function InstructionType(p1, p2, writer) { (0, _classCallCheck3.default)(this, InstructionType); if (writer === undefined || p1 === undefined || p2 === undefined) { throw new Error('Missing parameter'); } this.p1 = p1; this.p2 = p2; this.writer = writer; } (0, _createClass3.default)(InstructionType, null, [{ key: 'alias', value: function alias(when, equals) { return new InstructionType(when.p1, when.p2, equals.writer); } }, { key: 'brk', value: function brk() { return new InstructionType(Parameter.NONE, Parameter.NONE, _InstructionWriter2.default.brk); } }, { key: 'addr', value: function addr() { return new InstructionType(Parameter.ADDRESS, Parameter.NONE, _InstructionWriter2.default.im16); } }, { key: 'mv', value: function mv() { return new InstructionType(Parameter.ADDRESS, Parameter.ADDRESS, _InstructionWriter2.default.mv); } }, { key: 'addr_pc', value: function addr_pc() { return new InstructionType(Parameter.ADDRESS, Parameter.NONE, _InstructionWriter2.default.im16); } }, { key: 'iaddrx', value: function iaddrx() { return new InstructionType(Parameter.INDIRECT_X, Parameter.NONE, _InstructionWriter2.default.im16); } }, { key: 'addrx', value: function addrx() { return new InstructionType(Parameter.ADDRESS, Parameter.X, _InstructionWriter2.default.im16); } }, { key: 'addry', value: function addry() { return new InstructionType(Parameter.ADDRESS, Parameter.Y, _InstructionWriter2.default.im16); } }, { key: 'impl', value: function impl() { return new InstructionType(Parameter.NONE, Parameter.NONE, _InstructionWriter2.default.impl); } }, { key: 'a', value: function a() { return new InstructionType(Parameter.A, Parameter.NONE, _InstructionWriter2.default.impl); } }, { key: 'idp', value: function idp() { return new InstructionType(Parameter.INDIRECT, Parameter.NONE, _InstructionWriter2.default.im8); } }, { key: 'isry', value: function isry() { return new InstructionType(Parameter.__FUTURE, Parameter.__FUTURE, null); } }, { key: 'idpx', value: function idpx() { return new InstructionType(Parameter.INDIRECT, Parameter.X, _InstructionWriter2.default.im8); } }, { key: 'dpx', value: function dpx() { return new InstructionType(Parameter.DP, Parameter.X, _InstructionWriter2.default.im8); } }, { key: 'idpy', value: function idpy() { return new InstructionType(Parameter.INDIRECT, Parameter.Y, _InstructionWriter2.default.im8); } }, { key: 'dpy', value: function dpy() { return new InstructionType(Parameter.DP, Parameter.Y, _InstructionWriter2.default.im8); } }, { key: 'ildpy', value: function ildpy() { return new InstructionType(Parameter.LONG_INDIRECT, Parameter.Y, _InstructionWriter2.default.im8); } }, { key: 'im', value: function im() { return new InstructionType(Parameter.CONSTANT, Parameter.NONE, _InstructionWriter2.default.im8); } }, { key: 'im_16', value: function im_16() { return new InstructionType(Parameter.CONSTANT, Parameter.NONE, _InstructionWriter2.default.im16); } }, { key: 'im_a', value: function im_a() { return new InstructionType(Parameter.CONSTANT, Parameter.NONE, _InstructionWriter2.default.im_a); } }, { key: 'im_x', value: function im_x() { return new InstructionType(Parameter.CONSTANT, Parameter.NONE, _InstructionWriter2.default.im_xy); } }, { key: 'im_y', value: function im_y() { return new InstructionType(Parameter.CONSTANT, Parameter.NONE, _InstructionWriter2.default.im_xy); } }, { key: 'sr', value: function sr() { return new InstructionType(Parameter.ADDRESS, Parameter.S, _InstructionWriter2.default.im8); } }, { key: 'dp', value: function dp() { return new InstructionType(Parameter.DP, Parameter.NONE, _InstructionWriter2.default.im8); } }, { key: 'ildp', value: function ildp() { return new InstructionType(Parameter.LONG_INDIRECT, Parameter.NONE, _InstructionWriter2.default.im8); } }, { key: 'long', value: function long() { return new InstructionType(Parameter.LONG_ADDRESS, Parameter.NONE, _InstructionWriter2.default.im24); } }, { key: 'longx', value: function longx() { return new InstructionType(Parameter.LONG_ADDRESS, Parameter.X, _InstructionWriter2.default.im24); } }, { key: 'relb', value: function relb() { return new InstructionType(Parameter.ADDRESS, Parameter.NONE, _InstructionWriter2.default.rel8); } }, { key: 'relw', value: function relw() { return new InstructionType(Parameter.ADDRESS, Parameter.NONE, _InstructionWriter2.default.rel16); } }]); return InstructionType; }(); exports.default = InstructionType; //# sourceMappingURL=InstructionType.js.map