]> git.the-white-hart.net Git - atmega/asm_highlighting.git/commitdiff
Initial commit main
authorrs <>
Fri, 12 Sep 2025 22:34:43 +0000 (17:34 -0500)
committerrs <>
Fri, 12 Sep 2025 22:34:43 +0000 (17:34 -0500)
LICENSE [new file with mode: 0644]
README.md [new file with mode: 0644]
avr.lang [new file with mode: 0644]

diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..de0f63a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Ryan Schuster
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..df6df25
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# asm_highlighting
+Gtksourceview syntax highlighting for AVR assembly
+
+To install:
+```bash
+sudo cp avr.lang /usr/share/gtksourceview-4/language-specs/
+```
+
+## References
+
+[Language spec tutorial](https://developer-old.gnome.org/gtksourceview/4.2/lang-tutorial.html)
+[Language spec reference](https://developer-old.gnome.org/gtksourceview/4.2/lang-reference.html)
diff --git a/avr.lang b/avr.lang
new file mode 100644 (file)
index 0000000..9395c53
--- /dev/null
+++ b/avr.lang
@@ -0,0 +1,1303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+       AVR Assembly
+
+-->
+<language id="avr" _name="AVR Assembly" version="2.0" _section="Sources">
+       <metadata>
+               <property name="mimetypes">text/plain</property>
+               <property name="globs">*.asm</property>
+               <property name="line-comment-start">;</property>
+               <!--
+               <property name="block-comment-start"></property>
+               <property name="block-comment-end"></property>
+               -->
+       </metadata>
+
+       <styles>
+               <!-- Values -->
+               <style id="string"        _name="String"               map-to="def:string"/>
+               <style id="escaped-char"  _name="Escaped Character"    map-to="def:special-char"/>
+               <style id="number"        _name="Number"               map-to="def:constant"/>
+
+               <!-- Language -->
+               <style id="mnemonic"      _name="Mnemonic"             map-to="def:function"/>
+               <style id="register"      _name="Register"             map-to="def:type"/>
+               <style id="label"         _name="Label"                map-to="def:keyword"/>
+               <style id="identifier"    _name="Identifier"           map-to="def:keyword"/>
+
+               <!-- Assembler -->
+               <style id="comment"       _name="Comment"              map-to="def:comment"/>
+               <style id="preprocessor"  _name="Preprocessor"         map-to="def:preprocessor"/>
+               <style id="directive"     _name="Assembler Directive"  map-to="def:preprocessor"/>
+               <style id="operator"      _name="Expression Operator"  map-to="def:operator"/>
+               <style id="function"      _name="Expression Function"  map-to="def:preprocessor"/>
+
+               <!-- Device-Specific Constants -->
+               <style id="device-regs"   _name="Device Register Name" map-to="def:special-constant"/>
+               <style id="device-bits"   _name="Register Bit Name"    map-to="def:special-constant"/>
+               <style id="device-data"   _name="Data Address Name"    map-to="def:special-constant"/>
+               <style id="device-prog"   _name="Program Address Name" map-to="def:special-constant"/>
+               <style id="device-e2p"    _name="EEPROM Address Name"  map-to="def:special-constant"/>
+               <style id="device-consts" _name="Common Constants"     map-to="def:special-constant"/>
+       </styles>
+
+       <!--
+       <default-regex-options>
+       </default-regex-options>
+       -->
+
+       <!--
+       <keyword-char-class>
+       </keyword-char-class>
+       -->
+
+       <definitions>
+               <context id="comment" style-ref="comment">
+                       <start>;</start>
+                       <end>$</end>
+                       <include>
+                               <context ref="def:in-comment"/>
+                       </include>
+               </context>
+
+               <context id="mnemonics" style-ref="mnemonic">
+                       <!-- Arithmetic and Logic Instructions -->
+                       <keyword>add</keyword>
+                       <keyword>adc</keyword>
+                       <keyword>adiw</keyword>
+                       <keyword>sub</keyword>
+                       <keyword>subi</keyword>
+                       <keyword>sbc</keyword>
+                       <keyword>sbci</keyword>
+                       <keyword>sbiw</keyword>
+                       <keyword>and</keyword>
+                       <keyword>andi</keyword>
+                       <keyword>or</keyword>
+                       <keyword>ori</keyword>
+                       <keyword>eor</keyword>
+                       <keyword>com</keyword>
+                       <keyword>neg</keyword>
+                       <keyword>sbr</keyword>
+                       <keyword>cbr</keyword>
+                       <keyword>inc</keyword>
+                       <keyword>dec</keyword>
+                       <keyword>tst</keyword>
+                       <keyword>clr</keyword>
+                       <keyword>ser</keyword>
+                       <keyword>mul</keyword>
+                       <keyword>muls</keyword>
+                       <keyword>mulsu</keyword>
+                       <keyword>fmul</keyword>
+                       <keyword>fmuls</keyword>
+                       <keyword>fmulsu</keyword>
+                       <keyword>des</keyword>
+
+                       <!-- Change of Flow Instructions -->
+                       <keyword>rjmp</keyword>
+                       <keyword>ijmp</keyword>
+                       <keyword>eijmp</keyword>
+                       <keyword>jmp</keyword>
+                       <keyword>rcall</keyword>
+                       <keyword>icall</keyword>
+                       <keyword>eicall</keyword>
+                       <keyword>call</keyword>
+                       <keyword>ret</keyword>
+                       <keyword>reti</keyword>
+                       <keyword>cpse</keyword>
+                       <keyword>cp</keyword>
+                       <keyword>cpc</keyword>
+                       <keyword>cpi</keyword>
+                       <keyword>sbrc</keyword>
+                       <keyword>sbrs</keyword>
+                       <keyword>sbic</keyword>
+                       <keyword>sbis</keyword>
+                       <keyword>brbs</keyword>
+                       <keyword>brbc</keyword>
+                       <keyword>breq</keyword>
+                       <keyword>brne</keyword>
+                       <keyword>brcs</keyword>
+                       <keyword>brcc</keyword>
+                       <keyword>brsh</keyword>
+                       <keyword>brlo</keyword>
+                       <keyword>brmi</keyword>
+                       <keyword>brpl</keyword>
+                       <keyword>brge</keyword>
+                       <keyword>brlt</keyword>
+                       <keyword>brhs</keyword>
+                       <keyword>brhc</keyword>
+                       <keyword>brts</keyword>
+                       <keyword>brtc</keyword>
+                       <keyword>brvs</keyword>
+                       <keyword>brvc</keyword>
+                       <keyword>brie</keyword>
+                       <keyword>brid</keyword>
+
+                       <!-- Data Transfer Instructions -->
+                       <keyword>mov</keyword>
+                       <keyword>movw</keyword>
+                       <keyword>ldi</keyword>
+                       <keyword>lds</keyword>
+                       <keyword>ld</keyword>
+                       <keyword>ldd</keyword>
+                       <keyword>sts</keyword>
+                       <keyword>st</keyword>
+                       <keyword>std</keyword>
+                       <keyword>lpm</keyword>
+                       <keyword>elpm</keyword>
+                       <keyword>spm</keyword>
+                       <keyword>in</keyword>
+                       <keyword>out</keyword>
+                       <keyword>push</keyword>
+                       <keyword>pop</keyword>
+                       <keyword>xch</keyword>
+                       <keyword>las</keyword>
+                       <keyword>lac</keyword>
+                       <keyword>lat</keyword>
+
+                       <!-- Bit and Bit-Test Instructions -->
+                       <keyword>lsl</keyword>
+                       <keyword>lsr</keyword>
+                       <keyword>rol</keyword>
+                       <keyword>ror</keyword>
+                       <keyword>asr</keyword>
+                       <keyword>swap</keyword>
+                       <keyword>sbi</keyword>
+                       <keyword>cbi</keyword>
+                       <keyword>bst</keyword>
+                       <keyword>bld</keyword>
+                       <keyword>bset</keyword>
+                       <keyword>bclr</keyword>
+                       <keyword>sec</keyword>
+                       <keyword>clc</keyword>
+                       <keyword>sen</keyword>
+                       <keyword>cln</keyword>
+                       <keyword>sez</keyword>
+                       <keyword>clz</keyword>
+                       <keyword>sei</keyword>
+                       <keyword>cli</keyword>
+                       <keyword>ses</keyword>
+                       <keyword>cls</keyword>
+                       <keyword>sev</keyword>
+                       <keyword>clv</keyword>
+                       <keyword>set</keyword>
+                       <keyword>clt</keyword>
+                       <keyword>seh</keyword>
+                       <keyword>clh</keyword>
+
+                       <!-- MCU Control Instructions -->
+                       <keyword>break</keyword>
+                       <keyword>nop</keyword>
+                       <keyword>sleep</keyword>
+                       <keyword>wdr</keyword>
+               </context>
+
+               <context id="registers" style-ref="register">
+                       <keyword>r0</keyword>
+                       <keyword>r1</keyword>
+                       <keyword>r2</keyword>
+                       <keyword>r3</keyword>
+                       <keyword>r4</keyword>
+                       <keyword>r5</keyword>
+                       <keyword>r6</keyword>
+                       <keyword>r7</keyword>
+                       <keyword>r8</keyword>
+                       <keyword>r9</keyword>
+                       <keyword>r10</keyword>
+                       <keyword>r11</keyword>
+                       <keyword>r12</keyword>
+                       <keyword>r13</keyword>
+                       <keyword>r14</keyword>
+                       <keyword>r15</keyword>
+                       <keyword>r16</keyword>
+                       <keyword>r17</keyword>
+                       <keyword>r18</keyword>
+                       <keyword>r19</keyword>
+                       <keyword>r20</keyword>
+                       <keyword>r21</keyword>
+                       <keyword>r22</keyword>
+                       <keyword>r23</keyword>
+                       <keyword>r24</keyword>
+                       <keyword>r25</keyword>
+                       <keyword>r26</keyword>
+                       <keyword>r27</keyword>
+                       <keyword>r28</keyword>
+                       <keyword>r29</keyword>
+                       <keyword>r30</keyword>
+                       <keyword>r31</keyword>
+
+                       <keyword>[XYZ][LH]?</keyword>
+               </context>
+
+               <context id="m328p-regs" style-ref="device-regs">
+                       <!-- Direct Access -->
+                       <keyword>SREG</keyword>
+                       <keyword>SPL</keyword>
+                       <keyword>SPH</keyword>
+                       <keyword>SPMCSR</keyword>
+                       <keyword>MCUCR</keyword>
+                       <keyword>MCUSR</keyword>
+                       <keyword>SMCR</keyword>
+                       <keyword>ACSR</keyword>
+                       <keyword>SPDR</keyword>
+                       <keyword>SPSR</keyword>
+                       <keyword>SPCR</keyword>
+                       <keyword>GPIOR2</keyword>
+                       <keyword>GPIOR1</keyword>
+                       <keyword>OCR0B</keyword>
+                       <keyword>OCR0A</keyword>
+                       <keyword>TCNT0</keyword>
+                       <keyword>TCCR0B</keyword>
+                       <keyword>TCCR0A</keyword>
+                       <keyword>GTCCR</keyword>
+                       <keyword>EEARH</keyword>
+                       <keyword>EEARL</keyword>
+                       <keyword>EEDR</keyword>
+                       <keyword>EECR</keyword>
+                       <keyword>GPIOR0</keyword>
+                       <keyword>EIMSK</keyword>
+                       <keyword>EIFR</keyword>
+                       <keyword>PCIFR</keyword>
+                       <keyword>TIFR2</keyword>
+                       <keyword>TIFR1</keyword>
+                       <keyword>TIFR0</keyword>
+                       <keyword>PORTD</keyword>
+                       <keyword>DDRD</keyword>
+                       <keyword>PIND</keyword>
+                       <keyword>PORTC</keyword>
+                       <keyword>DDRC</keyword>
+                       <keyword>PINC</keyword>
+                       <keyword>PORTB</keyword>
+                       <keyword>DDRB</keyword>
+                       <keyword>PINB</keyword>
+               </context>
+
+               <context id="m328p-data" style-ref="device-data">
+                       <!-- Memory mapped device registers -->
+                       <keyword>UDR0</keyword>
+                       <keyword>UBRR0L</keyword>
+                       <keyword>UBRR0H</keyword>
+                       <keyword>UCSR0C</keyword>
+                       <keyword>UCSR0B</keyword>
+                       <keyword>UCSR0A</keyword>
+                       <keyword>TWAMR</keyword>
+                       <keyword>TWCR</keyword>
+                       <keyword>TWDR</keyword>
+                       <keyword>TWAR</keyword>
+                       <keyword>TWSR</keyword>
+                       <keyword>TWBR</keyword>
+                       <keyword>ASSR</keyword>
+                       <keyword>OCR2B</keyword>
+                       <keyword>OCR2A</keyword>
+                       <keyword>TCNT2</keyword>
+                       <keyword>TCCR2B</keyword>
+                       <keyword>TCCR2A</keyword>
+                       <keyword>OCR1BL</keyword>
+                       <keyword>OCR1BH</keyword>
+                       <keyword>OCR1AL</keyword>
+                       <keyword>OCR1AH</keyword>
+                       <keyword>ICR1L</keyword>
+                       <keyword>ICR1H</keyword>
+                       <keyword>TCNT1L</keyword>
+                       <keyword>TCNT1H</keyword>
+                       <keyword>TCCR1C</keyword>
+                       <keyword>TCCR1B</keyword>
+                       <keyword>TCCR1A</keyword>
+                       <keyword>DIDR1</keyword>
+                       <keyword>DIDR0</keyword>
+                       <keyword>ADMUX</keyword>
+                       <keyword>ADCSRB</keyword>
+                       <keyword>ADCSRA</keyword>
+                       <keyword>ADCH</keyword>
+                       <keyword>ADCL</keyword>
+                       <keyword>TIMSK2</keyword>
+                       <keyword>TIMSK1</keyword>
+                       <keyword>TIMSK0</keyword>
+                       <keyword>PCMSK1</keyword>
+                       <keyword>PCMSK2</keyword>
+                       <keyword>PCMSK0</keyword>
+                       <keyword>EICRA</keyword>
+                       <keyword>PCICR</keyword>
+                       <keyword>OSCCAL</keyword>
+                       <keyword>PRR</keyword>
+                       <keyword>CLKPR</keyword>
+                       <keyword>WDTCSR</keyword>
+
+                       <!-- Various markers -->
+                       <keyword>IOEND</keyword>
+                       <keyword>SRAM_START</keyword>
+                       <keyword>RAMEND</keyword>
+                       <keyword>XRAMEND</keyword>
+               </context>
+
+               <context id="m328p-prog" style-ref="device-prog">
+                       <!-- Bootloader -->
+                       <keyword>NRWW_START_ADDR</keyword>
+                       <keyword>NRWW_STOP_ADDR</keyword>
+                       <keyword>RWW_START_ADDR</keyword>
+                       <keyword>RWW_STOP_ADDR</keyword>
+                       <keyword>FIRSTBOOTSTART</keyword>
+                       <keyword>SECONDBOOTSTART</keyword>
+                       <keyword>THIRDBOOTSTART</keyword>
+                       <keyword>FOURTHBOOTSTART</keyword>
+                       <keyword>SMALLBOOTSTART</keyword>
+                       <keyword>LARGEBOOTSTART</keyword>
+                       <keyword>FLASHEND</keyword>
+
+                       <!-- Interrupt vectors -->
+                       <keyword>INT0addr</keyword>
+                       <keyword>INT1addr</keyword>
+                       <keyword>PCI0addr</keyword>
+                       <keyword>PCI1addr</keyword>
+                       <keyword>PCI2addr</keyword>
+                       <keyword>WDTaddr</keyword>
+                       <keyword>OC2Aaddr</keyword>
+                       <keyword>OC2Baddr</keyword>
+                       <keyword>OVF2addr</keyword>
+                       <keyword>ICP1addr</keyword>
+                       <keyword>OC1Aaddr</keyword>
+                       <keyword>OC1Baddr</keyword>
+                       <keyword>OVF1addr</keyword>
+                       <keyword>OC0Aaddr</keyword>
+                       <keyword>OC0Baddr</keyword>
+                       <keyword>OVF0addr</keyword>
+                       <keyword>SPIaddr</keyword>
+                       <keyword>URXCaddr</keyword>
+                       <keyword>UDREaddr</keyword>
+                       <keyword>UTXCaddr</keyword>
+                       <keyword>ADCCaddr</keyword>
+                       <keyword>ERDYaddr</keyword>
+                       <keyword>ACIaddr</keyword>
+                       <keyword>TWIaddr</keyword>
+                       <keyword>SPMRaddr</keyword>
+               </context>
+
+               <context id="m328p-e2p" style-ref="device-e2p">
+                       <keyword>E2END</keyword>
+                       <keyword>EEPROMEND</keyword>
+               </context>
+
+               <context id="m328p-consts" style-ref="device-consts">
+                       <!-- Any constants that don't refer to addresses or bits, usually sizes -->
+
+                       <!-- RAM constants -->
+                       <keyword>SRAM_SIZE</keyword>
+
+                       <!-- Program memory constants -->
+                       <keyword>INT_VECTORS_SIZE</keyword>
+                       <keyword>PAGESIZE</keyword>
+
+                       <!-- EEPROM constants -->
+                       <keyword>EEADRBITS</keyword>
+                       <keyword>INT_VECTORS_SIZE</keyword>
+
+                       <!-- Other -->
+                       <keyword>SIGNATURE_000</keyword>
+                       <keyword>SIGNATURE_001</keyword>
+                       <keyword>SIGNATURE_002</keyword>
+               </context>
+
+               <context id="m328p-bits" style-ref="device-bits">
+                       <!-- ***** USART0 *********************** -->
+
+                       <!-- UDR0 - USART I/O Data Register -->
+                       <keyword>UDR0_0</keyword>
+                       <keyword>UDR0_1</keyword>
+                       <keyword>UDR0_2</keyword>
+                       <keyword>UDR0_3</keyword>
+                       <keyword>UDR0_4</keyword>
+                       <keyword>UDR0_5</keyword>
+                       <keyword>UDR0_6</keyword>
+                       <keyword>UDR0_7</keyword>
+
+                       <!-- UCSR0A - USART Control and Status Register A -->
+                       <keyword>MPCM0</keyword>
+                       <keyword>U2X0</keyword>
+                       <keyword>UPE0</keyword>
+                       <keyword>DOR0</keyword>
+                       <keyword>FE0</keyword>
+                       <keyword>UDRE0</keyword>
+                       <keyword>TXC0</keyword>
+                       <keyword>RXC0</keyword>
+
+                       <!-- UCSR0B - USART Control and Status Register B -->
+                       <keyword>TXB80</keyword>
+                       <keyword>RXB80</keyword>
+                       <keyword>UCSZ02</keyword>
+                       <keyword>TXEN0</keyword>
+                       <keyword>RXEN0</keyword>
+                       <keyword>UDRIE0</keyword>
+                       <keyword>TXCIE0</keyword>
+                       <keyword>RXCIE0</keyword>
+
+                       <!-- UCSR0C - USART Control and Status Register C -->
+                       <keyword>UCPOL0</keyword>
+                       <keyword>UCSZ00</keyword>
+                       <keyword>UCSZ01</keyword>
+                       <keyword>USBS0</keyword>
+                       <keyword>UPM00</keyword>
+                       <keyword>UPM01</keyword>
+                       <keyword>UMSEL00</keyword>
+                       <keyword>UMSEL01</keyword>
+                       <keyword>UCPHA0</keyword>  <!-- For compatibility -->
+                       <keyword>UDORD0</keyword>  <!-- For compatibility -->
+                       <keyword>UMSEL0</keyword>  <!-- For compatibility -->
+                       <keyword>UMSEL1</keyword>  <!-- For compatibility -->
+
+                       <!-- UBRR0H - USART Baud Rate Register High Byte -->
+                       <keyword>UBRR8</keyword>
+                       <keyword>UBRR9</keyword>
+                       <keyword>UBRR10</keyword>
+                       <keyword>UBRR11</keyword>
+
+                       <!-- UBRR0L - USART Baud Rate Register Low Byte -->
+                       <keyword>UBRR0</keyword>
+                       <keyword>UBRR1</keyword>
+                       <keyword>UBRR2</keyword>
+                       <keyword>UBRR3</keyword>
+                       <keyword>UBRR4</keyword>
+                       <keyword>UBRR5</keyword>
+                       <keyword>UBRR6</keyword>
+                       <keyword>UBRR7</keyword>
+
+
+                       <!-- ***** TWI ************************** -->
+
+                       <!-- TWAMR - TWI (Slave) Address Mask Register -->
+                       <keyword>TWAM0</keyword>
+                       <keyword>TWAM1</keyword>
+                       <keyword>TWAM2</keyword>
+                       <keyword>TWAM3</keyword>
+                       <keyword>TWAM4</keyword>
+                       <keyword>TWAM5</keyword>
+                       <keyword>TWAM6</keyword>
+                       <keyword>TWAMR0</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR1</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR2</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR3</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR4</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR5</keyword>  <!-- For compatibility -->
+                       <keyword>TWAMR6</keyword>  <!-- For compatibility -->
+
+                       <!-- TWBR - TWI Bit Rate register -->
+                       <keyword>TWBR0</keyword>
+                       <keyword>TWBR1</keyword>
+                       <keyword>TWBR2</keyword>
+                       <keyword>TWBR3</keyword>
+                       <keyword>TWBR4</keyword>
+                       <keyword>TWBR5</keyword>
+                       <keyword>TWBR6</keyword>
+                       <keyword>TWBR7</keyword>
+
+                       <!-- TWCR - TWI Control Register -->
+                       <keyword>TWIE</keyword>
+                       <keyword>TWEN</keyword>
+                       <keyword>TWWC</keyword>
+                       <keyword>TWSTO</keyword>
+                       <keyword>TWSTA</keyword>
+                       <keyword>TWEA</keyword>
+                       <keyword>TWINT</keyword>
+
+                       <!-- TWSR - TWI Status Register -->
+                       <keyword>TWPS0</keyword>
+                       <keyword>TWPS1</keyword>
+                       <keyword>TWS3</keyword>
+                       <keyword>TWS4</keyword>
+                       <keyword>TWS5</keyword>
+                       <keyword>TWS6</keyword>
+                       <keyword>TWS7</keyword>
+
+                       <!-- TWDR - TWI Data register -->
+                       <keyword>TWD0</keyword>
+                       <keyword>TWD1</keyword>
+                       <keyword>TWD2</keyword>
+                       <keyword>TWD3</keyword>
+                       <keyword>TWD4</keyword>
+                       <keyword>TWD5</keyword>
+                       <keyword>TWD6</keyword>
+                       <keyword>TWD7</keyword>
+
+                       <!-- TWAR - TWI (Slave) Address register -->
+                       <keyword>TWGCE</keyword>
+                       <keyword>TWA0</keyword>
+                       <keyword>TWA1</keyword>
+                       <keyword>TWA2</keyword>
+                       <keyword>TWA3</keyword>
+                       <keyword>TWA4</keyword>
+                       <keyword>TWA5</keyword>
+                       <keyword>TWA6</keyword>
+
+
+                       <!-- ***** TIMER_COUNTER_1 ************** -->
+
+                       <!-- TIMSK1 - Timer/Counter Interrupt Mask Register -->
+                       <keyword>TOIE1</keyword>
+                       <keyword>OCIE1A</keyword>
+                       <keyword>OCIE1B</keyword>
+                       <keyword>ICIE1</keyword>
+
+                       <!-- TIFR1 - Timer/Counter Interrupt Flag register -->
+                       <keyword>TOV1</keyword>
+                       <keyword>OCF1A</keyword>
+                       <keyword>OCF1B</keyword>
+                       <keyword>ICF1</keyword>
+
+                       <!-- TCCR1A - Timer/Counter1 Control Register A -->
+                       <keyword>WGM10</keyword>
+                       <keyword>WGM11</keyword>
+                       <keyword>COM1B0</keyword>
+                       <keyword>COM1B1</keyword>
+                       <keyword>COM1A0</keyword>
+                       <keyword>COM1A1</keyword>
+
+                       <!-- TCCR1B - Timer/Counter1 Control Register B -->
+                       <keyword>CS10</keyword>
+                       <keyword>CS11</keyword>
+                       <keyword>CS12</keyword>
+                       <keyword>WGM12</keyword>
+                       <keyword>WGM13</keyword>
+                       <keyword>ICES1</keyword>
+                       <keyword>ICNC1</keyword>
+
+                       <!-- TCCR1C - Timer/Counter1 Control Register C -->
+                       <keyword>FOC1B</keyword>
+                       <keyword>FOC1A</keyword>
+
+                       <!-- GTCCR - General Timer/Counter Control Register -->
+                       <keyword>PSRSYNC</keyword>
+                       <keyword>TSM</keyword>
+
+
+                       <!-- ***** TIMER_COUNTER_2 ************** -->
+
+                       <!-- TIMSK2 - Timer/Counter Interrupt Mask register -->
+                       <keyword>TOIE2</keyword>
+                       <keyword>OCIE2A</keyword>
+                       <keyword>OCIE2B</keyword>
+                       <keyword>TOIE2A</keyword>  <!-- For compatibility -->
+
+                       <!-- TIFR2 - Timer/Counter Interrupt Flag Register -->
+                       <keyword>TOV2</keyword>
+                       <keyword>OCF2A</keyword>
+                       <keyword>OCF2B</keyword>
+
+                       <!-- TCCR2A - Timer/Counter2 Control Register A -->
+                       <keyword>WGM20</keyword>
+                       <keyword>WGM21</keyword>
+                       <keyword>COM2B0</keyword>
+                       <keyword>COM2B1</keyword>
+                       <keyword>COM2A0</keyword>
+                       <keyword>COM2A1</keyword>
+
+                       <!-- TCCR2B - Timer/Counter2 Control Register B -->
+                       <keyword>CS20</keyword>
+                       <keyword>CS21</keyword>
+                       <keyword>CS22</keyword>
+                       <keyword>WGM22</keyword>
+                       <keyword>FOC2B</keyword>
+                       <keyword>FOC2A</keyword>
+
+                       <!-- TCNT2 - Timer/Counter2 -->
+                       <keyword>TCNT2_0</keyword>
+                       <keyword>TCNT2_1</keyword>
+                       <keyword>TCNT2_2</keyword>
+                       <keyword>TCNT2_3</keyword>
+                       <keyword>TCNT2_4</keyword>
+                       <keyword>TCNT2_5</keyword>
+                       <keyword>TCNT2_6</keyword>
+                       <keyword>TCNT2_7</keyword>
+
+                       <!-- OCR2A - Timer/Counter2 Output Compare Register A -->
+                       <keyword>OCR2_0</keyword>
+                       <keyword>OCR2_1</keyword>
+                       <keyword>OCR2_2</keyword>
+                       <keyword>OCR2_3</keyword>
+                       <keyword>OCR2_4</keyword>
+                       <keyword>OCR2_5</keyword>
+                       <keyword>OCR2_6</keyword>
+                       <keyword>OCR2_7</keyword>
+
+                       <!-- ASSR - Asynchronous Status Register -->
+                       <keyword>TCR2BUB</keyword>
+                       <keyword>TCR2AUB</keyword>
+                       <keyword>OCR2BUB</keyword>
+                       <keyword>OCR2AUB</keyword>
+                       <keyword>TCN2UB</keyword>
+                       <keyword>AS2</keyword>
+                       <keyword>EXCLK</keyword>
+
+                       <!-- GTCCR - General Timer Counter Control register -->
+                       <keyword>PSRASY</keyword>
+                       <keyword>PSR2</keyword>  <!-- For compatibility -->
+
+
+                       <!-- ***** AD_CONVERTER ***************** -->
+
+                       <!-- ADMUX - The ADC multiplexer Selection Register -->
+                       <keyword>MUX0</keyword>
+                       <keyword>MUX1</keyword>
+                       <keyword>MUX2</keyword>
+                       <keyword>MUX3</keyword>
+                       <keyword>ADLAR</keyword>
+                       <keyword>REFS0</keyword>
+                       <keyword>REFS1</keyword>
+
+                       <!-- ADCSRA - The ADC Control and Status register A -->
+                       <keyword>ADPS0</keyword>
+                       <keyword>ADPS1</keyword>
+                       <keyword>ADPS2</keyword>
+                       <keyword>ADIE</keyword>
+                       <keyword>ADIF</keyword>
+                       <keyword>ADATE</keyword>
+                       <keyword>ADSC</keyword>
+                       <keyword>ADEN</keyword>
+
+                       <!-- ADCSRB - The ADC Control and Status register B -->
+                       <keyword>ADTS0</keyword>
+                       <keyword>ADTS1</keyword>
+                       <keyword>ADTS2</keyword>
+                       <keyword>ACME</keyword>
+
+                       <!-- ADCH - ADC Data Register High Byte -->
+                       <keyword>ADCH0</keyword>
+                       <keyword>ADCH1</keyword>
+                       <keyword>ADCH2</keyword>
+                       <keyword>ADCH3</keyword>
+                       <keyword>ADCH4</keyword>
+                       <keyword>ADCH5</keyword>
+                       <keyword>ADCH6</keyword>
+                       <keyword>ADCH7</keyword>
+
+                       <!-- ADCL - ADC Data Register Low Byte -->
+                       <keyword>ADCL0</keyword>
+                       <keyword>ADCL1</keyword>
+                       <keyword>ADCL2</keyword>
+                       <keyword>ADCL3</keyword>
+                       <keyword>ADCL4</keyword>
+                       <keyword>ADCL5</keyword>
+                       <keyword>ADCL6</keyword>
+                       <keyword>ADCL7</keyword>
+
+                       <!-- DIDR0 - Digital Input Disable Register -->
+                       <keyword>ADC0D</keyword>
+                       <keyword>ADC1D</keyword>
+                       <keyword>ADC2D</keyword>
+                       <keyword>ADC3D</keyword>
+                       <keyword>ADC4D</keyword>
+                       <keyword>ADC5D</keyword>
+
+
+                       <!-- ***** ANALOG_COMPARATOR ************ -->
+
+                       <!-- ACSR - Analog Comparator Control And Status Register -->
+                       <keyword>ACIS0</keyword>
+                       <keyword>ACIS1</keyword>
+                       <keyword>ACIC</keyword>
+                       <keyword>ACIE</keyword>
+                       <keyword>ACI</keyword>
+                       <keyword>ACO</keyword>
+                       <keyword>ACBG</keyword>
+                       <keyword>ACD</keyword>
+
+                       <!-- DIDR1 - Digital Input Disable Register 1 -->
+                       <keyword>AIN0D</keyword>
+                       <keyword>AIN1D</keyword>
+
+
+                       <!-- ***** PORTB ************************ -->
+
+                       <!-- PORTB - Port B Data Register -->
+                       <keyword>PORTB0</keyword>
+                       <keyword>PORTB1</keyword>
+                       <keyword>PORTB2</keyword>
+                       <keyword>PORTB3</keyword>
+                       <keyword>PORTB4</keyword>
+                       <keyword>PORTB5</keyword>
+                       <keyword>PORTB6</keyword>
+                       <keyword>PORTB7</keyword>
+                       <keyword>PB0</keyword>  <!-- For compatibility -->
+                       <keyword>PB1</keyword>  <!-- For compatibility -->
+                       <keyword>PB2</keyword>  <!-- For compatibility -->
+                       <keyword>PB3</keyword>  <!-- For compatibility -->
+                       <keyword>PB4</keyword>  <!-- For compatibility -->
+                       <keyword>PB5</keyword>  <!-- For compatibility -->
+                       <keyword>PB6</keyword>  <!-- For compatibility -->
+                       <keyword>PB7</keyword>  <!-- For compatibility -->
+
+                       <!-- DDRB - Port B Data Direction Register -->
+                       <keyword>DDB0</keyword>
+                       <keyword>DDB1</keyword>
+                       <keyword>DDB2</keyword>
+                       <keyword>DDB3</keyword>
+                       <keyword>DDB4</keyword>
+                       <keyword>DDB5</keyword>
+                       <keyword>DDB6</keyword>
+                       <keyword>DDB7</keyword>
+
+                       <!-- PINB - Port B Input Pins -->
+                       <keyword>PINB0</keyword>
+                       <keyword>PINB1</keyword>
+                       <keyword>PINB2</keyword>
+                       <keyword>PINB3</keyword>
+                       <keyword>PINB4</keyword>
+                       <keyword>PINB5</keyword>
+                       <keyword>PINB6</keyword>
+                       <keyword>PINB7</keyword>
+
+
+                       <!-- ***** PORTC ************************ -->
+
+                       <!-- PORTC - Port C Data Register -->
+                       <keyword>PORTC0</keyword>
+                       <keyword>PORTC1</keyword>
+                       <keyword>PORTC2</keyword>
+                       <keyword>PORTC3</keyword>
+                       <keyword>PORTC4</keyword>
+                       <keyword>PORTC5</keyword>
+                       <keyword>PORTC6</keyword>
+                       <keyword>PC0</keyword>  <!-- For compatibility -->
+                       <keyword>PC1</keyword>  <!-- For compatibility -->
+                       <keyword>PC2</keyword>  <!-- For compatibility -->
+                       <keyword>PC3</keyword>  <!-- For compatibility -->
+                       <keyword>PC4</keyword>  <!-- For compatibility -->
+                       <keyword>PC5</keyword>  <!-- For compatibility -->
+                       <keyword>PC6</keyword>  <!-- For compatibility -->
+
+                       <!-- DDRC - Port C Data Direction Register -->
+                       <keyword>DDC0</keyword>
+                       <keyword>DDC1</keyword>
+                       <keyword>DDC2</keyword>
+                       <keyword>DDC3</keyword>
+                       <keyword>DDC4</keyword>
+                       <keyword>DDC5</keyword>
+                       <keyword>DDC6</keyword>
+
+                       <!-- PINC - Port C Input Pins -->
+                       <keyword>PINC0</keyword>
+                       <keyword>PINC1</keyword>
+                       <keyword>PINC2</keyword>
+                       <keyword>PINC3</keyword>
+                       <keyword>PINC4</keyword>
+                       <keyword>PINC5</keyword>
+                       <keyword>PINC6</keyword>
+
+
+                       <!-- ***** PORTD ************************ -->
+
+                       <!-- PORTD - Port D Data Register -->
+                       <keyword>PORTD0</keyword>
+                       <keyword>PORTD1</keyword>
+                       <keyword>PORTD2</keyword>
+                       <keyword>PORTD3</keyword>
+                       <keyword>PORTD4</keyword>
+                       <keyword>PORTD5</keyword>
+                       <keyword>PORTD6</keyword>
+                       <keyword>PORTD7</keyword>
+                       <keyword>PD0</keyword>  <!-- For compatibility -->
+                       <keyword>PD1</keyword>  <!-- For compatibility -->
+                       <keyword>PD2</keyword>  <!-- For compatibility -->
+                       <keyword>PD3</keyword>  <!-- For compatibility -->
+                       <keyword>PD4</keyword>  <!-- For compatibility -->
+                       <keyword>PD5</keyword>  <!-- For compatibility -->
+                       <keyword>PD6</keyword>  <!-- For compatibility -->
+                       <keyword>PD7</keyword>  <!-- For compatibility -->
+
+                       <!-- DDRD - Port D Data Direction Register -->
+                       <keyword>DDD0</keyword>
+                       <keyword>DDD1</keyword>
+                       <keyword>DDD2</keyword>
+                       <keyword>DDD3</keyword>
+                       <keyword>DDD4</keyword>
+                       <keyword>DDD5</keyword>
+                       <keyword>DDD6</keyword>
+                       <keyword>DDD7</keyword>
+
+                       <!-- PIND - Port D Input Pins -->
+                       <keyword>PIND0</keyword>
+                       <keyword>PIND1</keyword>
+                       <keyword>PIND2</keyword>
+                       <keyword>PIND3</keyword>
+                       <keyword>PIND4</keyword>
+                       <keyword>PIND5</keyword>
+                       <keyword>PIND6</keyword>
+                       <keyword>PIND7</keyword>
+
+
+                       <!-- ***** TIMER_COUNTER_0 ************** -->
+
+                       <!-- TIMSK0 - Timer/Counter0 Interrupt Mask Register -->
+                       <keyword>TOIE0</keyword>
+                       <keyword>OCIE0A</keyword>
+                       <keyword>OCIE0B</keyword>
+
+                       <!-- TIFR0 - Timer/Counter0 Interrupt Flag register -->
+                       <keyword>TOV0</keyword>
+                       <keyword>OCF0A</keyword>
+                       <keyword>OCF0B</keyword>
+
+                       <!-- TCCR0A - Timer/Counter  Control Register A -->
+                       <keyword>WGM00</keyword>
+                       <keyword>WGM01</keyword>
+                       <keyword>COM0B0</keyword>
+                       <keyword>COM0B1</keyword>
+                       <keyword>COM0A0</keyword>
+                       <keyword>COM0A1</keyword>
+
+                       <!-- TCCR0B - Timer/Counter Control Register B -->
+                       <keyword>CS00</keyword>
+                       <keyword>CS01</keyword>
+                       <keyword>CS02</keyword>
+                       <keyword>WGM02</keyword>
+                       <keyword>FOC0B</keyword>
+                       <keyword>FOC0A</keyword>
+
+                       <!-- TCNT0 - Timer/Counter0 -->
+                       <keyword>TCNT0_0</keyword>
+                       <keyword>TCNT0_1</keyword>
+                       <keyword>TCNT0_2</keyword>
+                       <keyword>TCNT0_3</keyword>
+                       <keyword>TCNT0_4</keyword>
+                       <keyword>TCNT0_5</keyword>
+                       <keyword>TCNT0_6</keyword>
+                       <keyword>TCNT0_7</keyword>
+
+                       <!-- OCR0A - Timer/Counter0 Output Compare Register -->
+                       <keyword>OCROA_0</keyword>
+                       <keyword>OCROA_1</keyword>
+                       <keyword>OCROA_2</keyword>
+                       <keyword>OCROA_3</keyword>
+                       <keyword>OCROA_4</keyword>
+                       <keyword>OCROA_5</keyword>
+                       <keyword>OCROA_6</keyword>
+                       <keyword>OCROA_7</keyword>
+
+                       <!-- OCR0B - Timer/Counter0 Output Compare Register -->
+                       <keyword>OCR0B_0</keyword>
+                       <keyword>OCR0B_1</keyword>
+                       <keyword>OCR0B_2</keyword>
+                       <keyword>OCR0B_3</keyword>
+                       <keyword>OCR0B_4</keyword>
+                       <keyword>OCR0B_5</keyword>
+                       <keyword>OCR0B_6</keyword>
+                       <keyword>OCR0B_7</keyword>
+
+                       <!-- GTCCR - General Timer/Counter Control Register -->
+                       <keyword>PSR10</keyword>  <!-- For compatibility -->
+
+
+                       <!-- ***** EXTERNAL_INTERRUPT *********** -->
+
+                       <!-- EICRA - External Interrupt Control Register -->
+                       <keyword>ISC00</keyword>
+                       <keyword>ISC01</keyword>
+                       <keyword>ISC10</keyword>
+                       <keyword>ISC11</keyword>
+
+                       <!-- EIMSK - External Interrupt Mask Register -->
+                       <keyword>INT0</keyword>
+                       <keyword>INT1</keyword>
+
+                       <!-- EIFR - External Interrupt Flag Register -->
+                       <keyword>INTF0</keyword>
+                       <keyword>INTF1</keyword>
+
+                       <!-- PCICR - Pin Change Interrupt Control Register -->
+                       <keyword>PCIE0</keyword>
+                       <keyword>PCIE1</keyword>
+                       <keyword>PCIE2</keyword>
+
+                       <!-- PCMSK2 - Pin Change Mask Register 2 -->
+                       <keyword>PCINT16</keyword>
+                       <keyword>PCINT17</keyword>
+                       <keyword>PCINT18</keyword>
+                       <keyword>PCINT19</keyword>
+                       <keyword>PCINT20</keyword>
+                       <keyword>PCINT21</keyword>
+                       <keyword>PCINT22</keyword>
+                       <keyword>PCINT23</keyword>
+
+                       <!-- PCMSK1 - Pin Change Mask Register 1 -->
+                       <keyword>PCINT8</keyword>
+                       <keyword>PCINT9</keyword>
+                       <keyword>PCINT10</keyword>
+                       <keyword>PCINT11</keyword>
+                       <keyword>PCINT12</keyword>
+                       <keyword>PCINT13</keyword>
+                       <keyword>PCINT14</keyword>
+
+                       <!-- PCMSK0 - Pin Change Mask Register 0 -->
+                       <keyword>PCINT0</keyword>
+                       <keyword>PCINT1</keyword>
+                       <keyword>PCINT2</keyword>
+                       <keyword>PCINT3</keyword>
+                       <keyword>PCINT4</keyword>
+                       <keyword>PCINT5</keyword>
+                       <keyword>PCINT6</keyword>
+                       <keyword>PCINT7</keyword>
+
+                       <!-- PCIFR - Pin Change Interrupt Flag Register -->
+                       <keyword>PCIF0</keyword>
+                       <keyword>PCIF1</keyword>
+                       <keyword>PCIF2</keyword>
+
+
+                       <!-- ***** SPI ************************** -->
+
+                       <!-- SPDR - SPI Data Register -->
+                       <keyword>SPDR0</keyword>
+                       <keyword>SPDR1</keyword>
+                       <keyword>SPDR2</keyword>
+                       <keyword>SPDR3</keyword>
+                       <keyword>SPDR4</keyword>
+                       <keyword>SPDR5</keyword>
+                       <keyword>SPDR6</keyword>
+                       <keyword>SPDR7</keyword>
+
+                       <!-- SPSR - SPI Status Register -->
+                       <keyword>SPI2X</keyword>
+                       <keyword>WCOL</keyword>
+                       <keyword>SPIF</keyword>
+
+                       <!-- SPCR - SPI Control Register -->
+                       <keyword>SPR0</keyword>
+                       <keyword>SPR1</keyword>
+                       <keyword>CPHA</keyword>
+                       <keyword>CPOL</keyword>
+                       <keyword>MSTR</keyword>
+                       <keyword>DORD</keyword>
+                       <keyword>SPE</keyword>
+                       <keyword>SPIE</keyword>
+
+
+                       <!-- ***** WATCHDOG ********************* -->
+
+                       <!-- WDTCSR - Watchdog Timer Control Register -->
+                       <keyword>WDP0</keyword>
+                       <keyword>WDP1</keyword>
+                       <keyword>WDP2</keyword>
+                       <keyword>WDE</keyword>
+                       <keyword>WDCE</keyword>
+                       <keyword>WDP3</keyword>
+                       <keyword>WDIE</keyword>
+                       <keyword>WDIF</keyword>
+
+
+                       <!-- ***** CPU ************************** -->
+
+                       <!-- SREG - Status Register -->
+                       <keyword>SREG_C</keyword>
+                       <keyword>SREG_Z</keyword>
+                       <keyword>SREG_N</keyword>
+                       <keyword>SREG_V</keyword>
+                       <keyword>SREG_S</keyword>
+                       <keyword>SREG_H</keyword>
+                       <keyword>SREG_T</keyword>
+                       <keyword>SREG_I</keyword>
+
+                       <!-- OSCCAL - Oscillator Calibration Value -->
+                       <keyword>CAL0</keyword>
+                       <keyword>CAL1</keyword>
+                       <keyword>CAL2</keyword>
+                       <keyword>CAL3</keyword>
+                       <keyword>CAL4</keyword>
+                       <keyword>CAL5</keyword>
+                       <keyword>CAL6</keyword>
+                       <keyword>CAL7</keyword>
+
+                       <!-- CLKPR - Clock Prescale Register -->
+                       <keyword>CLKPS0</keyword>
+                       <keyword>CLKPS1</keyword>
+                       <keyword>CLKPS2</keyword>
+                       <keyword>CLKPS3</keyword>
+                       <keyword>CLKPCE</keyword>
+
+                       <!-- SPMCSR - Store Program Memory Control and Status Register -->
+                       <keyword>SELFPRGEN</keyword>
+                       <keyword>PGERS</keyword>
+                       <keyword>PGWRT</keyword>
+                       <keyword>BLBSET</keyword>
+                       <keyword>RWWSRE</keyword>
+                       <keyword>RWWSB</keyword>
+                       <keyword>SPMIE</keyword>
+
+                       <!-- MCUCR - MCU Control Register -->
+                       <keyword>IVCE</keyword>
+                       <keyword>IVSEL</keyword>
+                       <keyword>PUD</keyword>
+                       <keyword>BODSE</keyword>
+                       <keyword>BODS</keyword>
+
+                       <!-- MCUSR - MCU Status Register -->
+                       <keyword>PORF</keyword>
+                       <keyword>EXTRF</keyword>
+                       <keyword>BORF</keyword>
+                       <keyword>WDRF</keyword>
+                       <keyword>EXTREF</keyword>  <!-- For compatibility -->
+
+                       <!-- SMCR - Sleep Mode Control Register -->
+                       <keyword>SE</keyword>
+                       <keyword>SM0</keyword>
+                       <keyword>SM1</keyword>
+                       <keyword>SM2</keyword>
+
+                       <!-- GPIOR2 - General Purpose I/O Register 2 -->
+                       <keyword>GPIOR20</keyword>
+                       <keyword>GPIOR21</keyword>
+                       <keyword>GPIOR22</keyword>
+                       <keyword>GPIOR23</keyword>
+                       <keyword>GPIOR24</keyword>
+                       <keyword>GPIOR25</keyword>
+                       <keyword>GPIOR26</keyword>
+                       <keyword>GPIOR27</keyword>
+
+                       <!-- GPIOR1 - General Purpose I/O Register 1 -->
+                       <keyword>GPIOR10</keyword>
+                       <keyword>GPIOR11</keyword>
+                       <keyword>GPIOR12</keyword>
+                       <keyword>GPIOR13</keyword>
+                       <keyword>GPIOR14</keyword>
+                       <keyword>GPIOR15</keyword>
+                       <keyword>GPIOR16</keyword>
+                       <keyword>GPIOR17</keyword>
+
+                       <!-- GPIOR0 - General Purpose I/O Register 0 -->
+                       <keyword>GPIOR00</keyword>
+                       <keyword>GPIOR01</keyword>
+                       <keyword>GPIOR02</keyword>
+                       <keyword>GPIOR03</keyword>
+                       <keyword>GPIOR04</keyword>
+                       <keyword>GPIOR05</keyword>
+                       <keyword>GPIOR06</keyword>
+                       <keyword>GPIOR07</keyword>
+
+                       <!-- PRR - Power Reduction Register -->
+                       <keyword>PRADC</keyword>
+                       <keyword>PRUSART0</keyword>
+                       <keyword>PRSPI</keyword>
+                       <keyword>PRTIM1</keyword>
+                       <keyword>PRTIM0</keyword>
+                       <keyword>PRTIM2</keyword>
+                       <keyword>PRTWI</keyword>
+
+
+                       <!-- ***** EEPROM *********************** -->
+
+                       <!-- EEARL - EEPROM Address Register Low Byte -->
+                       <keyword>EEAR0</keyword>
+                       <keyword>EEAR1</keyword>
+                       <keyword>EEAR2</keyword>
+                       <keyword>EEAR3</keyword>
+                       <keyword>EEAR4</keyword>
+                       <keyword>EEAR5</keyword>
+                       <keyword>EEAR6</keyword>
+                       <keyword>EEAR7</keyword>
+
+                       <!-- EEARH - EEPROM Address Register High Byte -->
+                       <keyword>EEAR8</keyword>
+                       <keyword>EEAR9</keyword>
+
+                       <!-- EEDR - EEPROM Data Register -->
+                       <keyword>EEDR0</keyword>
+                       <keyword>EEDR1</keyword>
+                       <keyword>EEDR2</keyword>
+                       <keyword>EEDR3</keyword>
+                       <keyword>EEDR4</keyword>
+                       <keyword>EEDR5</keyword>
+                       <keyword>EEDR6</keyword>
+                       <keyword>EEDR7</keyword>
+
+                       <!-- EECR - EEPROM Control Register -->
+                       <keyword>EERE</keyword>
+                       <keyword>EEPE</keyword>
+                       <keyword>EEMPE</keyword>
+                       <keyword>EERIE</keyword>
+                       <keyword>EEPM0</keyword>
+                       <keyword>EEPM1</keyword>
+
+
+                       <!-- ***** LOCKSBITS ******************************************************** -->
+
+                       <keyword>LB1</keyword>
+                       <keyword>LB2</keyword>
+                       <keyword>BLB01</keyword>
+                       <keyword>BLB02</keyword>
+                       <keyword>BLB11</keyword>
+                       <keyword>BLB12</keyword>
+
+
+                       <!-- ***** FUSES ************************************************************ -->
+
+                       <!-- LOW fuse bits -->
+                       <keyword>CKSEL0</keyword>
+                       <keyword>CKSEL1</keyword>
+                       <keyword>CKSEL2</keyword>
+                       <keyword>CKSEL3</keyword>
+                       <keyword>SUT0</keyword>
+                       <keyword>SUT1</keyword>
+                       <keyword>CKOUT</keyword>
+                       <keyword>CKDIV8</keyword>
+
+                       <!-- HIGH fuse bits -->
+                       <keyword>BOOTRST</keyword>
+                       <keyword>BOOTSZ0</keyword>
+                       <keyword>BOOTSZ1</keyword>
+                       <keyword>EESAVE</keyword>
+                       <keyword>WDTON</keyword>
+                       <keyword>SPIEN</keyword>
+                       <keyword>DWEN</keyword>
+                       <keyword>RSTDISBL</keyword>
+
+                       <!-- EXTENDED fuse bits -->
+                       <keyword>BODLEVEL0</keyword>
+                       <keyword>BODLEVEL1</keyword>
+                       <keyword>BODLEVEL2</keyword>
+               </context>
+
+
+               <define-regex id="decimal" extended="true">
+                       (?&lt;![\w\.]) ([1-9][0-9_]* | 0) (?![\w\.])
+               </define-regex>
+               <define-regex id="octal" extended="true">
+                       (?&lt;![\w\.]) 0 [0-7_]+ (?![\w\.])
+               </define-regex>
+               <define-regex id="hexadecimal" extended="true">
+                       (?&lt;![\w\.]) 0 [xX] [0-9a-fA-F_]+ (?![\w\.])
+               </define-regex>
+               <define-regex id="binary" extended="true">
+                       (?&lt;![\w\.]) 0 [bB] [01_]+ (?![\w\.])
+               </define-regex>
+               <define-regex id="float" extended="true" case-sensitive="false">
+                       \b
+                               ([0-9]+ e [-+]? [0-9]+ |
+                               ([0-9]* \. [0-9]+ | [0-9]+ \.)
+                               (e [-+]? [0-9]+)?) [fl]?
+                       \b
+               </define-regex>
+
+               <context id="decimal" style-ref="number">
+                       <match>\%{decimal}</match>
+               </context>
+               <context id="octal" style-ref="number">
+                       <match>\%{octal}</match>
+               </context>
+               <context id="hexadecimal" style-ref="number">
+                       <match>\%{hexadecimal}</match>
+               </context>
+               <context id="binary" style-ref="number">
+                       <match>\%{binary}</match>
+               </context>
+               <context id="float" style-ref="number">
+                       <match>\%{float}</match>
+               </context>
+
+               <define-regex id="period-prefix" extended="true">
+                       \.
+               </define-regex>
+               <context id="directives" style-ref="directive">
+                       <prefix>\%{period-prefix}</prefix>
+                       <keyword>byte</keyword>
+                       <keyword>cseg</keyword>
+                       <keyword>csegsize</keyword>
+                       <keyword>db</keyword>
+                       <keyword>dd</keyword>
+                       <keyword>def</keyword>
+                       <keyword>dq</keyword>
+                       <keyword>dseg</keyword>
+                       <keyword>dw</keyword>
+                       <keyword>elif</keyword>
+                       <keyword>else</keyword>
+                       <keyword>endif</keyword>
+                       <keyword>endm</keyword>
+                       <keyword>endmacro</keyword>
+                       <keyword>equ</keyword>
+                       <keyword>error</keyword>
+                       <keyword>eseg</keyword>
+                       <keyword>exit</keyword>
+                       <keyword>if</keyword>
+                       <keyword>ifdef</keyword>
+                       <keyword>ifndef</keyword>
+                       <keyword>include</keyword>
+                       <keyword>list</keyword>
+                       <keyword>listmac</keyword>
+                       <keyword>macro</keyword>
+                       <keyword>message</keyword>
+                       <keyword>nolist</keyword>
+                       <keyword>org</keyword>
+                       <keyword>overlap</keyword>
+                       <keyword>nooverlap</keyword>
+                       <keyword>set</keyword>
+                       <keyword>undef</keyword>
+                       <keyword>warning</keyword>
+               </context>
+
+               <context id="character">
+                       <include>
+                               <context ref="def:single-quoted-string"/>
+                       </include>
+               </context>
+
+               <context id="string">
+                       <start>"</start>
+                       <end>"</end>
+                       <include>
+                               <context ref="def:line-continue"/>
+                       </include>
+               </context>
+
+               <context id="functions" style-ref="function">
+                       <keyword>LOW</keyword>
+                       <keyword>HIGH</keyword>
+                       <keyword>BYTE2</keyword>
+                       <keyword>BYTE3</keyword>
+                       <keyword>BYTE4</keyword>
+                       <keyword>LWRD</keyword>
+                       <keyword>HWRD</keyword>
+                       <keyword>PAGE</keyword>
+                       <keyword>EXP2</keyword>
+                       <keyword>LOG2</keyword>
+                       <keyword>INT</keyword>
+                       <keyword>FRAC</keyword>
+                       <keyword>Q7</keyword>
+                       <keyword>Q15</keyword>
+                       <keyword>ABS</keyword>
+                       <keyword>DEFINED</keyword>
+                       <keyword>STRLEN</keyword>
+               </context>
+
+               <!-- Main language context -->
+               <context id="avr" class="no-spell-check">
+                       <include>
+                               <!-- Specific to the assembler program -->
+                               <context ref="comment"/>
+
+                               <context ref="binary"/>
+                               <context ref="octal"/>
+                               <context ref="decimal"/>
+                               <context ref="hexadecimal"/>
+                               <context ref="string"/>
+                               <context ref="character"/>
+
+                               <context ref="directives"/>
+                               <context ref="functions"/>
+
+                               <!-- Specific to the architecture's language -->
+                               <context ref="mnemonics"/>
+                               <context ref="registers"/>
+
+                               <!-- Specific to the device -->
+                               <context ref="m328p-regs"/>
+                               <context ref="m328p-data"/>
+                               <context ref="m328p-prog"/>
+                               <context ref="m328p-e2p"/>
+                               <context ref="m328p-consts"/>
+                               <context ref="m328p-bits"/>
+
+                               <context id="identifier" style-ref="identifier">
+                                       <match>[_a-zA-Z][_a-zA-Z0-9]*:?</match>
+                               </context>
+                       </include>
+               </context>
+       </definitions>
+</language>
+