16 Commits

Author SHA1 Message Date
cc5dcdf07f Prepare 8.0.0 release 2018-06-04 09:07:30 -07:00
8f33699598 Bump to 7.0.1-pre 2018-06-04 09:06:48 -07:00
6c2e99a2df Tag 7.0.0 2018-06-04 09:06:27 -07:00
ebf3af2037 Merge pull request #9 from georgjz/pullrequest
ACME fix, scope improvements
2018-06-04 09:02:30 -07:00
f2a593e26d Remove duplicate DASM 2018-06-03 04:45:50 +02:00
8f9dc0f832 Restore old DASM file 2018-06-03 04:43:10 +02:00
f647fd3549 Merge branch 'develop' 2018-06-03 04:24:32 +02:00
c585064459 Streamline scopes 2018-06-03 04:16:44 +02:00
356800f90e Add generic 65816 and 6502 grammars 2018-06-03 04:12:44 +02:00
bbc826f2cd Add missing pseudo opcodes to acme 2018-06-03 02:58:07 +02:00
cf574c0d54 Fixed acme 2018-06-03 02:26:43 +02:00
f89a766cbc Merge remote-tracking branch 'upstream/master' 2018-06-03 00:54:06 +02:00
21e2bae3e4 Prepare 6.1.0 release 2018-05-27 19:33:30 -07:00
0779d70727 Add Marco Baye's ACME Crossassembler from GoDot 2018-05-27 19:23:47 -07:00
05941820ac Update README with addition and new contributor
Added WTCTools by Western Design Center support and georgjz to contributors.
2018-04-04 21:17:29 -07:00
4182828612 Rework dasm support 2018-03-22 20:12:15 +01:00
14 changed files with 302 additions and 94 deletions

View File

