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