xref: /vim-8.2.3635/runtime/syntax/a65.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	xa 6502 cross assembler
3438f67a0SBram Moolenaar" Maintainer:	Clemens Kirchgatterer <[email protected]>
4*f37506f6SBram Moolenaar" Last Change:	2016 Aug 31
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11071d4279SBram Moolenaarsyn case ignore
12071d4279SBram Moolenaar
13071d4279SBram Moolenaar" Opcodes
14071d4279SBram Moolenaarsyn match a65Opcode	"\<PHP\($\|\s\)" nextgroup=a65Address
15071d4279SBram Moolenaarsyn match a65Opcode	"\<PLA\($\|\s\)" nextgroup=a65Address
16071d4279SBram Moolenaarsyn match a65Opcode	"\<PLX\($\|\s\)" nextgroup=a65Address
17071d4279SBram Moolenaarsyn match a65Opcode	"\<PLY\($\|\s\)" nextgroup=a65Address
18071d4279SBram Moolenaarsyn match a65Opcode	"\<SEC\($\|\s\)" nextgroup=a65Address
19071d4279SBram Moolenaarsyn match a65Opcode	"\<CLD\($\|\s\)" nextgroup=a65Address
20071d4279SBram Moolenaarsyn match a65Opcode	"\<SED\($\|\s\)" nextgroup=a65Address
21071d4279SBram Moolenaarsyn match a65Opcode	"\<CLI\($\|\s\)" nextgroup=a65Address
22071d4279SBram Moolenaarsyn match a65Opcode	"\<BVC\($\|\s\)" nextgroup=a65Address
23071d4279SBram Moolenaarsyn match a65Opcode	"\<BVS\($\|\s\)" nextgroup=a65Address
24071d4279SBram Moolenaarsyn match a65Opcode	"\<BCS\($\|\s\)" nextgroup=a65Address
25071d4279SBram Moolenaarsyn match a65Opcode	"\<BCC\($\|\s\)" nextgroup=a65Address
26071d4279SBram Moolenaarsyn match a65Opcode	"\<DEY\($\|\s\)" nextgroup=a65Address
27071d4279SBram Moolenaarsyn match a65Opcode	"\<DEC\($\|\s\)" nextgroup=a65Address
28071d4279SBram Moolenaarsyn match a65Opcode	"\<CMP\($\|\s\)" nextgroup=a65Address
29071d4279SBram Moolenaarsyn match a65Opcode	"\<CPX\($\|\s\)" nextgroup=a65Address
30071d4279SBram Moolenaarsyn match a65Opcode	"\<BIT\($\|\s\)" nextgroup=a65Address
31071d4279SBram Moolenaarsyn match a65Opcode	"\<ROL\($\|\s\)" nextgroup=a65Address
32071d4279SBram Moolenaarsyn match a65Opcode	"\<ROR\($\|\s\)" nextgroup=a65Address
33071d4279SBram Moolenaarsyn match a65Opcode	"\<ASL\($\|\s\)" nextgroup=a65Address
34071d4279SBram Moolenaarsyn match a65Opcode	"\<TXA\($\|\s\)" nextgroup=a65Address
35071d4279SBram Moolenaarsyn match a65Opcode	"\<TYA\($\|\s\)" nextgroup=a65Address
36071d4279SBram Moolenaarsyn match a65Opcode	"\<TSX\($\|\s\)" nextgroup=a65Address
37071d4279SBram Moolenaarsyn match a65Opcode	"\<TXS\($\|\s\)" nextgroup=a65Address
38071d4279SBram Moolenaarsyn match a65Opcode	"\<LDA\($\|\s\)" nextgroup=a65Address
39071d4279SBram Moolenaarsyn match a65Opcode	"\<LDX\($\|\s\)" nextgroup=a65Address
40071d4279SBram Moolenaarsyn match a65Opcode	"\<LDY\($\|\s\)" nextgroup=a65Address
41071d4279SBram Moolenaarsyn match a65Opcode	"\<STA\($\|\s\)" nextgroup=a65Address
42071d4279SBram Moolenaarsyn match a65Opcode	"\<PLP\($\|\s\)" nextgroup=a65Address
43071d4279SBram Moolenaarsyn match a65Opcode	"\<BRK\($\|\s\)" nextgroup=a65Address
44071d4279SBram Moolenaarsyn match a65Opcode	"\<RTI\($\|\s\)" nextgroup=a65Address
45071d4279SBram Moolenaarsyn match a65Opcode	"\<NOP\($\|\s\)" nextgroup=a65Address
46071d4279SBram Moolenaarsyn match a65Opcode	"\<SEI\($\|\s\)" nextgroup=a65Address
47071d4279SBram Moolenaarsyn match a65Opcode	"\<CLV\($\|\s\)" nextgroup=a65Address
48071d4279SBram Moolenaarsyn match a65Opcode	"\<PHA\($\|\s\)" nextgroup=a65Address
49071d4279SBram Moolenaarsyn match a65Opcode	"\<PHX\($\|\s\)" nextgroup=a65Address
50071d4279SBram Moolenaarsyn match a65Opcode	"\<BRA\($\|\s\)" nextgroup=a65Address
51071d4279SBram Moolenaarsyn match a65Opcode	"\<JMP\($\|\s\)" nextgroup=a65Address
52071d4279SBram Moolenaarsyn match a65Opcode	"\<JSR\($\|\s\)" nextgroup=a65Address
53071d4279SBram Moolenaarsyn match a65Opcode	"\<RTS\($\|\s\)" nextgroup=a65Address
54071d4279SBram Moolenaarsyn match a65Opcode	"\<CPY\($\|\s\)" nextgroup=a65Address
55071d4279SBram Moolenaarsyn match a65Opcode	"\<BNE\($\|\s\)" nextgroup=a65Address
56071d4279SBram Moolenaarsyn match a65Opcode	"\<BEQ\($\|\s\)" nextgroup=a65Address
57071d4279SBram Moolenaarsyn match a65Opcode	"\<BMI\($\|\s\)" nextgroup=a65Address
58071d4279SBram Moolenaarsyn match a65Opcode	"\<LSR\($\|\s\)" nextgroup=a65Address
59071d4279SBram Moolenaarsyn match a65Opcode	"\<INX\($\|\s\)" nextgroup=a65Address
60071d4279SBram Moolenaarsyn match a65Opcode	"\<INY\($\|\s\)" nextgroup=a65Address
61071d4279SBram Moolenaarsyn match a65Opcode	"\<INC\($\|\s\)" nextgroup=a65Address
62071d4279SBram Moolenaarsyn match a65Opcode	"\<ADC\($\|\s\)" nextgroup=a65Address
63071d4279SBram Moolenaarsyn match a65Opcode	"\<SBC\($\|\s\)" nextgroup=a65Address
64071d4279SBram Moolenaarsyn match a65Opcode	"\<AND\($\|\s\)" nextgroup=a65Address
65071d4279SBram Moolenaarsyn match a65Opcode	"\<ORA\($\|\s\)" nextgroup=a65Address
66071d4279SBram Moolenaarsyn match a65Opcode	"\<STX\($\|\s\)" nextgroup=a65Address
67071d4279SBram Moolenaarsyn match a65Opcode	"\<STY\($\|\s\)" nextgroup=a65Address
68071d4279SBram Moolenaarsyn match a65Opcode	"\<STZ\($\|\s\)" nextgroup=a65Address
69071d4279SBram Moolenaarsyn match a65Opcode	"\<EOR\($\|\s\)" nextgroup=a65Address
70071d4279SBram Moolenaarsyn match a65Opcode	"\<DEX\($\|\s\)" nextgroup=a65Address
71071d4279SBram Moolenaarsyn match a65Opcode	"\<BPL\($\|\s\)" nextgroup=a65Address
72071d4279SBram Moolenaarsyn match a65Opcode	"\<CLC\($\|\s\)" nextgroup=a65Address
73071d4279SBram Moolenaarsyn match a65Opcode	"\<PHY\($\|\s\)" nextgroup=a65Address
74071d4279SBram Moolenaarsyn match a65Opcode	"\<TRB\($\|\s\)" nextgroup=a65Address
75071d4279SBram Moolenaarsyn match a65Opcode	"\<BBR\($\|\s\)" nextgroup=a65Address
76071d4279SBram Moolenaarsyn match a65Opcode	"\<BBS\($\|\s\)" nextgroup=a65Address
77071d4279SBram Moolenaarsyn match a65Opcode	"\<RMB\($\|\s\)" nextgroup=a65Address
78071d4279SBram Moolenaarsyn match a65Opcode	"\<SMB\($\|\s\)" nextgroup=a65Address
79071d4279SBram Moolenaarsyn match a65Opcode	"\<TAY\($\|\s\)" nextgroup=a65Address
80071d4279SBram Moolenaarsyn match a65Opcode	"\<TAX\($\|\s\)" nextgroup=a65Address
81071d4279SBram Moolenaar
82071d4279SBram Moolenaar" Addresses
83071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{2}\($\|\s\)"
84071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{4}\($\|\s\)"
85071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{2},X\($\|\s\)"
86071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{4},X\($\|\s\)"
87071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{2},Y\($\|\s\)"
88071d4279SBram Moolenaarsyn match a65Address	"\s*!\=$[0-9A-F]\{4},Y\($\|\s\)"
89071d4279SBram Moolenaarsyn match a65Address	"\s*($[0-9A-F]\{2})\($\|\s\)"
90071d4279SBram Moolenaarsyn match a65Address	"\s*($[0-9A-F]\{4})\($\|\s\)"
91071d4279SBram Moolenaarsyn match a65Address	"\s*($[0-9A-F]\{2},X)\($\|\s\)"
92071d4279SBram Moolenaarsyn match a65Address	"\s*($[0-9A-F]\{2}),Y\($\|\s\)"
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar" Numbers
95071d4279SBram Moolenaarsyn match a65Number	"#\=[0-9]*\>"
96071d4279SBram Moolenaarsyn match a65Number	"#\=$[0-9A-F]*\>"
97071d4279SBram Moolenaarsyn match a65Number	"#\=&[0-7]*\>"
98071d4279SBram Moolenaarsyn match a65Number	"#\=%[01]*\>"
99071d4279SBram Moolenaar
100071d4279SBram Moolenaarsyn case match
101071d4279SBram Moolenaar
102071d4279SBram Moolenaar" Types
103071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.byt\($\|\s\)"
104071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.word\($\|\s\)"
105071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.asc\($\|\s\)"
106071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.dsb\($\|\s\)"
107071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.fopt\($\|\s\)"
108071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.text\($\|\s\)"
109071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.data\($\|\s\)"
110071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.bss\($\|\s\)"
111071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.zero\($\|\s\)"
112071d4279SBram Moolenaarsyn match a65Type	"\(^\|\s\)\.align\($\|\s\)"
113071d4279SBram Moolenaar
114071d4279SBram Moolenaar" Blocks
115071d4279SBram Moolenaarsyn match a65Section	"\(^\|\s\)\.(\($\|\s\)"
116071d4279SBram Moolenaarsyn match a65Section	"\(^\|\s\)\.)\($\|\s\)"
117071d4279SBram Moolenaar
118071d4279SBram Moolenaar" Strings
119071d4279SBram Moolenaarsyn match a65String	"\".*\""
120071d4279SBram Moolenaar
121071d4279SBram Moolenaar" Programm Counter
122071d4279SBram Moolenaarsyn region a65PC	start="\*=" end="\>" keepend
123071d4279SBram Moolenaar
124071d4279SBram Moolenaar" HI/LO Byte
125071d4279SBram Moolenaarsyn region a65HiLo	start="#[<>]" end="$\|\s" contains=a65Comment keepend
126071d4279SBram Moolenaar
127071d4279SBram Moolenaar" Comments
128071d4279SBram Moolenaarsyn keyword a65Todo	TODO XXX FIXME BUG contained
129071d4279SBram Moolenaarsyn match   a65Comment	";.*"hs=s+1 contains=a65Todo
130071d4279SBram Moolenaarsyn region  a65Comment	start="/\*" end="\*/" contains=a65Todo,a65Comment
131071d4279SBram Moolenaar
132071d4279SBram Moolenaar" Preprocessor
133071d4279SBram Moolenaarsyn region a65PreProc	start="^#" end="$" contains=a65Comment,a65Continue
134071d4279SBram Moolenaarsyn match  a65End			excludenl /end$/ contained
135071d4279SBram Moolenaarsyn match  a65Continue	"\\$" contained
136071d4279SBram Moolenaar
137071d4279SBram Moolenaar" Define the default highlighting.
13889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
139071d4279SBram Moolenaar
140*f37506f6SBram Moolenaarhi def link a65Section	Special
141*f37506f6SBram Moolenaarhi def link a65Address	Special
142*f37506f6SBram Moolenaarhi def link a65Comment	Comment
143*f37506f6SBram Moolenaarhi def link a65PreProc	PreProc
144*f37506f6SBram Moolenaarhi def link a65Number	Number
145*f37506f6SBram Moolenaarhi def link a65String	String
146*f37506f6SBram Moolenaarhi def link a65Type	Statement
147*f37506f6SBram Moolenaarhi def link a65Opcode	Type
148*f37506f6SBram Moolenaarhi def link a65PC		Error
149*f37506f6SBram Moolenaarhi def link a65Todo	Todo
150*f37506f6SBram Moolenaarhi def link a65HiLo	Number
151071d4279SBram Moolenaar
152071d4279SBram Moolenaar
153071d4279SBram Moolenaarlet b:current_syntax = "a65"
154