UNPKG

68kcounter

Version:
377 lines (376 loc) 8.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.aliases = exports.isDirective = exports.Directives = exports.addressingModeGroups = exports.mnemonicGroups = exports.AddressingModes = exports.isQualifier = exports.Qualifiers = exports.isMnemonic = exports.Mnemonics = void 0; exports.Mnemonics = { ABCD: "ABCD", ADD: "ADD", ADDA: "ADDA", ADDI: "ADDI", ADDQ: "ADDQ", ADDX: "ADDX", AND: "AND", ANDI: "ANDI", ASL: "ASL", ASR: "ASR", BCC: "BCC", BCHG: "BCHG", BCLR: "BCLR", BCS: "BCS", BEQ: "BEQ", BGE: "BGE", BGT: "BGT", BHI: "BHI", BLE: "BLE", BLT: "BLT", BMI: "BMI", BNE: "BNE", BPL: "BPL", BRA: "BRA", BSET: "BSET", BSR: "BSR", BTST: "BTST", BVC: "BVC", BVS: "BVS", BLS: "BLS", CHK: "CHK", CLR: "CLR", CMP: "CMP", CMPA: "CMPA", CMPI: "CMPI", CMPM: "CMPM", DBCC: "DBCC", DBCS: "DBCS", DBEQ: "DBEQ", DBF: "DBF", DBGE: "DBGE", DBGT: "DBGT", DBHI: "DBHI", DBLE: "DBLE", DBLT: "DBLT", DBMI: "DBMI", DBNE: "DBNE", DBPL: "DBPL", DBT: "DBT", DBVC: "DBVC", DBVS: "DBVS", DBLS: "DBLS", DIVS: "DIVS", DIVU: "DIVU", EOR: "EOR", EORI: "EORI", EXG: "EXG", EXT: "EXT", JMP: "JMP", JSR: "JSR", LEA: "LEA", LINK: "LINK", LSL: "LSL", LSR: "LSR", MOVE: "MOVE", MOVEA: "MOVEA", MOVEM: "MOVEM", MOVEP: "MOVEP", MOVEQ: "MOVEQ", MULS: "MULS", MULU: "MULU", NBCD: "NBCD", NEG: "NEG", NEGX: "NEGX", NOP: "NOP", NOT: "NOT", OR: "OR", ORI: "ORI", PEA: "PEA", RESET: "RESET", ROL: "ROL", ROR: "ROR", ROXL: "ROXL", ROXR: "ROXR", RTE: "RTE", RTR: "RTR", RTS: "RTS", SBCD: "SBCD", SCC: "SCC", SCS: "SCS", SEQ: "SEQ", SGE: "SGE", SGT: "SGT", SHI: "SHI", SLE: "SLE", SLT: "SLT", SMI: "SMI", SNE: "SNE", SPL: "SPL", SF: "SF", ST: "ST", SLS: "SLS", STOP: "STOP", SUB: "SUB", SUBA: "SUBA", SUBI: "SUBI", SUBQ: "SUBQ", SUBX: "SUBX", SVC: "SVC", SVS: "SVS", SWAP: "SWAP", TAS: "TAS", TRAP: "TRAP", TRAPV: "TRAPV", TST: "TST", UNLK: "UNLK", ILLEGAL: "ILLEGAL", }; function isMnemonic(v) { return exports.Mnemonics[v] !== undefined; } exports.isMnemonic = isMnemonic; exports.Qualifiers = { B: "B", W: "W", L: "L", Q: "Q", S: "S", D: "D", X: "X", }; function isQualifier(v) { return exports.Qualifiers[v] !== undefined; } exports.isQualifier = isQualifier; exports.AddressingModes = { Dn: "Dn", An: "An", AnIndir: "(An)", AnPostInc: "(An)+", AnPreDec: "-(An)", AnDisp: "d(An)", AnDispIx: "d(An,ix)", PcDisp: "d(PC)", PcDispIx: "d(PC,ix)", AbsW: "xxx.W", AbsL: "xxx.L", RegList: "RegList", Imm: "#xxx", CCR: "ccr", SR: "sr", USP: "usp", }; exports.mnemonicGroups = { SCC: [ exports.Mnemonics.SCC, exports.Mnemonics.SCS, exports.Mnemonics.SEQ, exports.Mnemonics.SGE, exports.Mnemonics.SGT, exports.Mnemonics.SHI, exports.Mnemonics.SLE, exports.Mnemonics.SLT, exports.Mnemonics.SMI, exports.Mnemonics.SNE, exports.Mnemonics.SPL, exports.Mnemonics.SVC, exports.Mnemonics.SVS, exports.Mnemonics.ST, exports.Mnemonics.SF, exports.Mnemonics.SLS, ], BCC: [ exports.Mnemonics.BCC, exports.Mnemonics.BCS, exports.Mnemonics.BEQ, exports.Mnemonics.BGE, exports.Mnemonics.BGT, exports.Mnemonics.BHI, exports.Mnemonics.BLE, exports.Mnemonics.BLT, exports.Mnemonics.BMI, exports.Mnemonics.BNE, exports.Mnemonics.BPL, exports.Mnemonics.BVC, exports.Mnemonics.BVS, exports.Mnemonics.BLS, ], DBCC: [ exports.Mnemonics.DBCC, exports.Mnemonics.DBCS, exports.Mnemonics.DBEQ, exports.Mnemonics.DBF, exports.Mnemonics.DBGE, exports.Mnemonics.DBGT, exports.Mnemonics.DBHI, exports.Mnemonics.DBLE, exports.Mnemonics.DBLT, exports.Mnemonics.DBMI, exports.Mnemonics.DBNE, exports.Mnemonics.DBPL, exports.Mnemonics.DBT, exports.Mnemonics.DBVC, exports.Mnemonics.DBVS, exports.Mnemonics.DBLS, ], SHIFT: [ exports.Mnemonics.LSL, exports.Mnemonics.LSR, exports.Mnemonics.ASL, exports.Mnemonics.ASR, exports.Mnemonics.ROL, exports.Mnemonics.ROR, exports.Mnemonics.ROXL, exports.Mnemonics.ROXR, ], }; exports.addressingModeGroups = { EA: [ exports.AddressingModes.Dn, exports.AddressingModes.An, exports.AddressingModes.AnIndir, exports.AddressingModes.AnPostInc, exports.AddressingModes.AnPreDec, exports.AddressingModes.AnDisp, exports.AddressingModes.AnDispIx, exports.AddressingModes.PcDisp, exports.AddressingModes.PcDispIx, exports.AddressingModes.AbsW, exports.AddressingModes.AbsL, exports.AddressingModes.Imm, ], DI: [exports.AddressingModes.Dn, exports.AddressingModes.An, exports.AddressingModes.Imm], M: [ exports.AddressingModes.AnIndir, exports.AddressingModes.AnPostInc, exports.AddressingModes.AnPreDec, exports.AddressingModes.AnDisp, exports.AddressingModes.AnDispIx, exports.AddressingModes.PcDisp, exports.AddressingModes.PcDispIx, exports.AddressingModes.AbsW, exports.AddressingModes.AbsL, ], }; exports.Directives = { // Memory: DC: "DC", DCB: "DCB", DS: "DS", DB: "DB", DW: "DW", DL: "DL", // Sections: SECTION: "SECTION", BSS: "BSS", BSS_C: "BSS_C", BSS_F: "BSS_F", CSEG: "CSEG", CODE: "CODE", CODE_C: "CODE_C", CODE_F: "CODE_F", DATA: "DATA", DATA_C: "DATA_C", DATA_F: "DATA_F", DSEG: "DSEG", // Assignements: EQU: "EQU", FEQU: "FEQU", "=": "=", SET: "SET", // Imports: INCLUDE: "INCLUDE", INCDIR: "INCDIR", INCBIN: "INCBIN", // Conditions: IFEQ: "IFEQ", IFNE: "IFNE", IFGT: "IFGT", IFGE: "IFGE", IFLT: "IFLT", IFLE: "IFLE", IFB: "IFB", IFNB: "IFNB", IFC: "IFC", IFNC: "IFNC", IFD: "IFD", IFND: "IFND", IFMACROD: "IFMACROD", IFMACROND: "IFMACROND", ELSE: "ELSE", ENDC: "ENDC", ENDIF: "ENDIF", // Macro: MACRO: "MACRO", ENDM: "ENDM", // Repeat: REPT: "REPT", ENDR: "ENDR", // Alignment: ALIGN: "ALIGN", EVEN: "EVEN", ODD: "ODD", CNOP: "CNOP", // Other: OPT: "OPT", CARGS: "CARGS", CLRFO: "CLRFO", CLRSO: "CLRSO", COMM: "COMM", COMMENT: "COMMENT", ECHO: "ECHO", EINLINE: "EINLINE", END: "END", ENDF: "ENDF", ENDP: "ENDP", EREM: "EREM", FAIL: "FAIL", FPU: "FPU", IDNT: "IDNT", INLINE: "INLINE", JUMPPTR: "JUMPPTR", LIST: "LIST", LLEN: "LLEN", LOAD: "LOAD", MACHINE: "MACHINE", MEXIT: "MEXIT", MMU: "MMU", NOLIST: "NOLIST", NOPAGE: "NOPAGE", NREF: "NREF", OFFSET: "OFFSET", OPWORD: "OPWORD", ORG: "ORG", OUTPUT: "OUTPUT", PAGE: "PAGE", PLEN: "PLEN", PRINTT: "PRINTT", PRINTV: "PRINTV", PUBLIC: "PUBLIC", RECORD: "RECORD", REM: "REM", RORG: "RORG", RSRESET: "RSRESET", RSSET: "RSSET", SETFO: "SETFO", SETSO: "SETSO", SPC: "SPC", TEXT: "TEXT", TTL: "TTL", WEAK: "WEAK", XDEF: "XDEF", XREF: "XREF", }; function isDirective(v) { return exports.Directives[v] !== undefined; } exports.isDirective = isDirective; /** * Map alternate to canonical mnemonics used in our mappings. */ exports.aliases = { // Non-standard mnemonics BLO: exports.Mnemonics.BCS, DBLO: exports.Mnemonics.DBCS, SLO: exports.Mnemonics.SCS, DBRA: exports.Mnemonics.DBF, BHS: exports.Mnemonics.BCC, DBHS: exports.Mnemonics.DBCC, SHS: exports.Mnemonics.SCC, BLK: exports.Directives.DCB, };