1 /*
2  * This declarations of the PIC18LF24K22 MCU.
3  *
4  * This file is part of the GNU PIC library for SDCC, originally
5  * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
6  *
7  * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:53 UTC.
8  *
9  * SDCC is licensed under the GNU Public license (GPL) v2. Note that
10  * this license covers the code to the compiler and other executables,
11  * but explicitly does not cover any code or objects generated by sdcc.
12  *
13  * For pic device libraries and header files which are derived from
14  * Microchip header (.inc) and linker script (.lkr) files Microchip
15  * requires that "The header files should state that they are only to be
16  * used with authentic Microchip devices" which makes them incompatible
17  * with the GPL. Pic device libraries and header files are located at
18  * non-free/lib and non-free/include directories respectively.
19  * Sdcc should be run with the --use-non-free command line option in
20  * order to include non-free header files and libraries.
21  *
22  * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
23  */
24 
25 #ifndef __PIC18LF24K22_H__
26 #define __PIC18LF24K22_H__
27 
28 //==============================================================================
29 
30 //==============================================================================
31 //
32 //	Register Definitions
33 //
34 //==============================================================================
35 
36 
37 //==============================================================================
38 //        ANSELA Bits
39 
40 extern __at(0x0F38) __sfr ANSELA;
41 
42 typedef struct
43   {
44   unsigned ANSA0                : 1;
45   unsigned ANSA1                : 1;
46   unsigned ANSA2                : 1;
47   unsigned ANSA3                : 1;
48   unsigned                      : 1;
49   unsigned ANSA5                : 1;
50   unsigned                      : 1;
51   unsigned                      : 1;
52   } __ANSELAbits_t;
53 
54 extern __at(0x0F38) volatile __ANSELAbits_t ANSELAbits;
55 
56 #define _ANSA0                  0x01
57 #define _ANSA1                  0x02
58 #define _ANSA2                  0x04
59 #define _ANSA3                  0x08
60 #define _ANSA5                  0x20
61 
62 //==============================================================================
63 
64 
65 //==============================================================================
66 //        ANSELB Bits
67 
68 extern __at(0x0F39) __sfr ANSELB;
69 
70 typedef union
71   {
72   struct
73     {
74     unsigned ANSB0              : 1;
75     unsigned ANSB1              : 1;
76     unsigned ANSB2              : 1;
77     unsigned ANSB3              : 1;
78     unsigned ANSB4              : 1;
79     unsigned ANSB5              : 1;
80     unsigned                    : 1;
81     unsigned                    : 1;
82     };
83 
84   struct
85     {
86     unsigned ANSB               : 6;
87     unsigned                    : 2;
88     };
89   } __ANSELBbits_t;
90 
91 extern __at(0x0F39) volatile __ANSELBbits_t ANSELBbits;
92 
93 #define _ANSB0                  0x01
94 #define _ANSB1                  0x02
95 #define _ANSB2                  0x04
96 #define _ANSB3                  0x08
97 #define _ANSB4                  0x10
98 #define _ANSB5                  0x20
99 
100 //==============================================================================
101 
102 
103 //==============================================================================
104 //        ANSELC Bits
105 
106 extern __at(0x0F3A) __sfr ANSELC;
107 
108 typedef struct
109   {
110   unsigned                      : 1;
111   unsigned                      : 1;
112   unsigned ANSC2                : 1;
113   unsigned ANSC3                : 1;
114   unsigned ANSC4                : 1;
115   unsigned ANSC5                : 1;
116   unsigned ANSC6                : 1;
117   unsigned ANSC7                : 1;
118   } __ANSELCbits_t;
119 
120 extern __at(0x0F3A) volatile __ANSELCbits_t ANSELCbits;
121 
122 #define _ANSC2                  0x04
123 #define _ANSC3                  0x08
124 #define _ANSC4                  0x10
125 #define _ANSC5                  0x20
126 #define _ANSC6                  0x40
127 #define _ANSC7                  0x80
128 
129 //==============================================================================
130 
131 
132 //==============================================================================
133 //        PMD2 Bits
134 
135 extern __at(0x0F3D) __sfr PMD2;
136 
137 typedef struct
138   {
139   unsigned ADCMD                : 1;
140   unsigned CMP1MD               : 1;
141   unsigned CMP2MD               : 1;
142   unsigned CTMUMD               : 1;
143   unsigned                      : 1;
144   unsigned                      : 1;
145   unsigned                      : 1;
146   unsigned                      : 1;
147   } __PMD2bits_t;
148 
149 extern __at(0x0F3D) volatile __PMD2bits_t PMD2bits;
150 
151 #define _ADCMD                  0x01
152 #define _CMP1MD                 0x02
153 #define _CMP2MD                 0x04
154 #define _CTMUMD                 0x08
155 
156 //==============================================================================
157 
158 
159 //==============================================================================
160 //        PMD1 Bits
161 
162 extern __at(0x0F3E) __sfr PMD1;
163 
164 typedef struct
165   {
166   unsigned CCP1MD               : 1;
167   unsigned CCP2MD               : 1;
168   unsigned CCP3MD               : 1;
169   unsigned CCP4MD               : 1;
170   unsigned CCP5MD               : 1;
171   unsigned                      : 1;
172   unsigned MSSP1MD              : 1;
173   unsigned MSSP2MD              : 1;
174   } __PMD1bits_t;
175 
176 extern __at(0x0F3E) volatile __PMD1bits_t PMD1bits;
177 
178 #define _CCP1MD                 0x01
179 #define _CCP2MD                 0x02
180 #define _CCP3MD                 0x04
181 #define _CCP4MD                 0x08
182 #define _CCP5MD                 0x10
183 #define _MSSP1MD                0x40
184 #define _MSSP2MD                0x80
185 
186 //==============================================================================
187 
188 
189 //==============================================================================
190 //        PMD0 Bits
191 
192 extern __at(0x0F3F) __sfr PMD0;
193 
194 typedef struct
195   {
196   unsigned TMR1MD               : 1;
197   unsigned TMR2MD               : 1;
198   unsigned TMR3MD               : 1;
199   unsigned TMR4MD               : 1;
200   unsigned TMR5MD               : 1;
201   unsigned TMR6MD               : 1;
202   unsigned UART1MD              : 1;
203   unsigned UART2MD              : 1;
204   } __PMD0bits_t;
205 
206 extern __at(0x0F3F) volatile __PMD0bits_t PMD0bits;
207 
208 #define _TMR1MD                 0x01
209 #define _TMR2MD                 0x02
210 #define _TMR3MD                 0x04
211 #define _TMR4MD                 0x08
212 #define _TMR5MD                 0x10
213 #define _TMR6MD                 0x20
214 #define _UART1MD                0x40
215 #define _UART2MD                0x80
216 
217 //==============================================================================
218 
219 
220 //==============================================================================
221 //        DACCON1 Bits
222 
223 extern __at(0x0F40) __sfr DACCON1;
224 
225 typedef union
226   {
227   struct
228     {
229     unsigned DACR0              : 1;
230     unsigned DACR1              : 1;
231     unsigned DACR2              : 1;
232     unsigned DACR3              : 1;
233     unsigned DACR4              : 1;
234     unsigned                    : 1;
235     unsigned                    : 1;
236     unsigned                    : 1;
237     };
238 
239   struct
240     {
241     unsigned DACR               : 5;
242     unsigned                    : 3;
243     };
244   } __DACCON1bits_t;
245 
246 extern __at(0x0F40) volatile __DACCON1bits_t DACCON1bits;
247 
248 #define _DACR0                  0x01
249 #define _DACR1                  0x02
250 #define _DACR2                  0x04
251 #define _DACR3                  0x08
252 #define _DACR4                  0x10
253 
254 //==============================================================================
255 
256 
257 //==============================================================================
258 //        VREFCON2 Bits
259 
260 extern __at(0x0F40) __sfr VREFCON2;
261 
262 typedef union
263   {
264   struct
265     {
266     unsigned DACR0              : 1;
267     unsigned DACR1              : 1;
268     unsigned DACR2              : 1;
269     unsigned DACR3              : 1;
270     unsigned DACR4              : 1;
271     unsigned                    : 1;
272     unsigned                    : 1;
273     unsigned                    : 1;
274     };
275 
276   struct
277     {
278     unsigned DACR               : 5;
279     unsigned                    : 3;
280     };
281   } __VREFCON2bits_t;
282 
283 extern __at(0x0F40) volatile __VREFCON2bits_t VREFCON2bits;
284 
285 #define _VREFCON2_DACR0         0x01
286 #define _VREFCON2_DACR1         0x02
287 #define _VREFCON2_DACR2         0x04
288 #define _VREFCON2_DACR3         0x08
289 #define _VREFCON2_DACR4         0x10
290 
291 //==============================================================================
292 
293 
294 //==============================================================================
295 //        DACCON0 Bits
296 
297 extern __at(0x0F41) __sfr DACCON0;
298 
299 typedef union
300   {
301   struct
302     {
303     unsigned DACNSS             : 1;
304     unsigned                    : 1;
305     unsigned DACPSS0            : 1;
306     unsigned DACPSS1            : 1;
307     unsigned                    : 1;
308     unsigned DACOE              : 1;
309     unsigned DACLPS             : 1;
310     unsigned DACEN              : 1;
311     };
312 
313   struct
314     {
315     unsigned                    : 2;
316     unsigned DACPSS             : 2;
317     unsigned                    : 4;
318     };
319   } __DACCON0bits_t;
320 
321 extern __at(0x0F41) volatile __DACCON0bits_t DACCON0bits;
322 
323 #define _DACNSS                 0x01
324 #define _DACPSS0                0x04
325 #define _DACPSS1                0x08
326 #define _DACOE                  0x20
327 #define _DACLPS                 0x40
328 #define _DACEN                  0x80
329 
330 //==============================================================================
331 
332 
333 //==============================================================================
334 //        VREFCON1 Bits
335 
336 extern __at(0x0F41) __sfr VREFCON1;
337 
338 typedef union
339   {
340   struct
341     {
342     unsigned DACNSS             : 1;
343     unsigned                    : 1;
344     unsigned DACPSS0            : 1;
345     unsigned DACPSS1            : 1;
346     unsigned                    : 1;
347     unsigned DACOE              : 1;
348     unsigned DACLPS             : 1;
349     unsigned DACEN              : 1;
350     };
351 
352   struct
353     {
354     unsigned                    : 2;
355     unsigned DACPSS             : 2;
356     unsigned                    : 4;
357     };
358   } __VREFCON1bits_t;
359 
360 extern __at(0x0F41) volatile __VREFCON1bits_t VREFCON1bits;
361 
362 #define _VREFCON1_DACNSS        0x01
363 #define _VREFCON1_DACPSS0       0x04
364 #define _VREFCON1_DACPSS1       0x08
365 #define _VREFCON1_DACOE         0x20
366 #define _VREFCON1_DACLPS        0x40
367 #define _VREFCON1_DACEN         0x80
368 
369 //==============================================================================
370 
371 
372 //==============================================================================
373 //        FVRCON Bits
374 
375 extern __at(0x0F42) __sfr FVRCON;
376 
377 typedef union
378   {
379   struct
380     {
381     unsigned                    : 1;
382     unsigned                    : 1;
383     unsigned                    : 1;
384     unsigned                    : 1;
385     unsigned FVRS0              : 1;
386     unsigned FVRS1              : 1;
387     unsigned FVRST              : 1;
388     unsigned FVREN              : 1;
389     };
390 
391   struct
392     {
393     unsigned                    : 4;
394     unsigned FVRS               : 2;
395     unsigned                    : 2;
396     };
397   } __FVRCONbits_t;
398 
399 extern __at(0x0F42) volatile __FVRCONbits_t FVRCONbits;
400 
401 #define _FVRS0                  0x10
402 #define _FVRS1                  0x20
403 #define _FVRST                  0x40
404 #define _FVREN                  0x80
405 
406 //==============================================================================
407 
408 
409 //==============================================================================
410 //        VREFCON0 Bits
411 
412 extern __at(0x0F42) __sfr VREFCON0;
413 
414 typedef union
415   {
416   struct
417     {
418     unsigned                    : 1;
419     unsigned                    : 1;
420     unsigned                    : 1;
421     unsigned                    : 1;
422     unsigned FVRS0              : 1;
423     unsigned FVRS1              : 1;
424     unsigned FVRST              : 1;
425     unsigned FVREN              : 1;
426     };
427 
428   struct
429     {
430     unsigned                    : 4;
431     unsigned FVRS               : 2;
432     unsigned                    : 2;
433     };
434   } __VREFCON0bits_t;
435 
436 extern __at(0x0F42) volatile __VREFCON0bits_t VREFCON0bits;
437 
438 #define _VREFCON0_FVRS0         0x10
439 #define _VREFCON0_FVRS1         0x20
440 #define _VREFCON0_FVRST         0x40
441 #define _VREFCON0_FVREN         0x80
442 
443 //==============================================================================
444 
445 
446 //==============================================================================
447 //        CTMUICON Bits
448 
449 extern __at(0x0F43) __sfr CTMUICON;
450 
451 typedef union
452   {
453   struct
454     {
455     unsigned IRNG0              : 1;
456     unsigned IRNG1              : 1;
457     unsigned ITRIM0             : 1;
458     unsigned ITRIM1             : 1;
459     unsigned ITRIM2             : 1;
460     unsigned ITRIM3             : 1;
461     unsigned ITRIM4             : 1;
462     unsigned ITRIM5             : 1;
463     };
464 
465   struct
466     {
467     unsigned IRNG               : 2;
468     unsigned                    : 6;
469     };
470 
471   struct
472     {
473     unsigned                    : 2;
474     unsigned ITRIM              : 6;
475     };
476   } __CTMUICONbits_t;
477 
478 extern __at(0x0F43) volatile __CTMUICONbits_t CTMUICONbits;
479 
480 #define _IRNG0                  0x01
481 #define _IRNG1                  0x02
482 #define _ITRIM0                 0x04
483 #define _ITRIM1                 0x08
484 #define _ITRIM2                 0x10
485 #define _ITRIM3                 0x20
486 #define _ITRIM4                 0x40
487 #define _ITRIM5                 0x80
488 
489 //==============================================================================
490 
491 
492 //==============================================================================
493 //        CTMUICONH Bits
494 
495 extern __at(0x0F43) __sfr CTMUICONH;
496 
497 typedef union
498   {
499   struct
500     {
501     unsigned IRNG0              : 1;
502     unsigned IRNG1              : 1;
503     unsigned ITRIM0             : 1;
504     unsigned ITRIM1             : 1;
505     unsigned ITRIM2             : 1;
506     unsigned ITRIM3             : 1;
507     unsigned ITRIM4             : 1;
508     unsigned ITRIM5             : 1;
509     };
510 
511   struct
512     {
513     unsigned IRNG               : 2;
514     unsigned                    : 6;
515     };
516 
517   struct
518     {
519     unsigned                    : 2;
520     unsigned ITRIM              : 6;
521     };
522   } __CTMUICONHbits_t;
523 
524 extern __at(0x0F43) volatile __CTMUICONHbits_t CTMUICONHbits;
525 
526 #define _CTMUICONH_IRNG0        0x01
527 #define _CTMUICONH_IRNG1        0x02
528 #define _CTMUICONH_ITRIM0       0x04
529 #define _CTMUICONH_ITRIM1       0x08
530 #define _CTMUICONH_ITRIM2       0x10
531 #define _CTMUICONH_ITRIM3       0x20
532 #define _CTMUICONH_ITRIM4       0x40
533 #define _CTMUICONH_ITRIM5       0x80
534 
535 //==============================================================================
536 
537 
538 //==============================================================================
539 //        CTMUCON1 Bits
540 
541 extern __at(0x0F44) __sfr CTMUCON1;
542 
543 typedef union
544   {
545   struct
546     {
547     unsigned EDG1STAT           : 1;
548     unsigned EDG2STAT           : 1;
549     unsigned EDG1SEL0           : 1;
550     unsigned EDG1SEL1           : 1;
551     unsigned EDG1POL            : 1;
552     unsigned EDG2SEL0           : 1;
553     unsigned EDG2SEL1           : 1;
554     unsigned EDG2POL            : 1;
555     };
556 
557   struct
558     {
559     unsigned                    : 2;
560     unsigned EDG1SEL            : 2;
561     unsigned                    : 4;
562     };
563 
564   struct
565     {
566     unsigned                    : 5;
567     unsigned EDG2SEL            : 2;
568     unsigned                    : 1;
569     };
570   } __CTMUCON1bits_t;
571 
572 extern __at(0x0F44) volatile __CTMUCON1bits_t CTMUCON1bits;
573 
574 #define _EDG1STAT               0x01
575 #define _EDG2STAT               0x02
576 #define _EDG1SEL0               0x04
577 #define _EDG1SEL1               0x08
578 #define _EDG1POL                0x10
579 #define _EDG2SEL0               0x20
580 #define _EDG2SEL1               0x40
581 #define _EDG2POL                0x80
582 
583 //==============================================================================
584 
585 
586 //==============================================================================
587 //        CTMUCONL Bits
588 
589 extern __at(0x0F44) __sfr CTMUCONL;
590 
591 typedef union
592   {
593   struct
594     {
595     unsigned EDG1STAT           : 1;
596     unsigned EDG2STAT           : 1;
597     unsigned EDG1SEL0           : 1;
598     unsigned EDG1SEL1           : 1;
599     unsigned EDG1POL            : 1;
600     unsigned EDG2SEL0           : 1;
601     unsigned EDG2SEL1           : 1;
602     unsigned EDG2POL            : 1;
603     };
604 
605   struct
606     {
607     unsigned                    : 2;
608     unsigned EDG1SEL            : 2;
609     unsigned                    : 4;
610     };
611 
612   struct
613     {
614     unsigned                    : 5;
615     unsigned EDG2SEL            : 2;
616     unsigned                    : 1;
617     };
618   } __CTMUCONLbits_t;
619 
620 extern __at(0x0F44) volatile __CTMUCONLbits_t CTMUCONLbits;
621 
622 #define _CTMUCONL_EDG1STAT      0x01
623 #define _CTMUCONL_EDG2STAT      0x02
624 #define _CTMUCONL_EDG1SEL0      0x04
625 #define _CTMUCONL_EDG1SEL1      0x08
626 #define _CTMUCONL_EDG1POL       0x10
627 #define _CTMUCONL_EDG2SEL0      0x20
628 #define _CTMUCONL_EDG2SEL1      0x40
629 #define _CTMUCONL_EDG2POL       0x80
630 
631 //==============================================================================
632 
633 
634 //==============================================================================
635 //        CTMUCON0 Bits
636 
637 extern __at(0x0F45) __sfr CTMUCON0;
638 
639 typedef struct
640   {
641   unsigned CTTRIG               : 1;
642   unsigned IDISSEN              : 1;
643   unsigned EDGSEQEN             : 1;
644   unsigned EDGEN                : 1;
645   unsigned TGEN                 : 1;
646   unsigned CTMUSIDL             : 1;
647   unsigned                      : 1;
648   unsigned CTMUEN               : 1;
649   } __CTMUCON0bits_t;
650 
651 extern __at(0x0F45) volatile __CTMUCON0bits_t CTMUCON0bits;
652 
653 #define _CTTRIG                 0x01
654 #define _IDISSEN                0x02
655 #define _EDGSEQEN               0x04
656 #define _EDGEN                  0x08
657 #define _TGEN                   0x10
658 #define _CTMUSIDL               0x20
659 #define _CTMUEN                 0x80
660 
661 //==============================================================================
662 
663 
664 //==============================================================================
665 //        CTMUCONH Bits
666 
667 extern __at(0x0F45) __sfr CTMUCONH;
668 
669 typedef struct
670   {
671   unsigned CTTRIG               : 1;
672   unsigned IDISSEN              : 1;
673   unsigned EDGSEQEN             : 1;
674   unsigned EDGEN                : 1;
675   unsigned TGEN                 : 1;
676   unsigned CTMUSIDL             : 1;
677   unsigned                      : 1;
678   unsigned CTMUEN               : 1;
679   } __CTMUCONHbits_t;
680 
681 extern __at(0x0F45) volatile __CTMUCONHbits_t CTMUCONHbits;
682 
683 #define _CTMUCONH_CTTRIG        0x01
684 #define _CTMUCONH_IDISSEN       0x02
685 #define _CTMUCONH_EDGSEQEN      0x04
686 #define _CTMUCONH_EDGEN         0x08
687 #define _CTMUCONH_TGEN          0x10
688 #define _CTMUCONH_CTMUSIDL      0x20
689 #define _CTMUCONH_CTMUEN        0x80
690 
691 //==============================================================================
692 
693 
694 //==============================================================================
695 //        SRCON1 Bits
696 
697 extern __at(0x0F46) __sfr SRCON1;
698 
699 typedef struct
700   {
701   unsigned SRRC1E               : 1;
702   unsigned SRRC2E               : 1;
703   unsigned SRRCKE               : 1;
704   unsigned SRRPE                : 1;
705   unsigned SRSC1E               : 1;
706   unsigned SRSC2E               : 1;
707   unsigned SRSCKE               : 1;
708   unsigned SRSPE                : 1;
709   } __SRCON1bits_t;
710 
711 extern __at(0x0F46) volatile __SRCON1bits_t SRCON1bits;
712 
713 #define _SRRC1E                 0x01
714 #define _SRRC2E                 0x02
715 #define _SRRCKE                 0x04
716 #define _SRRPE                  0x08
717 #define _SRSC1E                 0x10
718 #define _SRSC2E                 0x20
719 #define _SRSCKE                 0x40
720 #define _SRSPE                  0x80
721 
722 //==============================================================================
723 
724 
725 //==============================================================================
726 //        SRCON0 Bits
727 
728 extern __at(0x0F47) __sfr SRCON0;
729 
730 typedef union
731   {
732   struct
733     {
734     unsigned SRPR               : 1;
735     unsigned SRPS               : 1;
736     unsigned SRNQEN             : 1;
737     unsigned SRQEN              : 1;
738     unsigned SRCLK0             : 1;
739     unsigned SRCLK1             : 1;
740     unsigned SRCLK2             : 1;
741     unsigned SRLEN              : 1;
742     };
743 
744   struct
745     {
746     unsigned                    : 4;
747     unsigned SRCLK              : 3;
748     unsigned                    : 1;
749     };
750   } __SRCON0bits_t;
751 
752 extern __at(0x0F47) volatile __SRCON0bits_t SRCON0bits;
753 
754 #define _SRPR                   0x01
755 #define _SRPS                   0x02
756 #define _SRNQEN                 0x04
757 #define _SRQEN                  0x08
758 #define _SRCLK0                 0x10
759 #define _SRCLK1                 0x20
760 #define _SRCLK2                 0x40
761 #define _SRLEN                  0x80
762 
763 //==============================================================================
764 
765 
766 //==============================================================================
767 //        CCPTMRS1 Bits
768 
769 extern __at(0x0F48) __sfr CCPTMRS1;
770 
771 typedef union
772   {
773   struct
774     {
775     unsigned C4TSEL0            : 1;
776     unsigned C4TSEL1            : 1;
777     unsigned C5TSEL0            : 1;
778     unsigned C5TSEL1            : 1;
779     unsigned                    : 1;
780     unsigned                    : 1;
781     unsigned                    : 1;
782     unsigned                    : 1;
783     };
784 
785   struct
786     {
787     unsigned C4TSEL             : 2;
788     unsigned                    : 6;
789     };
790 
791   struct
792     {
793     unsigned                    : 2;
794     unsigned C5TSEL             : 2;
795     unsigned                    : 4;
796     };
797   } __CCPTMRS1bits_t;
798 
799 extern __at(0x0F48) volatile __CCPTMRS1bits_t CCPTMRS1bits;
800 
801 #define _C4TSEL0                0x01
802 #define _C4TSEL1                0x02
803 #define _C5TSEL0                0x04
804 #define _C5TSEL1                0x08
805 
806 //==============================================================================
807 
808 
809 //==============================================================================
810 //        CCPTMRS0 Bits
811 
812 extern __at(0x0F49) __sfr CCPTMRS0;
813 
814 typedef union
815   {
816   struct
817     {
818     unsigned C1TSEL0            : 1;
819     unsigned C1TSEL1            : 1;
820     unsigned                    : 1;
821     unsigned C2TSEL0            : 1;
822     unsigned C2TSEL1            : 1;
823     unsigned                    : 1;
824     unsigned C3TSEL0            : 1;
825     unsigned C3TSEL1            : 1;
826     };
827 
828   struct
829     {
830     unsigned C1TSEL             : 2;
831     unsigned                    : 6;
832     };
833 
834   struct
835     {
836     unsigned                    : 3;
837     unsigned C2TSEL             : 2;
838     unsigned                    : 3;
839     };
840 
841   struct
842     {
843     unsigned                    : 6;
844     unsigned C3TSEL             : 2;
845     };
846   } __CCPTMRS0bits_t;
847 
848 extern __at(0x0F49) volatile __CCPTMRS0bits_t CCPTMRS0bits;
849 
850 #define _C1TSEL0                0x01
851 #define _C1TSEL1                0x02
852 #define _C2TSEL0                0x08
853 #define _C2TSEL1                0x10
854 #define _C3TSEL0                0x40
855 #define _C3TSEL1                0x80
856 
857 //==============================================================================
858 
859 
860 //==============================================================================
861 //        T6CON Bits
862 
863 extern __at(0x0F4A) __sfr T6CON;
864 
865 typedef union
866   {
867   struct
868     {
869     unsigned T6CKPS0            : 1;
870     unsigned T6CKPS1            : 1;
871     unsigned TMR6ON             : 1;
872     unsigned T6OUTPS0           : 1;
873     unsigned T6OUTPS1           : 1;
874     unsigned T6OUTPS2           : 1;
875     unsigned T6OUTPS3           : 1;
876     unsigned                    : 1;
877     };
878 
879   struct
880     {
881     unsigned T6CKPS             : 2;
882     unsigned                    : 6;
883     };
884 
885   struct
886     {
887     unsigned                    : 3;
888     unsigned T6OUTPS            : 4;
889     unsigned                    : 1;
890     };
891   } __T6CONbits_t;
892 
893 extern __at(0x0F4A) volatile __T6CONbits_t T6CONbits;
894 
895 #define _T6CKPS0                0x01
896 #define _T6CKPS1                0x02
897 #define _TMR6ON                 0x04
898 #define _T6OUTPS0               0x08
899 #define _T6OUTPS1               0x10
900 #define _T6OUTPS2               0x20
901 #define _T6OUTPS3               0x40
902 
903 //==============================================================================
904 
905 extern __at(0x0F4B) __sfr PR6;
906 extern __at(0x0F4C) __sfr TMR6;
907 
908 //==============================================================================
909 //        T5GCON Bits
910 
911 extern __at(0x0F4D) __sfr T5GCON;
912 
913 typedef union
914   {
915   struct
916     {
917     unsigned T5GSS0             : 1;
918     unsigned T5GSS1             : 1;
919     unsigned T5GVAL             : 1;
920     unsigned T5GGO_NOT_DONE     : 1;
921     unsigned T5GSPM             : 1;
922     unsigned T5GTM              : 1;
923     unsigned T5GPOL             : 1;
924     unsigned TMR5GE             : 1;
925     };
926 
927   struct
928     {
929     unsigned                    : 1;
930     unsigned                    : 1;
931     unsigned                    : 1;
932     unsigned T5GGO              : 1;
933     unsigned                    : 1;
934     unsigned                    : 1;
935     unsigned                    : 1;
936     unsigned                    : 1;
937     };
938 
939   struct
940     {
941     unsigned                    : 1;
942     unsigned                    : 1;
943     unsigned                    : 1;
944     unsigned T5G_DONE           : 1;
945     unsigned                    : 1;
946     unsigned                    : 1;
947     unsigned                    : 1;
948     unsigned                    : 1;
949     };
950 
951   struct
952     {
953     unsigned T5GSS              : 2;
954     unsigned                    : 6;
955     };
956   } __T5GCONbits_t;
957 
958 extern __at(0x0F4D) volatile __T5GCONbits_t T5GCONbits;
959 
960 #define _T5GSS0                 0x01
961 #define _T5GSS1                 0x02
962 #define _T5GVAL                 0x04
963 #define _T5GGO_NOT_DONE         0x08
964 #define _T5GGO                  0x08
965 #define _T5G_DONE               0x08
966 #define _T5GSPM                 0x10
967 #define _T5GTM                  0x20
968 #define _T5GPOL                 0x40
969 #define _TMR5GE                 0x80
970 
971 //==============================================================================
972 
973 
974 //==============================================================================
975 //        T5CON Bits
976 
977 extern __at(0x0F4E) __sfr T5CON;
978 
979 typedef union
980   {
981   struct
982     {
983     unsigned TMR5ON             : 1;
984     unsigned T5RD16             : 1;
985     unsigned NOT_T5SYNC         : 1;
986     unsigned T5SOSCEN           : 1;
987     unsigned T5CKPS0            : 1;
988     unsigned T5CKPS1            : 1;
989     unsigned TMR5CS0            : 1;
990     unsigned TMR5CS1            : 1;
991     };
992 
993   struct
994     {
995     unsigned                    : 1;
996     unsigned                    : 1;
997     unsigned T5SYNC             : 1;
998     unsigned                    : 1;
999     unsigned                    : 1;
1000     unsigned                    : 1;
1001     unsigned                    : 1;
1002     unsigned                    : 1;
1003     };
1004 
1005   struct
1006     {
1007     unsigned                    : 4;
1008     unsigned T5CKPS             : 2;
1009     unsigned                    : 2;
1010     };
1011 
1012   struct
1013     {
1014     unsigned                    : 6;
1015     unsigned TMR5CS             : 2;
1016     };
1017   } __T5CONbits_t;
1018 
1019 extern __at(0x0F4E) volatile __T5CONbits_t T5CONbits;
1020 
1021 #define _TMR5ON                 0x01
1022 #define _T5RD16                 0x02
1023 #define _NOT_T5SYNC             0x04
1024 #define _T5SYNC                 0x04
1025 #define _T5SOSCEN               0x08
1026 #define _T5CKPS0                0x10
1027 #define _T5CKPS1                0x20
1028 #define _TMR5CS0                0x40
1029 #define _TMR5CS1                0x80
1030 
1031 //==============================================================================
1032 
1033 extern __at(0x0F4F) __sfr TMR5;
1034 extern __at(0x0F4F) __sfr TMR5L;
1035 extern __at(0x0F50) __sfr TMR5H;
1036 
1037 //==============================================================================
1038 //        T4CON Bits
1039 
1040 extern __at(0x0F51) __sfr T4CON;
1041 
1042 typedef union
1043   {
1044   struct
1045     {
1046     unsigned T4CKPS0            : 1;
1047     unsigned T4CKPS1            : 1;
1048     unsigned TMR4ON             : 1;
1049     unsigned T4OUTPS0           : 1;
1050     unsigned T4OUTPS1           : 1;
1051     unsigned T4OUTPS2           : 1;
1052     unsigned T4OUTPS3           : 1;
1053     unsigned                    : 1;
1054     };
1055 
1056   struct
1057     {
1058     unsigned T4CKPS             : 2;
1059     unsigned                    : 6;
1060     };
1061 
1062   struct
1063     {
1064     unsigned                    : 3;
1065     unsigned T4OUTPS            : 4;
1066     unsigned                    : 1;
1067     };
1068   } __T4CONbits_t;
1069 
1070 extern __at(0x0F51) volatile __T4CONbits_t T4CONbits;
1071 
1072 #define _T4CKPS0                0x01
1073 #define _T4CKPS1                0x02
1074 #define _TMR4ON                 0x04
1075 #define _T4OUTPS0               0x08
1076 #define _T4OUTPS1               0x10
1077 #define _T4OUTPS2               0x20
1078 #define _T4OUTPS3               0x40
1079 
1080 //==============================================================================
1081 
1082 extern __at(0x0F52) __sfr PR4;
1083 extern __at(0x0F53) __sfr TMR4;
1084 
1085 //==============================================================================
1086 //        CCP5CON Bits
1087 
1088 extern __at(0x0F54) __sfr CCP5CON;
1089 
1090 typedef union
1091   {
1092   struct
1093     {
1094     unsigned CCP5M0             : 1;
1095     unsigned CCP5M1             : 1;
1096     unsigned CCP5M2             : 1;
1097     unsigned CCP5M3             : 1;
1098     unsigned DC5B0              : 1;
1099     unsigned DC5B1              : 1;
1100     unsigned                    : 1;
1101     unsigned                    : 1;
1102     };
1103 
1104   struct
1105     {
1106     unsigned CCP5M              : 4;
1107     unsigned                    : 4;
1108     };
1109 
1110   struct
1111     {
1112     unsigned                    : 4;
1113     unsigned DC5B               : 2;
1114     unsigned                    : 2;
1115     };
1116   } __CCP5CONbits_t;
1117 
1118 extern __at(0x0F54) volatile __CCP5CONbits_t CCP5CONbits;
1119 
1120 #define _CCP5M0                 0x01
1121 #define _CCP5M1                 0x02
1122 #define _CCP5M2                 0x04
1123 #define _CCP5M3                 0x08
1124 #define _DC5B0                  0x10
1125 #define _DC5B1                  0x20
1126 
1127 //==============================================================================
1128 
1129 extern __at(0x0F55) __sfr CCPR5;
1130 extern __at(0x0F55) __sfr CCPR5L;
1131 extern __at(0x0F56) __sfr CCPR5H;
1132 
1133 //==============================================================================
1134 //        CCP4CON Bits
1135 
1136 extern __at(0x0F57) __sfr CCP4CON;
1137 
1138 typedef union
1139   {
1140   struct
1141     {
1142     unsigned CCP4M0             : 1;
1143     unsigned CCP4M1             : 1;
1144     unsigned CCP4M2             : 1;
1145     unsigned CCP4M3             : 1;
1146     unsigned DC4B0              : 1;
1147     unsigned DC4B1              : 1;
1148     unsigned                    : 1;
1149     unsigned                    : 1;
1150     };
1151 
1152   struct
1153     {
1154     unsigned CCP4M              : 4;
1155     unsigned                    : 4;
1156     };
1157 
1158   struct
1159     {
1160     unsigned                    : 4;
1161     unsigned DC4B               : 2;
1162     unsigned                    : 2;
1163     };
1164   } __CCP4CONbits_t;
1165 
1166 extern __at(0x0F57) volatile __CCP4CONbits_t CCP4CONbits;
1167 
1168 #define _CCP4M0                 0x01
1169 #define _CCP4M1                 0x02
1170 #define _CCP4M2                 0x04
1171 #define _CCP4M3                 0x08
1172 #define _DC4B0                  0x10
1173 #define _DC4B1                  0x20
1174 
1175 //==============================================================================
1176 
1177 extern __at(0x0F58) __sfr CCPR4;
1178 extern __at(0x0F58) __sfr CCPR4L;
1179 extern __at(0x0F59) __sfr CCPR4H;
1180 
1181 //==============================================================================
1182 //        PSTR3CON Bits
1183 
1184 extern __at(0x0F5A) __sfr PSTR3CON;
1185 
1186 typedef struct
1187   {
1188   unsigned STR3A                : 1;
1189   unsigned STR3B                : 1;
1190   unsigned STR3C                : 1;
1191   unsigned STR3D                : 1;
1192   unsigned STR3SYNC             : 1;
1193   unsigned                      : 1;
1194   unsigned                      : 1;
1195   unsigned                      : 1;
1196   } __PSTR3CONbits_t;
1197 
1198 extern __at(0x0F5A) volatile __PSTR3CONbits_t PSTR3CONbits;
1199 
1200 #define _STR3A                  0x01
1201 #define _STR3B                  0x02
1202 #define _STR3C                  0x04
1203 #define _STR3D                  0x08
1204 #define _STR3SYNC               0x10
1205 
1206 //==============================================================================
1207 
1208 
1209 //==============================================================================
1210 //        CCP3AS Bits
1211 
1212 extern __at(0x0F5B) __sfr CCP3AS;
1213 
1214 typedef union
1215   {
1216   struct
1217     {
1218     unsigned P3SSBD0            : 1;
1219     unsigned P3SSBD1            : 1;
1220     unsigned P3SSAC0            : 1;
1221     unsigned P3SSAC1            : 1;
1222     unsigned CCP3AS0            : 1;
1223     unsigned CCP3AS1            : 1;
1224     unsigned CCP3AS2            : 1;
1225     unsigned CCP3ASE            : 1;
1226     };
1227 
1228   struct
1229     {
1230     unsigned PSS3BD0            : 1;
1231     unsigned PSS3BD1            : 1;
1232     unsigned PSS3AC0            : 1;
1233     unsigned PSS3AC1            : 1;
1234     unsigned                    : 1;
1235     unsigned                    : 1;
1236     unsigned                    : 1;
1237     unsigned                    : 1;
1238     };
1239 
1240   struct
1241     {
1242     unsigned PSS3BD             : 2;
1243     unsigned                    : 6;
1244     };
1245 
1246   struct
1247     {
1248     unsigned P3SSBD             : 2;
1249     unsigned                    : 6;
1250     };
1251 
1252   struct
1253     {
1254     unsigned                    : 2;
1255     unsigned P3SSAC             : 2;
1256     unsigned                    : 4;
1257     };
1258 
1259   struct
1260     {
1261     unsigned                    : 2;
1262     unsigned PSS3AC             : 2;
1263     unsigned                    : 4;
1264     };
1265 
1266   struct
1267     {
1268     unsigned                    : 4;
1269     unsigned CCP3AS             : 3;
1270     unsigned                    : 1;
1271     };
1272   } __CCP3ASbits_t;
1273 
1274 extern __at(0x0F5B) volatile __CCP3ASbits_t CCP3ASbits;
1275 
1276 #define _P3SSBD0                0x01
1277 #define _PSS3BD0                0x01
1278 #define _P3SSBD1                0x02
1279 #define _PSS3BD1                0x02
1280 #define _P3SSAC0                0x04
1281 #define _PSS3AC0                0x04
1282 #define _P3SSAC1                0x08
1283 #define _PSS3AC1                0x08
1284 #define _CCP3AS0                0x10
1285 #define _CCP3AS1                0x20
1286 #define _CCP3AS2                0x40
1287 #define _CCP3ASE                0x80
1288 
1289 //==============================================================================
1290 
1291 
1292 //==============================================================================
1293 //        ECCP3AS Bits
1294 
1295 extern __at(0x0F5B) __sfr ECCP3AS;
1296 
1297 typedef union
1298   {
1299   struct
1300     {
1301     unsigned P3SSBD0            : 1;
1302     unsigned P3SSBD1            : 1;
1303     unsigned P3SSAC0            : 1;
1304     unsigned P3SSAC1            : 1;
1305     unsigned CCP3AS0            : 1;
1306     unsigned CCP3AS1            : 1;
1307     unsigned CCP3AS2            : 1;
1308     unsigned CCP3ASE            : 1;
1309     };
1310 
1311   struct
1312     {
1313     unsigned PSS3BD0            : 1;
1314     unsigned PSS3BD1            : 1;
1315     unsigned PSS3AC0            : 1;
1316     unsigned PSS3AC1            : 1;
1317     unsigned                    : 1;
1318     unsigned                    : 1;
1319     unsigned                    : 1;
1320     unsigned                    : 1;
1321     };
1322 
1323   struct
1324     {
1325     unsigned P3SSBD             : 2;
1326     unsigned                    : 6;
1327     };
1328 
1329   struct
1330     {
1331     unsigned PSS3BD             : 2;
1332     unsigned                    : 6;
1333     };
1334 
1335   struct
1336     {
1337     unsigned                    : 2;
1338     unsigned P3SSAC             : 2;
1339     unsigned                    : 4;
1340     };
1341 
1342   struct
1343     {
1344     unsigned                    : 2;
1345     unsigned PSS3AC             : 2;
1346     unsigned                    : 4;
1347     };
1348 
1349   struct
1350     {
1351     unsigned                    : 4;
1352     unsigned CCP3AS             : 3;
1353     unsigned                    : 1;
1354     };
1355   } __ECCP3ASbits_t;
1356 
1357 extern __at(0x0F5B) volatile __ECCP3ASbits_t ECCP3ASbits;
1358 
1359 #define _ECCP3AS_P3SSBD0        0x01
1360 #define _ECCP3AS_PSS3BD0        0x01
1361 #define _ECCP3AS_P3SSBD1        0x02
1362 #define _ECCP3AS_PSS3BD1        0x02
1363 #define _ECCP3AS_P3SSAC0        0x04
1364 #define _ECCP3AS_PSS3AC0        0x04
1365 #define _ECCP3AS_P3SSAC1        0x08
1366 #define _ECCP3AS_PSS3AC1        0x08
1367 #define _ECCP3AS_CCP3AS0        0x10
1368 #define _ECCP3AS_CCP3AS1        0x20
1369 #define _ECCP3AS_CCP3AS2        0x40
1370 #define _ECCP3AS_CCP3ASE        0x80
1371 
1372 //==============================================================================
1373 
1374 
1375 //==============================================================================
1376 //        PWM3CON Bits
1377 
1378 extern __at(0x0F5C) __sfr PWM3CON;
1379 
1380 typedef union
1381   {
1382   struct
1383     {
1384     unsigned P3DC0              : 1;
1385     unsigned P3DC1              : 1;
1386     unsigned P3DC2              : 1;
1387     unsigned P3DC3              : 1;
1388     unsigned P3DC4              : 1;
1389     unsigned P3DC5              : 1;
1390     unsigned P3DC6              : 1;
1391     unsigned P3RSEN             : 1;
1392     };
1393 
1394   struct
1395     {
1396     unsigned P3DC               : 7;
1397     unsigned                    : 1;
1398     };
1399   } __PWM3CONbits_t;
1400 
1401 extern __at(0x0F5C) volatile __PWM3CONbits_t PWM3CONbits;
1402 
1403 #define _P3DC0                  0x01
1404 #define _P3DC1                  0x02
1405 #define _P3DC2                  0x04
1406 #define _P3DC3                  0x08
1407 #define _P3DC4                  0x10
1408 #define _P3DC5                  0x20
1409 #define _P3DC6                  0x40
1410 #define _P3RSEN                 0x80
1411 
1412 //==============================================================================
1413 
1414 
1415 //==============================================================================
1416 //        CCP3CON Bits
1417 
1418 extern __at(0x0F5D) __sfr CCP3CON;
1419 
1420 typedef union
1421   {
1422   struct
1423     {
1424     unsigned CCP3M0             : 1;
1425     unsigned CCP3M1             : 1;
1426     unsigned CCP3M2             : 1;
1427     unsigned CCP3M3             : 1;
1428     unsigned DC3B0              : 1;
1429     unsigned DC3B1              : 1;
1430     unsigned P3M0               : 1;
1431     unsigned P3M1               : 1;
1432     };
1433 
1434   struct
1435     {
1436     unsigned CCP3M              : 4;
1437     unsigned                    : 4;
1438     };
1439 
1440   struct
1441     {
1442     unsigned                    : 4;
1443     unsigned DC3B               : 2;
1444     unsigned                    : 2;
1445     };
1446 
1447   struct
1448     {
1449     unsigned                    : 6;
1450     unsigned P3M                : 2;
1451     };
1452   } __CCP3CONbits_t;
1453 
1454 extern __at(0x0F5D) volatile __CCP3CONbits_t CCP3CONbits;
1455 
1456 #define _CCP3M0                 0x01
1457 #define _CCP3M1                 0x02
1458 #define _CCP3M2                 0x04
1459 #define _CCP3M3                 0x08
1460 #define _DC3B0                  0x10
1461 #define _DC3B1                  0x20
1462 #define _P3M0                   0x40
1463 #define _P3M1                   0x80
1464 
1465 //==============================================================================
1466 
1467 extern __at(0x0F5E) __sfr CCPR3;
1468 extern __at(0x0F5E) __sfr CCPR3L;
1469 extern __at(0x0F5F) __sfr CCPR3H;
1470 
1471 //==============================================================================
1472 //        SLRCON Bits
1473 
1474 extern __at(0x0F60) __sfr SLRCON;
1475 
1476 typedef struct
1477   {
1478   unsigned SLRA                 : 1;
1479   unsigned SLRB                 : 1;
1480   unsigned SLRC                 : 1;
1481   unsigned                      : 1;
1482   unsigned                      : 1;
1483   unsigned                      : 1;
1484   unsigned                      : 1;
1485   unsigned                      : 1;
1486   } __SLRCONbits_t;
1487 
1488 extern __at(0x0F60) volatile __SLRCONbits_t SLRCONbits;
1489 
1490 #define _SLRA                   0x01
1491 #define _SLRB                   0x02
1492 #define _SLRC                   0x04
1493 
1494 //==============================================================================
1495 
1496 
1497 //==============================================================================
1498 //        WPUB Bits
1499 
1500 extern __at(0x0F61) __sfr WPUB;
1501 
1502 typedef struct
1503   {
1504   unsigned WPUB0                : 1;
1505   unsigned WPUB1                : 1;
1506   unsigned WPUB2                : 1;
1507   unsigned WPUB3                : 1;
1508   unsigned WPUB4                : 1;
1509   unsigned WPUB5                : 1;
1510   unsigned WPUB6                : 1;
1511   unsigned WPUB7                : 1;
1512   } __WPUBbits_t;
1513 
1514 extern __at(0x0F61) volatile __WPUBbits_t WPUBbits;
1515 
1516 #define _WPUB0                  0x01
1517 #define _WPUB1                  0x02
1518 #define _WPUB2                  0x04
1519 #define _WPUB3                  0x08
1520 #define _WPUB4                  0x10
1521 #define _WPUB5                  0x20
1522 #define _WPUB6                  0x40
1523 #define _WPUB7                  0x80
1524 
1525 //==============================================================================
1526 
1527 
1528 //==============================================================================
1529 //        IOCB Bits
1530 
1531 extern __at(0x0F62) __sfr IOCB;
1532 
1533 typedef struct
1534   {
1535   unsigned                      : 1;
1536   unsigned                      : 1;
1537   unsigned                      : 1;
1538   unsigned                      : 1;
1539   unsigned IOCB4                : 1;
1540   unsigned IOCB5                : 1;
1541   unsigned IOCB6                : 1;
1542   unsigned IOCB7                : 1;
1543   } __IOCBbits_t;
1544 
1545 extern __at(0x0F62) volatile __IOCBbits_t IOCBbits;
1546 
1547 #define _IOCB4                  0x10
1548 #define _IOCB5                  0x20
1549 #define _IOCB6                  0x40
1550 #define _IOCB7                  0x80
1551 
1552 //==============================================================================
1553 
1554 
1555 //==============================================================================
1556 //        PSTR2CON Bits
1557 
1558 extern __at(0x0F63) __sfr PSTR2CON;
1559 
1560 typedef struct
1561   {
1562   unsigned STR2A                : 1;
1563   unsigned STR2B                : 1;
1564   unsigned STR2C                : 1;
1565   unsigned STR2D                : 1;
1566   unsigned STR2SYNC             : 1;
1567   unsigned                      : 1;
1568   unsigned                      : 1;
1569   unsigned                      : 1;
1570   } __PSTR2CONbits_t;
1571 
1572 extern __at(0x0F63) volatile __PSTR2CONbits_t PSTR2CONbits;
1573 
1574 #define _STR2A                  0x01
1575 #define _STR2B                  0x02
1576 #define _STR2C                  0x04
1577 #define _STR2D                  0x08
1578 #define _STR2SYNC               0x10
1579 
1580 //==============================================================================
1581 
1582 
1583 //==============================================================================
1584 //        CCP2AS Bits
1585 
1586 extern __at(0x0F64) __sfr CCP2AS;
1587 
1588 typedef union
1589   {
1590   struct
1591     {
1592     unsigned P2SSBD0            : 1;
1593     unsigned P2SSBD1            : 1;
1594     unsigned P2SSAC0            : 1;
1595     unsigned P2SSAC1            : 1;
1596     unsigned CCP2AS0            : 1;
1597     unsigned CCP2AS1            : 1;
1598     unsigned CCP2AS2            : 1;
1599     unsigned CCP2ASE            : 1;
1600     };
1601 
1602   struct
1603     {
1604     unsigned PSS2BD0            : 1;
1605     unsigned PSS2BD1            : 1;
1606     unsigned PSS2AC0            : 1;
1607     unsigned PSS2AC1            : 1;
1608     unsigned                    : 1;
1609     unsigned                    : 1;
1610     unsigned                    : 1;
1611     unsigned                    : 1;
1612     };
1613 
1614   struct
1615     {
1616     unsigned P2SSBD             : 2;
1617     unsigned                    : 6;
1618     };
1619 
1620   struct
1621     {
1622     unsigned PSS2BD             : 2;
1623     unsigned                    : 6;
1624     };
1625 
1626   struct
1627     {
1628     unsigned                    : 2;
1629     unsigned P2SSAC             : 2;
1630     unsigned                    : 4;
1631     };
1632 
1633   struct
1634     {
1635     unsigned                    : 2;
1636     unsigned PSS2AC             : 2;
1637     unsigned                    : 4;
1638     };
1639 
1640   struct
1641     {
1642     unsigned                    : 4;
1643     unsigned CCP2AS             : 3;
1644     unsigned                    : 1;
1645     };
1646   } __CCP2ASbits_t;
1647 
1648 extern __at(0x0F64) volatile __CCP2ASbits_t CCP2ASbits;
1649 
1650 #define _P2SSBD0                0x01
1651 #define _PSS2BD0                0x01
1652 #define _P2SSBD1                0x02
1653 #define _PSS2BD1                0x02
1654 #define _P2SSAC0                0x04
1655 #define _PSS2AC0                0x04
1656 #define _P2SSAC1                0x08
1657 #define _PSS2AC1                0x08
1658 #define _CCP2AS0                0x10
1659 #define _CCP2AS1                0x20
1660 #define _CCP2AS2                0x40
1661 #define _CCP2ASE                0x80
1662 
1663 //==============================================================================
1664 
1665 
1666 //==============================================================================
1667 //        ECCP2AS Bits
1668 
1669 extern __at(0x0F64) __sfr ECCP2AS;
1670 
1671 typedef union
1672   {
1673   struct
1674     {
1675     unsigned P2SSBD0            : 1;
1676     unsigned P2SSBD1            : 1;
1677     unsigned P2SSAC0            : 1;
1678     unsigned P2SSAC1            : 1;
1679     unsigned CCP2AS0            : 1;
1680     unsigned CCP2AS1            : 1;
1681     unsigned CCP2AS2            : 1;
1682     unsigned CCP2ASE            : 1;
1683     };
1684 
1685   struct
1686     {
1687     unsigned PSS2BD0            : 1;
1688     unsigned PSS2BD1            : 1;
1689     unsigned PSS2AC0            : 1;
1690     unsigned PSS2AC1            : 1;
1691     unsigned                    : 1;
1692     unsigned                    : 1;
1693     unsigned                    : 1;
1694     unsigned                    : 1;
1695     };
1696 
1697   struct
1698     {
1699     unsigned P2SSBD             : 2;
1700     unsigned                    : 6;
1701     };
1702 
1703   struct
1704     {
1705     unsigned PSS2BD             : 2;
1706     unsigned                    : 6;
1707     };
1708 
1709   struct
1710     {
1711     unsigned                    : 2;
1712     unsigned PSS2AC             : 2;
1713     unsigned                    : 4;
1714     };
1715 
1716   struct
1717     {
1718     unsigned                    : 2;
1719     unsigned P2SSAC             : 2;
1720     unsigned                    : 4;
1721     };
1722 
1723   struct
1724     {
1725     unsigned                    : 4;
1726     unsigned CCP2AS             : 3;
1727     unsigned                    : 1;
1728     };
1729   } __ECCP2ASbits_t;
1730 
1731 extern __at(0x0F64) volatile __ECCP2ASbits_t ECCP2ASbits;
1732 
1733 #define _ECCP2AS_P2SSBD0        0x01
1734 #define _ECCP2AS_PSS2BD0        0x01
1735 #define _ECCP2AS_P2SSBD1        0x02
1736 #define _ECCP2AS_PSS2BD1        0x02
1737 #define _ECCP2AS_P2SSAC0        0x04
1738 #define _ECCP2AS_PSS2AC0        0x04
1739 #define _ECCP2AS_P2SSAC1        0x08
1740 #define _ECCP2AS_PSS2AC1        0x08
1741 #define _ECCP2AS_CCP2AS0        0x10
1742 #define _ECCP2AS_CCP2AS1        0x20
1743 #define _ECCP2AS_CCP2AS2        0x40
1744 #define _ECCP2AS_CCP2ASE        0x80
1745 
1746 //==============================================================================
1747 
1748 
1749 //==============================================================================
1750 //        PWM2CON Bits
1751 
1752 extern __at(0x0F65) __sfr PWM2CON;
1753 
1754 typedef union
1755   {
1756   struct
1757     {
1758     unsigned P2DC0              : 1;
1759     unsigned P2DC1              : 1;
1760     unsigned P2DC2              : 1;
1761     unsigned P2DC3              : 1;
1762     unsigned P2DC4              : 1;
1763     unsigned P2DC5              : 1;
1764     unsigned P2DC6              : 1;
1765     unsigned P2RSEN             : 1;
1766     };
1767 
1768   struct
1769     {
1770     unsigned P2DC               : 7;
1771     unsigned                    : 1;
1772     };
1773   } __PWM2CONbits_t;
1774 
1775 extern __at(0x0F65) volatile __PWM2CONbits_t PWM2CONbits;
1776 
1777 #define _P2DC0                  0x01
1778 #define _P2DC1                  0x02
1779 #define _P2DC2                  0x04
1780 #define _P2DC3                  0x08
1781 #define _P2DC4                  0x10
1782 #define _P2DC5                  0x20
1783 #define _P2DC6                  0x40
1784 #define _P2RSEN                 0x80
1785 
1786 //==============================================================================
1787 
1788 
1789 //==============================================================================
1790 //        CCP2CON Bits
1791 
1792 extern __at(0x0F66) __sfr CCP2CON;
1793 
1794 typedef union
1795   {
1796   struct
1797     {
1798     unsigned CCP2M0             : 1;
1799     unsigned CCP2M1             : 1;
1800     unsigned CCP2M2             : 1;
1801     unsigned CCP2M3             : 1;
1802     unsigned DC2B0              : 1;
1803     unsigned DC2B1              : 1;
1804     unsigned P2M0               : 1;
1805     unsigned P2M1               : 1;
1806     };
1807 
1808   struct
1809     {
1810     unsigned CCP2M              : 4;
1811     unsigned                    : 4;
1812     };
1813 
1814   struct
1815     {
1816     unsigned                    : 4;
1817     unsigned DC2B               : 2;
1818     unsigned                    : 2;
1819     };
1820 
1821   struct
1822     {
1823     unsigned                    : 6;
1824     unsigned P2M                : 2;
1825     };
1826   } __CCP2CONbits_t;
1827 
1828 extern __at(0x0F66) volatile __CCP2CONbits_t CCP2CONbits;
1829 
1830 #define _CCP2M0                 0x01
1831 #define _CCP2M1                 0x02
1832 #define _CCP2M2                 0x04
1833 #define _CCP2M3                 0x08
1834 #define _DC2B0                  0x10
1835 #define _DC2B1                  0x20
1836 #define _P2M0                   0x40
1837 #define _P2M1                   0x80
1838 
1839 //==============================================================================
1840 
1841 extern __at(0x0F67) __sfr CCPR2;
1842 extern __at(0x0F67) __sfr CCPR2L;
1843 extern __at(0x0F68) __sfr CCPR2H;
1844 
1845 //==============================================================================
1846 //        SSP2CON3 Bits
1847 
1848 extern __at(0x0F69) __sfr SSP2CON3;
1849 
1850 typedef struct
1851   {
1852   unsigned DHEN                 : 1;
1853   unsigned AHEN                 : 1;
1854   unsigned SBCDE                : 1;
1855   unsigned SDAHT                : 1;
1856   unsigned BOEN                 : 1;
1857   unsigned SCIE                 : 1;
1858   unsigned PCIE                 : 1;
1859   unsigned ACKTIM               : 1;
1860   } __SSP2CON3bits_t;
1861 
1862 extern __at(0x0F69) volatile __SSP2CON3bits_t SSP2CON3bits;
1863 
1864 #define _SSP2CON3_DHEN          0x01
1865 #define _SSP2CON3_AHEN          0x02
1866 #define _SSP2CON3_SBCDE         0x04
1867 #define _SSP2CON3_SDAHT         0x08
1868 #define _SSP2CON3_BOEN          0x10
1869 #define _SSP2CON3_SCIE          0x20
1870 #define _SSP2CON3_PCIE          0x40
1871 #define _SSP2CON3_ACKTIM        0x80
1872 
1873 //==============================================================================
1874 
1875 
1876 //==============================================================================
1877 //        SSP2MSK Bits
1878 
1879 extern __at(0x0F6A) __sfr SSP2MSK;
1880 
1881 typedef struct
1882   {
1883   unsigned MSK0                 : 1;
1884   unsigned MSK1                 : 1;
1885   unsigned MSK2                 : 1;
1886   unsigned MSK3                 : 1;
1887   unsigned MSK4                 : 1;
1888   unsigned MSK5                 : 1;
1889   unsigned MSK6                 : 1;
1890   unsigned MSK7                 : 1;
1891   } __SSP2MSKbits_t;
1892 
1893 extern __at(0x0F6A) volatile __SSP2MSKbits_t SSP2MSKbits;
1894 
1895 #define _SSP2MSK_MSK0           0x01
1896 #define _SSP2MSK_MSK1           0x02
1897 #define _SSP2MSK_MSK2           0x04
1898 #define _SSP2MSK_MSK3           0x08
1899 #define _SSP2MSK_MSK4           0x10
1900 #define _SSP2MSK_MSK5           0x20
1901 #define _SSP2MSK_MSK6           0x40
1902 #define _SSP2MSK_MSK7           0x80
1903 
1904 //==============================================================================
1905 
1906 
1907 //==============================================================================
1908 //        SSP2CON2 Bits
1909 
1910 extern __at(0x0F6B) __sfr SSP2CON2;
1911 
1912 typedef struct
1913   {
1914   unsigned SEN                  : 1;
1915   unsigned RSEN                 : 1;
1916   unsigned PEN                  : 1;
1917   unsigned RCEN                 : 1;
1918   unsigned ACKEN                : 1;
1919   unsigned ACKDT                : 1;
1920   unsigned ACKSTAT              : 1;
1921   unsigned GCEN                 : 1;
1922   } __SSP2CON2bits_t;
1923 
1924 extern __at(0x0F6B) volatile __SSP2CON2bits_t SSP2CON2bits;
1925 
1926 #define _SSP2CON2_SEN           0x01
1927 #define _SSP2CON2_RSEN          0x02
1928 #define _SSP2CON2_PEN           0x04
1929 #define _SSP2CON2_RCEN          0x08
1930 #define _SSP2CON2_ACKEN         0x10
1931 #define _SSP2CON2_ACKDT         0x20
1932 #define _SSP2CON2_ACKSTAT       0x40
1933 #define _SSP2CON2_GCEN          0x80
1934 
1935 //==============================================================================
1936 
1937 
1938 //==============================================================================
1939 //        SSP2CON1 Bits
1940 
1941 extern __at(0x0F6C) __sfr SSP2CON1;
1942 
1943 typedef union
1944   {
1945   struct
1946     {
1947     unsigned SSPM0              : 1;
1948     unsigned SSPM1              : 1;
1949     unsigned SSPM2              : 1;
1950     unsigned SSPM3              : 1;
1951     unsigned CKP                : 1;
1952     unsigned SSPEN              : 1;
1953     unsigned SSPOV              : 1;
1954     unsigned WCOL               : 1;
1955     };
1956 
1957   struct
1958     {
1959     unsigned SSPM               : 4;
1960     unsigned                    : 4;
1961     };
1962   } __SSP2CON1bits_t;
1963 
1964 extern __at(0x0F6C) volatile __SSP2CON1bits_t SSP2CON1bits;
1965 
1966 #define _SSP2CON1_SSPM0         0x01
1967 #define _SSP2CON1_SSPM1         0x02
1968 #define _SSP2CON1_SSPM2         0x04
1969 #define _SSP2CON1_SSPM3         0x08
1970 #define _SSP2CON1_CKP           0x10
1971 #define _SSP2CON1_SSPEN         0x20
1972 #define _SSP2CON1_SSPOV         0x40
1973 #define _SSP2CON1_WCOL          0x80
1974 
1975 //==============================================================================
1976 
1977 
1978 //==============================================================================
1979 //        SSP2STAT Bits
1980 
1981 extern __at(0x0F6D) __sfr SSP2STAT;
1982 
1983 typedef union
1984   {
1985   struct
1986     {
1987     unsigned BF                 : 1;
1988     unsigned UA                 : 1;
1989     unsigned R_NOT_W            : 1;
1990     unsigned S                  : 1;
1991     unsigned P                  : 1;
1992     unsigned D_NOT_A            : 1;
1993     unsigned CKE                : 1;
1994     unsigned SMP                : 1;
1995     };
1996 
1997   struct
1998     {
1999     unsigned                    : 1;
2000     unsigned                    : 1;
2001     unsigned R                  : 1;
2002     unsigned                    : 1;
2003     unsigned                    : 1;
2004     unsigned D                  : 1;
2005     unsigned                    : 1;
2006     unsigned                    : 1;
2007     };
2008 
2009   struct
2010     {
2011     unsigned                    : 1;
2012     unsigned                    : 1;
2013     unsigned NOT_W              : 1;
2014     unsigned                    : 1;
2015     unsigned                    : 1;
2016     unsigned NOT_A              : 1;
2017     unsigned                    : 1;
2018     unsigned                    : 1;
2019     };
2020 
2021   struct
2022     {
2023     unsigned                    : 1;
2024     unsigned                    : 1;
2025     unsigned R_W                : 1;
2026     unsigned                    : 1;
2027     unsigned                    : 1;
2028     unsigned D_A                : 1;
2029     unsigned                    : 1;
2030     unsigned                    : 1;
2031     };
2032 
2033   struct
2034     {
2035     unsigned                    : 1;
2036     unsigned                    : 1;
2037     unsigned NOT_WRITE          : 1;
2038     unsigned                    : 1;
2039     unsigned                    : 1;
2040     unsigned NOT_ADDRESS        : 1;
2041     unsigned                    : 1;
2042     unsigned                    : 1;
2043     };
2044   } __SSP2STATbits_t;
2045 
2046 extern __at(0x0F6D) volatile __SSP2STATbits_t SSP2STATbits;
2047 
2048 #define _SSP2STAT_BF            0x01
2049 #define _SSP2STAT_UA            0x02
2050 #define _SSP2STAT_R_NOT_W       0x04
2051 #define _SSP2STAT_R             0x04
2052 #define _SSP2STAT_NOT_W         0x04
2053 #define _SSP2STAT_R_W           0x04
2054 #define _SSP2STAT_NOT_WRITE     0x04
2055 #define _SSP2STAT_S             0x08
2056 #define _SSP2STAT_P             0x10
2057 #define _SSP2STAT_D_NOT_A       0x20
2058 #define _SSP2STAT_D             0x20
2059 #define _SSP2STAT_NOT_A         0x20
2060 #define _SSP2STAT_D_A           0x20
2061 #define _SSP2STAT_NOT_ADDRESS   0x20
2062 #define _SSP2STAT_CKE           0x40
2063 #define _SSP2STAT_SMP           0x80
2064 
2065 //==============================================================================
2066 
2067 extern __at(0x0F6E) __sfr SSP2ADD;
2068 extern __at(0x0F6F) __sfr SSP2BUF;
2069 
2070 //==============================================================================
2071 //        BAUD2CON Bits
2072 
2073 extern __at(0x0F70) __sfr BAUD2CON;
2074 
2075 typedef union
2076   {
2077   struct
2078     {
2079     unsigned ABDEN              : 1;
2080     unsigned WUE                : 1;
2081     unsigned                    : 1;
2082     unsigned BRG16              : 1;
2083     unsigned CKTXP              : 1;
2084     unsigned DTRXP              : 1;
2085     unsigned RCIDL              : 1;
2086     unsigned ABDOVF             : 1;
2087     };
2088 
2089   struct
2090     {
2091     unsigned                    : 1;
2092     unsigned                    : 1;
2093     unsigned                    : 1;
2094     unsigned                    : 1;
2095     unsigned SCKP               : 1;
2096     unsigned                    : 1;
2097     unsigned                    : 1;
2098     unsigned                    : 1;
2099     };
2100   } __BAUD2CONbits_t;
2101 
2102 extern __at(0x0F70) volatile __BAUD2CONbits_t BAUD2CONbits;
2103 
2104 #define _BAUD2CON_ABDEN         0x01
2105 #define _BAUD2CON_WUE           0x02
2106 #define _BAUD2CON_BRG16         0x08
2107 #define _BAUD2CON_CKTXP         0x10
2108 #define _BAUD2CON_SCKP          0x10
2109 #define _BAUD2CON_DTRXP         0x20
2110 #define _BAUD2CON_RCIDL         0x40
2111 #define _BAUD2CON_ABDOVF        0x80
2112 
2113 //==============================================================================
2114 
2115 
2116 //==============================================================================
2117 //        BAUDCON2 Bits
2118 
2119 extern __at(0x0F70) __sfr BAUDCON2;
2120 
2121 typedef union
2122   {
2123   struct
2124     {
2125     unsigned ABDEN              : 1;
2126     unsigned WUE                : 1;
2127     unsigned                    : 1;
2128     unsigned BRG16              : 1;
2129     unsigned CKTXP              : 1;
2130     unsigned DTRXP              : 1;
2131     unsigned RCIDL              : 1;
2132     unsigned ABDOVF             : 1;
2133     };
2134 
2135   struct
2136     {
2137     unsigned                    : 1;
2138     unsigned                    : 1;
2139     unsigned                    : 1;
2140     unsigned                    : 1;
2141     unsigned SCKP               : 1;
2142     unsigned                    : 1;
2143     unsigned                    : 1;
2144     unsigned                    : 1;
2145     };
2146   } __BAUDCON2bits_t;
2147 
2148 extern __at(0x0F70) volatile __BAUDCON2bits_t BAUDCON2bits;
2149 
2150 #define _BAUDCON2_ABDEN         0x01
2151 #define _BAUDCON2_WUE           0x02
2152 #define _BAUDCON2_BRG16         0x08
2153 #define _BAUDCON2_CKTXP         0x10
2154 #define _BAUDCON2_SCKP          0x10
2155 #define _BAUDCON2_DTRXP         0x20
2156 #define _BAUDCON2_RCIDL         0x40
2157 #define _BAUDCON2_ABDOVF        0x80
2158 
2159 //==============================================================================
2160 
2161 
2162 //==============================================================================
2163 //        RC2STA Bits
2164 
2165 extern __at(0x0F71) __sfr RC2STA;
2166 
2167 typedef union
2168   {
2169   struct
2170     {
2171     unsigned RX9D               : 1;
2172     unsigned OERR               : 1;
2173     unsigned FERR               : 1;
2174     unsigned ADDEN              : 1;
2175     unsigned CREN               : 1;
2176     unsigned SREN               : 1;
2177     unsigned RX9                : 1;
2178     unsigned SPEN               : 1;
2179     };
2180 
2181   struct
2182     {
2183     unsigned RX9D2              : 1;
2184     unsigned OERR2              : 1;
2185     unsigned FERR2              : 1;
2186     unsigned ADEN               : 1;
2187     unsigned CREN2              : 1;
2188     unsigned SREN2              : 1;
2189     unsigned RX92               : 1;
2190     unsigned SPEN2              : 1;
2191     };
2192 
2193   struct
2194     {
2195     unsigned                    : 1;
2196     unsigned                    : 1;
2197     unsigned                    : 1;
2198     unsigned ADDEN2             : 1;
2199     unsigned                    : 1;
2200     unsigned                    : 1;
2201     unsigned                    : 1;
2202     unsigned                    : 1;
2203     };
2204   } __RC2STAbits_t;
2205 
2206 extern __at(0x0F71) volatile __RC2STAbits_t RC2STAbits;
2207 
2208 #define _RC2STA_RX9D            0x01
2209 #define _RC2STA_RX9D2           0x01
2210 #define _RC2STA_OERR            0x02
2211 #define _RC2STA_OERR2           0x02
2212 #define _RC2STA_FERR            0x04
2213 #define _RC2STA_FERR2           0x04
2214 #define _RC2STA_ADDEN           0x08
2215 #define _RC2STA_ADEN            0x08
2216 #define _RC2STA_ADDEN2          0x08
2217 #define _RC2STA_CREN            0x10
2218 #define _RC2STA_CREN2           0x10
2219 #define _RC2STA_SREN            0x20
2220 #define _RC2STA_SREN2           0x20
2221 #define _RC2STA_RX9             0x40
2222 #define _RC2STA_RX92            0x40
2223 #define _RC2STA_SPEN            0x80
2224 #define _RC2STA_SPEN2           0x80
2225 
2226 //==============================================================================
2227 
2228 
2229 //==============================================================================
2230 //        RCSTA2 Bits
2231 
2232 extern __at(0x0F71) __sfr RCSTA2;
2233 
2234 typedef union
2235   {
2236   struct
2237     {
2238     unsigned RX9D               : 1;
2239     unsigned OERR               : 1;
2240     unsigned FERR               : 1;
2241     unsigned ADDEN              : 1;
2242     unsigned CREN               : 1;
2243     unsigned SREN               : 1;
2244     unsigned RX9                : 1;
2245     unsigned SPEN               : 1;
2246     };
2247 
2248   struct
2249     {
2250     unsigned RX9D2              : 1;
2251     unsigned OERR2              : 1;
2252     unsigned FERR2              : 1;
2253     unsigned ADEN               : 1;
2254     unsigned CREN2              : 1;
2255     unsigned SREN2              : 1;
2256     unsigned RX92               : 1;
2257     unsigned SPEN2              : 1;
2258     };
2259 
2260   struct
2261     {
2262     unsigned                    : 1;
2263     unsigned                    : 1;
2264     unsigned                    : 1;
2265     unsigned ADDEN2             : 1;
2266     unsigned                    : 1;
2267     unsigned                    : 1;
2268     unsigned                    : 1;
2269     unsigned                    : 1;
2270     };
2271   } __RCSTA2bits_t;
2272 
2273 extern __at(0x0F71) volatile __RCSTA2bits_t RCSTA2bits;
2274 
2275 #define _RCSTA2_RX9D            0x01
2276 #define _RCSTA2_RX9D2           0x01
2277 #define _RCSTA2_OERR            0x02
2278 #define _RCSTA2_OERR2           0x02
2279 #define _RCSTA2_FERR            0x04
2280 #define _RCSTA2_FERR2           0x04
2281 #define _RCSTA2_ADDEN           0x08
2282 #define _RCSTA2_ADEN            0x08
2283 #define _RCSTA2_ADDEN2          0x08
2284 #define _RCSTA2_CREN            0x10
2285 #define _RCSTA2_CREN2           0x10
2286 #define _RCSTA2_SREN            0x20
2287 #define _RCSTA2_SREN2           0x20
2288 #define _RCSTA2_RX9             0x40
2289 #define _RCSTA2_RX92            0x40
2290 #define _RCSTA2_SPEN            0x80
2291 #define _RCSTA2_SPEN2           0x80
2292 
2293 //==============================================================================
2294 
2295 
2296 //==============================================================================
2297 //        TX2STA Bits
2298 
2299 extern __at(0x0F72) __sfr TX2STA;
2300 
2301 typedef union
2302   {
2303   struct
2304     {
2305     unsigned TX9D               : 1;
2306     unsigned TRMT               : 1;
2307     unsigned BRGH               : 1;
2308     unsigned SENDB              : 1;
2309     unsigned SYNC               : 1;
2310     unsigned TXEN               : 1;
2311     unsigned TX9                : 1;
2312     unsigned CSRC               : 1;
2313     };
2314 
2315   struct
2316     {
2317     unsigned TX9D2              : 1;
2318     unsigned TRMT2              : 1;
2319     unsigned BRGH2              : 1;
2320     unsigned SENDB2             : 1;
2321     unsigned SYNC2              : 1;
2322     unsigned TXEN2              : 1;
2323     unsigned TX92               : 1;
2324     unsigned CSRC2              : 1;
2325     };
2326   } __TX2STAbits_t;
2327 
2328 extern __at(0x0F72) volatile __TX2STAbits_t TX2STAbits;
2329 
2330 #define _TX2STA_TX9D            0x01
2331 #define _TX2STA_TX9D2           0x01
2332 #define _TX2STA_TRMT            0x02
2333 #define _TX2STA_TRMT2           0x02
2334 #define _TX2STA_BRGH            0x04
2335 #define _TX2STA_BRGH2           0x04
2336 #define _TX2STA_SENDB           0x08
2337 #define _TX2STA_SENDB2          0x08
2338 #define _TX2STA_SYNC            0x10
2339 #define _TX2STA_SYNC2           0x10
2340 #define _TX2STA_TXEN            0x20
2341 #define _TX2STA_TXEN2           0x20
2342 #define _TX2STA_TX9             0x40
2343 #define _TX2STA_TX92            0x40
2344 #define _TX2STA_CSRC            0x80
2345 #define _TX2STA_CSRC2           0x80
2346 
2347 //==============================================================================
2348 
2349 
2350 //==============================================================================
2351 //        TXSTA2 Bits
2352 
2353 extern __at(0x0F72) __sfr TXSTA2;
2354 
2355 typedef union
2356   {
2357   struct
2358     {
2359     unsigned TX9D               : 1;
2360     unsigned TRMT               : 1;
2361     unsigned BRGH               : 1;
2362     unsigned SENDB              : 1;
2363     unsigned SYNC               : 1;
2364     unsigned TXEN               : 1;
2365     unsigned TX9                : 1;
2366     unsigned CSRC               : 1;
2367     };
2368 
2369   struct
2370     {
2371     unsigned TX9D2              : 1;
2372     unsigned TRMT2              : 1;
2373     unsigned BRGH2              : 1;
2374     unsigned SENDB2             : 1;
2375     unsigned SYNC2              : 1;
2376     unsigned TXEN2              : 1;
2377     unsigned TX92               : 1;
2378     unsigned CSRC2              : 1;
2379     };
2380   } __TXSTA2bits_t;
2381 
2382 extern __at(0x0F72) volatile __TXSTA2bits_t TXSTA2bits;
2383 
2384 #define _TXSTA2_TX9D            0x01
2385 #define _TXSTA2_TX9D2           0x01
2386 #define _TXSTA2_TRMT            0x02
2387 #define _TXSTA2_TRMT2           0x02
2388 #define _TXSTA2_BRGH            0x04
2389 #define _TXSTA2_BRGH2           0x04
2390 #define _TXSTA2_SENDB           0x08
2391 #define _TXSTA2_SENDB2          0x08
2392 #define _TXSTA2_SYNC            0x10
2393 #define _TXSTA2_SYNC2           0x10
2394 #define _TXSTA2_TXEN            0x20
2395 #define _TXSTA2_TXEN2           0x20
2396 #define _TXSTA2_TX9             0x40
2397 #define _TXSTA2_TX92            0x40
2398 #define _TXSTA2_CSRC            0x80
2399 #define _TXSTA2_CSRC2           0x80
2400 
2401 //==============================================================================
2402 
2403 extern __at(0x0F73) __sfr TX2REG;
2404 extern __at(0x0F73) __sfr TXREG2;
2405 extern __at(0x0F74) __sfr RC2REG;
2406 extern __at(0x0F74) __sfr RCREG2;
2407 extern __at(0x0F75) __sfr SP2BRG;
2408 extern __at(0x0F75) __sfr SPBRG2;
2409 extern __at(0x0F76) __sfr SP2BRGH;
2410 extern __at(0x0F76) __sfr SPBRGH2;
2411 
2412 //==============================================================================
2413 //        CM12CON Bits
2414 
2415 extern __at(0x0F77) __sfr CM12CON;
2416 
2417 typedef struct
2418   {
2419   unsigned C2SYNC               : 1;
2420   unsigned C1SYNC               : 1;
2421   unsigned C2HYS                : 1;
2422   unsigned C1HYS                : 1;
2423   unsigned C2RSEL               : 1;
2424   unsigned C1RSEL               : 1;
2425   unsigned MC2OUT               : 1;
2426   unsigned MC1OUT               : 1;
2427   } __CM12CONbits_t;
2428 
2429 extern __at(0x0F77) volatile __CM12CONbits_t CM12CONbits;
2430 
2431 #define _CM12CON_C2SYNC         0x01
2432 #define _CM12CON_C1SYNC         0x02
2433 #define _CM12CON_C2HYS          0x04
2434 #define _CM12CON_C1HYS          0x08
2435 #define _CM12CON_C2RSEL         0x10
2436 #define _CM12CON_C1RSEL         0x20
2437 #define _CM12CON_MC2OUT         0x40
2438 #define _CM12CON_MC1OUT         0x80
2439 
2440 //==============================================================================
2441 
2442 
2443 //==============================================================================
2444 //        CM2CON1 Bits
2445 
2446 extern __at(0x0F77) __sfr CM2CON1;
2447 
2448 typedef struct
2449   {
2450   unsigned C2SYNC               : 1;
2451   unsigned C1SYNC               : 1;
2452   unsigned C2HYS                : 1;
2453   unsigned C1HYS                : 1;
2454   unsigned C2RSEL               : 1;
2455   unsigned C1RSEL               : 1;
2456   unsigned MC2OUT               : 1;
2457   unsigned MC1OUT               : 1;
2458   } __CM2CON1bits_t;
2459 
2460 extern __at(0x0F77) volatile __CM2CON1bits_t CM2CON1bits;
2461 
2462 #define _C2SYNC                 0x01
2463 #define _C1SYNC                 0x02
2464 #define _C2HYS                  0x04
2465 #define _C1HYS                  0x08
2466 #define _C2RSEL                 0x10
2467 #define _C1RSEL                 0x20
2468 #define _MC2OUT                 0x40
2469 #define _MC1OUT                 0x80
2470 
2471 //==============================================================================
2472 
2473 
2474 //==============================================================================
2475 //        CM2CON Bits
2476 
2477 extern __at(0x0F78) __sfr CM2CON;
2478 
2479 typedef union
2480   {
2481   struct
2482     {
2483     unsigned C2CH0              : 1;
2484     unsigned C2CH1              : 1;
2485     unsigned C2R                : 1;
2486     unsigned C2SP               : 1;
2487     unsigned C2POL              : 1;
2488     unsigned C2OE               : 1;
2489     unsigned C2OUT              : 1;
2490     unsigned C2ON               : 1;
2491     };
2492 
2493   struct
2494     {
2495     unsigned C2CH               : 2;
2496     unsigned                    : 6;
2497     };
2498   } __CM2CONbits_t;
2499 
2500 extern __at(0x0F78) volatile __CM2CONbits_t CM2CONbits;
2501 
2502 #define _C2CH0                  0x01
2503 #define _C2CH1                  0x02
2504 #define _C2R                    0x04
2505 #define _C2SP                   0x08
2506 #define _C2POL                  0x10
2507 #define _C2OE                   0x20
2508 #define _C2OUT                  0x40
2509 #define _C2ON                   0x80
2510 
2511 //==============================================================================
2512 
2513 
2514 //==============================================================================
2515 //        CM2CON0 Bits
2516 
2517 extern __at(0x0F78) __sfr CM2CON0;
2518 
2519 typedef union
2520   {
2521   struct
2522     {
2523     unsigned C2CH0              : 1;
2524     unsigned C2CH1              : 1;
2525     unsigned C2R                : 1;
2526     unsigned C2SP               : 1;
2527     unsigned C2POL              : 1;
2528     unsigned C2OE               : 1;
2529     unsigned C2OUT              : 1;
2530     unsigned C2ON               : 1;
2531     };
2532 
2533   struct
2534     {
2535     unsigned C2CH               : 2;
2536     unsigned                    : 6;
2537     };
2538   } __CM2CON0bits_t;
2539 
2540 extern __at(0x0F78) volatile __CM2CON0bits_t CM2CON0bits;
2541 
2542 #define _CM2CON0_C2CH0          0x01
2543 #define _CM2CON0_C2CH1          0x02
2544 #define _CM2CON0_C2R            0x04
2545 #define _CM2CON0_C2SP           0x08
2546 #define _CM2CON0_C2POL          0x10
2547 #define _CM2CON0_C2OE           0x20
2548 #define _CM2CON0_C2OUT          0x40
2549 #define _CM2CON0_C2ON           0x80
2550 
2551 //==============================================================================
2552 
2553 
2554 //==============================================================================
2555 //        CM1CON Bits
2556 
2557 extern __at(0x0F79) __sfr CM1CON;
2558 
2559 typedef union
2560   {
2561   struct
2562     {
2563     unsigned C1CH0              : 1;
2564     unsigned C1CH1              : 1;
2565     unsigned C1R                : 1;
2566     unsigned C1SP               : 1;
2567     unsigned C1POL              : 1;
2568     unsigned C1OE               : 1;
2569     unsigned C1OUT              : 1;
2570     unsigned C1ON               : 1;
2571     };
2572 
2573   struct
2574     {
2575     unsigned C1CH               : 2;
2576     unsigned                    : 6;
2577     };
2578   } __CM1CONbits_t;
2579 
2580 extern __at(0x0F79) volatile __CM1CONbits_t CM1CONbits;
2581 
2582 #define _C1CH0                  0x01
2583 #define _C1CH1                  0x02
2584 #define _C1R                    0x04
2585 #define _C1SP                   0x08
2586 #define _C1POL                  0x10
2587 #define _C1OE                   0x20
2588 #define _C1OUT                  0x40
2589 #define _C1ON                   0x80
2590 
2591 //==============================================================================
2592 
2593 
2594 //==============================================================================
2595 //        CM1CON0 Bits
2596 
2597 extern __at(0x0F79) __sfr CM1CON0;
2598 
2599 typedef union
2600   {
2601   struct
2602     {
2603     unsigned C1CH0              : 1;
2604     unsigned C1CH1              : 1;
2605     unsigned C1R                : 1;
2606     unsigned C1SP               : 1;
2607     unsigned C1POL              : 1;
2608     unsigned C1OE               : 1;
2609     unsigned C1OUT              : 1;
2610     unsigned C1ON               : 1;
2611     };
2612 
2613   struct
2614     {
2615     unsigned C1CH               : 2;
2616     unsigned                    : 6;
2617     };
2618   } __CM1CON0bits_t;
2619 
2620 extern __at(0x0F79) volatile __CM1CON0bits_t CM1CON0bits;
2621 
2622 #define _CM1CON0_C1CH0          0x01
2623 #define _CM1CON0_C1CH1          0x02
2624 #define _CM1CON0_C1R            0x04
2625 #define _CM1CON0_C1SP           0x08
2626 #define _CM1CON0_C1POL          0x10
2627 #define _CM1CON0_C1OE           0x20
2628 #define _CM1CON0_C1OUT          0x40
2629 #define _CM1CON0_C1ON           0x80
2630 
2631 //==============================================================================
2632 
2633 
2634 //==============================================================================
2635 //        PIE4 Bits
2636 
2637 extern __at(0x0F7A) __sfr PIE4;
2638 
2639 typedef struct
2640   {
2641   unsigned CCP3IE               : 1;
2642   unsigned CCP4IE               : 1;
2643   unsigned CCP5IE               : 1;
2644   unsigned                      : 1;
2645   unsigned                      : 1;
2646   unsigned                      : 1;
2647   unsigned                      : 1;
2648   unsigned                      : 1;
2649   } __PIE4bits_t;
2650 
2651 extern __at(0x0F7A) volatile __PIE4bits_t PIE4bits;
2652 
2653 #define _CCP3IE                 0x01
2654 #define _CCP4IE                 0x02
2655 #define _CCP5IE                 0x04
2656 
2657 //==============================================================================
2658 
2659 
2660 //==============================================================================
2661 //        PIR4 Bits
2662 
2663 extern __at(0x0F7B) __sfr PIR4;
2664 
2665 typedef struct
2666   {
2667   unsigned CCP3IF               : 1;
2668   unsigned CCP4IF               : 1;
2669   unsigned CCP5IF               : 1;
2670   unsigned                      : 1;
2671   unsigned                      : 1;
2672   unsigned                      : 1;
2673   unsigned                      : 1;
2674   unsigned                      : 1;
2675   } __PIR4bits_t;
2676 
2677 extern __at(0x0F7B) volatile __PIR4bits_t PIR4bits;
2678 
2679 #define _CCP3IF                 0x01
2680 #define _CCP4IF                 0x02
2681 #define _CCP5IF                 0x04
2682 
2683 //==============================================================================
2684 
2685 
2686 //==============================================================================
2687 //        IPR4 Bits
2688 
2689 extern __at(0x0F7C) __sfr IPR4;
2690 
2691 typedef struct
2692   {
2693   unsigned CCP3IP               : 1;
2694   unsigned CCP4IP               : 1;
2695   unsigned CCP5IP               : 1;
2696   unsigned                      : 1;
2697   unsigned                      : 1;
2698   unsigned                      : 1;
2699   unsigned                      : 1;
2700   unsigned                      : 1;
2701   } __IPR4bits_t;
2702 
2703 extern __at(0x0F7C) volatile __IPR4bits_t IPR4bits;
2704 
2705 #define _CCP3IP                 0x01
2706 #define _CCP4IP                 0x02
2707 #define _CCP5IP                 0x04
2708 
2709 //==============================================================================
2710 
2711 
2712 //==============================================================================
2713 //        PIE5 Bits
2714 
2715 extern __at(0x0F7D) __sfr PIE5;
2716 
2717 typedef struct
2718   {
2719   unsigned TMR4IE               : 1;
2720   unsigned TMR5IE               : 1;
2721   unsigned TMR6IE               : 1;
2722   unsigned                      : 1;
2723   unsigned                      : 1;
2724   unsigned                      : 1;
2725   unsigned                      : 1;
2726   unsigned                      : 1;
2727   } __PIE5bits_t;
2728 
2729 extern __at(0x0F7D) volatile __PIE5bits_t PIE5bits;
2730 
2731 #define _TMR4IE                 0x01
2732 #define _TMR5IE                 0x02
2733 #define _TMR6IE                 0x04
2734 
2735 //==============================================================================
2736 
2737 
2738 //==============================================================================
2739 //        PIR5 Bits
2740 
2741 extern __at(0x0F7E) __sfr PIR5;
2742 
2743 typedef struct
2744   {
2745   unsigned TMR4IF               : 1;
2746   unsigned TMR5IF               : 1;
2747   unsigned TMR6IF               : 1;
2748   unsigned                      : 1;
2749   unsigned                      : 1;
2750   unsigned                      : 1;
2751   unsigned                      : 1;
2752   unsigned                      : 1;
2753   } __PIR5bits_t;
2754 
2755 extern __at(0x0F7E) volatile __PIR5bits_t PIR5bits;
2756 
2757 #define _TMR4IF                 0x01
2758 #define _TMR5IF                 0x02
2759 #define _TMR6IF                 0x04
2760 
2761 //==============================================================================
2762 
2763 
2764 //==============================================================================
2765 //        IPR5 Bits
2766 
2767 extern __at(0x0F7F) __sfr IPR5;
2768 
2769 typedef struct
2770   {
2771   unsigned TMR4IP               : 1;
2772   unsigned TMR5IP               : 1;
2773   unsigned TMR6IP               : 1;
2774   unsigned                      : 1;
2775   unsigned                      : 1;
2776   unsigned                      : 1;
2777   unsigned                      : 1;
2778   unsigned                      : 1;
2779   } __IPR5bits_t;
2780 
2781 extern __at(0x0F7F) volatile __IPR5bits_t IPR5bits;
2782 
2783 #define _TMR4IP                 0x01
2784 #define _TMR5IP                 0x02
2785 #define _TMR6IP                 0x04
2786 
2787 //==============================================================================
2788 
2789 
2790 //==============================================================================
2791 //        PORTA Bits
2792 
2793 extern __at(0x0F80) __sfr PORTA;
2794 
2795 typedef union
2796   {
2797   struct
2798     {
2799     unsigned RA0                : 1;
2800     unsigned RA1                : 1;
2801     unsigned RA2                : 1;
2802     unsigned RA3                : 1;
2803     unsigned RA4                : 1;
2804     unsigned RA5                : 1;
2805     unsigned RA6                : 1;
2806     unsigned RA7                : 1;
2807     };
2808 
2809   struct
2810     {
2811     unsigned AN0                : 1;
2812     unsigned AN1                : 1;
2813     unsigned AN2                : 1;
2814     unsigned AN3                : 1;
2815     unsigned C1OUT              : 1;
2816     unsigned AN4                : 1;
2817     unsigned                    : 1;
2818     unsigned                    : 1;
2819     };
2820 
2821   struct
2822     {
2823     unsigned C12IN0M            : 1;
2824     unsigned C12IN1M            : 1;
2825     unsigned C2INP              : 1;
2826     unsigned C1INP              : 1;
2827     unsigned T0CKI              : 1;
2828     unsigned C2OUT              : 1;
2829     unsigned                    : 1;
2830     unsigned                    : 1;
2831     };
2832 
2833   struct
2834     {
2835     unsigned C12IN0N            : 1;
2836     unsigned C12IN1N            : 1;
2837     unsigned VREFM              : 1;
2838     unsigned VREFP              : 1;
2839     unsigned SRQ                : 1;
2840     unsigned SS                 : 1;
2841     unsigned                    : 1;
2842     unsigned                    : 1;
2843     };
2844 
2845   struct
2846     {
2847     unsigned                    : 1;
2848     unsigned                    : 1;
2849     unsigned VREFN              : 1;
2850     unsigned                    : 1;
2851     unsigned CCP5               : 1;
2852     unsigned NOT_SS             : 1;
2853     unsigned                    : 1;
2854     unsigned                    : 1;
2855     };
2856 
2857   struct
2858     {
2859     unsigned                    : 1;
2860     unsigned                    : 1;
2861     unsigned CVREF              : 1;
2862     unsigned                    : 1;
2863     unsigned                    : 1;
2864     unsigned LVDIN              : 1;
2865     unsigned                    : 1;
2866     unsigned                    : 1;
2867     };
2868 
2869   struct
2870     {
2871     unsigned                    : 1;
2872     unsigned                    : 1;
2873     unsigned DACOUT             : 1;
2874     unsigned                    : 1;
2875     unsigned                    : 1;
2876     unsigned HLVDIN             : 1;
2877     unsigned                    : 1;
2878     unsigned                    : 1;
2879     };
2880 
2881   struct
2882     {
2883     unsigned                    : 1;
2884     unsigned                    : 1;
2885     unsigned                    : 1;
2886     unsigned                    : 1;
2887     unsigned                    : 1;
2888     unsigned SS1                : 1;
2889     unsigned                    : 1;
2890     unsigned                    : 1;
2891     };
2892 
2893   struct
2894     {
2895     unsigned                    : 1;
2896     unsigned                    : 1;
2897     unsigned                    : 1;
2898     unsigned                    : 1;
2899     unsigned                    : 1;
2900     unsigned NOT_SS1            : 1;
2901     unsigned                    : 1;
2902     unsigned                    : 1;
2903     };
2904 
2905   struct
2906     {
2907     unsigned                    : 1;
2908     unsigned                    : 1;
2909     unsigned                    : 1;
2910     unsigned                    : 1;
2911     unsigned                    : 1;
2912     unsigned SRNQ               : 1;
2913     unsigned                    : 1;
2914     unsigned                    : 1;
2915     };
2916   } __PORTAbits_t;
2917 
2918 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;
2919 
2920 #define _PORTA_RA0              0x01
2921 #define _PORTA_AN0              0x01
2922 #define _PORTA_C12IN0M          0x01
2923 #define _PORTA_C12IN0N          0x01
2924 #define _PORTA_RA1              0x02
2925 #define _PORTA_AN1              0x02
2926 #define _PORTA_C12IN1M          0x02
2927 #define _PORTA_C12IN1N          0x02
2928 #define _PORTA_RA2              0x04
2929 #define _PORTA_AN2              0x04
2930 #define _PORTA_C2INP            0x04
2931 #define _PORTA_VREFM            0x04
2932 #define _PORTA_VREFN            0x04
2933 #define _PORTA_CVREF            0x04
2934 #define _PORTA_DACOUT           0x04
2935 #define _PORTA_RA3              0x08
2936 #define _PORTA_AN3              0x08
2937 #define _PORTA_C1INP            0x08
2938 #define _PORTA_VREFP            0x08
2939 #define _PORTA_RA4              0x10
2940 #define _PORTA_C1OUT            0x10
2941 #define _PORTA_T0CKI            0x10
2942 #define _PORTA_SRQ              0x10
2943 #define _PORTA_CCP5             0x10
2944 #define _PORTA_RA5              0x20
2945 #define _PORTA_AN4              0x20
2946 #define _PORTA_C2OUT            0x20
2947 #define _PORTA_SS               0x20
2948 #define _PORTA_NOT_SS           0x20
2949 #define _PORTA_LVDIN            0x20
2950 #define _PORTA_HLVDIN           0x20
2951 #define _PORTA_SS1              0x20
2952 #define _PORTA_NOT_SS1          0x20
2953 #define _PORTA_SRNQ             0x20
2954 #define _PORTA_RA6              0x40
2955 #define _PORTA_RA7              0x80
2956 
2957 //==============================================================================
2958 
2959 
2960 //==============================================================================
2961 //        PORTB Bits
2962 
2963 extern __at(0x0F81) __sfr PORTB;
2964 
2965 typedef union
2966   {
2967   struct
2968     {
2969     unsigned RB0                : 1;
2970     unsigned RB1                : 1;
2971     unsigned RB2                : 1;
2972     unsigned RB3                : 1;
2973     unsigned RB4                : 1;
2974     unsigned RB5                : 1;
2975     unsigned RB6                : 1;
2976     unsigned RB7                : 1;
2977     };
2978 
2979   struct
2980     {
2981     unsigned INT0               : 1;
2982     unsigned INT1               : 1;
2983     unsigned INT2               : 1;
2984     unsigned CCP2               : 1;
2985     unsigned KBI0               : 1;
2986     unsigned KBI1               : 1;
2987     unsigned KBI2               : 1;
2988     unsigned KBI3               : 1;
2989     };
2990 
2991   struct
2992     {
2993     unsigned AN12               : 1;
2994     unsigned AN10               : 1;
2995     unsigned AN8                : 1;
2996     unsigned AN9                : 1;
2997     unsigned AN11               : 1;
2998     unsigned AN13               : 1;
2999     unsigned TX2                : 1;
3000     unsigned RX2                : 1;
3001     };
3002 
3003   struct
3004     {
3005     unsigned FLT0               : 1;
3006     unsigned C12IN3M            : 1;
3007     unsigned P1B                : 1;
3008     unsigned C12IN2M            : 1;
3009     unsigned T5G                : 1;
3010     unsigned T1G                : 1;
3011     unsigned CK2                : 1;
3012     unsigned DT2                : 1;
3013     };
3014 
3015   struct
3016     {
3017     unsigned SRI                : 1;
3018     unsigned C12IN3N            : 1;
3019     unsigned CTED1              : 1;
3020     unsigned C12IN2N            : 1;
3021     unsigned P1D                : 1;
3022     unsigned CCP3               : 1;
3023     unsigned PGC                : 1;
3024     unsigned PGD                : 1;
3025     };
3026 
3027   struct
3028     {
3029     unsigned CCP4               : 1;
3030     unsigned P1C                : 1;
3031     unsigned SDA2               : 1;
3032     unsigned CTED2              : 1;
3033     unsigned                    : 1;
3034     unsigned T3CKI              : 1;
3035     unsigned                    : 1;
3036     unsigned                    : 1;
3037     };
3038 
3039   struct
3040     {
3041     unsigned SS2                : 1;
3042     unsigned SCL2               : 1;
3043     unsigned SDI2               : 1;
3044     unsigned P2A                : 1;
3045     unsigned                    : 1;
3046     unsigned P3A                : 1;
3047     unsigned                    : 1;
3048     unsigned                    : 1;
3049     };
3050 
3051   struct
3052     {
3053     unsigned NOT_SS2            : 1;
3054     unsigned SCK2               : 1;
3055     unsigned                    : 1;
3056     unsigned SDO2               : 1;
3057     unsigned                    : 1;
3058     unsigned P2B                : 1;
3059     unsigned                    : 1;
3060     unsigned                    : 1;
3061     };
3062 
3063   struct
3064     {
3065     unsigned INT                : 3;
3066     unsigned                    : 5;
3067     };
3068 
3069   struct
3070     {
3071     unsigned                    : 4;
3072     unsigned KBI                : 4;
3073     };
3074   } __PORTBbits_t;
3075 
3076 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;
3077 
3078 #define _PORTB_RB0              0x01
3079 #define _PORTB_INT0             0x01
3080 #define _PORTB_AN12             0x01
3081 #define _PORTB_FLT0             0x01
3082 #define _PORTB_SRI              0x01
3083 #define _PORTB_CCP4             0x01
3084 #define _PORTB_SS2              0x01
3085 #define _PORTB_NOT_SS2          0x01
3086 #define _PORTB_RB1              0x02
3087 #define _PORTB_INT1             0x02
3088 #define _PORTB_AN10             0x02
3089 #define _PORTB_C12IN3M          0x02
3090 #define _PORTB_C12IN3N          0x02
3091 #define _PORTB_P1C              0x02
3092 #define _PORTB_SCL2             0x02
3093 #define _PORTB_SCK2             0x02
3094 #define _PORTB_RB2              0x04
3095 #define _PORTB_INT2             0x04
3096 #define _PORTB_AN8              0x04
3097 #define _PORTB_P1B              0x04
3098 #define _PORTB_CTED1            0x04
3099 #define _PORTB_SDA2             0x04
3100 #define _PORTB_SDI2             0x04
3101 #define _PORTB_RB3              0x08
3102 #define _PORTB_CCP2             0x08
3103 #define _PORTB_AN9              0x08
3104 #define _PORTB_C12IN2M          0x08
3105 #define _PORTB_C12IN2N          0x08
3106 #define _PORTB_CTED2            0x08
3107 #define _PORTB_P2A              0x08
3108 #define _PORTB_SDO2             0x08
3109 #define _PORTB_RB4              0x10
3110 #define _PORTB_KBI0             0x10
3111 #define _PORTB_AN11             0x10
3112 #define _PORTB_T5G              0x10
3113 #define _PORTB_P1D              0x10
3114 #define _PORTB_RB5              0x20
3115 #define _PORTB_KBI1             0x20
3116 #define _PORTB_AN13             0x20
3117 #define _PORTB_T1G              0x20
3118 #define _PORTB_CCP3             0x20
3119 #define _PORTB_T3CKI            0x20
3120 #define _PORTB_P3A              0x20
3121 #define _PORTB_P2B              0x20
3122 #define _PORTB_RB6              0x40
3123 #define _PORTB_KBI2             0x40
3124 #define _PORTB_TX2              0x40
3125 #define _PORTB_CK2              0x40
3126 #define _PORTB_PGC              0x40
3127 #define _PORTB_RB7              0x80
3128 #define _PORTB_KBI3             0x80
3129 #define _PORTB_RX2              0x80
3130 #define _PORTB_DT2              0x80
3131 #define _PORTB_PGD              0x80
3132 
3133 //==============================================================================
3134 
3135 
3136 //==============================================================================
3137 //        PORTC Bits
3138 
3139 extern __at(0x0F82) __sfr PORTC;
3140 
3141 typedef union
3142   {
3143   struct
3144     {
3145     unsigned RC0                : 1;
3146     unsigned RC1                : 1;
3147     unsigned RC2                : 1;
3148     unsigned RC3                : 1;
3149     unsigned RC4                : 1;
3150     unsigned RC5                : 1;
3151     unsigned RC6                : 1;
3152     unsigned RC7                : 1;
3153     };
3154 
3155   struct
3156     {
3157     unsigned T1OSO              : 1;
3158     unsigned T1OSI              : 1;
3159     unsigned T5CKI              : 1;
3160     unsigned SCK                : 1;
3161     unsigned SDI                : 1;
3162     unsigned SDO                : 1;
3163     unsigned TX                 : 1;
3164     unsigned RX                 : 1;
3165     };
3166 
3167   struct
3168     {
3169     unsigned P2B                : 1;
3170     unsigned P2A                : 1;
3171     unsigned P1A                : 1;
3172     unsigned SCL                : 1;
3173     unsigned SDA                : 1;
3174     unsigned SDO1               : 1;
3175     unsigned CK                 : 1;
3176     unsigned RX1                : 1;
3177     };
3178 
3179   struct
3180     {
3181     unsigned T1CKI              : 1;
3182     unsigned CCP2               : 1;
3183     unsigned CCP1               : 1;
3184     unsigned SCK1               : 1;
3185     unsigned SDI1               : 1;
3186     unsigned AN17               : 1;
3187     unsigned TX1                : 1;
3188     unsigned DT1                : 1;
3189     };
3190 
3191   struct
3192     {
3193     unsigned T3CKI              : 1;
3194     unsigned                    : 1;
3195     unsigned CTPLS              : 1;
3196     unsigned SCL1               : 1;
3197     unsigned SDA1               : 1;
3198     unsigned                    : 1;
3199     unsigned CK1                : 1;
3200     unsigned AN19               : 1;
3201     };
3202 
3203   struct
3204     {
3205     unsigned T3G                : 1;
3206     unsigned                    : 1;
3207     unsigned AN14               : 1;
3208     unsigned AN15               : 1;
3209     unsigned AN16               : 1;
3210     unsigned                    : 1;
3211     unsigned AN18               : 1;
3212     unsigned P3B                : 1;
3213     };
3214 
3215   struct
3216     {
3217     unsigned                    : 1;
3218     unsigned                    : 1;
3219     unsigned                    : 1;
3220     unsigned                    : 1;
3221     unsigned                    : 1;
3222     unsigned                    : 1;
3223     unsigned CCP3               : 1;
3224     unsigned                    : 1;
3225     };
3226 
3227   struct
3228     {
3229     unsigned                    : 1;
3230     unsigned                    : 1;
3231     unsigned                    : 1;
3232     unsigned                    : 1;
3233     unsigned                    : 1;
3234     unsigned                    : 1;
3235     unsigned P3A                : 1;
3236     unsigned                    : 1;
3237     };
3238   } __PORTCbits_t;
3239 
3240 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;
3241 
3242 #define _PORTC_RC0              0x01
3243 #define _PORTC_T1OSO            0x01
3244 #define _PORTC_P2B              0x01
3245 #define _PORTC_T1CKI            0x01
3246 #define _PORTC_T3CKI            0x01
3247 #define _PORTC_T3G              0x01
3248 #define _PORTC_RC1              0x02
3249 #define _PORTC_T1OSI            0x02
3250 #define _PORTC_P2A              0x02
3251 #define _PORTC_CCP2             0x02
3252 #define _PORTC_RC2              0x04
3253 #define _PORTC_T5CKI            0x04
3254 #define _PORTC_P1A              0x04
3255 #define _PORTC_CCP1             0x04
3256 #define _PORTC_CTPLS            0x04
3257 #define _PORTC_AN14             0x04
3258 #define _PORTC_RC3              0x08
3259 #define _PORTC_SCK              0x08
3260 #define _PORTC_SCL              0x08
3261 #define _PORTC_SCK1             0x08
3262 #define _PORTC_SCL1             0x08
3263 #define _PORTC_AN15             0x08
3264 #define _PORTC_RC4              0x10
3265 #define _PORTC_SDI              0x10
3266 #define _PORTC_SDA              0x10
3267 #define _PORTC_SDI1             0x10
3268 #define _PORTC_SDA1             0x10
3269 #define _PORTC_AN16             0x10
3270 #define _PORTC_RC5              0x20
3271 #define _PORTC_SDO              0x20
3272 #define _PORTC_SDO1             0x20
3273 #define _PORTC_AN17             0x20
3274 #define _PORTC_RC6              0x40
3275 #define _PORTC_TX               0x40
3276 #define _PORTC_CK               0x40
3277 #define _PORTC_TX1              0x40
3278 #define _PORTC_CK1              0x40
3279 #define _PORTC_AN18             0x40
3280 #define _PORTC_CCP3             0x40
3281 #define _PORTC_P3A              0x40
3282 #define _PORTC_RC7              0x80
3283 #define _PORTC_RX               0x80
3284 #define _PORTC_RX1              0x80
3285 #define _PORTC_DT1              0x80
3286 #define _PORTC_AN19             0x80
3287 #define _PORTC_P3B              0x80
3288 
3289 //==============================================================================
3290 
3291 
3292 //==============================================================================
3293 //        PORTE Bits
3294 
3295 extern __at(0x0F84) __sfr PORTE;
3296 
3297 typedef union
3298   {
3299   struct
3300     {
3301     unsigned                    : 1;
3302     unsigned                    : 1;
3303     unsigned                    : 1;
3304     unsigned RE3                : 1;
3305     unsigned                    : 1;
3306     unsigned                    : 1;
3307     unsigned                    : 1;
3308     unsigned                    : 1;
3309     };
3310 
3311   struct
3312     {
3313     unsigned                    : 1;
3314     unsigned                    : 1;
3315     unsigned                    : 1;
3316     unsigned MCLR               : 1;
3317     unsigned                    : 1;
3318     unsigned                    : 1;
3319     unsigned                    : 1;
3320     unsigned                    : 1;
3321     };
3322 
3323   struct
3324     {
3325     unsigned                    : 1;
3326     unsigned                    : 1;
3327     unsigned                    : 1;
3328     unsigned NOT_MCLR           : 1;
3329     unsigned                    : 1;
3330     unsigned                    : 1;
3331     unsigned                    : 1;
3332     unsigned                    : 1;
3333     };
3334 
3335   struct
3336     {
3337     unsigned                    : 1;
3338     unsigned                    : 1;
3339     unsigned                    : 1;
3340     unsigned VPP                : 1;
3341     unsigned                    : 1;
3342     unsigned                    : 1;
3343     unsigned                    : 1;
3344     unsigned                    : 1;
3345     };
3346   } __PORTEbits_t;
3347 
3348 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;
3349 
3350 #define _RE3                    0x08
3351 #define _MCLR                   0x08
3352 #define _NOT_MCLR               0x08
3353 #define _VPP                    0x08
3354 
3355 //==============================================================================
3356 
3357 
3358 //==============================================================================
3359 //        LATA Bits
3360 
3361 extern __at(0x0F89) __sfr LATA;
3362 
3363 typedef struct
3364   {
3365   unsigned LATA0                : 1;
3366   unsigned LATA1                : 1;
3367   unsigned LATA2                : 1;
3368   unsigned LATA3                : 1;
3369   unsigned LATA4                : 1;
3370   unsigned LATA5                : 1;
3371   unsigned LATA6                : 1;
3372   unsigned LATA7                : 1;
3373   } __LATAbits_t;
3374 
3375 extern __at(0x0F89) volatile __LATAbits_t LATAbits;
3376 
3377 #define _LATA0                  0x01
3378 #define _LATA1                  0x02
3379 #define _LATA2                  0x04
3380 #define _LATA3                  0x08
3381 #define _LATA4                  0x10
3382 #define _LATA5                  0x20
3383 #define _LATA6                  0x40
3384 #define _LATA7                  0x80
3385 
3386 //==============================================================================
3387 
3388 
3389 //==============================================================================
3390 //        LATB Bits
3391 
3392 extern __at(0x0F8A) __sfr LATB;
3393 
3394 typedef struct
3395   {
3396   unsigned LATB0                : 1;
3397   unsigned LATB1                : 1;
3398   unsigned LATB2                : 1;
3399   unsigned LATB3                : 1;
3400   unsigned LATB4                : 1;
3401   unsigned LATB5                : 1;
3402   unsigned LATB6                : 1;
3403   unsigned LATB7                : 1;
3404   } __LATBbits_t;
3405 
3406 extern __at(0x0F8A) volatile __LATBbits_t LATBbits;
3407 
3408 #define _LATB0                  0x01
3409 #define _LATB1                  0x02
3410 #define _LATB2                  0x04
3411 #define _LATB3                  0x08
3412 #define _LATB4                  0x10
3413 #define _LATB5                  0x20
3414 #define _LATB6                  0x40
3415 #define _LATB7                  0x80
3416 
3417 //==============================================================================
3418 
3419 
3420 //==============================================================================
3421 //        LATC Bits
3422 
3423 extern __at(0x0F8B) __sfr LATC;
3424 
3425 typedef struct
3426   {
3427   unsigned LATC0                : 1;
3428   unsigned LATC1                : 1;
3429   unsigned LATC2                : 1;
3430   unsigned LATC3                : 1;
3431   unsigned LATC4                : 1;
3432   unsigned LATC5                : 1;
3433   unsigned LATC6                : 1;
3434   unsigned LATC7                : 1;
3435   } __LATCbits_t;
3436 
3437 extern __at(0x0F8B) volatile __LATCbits_t LATCbits;
3438 
3439 #define _LATC0                  0x01
3440 #define _LATC1                  0x02
3441 #define _LATC2                  0x04
3442 #define _LATC3                  0x08
3443 #define _LATC4                  0x10
3444 #define _LATC5                  0x20
3445 #define _LATC6                  0x40
3446 #define _LATC7                  0x80
3447 
3448 //==============================================================================
3449 
3450 
3451 //==============================================================================
3452 //        DDRA Bits
3453 
3454 extern __at(0x0F92) __sfr DDRA;
3455 
3456 typedef union
3457   {
3458   struct
3459     {
3460     unsigned TRISA0             : 1;
3461     unsigned TRISA1             : 1;
3462     unsigned TRISA2             : 1;
3463     unsigned TRISA3             : 1;
3464     unsigned TRISA4             : 1;
3465     unsigned TRISA5             : 1;
3466     unsigned TRISA6             : 1;
3467     unsigned TRISA7             : 1;
3468     };
3469 
3470   struct
3471     {
3472     unsigned RA0                : 1;
3473     unsigned RA1                : 1;
3474     unsigned RA2                : 1;
3475     unsigned RA3                : 1;
3476     unsigned RA4                : 1;
3477     unsigned RA5                : 1;
3478     unsigned RA6                : 1;
3479     unsigned RA7                : 1;
3480     };
3481   } __DDRAbits_t;
3482 
3483 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits;
3484 
3485 #define _TRISA0                 0x01
3486 #define _RA0                    0x01
3487 #define _TRISA1                 0x02
3488 #define _RA1                    0x02
3489 #define _TRISA2                 0x04
3490 #define _RA2                    0x04
3491 #define _TRISA3                 0x08
3492 #define _RA3                    0x08
3493 #define _TRISA4                 0x10
3494 #define _RA4                    0x10
3495 #define _TRISA5                 0x20
3496 #define _RA5                    0x20
3497 #define _TRISA6                 0x40
3498 #define _RA6                    0x40
3499 #define _TRISA7                 0x80
3500 #define _RA7                    0x80
3501 
3502 //==============================================================================
3503 
3504 
3505 //==============================================================================
3506 //        TRISA Bits
3507 
3508 extern __at(0x0F92) __sfr TRISA;
3509 
3510 typedef union
3511   {
3512   struct
3513     {
3514     unsigned TRISA0             : 1;
3515     unsigned TRISA1             : 1;
3516     unsigned TRISA2             : 1;
3517     unsigned TRISA3             : 1;
3518     unsigned TRISA4             : 1;
3519     unsigned TRISA5             : 1;
3520     unsigned TRISA6             : 1;
3521     unsigned TRISA7             : 1;
3522     };
3523 
3524   struct
3525     {
3526     unsigned RA0                : 1;
3527     unsigned RA1                : 1;
3528     unsigned RA2                : 1;
3529     unsigned RA3                : 1;
3530     unsigned RA4                : 1;
3531     unsigned RA5                : 1;
3532     unsigned RA6                : 1;
3533     unsigned RA7                : 1;
3534     };
3535   } __TRISAbits_t;
3536 
3537 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;
3538 
3539 #define _TRISA_TRISA0           0x01
3540 #define _TRISA_RA0              0x01
3541 #define _TRISA_TRISA1           0x02
3542 #define _TRISA_RA1              0x02
3543 #define _TRISA_TRISA2           0x04
3544 #define _TRISA_RA2              0x04
3545 #define _TRISA_TRISA3           0x08
3546 #define _TRISA_RA3              0x08
3547 #define _TRISA_TRISA4           0x10
3548 #define _TRISA_RA4              0x10
3549 #define _TRISA_TRISA5           0x20
3550 #define _TRISA_RA5              0x20
3551 #define _TRISA_TRISA6           0x40
3552 #define _TRISA_RA6              0x40
3553 #define _TRISA_TRISA7           0x80
3554 #define _TRISA_RA7              0x80
3555 
3556 //==============================================================================
3557 
3558 
3559 //==============================================================================
3560 //        DDRB Bits
3561 
3562 extern __at(0x0F93) __sfr DDRB;
3563 
3564 typedef union
3565   {
3566   struct
3567     {
3568     unsigned TRISB0             : 1;
3569     unsigned TRISB1             : 1;
3570     unsigned TRISB2             : 1;
3571     unsigned TRISB3             : 1;
3572     unsigned TRISB4             : 1;
3573     unsigned TRISB5             : 1;
3574     unsigned TRISB6             : 1;
3575     unsigned TRISB7             : 1;
3576     };
3577 
3578   struct
3579     {
3580     unsigned RB0                : 1;
3581     unsigned RB1                : 1;
3582     unsigned RB2                : 1;
3583     unsigned RB3                : 1;
3584     unsigned RB4                : 1;
3585     unsigned RB5                : 1;
3586     unsigned RB6                : 1;
3587     unsigned RB7                : 1;
3588     };
3589   } __DDRBbits_t;
3590 
3591 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits;
3592 
3593 #define _TRISB0                 0x01
3594 #define _RB0                    0x01
3595 #define _TRISB1                 0x02
3596 #define _RB1                    0x02
3597 #define _TRISB2                 0x04
3598 #define _RB2                    0x04
3599 #define _TRISB3                 0x08
3600 #define _RB3                    0x08
3601 #define _TRISB4                 0x10
3602 #define _RB4                    0x10
3603 #define _TRISB5                 0x20
3604 #define _RB5                    0x20
3605 #define _TRISB6                 0x40
3606 #define _RB6                    0x40
3607 #define _TRISB7                 0x80
3608 #define _RB7                    0x80
3609 
3610 //==============================================================================
3611 
3612 
3613 //==============================================================================
3614 //        TRISB Bits
3615 
3616 extern __at(0x0F93) __sfr TRISB;
3617 
3618 typedef union
3619   {
3620   struct
3621     {
3622     unsigned TRISB0             : 1;
3623     unsigned TRISB1             : 1;
3624     unsigned TRISB2             : 1;
3625     unsigned TRISB3             : 1;
3626     unsigned TRISB4             : 1;
3627     unsigned TRISB5             : 1;
3628     unsigned TRISB6             : 1;
3629     unsigned TRISB7             : 1;
3630     };
3631 
3632   struct
3633     {
3634     unsigned RB0                : 1;
3635     unsigned RB1                : 1;
3636     unsigned RB2                : 1;
3637     unsigned RB3                : 1;
3638     unsigned RB4                : 1;
3639     unsigned RB5                : 1;
3640     unsigned RB6                : 1;
3641     unsigned RB7                : 1;
3642     };
3643   } __TRISBbits_t;
3644 
3645 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;
3646 
3647 #define _TRISB_TRISB0           0x01
3648 #define _TRISB_RB0              0x01
3649 #define _TRISB_TRISB1           0x02
3650 #define _TRISB_RB1              0x02
3651 #define _TRISB_TRISB2           0x04
3652 #define _TRISB_RB2              0x04
3653 #define _TRISB_TRISB3           0x08
3654 #define _TRISB_RB3              0x08
3655 #define _TRISB_TRISB4           0x10
3656 #define _TRISB_RB4              0x10
3657 #define _TRISB_TRISB5           0x20
3658 #define _TRISB_RB5              0x20
3659 #define _TRISB_TRISB6           0x40
3660 #define _TRISB_RB6              0x40
3661 #define _TRISB_TRISB7           0x80
3662 #define _TRISB_RB7              0x80
3663 
3664 //==============================================================================
3665 
3666 
3667 //==============================================================================
3668 //        DDRC Bits
3669 
3670 extern __at(0x0F94) __sfr DDRC;
3671 
3672 typedef union
3673   {
3674   struct
3675     {
3676     unsigned TRISC0             : 1;
3677     unsigned TRISC1             : 1;
3678     unsigned TRISC2             : 1;
3679     unsigned TRISC3             : 1;
3680     unsigned TRISC4             : 1;
3681     unsigned TRISC5             : 1;
3682     unsigned TRISC6             : 1;
3683     unsigned TRISC7             : 1;
3684     };
3685 
3686   struct
3687     {
3688     unsigned RC0                : 1;
3689     unsigned RC1                : 1;
3690     unsigned RC2                : 1;
3691     unsigned RC3                : 1;
3692     unsigned RC4                : 1;
3693     unsigned RC5                : 1;
3694     unsigned RC6                : 1;
3695     unsigned RC7                : 1;
3696     };
3697   } __DDRCbits_t;
3698 
3699 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits;
3700 
3701 #define _TRISC0                 0x01
3702 #define _RC0                    0x01
3703 #define _TRISC1                 0x02
3704 #define _RC1                    0x02
3705 #define _TRISC2                 0x04
3706 #define _RC2                    0x04
3707 #define _TRISC3                 0x08
3708 #define _RC3                    0x08
3709 #define _TRISC4                 0x10
3710 #define _RC4                    0x10
3711 #define _TRISC5                 0x20
3712 #define _RC5                    0x20
3713 #define _TRISC6                 0x40
3714 #define _RC6                    0x40
3715 #define _TRISC7                 0x80
3716 #define _RC7                    0x80
3717 
3718 //==============================================================================
3719 
3720 
3721 //==============================================================================
3722 //        TRISC Bits
3723 
3724 extern __at(0x0F94) __sfr TRISC;
3725 
3726 typedef union
3727   {
3728   struct
3729     {
3730     unsigned TRISC0             : 1;
3731     unsigned TRISC1             : 1;
3732     unsigned TRISC2             : 1;
3733     unsigned TRISC3             : 1;
3734     unsigned TRISC4             : 1;
3735     unsigned TRISC5             : 1;
3736     unsigned TRISC6             : 1;
3737     unsigned TRISC7             : 1;
3738     };
3739 
3740   struct
3741     {
3742     unsigned RC0                : 1;
3743     unsigned RC1                : 1;
3744     unsigned RC2                : 1;
3745     unsigned RC3                : 1;
3746     unsigned RC4                : 1;
3747     unsigned RC5                : 1;
3748     unsigned RC6                : 1;
3749     unsigned RC7                : 1;
3750     };
3751   } __TRISCbits_t;
3752 
3753 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;
3754 
3755 #define _TRISC_TRISC0           0x01
3756 #define _TRISC_RC0              0x01
3757 #define _TRISC_TRISC1           0x02
3758 #define _TRISC_RC1              0x02
3759 #define _TRISC_TRISC2           0x04
3760 #define _TRISC_RC2              0x04
3761 #define _TRISC_TRISC3           0x08
3762 #define _TRISC_RC3              0x08
3763 #define _TRISC_TRISC4           0x10
3764 #define _TRISC_RC4              0x10
3765 #define _TRISC_TRISC5           0x20
3766 #define _TRISC_RC5              0x20
3767 #define _TRISC_TRISC6           0x40
3768 #define _TRISC_RC6              0x40
3769 #define _TRISC_TRISC7           0x80
3770 #define _TRISC_RC7              0x80
3771 
3772 //==============================================================================
3773 
3774 
3775 //==============================================================================
3776 //        TRISE Bits
3777 
3778 extern __at(0x0F96) __sfr TRISE;
3779 
3780 typedef struct
3781   {
3782   unsigned                      : 1;
3783   unsigned                      : 1;
3784   unsigned                      : 1;
3785   unsigned                      : 1;
3786   unsigned                      : 1;
3787   unsigned                      : 1;
3788   unsigned                      : 1;
3789   unsigned WPUE3                : 1;
3790   } __TRISEbits_t;
3791 
3792 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits;
3793 
3794 #define _WPUE3                  0x80
3795 
3796 //==============================================================================
3797 
3798 
3799 //==============================================================================
3800 //        OSCTUNE Bits
3801 
3802 extern __at(0x0F9B) __sfr OSCTUNE;
3803 
3804 typedef union
3805   {
3806   struct
3807     {
3808     unsigned TUN0               : 1;
3809     unsigned TUN1               : 1;
3810     unsigned TUN2               : 1;
3811     unsigned TUN3               : 1;
3812     unsigned TUN4               : 1;
3813     unsigned TUN5               : 1;
3814     unsigned PLLEN              : 1;
3815     unsigned INTSRC             : 1;
3816     };
3817 
3818   struct
3819     {
3820     unsigned TUN                : 6;
3821     unsigned                    : 2;
3822     };
3823   } __OSCTUNEbits_t;
3824 
3825 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;
3826 
3827 #define _TUN0                   0x01
3828 #define _TUN1                   0x02
3829 #define _TUN2                   0x04
3830 #define _TUN3                   0x08
3831 #define _TUN4                   0x10
3832 #define _TUN5                   0x20
3833 #define _PLLEN                  0x40
3834 #define _INTSRC                 0x80
3835 
3836 //==============================================================================
3837 
3838 
3839 //==============================================================================
3840 //        HLVDCON Bits
3841 
3842 extern __at(0x0F9C) __sfr HLVDCON;
3843 
3844 typedef union
3845   {
3846   struct
3847     {
3848     unsigned HLVDL0             : 1;
3849     unsigned HLVDL1             : 1;
3850     unsigned HLVDL2             : 1;
3851     unsigned HLVDL3             : 1;
3852     unsigned HLVDEN             : 1;
3853     unsigned IRVST              : 1;
3854     unsigned BGVST              : 1;
3855     unsigned VDIRMAG            : 1;
3856     };
3857 
3858   struct
3859     {
3860     unsigned LVDL0              : 1;
3861     unsigned LVDL1              : 1;
3862     unsigned LVDL2              : 1;
3863     unsigned LVDL3              : 1;
3864     unsigned LVDEN              : 1;
3865     unsigned IVRST              : 1;
3866     unsigned                    : 1;
3867     unsigned                    : 1;
3868     };
3869 
3870   struct
3871     {
3872     unsigned LVV0               : 1;
3873     unsigned LVV1               : 1;
3874     unsigned LVV2               : 1;
3875     unsigned LVV3               : 1;
3876     unsigned                    : 1;
3877     unsigned BGST               : 1;
3878     unsigned                    : 1;
3879     unsigned                    : 1;
3880     };
3881 
3882   struct
3883     {
3884     unsigned LVV                : 4;
3885     unsigned                    : 4;
3886     };
3887 
3888   struct
3889     {
3890     unsigned LVDL               : 4;
3891     unsigned                    : 4;
3892     };
3893 
3894   struct
3895     {
3896     unsigned HLVDL              : 4;
3897     unsigned                    : 4;
3898     };
3899   } __HLVDCONbits_t;
3900 
3901 extern __at(0x0F9C) volatile __HLVDCONbits_t HLVDCONbits;
3902 
3903 #define _HLVDL0                 0x01
3904 #define _LVDL0                  0x01
3905 #define _LVV0                   0x01
3906 #define _HLVDL1                 0x02
3907 #define _LVDL1                  0x02
3908 #define _LVV1                   0x02
3909 #define _HLVDL2                 0x04
3910 #define _LVDL2                  0x04
3911 #define _LVV2                   0x04
3912 #define _HLVDL3                 0x08
3913 #define _LVDL3                  0x08
3914 #define _LVV3                   0x08
3915 #define _HLVDEN                 0x10
3916 #define _LVDEN                  0x10
3917 #define _IRVST                  0x20
3918 #define _IVRST                  0x20
3919 #define _BGST                   0x20
3920 #define _BGVST                  0x40
3921 #define _VDIRMAG                0x80
3922 
3923 //==============================================================================
3924 
3925 
3926 //==============================================================================
3927 //        LVDCON Bits
3928 
3929 extern __at(0x0F9C) __sfr LVDCON;
3930 
3931 typedef union
3932   {
3933   struct
3934     {
3935     unsigned HLVDL0             : 1;
3936     unsigned HLVDL1             : 1;
3937     unsigned HLVDL2             : 1;
3938     unsigned HLVDL3             : 1;
3939     unsigned HLVDEN             : 1;
3940     unsigned IRVST              : 1;
3941     unsigned BGVST              : 1;
3942     unsigned VDIRMAG            : 1;
3943     };
3944 
3945   struct
3946     {
3947     unsigned LVDL0              : 1;
3948     unsigned LVDL1              : 1;
3949     unsigned LVDL2              : 1;
3950     unsigned LVDL3              : 1;
3951     unsigned LVDEN              : 1;
3952     unsigned IVRST              : 1;
3953     unsigned                    : 1;
3954     unsigned                    : 1;
3955     };
3956 
3957   struct
3958     {
3959     unsigned LVV0               : 1;
3960     unsigned LVV1               : 1;
3961     unsigned LVV2               : 1;
3962     unsigned LVV3               : 1;
3963     unsigned                    : 1;
3964     unsigned BGST               : 1;
3965     unsigned                    : 1;
3966     unsigned                    : 1;
3967     };
3968 
3969   struct
3970     {
3971     unsigned LVDL               : 4;
3972     unsigned                    : 4;
3973     };
3974 
3975   struct
3976     {
3977     unsigned LVV                : 4;
3978     unsigned                    : 4;
3979     };
3980 
3981   struct
3982     {
3983     unsigned HLVDL              : 4;
3984     unsigned                    : 4;
3985     };
3986   } __LVDCONbits_t;
3987 
3988 extern __at(0x0F9C) volatile __LVDCONbits_t LVDCONbits;
3989 
3990 #define _LVDCON_HLVDL0          0x01
3991 #define _LVDCON_LVDL0           0x01
3992 #define _LVDCON_LVV0            0x01
3993 #define _LVDCON_HLVDL1          0x02
3994 #define _LVDCON_LVDL1           0x02
3995 #define _LVDCON_LVV1            0x02
3996 #define _LVDCON_HLVDL2          0x04
3997 #define _LVDCON_LVDL2           0x04
3998 #define _LVDCON_LVV2            0x04
3999 #define _LVDCON_HLVDL3          0x08
4000 #define _LVDCON_LVDL3           0x08
4001 #define _LVDCON_LVV3            0x08
4002 #define _LVDCON_HLVDEN          0x10
4003 #define _LVDCON_LVDEN           0x10
4004 #define _LVDCON_IRVST           0x20
4005 #define _LVDCON_IVRST           0x20
4006 #define _LVDCON_BGST            0x20
4007 #define _LVDCON_BGVST           0x40
4008 #define _LVDCON_VDIRMAG         0x80
4009 
4010 //==============================================================================
4011 
4012 
4013 //==============================================================================
4014 //        PIE1 Bits
4015 
4016 extern __at(0x0F9D) __sfr PIE1;
4017 
4018 typedef union
4019   {
4020   struct
4021     {
4022     unsigned TMR1IE             : 1;
4023     unsigned TMR2IE             : 1;
4024     unsigned CCP1IE             : 1;
4025     unsigned SSP1IE             : 1;
4026     unsigned TX1IE              : 1;
4027     unsigned RC1IE              : 1;
4028     unsigned ADIE               : 1;
4029     unsigned                    : 1;
4030     };
4031 
4032   struct
4033     {
4034     unsigned                    : 1;
4035     unsigned                    : 1;
4036     unsigned                    : 1;
4037     unsigned SSPIE              : 1;
4038     unsigned TXIE               : 1;
4039     unsigned RCIE               : 1;
4040     unsigned                    : 1;
4041     unsigned                    : 1;
4042     };
4043   } __PIE1bits_t;
4044 
4045 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;
4046 
4047 #define _TMR1IE                 0x01
4048 #define _TMR2IE                 0x02
4049 #define _CCP1IE                 0x04
4050 #define _SSP1IE                 0x08
4051 #define _SSPIE                  0x08
4052 #define _TX1IE                  0x10
4053 #define _TXIE                   0x10
4054 #define _RC1IE                  0x20
4055 #define _RCIE                   0x20
4056 #define _ADIE                   0x40
4057 
4058 //==============================================================================
4059 
4060 
4061 //==============================================================================
4062 //        PIR1 Bits
4063 
4064 extern __at(0x0F9E) __sfr PIR1;
4065 
4066 typedef union
4067   {
4068   struct
4069     {
4070     unsigned TMR1IF             : 1;
4071     unsigned TMR2IF             : 1;
4072     unsigned CCP1IF             : 1;
4073     unsigned SSP1IF             : 1;
4074     unsigned TX1IF              : 1;
4075     unsigned RC1IF              : 1;
4076     unsigned ADIF               : 1;
4077     unsigned                    : 1;
4078     };
4079 
4080   struct
4081     {
4082     unsigned                    : 1;
4083     unsigned                    : 1;
4084     unsigned                    : 1;
4085     unsigned SSPIF              : 1;
4086     unsigned TXIF               : 1;
4087     unsigned RCIF               : 1;
4088     unsigned                    : 1;
4089     unsigned                    : 1;
4090     };
4091   } __PIR1bits_t;
4092 
4093 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;
4094 
4095 #define _TMR1IF                 0x01
4096 #define _TMR2IF                 0x02
4097 #define _CCP1IF                 0x04
4098 #define _SSP1IF                 0x08
4099 #define _SSPIF                  0x08
4100 #define _TX1IF                  0x10
4101 #define _TXIF                   0x10
4102 #define _RC1IF                  0x20
4103 #define _RCIF                   0x20
4104 #define _ADIF                   0x40
4105 
4106 //==============================================================================
4107 
4108 
4109 //==============================================================================
4110 //        IPR1 Bits
4111 
4112 extern __at(0x0F9F) __sfr IPR1;
4113 
4114 typedef union
4115   {
4116   struct
4117     {
4118     unsigned TMR1IP             : 1;
4119     unsigned TMR2IP             : 1;
4120     unsigned CCP1IP             : 1;
4121     unsigned SSP1IP             : 1;
4122     unsigned TX1IP              : 1;
4123     unsigned RC1IP              : 1;
4124     unsigned ADIP               : 1;
4125     unsigned                    : 1;
4126     };
4127 
4128   struct
4129     {
4130     unsigned                    : 1;
4131     unsigned                    : 1;
4132     unsigned                    : 1;
4133     unsigned SSPIP              : 1;
4134     unsigned TXIP               : 1;
4135     unsigned RCIP               : 1;
4136     unsigned                    : 1;
4137     unsigned                    : 1;
4138     };
4139   } __IPR1bits_t;
4140 
4141 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;
4142 
4143 #define _TMR1IP                 0x01
4144 #define _TMR2IP                 0x02
4145 #define _CCP1IP                 0x04
4146 #define _SSP1IP                 0x08
4147 #define _SSPIP                  0x08
4148 #define _TX1IP                  0x10
4149 #define _TXIP                   0x10
4150 #define _RC1IP                  0x20
4151 #define _RCIP                   0x20
4152 #define _ADIP                   0x40
4153 
4154 //==============================================================================
4155 
4156 
4157 //==============================================================================
4158 //        PIE2 Bits
4159 
4160 extern __at(0x0FA0) __sfr PIE2;
4161 
4162 typedef union
4163   {
4164   struct
4165     {
4166     unsigned CCP2IE             : 1;
4167     unsigned TMR3IE             : 1;
4168     unsigned HLVDIE             : 1;
4169     unsigned BCL1IE             : 1;
4170     unsigned EEIE               : 1;
4171     unsigned C2IE               : 1;
4172     unsigned C1IE               : 1;
4173     unsigned OSCFIE             : 1;
4174     };
4175 
4176   struct
4177     {
4178     unsigned                    : 1;
4179     unsigned                    : 1;
4180     unsigned LVDIE              : 1;
4181     unsigned BCLIE              : 1;
4182     unsigned                    : 1;
4183     unsigned                    : 1;
4184     unsigned                    : 1;
4185     unsigned                    : 1;
4186     };
4187   } __PIE2bits_t;
4188 
4189 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;
4190 
4191 #define _CCP2IE                 0x01
4192 #define _TMR3IE                 0x02
4193 #define _HLVDIE                 0x04
4194 #define _LVDIE                  0x04
4195 #define _BCL1IE                 0x08
4196 #define _BCLIE                  0x08
4197 #define _EEIE                   0x10
4198 #define _C2IE                   0x20
4199 #define _C1IE                   0x40
4200 #define _OSCFIE                 0x80
4201 
4202 //==============================================================================
4203 
4204 
4205 //==============================================================================
4206 //        PIR2 Bits
4207 
4208 extern __at(0x0FA1) __sfr PIR2;
4209 
4210 typedef union
4211   {
4212   struct
4213     {
4214     unsigned CCP2IF             : 1;
4215     unsigned TMR3IF             : 1;
4216     unsigned HLVDIF             : 1;
4217     unsigned BCL1IF             : 1;
4218     unsigned EEIF               : 1;
4219     unsigned C2IF               : 1;
4220     unsigned C1IF               : 1;
4221     unsigned OSCFIF             : 1;
4222     };
4223 
4224   struct
4225     {
4226     unsigned                    : 1;
4227     unsigned                    : 1;
4228     unsigned LVDIF              : 1;
4229     unsigned BCLIF              : 1;
4230     unsigned                    : 1;
4231     unsigned                    : 1;
4232     unsigned                    : 1;
4233     unsigned                    : 1;
4234     };
4235   } __PIR2bits_t;
4236 
4237 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;
4238 
4239 #define _CCP2IF                 0x01
4240 #define _TMR3IF                 0x02
4241 #define _HLVDIF                 0x04
4242 #define _LVDIF                  0x04
4243 #define _BCL1IF                 0x08
4244 #define _BCLIF                  0x08
4245 #define _EEIF                   0x10
4246 #define _C2IF                   0x20
4247 #define _C1IF                   0x40
4248 #define _OSCFIF                 0x80
4249 
4250 //==============================================================================
4251 
4252 
4253 //==============================================================================
4254 //        IPR2 Bits
4255 
4256 extern __at(0x0FA2) __sfr IPR2;
4257 
4258 typedef union
4259   {
4260   struct
4261     {
4262     unsigned CCP2IP             : 1;
4263     unsigned TMR3IP             : 1;
4264     unsigned HLVDIP             : 1;
4265     unsigned BCL1IP             : 1;
4266     unsigned EEIP               : 1;
4267     unsigned C2IP               : 1;
4268     unsigned C1IP               : 1;
4269     unsigned OSCFIP             : 1;
4270     };
4271 
4272   struct
4273     {
4274     unsigned                    : 1;
4275     unsigned                    : 1;
4276     unsigned LVDIP              : 1;
4277     unsigned BCLIP              : 1;
4278     unsigned                    : 1;
4279     unsigned                    : 1;
4280     unsigned                    : 1;
4281     unsigned                    : 1;
4282     };
4283   } __IPR2bits_t;
4284 
4285 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;
4286 
4287 #define _CCP2IP                 0x01
4288 #define _TMR3IP                 0x02
4289 #define _HLVDIP                 0x04
4290 #define _LVDIP                  0x04
4291 #define _BCL1IP                 0x08
4292 #define _BCLIP                  0x08
4293 #define _EEIP                   0x10
4294 #define _C2IP                   0x20
4295 #define _C1IP                   0x40
4296 #define _OSCFIP                 0x80
4297 
4298 //==============================================================================
4299 
4300 
4301 //==============================================================================
4302 //        PIE3 Bits
4303 
4304 extern __at(0x0FA3) __sfr PIE3;
4305 
4306 typedef struct
4307   {
4308   unsigned TMR1GIE              : 1;
4309   unsigned TMR3GIE              : 1;
4310   unsigned TMR5GIE              : 1;
4311   unsigned CTMUIE               : 1;
4312   unsigned TX2IE                : 1;
4313   unsigned RC2IE                : 1;
4314   unsigned BCL2IE               : 1;
4315   unsigned SSP2IE               : 1;
4316   } __PIE3bits_t;
4317 
4318 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;
4319 
4320 #define _TMR1GIE                0x01
4321 #define _TMR3GIE                0x02
4322 #define _TMR5GIE                0x04
4323 #define _CTMUIE                 0x08
4324 #define _TX2IE                  0x10
4325 #define _RC2IE                  0x20
4326 #define _BCL2IE                 0x40
4327 #define _SSP2IE                 0x80
4328 
4329 //==============================================================================
4330 
4331 
4332 //==============================================================================
4333 //        PIR3 Bits
4334 
4335 extern __at(0x0FA4) __sfr PIR3;
4336 
4337 typedef struct
4338   {
4339   unsigned TMR1GIF              : 1;
4340   unsigned TMR3GIF              : 1;
4341   unsigned TMR5GIF              : 1;
4342   unsigned CTMUIF               : 1;
4343   unsigned TX2IF                : 1;
4344   unsigned RC2IF                : 1;
4345   unsigned BCL2IF               : 1;
4346   unsigned SSP2IF               : 1;
4347   } __PIR3bits_t;
4348 
4349 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;
4350 
4351 #define _TMR1GIF                0x01
4352 #define _TMR3GIF                0x02
4353 #define _TMR5GIF                0x04
4354 #define _CTMUIF                 0x08
4355 #define _TX2IF                  0x10
4356 #define _RC2IF                  0x20
4357 #define _BCL2IF                 0x40
4358 #define _SSP2IF                 0x80
4359 
4360 //==============================================================================
4361 
4362 
4363 //==============================================================================
4364 //        IPR3 Bits
4365 
4366 extern __at(0x0FA5) __sfr IPR3;
4367 
4368 typedef struct
4369   {
4370   unsigned TMR1GIP              : 1;
4371   unsigned TMR3GIP              : 1;
4372   unsigned TMR5GIP              : 1;
4373   unsigned CTMUIP               : 1;
4374   unsigned TX2IP                : 1;
4375   unsigned RC2IP                : 1;
4376   unsigned BCL2IP               : 1;
4377   unsigned SSP2IP               : 1;
4378   } __IPR3bits_t;
4379 
4380 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;
4381 
4382 #define _TMR1GIP                0x01
4383 #define _TMR3GIP                0x02
4384 #define _TMR5GIP                0x04
4385 #define _CTMUIP                 0x08
4386 #define _TX2IP                  0x10
4387 #define _RC2IP                  0x20
4388 #define _BCL2IP                 0x40
4389 #define _SSP2IP                 0x80
4390 
4391 //==============================================================================
4392 
4393 
4394 //==============================================================================
4395 //        EECON1 Bits
4396 
4397 extern __at(0x0FA6) __sfr EECON1;
4398 
4399 typedef struct
4400   {
4401   unsigned RD                   : 1;
4402   unsigned WR                   : 1;
4403   unsigned WREN                 : 1;
4404   unsigned WRERR                : 1;
4405   unsigned FREE                 : 1;
4406   unsigned                      : 1;
4407   unsigned CFGS                 : 1;
4408   unsigned EEPGD                : 1;
4409   } __EECON1bits_t;
4410 
4411 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits;
4412 
4413 #define _RD                     0x01
4414 #define _WR                     0x02
4415 #define _WREN                   0x04
4416 #define _WRERR                  0x08
4417 #define _FREE                   0x10
4418 #define _CFGS                   0x40
4419 #define _EEPGD                  0x80
4420 
4421 //==============================================================================
4422 
4423 extern __at(0x0FA7) __sfr EECON2;
4424 extern __at(0x0FA8) __sfr EEDATA;
4425 
4426 //==============================================================================
4427 //        EEADR Bits
4428 
4429 extern __at(0x0FA9) __sfr EEADR;
4430 
4431 typedef struct
4432   {
4433   unsigned EEADR0               : 1;
4434   unsigned EEADR1               : 1;
4435   unsigned EEADR2               : 1;
4436   unsigned EEADR3               : 1;
4437   unsigned EEADR4               : 1;
4438   unsigned EEADR5               : 1;
4439   unsigned EEADR6               : 1;
4440   unsigned EEADR7               : 1;
4441   } __EEADRbits_t;
4442 
4443 extern __at(0x0FA9) volatile __EEADRbits_t EEADRbits;
4444 
4445 #define _EEADR0                 0x01
4446 #define _EEADR1                 0x02
4447 #define _EEADR2                 0x04
4448 #define _EEADR3                 0x08
4449 #define _EEADR4                 0x10
4450 #define _EEADR5                 0x20
4451 #define _EEADR6                 0x40
4452 #define _EEADR7                 0x80
4453 
4454 //==============================================================================
4455 
4456 
4457 //==============================================================================
4458 //        RC1STA Bits
4459 
4460 extern __at(0x0FAB) __sfr RC1STA;
4461 
4462 typedef union
4463   {
4464   struct
4465     {
4466     unsigned RX9D               : 1;
4467     unsigned OERR               : 1;
4468     unsigned FERR               : 1;
4469     unsigned ADDEN              : 1;
4470     unsigned CREN               : 1;
4471     unsigned SREN               : 1;
4472     unsigned RX9                : 1;
4473     unsigned SPEN               : 1;
4474     };
4475 
4476   struct
4477     {
4478     unsigned RX9D1              : 1;
4479     unsigned OERR1              : 1;
4480     unsigned FERR1              : 1;
4481     unsigned ADEN               : 1;
4482     unsigned CREN1              : 1;
4483     unsigned SREN1              : 1;
4484     unsigned RX91               : 1;
4485     unsigned SPEN1              : 1;
4486     };
4487 
4488   struct
4489     {
4490     unsigned                    : 1;
4491     unsigned                    : 1;
4492     unsigned                    : 1;
4493     unsigned ADDEN1             : 1;
4494     unsigned                    : 1;
4495     unsigned                    : 1;
4496     unsigned                    : 1;
4497     unsigned                    : 1;
4498     };
4499   } __RC1STAbits_t;
4500 
4501 extern __at(0x0FAB) volatile __RC1STAbits_t RC1STAbits;
4502 
4503 #define _RX9D                   0x01
4504 #define _RX9D1                  0x01
4505 #define _OERR                   0x02
4506 #define _OERR1                  0x02
4507 #define _FERR                   0x04
4508 #define _FERR1                  0x04
4509 #define _ADDEN                  0x08
4510 #define _ADEN                   0x08
4511 #define _ADDEN1                 0x08
4512 #define _CREN                   0x10
4513 #define _CREN1                  0x10
4514 #define _SREN                   0x20
4515 #define _SREN1                  0x20
4516 #define _RX9                    0x40
4517 #define _RX91                   0x40
4518 #define _SPEN                   0x80
4519 #define _SPEN1                  0x80
4520 
4521 //==============================================================================
4522 
4523 
4524 //==============================================================================
4525 //        RCSTA Bits
4526 
4527 extern __at(0x0FAB) __sfr RCSTA;
4528 
4529 typedef union
4530   {
4531   struct
4532     {
4533     unsigned RX9D               : 1;
4534     unsigned OERR               : 1;
4535     unsigned FERR               : 1;
4536     unsigned ADDEN              : 1;
4537     unsigned CREN               : 1;
4538     unsigned SREN               : 1;
4539     unsigned RX9                : 1;
4540     unsigned SPEN               : 1;
4541     };
4542 
4543   struct
4544     {
4545     unsigned RX9D1              : 1;
4546     unsigned OERR1              : 1;
4547     unsigned FERR1              : 1;
4548     unsigned ADEN               : 1;
4549     unsigned CREN1              : 1;
4550     unsigned SREN1              : 1;
4551     unsigned RX91               : 1;
4552     unsigned SPEN1              : 1;
4553     };
4554 
4555   struct
4556     {
4557     unsigned                    : 1;
4558     unsigned                    : 1;
4559     unsigned                    : 1;
4560     unsigned ADDEN1             : 1;
4561     unsigned                    : 1;
4562     unsigned                    : 1;
4563     unsigned                    : 1;
4564     unsigned                    : 1;
4565     };
4566   } __RCSTAbits_t;
4567 
4568 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;
4569 
4570 #define _RCSTA_RX9D             0x01
4571 #define _RCSTA_RX9D1            0x01
4572 #define _RCSTA_OERR             0x02
4573 #define _RCSTA_OERR1            0x02
4574 #define _RCSTA_FERR             0x04
4575 #define _RCSTA_FERR1            0x04
4576 #define _RCSTA_ADDEN            0x08
4577 #define _RCSTA_ADEN             0x08
4578 #define _RCSTA_ADDEN1           0x08
4579 #define _RCSTA_CREN             0x10
4580 #define _RCSTA_CREN1            0x10
4581 #define _RCSTA_SREN             0x20
4582 #define _RCSTA_SREN1            0x20
4583 #define _RCSTA_RX9              0x40
4584 #define _RCSTA_RX91             0x40
4585 #define _RCSTA_SPEN             0x80
4586 #define _RCSTA_SPEN1            0x80
4587 
4588 //==============================================================================
4589 
4590 
4591 //==============================================================================
4592 //        RCSTA1 Bits
4593 
4594 extern __at(0x0FAB) __sfr RCSTA1;
4595 
4596 typedef union
4597   {
4598   struct
4599     {
4600     unsigned RX9D               : 1;
4601     unsigned OERR               : 1;
4602     unsigned FERR               : 1;
4603     unsigned ADDEN              : 1;
4604     unsigned CREN               : 1;
4605     unsigned SREN               : 1;
4606     unsigned RX9                : 1;
4607     unsigned SPEN               : 1;
4608     };
4609 
4610   struct
4611     {
4612     unsigned RX9D1              : 1;
4613     unsigned OERR1              : 1;
4614     unsigned FERR1              : 1;
4615     unsigned ADEN               : 1;
4616     unsigned CREN1              : 1;
4617     unsigned SREN1              : 1;
4618     unsigned RX91               : 1;
4619     unsigned SPEN1              : 1;
4620     };
4621 
4622   struct
4623     {
4624     unsigned                    : 1;
4625     unsigned                    : 1;
4626     unsigned                    : 1;
4627     unsigned ADDEN1             : 1;
4628     unsigned                    : 1;
4629     unsigned                    : 1;
4630     unsigned                    : 1;
4631     unsigned                    : 1;
4632     };
4633   } __RCSTA1bits_t;
4634 
4635 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits;
4636 
4637 #define _RCSTA1_RX9D            0x01
4638 #define _RCSTA1_RX9D1           0x01
4639 #define _RCSTA1_OERR            0x02
4640 #define _RCSTA1_OERR1           0x02
4641 #define _RCSTA1_FERR            0x04
4642 #define _RCSTA1_FERR1           0x04
4643 #define _RCSTA1_ADDEN           0x08
4644 #define _RCSTA1_ADEN            0x08
4645 #define _RCSTA1_ADDEN1          0x08
4646 #define _RCSTA1_CREN            0x10
4647 #define _RCSTA1_CREN1           0x10
4648 #define _RCSTA1_SREN            0x20
4649 #define _RCSTA1_SREN1           0x20
4650 #define _RCSTA1_RX9             0x40
4651 #define _RCSTA1_RX91            0x40
4652 #define _RCSTA1_SPEN            0x80
4653 #define _RCSTA1_SPEN1           0x80
4654 
4655 //==============================================================================
4656 
4657 
4658 //==============================================================================
4659 //        TX1STA Bits
4660 
4661 extern __at(0x0FAC) __sfr TX1STA;
4662 
4663 typedef union
4664   {
4665   struct
4666     {
4667     unsigned TX9D               : 1;
4668     unsigned TRMT               : 1;
4669     unsigned BRGH               : 1;
4670     unsigned SENDB              : 1;
4671     unsigned SYNC               : 1;
4672     unsigned TXEN               : 1;
4673     unsigned TX9                : 1;
4674     unsigned CSRC               : 1;
4675     };
4676 
4677   struct
4678     {
4679     unsigned TX9D1              : 1;
4680     unsigned TRMT1              : 1;
4681     unsigned BRGH1              : 1;
4682     unsigned SENDB1             : 1;
4683     unsigned SYNC1              : 1;
4684     unsigned TXEN1              : 1;
4685     unsigned TX91               : 1;
4686     unsigned CSRC1              : 1;
4687     };
4688   } __TX1STAbits_t;
4689 
4690 extern __at(0x0FAC) volatile __TX1STAbits_t TX1STAbits;
4691 
4692 #define _TX9D                   0x01
4693 #define _TX9D1                  0x01
4694 #define _TRMT                   0x02
4695 #define _TRMT1                  0x02
4696 #define _BRGH                   0x04
4697 #define _BRGH1                  0x04
4698 #define _SENDB                  0x08
4699 #define _SENDB1                 0x08
4700 #define _SYNC                   0x10
4701 #define _SYNC1                  0x10
4702 #define _TXEN                   0x20
4703 #define _TXEN1                  0x20
4704 #define _TX9                    0x40
4705 #define _TX91                   0x40
4706 #define _CSRC                   0x80
4707 #define _CSRC1                  0x80
4708 
4709 //==============================================================================
4710 
4711 
4712 //==============================================================================
4713 //        TXSTA Bits
4714 
4715 extern __at(0x0FAC) __sfr TXSTA;
4716 
4717 typedef union
4718   {
4719   struct
4720     {
4721     unsigned TX9D               : 1;
4722     unsigned TRMT               : 1;
4723     unsigned BRGH               : 1;
4724     unsigned SENDB              : 1;
4725     unsigned SYNC               : 1;
4726     unsigned TXEN               : 1;
4727     unsigned TX9                : 1;
4728     unsigned CSRC               : 1;
4729     };
4730 
4731   struct
4732     {
4733     unsigned TX9D1              : 1;
4734     unsigned TRMT1              : 1;
4735     unsigned BRGH1              : 1;
4736     unsigned SENDB1             : 1;
4737     unsigned SYNC1              : 1;
4738     unsigned TXEN1              : 1;
4739     unsigned TX91               : 1;
4740     unsigned CSRC1              : 1;
4741     };
4742   } __TXSTAbits_t;
4743 
4744 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;
4745 
4746 #define _TXSTA_TX9D             0x01
4747 #define _TXSTA_TX9D1            0x01
4748 #define _TXSTA_TRMT             0x02
4749 #define _TXSTA_TRMT1            0x02
4750 #define _TXSTA_BRGH             0x04
4751 #define _TXSTA_BRGH1            0x04
4752 #define _TXSTA_SENDB            0x08
4753 #define _TXSTA_SENDB1           0x08
4754 #define _TXSTA_SYNC             0x10
4755 #define _TXSTA_SYNC1            0x10
4756 #define _TXSTA_TXEN             0x20
4757 #define _TXSTA_TXEN1            0x20
4758 #define _TXSTA_TX9              0x40
4759 #define _TXSTA_TX91             0x40
4760 #define _TXSTA_CSRC             0x80
4761 #define _TXSTA_CSRC1            0x80
4762 
4763 //==============================================================================
4764 
4765 
4766 //==============================================================================
4767 //        TXSTA1 Bits
4768 
4769 extern __at(0x0FAC) __sfr TXSTA1;
4770 
4771 typedef union
4772   {
4773   struct
4774     {
4775     unsigned TX9D               : 1;
4776     unsigned TRMT               : 1;
4777     unsigned BRGH               : 1;
4778     unsigned SENDB              : 1;
4779     unsigned SYNC               : 1;
4780     unsigned TXEN               : 1;
4781     unsigned TX9                : 1;
4782     unsigned CSRC               : 1;
4783     };
4784 
4785   struct
4786     {
4787     unsigned TX9D1              : 1;
4788     unsigned TRMT1              : 1;
4789     unsigned BRGH1              : 1;
4790     unsigned SENDB1             : 1;
4791     unsigned SYNC1              : 1;
4792     unsigned TXEN1              : 1;
4793     unsigned TX91               : 1;
4794     unsigned CSRC1              : 1;
4795     };
4796   } __TXSTA1bits_t;
4797 
4798 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits;
4799 
4800 #define _TXSTA1_TX9D            0x01
4801 #define _TXSTA1_TX9D1           0x01
4802 #define _TXSTA1_TRMT            0x02
4803 #define _TXSTA1_TRMT1           0x02
4804 #define _TXSTA1_BRGH            0x04
4805 #define _TXSTA1_BRGH1           0x04
4806 #define _TXSTA1_SENDB           0x08
4807 #define _TXSTA1_SENDB1          0x08
4808 #define _TXSTA1_SYNC            0x10
4809 #define _TXSTA1_SYNC1           0x10
4810 #define _TXSTA1_TXEN            0x20
4811 #define _TXSTA1_TXEN1           0x20
4812 #define _TXSTA1_TX9             0x40
4813 #define _TXSTA1_TX91            0x40
4814 #define _TXSTA1_CSRC            0x80
4815 #define _TXSTA1_CSRC1           0x80
4816 
4817 //==============================================================================
4818 
4819 extern __at(0x0FAD) __sfr TX1REG;
4820 extern __at(0x0FAD) __sfr TXREG;
4821 extern __at(0x0FAD) __sfr TXREG1;
4822 extern __at(0x0FAE) __sfr RC1REG;
4823 extern __at(0x0FAE) __sfr RCREG;
4824 extern __at(0x0FAE) __sfr RCREG1;
4825 extern __at(0x0FAF) __sfr SP1BRG;
4826 extern __at(0x0FAF) __sfr SPBRG;
4827 extern __at(0x0FAF) __sfr SPBRG1;
4828 extern __at(0x0FB0) __sfr SP1BRGH;
4829 extern __at(0x0FB0) __sfr SPBRGH;
4830 extern __at(0x0FB0) __sfr SPBRGH1;
4831 
4832 //==============================================================================
4833 //        T3CON Bits
4834 
4835 extern __at(0x0FB1) __sfr T3CON;
4836 
4837 typedef union
4838   {
4839   struct
4840     {
4841     unsigned TMR3ON             : 1;
4842     unsigned T3RD16             : 1;
4843     unsigned NOT_T3SYNC         : 1;
4844     unsigned T3SOSCEN           : 1;
4845     unsigned T3CKPS0            : 1;
4846     unsigned T3CKPS1            : 1;
4847     unsigned TMR3CS0            : 1;
4848     unsigned TMR3CS1            : 1;
4849     };
4850 
4851   struct
4852     {
4853     unsigned                    : 1;
4854     unsigned                    : 1;
4855     unsigned                    : 1;
4856     unsigned T3OSCEN            : 1;
4857     unsigned                    : 1;
4858     unsigned                    : 1;
4859     unsigned                    : 1;
4860     unsigned                    : 1;
4861     };
4862 
4863   struct
4864     {
4865     unsigned                    : 4;
4866     unsigned T3CKPS             : 2;
4867     unsigned                    : 2;
4868     };
4869 
4870   struct
4871     {
4872     unsigned                    : 6;
4873     unsigned TMR3CS             : 2;
4874     };
4875   } __T3CONbits_t;
4876 
4877 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits;
4878 
4879 #define _TMR3ON                 0x01
4880 #define _T3RD16                 0x02
4881 #define _NOT_T3SYNC             0x04
4882 #define _T3SOSCEN               0x08
4883 #define _T3OSCEN                0x08
4884 #define _T3CKPS0                0x10
4885 #define _T3CKPS1                0x20
4886 #define _TMR3CS0                0x40
4887 #define _TMR3CS1                0x80
4888 
4889 //==============================================================================
4890 
4891 extern __at(0x0FB2) __sfr TMR3;
4892 extern __at(0x0FB2) __sfr TMR3L;
4893 extern __at(0x0FB3) __sfr TMR3H;
4894 
4895 //==============================================================================
4896 //        T3GCON Bits
4897 
4898 extern __at(0x0FB4) __sfr T3GCON;
4899 
4900 typedef union
4901   {
4902   struct
4903     {
4904     unsigned T3GSS0             : 1;
4905     unsigned T3GSS1             : 1;
4906     unsigned T3GVAL             : 1;
4907     unsigned T3GGO_NOT_DONE     : 1;
4908     unsigned T3GSPM             : 1;
4909     unsigned T3GTM              : 1;
4910     unsigned T3GPOL             : 1;
4911     unsigned TMR3GE             : 1;
4912     };
4913 
4914   struct
4915     {
4916     unsigned                    : 1;
4917     unsigned                    : 1;
4918     unsigned                    : 1;
4919     unsigned T3G_DONE           : 1;
4920     unsigned                    : 1;
4921     unsigned                    : 1;
4922     unsigned                    : 1;
4923     unsigned                    : 1;
4924     };
4925 
4926   struct
4927     {
4928     unsigned                    : 1;
4929     unsigned                    : 1;
4930     unsigned                    : 1;
4931     unsigned T3GGO              : 1;
4932     unsigned                    : 1;
4933     unsigned                    : 1;
4934     unsigned                    : 1;
4935     unsigned                    : 1;
4936     };
4937 
4938   struct
4939     {
4940     unsigned T3GSS              : 2;
4941     unsigned                    : 6;
4942     };
4943   } __T3GCONbits_t;
4944 
4945 extern __at(0x0FB4) volatile __T3GCONbits_t T3GCONbits;
4946 
4947 #define _T3GSS0                 0x01
4948 #define _T3GSS1                 0x02
4949 #define _T3GVAL                 0x04
4950 #define _T3GGO_NOT_DONE         0x08
4951 #define _T3G_DONE               0x08
4952 #define _T3GGO                  0x08
4953 #define _T3GSPM                 0x10
4954 #define _T3GTM                  0x20
4955 #define _T3GPOL                 0x40
4956 #define _TMR3GE                 0x80
4957 
4958 //==============================================================================
4959 
4960 
4961 //==============================================================================
4962 //        ECCP1AS Bits
4963 
4964 extern __at(0x0FB6) __sfr ECCP1AS;
4965 
4966 typedef union
4967   {
4968   struct
4969     {
4970     unsigned P1SSBD0            : 1;
4971     unsigned P1SSBD1            : 1;
4972     unsigned P1SSAC0            : 1;
4973     unsigned P1SSAC1            : 1;
4974     unsigned CCP1AS0            : 1;
4975     unsigned CCP1AS1            : 1;
4976     unsigned CCP1AS2            : 1;
4977     unsigned CCP1ASE            : 1;
4978     };
4979 
4980   struct
4981     {
4982     unsigned PSS1BD0            : 1;
4983     unsigned PSS1BD1            : 1;
4984     unsigned PSS1AC0            : 1;
4985     unsigned PSS1AC1            : 1;
4986     unsigned ECCPAS0            : 1;
4987     unsigned ECCPAS1            : 1;
4988     unsigned ECCPAS2            : 1;
4989     unsigned ECCPASE            : 1;
4990     };
4991 
4992   struct
4993     {
4994     unsigned PSSBD0             : 1;
4995     unsigned PSSBD1             : 1;
4996     unsigned PSSAC0             : 1;
4997     unsigned PSSAC1             : 1;
4998     unsigned                    : 1;
4999     unsigned                    : 1;
5000     unsigned                    : 1;
5001     unsigned                    : 1;
5002     };
5003 
5004   struct
5005     {
5006     unsigned P1SSBD             : 2;
5007     unsigned                    : 6;
5008     };
5009 
5010   struct
5011     {
5012     unsigned PSSBD              : 2;
5013     unsigned                    : 6;
5014     };
5015 
5016   struct
5017     {
5018     unsigned PSS1BD             : 2;
5019     unsigned                    : 6;
5020     };
5021 
5022   struct
5023     {
5024     unsigned                    : 2;
5025     unsigned P1SSAC             : 2;
5026     unsigned                    : 4;
5027     };
5028 
5029   struct
5030     {
5031     unsigned                    : 2;
5032     unsigned PSSAC              : 2;
5033     unsigned                    : 4;
5034     };
5035 
5036   struct
5037     {
5038     unsigned                    : 2;
5039     unsigned PSS1AC             : 2;
5040     unsigned                    : 4;
5041     };
5042 
5043   struct
5044     {
5045     unsigned                    : 4;
5046     unsigned ECCPAS             : 3;
5047     unsigned                    : 1;
5048     };
5049 
5050   struct
5051     {
5052     unsigned                    : 4;
5053     unsigned CCP1AS             : 3;
5054     unsigned                    : 1;
5055     };
5056   } __ECCP1ASbits_t;
5057 
5058 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits;
5059 
5060 #define _P1SSBD0                0x01
5061 #define _PSS1BD0                0x01
5062 #define _PSSBD0                 0x01
5063 #define _P1SSBD1                0x02
5064 #define _PSS1BD1                0x02
5065 #define _PSSBD1                 0x02
5066 #define _P1SSAC0                0x04
5067 #define _PSS1AC0                0x04
5068 #define _PSSAC0                 0x04
5069 #define _P1SSAC1                0x08
5070 #define _PSS1AC1                0x08
5071 #define _PSSAC1                 0x08
5072 #define _CCP1AS0                0x10
5073 #define _ECCPAS0                0x10
5074 #define _CCP1AS1                0x20
5075 #define _ECCPAS1                0x20
5076 #define _CCP1AS2                0x40
5077 #define _ECCPAS2                0x40
5078 #define _CCP1ASE                0x80
5079 #define _ECCPASE                0x80
5080 
5081 //==============================================================================
5082 
5083 
5084 //==============================================================================
5085 //        ECCPAS Bits
5086 
5087 extern __at(0x0FB6) __sfr ECCPAS;
5088 
5089 typedef union
5090   {
5091   struct
5092     {
5093     unsigned P1SSBD0            : 1;
5094     unsigned P1SSBD1            : 1;
5095     unsigned P1SSAC0            : 1;
5096     unsigned P1SSAC1            : 1;
5097     unsigned CCP1AS0            : 1;
5098     unsigned CCP1AS1            : 1;
5099     unsigned CCP1AS2            : 1;
5100     unsigned CCP1ASE            : 1;
5101     };
5102 
5103   struct
5104     {
5105     unsigned PSS1BD0            : 1;
5106     unsigned PSS1BD1            : 1;
5107     unsigned PSS1AC0            : 1;
5108     unsigned PSS1AC1            : 1;
5109     unsigned ECCPAS0            : 1;
5110     unsigned ECCPAS1            : 1;
5111     unsigned ECCPAS2            : 1;
5112     unsigned ECCPASE            : 1;
5113     };
5114 
5115   struct
5116     {
5117     unsigned PSSBD0             : 1;
5118     unsigned PSSBD1             : 1;
5119     unsigned PSSAC0             : 1;
5120     unsigned PSSAC1             : 1;
5121     unsigned                    : 1;
5122     unsigned                    : 1;
5123     unsigned                    : 1;
5124     unsigned                    : 1;
5125     };
5126 
5127   struct
5128     {
5129     unsigned PSS1BD             : 2;
5130     unsigned                    : 6;
5131     };
5132 
5133   struct
5134     {
5135     unsigned PSSBD              : 2;
5136     unsigned                    : 6;
5137     };
5138 
5139   struct
5140     {
5141     unsigned P1SSBD             : 2;
5142     unsigned                    : 6;
5143     };
5144 
5145   struct
5146     {
5147     unsigned                    : 2;
5148     unsigned PSS1AC             : 2;
5149     unsigned                    : 4;
5150     };
5151 
5152   struct
5153     {
5154     unsigned                    : 2;
5155     unsigned PSSAC              : 2;
5156     unsigned                    : 4;
5157     };
5158 
5159   struct
5160     {
5161     unsigned                    : 2;
5162     unsigned P1SSAC             : 2;
5163     unsigned                    : 4;
5164     };
5165 
5166   struct
5167     {
5168     unsigned                    : 4;
5169     unsigned CCP1AS             : 3;
5170     unsigned                    : 1;
5171     };
5172 
5173   struct
5174     {
5175     unsigned                    : 4;
5176     unsigned ECCPAS             : 3;
5177     unsigned                    : 1;
5178     };
5179   } __ECCPASbits_t;
5180 
5181 extern __at(0x0FB6) volatile __ECCPASbits_t ECCPASbits;
5182 
5183 #define _ECCPAS_P1SSBD0         0x01
5184 #define _ECCPAS_PSS1BD0         0x01
5185 #define _ECCPAS_PSSBD0          0x01
5186 #define _ECCPAS_P1SSBD1         0x02
5187 #define _ECCPAS_PSS1BD1         0x02
5188 #define _ECCPAS_PSSBD1          0x02
5189 #define _ECCPAS_P1SSAC0         0x04
5190 #define _ECCPAS_PSS1AC0         0x04
5191 #define _ECCPAS_PSSAC0          0x04
5192 #define _ECCPAS_P1SSAC1         0x08
5193 #define _ECCPAS_PSS1AC1         0x08
5194 #define _ECCPAS_PSSAC1          0x08
5195 #define _ECCPAS_CCP1AS0         0x10
5196 #define _ECCPAS_ECCPAS0         0x10
5197 #define _ECCPAS_CCP1AS1         0x20
5198 #define _ECCPAS_ECCPAS1         0x20
5199 #define _ECCPAS_CCP1AS2         0x40
5200 #define _ECCPAS_ECCPAS2         0x40
5201 #define _ECCPAS_CCP1ASE         0x80
5202 #define _ECCPAS_ECCPASE         0x80
5203 
5204 //==============================================================================
5205 
5206 
5207 //==============================================================================
5208 //        PWM1CON Bits
5209 
5210 extern __at(0x0FB7) __sfr PWM1CON;
5211 
5212 typedef union
5213   {
5214   struct
5215     {
5216     unsigned P1DC0              : 1;
5217     unsigned P1DC1              : 1;
5218     unsigned P1DC2              : 1;
5219     unsigned P1DC3              : 1;
5220     unsigned P1DC4              : 1;
5221     unsigned P1DC5              : 1;
5222     unsigned P1DC6              : 1;
5223     unsigned P1RSEN             : 1;
5224     };
5225 
5226   struct
5227     {
5228     unsigned PDC0               : 1;
5229     unsigned PDC1               : 1;
5230     unsigned PDC2               : 1;
5231     unsigned PDC3               : 1;
5232     unsigned PDC4               : 1;
5233     unsigned PDC5               : 1;
5234     unsigned PDC6               : 1;
5235     unsigned PRSEN              : 1;
5236     };
5237 
5238   struct
5239     {
5240     unsigned PDC                : 7;
5241     unsigned                    : 1;
5242     };
5243 
5244   struct
5245     {
5246     unsigned P1DC               : 7;
5247     unsigned                    : 1;
5248     };
5249   } __PWM1CONbits_t;
5250 
5251 extern __at(0x0FB7) volatile __PWM1CONbits_t PWM1CONbits;
5252 
5253 #define _P1DC0                  0x01
5254 #define _PDC0                   0x01
5255 #define _P1DC1                  0x02
5256 #define _PDC1                   0x02
5257 #define _P1DC2                  0x04
5258 #define _PDC2                   0x04
5259 #define _P1DC3                  0x08
5260 #define _PDC3                   0x08
5261 #define _P1DC4                  0x10
5262 #define _PDC4                   0x10
5263 #define _P1DC5                  0x20
5264 #define _PDC5                   0x20
5265 #define _P1DC6                  0x40
5266 #define _PDC6                   0x40
5267 #define _P1RSEN                 0x80
5268 #define _PRSEN                  0x80
5269 
5270 //==============================================================================
5271 
5272 
5273 //==============================================================================
5274 //        PWMCON Bits
5275 
5276 extern __at(0x0FB7) __sfr PWMCON;
5277 
5278 typedef union
5279   {
5280   struct
5281     {
5282     unsigned P1DC0              : 1;
5283     unsigned P1DC1              : 1;
5284     unsigned P1DC2              : 1;
5285     unsigned P1DC3              : 1;
5286     unsigned P1DC4              : 1;
5287     unsigned P1DC5              : 1;
5288     unsigned P1DC6              : 1;
5289     unsigned P1RSEN             : 1;
5290     };
5291 
5292   struct
5293     {
5294     unsigned PDC0               : 1;
5295     unsigned PDC1               : 1;
5296     unsigned PDC2               : 1;
5297     unsigned PDC3               : 1;
5298     unsigned PDC4               : 1;
5299     unsigned PDC5               : 1;
5300     unsigned PDC6               : 1;
5301     unsigned PRSEN              : 1;
5302     };
5303 
5304   struct
5305     {
5306     unsigned PDC                : 7;
5307     unsigned                    : 1;
5308     };
5309 
5310   struct
5311     {
5312     unsigned P1DC               : 7;
5313     unsigned                    : 1;
5314     };
5315   } __PWMCONbits_t;
5316 
5317 extern __at(0x0FB7) volatile __PWMCONbits_t PWMCONbits;
5318 
5319 #define _PWMCON_P1DC0           0x01
5320 #define _PWMCON_PDC0            0x01
5321 #define _PWMCON_P1DC1           0x02
5322 #define _PWMCON_PDC1            0x02
5323 #define _PWMCON_P1DC2           0x04
5324 #define _PWMCON_PDC2            0x04
5325 #define _PWMCON_P1DC3           0x08
5326 #define _PWMCON_PDC3            0x08
5327 #define _PWMCON_P1DC4           0x10
5328 #define _PWMCON_PDC4            0x10
5329 #define _PWMCON_P1DC5           0x20
5330 #define _PWMCON_PDC5            0x20
5331 #define _PWMCON_P1DC6           0x40
5332 #define _PWMCON_PDC6            0x40
5333 #define _PWMCON_P1RSEN          0x80
5334 #define _PWMCON_PRSEN           0x80
5335 
5336 //==============================================================================
5337 
5338 
5339 //==============================================================================
5340 //        BAUD1CON Bits
5341 
5342 extern __at(0x0FB8) __sfr BAUD1CON;
5343 
5344 typedef union
5345   {
5346   struct
5347     {
5348     unsigned ABDEN              : 1;
5349     unsigned WUE                : 1;
5350     unsigned                    : 1;
5351     unsigned BRG16              : 1;
5352     unsigned CKTXP              : 1;
5353     unsigned DTRXP              : 1;
5354     unsigned RCIDL              : 1;
5355     unsigned ABDOVF             : 1;
5356     };
5357 
5358   struct
5359     {
5360     unsigned                    : 1;
5361     unsigned                    : 1;
5362     unsigned                    : 1;
5363     unsigned                    : 1;
5364     unsigned SCKP               : 1;
5365     unsigned                    : 1;
5366     unsigned                    : 1;
5367     unsigned                    : 1;
5368     };
5369   } __BAUD1CONbits_t;
5370 
5371 extern __at(0x0FB8) volatile __BAUD1CONbits_t BAUD1CONbits;
5372 
5373 #define _ABDEN                  0x01
5374 #define _WUE                    0x02
5375 #define _BRG16                  0x08
5376 #define _CKTXP                  0x10
5377 #define _SCKP                   0x10
5378 #define _DTRXP                  0x20
5379 #define _RCIDL                  0x40
5380 #define _ABDOVF                 0x80
5381 
5382 //==============================================================================
5383 
5384 
5385 //==============================================================================
5386 //        BAUDCON Bits
5387 
5388 extern __at(0x0FB8) __sfr BAUDCON;
5389 
5390 typedef union
5391   {
5392   struct
5393     {
5394     unsigned ABDEN              : 1;
5395     unsigned WUE                : 1;
5396     unsigned                    : 1;
5397     unsigned BRG16              : 1;
5398     unsigned CKTXP              : 1;
5399     unsigned DTRXP              : 1;
5400     unsigned RCIDL              : 1;
5401     unsigned ABDOVF             : 1;
5402     };
5403 
5404   struct
5405     {
5406     unsigned                    : 1;
5407     unsigned                    : 1;
5408     unsigned                    : 1;
5409     unsigned                    : 1;
5410     unsigned SCKP               : 1;
5411     unsigned                    : 1;
5412     unsigned                    : 1;
5413     unsigned                    : 1;
5414     };
5415   } __BAUDCONbits_t;
5416 
5417 extern __at(0x0FB8) volatile __BAUDCONbits_t BAUDCONbits;
5418 
5419 #define _BAUDCON_ABDEN          0x01
5420 #define _BAUDCON_WUE            0x02
5421 #define _BAUDCON_BRG16          0x08
5422 #define _BAUDCON_CKTXP          0x10
5423 #define _BAUDCON_SCKP           0x10
5424 #define _BAUDCON_DTRXP          0x20
5425 #define _BAUDCON_RCIDL          0x40
5426 #define _BAUDCON_ABDOVF         0x80
5427 
5428 //==============================================================================
5429 
5430 
5431 //==============================================================================
5432 //        BAUDCON1 Bits
5433 
5434 extern __at(0x0FB8) __sfr BAUDCON1;
5435 
5436 typedef union
5437   {
5438   struct
5439     {
5440     unsigned ABDEN              : 1;
5441     unsigned WUE                : 1;
5442     unsigned                    : 1;
5443     unsigned BRG16              : 1;
5444     unsigned CKTXP              : 1;
5445     unsigned DTRXP              : 1;
5446     unsigned RCIDL              : 1;
5447     unsigned ABDOVF             : 1;
5448     };
5449 
5450   struct
5451     {
5452     unsigned                    : 1;
5453     unsigned                    : 1;
5454     unsigned                    : 1;
5455     unsigned                    : 1;
5456     unsigned SCKP               : 1;
5457     unsigned                    : 1;
5458     unsigned                    : 1;
5459     unsigned                    : 1;
5460     };
5461   } __BAUDCON1bits_t;
5462 
5463 extern __at(0x0FB8) volatile __BAUDCON1bits_t BAUDCON1bits;
5464 
5465 #define _BAUDCON1_ABDEN         0x01
5466 #define _BAUDCON1_WUE           0x02
5467 #define _BAUDCON1_BRG16         0x08
5468 #define _BAUDCON1_CKTXP         0x10
5469 #define _BAUDCON1_SCKP          0x10
5470 #define _BAUDCON1_DTRXP         0x20
5471 #define _BAUDCON1_RCIDL         0x40
5472 #define _BAUDCON1_ABDOVF        0x80
5473 
5474 //==============================================================================
5475 
5476 
5477 //==============================================================================
5478 //        BAUDCTL Bits
5479 
5480 extern __at(0x0FB8) __sfr BAUDCTL;
5481 
5482 typedef union
5483   {
5484   struct
5485     {
5486     unsigned ABDEN              : 1;
5487     unsigned WUE                : 1;
5488     unsigned                    : 1;
5489     unsigned BRG16              : 1;
5490     unsigned CKTXP              : 1;
5491     unsigned DTRXP              : 1;
5492     unsigned RCIDL              : 1;
5493     unsigned ABDOVF             : 1;
5494     };
5495 
5496   struct
5497     {
5498     unsigned                    : 1;
5499     unsigned                    : 1;
5500     unsigned                    : 1;
5501     unsigned                    : 1;
5502     unsigned SCKP               : 1;
5503     unsigned                    : 1;
5504     unsigned                    : 1;
5505     unsigned                    : 1;
5506     };
5507   } __BAUDCTLbits_t;
5508 
5509 extern __at(0x0FB8) volatile __BAUDCTLbits_t BAUDCTLbits;
5510 
5511 #define _BAUDCTL_ABDEN          0x01
5512 #define _BAUDCTL_WUE            0x02
5513 #define _BAUDCTL_BRG16          0x08
5514 #define _BAUDCTL_CKTXP          0x10
5515 #define _BAUDCTL_SCKP           0x10
5516 #define _BAUDCTL_DTRXP          0x20
5517 #define _BAUDCTL_RCIDL          0x40
5518 #define _BAUDCTL_ABDOVF         0x80
5519 
5520 //==============================================================================
5521 
5522 
5523 //==============================================================================
5524 //        PSTR1CON Bits
5525 
5526 extern __at(0x0FB9) __sfr PSTR1CON;
5527 
5528 typedef struct
5529   {
5530   unsigned STR1A                : 1;
5531   unsigned STR1B                : 1;
5532   unsigned STR1C                : 1;
5533   unsigned STR1D                : 1;
5534   unsigned STR1SYNC             : 1;
5535   unsigned                      : 1;
5536   unsigned                      : 1;
5537   unsigned                      : 1;
5538   } __PSTR1CONbits_t;
5539 
5540 extern __at(0x0FB9) volatile __PSTR1CONbits_t PSTR1CONbits;
5541 
5542 #define _STR1A                  0x01
5543 #define _STR1B                  0x02
5544 #define _STR1C                  0x04
5545 #define _STR1D                  0x08
5546 #define _STR1SYNC               0x10
5547 
5548 //==============================================================================
5549 
5550 
5551 //==============================================================================
5552 //        PSTRCON Bits
5553 
5554 extern __at(0x0FB9) __sfr PSTRCON;
5555 
5556 typedef struct
5557   {
5558   unsigned STR1A                : 1;
5559   unsigned STR1B                : 1;
5560   unsigned STR1C                : 1;
5561   unsigned STR1D                : 1;
5562   unsigned STR1SYNC             : 1;
5563   unsigned                      : 1;
5564   unsigned                      : 1;
5565   unsigned                      : 1;
5566   } __PSTRCONbits_t;
5567 
5568 extern __at(0x0FB9) volatile __PSTRCONbits_t PSTRCONbits;
5569 
5570 #define _PSTRCON_STR1A          0x01
5571 #define _PSTRCON_STR1B          0x02
5572 #define _PSTRCON_STR1C          0x04
5573 #define _PSTRCON_STR1D          0x08
5574 #define _PSTRCON_STR1SYNC       0x10
5575 
5576 //==============================================================================
5577 
5578 
5579 //==============================================================================
5580 //        T2CON Bits
5581 
5582 extern __at(0x0FBA) __sfr T2CON;
5583 
5584 typedef union
5585   {
5586   struct
5587     {
5588     unsigned T2CKPS0            : 1;
5589     unsigned T2CKPS1            : 1;
5590     unsigned TMR2ON             : 1;
5591     unsigned T2OUTPS0           : 1;
5592     unsigned T2OUTPS1           : 1;
5593     unsigned T2OUTPS2           : 1;
5594     unsigned T2OUTPS3           : 1;
5595     unsigned                    : 1;
5596     };
5597 
5598   struct
5599     {
5600     unsigned T2CKPS             : 2;
5601     unsigned                    : 6;
5602     };
5603 
5604   struct
5605     {
5606     unsigned                    : 3;
5607     unsigned T2OUTPS            : 4;
5608     unsigned                    : 1;
5609     };
5610   } __T2CONbits_t;
5611 
5612 extern __at(0x0FBA) volatile __T2CONbits_t T2CONbits;
5613 
5614 #define _T2CKPS0                0x01
5615 #define _T2CKPS1                0x02
5616 #define _TMR2ON                 0x04
5617 #define _T2OUTPS0               0x08
5618 #define _T2OUTPS1               0x10
5619 #define _T2OUTPS2               0x20
5620 #define _T2OUTPS3               0x40
5621 
5622 //==============================================================================
5623 
5624 extern __at(0x0FBB) __sfr PR2;
5625 extern __at(0x0FBC) __sfr TMR2;
5626 
5627 //==============================================================================
5628 //        CCP1CON Bits
5629 
5630 extern __at(0x0FBD) __sfr CCP1CON;
5631 
5632 typedef union
5633   {
5634   struct
5635     {
5636     unsigned CCP1M0             : 1;
5637     unsigned CCP1M1             : 1;
5638     unsigned CCP1M2             : 1;
5639     unsigned CCP1M3             : 1;
5640     unsigned DC1B0              : 1;
5641     unsigned DC1B1              : 1;
5642     unsigned P1M0               : 1;
5643     unsigned P1M1               : 1;
5644     };
5645 
5646   struct
5647     {
5648     unsigned CCP1M              : 4;
5649     unsigned                    : 4;
5650     };
5651 
5652   struct
5653     {
5654     unsigned                    : 4;
5655     unsigned DC1B               : 2;
5656     unsigned                    : 2;
5657     };
5658 
5659   struct
5660     {
5661     unsigned                    : 6;
5662     unsigned P1M                : 2;
5663     };
5664   } __CCP1CONbits_t;
5665 
5666 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits;
5667 
5668 #define _CCP1M0                 0x01
5669 #define _CCP1M1                 0x02
5670 #define _CCP1M2                 0x04
5671 #define _CCP1M3                 0x08
5672 #define _DC1B0                  0x10
5673 #define _DC1B1                  0x20
5674 #define _P1M0                   0x40
5675 #define _P1M1                   0x80
5676 
5677 //==============================================================================
5678 
5679 extern __at(0x0FBE) __sfr CCPR1;
5680 extern __at(0x0FBE) __sfr CCPR1L;
5681 extern __at(0x0FBF) __sfr CCPR1H;
5682 
5683 //==============================================================================
5684 //        ADCON2 Bits
5685 
5686 extern __at(0x0FC0) __sfr ADCON2;
5687 
5688 typedef union
5689   {
5690   struct
5691     {
5692     unsigned ADCS0              : 1;
5693     unsigned ADCS1              : 1;
5694     unsigned ADCS2              : 1;
5695     unsigned ACQT0              : 1;
5696     unsigned ACQT1              : 1;
5697     unsigned ACQT2              : 1;
5698     unsigned                    : 1;
5699     unsigned ADFM               : 1;
5700     };
5701 
5702   struct
5703     {
5704     unsigned ADCS               : 3;
5705     unsigned                    : 5;
5706     };
5707 
5708   struct
5709     {
5710     unsigned                    : 3;
5711     unsigned ACQT               : 3;
5712     unsigned                    : 2;
5713     };
5714   } __ADCON2bits_t;
5715 
5716 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits;
5717 
5718 #define _ADCS0                  0x01
5719 #define _ADCS1                  0x02
5720 #define _ADCS2                  0x04
5721 #define _ACQT0                  0x08
5722 #define _ACQT1                  0x10
5723 #define _ACQT2                  0x20
5724 #define _ADFM                   0x80
5725 
5726 //==============================================================================
5727 
5728 
5729 //==============================================================================
5730 //        ADCON1 Bits
5731 
5732 extern __at(0x0FC1) __sfr ADCON1;
5733 
5734 typedef union
5735   {
5736   struct
5737     {
5738     unsigned NVCFG0             : 1;
5739     unsigned NVCFG1             : 1;
5740     unsigned PVCFG0             : 1;
5741     unsigned PVCFG1             : 1;
5742     unsigned                    : 1;
5743     unsigned                    : 1;
5744     unsigned                    : 1;
5745     unsigned TRIGSEL            : 1;
5746     };
5747 
5748   struct
5749     {
5750     unsigned NVCFG              : 2;
5751     unsigned                    : 6;
5752     };
5753 
5754   struct
5755     {
5756     unsigned                    : 2;
5757     unsigned PVCFG              : 2;
5758     unsigned                    : 4;
5759     };
5760   } __ADCON1bits_t;
5761 
5762 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;
5763 
5764 #define _NVCFG0                 0x01
5765 #define _NVCFG1                 0x02
5766 #define _PVCFG0                 0x04
5767 #define _PVCFG1                 0x08
5768 #define _TRIGSEL                0x80
5769 
5770 //==============================================================================
5771 
5772 
5773 //==============================================================================
5774 //        ADCON0 Bits
5775 
5776 extern __at(0x0FC2) __sfr ADCON0;
5777 
5778 typedef union
5779   {
5780   struct
5781     {
5782     unsigned ADON               : 1;
5783     unsigned GO_NOT_DONE        : 1;
5784     unsigned CHS0               : 1;
5785     unsigned CHS1               : 1;
5786     unsigned CHS2               : 1;
5787     unsigned CHS3               : 1;
5788     unsigned CHS4               : 1;
5789     unsigned                    : 1;
5790     };
5791 
5792   struct
5793     {
5794     unsigned                    : 1;
5795     unsigned GO                 : 1;
5796     unsigned                    : 1;
5797     unsigned                    : 1;
5798     unsigned                    : 1;
5799     unsigned                    : 1;
5800     unsigned                    : 1;
5801     unsigned                    : 1;
5802     };
5803 
5804   struct
5805     {
5806     unsigned                    : 1;
5807     unsigned DONE               : 1;
5808     unsigned                    : 1;
5809     unsigned                    : 1;
5810     unsigned                    : 1;
5811     unsigned                    : 1;
5812     unsigned                    : 1;
5813     unsigned                    : 1;
5814     };
5815 
5816   struct
5817     {
5818     unsigned                    : 1;
5819     unsigned NOT_DONE           : 1;
5820     unsigned                    : 1;
5821     unsigned                    : 1;
5822     unsigned                    : 1;
5823     unsigned                    : 1;
5824     unsigned                    : 1;
5825     unsigned                    : 1;
5826     };
5827 
5828   struct
5829     {
5830     unsigned                    : 1;
5831     unsigned GO_DONE            : 1;
5832     unsigned                    : 1;
5833     unsigned                    : 1;
5834     unsigned                    : 1;
5835     unsigned                    : 1;
5836     unsigned                    : 1;
5837     unsigned                    : 1;
5838     };
5839 
5840   struct
5841     {
5842     unsigned                    : 2;
5843     unsigned CHS                : 5;
5844     unsigned                    : 1;
5845     };
5846   } __ADCON0bits_t;
5847 
5848 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;
5849 
5850 #define _ADON                   0x01
5851 #define _GO_NOT_DONE            0x02
5852 #define _GO                     0x02
5853 #define _DONE                   0x02
5854 #define _NOT_DONE               0x02
5855 #define _GO_DONE                0x02
5856 #define _CHS0                   0x04
5857 #define _CHS1                   0x08
5858 #define _CHS2                   0x10
5859 #define _CHS3                   0x20
5860 #define _CHS4                   0x40
5861 
5862 //==============================================================================
5863 
5864 extern __at(0x0FC3) __sfr ADRES;
5865 extern __at(0x0FC3) __sfr ADRESL;
5866 extern __at(0x0FC4) __sfr ADRESH;
5867 
5868 //==============================================================================
5869 //        SSP1CON2 Bits
5870 
5871 extern __at(0x0FC5) __sfr SSP1CON2;
5872 
5873 typedef struct
5874   {
5875   unsigned SEN                  : 1;
5876   unsigned RSEN                 : 1;
5877   unsigned PEN                  : 1;
5878   unsigned RCEN                 : 1;
5879   unsigned ACKEN                : 1;
5880   unsigned ACKDT                : 1;
5881   unsigned ACKSTAT              : 1;
5882   unsigned GCEN                 : 1;
5883   } __SSP1CON2bits_t;
5884 
5885 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits;
5886 
5887 #define _SEN                    0x01
5888 #define _RSEN                   0x02
5889 #define _PEN                    0x04
5890 #define _RCEN                   0x08
5891 #define _ACKEN                  0x10
5892 #define _ACKDT                  0x20
5893 #define _ACKSTAT                0x40
5894 #define _GCEN                   0x80
5895 
5896 //==============================================================================
5897 
5898 
5899 //==============================================================================
5900 //        SSPCON2 Bits
5901 
5902 extern __at(0x0FC5) __sfr SSPCON2;
5903 
5904 typedef struct
5905   {
5906   unsigned SEN                  : 1;
5907   unsigned RSEN                 : 1;
5908   unsigned PEN                  : 1;
5909   unsigned RCEN                 : 1;
5910   unsigned ACKEN                : 1;
5911   unsigned ACKDT                : 1;
5912   unsigned ACKSTAT              : 1;
5913   unsigned GCEN                 : 1;
5914   } __SSPCON2bits_t;
5915 
5916 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;
5917 
5918 #define _SSPCON2_SEN            0x01
5919 #define _SSPCON2_RSEN           0x02
5920 #define _SSPCON2_PEN            0x04
5921 #define _SSPCON2_RCEN           0x08
5922 #define _SSPCON2_ACKEN          0x10
5923 #define _SSPCON2_ACKDT          0x20
5924 #define _SSPCON2_ACKSTAT        0x40
5925 #define _SSPCON2_GCEN           0x80
5926 
5927 //==============================================================================
5928 
5929 
5930 //==============================================================================
5931 //        SSP1CON1 Bits
5932 
5933 extern __at(0x0FC6) __sfr SSP1CON1;
5934 
5935 typedef union
5936   {
5937   struct
5938     {
5939     unsigned SSPM0              : 1;
5940     unsigned SSPM1              : 1;
5941     unsigned SSPM2              : 1;
5942     unsigned SSPM3              : 1;
5943     unsigned CKP                : 1;
5944     unsigned SSPEN              : 1;
5945     unsigned SSPOV              : 1;
5946     unsigned WCOL               : 1;
5947     };
5948 
5949   struct
5950     {
5951     unsigned SSPM               : 4;
5952     unsigned                    : 4;
5953     };
5954   } __SSP1CON1bits_t;
5955 
5956 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits;
5957 
5958 #define _SSPM0                  0x01
5959 #define _SSPM1                  0x02
5960 #define _SSPM2                  0x04
5961 #define _SSPM3                  0x08
5962 #define _CKP                    0x10
5963 #define _SSPEN                  0x20
5964 #define _SSPOV                  0x40
5965 #define _WCOL                   0x80
5966 
5967 //==============================================================================
5968 
5969 
5970 //==============================================================================
5971 //        SSPCON1 Bits
5972 
5973 extern __at(0x0FC6) __sfr SSPCON1;
5974 
5975 typedef union
5976   {
5977   struct
5978     {
5979     unsigned SSPM0              : 1;
5980     unsigned SSPM1              : 1;
5981     unsigned SSPM2              : 1;
5982     unsigned SSPM3              : 1;
5983     unsigned CKP                : 1;
5984     unsigned SSPEN              : 1;
5985     unsigned SSPOV              : 1;
5986     unsigned WCOL               : 1;
5987     };
5988 
5989   struct
5990     {
5991     unsigned SSPM               : 4;
5992     unsigned                    : 4;
5993     };
5994   } __SSPCON1bits_t;
5995 
5996 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;
5997 
5998 #define _SSPCON1_SSPM0          0x01
5999 #define _SSPCON1_SSPM1          0x02
6000 #define _SSPCON1_SSPM2          0x04
6001 #define _SSPCON1_SSPM3          0x08
6002 #define _SSPCON1_CKP            0x10
6003 #define _SSPCON1_SSPEN          0x20
6004 #define _SSPCON1_SSPOV          0x40
6005 #define _SSPCON1_WCOL           0x80
6006 
6007 //==============================================================================
6008 
6009 
6010 //==============================================================================
6011 //        SSP1STAT Bits
6012 
6013 extern __at(0x0FC7) __sfr SSP1STAT;
6014 
6015 typedef union
6016   {
6017   struct
6018     {
6019     unsigned BF                 : 1;
6020     unsigned UA                 : 1;
6021     unsigned R_NOT_W            : 1;
6022     unsigned S                  : 1;
6023     unsigned P                  : 1;
6024     unsigned D_NOT_A            : 1;
6025     unsigned CKE                : 1;
6026     unsigned SMP                : 1;
6027     };
6028 
6029   struct
6030     {
6031     unsigned                    : 1;
6032     unsigned                    : 1;
6033     unsigned R                  : 1;
6034     unsigned                    : 1;
6035     unsigned                    : 1;
6036     unsigned D                  : 1;
6037     unsigned                    : 1;
6038     unsigned                    : 1;
6039     };
6040 
6041   struct
6042     {
6043     unsigned                    : 1;
6044     unsigned                    : 1;
6045     unsigned NOT_W              : 1;
6046     unsigned                    : 1;
6047     unsigned                    : 1;
6048     unsigned NOT_A              : 1;
6049     unsigned                    : 1;
6050     unsigned                    : 1;
6051     };
6052 
6053   struct
6054     {
6055     unsigned                    : 1;
6056     unsigned                    : 1;
6057     unsigned R_W                : 1;
6058     unsigned                    : 1;
6059     unsigned                    : 1;
6060     unsigned D_A                : 1;
6061     unsigned                    : 1;
6062     unsigned                    : 1;
6063     };
6064 
6065   struct
6066     {
6067     unsigned                    : 1;
6068     unsigned                    : 1;
6069     unsigned NOT_WRITE          : 1;
6070     unsigned                    : 1;
6071     unsigned                    : 1;
6072     unsigned NOT_ADDRESS        : 1;
6073     unsigned                    : 1;
6074     unsigned                    : 1;
6075     };
6076   } __SSP1STATbits_t;
6077 
6078 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits;
6079 
6080 #define _BF                     0x01
6081 #define _UA                     0x02
6082 #define _R_NOT_W                0x04
6083 #define _R                      0x04
6084 #define _NOT_W                  0x04
6085 #define _R_W                    0x04
6086 #define _NOT_WRITE              0x04
6087 #define _S                      0x08
6088 #define _P                      0x10
6089 #define _D_NOT_A                0x20
6090 #define _D                      0x20
6091 #define _NOT_A                  0x20
6092 #define _D_A                    0x20
6093 #define _NOT_ADDRESS            0x20
6094 #define _CKE                    0x40
6095 #define _SMP                    0x80
6096 
6097 //==============================================================================
6098 
6099 
6100 //==============================================================================
6101 //        SSPSTAT Bits
6102 
6103 extern __at(0x0FC7) __sfr SSPSTAT;
6104 
6105 typedef union
6106   {
6107   struct
6108     {
6109     unsigned BF                 : 1;
6110     unsigned UA                 : 1;
6111     unsigned R_NOT_W            : 1;
6112     unsigned S                  : 1;
6113     unsigned P                  : 1;
6114     unsigned D_NOT_A            : 1;
6115     unsigned CKE                : 1;
6116     unsigned SMP                : 1;
6117     };
6118 
6119   struct
6120     {
6121     unsigned                    : 1;
6122     unsigned                    : 1;
6123     unsigned R                  : 1;
6124     unsigned                    : 1;
6125     unsigned                    : 1;
6126     unsigned D                  : 1;
6127     unsigned                    : 1;
6128     unsigned                    : 1;
6129     };
6130 
6131   struct
6132     {
6133     unsigned                    : 1;
6134     unsigned                    : 1;
6135     unsigned NOT_W              : 1;
6136     unsigned                    : 1;
6137     unsigned                    : 1;
6138     unsigned NOT_A              : 1;
6139     unsigned                    : 1;
6140     unsigned                    : 1;
6141     };
6142 
6143   struct
6144     {
6145     unsigned                    : 1;
6146     unsigned                    : 1;
6147     unsigned R_W                : 1;
6148     unsigned                    : 1;
6149     unsigned                    : 1;
6150     unsigned D_A                : 1;
6151     unsigned                    : 1;
6152     unsigned                    : 1;
6153     };
6154 
6155   struct
6156     {
6157     unsigned                    : 1;
6158     unsigned                    : 1;
6159     unsigned NOT_WRITE          : 1;
6160     unsigned                    : 1;
6161     unsigned                    : 1;
6162     unsigned NOT_ADDRESS        : 1;
6163     unsigned                    : 1;
6164     unsigned                    : 1;
6165     };
6166   } __SSPSTATbits_t;
6167 
6168 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;
6169 
6170 #define _SSPSTAT_BF             0x01
6171 #define _SSPSTAT_UA             0x02
6172 #define _SSPSTAT_R_NOT_W        0x04
6173 #define _SSPSTAT_R              0x04
6174 #define _SSPSTAT_NOT_W          0x04
6175 #define _SSPSTAT_R_W            0x04
6176 #define _SSPSTAT_NOT_WRITE      0x04
6177 #define _SSPSTAT_S              0x08
6178 #define _SSPSTAT_P              0x10
6179 #define _SSPSTAT_D_NOT_A        0x20
6180 #define _SSPSTAT_D              0x20
6181 #define _SSPSTAT_NOT_A          0x20
6182 #define _SSPSTAT_D_A            0x20
6183 #define _SSPSTAT_NOT_ADDRESS    0x20
6184 #define _SSPSTAT_CKE            0x40
6185 #define _SSPSTAT_SMP            0x80
6186 
6187 //==============================================================================
6188 
6189 extern __at(0x0FC8) __sfr SSP1ADD;
6190 extern __at(0x0FC8) __sfr SSPADD;
6191 extern __at(0x0FC9) __sfr SSP1BUF;
6192 extern __at(0x0FC9) __sfr SSPBUF;
6193 
6194 //==============================================================================
6195 //        SSP1MSK Bits
6196 
6197 extern __at(0x0FCA) __sfr SSP1MSK;
6198 
6199 typedef struct
6200   {
6201   unsigned MSK0                 : 1;
6202   unsigned MSK1                 : 1;
6203   unsigned MSK2                 : 1;
6204   unsigned MSK3                 : 1;
6205   unsigned MSK4                 : 1;
6206   unsigned MSK5                 : 1;
6207   unsigned MSK6                 : 1;
6208   unsigned MSK7                 : 1;
6209   } __SSP1MSKbits_t;
6210 
6211 extern __at(0x0FCA) volatile __SSP1MSKbits_t SSP1MSKbits;
6212 
6213 #define _MSK0                   0x01
6214 #define _MSK1                   0x02
6215 #define _MSK2                   0x04
6216 #define _MSK3                   0x08
6217 #define _MSK4                   0x10
6218 #define _MSK5                   0x20
6219 #define _MSK6                   0x40
6220 #define _MSK7                   0x80
6221 
6222 //==============================================================================
6223 
6224 
6225 //==============================================================================
6226 //        SSPMSK Bits
6227 
6228 extern __at(0x0FCA) __sfr SSPMSK;
6229 
6230 typedef struct
6231   {
6232   unsigned MSK0                 : 1;
6233   unsigned MSK1                 : 1;
6234   unsigned MSK2                 : 1;
6235   unsigned MSK3                 : 1;
6236   unsigned MSK4                 : 1;
6237   unsigned MSK5                 : 1;
6238   unsigned MSK6                 : 1;
6239   unsigned MSK7                 : 1;
6240   } __SSPMSKbits_t;
6241 
6242 extern __at(0x0FCA) volatile __SSPMSKbits_t SSPMSKbits;
6243 
6244 #define _SSPMSK_MSK0            0x01
6245 #define _SSPMSK_MSK1            0x02
6246 #define _SSPMSK_MSK2            0x04
6247 #define _SSPMSK_MSK3            0x08
6248 #define _SSPMSK_MSK4            0x10
6249 #define _SSPMSK_MSK5            0x20
6250 #define _SSPMSK_MSK6            0x40
6251 #define _SSPMSK_MSK7            0x80
6252 
6253 //==============================================================================
6254 
6255 
6256 //==============================================================================
6257 //        SSP1CON3 Bits
6258 
6259 extern __at(0x0FCB) __sfr SSP1CON3;
6260 
6261 typedef struct
6262   {
6263   unsigned DHEN                 : 1;
6264   unsigned AHEN                 : 1;
6265   unsigned SBCDE                : 1;
6266   unsigned SDAHT                : 1;
6267   unsigned BOEN                 : 1;
6268   unsigned SCIE                 : 1;
6269   unsigned PCIE                 : 1;
6270   unsigned ACKTIM               : 1;
6271   } __SSP1CON3bits_t;
6272 
6273 extern __at(0x0FCB) volatile __SSP1CON3bits_t SSP1CON3bits;
6274 
6275 #define _DHEN                   0x01
6276 #define _AHEN                   0x02
6277 #define _SBCDE                  0x04
6278 #define _SDAHT                  0x08
6279 #define _BOEN                   0x10
6280 #define _SCIE                   0x20
6281 #define _PCIE                   0x40
6282 #define _ACKTIM                 0x80
6283 
6284 //==============================================================================
6285 
6286 
6287 //==============================================================================
6288 //        SSPCON3 Bits
6289 
6290 extern __at(0x0FCB) __sfr SSPCON3;
6291 
6292 typedef struct
6293   {
6294   unsigned DHEN                 : 1;
6295   unsigned AHEN                 : 1;
6296   unsigned SBCDE                : 1;
6297   unsigned SDAHT                : 1;
6298   unsigned BOEN                 : 1;
6299   unsigned SCIE                 : 1;
6300   unsigned PCIE                 : 1;
6301   unsigned ACKTIM               : 1;
6302   } __SSPCON3bits_t;
6303 
6304 extern __at(0x0FCB) volatile __SSPCON3bits_t SSPCON3bits;
6305 
6306 #define _SSPCON3_DHEN           0x01
6307 #define _SSPCON3_AHEN           0x02
6308 #define _SSPCON3_SBCDE          0x04
6309 #define _SSPCON3_SDAHT          0x08
6310 #define _SSPCON3_BOEN           0x10
6311 #define _SSPCON3_SCIE           0x20
6312 #define _SSPCON3_PCIE           0x40
6313 #define _SSPCON3_ACKTIM         0x80
6314 
6315 //==============================================================================
6316 
6317 
6318 //==============================================================================
6319 //        T1GCON Bits
6320 
6321 extern __at(0x0FCC) __sfr T1GCON;
6322 
6323 typedef union
6324   {
6325   struct
6326     {
6327     unsigned T1GSS0             : 1;
6328     unsigned T1GSS1             : 1;
6329     unsigned T1GVAL             : 1;
6330     unsigned T1GGO_NOT_DONE     : 1;
6331     unsigned T1GSPM             : 1;
6332     unsigned T1GTM              : 1;
6333     unsigned T1GPOL             : 1;
6334     unsigned TMR1GE             : 1;
6335     };
6336 
6337   struct
6338     {
6339     unsigned                    : 1;
6340     unsigned                    : 1;
6341     unsigned                    : 1;
6342     unsigned T1G_DONE           : 1;
6343     unsigned                    : 1;
6344     unsigned                    : 1;
6345     unsigned                    : 1;
6346     unsigned                    : 1;
6347     };
6348 
6349   struct
6350     {
6351     unsigned                    : 1;
6352     unsigned                    : 1;
6353     unsigned                    : 1;
6354     unsigned T1GGO              : 1;
6355     unsigned                    : 1;
6356     unsigned                    : 1;
6357     unsigned                    : 1;
6358     unsigned                    : 1;
6359     };
6360 
6361   struct
6362     {
6363     unsigned T1GSS              : 2;
6364     unsigned                    : 6;
6365     };
6366   } __T1GCONbits_t;
6367 
6368 extern __at(0x0FCC) volatile __T1GCONbits_t T1GCONbits;
6369 
6370 #define _T1GSS0                 0x01
6371 #define _T1GSS1                 0x02
6372 #define _T1GVAL                 0x04
6373 #define _T1GGO_NOT_DONE         0x08
6374 #define _T1G_DONE               0x08
6375 #define _T1GGO                  0x08
6376 #define _T1GSPM                 0x10
6377 #define _T1GTM                  0x20
6378 #define _T1GPOL                 0x40
6379 #define _TMR1GE                 0x80
6380 
6381 //==============================================================================
6382 
6383 
6384 //==============================================================================
6385 //        T1CON Bits
6386 
6387 extern __at(0x0FCD) __sfr T1CON;
6388 
6389 typedef union
6390   {
6391   struct
6392     {
6393     unsigned TMR1ON             : 1;
6394     unsigned T1RD16             : 1;
6395     unsigned NOT_T1SYNC         : 1;
6396     unsigned T1SOSCEN           : 1;
6397     unsigned T1CKPS0            : 1;
6398     unsigned T1CKPS1            : 1;
6399     unsigned TMR1CS0            : 1;
6400     unsigned TMR1CS1            : 1;
6401     };
6402 
6403   struct
6404     {
6405     unsigned                    : 1;
6406     unsigned RD16               : 1;
6407     unsigned T1SYNC             : 1;
6408     unsigned T1OSCEN            : 1;
6409     unsigned                    : 1;
6410     unsigned                    : 1;
6411     unsigned                    : 1;
6412     unsigned                    : 1;
6413     };
6414 
6415   struct
6416     {
6417     unsigned                    : 4;
6418     unsigned T1CKPS             : 2;
6419     unsigned                    : 2;
6420     };
6421 
6422   struct
6423     {
6424     unsigned                    : 6;
6425     unsigned TMR1CS             : 2;
6426     };
6427   } __T1CONbits_t;
6428 
6429 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;
6430 
6431 #define _TMR1ON                 0x01
6432 #define _T1RD16                 0x02
6433 #define _RD16                   0x02
6434 #define _NOT_T1SYNC             0x04
6435 #define _T1SYNC                 0x04
6436 #define _T1SOSCEN               0x08
6437 #define _T1OSCEN                0x08
6438 #define _T1CKPS0                0x10
6439 #define _T1CKPS1                0x20
6440 #define _TMR1CS0                0x40
6441 #define _TMR1CS1                0x80
6442 
6443 //==============================================================================
6444 
6445 extern __at(0x0FCE) __sfr TMR1;
6446 extern __at(0x0FCE) __sfr TMR1L;
6447 extern __at(0x0FCF) __sfr TMR1H;
6448 
6449 //==============================================================================
6450 //        RCON Bits
6451 
6452 extern __at(0x0FD0) __sfr RCON;
6453 
6454 typedef union
6455   {
6456   struct
6457     {
6458     unsigned NOT_BOR            : 1;
6459     unsigned NOT_POR            : 1;
6460     unsigned NOT_PD             : 1;
6461     unsigned NOT_TO             : 1;
6462     unsigned NOT_RI             : 1;
6463     unsigned                    : 1;
6464     unsigned SBOREN             : 1;
6465     unsigned IPEN               : 1;
6466     };
6467 
6468   struct
6469     {
6470     unsigned BOR                : 1;
6471     unsigned POR                : 1;
6472     unsigned PD                 : 1;
6473     unsigned TO                 : 1;
6474     unsigned RI                 : 1;
6475     unsigned                    : 1;
6476     unsigned                    : 1;
6477     unsigned                    : 1;
6478     };
6479   } __RCONbits_t;
6480 
6481 extern __at(0x0FD0) volatile __RCONbits_t RCONbits;
6482 
6483 #define _NOT_BOR                0x01
6484 #define _BOR                    0x01
6485 #define _NOT_POR                0x02
6486 #define _POR                    0x02
6487 #define _NOT_PD                 0x04
6488 #define _PD                     0x04
6489 #define _NOT_TO                 0x08
6490 #define _TO                     0x08
6491 #define _NOT_RI                 0x10
6492 #define _RI                     0x10
6493 #define _SBOREN                 0x40
6494 #define _IPEN                   0x80
6495 
6496 //==============================================================================
6497 
6498 
6499 //==============================================================================
6500 //        WDTCON Bits
6501 
6502 extern __at(0x0FD1) __sfr WDTCON;
6503 
6504 typedef union
6505   {
6506   struct
6507     {
6508     unsigned SWDTEN             : 1;
6509     unsigned                    : 1;
6510     unsigned                    : 1;
6511     unsigned                    : 1;
6512     unsigned                    : 1;
6513     unsigned                    : 1;
6514     unsigned                    : 1;
6515     unsigned                    : 1;
6516     };
6517 
6518   struct
6519     {
6520     unsigned SWDTE              : 1;
6521     unsigned                    : 1;
6522     unsigned                    : 1;
6523     unsigned                    : 1;
6524     unsigned                    : 1;
6525     unsigned                    : 1;
6526     unsigned                    : 1;
6527     unsigned                    : 1;
6528     };
6529   } __WDTCONbits_t;
6530 
6531 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits;
6532 
6533 #define _SWDTEN                 0x01
6534 #define _SWDTE                  0x01
6535 
6536 //==============================================================================
6537 
6538 
6539 //==============================================================================
6540 //        OSCCON2 Bits
6541 
6542 extern __at(0x0FD2) __sfr OSCCON2;
6543 
6544 typedef struct
6545   {
6546   unsigned LFIOFS               : 1;
6547   unsigned MFIOFS               : 1;
6548   unsigned PRISD                : 1;
6549   unsigned SOSCGO               : 1;
6550   unsigned MFIOSEL              : 1;
6551   unsigned                      : 1;
6552   unsigned SOSCRUN              : 1;
6553   unsigned PLLRDY               : 1;
6554   } __OSCCON2bits_t;
6555 
6556 extern __at(0x0FD2) volatile __OSCCON2bits_t OSCCON2bits;
6557 
6558 #define _LFIOFS                 0x01
6559 #define _MFIOFS                 0x02
6560 #define _PRISD                  0x04
6561 #define _SOSCGO                 0x08
6562 #define _MFIOSEL                0x10
6563 #define _SOSCRUN                0x40
6564 #define _PLLRDY                 0x80
6565 
6566 //==============================================================================
6567 
6568 
6569 //==============================================================================
6570 //        OSCCON Bits
6571 
6572 extern __at(0x0FD3) __sfr OSCCON;
6573 
6574 typedef union
6575   {
6576   struct
6577     {
6578     unsigned SCS0               : 1;
6579     unsigned SCS1               : 1;
6580     unsigned HFIOFS             : 1;
6581     unsigned OSTS               : 1;
6582     unsigned IRCF0              : 1;
6583     unsigned IRCF1              : 1;
6584     unsigned IRCF2              : 1;
6585     unsigned IDLEN              : 1;
6586     };
6587 
6588   struct
6589     {
6590     unsigned                    : 1;
6591     unsigned                    : 1;
6592     unsigned IOFS               : 1;
6593     unsigned                    : 1;
6594     unsigned                    : 1;
6595     unsigned                    : 1;
6596     unsigned                    : 1;
6597     unsigned                    : 1;
6598     };
6599 
6600   struct
6601     {
6602     unsigned SCS                : 2;
6603     unsigned                    : 6;
6604     };
6605 
6606   struct
6607     {
6608     unsigned                    : 4;
6609     unsigned IRCF               : 3;
6610     unsigned                    : 1;
6611     };
6612   } __OSCCONbits_t;
6613 
6614 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;
6615 
6616 #define _SCS0                   0x01
6617 #define _SCS1                   0x02
6618 #define _HFIOFS                 0x04
6619 #define _IOFS                   0x04
6620 #define _OSTS                   0x08
6621 #define _IRCF0                  0x10
6622 #define _IRCF1                  0x20
6623 #define _IRCF2                  0x40
6624 #define _IDLEN                  0x80
6625 
6626 //==============================================================================
6627 
6628 
6629 //==============================================================================
6630 //        T0CON Bits
6631 
6632 extern __at(0x0FD5) __sfr T0CON;
6633 
6634 typedef union
6635   {
6636   struct
6637     {
6638     unsigned T0PS0              : 1;
6639     unsigned T0PS1              : 1;
6640     unsigned T0PS2              : 1;
6641     unsigned PSA                : 1;
6642     unsigned T0SE               : 1;
6643     unsigned T0CS               : 1;
6644     unsigned T08BIT             : 1;
6645     unsigned TMR0ON             : 1;
6646     };
6647 
6648   struct
6649     {
6650     unsigned T0PS               : 3;
6651     unsigned                    : 5;
6652     };
6653   } __T0CONbits_t;
6654 
6655 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;
6656 
6657 #define _T0PS0                  0x01
6658 #define _T0PS1                  0x02
6659 #define _T0PS2                  0x04
6660 #define _PSA                    0x08
6661 #define _T0SE                   0x10
6662 #define _T0CS                   0x20
6663 #define _T08BIT                 0x40
6664 #define _TMR0ON                 0x80
6665 
6666 //==============================================================================
6667 
6668 extern __at(0x0FD6) __sfr TMR0;
6669 extern __at(0x0FD6) __sfr TMR0L;
6670 extern __at(0x0FD7) __sfr TMR0H;
6671 
6672 //==============================================================================
6673 //        STATUS Bits
6674 
6675 extern __at(0x0FD8) __sfr STATUS;
6676 
6677 typedef struct
6678   {
6679   unsigned C                    : 1;
6680   unsigned DC                   : 1;
6681   unsigned Z                    : 1;
6682   unsigned OV                   : 1;
6683   unsigned N                    : 1;
6684   unsigned                      : 1;
6685   unsigned                      : 1;
6686   unsigned                      : 1;
6687   } __STATUSbits_t;
6688 
6689 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits;
6690 
6691 #define _C                      0x01
6692 #define _DC                     0x02
6693 #define _Z                      0x04
6694 #define _OV                     0x08
6695 #define _N                      0x10
6696 
6697 //==============================================================================
6698 
6699 extern __at(0x0FD9) __sfr FSR2L;
6700 extern __at(0x0FDA) __sfr FSR2H;
6701 extern __at(0x0FDB) __sfr PLUSW2;
6702 extern __at(0x0FDC) __sfr PREINC2;
6703 extern __at(0x0FDD) __sfr POSTDEC2;
6704 extern __at(0x0FDE) __sfr POSTINC2;
6705 extern __at(0x0FDF) __sfr INDF2;
6706 extern __at(0x0FE0) __sfr BSR;
6707 extern __at(0x0FE1) __sfr FSR1L;
6708 extern __at(0x0FE2) __sfr FSR1H;
6709 extern __at(0x0FE3) __sfr PLUSW1;
6710 extern __at(0x0FE4) __sfr PREINC1;
6711 extern __at(0x0FE5) __sfr POSTDEC1;
6712 extern __at(0x0FE6) __sfr POSTINC1;
6713 extern __at(0x0FE7) __sfr INDF1;
6714 extern __at(0x0FE8) __sfr WREG;
6715 extern __at(0x0FE9) __sfr FSR0L;
6716 extern __at(0x0FEA) __sfr FSR0H;
6717 extern __at(0x0FEB) __sfr PLUSW0;
6718 extern __at(0x0FEC) __sfr PREINC0;
6719 extern __at(0x0FED) __sfr POSTDEC0;
6720 extern __at(0x0FEE) __sfr POSTINC0;
6721 extern __at(0x0FEF) __sfr INDF0;
6722 
6723 //==============================================================================
6724 //        INTCON3 Bits
6725 
6726 extern __at(0x0FF0) __sfr INTCON3;
6727 
6728 typedef union
6729   {
6730   struct
6731     {
6732     unsigned INT1IF             : 1;
6733     unsigned INT2IF             : 1;
6734     unsigned                    : 1;
6735     unsigned INT1IE             : 1;
6736     unsigned INT2IE             : 1;
6737     unsigned                    : 1;
6738     unsigned INT1IP             : 1;
6739     unsigned INT2IP             : 1;
6740     };
6741 
6742   struct
6743     {
6744     unsigned INT1F              : 1;
6745     unsigned INT2F              : 1;
6746     unsigned                    : 1;
6747     unsigned INT1E              : 1;
6748     unsigned INT2E              : 1;
6749     unsigned                    : 1;
6750     unsigned INT1P              : 1;
6751     unsigned INT2P              : 1;
6752     };
6753   } __INTCON3bits_t;
6754 
6755 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;
6756 
6757 #define _INT1IF                 0x01
6758 #define _INT1F                  0x01
6759 #define _INT2IF                 0x02
6760 #define _INT2F                  0x02
6761 #define _INT1IE                 0x08
6762 #define _INT1E                  0x08
6763 #define _INT2IE                 0x10
6764 #define _INT2E                  0x10
6765 #define _INT1IP                 0x40
6766 #define _INT1P                  0x40
6767 #define _INT2IP                 0x80
6768 #define _INT2P                  0x80
6769 
6770 //==============================================================================
6771 
6772 
6773 //==============================================================================
6774 //        INTCON2 Bits
6775 
6776 extern __at(0x0FF1) __sfr INTCON2;
6777 
6778 typedef union
6779   {
6780   struct
6781     {
6782     unsigned RBIP               : 1;
6783     unsigned                    : 1;
6784     unsigned TMR0IP             : 1;
6785     unsigned                    : 1;
6786     unsigned INTEDG2            : 1;
6787     unsigned INTEDG1            : 1;
6788     unsigned INTEDG0            : 1;
6789     unsigned NOT_RBPU           : 1;
6790     };
6791 
6792   struct
6793     {
6794     unsigned                    : 1;
6795     unsigned                    : 1;
6796     unsigned                    : 1;
6797     unsigned                    : 1;
6798     unsigned                    : 1;
6799     unsigned                    : 1;
6800     unsigned                    : 1;
6801     unsigned RBPU               : 1;
6802     };
6803   } __INTCON2bits_t;
6804 
6805 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;
6806 
6807 #define _RBIP                   0x01
6808 #define _TMR0IP                 0x04
6809 #define _INTEDG2                0x10
6810 #define _INTEDG1                0x20
6811 #define _INTEDG0                0x40
6812 #define _NOT_RBPU               0x80
6813 #define _RBPU                   0x80
6814 
6815 //==============================================================================
6816 
6817 
6818 //==============================================================================
6819 //        INTCON Bits
6820 
6821 extern __at(0x0FF2) __sfr INTCON;
6822 
6823 typedef union
6824   {
6825   struct
6826     {
6827     unsigned RBIF               : 1;
6828     unsigned INT0IF             : 1;
6829     unsigned TMR0IF             : 1;
6830     unsigned RBIE               : 1;
6831     unsigned INT0IE             : 1;
6832     unsigned TMR0IE             : 1;
6833     unsigned PEIE_GIEL          : 1;
6834     unsigned GIE_GIEH           : 1;
6835     };
6836 
6837   struct
6838     {
6839     unsigned                    : 1;
6840     unsigned INT0F              : 1;
6841     unsigned T0IF               : 1;
6842     unsigned                    : 1;
6843     unsigned INT0E              : 1;
6844     unsigned T0IE               : 1;
6845     unsigned PEIE               : 1;
6846     unsigned GIE                : 1;
6847     };
6848 
6849   struct
6850     {
6851     unsigned                    : 1;
6852     unsigned                    : 1;
6853     unsigned                    : 1;
6854     unsigned                    : 1;
6855     unsigned                    : 1;
6856     unsigned                    : 1;
6857     unsigned GIEL               : 1;
6858     unsigned GIEH               : 1;
6859     };
6860   } __INTCONbits_t;
6861 
6862 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;
6863 
6864 #define _RBIF                   0x01
6865 #define _INT0IF                 0x02
6866 #define _INT0F                  0x02
6867 #define _TMR0IF                 0x04
6868 #define _T0IF                   0x04
6869 #define _RBIE                   0x08
6870 #define _INT0IE                 0x10
6871 #define _INT0E                  0x10
6872 #define _TMR0IE                 0x20
6873 #define _T0IE                   0x20
6874 #define _PEIE_GIEL              0x40
6875 #define _PEIE                   0x40
6876 #define _GIEL                   0x40
6877 #define _GIE_GIEH               0x80
6878 #define _GIE                    0x80
6879 #define _GIEH                   0x80
6880 
6881 //==============================================================================
6882 
6883 extern __at(0x0FF3) __sfr PROD;
6884 extern __at(0x0FF3) __sfr PRODL;
6885 extern __at(0x0FF4) __sfr PRODH;
6886 extern __at(0x0FF5) __sfr TABLAT;
6887 extern __at(0x0FF6) __sfr TBLPTR;
6888 extern __at(0x0FF6) __sfr TBLPTRL;
6889 extern __at(0x0FF7) __sfr TBLPTRH;
6890 extern __at(0x0FF8) __sfr TBLPTRU;
6891 extern __at(0x0FF9) __sfr PC;
6892 extern __at(0x0FF9) __sfr PCL;
6893 extern __at(0x0FFA) __sfr PCLATH;
6894 extern __at(0x0FFB) __sfr PCLATU;
6895 
6896 //==============================================================================
6897 //        STKPTR Bits
6898 
6899 extern __at(0x0FFC) __sfr STKPTR;
6900 
6901 typedef union
6902   {
6903   struct
6904     {
6905     unsigned STKPTR0            : 1;
6906     unsigned STKPTR1            : 1;
6907     unsigned STKPTR2            : 1;
6908     unsigned STKPTR3            : 1;
6909     unsigned STKPTR4            : 1;
6910     unsigned                    : 1;
6911     unsigned STKUNF             : 1;
6912     unsigned STKFUL             : 1;
6913     };
6914 
6915   struct
6916     {
6917     unsigned SP0                : 1;
6918     unsigned SP1                : 1;
6919     unsigned SP2                : 1;
6920     unsigned SP3                : 1;
6921     unsigned SP4                : 1;
6922     unsigned                    : 1;
6923     unsigned                    : 1;
6924     unsigned STKOVF             : 1;
6925     };
6926 
6927   struct
6928     {
6929     unsigned STKPTR             : 5;
6930     unsigned                    : 3;
6931     };
6932 
6933   struct
6934     {
6935     unsigned SP                 : 5;
6936     unsigned                    : 3;
6937     };
6938   } __STKPTRbits_t;
6939 
6940 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;
6941 
6942 #define _STKPTR0                0x01
6943 #define _SP0                    0x01
6944 #define _STKPTR1                0x02
6945 #define _SP1                    0x02
6946 #define _STKPTR2                0x04
6947 #define _SP2                    0x04
6948 #define _STKPTR3                0x08
6949 #define _SP3                    0x08
6950 #define _STKPTR4                0x10
6951 #define _SP4                    0x10
6952 #define _STKUNF                 0x40
6953 #define _STKFUL                 0x80
6954 #define _STKOVF                 0x80
6955 
6956 //==============================================================================
6957 
6958 extern __at(0x0FFD) __sfr TOS;
6959 extern __at(0x0FFD) __sfr TOSL;
6960 extern __at(0x0FFE) __sfr TOSH;
6961 extern __at(0x0FFF) __sfr TOSU;
6962 
6963 //==============================================================================
6964 //
6965 //        Configuration Bits
6966 //
6967 //==============================================================================
6968 
6969 #define __CONFIG1H              0x300001
6970 #define __CONFIG2L              0x300002
6971 #define __CONFIG2H              0x300003
6972 #define __CONFIG3H              0x300005
6973 #define __CONFIG4L              0x300006
6974 #define __CONFIG5L              0x300008
6975 #define __CONFIG5H              0x300009
6976 #define __CONFIG6L              0x30000A
6977 #define __CONFIG6H              0x30000B
6978 #define __CONFIG7L              0x30000C
6979 #define __CONFIG7H              0x30000D
6980 
6981 //----------------------------- CONFIG1H Options -------------------------------
6982 
6983 #define _FOSC_LP_1H             0xF0    // LP oscillator.
6984 #define _FOSC_XT_1H             0xF1    // XT oscillator.
6985 #define _FOSC_HSHP_1H           0xF2    // HS oscillator (high power > 16 MHz).
6986 #define _FOSC_HSMP_1H           0xF3    // HS oscillator (medium power 4-16 MHz).
6987 #define _FOSC_ECHP_1H           0xF4    // EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz).
6988 #define _FOSC_ECHPIO6_1H        0xF5    // EC oscillator (high power, >16 MHz).
6989 #define _FOSC_RC_1H             0xF6    // External RC oscillator, CLKOUT function on OSC2.
6990 #define _FOSC_RCIO6_1H          0xF7    // External RC oscillator.
6991 #define _FOSC_INTIO67_1H        0xF8    // Internal oscillator block.
6992 #define _FOSC_INTIO7_1H         0xF9    // Internal oscillator block, CLKOUT function on OSC2.
6993 #define _FOSC_ECMP_1H           0xFA    // EC oscillator, CLKOUT function on OSC2 (medium power, 500 kHz-16 MHz).
6994 #define _FOSC_ECMPIO6_1H        0xFB    // EC oscillator (medium power, 500 kHz-16 MHz).
6995 #define _FOSC_ECLP_1H           0xFC    // EC oscillator, CLKOUT function on OSC2 (low power, <500 kHz).
6996 #define _FOSC_ECLPIO6_1H        0xFD    // EC oscillator (low power, <500 kHz).
6997 #define _PLLCFG_OFF_1H          0xEF    // Oscillator used directly.
6998 #define _PLLCFG_ON_1H           0xFF    // Oscillator multiplied by 4.
6999 #define _PRICLKEN_OFF_1H        0xDF    // Primary clock can be disabled by software.
7000 #define _PRICLKEN_ON_1H         0xFF    // Primary clock enabled.
7001 #define _FCMEN_OFF_1H           0xBF    // Fail-Safe Clock Monitor disabled.
7002 #define _FCMEN_ON_1H            0xFF    // Fail-Safe Clock Monitor enabled.
7003 #define _IESO_OFF_1H            0x7F    // Oscillator Switchover mode disabled.
7004 #define _IESO_ON_1H             0xFF    // Oscillator Switchover mode enabled.
7005 
7006 //----------------------------- CONFIG2L Options -------------------------------
7007 
7008 #define _PWRTEN_ON_2L           0xFE    // Power up timer enabled.
7009 #define _PWRTEN_OFF_2L          0xFF    // Power up timer disabled.
7010 #define _BOREN_OFF_2L           0xF9    // Brown-out Reset disabled in hardware and software.
7011 #define _BOREN_ON_2L            0xFB    // Brown-out Reset enabled and controlled by software (SBOREN is enabled).
7012 #define _BOREN_NOSLP_2L         0xFD    // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled).
7013 #define _BOREN_SBORDIS_2L       0xFF    // Brown-out Reset enabled in hardware only (SBOREN is disabled).
7014 #define _BORV_285_2L            0xE7    // VBOR set to 2.85 V nominal.
7015 #define _BORV_250_2L            0xEF    // VBOR set to 2.50 V nominal.
7016 #define _BORV_220_2L            0xF7    // VBOR set to 2.20 V nominal.
7017 #define _BORV_190_2L            0xFF    // VBOR set to 1.90 V nominal.
7018 
7019 //----------------------------- CONFIG2H Options -------------------------------
7020 
7021 #define _WDTEN_OFF_2H           0xFC    // Watch dog timer is always disabled. SWDTEN has no effect.
7022 #define _WDTEN_NOSLP_2H         0xFD    // WDT is disabled in sleep, otherwise enabled. SWDTEN bit has no effect.
7023 #define _WDTEN_SWON_2H          0xFE    // WDT is controlled by SWDTEN bit of the WDTCON register.
7024 #define _WDTEN_ON_2H            0xFF    // WDT is always enabled. SWDTEN bit has no effect.
7025 #define _WDTPS_1_2H             0xC3    // 1:1.
7026 #define _WDTPS_2_2H             0xC7    // 1:2.
7027 #define _WDTPS_4_2H             0xCB    // 1:4.
7028 #define _WDTPS_8_2H             0xCF    // 1:8.
7029 #define _WDTPS_16_2H            0xD3    // 1:16.
7030 #define _WDTPS_32_2H            0xD7    // 1:32.
7031 #define _WDTPS_64_2H            0xDB    // 1:64.
7032 #define _WDTPS_128_2H           0xDF    // 1:128.
7033 #define _WDTPS_256_2H           0xE3    // 1:256.
7034 #define _WDTPS_512_2H           0xE7    // 1:512.
7035 #define _WDTPS_1024_2H          0xEB    // 1:1024.
7036 #define _WDTPS_2048_2H          0xEF    // 1:2048.
7037 #define _WDTPS_4096_2H          0xF3    // 1:4096.
7038 #define _WDTPS_8192_2H          0xF7    // 1:8192.
7039 #define _WDTPS_16384_2H         0xFB    // 1:16384.
7040 #define _WDTPS_32768_2H         0xFF    // 1:32768.
7041 
7042 //----------------------------- CONFIG3H Options -------------------------------
7043 
7044 #define _CCP2MX_PORTB3_3H       0xFE    // CCP2 input/output is multiplexed with RB3.
7045 #define _CCP2MX_PORTC1_3H       0xFF    // CCP2 input/output is multiplexed with RC1.
7046 #define _PBADEN_OFF_3H          0xFD    // PORTB<5:0> pins are configured as digital I/O on Reset.
7047 #define _PBADEN_ON_3H           0xFF    // PORTB<5:0> pins are configured as analog input channels on Reset.
7048 #define _CCP3MX_PORTC6_3H       0xFB    // P3A/CCP3 input/output is mulitplexed with RC6.
7049 #define _CCP3MX_PORTB5_3H       0xFF    // P3A/CCP3 input/output is multiplexed with RB5.
7050 #define _HFOFST_OFF_3H          0xF7    // HFINTOSC output and ready status are delayed by the oscillator stable status.
7051 #define _HFOFST_ON_3H           0xFF    // HFINTOSC output and ready status are not delayed by the oscillator stable status.
7052 #define _T3CMX_PORTB5_3H        0xEF    // T3CKI is on RB5.
7053 #define _T3CMX_PORTC0_3H        0xFF    // T3CKI is on RC0.
7054 #define _P2BMX_PORTC0_3H        0xDF    // P2B is on RC0.
7055 #define _P2BMX_PORTB5_3H        0xFF    // P2B is on RB5.
7056 #define _MCLRE_INTMCLR_3H       0x7F    // RE3 input pin enabled; MCLR disabled.
7057 #define _MCLRE_EXTMCLR_3H       0xFF    // MCLR pin enabled, RE3 input pin disabled.
7058 
7059 //----------------------------- CONFIG4L Options -------------------------------
7060 
7061 #define _STVREN_OFF_4L          0xFE    // Stack full/underflow will not cause Reset.
7062 #define _STVREN_ON_4L           0xFF    // Stack full/underflow will cause Reset.
7063 #define _LVP_OFF_4L             0xFB    // Single-Supply ICSP disabled.
7064 #define _LVP_ON_4L              0xFF    // Single-Supply ICSP enabled if MCLRE is also 1.
7065 #define _XINST_OFF_4L           0xBF    // Instruction set extension and Indexed Addressing mode disabled (Legacy mode).
7066 #define _XINST_ON_4L            0xFF    // Instruction set extension and Indexed Addressing mode enabled.
7067 #define _DEBUG_ON_4L            0x7F    // Enabled.
7068 #define _DEBUG_OFF_4L           0xFF    // Disabled.
7069 
7070 //----------------------------- CONFIG5L Options -------------------------------
7071 
7072 #define _CP0_ON_5L              0xFE    // Block 0 (000800-001FFFh) code-protected.
7073 #define _CP0_OFF_5L             0xFF    // Block 0 (000800-001FFFh) not code-protected.
7074 #define _CP1_ON_5L              0xFD    // Block 1 (002000-003FFFh) code-protected.
7075 #define _CP1_OFF_5L             0xFF    // Block 1 (002000-003FFFh) not code-protected.
7076 
7077 //----------------------------- CONFIG5H Options -------------------------------
7078 
7079 #define _CPB_ON_5H              0xBF    // Boot block (000000-0007FFh) code-protected.
7080 #define _CPB_OFF_5H             0xFF    // Boot block (000000-0007FFh) not code-protected.
7081 #define _CPD_ON_5H              0x7F    // Data EEPROM code-protected.
7082 #define _CPD_OFF_5H             0xFF    // Data EEPROM not code-protected.
7083 
7084 //----------------------------- CONFIG6L Options -------------------------------
7085 
7086 #define _WRT0_ON_6L             0xFE    // Block 0 (000800-001FFFh) write-protected.
7087 #define _WRT0_OFF_6L            0xFF    // Block 0 (000800-001FFFh) not write-protected.
7088 #define _WRT1_ON_6L             0xFD    // Block 1 (002000-003FFFh) write-protected.
7089 #define _WRT1_OFF_6L            0xFF    // Block 1 (002000-003FFFh) not write-protected.
7090 
7091 //----------------------------- CONFIG6H Options -------------------------------
7092 
7093 #define _WRTC_ON_6H             0xDF    // Configuration registers (300000-3000FFh) write-protected.
7094 #define _WRTC_OFF_6H            0xFF    // Configuration registers (300000-3000FFh) not write-protected.
7095 #define _WRTB_ON_6H             0xBF    // Boot Block (000000-0007FFh) write-protected.
7096 #define _WRTB_OFF_6H            0xFF    // Boot Block (000000-0007FFh) not write-protected.
7097 #define _WRTD_ON_6H             0x7F    // Data EEPROM write-protected.
7098 #define _WRTD_OFF_6H            0xFF    // Data EEPROM not write-protected.
7099 
7100 //----------------------------- CONFIG7L Options -------------------------------
7101 
7102 #define _EBTR0_ON_7L            0xFE    // Block 0 (000800-001FFFh) protected from table reads executed in other blocks.
7103 #define _EBTR0_OFF_7L           0xFF    // Block 0 (000800-001FFFh) not protected from table reads executed in other blocks.
7104 #define _EBTR1_ON_7L            0xFD    // Block 1 (002000-003FFFh) protected from table reads executed in other blocks.
7105 #define _EBTR1_OFF_7L           0xFF    // Block 1 (002000-003FFFh) not protected from table reads executed in other blocks.
7106 
7107 //----------------------------- CONFIG7H Options -------------------------------
7108 
7109 #define _EBTRB_ON_7H            0xBF    // Boot Block (000000-0007FFh) protected from table reads executed in other blocks.
7110 #define _EBTRB_OFF_7H           0xFF    // Boot Block (000000-0007FFh) not protected from table reads executed in other blocks.
7111 
7112 //==============================================================================
7113 
7114 #define __DEVID1                0x3FFFFE
7115 #define __DEVID2                0x3FFFFF
7116 
7117 #define __IDLOC0                0x200000
7118 #define __IDLOC1                0x200001
7119 #define __IDLOC2                0x200002
7120 #define __IDLOC3                0x200003
7121 #define __IDLOC4                0x200004
7122 #define __IDLOC5                0x200005
7123 #define __IDLOC6                0x200006
7124 #define __IDLOC7                0x200007
7125 
7126 #endif // #ifndef __PIC18LF24K22_H__
7127