diff --git a/grammars/asar.cson b/grammars/asar.cson index ab80250..7fb5547 100644 --- a/grammars/asar.cson +++ b/grammars/asar.cson @@ -9,6 +9,8 @@ patterns: [ { include: 'source.65816-opcodes' } { include: 'source.65816l-opcodes' } { include: 'source.65816alt-opcodes' } + { include: 'source.spc700-opcodes' } + { include: 'source.superfx-opcodes' } { include: '#comments' } { include: '#symbols' } { include: '#directives' } @@ -189,7 +191,7 @@ repository: } # operators { - match: '[-+/*^><|#\\[\\](),=.!&]' + match: '[-+/*^><|#\\[\\]()=.!&]' name: 'keyword.operator.asar' } # TODO: Add built-in functions diff --git a/grammars/spc700-opcodes.cson b/grammars/spc700-opcodes.cson new file mode 100644 index 0000000..5ae8b8e --- /dev/null +++ b/grammars/spc700-opcodes.cson @@ -0,0 +1,29 @@ +# Opcodes for the Sony SPC-700 audio processing unit used in the SNES + +scopeName: 'source.spc700-opcodes' + +patterns: [ + # The SPC700 instruction set aliases + { + include: '#mnemonics-spc700' + } +] + +# Respository starts here ----------------------------------------------------- +repository: + + # SPC700 instruction set + 'mnemonics-spc700': + patterns: [ + # mnemonics + { + match: '\\b(?i:ADC|ADDW|AND|AND1|ASL|BBC|BBS|BCC|BCS|BEQ|BMI|BNE|BPL|BVC|BVS|BRA|BRK|CALL|CBNE|CLR1|CLRC|CLRP|CLRV|CMP|CMPW|DAA|DAS|DBNZ|DEC|DECW|DI|DIV|EI|EOR|EOR1|INC|INCW|JMP|LSR|MOV|MOV1|MOVW|MUL|NOP|NOT1|NOTC|OR|OR1|PCALL|POP|PUSH|RET|RETI|ROL|ROR|SBC|SET1|SETC|SETP|SLEEP|STOP|SUBW|TCALL|TCLR1|TSET1|XCN)\\b' + name: 'keyword.mnemonic.spc700.spc700-opcodes' + } + # registers + { + match: '\\b(?i:F[0-9A-F]|SP|PC|PSW)\\b' + name: 'support.function.pseudo.spc700-opcodes' + # name: 'storage.other.register.spc700-opcodes' + } + ] diff --git a/grammars/superfx-opcodes.cson b/grammars/superfx-opcodes.cson new file mode 100644 index 0000000..7ff9b87 --- /dev/null +++ b/grammars/superfx-opcodes.cson @@ -0,0 +1,29 @@ +# Opcodes for the SuperFX DSP used in some SNES cartridges + +scopeName: 'source.superfx-opcodes' + +patterns: [ + # The SPC700 instruction set aliases + { + include: '#mnemonics-superfx' + } +] + +# Respository starts here ----------------------------------------------------- +repository: + + # SuperFX instruction set + 'mnemonics-superfx': + patterns: [ + # mnemonics + { + match: '\\b(?i:ADD|ADC|ALT1|ALT2|ALT3|AND|ASR|BCC|BCS|BEQ|BGE|BIC|BLT|BMI|BNE|BPL|BRA|BVC|BVS|CACHE|CMODE|CMP|COLOR|DEC|DIV2|FMULT|FROM|GETB|GETBH|GETBL|GETBS|GETC|HIB|IBT|INC|IWT|JAL|JMP|LDB|LDW|LEA|LINK|LJMP|LM|LMS|LMULT|LOB|LOOP|LSR|MERGE|MOVE|MOVEB|MOVES|MOVEW|MULT|NOP|NOT|OR|PLOT|POP|PUSH|RAMB|RET|ROL|ROMB|ROR|RPIX|SBC|SBK|SEX|SM|SMS|STB|STOP|STW|SUB|SWAP|TO|UMULT|WITH|XOR)\\b' + name: 'keyword.mnemonic.superfx.superfx-opcodes' + } + # registers + { + match: '\\b(?i:R0|R1|R2|R3|R4|R5|R6|R7|R8|R9|R10|R11|R12|R13|R14|R15|SP|LR|PC|SFR|BRAMR|PBR|ROMBR|CFGR|SCBR|CLSR|SCMR|VCR|RAMBR|CBR)\\b' + name: 'support.function.pseudo.superfx-opcodes' + # name: 'storage.other.register.superfx-opcodes' + } + ]