;***************************************************************************
;* 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
;* 
;*
Number         :AVR000
;* File
Name            :"8535def.inc"
;*
Title          :Register/Bit
Definitions for the AT90S8535
;*
Date                 :99.01.28
;*
Version              :1.30
;*
Support telephone      :+47 72 88 43 88
(ATMEL Norway)
;*
Support fax         :+47 72 88 43 99 (ATMEL Norway)
;*
Support E-mail      :avr@atmel.com
;*
Target MCU         :AT90S8535
;*
;*
DESCRIPTION
;* When
including this file in the assembly program file, all I/O register      
;*
names and I/O register bit names appearing in the data book can be used.
;* In
addition, the six registers forming the three data pointers X, Y and
;* Z
have been assigned names XL - ZH. Highest RAM address for Internal 
;* SRAM
is also defined 
;*
;* The
Register names are represented by their hexadecimal address.
;* 
;* The
Register Bit names are represented by their bit number (0-7).
;* 
;*
Please observe the difference in using the bit names with instructions
;* such
as "sbr"/"cbr" (set/clear bit in register) and
"sbrs"/"sbrc" 
;*
(skip if bit in register set/cleared). The following example illustrates
;*
this:
;* 
;* in      r16,PORTB         ;read PORTB latch
;* sbr      r16,(1<<PB6)+(1<<PB5)   ;set PB6 and PB5 (use masks, not bit#)
;*
out  PORTB,r16         ;output to PORTB
;*
;* in      r16,TIFR          ;read the Timer Interrupt Flag Register
;* sbrc      r16,TOV0          ;test the overflow flag (use bit#)
;* rjmp      TOV0_is_set       ;jump if set
;* ...                        ;otherwise do something else
;***************************************************************************
 
;*****
Specify Device
.device
AT90S8535
 
;*****
I/O Register Definitions
.equ  SREG      =$3f
.equ  SPH      =$3e
.equ  SPL      =$3d
.equ  GIMSK      =$3b
.equ  GIFR      =$3a
.equ  TIMSK      =$39
.equ  TIFR      =$38
 
.equ  MCUCR      =$35
.equ  MCUSR      =$34
 
.equ  TCCR0      =$33
.equ  TCNT0      =$32
 
.equ  TCCR1A      =$2f
.equ  TCCR1B      =$2e
.equ  TCNT1H      =$2d
.equ  TCNT1L      =$2c
.equ  OCR1AH      =$2b
.equ  OCR1AL      =$2a
.equ  OCR1BH      =$29
.equ  OCR1BL      =$28
.equ  ICR1H      =$27
.equ  ICR1L      =$26
 
.equ  TCCR2      =$25
.equ  TCNT2      =$24
.equ  OCR2      =$23
.equ  ASSR      =$22
 
.equ  WDTCR      =$21
.equ  EEARH      =$1f
.equ  EEARL      =$1e
.equ  EEDR      =$1d
.equ  EECR      =$1c
.equ  PORTA      =$1b
.equ  DDRA      =$1a
.equ  PINA      =$19
.equ  PORTB      =$18
.equ  DDRB      =$17
.equ  PINB      =$16
.equ  PORTC      =$15
.equ  DDRC      =$14
.equ  PINC      =$13
.equ  PORTD      =$12
.equ  DDRD      =$11
.equ  PIND      =$10
.equ  SPDR      =$0f
.equ  SPSR      =$0e
.equ  SPCR      =$0d
.equ  UDR      =$0c
.equ  USR      =$0b
.equ  UCR      =$0a
.equ  UBRR      =$09
.equ  ACSR      =$08
.equ    ADMUX  
=$07
.equ    ADCSR  
=$06
.equ    ADCH   
=$05
.equ    ADCL   
=$04
 
 
;*****
Bit Definitions
 
.equ  EXTRF      =1
.equ  PORF      =0
 
.equ  INT1      =7
.equ  INT0      =6
 
.equ  INTF1      =7
.equ  INTF0      =6
 
.equ  OCIE2      =7
.equ  TOIE2      =6
.equ  TICIE1      =5
.equ  OCIE1A      =4
.equ  OCIE1B      =3
.equ  TOIE1      =2
.equ  TOIE0      =0
 
.equ  OCF2      =7
.equ  TOV2      =6
.equ  ICF1      =5
.equ  OCF1A      =4
.equ  OCF1B      =3
.equ  TOV1      =2
.equ  TOV0      =0
 
.equ  SE      =6
.equ  SM1      =5
.equ  SM0      =4
.equ  ISC11      =3
.equ  ISC10      =2
.equ  ISC01      =1
.equ  ISC00      =0
 
.equ  CS02      =2
.equ  CS01      =1
.equ  CS00      =0
 
.equ  COM1A1      =7
.equ  COM1A0      =6
.equ  COM1B1      =5
.equ  COM1B0      =4
.equ  PWM11      =1
.equ  PWM10      =0
 
.equ  ICNC1      =7
.equ  ICES1      =6
.equ  CTC1      =3
.equ  CS12      =2
.equ  CS11      =1
.equ  CS10      =0
 
.equ  PWM2      =6
.equ  COM21      =5
.equ  COM20      =4
.equ  CTC2      =3
.equ  CS22      =2
.equ  CS21      =1
.equ  CS20      =0
 
.equ  AS2      =3
.equ  TCN2UB      =2
.equ  OCR2UB      =1
.equ  TCR2UB      =0
 
.equ  WDDE      =4
.equ  WDE      =3
.equ  WDP2      =2
.equ  WDP1      =1
.equ  WDP0      =0
 
.equ  EERIE      =3
.equ  EEMWE      =2
.equ  EEWE      =1
.equ  EERE      =0
 
.equ  PA7      =7
.equ  PA6      =6
.equ  PA5      =5
.equ  PA4      =4
.equ  PA3      =3
.equ  PA2      =2
.equ  PA1      =1
.equ  PA0      =0
 
.equ  DDA7      =7
.equ  DDA6      =6
.equ  DDA5      =5
.equ  DDA4      =4
.equ  DDA3      =3
.equ  DDA2      =2
.equ  DDA1      =1
.equ  DDA0      =0
 
.equ  PINA7      =7
.equ  PINA6      =6
.equ  PINA5      =5
.equ  PINA4      =4
.equ  PINA3      =3
.equ  PINA2      =2
.equ  PINA1      =1
.equ  PINA0      =0
 
.equ  PB7      =7
.equ  PB6      =6
.equ  PB5      =5
.equ  PB4      =4
.equ  PB3      =3
.equ  PB2      =2
.equ  PB1      =1
.equ  PB0      =0
 
.equ  DDB7      =7
.equ  DDB6      =6
.equ  DDB5      =5
.equ  DDB4      =4
.equ  DDB3      =3
.equ  DDB2      =2
.equ  DDB1      =1
.equ  DDB0      =0
 
.equ  PINB7      =7
.equ  PINB6      =6
.equ  PINB5      =5
.equ  PINB4      =4
.equ  PINB3      =3
.equ  PINB2      =2
.equ  PINB1      =1
.equ  PINB0      =0
 
.equ  PC7      =7
.equ  PC6      =6
.equ  PC5      =5
.equ  PC4      =4
.equ  PC3      =3
.equ  PC2      =2
.equ  PC1      =1
.equ  PC0      =0
 
.equ  DDC7      =7
.equ  DDC6      =6
.equ  DDC5      =5
.equ  DDC4      =4
.equ  DDC3      =3
.equ  DDC2      =2
.equ  DDC1      =1
.equ  DDC0      =0
 
.equ  PINC7      =7
.equ  PINC6      =6
.equ  PINC5      =5
.equ  PINC4      =4
.equ  PINC3      =3
.equ  PINC2      =2
.equ  PINC1      =1
.equ  PINC0      =0
 
.equ  PD7      =7
.equ  PD6      =6
.equ  PD5      =5
.equ  PD4      =4
.equ  PD3      =3
.equ  PD2      =2
.equ  PD1      =1
.equ  PD0      =0
 
.equ  DDD7      =7
.equ  DDD6      =6
.equ  DDD5      =5
.equ  DDD4      =4
.equ  DDD3      =3
.equ  DDD2      =2
.equ  DDD1      =1
.equ  DDD0      =0
 
.equ  PIND7      =7
.equ  PIND6      =6
.equ  PIND5      =5
.equ  PIND4      =4
.equ  PIND3      =3
.equ  PIND2      =2
.equ  PIND1      =1
.equ  PIND0      =0
 
.equ  SPIE      =7
.equ  SPE      =6
.equ  DORD      =5
.equ  MSTR      =4
.equ  CPOL      =3
.equ  CPHA      =2
.equ  SPR1      =1
.equ  SPR0      =0
 
.equ  SPIF      =7
.equ  WCOL      =6
 
.equ  RXC      =7
.equ  TXC      =6
.equ  UDRE      =5
.equ  FE      =4
.equ  OR      =3
 
.equ  RXCIE      =7
.equ  TXCIE      =6
.equ  UDRIE      =5
.equ  RXEN      =4
.equ  TXEN      =3
.equ  CHR9      =2
.equ  RXB8      =1
.equ  TXB8      =0
 
.equ  ACD      =7
.equ  ACO      =5
.equ  ACI      =4
.equ  ACIE      =3
.equ  ACIC      =2
.equ  ACIS1      =1
.equ  ACIS0      =0
 
.equ  MUX2      =2
.equ  MUX1      =1
.equ  MUX0      =0
 
.equ  ADEN      =7
.equ  ADSC      =6
.equ  ADFR      =5
.equ  ADIF      =4
.equ  ADIE      =3
.equ  ADPS2      =2
.equ  ADPS1      =1
.equ  ADPS0      =0
 
.def  XL      =r26
.def  XH      =r27
.def  YL      =r28
.def  YH      =r29
.def  ZL      =r30
.def  ZH      =r31
 
.equ  RAMEND 
=$25F ;Last On-Chip SRAM location
.equ      XRAMEND =$25F
.equ  E2END      =$1FF
.equ      FLASHEND=$FFF
 
.equ      INT0addr=$001      ;External Interrupt0 Vector Address
.equ      INT1addr=$002      ;External Interrupt1 Vector Address
.equ      OC2addr =$003      ;Timer2 compare match Vector Address
.equ      OVF2addr=$004      ;Timer2 overflow Vector Address
.equ      ICP1addr=$005      ;Timer1 Input Capture Vector Address
.equ      OC1Aaddr=$006      ;Timer1 Output Compare A Interrupt Vector Address
.equ      OC1Baddr=$007      ;Timer1 Output Compare B Interrupt Vector Address
.equ      OVF1addr=$008      ;Overflow1 Interrupt Vector Address
.equ      OVF0addr=$009      ;Overflow0 Interrupt Vector Address
.equ      SPIaddr =$00A      ;SPI Interrupt Vector Address
.equ      URXCaddr=$00B      ;UART Receive Complete Interrupt Vector Address
.equ      UDREaddr=$00C      ;UART Data Register Empty Interrupt Vector Address
.equ      UTXCaddr=$00D      ;UART Transmit Complete Interrupt Vector Address
.equ      ADCCaddr=$00E      ;ADC Conversion Complete Interrupt Vector Address
.equ      ERDYaddr=$00F      ;EEPROM Write Complete Interrupt Vector Address
.equ      ACIaddr =$010      ;Analog Comparator Interrupt Vector Address