]> git.gag.com Git - fw/sdcc/blob - device/include/pic16/pic18f8620.h
* device/include/asm/pic16/features.h,
[fw/sdcc] / device / include / pic16 / pic18f8620.h
1
2 /*
3  * pic18f8620.h - PIC18F8620 Device Library Header
4  *
5  * This file is part of the GNU PIC Library.
6  *
7  * January, 2004
8  * The GNU PIC Library is maintained by,
9  *      Vangelis Rokas <vrokas@otenet.gr>
10  *
11  * $Id$
12  *
13  */
14
15 #ifndef __PIC18F8620_H__
16 #define __PIC18F8620_H__
17
18 extern __sfr __at 0xf6b RCSTA2;
19 typedef union {
20         struct {
21                 unsigned RX9D:1;
22                 unsigned OERR:1;
23                 unsigned FERR:1;
24                 unsigned ADDEN:1;
25                 unsigned CREN:1;
26                 unsigned SREN:1;
27                 unsigned RX9:1;
28                 unsigned SPEN:1;
29         };
30 } __RCSTA2bits_t;
31
32 extern volatile __RCSTA2bits_t __at 0xf6b RCSTA2bits;
33
34 extern __sfr __at 0xf6c TXSTA2;
35 typedef union {
36         struct {
37                 unsigned TX9D:1;
38                 unsigned TRMT:1;
39                 unsigned BRGH:1;
40                 unsigned :1;
41                 unsigned SYNC:1;
42                 unsigned TXEN:1;
43                 unsigned TX9:1;
44                 unsigned CSRC:1;
45         };
46 } __TXSTA2bits_t;
47
48 extern volatile __TXSTA2bits_t __at 0xf6c TXSTA2bits;
49
50 extern __sfr __at 0xf6d TXREG2;
51 extern __sfr __at 0xf6e RCREG2;
52 extern __sfr __at 0xf6f SPBRG2;
53 extern __sfr __at 0xf70 CCP5CON;
54 typedef union {
55         struct {
56                 unsigned CCP5M0:1;
57                 unsigned CCP5M1:1;
58                 unsigned CCP5M2:1;
59                 unsigned CCP5M3:1;
60                 unsigned DCCP5Y:1;
61                 unsigned DCCP5X:1;
62                 unsigned :1;
63                 unsigned :1;
64         };
65 } __CCP5CONbits_t;
66
67 extern volatile __CCP5CONbits_t __at 0xf70 CCP5CONbits;
68
69 extern __sfr __at 0xf71 CCPR5L;
70 extern __sfr __at 0xf72 CCPR5H;
71 extern __sfr __at 0xf73 CCP4CON;
72 typedef union {
73         struct {
74                 unsigned CCP4M0:1;
75                 unsigned CCP4M1:1;
76                 unsigned CCP4M2:1;
77                 unsigned CCP4M3:1;
78                 unsigned DCCP4Y:1;
79                 unsigned DCCP4X:1;
80                 unsigned :1;
81                 unsigned :1;
82         };
83 } __CCP4CONbits_t;
84
85 extern volatile __CCP4CONbits_t __at 0xf73 CCP4CONbits;
86
87 extern __sfr __at 0xf74 CCPR4L;
88 extern __sfr __at 0xf75 CCPR4H;
89 extern __sfr __at 0xf76 T4CON;
90 typedef union {
91         struct {
92                 unsigned T2CKPS0:1;
93                 unsigned T2CKPS1:1;
94                 unsigned TMR2ON:1;
95                 unsigned TOUTPS0:1;
96                 unsigned TOUTPS1:1;
97                 unsigned TOUTPS2:1;
98                 unsigned TOUTPS3:1;
99                 unsigned :1;
100         };
101 } __T4CONbits_t;
102
103 extern volatile __T4CONbits_t __at 0xf76 T4CONbits;
104
105 extern __sfr __at 0xf77 PR4;
106 extern __sfr __at 0xf78 TMR4;
107 extern __sfr __at 0xf80 PORTA;
108 typedef union {
109         struct {
110                 unsigned RA0:1;
111                 unsigned RA1:1;
112                 unsigned RA2:1;
113                 unsigned RA3:1;
114                 unsigned RA4:1;
115                 unsigned RA5:1;
116                 unsigned RA6:1;
117                 unsigned :1;
118         };
119
120         struct {
121                 unsigned AN0:1;
122                 unsigned AN1:1;
123                 unsigned AN2:1;
124                 unsigned AN3:1;
125                 unsigned :1;
126                 unsigned AN4:1;
127                 unsigned OSC2:1;
128                 unsigned :1;
129         };
130
131         struct {
132                 unsigned :1;
133                 unsigned :1;
134                 unsigned VREFM:1;
135                 unsigned VREFP:1;
136                 unsigned T0CKI:1;
137                 unsigned SS:1;
138                 unsigned CLK0:1;
139                 unsigned :1;
140         };
141
142         struct {
143                 unsigned :1;
144                 unsigned :1;
145                 unsigned :1;
146                 unsigned :1;
147                 unsigned :1;
148                 unsigned LVDIN:1;
149                 unsigned :1;
150                 unsigned :1;
151         };
152 } __PORTAbits_t;
153
154 extern volatile __PORTAbits_t __at 0xf80 PORTAbits;
155
156 extern __sfr __at 0xf81 PORTB;
157 typedef union {
158         struct {
159                 unsigned RB0:1;
160                 unsigned RB1:1;
161                 unsigned RB2:1;
162                 unsigned RB3:1;
163                 unsigned RB4:1;
164                 unsigned RB5:1;
165                 unsigned RB6:1;
166                 unsigned RB7:1;
167         };
168
169         struct {
170                 unsigned INT0:1;
171                 unsigned INT1:1;
172                 unsigned INT2:1;
173                 unsigned INT3:1;
174                 unsigned :1;
175                 unsigned :1;
176                 unsigned :1;
177                 unsigned :1;
178         };
179 } __PORTBbits_t;
180
181 extern volatile __PORTBbits_t __at 0xf81 PORTBbits;
182
183 extern __sfr __at 0xf82 PORTC;
184 typedef union {
185         struct {
186                 unsigned RC0:1;
187                 unsigned RC1:1;
188                 unsigned RC2:1;
189                 unsigned RC3:1;
190                 unsigned RC4:1;
191                 unsigned RC5:1;
192                 unsigned RC6:1;
193                 unsigned RC7:1;
194         };
195
196         struct {
197                 unsigned T1OSO:1;
198                 unsigned T1OSI:1;
199                 unsigned :1;
200                 unsigned SCK:1;
201                 unsigned SDI:1;
202                 unsigned SDO:1;
203                 unsigned TX:1;
204                 unsigned RX:1;
205         };
206
207         struct {
208                 unsigned T1CKI:1;
209                 unsigned CCP2:1;
210                 unsigned CCP1:1;
211                 unsigned SCL:1;
212                 unsigned SDA:1;
213                 unsigned :1;
214                 unsigned CK:1;
215                 unsigned DT:1;
216         };
217 } __PORTCbits_t;
218
219 extern volatile __PORTCbits_t __at 0xf82 PORTCbits;
220
221 extern __sfr __at 0xf83 PORTD;
222 typedef union {
223         struct {
224                 unsigned RD0:1;
225                 unsigned RD1:1;
226                 unsigned RD2:1;
227                 unsigned RD3:1;
228                 unsigned RD4:1;
229                 unsigned RD5:1;
230                 unsigned RD6:1;
231                 unsigned RD7:1;
232         };
233
234         struct {
235                 unsigned AD0:1;
236                 unsigned AD1:1;
237                 unsigned AD2:1;
238                 unsigned AD3:1;
239                 unsigned AD4:1;
240                 unsigned AD5:1;
241                 unsigned AD6:1;
242                 unsigned AD7:1;
243         };
244 } __PORTDbits_t;
245
246 extern volatile __PORTDbits_t __at 0xf83 PORTDbits;
247
248 extern __sfr __at 0xf84 PORTE;
249 typedef union {
250         struct {
251                 unsigned RE0:1;
252                 unsigned RE1:1;
253                 unsigned RE2:1;
254                 unsigned RE3:1;
255                 unsigned RE4:1;
256                 unsigned RE5:1;
257                 unsigned RE6:1;
258                 unsigned RE7:1;
259         };
260
261         struct {
262                 unsigned ALE:1;
263                 unsigned OE:1;
264                 unsigned WRL:1;
265                 unsigned WRH:1;
266                 unsigned :1;
267                 unsigned :1;
268                 unsigned :1;
269                 unsigned CCP2:1;
270         };
271
272         struct {
273                 unsigned AN5:1;
274                 unsigned :1;
275                 unsigned :1;
276                 unsigned :1;
277                 unsigned :1;
278                 unsigned :1;
279                 unsigned :1;
280                 unsigned :1;
281         };
282 } __PORTEbits_t;
283
284 extern volatile __PORTEbits_t __at 0xf84 PORTEbits;
285
286 extern __sfr __at 0xf85 PORTF;
287 typedef union {
288         struct {
289                 unsigned RF0:1;
290                 unsigned RF1:1;
291                 unsigned RF2:1;
292                 unsigned RF3:1;
293                 unsigned RF4:1;
294                 unsigned RF5:1;
295                 unsigned RF6:1;
296                 unsigned RF7:1;
297         };
298 } __PORTFbits_t;
299
300 extern volatile __PORTFbits_t __at 0xf85 PORTFbits;
301
302 extern __sfr __at 0xf86 PORTG;
303 typedef union {
304         struct {
305                 unsigned RG0:1;
306                 unsigned RG1:1;
307                 unsigned RG2:1;
308                 unsigned RG3:1;
309                 unsigned RG4:1;
310                 unsigned :1;
311                 unsigned :1;
312                 unsigned :1;
313         };
314 } __PORTGbits_t;
315
316 extern volatile __PORTGbits_t __at 0xf86 PORTGbits;
317
318 extern __sfr __at 0xf87 PORTH;
319 typedef union {
320         struct {
321                 unsigned RH0:1;
322                 unsigned RH1:1;
323                 unsigned RH2:1;
324                 unsigned RH3:1;
325                 unsigned RH4:1;
326                 unsigned RH5:1;
327                 unsigned RH6:1;
328                 unsigned RH7:1;
329         };
330 } __PORTHbits_t;
331
332 extern volatile __PORTHbits_t __at 0xf87 PORTHbits;
333
334 extern __sfr __at 0xf88 PORTJ;
335 typedef union {
336         struct {
337                 unsigned RJ0:1;
338                 unsigned RJ1:1;
339                 unsigned RJ2:1;
340                 unsigned RJ3:1;
341                 unsigned RJ4:1;
342                 unsigned RJ5:1;
343                 unsigned RJ6:1;
344                 unsigned RJ7:1;
345         };
346 } __PORTJbits_t;
347
348 extern volatile __PORTJbits_t __at 0xf88 PORTJbits;
349
350 extern __sfr __at 0xf89 LATA;
351 typedef union {
352         struct {
353                 unsigned LATA0:1;
354                 unsigned LATA1:1;
355                 unsigned LATA2:1;
356                 unsigned LATA3:1;
357                 unsigned LATA4:1;
358                 unsigned LATA5:1;
359                 unsigned LATA6:1;
360                 unsigned :1;
361         };
362 } __LATAbits_t;
363
364 extern volatile __LATAbits_t __at 0xf89 LATAbits;
365
366 extern __sfr __at 0xf8a LATB;
367 typedef union {
368         struct {
369                 unsigned LATB0:1;
370                 unsigned LATB1:1;
371                 unsigned LATB2:1;
372                 unsigned LATB3:1;
373                 unsigned LATB4:1;
374                 unsigned LATB5:1;
375                 unsigned LATB6:1;
376                 unsigned LATB7:1;
377         };
378 } __LATBbits_t;
379
380 extern volatile __LATBbits_t __at 0xf8a LATBbits;
381
382 extern __sfr __at 0xf8b LATC;
383 typedef union {
384         struct {
385                 unsigned LATC0:1;
386                 unsigned LATC1:1;
387                 unsigned LATC2:1;
388                 unsigned LATC3:1;
389                 unsigned LATC4:1;
390                 unsigned LATC5:1;
391                 unsigned LATC6:1;
392                 unsigned LATC7:1;
393         };
394 } __LATCbits_t;
395
396 extern volatile __LATCbits_t __at 0xf8b LATCbits;
397
398 extern __sfr __at 0xf8c LATD;
399 typedef union {
400         struct {
401                 unsigned LATD0:1;
402                 unsigned LATD1:1;
403                 unsigned LATD2:1;
404                 unsigned LATD3:1;
405                 unsigned LATD4:1;
406                 unsigned LATD5:1;
407                 unsigned LATD6:1;
408                 unsigned LATD7:1;
409         };
410 } __LATDbits_t;
411
412 extern volatile __LATDbits_t __at 0xf8c LATDbits;
413
414 extern __sfr __at 0xf8d LATE;
415 typedef union {
416         struct {
417                 unsigned LATE0:1;
418                 unsigned LATE1:1;
419                 unsigned LATE2:1;
420                 unsigned LATE3:1;
421                 unsigned LATE4:1;
422                 unsigned LATE5:1;
423                 unsigned LATE6:1;
424                 unsigned LATE7:1;
425         };
426 } __LATEbits_t;
427
428 extern volatile __LATEbits_t __at 0xf8d LATEbits;
429
430 extern __sfr __at 0xf8e LATF;
431 typedef union {
432         struct {
433                 unsigned LATF0:1;
434                 unsigned LATF1:1;
435                 unsigned LATF2:1;
436                 unsigned LATF3:1;
437                 unsigned LATF4:1;
438                 unsigned LATF5:1;
439                 unsigned LATF6:1;
440                 unsigned LATF7:1;
441         };
442 } __LATFbits_t;
443
444 extern volatile __LATFbits_t __at 0xf8e LATFbits;
445
446 extern __sfr __at 0xf8f LATG;
447 typedef union {
448         struct {
449                 unsigned LATG0:1;
450                 unsigned LATG1:1;
451                 unsigned LATG2:1;
452                 unsigned LATG3:1;
453                 unsigned LATG4:1;
454                 unsigned :1;
455                 unsigned :1;
456                 unsigned :1;
457         };
458 } __LATGbits_t;
459
460 extern volatile __LATGbits_t __at 0xf8f LATGbits;
461
462 extern __sfr __at 0xf90 LATH;
463 typedef union {
464         struct {
465                 unsigned LATH0:1;
466                 unsigned LATH1:1;
467                 unsigned LATH2:1;
468                 unsigned LATH3:1;
469                 unsigned LATH4:1;
470                 unsigned LATH5:1;
471                 unsigned LATH6:1;
472                 unsigned LATH7:1;
473         };
474 } __LATHbits_t;
475
476 extern volatile __LATHbits_t __at 0xf90 LATHbits;
477
478 extern __sfr __at 0xf91 LATJ;
479 typedef union {
480         struct {
481                 unsigned LATJ0:1;
482                 unsigned LATJ1:1;
483                 unsigned LATJ2:1;
484                 unsigned LATJ3:1;
485                 unsigned LATJ4:1;
486                 unsigned LATJ5:1;
487                 unsigned LATJ6:1;
488                 unsigned LATJ7:1;
489         };
490 } __LATJbits_t;
491
492 extern volatile __LATJbits_t __at 0xf91 LATJbits;
493
494 extern __sfr __at 0xf92 TRISA;
495 typedef union {
496         struct {
497                 unsigned TRISA0:1;
498                 unsigned TRISA1:1;
499                 unsigned TRISA2:1;
500                 unsigned TRISA3:1;
501                 unsigned TRISA4:1;
502                 unsigned TRISA5:1;
503                 unsigned TRISA6:1;
504                 unsigned :1;
505         };
506 } __TRISAbits_t;
507
508 extern volatile __TRISAbits_t __at 0xf92 TRISAbits;
509
510 extern __sfr __at 0xf93 TRISB;
511 typedef union {
512         struct {
513                 unsigned TRISB0:1;
514                 unsigned TRISB1:1;
515                 unsigned TRISB2:1;
516                 unsigned TRISB3:1;
517                 unsigned TRISB4:1;
518                 unsigned TRISB5:1;
519                 unsigned TRISB6:1;
520                 unsigned TRISB7:1;
521         };
522 } __TRISBbits_t;
523
524 extern volatile __TRISBbits_t __at 0xf93 TRISBbits;
525
526 extern __sfr __at 0xf94 TRISC;
527 typedef union {
528         struct {
529                 unsigned TRISC0:1;
530                 unsigned TRISC1:1;
531                 unsigned TRISC2:1;
532                 unsigned TRISC3:1;
533                 unsigned TRISC4:1;
534                 unsigned TRISC5:1;
535                 unsigned TRISC6:1;
536                 unsigned TRISC7:1;
537         };
538 } __TRISCbits_t;
539
540 extern volatile __TRISCbits_t __at 0xf94 TRISCbits;
541
542 extern __sfr __at 0xf95 TRISD;
543 typedef union {
544         struct {
545                 unsigned TRISD0:1;
546                 unsigned TRISD1:1;
547                 unsigned TRISD2:1;
548                 unsigned TRISD3:1;
549                 unsigned TRISD4:1;
550                 unsigned TRISD5:1;
551                 unsigned TRISD6:1;
552                 unsigned TRISD7:1;
553         };
554 } __TRISDbits_t;
555
556 extern volatile __TRISDbits_t __at 0xf95 TRISDbits;
557
558 extern __sfr __at 0xf96 TRISE;
559 typedef union {
560         struct {
561                 unsigned TRISE0:1;
562                 unsigned TRISE1:1;
563                 unsigned TRISE2:1;
564                 unsigned TRISE3:1;
565                 unsigned TRISE4:1;
566                 unsigned TRISE5:1;
567                 unsigned TRISE6:1;
568                 unsigned TRISE7:1;
569         };
570 } __TRISEbits_t;
571
572 extern volatile __TRISEbits_t __at 0xf96 TRISEbits;
573
574 extern __sfr __at 0xf97 TRISF;
575 typedef union {
576         struct {
577                 unsigned TRISF0:1;
578                 unsigned TRISF1:1;
579                 unsigned TRISF2:1;
580                 unsigned TRISF3:1;
581                 unsigned TRISF4:1;
582                 unsigned TRISF5:1;
583                 unsigned TRISF6:1;
584                 unsigned TRISF7:1;
585         };
586 } __TRISFbits_t;
587
588 extern volatile __TRISFbits_t __at 0xf97 TRISFbits;
589
590 extern __sfr __at 0xf98 TRISG;
591 typedef union {
592         struct {
593                 unsigned TRISG0:1;
594                 unsigned TRISG1:1;
595                 unsigned TRISG2:1;
596                 unsigned TRISG3:1;
597                 unsigned TRISG4:1;
598                 unsigned :1;
599                 unsigned :1;
600                 unsigned :1;
601         };
602 } __TRISGbits_t;
603
604 extern volatile __TRISGbits_t __at 0xf98 TRISGbits;
605
606 extern __sfr __at 0xf99 TRISH;
607 typedef union {
608         struct {
609                 unsigned TRISH0:1;
610                 unsigned TRISH1:1;
611                 unsigned TRISH2:1;
612                 unsigned TRISH3:1;
613                 unsigned TRISH4:1;
614                 unsigned TRISH5:1;
615                 unsigned TRISH6:1;
616                 unsigned TRISH7:1;
617         };
618 } __TRISHbits_t;
619
620 extern volatile __TRISHbits_t __at 0xf99 TRISHbits;
621
622 extern __sfr __at 0xf9a TRISJ;
623 typedef union {
624         struct {
625                 unsigned TRISJ0:1;
626                 unsigned TRISJ1:1;
627                 unsigned TRISJ2:1;
628                 unsigned TRISJ3:1;
629                 unsigned TRISJ4:1;
630                 unsigned TRISJ5:1;
631                 unsigned TRISJ6:1;
632                 unsigned TRISJ7:1;
633         };
634 } __TRISJbits_t;
635
636 extern volatile __TRISJbits_t __at 0xf9a TRISJbits;
637
638 extern __sfr __at 0xf9c MEMCON;
639 typedef union {
640         struct {
641                 unsigned WM0:1;
642                 unsigned WM1:1;
643                 unsigned :1;
644                 unsigned :1;
645                 unsigned WAIT0:1;
646                 unsigned WAIT1:1;
647                 unsigned :1;
648                 unsigned EBDIS:1;
649         };
650 } __MEMCONbits_t;
651
652 extern volatile __MEMCONbits_t __at 0xf9c MEMCONbits;
653
654 extern __sfr __at 0xf9d PIE1;
655 typedef union {
656         struct {
657                 unsigned TMR1IE:1;
658                 unsigned TMR2IE:1;
659                 unsigned CCP1IE:1;
660                 unsigned SSPIE:1;
661                 unsigned TXIE:1;
662                 unsigned RCIE:1;
663                 unsigned ADIE:1;
664                 unsigned PSPIE:1;
665         };
666 } __PIE1bits_t;
667
668 extern volatile __PIE1bits_t __at 0xf9d PIE1bits;
669
670 extern __sfr __at 0xf9e PIR1;
671 typedef union {
672         struct {
673                 unsigned TMR1IF:1;
674                 unsigned TMR2IF:1;
675                 unsigned CCP1IF:1;
676                 unsigned SSPIF:1;
677                 unsigned TXIF:1;
678                 unsigned RCIF:1;
679                 unsigned ADIF:1;
680                 unsigned PSPIF:1;
681         };
682 } __PIR1bits_t;
683
684 extern volatile __PIR1bits_t __at 0xf9e PIR1bits;
685
686 extern __sfr __at 0xf9f IPR1;
687 typedef union {
688         struct {
689                 unsigned TMR1IP:1;
690                 unsigned TMR2IP:1;
691                 unsigned CCP1IP:1;
692                 unsigned SSPIP:1;
693                 unsigned TXIP:1;
694                 unsigned RCIP:1;
695                 unsigned ADIP:1;
696                 unsigned PSPIP:1;
697         };
698 } __IPR1bits_t;
699
700 extern volatile __IPR1bits_t __at 0xf9f IPR1bits;
701
702 extern __sfr __at 0xfa0 PIE2;
703 typedef union {
704         struct {
705                 unsigned CCP2IE:1;
706                 unsigned TMR3IE:1;
707                 unsigned LVDIE:1;
708                 unsigned BCLIE:1;
709                 unsigned EEIE:1;
710                 unsigned :1;
711                 unsigned CMIE:1;
712                 unsigned :1;
713         };
714 } __PIE2bits_t;
715
716 extern volatile __PIE2bits_t __at 0xfa0 PIE2bits;
717
718 extern __sfr __at 0xfa1 PIR2;
719 typedef union {
720         struct {
721                 unsigned CCP2IF:1;
722                 unsigned TMR3IF:1;
723                 unsigned LVDIF:1;
724                 unsigned BCLIF:1;
725                 unsigned EEIF:1;
726                 unsigned :1;
727                 unsigned CMIF:1;
728                 unsigned :1;
729         };
730 } __PIR2bits_t;
731
732 extern volatile __PIR2bits_t __at 0xfa1 PIR2bits;
733
734 extern __sfr __at 0xfa2 IPR2;
735 typedef union {
736         struct {
737                 unsigned CCP2IP:1;
738                 unsigned TMR3IP:1;
739                 unsigned LVDIP:1;
740                 unsigned BCLIP:1;
741                 unsigned EEIP:1;
742                 unsigned :1;
743                 unsigned CMIP:1;
744                 unsigned :1;
745         };
746 } __IPR2bits_t;
747
748 extern volatile __IPR2bits_t __at 0xfa2 IPR2bits;
749
750 extern __sfr __at 0xfa3 PIE3;
751 typedef union {
752         struct {
753                 unsigned CCP3IE:1;
754                 unsigned CCP4IE:1;
755                 unsigned CCP5IE:1;
756                 unsigned TMR4IE:1;
757                 unsigned TX2IE:1;
758                 unsigned RC2IE:1;
759                 unsigned :1;
760                 unsigned :1;
761         };
762 } __PIE3bits_t;
763
764 extern volatile __PIE3bits_t __at 0xfa3 PIE3bits;
765
766 extern __sfr __at 0xfa4 PIR3;
767 typedef union {
768         struct {
769                 unsigned CCP3IF:1;
770                 unsigned CCP4IF:1;
771                 unsigned CCP5IF:1;
772                 unsigned TMR4IF:1;
773                 unsigned TX2IF:1;
774                 unsigned RC2IF:1;
775                 unsigned :1;
776                 unsigned :1;
777         };
778 } __PIR3bits_t;
779
780 extern volatile __PIR3bits_t __at 0xfa4 PIR3bits;
781
782 extern __sfr __at 0xfa5 IPR3;
783 typedef union {
784         struct {
785                 unsigned CCP3IP:1;
786                 unsigned CCP4IP:1;
787                 unsigned CCP5IP:1;
788                 unsigned TMR4IP:1;
789                 unsigned TX2IP:1;
790                 unsigned RC2IP:1;
791                 unsigned :1;
792                 unsigned :1;
793         };
794 } __IPR3bits_t;
795
796 extern volatile __IPR3bits_t __at 0xfa5 IPR3bits;
797
798 extern __sfr __at 0xfa6 EECON1;
799 typedef union {
800         struct {
801                 unsigned RD:1;
802                 unsigned WR:1;
803                 unsigned WREN:1;
804                 unsigned WRERR:1;
805                 unsigned FREE:1;
806                 unsigned :1;
807                 unsigned CFGS:1;
808                 unsigned EEPGD:1;
809         };
810 } __EECON1bits_t;
811
812 extern volatile __EECON1bits_t __at 0xfa6 EECON1bits;
813
814 extern __sfr __at 0xfa7 EECON2;
815 extern __sfr __at 0xfa8 EEDATA;
816 extern __sfr __at 0xfa9 EEADR;
817 extern __sfr __at 0xfaa EEADRH;
818 extern __sfr __at 0xfab RCSTA1;
819 typedef union {
820         struct {
821                 unsigned RX9D:1;
822                 unsigned OERR:1;
823                 unsigned FERR:1;
824                 unsigned ADDEN:1;
825                 unsigned CREN:1;
826                 unsigned SREN:1;
827                 unsigned RX9:1;
828                 unsigned SPEN:1;
829         };
830 } __RCSTA1bits_t;
831
832 extern volatile __RCSTA1bits_t __at 0xfab RCSTA1bits;
833
834 extern __sfr __at 0xfac TXSTA1;
835 typedef union {
836         struct {
837                 unsigned TX9D:1;
838                 unsigned TRMT:1;
839                 unsigned BRGH:1;
840                 unsigned :1;
841                 unsigned SYNC:1;
842                 unsigned TXEN:1;
843                 unsigned TX9:1;
844                 unsigned CSRC:1;
845         };
846 } __TXSTA1bits_t;
847
848 extern volatile __TXSTA1bits_t __at 0xfac TXSTA1bits;
849
850 extern __sfr __at 0xfad TXREG1;
851 extern __sfr __at 0xfae RCREG1;
852 extern __sfr __at 0xfaf SPBRG1;
853 extern __sfr __at 0xfb0 PSPCON;
854 typedef union {
855         struct {
856                 unsigned :1;
857                 unsigned :1;
858                 unsigned :1;
859                 unsigned :1;
860                 unsigned PSPMODE:1;
861                 unsigned IBOV:1;
862                 unsigned OBF:1;
863                 unsigned IBF:1;
864         };
865 } __PSPCONbits_t;
866
867 extern volatile __PSPCONbits_t __at 0xfb0 PSPCONbits;
868
869 extern __sfr __at 0xfb1 T3CON;
870 typedef union {
871         struct {
872                 unsigned TMR3ON:1;
873                 unsigned TMR3CS:1;
874                 unsigned T3SYNC:1;
875                 unsigned T3CCP1:1;
876                 unsigned T3CKPS0:1;
877                 unsigned T3CKPS1:1;
878                 unsigned T3CCP2:1;
879                 unsigned RD16:1;
880         };
881 } __T3CONbits_t;
882
883 extern volatile __T3CONbits_t __at 0xfb1 T3CONbits;
884
885 extern __sfr __at 0xfb2 TMR3L;
886 extern __sfr __at 0xfb3 TMR3H;
887 extern __sfr __at 0xfb4 CMCON;
888 typedef union {
889         struct {
890                 unsigned CM0:1;
891                 unsigned CM1:1;
892                 unsigned CM2:1;
893                 unsigned CIS:1;
894                 unsigned C1INV:1;
895                 unsigned C2INV:1;
896                 unsigned C1OUT:1;
897                 unsigned C2OUT:1;
898         };
899 } __CMCONbits_t;
900
901 extern volatile __CMCONbits_t __at 0xfb4 CMCONbits;
902
903 extern __sfr __at 0xfb5 CVRCON;
904 typedef union {
905         struct {
906                 unsigned CVR0:1;
907                 unsigned CVR1:1;
908                 unsigned CVR2:1;
909                 unsigned CVR3:1;
910                 unsigned CVREF:1;
911                 unsigned CVRR:1;
912                 unsigned CVROE:1;
913                 unsigned CVREN:1;
914         };
915 } __CVRCONbits_t;
916
917 extern volatile __CVRCONbits_t __at 0xfb5 CVRCONbits;
918
919 extern __sfr __at 0xfb7 CCP3CON;
920 typedef union {
921         struct {
922                 unsigned CCP3M0:1;
923                 unsigned CCP3M1:1;
924                 unsigned CCP3M2:1;
925                 unsigned CCP3M3:1;
926                 unsigned DCCP3Y:1;
927                 unsigned DCCP3X:1;
928                 unsigned :1;
929                 unsigned :1;
930         };
931 } __CCP3CONbits_t;
932
933 extern volatile __CCP3CONbits_t __at 0xfb7 CCP3CONbits;
934
935 extern __sfr __at 0xfb8 CCPR3L;
936 extern __sfr __at 0xfb9 CCPR3H;
937 extern __sfr __at 0xfba CCP2CON;
938 typedef union {
939         struct {
940                 unsigned CCP2M0:1;
941                 unsigned CCP2M1:1;
942                 unsigned CCP2M2:1;
943                 unsigned CCP2M3:1;
944                 unsigned DCCP2Y:1;
945                 unsigned DCCP2X:1;
946                 unsigned :1;
947                 unsigned :1;
948         };
949 } __CCP2CONbits_t;
950
951 extern volatile __CCP2CONbits_t __at 0xfba CCP2CONbits;
952
953 extern __sfr __at 0xfbb CCPR2L;
954 extern __sfr __at 0xfbc CCPR2H;
955 extern __sfr __at 0xfbd CCP1CON;
956 typedef union {
957         struct {
958                 unsigned CCP1M0:1;
959                 unsigned CCP1M1:1;
960                 unsigned CCP1M2:1;
961                 unsigned CCP1M3:1;
962                 unsigned DCCP1Y:1;
963                 unsigned DCCP1X:1;
964                 unsigned :1;
965                 unsigned :1;
966         };
967 } __CCP1CONbits_t;
968
969 extern volatile __CCP1CONbits_t __at 0xfbd CCP1CONbits;
970
971 extern __sfr __at 0xfbe CCPR1L;
972 extern __sfr __at 0xfbf CCPR1H;
973 extern __sfr __at 0xfc0 ADCON2;
974 typedef union {
975         struct {
976                 unsigned ADCS0:1;
977                 unsigned ADCS1:1;
978                 unsigned ADCS2:1;
979                 unsigned :1;
980                 unsigned :1;
981                 unsigned :1;
982                 unsigned :1;
983                 unsigned ADFM:1;
984         };
985 } __ADCON2bits_t;
986
987 extern volatile __ADCON2bits_t __at 0xfc0 ADCON2bits;
988
989 extern __sfr __at 0xfc1 ADCON1;
990 typedef union {
991         struct {
992                 unsigned PCFG0:1;
993                 unsigned PCFG1:1;
994                 unsigned PCFG2:1;
995                 unsigned PCFG3:1;
996                 unsigned VCFG0:1;
997                 unsigned VCFG1:1;
998                 unsigned :1;
999                 unsigned :1;
1000         };
1001 } __ADCON1bits_t;
1002
1003 extern volatile __ADCON1bits_t __at 0xfc1 ADCON1bits;
1004
1005 extern __sfr __at 0xfc2 ADCON0;
1006 typedef union {
1007         struct {
1008                 unsigned ADON:1;
1009                 unsigned GO:1;
1010                 unsigned CHS0:1;
1011                 unsigned CHS1:1;
1012                 unsigned CHS2:1;
1013                 unsigned CHS3:1;
1014                 unsigned :1;
1015                 unsigned :1;
1016         };
1017 } __ADCON0bits_t;
1018
1019 extern volatile __ADCON0bits_t __at 0xfc2 ADCON0bits;
1020
1021 extern __sfr __at 0xfc3 ADRESL;
1022 extern __sfr __at 0xfc4 ADRESH;
1023 extern __sfr __at 0xfc5 SSPCON2;
1024 typedef union {
1025         struct {
1026                 unsigned SEN:1;
1027                 unsigned RSEN:1;
1028                 unsigned PEN:1;
1029                 unsigned RCEN:1;
1030                 unsigned ACKEN:1;
1031                 unsigned ACKDT:1;
1032                 unsigned ACKSTAT:1;
1033                 unsigned GCEN:1;
1034         };
1035 } __SSPCON2bits_t;
1036
1037 extern volatile __SSPCON2bits_t __at 0xfc5 SSPCON2bits;
1038
1039 extern __sfr __at 0xfc6 SSPCON1;
1040 typedef union {
1041         struct {
1042                 unsigned SSPM0:1;
1043                 unsigned SSPM1:1;
1044                 unsigned SSPM2:1;
1045                 unsigned SSPM3:1;
1046                 unsigned CKP:1;
1047                 unsigned SSPEN:1;
1048                 unsigned SSPOV:1;
1049                 unsigned WCOL:1;
1050         };
1051 } __SSPCON1bits_t;
1052
1053 extern volatile __SSPCON1bits_t __at 0xfc6 SSPCON1bits;
1054
1055 extern __sfr __at 0xfc7 SSPSTAT;
1056 typedef union {
1057         struct {
1058                 unsigned BF:1;
1059                 unsigned UA:1;
1060                 unsigned R_W:1;
1061                 unsigned S:1;
1062                 unsigned P:1;
1063                 unsigned D_A:1;
1064                 unsigned CKE:1;
1065                 unsigned SMP:1;
1066         };
1067 } __SSPSTATbits_t;
1068
1069 extern volatile __SSPSTATbits_t __at 0xfc7 SSPSTATbits;
1070
1071 extern __sfr __at 0xfc8 SSPADD;
1072 extern __sfr __at 0xfc9 SSPBUF;
1073 extern __sfr __at 0xfca T2CON;
1074 typedef union {
1075         struct {
1076                 unsigned T2CKPS0:1;
1077                 unsigned T2CKPS1:1;
1078                 unsigned TMR2ON:1;
1079                 unsigned TOUTPS0:1;
1080                 unsigned TOUTPS1:1;
1081                 unsigned TOUTPS2:1;
1082                 unsigned TOUTPS3:1;
1083                 unsigned :1;
1084         };
1085 } __T2CONbits_t;
1086
1087 extern volatile __T2CONbits_t __at 0xfca T2CONbits;
1088
1089 extern __sfr __at 0xfcb PR2;
1090 extern __sfr __at 0xfcc TMR2;
1091 extern __sfr __at 0xfcd T1CON;
1092 typedef union {
1093         struct {
1094                 unsigned TMR1ON:1;
1095                 unsigned TMR1CS:1;
1096                 unsigned NOT_T1SYNC:1;
1097                 unsigned T1OSCEN:1;
1098                 unsigned T1CKPS0:1;
1099                 unsigned T1CKPS1:1;
1100                 unsigned :1;
1101                 unsigned RD16:1;
1102         };
1103 } __T1CONbits_t;
1104
1105 extern volatile __T1CONbits_t __at 0xfcd T1CONbits;
1106
1107 extern __sfr __at 0xfce TMR1L;
1108 extern __sfr __at 0xfcf TMR1H;
1109 extern __sfr __at 0xfd0 RCON;
1110 typedef union {
1111         struct {
1112                 unsigned BOR:1;
1113                 unsigned POR:1;
1114                 unsigned PD:1;
1115                 unsigned TO:1;
1116                 unsigned RI:1;
1117                 unsigned :1;
1118                 unsigned :1;
1119                 unsigned IPEN:1;
1120         };
1121 } __RCONbits_t;
1122
1123 extern volatile __RCONbits_t __at 0xfd0 RCONbits;
1124
1125 extern __sfr __at 0xfd1 WDTCON;
1126 typedef union {
1127         struct {
1128                 unsigned SWDTEN:1;
1129                 unsigned :1;
1130                 unsigned :1;
1131                 unsigned :1;
1132                 unsigned :1;
1133                 unsigned :1;
1134                 unsigned :1;
1135                 unsigned :1;
1136         };
1137
1138         struct {
1139                 unsigned SWDTE:1;
1140                 unsigned :1;
1141                 unsigned :1;
1142                 unsigned :1;
1143                 unsigned :1;
1144                 unsigned :1;
1145                 unsigned :1;
1146                 unsigned :1;
1147         };
1148 } __WDTCONbits_t;
1149
1150 extern volatile __WDTCONbits_t __at 0xfd1 WDTCONbits;
1151
1152 extern __sfr __at 0xfd2 LVDCON;
1153 typedef union {
1154         struct {
1155                 unsigned LVDL0:1;
1156                 unsigned LVDL1:1;
1157                 unsigned LVDL2:1;
1158                 unsigned LVDL3:1;
1159                 unsigned LVDEN:1;
1160                 unsigned VRST:1;
1161                 unsigned :1;
1162                 unsigned :1;
1163         };
1164
1165         struct {
1166                 unsigned LVV0:1;
1167                 unsigned LVV1:1;
1168                 unsigned LVV2:1;
1169                 unsigned LVV3:1;
1170                 unsigned :1;
1171                 unsigned BGST:1;
1172                 unsigned :1;
1173                 unsigned :1;
1174         };
1175 } __LVDCONbits_t;
1176
1177 extern volatile __LVDCONbits_t __at 0xfd2 LVDCONbits;
1178
1179 extern __sfr __at 0xfd3 OSCCON;
1180 typedef union {
1181         struct {
1182                 unsigned SCS:1;
1183                 unsigned :1;
1184                 unsigned :1;
1185                 unsigned :1;
1186                 unsigned :1;
1187                 unsigned :1;
1188                 unsigned :1;
1189                 unsigned :1;
1190         };
1191 } __OSCCONbits_t;
1192
1193 extern volatile __OSCCONbits_t __at 0xfd3 OSCCONbits;
1194
1195 extern __sfr __at 0xfd5 T0CON;
1196 extern __sfr __at 0xfd6 TMR0L;
1197 extern __sfr __at 0xfd7 TMR0H;
1198 extern __sfr __at 0xfd8 STATUS;
1199 typedef union {
1200         struct {
1201                 unsigned C:1;
1202                 unsigned DC:1;
1203                 unsigned Z:1;
1204                 unsigned OV:1;
1205                 unsigned N:1;
1206                 unsigned :1;
1207                 unsigned :1;
1208                 unsigned :1;
1209         };
1210 } __STATUSbits_t;
1211
1212 extern volatile __STATUSbits_t __at 0xfd8 STATUSbits;
1213
1214 extern __sfr __at 0xfd9 FSR2L;
1215 extern __sfr __at 0xfda FSR2H;
1216 extern __sfr __at 0xfdb PLUSW2;
1217 extern __sfr __at 0xfdc PREINC2;
1218 extern __sfr __at 0xfdd POSTDEC2;
1219 extern __sfr __at 0xfde POSTINC2;
1220 extern __sfr __at 0xfdf INDF2;
1221 extern __sfr __at 0xfe0 BSR;
1222 extern __sfr __at 0xfe1 FSR1L;
1223 extern __sfr __at 0xfe2 FSR1H;
1224 extern __sfr __at 0xfe3 PLUSW1;
1225 extern __sfr __at 0xfe4 PREINC1;
1226 extern __sfr __at 0xfe5 POSTDEC1;
1227 extern __sfr __at 0xfe6 POSTINC1;
1228 extern __sfr __at 0xfe7 INDF1;
1229 extern __sfr __at 0xfe8 WREG;
1230 extern __sfr __at 0xfe9 FSR0L;
1231 extern __sfr __at 0xfea FSR0H;
1232 extern __sfr __at 0xfeb PLUSW0;
1233 extern __sfr __at 0xfec PREINC0;
1234 extern __sfr __at 0xfed POSTDEC0;
1235 extern __sfr __at 0xfee POSTINC0;
1236 extern __sfr __at 0xfef INDF0;
1237 extern __sfr __at 0xff0 INTCON3;
1238 typedef union {
1239         struct {
1240                 unsigned INT1F:1;
1241                 unsigned INT2F:1;
1242                 unsigned INT3F:1;
1243                 unsigned INT1E:1;
1244                 unsigned INT2E:1;
1245                 unsigned INT3E:1;
1246                 unsigned INT1P:1;
1247                 unsigned INT2P:1;
1248         };
1249
1250         struct {
1251                 unsigned INT1IF:1;
1252                 unsigned INT2IF:1;
1253                 unsigned INT3IF:1;
1254                 unsigned INT1IE:1;
1255                 unsigned INT2IE:1;
1256                 unsigned INT3IE:1;
1257                 unsigned INT1IP:1;
1258                 unsigned INT2IP:1;
1259         };
1260 } __INTCON3bits_t;
1261
1262 extern volatile __INTCON3bits_t __at 0xff0 INTCON3bits;
1263
1264 extern __sfr __at 0xff1 INTCON2;
1265 typedef union {
1266         struct {
1267                 unsigned RBIP:1;
1268                 unsigned INT3P:1;
1269                 unsigned T0IP:1;
1270                 unsigned INTEDG3:1;
1271                 unsigned INTEDG2:1;
1272                 unsigned INTEDG1:1;
1273                 unsigned INTEDG0:1;
1274                 unsigned RBPU:1;
1275         };
1276 } __INTCON2bits_t;
1277
1278 extern volatile __INTCON2bits_t __at 0xff1 INTCON2bits;
1279
1280 extern __sfr __at 0xff2 INTCON;
1281 typedef union {
1282         struct {
1283                 unsigned RBIF:1;
1284                 unsigned INT0F:1;
1285                 unsigned T0IF:1;
1286                 unsigned RBIE:1;
1287                 unsigned INT0E:1;
1288                 unsigned T0IE:1;
1289                 unsigned PEIE:1;
1290                 unsigned GIE:1;
1291         };
1292 } __INTCONbits_t;
1293
1294 extern volatile __INTCONbits_t __at 0xff2 INTCONbits;
1295
1296 extern __sfr __at 0xff3 PRODL;
1297 extern __sfr __at 0xff4 PRODH;
1298 extern __sfr __at 0xff5 TABLAT;
1299 extern __sfr __at 0xff6 TBLPTRL;
1300 extern __sfr __at 0xff7 TBLPTRH;
1301 extern __sfr __at 0xff8 TBLPTRU;
1302 extern __sfr __at 0xff9 PCL;
1303 extern __sfr __at 0xffa PCLATH;
1304 extern __sfr __at 0xffb PCLATU;
1305 extern __sfr __at 0xffc STKPTR;
1306 typedef union {
1307         struct {
1308                 unsigned STKPTR0:1;
1309                 unsigned STKPTR1:1;
1310                 unsigned STKPTR2:1;
1311                 unsigned STKPTR3:1;
1312                 unsigned STKPTR4:1;
1313                 unsigned :1;
1314                 unsigned STKUNF:1;
1315                 unsigned STKFUL:1;
1316         };
1317 } __STKPTRbits_t;
1318
1319 extern volatile __STKPTRbits_t __at 0xffc STKPTRbits;
1320
1321 extern __sfr __at 0xffd TOSL;
1322 extern __sfr __at 0xffe TOSH;
1323 extern __sfr __at 0xfff TOSU;
1324
1325
1326 /* Configuration registers locations */
1327 #define __CONFIG1H      0x300001
1328 #define __CONFIG2L      0x300002
1329 #define __CONFIG2H      0x300003
1330 #define __CONFIG3L      0x300004
1331 #define __CONFIG3H      0x300005
1332 #define __CONFIG4L      0x300006
1333 #define __CONFIG5L      0x300008
1334 #define __CONFIG5H      0x300009
1335 #define __CONFIG6L      0x30000A
1336 #define __CONFIG6H      0x30000B
1337 #define __CONFIG7L      0x30000C
1338 #define __CONFIG7H      0x30000D
1339
1340
1341
1342 /* Oscillator 1H options */
1343 #define _OSC_RC_OSC2_1H 0xFF    /* RC-OSC2 as RA6 */
1344 #define _OSC_HS_PLL_1H  0xFE    /* HS-PLL Enabled */
1345 #define _OSC_EC_OSC2_RA6_1H     0xFD    /* EC-OSC2 as RA6 */
1346 #define _OSC_EC_OSC2_Clock_Out_1H       0xFC    /* EC-OSC2 as Clock_Out */
1347 #define _OSC_RC_1H      0xFB    /* RC */
1348 #define _OSC_HS_1H      0xFA    /* HS */
1349 #define _OSC_XT_1H      0xF9    /* XT */
1350 #define _OSC_LP_1H      0xF8    /* LP */
1351
1352 /* Osc. Switch Enable 1H options */
1353 #define _OSCS_OFF_1H    0xFF    /* Disabled */
1354 #define _OSCS_ON_1H     0xDF    /* Enabled */
1355
1356 /* Power Up Timer 2L options */
1357 #define _PUT_OFF_2L     0xFF    /* Disabled */
1358 #define _PUT_ON_2L      0xFE    /* Enabled */
1359
1360 /* Brown Out Detect 2L options */
1361 #define _BODEN_ON_2L    0xFF    /* Enabled */
1362 #define _BODEN_OFF_2L   0xFD    /* Disabled */
1363
1364 /* Brown Out Voltage 2L options */
1365 #define _BODENV_2_5V_2L 0xFF    /* 2.5V */
1366 #define _BODENV_2_7V_2L 0xFB    /* 2.7V */
1367 #define _BODENV_4_2V_2L 0xF7    /* 4.2V */
1368 #define _BODENV_4_5V_2L 0xF3    /* 4.5V */
1369
1370 /* Watchdog Timer 2H options */
1371 #define _WDT_ON_2H      0xFF    /* Enabled */
1372 #define _WDT_OFF_2H     0xFE    /* Disabled */
1373
1374 /* Watchdog Postscaler 2H options */
1375 #define _WDTPS_1_128_2H 0xFF    /* 1:128 */
1376 #define _WDTPS_1_64_2H  0xFD    /* 1:64 */
1377 #define _WDTPS_1_32_2H  0xFB    /* 1:32 */
1378 #define _WDTPS_1_16_2H  0xF9    /* 1:16 */
1379 #define _WDTPS_1_8_2H   0xF7    /* 1:8 */
1380 #define _WDTPS_1_4_2H   0xF5    /* 1:4 */
1381 #define _WDTPS_1_2_2H   0xF3    /* 1:2 */
1382 #define _WDTPS_1_1_2H   0xF1    /* 1:1 */
1383
1384 /* Processor Mode 3L options */
1385 #define _PMODE_MICROCONTROLLER_3L       0xFF    /* Microcontroller */
1386 #define _PMODE_MICROPROCESSOR__3L       0xFE    /* Microprocessor */
1387 #define _PMODE_MICROPROCESSOR_w_Boot_3L 0xFD    /* Microprocessor w_Boot */
1388 #define _PMODE_EXT_3L   0xFC    /* Ext Microcontroller */
1389
1390 /* External Bus Wait 3L options */
1391 #define _WAIT_OFF_3L    0xFF    /* Disabled */
1392 #define _WAIT_ON_3L     0x7F    /* Enabled */
1393
1394 /* CCP2 Mux 3H options */
1395 #define _CCP2MUX_RC1_3H 0xFF    /* RC1 */
1396 #define _CCP2MUX_RE7_MICROCONTROLLER__RB3_3H    0xFE    /* RE7(Microcontroller)/RB3 */
1397
1398 /* Low Voltage Program 4L options */
1399 #define _LVP_ON_4L      0xFF    /* Enabled */
1400 #define _LVP_OFF_4L     0xFB    /* Disabled */
1401
1402 /* Background Debug 4L options */
1403 #define _BACKBUG_OFF_4L 0xFF    /* Disabled */
1404 #define _BACKBUG_ON_4L  0x7F    /* Enabled */
1405
1406 /* Stack Overflow Reset 4L options */
1407 #define _STVR_ON_4L     0xFF    /* Enabled */
1408 #define _STVR_OFF_4L    0xFE    /* Disabled */
1409
1410 /* Code Protect 00200-03FFF 5L options */
1411 #define _CP_0_OFF_5L    0xFF    /* Disabled */
1412 #define _CP_0_ON_5L     0xFE    /* Enabled */
1413
1414 /* Code Protect 04000-07FFF 5L options */
1415 #define _CP_1_OFF_5L    0xFF    /* Disabled */
1416 #define _CP_1_ON_5L     0xFD    /* Enabled */
1417
1418 /* Code Protect 08000-0BFFF 5L options */
1419 #define _CP_2_OFF_5L    0xFF    /* Disabled */
1420 #define _CP_2_ON_5L     0xFB    /* Enabled */
1421
1422 /* Code Protect 0C000-0FFFF 5L options */
1423 #define _CP_3_OFF_5L    0xFF    /* Disabled */
1424 #define _CP_3_ON_5L     0xF7    /* Enabled */
1425
1426 /* Data EE Read Protect 5H options */
1427 #define _CPD_OFF_5H     0xFF    /* Disabled */
1428 #define _CPD_ON_5H      0x7F    /* Enabled */
1429
1430 /* Code Protect Boot 5H options */
1431 #define _CPB_OFF_5H     0xFF    /* Disabled */
1432 #define _CPB_ON_5H      0xBF    /* Enabled */
1433
1434 /* Table Write Protect 00200-03FFF 6L options */
1435 #define _WRT_0_OFF_6L   0xFF    /* Disabled */
1436 #define _WRT_0_ON_6L    0xFE    /* Enabled */
1437
1438 /* Table Write Protect 04000-07FFF 6L options */
1439 #define _WRT_1_OFF_6L   0xFF    /* Disabled */
1440 #define _WRT_1_ON_6L    0xFD    /* Enabled */
1441
1442 /* Table Write Protect 08000-0BFFF 6L options */
1443 #define _WRT_2_OFF_6L   0xFF    /* Disabled */
1444 #define _WRT_2_ON_6L    0xFB    /* Enabled */
1445
1446 /* Table Write Protect 0C000-0FFFF 6L options */
1447 #define _WRT_3_OFF_6L   0xFF    /* Disabled */
1448 #define _WRT_3_ON_6L    0xF7    /* Enabled */
1449
1450 /* Data EE Write Protect 6H options */
1451 #define _WRTD_OFF_6H    0xFF    /* Disabled */
1452 #define _WRTD_ON_6H     0x7F    /* Enabled */
1453
1454 /* Table Write Protect Boot 6H options */
1455 #define _WRTB_OFF_6H    0xFF    /* Disabled */
1456 #define _WRTB_ON_6H     0xBF    /* Enabled */
1457
1458 /* Config. Write Protect 6H options */
1459 #define _WRTC_OFF_6H    0xFF    /* Disabled */
1460 #define _WRTC_ON_6H     0xDF    /* Enabled */
1461
1462 /* Table Read Protect 00200-03FFF 7L options */
1463 #define _EBTR_0_OFF_7L  0xFF    /* Disabled */
1464 #define _EBTR_0_ON_7L   0xFE    /* Enabled */
1465
1466 /* Table Read Protect 04000-07FFF 7L options */
1467 #define _EBTR_1_OFF_7L  0xFF    /* Disabled */
1468 #define _EBTR_1_ON_7L   0xFD    /* Enabled */
1469
1470 /* Table Read Protect 08000-0BFFF 7L options */
1471 #define _EBTR_2_OFF_7L  0xFF    /* Disabled */
1472 #define _EBTR_2_ON_7L   0xFB    /* Enabled */
1473
1474 /* Table Read Protect 0C000-0FFFF 7L options */
1475 #define _EBTR_3_OFF_7L  0xFF    /* Disabled */
1476 #define _EBTR_3_ON_7L   0xF7    /* Enabled */
1477
1478 /* Table Read Protect Boot 7H options */
1479 #define _EBTRB_OFF_7H   0xFF    /* Disabled */
1480 #define _EBTRB_ON_7H    0xBF    /* Enabled */
1481
1482
1483 /* Device ID locations */
1484 #define __IDLOC0        0x200000
1485 #define __IDLOC1        0x200001
1486 #define __IDLOC2        0x200002
1487 #define __IDLOC3        0x200003
1488 #define __IDLOC4        0x200004
1489 #define __IDLOC5        0x200005
1490 #define __IDLOC6        0x200006
1491 #define __IDLOC7        0x200007
1492
1493
1494 #endif