* Fixed svn:eol-style and svn:keywords properties
[fw/sdcc] / device / include / pic16 / pic18f2620.h
1 /* 
2  * pic18f2620.h - PIC18F2620 Device Library Header
3  * 
4  * This file is part of the GNU PIC Library.
5  * 
6  * September, 2006
7  * Added modifications by
8  *     Gary Plumbridge <gary AT phodex.net>
9  *
10  * August, 2006
11  * Copied from 18f2550 and modified for 18f2620 by
12  *     Anton Strobl <a.strobl AT aws-it.at>
13  *
14  * May, 2005
15  * The GNU PIC Library is maintained by
16  *     Raphael Neider <rneider AT web.de>
17  * 
18  * originally designed by
19  *     Vangelis Rokas <vrokas AT otenet.gr>
20  * 
21  * 
22  * $Id$
23  * 
24  */
25
26 #ifndef __PIC18F2620_H__
27 #define __PIC18F2620_H__ 1
28
29 extern __sfr __at (0xF80) PORTA;
30 typedef union {
31         struct {
32                 unsigned RA0            : 1;
33                 unsigned RA1            : 1;
34                 unsigned RA2            : 1;
35                 unsigned RA3            : 1;
36                 unsigned RA4            : 1;
37                 unsigned RA5            : 1;
38                 unsigned RA6            : 1;
39                 unsigned RA7            : 1;
40         };
41         struct {
42                 unsigned RA             : 8;
43         };
44         /* aliases */
45         struct {
46                 unsigned                :1;
47                 unsigned                :1;
48                 unsigned                :1;
49                 unsigned                :1;
50                 unsigned C1OUT          :1;
51                 unsigned C2OUT          :1;
52                 unsigned OSC2           :1;
53                 unsigned OSC1           :1;
54         };
55         struct {
56                 unsigned AN0            :1;
57                 unsigned AN1            :1;
58                 unsigned AN2            :1;
59                 unsigned AN3            :1;
60                 unsigned T0CKI          :1;
61                 unsigned AN4            :1;
62                 unsigned CLKO           :1;
63                 unsigned CLKI           :1;
64         };
65     struct {
66         unsigned            :1;
67         unsigned            :1;
68         unsigned VREF_N     :1;
69         unsigned VREF_P     :1;
70         unsigned            :1;
71         unsigned NOT_SS     :1;
72         unsigned            :1;
73         unsigned            :1;
74     };
75     struct {
76         unsigned            :1;
77         unsigned            :1;
78         unsigned            :1;
79         unsigned            :1;
80         unsigned            :1;
81         unsigned SS         :1;
82         unsigned            :1;
83         unsigned            :1;
84     };
85     struct {
86         unsigned            :1;
87         unsigned            :1;
88         unsigned            :1;
89         unsigned            :1;
90         unsigned            :1;
91         unsigned HLVDIN     :1;
92         unsigned            :1;
93         unsigned            :1;
94     };
95 } __PORTA_t;
96 extern volatile __PORTA_t __at (0xF80) PORTAbits;
97
98 extern __sfr __at (0xF81) PORTB;
99 typedef union {
100         struct {
101                 unsigned RB0            : 1;
102                 unsigned RB1            : 1;
103                 unsigned RB2            : 1;
104                 unsigned RB3            : 1;
105                 unsigned RB4            : 1;
106                 unsigned RB5            : 1;
107                 unsigned RB6            : 1;
108                 unsigned RB7            : 1;
109         };
110         struct {
111                 unsigned RB             : 8;
112         };
113         /* aliases */
114         struct {
115                 unsigned INT0           :1;
116                 unsigned INT1           :1;
117                 unsigned INT2           :1;
118                 unsigned CCP2           :1;
119                 unsigned KBI0           :1;
120                 unsigned KBI1           :1;
121                 unsigned KBI2           :1;
122                 unsigned KBI3           :1;
123         };
124     struct {
125                 unsigned AN12           :1;
126                 unsigned AN10           :1;
127                 unsigned AN8            :1;
128                 unsigned AN9            :1;
129                 unsigned AN11           :1;
130                 unsigned PGM            :1;
131                 unsigned PGC            :1;
132                 unsigned PGD            :1;
133     };
134         struct {
135                 unsigned FLT0           :1;
136                 unsigned                :7;
137         };
138 } __PORTB_t;
139 extern volatile __PORTB_t __at (0xF81) PORTBbits;
140
141 extern __sfr __at (0xF82) PORTC;
142 typedef union {
143         struct {
144                 unsigned RC0            : 1;
145                 unsigned RC1            : 1;
146                 unsigned RC2            : 1;
147                 unsigned RC3            : 1;
148                 unsigned RC4            : 1;
149                 unsigned RC5            : 1;
150                 unsigned RC6            : 1;
151                 unsigned RC7            : 1;
152         };
153         struct {
154                 unsigned RC             : 8;
155         };
156         /* aliases */
157         struct {
158                 unsigned T1OSO          :1;
159                 unsigned T1OSI          :1;
160                 unsigned CCP1           :1;
161                 unsigned SCK            :1;
162                 unsigned SDI            :1;
163                 unsigned SDO            :1;
164                 unsigned TX             :1;
165                 unsigned RX             :1;
166         };
167         struct {
168                 unsigned T3CKI          :1;
169                 unsigned CCP2           :1;
170                 unsigned P1A            :1;
171                 unsigned SCL            :1;
172                 unsigned SDA            :1;
173                 unsigned                :1;
174                 unsigned CK             :1;
175                 unsigned DTC            :1;   /* DT might be a reserved word in ASM */
176                 unsigned                :1;
177                 unsigned                :1;
178         };
179         struct {
180                 unsigned T1CKI          :1;
181                 unsigned                :1;
182                 unsigned                :1;
183                 unsigned                :1;
184                 unsigned                :1;
185                 unsigned                :1;
186                 unsigned                :1;
187                 unsigned                :1;
188         };
189         struct {
190                 unsigned T13CKI         :1;
191                 unsigned                :1;
192                 unsigned                :1;
193                 unsigned                :1;
194                 unsigned                :1;
195                 unsigned                :1;
196                 unsigned                :1;
197                 unsigned                :1;
198         };
199 } __PORTC_t;
200 extern volatile __PORTC_t __at (0xF82) PORTCbits;
201
202 extern __sfr __at (0xF83) PORTD;
203 typedef union {
204         struct {
205                 unsigned RD0            : 1;
206                 unsigned RD1            : 1;
207                 unsigned RD2            : 1;
208                 unsigned RD3            : 1;
209                 unsigned RD4            : 1;
210                 unsigned RD5            : 1;
211                 unsigned RD6            : 1;
212                 unsigned RD7            : 1;
213         };
214         struct {
215                 unsigned RD             : 8;
216         };
217         /* aliases */
218         struct {
219                 unsigned PSP0           :1;
220                 unsigned PSP1           :1;
221                 unsigned PSP2           :1;
222                 unsigned PSP3           :1;
223                 unsigned PSP4           :1;
224                 unsigned PSP5           :1;
225                 unsigned PSP6           :1;
226                 unsigned PSP7           :1;
227         };
228         struct {
229                 unsigned                :1;
230                 unsigned                :1;
231                 unsigned                :1;
232                 unsigned                :1;
233                 unsigned                :1;
234                 unsigned P1B            :1;
235                 unsigned P1C            :1;
236                 unsigned P1D            :1;
237         };
238 } __PORTD_t;
239 extern volatile __PORTD_t __at (0xF83) PORTDbits;
240
241 extern __sfr __at (0xF84) PORTE;
242 typedef union {
243         struct {
244                 unsigned RE0            : 1;
245                 unsigned RE1            : 1;
246                 unsigned RE2            : 1;
247                 unsigned RE3            : 1;
248                 unsigned                : 1;
249                 unsigned                : 1;
250                 unsigned                : 1;
251                 unsigned                : 1;
252         };
253         struct {
254                 unsigned RE             : 8;
255         };
256         /* aliases */
257         struct {
258                 unsigned AN5            :1;
259                 unsigned AN6            :1;
260                 unsigned AN7            :1;
261                 unsigned VPP            :1;
262                 unsigned                :1;
263                 unsigned                :1;
264                 unsigned                :1;
265                 unsigned                :1;
266         };
267         struct {
268                 unsigned RD             :1;
269                 unsigned WR             :1;
270                 unsigned CS             :1;
271                 unsigned MCLR           :1;
272                 unsigned                :1;
273                 unsigned                :1;
274                 unsigned                :1;
275                 unsigned                :1;
276         };
277 } __PORTE_t;
278 extern volatile __PORTE_t __at (0xF84) PORTEbits;
279
280 extern __sfr __at (0xF89) LATA;
281 typedef union {
282         struct {
283                 unsigned LATA0          : 1;
284                 unsigned LATA1          : 1;
285                 unsigned LATA2          : 1;
286                 unsigned LATA3          : 1;
287                 unsigned LATA4          : 1;
288                 unsigned LATA5          : 1;
289                 unsigned LATA6          : 1;
290                 unsigned LATA7          : 1;
291         };
292 } __LATA_t;
293 extern volatile __LATA_t __at (0xF89) LATAbits;
294
295 extern __sfr __at (0xF8A) LATB;
296 typedef union {
297         struct {
298                 unsigned LATB0          : 1;
299                 unsigned LATB1          : 1;
300                 unsigned LATB2          : 1;
301                 unsigned LATB3          : 1;
302                 unsigned LATB4          : 1;
303                 unsigned LATB5          : 1;
304                 unsigned LATB6          : 1;
305                 unsigned LATB7          : 1;
306         };
307 } __LATB_t;
308 extern volatile __LATB_t __at (0xF8A) LATBbits;
309
310 extern __sfr __at (0xF8B) LATC;
311 typedef union {
312         struct {
313                 unsigned LATC0          : 1;
314                 unsigned LATC1          : 1;
315                 unsigned LATC2          : 1;
316                 unsigned LATC3          : 1;
317                 unsigned LATC4          : 1;
318                 unsigned LATC5      : 1;
319                 unsigned LATC6          : 1;
320                 unsigned LATC7          : 1;
321         };
322 } __LATC_t;
323 extern volatile __LATC_t __at (0xF8B) LATCbits;
324
325 extern __sfr __at (0xF8C) LATD;
326 typedef union {
327         struct {
328                 unsigned LATD0          : 1;
329                 unsigned LATD1          : 1;
330                 unsigned LATD2          : 1;
331                 unsigned LATD3          : 1;
332                 unsigned LATD4          : 1;
333                 unsigned LATD5          : 1;
334                 unsigned LATD6          : 1;
335                 unsigned LATD7          : 1;
336         };
337 } __LATD_t;
338 extern volatile __LATD_t __at (0xF8C) LATDbits;
339
340 extern __sfr __at (0xF8D) LATE;
341 typedef union {
342         struct {
343                 unsigned LATE0          : 1;
344                 unsigned LATE1          : 1;
345                 unsigned LATE2          : 1;
346                 unsigned                : 1;
347                 unsigned                : 1;
348                 unsigned                : 1;
349                 unsigned                : 1;
350                 unsigned                : 1;
351         };
352 } __LATE_t;
353 extern volatile __LATE_t __at (0xF8D) LATEbits;
354
355 extern __sfr __at (0xF92) TRISA;
356 typedef union {
357         struct {
358                 unsigned TRISA0         : 1;
359                 unsigned TRISA1         : 1;
360                 unsigned TRISA2         : 1;
361                 unsigned TRISA3         : 1;
362                 unsigned TRISA4         : 1;
363                 unsigned TRISA5         : 1;
364                 unsigned TRISA6         : 1;
365                 unsigned TRISA7                 : 1;
366         };
367 } __TRISA_t;
368 extern volatile __TRISA_t __at (0xF92) TRISAbits;
369
370 extern __sfr __at (0xF93) TRISB;
371 typedef union {
372         struct {
373                 unsigned TRISB0         : 1;
374                 unsigned TRISB1         : 1;
375                 unsigned TRISB2         : 1;
376                 unsigned TRISB3         : 1;
377                 unsigned TRISB4         : 1;
378                 unsigned TRISB5         : 1;
379                 unsigned TRISB6         : 1;
380                 unsigned TRISB7         : 1;
381         };
382 } __TRISB_t;
383 extern volatile __TRISB_t __at (0xF93) TRISBbits;
384
385 extern __sfr __at (0xF94) TRISC;
386 typedef union {
387         struct {
388                 unsigned TRISC0         : 1;
389                 unsigned TRISC1         : 1;
390                 unsigned TRISC2         : 1;
391                 unsigned TRISC3     : 1;
392                 unsigned TRISC4     : 1;
393                 unsigned TRISC5     : 1;
394                 unsigned TRISC6         : 1;
395                 unsigned TRISC7         : 1;
396         };
397 } __TRISC_t;
398 extern volatile __TRISC_t __at (0xF94) TRISCbits;
399
400 extern __sfr __at (0xF95) TRISD;
401 typedef union {
402         struct {
403                 unsigned TRISC0         : 1;
404                 unsigned TRISC1         : 1;
405                 unsigned TRISC2         : 1;
406                 unsigned TRISC3         : 1;
407                 unsigned TRISC4         : 1;
408                 unsigned TRISC5         : 1;
409                 unsigned TRISC6         : 1;
410                 unsigned TRISC7         : 1;
411         };
412 } __TRISD_t;
413 extern volatile __TRISD_t __at (0xF95) TRISDbits;
414
415 extern __sfr __at (0xF96) TRISE;
416 typedef union {
417         struct {
418                 unsigned TRISE0         : 1;
419                 unsigned TRISE1         : 1;
420                 unsigned TRISE2         : 1;
421                 unsigned                : 1;
422                 unsigned PSPMODE        : 1;
423                 unsigned IBOV           : 1;
424                 unsigned OBF            : 1;
425                 unsigned IBF            : 1;
426         };
427 } __TRISE_t;
428 extern volatile __TRISE_t __at (0xF96) TRISEbits;
429
430 extern __sfr __at (0xF9B) OSCTUNE;
431 typedef union {
432     struct {
433         unsigned TUN        : 5;
434         unsigned            : 1;
435         unsigned PLLEN      : 1;
436         unsigned INTSRC     : 1;
437     };
438 } __OSCTUNE_t;
439 extern volatile __OSCTUNE_t __at (0xF9B) OSCTUNEbits;
440
441 extern __sfr __at (0xF9D) PIE1;
442 typedef union {
443         struct {
444                 unsigned TMR1IE         : 1;
445                 unsigned TMR2IE         : 1;
446                 unsigned CCP1IE         : 1;
447                 unsigned SSPIE          : 1;
448                 unsigned TXIE           : 1;
449                 unsigned RCIE           : 1;
450                 unsigned ADIE           : 1;
451                 unsigned PSPIE          : 1;
452         };
453 } __PIE1_t;
454 extern volatile __PIE1_t __at (0xF9D) PIE1bits;
455
456 extern __sfr __at (0xF9E) PIR1;
457 typedef union {
458         struct {
459                 unsigned TMR1IF         : 1;
460                 unsigned TMR2IF         : 1;
461                 unsigned CCP1IF         : 1;
462                 unsigned SSPIF          : 1;
463                 unsigned TXIF           : 1;
464                 unsigned RCIF           : 1;
465                 unsigned ADIF           : 1;
466                 unsigned PSPIF          : 1;
467         };
468 } __PIR1_t;
469 extern volatile __PIR1_t __at (0xF9E) PIR1bits;
470
471 extern __sfr __at (0xF9F) IPR1;
472 typedef union {
473         struct {
474                 unsigned TMR1IP         : 1;
475                 unsigned TMR2IP         : 1;
476                 unsigned CCP1IP         : 1;
477                 unsigned SSPIP          : 1;
478                 unsigned TXIP           : 1;
479                 unsigned RCIP           : 1;
480                 unsigned ADIP           : 1;
481                 unsigned PSPIP          : 1;
482         };
483 } __IPR1_t;
484 extern volatile __IPR1_t __at (0xF9F) IPR1bits;
485
486 extern __sfr __at (0xFA0) PIE2;
487 typedef union {
488         struct {
489                 unsigned CCP2IE         : 1;
490                 unsigned TMR3IE         : 1;
491                 unsigned HLVDIE         : 1;
492                 unsigned BCLIE          : 1;
493                 unsigned EEIE           : 1;
494                 unsigned USBIE          : 1;
495                 unsigned CMIE           : 1;
496                 unsigned OSCFIE         : 1;
497         };
498 } __PIE2_t;
499 extern volatile __PIE2_t __at (0xFA0) PIE2bits;
500
501 extern __sfr __at (0xFA1) PIR2;
502 typedef union {
503         struct {
504                 unsigned CCP2IF         : 1;
505                 unsigned TMR3IF         : 1;
506                 unsigned HLVDIF         : 1;
507                 unsigned BCLIF          : 1;
508                 unsigned EEIF           : 1;
509                 unsigned USBIF          : 1;
510                 unsigned CMIF           : 1;
511                 unsigned OSCFIF         : 1;
512         };
513 } __PIR2_t;
514 extern volatile __PIR2_t __at (0xFA1) PIR2bits;
515
516 extern __sfr __at (0xFA2) IPR2;
517 typedef union {
518         struct {
519                 unsigned CCP2IP         : 1;
520                 unsigned TMR3IP         : 1;
521                 unsigned HLVDIP         : 1;
522                 unsigned BCLIP          : 1;
523                 unsigned EEIP           : 1;
524                 unsigned USBIP          : 1;
525                 unsigned CMIP           : 1;
526                 unsigned OSCFIP         : 1;
527         };
528 } __IPR2_t;
529 extern volatile __IPR2_t __at (0xFA2) IPR2bits;
530
531 extern __sfr __at (0xFA6) EECON1;
532 typedef union {
533         struct {
534                 unsigned RD             : 1;
535                 unsigned WR             : 1;
536                 unsigned WREN           : 1;
537                 unsigned WRERR          : 1;
538                 unsigned FREE           : 1;
539                 unsigned                : 1;
540                 unsigned CFGS           : 1;
541                 unsigned EEPGD          : 1;
542         };
543 } __EECON1_t;
544 extern volatile __EECON1_t __at (0xFA6) EECON1bits;
545
546 extern __sfr __at (0xFA7) EECON2;
547
548 extern __sfr __at (0xFA8) EEDATA;
549
550 extern __sfr __at (0xFA9) EEADR;
551
552 extern __sfr __at (0xFAA) EEADRH;
553
554 extern __sfr __at (0xFAB) RCSTA;
555 typedef union {
556         struct {
557                 unsigned RX9D           : 1;
558                 unsigned OERR           : 1;
559                 unsigned FERR           : 1;
560                 unsigned ADDEN          : 1;
561                 unsigned CREN           : 1;
562                 unsigned SREN           : 1;
563                 unsigned RX9            : 1;
564                 unsigned SPEN           : 1;
565         };
566 } __RCSTA_t;
567 extern volatile __RCSTA_t __at (0xFAB) RCSTAbits;
568
569 extern __sfr __at (0xFAC) TXSTA;
570 typedef union {
571         struct {
572                 unsigned TX9D           : 1;
573                 unsigned TRMT           : 1;
574                 unsigned BRGH           : 1;
575                 unsigned SENDB          : 1;
576                 unsigned SYNC           : 1;
577                 unsigned TXEN           : 1;
578                 unsigned TX9            : 1;
579                 unsigned CSRC           : 1;
580         };
581 } __TXSTA_t;
582 extern volatile __TXSTA_t __at (0xFAC) TXSTAbits;
583
584 extern __sfr __at (0xFAD) TXREG;
585
586 extern __sfr __at (0xFAE) RCREG;
587
588 extern __sfr __at (0xFAF) SPBRG;
589
590 extern __sfr __at (0xFB0) SPBRGH;
591
592 extern __sfr __at (0xFB1) T3CON;
593 typedef union {
594         struct {
595                 unsigned TMR3ON         : 1;
596                 unsigned TMR3CS         : 1;
597                 unsigned NOT_T3SYNC     : 1;
598                 unsigned T3CCP1         : 1;
599                 unsigned T3CKPS0        : 1;
600                 unsigned T3CKPS1        : 1;
601                 unsigned T3CCP2         : 1;
602                 unsigned RD16           : 1;
603         };
604 } __T3CON_t;
605 extern volatile __T3CON_t __at (0xFB1) T3CONbits;
606
607 extern __sfr __at (0xFB2) TMR3L;
608
609 extern __sfr __at (0xFB3) TMR3H;
610
611 extern __sfr __at (0xFB4) CMCON;
612 typedef union {
613         struct {
614                 unsigned CM0            : 1;
615                 unsigned CM1            : 1;
616                 unsigned CM2            : 1;
617                 unsigned CIS            : 1;
618                 unsigned C1INV          : 1;
619                 unsigned C2INV          : 1;
620                 unsigned C1OUT          : 1;
621                 unsigned C2OUT          : 1;
622         };
623 } __CMCON_t;
624 extern volatile __CMCON_t __at (0xFB4) CMCONbits;
625
626 extern __sfr __at (0xFB5) CVRCON;
627 typedef union {
628         struct {
629                 unsigned CVR0           : 1;
630                 unsigned CVR1           : 1;
631                 unsigned CVR2           : 1;
632                 unsigned CVR3           : 1;
633                 unsigned CVRSS          : 1;
634                 unsigned CVRR           : 1;
635                 unsigned CVROE          : 1;
636                 unsigned CVREN          : 1;
637         };
638 } __CVRCON_t;
639 extern volatile __CVRCON_t __at (0xFB5) CVRCONbits;
640
641 extern __sfr __at (0xFB6) ECCP1AS;
642 typedef union {
643         struct {
644                 unsigned PSSBD0         : 1;
645                 unsigned PSSBD1         : 1;
646                 unsigned PSSAC0         : 1;
647                 unsigned PSSAC1         : 1;
648                 unsigned ECCPAS0        : 1;
649                 unsigned ECCPAS1        : 1;
650                 unsigned ECCPAS2        : 1;
651                 unsigned ECCPASE        : 1;
652         };
653 } __ECCP1AS_t;
654 extern volatile __ECCP1AS_t __at (0xFB6) ECCP1ASbits;
655
656 extern __sfr __at (0xFB7) PWM1CON;
657 typedef union {
658         struct {
659                 unsigned PDC            : 7;
660                 unsigned PRSEN          : 1;
661         };
662 } __PWM1CON_t;
663 extern volatile __PWM1CON_t __at (0xFB7) PWM1CONbits;
664
665 extern __sfr __at (0xFB8) BAUDCON;
666 typedef union {
667         struct {
668                 unsigned ABDEN          : 1;
669                 unsigned WUE            : 1;
670                 unsigned                : 1;
671                 unsigned BRG16          : 1;
672                 unsigned SCKP           : 1;
673                 unsigned                : 1;
674                 unsigned RCIDL          : 1;
675                 unsigned ABDOVF         : 1;
676         };
677 } __BAUDCON_t;
678 extern volatile __BAUDCON_t __at (0xFB8) BAUDCONbits;
679
680 extern __sfr __at (0xFBA) CCP2CON;
681 typedef union {
682         struct {
683                 unsigned CCP2M0         : 1;
684                 unsigned CCP2M1         : 1;
685                 unsigned CCP2M2         : 1;
686                 unsigned CCP2M3         : 1;
687                 unsigned DC2B0          : 1;
688                 unsigned DC2B1          : 1;
689                 unsigned                : 1;
690                 unsigned                : 1;
691         };
692 } __CCP2CON_t;
693 extern volatile __CCP2CON_t __at (0xFBA) CCP2CONbits;
694
695 extern __sfr __at (0xFBB) CCPR2L;
696
697 extern __sfr __at (0xFBC) CCPR2H;
698
699 extern __sfr __at (0xFBD) CCP1CON;
700 typedef union {
701         struct {
702                 unsigned CCP1M0         : 1;
703                 unsigned CCP1M1         : 1;
704                 unsigned CCP1M2         : 1;
705                 unsigned CCP1M3         : 1;
706                 unsigned DC1B0          : 1;
707                 unsigned DC1B1          : 1;
708                 unsigned P1M0           : 1;
709                 unsigned P1M1           : 1;
710         };
711 } __CCP1CON_t;
712 extern volatile __CCP1CON_t __at (0xFBD) CCP1CONbits;
713
714 extern __sfr __at (0xFBE) CCPR1L;
715
716 extern __sfr __at (0xFBF) CCPR1H;
717
718 extern __sfr __at (0xFC0) ADCON2;
719 typedef union {
720         struct {
721                 unsigned ADCS0          : 1;
722                 unsigned ADCS1          : 1;
723                 unsigned ADCS2          : 1;
724                 unsigned ACQT0          : 1;
725                 unsigned ACQT1          : 1;
726                 unsigned ACQT2          : 1;
727                 unsigned                : 1;
728                 unsigned ADFM           : 1;
729         };
730 } __ADCON2_t;
731 extern volatile __ADCON2_t __at (0xFC0) ADCON2bits;
732
733 extern __sfr __at (0xFC1) ADCON1;
734 typedef union {
735         struct {
736                 unsigned PCFG0          : 1;
737                 unsigned PCFG1          : 1;
738                 unsigned PCFG2          : 1;
739                 unsigned PCFG3          : 1;
740                 unsigned VCFG0          : 1;
741                 unsigned VCFG1          : 1;
742                 unsigned                : 1;
743                 unsigned                : 1;
744         };
745 } __ADCON1_t;
746 extern volatile __ADCON1_t __at (0xFC1) ADCON1bits;
747
748 extern __sfr __at (0xFC2) ADCON0;
749 typedef union {
750         struct {
751                 unsigned ADON           : 1;
752                 unsigned GO             : 1;
753                 unsigned CHS0           : 1;
754                 unsigned CHS1           : 1;
755                 unsigned CHS2           : 1;
756                 unsigned CHS3           : 1;
757                 unsigned                : 1;
758                 unsigned                : 1;
759         };
760 } __ADCON0_t;
761 extern volatile __ADCON0_t __at (0xFC2) ADCON0bits;
762
763 extern __sfr __at (0xFC3) ADRESL;
764
765 extern __sfr __at (0xFC4) ADRESH;
766
767 extern __sfr __at (0xFC5) SSPCON2;
768 typedef union {
769         struct {
770                 unsigned SEN            : 1;
771                 unsigned RSEN           : 1;
772                 unsigned PEN            : 1;
773                 unsigned RCEN           : 1;
774                 unsigned ACKEN          : 1;
775                 unsigned ACKDT          : 1;
776                 unsigned ACKSTAT        : 1;
777                 unsigned GCEN           : 1;
778         };
779 } __SSPCON2_t;
780 extern volatile __SSPCON2_t __at (0xFC5) SSPCON2bits;
781
782 extern __sfr __at (0xFC6) SSPCON1;
783 typedef union {
784         struct {
785                 unsigned SSPM0          : 1;
786                 unsigned SSPM1          : 1;
787                 unsigned SSPM2          : 1;
788                 unsigned SSPM3          : 1;
789                 unsigned CKP            : 1;
790                 unsigned SSPEN          : 1;
791                 unsigned SSPOV          : 1;
792                 unsigned WCOL           : 1;
793         };
794 } __SSPCON1_t;
795 extern volatile __SSPCON1_t __at (0xFC6) SSPCON1bits;
796
797 extern __sfr __at (0xFC7) SSPSTAT;
798 typedef union {
799         struct {
800                 unsigned BF             : 1;
801                 unsigned UA             : 1;
802                 unsigned R_W            : 1;
803                 unsigned S              : 1;
804                 unsigned P              : 1;
805                 unsigned D_A            : 1;
806                 unsigned CKE            : 1;
807                 unsigned SMP            : 1;
808         };
809 } __SSPSTAT_t;
810 extern volatile __SSPSTAT_t __at (0xFC7) SSPSTATbits;
811
812 extern __sfr __at (0xFC8) SSPADD;
813
814 extern __sfr __at (0xFC9) SSPBUF;
815
816 extern __sfr __at (0xFCA) T2CON;
817 typedef union {
818         struct {
819                 unsigned T2CKPS0        : 1;
820                 unsigned T2CKPS1        : 1;
821                 unsigned TMR2ON         : 1;
822                 unsigned TOUTPS0        : 1;
823                 unsigned TOUTPS1        : 1;
824                 unsigned TOUTPS2        : 1;
825                 unsigned TOUTPS3        : 1;
826                 unsigned                : 1;
827         };
828 } __T2CON_t;
829 extern volatile __T2CON_t __at (0xFCA) T2CONbits;
830
831 extern __sfr __at (0xFCB) PR2;
832
833 extern __sfr __at (0xFCC) TMR2;
834
835 extern __sfr __at (0xFCD) T1CON;
836 typedef union {
837         struct {
838                 unsigned TMR1ON         : 1;
839                 unsigned TMR1CS         : 1;
840                 unsigned NOT_T1SYNC     : 1;
841                 unsigned T1OSCEN        : 1;
842                 unsigned T1CKPS0        : 1;
843                 unsigned T1CKPS1        : 1;
844                 unsigned T1RUN          : 1;
845                 unsigned RD16           : 1;
846         };
847 } __T1CON_t;
848 extern volatile __T1CON_t __at (0xFCD) T1CONbits;
849
850 extern __sfr __at (0xFCE) TMR1L;
851
852 extern __sfr __at (0xFCF) TMR1H;
853
854 extern __sfr __at (0xFD0) RCON;
855 typedef union {
856         struct {
857                 unsigned BOR            : 1;
858                 unsigned POR            : 1;
859                 unsigned PD             : 1;
860                 unsigned TO             : 1;
861                 unsigned RI             : 1;
862                 unsigned                : 1;
863                 unsigned SBOREN         : 1;
864                 unsigned IPEN           : 1;
865         };
866 } __RCON_t;
867 extern volatile __RCON_t __at (0xFD0) RCONbits;
868
869 extern __sfr __at (0xFD1) WDTCON;
870 typedef union {
871         struct {
872                 unsigned SWDTEN         : 1;
873                 unsigned                : 1;
874                 unsigned                : 1;
875                 unsigned                : 1;
876                 unsigned                : 1;
877                 unsigned                : 1;
878                 unsigned                : 1;
879                 unsigned                : 1;
880         };
881 } __WDTCON_t;
882 extern volatile __WDTCON_t __at (0xFD1) WDTCONbits;
883
884 extern __sfr __at (0xFD2) HLVDCON;
885 typedef union {
886         struct {
887                 unsigned HLVDL0         : 1;
888                 unsigned HLVDL1         : 1;
889                 unsigned HLVDL2         : 1;
890                 unsigned HLVDL3         : 1;
891                 unsigned HLVDEN         : 1;
892                 unsigned IRVST          : 1;
893                 unsigned                : 1;
894                 unsigned VDIRMAG        : 1;
895         };
896 } __HLVDCON_t;
897 extern volatile __HLVDCON_t __at (0xFD2) HLVDCONbits;
898
899 extern __sfr __at (0xFD3) OSCCON;
900 typedef union {
901         struct {
902                 unsigned SCS            : 2;
903                 unsigned IOFS           : 1;
904                 unsigned OSTS           : 1;
905                 unsigned IRCF           : 3;
906                 unsigned IDLEN          : 1;
907         };
908 } __OSCCON_t;
909 extern volatile __OSCCON_t __at (0xFD3) OSCCONbits;
910
911 extern __sfr __at (0xFD5) T0CON;
912 typedef union {
913         struct {
914                 unsigned T0PS0          : 1;
915                 unsigned T0PS1          : 1;
916                 unsigned T0PS2          : 1;
917                 unsigned PSA            : 1;
918                 unsigned T0SE           : 1;
919                 unsigned T0CS           : 1;
920                 unsigned T08BIT         : 1;
921                 unsigned TMR0ON         : 1;
922         };
923 } __T0CON_t;
924 extern volatile __T0CON_t __at (0xFD5) T0CONbits;
925
926 extern __sfr __at (0xFD6) TMR0L;
927
928 extern __sfr __at (0xFD7) TMR0H;
929
930 extern __sfr __at (0xFD8) STATUS;
931 typedef union {
932         struct {
933                 unsigned C              : 1;
934                 unsigned DC             : 1;
935                 unsigned Z              : 1;
936                 unsigned OV             : 1;
937                 unsigned N              : 1;
938                 unsigned                : 1;
939                 unsigned                : 1;
940                 unsigned                : 1;
941         };
942 } __STATUS_t;
943 extern volatile __STATUS_t __at (0xFD8) STATUSbits;
944
945 extern __sfr __at (0xFD9) FSR2L;
946
947 extern __sfr __at (0xFDA) FSR2H;
948 typedef union {
949         struct {
950                 unsigned FSR2H          : 4;
951                 unsigned                : 1;
952                 unsigned                : 1;
953                 unsigned                : 1;
954                 unsigned                : 1;
955         };
956 } __FSR2H_t;
957 extern volatile __FSR2H_t __at (0xFDA) FSR2Hbits;
958
959 extern __sfr __at (0xFDB) PLUSW2;
960
961 extern __sfr __at (0xFDC) PREINC2;
962
963 extern __sfr __at (0xFDD) POSTDEC2;
964
965 extern __sfr __at (0xFDE) POSTINC2;
966
967 extern __sfr __at (0xFDF) INDF2;
968
969 extern __sfr __at (0xFE0) BSR;
970 typedef union {
971         struct {
972                 unsigned BSR            : 4;
973                 unsigned                : 1;
974                 unsigned                : 1;
975                 unsigned                : 1;
976                 unsigned                : 1;
977         };
978 } __BSR_t;
979 extern volatile __BSR_t __at (0xFE0) BSRbits;
980
981 extern __sfr __at (0xFE1) FSR1L;
982
983 extern __sfr __at (0xFE2) FSR1H;
984 typedef union {
985         struct {
986                 unsigned FSR1H          : 4;
987                 unsigned                : 1;
988                 unsigned                : 1;
989                 unsigned                : 1;
990                 unsigned                : 1;
991         };
992 } __FSR1H_t;
993 extern volatile __FSR1H_t __at (0xFE2) FSR1Hbits;
994
995 extern __sfr __at (0xFE3) PLUSW1;
996
997 extern __sfr __at (0xFE4) PREINC1;
998
999 extern __sfr __at (0xFE5) POSTDEC1;
1000
1001 extern __sfr __at (0xFE6) POSTINC1;
1002
1003 extern __sfr __at (0xFE7) INDF1;
1004
1005 extern __sfr __at (0xFE8) WREG;
1006
1007 extern __sfr __at (0xFE9) FSR0L;
1008
1009 extern __sfr __at (0xFEA) FSR0H;
1010 typedef union {
1011         struct {
1012                 unsigned FSR0H          : 4;
1013                 unsigned                : 1;
1014                 unsigned                : 1;
1015                 unsigned                : 1;
1016                 unsigned                : 1;
1017         };
1018 } __FSR0H_t;
1019 extern volatile __FSR0H_t __at (0xFEA) FSR0Hbits;
1020
1021 extern __sfr __at (0xFEB) PLUSW0;
1022
1023 extern __sfr __at (0xFEC) PREINC0;
1024
1025 extern __sfr __at (0xFED) POSTDEC0;
1026
1027 extern __sfr __at (0xFEE) POSTINC0;
1028
1029 extern __sfr __at (0xFEF) INDF0;
1030
1031 extern __sfr __at (0xFF0) INTCON3;
1032 typedef union {
1033         struct {
1034                 unsigned INT1IF         : 1;
1035                 unsigned INT2IF         : 1;
1036                 unsigned                : 1;
1037                 unsigned INT1IE         : 1;
1038                 unsigned INT2IE         : 1;
1039                 unsigned                : 1;
1040                 unsigned INT1IP         : 1;
1041                 unsigned INT2IP         : 1;
1042         };
1043 } __INTCON3_t;
1044 extern volatile __INTCON3_t __at (0xFF0) INTCON3bits;
1045
1046 extern __sfr __at (0xFF1) INTCON2;
1047 typedef union {
1048         struct {
1049                 unsigned RBIP           : 1;
1050                 unsigned                : 1;
1051                 unsigned TMR0IP         : 1;
1052                 unsigned                : 1;
1053                 unsigned INTEDG2        : 1;
1054                 unsigned INTEDG1        : 1;
1055                 unsigned INTEDG0        : 1;
1056                 unsigned RBPU           : 1;
1057         };
1058 } __INTCON2_t;
1059 extern volatile __INTCON2_t __at (0xFF1) INTCON2bits;
1060
1061 extern __sfr __at (0xFF2) INTCON;
1062 typedef union {
1063         struct {
1064                 unsigned RBIF           : 1;
1065                 unsigned INT0IF         : 1;
1066                 unsigned TMR0IF         : 1;
1067                 unsigned RBIE           : 1;
1068                 unsigned INT0IE         : 1;
1069                 unsigned TMR0IE         : 1;
1070                 unsigned PEIE           : 1;
1071                 unsigned GIE            : 1;
1072         };
1073         struct {
1074                 unsigned                : 1;
1075                 unsigned                : 1;
1076                 unsigned                : 1;
1077                 unsigned                : 1;
1078                 unsigned                : 1;
1079                 unsigned                : 1;
1080                 unsigned GIEL           : 1;
1081                 unsigned GIEH           : 1;
1082         };
1083 } __INTCON_t;
1084 extern volatile __INTCON_t __at (0xFF2) INTCONbits;
1085
1086 extern __sfr __at (0xFF3) PRODL;
1087
1088 extern __sfr __at (0xFF4) PRODH;
1089
1090 extern __sfr __at (0xFF5) TABLAT;
1091
1092 extern __sfr __at (0xFF6) TBLPTRL;
1093
1094 extern __sfr __at (0xFF7) TBLPTRH;
1095
1096 extern __sfr __at (0xFF8) TBLPTRU;
1097 typedef union {
1098         struct {
1099                 unsigned TBLPTRU        : 5;
1100                 unsigned                : 1;
1101                 unsigned                : 1;
1102                 unsigned                : 1;
1103         };
1104 } __TBLPTRU_t;
1105 extern volatile __TBLPTRU_t __at (0xFF8) TBLPTRUbits;
1106
1107 extern __sfr __at (0xFF9) PCL;
1108
1109 extern __sfr __at (0xFFA) PCLATH;
1110 typedef union {
1111         struct {
1112                 unsigned PCH            : 8;
1113         };
1114 } __PCLATH_t;
1115 extern volatile __PCLATH_t __at (0xFFA) PCLATHbits;
1116
1117 extern __sfr __at (0xFFB) PCLATU;
1118 typedef union {
1119         struct {
1120                 unsigned PCU            : 5;
1121                 unsigned                : 1;
1122                 unsigned                : 1;
1123                 unsigned                : 1;
1124         };
1125 } __PCLATU_t;
1126 extern volatile __PCLATU_t __at (0xFFB) PCLATUbits;
1127
1128 extern __sfr __at (0xFFC) STKPTR;
1129 typedef union {
1130         struct {
1131                 unsigned STKPTR         : 5;
1132                 unsigned                : 1;
1133                 unsigned STKUNF         : 1;
1134                 unsigned STKFUL         : 1;
1135         };
1136 } __STKPTR_t;
1137 extern volatile __STKPTR_t __at (0xFFC) STKPTRbits;
1138
1139 extern __sfr __at (0xFFD) TOSL;
1140
1141 extern __sfr __at (0xFFE) TOSH;
1142
1143 extern __sfr __at (0xFFF) TOSU;
1144 typedef union {
1145         struct {
1146                 unsigned TOSU           : 5;
1147                 unsigned                : 1;
1148                 unsigned                : 1;
1149                 unsigned                : 1;
1150         };
1151 } __TOSU_t;
1152 extern volatile __TOSU_t __at (0xFFF) TOSUbits;
1153
1154 /* Configuration register locations */
1155 #define __CONFIG1H      0x300001
1156 #define __CONFIG2L      0x300002
1157 #define __CONFIG2H      0x300003
1158 #define __CONFIG3H      0x300005
1159 #define __CONFIG4L      0x300006
1160 #define __CONFIG5L      0x300008
1161 #define __CONFIG5H      0x300009
1162 #define __CONFIG6L      0x30000A
1163 #define __CONFIG6H      0x30000B
1164 #define __CONFIG7L      0x30000C
1165 #define __CONFIG7H      0x30000D
1166
1167
1168 /* Oscillator 1H options */
1169 #define _OSC_INTIO7_1H                              0xF9        /* INTRC-OSC2 as Clock Out, OSC1 as RA7 */
1170 #define _OSC_INTIO67_1H                             0xF8        /* INTRC-OSC2 as RA6, OSC1 as RA7 */
1171 #define _OSC_RCIO6_1H                               0xF7        /* RC-OSC2 as RA6 */
1172 #define _OSC_HSPLL_1H                               0xF6        /* HS-PLL Enabled */
1173 #define _OSC_ECIO6_1H                               0xF5        /* EC-OSC2 as RA6 */
1174 #define _OSC_EC_1H                                      0xF4    /* EC-OSC2 as Clock Out */
1175 #define _OSC_RC_1H                                  0xF3    /* RC */
1176 #define _OSC_HS_1H                                      0xF2    /* HS */
1177 #define _OSC_XT_1H                                  0xF1    /* XT */
1178 #define _OSC_LP_1H                                      0xF0    /* LP */
1179
1180 /* Fail-Safe Clock Monitor Enable 1H options */
1181 #define _FCMEN_OFF_1H                                   0xBF    /* Disabled */
1182 #define _FCMEN_ON_1H                                    0xFF    /* Enabled */
1183
1184 /* Internal External Switch Over Mode 1H options */
1185 #define _IESO_OFF_1H                                    0x7F    /* Disabled */
1186 #define _IESO_ON_1H                                     0xFF    /* Enabled */
1187
1188 /* Power Up Timer 2L options */
1189 #define _PWRT_OFF_2L                                    0xFF    /* Disabled */
1190 #define _PWRT_ON_2L                                     0xFE    /* Enabled */
1191
1192 /* Brown Out Detect 2L options */
1193 #define _BOREN_OFF_2L                                   0xF9     // Disabled
1194 #define _BOREN_ON_2L                                    0xFB     // SBOREN Enabled
1195 #define _BOREN_NOSLP_2L                                 0xFD     // Enabled except SLEEP, SBOREN Disabled
1196 #define _BOREN_SBORDIS_2L                               0xFF     // Enabled, SBOREN Disabled
1197
1198 /* Brown Out Voltage 2L options */
1199 #define _BORV_46_2L                                     0xE7     // 4.6V
1200 #define _BORV_43_2L                                     0xEF     // 4.3V
1201 #define _BORV_28_2L                                     0xF7     // 2.8V
1202 #define _BORV_21_2L                                     0xFF     // 2.1V
1203
1204 /* Watchdog Timer 2H options */
1205 #define _WDT_ON_2H                                      0xFF    /* Enabled */
1206 #define _WDT_DISABLED_CONTROLLED_2H                     0xFE    /* Disabled-Controlled by SWDTEN bit */
1207
1208 /* Watchdog Postscaler 2H options */
1209 #define _WDTPS_1_32768_2H                               0xFF    /* 1:32768 */
1210 #define _WDTPS_1_16384_2H                               0xFD    /* 1:16384 */
1211 #define _WDTPS_1_8192_2H                                0xFB    /* 1:8192 */
1212 #define _WDTPS_1_4096_2H                                0xF9    /* 1:4096 */
1213 #define _WDTPS_1_2048_2H                                0xF7    /* 1:2048 */
1214 #define _WDTPS_1_1024_2H                                0xF5    /* 1:1024 */
1215 #define _WDTPS_1_512_2H                                 0xF3    /* 1:512 */
1216 #define _WDTPS_1_256_2H                                 0xF1    /* 1:256 */
1217 #define _WDTPS_1_128_2H                                 0xEF    /* 1:128 */
1218 #define _WDTPS_1_64_2H                                  0xED    /* 1:64 */
1219 #define _WDTPS_1_32_2H                                  0xEB    /* 1:32 */
1220 #define _WDTPS_1_16_2H                                  0xE9    /* 1:16 */
1221 #define _WDTPS_1_8_2H                                   0xE7    /* 1:8 */
1222 #define _WDTPS_1_4_2H                                   0xE5    /* 1:4 */
1223 #define _WDTPS_1_2_2H                                   0xE3    /* 1:2 */
1224 #define _WDTPS_1_1_2H                                   0xE1    /* 1:1 */
1225
1226
1227 /* CCP2 Mux 3H options */
1228 #define _CCP2MUX_RC1_3H                                 0xFF    /* RC1 */
1229 #define _CCP2MUX_RB3_3H                                 0xFE    /* RB3 */
1230
1231 /* PortB A/D Enable 3H options */
1232 #define _PBADEN_PORTB_4_0__CONFIGURED_AS_ANALOG_INPUTS_ON_RESET_3H      0xFF    /* PORTB<4:0> configured as analog inputs on RESET */
1233 #define _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H        0xFD    /* PORTB<4:0> configured as digital I/O on RESET */
1234
1235 /* Low Power Timer1 Osc enable 3H options */
1236 #define _LPT1OSC_ON_3H                                  0xFF    /* Enabled */
1237 #define _LPT1OSC_OFF_3H                                 0xFB    /* Disabled */
1238
1239 /* Master Clear Enable 3H options */
1240 #define _MCLRE_MCLR_ON_RE3_OFF_3H                       0xFF    /* MCLR Enabled,RE3 Disabled */
1241 #define _MCLRE_MCLR_OFF_RE3_ON_3H                       0x7F    /* MCLR Disabled,RE3 Enabled */
1242
1243
1244 /* Stack Overflow Reset 4L options */
1245 #define _STVR_ON_4L                                     0xFF    /* Enabled */
1246 #define _STVR_OFF_4L                                    0xFE    /* Disabled */
1247
1248 /* Low Voltage Program 4L options */
1249 #define _LVP_ON_4L                                      0xFF    /* Enabled */
1250 #define _LVP_OFF_4L                                     0xFB    /* Disabled */
1251
1252 /* Extended CPU Enable 4L options */
1253 #define _XINST_OFF_4L                                   0xBF     // Disabled
1254 #define _XINST_ON_4L                                    0xFF     // Enabled
1255
1256 /* Background Debug 4L options */
1257 #define _DEBUG_ON_4L                                    0x7F     // Enabled
1258 #define _DEBUG_OFF_4L                                   0xFF     // Disabled
1259
1260 /* Code Protect 00800-01FFF 5L options */
1261 #define _CP_0_OFF_5L                                    0xFF    /* Disabled */
1262 #define _CP_0_ON_5L                                     0xFE    /* Enabled */
1263
1264 /* Code Protect 02000-03FFF 5L options */
1265 #define _CP_1_OFF_5L                                    0xFF    /* Disabled */
1266 #define _CP_1_ON_5L                                     0xFD    /* Enabled */
1267
1268 /* Code Protect 04000-05FFF 5L options */
1269 #define _CP_2_OFF_5L                                    0xFF    /* Disabled */
1270 #define _CP_2_ON_5L                                     0xFB    /* Enabled */
1271
1272 /* Code Protect 06000-07FFF 5L options */
1273 #define _CP_3_OFF_5L                                    0xFF    /* Disabled */
1274 #define _CP_3_ON_5L                                     0xF7    /* Enabled */
1275
1276
1277 /* Data EE Read Protect 5H options */
1278 #define _CPD_OFF_5H                                     0xFF    /* Disabled */
1279 #define _CPD_ON_5H                                      0x7F    /* Enabled */
1280
1281 /* Code Protect Boot 5H options */
1282 #define _CPB_OFF_5H                                     0xFF    /* Disabled */
1283 #define _CPB_ON_5H                                      0xBF    /* Enabled */
1284
1285
1286 /* Table Write Protect 00800-01FFF 6L options */
1287 #define _WRT_0_OFF_6L                                   0xFF    /* Disabled */
1288 #define _WRT_0_ON_6L                                    0xFE    /* Enabled */
1289
1290 /* Table Write Protect 02000-03FFF 6L options */
1291 #define _WRT_1_OFF_6L                                   0xFF    /* Disabled */
1292 #define _WRT_1_ON_6L                                    0xFD    /* Enabled */
1293
1294 /* Table Write Protect 04000-05FFF 6L options */
1295 #define _WRT_2_OFF_6L                                   0xFF    /* Disabled */
1296 #define _WRT_2_ON_6L                                    0xFB    /* Enabled */
1297
1298 /* Table Write Protect 06000-07FFF 6L options */
1299 #define _WRT_3_OFF_6L                                   0xFF    /* Disabled */
1300 #define _WRT_3_ON_6L                                    0xF7    /* Enabled */
1301
1302
1303 /* Data EE Write Protect 6H options */
1304 #define _WRTD_OFF_6H                                    0xFF    /* Disabled */
1305 #define _WRTD_ON_6H                                     0x7F    /* Enabled */
1306
1307 /* Table Write Protect Boot 6H options */
1308 #define _WRTB_OFF_6H                                    0xFF    /* Disabled */
1309 #define _WRTB_ON_6H                                     0xBF    /* Enabled */
1310
1311 /* Config. Write Protect 6H options */
1312 #define _WRTC_OFF_6H                                    0xFF    /* Disabled */
1313 #define _WRTC_ON_6H                                     0xDF    /* Enabled */
1314
1315
1316 /* Table Read Protect 00800-01FFF 7L options */
1317 #define _EBTR_0_OFF_7L                                  0xFF    /* Disabled */
1318 #define _EBTR_0_ON_7L                                   0xFE    /* Enabled */
1319
1320 /* Table Read Protect 02000-03FFF 7L options */
1321 #define _EBTR_1_OFF_7L                                  0xFF    /* Disabled */
1322 #define _EBTR_1_ON_7L                                   0xFD    /* Enabled */
1323
1324 /* Table Read Protect 04000-05FFF 7L options */
1325 #define _EBTR_2_OFF_7L                                  0xFF    /* Disabled */
1326 #define _EBTR_2_ON_7L                                   0xFB    /* Enabled */
1327
1328 /* Table Read Protect 06000-07FFF 7L options */
1329 #define _EBTR_3_OFF_7L                                  0xFF    /* Disabled */
1330 #define _EBTR_3_ON_7L                                   0xF7    /* Enabled */
1331
1332
1333 /* Table Read Protect Boot 7H options */
1334 #define _EBTRB_OFF_7H                                   0xFF    /* Disabled */
1335 #define _EBTRB_ON_7H                                    0xBF    /* Enabled */
1336
1337
1338 /* Device ID bytes */
1339 #define _DEVID1     0x3FFFFE
1340 #define _DEVID2     0x3FFFFF
1341
1342
1343 /* Location of User ID words */
1344 #define __IDLOC0        0x200000
1345 #define __IDLOC1        0x200001
1346 #define __IDLOC2        0x200002
1347 #define __IDLOC3        0x200003
1348 #define __IDLOC4        0x200004
1349 #define __IDLOC5        0x200005
1350 #define __IDLOC6        0x200006
1351 #define __IDLOC7        0x200007
1352
1353 #endif // __PIC18F2620__