xref: /vim-8.2.3635/runtime/syntax/asm68k.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Motorola 68000 Assembler
3071d4279SBram Moolenaar" Maintainer:	Steve Wall
4071d4279SBram Moolenaar" Last change:	2001 May 01
5071d4279SBram Moolenaar"
6071d4279SBram Moolenaar" This is incomplete.  In particular, support for 68020 and
7071d4279SBram Moolenaar" up and 68851/68881 co-processors is partial or non-existant.
8071d4279SBram Moolenaar" Feel free to contribute...
9071d4279SBram Moolenaar"
10071d4279SBram Moolenaar
1189bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1289bcfda6SBram Moolenaarif exists("b:current_syntax")
13071d4279SBram Moolenaar  finish
14071d4279SBram Moolenaarendif
15071d4279SBram Moolenaar
16071d4279SBram Moolenaarsyn case ignore
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" Partial list of register symbols
19071d4279SBram Moolenaarsyn keyword asm68kReg	a0 a1 a2 a3 a4 a5 a6 a7 d0 d1 d2 d3 d4 d5 d6 d7
20071d4279SBram Moolenaarsyn keyword asm68kReg	pc sr ccr sp usp ssp
21071d4279SBram Moolenaar
22071d4279SBram Moolenaar" MC68010
23071d4279SBram Moolenaarsyn keyword asm68kReg	vbr sfc sfcr dfc dfcr
24071d4279SBram Moolenaar
25071d4279SBram Moolenaar" MC68020
26071d4279SBram Moolenaarsyn keyword asm68kReg	msp isp zpc cacr caar
27071d4279SBram Moolenaarsyn keyword asm68kReg	za0 za1 za2 za3 za4 za5 za6 za7
28071d4279SBram Moolenaarsyn keyword asm68kReg	zd0 zd1 zd2 zd3 zd4 zd5 zd6 zd7
29071d4279SBram Moolenaar
30071d4279SBram Moolenaar" MC68030
31071d4279SBram Moolenaarsyn keyword asm68kReg	crp srp tc ac0 ac1 acusr tt0 tt1 mmusr
32071d4279SBram Moolenaar
33071d4279SBram Moolenaar" MC68040
34071d4279SBram Moolenaarsyn keyword asm68kReg	dtt0 dtt1 itt0 itt1 urp
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar" MC68851 registers
37071d4279SBram Moolenaarsyn keyword asm68kReg	cal val scc crp srp drp tc ac psr pcsr
38071d4279SBram Moolenaarsyn keyword asm68kReg	bac0 bac1 bac2 bac3 bac4 bac5 bac6 bac7
39071d4279SBram Moolenaarsyn keyword asm68kReg	bad0 bad1 bad2 bad3 bad4 bad5 bad6 bad7
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" MC68881/82 registers
42071d4279SBram Moolenaarsyn keyword asm68kReg	fp0 fp1 fp2 fp3 fp4 fp5 fp6 fp7
43071d4279SBram Moolenaarsyn keyword asm68kReg	control status iaddr fpcr fpsr fpiar
44071d4279SBram Moolenaar
45071d4279SBram Moolenaar" M68000 opcodes - order is important!
46071d4279SBram Moolenaarsyn match asm68kOpcode "\<abcd\(\.b\)\=\s"
47071d4279SBram Moolenaarsyn match asm68kOpcode "\<adda\(\.[wl]\)\=\s"
48071d4279SBram Moolenaarsyn match asm68kOpcode "\<addi\(\.[bwl]\)\=\s"
49071d4279SBram Moolenaarsyn match asm68kOpcode "\<addq\(\.[bwl]\)\=\s"
50071d4279SBram Moolenaarsyn match asm68kOpcode "\<addx\(\.[bwl]\)\=\s"
51071d4279SBram Moolenaarsyn match asm68kOpcode "\<add\(\.[bwl]\)\=\s"
52071d4279SBram Moolenaarsyn match asm68kOpcode "\<andi\(\.[bwl]\)\=\s"
53071d4279SBram Moolenaarsyn match asm68kOpcode "\<and\(\.[bwl]\)\=\s"
54071d4279SBram Moolenaarsyn match asm68kOpcode "\<as[lr]\(\.[bwl]\)\=\s"
55071d4279SBram Moolenaarsyn match asm68kOpcode "\<b[vc][cs]\(\.[bwls]\)\=\s"
56071d4279SBram Moolenaarsyn match asm68kOpcode "\<beq\(\.[bwls]\)\=\s"
57071d4279SBram Moolenaarsyn match asm68kOpcode "\<bg[et]\(\.[bwls]\)\=\s"
58071d4279SBram Moolenaarsyn match asm68kOpcode "\<b[hm]i\(\.[bwls]\)\=\s"
59071d4279SBram Moolenaarsyn match asm68kOpcode "\<bl[est]\(\.[bwls]\)\=\s"
60071d4279SBram Moolenaarsyn match asm68kOpcode "\<bne\(\.[bwls]\)\=\s"
61071d4279SBram Moolenaarsyn match asm68kOpcode "\<bpl\(\.[bwls]\)\=\s"
62071d4279SBram Moolenaarsyn match asm68kOpcode "\<bchg\(\.[bl]\)\=\s"
63071d4279SBram Moolenaarsyn match asm68kOpcode "\<bclr\(\.[bl]\)\=\s"
64071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfchg\s"
65071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfclr\s"
66071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfexts\s"
67071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfextu\s"
68071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfffo\s"
69071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfins\s"
70071d4279SBram Moolenaarsyn match asm68kOpcode "\<bfset\s"
71071d4279SBram Moolenaarsyn match asm68kOpcode "\<bftst\s"
72071d4279SBram Moolenaarsyn match asm68kOpcode "\<bkpt\s"
73071d4279SBram Moolenaarsyn match asm68kOpcode "\<bra\(\.[bwls]\)\=\s"
74071d4279SBram Moolenaarsyn match asm68kOpcode "\<bset\(\.[bl]\)\=\s"
75071d4279SBram Moolenaarsyn match asm68kOpcode "\<bsr\(\.[bwl]\)\=\s"
76071d4279SBram Moolenaarsyn match asm68kOpcode "\<btst\(\.[bl]\)\=\s"
77071d4279SBram Moolenaarsyn match asm68kOpcode "\<callm\s"
78071d4279SBram Moolenaarsyn match asm68kOpcode "\<cas2\(\.[wl]\)\=\s"
79071d4279SBram Moolenaarsyn match asm68kOpcode "\<cas\(\.[bwl]\)\=\s"
80071d4279SBram Moolenaarsyn match asm68kOpcode "\<chk2\(\.[bwl]\)\=\s"
81071d4279SBram Moolenaarsyn match asm68kOpcode "\<chk\(\.[wl]\)\=\s"
82071d4279SBram Moolenaarsyn match asm68kOpcode "\<clr\(\.[bwl]\)\=\s"
83071d4279SBram Moolenaarsyn match asm68kOpcode "\<cmpa\(\.[wl]\)\=\s"
84071d4279SBram Moolenaarsyn match asm68kOpcode "\<cmpi\(\.[bwl]\)\=\s"
85071d4279SBram Moolenaarsyn match asm68kOpcode "\<cmpm\(\.[bwl]\)\=\s"
86071d4279SBram Moolenaarsyn match asm68kOpcode "\<cmp2\(\.[bwl]\)\=\s"
87071d4279SBram Moolenaarsyn match asm68kOpcode "\<cmp\(\.[bwl]\)\=\s"
88071d4279SBram Moolenaarsyn match asm68kOpcode "\<db[cv][cs]\(\.w\)\=\s"
89071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbeq\(\.w\)\=\s"
90071d4279SBram Moolenaarsyn match asm68kOpcode "\<db[ft]\(\.w\)\=\s"
91071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbg[et]\(\.w\)\=\s"
92071d4279SBram Moolenaarsyn match asm68kOpcode "\<db[hm]i\(\.w\)\=\s"
93071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbl[est]\(\.w\)\=\s"
94071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbne\(\.w\)\=\s"
95071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbpl\(\.w\)\=\s"
96071d4279SBram Moolenaarsyn match asm68kOpcode "\<dbra\(\.w\)\=\s"
97071d4279SBram Moolenaarsyn match asm68kOpcode "\<div[su]\(\.[wl]\)\=\s"
98071d4279SBram Moolenaarsyn match asm68kOpcode "\<div[su]l\(\.l\)\=\s"
99071d4279SBram Moolenaarsyn match asm68kOpcode "\<eori\(\.[bwl]\)\=\s"
100071d4279SBram Moolenaarsyn match asm68kOpcode "\<eor\(\.[bwl]\)\=\s"
101071d4279SBram Moolenaarsyn match asm68kOpcode "\<exg\(\.l\)\=\s"
102071d4279SBram Moolenaarsyn match asm68kOpcode "\<extb\(\.l\)\=\s"
103071d4279SBram Moolenaarsyn match asm68kOpcode "\<ext\(\.[wl]\)\=\s"
104071d4279SBram Moolenaarsyn match asm68kOpcode "\<illegal\>"
105071d4279SBram Moolenaarsyn match asm68kOpcode "\<jmp\(\.[ls]\)\=\s"
106071d4279SBram Moolenaarsyn match asm68kOpcode "\<jsr\(\.[ls]\)\=\s"
107071d4279SBram Moolenaarsyn match asm68kOpcode "\<lea\(\.l\)\=\s"
108071d4279SBram Moolenaarsyn match asm68kOpcode "\<link\(\.[wl]\)\=\s"
109071d4279SBram Moolenaarsyn match asm68kOpcode "\<ls[lr]\(\.[bwl]\)\=\s"
110071d4279SBram Moolenaarsyn match asm68kOpcode "\<movea\(\.[wl]\)\=\s"
111071d4279SBram Moolenaarsyn match asm68kOpcode "\<movec\(\.l\)\=\s"
112071d4279SBram Moolenaarsyn match asm68kOpcode "\<movem\(\.[wl]\)\=\s"
113071d4279SBram Moolenaarsyn match asm68kOpcode "\<movep\(\.[wl]\)\=\s"
114071d4279SBram Moolenaarsyn match asm68kOpcode "\<moveq\(\.l\)\=\s"
115071d4279SBram Moolenaarsyn match asm68kOpcode "\<moves\(\.[bwl]\)\=\s"
116071d4279SBram Moolenaarsyn match asm68kOpcode "\<move\(\.[bwl]\)\=\s"
117071d4279SBram Moolenaarsyn match asm68kOpcode "\<mul[su]\(\.[wl]\)\=\s"
118071d4279SBram Moolenaarsyn match asm68kOpcode "\<nbcd\(\.b\)\=\s"
119071d4279SBram Moolenaarsyn match asm68kOpcode "\<negx\(\.[bwl]\)\=\s"
120071d4279SBram Moolenaarsyn match asm68kOpcode "\<neg\(\.[bwl]\)\=\s"
121071d4279SBram Moolenaarsyn match asm68kOpcode "\<nop\>"
122071d4279SBram Moolenaarsyn match asm68kOpcode "\<not\(\.[bwl]\)\=\s"
123071d4279SBram Moolenaarsyn match asm68kOpcode "\<ori\(\.[bwl]\)\=\s"
124071d4279SBram Moolenaarsyn match asm68kOpcode "\<or\(\.[bwl]\)\=\s"
125071d4279SBram Moolenaarsyn match asm68kOpcode "\<pack\s"
126071d4279SBram Moolenaarsyn match asm68kOpcode "\<pea\(\.l\)\=\s"
127071d4279SBram Moolenaarsyn match asm68kOpcode "\<reset\>"
128071d4279SBram Moolenaarsyn match asm68kOpcode "\<ro[lr]\(\.[bwl]\)\=\s"
129071d4279SBram Moolenaarsyn match asm68kOpcode "\<rox[lr]\(\.[bwl]\)\=\s"
130071d4279SBram Moolenaarsyn match asm68kOpcode "\<rt[dm]\s"
131071d4279SBram Moolenaarsyn match asm68kOpcode "\<rt[ers]\>"
132071d4279SBram Moolenaarsyn match asm68kOpcode "\<sbcd\(\.b\)\=\s"
133071d4279SBram Moolenaarsyn match asm68kOpcode "\<s[cv][cs]\(\.b\)\=\s"
134071d4279SBram Moolenaarsyn match asm68kOpcode "\<seq\(\.b\)\=\s"
135071d4279SBram Moolenaarsyn match asm68kOpcode "\<s[ft]\(\.b\)\=\s"
136071d4279SBram Moolenaarsyn match asm68kOpcode "\<sg[et]\(\.b\)\=\s"
137071d4279SBram Moolenaarsyn match asm68kOpcode "\<s[hm]i\(\.b\)\=\s"
138071d4279SBram Moolenaarsyn match asm68kOpcode "\<sl[est]\(\.b\)\=\s"
139071d4279SBram Moolenaarsyn match asm68kOpcode "\<sne\(\.b\)\=\s"
140071d4279SBram Moolenaarsyn match asm68kOpcode "\<spl\(\.b\)\=\s"
141071d4279SBram Moolenaarsyn match asm68kOpcode "\<suba\(\.[wl]\)\=\s"
142071d4279SBram Moolenaarsyn match asm68kOpcode "\<subi\(\.[bwl]\)\=\s"
143071d4279SBram Moolenaarsyn match asm68kOpcode "\<subq\(\.[bwl]\)\=\s"
144071d4279SBram Moolenaarsyn match asm68kOpcode "\<subx\(\.[bwl]\)\=\s"
145071d4279SBram Moolenaarsyn match asm68kOpcode "\<sub\(\.[bwl]\)\=\s"
146071d4279SBram Moolenaarsyn match asm68kOpcode "\<swap\(\.w\)\=\s"
147071d4279SBram Moolenaarsyn match asm68kOpcode "\<tas\(\.b\)\=\s"
148071d4279SBram Moolenaarsyn match asm68kOpcode "\<tdiv[su]\(\.l\)\=\s"
149071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[cv][cs]\(\.[wl]\)\=\s"
150071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=eq\(\.[wl]\)\=\s"
151071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[ft]\(\.[wl]\)\=\s"
152071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=g[et]\(\.[wl]\)\=\s"
153071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[hm]i\(\.[wl]\)\=\s"
154071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=l[est]\(\.[wl]\)\=\s"
155071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=ne\(\.[wl]\)\=\s"
156071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=pl\(\.[wl]\)\=\s"
157071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=v\>"
158071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[cv][cs]\>"
159071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=eq\>"
160071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[ft]\>"
161071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=g[et]\>"
162071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=[hm]i\>"
163071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=l[est]\>"
164071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=ne\>"
165071d4279SBram Moolenaarsyn match asm68kOpcode "\<t\(rap\)\=pl\>"
166071d4279SBram Moolenaarsyn match asm68kOpcode "\<trap\s"
167071d4279SBram Moolenaarsyn match asm68kOpcode "\<tst\(\.[bwl]\)\=\s"
168071d4279SBram Moolenaarsyn match asm68kOpcode "\<unlk\s"
169071d4279SBram Moolenaarsyn match asm68kOpcode "\<unpk\s"
170071d4279SBram Moolenaar
171071d4279SBram Moolenaar" Valid labels
172071d4279SBram Moolenaarsyn match asm68kLabel		"^[a-z_?.][a-z0-9_?.$]*$"
173071d4279SBram Moolenaarsyn match asm68kLabel		"^[a-z_?.][a-z0-9_?.$]*\s"he=e-1
174071d4279SBram Moolenaarsyn match asm68kLabel		"^\s*[a-z_?.][a-z0-9_?.$]*:"he=e-1
175071d4279SBram Moolenaar
176071d4279SBram Moolenaar" Various number formats
177071d4279SBram Moolenaarsyn match hexNumber		"\$[0-9a-fA-F]\+\>"
178071d4279SBram Moolenaarsyn match hexNumber		"\<[0-9][0-9a-fA-F]*H\>"
179071d4279SBram Moolenaarsyn match octNumber		"@[0-7]\+\>"
180071d4279SBram Moolenaarsyn match octNumber		"\<[0-7]\+[QO]\>"
181071d4279SBram Moolenaarsyn match binNumber		"%[01]\+\>"
182071d4279SBram Moolenaarsyn match binNumber		"\<[01]\+B\>"
183071d4279SBram Moolenaarsyn match decNumber		"\<[0-9]\+D\=\>"
184071d4279SBram Moolenaarsyn match floatE		"_*E_*" contained
185071d4279SBram Moolenaarsyn match floatExponent		"_*E_*[-+]\=[0-9]\+" contained contains=floatE
186071d4279SBram Moolenaarsyn match floatNumber		"[-+]\=[0-9]\+_*E_*[-+]\=[0-9]\+" contains=floatExponent
187071d4279SBram Moolenaarsyn match floatNumber		"[-+]\=[0-9]\+\.[0-9]\+\(E[-+]\=[0-9]\+\)\=" contains=floatExponent
188071d4279SBram Moolenaarsyn match floatNumber		":\([0-9a-f]\+_*\)\+"
189071d4279SBram Moolenaar
190071d4279SBram Moolenaar" Character string constants
191071d4279SBram Moolenaarsyn match asm68kStringError	"'[ -~]*'"
192071d4279SBram Moolenaarsyn match asm68kStringError	"'[ -~]*$"
193071d4279SBram Moolenaarsyn region asm68kString		start="'" skip="''" end="'" oneline contains=asm68kCharError
194071d4279SBram Moolenaarsyn match asm68kCharError	"[^ -~]" contained
195071d4279SBram Moolenaar
196071d4279SBram Moolenaar" Immediate data
197071d4279SBram Moolenaarsyn match asm68kImmediate	"#\$[0-9a-fA-F]\+" contains=hexNumber
198071d4279SBram Moolenaarsyn match asm68kImmediate	"#[0-9][0-9a-fA-F]*H" contains=hexNumber
199071d4279SBram Moolenaarsyn match asm68kImmediate	"#@[0-7]\+" contains=octNumber
200071d4279SBram Moolenaarsyn match asm68kImmediate	"#[0-7]\+[QO]" contains=octNumber
201071d4279SBram Moolenaarsyn match asm68kImmediate	"#%[01]\+" contains=binNumber
202071d4279SBram Moolenaarsyn match asm68kImmediate	"#[01]\+B" contains=binNumber
203071d4279SBram Moolenaarsyn match asm68kImmediate	"#[0-9]\+D\=" contains=decNumber
204071d4279SBram Moolenaarsyn match asm68kSymbol		"[a-z_?.][a-z0-9_?.$]*" contained
205071d4279SBram Moolenaarsyn match asm68kImmediate	"#[a-z_?.][a-z0-9_?.]*" contains=asm68kSymbol
206071d4279SBram Moolenaar
207071d4279SBram Moolenaar" Special items for comments
208071d4279SBram Moolenaarsyn keyword asm68kTodo		contained TODO
209071d4279SBram Moolenaar
210071d4279SBram Moolenaar" Operators
211071d4279SBram Moolenaarsyn match asm68kOperator	"[-+*/]"	" Must occur before Comments
212071d4279SBram Moolenaarsyn match asm68kOperator	"\.SIZEOF\."
213071d4279SBram Moolenaarsyn match asm68kOperator	"\.STARTOF\."
214071d4279SBram Moolenaarsyn match asm68kOperator	"<<"		" shift left
215071d4279SBram Moolenaarsyn match asm68kOperator	">>"		" shift right
216071d4279SBram Moolenaarsyn match asm68kOperator	"&"		" bit-wise logical and
217071d4279SBram Moolenaarsyn match asm68kOperator	"!"		" bit-wise logical or
218071d4279SBram Moolenaarsyn match asm68kOperator	"!!"		" exclusive or
219071d4279SBram Moolenaarsyn match asm68kOperator	"<>"		" inequality
220071d4279SBram Moolenaarsyn match asm68kOperator	"="		" must be before other ops containing '='
221071d4279SBram Moolenaarsyn match asm68kOperator	">="
222071d4279SBram Moolenaarsyn match asm68kOperator	"<="
223071d4279SBram Moolenaarsyn match asm68kOperator	"=="		" operand existance - used in macro definitions
224071d4279SBram Moolenaar
225071d4279SBram Moolenaar" Condition code style operators
226071d4279SBram Moolenaarsyn match asm68kOperator	"<[CV][CS]>"
227071d4279SBram Moolenaarsyn match asm68kOperator	"<EQ>"
228071d4279SBram Moolenaarsyn match asm68kOperator	"<G[TE]>"
229071d4279SBram Moolenaarsyn match asm68kOperator	"<[HM]I>"
230071d4279SBram Moolenaarsyn match asm68kOperator	"<L[SET]>"
231071d4279SBram Moolenaarsyn match asm68kOperator	"<NE>"
232071d4279SBram Moolenaarsyn match asm68kOperator	"<PL>"
233071d4279SBram Moolenaar
234071d4279SBram Moolenaar" Comments
235071d4279SBram Moolenaarsyn match asm68kComment		";.*" contains=asm68kTodo
236071d4279SBram Moolenaarsyn match asm68kComment		"\s!.*"ms=s+1 contains=asm68kTodo
237071d4279SBram Moolenaarsyn match asm68kComment		"^\s*[*!].*" contains=asm68kTodo
238071d4279SBram Moolenaar
239071d4279SBram Moolenaar" Include
240071d4279SBram Moolenaarsyn match asm68kInclude		"\<INCLUDE\s"
241071d4279SBram Moolenaar
242071d4279SBram Moolenaar" Standard macros
243071d4279SBram Moolenaarsyn match asm68kCond		"\<IF\(\.[BWL]\)\=\s"
244071d4279SBram Moolenaarsyn match asm68kCond		"\<THEN\(\.[SL]\)\=\>"
245071d4279SBram Moolenaarsyn match asm68kCond		"\<ELSE\(\.[SL]\)\=\>"
246071d4279SBram Moolenaarsyn match asm68kCond		"\<ENDI\>"
247071d4279SBram Moolenaarsyn match asm68kCond		"\<BREAK\(\.[SL]\)\=\>"
248071d4279SBram Moolenaarsyn match asm68kRepeat		"\<FOR\(\.[BWL]\)\=\s"
249071d4279SBram Moolenaarsyn match asm68kRepeat		"\<DOWNTO\s"
250071d4279SBram Moolenaarsyn match asm68kRepeat		"\<TO\s"
251071d4279SBram Moolenaarsyn match asm68kRepeat		"\<BY\s"
252071d4279SBram Moolenaarsyn match asm68kRepeat		"\<DO\(\.[SL]\)\=\>"
253071d4279SBram Moolenaarsyn match asm68kRepeat		"\<ENDF\>"
254071d4279SBram Moolenaarsyn match asm68kRepeat		"\<NEXT\(\.[SL]\)\=\>"
255071d4279SBram Moolenaarsyn match asm68kRepeat		"\<REPEAT\>"
256071d4279SBram Moolenaarsyn match asm68kRepeat		"\<UNTIL\(\.[BWL]\)\=\s"
257071d4279SBram Moolenaarsyn match asm68kRepeat		"\<WHILE\(\.[BWL]\)\=\s"
258071d4279SBram Moolenaarsyn match asm68kRepeat		"\<ENDW\>"
259071d4279SBram Moolenaar
260071d4279SBram Moolenaar" Macro definition
261071d4279SBram Moolenaarsyn match asm68kMacro		"\<MACRO\>"
262071d4279SBram Moolenaarsyn match asm68kMacro		"\<LOCAL\s"
263071d4279SBram Moolenaarsyn match asm68kMacro		"\<MEXIT\>"
264071d4279SBram Moolenaarsyn match asm68kMacro		"\<ENDM\>"
265071d4279SBram Moolenaarsyn match asm68kMacroParam	"\\[0-9]"
266071d4279SBram Moolenaar
267071d4279SBram Moolenaar" Conditional assembly
268071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFC\s"
269071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFDEF\s"
270071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFEQ\s"
271071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFGE\s"
272071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFGT\s"
273071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFLE\s"
274071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFLT\s"
275071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFNC\>"
276071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFNDEF\s"
277071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IFNE\s"
278071d4279SBram Moolenaarsyn match asm68kPreCond		"\<ELSEC\>"
279071d4279SBram Moolenaarsyn match asm68kPreCond		"\<ENDC\>"
280071d4279SBram Moolenaar
281071d4279SBram Moolenaar" Loop control
282071d4279SBram Moolenaarsyn match asm68kPreCond		"\<REPT\s"
283071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IRP\s"
284071d4279SBram Moolenaarsyn match asm68kPreCond		"\<IRPC\s"
285071d4279SBram Moolenaarsyn match asm68kPreCond		"\<ENDR\>"
286071d4279SBram Moolenaar
287071d4279SBram Moolenaar" Directives
288071d4279SBram Moolenaarsyn match asm68kDirective	"\<ALIGN\s"
289071d4279SBram Moolenaarsyn match asm68kDirective	"\<CHIP\s"
290071d4279SBram Moolenaarsyn match asm68kDirective	"\<COMLINE\s"
291071d4279SBram Moolenaarsyn match asm68kDirective	"\<COMMON\(\.S\)\=\s"
292071d4279SBram Moolenaarsyn match asm68kDirective	"\<DC\(\.[BWLSDXP]\)\=\s"
293071d4279SBram Moolenaarsyn match asm68kDirective	"\<DC\.\\[0-9]\s"me=e-3	" Special use in a macro def
294071d4279SBram Moolenaarsyn match asm68kDirective	"\<DCB\(\.[BWLSDXP]\)\=\s"
295071d4279SBram Moolenaarsyn match asm68kDirective	"\<DS\(\.[BWLSDXP]\)\=\s"
296071d4279SBram Moolenaarsyn match asm68kDirective	"\<END\>"
297071d4279SBram Moolenaarsyn match asm68kDirective	"\<EQU\s"
298071d4279SBram Moolenaarsyn match asm68kDirective	"\<FEQU\(\.[SDXP]\)\=\s"
299071d4279SBram Moolenaarsyn match asm68kDirective	"\<FAIL\>"
300071d4279SBram Moolenaarsyn match asm68kDirective	"\<FOPT\s"
301071d4279SBram Moolenaarsyn match asm68kDirective	"\<\(NO\)\=FORMAT\>"
302071d4279SBram Moolenaarsyn match asm68kDirective	"\<IDNT\>"
303071d4279SBram Moolenaarsyn match asm68kDirective	"\<\(NO\)\=LIST\>"
304071d4279SBram Moolenaarsyn match asm68kDirective	"\<LLEN\s"
305071d4279SBram Moolenaarsyn match asm68kDirective	"\<MASK2\>"
306071d4279SBram Moolenaarsyn match asm68kDirective	"\<NAME\s"
307071d4279SBram Moolenaarsyn match asm68kDirective	"\<NOOBJ\>"
308071d4279SBram Moolenaarsyn match asm68kDirective	"\<OFFSET\s"
309071d4279SBram Moolenaarsyn match asm68kDirective	"\<OPT\>"
310071d4279SBram Moolenaarsyn match asm68kDirective	"\<ORG\(\.[SL]\)\=\>"
311071d4279SBram Moolenaarsyn match asm68kDirective	"\<\(NO\)\=PAGE\>"
312071d4279SBram Moolenaarsyn match asm68kDirective	"\<PLEN\s"
313071d4279SBram Moolenaarsyn match asm68kDirective	"\<REG\s"
314071d4279SBram Moolenaarsyn match asm68kDirective	"\<RESTORE\>"
315071d4279SBram Moolenaarsyn match asm68kDirective	"\<SAVE\>"
316071d4279SBram Moolenaarsyn match asm68kDirective	"\<SECT\(\.S\)\=\s"
317071d4279SBram Moolenaarsyn match asm68kDirective	"\<SECTION\(\.S\)\=\s"
318071d4279SBram Moolenaarsyn match asm68kDirective	"\<SET\s"
319071d4279SBram Moolenaarsyn match asm68kDirective	"\<SPC\s"
320071d4279SBram Moolenaarsyn match asm68kDirective	"\<TTL\s"
321071d4279SBram Moolenaarsyn match asm68kDirective	"\<XCOM\s"
322071d4279SBram Moolenaarsyn match asm68kDirective	"\<XDEF\s"
323071d4279SBram Moolenaarsyn match asm68kDirective	"\<XREF\(\.S\)\=\s"
324071d4279SBram Moolenaar
325071d4279SBram Moolenaarsyn case match
326071d4279SBram Moolenaar
327071d4279SBram Moolenaar" Define the default highlighting.
32889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
329071d4279SBram Moolenaar
330071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
331071d4279SBram Moolenaar" Comment Constant Error Identifier PreProc Special Statement Todo Type
332071d4279SBram Moolenaar"
333071d4279SBram Moolenaar" Constant		Boolean Character Number String
334071d4279SBram Moolenaar" Identifier		Function
335071d4279SBram Moolenaar" PreProc		Define Include Macro PreCondit
336071d4279SBram Moolenaar" Special		Debug Delimiter SpecialChar SpecialComment Tag
337071d4279SBram Moolenaar" Statement		Conditional Exception Keyword Label Operator Repeat
338071d4279SBram Moolenaar" Type		StorageClass Structure Typedef
339071d4279SBram Moolenaar
340*f37506f6SBram Moolenaarhi def link asm68kComment		Comment
341*f37506f6SBram Moolenaarhi def link asm68kTodo		Todo
342071d4279SBram Moolenaar
343*f37506f6SBram Moolenaarhi def link hexNumber		Number		" Constant
344*f37506f6SBram Moolenaarhi def link octNumber		Number		" Constant
345*f37506f6SBram Moolenaarhi def link binNumber		Number		" Constant
346*f37506f6SBram Moolenaarhi def link decNumber		Number		" Constant
347*f37506f6SBram Moolenaarhi def link floatNumber		Number		" Constant
348*f37506f6SBram Moolenaarhi def link floatExponent		Number		" Constant
349*f37506f6SBram Moolenaarhi def link floatE			SpecialChar	" Statement
350*f37506f6SBram Moolenaar"hi def link floatE		Number		" Constant
351071d4279SBram Moolenaar
352*f37506f6SBram Moolenaarhi def link asm68kImmediate	SpecialChar	" Statement
353*f37506f6SBram Moolenaar"hi def link asm68kSymbol		Constant
354071d4279SBram Moolenaar
355*f37506f6SBram Moolenaarhi def link asm68kString		String		" Constant
356*f37506f6SBram Moolenaarhi def link asm68kCharError	Error
357*f37506f6SBram Moolenaarhi def link asm68kStringError	Error
358071d4279SBram Moolenaar
359*f37506f6SBram Moolenaarhi def link asm68kReg		Identifier
360*f37506f6SBram Moolenaarhi def link asm68kOperator		Identifier
361071d4279SBram Moolenaar
362*f37506f6SBram Moolenaarhi def link asm68kInclude		Include		" PreProc
363*f37506f6SBram Moolenaarhi def link asm68kMacro		Macro		" PreProc
364*f37506f6SBram Moolenaarhi def link asm68kMacroParam	Keyword		" Statement
365071d4279SBram Moolenaar
366*f37506f6SBram Moolenaarhi def link asm68kDirective	Special
367*f37506f6SBram Moolenaarhi def link asm68kPreCond		Special
368071d4279SBram Moolenaar
369071d4279SBram Moolenaar
370*f37506f6SBram Moolenaarhi def link asm68kOpcode		Statement
371*f37506f6SBram Moolenaarhi def link asm68kCond		Conditional	" Statement
372*f37506f6SBram Moolenaarhi def link asm68kRepeat		Repeat		" Statement
373071d4279SBram Moolenaar
374*f37506f6SBram Moolenaarhi def link asm68kLabel		Type
375071d4279SBram Moolenaar
376071d4279SBram Moolenaarlet b:current_syntax = "asm68k"
377071d4279SBram Moolenaar
378071d4279SBram Moolenaar" vim: ts=8 sw=2
379