@ -2,14 +2,16 @@
Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers: Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers:
- [cc65](http://oliverschmidt.github.io/cc65/) - [ACME Crossassembler](https://sourceforge.net/projects/acme-crossass/)
- [cc65 (SNES Syntax: 65816, SPC700, SuperFX)](http://oliverschmidt.github.io/cc65/)
- [DASM](http://dasm-dillon.sourceforge.net/) (6502) - [DASM](http://dasm-dillon.sourceforge.net/) (6502)
- EDASM - [EDASM](https://archive.org/details/EDASM-ProDOS_Assembler_Tools_Manual)
- [Merlin](http://en.wikipedia.org/wiki/Merlin_(assembler)) - [Merlin](http://en.wikipedia.org/wiki/Merlin_(assembler))
- [MPW IIgs Assembler](http://store.16sector.com/index.php?main_page=product_info&products_id=24) - [MPW IIgs Assembler](http://store.16sector.com/index.php?main_page=product_info&products_id=24)
- [NinjaForce Assembler](http://www.ninjaforce.com/html/products_nf_assembler.html) - [NinjaForce Assembler](http://www.ninjaforce.com/html/products_nf_assembler.html)
- [ORCA/M](http://www.byteworks.us/Byte_Works/Products.html) - [ORCA/M](http://www.byteworks.us/Byte_Works/Products.html)
- [WLA-DX](http://www.villehelin.com/wla.html) - [WLA-DX](http://www.villehelin.com/wla.html)
- [WTCTools by Western Design Center](http://westerndesigncenter.com/wdc/tools.cfm)
Originally [converted](http://atom.io/docs/latest/converting-a-text-mate-bundle) Originally [converted](http://atom.io/docs/latest/converting-a-text-mate-bundle)
from the various other TextMate bundles: from the various other TextMate bundles:
@ -50,3 +52,5 @@ See last line in grammar files for names.
- [Matt Tuttle](https://github.com/MattTuttle) - [Matt Tuttle](https://github.com/MattTuttle)
- [Tommy Savaria](https://github.com/NewLunarFire) - [Tommy Savaria](https://github.com/NewLunarFire)
- [ARM9](https://github.com/ARM9) - [ARM9](https://github.com/ARM9)
- [georgjz](https://github.com/georgjz)
- [GoDot](http://www.godot64.de/)

View File

@ -1,42 +0,0 @@
'fileTypes': []
'name': '65816 Assembly'
'patterns': [
{
'include': '#M6502'
}
{
'include': '#M65C02'
}
{
'include': '#M65816L'
}
{
'include': '#M65816'
}
]
'repository':
'M6502':
'match': '\\b(?i:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\\b'
'name': 'keyword.mnemonic.6502'
'M65816':
'match': '\\b(?i:BRL|COP|JML|JSL|MVN|MVP|PEA|PEI|PER|PHB|PHD|PHK|PLB|PLD|REP|RTL|SEP|TCD|TCS|TDC|TSC|TXY|TYX|WDM|XBA|XCE)\\b'
'name': 'keyword.mnemonic.65816'
'M65816L':
'match': '\\b(?i:ADCL|ANDL|CMPL|EORL|LDAL|ORAL|SBCL|STAL)\\b'
'name': 'keyword.mnemonic.65816.long'
'M65C02':
'match': '\\b(?i:BRA|PHX|PHY|PLX|PLY|STP|STZ|TRB|TSB|WAI)\\b'
'name': 'keyword.mnemonic.65c02'
'binary_number':
'match': '%[01]+'
'name': 'constant.numeric.binary'
'decimal_number':
'match': '\\b([0-9]+)\\b'
'name': 'constant.numeric.decimal'
'hex_number':
'match': '\\$[A-Fa-f0-9]+'
'name': 'constant.numeric.hex'
'octal_number':
'match': '@([0-7]+)\\b'
'name': 'constant.numeric.octal'
'scopeName': 'source.assembly.65816'

View File

@ -0,0 +1,65 @@
# Generic 65816 grammar with semicolon comments
scopeName: 'source.assembly.65816.65816-generic'
fileTypes: []
name: '65816 Assembly'
patterns: [
{ include: 'source.65816-opcodes' } # add basic 65816 instruction set, includes 6502 and 65c02 opcodes
{ include: 'source.65816l-opcodes' } # extend with 6502X opcodes
{ include: '#comments' }
{ include: '#symbols' }
]
# Repository starts here ------------------------------------------------------
repository:
# comments
comments:
patterns: [
# semicolon comments
{
match: ';.*$'
name: 'comment.line.semicolon.65816-generic'
}
]
# symbols
symbols:
patterns: [
{
begin: '"'
beginCaptures:
0:
name: 'punctuation.definition.string.begin.65816-generic'
end: '"'
endCaptures:
0:
name: 'punctuation.definition.string.end.65816-generic'
name: 'string.quoted.double.assembly.65816-generic'
}
# absolut address/number
{
match: '\\#(\'.\'|[^\\s\']+)'
name: 'constant.numeric.hex.65816-generic'
}
# hex, prefixed with ampersand($)
{
match: '-?\\$[A-Fa-f0-9]+'
name: 'constant.numeric.hex.65816-generic'
}
# hex, suffixed with h(h)
{
match: '-?([0-9]+)h'
name: 'constant.numeric.hex.65816-generic'
}
# binary
{
match: '%[01]+'
name: 'constant.numeric.binary.65816-generic'
}
# decimal
{
match: '\\b([0-9]+)\\b'
name: 'constant.numeric.decimal.65816-generic'
}
]

View File

@ -0,0 +1,23 @@
# Pseudo opcodes for the 65816 used by some assemblers
scopeName: 'source.65816l-opcodes'
patterns: [
# The 65816 instruction set
{
include: '#mnemonics-65816l'
}
]
# Respository starts here -----------------------------------------------------
repository:
# 65816 instruction set
'mnemonics-65816l':
patterns: [
# mnemonics
{
match: '\\b(?i:ADCL|ANDL|CMPL|EORL|LDAL|ORAL|SBCL|STAL)\\b'
name: 'keyword.mnemonic.65816.65816l-opcodes'
}
]

View File

@ -0,0 +1,65 @@
# Generic 65C02 grammar with semicolon comments
scopeName: 'source.assembly.6502.65c02-generic'
fileTypes: []
name: '6502 Assembly'
patterns: [
{ include: 'source.65c02-opcodes' } # add basic 65816 instruction set, includes 6502 and 65c02 opcodes
{ include: 'source.6502x-opcodes' }
{ include: '#comments' }
{ include: '#symbols' }
]
# Repository starts here ------------------------------------------------------
repository:
# comments
comments:
patterns: [
# semicolon comments
{
match: ';.*$'
name: 'comment.line.semicolon.65c02-generic'
}
]
# symbols
symbols:
patterns: [
{
begin: '"'
beginCaptures:
0:
name: 'punctuation.definition.string.begin.65c02-generic'
end: '"'
endCaptures:
0:
name: 'punctuation.definition.string.end.65c02-generic'
name: 'string.quoted.double.assembly.65c02-generic'
}
# absolut address/number
{
match: '\\#(\'.\'|[^\\s\']+)'
name: 'constant.numeric.hex.65c02-generic'
}
# hex, prefixed with ampersand($)
{
match: '-?\\$[A-Fa-f0-9]+'
name: 'constant.numeric.hex.65c02-generic'
}
# hex, suffixed with h(h)
{
match: '-?([0-9]+)h'
name: 'constant.numeric.hex.65c02-generic'
}
# binary
{
match: '%[01]+'
name: 'constant.numeric.binary.65c02-generic'
}
# decimal
{
match: '\\b([0-9]+)\\b'
name: 'constant.numeric.decimal.65c02-generic'
}
]

108
grammars/acme.cson Normal file
View File

@ -0,0 +1,108 @@
# Syntax Highlighting for the acme directives
scopeName: 'source.assembly.6502.acme'
name: 'ACME Crossassembler'
filetypes: [
'a'
'asm'
]
patterns: [
{ include: 'source.6502-opcodes' }
{ include: 'source.6502x-opcodes' }
{ include: '#comments' }
# symbols, constants, numbers
{ include: '#symbols' }
# directives
{ include: '#directives' }
]
# Repository starts here ------------------------------------------------------
repository:
# comments
comments:
patterns: [
# semicolon comments
{
match: ';.*$'
name: 'comment.line.semicolon.acme'
}
]
# symbols
symbols:
patterns: [
# strings
{
begin: '"'
beginCaptures:
0:
name: 'punctuation.definition.string.begin.acme'
end: '"'
endCaptures:
0:
name: 'punctuation.definition.string.end.acme'
name: 'string.quoted.double.assembly.acme'
}
# absolut addressing/numbering
{
match: '\\#(\'.\'|[^\\s\']+)'
name: 'constant.numeric.hex.acme'
}
# hex, prefixed with dollar ($)
{
match: '-?\\$[A-Fa-f0-9]+'
name: 'constant.numeric.hex.acme'
}
# binary prefixed with %
{
match: '%[01]+'
name: 'constant.numeric.binary.acme'
}
# decimal
{
match: '\\b([0-9]+)\\b'
name: 'constant.numeric.decimal.acme'
}
]
# assembler directives
directives:
patterns: [
# File and Symbol control
{
match: '!\\b(?i:source|src|eof|endoffile|realpc|pseudopc|zn|(sub)?zone|set|to|bin(ary)?|sl|symbollist|warn|error|serious|initmem|cbm|addr(ess)?)\\b'
name: 'support.function.pseudo.acme'
}
# Parsing control
{
match: '!\\b(?i:cpu|al|as|rl|rs|08|by|byte|([bl]e)?(16|24|32)|wo|word|h|hex|fi|fill|align|skip|ct|convtab|tx|text|pet|scr|scrxor|raw)\\b'
name: 'support.function.pseudo.acme'
}
# Macro control
{
match: '(?i:!\\bmacro|\\+[a-zA-Z0-9])\\b'
name: 'support.function.pseudo.acme'
}
# Conditional control
{
match: '!\\b(?i:if|if(n)?def|for|do|while|until)\\b'
name: 'keyword.control.conditional.acme'
}
# Conditional control II
{
match: '\\b(?i:else|while|until)\\b'
name: 'keyword.control.conditional.acme'
}
# Operators
{
match: '!|\\+|\\-|\\/|\\*|<<|>>|&|\\||\\^|=|<|>|\\:|\\|\\|'
name: 'keyword.operator.acme'
}
# Operators II
{
match: '\\b(?i:and|not|mod|sh[lr]|x?or|eq|u?[gl]t)\\b'
name: 'keyword.operator.acme'
}
]

View File

@ -1,13 +1,14 @@
# Syntax Highlighting for the cc65 toolchain and 65816 support # Syntax Highlighting for the cc65 toolchain and 65816 support
scopeName: 'source.cc65-816-toolchain' scopeName: 'source.assembly.65816.cc65-816-toolchain'
name: '65816 Assembly (cc65)' # Name shown in Atom Editor grammar selection name: '65816 Assembly (cc65)' # Name shown in Atom Editor grammar selection
# File extensions associated with this grammar # File extensions associated with this grammar
fileTypes: [ fileTypes: [
's' 's'
] ]
# include all opcodes and directives the toolchain supports
patterns: [ patterns: [
{ include: 'source.65816-opcodes' } # add basic 65816 instruction set, includes 6502 and 65c02 opcodes { include: 'source.65816-opcodes' } # add basic 65816 instruction set, includes 6502 and 65c02 opcodes
{ include: 'source.6502x-opcodes' } # extend with 6502X opcodes { include: 'source.6502x-opcodes' } # extend with 6502X opcodes
{ include: 'source.cc65-directives' } # include the directives for the cc65 toolchain { include: 'source.cc65-directives' } # include the directives for the cc65 toolchain
] ]

View File

@ -3,17 +3,9 @@
scopeName: 'source.cc65-directives' scopeName: 'source.cc65-directives'
patterns: [ patterns: [
{ { include: '#comments' } # comments
include: '#comments' { include: '#symbols' } # symbols, constants, numbers
} { include: '#directives' } # cc65 assembler directives
# symbols, constants, numbers
{
include: '#symbols'
}
# directives
{
include: '#directives'
}
] ]
# Repository starts here ------------------------------------------------------ # Repository starts here ------------------------------------------------------
@ -43,7 +35,7 @@ repository:
name: 'punctuation.definition.string.end.cc65-directives' name: 'punctuation.definition.string.end.cc65-directives'
name: 'string.quoted.double.assembly.cc65-directives' name: 'string.quoted.double.assembly.cc65-directives'
} }
# absolut addressing/numbering # absolut address/number
{ {
match: '\\#(\'.\'|[^\\s\']+)' match: '\\#(\'.\'|[^\\s\']+)'
name: 'constant.numeric.hex.cc65-directives' name: 'constant.numeric.hex.cc65-directives'

View File

@ -1,6 +1,6 @@
# Syntax Highlighting for the cc65 toolchain ans 6502 support # Syntax Highlighting for the cc65 toolchain ans 6502 support
scopeName: 'source.cc65-toolchain' scopeName: 'source.assembly.6502.cc65-toolchain'
name: '6502 Assembly (cc65)' # Name shown in Atom Editor grammar selection name: '6502 Assembly (cc65)' # Name shown in Atom Editor grammar selection
# File extensions associated with this grammar # File extensions associated with this grammar
fileTypes: [ fileTypes: [
@ -8,7 +8,7 @@ fileTypes: [
] ]
# include all opcodes and directives the toolchain supports # include all opcodes and directives the toolchain supports
patterns: [ patterns: [
{ include: 'source.65c02-opcodes' } # the 65c02 opcodes, includes the basic 6502 instruction set { include: 'source.65c02-opcodes' } # the 65c02 opcodes, includes the basic 6502 instruction set
{ include: 'source.6502x-opcodes' } # extend with 6502X opcodes { include: 'source.6502x-opcodes' } # extend with 6502X opcodes
{ include: 'source.cc65-directives' } # include the directives for the cc65 toolchain { include: 'source.cc65-directives' } # include the directives for the cc65 toolchain
] ]

View File

@ -0,0 +1,14 @@
# Syntax Highlighting for the Western Design Center toolchain and 65816 support
scopeName: 'source.assembly.65816.wdc-816-toolchain'
name: '65816 Assembly (WDCTools)' # Name shown in Atom Editor grammar selection
# File extensions associated with this grammar
fileTypes: [
's'
]
# include all opcodes and directives the toolchain supports
patterns: [
{ include: 'source.65816-opcodes' } # the 65c02 opcodes, includes the basic 65c02 instruction set
{ include: 'source.65816-aliases' } # Opcode aliases for the 65816
{ include: 'source.wdc-directives' } # include the directives of the WDCxAS assemblers
]

View File

@ -3,17 +3,9 @@
scopeName: 'source.wdc-directives' scopeName: 'source.wdc-directives'
patterns: [ patterns: [
{ { include: '#comments' }
include: '#comments' { include: '#symbols' } # symbols, constants, numbers
} { include: '#directives' }
# symbols, constants, numbers
{
include: '#symbols'
}
# directives
{
include: '#directives'
}
] ]
# Repository starts here ------------------------------------------------------ # Repository starts here ------------------------------------------------------

View File

@ -1,7 +1,7 @@
# Syntax Highlighting for the Western Design Center toolchain and 6502 support # Syntax Highlighting for the Western Design Center toolchain and 6502 support
# TODO: extra addressing modes, chip point prefix, * comments # TODO: extra addressing modes, chip point prefix, * comments
scopeName: 'source.wdc-toolchain' scopeName: 'source.assembly.6502.wdc-toolchain'
name: '6502 Assembly (WDCTools)' # Name shown in Atom Editor grammar selection name: '6502 Assembly (WDCTools)' # Name shown in Atom Editor grammar selection
# File extensions associated with this grammar # File extensions associated with this grammar
fileTypes: [ fileTypes: [
@ -9,6 +9,6 @@ fileTypes: [
] ]
# include all opcodes and directives the toolchain supports # include all opcodes and directives the toolchain supports
patterns: [ patterns: [
{ include: 'source.65c02-opcodes' } # the 65c02 opcodes, includes the basic 6502 instruction set { include: 'source.65c02-opcodes' } # the 65c02 opcodes, includes the basic 6502 instruction set
{ include: 'source.wdc-directives' } # include the directives of the WDCxAS assemblers { include: 'source.wdc-directives' } # include the directives of the WDCxAS assemblers
] ]

View File

@ -1,14 +0,0 @@
# Syntax Highlighting for the Western Design Center toolchain and 65816 support
scopeName: 'source.wdc816-toolchain'
name: '65816 Assembly (WDCTools)' # Name shown in Atom Editor grammar selection
# File extensions associated with this grammar
fileTypes: [
's'
]
# include all opcodes and directives the toolchain supports
patterns: [
{ include: 'source.65816-opcodes' } # the 65c02 opcodes, includes the basic 65c02 instruction set
{ include: 'source.65816-aliases' } # Opcode aliases for the 65816
{ include: 'source.wdc-directives' } # include the directives of the WDCxAS assemblers
]

View File

@ -1,8 +1,8 @@
{ {
"name": "language-65asm", "name": "language-65asm",
"version": "6.0.0", "version": "8.0.0",
"description": "Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers.", "description": "Adds syntax highlighting to 65816/65C816/65802/6502/65C02 files in Atom, with extra support for various compilers.",
"repository": "https://github.com/MatthewCallis/language-65asm", "repository": "git@github.com:MatthewCallis/language-65asm.git",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"atom": ">0.50.0" "atom": ">0.50.0"