/usr/share/gtksourceview-3.0/language-specs/6510.lang
<?xml version="1.0" encoding="UTF-8"?>
<!--
6510.lang
2013 by Spider Jerusalem
gedit syntax highlighting definition file for
* ACME
* 64tass
including ILLEGAL OPCODES
copy to
~/.local/share/gtksourceview-3.0/language-specs/ (one user)
/usr/share/gtksourceview-3.0/language-specs/ (all users)
based on k2src.lang, 6502.lang
highlight rules:
================
comments: single comment starting with ;
docstyle comment starting with ;;
strings: starting with " ending with " or EOL
lib-includes: starting with < ending with >
6510 OPCODES: taken from the AAY64 list:
http://unusedino.de/ec64/technical/aay/c64/bmain.htm
6510 ILLEGALS: taken from Illegals.txt (in ACME docs folder)
PSEUDO OPs: acme: from AllPOs.txt (in ACME docs folder)
(directives) 64tass: from README
!!! 65816 PSEUDO OPs/DIRECTIVES NOT INCLUDED !!!
PC will be highlighted when used *= without space in between
constant char: starting with ' ending with ' or EOL
numbers: decimals starting with #
hex values starting with $
binary values starting with %
macros: starting with + with only space/tabs from linestart
labels: global labels ending with :
local labels starting with .
anonymous labels + or - at linestart
[old header - from 6502.lang :]
Syntax File for Highlighting, for gedit
Just copy it into e.g. /usr/share/gtksourceview-2.0/language-specs
Is especially suited for k2asm (e.g. dnc,python,ifdef) but should
be ok for any sane 6502 assembler.
[/] 2008 by Zed Yago/K2
Partly based on c.lang
[/] 2009 modified by cbmhardware/pol for ACME
[/] 2011 modified by spider-jerusalem/SOA
added complete C64 and ACME specific pseudo opcodes
-->
<language id="6510" _name="6510" version="2.0" _section="Sources">
<metadata>
<property name="mimetypes">text/plain</property>
<property name="globs">*.asm;*.inc;*.a;*.s;</property>
<property name="line-comment-start">;</property>
</metadata>
<styles>
<style id="comment" _name="Comment" map-to="def:comment"/>
<style id="doc" _name="Documentation" map-to="def:doc-comment-element"/>
<style id="function" _name="Function" map-to="def:function"/>
<style id="string" _name="String" map-to="def:string"/>
<style id="lib-include" _name="Lib Include" map-to="def:string"/>
<style id="keyword" _name="Keyword" map-to="def:keyword"/>
<style id="base-n-integer" _name="Base-N Integer" map-to="def:base-n-integer"/>
<style id="decimal" _name="Decimal" map-to="def:decimal"/>
<style id="pseudo-ops" _name="Pseudo Opcodes" map-to="def:type"/>
<style id="pseudo-ops-64tass" _name="Pseudo Opcodes 64tass" map-to="def:type"/>
<style id="data-type" _name="Data Type" map-to="def:type"/>
<style id="preprocessor" _name="Preprocessor" map-to="def:preprocessor"/>
</styles>
<definitions>
<context id="line-comment-docstyle" style-ref="doc" end-at-line-end="true">
<start>;;</start>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="line-comment" style-ref="comment" end-at-line-end="true">
<start>;</start>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="ifzero-comment" style-ref="comment">
<start>^[ t]*#[ t]*if[ t]*0</start>
<end>[ t]*#[ t]*(endif|else)</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="string" style-ref="string" end-at-line-end="true">
<start>"</start>
<end>"</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="lib-include" style-ref="lib-include">
<match>[<][_./a-zA-Z0-9]+[>]</match>
</context>
<context id="keywords" style-ref="keyword">
<keyword>adc</keyword>
<keyword>and</keyword>
<keyword>asl</keyword>
<keyword>bcc</keyword>
<keyword>bcs</keyword>
<keyword>beq</keyword>
<keyword>bit</keyword>
<keyword>bmi</keyword>
<keyword>bne</keyword>
<keyword>bpl</keyword>
<keyword>brk</keyword>
<keyword>bvc</keyword>
<keyword>bvs</keyword>
<keyword>clc</keyword>
<keyword>cld</keyword>
<keyword>cli</keyword>
<keyword>clv</keyword>
<keyword>cmp</keyword>
<keyword>cpx</keyword>
<keyword>cpy</keyword>
<keyword>dec</keyword>
<keyword>dex</keyword>
<keyword>dey</keyword>
<keyword>eor</keyword>
<keyword>inc</keyword>
<keyword>inx</keyword>
<keyword>iny</keyword>
<keyword>jmp</keyword>
<keyword>jsr</keyword>
<keyword>lda</keyword>
<keyword>ldx</keyword>
<keyword>ldy</keyword>
<keyword>lsr</keyword>
<keyword>nop</keyword>
<keyword>ora</keyword>
<keyword>pha</keyword>
<keyword>php</keyword>
<keyword>pla</keyword>
<keyword>plp</keyword>
<keyword>rol</keyword>
<keyword>ror</keyword>
<keyword>rti</keyword>
<keyword>rts</keyword>
<keyword>sbc</keyword>
<keyword>sec</keyword>
<keyword>sed</keyword>
<keyword>sei</keyword>
<keyword>sta</keyword>
<keyword>stx</keyword>
<keyword>sty</keyword>
<keyword>tax</keyword>
<keyword>tay</keyword>
<keyword>tsx</keyword>
<keyword>txa</keyword>
<keyword>txs</keyword>
<keyword>tya</keyword>
<!-- ILLEGAL OPCODES -->
<keyword>anc</keyword>
<keyword>arr</keyword>
<keyword>asr</keyword>
<keyword>dcp</keyword>
<keyword>dop</keyword>
<keyword>isc</keyword>
<keyword>jam</keyword>
<keyword>lax</keyword>
<keyword>rra</keyword>
<keyword>sax</keyword>
<keyword>sbx</keyword>
<keyword>slo</keyword>
<keyword>sre</keyword>
<keyword>top</keyword>
</context>
<context id="pseudo-ops" style-ref="pseudo-ops">
<prefix>!</prefix>
<suffix></suffix>
<keyword>08</keyword>
<keyword>8</keyword>
<keyword>16</keyword>
<keyword>24</keyword>
<keyword>32</keyword>
<keyword>align</keyword>
<keyword>binary</keyword>
<keyword>bin</keyword>
<keyword>byte</keyword>
<keyword>by</keyword>
<keyword>cbm</keyword>
<keyword>convtab</keyword>
<keyword>cpu</keyword>
<keyword>ct</keyword>
<keyword>do</keyword>
<keyword>endoffile</keyword>
<keyword>eof</keyword>
<keyword>error</keyword>
<keyword>fill</keyword>
<keyword>fi</keyword>
<keyword>for</keyword>
<keyword>ifndef</keyword>
<keyword>ifdef</keyword>
<keyword>if</keyword>
<keyword>initmem</keyword>
<keyword>macro</keyword>
<keyword>pet</keyword>
<keyword>pseudopc</keyword>
<keyword>raw</keyword>
<keyword>realpc</keyword>
<keyword>scrxor</keyword>
<keyword>scr</keyword>
<keyword>serious</keyword>
<keyword>set</keyword>
<keyword>sl</keyword>
<keyword>source</keyword>
<keyword>src</keyword>
<keyword>subzone</keyword>
<keyword>sz</keyword>
<keyword>text</keyword>
<keyword>to</keyword>
<keyword>tx</keyword>
<keyword>text</keyword>
<keyword>org</keyword>
<keyword>warn</keyword>
<keyword>word</keyword>
<keyword>wo</keyword>
<keyword>zn</keyword>
<keyword>zone</keyword>
</context>
<context id="pseudo-ops-64tass" style-ref="pseudo-ops-64tass">
<prefix>.</prefix>
<suffix></suffix>
<keyword>align</keyword>
<keyword>bend</keyword>
<keyword>binary</keyword>
<keyword>block</keyword>
<keyword>byte</keyword>
<keyword>cdef</keyword>
<keyword>cerror</keyword>
<keyword>char</keyword>
<keyword>comment</keyword>
<keyword>cpu</keyword>
<keyword>cwarn</keyword>
<keyword>dint</keyword>
<keyword>dsection</keyword>
<keyword>dstruct</keyword>
<keyword>dunion</keyword>
<keyword>dword</keyword>
<keyword>edef</keyword>
<keyword>else</keyword>
<keyword>elsif</keyword>
<keyword>enc</keyword>
<keyword>endc</keyword>
<keyword>endif</keyword>
<keyword>endm</keyword>
<keyword>endp</keyword>
<keyword>ends</keyword>
<keyword>endu</keyword>
<keyword>end</keyword>
<keyword>error</keyword>
<keyword>eor</keyword>
<keyword>fill</keyword>
<keyword>fi</keyword>
<keyword>for</keyword>
<keyword>goto</keyword>
<keyword>here</keyword>
<keyword>ifeq</keyword>
<keyword>ifmi</keyword>
<keyword>ifne</keyword>
<keyword>ifpl</keyword>
<keyword>if</keyword>
<keyword>include</keyword>
<keyword>int</keyword>
<keyword>lbl</keyword>
<keyword>logical</keyword>
<keyword>long</keyword>
<keyword>macro</keyword>
<keyword>next</keyword>
<keyword>null</keyword>
<keyword>offs</keyword>
<keyword>option</keyword>
<keyword>page</keyword>
<keyword>pend</keyword>
<keyword>proc</keyword>
<keyword>pron</keyword>
<keyword>proff</keyword>
<keyword>ptext</keyword>
<keyword>rept</keyword>
<keyword>rta</keyword>
<keyword>section</keyword>
<keyword>send</keyword>
<keyword>segment</keyword>
<keyword>shiftl</keyword>
<keyword>shift</keyword>
<keyword>struct</keyword>
<keyword>text</keyword>
<keyword>union</keyword>
<keyword>var</keyword>
<keyword>warn</keyword>
<keyword>word</keyword>
</context>
<context id="mem" style-ref="data-type">
<prefix>*</prefix>
<suffix></suffix>
<keyword>=</keyword>
</context>
<context id="else" style-ref="data-type">
<prefix></prefix>
<suffix></suffix>
<keyword>else</keyword>
<keyword>until</keyword>
<keyword>while</keyword>
</context>
<context id="character-constant" style-ref="string" end-at-line-end="true">
<start>'</start>
<end>'</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="decimal" style-ref="decimal">
<match>#[0-9?]+</match>
</context>
<context id="binary-number" style-ref="base-n-integer">
<match>%[01?#.]+</match>
</context>
<context id="hex-number" style-ref="base-n-integer">
<match>$[0-9a-fA-F?]+</match>
</context>
<context id="macros" style-ref="preprocessor">
<match>^[s]*[+][_a-zA-Z0-9]+</match>
</context>
<context id="label" style-ref="function">
<match>[ t]*[_a-zA-Z][_a-zA-Z0-9]+:</match>
</context>
<context id="local-label" style-ref="function">
<match>^[.][_a-zA-Z0-9]+</match>
</context>
<context id="anon-label-plus" style-ref="function">
<match>^[+]+</match>
</context>
<context id="anon-label-minus" style-ref="function">
<match>^[-]+</match>
</context>
<context id="6510">
<include>
<context ref="line-comment-docstyle"/>
<context ref="line-comment"/>
<context ref="ifzero-comment"/>
<context ref="lib-include"/>
<context ref="string"/>
<context ref="keywords"/>
<context ref="pseudo-ops"/>
<context ref="pseudo-ops-64tass"/>
<context ref="mem"/>
<context ref="else"/>
<context ref="character-constant"/>
<context ref="decimal"/>
<context ref="binary-number"/>
<context ref="hex-number"/>
<context ref="macros"/>
<context ref="label"/>
<context ref="local-label"/>
<context ref="anon-label-plus" />
<context ref="anon-label-minus" />
</include>
</context>
</definitions>
</language>Letzte Änderung: 2019-01-04 10:04:21