001: <?xml version="1.0" encoding="UTF-8"?>
002: <!DOCTYPE language SYSTEM "language.dtd">
003:
004: <language name="Motorola 68k (VASM/Devpac)" section="Assembler" version="3" kateversion="5.0" extensions="*.s;*.i;*.S;*.I" author="Miro Kropacek (miro.kropacek@gmail.com)" license="LGPL">
005:
006: <highlighting>
007: <list name="Data Registers">
008: <item>d0</item>
009: <item>d1</item>
010: <item>d2</item>
011: <item>d3</item>
012: <item>d4</item>
013: <item>d5</item>
014: <item>d6</item>
015: <item>d7</item>
016: </list>
017:
018: <list name="Address Registers">
019: <item>a0</item>
020: <item>a1</item>
021: <item>a2</item>
022: <item>a3</item>
023: <item>a4</item>
024: <item>a5</item>
025: <item>a6</item>
026: <item>fp</item>
027: <item>a7</item>
028: <item>sp</item>
029: </list>
030:
031: <list name="Control Registers">
032: <item>ccr</item>
033: <item>sr</item>
034: <item>pc</item>
035: <item>zpc</item>
036: <item>ssp</item>
037: <item>usp</item>
038: <item>msp</item>
039: <item>isp</item>
040: <item>dfc</item>
041: <item>cacr</item>
042: <item>caar</item>
043: <item>vbr</item>
044: <item>crp</item>
045: <item>srp</item>
046: <item>urp</item>
047: <item>tc</item>
048: <item>tt0</item>
049: <item>tt1</item>
050: <item>mmusr</item>
051: <item>itt0</item>
052: <item>itt1</item>
053: <item>dtt0</item>
054: <item>dtt1</item>
055: <item>buscr</item>
056: <item>pcr</item>
057: <item>ic</item>
058: <!-- <item>dc</item> -->
059: <item>bc</item>
060: </list>
061:
062: <list name="FPU Registers">
063: <item>fp0</item>
064: <item>fp1</item>
065: <item>fp2</item>
066: <item>fp3</item>
067: <item>fp4</item>
068: <item>fp5</item>
069: <item>fp6</item>
070: <item>fp7</item>
071: <item>fpcr></item>
072: <item>fpsr</item>
073: <item>fpiar</item>
074: </list>
075:
076: <list name="Instructions (CPU)">
077: <item>abcd</item>
078: <item>adda</item>
079: <item>addi</item>
080: <item>add</item>
081: <item>addq</item>
082: <item>addx</item>
083: <item>andi</item>
084: <item>and</item>
085: <item>asl</item>
086: <item>asr</item>
087: <item>bcc</item>
088: <item>bchg</item>
089: <item>bclr</item>
090: <item>bcs</item>
091: <item>beq</item>
092: <item>bfchg</item>
093: <item>bfclr</item>
094: <item>bfexts</item>
095: <item>bfextu</item>
096: <item>bfffo</item>
097: <item>bfins</item>
098: <item>bfset</item>
099: <item>bftst</item>
100: <item>bge</item>
101: <item>bgt</item>
102: <item>bhi</item>
103: <item>bhs</item>
104: <item>bkpt</item>
105: <item>ble</item>
106: <item>blo</item>
107: <item>bls</item>
108: <item>blt</item>
109: <item>bmi</item>
110: <item>bne</item>
111: <item>bpl</item>
112: <item>bra</item>
113: <item>bset</item>
114: <item>bsr</item>
115: <item>btst</item>
116: <item>bvc</item>
117: <item>bvs</item>
118: <item>callm</item>
119: <item>cas2</item>
120: <item>cas</item>
121: <item>chk2</item>
122: <item>chk</item>
123: <item>cinva</item>
124: <item>cinvl</item>
125: <item>cinvp</item>
126: <item>clr</item>
127: <item>cmp2</item>
128: <item>cmpa</item>
129: <item>cmpi</item>
130: <item>cmp</item>
131: <item>cmpm</item>
132: <item>cpusha</item>
133: <item>cpushl</item>
134: <item>cpushp</item>
135: <item>dbcc</item>
136: <item>dbcs</item>
137: <item>dbeq</item>
138: <item>dbf</item>
139: <item>dbge</item>
140: <item>dbgt</item>
141: <item>dbhi</item>
142: <item>dbhs</item>
143: <item>dble</item>
144: <item>dblo</item>
145: <item>dbls</item>
146: <item>dblt</item>
147: <item>dbmi</item>
148: <item>dbne</item>
149: <item>dbpl</item>
150: <item>dbra</item>
151: <item>dbt</item>
152: <item>dbvc</item>
153: <item>dbvs</item>
154: <item>divs</item>
155: <item>divsl</item>
156: <item>divu</item>
157: <item>divul</item>
158: <item>eori</item>
159: <item>eor</item>
160: <item>exg</item>
161: <item>extb</item>
162: <item>ext</item>
163: <item>illegal</item>
164: <item>jmp</item>
165: <item>jsr</item>
166: <item>lea</item>
167: <item>link</item>
168: <item>lpstop</item>
169: <item>lsl</item>
170: <item>lsr</item>
171: <item>move16</item>
172: <item>movea</item>
173: <item>movec</item>
174: <item>move</item>
175: <item>movem</item>
176: <item>movep</item>
177: <item>moveq</item>
178: <item>moves</item>
179: <item>muls</item>
180: <item>mulu</item>
181: <item>nbcd</item>
182: <item>neg</item>
183: <item>negx</item>
184: <item>nop</item>
185: <item>not</item>
186: <item>ori</item>
187: <item>or</item>
188: <item>pack</item>
189: <item>pea</item>
190: <item>pflusha</item>
191: <item>pflushan</item>
192: <item>pflush</item>
193: <item>pflushn</item>
194: <item>ploadr</item>
195: <item>ploadw</item>
196: <item>plpa</item>
197: <item>pmovefd</item>
198: <item>pmove</item>
199: <item>ptestr</item>
200: <item>ptestw</item>
201: <item>reset</item>
202: <item>rol</item>
203: <item>ror</item>
204: <item>roxl</item>
205: <item>roxr</item>
206: <item>rtd</item>
207: <item>rte</item>
208: <item>rtm</item>
209: <item>rtr</item>
210: <item>rts</item>
211: <item>sbcd</item>
212: <item>scc</item>
213: <item>scs</item>
214: <item>seq</item>
215: <item>sf</item>
216: <item>sge</item>
217: <item>sgt</item>
218: <item>shi</item>
219: <item>shs</item>
220: <item>sle</item>
221: <item>slo</item>
222: <item>sls</item>
223: <item>slt</item>
224: <item>smi</item>
225: <item>sne</item>
226: <item>spl</item>
227: <item>st</item>
228: <item>stop</item>
229: <item>suba</item>
230: <item>subi</item>
231: <item>sub</item>
232: <item>subq</item>
233: <item>subx</item>
234: <item>svc</item>
235: <item>svs</item>
236: <item>swap</item>
237: <item>tas</item>
238: <item>trapcc</item>
239: <item>trapcs</item>
240: <item>trapeq</item>
241: <item>trapf</item>
242: <item>trapge</item>
243: <item>trapgt</item>
244: <item>traphi</item>
245: <item>traphs</item>
246: <item>trap</item>
247: <item>traple</item>
248: <item>traplo</item>
249: <item>trapls</item>
250: <item>traplt</item>
251: <item>trapmi</item>
252: <item>trapne</item>
253: <item>trappl</item>
254: <item>trapt</item>
255: <item>trapvc</item>
256: <item>trapvc</item>
257: <item>trapv</item>
258: <item>tst</item>
259: <item>unlk</item>
260: <item>unpk</item>
261: </list>
262:
263: <list name="Instructions (FPU)">
264: <item>fabs</item>
265: <item>facos</item>
266: <item>fadd</item>
267: <item>fasin</item>
268: <item>fatanh</item>
269: <item>fatan</item>
270: <item>fbeq</item>
271: <item>fbf</item>
272: <item>fbge</item>
273: <item>fbgle</item>
274: <item>fbgl</item>
275: <item>fbgt</item>
276: <item>fble</item>
277: <item>fblt</item>
278: <item>fbne</item>
279: <item>fbnge</item>
280: <item>fbngle</item>
281: <item>fbngl</item>
282: <item>fbngt</item>
283: <item>fbnle</item>
284: <item>fbnlt</item>
285: <item>fboge</item>
286: <item>fbogl</item>
287: <item>fbogt</item>
288: <item>fbole</item>
289: <item>fbolt</item>
290: <item>fbor</item>
291: <item>fbseq</item>
292: <item>fbsf</item>
293: <item>fbsne</item>
294: <item>fbst</item>
295: <item>fbt</item>
296: <item>fbueq</item>
297: <item>fbuge</item>
298: <item>fbugt</item>
299: <item>fbule</item>
300: <item>fbult</item>
301: <item>fbun</item>
302: <item>fcmp</item>
303: <item>fcosh</item>
304: <item>fcos</item>
305: <item>fdabs</item>
306: <item>fdadd</item>
307: <item>fdbeq</item>
308: <item>fdbf</item>
309: <item>fdbge</item>
310: <item>fdbgle</item>
311: <item>fdbgl</item>
312: <item>fdbgt</item>
313: <item>fdble</item>
314: <item>fdblt</item>
315: <item>fdbne</item>
316: <item>fdbnge</item>
317: <item>fdbngle</item>
318: <item>fdbngl</item>
319: <item>fdbngt</item>
320: <item>fdbnle</item>
321: <item>fdbnlt</item>
322: <item>fdboge</item>
323: <item>fdbogl</item>
324: <item>fdbogt</item>
325: <item>fdbole</item>
326: <item>fdbolt</item>
327: <item>fdbor</item>
328: <item>fdbseq</item>
329: <item>fdbsf</item>
330: <item>fdbsne</item>
331: <item>fdbst</item>
332: <item>fdbt</item>
333: <item>fdbueq</item>
334: <item>fdbuge</item>
335: <item>fdbugt</item>
336: <item>fdbule</item>
337: <item>fdbult</item>
338: <item>fdbun</item>
339: <item>fddiv</item>
340: <item>fdiv</item>
341: <item>fdmove</item>
342: <item>fdmul</item>
343: <item>fdneg</item>
344: <item>fdsqrt</item>
345: <item>fdsub</item>
346: <item>fetox</item>
347: <item>fetoxm1</item>
348: <item>fgetexp</item>
349: <item>fgetman</item>
350: <item>fint</item>
351: <item>fintrz</item>
352: <item>flog10</item>
353: <item>flog2</item>
354: <item>flogn</item>
355: <item>flognp1</item>
356: <item>fmod</item>
357: <item>fmovecr</item>
358: <item>fmove</item>
359: <item>fmovem</item>
360: <item>fmul</item>
361: <item>fneg</item>
362: <item>fnop</item>
363: <item>frem</item>
364: <item>frestore</item>
365: <item>fsabs</item>
366: <item>fsadd</item>
367: <item>fsave</item>
368: <item>fscale</item>
369: <item>fsdiv</item>
370: <item>fseq</item>
371: <item>fsf</item>
372: <item>fsge</item>
373: <item>fsgldiv</item>
374: <item>fsgle</item>
375: <item>fsgl</item>
376: <item>fsglmul</item>
377: <item>fsgt</item>
378: <item>fsincos</item>
379: <item>fsinh</item>
380: <item>fsin</item>
381: <item>fsle</item>
382: <item>fslt</item>
383: <item>fsmove</item>
384: <item>fsmul</item>
385: <item>fsneg</item>
386: <item>fsne</item>
387: <item>fsnge</item>
388: <item>fsngle</item>
389: <item>fsngl</item>
390: <item>fsngt</item>
391: <item>fsnle</item>
392: <item>fsnlt</item>
393: <item>fsoge</item>
394: <item>fsogl</item>
395: <item>fsogt</item>
396: <item>fsole</item>
397: <item>fsolt</item>
398: <item>fsor</item>
399: <item>fsqrt</item>
400: <item>fsseq</item>
401: <item>fssf</item>
402: <item>fssne</item>
403: <item>fssqrt</item>
404: <item>fsst</item>
405: <item>fssub</item>
406: <item>fst</item>
407: <item>fsub</item>
408: <item>fsueq</item>
409: <item>fsuge</item>
410: <item>fsugt</item>
411: <item>fsule</item>
412: <item>fsult</item>
413: <item>fsun</item>
414: <item>ftanh</item>
415: <item>ftan</item>
416: <item>ftentox</item>
417: <item>ftrapeq</item>
418: <item>ftrapf</item>
419: <item>ftrapge</item>
420: <item>ftrapgle</item>
421: <item>ftrapgl</item>
422: <item>ftrapgt</item>
423: <item>ftraple</item>
424: <item>ftraplt</item>
425: <item>ftrapne</item>
426: <item>ftrapnge</item>
427: <item>ftrapngle</item>
428: <item>ftrapngl</item>
429: <item>ftrapngt</item>
430: <item>ftrapnle</item>
431: <item>ftrapnlt</item>
432: <item>ftrapoge</item>
433: <item>ftrapogl</item>
434: <item>ftrapogt</item>
435: <item>ftrapole</item>
436: <item>ftrapolt</item>
437: <item>ftrapor</item>
438: <item>ftrapseq</item>
439: <item>ftrapsf</item>
440: <item>ftrapsne</item>
441: <item>ftrapst</item>
442: <item>ftrapt</item>
443: <item>ftrapueq</item>
444: <item>ftrapuge</item>
445: <item>ftrapugt</item>
446: <item>ftrapule</item>
447: <item>ftrapult</item>
448: <item>ftrapun</item>
449: <item>ftst</item>
450: <item>ftwotox</item>
451: </list>
452:
453: <list name="Directives">
454: <item>align</item>
455: <item>blk</item>
456: <item>bss</item>
457: <item>clrfo</item>
458: <item>clrso</item>
459: <item>cnop</item>
460: <item>code</item>
461: <item>cseg</item>
462: <item>data</item>
463: <item>dc</item>
464: <item>dcb</item>
465: <item>ds</item>
466: <item>dseg</item>
467: <item>else</item>
468: <item>end</item>
469: <item>endc</item>
470: <item>endif</item>
471: <item>endm</item>
472: <item>endr</item>
473: <item>equ</item>
474: <item>even</item>
475: <item>fo</item>
476: <item>idnt</item>
477: <item>if</item>
478: <item>ifeq</item>
479: <item>ifne</item>
480: <item>ifgt</item>
481: <item>ifge</item>
482: <item>iflt</item>
483: <item>ifle</item>
484: <item>ifd</item>
485: <item>ifnd</item>
486: <item>ifc</item>
487: <item>ifnc</item>
488: <item>incbin</item>
489: <item>incdir</item>
490: <item>include</item>
491: <item>macro</item>
492: <item>org</item>
493: <item>public</item>
494: <item>rept</item>
495: <item>rs</item>
496: <item>rsreset</item>
497: <item>rsset</item>
498: <item>section</item>
499: <item>set</item>
500: <item>setfo</item>
501: <item>setso</item>
502: <item>so</item>
503: <item>text</item>
504: <item>ttl</item>
505: <item>xdef</item>
506: <item>xref</item>
507: <item>sdreg</item>
508: <item>cpu32</item>
509: <item>far</item>
510: <item>fpu</item>
511: <item>machine</item>
512: <item>mc68000</item>
513: <item>mc68010</item>
514: <item>mc68020</item>
515: <item>mc68030</item>
516: <item>mc68040</item>
517: <item>mc68060</item>
518: <item>mcf5200</item>
519: <item>mcf5206</item>
520: <item>mcf5307</item>
521: <item>mcf5407</item>
522: <item>near</item>
523: <item>opt</item>
524: <item>equr</item>
525: <item>equrl</item>
526: <item>fequr</item>
527: <item>fequrl</item>
528: <item>freg</item>
529: <item>reg</item>
530: </list>
531:
532: <contexts>
533: <!-- name = name of context, attribute = name of item data -->
534: <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
535: <keyword attribute="Data Registers" context="#stay" String="Data Registers"/>
536: <keyword attribute="Address Registers" context="#stay" String="Address Registers"/>
537: <keyword attribute="Control Registers" context="#stay" String="Control Registers"/>
538: <keyword attribute="FPU Registers" context="#stay" String="FPU Registers"/>
539: <keyword attribute="Instructions (CPU)" context="#stay" String="Instructions (CPU)"/>
540: <keyword attribute="Instructions (FPU)" context="#stay" String="Instructions (FPU)"/>
541: <keyword attribute="Directives" context="#stay" String="Directives"/>
542:
543: <!-- precedes ".[bwlsdqpx]" match -->
544: <RegExpr attribute="Label" context="#stay" String="^[A-Za-z_][A-Za-z_.:0-9]*"/>
545: <RegExpr attribute="Local label" context="#stay" String="^\\[A-Za-z_][A-Za-z_.:0-9]*"/>
546:
547: <RegExpr attribute="Operand sizes (CPU)" context="#stay" insensitive="true" String="\.b[\s,]"/>
548: <RegExpr attribute="Operand sizes (CPU)" context="#stay" insensitive="true" String="\.w[\s,]"/>
549: <RegExpr attribute="Operand sizes (CPU)" context="#stay" insensitive="true" String="\.l[\s,]"/>
550: <RegExpr attribute="Operand sizes (FPU)" context="#stay" insensitive="true" String="\.s[\s,]"/>
551: <RegExpr attribute="Operand sizes (FPU)" context="#stay" insensitive="true" String="\.d[\s,]"/>
552: <RegExpr attribute="Operand sizes (FPU)" context="#stay" insensitive="true" String="\.p[\s,]"/>
553: <RegExpr attribute="Operand sizes (FPU)" context="#stay" insensitive="true" String="\.q[\s,]"/>
554: <RegExpr attribute="Operand sizes (FPU)" context="#stay" insensitive="true" String="\.x[\s,]"/>
555:
556: <DetectChar attribute="Comment" context="Comment" char=";"/>
557: <DetectChar attribute="Comment" context="Comment" char="*" firstNonSpace="true"/>
558: <DetectChar attribute="Constant" context="Constant" char="#"/>
559: <DetectChar attribute="BaseN" context="Number16" char="$"/>
560: <DetectChar attribute="BaseN" context="Number2" char="%"/>
561: <DetectChar attribute="BaseN" context="Number8" char="@"/>
562: <Float attribute="Float" context="#stay"/>
563: <Int attribute="Number" context="#stay"/>
564: <RangeDetect attribute="Char" context="#stay" char="'" char1="'"/>
565: <AnyChar attribute="String" context="String" String=""'"/>
566: </context>
567:
568: <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
569:
570: <context name="String" attribute="String" lineEndContext="#pop">
571: <AnyChar attribute="String" context="#pop" String=""'"/>
572: </context>
573:
574: <context name="Constant" attribute="Constant" lineEndContext="#pop">
575: <RegExpr attribute="Constant" context="Operators" String="[0-9]+"/>
576: <RegExpr attribute="Constant" context="Operators" String="\$[A-Fa-f0-9]+"/>
577: <RegExpr attribute="Constant" context="Operators" String="@[0-7]+"/>
578: <RegExpr attribute="Constant" context="Operators" String="%[01]+"/>
579: <RegExpr attribute="Label" context="Operators" String="[A-Za-z_][A-Za-z_.0-9]*"/>
580: <RegExpr attribute="Local label" context="Operators" String="\.[A-Za-z_][A-Za-z_.0-9]*"/>
581: <RangeDetect attribute="Char" context="#pop" char="'" char1="'"/>
582: <DetectChar attribute="Normal Text" char="," context="#pop"/>
583: <DetectSpaces attribute="Normal Text" context="#pop"/>
584: <DetectChar attribute="Normal Text" char="(" context="#stay"/>
585: </context>
586:
587: <context name="Operators" attribute="Normal Text" lineEndContext="#pop">
588: <DetectChar attribute="Normal Text" char="|" context="#pop"/>
589: <DetectChar attribute="Normal Text" char="&" context="#pop"/>
590: <DetectChar attribute="Normal Text" char="^" context="#pop"/>
591: <DetectChar attribute="Normal Text" char="*" context="#pop"/>
592: <DetectChar attribute="Normal Text" char="(" context="#pop"/>
593: <DetectChar attribute="Normal Text" char=")" context="#pop"/>
594: <DetectChar attribute="Normal Text" char="+" context="#pop"/>
595: <DetectChar attribute="Normal Text" char="-" context="#pop"/>
596: <DetectChar attribute="Normal Text" char="/" context="#pop"/>
597: <DetectChar attribute="Normal Text" char="~" context="#pop"/>
598: <DetectChar attribute="Normal Text" char="!" context="#pop"/>
599: <DetectChar attribute="Normal Text" char="%" context="#pop"/>
600: <Detect2Chars attribute="Normal Text" char="<" char1="<" context="#pop"/>
601: <Detect2Chars attribute="Normal Text" char=">" char1=">" context="#pop"/>
602: <DetectChar attribute="Normal Text" char="," context="#pop#pop"/>
603: <DetectSpaces attribute="Normal Text" context="#pop#pop"/>
604: </context>
605:
606: <context name="Number16" attribute="BaseN" lineEndContext="#pop">
607: <RegExpr attribute="BaseN" context="#pop" String="[A-Fa-f0-9]+"/>
608: </context>
609:
610: <context name="Number2" attribute="BaseN" lineEndContext="#pop">
611: <RegExpr attribute="BaseN" context="#pop" String="[01]+"/>
612: </context>
613:
614: <context name="Number8" attribute="BaseN" lineEndContext="#pop">
615: <RegExpr attribute="BaseN" context="#pop" String="[0-7]+"/>
616: </context>
617: </contexts>
618:
619: <itemDatas>
620: <!-- keywords -->
621: <itemData name="Normal Text" defStyleNum="dsNormal"/>
622: <itemData name="Data Registers" defStyleNum="dsDataType"/>
623: <itemData name="Address Registers" defStyleNum="dsDataType"/>
624: <itemData name="Control Registers" defStyleNum="dsDataType"/>
625: <itemData name="FPU Registers" defStyleNum="dsDataType"/>
626: <itemData name="Instructions (CPU)" bold="true" defStyleNum="dsKeyword"/>
627: <itemData name="Instructions (FPU)" bold="true" defStyleNum="dsKeyword"/>
628: <itemData name="Directives" bold="true" defStyleNum="dsBuiltIn"/>
629: <!-- defined in contexts -->
630: <itemData name="Operand sizes (CPU)" bold="true" defStyleNum="dsKeyword"/>
631: <itemData name="Operand sizes (FPU)" bold="true" defStyleNum="dsKeyword"/>
632: <itemData name="Comment" italic="false" defStyleNum="dsComment"/>
633: <itemData name="Label" defStyleNum="dsFunction"/>
634: <itemData name="Local label" defStyleNum="dsFunction"/>
635: <itemData name="Constant" defStyleNum="dsConstant"/>
636: <itemData name="BaseN" defStyleNum="dsBaseN"/>
637: <itemData name="Float" defStyleNum="dsFloat"/>
638: <itemData name="Number" defStyleNum="dsDecVal"/>
639: <itemData name="Char" defStyleNum="dsChar"/>
640: <itemData name="String" defStyleNum="dsString"/>
641: </itemDatas>
642: </highlighting>
643:
644: <general>
645: <keywords casesensitive="0"/>
646: <comments>
647: <comment name="singleLine" start=";"/>
648: <comment name="singleLine" start="*"/>
649: </comments>
650: </general>
651:
652: </language>