include files added (all devices)
[my-code/atmel.git] / include / m169def.inc
diff --git a/include/m169def.inc b/include/m169def.inc
new file mode 100644 (file)
index 0000000..c219da9
--- /dev/null
@@ -0,0 +1,824 @@
+;***************************************************************************\r
+;* A P P L I C A T I O N   N O T E   F O R   T H E   A V R   F A M I L Y\r
+;* \r
+;* Number                      : AVR000\r
+;* File Name                   : "m169def.inc"\r
+;* Title                       : Register/Bit Definitions for the ATmega169\r
+;* Date                        : June 14th, 2001\r
+;* Version                     : 2.0\r
+;* Support telephone           : +47 72 88 43 88 (ATMEL Norway)\r
+;* Support fax                 : +47 72 88 43 99 (ATMEL Norway)\r
+;* Support E-mail              : support@atmel.no\r
+;* Target MCU                  : ATmega169\r
+;*\r
+;* DESCRIPTION\r
+;* When including this file in the assembly program file, all I/O register     \r
+;* names and I/O register bit names appearing in the data book can be used.\r
+;* In addition, the six registers forming the three data pointers X, Y and\r
+;* Z have been assigned names XL - ZH. Highest RAM address for Internal \r
+;* SRAM is also defined \r
+;*\r
+;* The Register names are represented by their hexadecimal address.\r
+;* \r
+;* The Register Bit names are represented by their bit number (0-7).\r
+;* \r
+;* Please observe the difference in using the bit names with instructions\r
+;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" \r
+;* (skip if bit in register set/cleared). The following example illustrates\r
+;* this:\r
+;* \r
+;* in  r16,PORTB               ;read PORTB latch\r
+;* sbr r16,(1<<PB6)+(1<<PB5)   ;set PB6 and PB5 (use masks, not bit#)\r
+;* out  PORTB,r16              ;output to PORTB\r
+;*\r
+;* in  r16,TIFR                ;read the Timer Interrupt Flag Register\r
+;* sbrc        r16,TOV0                ;test the overflow flag (use bit#)\r
+;* rjmp        TOV0_is_set             ;jump if set\r
+;* ...                         ;otherwise do something else\r
+;***************************************************************************\r
+\r
+;**** Specify Device ****\r
+.device ATmega169\r
+\r
+;*****************************************************************************\r
+; I/O Register Definitions\r
+;*****************************************************************************\r
+\r
+;**** Memory Mapped I/O Register Definitions  ****\r
+.equ  LCDDR18  = $FE\r
+.equ  LCDDR17  = $FD \r
+.equ  LCDDR16  = $FC\r
+.equ  LCDDR15  = $FB\r
+.equ  LCDDR13  = $F9 \r
+.equ  LCDDR12  = $F8\r
+.equ  LCDDR11  = $F7\r
+.equ  LCDDR10  = $F6 \r
+.equ  LCDDR8   = $F4\r
+.equ  LCDDR7   = $F3\r
+.equ  LCDDR6   = $F2\r
+.equ  LCDDR5   = $F1 \r
+.equ  LCDDR3   = $EF\r
+.equ  LCDDR2   = $EE\r
+.equ  LCDDR1   = $ED \r
+.equ  LCDDR0   = $EC\r
+.equ  LCDCCR   = $E7\r
+.equ  LCDFRR   = $E6\r
+.equ  LCDCRB   = $E5\r
+.equ  LCDCRA   = $E4\r
+.equ  UDR0     = $C6  \r
+.equ  UBRR0H   = $C5  \r
+.equ  UBRR0L   = $C4  \r
+.equ  UCSR0C   = $C2\r
+.equ  UCSR0B   = $C1\r
+.equ  UCSR0A   = $C0\r
+.equ  USIDR    = $BA\r
+.equ  USISR    = $B9\r
+.equ  USICR    = $B8\r
+.equ  ASSR     = $B6\r
+.equ  OCR2A    = $B3  \r
+.equ  TCNT2    = $B2  \r
+.equ  TCCR2A   = $B0\r
+.equ  OCR1BH   = $8B \r
+.equ  OCR1BL   = $8A \r
+.equ  OCR1AH   = $89 \r
+.equ  OCR1AL   = $88 \r
+.equ  ICR1H    = $87 \r
+.equ  ICR1L    = $86 \r
+.equ  TCNT1H   = $85 \r
+.equ  TCNT1L   = $84 \r
+.equ  TCCR1C   = $82 \r
+.equ  TCCR1B   = $81\r
+.equ  TCCR1A   = $80\r
+.equ  DIDR1    = $7F\r
+.equ  DIDR0    = $7E\r
+.equ  ADMUX    = $7C \r
+.equ  ADCSRB   = $7B\r
+.equ  ADCSRA   = $7A\r
+.equ  ADCH     = $79 \r
+.equ  ADCL     = $78\r
+.equ  TIMSK2   = $70\r
+.equ  TIMSK1   = $6F\r
+.equ  TIMSK0   = $6E\r
+.equ  PCMSK1   = $6C\r
+.equ  PCMSK0   = $6B \r
+.equ  EICRA    = $69 \r
+.equ  OSCCAL   = $66\r
+.equ  CLKPR    = $61\r
+.equ  WDTCR    = $60\r
+.equ  SREG     = $3F\r
+.equ  SPH      = $3E\r
+.equ  SPL      = $3D\r
+.equ  SPMCSR   = $37\r
+.equ  MCUCR    = $35\r
+.equ  MCUSR    = $34\r
+.equ  SMCR     = $33\r
+.equ  OCDR     = $31\r
+.equ  ACSR     = $30\r
+.equ  SPDR     = $2E \r
+.equ  SPSR     = $2D\r
+.equ  SPCR     = $2C\r
+.equ  GPIOR2   = $2B \r
+.equ  GPIOR1   = $2A \r
+.equ  OCR0A    = $27\r
+.equ  TCNT0    = $26 \r
+.equ  TCCR0A   = $24\r
+.equ  GTCCR    = $23\r
+.equ  EEARH    = $22 \r
+.equ  EEARL    = $21 \r
+.equ  EEDR     = $20\r
+.equ  EECR     = $1F\r
+.equ  GPIOR0   = $1E \r
+.equ  EIMSK    = $1D\r
+.equ  EIFR     = $1C\r
+.equ  TIFR2    = $17\r
+.equ  TIFR1    = $16\r
+.equ  TIFR0    = $15\r
+.equ  PORTG    = $14\r
+.equ  DDRG     = $13\r
+.equ  PING     = $12\r
+.equ  PORTF    = $11\r
+.equ  DDRF     = $10\r
+.equ  PINF     = $0F\r
+.equ  PORTE    = $0E\r
+.equ  DDRE     = $0D\r
+.equ  PINE     = $0C\r
+.equ  PORTD    = $0B\r
+.equ  DDRD     = $0A\r
+.equ  PIND     = $09\r
+.equ  PORTC    = $08\r
+.equ  DDRC     = $07\r
+.equ  PINC     = $06\r
+.equ  PORTB    = $05\r
+.equ  DDRB     = $04\r
+.equ  PINB     = $03\r
+.equ  PORTA    = $02\r
+.equ  DDRA     = $01\r
+.equ  PINA     = $00\r
+\r
+;*****************************************************************************\r
+; Bit Definitions\r
+;*****************************************************************************\r
+\r
+; *** LCDDR18, LCDDR13, LCDDR8, LCDDR3 ***\r
+.equ SEG24             = 0     \r
+\r
+; *** LCDSR17, LCDSR12, LCDSR7, LCDSR2 ***\r
+.equ SEG23      = 7 \r
+.equ SEG22      = 6\r
+.equ SEG21      = 5\r
+.equ SEG20      = 4\r
+.equ SEG19      = 3\r
+.equ SEG18      = 2\r
+.equ SEG17      = 1\r
+.equ SEG16      = 0\r
+\r
+; *** LCDSR16, LCDSR11, LCDSR6, LCDSR1 ***\r
+.equ SEG15      = 7 \r
+.equ SEG14      = 6\r
+.equ SEG13      = 5\r
+.equ SEG12      = 4\r
+.equ SEG11      = 3\r
+.equ SEG10      = 2\r
+.equ SEG9       = 1\r
+.equ SEG8       = 0\r
+       \r
+; *** LCDSR15, LCDSR10, LCDSR5, LCDSR0 ***\r
+.equ SEG7       = 7 \r
+.equ SEG6       = 6\r
+.equ SEG5       = 5\r
+.equ SEG4       = 4\r
+.equ SEG3       = 3\r
+.equ SEG2       = 2\r
+.equ SEG1       = 1\r
+.equ SEG0       = 0\r
+\r
+; *** LCDCCR ***\r
+.equ LCDCC3     = 3 \r
+.equ LCDCC2     = 2\r
+.equ LCDCC1     = 1\r
+.equ LCDCC0     = 0\r
+\r
+; *** LCDFRR *** \r
+.equ LCDPS2     = 6 \r
+.equ LCDPS1     = 5\r
+.equ LCDPS0     = 4\r
+.equ LCDCD2     = 2\r
+.equ LCDCD1     = 1\r
+.equ LCDCD0     = 0\r
+                               \r
+; *** LCDCRB ***\r
+.equ LCDCS      = 7 \r
+.equ LCDB2     = 6\r
+.equ LCDMUX1    = 5 \r
+.equ LCDMUX0    = 4\r
+.equ LCDPM2     = 2\r
+.equ LCDPM1     = 1\r
+.equ LCDPM0     = 0\r
+               \r
+; *** LCDCRA ***\r
+.equ LCDEN      = 7 \r
+.equ LCDAB      = 6            \r
+.equ LCDIF      = 4\r
+.equ LCDIE      = 3\r
+.equ LCDBL      = 0\r
+\r
+; *** UCSR0C ***\r
+.equ UMSEL0     = 6  \r
+.equ UPM01      = 5\r
+.equ UPM00      = 4\r
+.equ USBS0      = 3\r
+.equ UCSZ01     = 2\r
+.equ UCSZ00     = 1\r
+.equ UCPOL0     = 0\r
+\r
+; *** UCSR0B ***\r
+.equ RXCIE0     = 7  \r
+.equ TXCIE0     = 6\r
+.equ UDRIE0     = 5\r
+.equ RXEN0      = 4\r
+.equ TXEN0      = 3\r
+.equ UCSZ02     = 2\r
+.equ RXB80      = 1\r
+.equ TXB80      = 0\r
+\r
+; *** UCSR0A ***\r
+.equ RXC0       = 7  \r
+.equ TXC0       = 6\r
+.equ UDRE0      = 5\r
+.equ FE0        = 4\r
+.equ DOR0       = 3\r
+.equ PE0        = 2\r
+.equ U2X0       = 1\r
+.equ MPCM0      = 0\r
+\r
+;*** USISR ***\r
+.equ USISIF     = 7  \r
+.equ USIOIF     = 6\r
+.equ USIPF     = 5\r
+.equ USIDC     = 4\r
+.equ USICNT3   = 3\r
+.equ USICNT2   = 2\r
+.equ USICNT1   = 1\r
+.equ USICNT0   = 0\r
+\r
+; *** USICR ***\r
+.equ USISIE     = 7  \r
+.equ USIOIE     = 6\r
+.equ USIWM1    = 5\r
+.equ USIWM0    = 4\r
+.equ USICS1    = 3\r
+.equ USICS0    = 2\r
+.equ USICLK    = 1\r
+.equ USITC     = 0\r
+       \r
+; *** ASSR ***\r
+.equ EXCLK      = 4\r
+.equ AS2        = 3  \r
+.equ TCN2UB     = 2\r
+.equ OCR2UB     = 1\r
+.equ TCR2UB     = 0\r
+\r
+; *** TCCR2A ***\r
+.equ FOC2       = 7  \r
+.equ WGM20      = 6\r
+.equ COM2A1     = 5\r
+.equ COM2A0     = 4\r
+.equ WGM21      = 3\r
+.equ CS22       = 2\r
+.equ CS21       = 1\r
+.equ CS20       = 0\r
+\r
+; *** TCCR1C ***\r
+.equ FOC1A      = 7  \r
+.equ FOC1B      = 6\r
+\r
+; *** TCCR1B ***\r
+.equ ICNC1      = 7  \r
+.equ ICES1      = 6\r
+.equ WGM13      = 4\r
+.equ WGM12      = 3\r
+.equ CS12       = 2\r
+.equ CS11       = 1\r
+.equ CS10       = 0\r
+\r
+; *** TCCR1A ***\r
+.equ COM1A1     = 7  \r
+.equ COM1A0     = 6\r
+.equ COM1B1     = 5\r
+.equ COM1B0     = 4\r
+.equ COM1C1     = 3\r
+.equ COM1C0     = 2\r
+.equ WGM11      = 1\r
+.equ WGM10      = 0\r
+\r
+; *** DIDR1 ***\r
+.equ ADC7D      = 7  \r
+.equ ADC6D      = 6\r
+.equ ADC5D      = 5\r
+.equ ADC4D      = 4\r
+.equ ADC3D      = 3\r
+.equ ADC2D      = 2\r
+.equ ADC1D      = 1\r
+.equ ADC0D      = 0\r
+\r
+; *** DIDR0 ***\r
+.equ AIN1D      = 1  \r
+.equ AIN0D      = 0\r
+\r
+; *** ADMUX ***\r
+.equ REFS1      = 7  \r
+.equ REFS0      = 6\r
+.equ ADLAR      = 5\r
+.equ MUX4       = 4\r
+.equ MUX3       = 3\r
+.equ MUX2       = 2\r
+.equ MUX1       = 1\r
+.equ MUX0       = 0\r
+\r
+; *** ADCSRB ***\r
+.equ ADHSM      = 7  \r
+.equ ACME       = 6\r
+.equ ADTS2      = 2\r
+.equ ADTS1      = 1\r
+.equ ADTS0      = 0\r
+\r
+; *** ADCSRA ***\r
+.equ ADEN       = 7  \r
+.equ ADSC       = 6\r
+.equ ADRF       = 5\r
+.equ ADIF       = 4\r
+.equ ADIE       = 3\r
+.equ ADPS2      = 2\r
+.equ ADPS1      = 1\r
+.equ ADPS0      = 0\r
+\r
+; *** TIMSK2 ***\r
+.equ OCIE2A     = 1\r
+.equ TOIE2      = 0\r
+\r
+; *** TIMSK1 ***\r
+.equ ICIE1      = 5  \r
+.equ OCIE1B     = 2\r
+.equ OCIE1A     = 1\r
+.equ TOIE1      = 0\r
+\r
+; *** TIMSK0 ***\r
+.equ OCIE0A     = 1\r
+.equ TOIE0      = 0\r
+\r
+; *** PCMSK1 ***\r
+.equ PCINT15    = 7  \r
+.equ PCINT14    = 6\r
+.equ PCINT13    = 5\r
+.equ PCINT12    = 4\r
+.equ PCINT11    = 3\r
+.equ PCINT10    = 2\r
+.equ PCINT9     = 1\r
+.equ PCINT8     = 0\r
+\r
+; *** PCMSK0 ***\r
+.equ PCINT7     = 7  \r
+.equ PCINT6     = 6\r
+.equ PCINT5     = 5\r
+.equ PCINT4     = 4\r
+.equ PCINT3     = 3\r
+.equ PCINT2     = 2\r
+.equ PCINT1     = 1\r
+.equ PCINT0     = 0\r
+\r
+; *** EICRA ***\r
+.equ ISC01     = 1\r
+.equ ISC00     = 0\r
+\r
+; *** CLKPR ***\r
+.equ CLKPCE     = 7  \r
+.equ CLKPS3     = 3\r
+.equ CLKPS2     = 2\r
+.equ CLKPS1     = 1\r
+.equ CLKPS0     = 0\r
+\r
+; *** WDTCR ***\r
+.equ WDCE       = 4  \r
+.equ WDE        = 3\r
+.equ WDP2       = 2\r
+.equ WDP1       = 1\r
+.equ WDP0       = 0\r
+\r
+; *** SREG ***\r
+.equ I          = 7  \r
+.equ T          = 6\r
+.equ H          = 5\r
+.equ S          = 4\r
+.equ V          = 3\r
+.equ N          = 2\r
+.equ Z          = 1\r
+.equ C          = 0\r
+\r
+; *** SPH ***\r
+.equ SP15       = 7  \r
+.equ SP14       = 6\r
+.equ SP13       = 5\r
+.equ SP12       = 4\r
+.equ SP11       = 3\r
+.equ SP10       = 2\r
+.equ SP9        = 1\r
+.equ SP8        = 0\r
+\r
+; *** SPL ***\r
+.equ SP7        = 7  \r
+.equ SP6        = 6\r
+.equ SP5        = 5\r
+.equ SP4        = 4\r
+.equ SP3        = 3\r
+.equ SP2        = 2\r
+.equ SP1        = 1\r
+.equ SP0        = 0\r
+\r
+; *** SPMCSR ***\r
+.equ SPMIE      = 7  \r
+.equ RWWSB      = 6\r
+.equ RWWSRE     = 4\r
+.equ BLBSET     = 3\r
+.equ PGWRT      = 2\r
+.equ PGERS      = 1\r
+.equ SPMEN      = 0\r
+\r
+; *** MCUCR ***\r
+.equ JTD        = 7  \r
+.equ PUD        = 4\r
+.equ IVSEL      = 1\r
+.equ IVCE       = 0\r
+\r
+; *** MCUSR ***\r
+.equ JTRF       = 4  \r
+.equ WDRF       = 3\r
+.equ BORF       = 2\r
+.equ EXTRF      = 1\r
+.equ PORF       = 0\r
+\r
+; *** SMCR ***\r
+.equ SM2        = 3  \r
+.equ SM1        = 2\r
+.equ SM0        = 1\r
+.equ SE         = 0\r
+\r
+; *** OCDR ***\r
+.equ IDRD       = 7  \r
+.equ OCD       = 7\r
+.equ OCDR6      = 6\r
+.equ OCDR5      = 5\r
+.equ OCDR4      = 4\r
+.equ OCDR3      = 3\r
+.equ OCDR2      = 2\r
+.equ OCDR1      = 1\r
+.equ OCDR0      = 0\r
+\r
+; *** ACSR ***\r
+.equ ACD        = 7  \r
+.equ ACBG       = 6\r
+.equ ACO        = 5\r
+.equ ACI        = 4\r
+.equ ACIE       = 3\r
+.equ ACIC       = 2\r
+.equ ACIS1      = 1\r
+.equ ACIS0      = 0\r
+\r
+; *** SPSR ***\r
+.equ SPIF       = 7  \r
+.equ WCOL       = 6\r
+.equ SPI2X      = 0\r
+\r
+; *** SPCR ***\r
+.equ SPIE       = 7 \r
+.equ SPE        = 6\r
+.equ DORD       = 5\r
+.equ MSTR       = 4\r
+.equ CPOL       = 3\r
+.equ CPHA       = 2\r
+.equ SPR1       = 1\r
+.equ SPR0       = 0\r
+\r
+; *** TCCR0A ***\r
+.equ FOC0A      = 7 \r
+.equ WGM00      = 6\r
+.equ COM0A1     = 5\r
+.equ COM0A0     = 4\r
+.equ WGM01      = 3\r
+.equ CS02       = 2\r
+.equ CS01       = 1\r
+.equ CS00       = 0\r
+\r
+; *** GTCCR ***\r
+.equ TSM        = 7  \r
+.equ PSR2       = 1\r
+.equ PSR10      = 0\r
+                                        \r
+; To make tim8pwm_def.inc file\r
+; part independent.            \r
+.equ PSR0       = PSR10         \r
+.equ PSR1       = PSR10\r
+       \r
+; *** EECR ***\r
+.equ EERIE      = 3  \r
+.equ EEMWE      = 2\r
+.equ EEWE       = 1\r
+.equ EERE       = 0\r
+\r
+; *** EIMSK ***\r
+.equ PCIE1      = 7\r
+.equ PCIE0      = 6\r
+.equ INT0       = 0\r
+\r
+; *** EIFR ***\r
+.equ PCIF1      = 7\r
+.equ PCIF0      = 6\r
+.equ INTF0      = 0\r
+\r
+; *** TIFR2 ***\r
+.equ OCF2A      = 1\r
+.equ TOV2       = 0\r
+\r
+; *** TIFR1 ***\r
+.equ ICF1       = 5  \r
+.equ OCF1B      = 2\r
+.equ OCF1A      = 1\r
+.equ TOV1       = 0\r
+\r
+; *** TIFR0 ***\r
+.equ OCF0A      = 1\r
+.equ TOV0       = 0\r
+\r
+; *** PORTG ***\r
+.equ PORTG5     = 5\r
+.equ PORTG4     = 4\r
+.equ PORTG3     = 3\r
+.equ PORTG2     = 2\r
+.equ PORTG1     = 1\r
+.equ PORTG0     = 0\r
+\r
+; *** DDRG ***\r
+.equ DDG4       = 4\r
+.equ DDG3       = 3\r
+.equ DDG2       = 2\r
+.equ DDG1       = 1\r
+.equ DDG0       = 0\r
+\r
+; *** PING ***\r
+.equ PING5      = 5\r
+.equ PING4      = 4\r
+.equ PING3      = 3\r
+.equ PING2      = 2\r
+.equ PING1      = 1\r
+.equ PING0      = 0\r
+\r
+; *** PORTF ***\r
+.equ PORTF7     = 7  \r
+.equ PORTF6     = 6\r
+.equ PORTF5     = 5\r
+.equ PORTF4     = 4\r
+.equ PORTF3     = 3\r
+.equ PORTF2     = 2\r
+.equ PORTF1     = 1\r
+.equ PORTF0     = 0\r
+\r
+; *** DDRF ***\r
+.equ DDF7       = 7  \r
+.equ DDF6       = 6\r
+.equ DDF5       = 5\r
+.equ DDF4       = 4\r
+.equ DDF3       = 3\r
+.equ DDF2       = 2\r
+.equ DDF1       = 1\r
+.equ DDF0       = 0\r
+\r
+; *** PINF ***\r
+.equ PINF7      = 7  \r
+.equ PINF6      = 6\r
+.equ PINF5      = 5\r
+.equ PINF4      = 4\r
+.equ PINF3      = 3\r
+.equ PINF2      = 2\r
+.equ PINF1      = 1\r
+.equ PINF0      = 0\r
+\r
+; *** PORTE ***\r
+.equ PORTE7     = 7  \r
+.equ PORTE6     = 6\r
+.equ PORTE5     = 5\r
+.equ PORTE4     = 4\r
+.equ PORTE3     = 3\r
+.equ PORTE2     = 2\r
+.equ PORTE1     = 1\r
+.equ PORTE0     = 0\r
+\r
+; *** DDRE ***\r
+.equ DDE7       = 7  \r
+.equ DDE6       = 6\r
+.equ DDE5       = 5\r
+.equ DDE4       = 4\r
+.equ DDE3       = 3\r
+.equ DDE2       = 2\r
+.equ DDE1       = 1\r
+.equ DDE0       = 0\r
+\r
+; *** PINE ***\r
+.equ PINE7      = 7  \r
+.equ PINE6      = 6\r
+.equ PINE5      = 5\r
+.equ PINE4      = 4\r
+.equ PINE3      = 3\r
+.equ PINE2      = 2\r
+.equ PINE1      = 1\r
+.equ PINE0      = 0\r
+\r
+; *** PORTD ***\r
+.equ PORTD7     = 7  \r
+.equ PORTD6     = 6\r
+.equ PORTD5     = 5\r
+.equ PORTD4     = 4\r
+.equ PORTD3     = 3\r
+.equ PORTD2     = 2\r
+.equ PORTD1     = 1\r
+.equ PORTD0     = 0\r
+\r
+; *** DDRD ***\r
+.equ DDD7       = 7  \r
+.equ DDD6       = 6\r
+.equ DDD5       = 5\r
+.equ DDD4       = 4\r
+.equ DDD3       = 3\r
+.equ DDD2       = 2\r
+.equ DDD1       = 1\r
+.equ DDD0       = 0\r
+\r
+; *** PIND ***\r
+.equ PIND7      = 7  \r
+.equ PIND6      = 6\r
+.equ PIND5      = 5\r
+.equ PIND4      = 4\r
+.equ PIND3      = 3\r
+.equ PIND2      = 2\r
+.equ PIND1      = 1\r
+.equ PIND0      = 0\r
+\r
+; *** PORTC ***\r
+.equ PORTC7     = 7  \r
+.equ PORTC6     = 6\r
+.equ PORTC5     = 5\r
+.equ PORTC4     = 4\r
+.equ PORTC3     = 3\r
+.equ PORTC2     = 2\r
+.equ PORTC1     = 1\r
+.equ PORTC0     = 0\r
+\r
+; *** DDRC ***\r
+.equ DDC7       = 7  \r
+.equ DDC6       = 6\r
+.equ DDC5       = 5\r
+.equ DDC4       = 4\r
+.equ DDC3       = 3\r
+.equ DDC2       = 2\r
+.equ DDC1       = 1\r
+.equ DDC0       = 0\r
+\r
+; *** PINC ***\r
+.equ PINC7      = 7  \r
+.equ PINC6      = 6\r
+.equ PINC5      = 5\r
+.equ PINC4      = 4\r
+.equ PINC3      = 3\r
+.equ PINC2      = 2\r
+.equ PINC1      = 1\r
+.equ PINC0      = 0\r
+\r
+; *** PORTB ***\r
+.equ PORTB7     = 7  \r
+.equ PORTB6     = 6\r
+.equ PORTB5     = 5\r
+.equ PORTB4     = 4\r
+.equ PORTB3     = 3\r
+.equ PORTB2     = 2\r
+.equ PORTB1     = 1\r
+.equ PORTB0     = 0\r
+\r
+; *** DDRB ***\r
+.equ DDB7       = 7  \r
+.equ DDB6       = 6\r
+.equ DDB5       = 5\r
+.equ DDB4       = 4\r
+.equ DDB3       = 3\r
+.equ DDB2       = 2\r
+.equ DDB1       = 1\r
+.equ DDB0       = 0\r
+\r
+; *** PINB ***\r
+.equ PINB7      = 7  \r
+.equ PINB6      = 6\r
+.equ PINB5      = 5\r
+.equ PINB4      = 4\r
+.equ PINB3      = 3\r
+.equ PINB2      = 2\r
+.equ PINB1      = 1\r
+.equ PINB0      = 0\r
+\r
+; *** PORTA ***\r
+.equ PORTA7     = 7  \r
+.equ PORTA6     = 6\r
+.equ PORTA5     = 5\r
+.equ PORTA4     = 4\r
+.equ PORTA3     = 3\r
+.equ PORTA2     = 2\r
+.equ PORTA1     = 1\r
+.equ PORTA0     = 0\r
+\r
+; *** DDRA ***\r
+.equ DDA7       = 7  \r
+.equ DDA6       = 6\r
+.equ DDA5       = 5\r
+.equ DDA4       = 4\r
+.equ DDA3       = 3\r
+.equ DDA2       = 2\r
+.equ DDA1       = 1\r
+.equ DDA0       = 0\r
+\r
+; *** PINA ***\r
+.equ PINA7      = 7  \r
+.equ PINA6      = 6\r
+.equ PINA5      = 5\r
+.equ PINA4      = 4\r
+.equ PINA3      = 3\r
+.equ PINA2      = 2\r
+.equ PINA1      = 1\r
+.equ PINA0      = 0\r
+\r
+;*****************************************************************************\r
+; CPU Register Declarations\r
+;*****************************************************************************\r
+\r
+.def   XL      = r26           ; X pointer low\r
+.def   XH      = r27           ; X pointer high\r
+.def   YL      = r28           ; Y pointer low\r
+.def   YH      = r29           ; Y pointer high\r
+.def   ZL      = r30           ; Z pointer low\r
+.def   ZH      = r31           ; Z pointer high\r
+\r
+\r
+;*****************************************************************************\r
+; Data Memory Declarations\r
+;*****************************************************************************\r
+\r
+.equ   RAMEND  = $4ff          ; Highest internal data memory (SRAM) address.\r
+                                                       ;(1k RAM + IO + REG)\r
+.equ   EEPROMEND = $01ff   ; Highest EEPROM address.\r
+                               ;(512 byte)\r
+;*****************************************************************************\r
+; Program Memory Declarations\r
+;*****************************************************************************\r
+\r
+.equ    FLASHEND = $1FFF       ;  Highest program memory (flash) address\r
+                               ; (When addressed as 16 bit words)\r
+                                                       ; ( 8k words , 16k byte ) \r
+               \r
+;**** Boot Vectors ****\r
+                       ;  byte groups\r
+                       ;   /--\/--\/--\ \r
+.equ   SMALLBOOTSTART  =0b1111110000000  ;($1F80) smallest boot block is 256B\r
+.equ   SECONDBOOTSTART =0b1111100000000  ;($1F00) second boot block size is 512B\r
+.equ   THIRDBOOTSTART  =0b1111000000000  ;($1E00) third boot block size is 1KB\r
+.equ   LARGEBOOTSTART  =0b1110000000000  ;($1C00) largest boot block is 2KB\r
+.equ   BOOTSTART       =THIRDBOOTSTART   ;OBSOLETE!!! kept for compatibility\r
+\r
+;**** Page Size ****\r
+.equ   PAGESIZE        =64     ;number of WORDS in a page\r
+\r
+;**** Interrupt Vectors ****           \r
+.equ   INT0addr     =$002      ;External Interrupt0 Interrupt Address\r
+.equ   PCINT0addr   =$004      ;Pin Change Interrupt0 Interrupt Address \r
+.equ   PCINT1addr   =$006      ;Pin Change Interrupt1 Interrupt Address\r
+.equ   CMP2addr     =$008 \r
+.equ   OC2addr      =$008      ;Timer/Counter2 Compare Match Interrupt Address\r
+.equ   OVF2addr     =$00a      ;Overflow1 Interrupt Address\r
+.equ   ICP1addr     =$00c      ;Input Capture1 Interrupt Address\r
+.equ   OC1Aaddr     =$00e      ;Output Compare1A Interrupt Address\r
+.equ   OC1Baddr     =$010      ;Output Compare1B Interrupt Address \r
+.equ   OVF1addr     =$012      ;Overflow1 Interrupt Address\r
+.equ   CMP0addr     =$014 \r
+.equ   OC0addr      =$014      ;Timer/Counter0 Compare Match Interrupt Address\r
+.equ   OVF0addr     =$016      ;Overflow0 Interrupt Address\r
+.equ   SPIaddr      =$018      ;SPI Interrupt Address\r
+.equ   URXC0addr    =$01a      ;UART Receive Complete Interrupt Address\r
+.equ   UDRE0addr    =$01c      ;UART Data Register Empty Interrupt Address\r
+.equ   UTXC0addr    =$01e      ;UART Transmit Complete Interrupt Address\r
+.equ   USI_STARTaddr=$020      ;Universal Serial Bus Start Interrupt Address   \r
+.equ   USI_OVFaddr  =$022      ;Universal Serial Bus Overflow Interrupt Address        \r
+.equ   ACIaddr      =$024      ;Analog Comparator Interrupt Address\r
+.equ  ADCCaddr     =$026       ;ADC Conversion Complete Interrupt Address\r
+.equ   ERDYaddr     =$028      ;EEPROM write complete Interrupt Address\r
+.equ   SPMRaddr     =$02a      ;Store Program Memory Ready Interrupt Address\r
+.equ   LCDSFaddr    =$02c      ;LCD Start of Frame Interrupt Address\r
+\r
+;for compatibility with s8515\r
+.equ   URXCaddr=$01a   ;UART Receive Complete Interrupt \r
+.equ   UDREaddr=$01e   ;UART Data Register Empty Interrupt \r
+.equ   UTXCaddr=$022   ;UART Transmit Complete Interrupt \r
+\r