1 /*
2  * This declarations of the PIC18F86J60 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:38 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 __PIC18F86J60_H__
26 #define __PIC18F86J60_H__
27 
28 //==============================================================================
29 
30 //==============================================================================
31 //
32 //	Register Definitions
33 //
34 //==============================================================================
35 
36 extern __at(0x0E80) __sfr MAADR5;
37 extern __at(0x0E81) __sfr MAADR6;
38 extern __at(0x0E82) __sfr MAADR3;
39 extern __at(0x0E83) __sfr MAADR4;
40 extern __at(0x0E84) __sfr MAADR1;
41 extern __at(0x0E85) __sfr MAADR2;
42 
43 //==============================================================================
44 //        MISTAT Bits
45 
46 extern __at(0x0E8A) __sfr MISTAT;
47 
48 typedef struct
49   {
50   unsigned BUSY                 : 1;
51   unsigned SCAN                 : 1;
52   unsigned NVALID               : 1;
53   unsigned                      : 1;
54   unsigned                      : 1;
55   unsigned                      : 1;
56   unsigned                      : 1;
57   unsigned                      : 1;
58   } __MISTATbits_t;
59 
60 extern __at(0x0E8A) volatile __MISTATbits_t MISTATbits;
61 
62 #define _BUSY                   0x01
63 #define _SCAN                   0x02
64 #define _NVALID                 0x04
65 
66 //==============================================================================
67 
68 
69 //==============================================================================
70 //        EFLOCON Bits
71 
72 extern __at(0x0E97) __sfr EFLOCON;
73 
74 typedef union
75   {
76   struct
77     {
78     unsigned FCEN0              : 1;
79     unsigned FCEN1              : 1;
80     unsigned FULDPXS            : 1;
81     unsigned                    : 1;
82     unsigned                    : 1;
83     unsigned                    : 1;
84     unsigned                    : 1;
85     unsigned                    : 1;
86     };
87 
88   struct
89     {
90     unsigned FCEN               : 2;
91     unsigned                    : 6;
92     };
93   } __EFLOCONbits_t;
94 
95 extern __at(0x0E97) volatile __EFLOCONbits_t EFLOCONbits;
96 
97 #define _FCEN0                  0x01
98 #define _FCEN1                  0x02
99 #define _FULDPXS                0x04
100 
101 //==============================================================================
102 
103 extern __at(0x0E98) __sfr EPAUS;
104 extern __at(0x0E98) __sfr EPAUSL;
105 extern __at(0x0E99) __sfr EPAUSH;
106 
107 //==============================================================================
108 //        MACON1 Bits
109 
110 extern __at(0x0EA0) __sfr MACON1;
111 
112 typedef struct
113   {
114   unsigned MARXEN               : 1;
115   unsigned PASSALL              : 1;
116   unsigned RXPAUS               : 1;
117   unsigned TXPAUS               : 1;
118   unsigned                      : 1;
119   unsigned                      : 1;
120   unsigned                      : 1;
121   unsigned                      : 1;
122   } __MACON1bits_t;
123 
124 extern __at(0x0EA0) volatile __MACON1bits_t MACON1bits;
125 
126 #define _MARXEN                 0x01
127 #define _PASSALL                0x02
128 #define _RXPAUS                 0x04
129 #define _TXPAUS                 0x08
130 
131 //==============================================================================
132 
133 
134 //==============================================================================
135 //        MACON3 Bits
136 
137 extern __at(0x0EA2) __sfr MACON3;
138 
139 typedef union
140   {
141   struct
142     {
143     unsigned FULDPX             : 1;
144     unsigned FRMLNEN            : 1;
145     unsigned HFRMEN             : 1;
146     unsigned PHDREN             : 1;
147     unsigned TXCRCEN            : 1;
148     unsigned PADCFG0            : 1;
149     unsigned PADCFG1            : 1;
150     unsigned PADCFG2            : 1;
151     };
152 
153   struct
154     {
155     unsigned                    : 5;
156     unsigned PADCFG             : 3;
157     };
158   } __MACON3bits_t;
159 
160 extern __at(0x0EA2) volatile __MACON3bits_t MACON3bits;
161 
162 #define _FULDPX                 0x01
163 #define _FRMLNEN                0x02
164 #define _HFRMEN                 0x04
165 #define _PHDREN                 0x08
166 #define _TXCRCEN                0x10
167 #define _PADCFG0                0x20
168 #define _PADCFG1                0x40
169 #define _PADCFG2                0x80
170 
171 //==============================================================================
172 
173 
174 //==============================================================================
175 //        MACON4 Bits
176 
177 extern __at(0x0EA3) __sfr MACON4;
178 
179 typedef struct
180   {
181   unsigned                      : 1;
182   unsigned                      : 1;
183   unsigned                      : 1;
184   unsigned                      : 1;
185   unsigned                      : 1;
186   unsigned                      : 1;
187   unsigned DEFER                : 1;
188   unsigned                      : 1;
189   } __MACON4bits_t;
190 
191 extern __at(0x0EA3) volatile __MACON4bits_t MACON4bits;
192 
193 #define _DEFER                  0x40
194 
195 //==============================================================================
196 
197 
198 //==============================================================================
199 //        MABBIPG Bits
200 
201 extern __at(0x0EA4) __sfr MABBIPG;
202 
203 typedef union
204   {
205   struct
206     {
207     unsigned BBIPG0             : 1;
208     unsigned BBIPG1             : 1;
209     unsigned BBIPG2             : 1;
210     unsigned BBIPG3             : 1;
211     unsigned BBIPG4             : 1;
212     unsigned BBIPG5             : 1;
213     unsigned BBIPG6             : 1;
214     unsigned                    : 1;
215     };
216 
217   struct
218     {
219     unsigned BBIPG              : 7;
220     unsigned                    : 1;
221     };
222   } __MABBIPGbits_t;
223 
224 extern __at(0x0EA4) volatile __MABBIPGbits_t MABBIPGbits;
225 
226 #define _BBIPG0                 0x01
227 #define _BBIPG1                 0x02
228 #define _BBIPG2                 0x04
229 #define _BBIPG3                 0x08
230 #define _BBIPG4                 0x10
231 #define _BBIPG5                 0x20
232 #define _BBIPG6                 0x40
233 
234 //==============================================================================
235 
236 extern __at(0x0EA6) __sfr MAIPG;
237 extern __at(0x0EA6) __sfr MAIPGL;
238 extern __at(0x0EA7) __sfr MAIPGH;
239 extern __at(0x0EAA) __sfr MAMXFL;
240 extern __at(0x0EAA) __sfr MAMXFLL;
241 extern __at(0x0EAB) __sfr MAMXFLH;
242 
243 //==============================================================================
244 //        MICMD Bits
245 
246 extern __at(0x0EB2) __sfr MICMD;
247 
248 typedef struct
249   {
250   unsigned MIIRD                : 1;
251   unsigned MIISCAN              : 1;
252   unsigned                      : 1;
253   unsigned                      : 1;
254   unsigned                      : 1;
255   unsigned                      : 1;
256   unsigned                      : 1;
257   unsigned                      : 1;
258   } __MICMDbits_t;
259 
260 extern __at(0x0EB2) volatile __MICMDbits_t MICMDbits;
261 
262 #define _MIIRD                  0x01
263 #define _MIISCAN                0x02
264 
265 //==============================================================================
266 
267 extern __at(0x0EB4) __sfr MIREGADR;
268 extern __at(0x0EB6) __sfr MIWR;
269 extern __at(0x0EB6) __sfr MIWRL;
270 extern __at(0x0EB7) __sfr MIWRH;
271 extern __at(0x0EB8) __sfr MIRD;
272 extern __at(0x0EB8) __sfr MIRDL;
273 extern __at(0x0EB9) __sfr MIRDH;
274 extern __at(0x0EC0) __sfr EHT0;
275 extern __at(0x0EC1) __sfr EHT1;
276 extern __at(0x0EC2) __sfr EHT2;
277 extern __at(0x0EC3) __sfr EHT3;
278 extern __at(0x0EC4) __sfr EHT4;
279 extern __at(0x0EC5) __sfr EHT5;
280 extern __at(0x0EC6) __sfr EHT6;
281 extern __at(0x0EC7) __sfr EHT7;
282 extern __at(0x0EC8) __sfr EPMM0;
283 extern __at(0x0EC9) __sfr EPMM1;
284 extern __at(0x0ECA) __sfr EPMM2;
285 extern __at(0x0ECB) __sfr EPMM3;
286 extern __at(0x0ECC) __sfr EPMM4;
287 extern __at(0x0ECD) __sfr EPMM5;
288 extern __at(0x0ECE) __sfr EPMM6;
289 extern __at(0x0ECF) __sfr EPMM7;
290 extern __at(0x0ED0) __sfr EPMCS;
291 extern __at(0x0ED0) __sfr EPMCSL;
292 extern __at(0x0ED1) __sfr EPMCSH;
293 extern __at(0x0ED4) __sfr EPMO;
294 extern __at(0x0ED4) __sfr EPMOL;
295 extern __at(0x0ED5) __sfr EPMOH;
296 
297 //==============================================================================
298 //        ERXFCON Bits
299 
300 extern __at(0x0ED8) __sfr ERXFCON;
301 
302 typedef struct
303   {
304   unsigned BCEN                 : 1;
305   unsigned MCEN                 : 1;
306   unsigned HTEN                 : 1;
307   unsigned MPEN                 : 1;
308   unsigned PMEN                 : 1;
309   unsigned CRCEN                : 1;
310   unsigned ANDOR                : 1;
311   unsigned UCEN                 : 1;
312   } __ERXFCONbits_t;
313 
314 extern __at(0x0ED8) volatile __ERXFCONbits_t ERXFCONbits;
315 
316 #define _BCEN                   0x01
317 #define _MCEN                   0x02
318 #define _HTEN                   0x04
319 #define _MPEN                   0x08
320 #define _PMEN                   0x10
321 #define _CRCEN                  0x20
322 #define _ANDOR                  0x40
323 #define _UCEN                   0x80
324 
325 //==============================================================================
326 
327 extern __at(0x0ED9) __sfr EPKTCNT;
328 extern __at(0x0EE2) __sfr EWRPT;
329 extern __at(0x0EE2) __sfr EWRPTL;
330 extern __at(0x0EE3) __sfr EWRPTH;
331 extern __at(0x0EE4) __sfr ETXST;
332 extern __at(0x0EE4) __sfr ETXSTL;
333 extern __at(0x0EE5) __sfr ETXSTH;
334 extern __at(0x0EE6) __sfr ETXND;
335 extern __at(0x0EE6) __sfr ETXNDL;
336 extern __at(0x0EE7) __sfr ETXNDH;
337 extern __at(0x0EE8) __sfr ERXST;
338 extern __at(0x0EE8) __sfr ERXSTL;
339 extern __at(0x0EE9) __sfr ERXSTH;
340 extern __at(0x0EEA) __sfr ERXND;
341 extern __at(0x0EEA) __sfr ERXNDL;
342 extern __at(0x0EEB) __sfr ERXNDH;
343 extern __at(0x0EEC) __sfr ERXRDPT;
344 extern __at(0x0EEC) __sfr ERXRDPTL;
345 extern __at(0x0EED) __sfr ERXRDPTH;
346 extern __at(0x0EEE) __sfr ERXWRPT;
347 extern __at(0x0EEE) __sfr ERXWRPTL;
348 extern __at(0x0EEF) __sfr ERXWRPTH;
349 extern __at(0x0EF0) __sfr EDMAST;
350 extern __at(0x0EF0) __sfr EDMASTL;
351 extern __at(0x0EF1) __sfr EDMASTH;
352 extern __at(0x0EF2) __sfr EDMAND;
353 extern __at(0x0EF2) __sfr EDMANDL;
354 extern __at(0x0EF3) __sfr EDMANDH;
355 extern __at(0x0EF4) __sfr EDMADST;
356 extern __at(0x0EF4) __sfr EDMADSTL;
357 extern __at(0x0EF5) __sfr EDMADSTH;
358 extern __at(0x0EF6) __sfr EDMACS;
359 extern __at(0x0EF6) __sfr EDMACSL;
360 extern __at(0x0EF7) __sfr EDMACSH;
361 
362 //==============================================================================
363 //        EIE Bits
364 
365 extern __at(0x0EFB) __sfr EIE;
366 
367 typedef union
368   {
369   struct
370     {
371     unsigned RXERIE             : 1;
372     unsigned TXERIE             : 1;
373     unsigned                    : 1;
374     unsigned TXIE               : 1;
375     unsigned LINKIE             : 1;
376     unsigned DMAIE              : 1;
377     unsigned PKTIE              : 1;
378     unsigned                    : 1;
379     };
380 
381   struct
382     {
383     unsigned                    : 1;
384     unsigned                    : 1;
385     unsigned                    : 1;
386     unsigned ETXIE              : 1;
387     unsigned                    : 1;
388     unsigned                    : 1;
389     unsigned                    : 1;
390     unsigned                    : 1;
391     };
392   } __EIEbits_t;
393 
394 extern __at(0x0EFB) volatile __EIEbits_t EIEbits;
395 
396 #define _RXERIE                 0x01
397 #define _TXERIE                 0x02
398 #define _TXIE                   0x08
399 #define _ETXIE                  0x08
400 #define _LINKIE                 0x10
401 #define _DMAIE                  0x20
402 #define _PKTIE                  0x40
403 
404 //==============================================================================
405 
406 
407 //==============================================================================
408 //        ESTAT Bits
409 
410 extern __at(0x0EFD) __sfr ESTAT;
411 
412 typedef struct
413   {
414   unsigned PHYRDY               : 1;
415   unsigned TXABRT               : 1;
416   unsigned RXBUSY               : 1;
417   unsigned                      : 1;
418   unsigned                      : 1;
419   unsigned                      : 1;
420   unsigned BUFER                : 1;
421   unsigned                      : 1;
422   } __ESTATbits_t;
423 
424 extern __at(0x0EFD) volatile __ESTATbits_t ESTATbits;
425 
426 #define _PHYRDY                 0x01
427 #define _TXABRT                 0x02
428 #define _RXBUSY                 0x04
429 #define _BUFER                  0x40
430 
431 //==============================================================================
432 
433 
434 //==============================================================================
435 //        ECON2 Bits
436 
437 extern __at(0x0EFE) __sfr ECON2;
438 
439 typedef struct
440   {
441   unsigned                      : 1;
442   unsigned                      : 1;
443   unsigned                      : 1;
444   unsigned                      : 1;
445   unsigned                      : 1;
446   unsigned ETHEN                : 1;
447   unsigned PKTDEC               : 1;
448   unsigned AUTOINC              : 1;
449   } __ECON2bits_t;
450 
451 extern __at(0x0EFE) volatile __ECON2bits_t ECON2bits;
452 
453 #define _ETHEN                  0x20
454 #define _PKTDEC                 0x40
455 #define _AUTOINC                0x80
456 
457 //==============================================================================
458 
459 
460 //==============================================================================
461 //        EIR Bits
462 
463 extern __at(0x0F60) __sfr EIR;
464 
465 typedef struct
466   {
467   unsigned RXERIF               : 1;
468   unsigned TXERIF               : 1;
469   unsigned                      : 1;
470   unsigned TXIF                 : 1;
471   unsigned LINKIF               : 1;
472   unsigned DMAIF                : 1;
473   unsigned PKTIF                : 1;
474   unsigned                      : 1;
475   } __EIRbits_t;
476 
477 extern __at(0x0F60) volatile __EIRbits_t EIRbits;
478 
479 #define _RXERIF                 0x01
480 #define _TXERIF                 0x02
481 #define _TXIF                   0x08
482 #define _LINKIF                 0x10
483 #define _DMAIF                  0x20
484 #define _PKTIF                  0x40
485 
486 //==============================================================================
487 
488 
489 //==============================================================================
490 //        EDATA Bits
491 
492 extern __at(0x0F61) __sfr EDATA;
493 
494 typedef struct
495   {
496   unsigned EDATA0               : 1;
497   unsigned EDATA1               : 1;
498   unsigned EDATA2               : 1;
499   unsigned EDATA3               : 1;
500   unsigned EDATA4               : 1;
501   unsigned EDATA5               : 1;
502   unsigned EDATA6               : 1;
503   unsigned EDATA7               : 1;
504   } __EDATAbits_t;
505 
506 extern __at(0x0F61) volatile __EDATAbits_t EDATAbits;
507 
508 #define _EDATA0                 0x01
509 #define _EDATA1                 0x02
510 #define _EDATA2                 0x04
511 #define _EDATA3                 0x08
512 #define _EDATA4                 0x10
513 #define _EDATA5                 0x20
514 #define _EDATA6                 0x40
515 #define _EDATA7                 0x80
516 
517 //==============================================================================
518 
519 
520 //==============================================================================
521 //        ECCP2DEL Bits
522 
523 extern __at(0x0F67) __sfr ECCP2DEL;
524 
525 typedef union
526   {
527   struct
528     {
529     unsigned PDC0               : 1;
530     unsigned PDC1               : 1;
531     unsigned PDC2               : 1;
532     unsigned PDC3               : 1;
533     unsigned PDC4               : 1;
534     unsigned PDC5               : 1;
535     unsigned PDC6               : 1;
536     unsigned PRSEN              : 1;
537     };
538 
539   struct
540     {
541     unsigned P2DC0              : 1;
542     unsigned P2DC1              : 1;
543     unsigned P2DC2              : 1;
544     unsigned P2DC3              : 1;
545     unsigned P2DC4              : 1;
546     unsigned P2DC5              : 1;
547     unsigned P2DC6              : 1;
548     unsigned P2RSEN             : 1;
549     };
550 
551   struct
552     {
553     unsigned PDC                : 7;
554     unsigned                    : 1;
555     };
556 
557   struct
558     {
559     unsigned P2DC               : 7;
560     unsigned                    : 1;
561     };
562   } __ECCP2DELbits_t;
563 
564 extern __at(0x0F67) volatile __ECCP2DELbits_t ECCP2DELbits;
565 
566 #define _ECCP2DEL_PDC0          0x01
567 #define _ECCP2DEL_P2DC0         0x01
568 #define _ECCP2DEL_PDC1          0x02
569 #define _ECCP2DEL_P2DC1         0x02
570 #define _ECCP2DEL_PDC2          0x04
571 #define _ECCP2DEL_P2DC2         0x04
572 #define _ECCP2DEL_PDC3          0x08
573 #define _ECCP2DEL_P2DC3         0x08
574 #define _ECCP2DEL_PDC4          0x10
575 #define _ECCP2DEL_P2DC4         0x10
576 #define _ECCP2DEL_PDC5          0x20
577 #define _ECCP2DEL_P2DC5         0x20
578 #define _ECCP2DEL_PDC6          0x40
579 #define _ECCP2DEL_P2DC6         0x40
580 #define _ECCP2DEL_PRSEN         0x80
581 #define _ECCP2DEL_P2RSEN        0x80
582 
583 //==============================================================================
584 
585 
586 //==============================================================================
587 //        ECCP2AS Bits
588 
589 extern __at(0x0F68) __sfr ECCP2AS;
590 
591 typedef union
592   {
593   struct
594     {
595     unsigned PSSBD0             : 1;
596     unsigned PSSBD1             : 1;
597     unsigned PSSAC0             : 1;
598     unsigned PSSAC1             : 1;
599     unsigned ECCPAS0            : 1;
600     unsigned ECCPAS1            : 1;
601     unsigned ECCPAS2            : 1;
602     unsigned ECCPASE            : 1;
603     };
604 
605   struct
606     {
607     unsigned PSS2BD0            : 1;
608     unsigned PSS2BD1            : 1;
609     unsigned PSS2AC0            : 1;
610     unsigned PSS2AC1            : 1;
611     unsigned ECCP2AS0           : 1;
612     unsigned ECCP2AS1           : 1;
613     unsigned ECCP2AS2           : 1;
614     unsigned ECCP2ASE           : 1;
615     };
616 
617   struct
618     {
619     unsigned PSS2BD             : 2;
620     unsigned                    : 6;
621     };
622 
623   struct
624     {
625     unsigned PSSBD              : 2;
626     unsigned                    : 6;
627     };
628 
629   struct
630     {
631     unsigned                    : 2;
632     unsigned PSS2AC             : 2;
633     unsigned                    : 4;
634     };
635 
636   struct
637     {
638     unsigned                    : 2;
639     unsigned PSSAC              : 2;
640     unsigned                    : 4;
641     };
642 
643   struct
644     {
645     unsigned                    : 4;
646     unsigned ECCP2AS            : 3;
647     unsigned                    : 1;
648     };
649 
650   struct
651     {
652     unsigned                    : 4;
653     unsigned ECCPAS             : 3;
654     unsigned                    : 1;
655     };
656   } __ECCP2ASbits_t;
657 
658 extern __at(0x0F68) volatile __ECCP2ASbits_t ECCP2ASbits;
659 
660 #define _ECCP2AS_PSSBD0         0x01
661 #define _ECCP2AS_PSS2BD0        0x01
662 #define _ECCP2AS_PSSBD1         0x02
663 #define _ECCP2AS_PSS2BD1        0x02
664 #define _ECCP2AS_PSSAC0         0x04
665 #define _ECCP2AS_PSS2AC0        0x04
666 #define _ECCP2AS_PSSAC1         0x08
667 #define _ECCP2AS_PSS2AC1        0x08
668 #define _ECCP2AS_ECCPAS0        0x10
669 #define _ECCP2AS_ECCP2AS0       0x10
670 #define _ECCP2AS_ECCPAS1        0x20
671 #define _ECCP2AS_ECCP2AS1       0x20
672 #define _ECCP2AS_ECCPAS2        0x40
673 #define _ECCP2AS_ECCP2AS2       0x40
674 #define _ECCP2AS_ECCPASE        0x80
675 #define _ECCP2AS_ECCP2ASE       0x80
676 
677 //==============================================================================
678 
679 
680 //==============================================================================
681 //        ECCP3DEL Bits
682 
683 extern __at(0x0F69) __sfr ECCP3DEL;
684 
685 typedef union
686   {
687   struct
688     {
689     unsigned PDC0               : 1;
690     unsigned PDC1               : 1;
691     unsigned PDC2               : 1;
692     unsigned PDC3               : 1;
693     unsigned PDC4               : 1;
694     unsigned PDC5               : 1;
695     unsigned PDC6               : 1;
696     unsigned PRSEN              : 1;
697     };
698 
699   struct
700     {
701     unsigned P3DC0              : 1;
702     unsigned P3DC1              : 1;
703     unsigned P3DC2              : 1;
704     unsigned P3DC3              : 1;
705     unsigned P3DC4              : 1;
706     unsigned P3DC5              : 1;
707     unsigned P3DC6              : 1;
708     unsigned P3RSEN             : 1;
709     };
710 
711   struct
712     {
713     unsigned PDC                : 7;
714     unsigned                    : 1;
715     };
716 
717   struct
718     {
719     unsigned P3DC               : 7;
720     unsigned                    : 1;
721     };
722   } __ECCP3DELbits_t;
723 
724 extern __at(0x0F69) volatile __ECCP3DELbits_t ECCP3DELbits;
725 
726 #define _ECCP3DEL_PDC0          0x01
727 #define _ECCP3DEL_P3DC0         0x01
728 #define _ECCP3DEL_PDC1          0x02
729 #define _ECCP3DEL_P3DC1         0x02
730 #define _ECCP3DEL_PDC2          0x04
731 #define _ECCP3DEL_P3DC2         0x04
732 #define _ECCP3DEL_PDC3          0x08
733 #define _ECCP3DEL_P3DC3         0x08
734 #define _ECCP3DEL_PDC4          0x10
735 #define _ECCP3DEL_P3DC4         0x10
736 #define _ECCP3DEL_PDC5          0x20
737 #define _ECCP3DEL_P3DC5         0x20
738 #define _ECCP3DEL_PDC6          0x40
739 #define _ECCP3DEL_P3DC6         0x40
740 #define _ECCP3DEL_PRSEN         0x80
741 #define _ECCP3DEL_P3RSEN        0x80
742 
743 //==============================================================================
744 
745 
746 //==============================================================================
747 //        ECCP3AS Bits
748 
749 extern __at(0x0F6A) __sfr ECCP3AS;
750 
751 typedef union
752   {
753   struct
754     {
755     unsigned PSSBD0             : 1;
756     unsigned PSSBD1             : 1;
757     unsigned PSSAC0             : 1;
758     unsigned PSSAC1             : 1;
759     unsigned ECCPAS0            : 1;
760     unsigned ECCPAS1            : 1;
761     unsigned ECCPAS2            : 1;
762     unsigned ECCPASE            : 1;
763     };
764 
765   struct
766     {
767     unsigned PSS3BD0            : 1;
768     unsigned PSS3BD1            : 1;
769     unsigned PSS3AC0            : 1;
770     unsigned PSS3AC1            : 1;
771     unsigned ECCP3AS0           : 1;
772     unsigned ECCP3AS1           : 1;
773     unsigned ECCP3AS2           : 1;
774     unsigned ECCP3ASE           : 1;
775     };
776 
777   struct
778     {
779     unsigned PSSBD              : 2;
780     unsigned                    : 6;
781     };
782 
783   struct
784     {
785     unsigned PSS3BD             : 2;
786     unsigned                    : 6;
787     };
788 
789   struct
790     {
791     unsigned                    : 2;
792     unsigned PSSAC              : 2;
793     unsigned                    : 4;
794     };
795 
796   struct
797     {
798     unsigned                    : 2;
799     unsigned PSS3AC             : 2;
800     unsigned                    : 4;
801     };
802 
803   struct
804     {
805     unsigned                    : 4;
806     unsigned ECCPAS             : 3;
807     unsigned                    : 1;
808     };
809 
810   struct
811     {
812     unsigned                    : 4;
813     unsigned ECCP3AS            : 3;
814     unsigned                    : 1;
815     };
816   } __ECCP3ASbits_t;
817 
818 extern __at(0x0F6A) volatile __ECCP3ASbits_t ECCP3ASbits;
819 
820 #define _ECCP3AS_PSSBD0         0x01
821 #define _ECCP3AS_PSS3BD0        0x01
822 #define _ECCP3AS_PSSBD1         0x02
823 #define _ECCP3AS_PSS3BD1        0x02
824 #define _ECCP3AS_PSSAC0         0x04
825 #define _ECCP3AS_PSS3AC0        0x04
826 #define _ECCP3AS_PSSAC1         0x08
827 #define _ECCP3AS_PSS3AC1        0x08
828 #define _ECCP3AS_ECCPAS0        0x10
829 #define _ECCP3AS_ECCP3AS0       0x10
830 #define _ECCP3AS_ECCPAS1        0x20
831 #define _ECCP3AS_ECCP3AS1       0x20
832 #define _ECCP3AS_ECCPAS2        0x40
833 #define _ECCP3AS_ECCP3AS2       0x40
834 #define _ECCP3AS_ECCPASE        0x80
835 #define _ECCP3AS_ECCP3ASE       0x80
836 
837 //==============================================================================
838 
839 
840 //==============================================================================
841 //        RCSTA2 Bits
842 
843 extern __at(0x0F6B) __sfr RCSTA2;
844 
845 typedef union
846   {
847   struct
848     {
849     unsigned RX9D               : 1;
850     unsigned OERR               : 1;
851     unsigned FERR               : 1;
852     unsigned ADDEN              : 1;
853     unsigned CREN               : 1;
854     unsigned SREN               : 1;
855     unsigned RX9                : 1;
856     unsigned SPEN               : 1;
857     };
858 
859   struct
860     {
861     unsigned RCD8               : 1;
862     unsigned OERR2              : 1;
863     unsigned FERR2              : 1;
864     unsigned ADDEN2             : 1;
865     unsigned CREN2              : 1;
866     unsigned SREN2              : 1;
867     unsigned RC9                : 1;
868     unsigned SPEN2              : 1;
869     };
870 
871   struct
872     {
873     unsigned RX9D2              : 1;
874     unsigned                    : 1;
875     unsigned                    : 1;
876     unsigned                    : 1;
877     unsigned                    : 1;
878     unsigned                    : 1;
879     unsigned NOT_RC8            : 1;
880     unsigned                    : 1;
881     };
882 
883   struct
884     {
885     unsigned                    : 1;
886     unsigned                    : 1;
887     unsigned                    : 1;
888     unsigned                    : 1;
889     unsigned                    : 1;
890     unsigned                    : 1;
891     unsigned RC8_9              : 1;
892     unsigned                    : 1;
893     };
894 
895   struct
896     {
897     unsigned                    : 1;
898     unsigned                    : 1;
899     unsigned                    : 1;
900     unsigned                    : 1;
901     unsigned                    : 1;
902     unsigned                    : 1;
903     unsigned RX92               : 1;
904     unsigned                    : 1;
905     };
906   } __RCSTA2bits_t;
907 
908 extern __at(0x0F6B) volatile __RCSTA2bits_t RCSTA2bits;
909 
910 #define _RCSTA2_RX9D            0x01
911 #define _RCSTA2_RCD8            0x01
912 #define _RCSTA2_RX9D2           0x01
913 #define _RCSTA2_OERR            0x02
914 #define _RCSTA2_OERR2           0x02
915 #define _RCSTA2_FERR            0x04
916 #define _RCSTA2_FERR2           0x04
917 #define _RCSTA2_ADDEN           0x08
918 #define _RCSTA2_ADDEN2          0x08
919 #define _RCSTA2_CREN            0x10
920 #define _RCSTA2_CREN2           0x10
921 #define _RCSTA2_SREN            0x20
922 #define _RCSTA2_SREN2           0x20
923 #define _RCSTA2_RX9             0x40
924 #define _RCSTA2_RC9             0x40
925 #define _RCSTA2_NOT_RC8         0x40
926 #define _RCSTA2_RC8_9           0x40
927 #define _RCSTA2_RX92            0x40
928 #define _RCSTA2_SPEN            0x80
929 #define _RCSTA2_SPEN2           0x80
930 
931 //==============================================================================
932 
933 
934 //==============================================================================
935 //        TXSTA2 Bits
936 
937 extern __at(0x0F6C) __sfr TXSTA2;
938 
939 typedef union
940   {
941   struct
942     {
943     unsigned TX9D               : 1;
944     unsigned TRMT               : 1;
945     unsigned BRGH               : 1;
946     unsigned SENDB              : 1;
947     unsigned SYNC               : 1;
948     unsigned TXEN               : 1;
949     unsigned TX9                : 1;
950     unsigned CSRC               : 1;
951     };
952 
953   struct
954     {
955     unsigned TXD8               : 1;
956     unsigned TRMT2              : 1;
957     unsigned BRGH2              : 1;
958     unsigned SENDB2             : 1;
959     unsigned SYNC2              : 1;
960     unsigned TXEN2              : 1;
961     unsigned TX8_9              : 1;
962     unsigned CSRC2              : 1;
963     };
964 
965   struct
966     {
967     unsigned TX9D2              : 1;
968     unsigned                    : 1;
969     unsigned                    : 1;
970     unsigned                    : 1;
971     unsigned                    : 1;
972     unsigned                    : 1;
973     unsigned NOT_TX8            : 1;
974     unsigned                    : 1;
975     };
976 
977   struct
978     {
979     unsigned                    : 1;
980     unsigned                    : 1;
981     unsigned                    : 1;
982     unsigned                    : 1;
983     unsigned                    : 1;
984     unsigned                    : 1;
985     unsigned TX92               : 1;
986     unsigned                    : 1;
987     };
988   } __TXSTA2bits_t;
989 
990 extern __at(0x0F6C) volatile __TXSTA2bits_t TXSTA2bits;
991 
992 #define _TXSTA2_TX9D            0x01
993 #define _TXSTA2_TXD8            0x01
994 #define _TXSTA2_TX9D2           0x01
995 #define _TXSTA2_TRMT            0x02
996 #define _TXSTA2_TRMT2           0x02
997 #define _TXSTA2_BRGH            0x04
998 #define _TXSTA2_BRGH2           0x04
999 #define _TXSTA2_SENDB           0x08
1000 #define _TXSTA2_SENDB2          0x08
1001 #define _TXSTA2_SYNC            0x10
1002 #define _TXSTA2_SYNC2           0x10
1003 #define _TXSTA2_TXEN            0x20
1004 #define _TXSTA2_TXEN2           0x20
1005 #define _TXSTA2_TX9             0x40
1006 #define _TXSTA2_TX8_9           0x40
1007 #define _TXSTA2_NOT_TX8         0x40
1008 #define _TXSTA2_TX92            0x40
1009 #define _TXSTA2_CSRC            0x80
1010 #define _TXSTA2_CSRC2           0x80
1011 
1012 //==============================================================================
1013 
1014 extern __at(0x0F6D) __sfr TXREG2;
1015 extern __at(0x0F6E) __sfr RCREG2;
1016 extern __at(0x0F6F) __sfr SPBRG2;
1017 
1018 //==============================================================================
1019 //        CCP5CON Bits
1020 
1021 extern __at(0x0F70) __sfr CCP5CON;
1022 
1023 typedef union
1024   {
1025   struct
1026     {
1027     unsigned CCP5M0             : 1;
1028     unsigned CCP5M1             : 1;
1029     unsigned CCP5M2             : 1;
1030     unsigned CCP5M3             : 1;
1031     unsigned CCP5Y              : 1;
1032     unsigned CCP5X              : 1;
1033     unsigned                    : 1;
1034     unsigned                    : 1;
1035     };
1036 
1037   struct
1038     {
1039     unsigned                    : 1;
1040     unsigned                    : 1;
1041     unsigned                    : 1;
1042     unsigned                    : 1;
1043     unsigned DC5B0              : 1;
1044     unsigned DC5B1              : 1;
1045     unsigned                    : 1;
1046     unsigned                    : 1;
1047     };
1048 
1049   struct
1050     {
1051     unsigned CCP5M              : 4;
1052     unsigned                    : 4;
1053     };
1054 
1055   struct
1056     {
1057     unsigned                    : 4;
1058     unsigned DC5B               : 2;
1059     unsigned                    : 2;
1060     };
1061   } __CCP5CONbits_t;
1062 
1063 extern __at(0x0F70) volatile __CCP5CONbits_t CCP5CONbits;
1064 
1065 #define _CCP5M0                 0x01
1066 #define _CCP5M1                 0x02
1067 #define _CCP5M2                 0x04
1068 #define _CCP5M3                 0x08
1069 #define _CCP5Y                  0x10
1070 #define _DC5B0                  0x10
1071 #define _CCP5X                  0x20
1072 #define _DC5B1                  0x20
1073 
1074 //==============================================================================
1075 
1076 extern __at(0x0F71) __sfr CCPR5;
1077 extern __at(0x0F71) __sfr CCPR5L;
1078 extern __at(0x0F72) __sfr CCPR5H;
1079 
1080 //==============================================================================
1081 //        CCP4CON Bits
1082 
1083 extern __at(0x0F73) __sfr CCP4CON;
1084 
1085 typedef union
1086   {
1087   struct
1088     {
1089     unsigned CCP4M0             : 1;
1090     unsigned CCP4M1             : 1;
1091     unsigned CCP4M2             : 1;
1092     unsigned CCP4M3             : 1;
1093     unsigned DC4B0              : 1;
1094     unsigned DC4B1              : 1;
1095     unsigned                    : 1;
1096     unsigned                    : 1;
1097     };
1098 
1099   struct
1100     {
1101     unsigned                    : 1;
1102     unsigned                    : 1;
1103     unsigned                    : 1;
1104     unsigned                    : 1;
1105     unsigned CCP4Y              : 1;
1106     unsigned CCP4X              : 1;
1107     unsigned                    : 1;
1108     unsigned                    : 1;
1109     };
1110 
1111   struct
1112     {
1113     unsigned CCP4M              : 4;
1114     unsigned                    : 4;
1115     };
1116 
1117   struct
1118     {
1119     unsigned                    : 4;
1120     unsigned DC4B               : 2;
1121     unsigned                    : 2;
1122     };
1123   } __CCP4CONbits_t;
1124 
1125 extern __at(0x0F73) volatile __CCP4CONbits_t CCP4CONbits;
1126 
1127 #define _CCP4M0                 0x01
1128 #define _CCP4M1                 0x02
1129 #define _CCP4M2                 0x04
1130 #define _CCP4M3                 0x08
1131 #define _DC4B0                  0x10
1132 #define _CCP4Y                  0x10
1133 #define _DC4B1                  0x20
1134 #define _CCP4X                  0x20
1135 
1136 //==============================================================================
1137 
1138 extern __at(0x0F74) __sfr CCPR4;
1139 extern __at(0x0F74) __sfr CCPR4L;
1140 extern __at(0x0F75) __sfr CCPR4H;
1141 
1142 //==============================================================================
1143 //        T4CON Bits
1144 
1145 extern __at(0x0F76) __sfr T4CON;
1146 
1147 typedef union
1148   {
1149   struct
1150     {
1151     unsigned T4CKPS0            : 1;
1152     unsigned T4CKPS1            : 1;
1153     unsigned TMR4ON             : 1;
1154     unsigned T4OUTPS0           : 1;
1155     unsigned T4OUTPS1           : 1;
1156     unsigned T4OUTPS2           : 1;
1157     unsigned T4OUTPS3           : 1;
1158     unsigned                    : 1;
1159     };
1160 
1161   struct
1162     {
1163     unsigned T4CKPS             : 2;
1164     unsigned                    : 6;
1165     };
1166 
1167   struct
1168     {
1169     unsigned                    : 3;
1170     unsigned T4OUTPS            : 4;
1171     unsigned                    : 1;
1172     };
1173   } __T4CONbits_t;
1174 
1175 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits;
1176 
1177 #define _T4CKPS0                0x01
1178 #define _T4CKPS1                0x02
1179 #define _TMR4ON                 0x04
1180 #define _T4OUTPS0               0x08
1181 #define _T4OUTPS1               0x10
1182 #define _T4OUTPS2               0x20
1183 #define _T4OUTPS3               0x40
1184 
1185 //==============================================================================
1186 
1187 extern __at(0x0F77) __sfr PR4;
1188 extern __at(0x0F78) __sfr TMR4;
1189 
1190 //==============================================================================
1191 //        ECCP1DEL Bits
1192 
1193 extern __at(0x0F79) __sfr ECCP1DEL;
1194 
1195 typedef union
1196   {
1197   struct
1198     {
1199     unsigned PDC0               : 1;
1200     unsigned PDC1               : 1;
1201     unsigned PDC2               : 1;
1202     unsigned PDC3               : 1;
1203     unsigned PDC4               : 1;
1204     unsigned PDC5               : 1;
1205     unsigned PDC6               : 1;
1206     unsigned PRSEN              : 1;
1207     };
1208 
1209   struct
1210     {
1211     unsigned P1DC0              : 1;
1212     unsigned P1DC1              : 1;
1213     unsigned P1DC2              : 1;
1214     unsigned P1DC3              : 1;
1215     unsigned P1DC4              : 1;
1216     unsigned P1DC5              : 1;
1217     unsigned P1DC6              : 1;
1218     unsigned P1RSEN             : 1;
1219     };
1220 
1221   struct
1222     {
1223     unsigned PDC                : 7;
1224     unsigned                    : 1;
1225     };
1226 
1227   struct
1228     {
1229     unsigned P1DC               : 7;
1230     unsigned                    : 1;
1231     };
1232   } __ECCP1DELbits_t;
1233 
1234 extern __at(0x0F79) volatile __ECCP1DELbits_t ECCP1DELbits;
1235 
1236 #define _PDC0                   0x01
1237 #define _P1DC0                  0x01
1238 #define _PDC1                   0x02
1239 #define _P1DC1                  0x02
1240 #define _PDC2                   0x04
1241 #define _P1DC2                  0x04
1242 #define _PDC3                   0x08
1243 #define _P1DC3                  0x08
1244 #define _PDC4                   0x10
1245 #define _P1DC4                  0x10
1246 #define _PDC5                   0x20
1247 #define _P1DC5                  0x20
1248 #define _PDC6                   0x40
1249 #define _P1DC6                  0x40
1250 #define _PRSEN                  0x80
1251 #define _P1RSEN                 0x80
1252 
1253 //==============================================================================
1254 
1255 extern __at(0x0F7A) __sfr ERDPT;
1256 extern __at(0x0F7A) __sfr ERDPTL;
1257 extern __at(0x0F7B) __sfr ERDPTH;
1258 
1259 //==============================================================================
1260 //        BAUDCON2 Bits
1261 
1262 extern __at(0x0F7C) __sfr BAUDCON2;
1263 
1264 typedef union
1265   {
1266   struct
1267     {
1268     unsigned ABDEN              : 1;
1269     unsigned WUE                : 1;
1270     unsigned                    : 1;
1271     unsigned BRG16              : 1;
1272     unsigned TXCKP              : 1;
1273     unsigned RXDTP              : 1;
1274     unsigned RCIDL              : 1;
1275     unsigned ABDOVF             : 1;
1276     };
1277 
1278   struct
1279     {
1280     unsigned ABDEN2             : 1;
1281     unsigned WUE2               : 1;
1282     unsigned                    : 1;
1283     unsigned BRG162             : 1;
1284     unsigned SCKP               : 1;
1285     unsigned RXDTP2             : 1;
1286     unsigned RCMT               : 1;
1287     unsigned ABDOVF2            : 1;
1288     };
1289 
1290   struct
1291     {
1292     unsigned                    : 1;
1293     unsigned                    : 1;
1294     unsigned                    : 1;
1295     unsigned                    : 1;
1296     unsigned TXCKP2             : 1;
1297     unsigned                    : 1;
1298     unsigned RCIDL2             : 1;
1299     unsigned                    : 1;
1300     };
1301   } __BAUDCON2bits_t;
1302 
1303 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits;
1304 
1305 #define _BAUDCON2_ABDEN         0x01
1306 #define _BAUDCON2_ABDEN2        0x01
1307 #define _BAUDCON2_WUE           0x02
1308 #define _BAUDCON2_WUE2          0x02
1309 #define _BAUDCON2_BRG16         0x08
1310 #define _BAUDCON2_BRG162        0x08
1311 #define _BAUDCON2_TXCKP         0x10
1312 #define _BAUDCON2_SCKP          0x10
1313 #define _BAUDCON2_TXCKP2        0x10
1314 #define _BAUDCON2_RXDTP         0x20
1315 #define _BAUDCON2_RXDTP2        0x20
1316 #define _BAUDCON2_RCIDL         0x40
1317 #define _BAUDCON2_RCMT          0x40
1318 #define _BAUDCON2_RCIDL2        0x40
1319 #define _BAUDCON2_ABDOVF        0x80
1320 #define _BAUDCON2_ABDOVF2       0x80
1321 
1322 //==============================================================================
1323 
1324 
1325 //==============================================================================
1326 //        BAUDCTL2 Bits
1327 
1328 extern __at(0x0F7C) __sfr BAUDCTL2;
1329 
1330 typedef union
1331   {
1332   struct
1333     {
1334     unsigned ABDEN              : 1;
1335     unsigned WUE                : 1;
1336     unsigned                    : 1;
1337     unsigned BRG16              : 1;
1338     unsigned TXCKP              : 1;
1339     unsigned RXDTP              : 1;
1340     unsigned RCIDL              : 1;
1341     unsigned ABDOVF             : 1;
1342     };
1343 
1344   struct
1345     {
1346     unsigned ABDEN2             : 1;
1347     unsigned WUE2               : 1;
1348     unsigned                    : 1;
1349     unsigned BRG162             : 1;
1350     unsigned SCKP               : 1;
1351     unsigned RXDTP2             : 1;
1352     unsigned RCMT               : 1;
1353     unsigned ABDOVF2            : 1;
1354     };
1355 
1356   struct
1357     {
1358     unsigned                    : 1;
1359     unsigned                    : 1;
1360     unsigned                    : 1;
1361     unsigned                    : 1;
1362     unsigned TXCKP2             : 1;
1363     unsigned                    : 1;
1364     unsigned RCIDL2             : 1;
1365     unsigned                    : 1;
1366     };
1367   } __BAUDCTL2bits_t;
1368 
1369 extern __at(0x0F7C) volatile __BAUDCTL2bits_t BAUDCTL2bits;
1370 
1371 #define _BAUDCTL2_ABDEN         0x01
1372 #define _BAUDCTL2_ABDEN2        0x01
1373 #define _BAUDCTL2_WUE           0x02
1374 #define _BAUDCTL2_WUE2          0x02
1375 #define _BAUDCTL2_BRG16         0x08
1376 #define _BAUDCTL2_BRG162        0x08
1377 #define _BAUDCTL2_TXCKP         0x10
1378 #define _BAUDCTL2_SCKP          0x10
1379 #define _BAUDCTL2_TXCKP2        0x10
1380 #define _BAUDCTL2_RXDTP         0x20
1381 #define _BAUDCTL2_RXDTP2        0x20
1382 #define _BAUDCTL2_RCIDL         0x40
1383 #define _BAUDCTL2_RCMT          0x40
1384 #define _BAUDCTL2_RCIDL2        0x40
1385 #define _BAUDCTL2_ABDOVF        0x80
1386 #define _BAUDCTL2_ABDOVF2       0x80
1387 
1388 //==============================================================================
1389 
1390 extern __at(0x0F7D) __sfr SPBRGH2;
1391 
1392 //==============================================================================
1393 //        BAUDCON Bits
1394 
1395 extern __at(0x0F7E) __sfr BAUDCON;
1396 
1397 typedef union
1398   {
1399   struct
1400     {
1401     unsigned ABDEN              : 1;
1402     unsigned WUE                : 1;
1403     unsigned                    : 1;
1404     unsigned BRG16              : 1;
1405     unsigned TXCKP              : 1;
1406     unsigned RXDTP              : 1;
1407     unsigned RCIDL              : 1;
1408     unsigned ABDOVF             : 1;
1409     };
1410 
1411   struct
1412     {
1413     unsigned                    : 1;
1414     unsigned                    : 1;
1415     unsigned                    : 1;
1416     unsigned                    : 1;
1417     unsigned SCKP               : 1;
1418     unsigned                    : 1;
1419     unsigned RCMT               : 1;
1420     unsigned                    : 1;
1421     };
1422   } __BAUDCONbits_t;
1423 
1424 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits;
1425 
1426 #define _ABDEN                  0x01
1427 #define _WUE                    0x02
1428 #define _BRG16                  0x08
1429 #define _TXCKP                  0x10
1430 #define _SCKP                   0x10
1431 #define _RXDTP                  0x20
1432 #define _RCIDL                  0x40
1433 #define _RCMT                   0x40
1434 #define _ABDOVF                 0x80
1435 
1436 //==============================================================================
1437 
1438 
1439 //==============================================================================
1440 //        BAUDCON1 Bits
1441 
1442 extern __at(0x0F7E) __sfr BAUDCON1;
1443 
1444 typedef union
1445   {
1446   struct
1447     {
1448     unsigned ABDEN              : 1;
1449     unsigned WUE                : 1;
1450     unsigned                    : 1;
1451     unsigned BRG16              : 1;
1452     unsigned TXCKP              : 1;
1453     unsigned RXDTP              : 1;
1454     unsigned RCIDL              : 1;
1455     unsigned ABDOVF             : 1;
1456     };
1457 
1458   struct
1459     {
1460     unsigned                    : 1;
1461     unsigned                    : 1;
1462     unsigned                    : 1;
1463     unsigned                    : 1;
1464     unsigned SCKP               : 1;
1465     unsigned                    : 1;
1466     unsigned RCMT               : 1;
1467     unsigned                    : 1;
1468     };
1469   } __BAUDCON1bits_t;
1470 
1471 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits;
1472 
1473 #define _BAUDCON1_ABDEN         0x01
1474 #define _BAUDCON1_WUE           0x02
1475 #define _BAUDCON1_BRG16         0x08
1476 #define _BAUDCON1_TXCKP         0x10
1477 #define _BAUDCON1_SCKP          0x10
1478 #define _BAUDCON1_RXDTP         0x20
1479 #define _BAUDCON1_RCIDL         0x40
1480 #define _BAUDCON1_RCMT          0x40
1481 #define _BAUDCON1_ABDOVF        0x80
1482 
1483 //==============================================================================
1484 
1485 
1486 //==============================================================================
1487 //        BAUDCTL Bits
1488 
1489 extern __at(0x0F7E) __sfr BAUDCTL;
1490 
1491 typedef union
1492   {
1493   struct
1494     {
1495     unsigned ABDEN              : 1;
1496     unsigned WUE                : 1;
1497     unsigned                    : 1;
1498     unsigned BRG16              : 1;
1499     unsigned TXCKP              : 1;
1500     unsigned RXDTP              : 1;
1501     unsigned RCIDL              : 1;
1502     unsigned ABDOVF             : 1;
1503     };
1504 
1505   struct
1506     {
1507     unsigned                    : 1;
1508     unsigned                    : 1;
1509     unsigned                    : 1;
1510     unsigned                    : 1;
1511     unsigned SCKP               : 1;
1512     unsigned                    : 1;
1513     unsigned RCMT               : 1;
1514     unsigned                    : 1;
1515     };
1516   } __BAUDCTLbits_t;
1517 
1518 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits;
1519 
1520 #define _BAUDCTL_ABDEN          0x01
1521 #define _BAUDCTL_WUE            0x02
1522 #define _BAUDCTL_BRG16          0x08
1523 #define _BAUDCTL_TXCKP          0x10
1524 #define _BAUDCTL_SCKP           0x10
1525 #define _BAUDCTL_RXDTP          0x20
1526 #define _BAUDCTL_RCIDL          0x40
1527 #define _BAUDCTL_RCMT           0x40
1528 #define _BAUDCTL_ABDOVF         0x80
1529 
1530 //==============================================================================
1531 
1532 
1533 //==============================================================================
1534 //        BAUDCTL1 Bits
1535 
1536 extern __at(0x0F7E) __sfr BAUDCTL1;
1537 
1538 typedef union
1539   {
1540   struct
1541     {
1542     unsigned ABDEN              : 1;
1543     unsigned WUE                : 1;
1544     unsigned                    : 1;
1545     unsigned BRG16              : 1;
1546     unsigned TXCKP              : 1;
1547     unsigned RXDTP              : 1;
1548     unsigned RCIDL              : 1;
1549     unsigned ABDOVF             : 1;
1550     };
1551 
1552   struct
1553     {
1554     unsigned                    : 1;
1555     unsigned                    : 1;
1556     unsigned                    : 1;
1557     unsigned                    : 1;
1558     unsigned SCKP               : 1;
1559     unsigned                    : 1;
1560     unsigned RCMT               : 1;
1561     unsigned                    : 1;
1562     };
1563   } __BAUDCTL1bits_t;
1564 
1565 extern __at(0x0F7E) volatile __BAUDCTL1bits_t BAUDCTL1bits;
1566 
1567 #define _BAUDCTL1_ABDEN         0x01
1568 #define _BAUDCTL1_WUE           0x02
1569 #define _BAUDCTL1_BRG16         0x08
1570 #define _BAUDCTL1_TXCKP         0x10
1571 #define _BAUDCTL1_SCKP          0x10
1572 #define _BAUDCTL1_RXDTP         0x20
1573 #define _BAUDCTL1_RCIDL         0x40
1574 #define _BAUDCTL1_RCMT          0x40
1575 #define _BAUDCTL1_ABDOVF        0x80
1576 
1577 //==============================================================================
1578 
1579 extern __at(0x0F7F) __sfr SPBRGH;
1580 extern __at(0x0F7F) __sfr SPBRGH1;
1581 
1582 //==============================================================================
1583 //        PORTA Bits
1584 
1585 extern __at(0x0F80) __sfr PORTA;
1586 
1587 typedef union
1588   {
1589   struct
1590     {
1591     unsigned RA0                : 1;
1592     unsigned RA1                : 1;
1593     unsigned RA2                : 1;
1594     unsigned RA3                : 1;
1595     unsigned RA4                : 1;
1596     unsigned RA5                : 1;
1597     unsigned                    : 1;
1598     unsigned RJPU               : 1;
1599     };
1600 
1601   struct
1602     {
1603     unsigned AN0                : 1;
1604     unsigned AN1                : 1;
1605     unsigned AN2                : 1;
1606     unsigned AN3                : 1;
1607     unsigned T0CKI              : 1;
1608     unsigned AN4                : 1;
1609     unsigned                    : 1;
1610     unsigned                    : 1;
1611     };
1612 
1613   struct
1614     {
1615     unsigned LEDA               : 1;
1616     unsigned LEDB               : 1;
1617     unsigned VREFM              : 1;
1618     unsigned VREFP              : 1;
1619     unsigned                    : 1;
1620     unsigned                    : 1;
1621     unsigned                    : 1;
1622     unsigned                    : 1;
1623     };
1624 
1625   struct
1626     {
1627     unsigned RA                 : 6;
1628     unsigned                    : 2;
1629     };
1630   } __PORTAbits_t;
1631 
1632 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;
1633 
1634 #define _PORTA_RA0              0x01
1635 #define _PORTA_AN0              0x01
1636 #define _PORTA_LEDA             0x01
1637 #define _PORTA_RA1              0x02
1638 #define _PORTA_AN1              0x02
1639 #define _PORTA_LEDB             0x02
1640 #define _PORTA_RA2              0x04
1641 #define _PORTA_AN2              0x04
1642 #define _PORTA_VREFM            0x04
1643 #define _PORTA_RA3              0x08
1644 #define _PORTA_AN3              0x08
1645 #define _PORTA_VREFP            0x08
1646 #define _PORTA_RA4              0x10
1647 #define _PORTA_T0CKI            0x10
1648 #define _PORTA_RA5              0x20
1649 #define _PORTA_AN4              0x20
1650 #define _PORTA_RJPU             0x80
1651 
1652 //==============================================================================
1653 
1654 
1655 //==============================================================================
1656 //        PORTB Bits
1657 
1658 extern __at(0x0F81) __sfr PORTB;
1659 
1660 typedef union
1661   {
1662   struct
1663     {
1664     unsigned RB0                : 1;
1665     unsigned RB1                : 1;
1666     unsigned RB2                : 1;
1667     unsigned RB3                : 1;
1668     unsigned RB4                : 1;
1669     unsigned RB5                : 1;
1670     unsigned RB6                : 1;
1671     unsigned RB7                : 1;
1672     };
1673 
1674   struct
1675     {
1676     unsigned INT0               : 1;
1677     unsigned INT1               : 1;
1678     unsigned INT2               : 1;
1679     unsigned INT3               : 1;
1680     unsigned KBI0               : 1;
1681     unsigned KBI1               : 1;
1682     unsigned KBI2               : 1;
1683     unsigned KBI3               : 1;
1684     };
1685 
1686   struct
1687     {
1688     unsigned FLT0               : 1;
1689     unsigned                    : 1;
1690     unsigned                    : 1;
1691     unsigned                    : 1;
1692     unsigned                    : 1;
1693     unsigned                    : 1;
1694     unsigned PGC                : 1;
1695     unsigned PGD                : 1;
1696     };
1697 
1698   struct
1699     {
1700     unsigned INT                : 4;
1701     unsigned                    : 4;
1702     };
1703 
1704   struct
1705     {
1706     unsigned                    : 4;
1707     unsigned KBI                : 4;
1708     };
1709   } __PORTBbits_t;
1710 
1711 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;
1712 
1713 #define _PORTB_RB0              0x01
1714 #define _PORTB_INT0             0x01
1715 #define _PORTB_FLT0             0x01
1716 #define _PORTB_RB1              0x02
1717 #define _PORTB_INT1             0x02
1718 #define _PORTB_RB2              0x04
1719 #define _PORTB_INT2             0x04
1720 #define _PORTB_RB3              0x08
1721 #define _PORTB_INT3             0x08
1722 #define _PORTB_RB4              0x10
1723 #define _PORTB_KBI0             0x10
1724 #define _PORTB_RB5              0x20
1725 #define _PORTB_KBI1             0x20
1726 #define _PORTB_RB6              0x40
1727 #define _PORTB_KBI2             0x40
1728 #define _PORTB_PGC              0x40
1729 #define _PORTB_RB7              0x80
1730 #define _PORTB_KBI3             0x80
1731 #define _PORTB_PGD              0x80
1732 
1733 //==============================================================================
1734 
1735 
1736 //==============================================================================
1737 //        PORTC Bits
1738 
1739 extern __at(0x0F82) __sfr PORTC;
1740 
1741 typedef union
1742   {
1743   struct
1744     {
1745     unsigned RC0                : 1;
1746     unsigned RC1                : 1;
1747     unsigned RC2                : 1;
1748     unsigned RC3                : 1;
1749     unsigned RC4                : 1;
1750     unsigned RC5                : 1;
1751     unsigned RC6                : 1;
1752     unsigned RC7                : 1;
1753     };
1754 
1755   struct
1756     {
1757     unsigned T1OSO              : 1;
1758     unsigned T1OSI              : 1;
1759     unsigned CCP1               : 1;
1760     unsigned SCK                : 1;
1761     unsigned SDI                : 1;
1762     unsigned SDO                : 1;
1763     unsigned TX                 : 1;
1764     unsigned RX                 : 1;
1765     };
1766 
1767   struct
1768     {
1769     unsigned T13CKI             : 1;
1770     unsigned CCP2               : 1;
1771     unsigned ECCP1              : 1;
1772     unsigned SCL                : 1;
1773     unsigned SDA                : 1;
1774     unsigned SDO1               : 1;
1775     unsigned CK                 : 1;
1776     unsigned RX1                : 1;
1777     };
1778 
1779   struct
1780     {
1781     unsigned                    : 1;
1782     unsigned ECCP2              : 1;
1783     unsigned                    : 1;
1784     unsigned SCK1               : 1;
1785     unsigned SDI1               : 1;
1786     unsigned                    : 1;
1787     unsigned TX1                : 1;
1788     unsigned DT1                : 1;
1789     };
1790 
1791   struct
1792     {
1793     unsigned                    : 1;
1794     unsigned                    : 1;
1795     unsigned                    : 1;
1796     unsigned SCL1               : 1;
1797     unsigned SDA1               : 1;
1798     unsigned                    : 1;
1799     unsigned CK1                : 1;
1800     unsigned                    : 1;
1801     };
1802   } __PORTCbits_t;
1803 
1804 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;
1805 
1806 #define _PORTC_RC0              0x01
1807 #define _PORTC_T1OSO            0x01
1808 #define _PORTC_T13CKI           0x01
1809 #define _PORTC_RC1              0x02
1810 #define _PORTC_T1OSI            0x02
1811 #define _PORTC_CCP2             0x02
1812 #define _PORTC_ECCP2            0x02
1813 #define _PORTC_RC2              0x04
1814 #define _PORTC_CCP1             0x04
1815 #define _PORTC_ECCP1            0x04
1816 #define _PORTC_RC3              0x08
1817 #define _PORTC_SCK              0x08
1818 #define _PORTC_SCL              0x08
1819 #define _PORTC_SCK1             0x08
1820 #define _PORTC_SCL1             0x08
1821 #define _PORTC_RC4              0x10
1822 #define _PORTC_SDI              0x10
1823 #define _PORTC_SDA              0x10
1824 #define _PORTC_SDI1             0x10
1825 #define _PORTC_SDA1             0x10
1826 #define _PORTC_RC5              0x20
1827 #define _PORTC_SDO              0x20
1828 #define _PORTC_SDO1             0x20
1829 #define _PORTC_RC6              0x40
1830 #define _PORTC_TX               0x40
1831 #define _PORTC_CK               0x40
1832 #define _PORTC_TX1              0x40
1833 #define _PORTC_CK1              0x40
1834 #define _PORTC_RC7              0x80
1835 #define _PORTC_RX               0x80
1836 #define _PORTC_RX1              0x80
1837 #define _PORTC_DT1              0x80
1838 
1839 //==============================================================================
1840 
1841 
1842 //==============================================================================
1843 //        PORTD Bits
1844 
1845 extern __at(0x0F83) __sfr PORTD;
1846 
1847 typedef union
1848   {
1849   struct
1850     {
1851     unsigned RD0                : 1;
1852     unsigned RD1                : 1;
1853     unsigned RD2                : 1;
1854     unsigned                    : 1;
1855     unsigned                    : 1;
1856     unsigned                    : 1;
1857     unsigned                    : 1;
1858     unsigned                    : 1;
1859     };
1860 
1861   struct
1862     {
1863     unsigned RD                 : 3;
1864     unsigned                    : 5;
1865     };
1866   } __PORTDbits_t;
1867 
1868 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits;
1869 
1870 #define _PORTD_RD0              0x01
1871 #define _PORTD_RD1              0x02
1872 #define _PORTD_RD2              0x04
1873 
1874 //==============================================================================
1875 
1876 
1877 //==============================================================================
1878 //        PORTE Bits
1879 
1880 extern __at(0x0F84) __sfr PORTE;
1881 
1882 typedef union
1883   {
1884   struct
1885     {
1886     unsigned RE0                : 1;
1887     unsigned RE1                : 1;
1888     unsigned RE2                : 1;
1889     unsigned RE3                : 1;
1890     unsigned RE4                : 1;
1891     unsigned RE5                : 1;
1892     unsigned RE6                : 1;
1893     unsigned RE7                : 1;
1894     };
1895 
1896   struct
1897     {
1898     unsigned                    : 1;
1899     unsigned                    : 1;
1900     unsigned                    : 1;
1901     unsigned                    : 1;
1902     unsigned                    : 1;
1903     unsigned                    : 1;
1904     unsigned                    : 1;
1905     unsigned CCP2               : 1;
1906     };
1907 
1908   struct
1909     {
1910     unsigned                    : 1;
1911     unsigned                    : 1;
1912     unsigned                    : 1;
1913     unsigned                    : 1;
1914     unsigned                    : 1;
1915     unsigned                    : 1;
1916     unsigned                    : 1;
1917     unsigned ECCP2              : 1;
1918     };
1919   } __PORTEbits_t;
1920 
1921 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;
1922 
1923 #define _PORTE_RE0              0x01
1924 #define _PORTE_RE1              0x02
1925 #define _PORTE_RE2              0x04
1926 #define _PORTE_RE3              0x08
1927 #define _PORTE_RE4              0x10
1928 #define _PORTE_RE5              0x20
1929 #define _PORTE_RE6              0x40
1930 #define _PORTE_RE7              0x80
1931 #define _PORTE_CCP2             0x80
1932 #define _PORTE_ECCP2            0x80
1933 
1934 //==============================================================================
1935 
1936 
1937 //==============================================================================
1938 //        PORTF Bits
1939 
1940 extern __at(0x0F85) __sfr PORTF;
1941 
1942 typedef union
1943   {
1944   struct
1945     {
1946     unsigned                    : 1;
1947     unsigned RF1                : 1;
1948     unsigned RF2                : 1;
1949     unsigned RF3                : 1;
1950     unsigned RF4                : 1;
1951     unsigned RF5                : 1;
1952     unsigned RF6                : 1;
1953     unsigned RF7                : 1;
1954     };
1955 
1956   struct
1957     {
1958     unsigned                    : 1;
1959     unsigned AN6                : 1;
1960     unsigned AN7                : 1;
1961     unsigned AN8                : 1;
1962     unsigned AN9                : 1;
1963     unsigned AN10               : 1;
1964     unsigned AN11               : 1;
1965     unsigned SS                 : 1;
1966     };
1967 
1968   struct
1969     {
1970     unsigned                    : 1;
1971     unsigned                    : 1;
1972     unsigned                    : 1;
1973     unsigned                    : 1;
1974     unsigned                    : 1;
1975     unsigned CVREF              : 1;
1976     unsigned                    : 1;
1977     unsigned NOT_SS             : 1;
1978     };
1979 
1980   struct
1981     {
1982     unsigned                    : 1;
1983     unsigned                    : 1;
1984     unsigned                    : 1;
1985     unsigned                    : 1;
1986     unsigned                    : 1;
1987     unsigned                    : 1;
1988     unsigned                    : 1;
1989     unsigned SS1                : 1;
1990     };
1991 
1992   struct
1993     {
1994     unsigned                    : 1;
1995     unsigned                    : 1;
1996     unsigned                    : 1;
1997     unsigned                    : 1;
1998     unsigned                    : 1;
1999     unsigned                    : 1;
2000     unsigned                    : 1;
2001     unsigned NOT_SS1            : 1;
2002     };
2003   } __PORTFbits_t;
2004 
2005 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits;
2006 
2007 #define _PORTF_RF1              0x02
2008 #define _PORTF_AN6              0x02
2009 #define _PORTF_RF2              0x04
2010 #define _PORTF_AN7              0x04
2011 #define _PORTF_RF3              0x08
2012 #define _PORTF_AN8              0x08
2013 #define _PORTF_RF4              0x10
2014 #define _PORTF_AN9              0x10
2015 #define _PORTF_RF5              0x20
2016 #define _PORTF_AN10             0x20
2017 #define _PORTF_CVREF            0x20
2018 #define _PORTF_RF6              0x40
2019 #define _PORTF_AN11             0x40
2020 #define _PORTF_RF7              0x80
2021 #define _PORTF_SS               0x80
2022 #define _PORTF_NOT_SS           0x80
2023 #define _PORTF_SS1              0x80
2024 #define _PORTF_NOT_SS1          0x80
2025 
2026 //==============================================================================
2027 
2028 
2029 //==============================================================================
2030 //        PORTG Bits
2031 
2032 extern __at(0x0F86) __sfr PORTG;
2033 
2034 typedef union
2035   {
2036   struct
2037     {
2038     unsigned RG0                : 1;
2039     unsigned RG1                : 1;
2040     unsigned RG2                : 1;
2041     unsigned RG3                : 1;
2042     unsigned RG4                : 1;
2043     unsigned                    : 1;
2044     unsigned                    : 1;
2045     unsigned                    : 1;
2046     };
2047 
2048   struct
2049     {
2050     unsigned CCP3               : 1;
2051     unsigned TX2                : 1;
2052     unsigned RX2                : 1;
2053     unsigned CCP4               : 1;
2054     unsigned CCP5               : 1;
2055     unsigned                    : 1;
2056     unsigned                    : 1;
2057     unsigned                    : 1;
2058     };
2059 
2060   struct
2061     {
2062     unsigned ECCP3              : 1;
2063     unsigned CK2                : 1;
2064     unsigned DT2                : 1;
2065     unsigned                    : 1;
2066     unsigned                    : 1;
2067     unsigned                    : 1;
2068     unsigned                    : 1;
2069     unsigned                    : 1;
2070     };
2071 
2072   struct
2073     {
2074     unsigned RG                 : 5;
2075     unsigned                    : 3;
2076     };
2077   } __PORTGbits_t;
2078 
2079 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits;
2080 
2081 #define _PORTG_RG0              0x01
2082 #define _PORTG_CCP3             0x01
2083 #define _PORTG_ECCP3            0x01
2084 #define _PORTG_RG1              0x02
2085 #define _PORTG_TX2              0x02
2086 #define _PORTG_CK2              0x02
2087 #define _PORTG_RG2              0x04
2088 #define _PORTG_RX2              0x04
2089 #define _PORTG_DT2              0x04
2090 #define _PORTG_RG3              0x08
2091 #define _PORTG_CCP4             0x08
2092 #define _PORTG_RG4              0x10
2093 #define _PORTG_CCP5             0x10
2094 
2095 //==============================================================================
2096 
2097 
2098 //==============================================================================
2099 //        PORTH Bits
2100 
2101 extern __at(0x0F87) __sfr PORTH;
2102 
2103 typedef union
2104   {
2105   struct
2106     {
2107     unsigned RH0                : 1;
2108     unsigned RH1                : 1;
2109     unsigned RH2                : 1;
2110     unsigned RH3                : 1;
2111     unsigned RH4                : 1;
2112     unsigned RH5                : 1;
2113     unsigned RH6                : 1;
2114     unsigned RH7                : 1;
2115     };
2116 
2117   struct
2118     {
2119     unsigned                    : 1;
2120     unsigned                    : 1;
2121     unsigned                    : 1;
2122     unsigned                    : 1;
2123     unsigned AN12               : 1;
2124     unsigned AN13               : 1;
2125     unsigned AN14               : 1;
2126     unsigned AN15               : 1;
2127     };
2128   } __PORTHbits_t;
2129 
2130 extern __at(0x0F87) volatile __PORTHbits_t PORTHbits;
2131 
2132 #define _PORTH_RH0              0x01
2133 #define _PORTH_RH1              0x02
2134 #define _PORTH_RH2              0x04
2135 #define _PORTH_RH3              0x08
2136 #define _PORTH_RH4              0x10
2137 #define _PORTH_AN12             0x10
2138 #define _PORTH_RH5              0x20
2139 #define _PORTH_AN13             0x20
2140 #define _PORTH_RH6              0x40
2141 #define _PORTH_AN14             0x40
2142 #define _PORTH_RH7              0x80
2143 #define _PORTH_AN15             0x80
2144 
2145 //==============================================================================
2146 
2147 
2148 //==============================================================================
2149 //        PORTJ Bits
2150 
2151 extern __at(0x0F88) __sfr PORTJ;
2152 
2153 typedef struct
2154   {
2155   unsigned                      : 1;
2156   unsigned                      : 1;
2157   unsigned                      : 1;
2158   unsigned                      : 1;
2159   unsigned RJ4                  : 1;
2160   unsigned RJ5                  : 1;
2161   unsigned                      : 1;
2162   unsigned                      : 1;
2163   } __PORTJbits_t;
2164 
2165 extern __at(0x0F88) volatile __PORTJbits_t PORTJbits;
2166 
2167 #define _PORTJ_RJ4              0x10
2168 #define _PORTJ_RJ5              0x20
2169 
2170 //==============================================================================
2171 
2172 
2173 //==============================================================================
2174 //        LATA Bits
2175 
2176 extern __at(0x0F89) __sfr LATA;
2177 
2178 typedef union
2179   {
2180   struct
2181     {
2182     unsigned LATA0              : 1;
2183     unsigned LATA1              : 1;
2184     unsigned LATA2              : 1;
2185     unsigned LATA3              : 1;
2186     unsigned LATA4              : 1;
2187     unsigned LATA5              : 1;
2188     unsigned REPU               : 1;
2189     unsigned RDPU               : 1;
2190     };
2191 
2192   struct
2193     {
2194     unsigned LATA               : 6;
2195     unsigned                    : 2;
2196     };
2197   } __LATAbits_t;
2198 
2199 extern __at(0x0F89) volatile __LATAbits_t LATAbits;
2200 
2201 #define _LATA0                  0x01
2202 #define _LATA1                  0x02
2203 #define _LATA2                  0x04
2204 #define _LATA3                  0x08
2205 #define _LATA4                  0x10
2206 #define _LATA5                  0x20
2207 #define _REPU                   0x40
2208 #define _RDPU                   0x80
2209 
2210 //==============================================================================
2211 
2212 
2213 //==============================================================================
2214 //        LATB Bits
2215 
2216 extern __at(0x0F8A) __sfr LATB;
2217 
2218 typedef struct
2219   {
2220   unsigned LATB0                : 1;
2221   unsigned LATB1                : 1;
2222   unsigned LATB2                : 1;
2223   unsigned LATB3                : 1;
2224   unsigned LATB4                : 1;
2225   unsigned LATB5                : 1;
2226   unsigned LATB6                : 1;
2227   unsigned LATB7                : 1;
2228   } __LATBbits_t;
2229 
2230 extern __at(0x0F8A) volatile __LATBbits_t LATBbits;
2231 
2232 #define _LATB0                  0x01
2233 #define _LATB1                  0x02
2234 #define _LATB2                  0x04
2235 #define _LATB3                  0x08
2236 #define _LATB4                  0x10
2237 #define _LATB5                  0x20
2238 #define _LATB6                  0x40
2239 #define _LATB7                  0x80
2240 
2241 //==============================================================================
2242 
2243 
2244 //==============================================================================
2245 //        LATC Bits
2246 
2247 extern __at(0x0F8B) __sfr LATC;
2248 
2249 typedef struct
2250   {
2251   unsigned LATC0                : 1;
2252   unsigned LATC1                : 1;
2253   unsigned LATC2                : 1;
2254   unsigned LATC3                : 1;
2255   unsigned LATC4                : 1;
2256   unsigned LATC5                : 1;
2257   unsigned LATC6                : 1;
2258   unsigned LATC7                : 1;
2259   } __LATCbits_t;
2260 
2261 extern __at(0x0F8B) volatile __LATCbits_t LATCbits;
2262 
2263 #define _LATC0                  0x01
2264 #define _LATC1                  0x02
2265 #define _LATC2                  0x04
2266 #define _LATC3                  0x08
2267 #define _LATC4                  0x10
2268 #define _LATC5                  0x20
2269 #define _LATC6                  0x40
2270 #define _LATC7                  0x80
2271 
2272 //==============================================================================
2273 
2274 
2275 //==============================================================================
2276 //        LATD Bits
2277 
2278 extern __at(0x0F8C) __sfr LATD;
2279 
2280 typedef union
2281   {
2282   struct
2283     {
2284     unsigned LATD0              : 1;
2285     unsigned LATD1              : 1;
2286     unsigned LATD2              : 1;
2287     unsigned                    : 1;
2288     unsigned                    : 1;
2289     unsigned                    : 1;
2290     unsigned                    : 1;
2291     unsigned                    : 1;
2292     };
2293 
2294   struct
2295     {
2296     unsigned LATD               : 3;
2297     unsigned                    : 5;
2298     };
2299   } __LATDbits_t;
2300 
2301 extern __at(0x0F8C) volatile __LATDbits_t LATDbits;
2302 
2303 #define _LATD0                  0x01
2304 #define _LATD1                  0x02
2305 #define _LATD2                  0x04
2306 
2307 //==============================================================================
2308 
2309 
2310 //==============================================================================
2311 //        LATE Bits
2312 
2313 extern __at(0x0F8D) __sfr LATE;
2314 
2315 typedef struct
2316   {
2317   unsigned LATE0                : 1;
2318   unsigned LATE1                : 1;
2319   unsigned LATE2                : 1;
2320   unsigned LATE3                : 1;
2321   unsigned LATE4                : 1;
2322   unsigned LATE5                : 1;
2323   unsigned LATE6                : 1;
2324   unsigned LATE7                : 1;
2325   } __LATEbits_t;
2326 
2327 extern __at(0x0F8D) volatile __LATEbits_t LATEbits;
2328 
2329 #define _LATE0                  0x01
2330 #define _LATE1                  0x02
2331 #define _LATE2                  0x04
2332 #define _LATE3                  0x08
2333 #define _LATE4                  0x10
2334 #define _LATE5                  0x20
2335 #define _LATE6                  0x40
2336 #define _LATE7                  0x80
2337 
2338 //==============================================================================
2339 
2340 
2341 //==============================================================================
2342 //        LATF Bits
2343 
2344 extern __at(0x0F8E) __sfr LATF;
2345 
2346 typedef struct
2347   {
2348   unsigned                      : 1;
2349   unsigned LATF1                : 1;
2350   unsigned LATF2                : 1;
2351   unsigned LATF3                : 1;
2352   unsigned LATF4                : 1;
2353   unsigned LATF5                : 1;
2354   unsigned LATF6                : 1;
2355   unsigned LATF7                : 1;
2356   } __LATFbits_t;
2357 
2358 extern __at(0x0F8E) volatile __LATFbits_t LATFbits;
2359 
2360 #define _LATF1                  0x02
2361 #define _LATF2                  0x04
2362 #define _LATF3                  0x08
2363 #define _LATF4                  0x10
2364 #define _LATF5                  0x20
2365 #define _LATF6                  0x40
2366 #define _LATF7                  0x80
2367 
2368 //==============================================================================
2369 
2370 
2371 //==============================================================================
2372 //        LATG Bits
2373 
2374 extern __at(0x0F8F) __sfr LATG;
2375 
2376 typedef union
2377   {
2378   struct
2379     {
2380     unsigned LATG0              : 1;
2381     unsigned LATG1              : 1;
2382     unsigned LATG2              : 1;
2383     unsigned LATG3              : 1;
2384     unsigned LATG4              : 1;
2385     unsigned                    : 1;
2386     unsigned                    : 1;
2387     unsigned                    : 1;
2388     };
2389 
2390   struct
2391     {
2392     unsigned LATG               : 5;
2393     unsigned                    : 3;
2394     };
2395   } __LATGbits_t;
2396 
2397 extern __at(0x0F8F) volatile __LATGbits_t LATGbits;
2398 
2399 #define _LATG0                  0x01
2400 #define _LATG1                  0x02
2401 #define _LATG2                  0x04
2402 #define _LATG3                  0x08
2403 #define _LATG4                  0x10
2404 
2405 //==============================================================================
2406 
2407 
2408 //==============================================================================
2409 //        LATH Bits
2410 
2411 extern __at(0x0F90) __sfr LATH;
2412 
2413 typedef struct
2414   {
2415   unsigned LATH0                : 1;
2416   unsigned LATH1                : 1;
2417   unsigned LATH2                : 1;
2418   unsigned LATH3                : 1;
2419   unsigned LATH4                : 1;
2420   unsigned LATH5                : 1;
2421   unsigned LATH6                : 1;
2422   unsigned LATH7                : 1;
2423   } __LATHbits_t;
2424 
2425 extern __at(0x0F90) volatile __LATHbits_t LATHbits;
2426 
2427 #define _LATH0                  0x01
2428 #define _LATH1                  0x02
2429 #define _LATH2                  0x04
2430 #define _LATH3                  0x08
2431 #define _LATH4                  0x10
2432 #define _LATH5                  0x20
2433 #define _LATH6                  0x40
2434 #define _LATH7                  0x80
2435 
2436 //==============================================================================
2437 
2438 
2439 //==============================================================================
2440 //        LATJ Bits
2441 
2442 extern __at(0x0F91) __sfr LATJ;
2443 
2444 typedef struct
2445   {
2446   unsigned                      : 1;
2447   unsigned                      : 1;
2448   unsigned                      : 1;
2449   unsigned                      : 1;
2450   unsigned LATJ4                : 1;
2451   unsigned LATJ5                : 1;
2452   unsigned                      : 1;
2453   unsigned                      : 1;
2454   } __LATJbits_t;
2455 
2456 extern __at(0x0F91) volatile __LATJbits_t LATJbits;
2457 
2458 #define _LATJ4                  0x10
2459 #define _LATJ5                  0x20
2460 
2461 //==============================================================================
2462 
2463 
2464 //==============================================================================
2465 //        DDRA Bits
2466 
2467 extern __at(0x0F92) __sfr DDRA;
2468 
2469 typedef union
2470   {
2471   struct
2472     {
2473     unsigned TRISA0             : 1;
2474     unsigned TRISA1             : 1;
2475     unsigned TRISA2             : 1;
2476     unsigned TRISA3             : 1;
2477     unsigned TRISA4             : 1;
2478     unsigned TRISA5             : 1;
2479     unsigned                    : 1;
2480     unsigned                    : 1;
2481     };
2482 
2483   struct
2484     {
2485     unsigned RA0                : 1;
2486     unsigned RA1                : 1;
2487     unsigned RA2                : 1;
2488     unsigned RA3                : 1;
2489     unsigned RA4                : 1;
2490     unsigned RA5                : 1;
2491     unsigned                    : 1;
2492     unsigned                    : 1;
2493     };
2494 
2495   struct
2496     {
2497     unsigned RA                 : 6;
2498     unsigned                    : 2;
2499     };
2500 
2501   struct
2502     {
2503     unsigned TRISA              : 6;
2504     unsigned                    : 2;
2505     };
2506   } __DDRAbits_t;
2507 
2508 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits;
2509 
2510 #define _TRISA0                 0x01
2511 #define _RA0                    0x01
2512 #define _TRISA1                 0x02
2513 #define _RA1                    0x02
2514 #define _TRISA2                 0x04
2515 #define _RA2                    0x04
2516 #define _TRISA3                 0x08
2517 #define _RA3                    0x08
2518 #define _TRISA4                 0x10
2519 #define _RA4                    0x10
2520 #define _TRISA5                 0x20
2521 #define _RA5                    0x20
2522 
2523 //==============================================================================
2524 
2525 
2526 //==============================================================================
2527 //        TRISA Bits
2528 
2529 extern __at(0x0F92) __sfr TRISA;
2530 
2531 typedef union
2532   {
2533   struct
2534     {
2535     unsigned TRISA0             : 1;
2536     unsigned TRISA1             : 1;
2537     unsigned TRISA2             : 1;
2538     unsigned TRISA3             : 1;
2539     unsigned TRISA4             : 1;
2540     unsigned TRISA5             : 1;
2541     unsigned                    : 1;
2542     unsigned                    : 1;
2543     };
2544 
2545   struct
2546     {
2547     unsigned RA0                : 1;
2548     unsigned RA1                : 1;
2549     unsigned RA2                : 1;
2550     unsigned RA3                : 1;
2551     unsigned RA4                : 1;
2552     unsigned RA5                : 1;
2553     unsigned                    : 1;
2554     unsigned                    : 1;
2555     };
2556 
2557   struct
2558     {
2559     unsigned TRISA              : 6;
2560     unsigned                    : 2;
2561     };
2562 
2563   struct
2564     {
2565     unsigned RA                 : 6;
2566     unsigned                    : 2;
2567     };
2568   } __TRISAbits_t;
2569 
2570 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;
2571 
2572 #define _TRISA_TRISA0           0x01
2573 #define _TRISA_RA0              0x01
2574 #define _TRISA_TRISA1           0x02
2575 #define _TRISA_RA1              0x02
2576 #define _TRISA_TRISA2           0x04
2577 #define _TRISA_RA2              0x04
2578 #define _TRISA_TRISA3           0x08
2579 #define _TRISA_RA3              0x08
2580 #define _TRISA_TRISA4           0x10
2581 #define _TRISA_RA4              0x10
2582 #define _TRISA_TRISA5           0x20
2583 #define _TRISA_RA5              0x20
2584 
2585 //==============================================================================
2586 
2587 
2588 //==============================================================================
2589 //        DDRB Bits
2590 
2591 extern __at(0x0F93) __sfr DDRB;
2592 
2593 typedef union
2594   {
2595   struct
2596     {
2597     unsigned TRISB0             : 1;
2598     unsigned TRISB1             : 1;
2599     unsigned TRISB2             : 1;
2600     unsigned TRISB3             : 1;
2601     unsigned TRISB4             : 1;
2602     unsigned TRISB5             : 1;
2603     unsigned TRISB6             : 1;
2604     unsigned TRISB7             : 1;
2605     };
2606 
2607   struct
2608     {
2609     unsigned RB0                : 1;
2610     unsigned RB1                : 1;
2611     unsigned RB2                : 1;
2612     unsigned RB3                : 1;
2613     unsigned RB4                : 1;
2614     unsigned RB5                : 1;
2615     unsigned RB6                : 1;
2616     unsigned RB7                : 1;
2617     };
2618   } __DDRBbits_t;
2619 
2620 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits;
2621 
2622 #define _TRISB0                 0x01
2623 #define _RB0                    0x01
2624 #define _TRISB1                 0x02
2625 #define _RB1                    0x02
2626 #define _TRISB2                 0x04
2627 #define _RB2                    0x04
2628 #define _TRISB3                 0x08
2629 #define _RB3                    0x08
2630 #define _TRISB4                 0x10
2631 #define _RB4                    0x10
2632 #define _TRISB5                 0x20
2633 #define _RB5                    0x20
2634 #define _TRISB6                 0x40
2635 #define _RB6                    0x40
2636 #define _TRISB7                 0x80
2637 #define _RB7                    0x80
2638 
2639 //==============================================================================
2640 
2641 
2642 //==============================================================================
2643 //        TRISB Bits
2644 
2645 extern __at(0x0F93) __sfr TRISB;
2646 
2647 typedef union
2648   {
2649   struct
2650     {
2651     unsigned TRISB0             : 1;
2652     unsigned TRISB1             : 1;
2653     unsigned TRISB2             : 1;
2654     unsigned TRISB3             : 1;
2655     unsigned TRISB4             : 1;
2656     unsigned TRISB5             : 1;
2657     unsigned TRISB6             : 1;
2658     unsigned TRISB7             : 1;
2659     };
2660 
2661   struct
2662     {
2663     unsigned RB0                : 1;
2664     unsigned RB1                : 1;
2665     unsigned RB2                : 1;
2666     unsigned RB3                : 1;
2667     unsigned RB4                : 1;
2668     unsigned RB5                : 1;
2669     unsigned RB6                : 1;
2670     unsigned RB7                : 1;
2671     };
2672   } __TRISBbits_t;
2673 
2674 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;
2675 
2676 #define _TRISB_TRISB0           0x01
2677 #define _TRISB_RB0              0x01
2678 #define _TRISB_TRISB1           0x02
2679 #define _TRISB_RB1              0x02
2680 #define _TRISB_TRISB2           0x04
2681 #define _TRISB_RB2              0x04
2682 #define _TRISB_TRISB3           0x08
2683 #define _TRISB_RB3              0x08
2684 #define _TRISB_TRISB4           0x10
2685 #define _TRISB_RB4              0x10
2686 #define _TRISB_TRISB5           0x20
2687 #define _TRISB_RB5              0x20
2688 #define _TRISB_TRISB6           0x40
2689 #define _TRISB_RB6              0x40
2690 #define _TRISB_TRISB7           0x80
2691 #define _TRISB_RB7              0x80
2692 
2693 //==============================================================================
2694 
2695 
2696 //==============================================================================
2697 //        DDRC Bits
2698 
2699 extern __at(0x0F94) __sfr DDRC;
2700 
2701 typedef union
2702   {
2703   struct
2704     {
2705     unsigned TRISC0             : 1;
2706     unsigned TRISC1             : 1;
2707     unsigned TRISC2             : 1;
2708     unsigned TRISC3             : 1;
2709     unsigned TRISC4             : 1;
2710     unsigned TRISC5             : 1;
2711     unsigned TRISC6             : 1;
2712     unsigned TRISC7             : 1;
2713     };
2714 
2715   struct
2716     {
2717     unsigned RC0                : 1;
2718     unsigned RC1                : 1;
2719     unsigned RC2                : 1;
2720     unsigned RC3                : 1;
2721     unsigned RC4                : 1;
2722     unsigned RC5                : 1;
2723     unsigned RC6                : 1;
2724     unsigned RC7                : 1;
2725     };
2726   } __DDRCbits_t;
2727 
2728 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits;
2729 
2730 #define _TRISC0                 0x01
2731 #define _RC0                    0x01
2732 #define _TRISC1                 0x02
2733 #define _RC1                    0x02
2734 #define _TRISC2                 0x04
2735 #define _RC2                    0x04
2736 #define _TRISC3                 0x08
2737 #define _RC3                    0x08
2738 #define _TRISC4                 0x10
2739 #define _RC4                    0x10
2740 #define _TRISC5                 0x20
2741 #define _RC5                    0x20
2742 #define _TRISC6                 0x40
2743 #define _RC6                    0x40
2744 #define _TRISC7                 0x80
2745 #define _RC7                    0x80
2746 
2747 //==============================================================================
2748 
2749 
2750 //==============================================================================
2751 //        TRISC Bits
2752 
2753 extern __at(0x0F94) __sfr TRISC;
2754 
2755 typedef union
2756   {
2757   struct
2758     {
2759     unsigned TRISC0             : 1;
2760     unsigned TRISC1             : 1;
2761     unsigned TRISC2             : 1;
2762     unsigned TRISC3             : 1;
2763     unsigned TRISC4             : 1;
2764     unsigned TRISC5             : 1;
2765     unsigned TRISC6             : 1;
2766     unsigned TRISC7             : 1;
2767     };
2768 
2769   struct
2770     {
2771     unsigned RC0                : 1;
2772     unsigned RC1                : 1;
2773     unsigned RC2                : 1;
2774     unsigned RC3                : 1;
2775     unsigned RC4                : 1;
2776     unsigned RC5                : 1;
2777     unsigned RC6                : 1;
2778     unsigned RC7                : 1;
2779     };
2780   } __TRISCbits_t;
2781 
2782 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;
2783 
2784 #define _TRISC_TRISC0           0x01
2785 #define _TRISC_RC0              0x01
2786 #define _TRISC_TRISC1           0x02
2787 #define _TRISC_RC1              0x02
2788 #define _TRISC_TRISC2           0x04
2789 #define _TRISC_RC2              0x04
2790 #define _TRISC_TRISC3           0x08
2791 #define _TRISC_RC3              0x08
2792 #define _TRISC_TRISC4           0x10
2793 #define _TRISC_RC4              0x10
2794 #define _TRISC_TRISC5           0x20
2795 #define _TRISC_RC5              0x20
2796 #define _TRISC_TRISC6           0x40
2797 #define _TRISC_RC6              0x40
2798 #define _TRISC_TRISC7           0x80
2799 #define _TRISC_RC7              0x80
2800 
2801 //==============================================================================
2802 
2803 
2804 //==============================================================================
2805 //        DDRD Bits
2806 
2807 extern __at(0x0F95) __sfr DDRD;
2808 
2809 typedef union
2810   {
2811   struct
2812     {
2813     unsigned TRISD0             : 1;
2814     unsigned TRISD1             : 1;
2815     unsigned TRISD2             : 1;
2816     unsigned                    : 1;
2817     unsigned                    : 1;
2818     unsigned                    : 1;
2819     unsigned                    : 1;
2820     unsigned                    : 1;
2821     };
2822 
2823   struct
2824     {
2825     unsigned RD0                : 1;
2826     unsigned RD1                : 1;
2827     unsigned RD2                : 1;
2828     unsigned                    : 1;
2829     unsigned                    : 1;
2830     unsigned                    : 1;
2831     unsigned                    : 1;
2832     unsigned                    : 1;
2833     };
2834 
2835   struct
2836     {
2837     unsigned TRISD              : 3;
2838     unsigned                    : 5;
2839     };
2840 
2841   struct
2842     {
2843     unsigned RD                 : 3;
2844     unsigned                    : 5;
2845     };
2846   } __DDRDbits_t;
2847 
2848 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits;
2849 
2850 #define _TRISD0                 0x01
2851 #define _RD0                    0x01
2852 #define _TRISD1                 0x02
2853 #define _RD1                    0x02
2854 #define _TRISD2                 0x04
2855 #define _RD2                    0x04
2856 
2857 //==============================================================================
2858 
2859 
2860 //==============================================================================
2861 //        TRISD Bits
2862 
2863 extern __at(0x0F95) __sfr TRISD;
2864 
2865 typedef union
2866   {
2867   struct
2868     {
2869     unsigned TRISD0             : 1;
2870     unsigned TRISD1             : 1;
2871     unsigned TRISD2             : 1;
2872     unsigned                    : 1;
2873     unsigned                    : 1;
2874     unsigned                    : 1;
2875     unsigned                    : 1;
2876     unsigned                    : 1;
2877     };
2878 
2879   struct
2880     {
2881     unsigned RD0                : 1;
2882     unsigned RD1                : 1;
2883     unsigned RD2                : 1;
2884     unsigned                    : 1;
2885     unsigned                    : 1;
2886     unsigned                    : 1;
2887     unsigned                    : 1;
2888     unsigned                    : 1;
2889     };
2890 
2891   struct
2892     {
2893     unsigned TRISD              : 3;
2894     unsigned                    : 5;
2895     };
2896 
2897   struct
2898     {
2899     unsigned RD                 : 3;
2900     unsigned                    : 5;
2901     };
2902   } __TRISDbits_t;
2903 
2904 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits;
2905 
2906 #define _TRISD_TRISD0           0x01
2907 #define _TRISD_RD0              0x01
2908 #define _TRISD_TRISD1           0x02
2909 #define _TRISD_RD1              0x02
2910 #define _TRISD_TRISD2           0x04
2911 #define _TRISD_RD2              0x04
2912 
2913 //==============================================================================
2914 
2915 
2916 //==============================================================================
2917 //        DDRE Bits
2918 
2919 extern __at(0x0F96) __sfr DDRE;
2920 
2921 typedef union
2922   {
2923   struct
2924     {
2925     unsigned TRISE0             : 1;
2926     unsigned TRISE1             : 1;
2927     unsigned TRISE2             : 1;
2928     unsigned TRISE3             : 1;
2929     unsigned TRISE4             : 1;
2930     unsigned TRISE5             : 1;
2931     unsigned TRISE6             : 1;
2932     unsigned TRISE7             : 1;
2933     };
2934 
2935   struct
2936     {
2937     unsigned RE0                : 1;
2938     unsigned RE1                : 1;
2939     unsigned RE2                : 1;
2940     unsigned RE3                : 1;
2941     unsigned RE4                : 1;
2942     unsigned RE5                : 1;
2943     unsigned RE6                : 1;
2944     unsigned RE7                : 1;
2945     };
2946   } __DDREbits_t;
2947 
2948 extern __at(0x0F96) volatile __DDREbits_t DDREbits;
2949 
2950 #define _TRISE0                 0x01
2951 #define _RE0                    0x01
2952 #define _TRISE1                 0x02
2953 #define _RE1                    0x02
2954 #define _TRISE2                 0x04
2955 #define _RE2                    0x04
2956 #define _TRISE3                 0x08
2957 #define _RE3                    0x08
2958 #define _TRISE4                 0x10
2959 #define _RE4                    0x10
2960 #define _TRISE5                 0x20
2961 #define _RE5                    0x20
2962 #define _TRISE6                 0x40
2963 #define _RE6                    0x40
2964 #define _TRISE7                 0x80
2965 #define _RE7                    0x80
2966 
2967 //==============================================================================
2968 
2969 
2970 //==============================================================================
2971 //        TRISE Bits
2972 
2973 extern __at(0x0F96) __sfr TRISE;
2974 
2975 typedef union
2976   {
2977   struct
2978     {
2979     unsigned TRISE0             : 1;
2980     unsigned TRISE1             : 1;
2981     unsigned TRISE2             : 1;
2982     unsigned TRISE3             : 1;
2983     unsigned TRISE4             : 1;
2984     unsigned TRISE5             : 1;
2985     unsigned TRISE6             : 1;
2986     unsigned TRISE7             : 1;
2987     };
2988 
2989   struct
2990     {
2991     unsigned RE0                : 1;
2992     unsigned RE1                : 1;
2993     unsigned RE2                : 1;
2994     unsigned RE3                : 1;
2995     unsigned RE4                : 1;
2996     unsigned RE5                : 1;
2997     unsigned RE6                : 1;
2998     unsigned RE7                : 1;
2999     };
3000   } __TRISEbits_t;
3001 
3002 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits;
3003 
3004 #define _TRISE_TRISE0           0x01
3005 #define _TRISE_RE0              0x01
3006 #define _TRISE_TRISE1           0x02
3007 #define _TRISE_RE1              0x02
3008 #define _TRISE_TRISE2           0x04
3009 #define _TRISE_RE2              0x04
3010 #define _TRISE_TRISE3           0x08
3011 #define _TRISE_RE3              0x08
3012 #define _TRISE_TRISE4           0x10
3013 #define _TRISE_RE4              0x10
3014 #define _TRISE_TRISE5           0x20
3015 #define _TRISE_RE5              0x20
3016 #define _TRISE_TRISE6           0x40
3017 #define _TRISE_RE6              0x40
3018 #define _TRISE_TRISE7           0x80
3019 #define _TRISE_RE7              0x80
3020 
3021 //==============================================================================
3022 
3023 
3024 //==============================================================================
3025 //        DDRF Bits
3026 
3027 extern __at(0x0F97) __sfr DDRF;
3028 
3029 typedef union
3030   {
3031   struct
3032     {
3033     unsigned                    : 1;
3034     unsigned TRISF1             : 1;
3035     unsigned TRISF2             : 1;
3036     unsigned TRISF3             : 1;
3037     unsigned TRISF4             : 1;
3038     unsigned TRISF5             : 1;
3039     unsigned TRISF6             : 1;
3040     unsigned TRISF7             : 1;
3041     };
3042 
3043   struct
3044     {
3045     unsigned                    : 1;
3046     unsigned RF1                : 1;
3047     unsigned RF2                : 1;
3048     unsigned RF3                : 1;
3049     unsigned RF4                : 1;
3050     unsigned RF5                : 1;
3051     unsigned RF6                : 1;
3052     unsigned RF7                : 1;
3053     };
3054   } __DDRFbits_t;
3055 
3056 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits;
3057 
3058 #define _TRISF1                 0x02
3059 #define _RF1                    0x02
3060 #define _TRISF2                 0x04
3061 #define _RF2                    0x04
3062 #define _TRISF3                 0x08
3063 #define _RF3                    0x08
3064 #define _TRISF4                 0x10
3065 #define _RF4                    0x10
3066 #define _TRISF5                 0x20
3067 #define _RF5                    0x20
3068 #define _TRISF6                 0x40
3069 #define _RF6                    0x40
3070 #define _TRISF7                 0x80
3071 #define _RF7                    0x80
3072 
3073 //==============================================================================
3074 
3075 
3076 //==============================================================================
3077 //        TRISF Bits
3078 
3079 extern __at(0x0F97) __sfr TRISF;
3080 
3081 typedef union
3082   {
3083   struct
3084     {
3085     unsigned                    : 1;
3086     unsigned TRISF1             : 1;
3087     unsigned TRISF2             : 1;
3088     unsigned TRISF3             : 1;
3089     unsigned TRISF4             : 1;
3090     unsigned TRISF5             : 1;
3091     unsigned TRISF6             : 1;
3092     unsigned TRISF7             : 1;
3093     };
3094 
3095   struct
3096     {
3097     unsigned                    : 1;
3098     unsigned RF1                : 1;
3099     unsigned RF2                : 1;
3100     unsigned RF3                : 1;
3101     unsigned RF4                : 1;
3102     unsigned RF5                : 1;
3103     unsigned RF6                : 1;
3104     unsigned RF7                : 1;
3105     };
3106   } __TRISFbits_t;
3107 
3108 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits;
3109 
3110 #define _TRISF_TRISF1           0x02
3111 #define _TRISF_RF1              0x02
3112 #define _TRISF_TRISF2           0x04
3113 #define _TRISF_RF2              0x04
3114 #define _TRISF_TRISF3           0x08
3115 #define _TRISF_RF3              0x08
3116 #define _TRISF_TRISF4           0x10
3117 #define _TRISF_RF4              0x10
3118 #define _TRISF_TRISF5           0x20
3119 #define _TRISF_RF5              0x20
3120 #define _TRISF_TRISF6           0x40
3121 #define _TRISF_RF6              0x40
3122 #define _TRISF_TRISF7           0x80
3123 #define _TRISF_RF7              0x80
3124 
3125 //==============================================================================
3126 
3127 
3128 //==============================================================================
3129 //        DDRG Bits
3130 
3131 extern __at(0x0F98) __sfr DDRG;
3132 
3133 typedef union
3134   {
3135   struct
3136     {
3137     unsigned TRISG0             : 1;
3138     unsigned TRISG1             : 1;
3139     unsigned TRISG2             : 1;
3140     unsigned TRISG3             : 1;
3141     unsigned TRISG4             : 1;
3142     unsigned                    : 1;
3143     unsigned                    : 1;
3144     unsigned                    : 1;
3145     };
3146 
3147   struct
3148     {
3149     unsigned RG0                : 1;
3150     unsigned RG1                : 1;
3151     unsigned RG2                : 1;
3152     unsigned RG3                : 1;
3153     unsigned RG4                : 1;
3154     unsigned                    : 1;
3155     unsigned                    : 1;
3156     unsigned                    : 1;
3157     };
3158 
3159   struct
3160     {
3161     unsigned TRISG              : 5;
3162     unsigned                    : 3;
3163     };
3164 
3165   struct
3166     {
3167     unsigned RG                 : 5;
3168     unsigned                    : 3;
3169     };
3170   } __DDRGbits_t;
3171 
3172 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits;
3173 
3174 #define _TRISG0                 0x01
3175 #define _RG0                    0x01
3176 #define _TRISG1                 0x02
3177 #define _RG1                    0x02
3178 #define _TRISG2                 0x04
3179 #define _RG2                    0x04
3180 #define _TRISG3                 0x08
3181 #define _RG3                    0x08
3182 #define _TRISG4                 0x10
3183 #define _RG4                    0x10
3184 
3185 //==============================================================================
3186 
3187 
3188 //==============================================================================
3189 //        TRISG Bits
3190 
3191 extern __at(0x0F98) __sfr TRISG;
3192 
3193 typedef union
3194   {
3195   struct
3196     {
3197     unsigned TRISG0             : 1;
3198     unsigned TRISG1             : 1;
3199     unsigned TRISG2             : 1;
3200     unsigned TRISG3             : 1;
3201     unsigned TRISG4             : 1;
3202     unsigned                    : 1;
3203     unsigned                    : 1;
3204     unsigned                    : 1;
3205     };
3206 
3207   struct
3208     {
3209     unsigned RG0                : 1;
3210     unsigned RG1                : 1;
3211     unsigned RG2                : 1;
3212     unsigned RG3                : 1;
3213     unsigned RG4                : 1;
3214     unsigned                    : 1;
3215     unsigned                    : 1;
3216     unsigned                    : 1;
3217     };
3218 
3219   struct
3220     {
3221     unsigned RG                 : 5;
3222     unsigned                    : 3;
3223     };
3224 
3225   struct
3226     {
3227     unsigned TRISG              : 5;
3228     unsigned                    : 3;
3229     };
3230   } __TRISGbits_t;
3231 
3232 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits;
3233 
3234 #define _TRISG_TRISG0           0x01
3235 #define _TRISG_RG0              0x01
3236 #define _TRISG_TRISG1           0x02
3237 #define _TRISG_RG1              0x02
3238 #define _TRISG_TRISG2           0x04
3239 #define _TRISG_RG2              0x04
3240 #define _TRISG_TRISG3           0x08
3241 #define _TRISG_RG3              0x08
3242 #define _TRISG_TRISG4           0x10
3243 #define _TRISG_RG4              0x10
3244 
3245 //==============================================================================
3246 
3247 
3248 //==============================================================================
3249 //        DDRH Bits
3250 
3251 extern __at(0x0F99) __sfr DDRH;
3252 
3253 typedef union
3254   {
3255   struct
3256     {
3257     unsigned TRISH0             : 1;
3258     unsigned TRISH1             : 1;
3259     unsigned TRISH2             : 1;
3260     unsigned TRISH3             : 1;
3261     unsigned TRISH4             : 1;
3262     unsigned TRISH5             : 1;
3263     unsigned TRISH6             : 1;
3264     unsigned TRISH7             : 1;
3265     };
3266 
3267   struct
3268     {
3269     unsigned RH0                : 1;
3270     unsigned RH1                : 1;
3271     unsigned RH2                : 1;
3272     unsigned RH3                : 1;
3273     unsigned RH4                : 1;
3274     unsigned RH5                : 1;
3275     unsigned RH6                : 1;
3276     unsigned RH7                : 1;
3277     };
3278   } __DDRHbits_t;
3279 
3280 extern __at(0x0F99) volatile __DDRHbits_t DDRHbits;
3281 
3282 #define _TRISH0                 0x01
3283 #define _RH0                    0x01
3284 #define _TRISH1                 0x02
3285 #define _RH1                    0x02
3286 #define _TRISH2                 0x04
3287 #define _RH2                    0x04
3288 #define _TRISH3                 0x08
3289 #define _RH3                    0x08
3290 #define _TRISH4                 0x10
3291 #define _RH4                    0x10
3292 #define _TRISH5                 0x20
3293 #define _RH5                    0x20
3294 #define _TRISH6                 0x40
3295 #define _RH6                    0x40
3296 #define _TRISH7                 0x80
3297 #define _RH7                    0x80
3298 
3299 //==============================================================================
3300 
3301 
3302 //==============================================================================
3303 //        TRISH Bits
3304 
3305 extern __at(0x0F99) __sfr TRISH;
3306 
3307 typedef union
3308   {
3309   struct
3310     {
3311     unsigned TRISH0             : 1;
3312     unsigned TRISH1             : 1;
3313     unsigned TRISH2             : 1;
3314     unsigned TRISH3             : 1;
3315     unsigned TRISH4             : 1;
3316     unsigned TRISH5             : 1;
3317     unsigned TRISH6             : 1;
3318     unsigned TRISH7             : 1;
3319     };
3320 
3321   struct
3322     {
3323     unsigned RH0                : 1;
3324     unsigned RH1                : 1;
3325     unsigned RH2                : 1;
3326     unsigned RH3                : 1;
3327     unsigned RH4                : 1;
3328     unsigned RH5                : 1;
3329     unsigned RH6                : 1;
3330     unsigned RH7                : 1;
3331     };
3332   } __TRISHbits_t;
3333 
3334 extern __at(0x0F99) volatile __TRISHbits_t TRISHbits;
3335 
3336 #define _TRISH_TRISH0           0x01
3337 #define _TRISH_RH0              0x01
3338 #define _TRISH_TRISH1           0x02
3339 #define _TRISH_RH1              0x02
3340 #define _TRISH_TRISH2           0x04
3341 #define _TRISH_RH2              0x04
3342 #define _TRISH_TRISH3           0x08
3343 #define _TRISH_RH3              0x08
3344 #define _TRISH_TRISH4           0x10
3345 #define _TRISH_RH4              0x10
3346 #define _TRISH_TRISH5           0x20
3347 #define _TRISH_RH5              0x20
3348 #define _TRISH_TRISH6           0x40
3349 #define _TRISH_RH6              0x40
3350 #define _TRISH_TRISH7           0x80
3351 #define _TRISH_RH7              0x80
3352 
3353 //==============================================================================
3354 
3355 
3356 //==============================================================================
3357 //        DDRJ Bits
3358 
3359 extern __at(0x0F9A) __sfr DDRJ;
3360 
3361 typedef union
3362   {
3363   struct
3364     {
3365     unsigned                    : 1;
3366     unsigned                    : 1;
3367     unsigned                    : 1;
3368     unsigned                    : 1;
3369     unsigned TRISJ4             : 1;
3370     unsigned TRISJ5             : 1;
3371     unsigned                    : 1;
3372     unsigned                    : 1;
3373     };
3374 
3375   struct
3376     {
3377     unsigned                    : 1;
3378     unsigned                    : 1;
3379     unsigned                    : 1;
3380     unsigned                    : 1;
3381     unsigned RJ4                : 1;
3382     unsigned RJ5                : 1;
3383     unsigned                    : 1;
3384     unsigned                    : 1;
3385     };
3386   } __DDRJbits_t;
3387 
3388 extern __at(0x0F9A) volatile __DDRJbits_t DDRJbits;
3389 
3390 #define _TRISJ4                 0x10
3391 #define _RJ4                    0x10
3392 #define _TRISJ5                 0x20
3393 #define _RJ5                    0x20
3394 
3395 //==============================================================================
3396 
3397 
3398 //==============================================================================
3399 //        TRISJ Bits
3400 
3401 extern __at(0x0F9A) __sfr TRISJ;
3402 
3403 typedef union
3404   {
3405   struct
3406     {
3407     unsigned                    : 1;
3408     unsigned                    : 1;
3409     unsigned                    : 1;
3410     unsigned                    : 1;
3411     unsigned TRISJ4             : 1;
3412     unsigned TRISJ5             : 1;
3413     unsigned                    : 1;
3414     unsigned                    : 1;
3415     };
3416 
3417   struct
3418     {
3419     unsigned                    : 1;
3420     unsigned                    : 1;
3421     unsigned                    : 1;
3422     unsigned                    : 1;
3423     unsigned RJ4                : 1;
3424     unsigned RJ5                : 1;
3425     unsigned                    : 1;
3426     unsigned                    : 1;
3427     };
3428   } __TRISJbits_t;
3429 
3430 extern __at(0x0F9A) volatile __TRISJbits_t TRISJbits;
3431 
3432 #define _TRISJ_TRISJ4           0x10
3433 #define _TRISJ_RJ4              0x10
3434 #define _TRISJ_TRISJ5           0x20
3435 #define _TRISJ_RJ5              0x20
3436 
3437 //==============================================================================
3438 
3439 
3440 //==============================================================================
3441 //        OSCTUNE Bits
3442 
3443 extern __at(0x0F9B) __sfr OSCTUNE;
3444 
3445 typedef struct
3446   {
3447   unsigned                      : 1;
3448   unsigned                      : 1;
3449   unsigned                      : 1;
3450   unsigned                      : 1;
3451   unsigned PPRE                 : 1;
3452   unsigned PPST0                : 1;
3453   unsigned PLLEN                : 1;
3454   unsigned PPST1                : 1;
3455   } __OSCTUNEbits_t;
3456 
3457 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;
3458 
3459 #define _PPRE                   0x10
3460 #define _PPST0                  0x20
3461 #define _PLLEN                  0x40
3462 #define _PPST1                  0x80
3463 
3464 //==============================================================================
3465 
3466 
3467 //==============================================================================
3468 //        PIE1 Bits
3469 
3470 extern __at(0x0F9D) __sfr PIE1;
3471 
3472 typedef union
3473   {
3474   struct
3475     {
3476     unsigned TMR1IE             : 1;
3477     unsigned TMR2IE             : 1;
3478     unsigned CCP1IE             : 1;
3479     unsigned SSP1IE             : 1;
3480     unsigned TX1IE              : 1;
3481     unsigned RC1IE              : 1;
3482     unsigned ADIE               : 1;
3483     unsigned                    : 1;
3484     };
3485 
3486   struct
3487     {
3488     unsigned                    : 1;
3489     unsigned                    : 1;
3490     unsigned                    : 1;
3491     unsigned SSPIE              : 1;
3492     unsigned TXIE               : 1;
3493     unsigned RCIE               : 1;
3494     unsigned                    : 1;
3495     unsigned                    : 1;
3496     };
3497   } __PIE1bits_t;
3498 
3499 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;
3500 
3501 #define _PIE1_TMR1IE            0x01
3502 #define _PIE1_TMR2IE            0x02
3503 #define _PIE1_CCP1IE            0x04
3504 #define _PIE1_SSP1IE            0x08
3505 #define _PIE1_SSPIE             0x08
3506 #define _PIE1_TX1IE             0x10
3507 #define _PIE1_TXIE              0x10
3508 #define _PIE1_RC1IE             0x20
3509 #define _PIE1_RCIE              0x20
3510 #define _PIE1_ADIE              0x40
3511 
3512 //==============================================================================
3513 
3514 
3515 //==============================================================================
3516 //        PIR1 Bits
3517 
3518 extern __at(0x0F9E) __sfr PIR1;
3519 
3520 typedef union
3521   {
3522   struct
3523     {
3524     unsigned TMR1IF             : 1;
3525     unsigned TMR2IF             : 1;
3526     unsigned CCP1IF             : 1;
3527     unsigned SSP1IF             : 1;
3528     unsigned TX1IF              : 1;
3529     unsigned RC1IF              : 1;
3530     unsigned ADIF               : 1;
3531     unsigned                    : 1;
3532     };
3533 
3534   struct
3535     {
3536     unsigned                    : 1;
3537     unsigned                    : 1;
3538     unsigned                    : 1;
3539     unsigned SSPIF              : 1;
3540     unsigned TXIF               : 1;
3541     unsigned RCIF               : 1;
3542     unsigned                    : 1;
3543     unsigned                    : 1;
3544     };
3545   } __PIR1bits_t;
3546 
3547 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;
3548 
3549 #define _PIR1_TMR1IF            0x01
3550 #define _PIR1_TMR2IF            0x02
3551 #define _PIR1_CCP1IF            0x04
3552 #define _PIR1_SSP1IF            0x08
3553 #define _PIR1_SSPIF             0x08
3554 #define _PIR1_TX1IF             0x10
3555 #define _PIR1_TXIF              0x10
3556 #define _PIR1_RC1IF             0x20
3557 #define _PIR1_RCIF              0x20
3558 #define _PIR1_ADIF              0x40
3559 
3560 //==============================================================================
3561 
3562 
3563 //==============================================================================
3564 //        IPR1 Bits
3565 
3566 extern __at(0x0F9F) __sfr IPR1;
3567 
3568 typedef union
3569   {
3570   struct
3571     {
3572     unsigned TMR1IP             : 1;
3573     unsigned TMR2IP             : 1;
3574     unsigned CCP1IP             : 1;
3575     unsigned SSP1IP             : 1;
3576     unsigned TX1IP              : 1;
3577     unsigned RC1IP              : 1;
3578     unsigned ADIP               : 1;
3579     unsigned                    : 1;
3580     };
3581 
3582   struct
3583     {
3584     unsigned                    : 1;
3585     unsigned                    : 1;
3586     unsigned                    : 1;
3587     unsigned SSPIP              : 1;
3588     unsigned TXIP               : 1;
3589     unsigned RCIP               : 1;
3590     unsigned                    : 1;
3591     unsigned                    : 1;
3592     };
3593   } __IPR1bits_t;
3594 
3595 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;
3596 
3597 #define _TMR1IP                 0x01
3598 #define _TMR2IP                 0x02
3599 #define _CCP1IP                 0x04
3600 #define _SSP1IP                 0x08
3601 #define _SSPIP                  0x08
3602 #define _TX1IP                  0x10
3603 #define _TXIP                   0x10
3604 #define _RC1IP                  0x20
3605 #define _RCIP                   0x20
3606 #define _ADIP                   0x40
3607 
3608 //==============================================================================
3609 
3610 
3611 //==============================================================================
3612 //        PIE2 Bits
3613 
3614 extern __at(0x0FA0) __sfr PIE2;
3615 
3616 typedef union
3617   {
3618   struct
3619     {
3620     unsigned CCP2IE             : 1;
3621     unsigned TMR3IE             : 1;
3622     unsigned                    : 1;
3623     unsigned BCL1IE             : 1;
3624     unsigned                    : 1;
3625     unsigned ETHIE              : 1;
3626     unsigned CMIE               : 1;
3627     unsigned OSCFIE             : 1;
3628     };
3629 
3630   struct
3631     {
3632     unsigned                    : 1;
3633     unsigned                    : 1;
3634     unsigned                    : 1;
3635     unsigned BCLIE              : 1;
3636     unsigned                    : 1;
3637     unsigned                    : 1;
3638     unsigned                    : 1;
3639     unsigned                    : 1;
3640     };
3641   } __PIE2bits_t;
3642 
3643 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;
3644 
3645 #define _CCP2IE                 0x01
3646 #define _TMR3IE                 0x02
3647 #define _BCL1IE                 0x08
3648 #define _BCLIE                  0x08
3649 #define _ETHIE                  0x20
3650 #define _CMIE                   0x40
3651 #define _OSCFIE                 0x80
3652 
3653 //==============================================================================
3654 
3655 
3656 //==============================================================================
3657 //        PIR2 Bits
3658 
3659 extern __at(0x0FA1) __sfr PIR2;
3660 
3661 typedef union
3662   {
3663   struct
3664     {
3665     unsigned CCP2IF             : 1;
3666     unsigned TMR3IF             : 1;
3667     unsigned                    : 1;
3668     unsigned BCL1IF             : 1;
3669     unsigned                    : 1;
3670     unsigned ETHIF              : 1;
3671     unsigned CMIF               : 1;
3672     unsigned OSCFIF             : 1;
3673     };
3674 
3675   struct
3676     {
3677     unsigned                    : 1;
3678     unsigned                    : 1;
3679     unsigned                    : 1;
3680     unsigned BCLIF              : 1;
3681     unsigned                    : 1;
3682     unsigned                    : 1;
3683     unsigned                    : 1;
3684     unsigned                    : 1;
3685     };
3686   } __PIR2bits_t;
3687 
3688 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;
3689 
3690 #define _CCP2IF                 0x01
3691 #define _TMR3IF                 0x02
3692 #define _BCL1IF                 0x08
3693 #define _BCLIF                  0x08
3694 #define _ETHIF                  0x20
3695 #define _CMIF                   0x40
3696 #define _OSCFIF                 0x80
3697 
3698 //==============================================================================
3699 
3700 
3701 //==============================================================================
3702 //        IPR2 Bits
3703 
3704 extern __at(0x0FA2) __sfr IPR2;
3705 
3706 typedef union
3707   {
3708   struct
3709     {
3710     unsigned CCP2IP             : 1;
3711     unsigned TMR3IP             : 1;
3712     unsigned                    : 1;
3713     unsigned BCL1IP             : 1;
3714     unsigned                    : 1;
3715     unsigned ETHIP              : 1;
3716     unsigned CMIP               : 1;
3717     unsigned OSCFIP             : 1;
3718     };
3719 
3720   struct
3721     {
3722     unsigned                    : 1;
3723     unsigned                    : 1;
3724     unsigned                    : 1;
3725     unsigned BCLIP              : 1;
3726     unsigned                    : 1;
3727     unsigned                    : 1;
3728     unsigned                    : 1;
3729     unsigned                    : 1;
3730     };
3731   } __IPR2bits_t;
3732 
3733 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;
3734 
3735 #define _CCP2IP                 0x01
3736 #define _TMR3IP                 0x02
3737 #define _BCL1IP                 0x08
3738 #define _BCLIP                  0x08
3739 #define _ETHIP                  0x20
3740 #define _CMIP                   0x40
3741 #define _OSCFIP                 0x80
3742 
3743 //==============================================================================
3744 
3745 
3746 //==============================================================================
3747 //        PIE3 Bits
3748 
3749 extern __at(0x0FA3) __sfr PIE3;
3750 
3751 typedef struct
3752   {
3753   unsigned CCP3IE               : 1;
3754   unsigned CCP4IE               : 1;
3755   unsigned CCP5IE               : 1;
3756   unsigned TMR4IE               : 1;
3757   unsigned TX2IE                : 1;
3758   unsigned RC2IE                : 1;
3759   unsigned                      : 1;
3760   unsigned                      : 1;
3761   } __PIE3bits_t;
3762 
3763 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;
3764 
3765 #define _CCP3IE                 0x01
3766 #define _CCP4IE                 0x02
3767 #define _CCP5IE                 0x04
3768 #define _TMR4IE                 0x08
3769 #define _TX2IE                  0x10
3770 #define _RC2IE                  0x20
3771 
3772 //==============================================================================
3773 
3774 
3775 //==============================================================================
3776 //        PIR3 Bits
3777 
3778 extern __at(0x0FA4) __sfr PIR3;
3779 
3780 typedef struct
3781   {
3782   unsigned CCP3IF               : 1;
3783   unsigned CCP4IF               : 1;
3784   unsigned CCP5IF               : 1;
3785   unsigned TMR4IF               : 1;
3786   unsigned TX2IF                : 1;
3787   unsigned RC2IF                : 1;
3788   unsigned                      : 1;
3789   unsigned                      : 1;
3790   } __PIR3bits_t;
3791 
3792 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;
3793 
3794 #define _CCP3IF                 0x01
3795 #define _CCP4IF                 0x02
3796 #define _CCP5IF                 0x04
3797 #define _TMR4IF                 0x08
3798 #define _TX2IF                  0x10
3799 #define _RC2IF                  0x20
3800 
3801 //==============================================================================
3802 
3803 
3804 //==============================================================================
3805 //        IPR3 Bits
3806 
3807 extern __at(0x0FA5) __sfr IPR3;
3808 
3809 typedef struct
3810   {
3811   unsigned CCP3IP               : 1;
3812   unsigned CCP4IP               : 1;
3813   unsigned CCP5IP               : 1;
3814   unsigned TMR4IP               : 1;
3815   unsigned TX2IP                : 1;
3816   unsigned RC2IP                : 1;
3817   unsigned                      : 1;
3818   unsigned                      : 1;
3819   } __IPR3bits_t;
3820 
3821 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;
3822 
3823 #define _CCP3IP                 0x01
3824 #define _CCP4IP                 0x02
3825 #define _CCP5IP                 0x04
3826 #define _TMR4IP                 0x08
3827 #define _TX2IP                  0x10
3828 #define _RC2IP                  0x20
3829 
3830 //==============================================================================
3831 
3832 
3833 //==============================================================================
3834 //        EECON1 Bits
3835 
3836 extern __at(0x0FA6) __sfr EECON1;
3837 
3838 typedef struct
3839   {
3840   unsigned                      : 1;
3841   unsigned WR                   : 1;
3842   unsigned WREN                 : 1;
3843   unsigned WRERR                : 1;
3844   unsigned FREE                 : 1;
3845   unsigned                      : 1;
3846   unsigned                      : 1;
3847   unsigned                      : 1;
3848   } __EECON1bits_t;
3849 
3850 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits;
3851 
3852 #define _WR                     0x02
3853 #define _WREN                   0x04
3854 #define _WRERR                  0x08
3855 #define _FREE                   0x10
3856 
3857 //==============================================================================
3858 
3859 extern __at(0x0FA7) __sfr EECON2;
3860 
3861 //==============================================================================
3862 //        RCSTA Bits
3863 
3864 extern __at(0x0FAB) __sfr RCSTA;
3865 
3866 typedef union
3867   {
3868   struct
3869     {
3870     unsigned RX9D               : 1;
3871     unsigned OERR               : 1;
3872     unsigned FERR               : 1;
3873     unsigned ADDEN              : 1;
3874     unsigned CREN               : 1;
3875     unsigned SREN               : 1;
3876     unsigned RX9                : 1;
3877     unsigned SPEN               : 1;
3878     };
3879 
3880   struct
3881     {
3882     unsigned RCD8               : 1;
3883     unsigned OERR1              : 1;
3884     unsigned FERR1              : 1;
3885     unsigned ADDEN1             : 1;
3886     unsigned CREN1              : 1;
3887     unsigned SREN1              : 1;
3888     unsigned RC9                : 1;
3889     unsigned SPEN1              : 1;
3890     };
3891 
3892   struct
3893     {
3894     unsigned RX9D1              : 1;
3895     unsigned                    : 1;
3896     unsigned                    : 1;
3897     unsigned                    : 1;
3898     unsigned                    : 1;
3899     unsigned                    : 1;
3900     unsigned NOT_RC8            : 1;
3901     unsigned                    : 1;
3902     };
3903 
3904   struct
3905     {
3906     unsigned                    : 1;
3907     unsigned                    : 1;
3908     unsigned                    : 1;
3909     unsigned                    : 1;
3910     unsigned                    : 1;
3911     unsigned                    : 1;
3912     unsigned RC8_9              : 1;
3913     unsigned                    : 1;
3914     };
3915 
3916   struct
3917     {
3918     unsigned                    : 1;
3919     unsigned                    : 1;
3920     unsigned                    : 1;
3921     unsigned                    : 1;
3922     unsigned                    : 1;
3923     unsigned                    : 1;
3924     unsigned RX91               : 1;
3925     unsigned                    : 1;
3926     };
3927   } __RCSTAbits_t;
3928 
3929 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;
3930 
3931 #define _RX9D                   0x01
3932 #define _RCD8                   0x01
3933 #define _RX9D1                  0x01
3934 #define _OERR                   0x02
3935 #define _OERR1                  0x02
3936 #define _FERR                   0x04
3937 #define _FERR1                  0x04
3938 #define _ADDEN                  0x08
3939 #define _ADDEN1                 0x08
3940 #define _CREN                   0x10
3941 #define _CREN1                  0x10
3942 #define _SREN                   0x20
3943 #define _SREN1                  0x20
3944 #define _RX9                    0x40
3945 #define _RC9                    0x40
3946 #define _NOT_RC8                0x40
3947 #define _RC8_9                  0x40
3948 #define _RX91                   0x40
3949 #define _SPEN                   0x80
3950 #define _SPEN1                  0x80
3951 
3952 //==============================================================================
3953 
3954 
3955 //==============================================================================
3956 //        RCSTA1 Bits
3957 
3958 extern __at(0x0FAB) __sfr RCSTA1;
3959 
3960 typedef union
3961   {
3962   struct
3963     {
3964     unsigned RX9D               : 1;
3965     unsigned OERR               : 1;
3966     unsigned FERR               : 1;
3967     unsigned ADDEN              : 1;
3968     unsigned CREN               : 1;
3969     unsigned SREN               : 1;
3970     unsigned RX9                : 1;
3971     unsigned SPEN               : 1;
3972     };
3973 
3974   struct
3975     {
3976     unsigned RCD8               : 1;
3977     unsigned OERR1              : 1;
3978     unsigned FERR1              : 1;
3979     unsigned ADDEN1             : 1;
3980     unsigned CREN1              : 1;
3981     unsigned SREN1              : 1;
3982     unsigned RC9                : 1;
3983     unsigned SPEN1              : 1;
3984     };
3985 
3986   struct
3987     {
3988     unsigned RX9D1              : 1;
3989     unsigned                    : 1;
3990     unsigned                    : 1;
3991     unsigned                    : 1;
3992     unsigned                    : 1;
3993     unsigned                    : 1;
3994     unsigned NOT_RC8            : 1;
3995     unsigned                    : 1;
3996     };
3997 
3998   struct
3999     {
4000     unsigned                    : 1;
4001     unsigned                    : 1;
4002     unsigned                    : 1;
4003     unsigned                    : 1;
4004     unsigned                    : 1;
4005     unsigned                    : 1;
4006     unsigned RC8_9              : 1;
4007     unsigned                    : 1;
4008     };
4009 
4010   struct
4011     {
4012     unsigned                    : 1;
4013     unsigned                    : 1;
4014     unsigned                    : 1;
4015     unsigned                    : 1;
4016     unsigned                    : 1;
4017     unsigned                    : 1;
4018     unsigned RX91               : 1;
4019     unsigned                    : 1;
4020     };
4021   } __RCSTA1bits_t;
4022 
4023 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits;
4024 
4025 #define _RCSTA1_RX9D            0x01
4026 #define _RCSTA1_RCD8            0x01
4027 #define _RCSTA1_RX9D1           0x01
4028 #define _RCSTA1_OERR            0x02
4029 #define _RCSTA1_OERR1           0x02
4030 #define _RCSTA1_FERR            0x04
4031 #define _RCSTA1_FERR1           0x04
4032 #define _RCSTA1_ADDEN           0x08
4033 #define _RCSTA1_ADDEN1          0x08
4034 #define _RCSTA1_CREN            0x10
4035 #define _RCSTA1_CREN1           0x10
4036 #define _RCSTA1_SREN            0x20
4037 #define _RCSTA1_SREN1           0x20
4038 #define _RCSTA1_RX9             0x40
4039 #define _RCSTA1_RC9             0x40
4040 #define _RCSTA1_NOT_RC8         0x40
4041 #define _RCSTA1_RC8_9           0x40
4042 #define _RCSTA1_RX91            0x40
4043 #define _RCSTA1_SPEN            0x80
4044 #define _RCSTA1_SPEN1           0x80
4045 
4046 //==============================================================================
4047 
4048 
4049 //==============================================================================
4050 //        TXSTA Bits
4051 
4052 extern __at(0x0FAC) __sfr TXSTA;
4053 
4054 typedef union
4055   {
4056   struct
4057     {
4058     unsigned TX9D               : 1;
4059     unsigned TRMT               : 1;
4060     unsigned BRGH               : 1;
4061     unsigned SENDB              : 1;
4062     unsigned SYNC               : 1;
4063     unsigned TXEN               : 1;
4064     unsigned TX9                : 1;
4065     unsigned CSRC               : 1;
4066     };
4067 
4068   struct
4069     {
4070     unsigned TXD8               : 1;
4071     unsigned TRMT1              : 1;
4072     unsigned BRGH1              : 1;
4073     unsigned SENDB1             : 1;
4074     unsigned SYNC1              : 1;
4075     unsigned TXEN1              : 1;
4076     unsigned TX8_9              : 1;
4077     unsigned CSRC1              : 1;
4078     };
4079 
4080   struct
4081     {
4082     unsigned TX9D1              : 1;
4083     unsigned                    : 1;
4084     unsigned                    : 1;
4085     unsigned                    : 1;
4086     unsigned                    : 1;
4087     unsigned                    : 1;
4088     unsigned NOT_TX8            : 1;
4089     unsigned                    : 1;
4090     };
4091 
4092   struct
4093     {
4094     unsigned                    : 1;
4095     unsigned                    : 1;
4096     unsigned                    : 1;
4097     unsigned                    : 1;
4098     unsigned                    : 1;
4099     unsigned                    : 1;
4100     unsigned TX91               : 1;
4101     unsigned                    : 1;
4102     };
4103   } __TXSTAbits_t;
4104 
4105 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;
4106 
4107 #define _TX9D                   0x01
4108 #define _TXD8                   0x01
4109 #define _TX9D1                  0x01
4110 #define _TRMT                   0x02
4111 #define _TRMT1                  0x02
4112 #define _BRGH                   0x04
4113 #define _BRGH1                  0x04
4114 #define _SENDB                  0x08
4115 #define _SENDB1                 0x08
4116 #define _SYNC                   0x10
4117 #define _SYNC1                  0x10
4118 #define _TXEN                   0x20
4119 #define _TXEN1                  0x20
4120 #define _TX9                    0x40
4121 #define _TX8_9                  0x40
4122 #define _NOT_TX8                0x40
4123 #define _TX91                   0x40
4124 #define _CSRC                   0x80
4125 #define _CSRC1                  0x80
4126 
4127 //==============================================================================
4128 
4129 
4130 //==============================================================================
4131 //        TXSTA1 Bits
4132 
4133 extern __at(0x0FAC) __sfr TXSTA1;
4134 
4135 typedef union
4136   {
4137   struct
4138     {
4139     unsigned TX9D               : 1;
4140     unsigned TRMT               : 1;
4141     unsigned BRGH               : 1;
4142     unsigned SENDB              : 1;
4143     unsigned SYNC               : 1;
4144     unsigned TXEN               : 1;
4145     unsigned TX9                : 1;
4146     unsigned CSRC               : 1;
4147     };
4148 
4149   struct
4150     {
4151     unsigned TXD8               : 1;
4152     unsigned TRMT1              : 1;
4153     unsigned BRGH1              : 1;
4154     unsigned SENDB1             : 1;
4155     unsigned SYNC1              : 1;
4156     unsigned TXEN1              : 1;
4157     unsigned TX8_9              : 1;
4158     unsigned CSRC1              : 1;
4159     };
4160 
4161   struct
4162     {
4163     unsigned TX9D1              : 1;
4164     unsigned                    : 1;
4165     unsigned                    : 1;
4166     unsigned                    : 1;
4167     unsigned                    : 1;
4168     unsigned                    : 1;
4169     unsigned NOT_TX8            : 1;
4170     unsigned                    : 1;
4171     };
4172 
4173   struct
4174     {
4175     unsigned                    : 1;
4176     unsigned                    : 1;
4177     unsigned                    : 1;
4178     unsigned                    : 1;
4179     unsigned                    : 1;
4180     unsigned                    : 1;
4181     unsigned TX91               : 1;
4182     unsigned                    : 1;
4183     };
4184   } __TXSTA1bits_t;
4185 
4186 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits;
4187 
4188 #define _TXSTA1_TX9D            0x01
4189 #define _TXSTA1_TXD8            0x01
4190 #define _TXSTA1_TX9D1           0x01
4191 #define _TXSTA1_TRMT            0x02
4192 #define _TXSTA1_TRMT1           0x02
4193 #define _TXSTA1_BRGH            0x04
4194 #define _TXSTA1_BRGH1           0x04
4195 #define _TXSTA1_SENDB           0x08
4196 #define _TXSTA1_SENDB1          0x08
4197 #define _TXSTA1_SYNC            0x10
4198 #define _TXSTA1_SYNC1           0x10
4199 #define _TXSTA1_TXEN            0x20
4200 #define _TXSTA1_TXEN1           0x20
4201 #define _TXSTA1_TX9             0x40
4202 #define _TXSTA1_TX8_9           0x40
4203 #define _TXSTA1_NOT_TX8         0x40
4204 #define _TXSTA1_TX91            0x40
4205 #define _TXSTA1_CSRC            0x80
4206 #define _TXSTA1_CSRC1           0x80
4207 
4208 //==============================================================================
4209 
4210 extern __at(0x0FAD) __sfr TXREG;
4211 extern __at(0x0FAD) __sfr TXREG1;
4212 extern __at(0x0FAE) __sfr RCREG;
4213 extern __at(0x0FAE) __sfr RCREG1;
4214 extern __at(0x0FAF) __sfr SPBRG;
4215 extern __at(0x0FAF) __sfr SPBRG1;
4216 
4217 //==============================================================================
4218 //        T3CON Bits
4219 
4220 extern __at(0x0FB1) __sfr T3CON;
4221 
4222 typedef union
4223   {
4224   struct
4225     {
4226     unsigned TMR3ON             : 1;
4227     unsigned TMR3CS             : 1;
4228     unsigned NOT_T3SYNC         : 1;
4229     unsigned T3CCP1             : 1;
4230     unsigned T3CKPS0            : 1;
4231     unsigned T3CKPS1            : 1;
4232     unsigned T3CCP2             : 1;
4233     unsigned RD16               : 1;
4234     };
4235 
4236   struct
4237     {
4238     unsigned                    : 1;
4239     unsigned                    : 1;
4240     unsigned T3SYNC             : 1;
4241     unsigned                    : 1;
4242     unsigned                    : 1;
4243     unsigned                    : 1;
4244     unsigned                    : 1;
4245     unsigned                    : 1;
4246     };
4247 
4248   struct
4249     {
4250     unsigned                    : 1;
4251     unsigned                    : 1;
4252     unsigned T3INSYNC           : 1;
4253     unsigned                    : 1;
4254     unsigned                    : 1;
4255     unsigned                    : 1;
4256     unsigned                    : 1;
4257     unsigned                    : 1;
4258     };
4259 
4260   struct
4261     {
4262     unsigned                    : 4;
4263     unsigned T3CKPS             : 2;
4264     unsigned                    : 2;
4265     };
4266   } __T3CONbits_t;
4267 
4268 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits;
4269 
4270 #define _T3CON_TMR3ON           0x01
4271 #define _T3CON_TMR3CS           0x02
4272 #define _T3CON_NOT_T3SYNC       0x04
4273 #define _T3CON_T3SYNC           0x04
4274 #define _T3CON_T3INSYNC         0x04
4275 #define _T3CON_T3CCP1           0x08
4276 #define _T3CON_T3CKPS0          0x10
4277 #define _T3CON_T3CKPS1          0x20
4278 #define _T3CON_T3CCP2           0x40
4279 #define _T3CON_RD16             0x80
4280 
4281 //==============================================================================
4282 
4283 extern __at(0x0FB2) __sfr TMR3;
4284 extern __at(0x0FB2) __sfr TMR3L;
4285 extern __at(0x0FB3) __sfr TMR3H;
4286 
4287 //==============================================================================
4288 //        CMCON Bits
4289 
4290 extern __at(0x0FB4) __sfr CMCON;
4291 
4292 typedef union
4293   {
4294   struct
4295     {
4296     unsigned CM0                : 1;
4297     unsigned CM1                : 1;
4298     unsigned CM2                : 1;
4299     unsigned CIS                : 1;
4300     unsigned C1INV              : 1;
4301     unsigned C2INV              : 1;
4302     unsigned C1OUT              : 1;
4303     unsigned C2OUT              : 1;
4304     };
4305 
4306   struct
4307     {
4308     unsigned CM                 : 3;
4309     unsigned                    : 5;
4310     };
4311   } __CMCONbits_t;
4312 
4313 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits;
4314 
4315 #define _CM0                    0x01
4316 #define _CM1                    0x02
4317 #define _CM2                    0x04
4318 #define _CIS                    0x08
4319 #define _C1INV                  0x10
4320 #define _C2INV                  0x20
4321 #define _C1OUT                  0x40
4322 #define _C2OUT                  0x80
4323 
4324 //==============================================================================
4325 
4326 
4327 //==============================================================================
4328 //        CVRCON Bits
4329 
4330 extern __at(0x0FB5) __sfr CVRCON;
4331 
4332 typedef union
4333   {
4334   struct
4335     {
4336     unsigned CVR0               : 1;
4337     unsigned CVR1               : 1;
4338     unsigned CVR2               : 1;
4339     unsigned CVR3               : 1;
4340     unsigned CVRSS              : 1;
4341     unsigned CVRR               : 1;
4342     unsigned CVROE              : 1;
4343     unsigned CVREN              : 1;
4344     };
4345 
4346   struct
4347     {
4348     unsigned CVR                : 4;
4349     unsigned                    : 4;
4350     };
4351   } __CVRCONbits_t;
4352 
4353 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits;
4354 
4355 #define _CVR0                   0x01
4356 #define _CVR1                   0x02
4357 #define _CVR2                   0x04
4358 #define _CVR3                   0x08
4359 #define _CVRSS                  0x10
4360 #define _CVRR                   0x20
4361 #define _CVROE                  0x40
4362 #define _CVREN                  0x80
4363 
4364 //==============================================================================
4365 
4366 
4367 //==============================================================================
4368 //        ECCP1AS Bits
4369 
4370 extern __at(0x0FB6) __sfr ECCP1AS;
4371 
4372 typedef union
4373   {
4374   struct
4375     {
4376     unsigned PSSBD0             : 1;
4377     unsigned PSSBD1             : 1;
4378     unsigned PSSAC0             : 1;
4379     unsigned PSSAC1             : 1;
4380     unsigned ECCPAS0            : 1;
4381     unsigned ECCPAS1            : 1;
4382     unsigned ECCPAS2            : 1;
4383     unsigned ECCPASE            : 1;
4384     };
4385 
4386   struct
4387     {
4388     unsigned PSS1BD0            : 1;
4389     unsigned PSS1BD1            : 1;
4390     unsigned PSS1AC0            : 1;
4391     unsigned PSS1AC1            : 1;
4392     unsigned ECCP1AS0           : 1;
4393     unsigned ECCP1AS1           : 1;
4394     unsigned ECCP1AS2           : 1;
4395     unsigned ECCP1ASE           : 1;
4396     };
4397 
4398   struct
4399     {
4400     unsigned PSSBD              : 2;
4401     unsigned                    : 6;
4402     };
4403 
4404   struct
4405     {
4406     unsigned PSS1BD             : 2;
4407     unsigned                    : 6;
4408     };
4409 
4410   struct
4411     {
4412     unsigned                    : 2;
4413     unsigned PSSAC              : 2;
4414     unsigned                    : 4;
4415     };
4416 
4417   struct
4418     {
4419     unsigned                    : 2;
4420     unsigned PSS1AC             : 2;
4421     unsigned                    : 4;
4422     };
4423 
4424   struct
4425     {
4426     unsigned                    : 4;
4427     unsigned ECCP1AS            : 3;
4428     unsigned                    : 1;
4429     };
4430 
4431   struct
4432     {
4433     unsigned                    : 4;
4434     unsigned ECCPAS             : 3;
4435     unsigned                    : 1;
4436     };
4437   } __ECCP1ASbits_t;
4438 
4439 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits;
4440 
4441 #define _PSSBD0                 0x01
4442 #define _PSS1BD0                0x01
4443 #define _PSSBD1                 0x02
4444 #define _PSS1BD1                0x02
4445 #define _PSSAC0                 0x04
4446 #define _PSS1AC0                0x04
4447 #define _PSSAC1                 0x08
4448 #define _PSS1AC1                0x08
4449 #define _ECCPAS0                0x10
4450 #define _ECCP1AS0               0x10
4451 #define _ECCPAS1                0x20
4452 #define _ECCP1AS1               0x20
4453 #define _ECCPAS2                0x40
4454 #define _ECCP1AS2               0x40
4455 #define _ECCPASE                0x80
4456 #define _ECCP1ASE               0x80
4457 
4458 //==============================================================================
4459 
4460 
4461 //==============================================================================
4462 //        CCP3CON Bits
4463 
4464 extern __at(0x0FB7) __sfr CCP3CON;
4465 
4466 typedef union
4467   {
4468   struct
4469     {
4470     unsigned CCP3M0             : 1;
4471     unsigned CCP3M1             : 1;
4472     unsigned CCP3M2             : 1;
4473     unsigned CCP3M3             : 1;
4474     unsigned DC3B0              : 1;
4475     unsigned DC3B1              : 1;
4476     unsigned P3M0               : 1;
4477     unsigned P3M1               : 1;
4478     };
4479 
4480   struct
4481     {
4482     unsigned                    : 1;
4483     unsigned                    : 1;
4484     unsigned                    : 1;
4485     unsigned                    : 1;
4486     unsigned CCP3Y              : 1;
4487     unsigned CCP3X              : 1;
4488     unsigned                    : 1;
4489     unsigned                    : 1;
4490     };
4491 
4492   struct
4493     {
4494     unsigned CCP3M              : 4;
4495     unsigned                    : 4;
4496     };
4497 
4498   struct
4499     {
4500     unsigned                    : 4;
4501     unsigned DC3B               : 2;
4502     unsigned                    : 2;
4503     };
4504 
4505   struct
4506     {
4507     unsigned                    : 6;
4508     unsigned P3M                : 2;
4509     };
4510   } __CCP3CONbits_t;
4511 
4512 extern __at(0x0FB7) volatile __CCP3CONbits_t CCP3CONbits;
4513 
4514 #define _CCP3M0                 0x01
4515 #define _CCP3M1                 0x02
4516 #define _CCP3M2                 0x04
4517 #define _CCP3M3                 0x08
4518 #define _DC3B0                  0x10
4519 #define _CCP3Y                  0x10
4520 #define _DC3B1                  0x20
4521 #define _CCP3X                  0x20
4522 #define _P3M0                   0x40
4523 #define _P3M1                   0x80
4524 
4525 //==============================================================================
4526 
4527 
4528 //==============================================================================
4529 //        ECCP3CON Bits
4530 
4531 extern __at(0x0FB7) __sfr ECCP3CON;
4532 
4533 typedef union
4534   {
4535   struct
4536     {
4537     unsigned CCP3M0             : 1;
4538     unsigned CCP3M1             : 1;
4539     unsigned CCP3M2             : 1;
4540     unsigned CCP3M3             : 1;
4541     unsigned DC3B0              : 1;
4542     unsigned DC3B1              : 1;
4543     unsigned P3M0               : 1;
4544     unsigned P3M1               : 1;
4545     };
4546 
4547   struct
4548     {
4549     unsigned                    : 1;
4550     unsigned                    : 1;
4551     unsigned                    : 1;
4552     unsigned                    : 1;
4553     unsigned CCP3Y              : 1;
4554     unsigned CCP3X              : 1;
4555     unsigned                    : 1;
4556     unsigned                    : 1;
4557     };
4558 
4559   struct
4560     {
4561     unsigned CCP3M              : 4;
4562     unsigned                    : 4;
4563     };
4564 
4565   struct
4566     {
4567     unsigned                    : 4;
4568     unsigned DC3B               : 2;
4569     unsigned                    : 2;
4570     };
4571 
4572   struct
4573     {
4574     unsigned                    : 6;
4575     unsigned P3M                : 2;
4576     };
4577   } __ECCP3CONbits_t;
4578 
4579 extern __at(0x0FB7) volatile __ECCP3CONbits_t ECCP3CONbits;
4580 
4581 #define _ECCP3CON_CCP3M0        0x01
4582 #define _ECCP3CON_CCP3M1        0x02
4583 #define _ECCP3CON_CCP3M2        0x04
4584 #define _ECCP3CON_CCP3M3        0x08
4585 #define _ECCP3CON_DC3B0         0x10
4586 #define _ECCP3CON_CCP3Y         0x10
4587 #define _ECCP3CON_DC3B1         0x20
4588 #define _ECCP3CON_CCP3X         0x20
4589 #define _ECCP3CON_P3M0          0x40
4590 #define _ECCP3CON_P3M1          0x80
4591 
4592 //==============================================================================
4593 
4594 extern __at(0x0FB8) __sfr CCPR3;
4595 extern __at(0x0FB8) __sfr CCPR3L;
4596 extern __at(0x0FB9) __sfr CCPR3H;
4597 
4598 //==============================================================================
4599 //        CCP2CON Bits
4600 
4601 extern __at(0x0FBA) __sfr CCP2CON;
4602 
4603 typedef union
4604   {
4605   struct
4606     {
4607     unsigned CCP2M0             : 1;
4608     unsigned CCP2M1             : 1;
4609     unsigned CCP2M2             : 1;
4610     unsigned CCP2M3             : 1;
4611     unsigned DC2B0              : 1;
4612     unsigned DC2B1              : 1;
4613     unsigned P2M0               : 1;
4614     unsigned P2M1               : 1;
4615     };
4616 
4617   struct
4618     {
4619     unsigned                    : 1;
4620     unsigned                    : 1;
4621     unsigned                    : 1;
4622     unsigned                    : 1;
4623     unsigned CCP2Y              : 1;
4624     unsigned CCP2X              : 1;
4625     unsigned                    : 1;
4626     unsigned                    : 1;
4627     };
4628 
4629   struct
4630     {
4631     unsigned CCP2M              : 4;
4632     unsigned                    : 4;
4633     };
4634 
4635   struct
4636     {
4637     unsigned                    : 4;
4638     unsigned DC2B               : 2;
4639     unsigned                    : 2;
4640     };
4641 
4642   struct
4643     {
4644     unsigned                    : 6;
4645     unsigned P2M                : 2;
4646     };
4647   } __CCP2CONbits_t;
4648 
4649 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits;
4650 
4651 #define _CCP2M0                 0x01
4652 #define _CCP2M1                 0x02
4653 #define _CCP2M2                 0x04
4654 #define _CCP2M3                 0x08
4655 #define _DC2B0                  0x10
4656 #define _CCP2Y                  0x10
4657 #define _DC2B1                  0x20
4658 #define _CCP2X                  0x20
4659 #define _P2M0                   0x40
4660 #define _P2M1                   0x80
4661 
4662 //==============================================================================
4663 
4664 
4665 //==============================================================================
4666 //        ECCP2CON Bits
4667 
4668 extern __at(0x0FBA) __sfr ECCP2CON;
4669 
4670 typedef union
4671   {
4672   struct
4673     {
4674     unsigned CCP2M0             : 1;
4675     unsigned CCP2M1             : 1;
4676     unsigned CCP2M2             : 1;
4677     unsigned CCP2M3             : 1;
4678     unsigned DC2B0              : 1;
4679     unsigned DC2B1              : 1;
4680     unsigned P2M0               : 1;
4681     unsigned P2M1               : 1;
4682     };
4683 
4684   struct
4685     {
4686     unsigned                    : 1;
4687     unsigned                    : 1;
4688     unsigned                    : 1;
4689     unsigned                    : 1;
4690     unsigned CCP2Y              : 1;
4691     unsigned CCP2X              : 1;
4692     unsigned                    : 1;
4693     unsigned                    : 1;
4694     };
4695 
4696   struct
4697     {
4698     unsigned CCP2M              : 4;
4699     unsigned                    : 4;
4700     };
4701 
4702   struct
4703     {
4704     unsigned                    : 4;
4705     unsigned DC2B               : 2;
4706     unsigned                    : 2;
4707     };
4708 
4709   struct
4710     {
4711     unsigned                    : 6;
4712     unsigned P2M                : 2;
4713     };
4714   } __ECCP2CONbits_t;
4715 
4716 extern __at(0x0FBA) volatile __ECCP2CONbits_t ECCP2CONbits;
4717 
4718 #define _ECCP2CON_CCP2M0        0x01
4719 #define _ECCP2CON_CCP2M1        0x02
4720 #define _ECCP2CON_CCP2M2        0x04
4721 #define _ECCP2CON_CCP2M3        0x08
4722 #define _ECCP2CON_DC2B0         0x10
4723 #define _ECCP2CON_CCP2Y         0x10
4724 #define _ECCP2CON_DC2B1         0x20
4725 #define _ECCP2CON_CCP2X         0x20
4726 #define _ECCP2CON_P2M0          0x40
4727 #define _ECCP2CON_P2M1          0x80
4728 
4729 //==============================================================================
4730 
4731 extern __at(0x0FBB) __sfr CCPR2;
4732 extern __at(0x0FBB) __sfr CCPR2L;
4733 extern __at(0x0FBC) __sfr CCPR2H;
4734 
4735 //==============================================================================
4736 //        CCP1CON Bits
4737 
4738 extern __at(0x0FBD) __sfr CCP1CON;
4739 
4740 typedef union
4741   {
4742   struct
4743     {
4744     unsigned CCP1M0             : 1;
4745     unsigned CCP1M1             : 1;
4746     unsigned CCP1M2             : 1;
4747     unsigned CCP1M3             : 1;
4748     unsigned DC1B0              : 1;
4749     unsigned DC1B1              : 1;
4750     unsigned P1M0               : 1;
4751     unsigned P1M1               : 1;
4752     };
4753 
4754   struct
4755     {
4756     unsigned                    : 1;
4757     unsigned                    : 1;
4758     unsigned                    : 1;
4759     unsigned                    : 1;
4760     unsigned CCP1Y              : 1;
4761     unsigned CCP1X              : 1;
4762     unsigned                    : 1;
4763     unsigned                    : 1;
4764     };
4765 
4766   struct
4767     {
4768     unsigned CCP1M              : 4;
4769     unsigned                    : 4;
4770     };
4771 
4772   struct
4773     {
4774     unsigned                    : 4;
4775     unsigned DC1B               : 2;
4776     unsigned                    : 2;
4777     };
4778 
4779   struct
4780     {
4781     unsigned                    : 6;
4782     unsigned P1M                : 2;
4783     };
4784   } __CCP1CONbits_t;
4785 
4786 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits;
4787 
4788 #define _CCP1M0                 0x01
4789 #define _CCP1M1                 0x02
4790 #define _CCP1M2                 0x04
4791 #define _CCP1M3                 0x08
4792 #define _DC1B0                  0x10
4793 #define _CCP1Y                  0x10
4794 #define _DC1B1                  0x20
4795 #define _CCP1X                  0x20
4796 #define _P1M0                   0x40
4797 #define _P1M1                   0x80
4798 
4799 //==============================================================================
4800 
4801 
4802 //==============================================================================
4803 //        ECCP1CON Bits
4804 
4805 extern __at(0x0FBD) __sfr ECCP1CON;
4806 
4807 typedef union
4808   {
4809   struct
4810     {
4811     unsigned CCP1M0             : 1;
4812     unsigned CCP1M1             : 1;
4813     unsigned CCP1M2             : 1;
4814     unsigned CCP1M3             : 1;
4815     unsigned DC1B0              : 1;
4816     unsigned DC1B1              : 1;
4817     unsigned P1M0               : 1;
4818     unsigned P1M1               : 1;
4819     };
4820 
4821   struct
4822     {
4823     unsigned                    : 1;
4824     unsigned                    : 1;
4825     unsigned                    : 1;
4826     unsigned                    : 1;
4827     unsigned CCP1Y              : 1;
4828     unsigned CCP1X              : 1;
4829     unsigned                    : 1;
4830     unsigned                    : 1;
4831     };
4832 
4833   struct
4834     {
4835     unsigned CCP1M              : 4;
4836     unsigned                    : 4;
4837     };
4838 
4839   struct
4840     {
4841     unsigned                    : 4;
4842     unsigned DC1B               : 2;
4843     unsigned                    : 2;
4844     };
4845 
4846   struct
4847     {
4848     unsigned                    : 6;
4849     unsigned P1M                : 2;
4850     };
4851   } __ECCP1CONbits_t;
4852 
4853 extern __at(0x0FBD) volatile __ECCP1CONbits_t ECCP1CONbits;
4854 
4855 #define _ECCP1CON_CCP1M0        0x01
4856 #define _ECCP1CON_CCP1M1        0x02
4857 #define _ECCP1CON_CCP1M2        0x04
4858 #define _ECCP1CON_CCP1M3        0x08
4859 #define _ECCP1CON_DC1B0         0x10
4860 #define _ECCP1CON_CCP1Y         0x10
4861 #define _ECCP1CON_DC1B1         0x20
4862 #define _ECCP1CON_CCP1X         0x20
4863 #define _ECCP1CON_P1M0          0x40
4864 #define _ECCP1CON_P1M1          0x80
4865 
4866 //==============================================================================
4867 
4868 extern __at(0x0FBE) __sfr CCPR1;
4869 extern __at(0x0FBE) __sfr CCPR1L;
4870 extern __at(0x0FBF) __sfr CCPR1H;
4871 
4872 //==============================================================================
4873 //        ADCON2 Bits
4874 
4875 extern __at(0x0FC0) __sfr ADCON2;
4876 
4877 typedef union
4878   {
4879   struct
4880     {
4881     unsigned ADCS0              : 1;
4882     unsigned ADCS1              : 1;
4883     unsigned ADCS2              : 1;
4884     unsigned ACQT0              : 1;
4885     unsigned ACQT1              : 1;
4886     unsigned ACQT2              : 1;
4887     unsigned                    : 1;
4888     unsigned ADFM               : 1;
4889     };
4890 
4891   struct
4892     {
4893     unsigned ADCS               : 3;
4894     unsigned                    : 5;
4895     };
4896 
4897   struct
4898     {
4899     unsigned                    : 3;
4900     unsigned ACQT               : 3;
4901     unsigned                    : 2;
4902     };
4903   } __ADCON2bits_t;
4904 
4905 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits;
4906 
4907 #define _ADCS0                  0x01
4908 #define _ADCS1                  0x02
4909 #define _ADCS2                  0x04
4910 #define _ACQT0                  0x08
4911 #define _ACQT1                  0x10
4912 #define _ACQT2                  0x20
4913 #define _ADFM                   0x80
4914 
4915 //==============================================================================
4916 
4917 
4918 //==============================================================================
4919 //        ADCON1 Bits
4920 
4921 extern __at(0x0FC1) __sfr ADCON1;
4922 
4923 typedef union
4924   {
4925   struct
4926     {
4927     unsigned PCFG0              : 1;
4928     unsigned PCFG1              : 1;
4929     unsigned PCFG2              : 1;
4930     unsigned PCFG3              : 1;
4931     unsigned VCFG0              : 1;
4932     unsigned VCFG1              : 1;
4933     unsigned                    : 1;
4934     unsigned                    : 1;
4935     };
4936 
4937   struct
4938     {
4939     unsigned PCFG               : 4;
4940     unsigned                    : 4;
4941     };
4942 
4943   struct
4944     {
4945     unsigned                    : 4;
4946     unsigned VCFG               : 2;
4947     unsigned                    : 2;
4948     };
4949   } __ADCON1bits_t;
4950 
4951 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;
4952 
4953 #define _PCFG0                  0x01
4954 #define _PCFG1                  0x02
4955 #define _PCFG2                  0x04
4956 #define _PCFG3                  0x08
4957 #define _VCFG0                  0x10
4958 #define _VCFG1                  0x20
4959 
4960 //==============================================================================
4961 
4962 
4963 //==============================================================================
4964 //        ADCON0 Bits
4965 
4966 extern __at(0x0FC2) __sfr ADCON0;
4967 
4968 typedef union
4969   {
4970   struct
4971     {
4972     unsigned ADON               : 1;
4973     unsigned GO_NOT_DONE        : 1;
4974     unsigned CHS0               : 1;
4975     unsigned CHS1               : 1;
4976     unsigned CHS2               : 1;
4977     unsigned CHS3               : 1;
4978     unsigned                    : 1;
4979     unsigned ADCAL              : 1;
4980     };
4981 
4982   struct
4983     {
4984     unsigned                    : 1;
4985     unsigned DONE               : 1;
4986     unsigned                    : 1;
4987     unsigned                    : 1;
4988     unsigned                    : 1;
4989     unsigned                    : 1;
4990     unsigned                    : 1;
4991     unsigned                    : 1;
4992     };
4993 
4994   struct
4995     {
4996     unsigned                    : 1;
4997     unsigned GO_DONE            : 1;
4998     unsigned                    : 1;
4999     unsigned                    : 1;
5000     unsigned                    : 1;
5001     unsigned                    : 1;
5002     unsigned                    : 1;
5003     unsigned                    : 1;
5004     };
5005 
5006   struct
5007     {
5008     unsigned                    : 1;
5009     unsigned GO                 : 1;
5010     unsigned                    : 1;
5011     unsigned                    : 1;
5012     unsigned                    : 1;
5013     unsigned                    : 1;
5014     unsigned                    : 1;
5015     unsigned                    : 1;
5016     };
5017 
5018   struct
5019     {
5020     unsigned                    : 1;
5021     unsigned NOT_DONE           : 1;
5022     unsigned                    : 1;
5023     unsigned                    : 1;
5024     unsigned                    : 1;
5025     unsigned                    : 1;
5026     unsigned                    : 1;
5027     unsigned                    : 1;
5028     };
5029 
5030   struct
5031     {
5032     unsigned                    : 2;
5033     unsigned CHS                : 4;
5034     unsigned                    : 2;
5035     };
5036   } __ADCON0bits_t;
5037 
5038 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;
5039 
5040 #define _ADON                   0x01
5041 #define _GO_NOT_DONE            0x02
5042 #define _DONE                   0x02
5043 #define _GO_DONE                0x02
5044 #define _GO                     0x02
5045 #define _NOT_DONE               0x02
5046 #define _CHS0                   0x04
5047 #define _CHS1                   0x08
5048 #define _CHS2                   0x10
5049 #define _CHS3                   0x20
5050 #define _ADCAL                  0x80
5051 
5052 //==============================================================================
5053 
5054 extern __at(0x0FC3) __sfr ADRES;
5055 extern __at(0x0FC3) __sfr ADRESL;
5056 extern __at(0x0FC4) __sfr ADRESH;
5057 
5058 //==============================================================================
5059 //        SSP1CON2 Bits
5060 
5061 extern __at(0x0FC5) __sfr SSP1CON2;
5062 
5063 typedef union
5064   {
5065   struct
5066     {
5067     unsigned SEN                : 1;
5068     unsigned RSEN               : 1;
5069     unsigned PEN                : 1;
5070     unsigned RCEN               : 1;
5071     unsigned ACKEN              : 1;
5072     unsigned ACKDT              : 1;
5073     unsigned ACKSTAT            : 1;
5074     unsigned GCEN               : 1;
5075     };
5076 
5077   struct
5078     {
5079     unsigned                    : 1;
5080     unsigned ADMSK1             : 1;
5081     unsigned ADMSK2             : 1;
5082     unsigned ADMSK3             : 1;
5083     unsigned ADMSK4             : 1;
5084     unsigned ADMSK5             : 1;
5085     unsigned                    : 1;
5086     unsigned                    : 1;
5087     };
5088   } __SSP1CON2bits_t;
5089 
5090 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits;
5091 
5092 #define _SEN                    0x01
5093 #define _RSEN                   0x02
5094 #define _ADMSK1                 0x02
5095 #define _PEN                    0x04
5096 #define _ADMSK2                 0x04
5097 #define _RCEN                   0x08
5098 #define _ADMSK3                 0x08
5099 #define _ACKEN                  0x10
5100 #define _ADMSK4                 0x10
5101 #define _ACKDT                  0x20
5102 #define _ADMSK5                 0x20
5103 #define _ACKSTAT                0x40
5104 #define _GCEN                   0x80
5105 
5106 //==============================================================================
5107 
5108 
5109 //==============================================================================
5110 //        SSPCON2 Bits
5111 
5112 extern __at(0x0FC5) __sfr SSPCON2;
5113 
5114 typedef union
5115   {
5116   struct
5117     {
5118     unsigned SEN                : 1;
5119     unsigned RSEN               : 1;
5120     unsigned PEN                : 1;
5121     unsigned RCEN               : 1;
5122     unsigned ACKEN              : 1;
5123     unsigned ACKDT              : 1;
5124     unsigned ACKSTAT            : 1;
5125     unsigned GCEN               : 1;
5126     };
5127 
5128   struct
5129     {
5130     unsigned                    : 1;
5131     unsigned ADMSK1             : 1;
5132     unsigned ADMSK2             : 1;
5133     unsigned ADMSK3             : 1;
5134     unsigned ADMSK4             : 1;
5135     unsigned ADMSK5             : 1;
5136     unsigned                    : 1;
5137     unsigned                    : 1;
5138     };
5139   } __SSPCON2bits_t;
5140 
5141 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;
5142 
5143 #define _SSPCON2_SEN            0x01
5144 #define _SSPCON2_RSEN           0x02
5145 #define _SSPCON2_ADMSK1         0x02
5146 #define _SSPCON2_PEN            0x04
5147 #define _SSPCON2_ADMSK2         0x04
5148 #define _SSPCON2_RCEN           0x08
5149 #define _SSPCON2_ADMSK3         0x08
5150 #define _SSPCON2_ACKEN          0x10
5151 #define _SSPCON2_ADMSK4         0x10
5152 #define _SSPCON2_ACKDT          0x20
5153 #define _SSPCON2_ADMSK5         0x20
5154 #define _SSPCON2_ACKSTAT        0x40
5155 #define _SSPCON2_GCEN           0x80
5156 
5157 //==============================================================================
5158 
5159 
5160 //==============================================================================
5161 //        SSP1CON1 Bits
5162 
5163 extern __at(0x0FC6) __sfr SSP1CON1;
5164 
5165 typedef union
5166   {
5167   struct
5168     {
5169     unsigned SSPM0              : 1;
5170     unsigned SSPM1              : 1;
5171     unsigned SSPM2              : 1;
5172     unsigned SSPM3              : 1;
5173     unsigned CKP                : 1;
5174     unsigned SSPEN              : 1;
5175     unsigned SSPOV              : 1;
5176     unsigned WCOL               : 1;
5177     };
5178 
5179   struct
5180     {
5181     unsigned SSPM               : 4;
5182     unsigned                    : 4;
5183     };
5184   } __SSP1CON1bits_t;
5185 
5186 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits;
5187 
5188 #define _SSPM0                  0x01
5189 #define _SSPM1                  0x02
5190 #define _SSPM2                  0x04
5191 #define _SSPM3                  0x08
5192 #define _CKP                    0x10
5193 #define _SSPEN                  0x20
5194 #define _SSPOV                  0x40
5195 #define _WCOL                   0x80
5196 
5197 //==============================================================================
5198 
5199 
5200 //==============================================================================
5201 //        SSPCON1 Bits
5202 
5203 extern __at(0x0FC6) __sfr SSPCON1;
5204 
5205 typedef union
5206   {
5207   struct
5208     {
5209     unsigned SSPM0              : 1;
5210     unsigned SSPM1              : 1;
5211     unsigned SSPM2              : 1;
5212     unsigned SSPM3              : 1;
5213     unsigned CKP                : 1;
5214     unsigned SSPEN              : 1;
5215     unsigned SSPOV              : 1;
5216     unsigned WCOL               : 1;
5217     };
5218 
5219   struct
5220     {
5221     unsigned SSPM               : 4;
5222     unsigned                    : 4;
5223     };
5224   } __SSPCON1bits_t;
5225 
5226 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;
5227 
5228 #define _SSPCON1_SSPM0          0x01
5229 #define _SSPCON1_SSPM1          0x02
5230 #define _SSPCON1_SSPM2          0x04
5231 #define _SSPCON1_SSPM3          0x08
5232 #define _SSPCON1_CKP            0x10
5233 #define _SSPCON1_SSPEN          0x20
5234 #define _SSPCON1_SSPOV          0x40
5235 #define _SSPCON1_WCOL           0x80
5236 
5237 //==============================================================================
5238 
5239 
5240 //==============================================================================
5241 //        SSP1STAT Bits
5242 
5243 extern __at(0x0FC7) __sfr SSP1STAT;
5244 
5245 typedef union
5246   {
5247   struct
5248     {
5249     unsigned BF                 : 1;
5250     unsigned UA                 : 1;
5251     unsigned R_NOT_W            : 1;
5252     unsigned S                  : 1;
5253     unsigned P                  : 1;
5254     unsigned D_NOT_A            : 1;
5255     unsigned CKE                : 1;
5256     unsigned SMP                : 1;
5257     };
5258 
5259   struct
5260     {
5261     unsigned                    : 1;
5262     unsigned                    : 1;
5263     unsigned R_W                : 1;
5264     unsigned I2C_START          : 1;
5265     unsigned I2C_STOP           : 1;
5266     unsigned D_A                : 1;
5267     unsigned                    : 1;
5268     unsigned                    : 1;
5269     };
5270 
5271   struct
5272     {
5273     unsigned                    : 1;
5274     unsigned                    : 1;
5275     unsigned I2C_READ           : 1;
5276     unsigned                    : 1;
5277     unsigned                    : 1;
5278     unsigned I2C_DAT            : 1;
5279     unsigned                    : 1;
5280     unsigned                    : 1;
5281     };
5282 
5283   struct
5284     {
5285     unsigned                    : 1;
5286     unsigned                    : 1;
5287     unsigned NOT_W              : 1;
5288     unsigned                    : 1;
5289     unsigned                    : 1;
5290     unsigned NOT_A              : 1;
5291     unsigned                    : 1;
5292     unsigned                    : 1;
5293     };
5294 
5295   struct
5296     {
5297     unsigned                    : 1;
5298     unsigned                    : 1;
5299     unsigned NOT_WRITE          : 1;
5300     unsigned                    : 1;
5301     unsigned                    : 1;
5302     unsigned NOT_ADDRESS        : 1;
5303     unsigned                    : 1;
5304     unsigned                    : 1;
5305     };
5306 
5307   struct
5308     {
5309     unsigned                    : 1;
5310     unsigned                    : 1;
5311     unsigned READ_WRITE         : 1;
5312     unsigned                    : 1;
5313     unsigned                    : 1;
5314     unsigned DATA_ADDRESS       : 1;
5315     unsigned                    : 1;
5316     unsigned                    : 1;
5317     };
5318 
5319   struct
5320     {
5321     unsigned                    : 1;
5322     unsigned                    : 1;
5323     unsigned R                  : 1;
5324     unsigned                    : 1;
5325     unsigned                    : 1;
5326     unsigned D                  : 1;
5327     unsigned                    : 1;
5328     unsigned                    : 1;
5329     };
5330   } __SSP1STATbits_t;
5331 
5332 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits;
5333 
5334 #define _BF                     0x01
5335 #define _UA                     0x02
5336 #define _R_NOT_W                0x04
5337 #define _R_W                    0x04
5338 #define _I2C_READ               0x04
5339 #define _NOT_W                  0x04
5340 #define _NOT_WRITE              0x04
5341 #define _READ_WRITE             0x04
5342 #define _R                      0x04
5343 #define _S                      0x08
5344 #define _I2C_START              0x08
5345 #define _P                      0x10
5346 #define _I2C_STOP               0x10
5347 #define _D_NOT_A                0x20
5348 #define _D_A                    0x20
5349 #define _I2C_DAT                0x20
5350 #define _NOT_A                  0x20
5351 #define _NOT_ADDRESS            0x20
5352 #define _DATA_ADDRESS           0x20
5353 #define _D                      0x20
5354 #define _CKE                    0x40
5355 #define _SMP                    0x80
5356 
5357 //==============================================================================
5358 
5359 
5360 //==============================================================================
5361 //        SSPSTAT Bits
5362 
5363 extern __at(0x0FC7) __sfr SSPSTAT;
5364 
5365 typedef union
5366   {
5367   struct
5368     {
5369     unsigned BF                 : 1;
5370     unsigned UA                 : 1;
5371     unsigned R_NOT_W            : 1;
5372     unsigned S                  : 1;
5373     unsigned P                  : 1;
5374     unsigned D_NOT_A            : 1;
5375     unsigned CKE                : 1;
5376     unsigned SMP                : 1;
5377     };
5378 
5379   struct
5380     {
5381     unsigned                    : 1;
5382     unsigned                    : 1;
5383     unsigned R_W                : 1;
5384     unsigned I2C_START          : 1;
5385     unsigned I2C_STOP           : 1;
5386     unsigned D_A                : 1;
5387     unsigned                    : 1;
5388     unsigned                    : 1;
5389     };
5390 
5391   struct
5392     {
5393     unsigned                    : 1;
5394     unsigned                    : 1;
5395     unsigned I2C_READ           : 1;
5396     unsigned                    : 1;
5397     unsigned                    : 1;
5398     unsigned I2C_DAT            : 1;
5399     unsigned                    : 1;
5400     unsigned                    : 1;
5401     };
5402 
5403   struct
5404     {
5405     unsigned                    : 1;
5406     unsigned                    : 1;
5407     unsigned NOT_W              : 1;
5408     unsigned                    : 1;
5409     unsigned                    : 1;
5410     unsigned NOT_A              : 1;
5411     unsigned                    : 1;
5412     unsigned                    : 1;
5413     };
5414 
5415   struct
5416     {
5417     unsigned                    : 1;
5418     unsigned                    : 1;
5419     unsigned NOT_WRITE          : 1;
5420     unsigned                    : 1;
5421     unsigned                    : 1;
5422     unsigned NOT_ADDRESS        : 1;
5423     unsigned                    : 1;
5424     unsigned                    : 1;
5425     };
5426 
5427   struct
5428     {
5429     unsigned                    : 1;
5430     unsigned                    : 1;
5431     unsigned READ_WRITE         : 1;
5432     unsigned                    : 1;
5433     unsigned                    : 1;
5434     unsigned DATA_ADDRESS       : 1;
5435     unsigned                    : 1;
5436     unsigned                    : 1;
5437     };
5438 
5439   struct
5440     {
5441     unsigned                    : 1;
5442     unsigned                    : 1;
5443     unsigned R                  : 1;
5444     unsigned                    : 1;
5445     unsigned                    : 1;
5446     unsigned D                  : 1;
5447     unsigned                    : 1;
5448     unsigned                    : 1;
5449     };
5450   } __SSPSTATbits_t;
5451 
5452 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;
5453 
5454 #define _SSPSTAT_BF             0x01
5455 #define _SSPSTAT_UA             0x02
5456 #define _SSPSTAT_R_NOT_W        0x04
5457 #define _SSPSTAT_R_W            0x04
5458 #define _SSPSTAT_I2C_READ       0x04
5459 #define _SSPSTAT_NOT_W          0x04
5460 #define _SSPSTAT_NOT_WRITE      0x04
5461 #define _SSPSTAT_READ_WRITE     0x04
5462 #define _SSPSTAT_R              0x04
5463 #define _SSPSTAT_S              0x08
5464 #define _SSPSTAT_I2C_START      0x08
5465 #define _SSPSTAT_P              0x10
5466 #define _SSPSTAT_I2C_STOP       0x10
5467 #define _SSPSTAT_D_NOT_A        0x20
5468 #define _SSPSTAT_D_A            0x20
5469 #define _SSPSTAT_I2C_DAT        0x20
5470 #define _SSPSTAT_NOT_A          0x20
5471 #define _SSPSTAT_NOT_ADDRESS    0x20
5472 #define _SSPSTAT_DATA_ADDRESS   0x20
5473 #define _SSPSTAT_D              0x20
5474 #define _SSPSTAT_CKE            0x40
5475 #define _SSPSTAT_SMP            0x80
5476 
5477 //==============================================================================
5478 
5479 extern __at(0x0FC8) __sfr SSP1ADD;
5480 extern __at(0x0FC8) __sfr SSPADD;
5481 extern __at(0x0FC9) __sfr SSP1BUF;
5482 extern __at(0x0FC9) __sfr SSPBUF;
5483 
5484 //==============================================================================
5485 //        T2CON Bits
5486 
5487 extern __at(0x0FCA) __sfr T2CON;
5488 
5489 typedef union
5490   {
5491   struct
5492     {
5493     unsigned T2CKPS0            : 1;
5494     unsigned T2CKPS1            : 1;
5495     unsigned TMR2ON             : 1;
5496     unsigned T2OUTPS0           : 1;
5497     unsigned T2OUTPS1           : 1;
5498     unsigned T2OUTPS2           : 1;
5499     unsigned T2OUTPS3           : 1;
5500     unsigned                    : 1;
5501     };
5502 
5503   struct
5504     {
5505     unsigned T2CKPS             : 2;
5506     unsigned                    : 6;
5507     };
5508 
5509   struct
5510     {
5511     unsigned                    : 3;
5512     unsigned T2OUTPS            : 4;
5513     unsigned                    : 1;
5514     };
5515   } __T2CONbits_t;
5516 
5517 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits;
5518 
5519 #define _T2CKPS0                0x01
5520 #define _T2CKPS1                0x02
5521 #define _TMR2ON                 0x04
5522 #define _T2OUTPS0               0x08
5523 #define _T2OUTPS1               0x10
5524 #define _T2OUTPS2               0x20
5525 #define _T2OUTPS3               0x40
5526 
5527 //==============================================================================
5528 
5529 extern __at(0x0FCB) __sfr PR2;
5530 extern __at(0x0FCC) __sfr TMR2;
5531 
5532 //==============================================================================
5533 //        T1CON Bits
5534 
5535 extern __at(0x0FCD) __sfr T1CON;
5536 
5537 typedef union
5538   {
5539   struct
5540     {
5541     unsigned TMR1ON             : 1;
5542     unsigned TMR1CS             : 1;
5543     unsigned NOT_T1SYNC         : 1;
5544     unsigned T1OSCEN            : 1;
5545     unsigned T1CKPS0            : 1;
5546     unsigned T1CKPS1            : 1;
5547     unsigned T1RUN              : 1;
5548     unsigned RD16               : 1;
5549     };
5550 
5551   struct
5552     {
5553     unsigned                    : 1;
5554     unsigned                    : 1;
5555     unsigned T1SYNC             : 1;
5556     unsigned                    : 1;
5557     unsigned                    : 1;
5558     unsigned                    : 1;
5559     unsigned                    : 1;
5560     unsigned                    : 1;
5561     };
5562 
5563   struct
5564     {
5565     unsigned                    : 1;
5566     unsigned                    : 1;
5567     unsigned T1INSYNC           : 1;
5568     unsigned                    : 1;
5569     unsigned                    : 1;
5570     unsigned                    : 1;
5571     unsigned                    : 1;
5572     unsigned                    : 1;
5573     };
5574 
5575   struct
5576     {
5577     unsigned                    : 4;
5578     unsigned T1CKPS             : 2;
5579     unsigned                    : 2;
5580     };
5581   } __T1CONbits_t;
5582 
5583 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;
5584 
5585 #define _TMR1ON                 0x01
5586 #define _TMR1CS                 0x02
5587 #define _NOT_T1SYNC             0x04
5588 #define _T1SYNC                 0x04
5589 #define _T1INSYNC               0x04
5590 #define _T1OSCEN                0x08
5591 #define _T1CKPS0                0x10
5592 #define _T1CKPS1                0x20
5593 #define _T1RUN                  0x40
5594 #define _RD16                   0x80
5595 
5596 //==============================================================================
5597 
5598 extern __at(0x0FCE) __sfr TMR1;
5599 extern __at(0x0FCE) __sfr TMR1L;
5600 extern __at(0x0FCF) __sfr TMR1H;
5601 
5602 //==============================================================================
5603 //        RCON Bits
5604 
5605 extern __at(0x0FD0) __sfr RCON;
5606 
5607 typedef union
5608   {
5609   struct
5610     {
5611     unsigned NOT_BOR            : 1;
5612     unsigned NOT_POR            : 1;
5613     unsigned NOT_PD             : 1;
5614     unsigned NOT_TO             : 1;
5615     unsigned NOT_RI             : 1;
5616     unsigned NOT_CM             : 1;
5617     unsigned                    : 1;
5618     unsigned IPEN               : 1;
5619     };
5620 
5621   struct
5622     {
5623     unsigned BOR                : 1;
5624     unsigned POR                : 1;
5625     unsigned PD                 : 1;
5626     unsigned TO                 : 1;
5627     unsigned RI                 : 1;
5628     unsigned CM                 : 1;
5629     unsigned                    : 1;
5630     unsigned                    : 1;
5631     };
5632   } __RCONbits_t;
5633 
5634 extern __at(0x0FD0) volatile __RCONbits_t RCONbits;
5635 
5636 #define _NOT_BOR                0x01
5637 #define _BOR                    0x01
5638 #define _NOT_POR                0x02
5639 #define _POR                    0x02
5640 #define _NOT_PD                 0x04
5641 #define _PD                     0x04
5642 #define _NOT_TO                 0x08
5643 #define _TO                     0x08
5644 #define _NOT_RI                 0x10
5645 #define _RI                     0x10
5646 #define _NOT_CM                 0x20
5647 #define _CM                     0x20
5648 #define _IPEN                   0x80
5649 
5650 //==============================================================================
5651 
5652 
5653 //==============================================================================
5654 //        WDTCON Bits
5655 
5656 extern __at(0x0FD1) __sfr WDTCON;
5657 
5658 typedef union
5659   {
5660   struct
5661     {
5662     unsigned SWDTEN             : 1;
5663     unsigned                    : 1;
5664     unsigned                    : 1;
5665     unsigned                    : 1;
5666     unsigned                    : 1;
5667     unsigned                    : 1;
5668     unsigned                    : 1;
5669     unsigned                    : 1;
5670     };
5671 
5672   struct
5673     {
5674     unsigned SWDTE              : 1;
5675     unsigned                    : 1;
5676     unsigned                    : 1;
5677     unsigned                    : 1;
5678     unsigned                    : 1;
5679     unsigned                    : 1;
5680     unsigned                    : 1;
5681     unsigned                    : 1;
5682     };
5683   } __WDTCONbits_t;
5684 
5685 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits;
5686 
5687 #define _SWDTEN                 0x01
5688 #define _SWDTE                  0x01
5689 
5690 //==============================================================================
5691 
5692 
5693 //==============================================================================
5694 //        ECON1 Bits
5695 
5696 extern __at(0x0FD2) __sfr ECON1;
5697 
5698 typedef struct
5699   {
5700   unsigned                      : 1;
5701   unsigned                      : 1;
5702   unsigned RXEN                 : 1;
5703   unsigned TXRTS                : 1;
5704   unsigned CSUMEN               : 1;
5705   unsigned DMAST                : 1;
5706   unsigned RXRST                : 1;
5707   unsigned TXRST                : 1;
5708   } __ECON1bits_t;
5709 
5710 extern __at(0x0FD2) volatile __ECON1bits_t ECON1bits;
5711 
5712 #define _RXEN                   0x04
5713 #define _TXRTS                  0x08
5714 #define _CSUMEN                 0x10
5715 #define _DMAST                  0x20
5716 #define _RXRST                  0x40
5717 #define _TXRST                  0x80
5718 
5719 //==============================================================================
5720 
5721 
5722 //==============================================================================
5723 //        OSCCON Bits
5724 
5725 extern __at(0x0FD3) __sfr OSCCON;
5726 
5727 typedef union
5728   {
5729   struct
5730     {
5731     unsigned SCS0               : 1;
5732     unsigned SCS1               : 1;
5733     unsigned                    : 1;
5734     unsigned OSTS               : 1;
5735     unsigned                    : 1;
5736     unsigned                    : 1;
5737     unsigned                    : 1;
5738     unsigned IDLEN              : 1;
5739     };
5740 
5741   struct
5742     {
5743     unsigned SCS                : 2;
5744     unsigned                    : 6;
5745     };
5746   } __OSCCONbits_t;
5747 
5748 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;
5749 
5750 #define _SCS0                   0x01
5751 #define _SCS1                   0x02
5752 #define _OSTS                   0x08
5753 #define _IDLEN                  0x80
5754 
5755 //==============================================================================
5756 
5757 
5758 //==============================================================================
5759 //        T0CON Bits
5760 
5761 extern __at(0x0FD5) __sfr T0CON;
5762 
5763 typedef union
5764   {
5765   struct
5766     {
5767     unsigned T0PS0              : 1;
5768     unsigned T0PS1              : 1;
5769     unsigned T0PS2              : 1;
5770     unsigned PSA                : 1;
5771     unsigned T0SE               : 1;
5772     unsigned T0CS               : 1;
5773     unsigned T08BIT             : 1;
5774     unsigned TMR0ON             : 1;
5775     };
5776 
5777   struct
5778     {
5779     unsigned T0PS               : 3;
5780     unsigned                    : 5;
5781     };
5782   } __T0CONbits_t;
5783 
5784 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;
5785 
5786 #define _T0PS0                  0x01
5787 #define _T0PS1                  0x02
5788 #define _T0PS2                  0x04
5789 #define _PSA                    0x08
5790 #define _T0SE                   0x10
5791 #define _T0CS                   0x20
5792 #define _T08BIT                 0x40
5793 #define _TMR0ON                 0x80
5794 
5795 //==============================================================================
5796 
5797 extern __at(0x0FD6) __sfr TMR0;
5798 extern __at(0x0FD6) __sfr TMR0L;
5799 extern __at(0x0FD7) __sfr TMR0H;
5800 
5801 //==============================================================================
5802 //        STATUS Bits
5803 
5804 extern __at(0x0FD8) __sfr STATUS;
5805 
5806 typedef struct
5807   {
5808   unsigned C                    : 1;
5809   unsigned DC                   : 1;
5810   unsigned Z                    : 1;
5811   unsigned OV                   : 1;
5812   unsigned N                    : 1;
5813   unsigned                      : 1;
5814   unsigned                      : 1;
5815   unsigned                      : 1;
5816   } __STATUSbits_t;
5817 
5818 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits;
5819 
5820 #define _C                      0x01
5821 #define _DC                     0x02
5822 #define _Z                      0x04
5823 #define _OV                     0x08
5824 #define _N                      0x10
5825 
5826 //==============================================================================
5827 
5828 extern __at(0x0FD9) __sfr FSR2L;
5829 extern __at(0x0FDA) __sfr FSR2H;
5830 extern __at(0x0FDB) __sfr PLUSW2;
5831 extern __at(0x0FDC) __sfr PREINC2;
5832 extern __at(0x0FDD) __sfr POSTDEC2;
5833 extern __at(0x0FDE) __sfr POSTINC2;
5834 extern __at(0x0FDF) __sfr INDF2;
5835 extern __at(0x0FE0) __sfr BSR;
5836 extern __at(0x0FE1) __sfr FSR1L;
5837 extern __at(0x0FE2) __sfr FSR1H;
5838 extern __at(0x0FE3) __sfr PLUSW1;
5839 extern __at(0x0FE4) __sfr PREINC1;
5840 extern __at(0x0FE5) __sfr POSTDEC1;
5841 extern __at(0x0FE6) __sfr POSTINC1;
5842 extern __at(0x0FE7) __sfr INDF1;
5843 extern __at(0x0FE8) __sfr WREG;
5844 extern __at(0x0FE9) __sfr FSR0L;
5845 extern __at(0x0FEA) __sfr FSR0H;
5846 extern __at(0x0FEB) __sfr PLUSW0;
5847 extern __at(0x0FEC) __sfr PREINC0;
5848 extern __at(0x0FED) __sfr POSTDEC0;
5849 extern __at(0x0FEE) __sfr POSTINC0;
5850 extern __at(0x0FEF) __sfr INDF0;
5851 
5852 //==============================================================================
5853 //        INTCON3 Bits
5854 
5855 extern __at(0x0FF0) __sfr INTCON3;
5856 
5857 typedef union
5858   {
5859   struct
5860     {
5861     unsigned INT1IF             : 1;
5862     unsigned INT2IF             : 1;
5863     unsigned INT3IF             : 1;
5864     unsigned INT1IE             : 1;
5865     unsigned INT2IE             : 1;
5866     unsigned INT3IE             : 1;
5867     unsigned INT1IP             : 1;
5868     unsigned INT2IP             : 1;
5869     };
5870 
5871   struct
5872     {
5873     unsigned INT1F              : 1;
5874     unsigned INT2F              : 1;
5875     unsigned INT3F              : 1;
5876     unsigned INT1E              : 1;
5877     unsigned INT2E              : 1;
5878     unsigned INT3E              : 1;
5879     unsigned INT1P              : 1;
5880     unsigned INT2P              : 1;
5881     };
5882   } __INTCON3bits_t;
5883 
5884 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;
5885 
5886 #define _INT1IF                 0x01
5887 #define _INT1F                  0x01
5888 #define _INT2IF                 0x02
5889 #define _INT2F                  0x02
5890 #define _INT3IF                 0x04
5891 #define _INT3F                  0x04
5892 #define _INT1IE                 0x08
5893 #define _INT1E                  0x08
5894 #define _INT2IE                 0x10
5895 #define _INT2E                  0x10
5896 #define _INT3IE                 0x20
5897 #define _INT3E                  0x20
5898 #define _INT1IP                 0x40
5899 #define _INT1P                  0x40
5900 #define _INT2IP                 0x80
5901 #define _INT2P                  0x80
5902 
5903 //==============================================================================
5904 
5905 
5906 //==============================================================================
5907 //        INTCON2 Bits
5908 
5909 extern __at(0x0FF1) __sfr INTCON2;
5910 
5911 typedef union
5912   {
5913   struct
5914     {
5915     unsigned RBIP               : 1;
5916     unsigned INT3IP             : 1;
5917     unsigned TMR0IP             : 1;
5918     unsigned INTEDG3            : 1;
5919     unsigned INTEDG2            : 1;
5920     unsigned INTEDG1            : 1;
5921     unsigned INTEDG0            : 1;
5922     unsigned NOT_RBPU           : 1;
5923     };
5924 
5925   struct
5926     {
5927     unsigned                    : 1;
5928     unsigned                    : 1;
5929     unsigned T0IP               : 1;
5930     unsigned                    : 1;
5931     unsigned                    : 1;
5932     unsigned                    : 1;
5933     unsigned                    : 1;
5934     unsigned RBPU               : 1;
5935     };
5936   } __INTCON2bits_t;
5937 
5938 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;
5939 
5940 #define _RBIP                   0x01
5941 #define _INT3IP                 0x02
5942 #define _TMR0IP                 0x04
5943 #define _T0IP                   0x04
5944 #define _INTEDG3                0x08
5945 #define _INTEDG2                0x10
5946 #define _INTEDG1                0x20
5947 #define _INTEDG0                0x40
5948 #define _NOT_RBPU               0x80
5949 #define _RBPU                   0x80
5950 
5951 //==============================================================================
5952 
5953 
5954 //==============================================================================
5955 //        INTCON Bits
5956 
5957 extern __at(0x0FF2) __sfr INTCON;
5958 
5959 typedef union
5960   {
5961   struct
5962     {
5963     unsigned RBIF               : 1;
5964     unsigned INT0IF             : 1;
5965     unsigned TMR0IF             : 1;
5966     unsigned RBIE               : 1;
5967     unsigned INT0IE             : 1;
5968     unsigned TMR0IE             : 1;
5969     unsigned PEIE_GIEL          : 1;
5970     unsigned GIE_GIEH           : 1;
5971     };
5972 
5973   struct
5974     {
5975     unsigned                    : 1;
5976     unsigned INT0F              : 1;
5977     unsigned T0IF               : 1;
5978     unsigned                    : 1;
5979     unsigned INT0E              : 1;
5980     unsigned T0IE               : 1;
5981     unsigned PEIE               : 1;
5982     unsigned GIE                : 1;
5983     };
5984 
5985   struct
5986     {
5987     unsigned                    : 1;
5988     unsigned                    : 1;
5989     unsigned                    : 1;
5990     unsigned                    : 1;
5991     unsigned                    : 1;
5992     unsigned                    : 1;
5993     unsigned GIEL               : 1;
5994     unsigned GIEH               : 1;
5995     };
5996   } __INTCONbits_t;
5997 
5998 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;
5999 
6000 #define _RBIF                   0x01
6001 #define _INT0IF                 0x02
6002 #define _INT0F                  0x02
6003 #define _TMR0IF                 0x04
6004 #define _T0IF                   0x04
6005 #define _RBIE                   0x08
6006 #define _INT0IE                 0x10
6007 #define _INT0E                  0x10
6008 #define _TMR0IE                 0x20
6009 #define _T0IE                   0x20
6010 #define _PEIE_GIEL              0x40
6011 #define _PEIE                   0x40
6012 #define _GIEL                   0x40
6013 #define _GIE_GIEH               0x80
6014 #define _GIE                    0x80
6015 #define _GIEH                   0x80
6016 
6017 //==============================================================================
6018 
6019 extern __at(0x0FF3) __sfr PROD;
6020 extern __at(0x0FF3) __sfr PRODL;
6021 extern __at(0x0FF4) __sfr PRODH;
6022 extern __at(0x0FF5) __sfr TABLAT;
6023 extern __at(0x0FF6) __sfr TBLPTR;
6024 extern __at(0x0FF6) __sfr TBLPTRL;
6025 extern __at(0x0FF7) __sfr TBLPTRH;
6026 extern __at(0x0FF8) __sfr TBLPTRU;
6027 extern __at(0x0FF9) __sfr PC;
6028 extern __at(0x0FF9) __sfr PCL;
6029 extern __at(0x0FFA) __sfr PCLATH;
6030 extern __at(0x0FFB) __sfr PCLATU;
6031 
6032 //==============================================================================
6033 //        STKPTR Bits
6034 
6035 extern __at(0x0FFC) __sfr STKPTR;
6036 
6037 typedef union
6038   {
6039   struct
6040     {
6041     unsigned STKPTR0            : 1;
6042     unsigned STKPTR1            : 1;
6043     unsigned STKPTR2            : 1;
6044     unsigned STKPTR3            : 1;
6045     unsigned STKPTR4            : 1;
6046     unsigned                    : 1;
6047     unsigned STKUNF             : 1;
6048     unsigned STKFUL             : 1;
6049     };
6050 
6051   struct
6052     {
6053     unsigned SP0                : 1;
6054     unsigned SP1                : 1;
6055     unsigned SP2                : 1;
6056     unsigned SP3                : 1;
6057     unsigned SP4                : 1;
6058     unsigned                    : 1;
6059     unsigned                    : 1;
6060     unsigned STKOVF             : 1;
6061     };
6062 
6063   struct
6064     {
6065     unsigned STKPTR             : 5;
6066     unsigned                    : 3;
6067     };
6068 
6069   struct
6070     {
6071     unsigned SP                 : 5;
6072     unsigned                    : 3;
6073     };
6074   } __STKPTRbits_t;
6075 
6076 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;
6077 
6078 #define _STKPTR0                0x01
6079 #define _SP0                    0x01
6080 #define _STKPTR1                0x02
6081 #define _SP1                    0x02
6082 #define _STKPTR2                0x04
6083 #define _SP2                    0x04
6084 #define _STKPTR3                0x08
6085 #define _SP3                    0x08
6086 #define _STKPTR4                0x10
6087 #define _SP4                    0x10
6088 #define _STKUNF                 0x40
6089 #define _STKFUL                 0x80
6090 #define _STKOVF                 0x80
6091 
6092 //==============================================================================
6093 
6094 extern __at(0x0FFD) __sfr TOS;
6095 extern __at(0x0FFD) __sfr TOSL;
6096 extern __at(0x0FFE) __sfr TOSH;
6097 extern __at(0x0FFF) __sfr TOSU;
6098 
6099 //==============================================================================
6100 //
6101 //        Configuration Addresses
6102 //
6103 //==============================================================================
6104 
6105 #define __CONFIG1L              0x00FFF8
6106 #define __CONFIG1H              0x00FFF9
6107 #define __CONFIG2L              0x00FFFA
6108 #define __CONFIG2H              0x00FFFB
6109 #define __CONFIG3L              0x00FFFC
6110 #define __CONFIG3H              0x00FFFD
6111 
6112 //==============================================================================
6113 
6114 #endif // #ifndef __PIC18F86J60_H__
6115