-> mapping to an 1/x like behaviour
[my-code/atmel.git] / include / m162def.inc
1 ;***************************************************************************\r
2 ;* 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
3 ;* \r
4 ;* Number                               :AVR000\r
5 ;* File Name                    :"m162def.inc"\r
6 ;* Title                                :Register/Bit Definitions for the ATmega162\r
7 ;* Date                 :2001.09.19\r
8 ;* Version              :1.00\r
9 ;* Support telephone    :+47 72 88 43 88 (ATMEL Norway)\r
10 ;* Support fax                  :+47 72 88 43 99 (ATMEL Norway)\r
11 ;* Support E-mail               :avr@atmel.no\r
12 ;* Target MCU                   :ATmega162\r
13 ;*\r
14 ;* DESCRIPTION\r
15 ;* When including this file in the assembly program file, all I/O register      \r
16 ;* names and I/O register bit names appearing in the data book can be used.\r
17 ;* In addition, the six registers forming the three data pointers X, Y and\r
18 ;* Z have been assigned names XL - ZH. Highest RAM address for Internal \r
19 ;* SRAM is also defined \r
20 ;*\r
21 ;* The Register names are represented by their hexadecimal address.\r
22 ;* \r
23 ;* The Register Bit names are represented by their bit number (0-7).\r
24 ;* \r
25 ;* Please observe the difference in using the bit names with instructions\r
26 ;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" \r
27 ;* (skip if bit in register set/cleared). The following example illustrates\r
28 ;* this:\r
29 ;* \r
30 ;* in   r16,PORTB               ;read PORTB latch\r
31 ;* sbr  r16,(1<<PB6)+(1<<PB5)   ;set PB6 and PB5 (use masks, not bit#)\r
32 ;* out  PORTB,r16               ;output to PORTB\r
33 ;*\r
34 ;* in   r16,TIFR                ;read the Timer Interrupt Flag Register\r
35 ;* sbrc r16,TOV0                ;test the overflow flag (use bit#)\r
36 ;* rjmp TOV0_is_set             ;jump if set\r
37 ;* ...                          ;otherwise do something else\r
38 ;***************************************************************************\r
39 \r
40 ;***** Specify Device\r
41 .device ATmega162\r
42         \r
43 ;**** Memory Mapped I/O Register Definitions ($FF-$60) ****\r
44 ;**** Not available in Mega162 compatibility mode      ****\r
45 .equ    TCCR3A  =$8b\r
46 .equ    TCCR3B  =$8a    \r
47 .equ    TCNT3H  =$89\r
48 .equ    TCNT3L  =$88\r
49 .equ    OCR3AH  =$87\r
50 .equ    OCR3AL  =$86    \r
51 .equ    OCR3BH  =$85\r
52 .equ    OCR3BL  =$84\r
53 .equ    ICR3H   =$81\r
54 .equ    ICR3L   =$80\r
55 .equ    ETIMSK  =$7d\r
56 .equ    ETIFR   =$7c\r
57 .equ    PCMSK1  =$6c\r
58 .equ    PCMSK0  =$6b\r
59 .equ    CLKPR   =$61    \r
60                                 \r
61 ;***** I/O Register Definitions \r
62 .equ    SREG    =$3f\r
63 .equ    SPH             =$3e\r
64 .equ    SPL             =$3d\r
65 .equ    UCSR1C  =$3c            ; Note! UCSR1C equals UBRR1H\r
66 .equ    UBRR1H  =$3c            ; Note! UCSR1C equals UBRR1H\r
67 .equ    EIMSK   =$3b    \r
68 .equ    GIMSK   =$3b\r
69 .equ    GICR    =$3b            ; new name for GIMSK\r
70 .equ    GIFR    =$3a\r
71 .equ    TIMSK   =$39\r
72 .equ    TIFR    =$38\r
73 .equ    SPMCR   =$37\r
74 .equ    EMCUCR  =$36\r
75 .equ    MCUCR   =$35\r
76 .equ    MCUSR   =$34            ; For compatibility, \r
77 .equ    MCUCSR  =$34            ; keep both names until further \r
78 .equ    TCCR0   =$33\r
79 .equ    TCNT0   =$32\r
80 .equ    OCR0    =$31\r
81 .equ    SFIOR   =$30\r
82 .equ    TCCR1A  =$2f\r
83 .equ    TCCR1B  =$2e\r
84 .equ    TCNT1H  =$2d\r
85 .equ    TCNT1L  =$2c\r
86 .equ    OCR1AH  =$2b\r
87 .equ    OCR1AL  =$2a\r
88 .equ    OCR1BH  =$29\r
89 .equ    OCR1BL  =$28\r
90 .equ    TCCR2   =$27\r
91 .equ    ASSR    =$26\r
92 .equ    ICR1H   =$25\r
93 .equ    ICR1L   =$24\r
94 .equ    TCNT2   =$23\r
95 .equ    OCR2    =$22\r
96 .equ    WDTCR   =$21\r
97 .equ    UBRRHI  =$20            ; Old ATmega161\r
98 .equ    UCSR0C  =$20            ; Note! UCSR0C equals UBRR0H\r
99 .equ    UBRR0H  =$20            ; Note! UCSR0C equals UBRR0H            \r
100 .equ    EEARH   =$1f\r
101 .equ    EEARL   =$1e\r
102 .equ    EEDR    =$1d\r
103 .equ    EECR    =$1c\r
104 .equ    PORTA   =$1b\r
105 .equ    DDRA    =$1a\r
106 .equ    PINA    =$19\r
107 .equ    PORTB   =$18\r
108 .equ    DDRB    =$17\r
109 .equ    PINB    =$16\r
110 .equ    PORTC   =$15\r
111 .equ    DDRC    =$14\r
112 .equ    PINC    =$13\r
113 .equ    PORTD   =$12\r
114 .equ    DDRD    =$11\r
115 .equ    PIND    =$10\r
116 .equ    SPDR    =$0f\r
117 .equ    SPSR    =$0e\r
118 .equ    SPCR    =$0d\r
119 .equ    UDR0    =$0c\r
120 .equ    UDR             =$0c            ;for compatibility with s8515\r
121 .equ    UCSR0A  =$0b\r
122 .equ    USR             =$0b            ;for compatibility with s8515\r
123 .equ    UCSR0B  =$0a\r
124 .equ    UCR             =$0a            ;for compatibility with s8515\r
125 .equ    UBRR0   =$09            ;Old mega161\r
126 .equ    UBRR0L  =$09    \r
127 .equ    UBRR    =$09            ;for compatibility with s8515\r
128 .equ    ACSR    =$08\r
129 .equ    PORTE   =$07\r
130 .equ    DDRE    =$06\r
131 .equ    PINE    =$05\r
132 .equ    OSCCAL  =$04            ; New\r
133 .equ    UDR1    =$03\r
134 .equ    UCSR1A  =$02\r
135 .equ    UCSR1B  =$01\r
136 .equ    UBRR1   =$00            ;Old mega161\r
137 .equ    UBRR1L  =$00\r
138 \r
139 ;***** Bit Definitions\r
140 ;TCCR3A\r
141 .equ    COM3A1  =7\r
142 .equ    COM3A0  =6\r
143 .equ    COM3B1  =5\r
144 .equ    COM3B0  =4\r
145 .equ    FOC3A   =3\r
146 .equ    FOC3B   =2\r
147 .equ    WGM31   =1\r
148 .equ    WGM30   =0\r
149 \r
150 ;TCCR3A\r
151 .equ    ICNC3   =7\r
152 .equ    ICES3   =6\r
153 .equ    WGM33   =4\r
154 .equ    WGM32   =3\r
155 .equ    CS32    =2\r
156 .equ    CS31    =1\r
157 .equ    CS30    =0\r
158 \r
159 ;ETIMSK\r
160 .equ    TICIE3  =5\r
161 .equ    OCIE3A  =4\r
162 .equ    OCIE3B  =3\r
163 .equ    TOIE3   =2\r
164                                          \r
165 ;ETIFR\r
166 .equ    ICF3    =5\r
167 .equ    OCF3A   =4\r
168 .equ    OCF3B   =3\r
169 .equ    TOV3    =2\r
170 \r
171 ;PCMSK1\r
172 .equ    PCINT15 =7\r
173 .equ    PCINT14 =6\r
174 .equ    PCINT13 =5\r
175 .equ    PCINT12 =4      \r
176 .equ    PCINT11 =3\r
177 .equ    PCINT10 =2      \r
178 .equ    PCINT9  =1\r
179 .equ    PCINT8  =0\r
180         \r
181 ;PCMSK1\r
182 .equ    PCINT7  =7\r
183 .equ    PCINT6  =6\r
184 .equ    PCINT5  =5\r
185 .equ    PCINT4  =4      \r
186 .equ    PCINT3  =3\r
187 .equ    PCINT2  =2      \r
188 .equ    PCINT1  =1\r
189 .equ    PCINT0  =0\r
190 \r
191 ;CLKPR\r
192 .equ    CLKPCE  =7\r
193 .equ    CLKPS3  =3\r
194 .equ    CLKPS2  =2      \r
195 .equ    CLKPS1  =1\r
196 .equ    CLKPS0  =0\r
197                         \r
198 ;GIMSK\r
199 .equ    INT1    =7\r
200 .equ    INT0    =6\r
201 .equ    INT2    =5\r
202 .equ    PCIE1   =4\r
203 .equ    PCIE0   =3              \r
204 .equ    IVSEL   =1              ; Interrupt vector select\r
205 .equ    IVCE    =0              ; Interrupt vector change enable\r
206         \r
207 ;GIFR\r
208 .equ    INTF1   =7\r
209 .equ    INTF0   =6\r
210 .equ    INTF2   =5\r
211 .equ    PCIF1   =4\r
212 .equ    PCIF0   =3      \r
213         \r
214         \r
215 ;TIMSK\r
216 .equ    TOIE1   =7\r
217 .equ    OCIE1A  =6\r
218 .equ    OCIE1B  =5\r
219 .equ    OCIE2   =4\r
220 .equ    TICIE1  =3\r
221 .equ    TOIE2   =2\r
222 .equ    TOIE0   =1\r
223 .equ    OCIE0   =0\r
224 \r
225 ;TIFR\r
226 .equ    TOV1    =7\r
227 .equ    OCF1A   =6\r
228 .equ    OCF1B   =5\r
229 .equ    OCF2    =4\r
230 .equ    ICF1    =3\r
231 .equ    TOV2    =2\r
232 .equ    TOV0    =1\r
233 .equ    OCF0    =0\r
234 \r
235 ;SPMCR\r
236 .equ    SPMIE   =7\r
237 .equ    RWWSB   =6\r
238 .equ    ASB     =6                      ; old\r
239 .equ    RWWSRE  =4\r
240 .equ    ASRE    =4              ; old\r
241 .equ    BLBSET  =3\r
242 .equ    PGWRT   =2\r
243 .equ    PGERS   =1\r
244 .equ    SPMEN   =0\r
245 \r
246 ;EMCUCR\r
247 .equ    SM0     =7\r
248 .equ    SRL2    =6\r
249 .equ    SRL1    =5\r
250 .equ    SRL0    =4\r
251 .equ    SRW01   =3\r
252 .equ    SRW00   =2\r
253 .equ    SRW11   =1\r
254 .equ    ISC2    =0\r
255 \r
256 ;MCUCR\r
257 .equ    SRE             =7\r
258 .equ    SRW             =6              ;for compatibility with s8515\r
259 .equ    SRW10   =6\r
260 .equ    SE              =5\r
261 .equ    SM              =4              ;for compatibility with s8515\r
262 .equ    SM1             =4\r
263 .equ    ISC11   =3\r
264 .equ    ISC10   =2\r
265 .equ    ISC01   =1\r
266 .equ    ISC00   =0\r
267 \r
268 ;MCUSR\r
269 .equ    JTD     =7      \r
270 .equ    SM2     =5      \r
271 .equ    JTRF    =4      \r
272 .equ    WDRF    =3\r
273 .equ    BORF    =2\r
274 .equ    EXTRF   =1\r
275 .equ    PORF    =0\r
276 \r
277 ;TCCR0\r
278 .equ    FOC0    =7\r
279 .equ    WGM00   =6\r
280 .equ    PWM0    =6              ; OBSOLETE! Use WGM00\r
281 .equ    COM01   =5\r
282 .equ    COM00   =4\r
283 .equ    WGM01   =3\r
284 .equ    CTC0    =3              ; OBSOLETE! Use WGM01\r
285 .equ    CS02    =2\r
286 .equ    CS01    =1\r
287 .equ    CS00    =0\r
288 \r
289 ;SFIOR\r
290 .equ    TSM             = 7\r
291 .equ    XMBK    = 6             ; Added for Mega162\r
292 .equ    XMM2    = 5\r
293 .equ    XMM1    = 4\r
294 .equ    XMM0    = 3\r
295 .equ    PUD             = 2\r
296 .equ    PSR2    = 1\r
297 .equ    PSR10   = 0             ; Note: The prescaler reset is shared\r
298                                                 ; between timer 0 and 1.\r
299 .equ    PSR1    = 0\r
300 .equ    PSR0    = 0\r
301 \r
302 ;TCCR1A\r
303 .equ    COM1A1  =7\r
304 .equ    COM1A0  =6\r
305 .equ    COM1B1  =5\r
306 .equ    COM1B0  =4\r
307 .equ    FOC1A   =3\r
308 .equ    FOC1B   =2\r
309 .equ    PWM11   =1              ; OBSOLETE! Use WGM11\r
310 .equ    WGM11   =1\r
311 .equ    PWM10   =0              ; OBSOLETE! Use WGM10\r
312 .equ    WGM10   =0\r
313 \r
314 ;TCCR1B\r
315 .equ    ICNC1   =7\r
316 .equ    ICES1   =6\r
317 .equ    CTC11   =4              ; OBSOLETE! Use WGM13\r
318 .equ    WGM13   =4\r
319 .equ    CTC10   =3              ; OBSOLETE! Use WGM12\r
320 .equ    WGM12   =3\r
321 .equ    CTC1    =3              ; Old Mega161\r
322 .equ    CS12    =2\r
323 .equ    CS11    =1\r
324 .equ    CS10    =0\r
325 \r
326 ;TCCR2\r
327 .equ    FOC2    =7\r
328 .equ    WGM20   =6\r
329 .equ    PWM2    =6              ; OBSOLETE! Use WGM20\r
330 .equ    COM21   =5\r
331 .equ    COM20   =4\r
332 .equ    WGM21   =3\r
333 .equ    CTC2    =3              ; OBSOLETE! Use WGM21\r
334 .equ    CS22    =2\r
335 .equ    CS21    =1\r
336 .equ    CS20    =0\r
337 \r
338 ;ASSR\r
339 .equ    AS2     =3\r
340 .equ    TCN2UB  =2\r
341 .equ    OCR2UB  =1\r
342 .equ    TCR2UB  =0\r
343 \r
344 ;WDTCR\r
345 .equ    WDTOE   =4\r
346 .equ    WDCE    =4              ; Added for Mega161B\r
347 .equ    WDE     =3\r
348 .equ    WDP2    =2\r
349 .equ    WDP1    =1\r
350 .equ    WDP0    =0\r
351 \r
352 ;EECR\r
353 .equ    EERIE   =3\r
354 .equ    EEMWE   =2\r
355 .equ    EEWE    =1\r
356 .equ    EERE    =0\r
357 \r
358 ;PORTA\r
359 .equ    PORTA7  =7\r
360 .equ    PORTA6  =6\r
361 .equ    PORTA5  =5\r
362 .equ    PORTA4  =4\r
363 .equ    PORTA3  =3\r
364 .equ    PORTA2  =2\r
365 .equ    PORTA1  =1\r
366 .equ    PORTA0  =0\r
367 \r
368 ;DDRA\r
369 .equ    DDA7    =7\r
370 .equ    DDA6    =6\r
371 .equ    DDA5    =5\r
372 .equ    DDA4    =4\r
373 .equ    DDA3    =3\r
374 .equ    DDA2    =2\r
375 .equ    DDA1    =1\r
376 .equ    DDA0    =0\r
377 \r
378 ;PINA\r
379 .equ    PINA7   =7\r
380 .equ    PINA6   =6\r
381 .equ    PINA5   =5\r
382 .equ    PINA4   =4\r
383 .equ    PINA3   =3\r
384 .equ    PINA2   =2\r
385 .equ    PINA1   =1\r
386 .equ    PINA0   =0\r
387 \r
388 ;PORTB\r
389 .equ    PORTB7  =7\r
390 .equ    PORTB6  =6\r
391 .equ    PORTB5  =5\r
392 .equ    PORTB4  =4\r
393 .equ    PORTB3  =3\r
394 .equ    PORTB2  =2\r
395 .equ    PORTB1  =1\r
396 .equ    PORTB0  =0\r
397 \r
398 ;DDRB\r
399 .equ    DDB7    =7\r
400 .equ    DDB6    =6\r
401 .equ    DDB5    =5\r
402 .equ    DDB4    =4\r
403 .equ    DDB3    =3\r
404 .equ    DDB2    =2\r
405 .equ    DDB1    =1\r
406 .equ    DDB0    =0\r
407 \r
408 ;PINB\r
409 .equ    PINB7   =7\r
410 .equ    PINB6   =6\r
411 .equ    PINB5   =5\r
412 .equ    PINB4   =4\r
413 .equ    PINB3   =3\r
414 .equ    PINB2   =2\r
415 .equ    PINB1   =1\r
416 .equ    PINB0   =0\r
417 \r
418 ;PORTC\r
419 .equ    PORTC7  =7\r
420 .equ    PORTC6  =6\r
421 .equ    PORTC5  =5\r
422 .equ    PORTC4  =4\r
423 .equ    PORTC3  =3\r
424 .equ    PORTC2  =2\r
425 .equ    PORTC1  =1\r
426 .equ    PORTC0  =0\r
427 \r
428 ;DDRC\r
429 .equ    DDC7    =7\r
430 .equ    DDC6    =6\r
431 .equ    DDC5    =5\r
432 .equ    DDC4    =4\r
433 .equ    DDC3    =3\r
434 .equ    DDC2    =2\r
435 .equ    DDC1    =1\r
436 .equ    DDC0    =0\r
437 \r
438 ;PINC\r
439 .equ    PINC7   =7\r
440 .equ    PINC6   =6\r
441 .equ    PINC5   =5\r
442 .equ    PINC4   =4\r
443 .equ    PINC3   =3\r
444 .equ    PINC2   =2\r
445 .equ    PINC1   =1\r
446 .equ    PINC0   =0\r
447 \r
448 ;PORTD\r
449 .equ    PORTD7  =7\r
450 .equ    PORTD6  =6\r
451 .equ    PORTD5  =5\r
452 .equ    PORTD4  =4\r
453 .equ    PORTD3  =3\r
454 .equ    PORTD2  =2\r
455 .equ    PORTD1  =1\r
456 .equ    PORTD0  =0\r
457 \r
458 ;DDRD\r
459 .equ    DDD7    =7\r
460 .equ    DDD6    =6\r
461 .equ    DDD5    =5\r
462 .equ    DDD4    =4\r
463 .equ    DDD3    =3\r
464 .equ    DDD2    =2\r
465 .equ    DDD1    =1\r
466 .equ    DDD0    =0\r
467 \r
468 ;PIND\r
469 .equ    PIND7   =7\r
470 .equ    PIND6   =6\r
471 .equ    PIND5   =5\r
472 .equ    PIND4   =4\r
473 .equ    PIND3   =3\r
474 .equ    PIND2   =2\r
475 .equ    PIND1   =1\r
476 .equ    PIND0   =0\r
477 \r
478 ;PORTE\r
479 .equ    PORTE2  =2\r
480 .equ    PORTE1  =1\r
481 .equ    PORTE0  =0\r
482 \r
483 ;DDRE\r
484 .equ    DDE2    =2\r
485 .equ    DDE1    =1\r
486 .equ    DDE0    =0\r
487 \r
488 ;PINE\r
489 .equ    PINE2   =2\r
490 .equ    PINE1   =1\r
491 .equ    PINE0   =0\r
492 \r
493 ;USR (for compatibility with s8515)\r
494 .equ    RXC             =7\r
495 .equ    TXC             =6\r
496 .equ    UDRE    =5\r
497 .equ    FE              =4\r
498 .equ    OR              =3\r
499 .equ    U2X             =1\r
500 \r
501 ;UCSR0A\r
502 .equ    RXC0    =7\r
503 .equ    TXC0    =6\r
504 .equ    UDRE0   =5\r
505 .equ    FE0             =4\r
506 .equ    OR0             =3              ; Old name kept for compatibilty\r
507 .equ    DOR0    =3\r
508 .equ    PE0             =2              ; New\r
509 .equ    U2X0    =1\r
510 .equ    MPCM0   =0\r
511 \r
512 ;UCSR1A\r
513 .equ    RXC1    =7\r
514 .equ    TXC1    =6\r
515 .equ    UDRE1   =5\r
516 .equ    FE1             =4\r
517 .equ    OR1             =3              ; Old name kept for compatibilty\r
518 .equ    DOR1    =3\r
519 .equ    PE1             =2              ; New\r
520 .equ    U2X1    =1\r
521 .equ    MPCM1   =0\r
522 \r
523 ;SPCR\r
524 .equ    SPIE    =7\r
525 .equ    SPE             =6\r
526 .equ    DORD    =5\r
527 .equ    MSTR    =4\r
528 .equ    CPOL    =3\r
529 .equ    CPHA    =2\r
530 .equ    SPR1    =1\r
531 .equ    SPR0    =0\r
532 \r
533 ;SPSR\r
534 .equ    SPIF    =7\r
535 .equ    WCOL    =6\r
536 .equ    SPI2X   =0\r
537 \r
538 ;UCR (for compatibility with s8515)\r
539 .equ    RXCIE   =7\r
540 .equ    TXCIE   =6\r
541 .equ    UDRIE   =5\r
542 .equ    RXEN    =4\r
543 .equ    TXEN    =3\r
544 .equ    CHR9    =2              ; Old name kept for compatibilty\r
545 .equ    UCSZ2   =2\r
546 .equ    RXB8    =1\r
547 .equ    TXB8    =0\r
548 \r
549 ; UCSR0B\r
550 .equ    RXCIE0  =7\r
551 .equ    TXCIE0  =6\r
552 .equ    UDRIE0  =5\r
553 .equ    RXEN0   =4\r
554 .equ    TXEN0   =3\r
555 .equ    CHR90   =2              ; Old name kept for compatibilty\r
556 .equ    UCSZ02  =2\r
557 .equ    RXB80   =1\r
558 .equ    TXB80   =0\r
559 \r
560 ; UCSR1B\r
561 .equ    RXCIE1  =7\r
562 .equ    TXCIE1  =6\r
563 .equ    UDRIE1  =5\r
564 .equ    RXEN1   =4\r
565 .equ    TXEN1   =3\r
566 .equ    CHR91   =2              ; Old name kept for compatibilty\r
567 .equ    UCSZ12  =2\r
568 .equ    RXB81   =1\r
569 .equ    TXB81   =0\r
570         \r
571 ;UCSR0C                                 New \r
572 .equ    URSEL0  =7\r
573 .equ    UMSEL0  =6\r
574 .equ    UPM01   =5\r
575 .equ    UPM00   =4\r
576 .equ    USBS0   =3\r
577 .equ    UCSZ01  =2\r
578 .equ    UCSZ00  =1\r
579 .equ    UCPOL0  =0\r
580 \r
581 ;UCSR1C                                 New \r
582 .equ    URSEL1  =7\r
583 .equ    UMSEL1  =6\r
584 .equ    UPM11   =5\r
585 .equ    UPM10   =4\r
586 .equ    USBS1   =3\r
587 .equ    UCSZ11  =2\r
588 .equ    UCSZ10  =1\r
589 .equ    UCPOL1  =0\r
590         \r
591 \r
592 ;ACSR\r
593 .equ    ACD             =7\r
594 .equ    AINBG   =6              ; Old mega161\r
595 .equ    ACBG    =6      \r
596 .equ    ACO             =5\r
597 .equ    ACI             =4\r
598 .equ    ACIE    =3\r
599 .equ    ACIC    =2\r
600 .equ    ACIS1   =1\r
601 .equ    ACIS0   =0\r
602 \r
603 \r
604 \r
605 ; Boot loader Lock bit\r
606 .equ    BLB12   =5\r
607 .equ    BLB11   =4\r
608 .equ    BLB02   =3\r
609 .equ    BLB01   =2\r
610 \r
611 ;*****************************************************************************\r
612 ; CPU Register Declarations\r
613 ;*****************************************************************************\r
614 \r
615 .def    XL              = r26           ; X pointer low\r
616 .def    XH              = r27           ; X pointer high\r
617 .def    YL              = r28           ; Y pointer low\r
618 .def    YH              = r29           ; Y pointer high\r
619 .def    ZL              = r30           ; Z pointer low\r
620 .def    ZH              = r31           ; Z pointer high\r
621 \r
622 \r
623 ;*****************************************************************************\r
624 ; Data Memory Declarations\r
625 ;*****************************************************************************\r
626 \r
627 .equ    RAMEND  = $488          ; Highest internal data memory (SRAM) address.\r
628                                                         ;(1k RAM + IO + REG)\r
629 .equ    EEPROMEND = $01ff   ; Highest EEPROM address.\r
630                                 ;(512 byte)\r
631 ;*****************************************************************************\r
632 ; Program Memory Declarations\r
633 ;*****************************************************************************\r
634 \r
635 .equ    FLASHEND = $1FFF        ;  Highest program memory (flash) address\r
636                                 ; (When addressed as 16 bit words)\r
637                                                         ; ( 8k words , 16k byte ) \r
638                 \r
639 ;**** Boot Vectors ****\r
640                                            ;  byte groups\r
641                                          ;   /--\/--\/--\ \r
642 .equ    SMALLBOOTSTART  =0b1111110000000  ;($1F80) smallest boot block is 256B\r
643 .equ    SECONDBOOTSTART =0b1111100000000  ;($1F00) second boot block size is 512B\r
644 .equ    THIRDBOOTSTART  =0b1111000000000  ;($1E00) third boot block size is 1KB\r
645 .equ    LARGEBOOTSTART  =0b1110000000000  ;($1C00) largest boot block is 2KB\r
646 .equ    BOOTSTART       =THIRDBOOTSTART  ;OBSOLETE!!! kept for compatibility\r
647 .equ    PAGESIZE        =64     ;number of WORDS in a page\r
648 \r
649 \r
650 \r
651 \r
652 .equ    INT0addr                = $002  ;       External Interrupt Request 0\r
653 .equ    INT1addr                = $004  ;       External Interrupt Request 1\r
654 .equ    INT2addr                = $006  ;       External Interrupt Request 2\r
655 .equ    PCINT0addr              = $008  ;       Pin Change Interrupt Request 0\r
656 .equ    PCINT1addr              = $00A\r
657 .equ    TIMER3CAPTaddr  = $00C\r
658 .equ    TIMER3COMPAaddr = $00E\r
659 .equ    TIMER3COMPBaddr = $010\r
660 .equ    TIMER3OVFaddr   = $012\r
661 .equ    TIMER2COMPaddr  = $014\r
662 .equ    TIMER2OVFaddr   = $016\r
663 .equ    TIMER1CAPTaddr  = $018\r
664 .equ    TIMER1COMPAaddr = $01A\r
665 .equ    TIMER1COMPBaddr = $01C\r
666 .equ    TIMER1OVFaddr   = $01E\r
667 .equ    TIMER0COMPaddr  = $020\r
668 .equ    TIMER0OVFaddr   = $022\r
669 .equ    SPISTCaddr              = $024\r
670 .equ    USART0RXCaddr   = $026\r
671 .equ    USART1RXCaddr   = $028\r
672 .equ    USART0UDREaddr  = $02A\r
673 .equ    USART1UDREaddr  = $02C\r
674 .equ    USART0TXCaddr   = $02E\r
675 .equ    USART1TXCaddr   = $030\r
676 .equ    EE_RDYaddr              = $032\r
677 .equ    ANA_CMPaddr             = $034\r
678 .equ    SPM_RDYaddr             = $036\r