1 /*
2  * This declarations of the PIC16LF722A 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:22:58 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 __PIC16LF722A_H__
26 #define __PIC16LF722A_H__
27 
28 //==============================================================================
29 //
30 //	Register Addresses
31 //
32 //==============================================================================
33 
34 #ifndef NO_ADDR_DEFINES
35 
36 #define INDF_ADDR               0x0000
37 #define TMR0_ADDR               0x0001
38 #define PCL_ADDR                0x0002
39 #define STATUS_ADDR             0x0003
40 #define FSR_ADDR                0x0004
41 #define PORTA_ADDR              0x0005
42 #define PORTB_ADDR              0x0006
43 #define PORTC_ADDR              0x0007
44 #define PORTE_ADDR              0x0009
45 #define PCLATH_ADDR             0x000A
46 #define INTCON_ADDR             0x000B
47 #define PIR1_ADDR               0x000C
48 #define PIR2_ADDR               0x000D
49 #define TMR1_ADDR               0x000E
50 #define TMR1L_ADDR              0x000E
51 #define TMR1H_ADDR              0x000F
52 #define T1CON_ADDR              0x0010
53 #define TMR2_ADDR               0x0011
54 #define T2CON_ADDR              0x0012
55 #define SSPBUF_ADDR             0x0013
56 #define SSPCON_ADDR             0x0014
57 #define CCPR1_ADDR              0x0015
58 #define CCPR1L_ADDR             0x0015
59 #define CCPR1H_ADDR             0x0016
60 #define CCP1CON_ADDR            0x0017
61 #define RCSTA_ADDR              0x0018
62 #define TXREG_ADDR              0x0019
63 #define RCREG_ADDR              0x001A
64 #define CCPR2_ADDR              0x001B
65 #define CCPR2L_ADDR             0x001B
66 #define CCPR2H_ADDR             0x001C
67 #define CCP2CON_ADDR            0x001D
68 #define ADRES_ADDR              0x001E
69 #define ADCON0_ADDR             0x001F
70 #define OPTION_REG_ADDR         0x0081
71 #define TRISA_ADDR              0x0085
72 #define TRISB_ADDR              0x0086
73 #define TRISC_ADDR              0x0087
74 #define TRISE_ADDR              0x0089
75 #define PIE1_ADDR               0x008C
76 #define PIE2_ADDR               0x008D
77 #define PCON_ADDR               0x008E
78 #define T1GCON_ADDR             0x008F
79 #define OSCCON_ADDR             0x0090
80 #define OSCTUNE_ADDR            0x0091
81 #define PR2_ADDR                0x0092
82 #define SSPADD_ADDR             0x0093
83 #define SSPMSK_ADDR             0x0093
84 #define SSPSTAT_ADDR            0x0094
85 #define WPU_ADDR                0x0095
86 #define WPUB_ADDR               0x0095
87 #define IOC_ADDR                0x0096
88 #define IOCB_ADDR               0x0096
89 #define TXSTA_ADDR              0x0098
90 #define SPBRG_ADDR              0x0099
91 #define APFCON_ADDR             0x009C
92 #define FVRCON_ADDR             0x009D
93 #define ADCON1_ADDR             0x009F
94 #define CPSCON0_ADDR            0x0108
95 #define CPSCON1_ADDR            0x0109
96 #define PMDATA_ADDR             0x010C
97 #define PMDATL_ADDR             0x010C
98 #define PMADR_ADDR              0x010D
99 #define PMADRL_ADDR             0x010D
100 #define PMDATH_ADDR             0x010E
101 #define PMADRH_ADDR             0x010F
102 #define ANSELA_ADDR             0x0185
103 #define ANSELB_ADDR             0x0186
104 #define PMCON1_ADDR             0x018C
105 
106 #endif // #ifndef NO_ADDR_DEFINES
107 
108 //==============================================================================
109 //
110 //	Register Definitions
111 //
112 //==============================================================================
113 
114 extern __at(0x0000) __sfr INDF;
115 extern __at(0x0001) __sfr TMR0;
116 extern __at(0x0002) __sfr PCL;
117 
118 //==============================================================================
119 //        STATUS Bits
120 
121 extern __at(0x0003) __sfr STATUS;
122 
123 typedef union
124   {
125   struct
126     {
127     unsigned C                  : 1;
128     unsigned DC                 : 1;
129     unsigned Z                  : 1;
130     unsigned NOT_PD             : 1;
131     unsigned NOT_TO             : 1;
132     unsigned RP0                : 1;
133     unsigned RP1                : 1;
134     unsigned IRP                : 1;
135     };
136 
137   struct
138     {
139     unsigned                    : 5;
140     unsigned RP                 : 2;
141     unsigned                    : 1;
142     };
143   } __STATUSbits_t;
144 
145 extern __at(0x0003) volatile __STATUSbits_t STATUSbits;
146 
147 #define _C                      0x01
148 #define _DC                     0x02
149 #define _Z                      0x04
150 #define _NOT_PD                 0x08
151 #define _NOT_TO                 0x10
152 #define _RP0                    0x20
153 #define _RP1                    0x40
154 #define _IRP                    0x80
155 
156 //==============================================================================
157 
158 extern __at(0x0004) __sfr FSR;
159 
160 //==============================================================================
161 //        PORTA Bits
162 
163 extern __at(0x0005) __sfr PORTA;
164 
165 typedef struct
166   {
167   unsigned RA0                  : 1;
168   unsigned RA1                  : 1;
169   unsigned RA2                  : 1;
170   unsigned RA3                  : 1;
171   unsigned RA4                  : 1;
172   unsigned RA5                  : 1;
173   unsigned RA6                  : 1;
174   unsigned RA7                  : 1;
175   } __PORTAbits_t;
176 
177 extern __at(0x0005) volatile __PORTAbits_t PORTAbits;
178 
179 #define _RA0                    0x01
180 #define _RA1                    0x02
181 #define _RA2                    0x04
182 #define _RA3                    0x08
183 #define _RA4                    0x10
184 #define _RA5                    0x20
185 #define _RA6                    0x40
186 #define _RA7                    0x80
187 
188 //==============================================================================
189 
190 
191 //==============================================================================
192 //        PORTB Bits
193 
194 extern __at(0x0006) __sfr PORTB;
195 
196 typedef struct
197   {
198   unsigned RB0                  : 1;
199   unsigned RB1                  : 1;
200   unsigned RB2                  : 1;
201   unsigned RB3                  : 1;
202   unsigned RB4                  : 1;
203   unsigned RB5                  : 1;
204   unsigned RB6                  : 1;
205   unsigned RB7                  : 1;
206   } __PORTBbits_t;
207 
208 extern __at(0x0006) volatile __PORTBbits_t PORTBbits;
209 
210 #define _RB0                    0x01
211 #define _RB1                    0x02
212 #define _RB2                    0x04
213 #define _RB3                    0x08
214 #define _RB4                    0x10
215 #define _RB5                    0x20
216 #define _RB6                    0x40
217 #define _RB7                    0x80
218 
219 //==============================================================================
220 
221 
222 //==============================================================================
223 //        PORTC Bits
224 
225 extern __at(0x0007) __sfr PORTC;
226 
227 typedef struct
228   {
229   unsigned RC0                  : 1;
230   unsigned RC1                  : 1;
231   unsigned RC2                  : 1;
232   unsigned RC3                  : 1;
233   unsigned RC4                  : 1;
234   unsigned RC5                  : 1;
235   unsigned RC6                  : 1;
236   unsigned RC7                  : 1;
237   } __PORTCbits_t;
238 
239 extern __at(0x0007) volatile __PORTCbits_t PORTCbits;
240 
241 #define _RC0                    0x01
242 #define _RC1                    0x02
243 #define _RC2                    0x04
244 #define _RC3                    0x08
245 #define _RC4                    0x10
246 #define _RC5                    0x20
247 #define _RC6                    0x40
248 #define _RC7                    0x80
249 
250 //==============================================================================
251 
252 
253 //==============================================================================
254 //        PORTE Bits
255 
256 extern __at(0x0009) __sfr PORTE;
257 
258 typedef struct
259   {
260   unsigned                      : 1;
261   unsigned                      : 1;
262   unsigned                      : 1;
263   unsigned RE3                  : 1;
264   unsigned                      : 1;
265   unsigned                      : 1;
266   unsigned                      : 1;
267   unsigned                      : 1;
268   } __PORTEbits_t;
269 
270 extern __at(0x0009) volatile __PORTEbits_t PORTEbits;
271 
272 #define _RE3                    0x08
273 
274 //==============================================================================
275 
276 extern __at(0x000A) __sfr PCLATH;
277 
278 //==============================================================================
279 //        INTCON Bits
280 
281 extern __at(0x000B) __sfr INTCON;
282 
283 typedef union
284   {
285   struct
286     {
287     unsigned RBIF               : 1;
288     unsigned INTF               : 1;
289     unsigned T0IF               : 1;
290     unsigned RBIE               : 1;
291     unsigned INTE               : 1;
292     unsigned T0IE               : 1;
293     unsigned PEIE               : 1;
294     unsigned GIE                : 1;
295     };
296 
297   struct
298     {
299     unsigned IOCIF              : 1;
300     unsigned                    : 1;
301     unsigned TMR0IF             : 1;
302     unsigned IOCIE              : 1;
303     unsigned                    : 1;
304     unsigned TMR0IE             : 1;
305     unsigned                    : 1;
306     unsigned                    : 1;
307     };
308   } __INTCONbits_t;
309 
310 extern __at(0x000B) volatile __INTCONbits_t INTCONbits;
311 
312 #define _RBIF                   0x01
313 #define _IOCIF                  0x01
314 #define _INTF                   0x02
315 #define _T0IF                   0x04
316 #define _TMR0IF                 0x04
317 #define _RBIE                   0x08
318 #define _IOCIE                  0x08
319 #define _INTE                   0x10
320 #define _T0IE                   0x20
321 #define _TMR0IE                 0x20
322 #define _PEIE                   0x40
323 #define _GIE                    0x80
324 
325 //==============================================================================
326 
327 
328 //==============================================================================
329 //        PIR1 Bits
330 
331 extern __at(0x000C) __sfr PIR1;
332 
333 typedef struct
334   {
335   unsigned TMR1IF               : 1;
336   unsigned TMR2IF               : 1;
337   unsigned CCP1IF               : 1;
338   unsigned SSPIF                : 1;
339   unsigned TXIF                 : 1;
340   unsigned RCIF                 : 1;
341   unsigned ADIF                 : 1;
342   unsigned TMR1GIF              : 1;
343   } __PIR1bits_t;
344 
345 extern __at(0x000C) volatile __PIR1bits_t PIR1bits;
346 
347 #define _TMR1IF                 0x01
348 #define _TMR2IF                 0x02
349 #define _CCP1IF                 0x04
350 #define _SSPIF                  0x08
351 #define _TXIF                   0x10
352 #define _RCIF                   0x20
353 #define _ADIF                   0x40
354 #define _TMR1GIF                0x80
355 
356 //==============================================================================
357 
358 
359 //==============================================================================
360 //        PIR2 Bits
361 
362 extern __at(0x000D) __sfr PIR2;
363 
364 typedef struct
365   {
366   unsigned CCP2IF               : 1;
367   unsigned                      : 1;
368   unsigned                      : 1;
369   unsigned                      : 1;
370   unsigned                      : 1;
371   unsigned                      : 1;
372   unsigned                      : 1;
373   unsigned                      : 1;
374   } __PIR2bits_t;
375 
376 extern __at(0x000D) volatile __PIR2bits_t PIR2bits;
377 
378 #define _CCP2IF                 0x01
379 
380 //==============================================================================
381 
382 extern __at(0x000E) __sfr TMR1;
383 extern __at(0x000E) __sfr TMR1L;
384 extern __at(0x000F) __sfr TMR1H;
385 
386 //==============================================================================
387 //        T1CON Bits
388 
389 extern __at(0x0010) __sfr T1CON;
390 
391 typedef union
392   {
393   struct
394     {
395     unsigned TMR1ON             : 1;
396     unsigned                    : 1;
397     unsigned T1SYNC             : 1;
398     unsigned T1OSCEN            : 1;
399     unsigned T1CKPS0            : 1;
400     unsigned T1CKPS1            : 1;
401     unsigned TMR1CS0            : 1;
402     unsigned TMR1CS1            : 1;
403     };
404 
405   struct
406     {
407     unsigned                    : 1;
408     unsigned                    : 1;
409     unsigned NOT_T1SYNC         : 1;
410     unsigned                    : 1;
411     unsigned                    : 1;
412     unsigned                    : 1;
413     unsigned                    : 1;
414     unsigned                    : 1;
415     };
416 
417   struct
418     {
419     unsigned                    : 1;
420     unsigned                    : 1;
421     unsigned T1INSYNC           : 1;
422     unsigned                    : 1;
423     unsigned                    : 1;
424     unsigned                    : 1;
425     unsigned                    : 1;
426     unsigned                    : 1;
427     };
428 
429   struct
430     {
431     unsigned                    : 4;
432     unsigned T1CKPS             : 2;
433     unsigned                    : 2;
434     };
435 
436   struct
437     {
438     unsigned                    : 6;
439     unsigned TMR1CS             : 2;
440     };
441   } __T1CONbits_t;
442 
443 extern __at(0x0010) volatile __T1CONbits_t T1CONbits;
444 
445 #define _TMR1ON                 0x01
446 #define _T1SYNC                 0x04
447 #define _NOT_T1SYNC             0x04
448 #define _T1INSYNC               0x04
449 #define _T1OSCEN                0x08
450 #define _T1CKPS0                0x10
451 #define _T1CKPS1                0x20
452 #define _TMR1CS0                0x40
453 #define _TMR1CS1                0x80
454 
455 //==============================================================================
456 
457 extern __at(0x0011) __sfr TMR2;
458 
459 //==============================================================================
460 //        T2CON Bits
461 
462 extern __at(0x0012) __sfr T2CON;
463 
464 typedef union
465   {
466   struct
467     {
468     unsigned T2CKPS0            : 1;
469     unsigned T2CKPS1            : 1;
470     unsigned TMR2ON             : 1;
471     unsigned TOUTPS0            : 1;
472     unsigned TOUTPS1            : 1;
473     unsigned TOUTPS2            : 1;
474     unsigned TOUTPS3            : 1;
475     unsigned                    : 1;
476     };
477 
478   struct
479     {
480     unsigned T2CKPS             : 2;
481     unsigned                    : 6;
482     };
483 
484   struct
485     {
486     unsigned                    : 3;
487     unsigned TOUTPS             : 4;
488     unsigned                    : 1;
489     };
490   } __T2CONbits_t;
491 
492 extern __at(0x0012) volatile __T2CONbits_t T2CONbits;
493 
494 #define _T2CKPS0                0x01
495 #define _T2CKPS1                0x02
496 #define _TMR2ON                 0x04
497 #define _TOUTPS0                0x08
498 #define _TOUTPS1                0x10
499 #define _TOUTPS2                0x20
500 #define _TOUTPS3                0x40
501 
502 //==============================================================================
503 
504 extern __at(0x0013) __sfr SSPBUF;
505 
506 //==============================================================================
507 //        SSPCON Bits
508 
509 extern __at(0x0014) __sfr SSPCON;
510 
511 typedef union
512   {
513   struct
514     {
515     unsigned SSPM0              : 1;
516     unsigned SSPM1              : 1;
517     unsigned SSPM2              : 1;
518     unsigned SSPM3              : 1;
519     unsigned CKP                : 1;
520     unsigned SSPEN              : 1;
521     unsigned SSPOV              : 1;
522     unsigned WCOL               : 1;
523     };
524 
525   struct
526     {
527     unsigned SSPM               : 4;
528     unsigned                    : 4;
529     };
530   } __SSPCONbits_t;
531 
532 extern __at(0x0014) volatile __SSPCONbits_t SSPCONbits;
533 
534 #define _SSPM0                  0x01
535 #define _SSPM1                  0x02
536 #define _SSPM2                  0x04
537 #define _SSPM3                  0x08
538 #define _CKP                    0x10
539 #define _SSPEN                  0x20
540 #define _SSPOV                  0x40
541 #define _WCOL                   0x80
542 
543 //==============================================================================
544 
545 extern __at(0x0015) __sfr CCPR1;
546 extern __at(0x0015) __sfr CCPR1L;
547 extern __at(0x0016) __sfr CCPR1H;
548 
549 //==============================================================================
550 //        CCP1CON Bits
551 
552 extern __at(0x0017) __sfr CCP1CON;
553 
554 typedef union
555   {
556   struct
557     {
558     unsigned CCP1M0             : 1;
559     unsigned CCP1M1             : 1;
560     unsigned CCP1M2             : 1;
561     unsigned CCP1M3             : 1;
562     unsigned DC1B0              : 1;
563     unsigned DC1B1              : 1;
564     unsigned                    : 1;
565     unsigned                    : 1;
566     };
567 
568   struct
569     {
570     unsigned                    : 1;
571     unsigned                    : 1;
572     unsigned                    : 1;
573     unsigned                    : 1;
574     unsigned CCP1Y              : 1;
575     unsigned CCP1X              : 1;
576     unsigned                    : 1;
577     unsigned                    : 1;
578     };
579 
580   struct
581     {
582     unsigned CCP1M              : 4;
583     unsigned                    : 4;
584     };
585 
586   struct
587     {
588     unsigned                    : 4;
589     unsigned DC1B               : 2;
590     unsigned                    : 2;
591     };
592   } __CCP1CONbits_t;
593 
594 extern __at(0x0017) volatile __CCP1CONbits_t CCP1CONbits;
595 
596 #define _CCP1M0                 0x01
597 #define _CCP1M1                 0x02
598 #define _CCP1M2                 0x04
599 #define _CCP1M3                 0x08
600 #define _DC1B0                  0x10
601 #define _CCP1Y                  0x10
602 #define _DC1B1                  0x20
603 #define _CCP1X                  0x20
604 
605 //==============================================================================
606 
607 
608 //==============================================================================
609 //        RCSTA Bits
610 
611 extern __at(0x0018) __sfr RCSTA;
612 
613 typedef union
614   {
615   struct
616     {
617     unsigned RX9D               : 1;
618     unsigned OERR               : 1;
619     unsigned FERR               : 1;
620     unsigned ADDEN              : 1;
621     unsigned CREN               : 1;
622     unsigned SREN               : 1;
623     unsigned RX9                : 1;
624     unsigned SPEN               : 1;
625     };
626 
627   struct
628     {
629     unsigned RCD8               : 1;
630     unsigned                    : 1;
631     unsigned                    : 1;
632     unsigned                    : 1;
633     unsigned                    : 1;
634     unsigned                    : 1;
635     unsigned RC9                : 1;
636     unsigned                    : 1;
637     };
638 
639   struct
640     {
641     unsigned                    : 1;
642     unsigned                    : 1;
643     unsigned                    : 1;
644     unsigned                    : 1;
645     unsigned                    : 1;
646     unsigned                    : 1;
647     unsigned NOT_RC8            : 1;
648     unsigned                    : 1;
649     };
650 
651   struct
652     {
653     unsigned                    : 1;
654     unsigned                    : 1;
655     unsigned                    : 1;
656     unsigned                    : 1;
657     unsigned                    : 1;
658     unsigned                    : 1;
659     unsigned RC8_9              : 1;
660     unsigned                    : 1;
661     };
662   } __RCSTAbits_t;
663 
664 extern __at(0x0018) volatile __RCSTAbits_t RCSTAbits;
665 
666 #define _RX9D                   0x01
667 #define _RCD8                   0x01
668 #define _OERR                   0x02
669 #define _FERR                   0x04
670 #define _ADDEN                  0x08
671 #define _CREN                   0x10
672 #define _SREN                   0x20
673 #define _RX9                    0x40
674 #define _RC9                    0x40
675 #define _NOT_RC8                0x40
676 #define _RC8_9                  0x40
677 #define _SPEN                   0x80
678 
679 //==============================================================================
680 
681 extern __at(0x0019) __sfr TXREG;
682 extern __at(0x001A) __sfr RCREG;
683 extern __at(0x001B) __sfr CCPR2;
684 extern __at(0x001B) __sfr CCPR2L;
685 extern __at(0x001C) __sfr CCPR2H;
686 
687 //==============================================================================
688 //        CCP2CON Bits
689 
690 extern __at(0x001D) __sfr CCP2CON;
691 
692 typedef union
693   {
694   struct
695     {
696     unsigned CCP2M0             : 1;
697     unsigned CCP2M1             : 1;
698     unsigned CCP2M2             : 1;
699     unsigned CCP2M3             : 1;
700     unsigned DC2B0              : 1;
701     unsigned DC2B1              : 1;
702     unsigned                    : 1;
703     unsigned                    : 1;
704     };
705 
706   struct
707     {
708     unsigned                    : 1;
709     unsigned                    : 1;
710     unsigned                    : 1;
711     unsigned                    : 1;
712     unsigned CCP2Y              : 1;
713     unsigned CCP2X              : 1;
714     unsigned                    : 1;
715     unsigned                    : 1;
716     };
717 
718   struct
719     {
720     unsigned CCP2M              : 4;
721     unsigned                    : 4;
722     };
723 
724   struct
725     {
726     unsigned                    : 4;
727     unsigned DC2B               : 2;
728     unsigned                    : 2;
729     };
730   } __CCP2CONbits_t;
731 
732 extern __at(0x001D) volatile __CCP2CONbits_t CCP2CONbits;
733 
734 #define _CCP2M0                 0x01
735 #define _CCP2M1                 0x02
736 #define _CCP2M2                 0x04
737 #define _CCP2M3                 0x08
738 #define _DC2B0                  0x10
739 #define _CCP2Y                  0x10
740 #define _DC2B1                  0x20
741 #define _CCP2X                  0x20
742 
743 //==============================================================================
744 
745 extern __at(0x001E) __sfr ADRES;
746 
747 //==============================================================================
748 //        ADCON0 Bits
749 
750 extern __at(0x001F) __sfr ADCON0;
751 
752 typedef union
753   {
754   struct
755     {
756     unsigned ADON               : 1;
757     unsigned GO_NOT_DONE        : 1;
758     unsigned CHS0               : 1;
759     unsigned CHS1               : 1;
760     unsigned CHS2               : 1;
761     unsigned CHS3               : 1;
762     unsigned                    : 1;
763     unsigned                    : 1;
764     };
765 
766   struct
767     {
768     unsigned                    : 1;
769     unsigned GO                 : 1;
770     unsigned                    : 1;
771     unsigned                    : 1;
772     unsigned                    : 1;
773     unsigned                    : 1;
774     unsigned                    : 1;
775     unsigned                    : 1;
776     };
777 
778   struct
779     {
780     unsigned                    : 1;
781     unsigned NOT_DONE           : 1;
782     unsigned                    : 1;
783     unsigned                    : 1;
784     unsigned                    : 1;
785     unsigned                    : 1;
786     unsigned                    : 1;
787     unsigned                    : 1;
788     };
789 
790   struct
791     {
792     unsigned                    : 1;
793     unsigned GO_DONE            : 1;
794     unsigned                    : 1;
795     unsigned                    : 1;
796     unsigned                    : 1;
797     unsigned                    : 1;
798     unsigned                    : 1;
799     unsigned                    : 1;
800     };
801 
802   struct
803     {
804     unsigned                    : 2;
805     unsigned CHS                : 4;
806     unsigned                    : 2;
807     };
808   } __ADCON0bits_t;
809 
810 extern __at(0x001F) volatile __ADCON0bits_t ADCON0bits;
811 
812 #define _ADON                   0x01
813 #define _GO_NOT_DONE            0x02
814 #define _GO                     0x02
815 #define _NOT_DONE               0x02
816 #define _GO_DONE                0x02
817 #define _CHS0                   0x04
818 #define _CHS1                   0x08
819 #define _CHS2                   0x10
820 #define _CHS3                   0x20
821 
822 //==============================================================================
823 
824 
825 //==============================================================================
826 //        OPTION_REG Bits
827 
828 extern __at(0x0081) __sfr OPTION_REG;
829 
830 typedef union
831   {
832   struct
833     {
834     unsigned PS0                : 1;
835     unsigned PS1                : 1;
836     unsigned PS2                : 1;
837     unsigned PSA                : 1;
838     unsigned T0SE               : 1;
839     unsigned T0CS               : 1;
840     unsigned INTEDG             : 1;
841     unsigned NOT_RBPU           : 1;
842     };
843 
844   struct
845     {
846     unsigned PS                 : 3;
847     unsigned                    : 5;
848     };
849   } __OPTION_REGbits_t;
850 
851 extern __at(0x0081) volatile __OPTION_REGbits_t OPTION_REGbits;
852 
853 #define _PS0                    0x01
854 #define _PS1                    0x02
855 #define _PS2                    0x04
856 #define _PSA                    0x08
857 #define _T0SE                   0x10
858 #define _T0CS                   0x20
859 #define _INTEDG                 0x40
860 #define _NOT_RBPU               0x80
861 
862 //==============================================================================
863 
864 
865 //==============================================================================
866 //        TRISA Bits
867 
868 extern __at(0x0085) __sfr TRISA;
869 
870 typedef struct
871   {
872   unsigned TRISA0               : 1;
873   unsigned TRISA1               : 1;
874   unsigned TRISA2               : 1;
875   unsigned TRISA3               : 1;
876   unsigned TRISA4               : 1;
877   unsigned TRISA5               : 1;
878   unsigned TRISA6               : 1;
879   unsigned TRISA7               : 1;
880   } __TRISAbits_t;
881 
882 extern __at(0x0085) volatile __TRISAbits_t TRISAbits;
883 
884 #define _TRISA0                 0x01
885 #define _TRISA1                 0x02
886 #define _TRISA2                 0x04
887 #define _TRISA3                 0x08
888 #define _TRISA4                 0x10
889 #define _TRISA5                 0x20
890 #define _TRISA6                 0x40
891 #define _TRISA7                 0x80
892 
893 //==============================================================================
894 
895 
896 //==============================================================================
897 //        TRISB Bits
898 
899 extern __at(0x0086) __sfr TRISB;
900 
901 typedef struct
902   {
903   unsigned TRISB0               : 1;
904   unsigned TRISB1               : 1;
905   unsigned TRISB2               : 1;
906   unsigned TRISB3               : 1;
907   unsigned TRISB4               : 1;
908   unsigned TRISB5               : 1;
909   unsigned TRISB6               : 1;
910   unsigned TRISB7               : 1;
911   } __TRISBbits_t;
912 
913 extern __at(0x0086) volatile __TRISBbits_t TRISBbits;
914 
915 #define _TRISB0                 0x01
916 #define _TRISB1                 0x02
917 #define _TRISB2                 0x04
918 #define _TRISB3                 0x08
919 #define _TRISB4                 0x10
920 #define _TRISB5                 0x20
921 #define _TRISB6                 0x40
922 #define _TRISB7                 0x80
923 
924 //==============================================================================
925 
926 
927 //==============================================================================
928 //        TRISC Bits
929 
930 extern __at(0x0087) __sfr TRISC;
931 
932 typedef struct
933   {
934   unsigned TRISC0               : 1;
935   unsigned TRISC1               : 1;
936   unsigned TRISC2               : 1;
937   unsigned TRISC3               : 1;
938   unsigned TRISC4               : 1;
939   unsigned TRISC5               : 1;
940   unsigned TRISC6               : 1;
941   unsigned TRISC7               : 1;
942   } __TRISCbits_t;
943 
944 extern __at(0x0087) volatile __TRISCbits_t TRISCbits;
945 
946 #define _TRISC0                 0x01
947 #define _TRISC1                 0x02
948 #define _TRISC2                 0x04
949 #define _TRISC3                 0x08
950 #define _TRISC4                 0x10
951 #define _TRISC5                 0x20
952 #define _TRISC6                 0x40
953 #define _TRISC7                 0x80
954 
955 //==============================================================================
956 
957 
958 //==============================================================================
959 //        TRISE Bits
960 
961 extern __at(0x0089) __sfr TRISE;
962 
963 typedef struct
964   {
965   unsigned                      : 1;
966   unsigned                      : 1;
967   unsigned                      : 1;
968   unsigned TRISE3               : 1;
969   unsigned                      : 1;
970   unsigned                      : 1;
971   unsigned                      : 1;
972   unsigned                      : 1;
973   } __TRISEbits_t;
974 
975 extern __at(0x0089) volatile __TRISEbits_t TRISEbits;
976 
977 #define _TRISE3                 0x08
978 
979 //==============================================================================
980 
981 
982 //==============================================================================
983 //        PIE1 Bits
984 
985 extern __at(0x008C) __sfr PIE1;
986 
987 typedef struct
988   {
989   unsigned TMR1IE               : 1;
990   unsigned TMR2IE               : 1;
991   unsigned CCP1IE               : 1;
992   unsigned SSPIE                : 1;
993   unsigned TXIE                 : 1;
994   unsigned RCIE                 : 1;
995   unsigned ADIE                 : 1;
996   unsigned TMR1GIE              : 1;
997   } __PIE1bits_t;
998 
999 extern __at(0x008C) volatile __PIE1bits_t PIE1bits;
1000 
1001 #define _TMR1IE                 0x01
1002 #define _TMR2IE                 0x02
1003 #define _CCP1IE                 0x04
1004 #define _SSPIE                  0x08
1005 #define _TXIE                   0x10
1006 #define _RCIE                   0x20
1007 #define _ADIE                   0x40
1008 #define _TMR1GIE                0x80
1009 
1010 //==============================================================================
1011 
1012 
1013 //==============================================================================
1014 //        PIE2 Bits
1015 
1016 extern __at(0x008D) __sfr PIE2;
1017 
1018 typedef struct
1019   {
1020   unsigned CCP2IE               : 1;
1021   unsigned                      : 1;
1022   unsigned                      : 1;
1023   unsigned                      : 1;
1024   unsigned                      : 1;
1025   unsigned                      : 1;
1026   unsigned                      : 1;
1027   unsigned                      : 1;
1028   } __PIE2bits_t;
1029 
1030 extern __at(0x008D) volatile __PIE2bits_t PIE2bits;
1031 
1032 #define _CCP2IE                 0x01
1033 
1034 //==============================================================================
1035 
1036 
1037 //==============================================================================
1038 //        PCON Bits
1039 
1040 extern __at(0x008E) __sfr PCON;
1041 
1042 typedef union
1043   {
1044   struct
1045     {
1046     unsigned NOT_BOR            : 1;
1047     unsigned NOT_POR            : 1;
1048     unsigned                    : 1;
1049     unsigned                    : 1;
1050     unsigned                    : 1;
1051     unsigned                    : 1;
1052     unsigned                    : 1;
1053     unsigned                    : 1;
1054     };
1055 
1056   struct
1057     {
1058     unsigned NOT_BO             : 1;
1059     unsigned                    : 1;
1060     unsigned                    : 1;
1061     unsigned                    : 1;
1062     unsigned                    : 1;
1063     unsigned                    : 1;
1064     unsigned                    : 1;
1065     unsigned                    : 1;
1066     };
1067   } __PCONbits_t;
1068 
1069 extern __at(0x008E) volatile __PCONbits_t PCONbits;
1070 
1071 #define _NOT_BOR                0x01
1072 #define _NOT_BO                 0x01
1073 #define _NOT_POR                0x02
1074 
1075 //==============================================================================
1076 
1077 
1078 //==============================================================================
1079 //        T1GCON Bits
1080 
1081 extern __at(0x008F) __sfr T1GCON;
1082 
1083 typedef union
1084   {
1085   struct
1086     {
1087     unsigned T1GSS0             : 1;
1088     unsigned T1GSS1             : 1;
1089     unsigned T1GVAL             : 1;
1090     unsigned T1GGO_NOT_DONE     : 1;
1091     unsigned T1GSPM             : 1;
1092     unsigned T1GTM              : 1;
1093     unsigned T1GPOL             : 1;
1094     unsigned TMR1GE             : 1;
1095     };
1096 
1097   struct
1098     {
1099     unsigned                    : 1;
1100     unsigned                    : 1;
1101     unsigned                    : 1;
1102     unsigned T1G_NOT_DONE       : 1;
1103     unsigned                    : 1;
1104     unsigned                    : 1;
1105     unsigned                    : 1;
1106     unsigned                    : 1;
1107     };
1108 
1109   struct
1110     {
1111     unsigned                    : 1;
1112     unsigned                    : 1;
1113     unsigned                    : 1;
1114     unsigned T1GGO_DONE         : 1;
1115     unsigned                    : 1;
1116     unsigned                    : 1;
1117     unsigned                    : 1;
1118     unsigned                    : 1;
1119     };
1120 
1121   struct
1122     {
1123     unsigned                    : 1;
1124     unsigned                    : 1;
1125     unsigned                    : 1;
1126     unsigned T1GGO              : 1;
1127     unsigned                    : 1;
1128     unsigned                    : 1;
1129     unsigned                    : 1;
1130     unsigned                    : 1;
1131     };
1132 
1133   struct
1134     {
1135     unsigned T1GSS              : 2;
1136     unsigned                    : 6;
1137     };
1138   } __T1GCONbits_t;
1139 
1140 extern __at(0x008F) volatile __T1GCONbits_t T1GCONbits;
1141 
1142 #define _T1GSS0                 0x01
1143 #define _T1GSS1                 0x02
1144 #define _T1GVAL                 0x04
1145 #define _T1GGO_NOT_DONE         0x08
1146 #define _T1G_NOT_DONE           0x08
1147 #define _T1GGO_DONE             0x08
1148 #define _T1GGO                  0x08
1149 #define _T1GSPM                 0x10
1150 #define _T1GTM                  0x20
1151 #define _T1GPOL                 0x40
1152 #define _TMR1GE                 0x80
1153 
1154 //==============================================================================
1155 
1156 
1157 //==============================================================================
1158 //        OSCCON Bits
1159 
1160 extern __at(0x0090) __sfr OSCCON;
1161 
1162 typedef union
1163   {
1164   struct
1165     {
1166     unsigned                    : 1;
1167     unsigned                    : 1;
1168     unsigned ICSS               : 1;
1169     unsigned ICSL               : 1;
1170     unsigned IRCF0              : 1;
1171     unsigned IRCF1              : 1;
1172     unsigned                    : 1;
1173     unsigned                    : 1;
1174     };
1175 
1176   struct
1177     {
1178     unsigned                    : 4;
1179     unsigned IRCF               : 2;
1180     unsigned                    : 2;
1181     };
1182   } __OSCCONbits_t;
1183 
1184 extern __at(0x0090) volatile __OSCCONbits_t OSCCONbits;
1185 
1186 #define _ICSS                   0x04
1187 #define _ICSL                   0x08
1188 #define _IRCF0                  0x10
1189 #define _IRCF1                  0x20
1190 
1191 //==============================================================================
1192 
1193 
1194 //==============================================================================
1195 //        OSCTUNE Bits
1196 
1197 extern __at(0x0091) __sfr OSCTUNE;
1198 
1199 typedef union
1200   {
1201   struct
1202     {
1203     unsigned TUN0               : 1;
1204     unsigned TUN1               : 1;
1205     unsigned TUN2               : 1;
1206     unsigned TUN3               : 1;
1207     unsigned TUN4               : 1;
1208     unsigned TUN5               : 1;
1209     unsigned                    : 1;
1210     unsigned                    : 1;
1211     };
1212 
1213   struct
1214     {
1215     unsigned TUN                : 6;
1216     unsigned                    : 2;
1217     };
1218   } __OSCTUNEbits_t;
1219 
1220 extern __at(0x0091) volatile __OSCTUNEbits_t OSCTUNEbits;
1221 
1222 #define _TUN0                   0x01
1223 #define _TUN1                   0x02
1224 #define _TUN2                   0x04
1225 #define _TUN3                   0x08
1226 #define _TUN4                   0x10
1227 #define _TUN5                   0x20
1228 
1229 //==============================================================================
1230 
1231 extern __at(0x0092) __sfr PR2;
1232 extern __at(0x0093) __sfr SSPADD;
1233 extern __at(0x0093) __sfr SSPMSK;
1234 
1235 //==============================================================================
1236 //        SSPSTAT Bits
1237 
1238 extern __at(0x0094) __sfr SSPSTAT;
1239 
1240 typedef union
1241   {
1242   struct
1243     {
1244     unsigned BF                 : 1;
1245     unsigned UA                 : 1;
1246     unsigned R_NOT_W            : 1;
1247     unsigned S                  : 1;
1248     unsigned P                  : 1;
1249     unsigned D_NOT_A            : 1;
1250     unsigned CKE                : 1;
1251     unsigned SMP                : 1;
1252     };
1253 
1254   struct
1255     {
1256     unsigned                    : 1;
1257     unsigned                    : 1;
1258     unsigned R                  : 1;
1259     unsigned I2C_START          : 1;
1260     unsigned I2C_STOP           : 1;
1261     unsigned D                  : 1;
1262     unsigned                    : 1;
1263     unsigned                    : 1;
1264     };
1265 
1266   struct
1267     {
1268     unsigned                    : 1;
1269     unsigned                    : 1;
1270     unsigned I2C_READ           : 1;
1271     unsigned                    : 1;
1272     unsigned                    : 1;
1273     unsigned I2C_DATA           : 1;
1274     unsigned                    : 1;
1275     unsigned                    : 1;
1276     };
1277 
1278   struct
1279     {
1280     unsigned                    : 1;
1281     unsigned                    : 1;
1282     unsigned NOT_W              : 1;
1283     unsigned                    : 1;
1284     unsigned                    : 1;
1285     unsigned NOT_A              : 1;
1286     unsigned                    : 1;
1287     unsigned                    : 1;
1288     };
1289 
1290   struct
1291     {
1292     unsigned                    : 1;
1293     unsigned                    : 1;
1294     unsigned NOT_WRITE          : 1;
1295     unsigned                    : 1;
1296     unsigned                    : 1;
1297     unsigned NOT_ADDRESS        : 1;
1298     unsigned                    : 1;
1299     unsigned                    : 1;
1300     };
1301 
1302   struct
1303     {
1304     unsigned                    : 1;
1305     unsigned                    : 1;
1306     unsigned R_W                : 1;
1307     unsigned                    : 1;
1308     unsigned                    : 1;
1309     unsigned D_A                : 1;
1310     unsigned                    : 1;
1311     unsigned                    : 1;
1312     };
1313 
1314   struct
1315     {
1316     unsigned                    : 1;
1317     unsigned                    : 1;
1318     unsigned READ_WRITE         : 1;
1319     unsigned                    : 1;
1320     unsigned                    : 1;
1321     unsigned DATA_ADDRESS       : 1;
1322     unsigned                    : 1;
1323     unsigned                    : 1;
1324     };
1325   } __SSPSTATbits_t;
1326 
1327 extern __at(0x0094) volatile __SSPSTATbits_t SSPSTATbits;
1328 
1329 #define _BF                     0x01
1330 #define _UA                     0x02
1331 #define _R_NOT_W                0x04
1332 #define _R                      0x04
1333 #define _I2C_READ               0x04
1334 #define _NOT_W                  0x04
1335 #define _NOT_WRITE              0x04
1336 #define _R_W                    0x04
1337 #define _READ_WRITE             0x04
1338 #define _S                      0x08
1339 #define _I2C_START              0x08
1340 #define _P                      0x10
1341 #define _I2C_STOP               0x10
1342 #define _D_NOT_A                0x20
1343 #define _D                      0x20
1344 #define _I2C_DATA               0x20
1345 #define _NOT_A                  0x20
1346 #define _NOT_ADDRESS            0x20
1347 #define _D_A                    0x20
1348 #define _DATA_ADDRESS           0x20
1349 #define _CKE                    0x40
1350 #define _SMP                    0x80
1351 
1352 //==============================================================================
1353 
1354 
1355 //==============================================================================
1356 //        WPU Bits
1357 
1358 extern __at(0x0095) __sfr WPU;
1359 
1360 typedef union
1361   {
1362   struct
1363     {
1364     unsigned WPUB0              : 1;
1365     unsigned WPUB1              : 1;
1366     unsigned WPUB2              : 1;
1367     unsigned WPUB3              : 1;
1368     unsigned WPUB4              : 1;
1369     unsigned WPUB5              : 1;
1370     unsigned WPUB6              : 1;
1371     unsigned WPUB7              : 1;
1372     };
1373 
1374   struct
1375     {
1376     unsigned WPU0               : 1;
1377     unsigned WPU1               : 1;
1378     unsigned WPU2               : 1;
1379     unsigned WPU3               : 1;
1380     unsigned WPU4               : 1;
1381     unsigned WPU5               : 1;
1382     unsigned WPU6               : 1;
1383     unsigned WPU7               : 1;
1384     };
1385   } __WPUbits_t;
1386 
1387 extern __at(0x0095) volatile __WPUbits_t WPUbits;
1388 
1389 #define _WPUB0                  0x01
1390 #define _WPU0                   0x01
1391 #define _WPUB1                  0x02
1392 #define _WPU1                   0x02
1393 #define _WPUB2                  0x04
1394 #define _WPU2                   0x04
1395 #define _WPUB3                  0x08
1396 #define _WPU3                   0x08
1397 #define _WPUB4                  0x10
1398 #define _WPU4                   0x10
1399 #define _WPUB5                  0x20
1400 #define _WPU5                   0x20
1401 #define _WPUB6                  0x40
1402 #define _WPU6                   0x40
1403 #define _WPUB7                  0x80
1404 #define _WPU7                   0x80
1405 
1406 //==============================================================================
1407 
1408 
1409 //==============================================================================
1410 //        WPUB Bits
1411 
1412 extern __at(0x0095) __sfr WPUB;
1413 
1414 typedef union
1415   {
1416   struct
1417     {
1418     unsigned WPUB0              : 1;
1419     unsigned WPUB1              : 1;
1420     unsigned WPUB2              : 1;
1421     unsigned WPUB3              : 1;
1422     unsigned WPUB4              : 1;
1423     unsigned WPUB5              : 1;
1424     unsigned WPUB6              : 1;
1425     unsigned WPUB7              : 1;
1426     };
1427 
1428   struct
1429     {
1430     unsigned WPU0               : 1;
1431     unsigned WPU1               : 1;
1432     unsigned WPU2               : 1;
1433     unsigned WPU3               : 1;
1434     unsigned WPU4               : 1;
1435     unsigned WPU5               : 1;
1436     unsigned WPU6               : 1;
1437     unsigned WPU7               : 1;
1438     };
1439   } __WPUBbits_t;
1440 
1441 extern __at(0x0095) volatile __WPUBbits_t WPUBbits;
1442 
1443 #define _WPUB_WPUB0             0x01
1444 #define _WPUB_WPU0              0x01
1445 #define _WPUB_WPUB1             0x02
1446 #define _WPUB_WPU1              0x02
1447 #define _WPUB_WPUB2             0x04
1448 #define _WPUB_WPU2              0x04
1449 #define _WPUB_WPUB3             0x08
1450 #define _WPUB_WPU3              0x08
1451 #define _WPUB_WPUB4             0x10
1452 #define _WPUB_WPU4              0x10
1453 #define _WPUB_WPUB5             0x20
1454 #define _WPUB_WPU5              0x20
1455 #define _WPUB_WPUB6             0x40
1456 #define _WPUB_WPU6              0x40
1457 #define _WPUB_WPUB7             0x80
1458 #define _WPUB_WPU7              0x80
1459 
1460 //==============================================================================
1461 
1462 
1463 //==============================================================================
1464 //        IOC Bits
1465 
1466 extern __at(0x0096) __sfr IOC;
1467 
1468 typedef union
1469   {
1470   struct
1471     {
1472     unsigned IOCB0              : 1;
1473     unsigned IOCB1              : 1;
1474     unsigned IOCB2              : 1;
1475     unsigned IOCB3              : 1;
1476     unsigned IOCB4              : 1;
1477     unsigned IOCB5              : 1;
1478     unsigned IOCB6              : 1;
1479     unsigned IOCB7              : 1;
1480     };
1481 
1482   struct
1483     {
1484     unsigned IOC0               : 1;
1485     unsigned IOC1               : 1;
1486     unsigned IOC2               : 1;
1487     unsigned IOC3               : 1;
1488     unsigned IOC4               : 1;
1489     unsigned IOC5               : 1;
1490     unsigned IOC6               : 1;
1491     unsigned IOC7               : 1;
1492     };
1493   } __IOCbits_t;
1494 
1495 extern __at(0x0096) volatile __IOCbits_t IOCbits;
1496 
1497 #define _IOCB0                  0x01
1498 #define _IOC0                   0x01
1499 #define _IOCB1                  0x02
1500 #define _IOC1                   0x02
1501 #define _IOCB2                  0x04
1502 #define _IOC2                   0x04
1503 #define _IOCB3                  0x08
1504 #define _IOC3                   0x08
1505 #define _IOCB4                  0x10
1506 #define _IOC4                   0x10
1507 #define _IOCB5                  0x20
1508 #define _IOC5                   0x20
1509 #define _IOCB6                  0x40
1510 #define _IOC6                   0x40
1511 #define _IOCB7                  0x80
1512 #define _IOC7                   0x80
1513 
1514 //==============================================================================
1515 
1516 
1517 //==============================================================================
1518 //        IOCB Bits
1519 
1520 extern __at(0x0096) __sfr IOCB;
1521 
1522 typedef union
1523   {
1524   struct
1525     {
1526     unsigned IOCB0              : 1;
1527     unsigned IOCB1              : 1;
1528     unsigned IOCB2              : 1;
1529     unsigned IOCB3              : 1;
1530     unsigned IOCB4              : 1;
1531     unsigned IOCB5              : 1;
1532     unsigned IOCB6              : 1;
1533     unsigned IOCB7              : 1;
1534     };
1535 
1536   struct
1537     {
1538     unsigned IOC0               : 1;
1539     unsigned IOC1               : 1;
1540     unsigned IOC2               : 1;
1541     unsigned IOC3               : 1;
1542     unsigned IOC4               : 1;
1543     unsigned IOC5               : 1;
1544     unsigned IOC6               : 1;
1545     unsigned IOC7               : 1;
1546     };
1547   } __IOCBbits_t;
1548 
1549 extern __at(0x0096) volatile __IOCBbits_t IOCBbits;
1550 
1551 #define _IOCB_IOCB0             0x01
1552 #define _IOCB_IOC0              0x01
1553 #define _IOCB_IOCB1             0x02
1554 #define _IOCB_IOC1              0x02
1555 #define _IOCB_IOCB2             0x04
1556 #define _IOCB_IOC2              0x04
1557 #define _IOCB_IOCB3             0x08
1558 #define _IOCB_IOC3              0x08
1559 #define _IOCB_IOCB4             0x10
1560 #define _IOCB_IOC4              0x10
1561 #define _IOCB_IOCB5             0x20
1562 #define _IOCB_IOC5              0x20
1563 #define _IOCB_IOCB6             0x40
1564 #define _IOCB_IOC6              0x40
1565 #define _IOCB_IOCB7             0x80
1566 #define _IOCB_IOC7              0x80
1567 
1568 //==============================================================================
1569 
1570 
1571 //==============================================================================
1572 //        TXSTA Bits
1573 
1574 extern __at(0x0098) __sfr TXSTA;
1575 
1576 typedef union
1577   {
1578   struct
1579     {
1580     unsigned TX9D               : 1;
1581     unsigned TRMT               : 1;
1582     unsigned BRGH               : 1;
1583     unsigned                    : 1;
1584     unsigned SYNC               : 1;
1585     unsigned TXEN               : 1;
1586     unsigned TX9                : 1;
1587     unsigned CSRC               : 1;
1588     };
1589 
1590   struct
1591     {
1592     unsigned TXD8               : 1;
1593     unsigned                    : 1;
1594     unsigned                    : 1;
1595     unsigned                    : 1;
1596     unsigned                    : 1;
1597     unsigned                    : 1;
1598     unsigned NOT_TX8            : 1;
1599     unsigned                    : 1;
1600     };
1601 
1602   struct
1603     {
1604     unsigned                    : 1;
1605     unsigned                    : 1;
1606     unsigned                    : 1;
1607     unsigned                    : 1;
1608     unsigned                    : 1;
1609     unsigned                    : 1;
1610     unsigned TX8_9              : 1;
1611     unsigned                    : 1;
1612     };
1613   } __TXSTAbits_t;
1614 
1615 extern __at(0x0098) volatile __TXSTAbits_t TXSTAbits;
1616 
1617 #define _TX9D                   0x01
1618 #define _TXD8                   0x01
1619 #define _TRMT                   0x02
1620 #define _BRGH                   0x04
1621 #define _SYNC                   0x10
1622 #define _TXEN                   0x20
1623 #define _TX9                    0x40
1624 #define _NOT_TX8                0x40
1625 #define _TX8_9                  0x40
1626 #define _CSRC                   0x80
1627 
1628 //==============================================================================
1629 
1630 
1631 //==============================================================================
1632 //        SPBRG Bits
1633 
1634 extern __at(0x0099) __sfr SPBRG;
1635 
1636 typedef struct
1637   {
1638   unsigned BRG0                 : 1;
1639   unsigned BRG1                 : 1;
1640   unsigned BRG2                 : 1;
1641   unsigned BRG3                 : 1;
1642   unsigned BRG4                 : 1;
1643   unsigned BRG5                 : 1;
1644   unsigned BRG6                 : 1;
1645   unsigned BRG7                 : 1;
1646   } __SPBRGbits_t;
1647 
1648 extern __at(0x0099) volatile __SPBRGbits_t SPBRGbits;
1649 
1650 #define _BRG0                   0x01
1651 #define _BRG1                   0x02
1652 #define _BRG2                   0x04
1653 #define _BRG3                   0x08
1654 #define _BRG4                   0x10
1655 #define _BRG5                   0x20
1656 #define _BRG6                   0x40
1657 #define _BRG7                   0x80
1658 
1659 //==============================================================================
1660 
1661 
1662 //==============================================================================
1663 //        APFCON Bits
1664 
1665 extern __at(0x009C) __sfr APFCON;
1666 
1667 typedef struct
1668   {
1669   unsigned CCP2SEL              : 1;
1670   unsigned SSSEL                : 1;
1671   unsigned                      : 1;
1672   unsigned                      : 1;
1673   unsigned                      : 1;
1674   unsigned                      : 1;
1675   unsigned                      : 1;
1676   unsigned                      : 1;
1677   } __APFCONbits_t;
1678 
1679 extern __at(0x009C) volatile __APFCONbits_t APFCONbits;
1680 
1681 #define _CCP2SEL                0x01
1682 #define _SSSEL                  0x02
1683 
1684 //==============================================================================
1685 
1686 
1687 //==============================================================================
1688 //        FVRCON Bits
1689 
1690 extern __at(0x009D) __sfr FVRCON;
1691 
1692 typedef union
1693   {
1694   struct
1695     {
1696     unsigned ADFVR0             : 1;
1697     unsigned ADFVR1             : 1;
1698     unsigned                    : 1;
1699     unsigned                    : 1;
1700     unsigned                    : 1;
1701     unsigned                    : 1;
1702     unsigned FVREN              : 1;
1703     unsigned FVRRDY             : 1;
1704     };
1705 
1706   struct
1707     {
1708     unsigned                    : 1;
1709     unsigned                    : 1;
1710     unsigned                    : 1;
1711     unsigned                    : 1;
1712     unsigned                    : 1;
1713     unsigned                    : 1;
1714     unsigned                    : 1;
1715     unsigned FVRST              : 1;
1716     };
1717 
1718   struct
1719     {
1720     unsigned ADFVR              : 2;
1721     unsigned                    : 6;
1722     };
1723   } __FVRCONbits_t;
1724 
1725 extern __at(0x009D) volatile __FVRCONbits_t FVRCONbits;
1726 
1727 #define _ADFVR0                 0x01
1728 #define _ADFVR1                 0x02
1729 #define _FVREN                  0x40
1730 #define _FVRRDY                 0x80
1731 #define _FVRST                  0x80
1732 
1733 //==============================================================================
1734 
1735 
1736 //==============================================================================
1737 //        ADCON1 Bits
1738 
1739 extern __at(0x009F) __sfr ADCON1;
1740 
1741 typedef union
1742   {
1743   struct
1744     {
1745     unsigned ADREF0             : 1;
1746     unsigned ADREF1             : 1;
1747     unsigned                    : 1;
1748     unsigned                    : 1;
1749     unsigned ADCS0              : 1;
1750     unsigned ADCS1              : 1;
1751     unsigned ADCS2              : 1;
1752     unsigned                    : 1;
1753     };
1754 
1755   struct
1756     {
1757     unsigned ADREF              : 2;
1758     unsigned                    : 6;
1759     };
1760 
1761   struct
1762     {
1763     unsigned                    : 4;
1764     unsigned ADCS               : 3;
1765     unsigned                    : 1;
1766     };
1767   } __ADCON1bits_t;
1768 
1769 extern __at(0x009F) volatile __ADCON1bits_t ADCON1bits;
1770 
1771 #define _ADREF0                 0x01
1772 #define _ADREF1                 0x02
1773 #define _ADCS0                  0x10
1774 #define _ADCS1                  0x20
1775 #define _ADCS2                  0x40
1776 
1777 //==============================================================================
1778 
1779 
1780 //==============================================================================
1781 //        CPSCON0 Bits
1782 
1783 extern __at(0x0108) __sfr CPSCON0;
1784 
1785 typedef union
1786   {
1787   struct
1788     {
1789     unsigned T0XCS              : 1;
1790     unsigned CPSOUT             : 1;
1791     unsigned CPSRNG0            : 1;
1792     unsigned CPSRNG1            : 1;
1793     unsigned                    : 1;
1794     unsigned                    : 1;
1795     unsigned                    : 1;
1796     unsigned CPSON              : 1;
1797     };
1798 
1799   struct
1800     {
1801     unsigned                    : 2;
1802     unsigned CPSRNG             : 2;
1803     unsigned                    : 4;
1804     };
1805   } __CPSCON0bits_t;
1806 
1807 extern __at(0x0108) volatile __CPSCON0bits_t CPSCON0bits;
1808 
1809 #define _T0XCS                  0x01
1810 #define _CPSOUT                 0x02
1811 #define _CPSRNG0                0x04
1812 #define _CPSRNG1                0x08
1813 #define _CPSON                  0x80
1814 
1815 //==============================================================================
1816 
1817 
1818 //==============================================================================
1819 //        CPSCON1 Bits
1820 
1821 extern __at(0x0109) __sfr CPSCON1;
1822 
1823 typedef union
1824   {
1825   struct
1826     {
1827     unsigned CPSCH0             : 1;
1828     unsigned CPSCH1             : 1;
1829     unsigned CPSCH2             : 1;
1830     unsigned CPSCH3             : 1;
1831     unsigned                    : 1;
1832     unsigned                    : 1;
1833     unsigned                    : 1;
1834     unsigned                    : 1;
1835     };
1836 
1837   struct
1838     {
1839     unsigned CPSCH              : 4;
1840     unsigned                    : 4;
1841     };
1842   } __CPSCON1bits_t;
1843 
1844 extern __at(0x0109) volatile __CPSCON1bits_t CPSCON1bits;
1845 
1846 #define _CPSCH0                 0x01
1847 #define _CPSCH1                 0x02
1848 #define _CPSCH2                 0x04
1849 #define _CPSCH3                 0x08
1850 
1851 //==============================================================================
1852 
1853 extern __at(0x010C) __sfr PMDATA;
1854 extern __at(0x010C) __sfr PMDATL;
1855 extern __at(0x010D) __sfr PMADR;
1856 extern __at(0x010D) __sfr PMADRL;
1857 extern __at(0x010E) __sfr PMDATH;
1858 extern __at(0x010F) __sfr PMADRH;
1859 
1860 //==============================================================================
1861 //        ANSELA Bits
1862 
1863 extern __at(0x0185) __sfr ANSELA;
1864 
1865 typedef union
1866   {
1867   struct
1868     {
1869     unsigned ANSA0              : 1;
1870     unsigned ANSA1              : 1;
1871     unsigned ANSA2              : 1;
1872     unsigned ANSA3              : 1;
1873     unsigned ANSA4              : 1;
1874     unsigned ANSA5              : 1;
1875     unsigned                    : 1;
1876     unsigned                    : 1;
1877     };
1878 
1879   struct
1880     {
1881     unsigned ANSA               : 6;
1882     unsigned                    : 2;
1883     };
1884   } __ANSELAbits_t;
1885 
1886 extern __at(0x0185) volatile __ANSELAbits_t ANSELAbits;
1887 
1888 #define _ANSA0                  0x01
1889 #define _ANSA1                  0x02
1890 #define _ANSA2                  0x04
1891 #define _ANSA3                  0x08
1892 #define _ANSA4                  0x10
1893 #define _ANSA5                  0x20
1894 
1895 //==============================================================================
1896 
1897 
1898 //==============================================================================
1899 //        ANSELB Bits
1900 
1901 extern __at(0x0186) __sfr ANSELB;
1902 
1903 typedef union
1904   {
1905   struct
1906     {
1907     unsigned ANSB0              : 1;
1908     unsigned ANSB1              : 1;
1909     unsigned ANSB2              : 1;
1910     unsigned ANSB3              : 1;
1911     unsigned ANSB4              : 1;
1912     unsigned ANSB5              : 1;
1913     unsigned                    : 1;
1914     unsigned                    : 1;
1915     };
1916 
1917   struct
1918     {
1919     unsigned ANSB               : 6;
1920     unsigned                    : 2;
1921     };
1922   } __ANSELBbits_t;
1923 
1924 extern __at(0x0186) volatile __ANSELBbits_t ANSELBbits;
1925 
1926 #define _ANSB0                  0x01
1927 #define _ANSB1                  0x02
1928 #define _ANSB2                  0x04
1929 #define _ANSB3                  0x08
1930 #define _ANSB4                  0x10
1931 #define _ANSB5                  0x20
1932 
1933 //==============================================================================
1934 
1935 
1936 //==============================================================================
1937 //        PMCON1 Bits
1938 
1939 extern __at(0x018C) __sfr PMCON1;
1940 
1941 typedef union
1942   {
1943   struct
1944     {
1945     unsigned RD                 : 1;
1946     unsigned                    : 1;
1947     unsigned                    : 1;
1948     unsigned                    : 1;
1949     unsigned                    : 1;
1950     unsigned                    : 1;
1951     unsigned                    : 1;
1952     unsigned                    : 1;
1953     };
1954 
1955   struct
1956     {
1957     unsigned PMRD               : 1;
1958     unsigned                    : 1;
1959     unsigned                    : 1;
1960     unsigned                    : 1;
1961     unsigned                    : 1;
1962     unsigned                    : 1;
1963     unsigned                    : 1;
1964     unsigned                    : 1;
1965     };
1966   } __PMCON1bits_t;
1967 
1968 extern __at(0x018C) volatile __PMCON1bits_t PMCON1bits;
1969 
1970 #define _RD                     0x01
1971 #define _PMRD                   0x01
1972 
1973 //==============================================================================
1974 
1975 
1976 //==============================================================================
1977 //
1978 //        Configuration Bits
1979 //
1980 //==============================================================================
1981 
1982 #define _CONFIG1                0x2007
1983 #define _CONFIG2                0x2008
1984 
1985 //----------------------------- CONFIG1 Options -------------------------------
1986 
1987 #define _FOSC_LP                0x3FF8  // LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1988 #define _LP_OSC                 0x3FF8  // LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1989 #define _FOSC_XT                0x3FF9  // XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1990 #define _XT_OSC                 0x3FF9  // XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1991 #define _FOSC_HS                0x3FFA  // HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1992 #define _HS_OSC                 0x3FFA  // HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
1993 #define _FOSC_EC                0x3FFB  // EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN.
1994 #define _EC_OSC                 0x3FFB  // EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN.
1995 #define _FOSC_INTOSCIO          0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
1996 #define _INTRC_OSC_NOCLKOUT     0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
1997 #define _INTOSCIO               0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
1998 #define _FOSC_INTOSCCLK         0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
1999 #define _INTRC_OSC_CLKOUT       0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2000 #define _INTOSC                 0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2001 #define _FOSC_EXTRCIO           0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2002 #define _EXTRC_OSC_NOCLKOUT     0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2003 #define _EXTRCIO                0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2004 #define _FOSC_EXTRCCLK          0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2005 #define _EXTRC_OSC_CLKOUT       0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2006 #define _EXTRC                  0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2007 #define _WDTE_OFF               0x3FF7  // WDT disabled and can be enabled by SWDTEN bit of the WDTCON register.
2008 #define _WDT_OFF                0x3FF7  // WDT disabled and can be enabled by SWDTEN bit of the WDTCON register.
2009 #define _WDTE_ON                0x3FFF  // WDT enabled.
2010 #define _WDT_ON                 0x3FFF  // WDT enabled.
2011 #define _PWRTE_ON               0x3FEF  // PWRT enabled.
2012 #define _PWRT_EN                0x3FEF  // PWRT enabled.
2013 #define _PWRTE_OFF              0x3FFF  // PWRT disabled.
2014 #define _PWRT_DIS               0x3FFF  // PWRT disabled.
2015 #define _MCLRE_OFF              0x3FDF  // RE3/MCLR pin function is digital input, MCLR internally tied to VDD.
2016 #define _MCLR_DIS               0x3FDF  // RE3/MCLR pin function is digital input, MCLR internally tied to VDD.
2017 #define _MCLRE_ON               0x3FFF  // RE3/MCLR pin function is MCLR.
2018 #define _MCLR_EN                0x3FFF  // RE3/MCLR pin function is MCLR.
2019 #define _CP_ON                  0x3FBF  // Program memory code protection is enabled.
2020 #define _CP_OFF                 0x3FFF  // Program memory code protection is disabled.
2021 #define _BOREN_OFF              0x3CFF  // BOR disabled.
2022 #define _BOR_OFF                0x3CFF  // BOR disabled.
2023 #define _BOREN_NSLEEP           0x3EFF  // BOR enabled during operation and disabled in Sleep.
2024 #define _BOR_NSLEEP             0x3EFF  // BOR enabled during operation and disabled in Sleep.
2025 #define _BOREN_ON               0x3FFF  // BOR enabled.
2026 #define _BOR_ON                 0x3FFF  // BOR enabled.
2027 #define _BORV_25                0x3BFF  // Brown-out Reset Voltage (VBOR) set to 2.5 V nominal.
2028 #define _BORV_2_5               0x3BFF  // Brown-out Reset Voltage (VBOR) set to 2.5 V nominal.
2029 #define _BORV_19                0x3FFF  // Brown-out Reset Voltage (VBOR) set to 1.9 V nominal.
2030 #define _BORV_1_9               0x3FFF  // Brown-out Reset Voltage (VBOR) set to 1.9 V nominal.
2031 #define _PLLEN_OFF              0x2FFF  // INTOSC Frequency is 500 kHz.
2032 #define _PLL_DIS                0x2FFF  // INTOSC Frequency is 500 kHz.
2033 #define _PLLEN_ON               0x3FFF  // INTOSC Frequency is 16MHz (32x).
2034 #define _PLL_EN                 0x3FFF  // INTOSC Frequency is 16MHz (32x).
2035 #define _DEBUG_ON               0x1FFF  // In-circuit debugger enabled, RB6/ICSPCLK and RB7/ICSPDAT are dedicated to the debugger.
2036 #define _DEBUG_OFF              0x3FFF  // In-circuit debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins.
2037 
2038 //==============================================================================
2039 
2040 #define _DEVID1                 0x2006
2041 
2042 #define _IDLOC0                 0x2000
2043 #define _IDLOC1                 0x2001
2044 #define _IDLOC2                 0x2002
2045 #define _IDLOC3                 0x2003
2046 
2047 //==============================================================================
2048 
2049 #ifndef NO_BIT_DEFINES
2050 
2051 #define ADON                    ADCON0bits.ADON                 // bit 0
2052 #define GO_NOT_DONE             ADCON0bits.GO_NOT_DONE          // bit 1, shadows bit in ADCON0bits
2053 #define GO                      ADCON0bits.GO                   // bit 1, shadows bit in ADCON0bits
2054 #define NOT_DONE                ADCON0bits.NOT_DONE             // bit 1, shadows bit in ADCON0bits
2055 #define GO_DONE                 ADCON0bits.GO_DONE              // bit 1, shadows bit in ADCON0bits
2056 #define CHS0                    ADCON0bits.CHS0                 // bit 2
2057 #define CHS1                    ADCON0bits.CHS1                 // bit 3
2058 #define CHS2                    ADCON0bits.CHS2                 // bit 4
2059 #define CHS3                    ADCON0bits.CHS3                 // bit 5
2060 
2061 #define ADREF0                  ADCON1bits.ADREF0               // bit 0
2062 #define ADREF1                  ADCON1bits.ADREF1               // bit 1
2063 #define ADCS0                   ADCON1bits.ADCS0                // bit 4
2064 #define ADCS1                   ADCON1bits.ADCS1                // bit 5
2065 #define ADCS2                   ADCON1bits.ADCS2                // bit 6
2066 
2067 #define ANSA0                   ANSELAbits.ANSA0                // bit 0
2068 #define ANSA1                   ANSELAbits.ANSA1                // bit 1
2069 #define ANSA2                   ANSELAbits.ANSA2                // bit 2
2070 #define ANSA3                   ANSELAbits.ANSA3                // bit 3
2071 #define ANSA4                   ANSELAbits.ANSA4                // bit 4
2072 #define ANSA5                   ANSELAbits.ANSA5                // bit 5
2073 
2074 #define ANSB0                   ANSELBbits.ANSB0                // bit 0
2075 #define ANSB1                   ANSELBbits.ANSB1                // bit 1
2076 #define ANSB2                   ANSELBbits.ANSB2                // bit 2
2077 #define ANSB3                   ANSELBbits.ANSB3                // bit 3
2078 #define ANSB4                   ANSELBbits.ANSB4                // bit 4
2079 #define ANSB5                   ANSELBbits.ANSB5                // bit 5
2080 
2081 #define CCP2SEL                 APFCONbits.CCP2SEL              // bit 0
2082 #define SSSEL                   APFCONbits.SSSEL                // bit 1
2083 
2084 #define CCP1M0                  CCP1CONbits.CCP1M0              // bit 0
2085 #define CCP1M1                  CCP1CONbits.CCP1M1              // bit 1
2086 #define CCP1M2                  CCP1CONbits.CCP1M2              // bit 2
2087 #define CCP1M3                  CCP1CONbits.CCP1M3              // bit 3
2088 #define DC1B0                   CCP1CONbits.DC1B0               // bit 4, shadows bit in CCP1CONbits
2089 #define CCP1Y                   CCP1CONbits.CCP1Y               // bit 4, shadows bit in CCP1CONbits
2090 #define DC1B1                   CCP1CONbits.DC1B1               // bit 5, shadows bit in CCP1CONbits
2091 #define CCP1X                   CCP1CONbits.CCP1X               // bit 5, shadows bit in CCP1CONbits
2092 
2093 #define CCP2M0                  CCP2CONbits.CCP2M0              // bit 0
2094 #define CCP2M1                  CCP2CONbits.CCP2M1              // bit 1
2095 #define CCP2M2                  CCP2CONbits.CCP2M2              // bit 2
2096 #define CCP2M3                  CCP2CONbits.CCP2M3              // bit 3
2097 #define DC2B0                   CCP2CONbits.DC2B0               // bit 4, shadows bit in CCP2CONbits
2098 #define CCP2Y                   CCP2CONbits.CCP2Y               // bit 4, shadows bit in CCP2CONbits
2099 #define DC2B1                   CCP2CONbits.DC2B1               // bit 5, shadows bit in CCP2CONbits
2100 #define CCP2X                   CCP2CONbits.CCP2X               // bit 5, shadows bit in CCP2CONbits
2101 
2102 #define T0XCS                   CPSCON0bits.T0XCS               // bit 0
2103 #define CPSOUT                  CPSCON0bits.CPSOUT              // bit 1
2104 #define CPSRNG0                 CPSCON0bits.CPSRNG0             // bit 2
2105 #define CPSRNG1                 CPSCON0bits.CPSRNG1             // bit 3
2106 #define CPSON                   CPSCON0bits.CPSON               // bit 7
2107 
2108 #define CPSCH0                  CPSCON1bits.CPSCH0              // bit 0
2109 #define CPSCH1                  CPSCON1bits.CPSCH1              // bit 1
2110 #define CPSCH2                  CPSCON1bits.CPSCH2              // bit 2
2111 #define CPSCH3                  CPSCON1bits.CPSCH3              // bit 3
2112 
2113 #define ADFVR0                  FVRCONbits.ADFVR0               // bit 0
2114 #define ADFVR1                  FVRCONbits.ADFVR1               // bit 1
2115 #define FVREN                   FVRCONbits.FVREN                // bit 6
2116 #define FVRRDY                  FVRCONbits.FVRRDY               // bit 7, shadows bit in FVRCONbits
2117 #define FVRST                   FVRCONbits.FVRST                // bit 7, shadows bit in FVRCONbits
2118 
2119 #define RBIF                    INTCONbits.RBIF                 // bit 0, shadows bit in INTCONbits
2120 #define IOCIF                   INTCONbits.IOCIF                // bit 0, shadows bit in INTCONbits
2121 #define INTF                    INTCONbits.INTF                 // bit 1
2122 #define T0IF                    INTCONbits.T0IF                 // bit 2, shadows bit in INTCONbits
2123 #define TMR0IF                  INTCONbits.TMR0IF               // bit 2, shadows bit in INTCONbits
2124 #define RBIE                    INTCONbits.RBIE                 // bit 3, shadows bit in INTCONbits
2125 #define IOCIE                   INTCONbits.IOCIE                // bit 3, shadows bit in INTCONbits
2126 #define INTE                    INTCONbits.INTE                 // bit 4
2127 #define T0IE                    INTCONbits.T0IE                 // bit 5, shadows bit in INTCONbits
2128 #define TMR0IE                  INTCONbits.TMR0IE               // bit 5, shadows bit in INTCONbits
2129 #define PEIE                    INTCONbits.PEIE                 // bit 6
2130 #define GIE                     INTCONbits.GIE                  // bit 7
2131 
2132 #define IOCB0                   IOCbits.IOCB0                   // bit 0, shadows bit in IOCbits
2133 #define IOC0                    IOCbits.IOC0                    // bit 0, shadows bit in IOCbits
2134 #define IOCB1                   IOCbits.IOCB1                   // bit 1, shadows bit in IOCbits
2135 #define IOC1                    IOCbits.IOC1                    // bit 1, shadows bit in IOCbits
2136 #define IOCB2                   IOCbits.IOCB2                   // bit 2, shadows bit in IOCbits
2137 #define IOC2                    IOCbits.IOC2                    // bit 2, shadows bit in IOCbits
2138 #define IOCB3                   IOCbits.IOCB3                   // bit 3, shadows bit in IOCbits
2139 #define IOC3                    IOCbits.IOC3                    // bit 3, shadows bit in IOCbits
2140 #define IOCB4                   IOCbits.IOCB4                   // bit 4, shadows bit in IOCbits
2141 #define IOC4                    IOCbits.IOC4                    // bit 4, shadows bit in IOCbits
2142 #define IOCB5                   IOCbits.IOCB5                   // bit 5, shadows bit in IOCbits
2143 #define IOC5                    IOCbits.IOC5                    // bit 5, shadows bit in IOCbits
2144 #define IOCB6                   IOCbits.IOCB6                   // bit 6, shadows bit in IOCbits
2145 #define IOC6                    IOCbits.IOC6                    // bit 6, shadows bit in IOCbits
2146 #define IOCB7                   IOCbits.IOCB7                   // bit 7, shadows bit in IOCbits
2147 #define IOC7                    IOCbits.IOC7                    // bit 7, shadows bit in IOCbits
2148 
2149 #define PS0                     OPTION_REGbits.PS0              // bit 0
2150 #define PS1                     OPTION_REGbits.PS1              // bit 1
2151 #define PS2                     OPTION_REGbits.PS2              // bit 2
2152 #define PSA                     OPTION_REGbits.PSA              // bit 3
2153 #define T0SE                    OPTION_REGbits.T0SE             // bit 4
2154 #define T0CS                    OPTION_REGbits.T0CS             // bit 5
2155 #define INTEDG                  OPTION_REGbits.INTEDG           // bit 6
2156 #define NOT_RBPU                OPTION_REGbits.NOT_RBPU         // bit 7
2157 
2158 #define ICSS                    OSCCONbits.ICSS                 // bit 2
2159 #define ICSL                    OSCCONbits.ICSL                 // bit 3
2160 #define IRCF0                   OSCCONbits.IRCF0                // bit 4
2161 #define IRCF1                   OSCCONbits.IRCF1                // bit 5
2162 
2163 #define TUN0                    OSCTUNEbits.TUN0                // bit 0
2164 #define TUN1                    OSCTUNEbits.TUN1                // bit 1
2165 #define TUN2                    OSCTUNEbits.TUN2                // bit 2
2166 #define TUN3                    OSCTUNEbits.TUN3                // bit 3
2167 #define TUN4                    OSCTUNEbits.TUN4                // bit 4
2168 #define TUN5                    OSCTUNEbits.TUN5                // bit 5
2169 
2170 #define NOT_BOR                 PCONbits.NOT_BOR                // bit 0, shadows bit in PCONbits
2171 #define NOT_BO                  PCONbits.NOT_BO                 // bit 0, shadows bit in PCONbits
2172 #define NOT_POR                 PCONbits.NOT_POR                // bit 1
2173 
2174 #define TMR1IE                  PIE1bits.TMR1IE                 // bit 0
2175 #define TMR2IE                  PIE1bits.TMR2IE                 // bit 1
2176 #define CCP1IE                  PIE1bits.CCP1IE                 // bit 2
2177 #define SSPIE                   PIE1bits.SSPIE                  // bit 3
2178 #define TXIE                    PIE1bits.TXIE                   // bit 4
2179 #define RCIE                    PIE1bits.RCIE                   // bit 5
2180 #define ADIE                    PIE1bits.ADIE                   // bit 6
2181 #define TMR1GIE                 PIE1bits.TMR1GIE                // bit 7
2182 
2183 #define CCP2IE                  PIE2bits.CCP2IE                 // bit 0
2184 
2185 #define TMR1IF                  PIR1bits.TMR1IF                 // bit 0
2186 #define TMR2IF                  PIR1bits.TMR2IF                 // bit 1
2187 #define CCP1IF                  PIR1bits.CCP1IF                 // bit 2
2188 #define SSPIF                   PIR1bits.SSPIF                  // bit 3
2189 #define TXIF                    PIR1bits.TXIF                   // bit 4
2190 #define RCIF                    PIR1bits.RCIF                   // bit 5
2191 #define ADIF                    PIR1bits.ADIF                   // bit 6
2192 #define TMR1GIF                 PIR1bits.TMR1GIF                // bit 7
2193 
2194 #define CCP2IF                  PIR2bits.CCP2IF                 // bit 0
2195 
2196 #define RD                      PMCON1bits.RD                   // bit 0, shadows bit in PMCON1bits
2197 #define PMRD                    PMCON1bits.PMRD                 // bit 0, shadows bit in PMCON1bits
2198 
2199 #define RA0                     PORTAbits.RA0                   // bit 0
2200 #define RA1                     PORTAbits.RA1                   // bit 1
2201 #define RA2                     PORTAbits.RA2                   // bit 2
2202 #define RA3                     PORTAbits.RA3                   // bit 3
2203 #define RA4                     PORTAbits.RA4                   // bit 4
2204 #define RA5                     PORTAbits.RA5                   // bit 5
2205 #define RA6                     PORTAbits.RA6                   // bit 6
2206 #define RA7                     PORTAbits.RA7                   // bit 7
2207 
2208 #define RB0                     PORTBbits.RB0                   // bit 0
2209 #define RB1                     PORTBbits.RB1                   // bit 1
2210 #define RB2                     PORTBbits.RB2                   // bit 2
2211 #define RB3                     PORTBbits.RB3                   // bit 3
2212 #define RB4                     PORTBbits.RB4                   // bit 4
2213 #define RB5                     PORTBbits.RB5                   // bit 5
2214 #define RB6                     PORTBbits.RB6                   // bit 6
2215 #define RB7                     PORTBbits.RB7                   // bit 7
2216 
2217 #define RC0                     PORTCbits.RC0                   // bit 0
2218 #define RC1                     PORTCbits.RC1                   // bit 1
2219 #define RC2                     PORTCbits.RC2                   // bit 2
2220 #define RC3                     PORTCbits.RC3                   // bit 3
2221 #define RC4                     PORTCbits.RC4                   // bit 4
2222 #define RC5                     PORTCbits.RC5                   // bit 5
2223 #define RC6                     PORTCbits.RC6                   // bit 6
2224 #define RC7                     PORTCbits.RC7                   // bit 7
2225 
2226 #define RE3                     PORTEbits.RE3                   // bit 3
2227 
2228 #define RX9D                    RCSTAbits.RX9D                  // bit 0, shadows bit in RCSTAbits
2229 #define RCD8                    RCSTAbits.RCD8                  // bit 0, shadows bit in RCSTAbits
2230 #define OERR                    RCSTAbits.OERR                  // bit 1
2231 #define FERR                    RCSTAbits.FERR                  // bit 2
2232 #define ADDEN                   RCSTAbits.ADDEN                 // bit 3
2233 #define CREN                    RCSTAbits.CREN                  // bit 4
2234 #define SREN                    RCSTAbits.SREN                  // bit 5
2235 #define RX9                     RCSTAbits.RX9                   // bit 6, shadows bit in RCSTAbits
2236 #define RC9                     RCSTAbits.RC9                   // bit 6, shadows bit in RCSTAbits
2237 #define NOT_RC8                 RCSTAbits.NOT_RC8               // bit 6, shadows bit in RCSTAbits
2238 #define RC8_9                   RCSTAbits.RC8_9                 // bit 6, shadows bit in RCSTAbits
2239 #define SPEN                    RCSTAbits.SPEN                  // bit 7
2240 
2241 #define BRG0                    SPBRGbits.BRG0                  // bit 0
2242 #define BRG1                    SPBRGbits.BRG1                  // bit 1
2243 #define BRG2                    SPBRGbits.BRG2                  // bit 2
2244 #define BRG3                    SPBRGbits.BRG3                  // bit 3
2245 #define BRG4                    SPBRGbits.BRG4                  // bit 4
2246 #define BRG5                    SPBRGbits.BRG5                  // bit 5
2247 #define BRG6                    SPBRGbits.BRG6                  // bit 6
2248 #define BRG7                    SPBRGbits.BRG7                  // bit 7
2249 
2250 #define SSPM0                   SSPCONbits.SSPM0                // bit 0
2251 #define SSPM1                   SSPCONbits.SSPM1                // bit 1
2252 #define SSPM2                   SSPCONbits.SSPM2                // bit 2
2253 #define SSPM3                   SSPCONbits.SSPM3                // bit 3
2254 #define CKP                     SSPCONbits.CKP                  // bit 4
2255 #define SSPEN                   SSPCONbits.SSPEN                // bit 5
2256 #define SSPOV                   SSPCONbits.SSPOV                // bit 6
2257 #define WCOL                    SSPCONbits.WCOL                 // bit 7
2258 
2259 #define BF                      SSPSTATbits.BF                  // bit 0
2260 #define UA                      SSPSTATbits.UA                  // bit 1
2261 #define R_NOT_W                 SSPSTATbits.R_NOT_W             // bit 2, shadows bit in SSPSTATbits
2262 #define R                       SSPSTATbits.R                   // bit 2, shadows bit in SSPSTATbits
2263 #define I2C_READ                SSPSTATbits.I2C_READ            // bit 2, shadows bit in SSPSTATbits
2264 #define NOT_W                   SSPSTATbits.NOT_W               // bit 2, shadows bit in SSPSTATbits
2265 #define NOT_WRITE               SSPSTATbits.NOT_WRITE           // bit 2, shadows bit in SSPSTATbits
2266 #define R_W                     SSPSTATbits.R_W                 // bit 2, shadows bit in SSPSTATbits
2267 #define READ_WRITE              SSPSTATbits.READ_WRITE          // bit 2, shadows bit in SSPSTATbits
2268 #define S                       SSPSTATbits.S                   // bit 3, shadows bit in SSPSTATbits
2269 #define I2C_START               SSPSTATbits.I2C_START           // bit 3, shadows bit in SSPSTATbits
2270 #define P                       SSPSTATbits.P                   // bit 4, shadows bit in SSPSTATbits
2271 #define I2C_STOP                SSPSTATbits.I2C_STOP            // bit 4, shadows bit in SSPSTATbits
2272 #define D_NOT_A                 SSPSTATbits.D_NOT_A             // bit 5, shadows bit in SSPSTATbits
2273 #define D                       SSPSTATbits.D                   // bit 5, shadows bit in SSPSTATbits
2274 #define I2C_DATA                SSPSTATbits.I2C_DATA            // bit 5, shadows bit in SSPSTATbits
2275 #define NOT_A                   SSPSTATbits.NOT_A               // bit 5, shadows bit in SSPSTATbits
2276 #define NOT_ADDRESS             SSPSTATbits.NOT_ADDRESS         // bit 5, shadows bit in SSPSTATbits
2277 #define D_A                     SSPSTATbits.D_A                 // bit 5, shadows bit in SSPSTATbits
2278 #define DATA_ADDRESS            SSPSTATbits.DATA_ADDRESS        // bit 5, shadows bit in SSPSTATbits
2279 #define CKE                     SSPSTATbits.CKE                 // bit 6
2280 #define SMP                     SSPSTATbits.SMP                 // bit 7
2281 
2282 #define C                       STATUSbits.C                    // bit 0
2283 #define DC                      STATUSbits.DC                   // bit 1
2284 #define Z                       STATUSbits.Z                    // bit 2
2285 #define NOT_PD                  STATUSbits.NOT_PD               // bit 3
2286 #define NOT_TO                  STATUSbits.NOT_TO               // bit 4
2287 #define RP0                     STATUSbits.RP0                  // bit 5
2288 #define RP1                     STATUSbits.RP1                  // bit 6
2289 #define IRP                     STATUSbits.IRP                  // bit 7
2290 
2291 #define TMR1ON                  T1CONbits.TMR1ON                // bit 0
2292 #define T1SYNC                  T1CONbits.T1SYNC                // bit 2, shadows bit in T1CONbits
2293 #define NOT_T1SYNC              T1CONbits.NOT_T1SYNC            // bit 2, shadows bit in T1CONbits
2294 #define T1INSYNC                T1CONbits.T1INSYNC              // bit 2, shadows bit in T1CONbits
2295 #define T1OSCEN                 T1CONbits.T1OSCEN               // bit 3
2296 #define T1CKPS0                 T1CONbits.T1CKPS0               // bit 4
2297 #define T1CKPS1                 T1CONbits.T1CKPS1               // bit 5
2298 #define TMR1CS0                 T1CONbits.TMR1CS0               // bit 6
2299 #define TMR1CS1                 T1CONbits.TMR1CS1               // bit 7
2300 
2301 #define T1GSS0                  T1GCONbits.T1GSS0               // bit 0
2302 #define T1GSS1                  T1GCONbits.T1GSS1               // bit 1
2303 #define T1GVAL                  T1GCONbits.T1GVAL               // bit 2
2304 #define T1GGO_NOT_DONE          T1GCONbits.T1GGO_NOT_DONE       // bit 3, shadows bit in T1GCONbits
2305 #define T1G_NOT_DONE            T1GCONbits.T1G_NOT_DONE         // bit 3, shadows bit in T1GCONbits
2306 #define T1GGO_DONE              T1GCONbits.T1GGO_DONE           // bit 3, shadows bit in T1GCONbits
2307 #define T1GGO                   T1GCONbits.T1GGO                // bit 3, shadows bit in T1GCONbits
2308 #define T1GSPM                  T1GCONbits.T1GSPM               // bit 4
2309 #define T1GTM                   T1GCONbits.T1GTM                // bit 5
2310 #define T1GPOL                  T1GCONbits.T1GPOL               // bit 6
2311 #define TMR1GE                  T1GCONbits.TMR1GE               // bit 7
2312 
2313 #define T2CKPS0                 T2CONbits.T2CKPS0               // bit 0
2314 #define T2CKPS1                 T2CONbits.T2CKPS1               // bit 1
2315 #define TMR2ON                  T2CONbits.TMR2ON                // bit 2
2316 #define TOUTPS0                 T2CONbits.TOUTPS0               // bit 3
2317 #define TOUTPS1                 T2CONbits.TOUTPS1               // bit 4
2318 #define TOUTPS2                 T2CONbits.TOUTPS2               // bit 5
2319 #define TOUTPS3                 T2CONbits.TOUTPS3               // bit 6
2320 
2321 #define TRISA0                  TRISAbits.TRISA0                // bit 0
2322 #define TRISA1                  TRISAbits.TRISA1                // bit 1
2323 #define TRISA2                  TRISAbits.TRISA2                // bit 2
2324 #define TRISA3                  TRISAbits.TRISA3                // bit 3
2325 #define TRISA4                  TRISAbits.TRISA4                // bit 4
2326 #define TRISA5                  TRISAbits.TRISA5                // bit 5
2327 #define TRISA6                  TRISAbits.TRISA6                // bit 6
2328 #define TRISA7                  TRISAbits.TRISA7                // bit 7
2329 
2330 #define TRISB0                  TRISBbits.TRISB0                // bit 0
2331 #define TRISB1                  TRISBbits.TRISB1                // bit 1
2332 #define TRISB2                  TRISBbits.TRISB2                // bit 2
2333 #define TRISB3                  TRISBbits.TRISB3                // bit 3
2334 #define TRISB4                  TRISBbits.TRISB4                // bit 4
2335 #define TRISB5                  TRISBbits.TRISB5                // bit 5
2336 #define TRISB6                  TRISBbits.TRISB6                // bit 6
2337 #define TRISB7                  TRISBbits.TRISB7                // bit 7
2338 
2339 #define TRISC0                  TRISCbits.TRISC0                // bit 0
2340 #define TRISC1                  TRISCbits.TRISC1                // bit 1
2341 #define TRISC2                  TRISCbits.TRISC2                // bit 2
2342 #define TRISC3                  TRISCbits.TRISC3                // bit 3
2343 #define TRISC4                  TRISCbits.TRISC4                // bit 4
2344 #define TRISC5                  TRISCbits.TRISC5                // bit 5
2345 #define TRISC6                  TRISCbits.TRISC6                // bit 6
2346 #define TRISC7                  TRISCbits.TRISC7                // bit 7
2347 
2348 #define TRISE3                  TRISEbits.TRISE3                // bit 3
2349 
2350 #define TX9D                    TXSTAbits.TX9D                  // bit 0, shadows bit in TXSTAbits
2351 #define TXD8                    TXSTAbits.TXD8                  // bit 0, shadows bit in TXSTAbits
2352 #define TRMT                    TXSTAbits.TRMT                  // bit 1
2353 #define BRGH                    TXSTAbits.BRGH                  // bit 2
2354 #define SYNC                    TXSTAbits.SYNC                  // bit 4
2355 #define TXEN                    TXSTAbits.TXEN                  // bit 5
2356 #define TX9                     TXSTAbits.TX9                   // bit 6, shadows bit in TXSTAbits
2357 #define NOT_TX8                 TXSTAbits.NOT_TX8               // bit 6, shadows bit in TXSTAbits
2358 #define TX8_9                   TXSTAbits.TX8_9                 // bit 6, shadows bit in TXSTAbits
2359 #define CSRC                    TXSTAbits.CSRC                  // bit 7
2360 
2361 #define WPUB0                   WPUbits.WPUB0                   // bit 0, shadows bit in WPUbits
2362 #define WPU0                    WPUbits.WPU0                    // bit 0, shadows bit in WPUbits
2363 #define WPUB1                   WPUbits.WPUB1                   // bit 1, shadows bit in WPUbits
2364 #define WPU1                    WPUbits.WPU1                    // bit 1, shadows bit in WPUbits
2365 #define WPUB2                   WPUbits.WPUB2                   // bit 2, shadows bit in WPUbits
2366 #define WPU2                    WPUbits.WPU2                    // bit 2, shadows bit in WPUbits
2367 #define WPUB3                   WPUbits.WPUB3                   // bit 3, shadows bit in WPUbits
2368 #define WPU3                    WPUbits.WPU3                    // bit 3, shadows bit in WPUbits
2369 #define WPUB4                   WPUbits.WPUB4                   // bit 4, shadows bit in WPUbits
2370 #define WPU4                    WPUbits.WPU4                    // bit 4, shadows bit in WPUbits
2371 #define WPUB5                   WPUbits.WPUB5                   // bit 5, shadows bit in WPUbits
2372 #define WPU5                    WPUbits.WPU5                    // bit 5, shadows bit in WPUbits
2373 #define WPUB6                   WPUbits.WPUB6                   // bit 6, shadows bit in WPUbits
2374 #define WPU6                    WPUbits.WPU6                    // bit 6, shadows bit in WPUbits
2375 #define WPUB7                   WPUbits.WPUB7                   // bit 7, shadows bit in WPUbits
2376 #define WPU7                    WPUbits.WPU7                    // bit 7, shadows bit in WPUbits
2377 
2378 #endif // #ifndef NO_BIT_DEFINES
2379 
2380 #endif // #ifndef __PIC16LF722A_H__
2381