//[c] //[c]Definitions for Atmel's AVR 8-bit Risc microprocessors' Assembler - Sep.01, 2006 //[c] //[c]Supported Devices: //[c] //[c] at86rf401, at90c8534, at90s2313, at90s2323, //[c] at90s2333, at90s2343, at90s4414, at90s4433, //[c] at90s4434, at90s8515, at90s8535, atmega103, //[c] atmega104, atmega128, atmega16, atmega161, //[c] atmega162, atmega163, atmega169, atmega32, //[c] atmega323, atmega64, atmega8, atmega83, //[c] atmega8515, atmega8535, attiny11, attiny12, //[c] attiny15, attiny22, attiny26, attiny28 //[c] //[c]References: //[c] //[c] Instruction Codes and Assembler Directives are from "AVR Instruction Set" handbook Rev.0856E-AVR-11/2005 //[c] Register- and Bit-Names from Atmel's "Application Note AVR000" zipped .inc files //[c] Conditional Assembly Directives from Atmel's "Application Note AVR001 - Conditional Assembly" //[c] //[of]:Language Definition def languages def AVR-asm colorizer = generic line-comment = ; hexa-prefix = 0x string-delimiter = " string-escape-char = \ char-delimiter = ' char-escape-char = \ escape-char = \ preprocessor = . ignore-case = true // instruction tokens words-1 = % adc add adiw and andi asr bclr bld % brbc brbs brcc brcs breq brge brhc brhs % brid brie brlo brlt brmi brne brpl brsh % brtc brts brvc brvs bset bst call cbi % cbr clc clh cli cln clr cls clt % clz com cp cpc cpi cpse dec eicall % eijmp elpm elpm elpm eor espm fclv fmul % fmuls fmulsu icall ijmp in inc jmp ld % ldd ldi lds lpm lsl lsr mov movw % mul muls mulsu neg nop or ori out % pop push rcall ret reti rjmp rol ror % sbc sbci sbi sbic sbis sbiw sbr sbrc % sbrs sec seh sei sen ser ses set % sev sez sleep spm st std sts sub % subi swap tst wdr // Register Names words-2 = % a acsr adch adcl adcsr adcsra adcsrb admux % assr assr0 b b_det bl_config btcnt btcr clkpr ddra % ddrb ddrc ddrd ddre ddrf ddrg deear deecr % deedr didr0 didr1 eear eearh eearl eecr eedr eicr % eicra eicrb eifr eimsk emcucr etifr etimsk gicr % gifr gimsk gipr gpior0 gpior1 gpior2 gtccr i2ar % i2br i2cr i2dr i2sr icr icr1h icr1l icr3h % icr3l ifr io_datin io_datout io_enab lcdccr lcdcra lcdcrb % lcddr0 lcddr1 lcddr10 lcddr11 lcddr12 lcddr13 lcddr15 lcddr16 % lcddr17 lcddr18 lcddr2 lcddr3 lcddr4 lcddr5 lcddr6 lcddr7 % lcddr8 lcdfrr lockdet1 lockdet2 mcucr mcucs mcucsr mcusr % modcr ocr0 ocr0a ocr1a ocr1ah ocr1al ocr1b ocr1bh % ocr1bl ocr1c ocr1ch ocr1cl ocr1h ocr1l ocr2 ocr2a % ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl osccal pacr % pcmsk0 pcmsk1 pina pinb pinc pind pine pinf % ping pllcsr porta portb portc portd porte portf % portg pwr_atten pwr_ctl r0 r1 r2 r3 r4 % r5 r6 r7 r8 r9 r10 r11 r12 % r13 r14 r15 r16 r17 r18 r19 r20 % r21 r22 r23 r24 r25 r26 r27 r28 % r29 r30 r31 rampz sfior smcr sp spcr % spdr sph spl spmcr spmcsr spsr sram_end sram_start % sreg tccr0 tccr0a tccr1 tccr1a tccr1b tccr1c tccr2 % tccr2a tccr3a tccr3b tccr3c tcnt0 tcnt1 tcnt1h tcnt1l % tcnt2 tcnt3h tifr tifr0 tifr1 tifr2 timsk timsk0 % timsk1 timsk2 twar twbr twcr twdr twsr tx_cntl % ubrr ubrr0 ubrr0h ubrr0l ubrr1 ubrr1h ubrr1l ubrrh % ubrrhi ubrrl ucr ucsr0a ucsr0b ucsr0c ucsr1a ucsr1b % ucsr1c ucsra ucsrb ucsrc udr udr0 udr1 usicr % usidr usisr usr vcotune wdtcr x % xdiv xh xl xmcra xmcrb y z yh % yl zh zl // assembler directives ( no leading dot ) words-3 = % byte cseg db def device dseg dw elif % else endif endmacro equ eseg exit if include % list listmac macro nolist org set @0 @1 % @2 @3 @4 @5 @6 @7 @8 @9 // Bit-names words-4 = % acbg acd aci acic acie acis0 acis1 acme % aco acs0 acs1 acs2 adate adc0d adc1d adc2d % adc3d adc4d adc5d adc6d adc7d adcbg aden adfr % adhsm adie adif adlar adps0 adps1 adps2 adrf % adsc adts0 adts1 adts2 ain0d ain1d ainbg ainbg6 % as0 as2 asb asre bbm bd bd0 bd1 % bd2 bd3 bd4 bd5 bl bl0 bl1 bl2 % bl3 bl4 bl5 blb01 blb02 blb11 blb12 blbset % bli blv bod bohyst borf bsy c c0 % c1 c2 c3 c4 c5 c6 c7 c8 % c9 cal0 cal1 cal2 cal3 cal4 cal5 cal6 % cal7 chr9 chr90 chr91 clkpce clkps0 clkps1 clkps2 % clkps3 com00 com01 com0a0 com0a1 com10 com11 com1a0 % com1a1 com1b0 com1b1 com1c0 com1c1 com20 com21 com2a0 % com2a1 com3a0 com3a1 com3b0 com3b1 com3c0 com3c1 cpha % cpol cs0 cs00 cs01 cs02 cs1 cs10 cs11 % cs12 cs13 cs20 cs21 cs22 cs30 cs31 cs32 % ctc0 ctc1 ctc10 ctc11 ctc2 ctc30 ctc31 data % dda0 dda0 dda1 dda2 dda3 dda4 dda5 dda6 % dda7 ddb0 ddb1 ddb2 ddb3 ddb4 ddb5 ddb6 % ddb7 ddc0 ddc1 ddc2 ddc3 ddc4 ddc5 ddc6 % ddc7 ddd0 ddd1 ddd2 ddd3 ddd4 ddd5 ddd6 % ddd7 dde0 dde1 dde2 dde3 dde4 dde5 dde6 % dde7 ddf0 ddf1 ddf2 ddf3 ddf4 ddf5 ddf6 % ddf7 ddg0 ddg1 ddg2 ddg3 ddg4 dor dor0 % dor1 dord ed0 ed1 ed2 ed3 ed4 ed5 % ed6 ed7 eear0 eear1 eear2 eear3 eear4 eear5 % eear6 eel eemwe eer eere eerie eeu eewe % eewee eih eni2c enko eud exclk extrf f0 % f2 fe fe0 fe1 foc0 foc0a foc1a foc1b % foc1c foc2 foc3a foc3b foc3c fov0 fsk h % i i2c_tst i2ea i2en i2gce i2ie i2int i2s3 % i2s4 i2s5 i2s6 i2s7 i2sta i2sto i2wc ices1 % ices3 icf1 icf3 icie1 icnc1 icnc1 icnc3 idrd % ie int0 int1 int2 int3 int4 int5 int6 % int7 intf0 intf1 intf2 intf3 intf4 intf5 intf6 % intf7 ioe0 ioe1 ioe2 ioe3 ioe4 ioe5 ioi0 % ioi1 ioi2 ioi3 ioi4 ioi5 ioo0 ioo1 ioo2 % ioo3 ioo4 ioo5 ipin0 ipin1 isc0 isc00 isc01 % isc1 isc10 isc11 isc2 isc20 isc21 isc30 isc31 % isc40 isc41 isc50 isc51 isc60 isc61 isc70 isc71 % ivce ivsel jtd jtrf lat lc0 lc1 lc2 % lcdab lcdb2 lcdbl lcdcc0 lcdcc1 lcdcc2 lcdcc3 lcdcd0 % lcdcd1 lcdcd2 lcdcs lcden lcdie lcdif lcdmux0 lcdmux1 % lcdpm0 lcdpm1 lcdpm2 lcdps0 lcdps1 lcdps2 llie loc % m0 m1 mconf0 mconf1 mconf2 mpcm mpcm0 mpcm1 % mstr mux0 mux1 mux2 mux3 mux4 n ocd % ocdr0 ocdr1 ocdr2 ocdr3 ocdr4 ocdr5 ocdr6 ocf0 % ocf0a ocf1 ocf1a ocf1b ocf1c ocf2 ocf2a ocf3a % ocf3b ocf3c ocie0 ocie0a ocie1 ocie1a ocie1b ocie1c % ocie2 ocie2a ocie3a ocie3b ocie3c ocr0ub ocr2ub ontim0 % ontim1 ontim2 ontim3 ontim4 oom00 oom01 or or0 % or1 osccal0 osccal1 osccal2 osccal3 osccal4 pa0 pa1 % pa2 pa2hc pa3 pa4 pa5 pa6 pa7 pb0 % pb1 pb2 pb3 pb4 pb5 pb6 pb7 pc0 % pc1 pc2 pc3 pc4 pc5 pc6 pc7 pcc0 % pcc1 pcc2 pcf0 pcf1 pcf2 pcie pcie0 pcie1 % pcif pcif0 pcif1 pcint0 pcint1 pcint10 pcint11 pcint12 % pcint13 pcint14 pcint15 pcint2 pcint3 pcint4 pcint5 pcint6 % pcint7 pcint8 pcint9 pcke pd0 pd1 pd2 pd3 % pd4 pd5 pd6 pd7 pe pe0 pe1 pe2 % pe3 pe4 pe5 pe6 pe7 pf0 pf1 pf2 % pf3 pf4 pf5 pf6 pf7 pg0 pg1 pg2 % pg3 pg4 pgers pgwrt pina0 pina1 pina2 pina3 % pina4 pina5 pina6 pina7 pinb0 pinb1 pinb2 pinb3 % pinb4 pinb5 pinb6 pinb7 pinc0 pinc1 pinc2 pinc3 % pinc4 pinc5 pinc6 pinc7 pind0 pind1 pind2 pind3 % pind4 pind5 pind6 pind7 pine0 pine1 pine2 pine3 % pine4 pine5 pine6 pine7 pinf0 pinf1 pinf2 pinf3 % pinf4 pinf5 pinf6 pinf7 ping0 ping1 ping2 ping3 % ping4 ping5 plle plock plupb porf porta0 porta1 % porta2 porta3 porta4 porta5 porta6 porta7 portb0 portb1 % portb2 portb3 portb4 portb5 portb6 portb7 portc0 portc1 % portc2 portc3 portc4 portc5 portc6 portc7 portd0 portd1 % portd2 portd3 portd4 portd5 portd6 portd7 porte0 porte1 % porte2 porte3 porte4 porte5 porte6 porte7 portf0 portf1 % portf2 portf3 portf4 portf5 portf6 portf7 portg0 portg1 % portg2 portg3 portg4 portg5 psr0 psr1 psr10 psr2 % psr3 psr321 pud pwm0 pwm1 pwm10 pwm11 pwm1a % pwm1b pwm2 pwm30 pwm31 rampz0 refs0 refs1 rpda % rpdb rpdc rpdd rwwsb rwwsre rxb8 rxb80 rxb81 % rxc rxc0 rxc1 rxcie rxcie0 rxcie1 rxen rxen0 % rxen1 s se seg0 seg1 seg10 seg11 seg12 % seg13 seg14 seg15 seg16 seg17 seg18 seg19 seg2 % seg20 seg21 seg22 seg23 seg24 seg3 seg4 seg5 % seg6 seg7 seg8 seg9 sleep sm sm0 sm1 % sm2 sp0 sp1 sp10 sp11 sp12 sp13 sp14 % sp15 sp2 sp3 sp4 sp5 sp6 sp7 sp8 % sp9 spe spi2x spie spif spmen spmie spr0 % spr1 sre srl0 srl1 srl2 srw srw00 srw01 % srw10 srw11 t tcn0ub tcn2ub tcr0ub tcr2ub ticie % ticie1 ticie3 tm toie0 toie1 toie2 toie2 toie3 % tov0 tov1 tov2 tov3 tsm twa0 twa1 twa2 % twa3 twa4 twa5 twa6 twc_tst twea twen twgce % twie twint twi_tst twps0 twps1 tws0 tws1 tws2 % tws3 tws4 tws5 tws6 tws7 twsta twsto twwc % txb8 txb80 txb81 txc txc0 txc1 txcie txcie0 % txcie1 txe txen txen0 txen1 txk u2x u2x0 % u2x1 ucpol ucpol0 ucpol1 ucsz0 ucsz00 ucsz01 ucsz02 % ucsz1 ucsz10 ucsz11 ucsz12 ucsz2 udre udre0 udre1 % udrie udrie0 udrie1 ulc0 ulc1 ulc2 umsel umsel0 % umsel1 upe upe0 upe1 upm0 upm00 upm01 upm1 % upm10 upm11 upok ursel ursel0 ursel1 usbs usbs0 % usbs1 usiclk usicnt0 usicnt1 usicnt2 usicnt3 usics0 usics1 % usidc usioie usioif usipf usisie usisif usitc usiwm0 % usiwm1 v vcotune0 vcotune1 vcotune2 vcotune3 vcotune4 vcovdet0 % vcovdet1 wcol wdce wdde wde wdp0 wdp1 wdp2 % wdrf wdtoe wgm00 wgm01 wgm10 wgm11 wgm12 wgm12 % wgm13 wgm20 wgm21 wgm30 wgm31 wgm32 wgm33 xdiv0 % xdiv1 xdiv2 xdiv3 xdiv4 xdiv5 xdiv6 xdiven xmbk % xmm0 xmm1 xmm2 z // characters chars-2 = (){}[]<>=|-+*/~!&$%%^,?: end end //[cf] //[c] def configurations def AVR-asm prototype = configurations.default patterns = *.asm;*.inc language = AVR-asm display = default //auto-indentation = true //expand-tabulation = false //tabulation-size = 8 //word-wrap = false //layout = 0 end // Deactivate '.asm' and '.inc' extension for x86 def x86 patterns = end end