include files added (all devices)
[my-code/atmel.git] / include / m104def.inc
diff --git a/include/m104def.inc b/include/m104def.inc
new file mode 100644 (file)
index 0000000..e1b75c3
--- /dev/null
@@ -0,0 +1,865 @@
+;***************************************************************************\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           : "m104def.inc"\r
+;* Title               : Register/Bit Definitions for the ATmega104\r
+;* Date                 : January 25th, 2000\r
+;* Version              : 1.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          : ATmega104\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
+;$Author: hackbard $\r
+;$Date: 2003-12-06 01:15:10 $\r
+;$Revision: 1.1 $\r
+;$Source: /chroot/cvs/my-code/atmel/include/m104def.inc,v $\r
+\r
+;**** Specify Device ****\r
+;.device ATmega104\r
+\r
+\r
+;*****************************************************************************\r
+; I/O Register Definitions\r
+;*****************************************************************************\r
+\r
+;**** Memory Mapped I/O Register Definitions ($FF-$60) ****\r
+.equ   UCSR1C  = $9D\r
+.equ   UDR1    = $9C\r
+.equ   UCSR1A  = $9B\r
+.equ   UCSR1B  = $9A\r
+.equ   UBRR1L  = $99\r
+.equ   UBRR1H  = $98\r
+       \r
+.equ   UCSR0C  = $95\r
+       \r
+.equ   UBRR0H  = $90\r
+\r
+.equ   TCCR3C  = $8C\r
+.equ   TCCR3A  = $8B\r
+.equ   TCCR3B  = $8A\r
+.equ   TCNT3H  = $89\r
+.equ   TCNT3L  = $88\r
+.equ   OCR3AH  = $87\r
+.equ   OCR3AL  = $86\r
+.equ   OCR3BH  = $85\r
+.equ   OCR3BL  = $84\r
+.equ   OCR3CH  = $83\r
+.equ   OCR3CL  = $82\r
+.equ   ICR3H   = $81\r
+.equ   ICR3L   = $80\r
+\r
+.equ   ETIMSK  = $7D\r
+.equ   ETIFR   = $7C\r
+\r
+.equ   TCCR1C  = $7A\r
+.equ   OCR1CH  = $79\r
+.equ   OCR1CL  = $78\r
+\r
+.equ   TWCR    = $74\r
+.equ   TWDR    = $73\r
+.equ   TWAR    = $72\r
+.equ   TWSR    = $71\r
+.equ   TWBR    = $70\r
+       \r
+.equ   OSCCAL  = $6F\r
+\r
+.equ   XMCRA   = $6D\r
+.equ   XMCRB   = $6C\r
+\r
+.equ   EICRA   = $6A\r
+\r
+.equ   SPMCSR  = $68\r
+.equ   SPMCR   = $68           ; old name for SPMCSR\r
+\r
+.equ   PORTG   = $65\r
+.equ   DDRG    = $64\r
+.equ   PING    = $63\r
+\r
+.equ   PORTF   = $62\r
+.equ   DDRF    = $61\r
+\r
+;**** I/O Register Definitions ($3F-$00) ****\r
+.equ   SREG    = $3F\r
+.equ   SPH     = $3E\r
+.equ   SPL     = $3D\r
+.equ   XDIV    = $3C\r
+.equ   RAMPZ   = $3B\r
+.equ   EICRB   = $3A\r
+.equ   EIMSK   = $39\r
+.equ   GIMSK   = $39           ; old name for EIMSK\r
+.equ   GICR    = $39           ; old name for EIMSK\r
+.equ   EIFR    = $38\r
+.equ   GIFR    = $38           ; old name for EIFR\r
+.equ   TIMSK   = $37\r
+.equ   TIFR    = $36\r
+.equ   MCUCR   = $35\r
+.equ   MCUCSR  = $34\r
+.equ   TCCR0   = $33\r
+.equ   TCNT0   = $32\r
+.equ   OCR0    = $31\r
+.equ   ASSR    = $30\r
+.equ   TCCR1A  = $2F\r
+.equ   TCCR1B  = $2E\r
+.equ   TCNT1H  = $2D\r
+.equ   TCNT1L  = $2C\r
+.equ   OCR1AH  = $2B\r
+.equ   OCR1AL  = $2A\r
+.equ   OCR1BH  = $29\r
+.equ   OCR1BL  = $28\r
+.equ   ICR1H   = $27\r
+.equ   ICR1L   = $26\r
+.equ   TCCR2   = $25\r
+.equ   TCNT2   = $24\r
+.equ   OCR2    = $23\r
+.equ   OCDR    = $22           ; New\r
+.equ   WDTCR   = $21\r
+.equ   SFIOR   = $20           ; New\r
+.equ   EEARH   = $1F\r
+.equ   EEARL   = $1E\r
+.equ   EEDR    = $1D\r
+.equ   EECR    = $1C\r
+.equ   PORTA   = $1B\r
+.equ   DDRA    = $1A\r
+.equ   PINA    = $19\r
+.equ   PORTB   = $18\r
+.equ   DDRB    = $17\r
+.equ   PINB    = $16\r
+.equ   PORTC   = $15\r
+.equ   DDRC    = $14           ; New\r
+.equ   PINC    = $13           ; New\r
+.equ   PORTD   = $12\r
+.equ   DDRD    = $11\r
+.equ   PIND    = $10\r
+.equ   SPDR    = $0F\r
+.equ   SPSR    = $0E\r
+.equ   SPCR    = $0D\r
+.equ   UDR0    = $0C\r
+.equ   UCSR0A  = $0B\r
+.equ   UCSR0B  = $0A\r
+.equ   UBRR0L  = $09\r
+.equ   ACSR    = $08\r
+.equ   ADMUX   = $07\r
+.equ   ADCSR   = $06\r
+.equ   ADCH    = $05\r
+.equ   ADCL    = $04\r
+.equ   PORTE   = $03\r
+.equ   DDRE    = $02\r
+.equ   PINE    = $01\r
+.equ   PINF    = $00\r
+\r
+\r
+;*****************************************************************************\r
+; Bit Definitions\r
+;*****************************************************************************\r
+\r
+;**** MCU Control ****\r
+.equ   SRE     = 7             ; MCUCR\r
+.equ   SRW10   = 6\r
+.equ   SE      = 5\r
+.equ   SM1     = 4\r
+.equ   SM0     = 3\r
+.equ   SM2     = 2\r
+.equ   IVSEL   = 1\r
+.equ   IVCE    = 0\r
+\r
+.equ   JTD     = 7             ; MCUCSR\r
+.equ   JTRF    = 4     \r
+.equ   WDRF    = 3\r
+.equ   BORF    = 2\r
+.equ   EXTRF   = 1\r
+.equ   PORF    = 0\r
+\r
+.equ   SRL2    =6              ; XMCRA\r
+.equ   SRL1    =5\r
+.equ   SRL0    =4\r
+.equ   SRW01   =3\r
+.equ   SRW00   =2\r
+.equ   SRW11   =1\r
+\r
+.equ   XMBK    = 7             ; XMCRB\r
+.equ   XMM2    = 2\r
+.equ   XMM1    = 1\r
+.equ   XMM0    = 0\r
+\r
+.equ   SPMIE   =7              ; SPMCSR\r
+.equ   ASB     =6              ; backwards compatiblity\r
+.equ   ASRE    =4              ; backwards compatiblity\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
+.equ   IDRD    = 7             ; OCDR\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
+.equ   XDIVEN  = 7             ; XDIV\r
+.equ   XDIV6   = 6\r
+.equ   XDIV5   = 5\r
+.equ   XDIV4   = 4\r
+.equ   XDIV3   = 3\r
+.equ   XDIV2   = 2\r
+.equ   XDIV1   = 1\r
+.equ   XDIV0   = 0\r
+\r
+.equ   TSM     = 7             ; SFIOR\r
+.equ   ADHSM   = 4\r
+.equ   ACME    = 3\r
+.equ   PUD     = 2\r
+.equ   PSR0    = 1\r
+.equ   PSR1    = 0\r
+.equ   PSR2    = 0\r
+.equ   PSR3    = 0\r
+.equ   PSR321  = 0     \r
+\r
+;**** Analog to Digital Converter ****\r
+.equ   ADEN    = 7             ; ADCSR\r
+.equ   ADSC    = 6\r
+.equ   ADFR    = 5\r
+.equ   ADIF    = 4\r
+.equ   ADIE    = 3\r
+.equ   ADPS2   = 2\r
+.equ   ADPS1   = 1\r
+.equ   ADPS0   = 0\r
+\r
+.equ    REFS1   =7             ; ADMUX\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
+;**** Analog Comparator ****\r
+.equ   ACD     = 7             ; ACSR\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
+\r
+;**** External Interrupts ****\r
+.equ   INT7    = 7             ; EIMSK\r
+.equ   INT6    = 6\r
+.equ   INT5    = 5\r
+.equ   INT4    = 4\r
+.equ   INT3    = 3\r
+.equ   INT2    = 2\r
+.equ   INT1    = 1\r
+.equ   INT0    = 0\r
+\r
+.equ   INTF7   = 7             ; EIFR\r
+.equ   INTF6   = 6\r
+.equ   INTF5   = 5\r
+.equ   INTF4   = 4\r
+.equ   INTF3   = 3\r
+.equ   INTF2   = 2\r
+.equ   INTF1   = 1\r
+.equ   INTF0   = 0\r
+\r
+.equ   ISC71   = 7             ; EICRB\r
+.equ   ISC70   = 6\r
+.equ   ISC61   = 5\r
+.equ   ISC60   = 4\r
+.equ   ISC51   = 3\r
+.equ   ISC50   = 2\r
+.equ   ISC41   = 1\r
+.equ   ISC40   = 0\r
+\r
+.equ   ISC31   = 7             ; EICRA\r
+.equ   ISC30   = 6\r
+.equ   ISC21   = 5\r
+.equ   ISC20   = 4\r
+.equ   ISC11   = 3\r
+.equ   ISC10   = 2\r
+.equ   ISC01   = 1\r
+.equ   ISC00   = 0\r
+\r
+;**** Timer Interrupts ****\r
+.equ   OCIE2   = 7             ; TIMSK\r
+.equ   TOIE2   = 6\r
+.equ   TICIE1  = 5\r
+.equ   OCIE1A  = 4\r
+.equ   OCIE1B  = 3\r
+.equ   TOIE1   = 2\r
+.equ   OCIE0   = 1\r
+.equ   TOIE0   = 0\r
+\r
+.equ   TICIE3  = 5             ; ETIMSK\r
+.equ   OCIE3A  = 4\r
+.equ   OCIE3B  = 3\r
+.equ   TOIE3   = 2\r
+.equ   OCIE3C  = 1\r
+.equ   OCIE1C  = 0\r
+\r
+.equ   OCF2    = 7             ; TIFR\r
+.equ   TOV2    = 6\r
+.equ   ICF1    = 5\r
+.equ   OCF1A   = 4\r
+.equ   OCF1B   = 3\r
+.equ   TOV1    = 2\r
+.equ   OCF0    = 1\r
+.equ   TOV0    = 0\r
+\r
+.equ   ICF3    = 5             ; ETIFR\r
+.equ   OCF3A   = 4\r
+.equ   OCF3B   = 3\r
+.equ   TOV3    = 2\r
+.equ   OCF3C   = 1\r
+.equ   OCF1C   = 0\r
+\r
+;**** Asynchronous Timer ****\r
+.equ   AS0     = 3             ; ASSR\r
+.equ   TCN0UB  = 2\r
+.equ   OCR0UB  = 1\r
+.equ   TCR0UB  = 0\r
+\r
+;**** Timer 0 ****\r
+.equ    FOC0    = 7            ; TCCR0\r
+.equ    PWM0    = 6\r
+.equ   COM01   = 5\r
+.equ   COM00   = 4\r
+.equ   CTC0    = 3\r
+.equ   CS02    = 2\r
+.equ   CS01    = 1\r
+.equ   CS00    = 0\r
+\r
+;**** Timer 1 ****\r
+.equ   COM1A1  = 7             ; TCCR1A\r
+.equ   COM1A0  = 6\r
+.equ   COM1B1  = 5\r
+.equ   COM1B0  = 4\r
+.equ   COM1C1  = 3\r
+.equ   COM1C0  = 2\r
+.equ   PWM11   = 1             ; OBSOLETE! Use WGM11\r
+.equ   PWM10   = 0             ; OBSOLETE! Use WGM10\r
+.equ   WGM11   = 1\r
+.equ   WGM10   = 0\r
+\r
+.equ   ICNC1   = 7             ; TCCR1B\r
+.equ   ICES1   = 6\r
+.equ   CTC11   = 4             ; OBSOLETE! Use WGM13\r
+.equ   CTC10   = 3             ; OBSOLETE! Use WGM12\r
+.equ   WGM13   = 4\r
+.equ   WGM12   = 3\r
+.equ   CS12    = 2\r
+.equ   CS11    = 1\r
+.equ   CS10    = 0\r
+\r
+.equ   FOC1A   = 7             ; TCCR1C\r
+.equ   FOC1B   = 6\r
+.equ   FOC1C   = 5\r
+\r
+;**** Timer 2 ****\r
+.equ   FOC2    = 7             ; TCCR2\r
+.equ   PWM2    = 6\r
+.equ   COM21   = 5\r
+.equ   COM20   = 4\r
+.equ   CTC2    = 3\r
+.equ   CS22    = 2\r
+.equ   CS21    = 1\r
+.equ   CS20    = 0\r
+\r
+;**** Timer 3 ****\r
+.equ   COM3A1  = 7             ; TCCR3A\r
+.equ   COM3A0  = 6\r
+.equ   COM3B1  = 5\r
+.equ   COM3B0  = 4\r
+.equ   COM3C1  = 3\r
+.equ   COM3C0  = 2\r
+.equ   PWM31   = 1             ; OBSOLETE! Use WGM31\r
+.equ   PWM30   = 0             ; OBSOLETE! Use WGM30\r
+.equ   WGM31   = 1\r
+.equ   WGM30   = 0\r
+\r
+.equ   ICNC3   = 7             ; TCCR3B\r
+.equ   ICES3   = 6\r
+.equ   CTC31   = 4             ; OBSOLETE! Use WGM33\r
+.equ   CTC30   = 3             ; OBSOLETE! Use WGM32\r
+.equ   WGM33   = 4\r
+.equ   WGM32   = 3\r
+.equ   CS32    = 2\r
+.equ   CS31    = 1\r
+.equ   CS30    = 0\r
+\r
+.equ   FOC3A   = 7             ; TCCR3C\r
+.equ   FOC3B   = 6\r
+.equ   FOC3C   = 5\r
+\r
+;**** Watchdog Timer ****\r
+.equ   WDCE    = 4             ; WDTCR\r
+.equ   WDTOE   = 4             ; For Mega103 compability\r
+.equ   WDE     = 3\r
+.equ   WDP2    = 2\r
+.equ   WDP1    = 1\r
+.equ   WDP0    = 0\r
+\r
+;**** EEPROM  Control Register ****\r
+.equ   EERIE   = 3             ; EECR\r
+.equ   EEMWE   = 2\r
+.equ   EEWE    = 1\r
+.equ   EERE    = 0\r
+\r
+;**** USART 0 and USART 1 ****\r
+.equ   RXC     = 7             ; (UCSRA0/1)\r
+.equ   TXC     = 6\r
+.equ   UDRE    = 5\r
+.equ   FE      = 4\r
+.equ   DOR     = 3\r
+.equ   PE      = 2             ; OBSOLETED!\r
+.equ   U2X     = 1\r
+.equ   MPCM    = 0\r
+\r
+.equ   RXC0    = 7             ; (UCSR0A)\r
+.equ   TXC0    = 6\r
+.equ   UDRE0   = 5\r
+.equ   FE0     = 4\r
+.equ   DOR0    = 3\r
+.equ   UPE0    = 2\r
+.equ   U2X0    = 1\r
+.equ   MPCM0   = 0\r
+\r
+.equ   RXC1    = 7             ; (UCSR1A)\r
+.equ   TXC1    = 6\r
+.equ   UDRE1   = 5\r
+.equ   FE1     = 4\r
+.equ   DOR1    = 3\r
+.equ   UPE1    = 2\r
+.equ   U2X1    = 1\r
+.equ   MPCM1   = 0\r
+\r
+.equ   RXCIE   = 7             ; (UCSRB0/1)\r
+.equ   TXCIE   = 6\r
+.equ   UDRIE   = 5\r
+.equ   RXEN    = 4\r
+.equ   TXEN    = 3\r
+.equ   UCSZ2   = 2\r
+.equ   RXB8    = 1\r
+.equ   TXB8    = 0\r
+\r
+.equ   RXCIE0  = 7             ; (UCSR0B)\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
+.equ   RXCIE1  = 7             ; (UCSR1B)\r
+.equ   TXCIE1  = 6\r
+.equ   UDRIE1  = 5\r
+.equ   RXEN1   = 4\r
+.equ   TXEN1   = 3\r
+.equ   UCSZ12  = 2\r
+.equ   RXB81   = 1\r
+.equ   TXB81   = 0\r
+\r
+.equ   UMSEL   = 6             ; (UCSRC0/1)\r
+.equ   UPM1    = 5\r
+.equ   UPM0    = 4\r
+.equ   USBS    = 3\r
+.equ   UCSZ1   = 2\r
+.equ   UCSZ0   = 1\r
+.equ   UCPOL   = 0\r
+\r
+.equ   UMSEL0  = 6             ; (UCSR0C)\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
+.equ   UMSEL1  = 6             ; (UCSR1C)\r
+.equ   UPM11   = 5\r
+.equ   UPM10   = 4\r
+.equ   USBS1   = 3\r
+.equ   UCSZ11  = 2\r
+.equ   UCSZ10  = 1\r
+.equ   UCPOL1  = 0\r
+\r
+       \r
+;**** SPI ****\r
+.equ   SPIE    = 7             ; SPCR\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
+.equ   SPIF    = 7             ; SPSR\r
+.equ   WCOL    = 6\r
+.equ   SPI2X   = 0\r
+\r
+;**** TWI ****\r
+       \r
+.equ   TWINT   = 7\r
+.equ   TWEA    = 6\r
+.equ   TWSTA   = 5\r
+.equ   TWSTO   = 4\r
+.equ   TWWC    = 3\r
+.equ    TWEN    = 2\r
+.equ   TWIE    = 0\r
+.equ   TWS7    = 7             ; TWSR\r
+.equ   TWS6    = 6\r
+.equ   TWS5    = 5\r
+.equ   TWS4    = 4\r
+.equ   TWS3    = 3\r
+.equ   TWGCE   = 0             ; TWAR\r
+\r
+               \r
+;**** PORT A ****\r
+.equ   PA7     = 7             ; PORTA\r
+.equ   PA6     = 6\r
+.equ   PA5     = 5\r
+.equ   PA4     = 4\r
+.equ   PA3     = 3\r
+.equ   PA2     = 2\r
+.equ   PA1     = 1\r
+.equ   PA0     = 0\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
+.equ   DDA7    = 7             ; DDRA\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
+.equ   PINA7   = 7             ; PINA\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
+;**** PORT B ****\r
+.equ   PB7     = 7             ; PORTB\r
+.equ   PB6     = 6\r
+.equ   PB5     = 5\r
+.equ   PB4     = 4\r
+.equ   PB3     = 3\r
+.equ   PB2     = 2\r
+.equ   PB1     = 1\r
+.equ   PB0     = 0\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
+.equ   DDB7    = 7             ; DDRB\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
+.equ   PINB7   = 7             ; PINB\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
+;**** PORT C ****\r
+.equ   PC7     = 7             ; PORTC\r
+.equ   PC6     = 6\r
+.equ   PC5     = 5\r
+.equ   PC4     = 4\r
+.equ   PC3     = 3\r
+.equ   PC2     = 2\r
+.equ   PC1     = 1\r
+.equ   PC0     = 0\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
+.equ   DDC7    = 7             ; DDRC\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
+.equ   PINC7   = 7             ; PINC\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
+;**** PORT D ****\r
+.equ   PD7     = 7             ; PORTD\r
+.equ   PD6     = 6\r
+.equ   PD5     = 5\r
+.equ   PD4     = 4\r
+.equ   PD3     = 3\r
+.equ   PD2     = 2\r
+.equ   PD1     = 1\r
+.equ   PD0     = 0\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
+.equ   DDD7    = 7             ; DDRD\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
+.equ   PIND7   = 7             ; PIND\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
+;**** PORT E ****\r
+.equ   PE7     = 7             ; PORTE\r
+.equ   PE6     = 6\r
+.equ   PE5     = 5\r
+.equ   PE4     = 4\r
+.equ   PE3     = 3\r
+.equ   PE2     = 2\r
+.equ   PE1     = 1\r
+.equ   PE0     = 0\r
+.equ   PORTE7  = 7             ; PORTE\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
+.equ   DDE7    = 7             ; DDRE\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
+.equ   PINE7   = 7             ; PINE\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
+;**** PORT F ****\r
+.equ   PF7     = 7             ; PORTF\r
+.equ   PF6     = 6\r
+.equ   PF5     = 5\r
+.equ   PF4     = 4\r
+.equ   PF3     = 3\r
+.equ   PF2     = 2\r
+.equ   PF1     = 1\r
+.equ   PF0     = 0\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
+.equ   DDF7    = 7             ; DDRF\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
+.equ   PINF7   = 7             ; PINF\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
+;**** PORT G ****\r
+.equ   PG4     = 4             ; PORTG\r
+.equ   PG3     = 3\r
+.equ   PG2     = 2\r
+.equ   PG1     = 1\r
+.equ   PG0     = 0\r
+\r
+.equ   DDG4    = 4             ; DDRG\r
+.equ   DDG3    = 3\r
+.equ   DDG2    = 2\r
+.equ   DDG1    = 1\r
+.equ   DDG0    = 0\r
+\r
+.equ   PING4   = 4             ; PING\r
+.equ   PING3   = 3\r
+.equ   PING2   = 2\r
+.equ   PING1   = 1\r
+.equ   PING0   = 0\r
+\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  = $10ff         ; Highest internal data memory (SRAM) address.\r
+.equ   EEPROMEND = $0fff       ; Highest EEPROM address.\r
+       \r
+;*****************************************************************************\r
+; Program Memory Declarations\r
+;*****************************************************************************\r
+\r
+.equ    FLASHEND = $FFFF       ;  Highest program memory (flash) address\r
+                               ; (When addressed as 16 bit words)\r
+               \r
+;**** Boot Vectors ****\r
+                        ;  byte groups\r
+                        ;  /--\/--\/--\/--\ \r
+.equ   SMALLBOOTSTART  = 0b1111111000000000    ; ($FE00) Smallest boot block is 512W\r
+.equ   SECONDBOOTSTART = 0b1111110000000000    ; ($FC00) 2'nd boot block size is 1KW\r
+.equ   THIRDBOOTSTART  = 0b1111100000000000    ; ($F800) Third boot block size is 2KW\r
+.equ   LARGEBOOTSTART  = 0b1111000000000000    ; ($F000) Largest boot block is 4KW\r
+\r
+\r
+;**** Page Size ****\r
+.equ   PAGESIZE        = 128   ; Number of WORDS in a page\r
+\r
+\r
+;**** Interrupt Vectors ****\r
+.equ   INT0addr  = $002        ; External Interrupt0 Vector Address\r
+.equ   INT1addr  = $004        ; External Interrupt1 Vector Address\r
+.equ   INT2addr  = $006        ; External Interrupt2 Vector Address\r
+.equ   INT3addr  = $008        ; External Interrupt3 Vector Address\r
+.equ   INT4addr  = $00a        ; External Interrupt4 Vector Address\r
+.equ   INT5addr  = $00c        ; External Interrupt5 Vector Address\r
+.equ   INT6addr  = $00e        ; External Interrupt6 Vector Address\r
+.equ   INT7addr  = $010        ; External Interrupt7 Vector Address\r
+.equ   OC2addr   = $012        ; Output Compare2 Interrupt Vector Address\r
+.equ   OVF2addr  = $014        ; Overflow2 Interrupt Vector Address\r
+.equ   ICP1addr  = $016        ; Input Capture1 Interrupt Vector Address\r
+.equ   OC1Aaddr  = $018        ; Output Compare1A Interrupt Vector Address\r
+.equ   OC1Baddr  = $01a        ; Output Compare1B Interrupt Vector Address\r
+.equ   OVF1addr  = $01c        ; Overflow1 Interrupt Vector Address\r
+.equ   OC0addr   = $01e        ; Output Compare0 Interrupt Vector Address\r
+.equ   OVF0addr  = $020        ; Overflow0 Interrupt Vector Address\r
+.equ   SPIaddr   = $022        ; SPI Interrupt Vector Address\r
+.equ   URXC0addr = $024        ; USART0 Receive Complete Interrupt Vector Address\r
+.equ   UDRE0addr = $026        ; USART0 Data Register Empty Interrupt Vector Address\r
+.equ   UTXC0addr = $028        ; USART0 Transmit Complete Interrupt Vector Address\r
+.equ    ADCCaddr  = $02a       ; ADC Conversion Complete Handle\r
+.equ   ERDYaddr  = $02c        ; EEPROM Write Complete Handle\r
+.equ   ACIaddr   = $02e        ; Analog Comparator Interrupt Vector Address\r
+\r
+.equ   OC1Caddr  = $030        ; Output Compare1C Interrupt Vector Address\r
+.equ   ICP3addr  = $032        ; Input Capture3 Interrupt Vector Address\r
+.equ   OC3Aaddr  = $034        ; Output Compare3A Interrupt Vector Address\r
+.equ   OC3Baddr  = $036        ; Output Compare3B Interrupt Vector Address\r
+.equ   OC3Caddr  = $038        ; Output Compare3C Interrupt Vector Address\r
+.equ   OVF3addr  = $03A        ; Overflow3 Interrupt Vector Address\r
+.equ   URXC1addr = $03C        ; USART1 Receive Complete Interrupt Vector Address\r
+.equ   UDRE1addr = $03E        ; USART1 Data Register Empty Interrupt Vector Address\r
+.equ   UTXC1addr = $040        ; USART1 Transmit Complete Interrupt Vector Address\r
+.equ    TWIaddr   = $042       ; TWI Interrupt Vector Address\r
+.equ   SPMRaddr  = $044        ; Store Program Memory Ready Interrupt Vector Address\r
+\r
+\r
+;**** End of File ****\r