1 /*
2  * This declarations of the PIC18F25J11 MCU.
3  *
4  * This file is part of the GNU PIC library for SDCC, originally
5  * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
6  *
7  * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:27 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 __PIC18F25J11_H__
26 #define __PIC18F25J11_H__
27 
28 //==============================================================================
29 
30 //==============================================================================
31 //
32 //	Register Definitions
33 //
34 //==============================================================================
35 
36 extern __at(0x0EC6) __sfr RPOR0;
37 extern __at(0x0EC7) __sfr RPOR1;
38 extern __at(0x0EC8) __sfr RPOR2;
39 extern __at(0x0EC9) __sfr RPOR3;
40 extern __at(0x0ECA) __sfr RPOR4;
41 extern __at(0x0ECB) __sfr RPOR5;
42 extern __at(0x0ECC) __sfr RPOR6;
43 extern __at(0x0ECD) __sfr RPOR7;
44 extern __at(0x0ECE) __sfr RPOR8;
45 extern __at(0x0ECF) __sfr RPOR9;
46 extern __at(0x0ED0) __sfr RPOR10;
47 extern __at(0x0ED1) __sfr RPOR11;
48 extern __at(0x0ED2) __sfr RPOR12;
49 extern __at(0x0ED3) __sfr RPOR13;
50 extern __at(0x0ED4) __sfr RPOR14;
51 extern __at(0x0ED5) __sfr RPOR15;
52 extern __at(0x0ED6) __sfr RPOR16;
53 extern __at(0x0ED7) __sfr RPOR17;
54 extern __at(0x0ED8) __sfr RPOR18;
55 extern __at(0x0EE7) __sfr RPINR1;
56 extern __at(0x0EE8) __sfr RPINR2;
57 extern __at(0x0EE9) __sfr RPINR3;
58 extern __at(0x0EEA) __sfr RPINR4;
59 extern __at(0x0EEC) __sfr RPINR6;
60 extern __at(0x0EED) __sfr RPINR7;
61 extern __at(0x0EEE) __sfr RPINR8;
62 extern __at(0x0EF2) __sfr RPINR12;
63 extern __at(0x0EF3) __sfr RPINR13;
64 extern __at(0x0EF6) __sfr RPINR16;
65 extern __at(0x0EF7) __sfr RPINR17;
66 extern __at(0x0EFB) __sfr RPINR21;
67 extern __at(0x0EFC) __sfr RPINR22;
68 extern __at(0x0EFD) __sfr RPINR23;
69 extern __at(0x0EFE) __sfr RPINR24;
70 
71 //==============================================================================
72 //        PPSCON Bits
73 
74 extern __at(0x0EFF) __sfr PPSCON;
75 
76 typedef struct
77   {
78   unsigned IOLOCK               : 1;
79   unsigned                      : 1;
80   unsigned                      : 1;
81   unsigned                      : 1;
82   unsigned                      : 1;
83   unsigned                      : 1;
84   unsigned                      : 1;
85   unsigned                      : 1;
86   } __PPSCONbits_t;
87 
88 extern __at(0x0EFF) volatile __PPSCONbits_t PPSCONbits;
89 
90 #define _IOLOCK                 0x01
91 
92 //==============================================================================
93 
94 
95 //==============================================================================
96 //        PADCFG1 Bits
97 
98 extern __at(0x0F3C) __sfr PADCFG1;
99 
100 typedef union
101   {
102   struct
103     {
104     unsigned PMPTTL             : 1;
105     unsigned RTSECSEL0          : 1;
106     unsigned RTSECSEL1          : 1;
107     unsigned                    : 1;
108     unsigned                    : 1;
109     unsigned                    : 1;
110     unsigned                    : 1;
111     unsigned                    : 1;
112     };
113 
114   struct
115     {
116     unsigned                    : 1;
117     unsigned RTSECSEL           : 2;
118     unsigned                    : 5;
119     };
120   } __PADCFG1bits_t;
121 
122 extern __at(0x0F3C) volatile __PADCFG1bits_t PADCFG1bits;
123 
124 #define _PMPTTL                 0x01
125 #define _RTSECSEL0              0x02
126 #define _RTSECSEL1              0x04
127 
128 //==============================================================================
129 
130 
131 //==============================================================================
132 //        REFOCON Bits
133 
134 extern __at(0x0F3D) __sfr REFOCON;
135 
136 typedef union
137   {
138   struct
139     {
140     unsigned RODIV0             : 1;
141     unsigned RODIV1             : 1;
142     unsigned RODIV2             : 1;
143     unsigned RODIV3             : 1;
144     unsigned ROSEL              : 1;
145     unsigned ROSSLP             : 1;
146     unsigned                    : 1;
147     unsigned ROON               : 1;
148     };
149 
150   struct
151     {
152     unsigned RODIV              : 4;
153     unsigned                    : 4;
154     };
155   } __REFOCONbits_t;
156 
157 extern __at(0x0F3D) volatile __REFOCONbits_t REFOCONbits;
158 
159 #define _RODIV0                 0x01
160 #define _RODIV1                 0x02
161 #define _RODIV2                 0x04
162 #define _RODIV3                 0x08
163 #define _ROSEL                  0x10
164 #define _ROSSLP                 0x20
165 #define _ROON                   0x80
166 
167 //==============================================================================
168 
169 
170 //==============================================================================
171 //        RTCCAL Bits
172 
173 extern __at(0x0F3E) __sfr RTCCAL;
174 
175 typedef struct
176   {
177   unsigned CAL0                 : 1;
178   unsigned CAL1                 : 1;
179   unsigned CAL2                 : 1;
180   unsigned CAL3                 : 1;
181   unsigned CAL4                 : 1;
182   unsigned CAL5                 : 1;
183   unsigned CAL6                 : 1;
184   unsigned CAL7                 : 1;
185   } __RTCCALbits_t;
186 
187 extern __at(0x0F3E) volatile __RTCCALbits_t RTCCALbits;
188 
189 #define _CAL0                   0x01
190 #define _CAL1                   0x02
191 #define _CAL2                   0x04
192 #define _CAL3                   0x08
193 #define _CAL4                   0x10
194 #define _CAL5                   0x20
195 #define _CAL6                   0x40
196 #define _CAL7                   0x80
197 
198 //==============================================================================
199 
200 
201 //==============================================================================
202 //        RTCCFG Bits
203 
204 extern __at(0x0F3F) __sfr RTCCFG;
205 
206 typedef union
207   {
208   struct
209     {
210     unsigned RTCPTR0            : 1;
211     unsigned RTCPTR1            : 1;
212     unsigned RTCOE              : 1;
213     unsigned HALFSEC            : 1;
214     unsigned RTCSYNC            : 1;
215     unsigned RTCWREN            : 1;
216     unsigned                    : 1;
217     unsigned RTCEN              : 1;
218     };
219 
220   struct
221     {
222     unsigned RTCPTR             : 2;
223     unsigned                    : 6;
224     };
225   } __RTCCFGbits_t;
226 
227 extern __at(0x0F3F) volatile __RTCCFGbits_t RTCCFGbits;
228 
229 #define _RTCPTR0                0x01
230 #define _RTCPTR1                0x02
231 #define _RTCOE                  0x04
232 #define _HALFSEC                0x08
233 #define _RTCSYNC                0x10
234 #define _RTCWREN                0x20
235 #define _RTCEN                  0x80
236 
237 //==============================================================================
238 
239 
240 //==============================================================================
241 //        ODCON3 Bits
242 
243 extern __at(0x0F40) __sfr ODCON3;
244 
245 typedef struct
246   {
247   unsigned SPI1OD               : 1;
248   unsigned SPI2OD               : 1;
249   unsigned                      : 1;
250   unsigned                      : 1;
251   unsigned                      : 1;
252   unsigned                      : 1;
253   unsigned                      : 1;
254   unsigned                      : 1;
255   } __ODCON3bits_t;
256 
257 extern __at(0x0F40) volatile __ODCON3bits_t ODCON3bits;
258 
259 #define _SPI1OD                 0x01
260 #define _SPI2OD                 0x02
261 
262 //==============================================================================
263 
264 
265 //==============================================================================
266 //        ODCON2 Bits
267 
268 extern __at(0x0F41) __sfr ODCON2;
269 
270 typedef struct
271   {
272   unsigned U1OD                 : 1;
273   unsigned U2OD                 : 1;
274   unsigned                      : 1;
275   unsigned                      : 1;
276   unsigned                      : 1;
277   unsigned                      : 1;
278   unsigned                      : 1;
279   unsigned                      : 1;
280   } __ODCON2bits_t;
281 
282 extern __at(0x0F41) volatile __ODCON2bits_t ODCON2bits;
283 
284 #define _U1OD                   0x01
285 #define _U2OD                   0x02
286 
287 //==============================================================================
288 
289 
290 //==============================================================================
291 //        ODCON1 Bits
292 
293 extern __at(0x0F42) __sfr ODCON1;
294 
295 typedef struct
296   {
297   unsigned ECCP1OD              : 1;
298   unsigned ECCP2OD              : 1;
299   unsigned                      : 1;
300   unsigned                      : 1;
301   unsigned                      : 1;
302   unsigned                      : 1;
303   unsigned                      : 1;
304   unsigned                      : 1;
305   } __ODCON1bits_t;
306 
307 extern __at(0x0F42) volatile __ODCON1bits_t ODCON1bits;
308 
309 #define _ECCP1OD                0x01
310 #define _ECCP2OD                0x02
311 
312 //==============================================================================
313 
314 
315 //==============================================================================
316 //        ANCON0 Bits
317 
318 extern __at(0x0F48) __sfr ANCON0;
319 
320 typedef union
321   {
322   struct
323     {
324     unsigned PCFG0              : 1;
325     unsigned PCFG1              : 1;
326     unsigned PCFG2              : 1;
327     unsigned PCFG3              : 1;
328     unsigned PCFG4              : 1;
329     unsigned                    : 1;
330     unsigned                    : 1;
331     unsigned                    : 1;
332     };
333 
334   struct
335     {
336     unsigned PCFG               : 5;
337     unsigned                    : 3;
338     };
339   } __ANCON0bits_t;
340 
341 extern __at(0x0F48) volatile __ANCON0bits_t ANCON0bits;
342 
343 #define _PCFG0                  0x01
344 #define _PCFG1                  0x02
345 #define _PCFG2                  0x04
346 #define _PCFG3                  0x08
347 #define _PCFG4                  0x10
348 
349 //==============================================================================
350 
351 
352 //==============================================================================
353 //        ANCON1 Bits
354 
355 extern __at(0x0F49) __sfr ANCON1;
356 
357 typedef struct
358   {
359   unsigned PCFG8                : 1;
360   unsigned PCFG9                : 1;
361   unsigned PCFG10               : 1;
362   unsigned PCFG11               : 1;
363   unsigned PCFG12               : 1;
364   unsigned                      : 1;
365   unsigned                      : 1;
366   unsigned VBGEN                : 1;
367   } __ANCON1bits_t;
368 
369 extern __at(0x0F49) volatile __ANCON1bits_t ANCON1bits;
370 
371 #define _PCFG8                  0x01
372 #define _PCFG9                  0x02
373 #define _PCFG10                 0x04
374 #define _PCFG11                 0x08
375 #define _PCFG12                 0x10
376 #define _VBGEN                  0x80
377 
378 //==============================================================================
379 
380 
381 //==============================================================================
382 //        DSWAKEL Bits
383 
384 extern __at(0x0F4A) __sfr DSWAKEL;
385 
386 typedef struct
387   {
388   unsigned DSPOR                : 1;
389   unsigned                      : 1;
390   unsigned DSMCLR               : 1;
391   unsigned DSRTC                : 1;
392   unsigned DSWDT                : 1;
393   unsigned DSULP                : 1;
394   unsigned                      : 1;
395   unsigned DSFLT                : 1;
396   } __DSWAKELbits_t;
397 
398 extern __at(0x0F4A) volatile __DSWAKELbits_t DSWAKELbits;
399 
400 #define _DSPOR                  0x01
401 #define _DSMCLR                 0x04
402 #define _DSRTC                  0x08
403 #define _DSWDT                  0x10
404 #define _DSULP                  0x20
405 #define _DSFLT                  0x80
406 
407 //==============================================================================
408 
409 
410 //==============================================================================
411 //        DSWAKEH Bits
412 
413 extern __at(0x0F4B) __sfr DSWAKEH;
414 
415 typedef struct
416   {
417   unsigned DSINT0               : 1;
418   unsigned                      : 1;
419   unsigned                      : 1;
420   unsigned                      : 1;
421   unsigned                      : 1;
422   unsigned                      : 1;
423   unsigned                      : 1;
424   unsigned                      : 1;
425   } __DSWAKEHbits_t;
426 
427 extern __at(0x0F4B) volatile __DSWAKEHbits_t DSWAKEHbits;
428 
429 #define _DSINT0                 0x01
430 
431 //==============================================================================
432 
433 
434 //==============================================================================
435 //        DSCONL Bits
436 
437 extern __at(0x0F4C) __sfr DSCONL;
438 
439 typedef struct
440   {
441   unsigned RELEASE              : 1;
442   unsigned DSBOR                : 1;
443   unsigned ULPWDIS              : 1;
444   unsigned                      : 1;
445   unsigned                      : 1;
446   unsigned                      : 1;
447   unsigned                      : 1;
448   unsigned                      : 1;
449   } __DSCONLbits_t;
450 
451 extern __at(0x0F4C) volatile __DSCONLbits_t DSCONLbits;
452 
453 #define _RELEASE                0x01
454 #define _DSBOR                  0x02
455 #define _ULPWDIS                0x04
456 
457 //==============================================================================
458 
459 
460 //==============================================================================
461 //        DSCONH Bits
462 
463 extern __at(0x0F4D) __sfr DSCONH;
464 
465 typedef struct
466   {
467   unsigned RTCWDIS              : 1;
468   unsigned DSULPEN              : 1;
469   unsigned                      : 1;
470   unsigned                      : 1;
471   unsigned                      : 1;
472   unsigned                      : 1;
473   unsigned                      : 1;
474   unsigned DSEN                 : 1;
475   } __DSCONHbits_t;
476 
477 extern __at(0x0F4D) volatile __DSCONHbits_t DSCONHbits;
478 
479 #define _RTCWDIS                0x01
480 #define _DSULPEN                0x02
481 #define _DSEN                   0x80
482 
483 //==============================================================================
484 
485 extern __at(0x0F4E) __sfr DSGPR0;
486 extern __at(0x0F4F) __sfr DSGPR1;
487 
488 //==============================================================================
489 //        TCLKCON Bits
490 
491 extern __at(0x0F52) __sfr TCLKCON;
492 
493 typedef struct
494   {
495   unsigned T3CCP1               : 1;
496   unsigned T3CCP2               : 1;
497   unsigned                      : 1;
498   unsigned                      : 1;
499   unsigned T1RUN                : 1;
500   unsigned                      : 1;
501   unsigned                      : 1;
502   unsigned                      : 1;
503   } __TCLKCONbits_t;
504 
505 extern __at(0x0F52) volatile __TCLKCONbits_t TCLKCONbits;
506 
507 #define _T3CCP1                 0x01
508 #define _T3CCP2                 0x02
509 #define _T1RUN                  0x10
510 
511 //==============================================================================
512 
513 
514 //==============================================================================
515 //        CVRCON Bits
516 
517 extern __at(0x0F53) __sfr CVRCON;
518 
519 typedef union
520   {
521   struct
522     {
523     unsigned CVR0               : 1;
524     unsigned CVR1               : 1;
525     unsigned CVR2               : 1;
526     unsigned CVR3               : 1;
527     unsigned CVRSS              : 1;
528     unsigned CVRR               : 1;
529     unsigned CVROE              : 1;
530     unsigned CVREN              : 1;
531     };
532 
533   struct
534     {
535     unsigned CVR                : 4;
536     unsigned                    : 4;
537     };
538   } __CVRCONbits_t;
539 
540 extern __at(0x0F53) volatile __CVRCONbits_t CVRCONbits;
541 
542 #define _CVR0                   0x01
543 #define _CVR1                   0x02
544 #define _CVR2                   0x04
545 #define _CVR3                   0x08
546 #define _CVRSS                  0x10
547 #define _CVRR                   0x20
548 #define _CVROE                  0x40
549 #define _CVREN                  0x80
550 
551 //==============================================================================
552 
553 extern __at(0x0F66) __sfr DMABCH;
554 extern __at(0x0F67) __sfr DMABCL;
555 extern __at(0x0F68) __sfr RXADDRH;
556 extern __at(0x0F69) __sfr RXADDRL;
557 extern __at(0x0F6A) __sfr TXADDRH;
558 extern __at(0x0F6B) __sfr TXADDRL;
559 
560 //==============================================================================
561 //        CMSTAT Bits
562 
563 extern __at(0x0F70) __sfr CMSTAT;
564 
565 typedef struct
566   {
567   unsigned COUT1                : 1;
568   unsigned COUT2                : 1;
569   unsigned                      : 1;
570   unsigned                      : 1;
571   unsigned                      : 1;
572   unsigned                      : 1;
573   unsigned                      : 1;
574   unsigned                      : 1;
575   } __CMSTATbits_t;
576 
577 extern __at(0x0F70) volatile __CMSTATbits_t CMSTATbits;
578 
579 #define _COUT1                  0x01
580 #define _COUT2                  0x02
581 
582 //==============================================================================
583 
584 
585 //==============================================================================
586 //        CMSTATUS Bits
587 
588 extern __at(0x0F70) __sfr CMSTATUS;
589 
590 typedef struct
591   {
592   unsigned COUT1                : 1;
593   unsigned COUT2                : 1;
594   unsigned                      : 1;
595   unsigned                      : 1;
596   unsigned                      : 1;
597   unsigned                      : 1;
598   unsigned                      : 1;
599   unsigned                      : 1;
600   } __CMSTATUSbits_t;
601 
602 extern __at(0x0F70) volatile __CMSTATUSbits_t CMSTATUSbits;
603 
604 #define _CMSTATUS_COUT1         0x01
605 #define _CMSTATUS_COUT2         0x02
606 
607 //==============================================================================
608 
609 
610 //==============================================================================
611 //        SSP2CON2 Bits
612 
613 extern __at(0x0F71) __sfr SSP2CON2;
614 
615 typedef union
616   {
617   struct
618     {
619     unsigned SEN                : 1;
620     unsigned RSEN               : 1;
621     unsigned PEN                : 1;
622     unsigned RCEN               : 1;
623     unsigned ACKEN              : 1;
624     unsigned ACKDT              : 1;
625     unsigned ACKSTAT            : 1;
626     unsigned GCEN               : 1;
627     };
628 
629   struct
630     {
631     unsigned                    : 1;
632     unsigned ADMSK1             : 1;
633     unsigned ADMSK2             : 1;
634     unsigned ADMSK3             : 1;
635     unsigned ADMSK4             : 1;
636     unsigned ADMSK5             : 1;
637     unsigned                    : 1;
638     unsigned                    : 1;
639     };
640   } __SSP2CON2bits_t;
641 
642 extern __at(0x0F71) volatile __SSP2CON2bits_t SSP2CON2bits;
643 
644 #define _SSP2CON2_SEN           0x01
645 #define _SSP2CON2_RSEN          0x02
646 #define _SSP2CON2_ADMSK1        0x02
647 #define _SSP2CON2_PEN           0x04
648 #define _SSP2CON2_ADMSK2        0x04
649 #define _SSP2CON2_RCEN          0x08
650 #define _SSP2CON2_ADMSK3        0x08
651 #define _SSP2CON2_ACKEN         0x10
652 #define _SSP2CON2_ADMSK4        0x10
653 #define _SSP2CON2_ACKDT         0x20
654 #define _SSP2CON2_ADMSK5        0x20
655 #define _SSP2CON2_ACKSTAT       0x40
656 #define _SSP2CON2_GCEN          0x80
657 
658 //==============================================================================
659 
660 
661 //==============================================================================
662 //        SSP2CON1 Bits
663 
664 extern __at(0x0F72) __sfr SSP2CON1;
665 
666 typedef union
667   {
668   struct
669     {
670     unsigned SSPM0              : 1;
671     unsigned SSPM1              : 1;
672     unsigned SSPM2              : 1;
673     unsigned SSPM3              : 1;
674     unsigned CKP                : 1;
675     unsigned SSPEN              : 1;
676     unsigned SSPOV              : 1;
677     unsigned WCOL               : 1;
678     };
679 
680   struct
681     {
682     unsigned SSPM               : 4;
683     unsigned                    : 4;
684     };
685   } __SSP2CON1bits_t;
686 
687 extern __at(0x0F72) volatile __SSP2CON1bits_t SSP2CON1bits;
688 
689 #define _SSP2CON1_SSPM0         0x01
690 #define _SSP2CON1_SSPM1         0x02
691 #define _SSP2CON1_SSPM2         0x04
692 #define _SSP2CON1_SSPM3         0x08
693 #define _SSP2CON1_CKP           0x10
694 #define _SSP2CON1_SSPEN         0x20
695 #define _SSP2CON1_SSPOV         0x40
696 #define _SSP2CON1_WCOL          0x80
697 
698 //==============================================================================
699 
700 
701 //==============================================================================
702 //        SSP2STAT Bits
703 
704 extern __at(0x0F73) __sfr SSP2STAT;
705 
706 typedef struct
707   {
708   unsigned BF                   : 1;
709   unsigned UA                   : 1;
710   unsigned R_NOT_W              : 1;
711   unsigned S                    : 1;
712   unsigned P                    : 1;
713   unsigned D_NOT_A              : 1;
714   unsigned CKE                  : 1;
715   unsigned SMP                  : 1;
716   } __SSP2STATbits_t;
717 
718 extern __at(0x0F73) volatile __SSP2STATbits_t SSP2STATbits;
719 
720 #define _SSP2STAT_BF            0x01
721 #define _SSP2STAT_UA            0x02
722 #define _SSP2STAT_R_NOT_W       0x04
723 #define _SSP2STAT_S             0x08
724 #define _SSP2STAT_P             0x10
725 #define _SSP2STAT_D_NOT_A       0x20
726 #define _SSP2STAT_CKE           0x40
727 #define _SSP2STAT_SMP           0x80
728 
729 //==============================================================================
730 
731 
732 //==============================================================================
733 //        SSP2ADD Bits
734 
735 extern __at(0x0F74) __sfr SSP2ADD;
736 
737 typedef struct
738   {
739   unsigned MSK0                 : 1;
740   unsigned MSK1                 : 1;
741   unsigned MSK2                 : 1;
742   unsigned MSK3                 : 1;
743   unsigned MSK4                 : 1;
744   unsigned MSK5                 : 1;
745   unsigned MSK6                 : 1;
746   unsigned MSK7                 : 1;
747   } __SSP2ADDbits_t;
748 
749 extern __at(0x0F74) volatile __SSP2ADDbits_t SSP2ADDbits;
750 
751 #define _SSP2ADD_MSK0           0x01
752 #define _SSP2ADD_MSK1           0x02
753 #define _SSP2ADD_MSK2           0x04
754 #define _SSP2ADD_MSK3           0x08
755 #define _SSP2ADD_MSK4           0x10
756 #define _SSP2ADD_MSK5           0x20
757 #define _SSP2ADD_MSK6           0x40
758 #define _SSP2ADD_MSK7           0x80
759 
760 //==============================================================================
761 
762 
763 //==============================================================================
764 //        SSP2MSK Bits
765 
766 extern __at(0x0F74) __sfr SSP2MSK;
767 
768 typedef struct
769   {
770   unsigned MSK0                 : 1;
771   unsigned MSK1                 : 1;
772   unsigned MSK2                 : 1;
773   unsigned MSK3                 : 1;
774   unsigned MSK4                 : 1;
775   unsigned MSK5                 : 1;
776   unsigned MSK6                 : 1;
777   unsigned MSK7                 : 1;
778   } __SSP2MSKbits_t;
779 
780 extern __at(0x0F74) volatile __SSP2MSKbits_t SSP2MSKbits;
781 
782 #define _SSP2MSK_MSK0           0x01
783 #define _SSP2MSK_MSK1           0x02
784 #define _SSP2MSK_MSK2           0x04
785 #define _SSP2MSK_MSK3           0x08
786 #define _SSP2MSK_MSK4           0x10
787 #define _SSP2MSK_MSK5           0x20
788 #define _SSP2MSK_MSK6           0x40
789 #define _SSP2MSK_MSK7           0x80
790 
791 //==============================================================================
792 
793 extern __at(0x0F75) __sfr SSP2BUF;
794 
795 //==============================================================================
796 //        T4CON Bits
797 
798 extern __at(0x0F76) __sfr T4CON;
799 
800 typedef union
801   {
802   struct
803     {
804     unsigned T4CKPS0            : 1;
805     unsigned T4CKPS1            : 1;
806     unsigned TMR4ON             : 1;
807     unsigned T4OUTPS0           : 1;
808     unsigned T4OUTPS1           : 1;
809     unsigned T4OUTPS2           : 1;
810     unsigned T4OUTPS3           : 1;
811     unsigned                    : 1;
812     };
813 
814   struct
815     {
816     unsigned T4CKPS             : 2;
817     unsigned                    : 6;
818     };
819 
820   struct
821     {
822     unsigned                    : 3;
823     unsigned T4OUTPS            : 4;
824     unsigned                    : 1;
825     };
826   } __T4CONbits_t;
827 
828 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits;
829 
830 #define _T4CKPS0                0x01
831 #define _T4CKPS1                0x02
832 #define _TMR4ON                 0x04
833 #define _T4OUTPS0               0x08
834 #define _T4OUTPS1               0x10
835 #define _T4OUTPS2               0x20
836 #define _T4OUTPS3               0x40
837 
838 //==============================================================================
839 
840 extern __at(0x0F77) __sfr PR4;
841 extern __at(0x0F78) __sfr TMR4;
842 
843 //==============================================================================
844 //        T3CON Bits
845 
846 extern __at(0x0F79) __sfr T3CON;
847 
848 typedef union
849   {
850   struct
851     {
852     unsigned TMR3ON             : 1;
853     unsigned RD16               : 1;
854     unsigned T3SYNC             : 1;
855     unsigned                    : 1;
856     unsigned T3CKPS0            : 1;
857     unsigned T3CKPS1            : 1;
858     unsigned TMR3CS0            : 1;
859     unsigned TMR3CS1            : 1;
860     };
861 
862   struct
863     {
864     unsigned                    : 4;
865     unsigned T3CKPS             : 2;
866     unsigned                    : 2;
867     };
868 
869   struct
870     {
871     unsigned                    : 6;
872     unsigned TMR3CS             : 2;
873     };
874   } __T3CONbits_t;
875 
876 extern __at(0x0F79) volatile __T3CONbits_t T3CONbits;
877 
878 #define _T3CON_TMR3ON           0x01
879 #define _T3CON_RD16             0x02
880 #define _T3CON_T3SYNC           0x04
881 #define _T3CON_T3CKPS0          0x10
882 #define _T3CON_T3CKPS1          0x20
883 #define _T3CON_TMR3CS0          0x40
884 #define _T3CON_TMR3CS1          0x80
885 
886 //==============================================================================
887 
888 extern __at(0x0F7A) __sfr TMR3;
889 extern __at(0x0F7A) __sfr TMR3L;
890 extern __at(0x0F7B) __sfr TMR3H;
891 
892 //==============================================================================
893 //        BAUDCON2 Bits
894 
895 extern __at(0x0F7C) __sfr BAUDCON2;
896 
897 typedef struct
898   {
899   unsigned ABDEN                : 1;
900   unsigned WUE                  : 1;
901   unsigned                      : 1;
902   unsigned BRG16                : 1;
903   unsigned TXCKP                : 1;
904   unsigned RXDTP                : 1;
905   unsigned RCIDL                : 1;
906   unsigned ABDOVF               : 1;
907   } __BAUDCON2bits_t;
908 
909 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits;
910 
911 #define _BAUDCON2_ABDEN         0x01
912 #define _BAUDCON2_WUE           0x02
913 #define _BAUDCON2_BRG16         0x08
914 #define _BAUDCON2_TXCKP         0x10
915 #define _BAUDCON2_RXDTP         0x20
916 #define _BAUDCON2_RCIDL         0x40
917 #define _BAUDCON2_ABDOVF        0x80
918 
919 //==============================================================================
920 
921 extern __at(0x0F7D) __sfr SPBRGH2;
922 
923 //==============================================================================
924 //        BAUDCON Bits
925 
926 extern __at(0x0F7E) __sfr BAUDCON;
927 
928 typedef struct
929   {
930   unsigned ABDEN                : 1;
931   unsigned WUE                  : 1;
932   unsigned                      : 1;
933   unsigned BRG16                : 1;
934   unsigned TXCKP                : 1;
935   unsigned RXDTP                : 1;
936   unsigned RCIDL                : 1;
937   unsigned ABDOVF               : 1;
938   } __BAUDCONbits_t;
939 
940 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits;
941 
942 #define _ABDEN                  0x01
943 #define _WUE                    0x02
944 #define _BRG16                  0x08
945 #define _TXCKP                  0x10
946 #define _RXDTP                  0x20
947 #define _RCIDL                  0x40
948 #define _ABDOVF                 0x80
949 
950 //==============================================================================
951 
952 
953 //==============================================================================
954 //        BAUDCON1 Bits
955 
956 extern __at(0x0F7E) __sfr BAUDCON1;
957 
958 typedef struct
959   {
960   unsigned ABDEN                : 1;
961   unsigned WUE                  : 1;
962   unsigned                      : 1;
963   unsigned BRG16                : 1;
964   unsigned TXCKP                : 1;
965   unsigned RXDTP                : 1;
966   unsigned RCIDL                : 1;
967   unsigned ABDOVF               : 1;
968   } __BAUDCON1bits_t;
969 
970 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits;
971 
972 #define _BAUDCON1_ABDEN         0x01
973 #define _BAUDCON1_WUE           0x02
974 #define _BAUDCON1_BRG16         0x08
975 #define _BAUDCON1_TXCKP         0x10
976 #define _BAUDCON1_RXDTP         0x20
977 #define _BAUDCON1_RCIDL         0x40
978 #define _BAUDCON1_ABDOVF        0x80
979 
980 //==============================================================================
981 
982 
983 //==============================================================================
984 //        BAUDCTL Bits
985 
986 extern __at(0x0F7E) __sfr BAUDCTL;
987 
988 typedef struct
989   {
990   unsigned ABDEN                : 1;
991   unsigned WUE                  : 1;
992   unsigned                      : 1;
993   unsigned BRG16                : 1;
994   unsigned TXCKP                : 1;
995   unsigned RXDTP                : 1;
996   unsigned RCIDL                : 1;
997   unsigned ABDOVF               : 1;
998   } __BAUDCTLbits_t;
999 
1000 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits;
1001 
1002 #define _BAUDCTL_ABDEN          0x01
1003 #define _BAUDCTL_WUE            0x02
1004 #define _BAUDCTL_BRG16          0x08
1005 #define _BAUDCTL_TXCKP          0x10
1006 #define _BAUDCTL_RXDTP          0x20
1007 #define _BAUDCTL_RCIDL          0x40
1008 #define _BAUDCTL_ABDOVF         0x80
1009 
1010 //==============================================================================
1011 
1012 extern __at(0x0F7F) __sfr SPBRGH;
1013 extern __at(0x0F7F) __sfr SPBRGH1;
1014 
1015 //==============================================================================
1016 //        PORTA Bits
1017 
1018 extern __at(0x0F80) __sfr PORTA;
1019 
1020 typedef union
1021   {
1022   struct
1023     {
1024     unsigned RA0                : 1;
1025     unsigned RA1                : 1;
1026     unsigned RA2                : 1;
1027     unsigned RA3                : 1;
1028     unsigned                    : 1;
1029     unsigned RA5                : 1;
1030     unsigned RA6                : 1;
1031     unsigned RA7                : 1;
1032     };
1033 
1034   struct
1035     {
1036     unsigned AN0                : 1;
1037     unsigned AN1                : 1;
1038     unsigned AN2                : 1;
1039     unsigned AN3                : 1;
1040     unsigned                    : 1;
1041     unsigned AN4                : 1;
1042     unsigned OSC2               : 1;
1043     unsigned OSC1               : 1;
1044     };
1045 
1046   struct
1047     {
1048     unsigned C1INA              : 1;
1049     unsigned C2INA              : 1;
1050     unsigned VREF_MINUS         : 1;
1051     unsigned VREF_PLUS          : 1;
1052     unsigned                    : 1;
1053     unsigned NOT_SS1            : 1;
1054     unsigned CLKO               : 1;
1055     unsigned CLKI               : 1;
1056     };
1057 
1058   struct
1059     {
1060     unsigned ULPWU              : 1;
1061     unsigned RP1                : 1;
1062     unsigned CVREF_MINUS        : 1;
1063     unsigned C1INB              : 1;
1064     unsigned                    : 1;
1065     unsigned HLVDIN             : 1;
1066     unsigned                    : 1;
1067     unsigned                    : 1;
1068     };
1069 
1070   struct
1071     {
1072     unsigned RP0                : 1;
1073     unsigned                    : 1;
1074     unsigned C2INB              : 1;
1075     unsigned                    : 1;
1076     unsigned                    : 1;
1077     unsigned RP2                : 1;
1078     unsigned                    : 1;
1079     unsigned                    : 1;
1080     };
1081   } __PORTAbits_t;
1082 
1083 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;
1084 
1085 #define _RA0                    0x01
1086 #define _AN0                    0x01
1087 #define _C1INA                  0x01
1088 #define _ULPWU                  0x01
1089 #define _RP0                    0x01
1090 #define _RA1                    0x02
1091 #define _AN1                    0x02
1092 #define _C2INA                  0x02
1093 #define _RP1                    0x02
1094 #define _RA2                    0x04
1095 #define _AN2                    0x04
1096 #define _VREF_MINUS             0x04
1097 #define _CVREF_MINUS            0x04
1098 #define _C2INB                  0x04
1099 #define _RA3                    0x08
1100 #define _AN3                    0x08
1101 #define _VREF_PLUS              0x08
1102 #define _C1INB                  0x08
1103 #define _RA5                    0x20
1104 #define _AN4                    0x20
1105 #define _NOT_SS1                0x20
1106 #define _HLVDIN                 0x20
1107 #define _RP2                    0x20
1108 #define _RA6                    0x40
1109 #define _OSC2                   0x40
1110 #define _CLKO                   0x40
1111 #define _RA7                    0x80
1112 #define _OSC1                   0x80
1113 #define _CLKI                   0x80
1114 
1115 //==============================================================================
1116 
1117 
1118 //==============================================================================
1119 //        PORTB Bits
1120 
1121 extern __at(0x0F81) __sfr PORTB;
1122 
1123 typedef union
1124   {
1125   struct
1126     {
1127     unsigned RB0                : 1;
1128     unsigned RB1                : 1;
1129     unsigned RB2                : 1;
1130     unsigned RB3                : 1;
1131     unsigned RB4                : 1;
1132     unsigned RB5                : 1;
1133     unsigned RB6                : 1;
1134     unsigned RB7                : 1;
1135     };
1136 
1137   struct
1138     {
1139     unsigned AN12               : 1;
1140     unsigned AN10               : 1;
1141     unsigned AN8                : 1;
1142     unsigned AN9                : 1;
1143     unsigned KBI0               : 1;
1144     unsigned KBI1               : 1;
1145     unsigned KBI2               : 1;
1146     unsigned KBI3               : 1;
1147     };
1148 
1149   struct
1150     {
1151     unsigned INT0               : 1;
1152     unsigned RTCC               : 1;
1153     unsigned CTEDG1             : 1;
1154     unsigned CTEDG2             : 1;
1155     unsigned RP7                : 1;
1156     unsigned RP8                : 1;
1157     unsigned PGC                : 1;
1158     unsigned PGD                : 1;
1159     };
1160 
1161   struct
1162     {
1163     unsigned RP3                : 1;
1164     unsigned RP4                : 1;
1165     unsigned REFO               : 1;
1166     unsigned RP6                : 1;
1167     unsigned                    : 1;
1168     unsigned                    : 1;
1169     unsigned RP9                : 1;
1170     unsigned RP10               : 1;
1171     };
1172 
1173   struct
1174     {
1175     unsigned                    : 1;
1176     unsigned                    : 1;
1177     unsigned RP5                : 1;
1178     unsigned                    : 1;
1179     unsigned                    : 1;
1180     unsigned                    : 1;
1181     unsigned                    : 1;
1182     unsigned                    : 1;
1183     };
1184 
1185   struct
1186     {
1187     unsigned                    : 4;
1188     unsigned KBI                : 4;
1189     };
1190   } __PORTBbits_t;
1191 
1192 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;
1193 
1194 #define _RB0                    0x01
1195 #define _AN12                   0x01
1196 #define _INT0                   0x01
1197 #define _RP3                    0x01
1198 #define _RB1                    0x02
1199 #define _AN10                   0x02
1200 #define _RTCC                   0x02
1201 #define _RP4                    0x02
1202 #define _RB2                    0x04
1203 #define _AN8                    0x04
1204 #define _CTEDG1                 0x04
1205 #define _REFO                   0x04
1206 #define _RP5                    0x04
1207 #define _RB3                    0x08
1208 #define _AN9                    0x08
1209 #define _CTEDG2                 0x08
1210 #define _RP6                    0x08
1211 #define _RB4                    0x10
1212 #define _KBI0                   0x10
1213 #define _RP7                    0x10
1214 #define _RB5                    0x20
1215 #define _KBI1                   0x20
1216 #define _RP8                    0x20
1217 #define _RB6                    0x40
1218 #define _KBI2                   0x40
1219 #define _PGC                    0x40
1220 #define _RP9                    0x40
1221 #define _RB7                    0x80
1222 #define _KBI3                   0x80
1223 #define _PGD                    0x80
1224 #define _RP10                   0x80
1225 
1226 //==============================================================================
1227 
1228 
1229 //==============================================================================
1230 //        PORTC Bits
1231 
1232 extern __at(0x0F82) __sfr PORTC;
1233 
1234 typedef union
1235   {
1236   struct
1237     {
1238     unsigned RC0                : 1;
1239     unsigned RC1                : 1;
1240     unsigned RC2                : 1;
1241     unsigned RC3                : 1;
1242     unsigned RC4                : 1;
1243     unsigned RC5                : 1;
1244     unsigned RC6                : 1;
1245     unsigned RC7                : 1;
1246     };
1247 
1248   struct
1249     {
1250     unsigned T1OSO              : 1;
1251     unsigned T1OSI              : 1;
1252     unsigned AN11               : 1;
1253     unsigned SCK1               : 1;
1254     unsigned SDI1               : 1;
1255     unsigned SDO1               : 1;
1256     unsigned TX1                : 1;
1257     unsigned RX1                : 1;
1258     };
1259 
1260   struct
1261     {
1262     unsigned T1CKI              : 1;
1263     unsigned RP12               : 1;
1264     unsigned CTPLS              : 1;
1265     unsigned SCL1               : 1;
1266     unsigned RP15               : 1;
1267     unsigned RP16               : 1;
1268     unsigned CK1                : 1;
1269     unsigned DT1                : 1;
1270     };
1271 
1272   struct
1273     {
1274     unsigned RP11               : 1;
1275     unsigned                    : 1;
1276     unsigned RP13               : 1;
1277     unsigned RP14               : 1;
1278     unsigned                    : 1;
1279     unsigned                    : 1;
1280     unsigned RP17               : 1;
1281     unsigned RP18               : 1;
1282     };
1283   } __PORTCbits_t;
1284 
1285 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;
1286 
1287 #define _RC0                    0x01
1288 #define _T1OSO                  0x01
1289 #define _T1CKI                  0x01
1290 #define _RP11                   0x01
1291 #define _RC1                    0x02
1292 #define _T1OSI                  0x02
1293 #define _RP12                   0x02
1294 #define _RC2                    0x04
1295 #define _AN11                   0x04
1296 #define _CTPLS                  0x04
1297 #define _RP13                   0x04
1298 #define _RC3                    0x08
1299 #define _SCK1                   0x08
1300 #define _SCL1                   0x08
1301 #define _RP14                   0x08
1302 #define _RC4                    0x10
1303 #define _SDI1                   0x10
1304 #define _RP15                   0x10
1305 #define _RC5                    0x20
1306 #define _SDO1                   0x20
1307 #define _RP16                   0x20
1308 #define _RC6                    0x40
1309 #define _TX1                    0x40
1310 #define _CK1                    0x40
1311 #define _RP17                   0x40
1312 #define _RC7                    0x80
1313 #define _RX1                    0x80
1314 #define _DT1                    0x80
1315 #define _RP18                   0x80
1316 
1317 //==============================================================================
1318 
1319 
1320 //==============================================================================
1321 //        HLVDCON Bits
1322 
1323 extern __at(0x0F85) __sfr HLVDCON;
1324 
1325 typedef union
1326   {
1327   struct
1328     {
1329     unsigned HLVDL0             : 1;
1330     unsigned HLVDL1             : 1;
1331     unsigned HLVDL2             : 1;
1332     unsigned HLVDL3             : 1;
1333     unsigned HLVDEN             : 1;
1334     unsigned IRVST              : 1;
1335     unsigned BGVST              : 1;
1336     unsigned VDIRMAG            : 1;
1337     };
1338 
1339   struct
1340     {
1341     unsigned HLVDL              : 4;
1342     unsigned                    : 4;
1343     };
1344   } __HLVDCONbits_t;
1345 
1346 extern __at(0x0F85) volatile __HLVDCONbits_t HLVDCONbits;
1347 
1348 #define _HLVDL0                 0x01
1349 #define _HLVDL1                 0x02
1350 #define _HLVDL2                 0x04
1351 #define _HLVDL3                 0x08
1352 #define _HLVDEN                 0x10
1353 #define _IRVST                  0x20
1354 #define _BGVST                  0x40
1355 #define _VDIRMAG                0x80
1356 
1357 //==============================================================================
1358 
1359 
1360 //==============================================================================
1361 //        DMACON2 Bits
1362 
1363 extern __at(0x0F86) __sfr DMACON2;
1364 
1365 typedef union
1366   {
1367   struct
1368     {
1369     unsigned INTLVL0            : 1;
1370     unsigned INTLVL1            : 1;
1371     unsigned INTLVL2            : 1;
1372     unsigned INTLVL3            : 1;
1373     unsigned DLYCYC0            : 1;
1374     unsigned DLYCYC1            : 1;
1375     unsigned DLYCYC2            : 1;
1376     unsigned DLYCYC3            : 1;
1377     };
1378 
1379   struct
1380     {
1381     unsigned INTLVL             : 4;
1382     unsigned                    : 4;
1383     };
1384 
1385   struct
1386     {
1387     unsigned                    : 4;
1388     unsigned DLYCYC             : 4;
1389     };
1390   } __DMACON2bits_t;
1391 
1392 extern __at(0x0F86) volatile __DMACON2bits_t DMACON2bits;
1393 
1394 #define _INTLVL0                0x01
1395 #define _INTLVL1                0x02
1396 #define _INTLVL2                0x04
1397 #define _INTLVL3                0x08
1398 #define _DLYCYC0                0x10
1399 #define _DLYCYC1                0x20
1400 #define _DLYCYC2                0x40
1401 #define _DLYCYC3                0x80
1402 
1403 //==============================================================================
1404 
1405 
1406 //==============================================================================
1407 //        DMACON1 Bits
1408 
1409 extern __at(0x0F88) __sfr DMACON1;
1410 
1411 typedef union
1412   {
1413   struct
1414     {
1415     unsigned DMAEN              : 1;
1416     unsigned DLYINTEN           : 1;
1417     unsigned DUPLEX0            : 1;
1418     unsigned DUPLEX1            : 1;
1419     unsigned RXINC              : 1;
1420     unsigned TXINC              : 1;
1421     unsigned SSCON0             : 1;
1422     unsigned SSCON1             : 1;
1423     };
1424 
1425   struct
1426     {
1427     unsigned                    : 2;
1428     unsigned DUPLEX             : 2;
1429     unsigned                    : 4;
1430     };
1431 
1432   struct
1433     {
1434     unsigned                    : 6;
1435     unsigned SSCON              : 2;
1436     };
1437   } __DMACON1bits_t;
1438 
1439 extern __at(0x0F88) volatile __DMACON1bits_t DMACON1bits;
1440 
1441 #define _DMAEN                  0x01
1442 #define _DLYINTEN               0x02
1443 #define _DUPLEX0                0x04
1444 #define _DUPLEX1                0x08
1445 #define _RXINC                  0x10
1446 #define _TXINC                  0x20
1447 #define _SSCON0                 0x40
1448 #define _SSCON1                 0x80
1449 
1450 //==============================================================================
1451 
1452 
1453 //==============================================================================
1454 //        LATA Bits
1455 
1456 extern __at(0x0F89) __sfr LATA;
1457 
1458 typedef struct
1459   {
1460   unsigned LATA0                : 1;
1461   unsigned LATA1                : 1;
1462   unsigned LATA2                : 1;
1463   unsigned LATA3                : 1;
1464   unsigned                      : 1;
1465   unsigned LATA5                : 1;
1466   unsigned LATA6                : 1;
1467   unsigned LATA7                : 1;
1468   } __LATAbits_t;
1469 
1470 extern __at(0x0F89) volatile __LATAbits_t LATAbits;
1471 
1472 #define _LATA0                  0x01
1473 #define _LATA1                  0x02
1474 #define _LATA2                  0x04
1475 #define _LATA3                  0x08
1476 #define _LATA5                  0x20
1477 #define _LATA6                  0x40
1478 #define _LATA7                  0x80
1479 
1480 //==============================================================================
1481 
1482 
1483 //==============================================================================
1484 //        LATB Bits
1485 
1486 extern __at(0x0F8A) __sfr LATB;
1487 
1488 typedef struct
1489   {
1490   unsigned LATB0                : 1;
1491   unsigned LATB1                : 1;
1492   unsigned LATB2                : 1;
1493   unsigned LATB3                : 1;
1494   unsigned LATB4                : 1;
1495   unsigned LATB5                : 1;
1496   unsigned LATB6                : 1;
1497   unsigned LATB7                : 1;
1498   } __LATBbits_t;
1499 
1500 extern __at(0x0F8A) volatile __LATBbits_t LATBbits;
1501 
1502 #define _LATB0                  0x01
1503 #define _LATB1                  0x02
1504 #define _LATB2                  0x04
1505 #define _LATB3                  0x08
1506 #define _LATB4                  0x10
1507 #define _LATB5                  0x20
1508 #define _LATB6                  0x40
1509 #define _LATB7                  0x80
1510 
1511 //==============================================================================
1512 
1513 
1514 //==============================================================================
1515 //        LATC Bits
1516 
1517 extern __at(0x0F8B) __sfr LATC;
1518 
1519 typedef struct
1520   {
1521   unsigned LATC0                : 1;
1522   unsigned LATC1                : 1;
1523   unsigned LATC2                : 1;
1524   unsigned LATC3                : 1;
1525   unsigned LATC4                : 1;
1526   unsigned LATC5                : 1;
1527   unsigned LATC6                : 1;
1528   unsigned LATC7                : 1;
1529   } __LATCbits_t;
1530 
1531 extern __at(0x0F8B) volatile __LATCbits_t LATCbits;
1532 
1533 #define _LATC0                  0x01
1534 #define _LATC1                  0x02
1535 #define _LATC2                  0x04
1536 #define _LATC3                  0x08
1537 #define _LATC4                  0x10
1538 #define _LATC5                  0x20
1539 #define _LATC6                  0x40
1540 #define _LATC7                  0x80
1541 
1542 //==============================================================================
1543 
1544 extern __at(0x0F8E) __sfr ALRMVALL;
1545 extern __at(0x0F8F) __sfr ALRMVALH;
1546 
1547 //==============================================================================
1548 //        ALRMRPT Bits
1549 
1550 extern __at(0x0F90) __sfr ALRMRPT;
1551 
1552 typedef struct
1553   {
1554   unsigned ARPT0                : 1;
1555   unsigned ARPT1                : 1;
1556   unsigned ARPT2                : 1;
1557   unsigned ARPT3                : 1;
1558   unsigned ARPT4                : 1;
1559   unsigned ARPT5                : 1;
1560   unsigned ARPT6                : 1;
1561   unsigned ARPT7                : 1;
1562   } __ALRMRPTbits_t;
1563 
1564 extern __at(0x0F90) volatile __ALRMRPTbits_t ALRMRPTbits;
1565 
1566 #define _ARPT0                  0x01
1567 #define _ARPT1                  0x02
1568 #define _ARPT2                  0x04
1569 #define _ARPT3                  0x08
1570 #define _ARPT4                  0x10
1571 #define _ARPT5                  0x20
1572 #define _ARPT6                  0x40
1573 #define _ARPT7                  0x80
1574 
1575 //==============================================================================
1576 
1577 
1578 //==============================================================================
1579 //        ALRMCFG Bits
1580 
1581 extern __at(0x0F91) __sfr ALRMCFG;
1582 
1583 typedef union
1584   {
1585   struct
1586     {
1587     unsigned ALRMPTR0           : 1;
1588     unsigned ALRMPTR1           : 1;
1589     unsigned AMASK0             : 1;
1590     unsigned AMASK1             : 1;
1591     unsigned AMASK2             : 1;
1592     unsigned AMASK3             : 1;
1593     unsigned CHIME              : 1;
1594     unsigned ALRMEN             : 1;
1595     };
1596 
1597   struct
1598     {
1599     unsigned ALRMPTR            : 2;
1600     unsigned                    : 6;
1601     };
1602 
1603   struct
1604     {
1605     unsigned                    : 2;
1606     unsigned AMASK              : 4;
1607     unsigned                    : 2;
1608     };
1609   } __ALRMCFGbits_t;
1610 
1611 extern __at(0x0F91) volatile __ALRMCFGbits_t ALRMCFGbits;
1612 
1613 #define _ALRMPTR0               0x01
1614 #define _ALRMPTR1               0x02
1615 #define _AMASK0                 0x04
1616 #define _AMASK1                 0x08
1617 #define _AMASK2                 0x10
1618 #define _AMASK3                 0x20
1619 #define _CHIME                  0x40
1620 #define _ALRMEN                 0x80
1621 
1622 //==============================================================================
1623 
1624 
1625 //==============================================================================
1626 //        TRISA Bits
1627 
1628 extern __at(0x0F92) __sfr TRISA;
1629 
1630 typedef struct
1631   {
1632   unsigned TRISA0               : 1;
1633   unsigned TRISA1               : 1;
1634   unsigned TRISA2               : 1;
1635   unsigned TRISA3               : 1;
1636   unsigned                      : 1;
1637   unsigned TRISA5               : 1;
1638   unsigned TRISA6               : 1;
1639   unsigned TRISA7               : 1;
1640   } __TRISAbits_t;
1641 
1642 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;
1643 
1644 #define _TRISA0                 0x01
1645 #define _TRISA1                 0x02
1646 #define _TRISA2                 0x04
1647 #define _TRISA3                 0x08
1648 #define _TRISA5                 0x20
1649 #define _TRISA6                 0x40
1650 #define _TRISA7                 0x80
1651 
1652 //==============================================================================
1653 
1654 
1655 //==============================================================================
1656 //        TRISB Bits
1657 
1658 extern __at(0x0F93) __sfr TRISB;
1659 
1660 typedef struct
1661   {
1662   unsigned TRISB0               : 1;
1663   unsigned TRISB1               : 1;
1664   unsigned TRISB2               : 1;
1665   unsigned TRISB3               : 1;
1666   unsigned TRISB4               : 1;
1667   unsigned TRISB5               : 1;
1668   unsigned TRISB6               : 1;
1669   unsigned TRISB7               : 1;
1670   } __TRISBbits_t;
1671 
1672 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;
1673 
1674 #define _TRISB0                 0x01
1675 #define _TRISB1                 0x02
1676 #define _TRISB2                 0x04
1677 #define _TRISB3                 0x08
1678 #define _TRISB4                 0x10
1679 #define _TRISB5                 0x20
1680 #define _TRISB6                 0x40
1681 #define _TRISB7                 0x80
1682 
1683 //==============================================================================
1684 
1685 
1686 //==============================================================================
1687 //        TRISC Bits
1688 
1689 extern __at(0x0F94) __sfr TRISC;
1690 
1691 typedef struct
1692   {
1693   unsigned TRISC0               : 1;
1694   unsigned TRISC1               : 1;
1695   unsigned TRISC2               : 1;
1696   unsigned TRISC3               : 1;
1697   unsigned TRISC4               : 1;
1698   unsigned TRISC5               : 1;
1699   unsigned TRISC6               : 1;
1700   unsigned TRISC7               : 1;
1701   } __TRISCbits_t;
1702 
1703 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;
1704 
1705 #define _TRISC0                 0x01
1706 #define _TRISC1                 0x02
1707 #define _TRISC2                 0x04
1708 #define _TRISC3                 0x08
1709 #define _TRISC4                 0x10
1710 #define _TRISC5                 0x20
1711 #define _TRISC6                 0x40
1712 #define _TRISC7                 0x80
1713 
1714 //==============================================================================
1715 
1716 
1717 //==============================================================================
1718 //        T3GCON Bits
1719 
1720 extern __at(0x0F97) __sfr T3GCON;
1721 
1722 typedef union
1723   {
1724   struct
1725     {
1726     unsigned T3GSS0             : 1;
1727     unsigned T3GSS1             : 1;
1728     unsigned T3GVAL             : 1;
1729     unsigned T3GGO_T3DONE       : 1;
1730     unsigned T3GSPM             : 1;
1731     unsigned T3GTM              : 1;
1732     unsigned T3GPOL             : 1;
1733     unsigned TMR3GE             : 1;
1734     };
1735 
1736   struct
1737     {
1738     unsigned                    : 1;
1739     unsigned                    : 1;
1740     unsigned                    : 1;
1741     unsigned T3GGO              : 1;
1742     unsigned                    : 1;
1743     unsigned                    : 1;
1744     unsigned                    : 1;
1745     unsigned                    : 1;
1746     };
1747 
1748   struct
1749     {
1750     unsigned                    : 1;
1751     unsigned                    : 1;
1752     unsigned                    : 1;
1753     unsigned T3DONE             : 1;
1754     unsigned                    : 1;
1755     unsigned                    : 1;
1756     unsigned                    : 1;
1757     unsigned                    : 1;
1758     };
1759 
1760   struct
1761     {
1762     unsigned T3GSS              : 2;
1763     unsigned                    : 6;
1764     };
1765   } __T3GCONbits_t;
1766 
1767 extern __at(0x0F97) volatile __T3GCONbits_t T3GCONbits;
1768 
1769 #define _T3GSS0                 0x01
1770 #define _T3GSS1                 0x02
1771 #define _T3GVAL                 0x04
1772 #define _T3GGO_T3DONE           0x08
1773 #define _T3GGO                  0x08
1774 #define _T3DONE                 0x08
1775 #define _T3GSPM                 0x10
1776 #define _T3GTM                  0x20
1777 #define _T3GPOL                 0x40
1778 #define _TMR3GE                 0x80
1779 
1780 //==============================================================================
1781 
1782 extern __at(0x0F98) __sfr RTCVALL;
1783 extern __at(0x0F99) __sfr RTCVALH;
1784 
1785 //==============================================================================
1786 //        T1GCON Bits
1787 
1788 extern __at(0x0F9A) __sfr T1GCON;
1789 
1790 typedef union
1791   {
1792   struct
1793     {
1794     unsigned T1GSS0             : 1;
1795     unsigned T1GSS1             : 1;
1796     unsigned T1GVAL             : 1;
1797     unsigned T1GGO_T1DONE       : 1;
1798     unsigned T1GSPM             : 1;
1799     unsigned T1GTM              : 1;
1800     unsigned T1GPOL             : 1;
1801     unsigned TMR1GE             : 1;
1802     };
1803 
1804   struct
1805     {
1806     unsigned                    : 1;
1807     unsigned                    : 1;
1808     unsigned                    : 1;
1809     unsigned T1GGO              : 1;
1810     unsigned                    : 1;
1811     unsigned                    : 1;
1812     unsigned                    : 1;
1813     unsigned                    : 1;
1814     };
1815 
1816   struct
1817     {
1818     unsigned                    : 1;
1819     unsigned                    : 1;
1820     unsigned                    : 1;
1821     unsigned T1DONE             : 1;
1822     unsigned                    : 1;
1823     unsigned                    : 1;
1824     unsigned                    : 1;
1825     unsigned                    : 1;
1826     };
1827 
1828   struct
1829     {
1830     unsigned T1GSS              : 2;
1831     unsigned                    : 6;
1832     };
1833   } __T1GCONbits_t;
1834 
1835 extern __at(0x0F9A) volatile __T1GCONbits_t T1GCONbits;
1836 
1837 #define _T1GSS0                 0x01
1838 #define _T1GSS1                 0x02
1839 #define _T1GVAL                 0x04
1840 #define _T1GGO_T1DONE           0x08
1841 #define _T1GGO                  0x08
1842 #define _T1DONE                 0x08
1843 #define _T1GSPM                 0x10
1844 #define _T1GTM                  0x20
1845 #define _T1GPOL                 0x40
1846 #define _TMR1GE                 0x80
1847 
1848 //==============================================================================
1849 
1850 
1851 //==============================================================================
1852 //        OSCTUNE Bits
1853 
1854 extern __at(0x0F9B) __sfr OSCTUNE;
1855 
1856 typedef union
1857   {
1858   struct
1859     {
1860     unsigned TUN0               : 1;
1861     unsigned TUN1               : 1;
1862     unsigned TUN2               : 1;
1863     unsigned TUN3               : 1;
1864     unsigned TUN4               : 1;
1865     unsigned TUN5               : 1;
1866     unsigned PLLEN              : 1;
1867     unsigned INTSRC             : 1;
1868     };
1869 
1870   struct
1871     {
1872     unsigned TUN                : 6;
1873     unsigned                    : 2;
1874     };
1875   } __OSCTUNEbits_t;
1876 
1877 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;
1878 
1879 #define _TUN0                   0x01
1880 #define _TUN1                   0x02
1881 #define _TUN2                   0x04
1882 #define _TUN3                   0x08
1883 #define _TUN4                   0x10
1884 #define _TUN5                   0x20
1885 #define _PLLEN                  0x40
1886 #define _INTSRC                 0x80
1887 
1888 //==============================================================================
1889 
1890 
1891 //==============================================================================
1892 //        RCSTA2 Bits
1893 
1894 extern __at(0x0F9C) __sfr RCSTA2;
1895 
1896 typedef union
1897   {
1898   struct
1899     {
1900     unsigned RX9D               : 1;
1901     unsigned OERR               : 1;
1902     unsigned FERR               : 1;
1903     unsigned ADDEN              : 1;
1904     unsigned CREN               : 1;
1905     unsigned SREN               : 1;
1906     unsigned RX9                : 1;
1907     unsigned SPEN               : 1;
1908     };
1909 
1910   struct
1911     {
1912     unsigned RX9D2              : 1;
1913     unsigned OERR2              : 1;
1914     unsigned FERR2              : 1;
1915     unsigned ADDEN2             : 1;
1916     unsigned CREN2              : 1;
1917     unsigned SREN2              : 1;
1918     unsigned RX92               : 1;
1919     unsigned SPEN2              : 1;
1920     };
1921   } __RCSTA2bits_t;
1922 
1923 extern __at(0x0F9C) volatile __RCSTA2bits_t RCSTA2bits;
1924 
1925 #define _RCSTA2_RX9D            0x01
1926 #define _RCSTA2_RX9D2           0x01
1927 #define _RCSTA2_OERR            0x02
1928 #define _RCSTA2_OERR2           0x02
1929 #define _RCSTA2_FERR            0x04
1930 #define _RCSTA2_FERR2           0x04
1931 #define _RCSTA2_ADDEN           0x08
1932 #define _RCSTA2_ADDEN2          0x08
1933 #define _RCSTA2_CREN            0x10
1934 #define _RCSTA2_CREN2           0x10
1935 #define _RCSTA2_SREN            0x20
1936 #define _RCSTA2_SREN2           0x20
1937 #define _RCSTA2_RX9             0x40
1938 #define _RCSTA2_RX92            0x40
1939 #define _RCSTA2_SPEN            0x80
1940 #define _RCSTA2_SPEN2           0x80
1941 
1942 //==============================================================================
1943 
1944 
1945 //==============================================================================
1946 //        PIE1 Bits
1947 
1948 extern __at(0x0F9D) __sfr PIE1;
1949 
1950 typedef union
1951   {
1952   struct
1953     {
1954     unsigned TMR1IE             : 1;
1955     unsigned TMR2IE             : 1;
1956     unsigned CCP1IE             : 1;
1957     unsigned SSP1IE             : 1;
1958     unsigned TX1IE              : 1;
1959     unsigned RC1IE              : 1;
1960     unsigned ADIE               : 1;
1961     unsigned                    : 1;
1962     };
1963 
1964   struct
1965     {
1966     unsigned                    : 1;
1967     unsigned                    : 1;
1968     unsigned                    : 1;
1969     unsigned SSPIE              : 1;
1970     unsigned TXIE               : 1;
1971     unsigned RCIE               : 1;
1972     unsigned                    : 1;
1973     unsigned                    : 1;
1974     };
1975   } __PIE1bits_t;
1976 
1977 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;
1978 
1979 #define _TMR1IE                 0x01
1980 #define _TMR2IE                 0x02
1981 #define _CCP1IE                 0x04
1982 #define _SSP1IE                 0x08
1983 #define _SSPIE                  0x08
1984 #define _TX1IE                  0x10
1985 #define _TXIE                   0x10
1986 #define _RC1IE                  0x20
1987 #define _RCIE                   0x20
1988 #define _ADIE                   0x40
1989 
1990 //==============================================================================
1991 
1992 
1993 //==============================================================================
1994 //        PIR1 Bits
1995 
1996 extern __at(0x0F9E) __sfr PIR1;
1997 
1998 typedef union
1999   {
2000   struct
2001     {
2002     unsigned TMR1IF             : 1;
2003     unsigned TMR2IF             : 1;
2004     unsigned CCP1IF             : 1;
2005     unsigned SSP1IF             : 1;
2006     unsigned TX1IF              : 1;
2007     unsigned RC1IF              : 1;
2008     unsigned ADIF               : 1;
2009     unsigned                    : 1;
2010     };
2011 
2012   struct
2013     {
2014     unsigned                    : 1;
2015     unsigned                    : 1;
2016     unsigned                    : 1;
2017     unsigned SSPIF              : 1;
2018     unsigned TXIF               : 1;
2019     unsigned RCIF               : 1;
2020     unsigned                    : 1;
2021     unsigned                    : 1;
2022     };
2023   } __PIR1bits_t;
2024 
2025 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;
2026 
2027 #define _TMR1IF                 0x01
2028 #define _TMR2IF                 0x02
2029 #define _CCP1IF                 0x04
2030 #define _SSP1IF                 0x08
2031 #define _SSPIF                  0x08
2032 #define _TX1IF                  0x10
2033 #define _TXIF                   0x10
2034 #define _RC1IF                  0x20
2035 #define _RCIF                   0x20
2036 #define _ADIF                   0x40
2037 
2038 //==============================================================================
2039 
2040 
2041 //==============================================================================
2042 //        IPR1 Bits
2043 
2044 extern __at(0x0F9F) __sfr IPR1;
2045 
2046 typedef union
2047   {
2048   struct
2049     {
2050     unsigned TMR1IP             : 1;
2051     unsigned TMR2IP             : 1;
2052     unsigned CCP1IP             : 1;
2053     unsigned SSP1IP             : 1;
2054     unsigned TX1IP              : 1;
2055     unsigned RC1IP              : 1;
2056     unsigned ADIP               : 1;
2057     unsigned                    : 1;
2058     };
2059 
2060   struct
2061     {
2062     unsigned                    : 1;
2063     unsigned                    : 1;
2064     unsigned                    : 1;
2065     unsigned SSPIP              : 1;
2066     unsigned TXIP               : 1;
2067     unsigned RCIP               : 1;
2068     unsigned                    : 1;
2069     unsigned                    : 1;
2070     };
2071   } __IPR1bits_t;
2072 
2073 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;
2074 
2075 #define _TMR1IP                 0x01
2076 #define _TMR2IP                 0x02
2077 #define _CCP1IP                 0x04
2078 #define _SSP1IP                 0x08
2079 #define _SSPIP                  0x08
2080 #define _TX1IP                  0x10
2081 #define _TXIP                   0x10
2082 #define _RC1IP                  0x20
2083 #define _RCIP                   0x20
2084 #define _ADIP                   0x40
2085 
2086 //==============================================================================
2087 
2088 
2089 //==============================================================================
2090 //        PIE2 Bits
2091 
2092 extern __at(0x0FA0) __sfr PIE2;
2093 
2094 typedef union
2095   {
2096   struct
2097     {
2098     unsigned CCP2IE             : 1;
2099     unsigned TMR3IE             : 1;
2100     unsigned LVDIE              : 1;
2101     unsigned BCL1IE             : 1;
2102     unsigned                    : 1;
2103     unsigned CM1IE              : 1;
2104     unsigned CM2IE              : 1;
2105     unsigned OSCFIE             : 1;
2106     };
2107 
2108   struct
2109     {
2110     unsigned                    : 1;
2111     unsigned                    : 1;
2112     unsigned                    : 1;
2113     unsigned BCLIE              : 1;
2114     unsigned                    : 1;
2115     unsigned                    : 1;
2116     unsigned                    : 1;
2117     unsigned                    : 1;
2118     };
2119   } __PIE2bits_t;
2120 
2121 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;
2122 
2123 #define _CCP2IE                 0x01
2124 #define _TMR3IE                 0x02
2125 #define _LVDIE                  0x04
2126 #define _BCL1IE                 0x08
2127 #define _BCLIE                  0x08
2128 #define _CM1IE                  0x20
2129 #define _CM2IE                  0x40
2130 #define _OSCFIE                 0x80
2131 
2132 //==============================================================================
2133 
2134 
2135 //==============================================================================
2136 //        PIR2 Bits
2137 
2138 extern __at(0x0FA1) __sfr PIR2;
2139 
2140 typedef union
2141   {
2142   struct
2143     {
2144     unsigned CCP2IF             : 1;
2145     unsigned TMR3IF             : 1;
2146     unsigned LVDIF              : 1;
2147     unsigned BCL1IF             : 1;
2148     unsigned                    : 1;
2149     unsigned CM1IF              : 1;
2150     unsigned CM2IF              : 1;
2151     unsigned OSCFIF             : 1;
2152     };
2153 
2154   struct
2155     {
2156     unsigned                    : 1;
2157     unsigned                    : 1;
2158     unsigned                    : 1;
2159     unsigned BCLIF              : 1;
2160     unsigned                    : 1;
2161     unsigned                    : 1;
2162     unsigned                    : 1;
2163     unsigned                    : 1;
2164     };
2165   } __PIR2bits_t;
2166 
2167 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;
2168 
2169 #define _CCP2IF                 0x01
2170 #define _TMR3IF                 0x02
2171 #define _LVDIF                  0x04
2172 #define _BCL1IF                 0x08
2173 #define _BCLIF                  0x08
2174 #define _CM1IF                  0x20
2175 #define _CM2IF                  0x40
2176 #define _OSCFIF                 0x80
2177 
2178 //==============================================================================
2179 
2180 
2181 //==============================================================================
2182 //        IPR2 Bits
2183 
2184 extern __at(0x0FA2) __sfr IPR2;
2185 
2186 typedef union
2187   {
2188   struct
2189     {
2190     unsigned CCP2IP             : 1;
2191     unsigned TMR3IP             : 1;
2192     unsigned LVDIP              : 1;
2193     unsigned BCL1IP             : 1;
2194     unsigned                    : 1;
2195     unsigned CM1IP              : 1;
2196     unsigned CM2IP              : 1;
2197     unsigned OSCFIP             : 1;
2198     };
2199 
2200   struct
2201     {
2202     unsigned                    : 1;
2203     unsigned                    : 1;
2204     unsigned                    : 1;
2205     unsigned BCLIP              : 1;
2206     unsigned                    : 1;
2207     unsigned                    : 1;
2208     unsigned                    : 1;
2209     unsigned                    : 1;
2210     };
2211   } __IPR2bits_t;
2212 
2213 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;
2214 
2215 #define _CCP2IP                 0x01
2216 #define _TMR3IP                 0x02
2217 #define _LVDIP                  0x04
2218 #define _BCL1IP                 0x08
2219 #define _BCLIP                  0x08
2220 #define _CM1IP                  0x20
2221 #define _CM2IP                  0x40
2222 #define _OSCFIP                 0x80
2223 
2224 //==============================================================================
2225 
2226 
2227 //==============================================================================
2228 //        PIE3 Bits
2229 
2230 extern __at(0x0FA3) __sfr PIE3;
2231 
2232 typedef struct
2233   {
2234   unsigned RTCCIE               : 1;
2235   unsigned TMR3GIE              : 1;
2236   unsigned CTMUIE               : 1;
2237   unsigned TMR4IE               : 1;
2238   unsigned TX2IE                : 1;
2239   unsigned RC2IE                : 1;
2240   unsigned BCL2IE               : 1;
2241   unsigned SSP2IE               : 1;
2242   } __PIE3bits_t;
2243 
2244 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;
2245 
2246 #define _RTCCIE                 0x01
2247 #define _TMR3GIE                0x02
2248 #define _CTMUIE                 0x04
2249 #define _TMR4IE                 0x08
2250 #define _TX2IE                  0x10
2251 #define _RC2IE                  0x20
2252 #define _BCL2IE                 0x40
2253 #define _SSP2IE                 0x80
2254 
2255 //==============================================================================
2256 
2257 
2258 //==============================================================================
2259 //        PIR3 Bits
2260 
2261 extern __at(0x0FA4) __sfr PIR3;
2262 
2263 typedef struct
2264   {
2265   unsigned RTCCIF               : 1;
2266   unsigned TMR3GIF              : 1;
2267   unsigned CTMUIF               : 1;
2268   unsigned TMR4IF               : 1;
2269   unsigned TX2IF                : 1;
2270   unsigned RC2IF                : 1;
2271   unsigned BCL2IF               : 1;
2272   unsigned SSP2IF               : 1;
2273   } __PIR3bits_t;
2274 
2275 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;
2276 
2277 #define _RTCCIF                 0x01
2278 #define _TMR3GIF                0x02
2279 #define _CTMUIF                 0x04
2280 #define _TMR4IF                 0x08
2281 #define _TX2IF                  0x10
2282 #define _RC2IF                  0x20
2283 #define _BCL2IF                 0x40
2284 #define _SSP2IF                 0x80
2285 
2286 //==============================================================================
2287 
2288 
2289 //==============================================================================
2290 //        IPR3 Bits
2291 
2292 extern __at(0x0FA5) __sfr IPR3;
2293 
2294 typedef struct
2295   {
2296   unsigned RTCCIP               : 1;
2297   unsigned TMR3GIP              : 1;
2298   unsigned CTMUIP               : 1;
2299   unsigned TMR4IP               : 1;
2300   unsigned TX2IP                : 1;
2301   unsigned RC2IP                : 1;
2302   unsigned BCL2IP               : 1;
2303   unsigned SSP2IP               : 1;
2304   } __IPR3bits_t;
2305 
2306 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;
2307 
2308 #define _RTCCIP                 0x01
2309 #define _TMR3GIP                0x02
2310 #define _CTMUIP                 0x04
2311 #define _TMR4IP                 0x08
2312 #define _TX2IP                  0x10
2313 #define _RC2IP                  0x20
2314 #define _BCL2IP                 0x40
2315 #define _SSP2IP                 0x80
2316 
2317 //==============================================================================
2318 
2319 
2320 //==============================================================================
2321 //        EECON1 Bits
2322 
2323 extern __at(0x0FA6) __sfr EECON1;
2324 
2325 typedef struct
2326   {
2327   unsigned                      : 1;
2328   unsigned WR                   : 1;
2329   unsigned WREN                 : 1;
2330   unsigned WRERR                : 1;
2331   unsigned FREE                 : 1;
2332   unsigned WPROG                : 1;
2333   unsigned                      : 1;
2334   unsigned                      : 1;
2335   } __EECON1bits_t;
2336 
2337 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits;
2338 
2339 #define _WR                     0x02
2340 #define _WREN                   0x04
2341 #define _WRERR                  0x08
2342 #define _FREE                   0x10
2343 #define _WPROG                  0x20
2344 
2345 //==============================================================================
2346 
2347 extern __at(0x0FA7) __sfr EECON2;
2348 
2349 //==============================================================================
2350 //        TXSTA2 Bits
2351 
2352 extern __at(0x0FA8) __sfr TXSTA2;
2353 
2354 typedef union
2355   {
2356   struct
2357     {
2358     unsigned TX9D               : 1;
2359     unsigned TRMT               : 1;
2360     unsigned BRGH               : 1;
2361     unsigned SENDB              : 1;
2362     unsigned SYNC               : 1;
2363     unsigned TXEN               : 1;
2364     unsigned TX9                : 1;
2365     unsigned CSRC               : 1;
2366     };
2367 
2368   struct
2369     {
2370     unsigned TX9D2              : 1;
2371     unsigned TRMT2              : 1;
2372     unsigned BRGH2              : 1;
2373     unsigned SENDB2             : 1;
2374     unsigned SYNC2              : 1;
2375     unsigned TXEN2              : 1;
2376     unsigned TX92               : 1;
2377     unsigned CSRC2              : 1;
2378     };
2379   } __TXSTA2bits_t;
2380 
2381 extern __at(0x0FA8) volatile __TXSTA2bits_t TXSTA2bits;
2382 
2383 #define _TXSTA2_TX9D            0x01
2384 #define _TXSTA2_TX9D2           0x01
2385 #define _TXSTA2_TRMT            0x02
2386 #define _TXSTA2_TRMT2           0x02
2387 #define _TXSTA2_BRGH            0x04
2388 #define _TXSTA2_BRGH2           0x04
2389 #define _TXSTA2_SENDB           0x08
2390 #define _TXSTA2_SENDB2          0x08
2391 #define _TXSTA2_SYNC            0x10
2392 #define _TXSTA2_SYNC2           0x10
2393 #define _TXSTA2_TXEN            0x20
2394 #define _TXSTA2_TXEN2           0x20
2395 #define _TXSTA2_TX9             0x40
2396 #define _TXSTA2_TX92            0x40
2397 #define _TXSTA2_CSRC            0x80
2398 #define _TXSTA2_CSRC2           0x80
2399 
2400 //==============================================================================
2401 
2402 extern __at(0x0FA9) __sfr TXREG2;
2403 extern __at(0x0FAA) __sfr RCREG2;
2404 extern __at(0x0FAB) __sfr SPBRG2;
2405 
2406 //==============================================================================
2407 //        RCSTA Bits
2408 
2409 extern __at(0x0FAC) __sfr RCSTA;
2410 
2411 typedef union
2412   {
2413   struct
2414     {
2415     unsigned RX9D               : 1;
2416     unsigned OERR               : 1;
2417     unsigned FERR               : 1;
2418     unsigned ADDEN              : 1;
2419     unsigned CREN               : 1;
2420     unsigned SREN               : 1;
2421     unsigned RX9                : 1;
2422     unsigned SPEN               : 1;
2423     };
2424 
2425   struct
2426     {
2427     unsigned RCD8               : 1;
2428     unsigned OERR1              : 1;
2429     unsigned FERR1              : 1;
2430     unsigned ADEN               : 1;
2431     unsigned CREN1              : 1;
2432     unsigned SREN1              : 1;
2433     unsigned RC9                : 1;
2434     unsigned SPEN1              : 1;
2435     };
2436 
2437   struct
2438     {
2439     unsigned RX9D1              : 1;
2440     unsigned                    : 1;
2441     unsigned                    : 1;
2442     unsigned ADDEN1             : 1;
2443     unsigned                    : 1;
2444     unsigned                    : 1;
2445     unsigned NOT_RC8            : 1;
2446     unsigned                    : 1;
2447     };
2448 
2449   struct
2450     {
2451     unsigned                    : 1;
2452     unsigned                    : 1;
2453     unsigned                    : 1;
2454     unsigned                    : 1;
2455     unsigned                    : 1;
2456     unsigned                    : 1;
2457     unsigned RC8_9              : 1;
2458     unsigned                    : 1;
2459     };
2460 
2461   struct
2462     {
2463     unsigned                    : 1;
2464     unsigned                    : 1;
2465     unsigned                    : 1;
2466     unsigned                    : 1;
2467     unsigned                    : 1;
2468     unsigned                    : 1;
2469     unsigned RX91               : 1;
2470     unsigned                    : 1;
2471     };
2472   } __RCSTAbits_t;
2473 
2474 extern __at(0x0FAC) volatile __RCSTAbits_t RCSTAbits;
2475 
2476 #define _RX9D                   0x01
2477 #define _RCD8                   0x01
2478 #define _RX9D1                  0x01
2479 #define _OERR                   0x02
2480 #define _OERR1                  0x02
2481 #define _FERR                   0x04
2482 #define _FERR1                  0x04
2483 #define _ADDEN                  0x08
2484 #define _ADEN                   0x08
2485 #define _ADDEN1                 0x08
2486 #define _CREN                   0x10
2487 #define _CREN1                  0x10
2488 #define _SREN                   0x20
2489 #define _SREN1                  0x20
2490 #define _RX9                    0x40
2491 #define _RC9                    0x40
2492 #define _NOT_RC8                0x40
2493 #define _RC8_9                  0x40
2494 #define _RX91                   0x40
2495 #define _SPEN                   0x80
2496 #define _SPEN1                  0x80
2497 
2498 //==============================================================================
2499 
2500 
2501 //==============================================================================
2502 //        RCSTA1 Bits
2503 
2504 extern __at(0x0FAC) __sfr RCSTA1;
2505 
2506 typedef union
2507   {
2508   struct
2509     {
2510     unsigned RX9D               : 1;
2511     unsigned OERR               : 1;
2512     unsigned FERR               : 1;
2513     unsigned ADDEN              : 1;
2514     unsigned CREN               : 1;
2515     unsigned SREN               : 1;
2516     unsigned RX9                : 1;
2517     unsigned SPEN               : 1;
2518     };
2519 
2520   struct
2521     {
2522     unsigned RCD8               : 1;
2523     unsigned OERR1              : 1;
2524     unsigned FERR1              : 1;
2525     unsigned ADEN               : 1;
2526     unsigned CREN1              : 1;
2527     unsigned SREN1              : 1;
2528     unsigned RC9                : 1;
2529     unsigned SPEN1              : 1;
2530     };
2531 
2532   struct
2533     {
2534     unsigned RX9D1              : 1;
2535     unsigned                    : 1;
2536     unsigned                    : 1;
2537     unsigned ADDEN1             : 1;
2538     unsigned                    : 1;
2539     unsigned                    : 1;
2540     unsigned NOT_RC8            : 1;
2541     unsigned                    : 1;
2542     };
2543 
2544   struct
2545     {
2546     unsigned                    : 1;
2547     unsigned                    : 1;
2548     unsigned                    : 1;
2549     unsigned                    : 1;
2550     unsigned                    : 1;
2551     unsigned                    : 1;
2552     unsigned RC8_9              : 1;
2553     unsigned                    : 1;
2554     };
2555 
2556   struct
2557     {
2558     unsigned                    : 1;
2559     unsigned                    : 1;
2560     unsigned                    : 1;
2561     unsigned                    : 1;
2562     unsigned                    : 1;
2563     unsigned                    : 1;
2564     unsigned RX91               : 1;
2565     unsigned                    : 1;
2566     };
2567   } __RCSTA1bits_t;
2568 
2569 extern __at(0x0FAC) volatile __RCSTA1bits_t RCSTA1bits;
2570 
2571 #define _RCSTA1_RX9D            0x01
2572 #define _RCSTA1_RCD8            0x01
2573 #define _RCSTA1_RX9D1           0x01
2574 #define _RCSTA1_OERR            0x02
2575 #define _RCSTA1_OERR1           0x02
2576 #define _RCSTA1_FERR            0x04
2577 #define _RCSTA1_FERR1           0x04
2578 #define _RCSTA1_ADDEN           0x08
2579 #define _RCSTA1_ADEN            0x08
2580 #define _RCSTA1_ADDEN1          0x08
2581 #define _RCSTA1_CREN            0x10
2582 #define _RCSTA1_CREN1           0x10
2583 #define _RCSTA1_SREN            0x20
2584 #define _RCSTA1_SREN1           0x20
2585 #define _RCSTA1_RX9             0x40
2586 #define _RCSTA1_RC9             0x40
2587 #define _RCSTA1_NOT_RC8         0x40
2588 #define _RCSTA1_RC8_9           0x40
2589 #define _RCSTA1_RX91            0x40
2590 #define _RCSTA1_SPEN            0x80
2591 #define _RCSTA1_SPEN1           0x80
2592 
2593 //==============================================================================
2594 
2595 
2596 //==============================================================================
2597 //        TXSTA Bits
2598 
2599 extern __at(0x0FAD) __sfr TXSTA;
2600 
2601 typedef union
2602   {
2603   struct
2604     {
2605     unsigned TX9D               : 1;
2606     unsigned TRMT               : 1;
2607     unsigned BRGH               : 1;
2608     unsigned SENDB              : 1;
2609     unsigned SYNC               : 1;
2610     unsigned TXEN               : 1;
2611     unsigned TX9                : 1;
2612     unsigned CSRC               : 1;
2613     };
2614 
2615   struct
2616     {
2617     unsigned TXD8               : 1;
2618     unsigned TRMT1              : 1;
2619     unsigned BRGH1              : 1;
2620     unsigned SENDB1             : 1;
2621     unsigned SYNC1              : 1;
2622     unsigned TXEN1              : 1;
2623     unsigned TX8_9              : 1;
2624     unsigned CSRC1              : 1;
2625     };
2626 
2627   struct
2628     {
2629     unsigned TX9D1              : 1;
2630     unsigned                    : 1;
2631     unsigned                    : 1;
2632     unsigned                    : 1;
2633     unsigned                    : 1;
2634     unsigned                    : 1;
2635     unsigned NOT_TX8            : 1;
2636     unsigned                    : 1;
2637     };
2638 
2639   struct
2640     {
2641     unsigned                    : 1;
2642     unsigned                    : 1;
2643     unsigned                    : 1;
2644     unsigned                    : 1;
2645     unsigned                    : 1;
2646     unsigned                    : 1;
2647     unsigned TX91               : 1;
2648     unsigned                    : 1;
2649     };
2650   } __TXSTAbits_t;
2651 
2652 extern __at(0x0FAD) volatile __TXSTAbits_t TXSTAbits;
2653 
2654 #define _TX9D                   0x01
2655 #define _TXD8                   0x01
2656 #define _TX9D1                  0x01
2657 #define _TRMT                   0x02
2658 #define _TRMT1                  0x02
2659 #define _BRGH                   0x04
2660 #define _BRGH1                  0x04
2661 #define _SENDB                  0x08
2662 #define _SENDB1                 0x08
2663 #define _SYNC                   0x10
2664 #define _SYNC1                  0x10
2665 #define _TXEN                   0x20
2666 #define _TXEN1                  0x20
2667 #define _TX9                    0x40
2668 #define _TX8_9                  0x40
2669 #define _NOT_TX8                0x40
2670 #define _TX91                   0x40
2671 #define _CSRC                   0x80
2672 #define _CSRC1                  0x80
2673 
2674 //==============================================================================
2675 
2676 
2677 //==============================================================================
2678 //        TXSTA1 Bits
2679 
2680 extern __at(0x0FAD) __sfr TXSTA1;
2681 
2682 typedef union
2683   {
2684   struct
2685     {
2686     unsigned TX9D               : 1;
2687     unsigned TRMT               : 1;
2688     unsigned BRGH               : 1;
2689     unsigned SENDB              : 1;
2690     unsigned SYNC               : 1;
2691     unsigned TXEN               : 1;
2692     unsigned TX9                : 1;
2693     unsigned CSRC               : 1;
2694     };
2695 
2696   struct
2697     {
2698     unsigned TXD8               : 1;
2699     unsigned TRMT1              : 1;
2700     unsigned BRGH1              : 1;
2701     unsigned SENDB1             : 1;
2702     unsigned SYNC1              : 1;
2703     unsigned TXEN1              : 1;
2704     unsigned TX8_9              : 1;
2705     unsigned CSRC1              : 1;
2706     };
2707 
2708   struct
2709     {
2710     unsigned TX9D1              : 1;
2711     unsigned                    : 1;
2712     unsigned                    : 1;
2713     unsigned                    : 1;
2714     unsigned                    : 1;
2715     unsigned                    : 1;
2716     unsigned NOT_TX8            : 1;
2717     unsigned                    : 1;
2718     };
2719 
2720   struct
2721     {
2722     unsigned                    : 1;
2723     unsigned                    : 1;
2724     unsigned                    : 1;
2725     unsigned                    : 1;
2726     unsigned                    : 1;
2727     unsigned                    : 1;
2728     unsigned TX91               : 1;
2729     unsigned                    : 1;
2730     };
2731   } __TXSTA1bits_t;
2732 
2733 extern __at(0x0FAD) volatile __TXSTA1bits_t TXSTA1bits;
2734 
2735 #define _TXSTA1_TX9D            0x01
2736 #define _TXSTA1_TXD8            0x01
2737 #define _TXSTA1_TX9D1           0x01
2738 #define _TXSTA1_TRMT            0x02
2739 #define _TXSTA1_TRMT1           0x02
2740 #define _TXSTA1_BRGH            0x04
2741 #define _TXSTA1_BRGH1           0x04
2742 #define _TXSTA1_SENDB           0x08
2743 #define _TXSTA1_SENDB1          0x08
2744 #define _TXSTA1_SYNC            0x10
2745 #define _TXSTA1_SYNC1           0x10
2746 #define _TXSTA1_TXEN            0x20
2747 #define _TXSTA1_TXEN1           0x20
2748 #define _TXSTA1_TX9             0x40
2749 #define _TXSTA1_TX8_9           0x40
2750 #define _TXSTA1_NOT_TX8         0x40
2751 #define _TXSTA1_TX91            0x40
2752 #define _TXSTA1_CSRC            0x80
2753 #define _TXSTA1_CSRC1           0x80
2754 
2755 //==============================================================================
2756 
2757 extern __at(0x0FAE) __sfr TXREG;
2758 extern __at(0x0FAE) __sfr TXREG1;
2759 extern __at(0x0FAF) __sfr RCREG;
2760 extern __at(0x0FAF) __sfr RCREG1;
2761 extern __at(0x0FB0) __sfr SPBRG;
2762 extern __at(0x0FB0) __sfr SPBRG1;
2763 
2764 //==============================================================================
2765 //        CTMUICON Bits
2766 
2767 extern __at(0x0FB1) __sfr CTMUICON;
2768 
2769 typedef union
2770   {
2771   struct
2772     {
2773     unsigned IRNG0              : 1;
2774     unsigned IRNG1              : 1;
2775     unsigned ITRIM0             : 1;
2776     unsigned ITRIM1             : 1;
2777     unsigned ITRIM2             : 1;
2778     unsigned ITRIM3             : 1;
2779     unsigned ITRIM4             : 1;
2780     unsigned ITRIM5             : 1;
2781     };
2782 
2783   struct
2784     {
2785     unsigned IRNG               : 2;
2786     unsigned                    : 6;
2787     };
2788 
2789   struct
2790     {
2791     unsigned                    : 2;
2792     unsigned ITRIM              : 6;
2793     };
2794   } __CTMUICONbits_t;
2795 
2796 extern __at(0x0FB1) volatile __CTMUICONbits_t CTMUICONbits;
2797 
2798 #define _IRNG0                  0x01
2799 #define _IRNG1                  0x02
2800 #define _ITRIM0                 0x04
2801 #define _ITRIM1                 0x08
2802 #define _ITRIM2                 0x10
2803 #define _ITRIM3                 0x20
2804 #define _ITRIM4                 0x40
2805 #define _ITRIM5                 0x80
2806 
2807 //==============================================================================
2808 
2809 
2810 //==============================================================================
2811 //        CTMUCONL Bits
2812 
2813 extern __at(0x0FB2) __sfr CTMUCONL;
2814 
2815 typedef union
2816   {
2817   struct
2818     {
2819     unsigned EDG1STAT           : 1;
2820     unsigned EDG2STAT           : 1;
2821     unsigned EDG1SEL0           : 1;
2822     unsigned EDG1SEL1           : 1;
2823     unsigned EDG1POL            : 1;
2824     unsigned EDG2SEL0           : 1;
2825     unsigned EDG2SEL1           : 1;
2826     unsigned EDG2POL            : 1;
2827     };
2828 
2829   struct
2830     {
2831     unsigned                    : 2;
2832     unsigned EDG1SEL            : 2;
2833     unsigned                    : 4;
2834     };
2835 
2836   struct
2837     {
2838     unsigned                    : 5;
2839     unsigned EDG2SEL            : 2;
2840     unsigned                    : 1;
2841     };
2842   } __CTMUCONLbits_t;
2843 
2844 extern __at(0x0FB2) volatile __CTMUCONLbits_t CTMUCONLbits;
2845 
2846 #define _EDG1STAT               0x01
2847 #define _EDG2STAT               0x02
2848 #define _EDG1SEL0               0x04
2849 #define _EDG1SEL1               0x08
2850 #define _EDG1POL                0x10
2851 #define _EDG2SEL0               0x20
2852 #define _EDG2SEL1               0x40
2853 #define _EDG2POL                0x80
2854 
2855 //==============================================================================
2856 
2857 
2858 //==============================================================================
2859 //        CTMUCONH Bits
2860 
2861 extern __at(0x0FB3) __sfr CTMUCONH;
2862 
2863 typedef struct
2864   {
2865   unsigned CTTRIG               : 1;
2866   unsigned IDISSEN              : 1;
2867   unsigned EDGSEQEN             : 1;
2868   unsigned EDGEN                : 1;
2869   unsigned TGEN                 : 1;
2870   unsigned CTMUSIDL             : 1;
2871   unsigned                      : 1;
2872   unsigned CTMUEN               : 1;
2873   } __CTMUCONHbits_t;
2874 
2875 extern __at(0x0FB3) volatile __CTMUCONHbits_t CTMUCONHbits;
2876 
2877 #define _CTTRIG                 0x01
2878 #define _IDISSEN                0x02
2879 #define _EDGSEQEN               0x04
2880 #define _EDGEN                  0x08
2881 #define _TGEN                   0x10
2882 #define _CTMUSIDL               0x20
2883 #define _CTMUEN                 0x80
2884 
2885 //==============================================================================
2886 
2887 
2888 //==============================================================================
2889 //        CCP2CON Bits
2890 
2891 extern __at(0x0FB4) __sfr CCP2CON;
2892 
2893 typedef union
2894   {
2895   struct
2896     {
2897     unsigned CCP2M0             : 1;
2898     unsigned CCP2M1             : 1;
2899     unsigned CCP2M2             : 1;
2900     unsigned CCP2M3             : 1;
2901     unsigned DC2B0              : 1;
2902     unsigned DC2B1              : 1;
2903     unsigned P2M0               : 1;
2904     unsigned P2M1               : 1;
2905     };
2906 
2907   struct
2908     {
2909     unsigned                    : 1;
2910     unsigned                    : 1;
2911     unsigned                    : 1;
2912     unsigned                    : 1;
2913     unsigned CCP2Y              : 1;
2914     unsigned CCP2X              : 1;
2915     unsigned                    : 1;
2916     unsigned                    : 1;
2917     };
2918 
2919   struct
2920     {
2921     unsigned CCP2M              : 4;
2922     unsigned                    : 4;
2923     };
2924 
2925   struct
2926     {
2927     unsigned                    : 4;
2928     unsigned DC2B               : 2;
2929     unsigned                    : 2;
2930     };
2931 
2932   struct
2933     {
2934     unsigned                    : 6;
2935     unsigned P2M                : 2;
2936     };
2937   } __CCP2CONbits_t;
2938 
2939 extern __at(0x0FB4) volatile __CCP2CONbits_t CCP2CONbits;
2940 
2941 #define _CCP2M0                 0x01
2942 #define _CCP2M1                 0x02
2943 #define _CCP2M2                 0x04
2944 #define _CCP2M3                 0x08
2945 #define _DC2B0                  0x10
2946 #define _CCP2Y                  0x10
2947 #define _DC2B1                  0x20
2948 #define _CCP2X                  0x20
2949 #define _P2M0                   0x40
2950 #define _P2M1                   0x80
2951 
2952 //==============================================================================
2953 
2954 
2955 //==============================================================================
2956 //        ECCP2CON Bits
2957 
2958 extern __at(0x0FB4) __sfr ECCP2CON;
2959 
2960 typedef union
2961   {
2962   struct
2963     {
2964     unsigned CCP2M0             : 1;
2965     unsigned CCP2M1             : 1;
2966     unsigned CCP2M2             : 1;
2967     unsigned CCP2M3             : 1;
2968     unsigned DC2B0              : 1;
2969     unsigned DC2B1              : 1;
2970     unsigned P2M0               : 1;
2971     unsigned P2M1               : 1;
2972     };
2973 
2974   struct
2975     {
2976     unsigned                    : 1;
2977     unsigned                    : 1;
2978     unsigned                    : 1;
2979     unsigned                    : 1;
2980     unsigned CCP2Y              : 1;
2981     unsigned CCP2X              : 1;
2982     unsigned                    : 1;
2983     unsigned                    : 1;
2984     };
2985 
2986   struct
2987     {
2988     unsigned CCP2M              : 4;
2989     unsigned                    : 4;
2990     };
2991 
2992   struct
2993     {
2994     unsigned                    : 4;
2995     unsigned DC2B               : 2;
2996     unsigned                    : 2;
2997     };
2998 
2999   struct
3000     {
3001     unsigned                    : 6;
3002     unsigned P2M                : 2;
3003     };
3004   } __ECCP2CONbits_t;
3005 
3006 extern __at(0x0FB4) volatile __ECCP2CONbits_t ECCP2CONbits;
3007 
3008 #define _ECCP2CON_CCP2M0        0x01
3009 #define _ECCP2CON_CCP2M1        0x02
3010 #define _ECCP2CON_CCP2M2        0x04
3011 #define _ECCP2CON_CCP2M3        0x08
3012 #define _ECCP2CON_DC2B0         0x10
3013 #define _ECCP2CON_CCP2Y         0x10
3014 #define _ECCP2CON_DC2B1         0x20
3015 #define _ECCP2CON_CCP2X         0x20
3016 #define _ECCP2CON_P2M0          0x40
3017 #define _ECCP2CON_P2M1          0x80
3018 
3019 //==============================================================================
3020 
3021 extern __at(0x0FB5) __sfr CCPR2;
3022 extern __at(0x0FB5) __sfr CCPR2L;
3023 extern __at(0x0FB6) __sfr CCPR2H;
3024 
3025 //==============================================================================
3026 //        ECCP2DEL Bits
3027 
3028 extern __at(0x0FB7) __sfr ECCP2DEL;
3029 
3030 typedef union
3031   {
3032   struct
3033     {
3034     unsigned P2DC0              : 1;
3035     unsigned P2DC1              : 1;
3036     unsigned P2DC2              : 1;
3037     unsigned P2DC3              : 1;
3038     unsigned P2DC4              : 1;
3039     unsigned P2DC5              : 1;
3040     unsigned P2DC6              : 1;
3041     unsigned P2RSEN             : 1;
3042     };
3043 
3044   struct
3045     {
3046     unsigned P2DC               : 7;
3047     unsigned                    : 1;
3048     };
3049   } __ECCP2DELbits_t;
3050 
3051 extern __at(0x0FB7) volatile __ECCP2DELbits_t ECCP2DELbits;
3052 
3053 #define _P2DC0                  0x01
3054 #define _P2DC1                  0x02
3055 #define _P2DC2                  0x04
3056 #define _P2DC3                  0x08
3057 #define _P2DC4                  0x10
3058 #define _P2DC5                  0x20
3059 #define _P2DC6                  0x40
3060 #define _P2RSEN                 0x80
3061 
3062 //==============================================================================
3063 
3064 
3065 //==============================================================================
3066 //        PWM2CON Bits
3067 
3068 extern __at(0x0FB7) __sfr PWM2CON;
3069 
3070 typedef union
3071   {
3072   struct
3073     {
3074     unsigned P2DC0              : 1;
3075     unsigned P2DC1              : 1;
3076     unsigned P2DC2              : 1;
3077     unsigned P2DC3              : 1;
3078     unsigned P2DC4              : 1;
3079     unsigned P2DC5              : 1;
3080     unsigned P2DC6              : 1;
3081     unsigned P2RSEN             : 1;
3082     };
3083 
3084   struct
3085     {
3086     unsigned P2DC               : 7;
3087     unsigned                    : 1;
3088     };
3089   } __PWM2CONbits_t;
3090 
3091 extern __at(0x0FB7) volatile __PWM2CONbits_t PWM2CONbits;
3092 
3093 #define _PWM2CON_P2DC0          0x01
3094 #define _PWM2CON_P2DC1          0x02
3095 #define _PWM2CON_P2DC2          0x04
3096 #define _PWM2CON_P2DC3          0x08
3097 #define _PWM2CON_P2DC4          0x10
3098 #define _PWM2CON_P2DC5          0x20
3099 #define _PWM2CON_P2DC6          0x40
3100 #define _PWM2CON_P2RSEN         0x80
3101 
3102 //==============================================================================
3103 
3104 
3105 //==============================================================================
3106 //        ECCP2AS Bits
3107 
3108 extern __at(0x0FB8) __sfr ECCP2AS;
3109 
3110 typedef union
3111   {
3112   struct
3113     {
3114     unsigned PSS2BD0            : 1;
3115     unsigned PSS2BD1            : 1;
3116     unsigned PSS2AC0            : 1;
3117     unsigned PSS2AC1            : 1;
3118     unsigned ECCP2AS0           : 1;
3119     unsigned ECCP2AS1           : 1;
3120     unsigned ECCP2AS2           : 1;
3121     unsigned ECCP2ASE           : 1;
3122     };
3123 
3124   struct
3125     {
3126     unsigned PSS2BD             : 2;
3127     unsigned                    : 6;
3128     };
3129 
3130   struct
3131     {
3132     unsigned                    : 2;
3133     unsigned PSS2AC             : 2;
3134     unsigned                    : 4;
3135     };
3136 
3137   struct
3138     {
3139     unsigned                    : 4;
3140     unsigned ECCP2AS            : 3;
3141     unsigned                    : 1;
3142     };
3143   } __ECCP2ASbits_t;
3144 
3145 extern __at(0x0FB8) volatile __ECCP2ASbits_t ECCP2ASbits;
3146 
3147 #define _PSS2BD0                0x01
3148 #define _PSS2BD1                0x02
3149 #define _PSS2AC0                0x04
3150 #define _PSS2AC1                0x08
3151 #define _ECCP2AS0               0x10
3152 #define _ECCP2AS1               0x20
3153 #define _ECCP2AS2               0x40
3154 #define _ECCP2ASE               0x80
3155 
3156 //==============================================================================
3157 
3158 
3159 //==============================================================================
3160 //        PSTR2CON Bits
3161 
3162 extern __at(0x0FB9) __sfr PSTR2CON;
3163 
3164 typedef union
3165   {
3166   struct
3167     {
3168     unsigned STRA               : 1;
3169     unsigned STRB               : 1;
3170     unsigned STRC               : 1;
3171     unsigned STRD               : 1;
3172     unsigned STRSYNC            : 1;
3173     unsigned P2DC5              : 1;
3174     unsigned CMPL0              : 1;
3175     unsigned CMPL1              : 1;
3176     };
3177 
3178   struct
3179     {
3180     unsigned P2DC0              : 1;
3181     unsigned P2DC1              : 1;
3182     unsigned P2DC2              : 1;
3183     unsigned P2DC3              : 1;
3184     unsigned P2DC4              : 1;
3185     unsigned                    : 1;
3186     unsigned P2DC6              : 1;
3187     unsigned                    : 1;
3188     };
3189 
3190   struct
3191     {
3192     unsigned P2DC               : 7;
3193     unsigned                    : 1;
3194     };
3195 
3196   struct
3197     {
3198     unsigned                    : 6;
3199     unsigned CMPL               : 2;
3200     };
3201   } __PSTR2CONbits_t;
3202 
3203 extern __at(0x0FB9) volatile __PSTR2CONbits_t PSTR2CONbits;
3204 
3205 #define _PSTR2CON_STRA          0x01
3206 #define _PSTR2CON_P2DC0         0x01
3207 #define _PSTR2CON_STRB          0x02
3208 #define _PSTR2CON_P2DC1         0x02
3209 #define _PSTR2CON_STRC          0x04
3210 #define _PSTR2CON_P2DC2         0x04
3211 #define _PSTR2CON_STRD          0x08
3212 #define _PSTR2CON_P2DC3         0x08
3213 #define _PSTR2CON_STRSYNC       0x10
3214 #define _PSTR2CON_P2DC4         0x10
3215 #define _PSTR2CON_P2DC5         0x20
3216 #define _PSTR2CON_CMPL0         0x40
3217 #define _PSTR2CON_P2DC6         0x40
3218 #define _PSTR2CON_CMPL1         0x80
3219 
3220 //==============================================================================
3221 
3222 
3223 //==============================================================================
3224 //        CCP1CON Bits
3225 
3226 extern __at(0x0FBA) __sfr CCP1CON;
3227 
3228 typedef union
3229   {
3230   struct
3231     {
3232     unsigned CCP1M0             : 1;
3233     unsigned CCP1M1             : 1;
3234     unsigned CCP1M2             : 1;
3235     unsigned CCP1M3             : 1;
3236     unsigned DC1B0              : 1;
3237     unsigned DC1B1              : 1;
3238     unsigned P1M0               : 1;
3239     unsigned P1M1               : 1;
3240     };
3241 
3242   struct
3243     {
3244     unsigned                    : 1;
3245     unsigned                    : 1;
3246     unsigned                    : 1;
3247     unsigned                    : 1;
3248     unsigned CCP1Y              : 1;
3249     unsigned CCP1X              : 1;
3250     unsigned                    : 1;
3251     unsigned                    : 1;
3252     };
3253 
3254   struct
3255     {
3256     unsigned CCP1M              : 4;
3257     unsigned                    : 4;
3258     };
3259 
3260   struct
3261     {
3262     unsigned                    : 4;
3263     unsigned DC1B               : 2;
3264     unsigned                    : 2;
3265     };
3266 
3267   struct
3268     {
3269     unsigned                    : 6;
3270     unsigned P1M                : 2;
3271     };
3272   } __CCP1CONbits_t;
3273 
3274 extern __at(0x0FBA) volatile __CCP1CONbits_t CCP1CONbits;
3275 
3276 #define _CCP1M0                 0x01
3277 #define _CCP1M1                 0x02
3278 #define _CCP1M2                 0x04
3279 #define _CCP1M3                 0x08
3280 #define _DC1B0                  0x10
3281 #define _CCP1Y                  0x10
3282 #define _DC1B1                  0x20
3283 #define _CCP1X                  0x20
3284 #define _P1M0                   0x40
3285 #define _P1M1                   0x80
3286 
3287 //==============================================================================
3288 
3289 
3290 //==============================================================================
3291 //        ECCP1CON Bits
3292 
3293 extern __at(0x0FBA) __sfr ECCP1CON;
3294 
3295 typedef union
3296   {
3297   struct
3298     {
3299     unsigned CCP1M0             : 1;
3300     unsigned CCP1M1             : 1;
3301     unsigned CCP1M2             : 1;
3302     unsigned CCP1M3             : 1;
3303     unsigned DC1B0              : 1;
3304     unsigned DC1B1              : 1;
3305     unsigned P1M0               : 1;
3306     unsigned P1M1               : 1;
3307     };
3308 
3309   struct
3310     {
3311     unsigned                    : 1;
3312     unsigned                    : 1;
3313     unsigned                    : 1;
3314     unsigned                    : 1;
3315     unsigned CCP1Y              : 1;
3316     unsigned CCP1X              : 1;
3317     unsigned                    : 1;
3318     unsigned                    : 1;
3319     };
3320 
3321   struct
3322     {
3323     unsigned CCP1M              : 4;
3324     unsigned                    : 4;
3325     };
3326 
3327   struct
3328     {
3329     unsigned                    : 4;
3330     unsigned DC1B               : 2;
3331     unsigned                    : 2;
3332     };
3333 
3334   struct
3335     {
3336     unsigned                    : 6;
3337     unsigned P1M                : 2;
3338     };
3339   } __ECCP1CONbits_t;
3340 
3341 extern __at(0x0FBA) volatile __ECCP1CONbits_t ECCP1CONbits;
3342 
3343 #define _ECCP1CON_CCP1M0        0x01
3344 #define _ECCP1CON_CCP1M1        0x02
3345 #define _ECCP1CON_CCP1M2        0x04
3346 #define _ECCP1CON_CCP1M3        0x08
3347 #define _ECCP1CON_DC1B0         0x10
3348 #define _ECCP1CON_CCP1Y         0x10
3349 #define _ECCP1CON_DC1B1         0x20
3350 #define _ECCP1CON_CCP1X         0x20
3351 #define _ECCP1CON_P1M0          0x40
3352 #define _ECCP1CON_P1M1          0x80
3353 
3354 //==============================================================================
3355 
3356 extern __at(0x0FBB) __sfr CCPR1;
3357 extern __at(0x0FBB) __sfr CCPR1L;
3358 extern __at(0x0FBC) __sfr CCPR1H;
3359 
3360 //==============================================================================
3361 //        ECCP1DEL Bits
3362 
3363 extern __at(0x0FBD) __sfr ECCP1DEL;
3364 
3365 typedef union
3366   {
3367   struct
3368     {
3369     unsigned P1DC0              : 1;
3370     unsigned P1DC1              : 1;
3371     unsigned P1DC2              : 1;
3372     unsigned P1DC3              : 1;
3373     unsigned P1DC4              : 1;
3374     unsigned P1DC5              : 1;
3375     unsigned P1DC6              : 1;
3376     unsigned P1RSEN             : 1;
3377     };
3378 
3379   struct
3380     {
3381     unsigned P1DC               : 7;
3382     unsigned                    : 1;
3383     };
3384   } __ECCP1DELbits_t;
3385 
3386 extern __at(0x0FBD) volatile __ECCP1DELbits_t ECCP1DELbits;
3387 
3388 #define _P1DC0                  0x01
3389 #define _P1DC1                  0x02
3390 #define _P1DC2                  0x04
3391 #define _P1DC3                  0x08
3392 #define _P1DC4                  0x10
3393 #define _P1DC5                  0x20
3394 #define _P1DC6                  0x40
3395 #define _P1RSEN                 0x80
3396 
3397 //==============================================================================
3398 
3399 
3400 //==============================================================================
3401 //        PWM1CON Bits
3402 
3403 extern __at(0x0FBD) __sfr PWM1CON;
3404 
3405 typedef union
3406   {
3407   struct
3408     {
3409     unsigned P1DC0              : 1;
3410     unsigned P1DC1              : 1;
3411     unsigned P1DC2              : 1;
3412     unsigned P1DC3              : 1;
3413     unsigned P1DC4              : 1;
3414     unsigned P1DC5              : 1;
3415     unsigned P1DC6              : 1;
3416     unsigned P1RSEN             : 1;
3417     };
3418 
3419   struct
3420     {
3421     unsigned P1DC               : 7;
3422     unsigned                    : 1;
3423     };
3424   } __PWM1CONbits_t;
3425 
3426 extern __at(0x0FBD) volatile __PWM1CONbits_t PWM1CONbits;
3427 
3428 #define _PWM1CON_P1DC0          0x01
3429 #define _PWM1CON_P1DC1          0x02
3430 #define _PWM1CON_P1DC2          0x04
3431 #define _PWM1CON_P1DC3          0x08
3432 #define _PWM1CON_P1DC4          0x10
3433 #define _PWM1CON_P1DC5          0x20
3434 #define _PWM1CON_P1DC6          0x40
3435 #define _PWM1CON_P1RSEN         0x80
3436 
3437 //==============================================================================
3438 
3439 
3440 //==============================================================================
3441 //        ECCP1AS Bits
3442 
3443 extern __at(0x0FBE) __sfr ECCP1AS;
3444 
3445 typedef union
3446   {
3447   struct
3448     {
3449     unsigned PSS1BD0            : 1;
3450     unsigned PSS1BD1            : 1;
3451     unsigned PSS1AC0            : 1;
3452     unsigned PSS1AC1            : 1;
3453     unsigned ECCP1AS0           : 1;
3454     unsigned ECCP1AS1           : 1;
3455     unsigned ECCP1AS2           : 1;
3456     unsigned ECCP1ASE           : 1;
3457     };
3458 
3459   struct
3460     {
3461     unsigned PSS1BD             : 2;
3462     unsigned                    : 6;
3463     };
3464 
3465   struct
3466     {
3467     unsigned                    : 2;
3468     unsigned PSS1AC             : 2;
3469     unsigned                    : 4;
3470     };
3471 
3472   struct
3473     {
3474     unsigned                    : 4;
3475     unsigned ECCP1AS            : 3;
3476     unsigned                    : 1;
3477     };
3478   } __ECCP1ASbits_t;
3479 
3480 extern __at(0x0FBE) volatile __ECCP1ASbits_t ECCP1ASbits;
3481 
3482 #define _PSS1BD0                0x01
3483 #define _PSS1BD1                0x02
3484 #define _PSS1AC0                0x04
3485 #define _PSS1AC1                0x08
3486 #define _ECCP1AS0               0x10
3487 #define _ECCP1AS1               0x20
3488 #define _ECCP1AS2               0x40
3489 #define _ECCP1ASE               0x80
3490 
3491 //==============================================================================
3492 
3493 
3494 //==============================================================================
3495 //        PSTR1CON Bits
3496 
3497 extern __at(0x0FBF) __sfr PSTR1CON;
3498 
3499 typedef union
3500   {
3501   struct
3502     {
3503     unsigned STRA               : 1;
3504     unsigned STRB               : 1;
3505     unsigned STRC               : 1;
3506     unsigned STRD               : 1;
3507     unsigned STRSYNC            : 1;
3508     unsigned                    : 1;
3509     unsigned CMPL0              : 1;
3510     unsigned CMPL1              : 1;
3511     };
3512 
3513   struct
3514     {
3515     unsigned                    : 6;
3516     unsigned CMPL               : 2;
3517     };
3518   } __PSTR1CONbits_t;
3519 
3520 extern __at(0x0FBF) volatile __PSTR1CONbits_t PSTR1CONbits;
3521 
3522 #define _STRA                   0x01
3523 #define _STRB                   0x02
3524 #define _STRC                   0x04
3525 #define _STRD                   0x08
3526 #define _STRSYNC                0x10
3527 #define _CMPL0                  0x40
3528 #define _CMPL1                  0x80
3529 
3530 //==============================================================================
3531 
3532 
3533 //==============================================================================
3534 //        WDTCON Bits
3535 
3536 extern __at(0x0FC0) __sfr WDTCON;
3537 
3538 typedef union
3539   {
3540   struct
3541     {
3542     unsigned SWDTEN             : 1;
3543     unsigned ULPSINK            : 1;
3544     unsigned ULPEN              : 1;
3545     unsigned DS                 : 1;
3546     unsigned                    : 1;
3547     unsigned ULPLVL             : 1;
3548     unsigned LVDSTAT            : 1;
3549     unsigned REGSLP             : 1;
3550     };
3551 
3552   struct
3553     {
3554     unsigned SWDTE              : 1;
3555     unsigned                    : 1;
3556     unsigned                    : 1;
3557     unsigned                    : 1;
3558     unsigned                    : 1;
3559     unsigned                    : 1;
3560     unsigned                    : 1;
3561     unsigned                    : 1;
3562     };
3563   } __WDTCONbits_t;
3564 
3565 extern __at(0x0FC0) volatile __WDTCONbits_t WDTCONbits;
3566 
3567 #define _SWDTEN                 0x01
3568 #define _SWDTE                  0x01
3569 #define _ULPSINK                0x02
3570 #define _ULPEN                  0x04
3571 #define _DS                     0x08
3572 #define _ULPLVL                 0x20
3573 #define _LVDSTAT                0x40
3574 #define _REGSLP                 0x80
3575 
3576 //==============================================================================
3577 
3578 
3579 //==============================================================================
3580 //        ADCON1 Bits
3581 
3582 extern __at(0x0FC1) __sfr ADCON1;
3583 
3584 typedef union
3585   {
3586   struct
3587     {
3588     unsigned ADCS0              : 1;
3589     unsigned ADCS1              : 1;
3590     unsigned ADCS2              : 1;
3591     unsigned ACQT0              : 1;
3592     unsigned ACQT1              : 1;
3593     unsigned ACQT2              : 1;
3594     unsigned ADCAL              : 1;
3595     unsigned ADFM               : 1;
3596     };
3597 
3598   struct
3599     {
3600     unsigned ADCS               : 3;
3601     unsigned                    : 5;
3602     };
3603 
3604   struct
3605     {
3606     unsigned                    : 3;
3607     unsigned ACQT               : 3;
3608     unsigned                    : 2;
3609     };
3610   } __ADCON1bits_t;
3611 
3612 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;
3613 
3614 #define _ADCS0                  0x01
3615 #define _ADCS1                  0x02
3616 #define _ADCS2                  0x04
3617 #define _ACQT0                  0x08
3618 #define _ACQT1                  0x10
3619 #define _ACQT2                  0x20
3620 #define _ADCAL                  0x40
3621 #define _ADFM                   0x80
3622 
3623 //==============================================================================
3624 
3625 
3626 //==============================================================================
3627 //        ADCON0 Bits
3628 
3629 extern __at(0x0FC2) __sfr ADCON0;
3630 
3631 typedef union
3632   {
3633   struct
3634     {
3635     unsigned ADON               : 1;
3636     unsigned GO_NOT_DONE        : 1;
3637     unsigned CHS0               : 1;
3638     unsigned CHS1               : 1;
3639     unsigned CHS2               : 1;
3640     unsigned CHS3               : 1;
3641     unsigned VCFG0              : 1;
3642     unsigned VCFG1              : 1;
3643     };
3644 
3645   struct
3646     {
3647     unsigned                    : 1;
3648     unsigned GO_DONE            : 1;
3649     unsigned                    : 1;
3650     unsigned                    : 1;
3651     unsigned                    : 1;
3652     unsigned                    : 1;
3653     unsigned                    : 1;
3654     unsigned                    : 1;
3655     };
3656 
3657   struct
3658     {
3659     unsigned                    : 1;
3660     unsigned DONE               : 1;
3661     unsigned                    : 1;
3662     unsigned                    : 1;
3663     unsigned                    : 1;
3664     unsigned                    : 1;
3665     unsigned                    : 1;
3666     unsigned                    : 1;
3667     };
3668 
3669   struct
3670     {
3671     unsigned                    : 1;
3672     unsigned GO                 : 1;
3673     unsigned                    : 1;
3674     unsigned                    : 1;
3675     unsigned                    : 1;
3676     unsigned                    : 1;
3677     unsigned                    : 1;
3678     unsigned                    : 1;
3679     };
3680 
3681   struct
3682     {
3683     unsigned                    : 1;
3684     unsigned NOT_DONE           : 1;
3685     unsigned                    : 1;
3686     unsigned                    : 1;
3687     unsigned                    : 1;
3688     unsigned                    : 1;
3689     unsigned                    : 1;
3690     unsigned                    : 1;
3691     };
3692 
3693   struct
3694     {
3695     unsigned                    : 2;
3696     unsigned CHS                : 4;
3697     unsigned                    : 2;
3698     };
3699 
3700   struct
3701     {
3702     unsigned                    : 6;
3703     unsigned VCFG               : 2;
3704     };
3705   } __ADCON0bits_t;
3706 
3707 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;
3708 
3709 #define _ADON                   0x01
3710 #define _GO_NOT_DONE            0x02
3711 #define _GO_DONE                0x02
3712 #define _DONE                   0x02
3713 #define _GO                     0x02
3714 #define _NOT_DONE               0x02
3715 #define _CHS0                   0x04
3716 #define _CHS1                   0x08
3717 #define _CHS2                   0x10
3718 #define _CHS3                   0x20
3719 #define _VCFG0                  0x40
3720 #define _VCFG1                  0x80
3721 
3722 //==============================================================================
3723 
3724 extern __at(0x0FC3) __sfr ADRES;
3725 extern __at(0x0FC3) __sfr ADRESL;
3726 extern __at(0x0FC4) __sfr ADRESH;
3727 
3728 //==============================================================================
3729 //        SSP1CON2 Bits
3730 
3731 extern __at(0x0FC5) __sfr SSP1CON2;
3732 
3733 typedef union
3734   {
3735   struct
3736     {
3737     unsigned SEN                : 1;
3738     unsigned RSEN               : 1;
3739     unsigned PEN                : 1;
3740     unsigned RCEN               : 1;
3741     unsigned ACKEN              : 1;
3742     unsigned ACKDT              : 1;
3743     unsigned ACKSTAT            : 1;
3744     unsigned GCEN               : 1;
3745     };
3746 
3747   struct
3748     {
3749     unsigned                    : 1;
3750     unsigned ADMSK1             : 1;
3751     unsigned ADMSK2             : 1;
3752     unsigned ADMSK3             : 1;
3753     unsigned ADMSK4             : 1;
3754     unsigned ADMSK5             : 1;
3755     unsigned                    : 1;
3756     unsigned                    : 1;
3757     };
3758   } __SSP1CON2bits_t;
3759 
3760 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits;
3761 
3762 #define _SEN                    0x01
3763 #define _RSEN                   0x02
3764 #define _ADMSK1                 0x02
3765 #define _PEN                    0x04
3766 #define _ADMSK2                 0x04
3767 #define _RCEN                   0x08
3768 #define _ADMSK3                 0x08
3769 #define _ACKEN                  0x10
3770 #define _ADMSK4                 0x10
3771 #define _ACKDT                  0x20
3772 #define _ADMSK5                 0x20
3773 #define _ACKSTAT                0x40
3774 #define _GCEN                   0x80
3775 
3776 //==============================================================================
3777 
3778 
3779 //==============================================================================
3780 //        SSPCON2 Bits
3781 
3782 extern __at(0x0FC5) __sfr SSPCON2;
3783 
3784 typedef union
3785   {
3786   struct
3787     {
3788     unsigned SEN                : 1;
3789     unsigned RSEN               : 1;
3790     unsigned PEN                : 1;
3791     unsigned RCEN               : 1;
3792     unsigned ACKEN              : 1;
3793     unsigned ACKDT              : 1;
3794     unsigned ACKSTAT            : 1;
3795     unsigned GCEN               : 1;
3796     };
3797 
3798   struct
3799     {
3800     unsigned                    : 1;
3801     unsigned ADMSK1             : 1;
3802     unsigned ADMSK2             : 1;
3803     unsigned ADMSK3             : 1;
3804     unsigned ADMSK4             : 1;
3805     unsigned ADMSK5             : 1;
3806     unsigned                    : 1;
3807     unsigned                    : 1;
3808     };
3809   } __SSPCON2bits_t;
3810 
3811 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;
3812 
3813 #define _SSPCON2_SEN            0x01
3814 #define _SSPCON2_RSEN           0x02
3815 #define _SSPCON2_ADMSK1         0x02
3816 #define _SSPCON2_PEN            0x04
3817 #define _SSPCON2_ADMSK2         0x04
3818 #define _SSPCON2_RCEN           0x08
3819 #define _SSPCON2_ADMSK3         0x08
3820 #define _SSPCON2_ACKEN          0x10
3821 #define _SSPCON2_ADMSK4         0x10
3822 #define _SSPCON2_ACKDT          0x20
3823 #define _SSPCON2_ADMSK5         0x20
3824 #define _SSPCON2_ACKSTAT        0x40
3825 #define _SSPCON2_GCEN           0x80
3826 
3827 //==============================================================================
3828 
3829 
3830 //==============================================================================
3831 //        SSP1CON1 Bits
3832 
3833 extern __at(0x0FC6) __sfr SSP1CON1;
3834 
3835 typedef union
3836   {
3837   struct
3838     {
3839     unsigned SSPM0              : 1;
3840     unsigned SSPM1              : 1;
3841     unsigned SSPM2              : 1;
3842     unsigned SSPM3              : 1;
3843     unsigned CKP                : 1;
3844     unsigned SSPEN              : 1;
3845     unsigned SSPOV              : 1;
3846     unsigned WCOL               : 1;
3847     };
3848 
3849   struct
3850     {
3851     unsigned SSPM               : 4;
3852     unsigned                    : 4;
3853     };
3854   } __SSP1CON1bits_t;
3855 
3856 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits;
3857 
3858 #define _SSPM0                  0x01
3859 #define _SSPM1                  0x02
3860 #define _SSPM2                  0x04
3861 #define _SSPM3                  0x08
3862 #define _CKP                    0x10
3863 #define _SSPEN                  0x20
3864 #define _SSPOV                  0x40
3865 #define _WCOL                   0x80
3866 
3867 //==============================================================================
3868 
3869 
3870 //==============================================================================
3871 //        SSPCON1 Bits
3872 
3873 extern __at(0x0FC6) __sfr SSPCON1;
3874 
3875 typedef union
3876   {
3877   struct
3878     {
3879     unsigned SSPM0              : 1;
3880     unsigned SSPM1              : 1;
3881     unsigned SSPM2              : 1;
3882     unsigned SSPM3              : 1;
3883     unsigned CKP                : 1;
3884     unsigned SSPEN              : 1;
3885     unsigned SSPOV              : 1;
3886     unsigned WCOL               : 1;
3887     };
3888 
3889   struct
3890     {
3891     unsigned SSPM               : 4;
3892     unsigned                    : 4;
3893     };
3894   } __SSPCON1bits_t;
3895 
3896 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;
3897 
3898 #define _SSPCON1_SSPM0          0x01
3899 #define _SSPCON1_SSPM1          0x02
3900 #define _SSPCON1_SSPM2          0x04
3901 #define _SSPCON1_SSPM3          0x08
3902 #define _SSPCON1_CKP            0x10
3903 #define _SSPCON1_SSPEN          0x20
3904 #define _SSPCON1_SSPOV          0x40
3905 #define _SSPCON1_WCOL           0x80
3906 
3907 //==============================================================================
3908 
3909 
3910 //==============================================================================
3911 //        SSP1STAT Bits
3912 
3913 extern __at(0x0FC7) __sfr SSP1STAT;
3914 
3915 typedef union
3916   {
3917   struct
3918     {
3919     unsigned BF                 : 1;
3920     unsigned UA                 : 1;
3921     unsigned R_NOT_W            : 1;
3922     unsigned S                  : 1;
3923     unsigned P                  : 1;
3924     unsigned D_NOT_A            : 1;
3925     unsigned CKE                : 1;
3926     unsigned SMP                : 1;
3927     };
3928 
3929   struct
3930     {
3931     unsigned                    : 1;
3932     unsigned                    : 1;
3933     unsigned R                  : 1;
3934     unsigned I2C_START          : 1;
3935     unsigned I2C_STOP           : 1;
3936     unsigned D                  : 1;
3937     unsigned                    : 1;
3938     unsigned                    : 1;
3939     };
3940 
3941   struct
3942     {
3943     unsigned                    : 1;
3944     unsigned                    : 1;
3945     unsigned R_W                : 1;
3946     unsigned                    : 1;
3947     unsigned                    : 1;
3948     unsigned D_A                : 1;
3949     unsigned                    : 1;
3950     unsigned                    : 1;
3951     };
3952 
3953   struct
3954     {
3955     unsigned                    : 1;
3956     unsigned                    : 1;
3957     unsigned NOT_W              : 1;
3958     unsigned                    : 1;
3959     unsigned                    : 1;
3960     unsigned NOT_A              : 1;
3961     unsigned                    : 1;
3962     unsigned                    : 1;
3963     };
3964 
3965   struct
3966     {
3967     unsigned                    : 1;
3968     unsigned                    : 1;
3969     unsigned NOT_WRITE          : 1;
3970     unsigned                    : 1;
3971     unsigned                    : 1;
3972     unsigned NOT_ADDRESS        : 1;
3973     unsigned                    : 1;
3974     unsigned                    : 1;
3975     };
3976 
3977   struct
3978     {
3979     unsigned                    : 1;
3980     unsigned                    : 1;
3981     unsigned READ_WRITE         : 1;
3982     unsigned                    : 1;
3983     unsigned                    : 1;
3984     unsigned DATA_ADDRESS       : 1;
3985     unsigned                    : 1;
3986     unsigned                    : 1;
3987     };
3988 
3989   struct
3990     {
3991     unsigned                    : 1;
3992     unsigned                    : 1;
3993     unsigned I2C_READ           : 1;
3994     unsigned                    : 1;
3995     unsigned                    : 1;
3996     unsigned I2C_DAT            : 1;
3997     unsigned                    : 1;
3998     unsigned                    : 1;
3999     };
4000   } __SSP1STATbits_t;
4001 
4002 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits;
4003 
4004 #define _BF                     0x01
4005 #define _UA                     0x02
4006 #define _R_NOT_W                0x04
4007 #define _R                      0x04
4008 #define _R_W                    0x04
4009 #define _NOT_W                  0x04
4010 #define _NOT_WRITE              0x04
4011 #define _READ_WRITE             0x04
4012 #define _I2C_READ               0x04
4013 #define _S                      0x08
4014 #define _I2C_START              0x08
4015 #define _P                      0x10
4016 #define _I2C_STOP               0x10
4017 #define _D_NOT_A                0x20
4018 #define _D                      0x20
4019 #define _D_A                    0x20
4020 #define _NOT_A                  0x20
4021 #define _NOT_ADDRESS            0x20
4022 #define _DATA_ADDRESS           0x20
4023 #define _I2C_DAT                0x20
4024 #define _CKE                    0x40
4025 #define _SMP                    0x80
4026 
4027 //==============================================================================
4028 
4029 
4030 //==============================================================================
4031 //        SSPSTAT Bits
4032 
4033 extern __at(0x0FC7) __sfr SSPSTAT;
4034 
4035 typedef union
4036   {
4037   struct
4038     {
4039     unsigned BF                 : 1;
4040     unsigned UA                 : 1;
4041     unsigned R_NOT_W            : 1;
4042     unsigned S                  : 1;
4043     unsigned P                  : 1;
4044     unsigned D_NOT_A            : 1;
4045     unsigned CKE                : 1;
4046     unsigned SMP                : 1;
4047     };
4048 
4049   struct
4050     {
4051     unsigned                    : 1;
4052     unsigned                    : 1;
4053     unsigned R                  : 1;
4054     unsigned I2C_START          : 1;
4055     unsigned I2C_STOP           : 1;
4056     unsigned D                  : 1;
4057     unsigned                    : 1;
4058     unsigned                    : 1;
4059     };
4060 
4061   struct
4062     {
4063     unsigned                    : 1;
4064     unsigned                    : 1;
4065     unsigned R_W                : 1;
4066     unsigned                    : 1;
4067     unsigned                    : 1;
4068     unsigned D_A                : 1;
4069     unsigned                    : 1;
4070     unsigned                    : 1;
4071     };
4072 
4073   struct
4074     {
4075     unsigned                    : 1;
4076     unsigned                    : 1;
4077     unsigned NOT_W              : 1;
4078     unsigned                    : 1;
4079     unsigned                    : 1;
4080     unsigned NOT_A              : 1;
4081     unsigned                    : 1;
4082     unsigned                    : 1;
4083     };
4084 
4085   struct
4086     {
4087     unsigned                    : 1;
4088     unsigned                    : 1;
4089     unsigned NOT_WRITE          : 1;
4090     unsigned                    : 1;
4091     unsigned                    : 1;
4092     unsigned NOT_ADDRESS        : 1;
4093     unsigned                    : 1;
4094     unsigned                    : 1;
4095     };
4096 
4097   struct
4098     {
4099     unsigned                    : 1;
4100     unsigned                    : 1;
4101     unsigned READ_WRITE         : 1;
4102     unsigned                    : 1;
4103     unsigned                    : 1;
4104     unsigned DATA_ADDRESS       : 1;
4105     unsigned                    : 1;
4106     unsigned                    : 1;
4107     };
4108 
4109   struct
4110     {
4111     unsigned                    : 1;
4112     unsigned                    : 1;
4113     unsigned I2C_READ           : 1;
4114     unsigned                    : 1;
4115     unsigned                    : 1;
4116     unsigned I2C_DAT            : 1;
4117     unsigned                    : 1;
4118     unsigned                    : 1;
4119     };
4120   } __SSPSTATbits_t;
4121 
4122 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;
4123 
4124 #define _SSPSTAT_BF             0x01
4125 #define _SSPSTAT_UA             0x02
4126 #define _SSPSTAT_R_NOT_W        0x04
4127 #define _SSPSTAT_R              0x04
4128 #define _SSPSTAT_R_W            0x04
4129 #define _SSPSTAT_NOT_W          0x04
4130 #define _SSPSTAT_NOT_WRITE      0x04
4131 #define _SSPSTAT_READ_WRITE     0x04
4132 #define _SSPSTAT_I2C_READ       0x04
4133 #define _SSPSTAT_S              0x08
4134 #define _SSPSTAT_I2C_START      0x08
4135 #define _SSPSTAT_P              0x10
4136 #define _SSPSTAT_I2C_STOP       0x10
4137 #define _SSPSTAT_D_NOT_A        0x20
4138 #define _SSPSTAT_D              0x20
4139 #define _SSPSTAT_D_A            0x20
4140 #define _SSPSTAT_NOT_A          0x20
4141 #define _SSPSTAT_NOT_ADDRESS    0x20
4142 #define _SSPSTAT_DATA_ADDRESS   0x20
4143 #define _SSPSTAT_I2C_DAT        0x20
4144 #define _SSPSTAT_CKE            0x40
4145 #define _SSPSTAT_SMP            0x80
4146 
4147 //==============================================================================
4148 
4149 
4150 //==============================================================================
4151 //        SSP1ADD Bits
4152 
4153 extern __at(0x0FC8) __sfr SSP1ADD;
4154 
4155 typedef struct
4156   {
4157   unsigned MSK0                 : 1;
4158   unsigned MSK1                 : 1;
4159   unsigned MSK2                 : 1;
4160   unsigned MSK3                 : 1;
4161   unsigned MSK4                 : 1;
4162   unsigned MSK5                 : 1;
4163   unsigned MSK6                 : 1;
4164   unsigned MSK7                 : 1;
4165   } __SSP1ADDbits_t;
4166 
4167 extern __at(0x0FC8) volatile __SSP1ADDbits_t SSP1ADDbits;
4168 
4169 #define _MSK0                   0x01
4170 #define _MSK1                   0x02
4171 #define _MSK2                   0x04
4172 #define _MSK3                   0x08
4173 #define _MSK4                   0x10
4174 #define _MSK5                   0x20
4175 #define _MSK6                   0x40
4176 #define _MSK7                   0x80
4177 
4178 //==============================================================================
4179 
4180 
4181 //==============================================================================
4182 //        SSP1MSK Bits
4183 
4184 extern __at(0x0FC8) __sfr SSP1MSK;
4185 
4186 typedef struct
4187   {
4188   unsigned MSK0                 : 1;
4189   unsigned MSK1                 : 1;
4190   unsigned MSK2                 : 1;
4191   unsigned MSK3                 : 1;
4192   unsigned MSK4                 : 1;
4193   unsigned MSK5                 : 1;
4194   unsigned MSK6                 : 1;
4195   unsigned MSK7                 : 1;
4196   } __SSP1MSKbits_t;
4197 
4198 extern __at(0x0FC8) volatile __SSP1MSKbits_t SSP1MSKbits;
4199 
4200 #define _SSP1MSK_MSK0           0x01
4201 #define _SSP1MSK_MSK1           0x02
4202 #define _SSP1MSK_MSK2           0x04
4203 #define _SSP1MSK_MSK3           0x08
4204 #define _SSP1MSK_MSK4           0x10
4205 #define _SSP1MSK_MSK5           0x20
4206 #define _SSP1MSK_MSK6           0x40
4207 #define _SSP1MSK_MSK7           0x80
4208 
4209 //==============================================================================
4210 
4211 
4212 //==============================================================================
4213 //        SSPADD Bits
4214 
4215 extern __at(0x0FC8) __sfr SSPADD;
4216 
4217 typedef struct
4218   {
4219   unsigned MSK0                 : 1;
4220   unsigned MSK1                 : 1;
4221   unsigned MSK2                 : 1;
4222   unsigned MSK3                 : 1;
4223   unsigned MSK4                 : 1;
4224   unsigned MSK5                 : 1;
4225   unsigned MSK6                 : 1;
4226   unsigned MSK7                 : 1;
4227   } __SSPADDbits_t;
4228 
4229 extern __at(0x0FC8) volatile __SSPADDbits_t SSPADDbits;
4230 
4231 #define _SSPADD_MSK0            0x01
4232 #define _SSPADD_MSK1            0x02
4233 #define _SSPADD_MSK2            0x04
4234 #define _SSPADD_MSK3            0x08
4235 #define _SSPADD_MSK4            0x10
4236 #define _SSPADD_MSK5            0x20
4237 #define _SSPADD_MSK6            0x40
4238 #define _SSPADD_MSK7            0x80
4239 
4240 //==============================================================================
4241 
4242 extern __at(0x0FC9) __sfr SSP1BUF;
4243 extern __at(0x0FC9) __sfr SSPBUF;
4244 
4245 //==============================================================================
4246 //        T2CON Bits
4247 
4248 extern __at(0x0FCA) __sfr T2CON;
4249 
4250 typedef union
4251   {
4252   struct
4253     {
4254     unsigned T2CKPS0            : 1;
4255     unsigned T2CKPS1            : 1;
4256     unsigned TMR2ON             : 1;
4257     unsigned T2OUTPS0           : 1;
4258     unsigned T2OUTPS1           : 1;
4259     unsigned T2OUTPS2           : 1;
4260     unsigned T2OUTPS3           : 1;
4261     unsigned                    : 1;
4262     };
4263 
4264   struct
4265     {
4266     unsigned T2CKPS             : 2;
4267     unsigned                    : 6;
4268     };
4269 
4270   struct
4271     {
4272     unsigned                    : 3;
4273     unsigned T2OUTPS            : 4;
4274     unsigned                    : 1;
4275     };
4276   } __T2CONbits_t;
4277 
4278 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits;
4279 
4280 #define _T2CKPS0                0x01
4281 #define _T2CKPS1                0x02
4282 #define _TMR2ON                 0x04
4283 #define _T2OUTPS0               0x08
4284 #define _T2OUTPS1               0x10
4285 #define _T2OUTPS2               0x20
4286 #define _T2OUTPS3               0x40
4287 
4288 //==============================================================================
4289 
4290 extern __at(0x0FCB) __sfr PR2;
4291 extern __at(0x0FCC) __sfr TMR2;
4292 
4293 //==============================================================================
4294 //        T1CON Bits
4295 
4296 extern __at(0x0FCD) __sfr T1CON;
4297 
4298 typedef union
4299   {
4300   struct
4301     {
4302     unsigned TMR1ON             : 1;
4303     unsigned RD16               : 1;
4304     unsigned T1SYNC             : 1;
4305     unsigned T1OSCEN            : 1;
4306     unsigned T1CKPS0            : 1;
4307     unsigned T1CKPS1            : 1;
4308     unsigned TMR1CS0            : 1;
4309     unsigned TMR1CS1            : 1;
4310     };
4311 
4312   struct
4313     {
4314     unsigned                    : 4;
4315     unsigned T1CKPS             : 2;
4316     unsigned                    : 2;
4317     };
4318 
4319   struct
4320     {
4321     unsigned                    : 6;
4322     unsigned TMR1CS             : 2;
4323     };
4324   } __T1CONbits_t;
4325 
4326 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;
4327 
4328 #define _TMR1ON                 0x01
4329 #define _RD16                   0x02
4330 #define _T1SYNC                 0x04
4331 #define _T1OSCEN                0x08
4332 #define _T1CKPS0                0x10
4333 #define _T1CKPS1                0x20
4334 #define _TMR1CS0                0x40
4335 #define _TMR1CS1                0x80
4336 
4337 //==============================================================================
4338 
4339 extern __at(0x0FCE) __sfr TMR1;
4340 extern __at(0x0FCE) __sfr TMR1L;
4341 extern __at(0x0FCF) __sfr TMR1H;
4342 
4343 //==============================================================================
4344 //        RCON Bits
4345 
4346 extern __at(0x0FD0) __sfr RCON;
4347 
4348 typedef union
4349   {
4350   struct
4351     {
4352     unsigned NOT_BOR            : 1;
4353     unsigned NOT_POR            : 1;
4354     unsigned NOT_PD             : 1;
4355     unsigned NOT_TO             : 1;
4356     unsigned NOT_RI             : 1;
4357     unsigned NOT_CM             : 1;
4358     unsigned                    : 1;
4359     unsigned IPEN               : 1;
4360     };
4361 
4362   struct
4363     {
4364     unsigned BOR                : 1;
4365     unsigned POR                : 1;
4366     unsigned PD                 : 1;
4367     unsigned TO                 : 1;
4368     unsigned RI                 : 1;
4369     unsigned CM                 : 1;
4370     unsigned                    : 1;
4371     unsigned                    : 1;
4372     };
4373   } __RCONbits_t;
4374 
4375 extern __at(0x0FD0) volatile __RCONbits_t RCONbits;
4376 
4377 #define _NOT_BOR                0x01
4378 #define _BOR                    0x01
4379 #define _NOT_POR                0x02
4380 #define _POR                    0x02
4381 #define _NOT_PD                 0x04
4382 #define _PD                     0x04
4383 #define _NOT_TO                 0x08
4384 #define _TO                     0x08
4385 #define _NOT_RI                 0x10
4386 #define _RI                     0x10
4387 #define _NOT_CM                 0x20
4388 #define _CM                     0x20
4389 #define _IPEN                   0x80
4390 
4391 //==============================================================================
4392 
4393 
4394 //==============================================================================
4395 //        CM2CON Bits
4396 
4397 extern __at(0x0FD1) __sfr CM2CON;
4398 
4399 typedef union
4400   {
4401   struct
4402     {
4403     unsigned CCH0               : 1;
4404     unsigned CCH1               : 1;
4405     unsigned CREF               : 1;
4406     unsigned EVPOL0             : 1;
4407     unsigned EVPOL1             : 1;
4408     unsigned CPOL               : 1;
4409     unsigned COE                : 1;
4410     unsigned CON                : 1;
4411     };
4412 
4413   struct
4414     {
4415     unsigned CCH                : 2;
4416     unsigned                    : 6;
4417     };
4418 
4419   struct
4420     {
4421     unsigned                    : 3;
4422     unsigned EVPOL              : 2;
4423     unsigned                    : 3;
4424     };
4425   } __CM2CONbits_t;
4426 
4427 extern __at(0x0FD1) volatile __CM2CONbits_t CM2CONbits;
4428 
4429 #define _CM2CON_CCH0            0x01
4430 #define _CM2CON_CCH1            0x02
4431 #define _CM2CON_CREF            0x04
4432 #define _CM2CON_EVPOL0          0x08
4433 #define _CM2CON_EVPOL1          0x10
4434 #define _CM2CON_CPOL            0x20
4435 #define _CM2CON_COE             0x40
4436 #define _CM2CON_CON             0x80
4437 
4438 //==============================================================================
4439 
4440 
4441 //==============================================================================
4442 //        CM2CON1 Bits
4443 
4444 extern __at(0x0FD1) __sfr CM2CON1;
4445 
4446 typedef union
4447   {
4448   struct
4449     {
4450     unsigned CCH0               : 1;
4451     unsigned CCH1               : 1;
4452     unsigned CREF               : 1;
4453     unsigned EVPOL0             : 1;
4454     unsigned EVPOL1             : 1;
4455     unsigned CPOL               : 1;
4456     unsigned COE                : 1;
4457     unsigned CON                : 1;
4458     };
4459 
4460   struct
4461     {
4462     unsigned CCH                : 2;
4463     unsigned                    : 6;
4464     };
4465 
4466   struct
4467     {
4468     unsigned                    : 3;
4469     unsigned EVPOL              : 2;
4470     unsigned                    : 3;
4471     };
4472   } __CM2CON1bits_t;
4473 
4474 extern __at(0x0FD1) volatile __CM2CON1bits_t CM2CON1bits;
4475 
4476 #define _CM2CON1_CCH0           0x01
4477 #define _CM2CON1_CCH1           0x02
4478 #define _CM2CON1_CREF           0x04
4479 #define _CM2CON1_EVPOL0         0x08
4480 #define _CM2CON1_EVPOL1         0x10
4481 #define _CM2CON1_CPOL           0x20
4482 #define _CM2CON1_COE            0x40
4483 #define _CM2CON1_CON            0x80
4484 
4485 //==============================================================================
4486 
4487 
4488 //==============================================================================
4489 //        CM1CON Bits
4490 
4491 extern __at(0x0FD2) __sfr CM1CON;
4492 
4493 typedef union
4494   {
4495   struct
4496     {
4497     unsigned CCH0               : 1;
4498     unsigned CCH1               : 1;
4499     unsigned CREF               : 1;
4500     unsigned EVPOL0             : 1;
4501     unsigned EVPOL1             : 1;
4502     unsigned CPOL               : 1;
4503     unsigned COE                : 1;
4504     unsigned CON                : 1;
4505     };
4506 
4507   struct
4508     {
4509     unsigned CCH                : 2;
4510     unsigned                    : 6;
4511     };
4512 
4513   struct
4514     {
4515     unsigned                    : 3;
4516     unsigned EVPOL              : 2;
4517     unsigned                    : 3;
4518     };
4519   } __CM1CONbits_t;
4520 
4521 extern __at(0x0FD2) volatile __CM1CONbits_t CM1CONbits;
4522 
4523 #define _CCH0                   0x01
4524 #define _CCH1                   0x02
4525 #define _CREF                   0x04
4526 #define _EVPOL0                 0x08
4527 #define _EVPOL1                 0x10
4528 #define _CPOL                   0x20
4529 #define _COE                    0x40
4530 #define _CON                    0x80
4531 
4532 //==============================================================================
4533 
4534 
4535 //==============================================================================
4536 //        CM1CON1 Bits
4537 
4538 extern __at(0x0FD2) __sfr CM1CON1;
4539 
4540 typedef union
4541   {
4542   struct
4543     {
4544     unsigned CCH0               : 1;
4545     unsigned CCH1               : 1;
4546     unsigned CREF               : 1;
4547     unsigned EVPOL0             : 1;
4548     unsigned EVPOL1             : 1;
4549     unsigned CPOL               : 1;
4550     unsigned COE                : 1;
4551     unsigned CON                : 1;
4552     };
4553 
4554   struct
4555     {
4556     unsigned CCH                : 2;
4557     unsigned                    : 6;
4558     };
4559 
4560   struct
4561     {
4562     unsigned                    : 3;
4563     unsigned EVPOL              : 2;
4564     unsigned                    : 3;
4565     };
4566   } __CM1CON1bits_t;
4567 
4568 extern __at(0x0FD2) volatile __CM1CON1bits_t CM1CON1bits;
4569 
4570 #define _CM1CON1_CCH0           0x01
4571 #define _CM1CON1_CCH1           0x02
4572 #define _CM1CON1_CREF           0x04
4573 #define _CM1CON1_EVPOL0         0x08
4574 #define _CM1CON1_EVPOL1         0x10
4575 #define _CM1CON1_CPOL           0x20
4576 #define _CM1CON1_COE            0x40
4577 #define _CM1CON1_CON            0x80
4578 
4579 //==============================================================================
4580 
4581 
4582 //==============================================================================
4583 //        OSCCON Bits
4584 
4585 extern __at(0x0FD3) __sfr OSCCON;
4586 
4587 typedef union
4588   {
4589   struct
4590     {
4591     unsigned SCS0               : 1;
4592     unsigned SCS1               : 1;
4593     unsigned                    : 1;
4594     unsigned OSTS               : 1;
4595     unsigned IRCF0              : 1;
4596     unsigned IRCF1              : 1;
4597     unsigned IRCF2              : 1;
4598     unsigned IDLEN              : 1;
4599     };
4600 
4601   struct
4602     {
4603     unsigned SCS                : 2;
4604     unsigned                    : 6;
4605     };
4606 
4607   struct
4608     {
4609     unsigned                    : 4;
4610     unsigned IRCF               : 3;
4611     unsigned                    : 1;
4612     };
4613   } __OSCCONbits_t;
4614 
4615 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;
4616 
4617 #define _SCS0                   0x01
4618 #define _SCS1                   0x02
4619 #define _OSTS                   0x08
4620 #define _IRCF0                  0x10
4621 #define _IRCF1                  0x20
4622 #define _IRCF2                  0x40
4623 #define _IDLEN                  0x80
4624 
4625 //==============================================================================
4626 
4627 
4628 //==============================================================================
4629 //        T0CON Bits
4630 
4631 extern __at(0x0FD5) __sfr T0CON;
4632 
4633 typedef union
4634   {
4635   struct
4636     {
4637     unsigned T0PS0              : 1;
4638     unsigned T0PS1              : 1;
4639     unsigned T0PS2              : 1;
4640     unsigned PSA                : 1;
4641     unsigned T0SE               : 1;
4642     unsigned T0CS               : 1;
4643     unsigned T08BIT             : 1;
4644     unsigned TMR0ON             : 1;
4645     };
4646 
4647   struct
4648     {
4649     unsigned T0PS               : 3;
4650     unsigned                    : 5;
4651     };
4652   } __T0CONbits_t;
4653 
4654 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;
4655 
4656 #define _T0PS0                  0x01
4657 #define _T0PS1                  0x02
4658 #define _T0PS2                  0x04
4659 #define _PSA                    0x08
4660 #define _T0SE                   0x10
4661 #define _T0CS                   0x20
4662 #define _T08BIT                 0x40
4663 #define _TMR0ON                 0x80
4664 
4665 //==============================================================================
4666 
4667 extern __at(0x0FD6) __sfr TMR0;
4668 extern __at(0x0FD6) __sfr TMR0L;
4669 extern __at(0x0FD7) __sfr TMR0H;
4670 
4671 //==============================================================================
4672 //        STATUS Bits
4673 
4674 extern __at(0x0FD8) __sfr STATUS;
4675 
4676 typedef struct
4677   {
4678   unsigned C                    : 1;
4679   unsigned DC                   : 1;
4680   unsigned Z                    : 1;
4681   unsigned OV                   : 1;
4682   unsigned N                    : 1;
4683   unsigned                      : 1;
4684   unsigned                      : 1;
4685   unsigned                      : 1;
4686   } __STATUSbits_t;
4687 
4688 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits;
4689 
4690 #define _C                      0x01
4691 #define _DC                     0x02
4692 #define _Z                      0x04
4693 #define _OV                     0x08
4694 #define _N                      0x10
4695 
4696 //==============================================================================
4697 
4698 extern __at(0x0FD9) __sfr FSR2L;
4699 extern __at(0x0FDA) __sfr FSR2H;
4700 extern __at(0x0FDB) __sfr PLUSW2;
4701 extern __at(0x0FDC) __sfr PREINC2;
4702 extern __at(0x0FDD) __sfr POSTDEC2;
4703 extern __at(0x0FDE) __sfr POSTINC2;
4704 extern __at(0x0FDF) __sfr INDF2;
4705 extern __at(0x0FE0) __sfr BSR;
4706 extern __at(0x0FE1) __sfr FSR1L;
4707 extern __at(0x0FE2) __sfr FSR1H;
4708 extern __at(0x0FE3) __sfr PLUSW1;
4709 extern __at(0x0FE4) __sfr PREINC1;
4710 extern __at(0x0FE5) __sfr POSTDEC1;
4711 extern __at(0x0FE6) __sfr POSTINC1;
4712 extern __at(0x0FE7) __sfr INDF1;
4713 extern __at(0x0FE8) __sfr WREG;
4714 extern __at(0x0FE9) __sfr FSR0L;
4715 extern __at(0x0FEA) __sfr FSR0H;
4716 extern __at(0x0FEB) __sfr PLUSW0;
4717 extern __at(0x0FEC) __sfr PREINC0;
4718 extern __at(0x0FED) __sfr POSTDEC0;
4719 extern __at(0x0FEE) __sfr POSTINC0;
4720 extern __at(0x0FEF) __sfr INDF0;
4721 
4722 //==============================================================================
4723 //        INTCON3 Bits
4724 
4725 extern __at(0x0FF0) __sfr INTCON3;
4726 
4727 typedef union
4728   {
4729   struct
4730     {
4731     unsigned INT1IF             : 1;
4732     unsigned INT2IF             : 1;
4733     unsigned INT3IF             : 1;
4734     unsigned INT1IE             : 1;
4735     unsigned INT2IE             : 1;
4736     unsigned INT3IE             : 1;
4737     unsigned INT1IP             : 1;
4738     unsigned INT2IP             : 1;
4739     };
4740 
4741   struct
4742     {
4743     unsigned INT1F              : 1;
4744     unsigned INT2F              : 1;
4745     unsigned INT3F              : 1;
4746     unsigned INT1E              : 1;
4747     unsigned INT2E              : 1;
4748     unsigned INT3E              : 1;
4749     unsigned INT1P              : 1;
4750     unsigned INT2P              : 1;
4751     };
4752   } __INTCON3bits_t;
4753 
4754 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;
4755 
4756 #define _INT1IF                 0x01
4757 #define _INT1F                  0x01
4758 #define _INT2IF                 0x02
4759 #define _INT2F                  0x02
4760 #define _INT3IF                 0x04
4761 #define _INT3F                  0x04
4762 #define _INT1IE                 0x08
4763 #define _INT1E                  0x08
4764 #define _INT2IE                 0x10
4765 #define _INT2E                  0x10
4766 #define _INT3IE                 0x20
4767 #define _INT3E                  0x20
4768 #define _INT1IP                 0x40
4769 #define _INT1P                  0x40
4770 #define _INT2IP                 0x80
4771 #define _INT2P                  0x80
4772 
4773 //==============================================================================
4774 
4775 
4776 //==============================================================================
4777 //        INTCON2 Bits
4778 
4779 extern __at(0x0FF1) __sfr INTCON2;
4780 
4781 typedef union
4782   {
4783   struct
4784     {
4785     unsigned RBIP               : 1;
4786     unsigned INT3IP             : 1;
4787     unsigned TMR0IP             : 1;
4788     unsigned INTEDG3            : 1;
4789     unsigned INTEDG2            : 1;
4790     unsigned INTEDG1            : 1;
4791     unsigned INTEDG0            : 1;
4792     unsigned NOT_RBPU           : 1;
4793     };
4794 
4795   struct
4796     {
4797     unsigned                    : 1;
4798     unsigned INT3P              : 1;
4799     unsigned T0IP               : 1;
4800     unsigned                    : 1;
4801     unsigned                    : 1;
4802     unsigned                    : 1;
4803     unsigned                    : 1;
4804     unsigned RBPU               : 1;
4805     };
4806   } __INTCON2bits_t;
4807 
4808 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;
4809 
4810 #define _RBIP                   0x01
4811 #define _INT3IP                 0x02
4812 #define _INT3P                  0x02
4813 #define _TMR0IP                 0x04
4814 #define _T0IP                   0x04
4815 #define _INTEDG3                0x08
4816 #define _INTEDG2                0x10
4817 #define _INTEDG1                0x20
4818 #define _INTEDG0                0x40
4819 #define _NOT_RBPU               0x80
4820 #define _RBPU                   0x80
4821 
4822 //==============================================================================
4823 
4824 
4825 //==============================================================================
4826 //        INTCON Bits
4827 
4828 extern __at(0x0FF2) __sfr INTCON;
4829 
4830 typedef union
4831   {
4832   struct
4833     {
4834     unsigned RBIF               : 1;
4835     unsigned INT0IF             : 1;
4836     unsigned TMR0IF             : 1;
4837     unsigned RBIE               : 1;
4838     unsigned INT0IE             : 1;
4839     unsigned TMR0IE             : 1;
4840     unsigned PEIE_GIEL          : 1;
4841     unsigned GIE_GIEH           : 1;
4842     };
4843 
4844   struct
4845     {
4846     unsigned                    : 1;
4847     unsigned INT0F              : 1;
4848     unsigned T0IF               : 1;
4849     unsigned                    : 1;
4850     unsigned INT0E              : 1;
4851     unsigned T0IE               : 1;
4852     unsigned PEIE               : 1;
4853     unsigned GIE                : 1;
4854     };
4855 
4856   struct
4857     {
4858     unsigned                    : 1;
4859     unsigned                    : 1;
4860     unsigned                    : 1;
4861     unsigned                    : 1;
4862     unsigned                    : 1;
4863     unsigned                    : 1;
4864     unsigned GIEL               : 1;
4865     unsigned GIEH               : 1;
4866     };
4867   } __INTCONbits_t;
4868 
4869 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;
4870 
4871 #define _RBIF                   0x01
4872 #define _INT0IF                 0x02
4873 #define _INT0F                  0x02
4874 #define _TMR0IF                 0x04
4875 #define _T0IF                   0x04
4876 #define _RBIE                   0x08
4877 #define _INT0IE                 0x10
4878 #define _INT0E                  0x10
4879 #define _TMR0IE                 0x20
4880 #define _T0IE                   0x20
4881 #define _PEIE_GIEL              0x40
4882 #define _PEIE                   0x40
4883 #define _GIEL                   0x40
4884 #define _GIE_GIEH               0x80
4885 #define _GIE                    0x80
4886 #define _GIEH                   0x80
4887 
4888 //==============================================================================
4889 
4890 extern __at(0x0FF3) __sfr PROD;
4891 extern __at(0x0FF3) __sfr PRODL;
4892 extern __at(0x0FF4) __sfr PRODH;
4893 extern __at(0x0FF5) __sfr TABLAT;
4894 extern __at(0x0FF6) __sfr TBLPTR;
4895 extern __at(0x0FF6) __sfr TBLPTRL;
4896 extern __at(0x0FF7) __sfr TBLPTRH;
4897 extern __at(0x0FF8) __sfr TBLPTRU;
4898 extern __at(0x0FF9) __sfr PC;
4899 extern __at(0x0FF9) __sfr PCL;
4900 extern __at(0x0FFA) __sfr PCLATH;
4901 extern __at(0x0FFB) __sfr PCLATU;
4902 
4903 //==============================================================================
4904 //        STKPTR Bits
4905 
4906 extern __at(0x0FFC) __sfr STKPTR;
4907 
4908 typedef union
4909   {
4910   struct
4911     {
4912     unsigned SP0                : 1;
4913     unsigned SP1                : 1;
4914     unsigned SP2                : 1;
4915     unsigned SP3                : 1;
4916     unsigned SP4                : 1;
4917     unsigned                    : 1;
4918     unsigned STKUNF             : 1;
4919     unsigned STKFUL             : 1;
4920     };
4921 
4922   struct
4923     {
4924     unsigned                    : 1;
4925     unsigned                    : 1;
4926     unsigned                    : 1;
4927     unsigned                    : 1;
4928     unsigned                    : 1;
4929     unsigned                    : 1;
4930     unsigned                    : 1;
4931     unsigned STKOVF             : 1;
4932     };
4933 
4934   struct
4935     {
4936     unsigned SP                 : 5;
4937     unsigned                    : 3;
4938     };
4939   } __STKPTRbits_t;
4940 
4941 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;
4942 
4943 #define _SP0                    0x01
4944 #define _SP1                    0x02
4945 #define _SP2                    0x04
4946 #define _SP3                    0x08
4947 #define _SP4                    0x10
4948 #define _STKUNF                 0x40
4949 #define _STKFUL                 0x80
4950 #define _STKOVF                 0x80
4951 
4952 //==============================================================================
4953 
4954 extern __at(0x0FFD) __sfr TOS;
4955 extern __at(0x0FFD) __sfr TOSL;
4956 extern __at(0x0FFE) __sfr TOSH;
4957 extern __at(0x0FFF) __sfr TOSU;
4958 
4959 //==============================================================================
4960 //
4961 //        Configuration Addresses
4962 //
4963 //==============================================================================
4964 
4965 #define __CONFIG1L              0x007FF8
4966 #define __CONFIG1H              0x007FF9
4967 #define __CONFIG2L              0x007FFA
4968 #define __CONFIG2H              0x007FFB
4969 #define __CONFIG3L              0x007FFC
4970 #define __CONFIG3H              0x007FFD
4971 #define __CONFIG4L              0x007FFE
4972 #define __CONFIG4H              0x007FFF
4973 
4974 //==============================================================================
4975 
4976 #endif // #ifndef __PIC18F25J11_H__
4977