1 /*
2  * This declarations of the PIC18F23K20 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:26 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 __PIC18F23K20_H__
26 #define __PIC18F23K20_H__
27 
28 //==============================================================================
29 
30 //==============================================================================
31 //
32 //	Register Definitions
33 //
34 //==============================================================================
35 
36 
37 //==============================================================================
38 //        SSPMSK Bits
39 
40 extern __at(0x0F77) __sfr SSPMSK;
41 
42 typedef struct
43   {
44   unsigned MSK0                 : 1;
45   unsigned MSK1                 : 1;
46   unsigned MSK2                 : 1;
47   unsigned MSK3                 : 1;
48   unsigned MSK4                 : 1;
49   unsigned MSK5                 : 1;
50   unsigned MSK6                 : 1;
51   unsigned MSK7                 : 1;
52   } __SSPMSKbits_t;
53 
54 extern __at(0x0F77) volatile __SSPMSKbits_t SSPMSKbits;
55 
56 #define _MSK0                   0x01
57 #define _MSK1                   0x02
58 #define _MSK2                   0x04
59 #define _MSK3                   0x08
60 #define _MSK4                   0x10
61 #define _MSK5                   0x20
62 #define _MSK6                   0x40
63 #define _MSK7                   0x80
64 
65 //==============================================================================
66 
67 
68 //==============================================================================
69 //        SLRCON Bits
70 
71 extern __at(0x0F78) __sfr SLRCON;
72 
73 typedef struct
74   {
75   unsigned SLRA                 : 1;
76   unsigned SLRB                 : 1;
77   unsigned SLRC                 : 1;
78   unsigned                      : 1;
79   unsigned                      : 1;
80   unsigned                      : 1;
81   unsigned                      : 1;
82   unsigned                      : 1;
83   } __SLRCONbits_t;
84 
85 extern __at(0x0F78) volatile __SLRCONbits_t SLRCONbits;
86 
87 #define _SLRA                   0x01
88 #define _SLRB                   0x02
89 #define _SLRC                   0x04
90 
91 //==============================================================================
92 
93 
94 //==============================================================================
95 //        CM2CON1 Bits
96 
97 extern __at(0x0F79) __sfr CM2CON1;
98 
99 typedef struct
100   {
101   unsigned                      : 1;
102   unsigned                      : 1;
103   unsigned                      : 1;
104   unsigned                      : 1;
105   unsigned C2RSEL               : 1;
106   unsigned C1RSEL               : 1;
107   unsigned MC2OUT               : 1;
108   unsigned MC1OUT               : 1;
109   } __CM2CON1bits_t;
110 
111 extern __at(0x0F79) volatile __CM2CON1bits_t CM2CON1bits;
112 
113 #define _C2RSEL                 0x10
114 #define _C1RSEL                 0x20
115 #define _MC2OUT                 0x40
116 #define _MC1OUT                 0x80
117 
118 //==============================================================================
119 
120 
121 //==============================================================================
122 //        CM2CON0 Bits
123 
124 extern __at(0x0F7A) __sfr CM2CON0;
125 
126 typedef union
127   {
128   struct
129     {
130     unsigned C2CH0              : 1;
131     unsigned C2CH1              : 1;
132     unsigned C2R                : 1;
133     unsigned C2SP               : 1;
134     unsigned C2POL              : 1;
135     unsigned C2OE               : 1;
136     unsigned C2OUT              : 1;
137     unsigned C2ON               : 1;
138     };
139 
140   struct
141     {
142     unsigned C2CH               : 2;
143     unsigned                    : 6;
144     };
145   } __CM2CON0bits_t;
146 
147 extern __at(0x0F7A) volatile __CM2CON0bits_t CM2CON0bits;
148 
149 #define _C2CH0                  0x01
150 #define _C2CH1                  0x02
151 #define _C2R                    0x04
152 #define _C2SP                   0x08
153 #define _C2POL                  0x10
154 #define _C2OE                   0x20
155 #define _C2OUT                  0x40
156 #define _C2ON                   0x80
157 
158 //==============================================================================
159 
160 
161 //==============================================================================
162 //        CM1CON0 Bits
163 
164 extern __at(0x0F7B) __sfr CM1CON0;
165 
166 typedef union
167   {
168   struct
169     {
170     unsigned C1CH0              : 1;
171     unsigned C1CH1              : 1;
172     unsigned C1R                : 1;
173     unsigned C1SP               : 1;
174     unsigned C1POL              : 1;
175     unsigned C1OE               : 1;
176     unsigned C1OUT              : 1;
177     unsigned C1ON               : 1;
178     };
179 
180   struct
181     {
182     unsigned C1CH               : 2;
183     unsigned                    : 6;
184     };
185   } __CM1CON0bits_t;
186 
187 extern __at(0x0F7B) volatile __CM1CON0bits_t CM1CON0bits;
188 
189 #define _C1CH0                  0x01
190 #define _C1CH1                  0x02
191 #define _C1R                    0x04
192 #define _C1SP                   0x08
193 #define _C1POL                  0x10
194 #define _C1OE                   0x20
195 #define _C1OUT                  0x40
196 #define _C1ON                   0x80
197 
198 //==============================================================================
199 
200 
201 //==============================================================================
202 //        WPUB Bits
203 
204 extern __at(0x0F7C) __sfr WPUB;
205 
206 typedef struct
207   {
208   unsigned WPUB0                : 1;
209   unsigned WPUB1                : 1;
210   unsigned WPUB2                : 1;
211   unsigned WPUB3                : 1;
212   unsigned WPUB4                : 1;
213   unsigned WPUB5                : 1;
214   unsigned WPUB6                : 1;
215   unsigned WPUB7                : 1;
216   } __WPUBbits_t;
217 
218 extern __at(0x0F7C) volatile __WPUBbits_t WPUBbits;
219 
220 #define _WPUB0                  0x01
221 #define _WPUB1                  0x02
222 #define _WPUB2                  0x04
223 #define _WPUB3                  0x08
224 #define _WPUB4                  0x10
225 #define _WPUB5                  0x20
226 #define _WPUB6                  0x40
227 #define _WPUB7                  0x80
228 
229 //==============================================================================
230 
231 
232 //==============================================================================
233 //        IOCB Bits
234 
235 extern __at(0x0F7D) __sfr IOCB;
236 
237 typedef struct
238   {
239   unsigned                      : 1;
240   unsigned                      : 1;
241   unsigned                      : 1;
242   unsigned                      : 1;
243   unsigned IOCB4                : 1;
244   unsigned IOCB5                : 1;
245   unsigned IOCB6                : 1;
246   unsigned IOCB7                : 1;
247   } __IOCBbits_t;
248 
249 extern __at(0x0F7D) volatile __IOCBbits_t IOCBbits;
250 
251 #define _IOCB4                  0x10
252 #define _IOCB5                  0x20
253 #define _IOCB6                  0x40
254 #define _IOCB7                  0x80
255 
256 //==============================================================================
257 
258 
259 //==============================================================================
260 //        ANSEL Bits
261 
262 extern __at(0x0F7E) __sfr ANSEL;
263 
264 typedef union
265   {
266   struct
267     {
268     unsigned ANS0               : 1;
269     unsigned ANS1               : 1;
270     unsigned ANS2               : 1;
271     unsigned ANS3               : 1;
272     unsigned ANS4               : 1;
273     unsigned                    : 1;
274     unsigned                    : 1;
275     unsigned                    : 1;
276     };
277 
278   struct
279     {
280     unsigned ANS                : 5;
281     unsigned                    : 3;
282     };
283   } __ANSELbits_t;
284 
285 extern __at(0x0F7E) volatile __ANSELbits_t ANSELbits;
286 
287 #define _ANS0                   0x01
288 #define _ANS1                   0x02
289 #define _ANS2                   0x04
290 #define _ANS3                   0x08
291 #define _ANS4                   0x10
292 
293 //==============================================================================
294 
295 
296 //==============================================================================
297 //        ANSELH Bits
298 
299 extern __at(0x0F7F) __sfr ANSELH;
300 
301 typedef struct
302   {
303   unsigned ANS8                 : 1;
304   unsigned ANS9                 : 1;
305   unsigned ANS10                : 1;
306   unsigned ANS11                : 1;
307   unsigned ANS12                : 1;
308   unsigned                      : 1;
309   unsigned                      : 1;
310   unsigned                      : 1;
311   } __ANSELHbits_t;
312 
313 extern __at(0x0F7F) volatile __ANSELHbits_t ANSELHbits;
314 
315 #define _ANS8                   0x01
316 #define _ANS9                   0x02
317 #define _ANS10                  0x04
318 #define _ANS11                  0x08
319 #define _ANS12                  0x10
320 
321 //==============================================================================
322 
323 
324 //==============================================================================
325 //        PORTA Bits
326 
327 extern __at(0x0F80) __sfr PORTA;
328 
329 typedef union
330   {
331   struct
332     {
333     unsigned RA0                : 1;
334     unsigned RA1                : 1;
335     unsigned RA2                : 1;
336     unsigned RA3                : 1;
337     unsigned RA4                : 1;
338     unsigned RA5                : 1;
339     unsigned RA6                : 1;
340     unsigned RA7                : 1;
341     };
342 
343   struct
344     {
345     unsigned AN0                : 1;
346     unsigned AN1                : 1;
347     unsigned AN2                : 1;
348     unsigned AN3                : 1;
349     unsigned C1OUT              : 1;
350     unsigned AN4                : 1;
351     unsigned                    : 1;
352     unsigned                    : 1;
353     };
354 
355   struct
356     {
357     unsigned C12IN0M            : 1;
358     unsigned C12IN1M            : 1;
359     unsigned C2INP              : 1;
360     unsigned C1INP              : 1;
361     unsigned T0CKI              : 1;
362     unsigned C2OUT              : 1;
363     unsigned                    : 1;
364     unsigned                    : 1;
365     };
366 
367   struct
368     {
369     unsigned C12IN0N            : 1;
370     unsigned C12IN1N            : 1;
371     unsigned VREFM              : 1;
372     unsigned VREFP              : 1;
373     unsigned                    : 1;
374     unsigned SS                 : 1;
375     unsigned                    : 1;
376     unsigned                    : 1;
377     };
378 
379   struct
380     {
381     unsigned                    : 1;
382     unsigned                    : 1;
383     unsigned VREFN              : 1;
384     unsigned                    : 1;
385     unsigned                    : 1;
386     unsigned NOT_SS             : 1;
387     unsigned                    : 1;
388     unsigned                    : 1;
389     };
390 
391   struct
392     {
393     unsigned                    : 1;
394     unsigned                    : 1;
395     unsigned CVREF              : 1;
396     unsigned                    : 1;
397     unsigned                    : 1;
398     unsigned LVDIN              : 1;
399     unsigned                    : 1;
400     unsigned                    : 1;
401     };
402 
403   struct
404     {
405     unsigned                    : 1;
406     unsigned                    : 1;
407     unsigned                    : 1;
408     unsigned                    : 1;
409     unsigned                    : 1;
410     unsigned HLVDIN             : 1;
411     unsigned                    : 1;
412     unsigned                    : 1;
413     };
414   } __PORTAbits_t;
415 
416 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;
417 
418 #define _PORTA_RA0              0x01
419 #define _PORTA_AN0              0x01
420 #define _PORTA_C12IN0M          0x01
421 #define _PORTA_C12IN0N          0x01
422 #define _PORTA_RA1              0x02
423 #define _PORTA_AN1              0x02
424 #define _PORTA_C12IN1M          0x02
425 #define _PORTA_C12IN1N          0x02
426 #define _PORTA_RA2              0x04
427 #define _PORTA_AN2              0x04
428 #define _PORTA_C2INP            0x04
429 #define _PORTA_VREFM            0x04
430 #define _PORTA_VREFN            0x04
431 #define _PORTA_CVREF            0x04
432 #define _PORTA_RA3              0x08
433 #define _PORTA_AN3              0x08
434 #define _PORTA_C1INP            0x08
435 #define _PORTA_VREFP            0x08
436 #define _PORTA_RA4              0x10
437 #define _PORTA_C1OUT            0x10
438 #define _PORTA_T0CKI            0x10
439 #define _PORTA_RA5              0x20
440 #define _PORTA_AN4              0x20
441 #define _PORTA_C2OUT            0x20
442 #define _PORTA_SS               0x20
443 #define _PORTA_NOT_SS           0x20
444 #define _PORTA_LVDIN            0x20
445 #define _PORTA_HLVDIN           0x20
446 #define _PORTA_RA6              0x40
447 #define _PORTA_RA7              0x80
448 
449 //==============================================================================
450 
451 
452 //==============================================================================
453 //        PORTB Bits
454 
455 extern __at(0x0F81) __sfr PORTB;
456 
457 typedef union
458   {
459   struct
460     {
461     unsigned RB0                : 1;
462     unsigned RB1                : 1;
463     unsigned RB2                : 1;
464     unsigned RB3                : 1;
465     unsigned RB4                : 1;
466     unsigned RB5                : 1;
467     unsigned RB6                : 1;
468     unsigned RB7                : 1;
469     };
470 
471   struct
472     {
473     unsigned INT0               : 1;
474     unsigned INT1               : 1;
475     unsigned INT2               : 1;
476     unsigned CCP2               : 1;
477     unsigned KBI0               : 1;
478     unsigned KBI1               : 1;
479     unsigned KBI2               : 1;
480     unsigned KBI3               : 1;
481     };
482 
483   struct
484     {
485     unsigned AN12               : 1;
486     unsigned AN10               : 1;
487     unsigned AN8                : 1;
488     unsigned AN9                : 1;
489     unsigned AN11               : 1;
490     unsigned PGM                : 1;
491     unsigned PGC                : 1;
492     unsigned PGD                : 1;
493     };
494 
495   struct
496     {
497     unsigned FLT0               : 1;
498     unsigned C12IN3M            : 1;
499     unsigned P1B                : 1;
500     unsigned C12IN2M            : 1;
501     unsigned P1D                : 1;
502     unsigned                    : 1;
503     unsigned                    : 1;
504     unsigned                    : 1;
505     };
506 
507   struct
508     {
509     unsigned                    : 1;
510     unsigned C12IN3N            : 1;
511     unsigned                    : 1;
512     unsigned C12IN2N            : 1;
513     unsigned                    : 1;
514     unsigned                    : 1;
515     unsigned                    : 1;
516     unsigned                    : 1;
517     };
518 
519   struct
520     {
521     unsigned                    : 1;
522     unsigned P1C                : 1;
523     unsigned                    : 1;
524     unsigned                    : 1;
525     unsigned                    : 1;
526     unsigned                    : 1;
527     unsigned                    : 1;
528     unsigned                    : 1;
529     };
530 
531   struct
532     {
533     unsigned INT                : 3;
534     unsigned                    : 5;
535     };
536 
537   struct
538     {
539     unsigned                    : 4;
540     unsigned KBI                : 4;
541     };
542   } __PORTBbits_t;
543 
544 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;
545 
546 #define _PORTB_RB0              0x01
547 #define _PORTB_INT0             0x01
548 #define _PORTB_AN12             0x01
549 #define _PORTB_FLT0             0x01
550 #define _PORTB_RB1              0x02
551 #define _PORTB_INT1             0x02
552 #define _PORTB_AN10             0x02
553 #define _PORTB_C12IN3M          0x02
554 #define _PORTB_C12IN3N          0x02
555 #define _PORTB_P1C              0x02
556 #define _PORTB_RB2              0x04
557 #define _PORTB_INT2             0x04
558 #define _PORTB_AN8              0x04
559 #define _PORTB_P1B              0x04
560 #define _PORTB_RB3              0x08
561 #define _PORTB_CCP2             0x08
562 #define _PORTB_AN9              0x08
563 #define _PORTB_C12IN2M          0x08
564 #define _PORTB_C12IN2N          0x08
565 #define _PORTB_RB4              0x10
566 #define _PORTB_KBI0             0x10
567 #define _PORTB_AN11             0x10
568 #define _PORTB_P1D              0x10
569 #define _PORTB_RB5              0x20
570 #define _PORTB_KBI1             0x20
571 #define _PORTB_PGM              0x20
572 #define _PORTB_RB6              0x40
573 #define _PORTB_KBI2             0x40
574 #define _PORTB_PGC              0x40
575 #define _PORTB_RB7              0x80
576 #define _PORTB_KBI3             0x80
577 #define _PORTB_PGD              0x80
578 
579 //==============================================================================
580 
581 
582 //==============================================================================
583 //        PORTC Bits
584 
585 extern __at(0x0F82) __sfr PORTC;
586 
587 typedef union
588   {
589   struct
590     {
591     unsigned RC0                : 1;
592     unsigned RC1                : 1;
593     unsigned RC2                : 1;
594     unsigned RC3                : 1;
595     unsigned RC4                : 1;
596     unsigned RC5                : 1;
597     unsigned RC6                : 1;
598     unsigned RC7                : 1;
599     };
600 
601   struct
602     {
603     unsigned T1OSO              : 1;
604     unsigned T1OSI              : 1;
605     unsigned CCP1               : 1;
606     unsigned SCK                : 1;
607     unsigned SDI                : 1;
608     unsigned SDO                : 1;
609     unsigned TX                 : 1;
610     unsigned RX                 : 1;
611     };
612 
613   struct
614     {
615     unsigned T13CKI             : 1;
616     unsigned CCP2               : 1;
617     unsigned P1A                : 1;
618     unsigned SCL                : 1;
619     unsigned SDA                : 1;
620     unsigned                    : 1;
621     unsigned CK                 : 1;
622     unsigned                    : 1;
623     };
624 
625   struct
626     {
627     unsigned T1CKI              : 1;
628     unsigned                    : 1;
629     unsigned                    : 1;
630     unsigned                    : 1;
631     unsigned                    : 1;
632     unsigned                    : 1;
633     unsigned                    : 1;
634     unsigned                    : 1;
635     };
636 
637   struct
638     {
639     unsigned T3CKI              : 1;
640     unsigned                    : 1;
641     unsigned                    : 1;
642     unsigned                    : 1;
643     unsigned                    : 1;
644     unsigned                    : 1;
645     unsigned                    : 1;
646     unsigned                    : 1;
647     };
648   } __PORTCbits_t;
649 
650 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;
651 
652 #define _PORTC_RC0              0x01
653 #define _PORTC_T1OSO            0x01
654 #define _PORTC_T13CKI           0x01
655 #define _PORTC_T1CKI            0x01
656 #define _PORTC_T3CKI            0x01
657 #define _PORTC_RC1              0x02
658 #define _PORTC_T1OSI            0x02
659 #define _PORTC_CCP2             0x02
660 #define _PORTC_RC2              0x04
661 #define _PORTC_CCP1             0x04
662 #define _PORTC_P1A              0x04
663 #define _PORTC_RC3              0x08
664 #define _PORTC_SCK              0x08
665 #define _PORTC_SCL              0x08
666 #define _PORTC_RC4              0x10
667 #define _PORTC_SDI              0x10
668 #define _PORTC_SDA              0x10
669 #define _PORTC_RC5              0x20
670 #define _PORTC_SDO              0x20
671 #define _PORTC_RC6              0x40
672 #define _PORTC_TX               0x40
673 #define _PORTC_CK               0x40
674 #define _PORTC_RC7              0x80
675 #define _PORTC_RX               0x80
676 
677 //==============================================================================
678 
679 
680 //==============================================================================
681 //        PORTE Bits
682 
683 extern __at(0x0F84) __sfr PORTE;
684 
685 typedef union
686   {
687   struct
688     {
689     unsigned                    : 1;
690     unsigned                    : 1;
691     unsigned                    : 1;
692     unsigned RE3                : 1;
693     unsigned                    : 1;
694     unsigned                    : 1;
695     unsigned                    : 1;
696     unsigned                    : 1;
697     };
698 
699   struct
700     {
701     unsigned                    : 1;
702     unsigned                    : 1;
703     unsigned                    : 1;
704     unsigned MCLR               : 1;
705     unsigned                    : 1;
706     unsigned                    : 1;
707     unsigned                    : 1;
708     unsigned                    : 1;
709     };
710 
711   struct
712     {
713     unsigned                    : 1;
714     unsigned                    : 1;
715     unsigned                    : 1;
716     unsigned NOT_MCLR           : 1;
717     unsigned                    : 1;
718     unsigned                    : 1;
719     unsigned                    : 1;
720     unsigned                    : 1;
721     };
722 
723   struct
724     {
725     unsigned                    : 1;
726     unsigned                    : 1;
727     unsigned                    : 1;
728     unsigned VPP                : 1;
729     unsigned                    : 1;
730     unsigned                    : 1;
731     unsigned                    : 1;
732     unsigned                    : 1;
733     };
734   } __PORTEbits_t;
735 
736 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;
737 
738 #define _RE3                    0x08
739 #define _MCLR                   0x08
740 #define _NOT_MCLR               0x08
741 #define _VPP                    0x08
742 
743 //==============================================================================
744 
745 
746 //==============================================================================
747 //        LATA Bits
748 
749 extern __at(0x0F89) __sfr LATA;
750 
751 typedef struct
752   {
753   unsigned LATA0                : 1;
754   unsigned LATA1                : 1;
755   unsigned LATA2                : 1;
756   unsigned LATA3                : 1;
757   unsigned LATA4                : 1;
758   unsigned LATA5                : 1;
759   unsigned LATA6                : 1;
760   unsigned LATA7                : 1;
761   } __LATAbits_t;
762 
763 extern __at(0x0F89) volatile __LATAbits_t LATAbits;
764 
765 #define _LATA0                  0x01
766 #define _LATA1                  0x02
767 #define _LATA2                  0x04
768 #define _LATA3                  0x08
769 #define _LATA4                  0x10
770 #define _LATA5                  0x20
771 #define _LATA6                  0x40
772 #define _LATA7                  0x80
773 
774 //==============================================================================
775 
776 
777 //==============================================================================
778 //        LATB Bits
779 
780 extern __at(0x0F8A) __sfr LATB;
781 
782 typedef struct
783   {
784   unsigned LATB0                : 1;
785   unsigned LATB1                : 1;
786   unsigned LATB2                : 1;
787   unsigned LATB3                : 1;
788   unsigned LATB4                : 1;
789   unsigned LATB5                : 1;
790   unsigned LATB6                : 1;
791   unsigned LATB7                : 1;
792   } __LATBbits_t;
793 
794 extern __at(0x0F8A) volatile __LATBbits_t LATBbits;
795 
796 #define _LATB0                  0x01
797 #define _LATB1                  0x02
798 #define _LATB2                  0x04
799 #define _LATB3                  0x08
800 #define _LATB4                  0x10
801 #define _LATB5                  0x20
802 #define _LATB6                  0x40
803 #define _LATB7                  0x80
804 
805 //==============================================================================
806 
807 
808 //==============================================================================
809 //        LATC Bits
810 
811 extern __at(0x0F8B) __sfr LATC;
812 
813 typedef struct
814   {
815   unsigned LATC0                : 1;
816   unsigned LATC1                : 1;
817   unsigned LATC2                : 1;
818   unsigned LATC3                : 1;
819   unsigned LATC4                : 1;
820   unsigned LATC5                : 1;
821   unsigned LATC6                : 1;
822   unsigned LATC7                : 1;
823   } __LATCbits_t;
824 
825 extern __at(0x0F8B) volatile __LATCbits_t LATCbits;
826 
827 #define _LATC0                  0x01
828 #define _LATC1                  0x02
829 #define _LATC2                  0x04
830 #define _LATC3                  0x08
831 #define _LATC4                  0x10
832 #define _LATC5                  0x20
833 #define _LATC6                  0x40
834 #define _LATC7                  0x80
835 
836 //==============================================================================
837 
838 
839 //==============================================================================
840 //        DDRA Bits
841 
842 extern __at(0x0F92) __sfr DDRA;
843 
844 typedef union
845   {
846   struct
847     {
848     unsigned TRISA0             : 1;
849     unsigned TRISA1             : 1;
850     unsigned TRISA2             : 1;
851     unsigned TRISA3             : 1;
852     unsigned TRISA4             : 1;
853     unsigned TRISA5             : 1;
854     unsigned TRISA6             : 1;
855     unsigned TRISA7             : 1;
856     };
857 
858   struct
859     {
860     unsigned RA0                : 1;
861     unsigned RA1                : 1;
862     unsigned RA2                : 1;
863     unsigned RA3                : 1;
864     unsigned RA4                : 1;
865     unsigned RA5                : 1;
866     unsigned RA6                : 1;
867     unsigned RA7                : 1;
868     };
869   } __DDRAbits_t;
870 
871 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits;
872 
873 #define _TRISA0                 0x01
874 #define _RA0                    0x01
875 #define _TRISA1                 0x02
876 #define _RA1                    0x02
877 #define _TRISA2                 0x04
878 #define _RA2                    0x04
879 #define _TRISA3                 0x08
880 #define _RA3                    0x08
881 #define _TRISA4                 0x10
882 #define _RA4                    0x10
883 #define _TRISA5                 0x20
884 #define _RA5                    0x20
885 #define _TRISA6                 0x40
886 #define _RA6                    0x40
887 #define _TRISA7                 0x80
888 #define _RA7                    0x80
889 
890 //==============================================================================
891 
892 
893 //==============================================================================
894 //        TRISA Bits
895 
896 extern __at(0x0F92) __sfr TRISA;
897 
898 typedef union
899   {
900   struct
901     {
902     unsigned TRISA0             : 1;
903     unsigned TRISA1             : 1;
904     unsigned TRISA2             : 1;
905     unsigned TRISA3             : 1;
906     unsigned TRISA4             : 1;
907     unsigned TRISA5             : 1;
908     unsigned TRISA6             : 1;
909     unsigned TRISA7             : 1;
910     };
911 
912   struct
913     {
914     unsigned RA0                : 1;
915     unsigned RA1                : 1;
916     unsigned RA2                : 1;
917     unsigned RA3                : 1;
918     unsigned RA4                : 1;
919     unsigned RA5                : 1;
920     unsigned RA6                : 1;
921     unsigned RA7                : 1;
922     };
923   } __TRISAbits_t;
924 
925 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;
926 
927 #define _TRISA_TRISA0           0x01
928 #define _TRISA_RA0              0x01
929 #define _TRISA_TRISA1           0x02
930 #define _TRISA_RA1              0x02
931 #define _TRISA_TRISA2           0x04
932 #define _TRISA_RA2              0x04
933 #define _TRISA_TRISA3           0x08
934 #define _TRISA_RA3              0x08
935 #define _TRISA_TRISA4           0x10
936 #define _TRISA_RA4              0x10
937 #define _TRISA_TRISA5           0x20
938 #define _TRISA_RA5              0x20
939 #define _TRISA_TRISA6           0x40
940 #define _TRISA_RA6              0x40
941 #define _TRISA_TRISA7           0x80
942 #define _TRISA_RA7              0x80
943 
944 //==============================================================================
945 
946 
947 //==============================================================================
948 //        DDRB Bits
949 
950 extern __at(0x0F93) __sfr DDRB;
951 
952 typedef union
953   {
954   struct
955     {
956     unsigned TRISB0             : 1;
957     unsigned TRISB1             : 1;
958     unsigned TRISB2             : 1;
959     unsigned TRISB3             : 1;
960     unsigned TRISB4             : 1;
961     unsigned TRISB5             : 1;
962     unsigned TRISB6             : 1;
963     unsigned TRISB7             : 1;
964     };
965 
966   struct
967     {
968     unsigned RB0                : 1;
969     unsigned RB1                : 1;
970     unsigned RB2                : 1;
971     unsigned RB3                : 1;
972     unsigned RB4                : 1;
973     unsigned RB5                : 1;
974     unsigned RB6                : 1;
975     unsigned RB7                : 1;
976     };
977   } __DDRBbits_t;
978 
979 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits;
980 
981 #define _TRISB0                 0x01
982 #define _RB0                    0x01
983 #define _TRISB1                 0x02
984 #define _RB1                    0x02
985 #define _TRISB2                 0x04
986 #define _RB2                    0x04
987 #define _TRISB3                 0x08
988 #define _RB3                    0x08
989 #define _TRISB4                 0x10
990 #define _RB4                    0x10
991 #define _TRISB5                 0x20
992 #define _RB5                    0x20
993 #define _TRISB6                 0x40
994 #define _RB6                    0x40
995 #define _TRISB7                 0x80
996 #define _RB7                    0x80
997 
998 //==============================================================================
999 
1000 
1001 //==============================================================================
1002 //        TRISB Bits
1003 
1004 extern __at(0x0F93) __sfr TRISB;
1005 
1006 typedef union
1007   {
1008   struct
1009     {
1010     unsigned TRISB0             : 1;
1011     unsigned TRISB1             : 1;
1012     unsigned TRISB2             : 1;
1013     unsigned TRISB3             : 1;
1014     unsigned TRISB4             : 1;
1015     unsigned TRISB5             : 1;
1016     unsigned TRISB6             : 1;
1017     unsigned TRISB7             : 1;
1018     };
1019 
1020   struct
1021     {
1022     unsigned RB0                : 1;
1023     unsigned RB1                : 1;
1024     unsigned RB2                : 1;
1025     unsigned RB3                : 1;
1026     unsigned RB4                : 1;
1027     unsigned RB5                : 1;
1028     unsigned RB6                : 1;
1029     unsigned RB7                : 1;
1030     };
1031   } __TRISBbits_t;
1032 
1033 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;
1034 
1035 #define _TRISB_TRISB0           0x01
1036 #define _TRISB_RB0              0x01
1037 #define _TRISB_TRISB1           0x02
1038 #define _TRISB_RB1              0x02
1039 #define _TRISB_TRISB2           0x04
1040 #define _TRISB_RB2              0x04
1041 #define _TRISB_TRISB3           0x08
1042 #define _TRISB_RB3              0x08
1043 #define _TRISB_TRISB4           0x10
1044 #define _TRISB_RB4              0x10
1045 #define _TRISB_TRISB5           0x20
1046 #define _TRISB_RB5              0x20
1047 #define _TRISB_TRISB6           0x40
1048 #define _TRISB_RB6              0x40
1049 #define _TRISB_TRISB7           0x80
1050 #define _TRISB_RB7              0x80
1051 
1052 //==============================================================================
1053 
1054 
1055 //==============================================================================
1056 //        DDRC Bits
1057 
1058 extern __at(0x0F94) __sfr DDRC;
1059 
1060 typedef union
1061   {
1062   struct
1063     {
1064     unsigned TRISC0             : 1;
1065     unsigned TRISC1             : 1;
1066     unsigned TRISC2             : 1;
1067     unsigned TRISC3             : 1;
1068     unsigned TRISC4             : 1;
1069     unsigned TRISC5             : 1;
1070     unsigned TRISC6             : 1;
1071     unsigned TRISC7             : 1;
1072     };
1073 
1074   struct
1075     {
1076     unsigned RC0                : 1;
1077     unsigned RC1                : 1;
1078     unsigned RC2                : 1;
1079     unsigned RC3                : 1;
1080     unsigned RC4                : 1;
1081     unsigned RC5                : 1;
1082     unsigned RC6                : 1;
1083     unsigned RC7                : 1;
1084     };
1085   } __DDRCbits_t;
1086 
1087 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits;
1088 
1089 #define _TRISC0                 0x01
1090 #define _RC0                    0x01
1091 #define _TRISC1                 0x02
1092 #define _RC1                    0x02
1093 #define _TRISC2                 0x04
1094 #define _RC2                    0x04
1095 #define _TRISC3                 0x08
1096 #define _RC3                    0x08
1097 #define _TRISC4                 0x10
1098 #define _RC4                    0x10
1099 #define _TRISC5                 0x20
1100 #define _RC5                    0x20
1101 #define _TRISC6                 0x40
1102 #define _RC6                    0x40
1103 #define _TRISC7                 0x80
1104 #define _RC7                    0x80
1105 
1106 //==============================================================================
1107 
1108 
1109 //==============================================================================
1110 //        TRISC Bits
1111 
1112 extern __at(0x0F94) __sfr TRISC;
1113 
1114 typedef union
1115   {
1116   struct
1117     {
1118     unsigned TRISC0             : 1;
1119     unsigned TRISC1             : 1;
1120     unsigned TRISC2             : 1;
1121     unsigned TRISC3             : 1;
1122     unsigned TRISC4             : 1;
1123     unsigned TRISC5             : 1;
1124     unsigned TRISC6             : 1;
1125     unsigned TRISC7             : 1;
1126     };
1127 
1128   struct
1129     {
1130     unsigned RC0                : 1;
1131     unsigned RC1                : 1;
1132     unsigned RC2                : 1;
1133     unsigned RC3                : 1;
1134     unsigned RC4                : 1;
1135     unsigned RC5                : 1;
1136     unsigned RC6                : 1;
1137     unsigned RC7                : 1;
1138     };
1139   } __TRISCbits_t;
1140 
1141 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;
1142 
1143 #define _TRISC_TRISC0           0x01
1144 #define _TRISC_RC0              0x01
1145 #define _TRISC_TRISC1           0x02
1146 #define _TRISC_RC1              0x02
1147 #define _TRISC_TRISC2           0x04
1148 #define _TRISC_RC2              0x04
1149 #define _TRISC_TRISC3           0x08
1150 #define _TRISC_RC3              0x08
1151 #define _TRISC_TRISC4           0x10
1152 #define _TRISC_RC4              0x10
1153 #define _TRISC_TRISC5           0x20
1154 #define _TRISC_RC5              0x20
1155 #define _TRISC_TRISC6           0x40
1156 #define _TRISC_RC6              0x40
1157 #define _TRISC_TRISC7           0x80
1158 #define _TRISC_RC7              0x80
1159 
1160 //==============================================================================
1161 
1162 
1163 //==============================================================================
1164 //        OSCTUNE Bits
1165 
1166 extern __at(0x0F9B) __sfr OSCTUNE;
1167 
1168 typedef union
1169   {
1170   struct
1171     {
1172     unsigned TUN0               : 1;
1173     unsigned TUN1               : 1;
1174     unsigned TUN2               : 1;
1175     unsigned TUN3               : 1;
1176     unsigned TUN4               : 1;
1177     unsigned TUN5               : 1;
1178     unsigned PLLEN              : 1;
1179     unsigned INTSRC             : 1;
1180     };
1181 
1182   struct
1183     {
1184     unsigned TUN                : 6;
1185     unsigned                    : 2;
1186     };
1187   } __OSCTUNEbits_t;
1188 
1189 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;
1190 
1191 #define _TUN0                   0x01
1192 #define _TUN1                   0x02
1193 #define _TUN2                   0x04
1194 #define _TUN3                   0x08
1195 #define _TUN4                   0x10
1196 #define _TUN5                   0x20
1197 #define _PLLEN                  0x40
1198 #define _INTSRC                 0x80
1199 
1200 //==============================================================================
1201 
1202 
1203 //==============================================================================
1204 //        PIE1 Bits
1205 
1206 extern __at(0x0F9D) __sfr PIE1;
1207 
1208 typedef struct
1209   {
1210   unsigned TMR1IE               : 1;
1211   unsigned TMR2IE               : 1;
1212   unsigned CCP1IE               : 1;
1213   unsigned SSPIE                : 1;
1214   unsigned TXIE                 : 1;
1215   unsigned RCIE                 : 1;
1216   unsigned ADIE                 : 1;
1217   unsigned                      : 1;
1218   } __PIE1bits_t;
1219 
1220 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;
1221 
1222 #define _TMR1IE                 0x01
1223 #define _TMR2IE                 0x02
1224 #define _CCP1IE                 0x04
1225 #define _SSPIE                  0x08
1226 #define _TXIE                   0x10
1227 #define _RCIE                   0x20
1228 #define _ADIE                   0x40
1229 
1230 //==============================================================================
1231 
1232 
1233 //==============================================================================
1234 //        PIR1 Bits
1235 
1236 extern __at(0x0F9E) __sfr PIR1;
1237 
1238 typedef struct
1239   {
1240   unsigned TMR1IF               : 1;
1241   unsigned TMR2IF               : 1;
1242   unsigned CCP1IF               : 1;
1243   unsigned SSPIF                : 1;
1244   unsigned TXIF                 : 1;
1245   unsigned RCIF                 : 1;
1246   unsigned ADIF                 : 1;
1247   unsigned                      : 1;
1248   } __PIR1bits_t;
1249 
1250 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;
1251 
1252 #define _TMR1IF                 0x01
1253 #define _TMR2IF                 0x02
1254 #define _CCP1IF                 0x04
1255 #define _SSPIF                  0x08
1256 #define _TXIF                   0x10
1257 #define _RCIF                   0x20
1258 #define _ADIF                   0x40
1259 
1260 //==============================================================================
1261 
1262 
1263 //==============================================================================
1264 //        IPR1 Bits
1265 
1266 extern __at(0x0F9F) __sfr IPR1;
1267 
1268 typedef struct
1269   {
1270   unsigned TMR1IP               : 1;
1271   unsigned TMR2IP               : 1;
1272   unsigned CCP1IP               : 1;
1273   unsigned SSPIP                : 1;
1274   unsigned TXIP                 : 1;
1275   unsigned RCIP                 : 1;
1276   unsigned ADIP                 : 1;
1277   unsigned                      : 1;
1278   } __IPR1bits_t;
1279 
1280 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;
1281 
1282 #define _TMR1IP                 0x01
1283 #define _TMR2IP                 0x02
1284 #define _CCP1IP                 0x04
1285 #define _SSPIP                  0x08
1286 #define _TXIP                   0x10
1287 #define _RCIP                   0x20
1288 #define _ADIP                   0x40
1289 
1290 //==============================================================================
1291 
1292 
1293 //==============================================================================
1294 //        PIE2 Bits
1295 
1296 extern __at(0x0FA0) __sfr PIE2;
1297 
1298 typedef union
1299   {
1300   struct
1301     {
1302     unsigned CCP2IE             : 1;
1303     unsigned TMR3IE             : 1;
1304     unsigned HLVDIE             : 1;
1305     unsigned BCLIE              : 1;
1306     unsigned EEIE               : 1;
1307     unsigned C2IE               : 1;
1308     unsigned C1IE               : 1;
1309     unsigned OSCFIE             : 1;
1310     };
1311 
1312   struct
1313     {
1314     unsigned                    : 1;
1315     unsigned                    : 1;
1316     unsigned LVDIE              : 1;
1317     unsigned                    : 1;
1318     unsigned                    : 1;
1319     unsigned                    : 1;
1320     unsigned                    : 1;
1321     unsigned                    : 1;
1322     };
1323   } __PIE2bits_t;
1324 
1325 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;
1326 
1327 #define _CCP2IE                 0x01
1328 #define _TMR3IE                 0x02
1329 #define _HLVDIE                 0x04
1330 #define _LVDIE                  0x04
1331 #define _BCLIE                  0x08
1332 #define _EEIE                   0x10
1333 #define _C2IE                   0x20
1334 #define _C1IE                   0x40
1335 #define _OSCFIE                 0x80
1336 
1337 //==============================================================================
1338 
1339 
1340 //==============================================================================
1341 //        PIR2 Bits
1342 
1343 extern __at(0x0FA1) __sfr PIR2;
1344 
1345 typedef union
1346   {
1347   struct
1348     {
1349     unsigned CCP2IF             : 1;
1350     unsigned TMR3IF             : 1;
1351     unsigned HLVDIF             : 1;
1352     unsigned BCLIF              : 1;
1353     unsigned EEIF               : 1;
1354     unsigned C2IF               : 1;
1355     unsigned C1IF               : 1;
1356     unsigned OSCFIF             : 1;
1357     };
1358 
1359   struct
1360     {
1361     unsigned                    : 1;
1362     unsigned                    : 1;
1363     unsigned LVDIF              : 1;
1364     unsigned                    : 1;
1365     unsigned                    : 1;
1366     unsigned                    : 1;
1367     unsigned                    : 1;
1368     unsigned                    : 1;
1369     };
1370   } __PIR2bits_t;
1371 
1372 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;
1373 
1374 #define _CCP2IF                 0x01
1375 #define _TMR3IF                 0x02
1376 #define _HLVDIF                 0x04
1377 #define _LVDIF                  0x04
1378 #define _BCLIF                  0x08
1379 #define _EEIF                   0x10
1380 #define _C2IF                   0x20
1381 #define _C1IF                   0x40
1382 #define _OSCFIF                 0x80
1383 
1384 //==============================================================================
1385 
1386 
1387 //==============================================================================
1388 //        IPR2 Bits
1389 
1390 extern __at(0x0FA2) __sfr IPR2;
1391 
1392 typedef union
1393   {
1394   struct
1395     {
1396     unsigned CCP2IP             : 1;
1397     unsigned TMR3IP             : 1;
1398     unsigned HLVDIP             : 1;
1399     unsigned BCLIP              : 1;
1400     unsigned EEIP               : 1;
1401     unsigned C2IP               : 1;
1402     unsigned C1IP               : 1;
1403     unsigned OSCFIP             : 1;
1404     };
1405 
1406   struct
1407     {
1408     unsigned                    : 1;
1409     unsigned                    : 1;
1410     unsigned LVDIP              : 1;
1411     unsigned                    : 1;
1412     unsigned                    : 1;
1413     unsigned                    : 1;
1414     unsigned                    : 1;
1415     unsigned                    : 1;
1416     };
1417   } __IPR2bits_t;
1418 
1419 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;
1420 
1421 #define _CCP2IP                 0x01
1422 #define _TMR3IP                 0x02
1423 #define _HLVDIP                 0x04
1424 #define _LVDIP                  0x04
1425 #define _BCLIP                  0x08
1426 #define _EEIP                   0x10
1427 #define _C2IP                   0x20
1428 #define _C1IP                   0x40
1429 #define _OSCFIP                 0x80
1430 
1431 //==============================================================================
1432 
1433 
1434 //==============================================================================
1435 //        EECON1 Bits
1436 
1437 extern __at(0x0FA6) __sfr EECON1;
1438 
1439 typedef struct
1440   {
1441   unsigned RD                   : 1;
1442   unsigned WR                   : 1;
1443   unsigned WREN                 : 1;
1444   unsigned WRERR                : 1;
1445   unsigned FREE                 : 1;
1446   unsigned                      : 1;
1447   unsigned CFGS                 : 1;
1448   unsigned EEPGD                : 1;
1449   } __EECON1bits_t;
1450 
1451 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits;
1452 
1453 #define _RD                     0x01
1454 #define _WR                     0x02
1455 #define _WREN                   0x04
1456 #define _WRERR                  0x08
1457 #define _FREE                   0x10
1458 #define _CFGS                   0x40
1459 #define _EEPGD                  0x80
1460 
1461 //==============================================================================
1462 
1463 extern __at(0x0FA7) __sfr EECON2;
1464 extern __at(0x0FA8) __sfr EEDATA;
1465 
1466 //==============================================================================
1467 //        EEADR Bits
1468 
1469 extern __at(0x0FA9) __sfr EEADR;
1470 
1471 typedef struct
1472   {
1473   unsigned EEADR0               : 1;
1474   unsigned EEADR1               : 1;
1475   unsigned EEADR2               : 1;
1476   unsigned EEADR3               : 1;
1477   unsigned EEADR4               : 1;
1478   unsigned EEADR5               : 1;
1479   unsigned EEADR6               : 1;
1480   unsigned EEADR7               : 1;
1481   } __EEADRbits_t;
1482 
1483 extern __at(0x0FA9) volatile __EEADRbits_t EEADRbits;
1484 
1485 #define _EEADR0                 0x01
1486 #define _EEADR1                 0x02
1487 #define _EEADR2                 0x04
1488 #define _EEADR3                 0x08
1489 #define _EEADR4                 0x10
1490 #define _EEADR5                 0x20
1491 #define _EEADR6                 0x40
1492 #define _EEADR7                 0x80
1493 
1494 //==============================================================================
1495 
1496 
1497 //==============================================================================
1498 //        RCSTA Bits
1499 
1500 extern __at(0x0FAB) __sfr RCSTA;
1501 
1502 typedef union
1503   {
1504   struct
1505     {
1506     unsigned RX9D               : 1;
1507     unsigned OERR               : 1;
1508     unsigned FERR               : 1;
1509     unsigned ADDEN              : 1;
1510     unsigned CREN               : 1;
1511     unsigned SREN               : 1;
1512     unsigned RX9                : 1;
1513     unsigned SPEN               : 1;
1514     };
1515 
1516   struct
1517     {
1518     unsigned                    : 1;
1519     unsigned                    : 1;
1520     unsigned                    : 1;
1521     unsigned ADEN               : 1;
1522     unsigned                    : 1;
1523     unsigned                    : 1;
1524     unsigned                    : 1;
1525     unsigned                    : 1;
1526     };
1527   } __RCSTAbits_t;
1528 
1529 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;
1530 
1531 #define _RX9D                   0x01
1532 #define _OERR                   0x02
1533 #define _FERR                   0x04
1534 #define _ADDEN                  0x08
1535 #define _ADEN                   0x08
1536 #define _CREN                   0x10
1537 #define _SREN                   0x20
1538 #define _RX9                    0x40
1539 #define _SPEN                   0x80
1540 
1541 //==============================================================================
1542 
1543 
1544 //==============================================================================
1545 //        TXSTA Bits
1546 
1547 extern __at(0x0FAC) __sfr TXSTA;
1548 
1549 typedef struct
1550   {
1551   unsigned TX9D                 : 1;
1552   unsigned TRMT                 : 1;
1553   unsigned BRGH                 : 1;
1554   unsigned SENDB                : 1;
1555   unsigned SYNC                 : 1;
1556   unsigned TXEN                 : 1;
1557   unsigned TX9                  : 1;
1558   unsigned CSRC                 : 1;
1559   } __TXSTAbits_t;
1560 
1561 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;
1562 
1563 #define _TX9D                   0x01
1564 #define _TRMT                   0x02
1565 #define _BRGH                   0x04
1566 #define _SENDB                  0x08
1567 #define _SYNC                   0x10
1568 #define _TXEN                   0x20
1569 #define _TX9                    0x40
1570 #define _CSRC                   0x80
1571 
1572 //==============================================================================
1573 
1574 extern __at(0x0FAD) __sfr TXREG;
1575 extern __at(0x0FAE) __sfr RCREG;
1576 extern __at(0x0FAF) __sfr SPBRG;
1577 extern __at(0x0FB0) __sfr SPBRGH;
1578 
1579 //==============================================================================
1580 //        T3CON Bits
1581 
1582 extern __at(0x0FB1) __sfr T3CON;
1583 
1584 typedef union
1585   {
1586   struct
1587     {
1588     unsigned TMR3ON             : 1;
1589     unsigned TMR3CS             : 1;
1590     unsigned NOT_T3SYNC         : 1;
1591     unsigned T3CCP1             : 1;
1592     unsigned T3CKPS0            : 1;
1593     unsigned T3CKPS1            : 1;
1594     unsigned T3CCP2             : 1;
1595     unsigned RD16               : 1;
1596     };
1597 
1598   struct
1599     {
1600     unsigned                    : 1;
1601     unsigned                    : 1;
1602     unsigned T3SYNC             : 1;
1603     unsigned                    : 1;
1604     unsigned                    : 1;
1605     unsigned                    : 1;
1606     unsigned                    : 1;
1607     unsigned                    : 1;
1608     };
1609 
1610   struct
1611     {
1612     unsigned                    : 4;
1613     unsigned T3CKPS             : 2;
1614     unsigned                    : 2;
1615     };
1616   } __T3CONbits_t;
1617 
1618 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits;
1619 
1620 #define _T3CON_TMR3ON           0x01
1621 #define _T3CON_TMR3CS           0x02
1622 #define _T3CON_NOT_T3SYNC       0x04
1623 #define _T3CON_T3SYNC           0x04
1624 #define _T3CON_T3CCP1           0x08
1625 #define _T3CON_T3CKPS0          0x10
1626 #define _T3CON_T3CKPS1          0x20
1627 #define _T3CON_T3CCP2           0x40
1628 #define _T3CON_RD16             0x80
1629 
1630 //==============================================================================
1631 
1632 extern __at(0x0FB2) __sfr TMR3;
1633 extern __at(0x0FB2) __sfr TMR3L;
1634 extern __at(0x0FB3) __sfr TMR3H;
1635 
1636 //==============================================================================
1637 //        CVRCON2 Bits
1638 
1639 extern __at(0x0FB4) __sfr CVRCON2;
1640 
1641 typedef struct
1642   {
1643   unsigned                      : 1;
1644   unsigned                      : 1;
1645   unsigned                      : 1;
1646   unsigned                      : 1;
1647   unsigned                      : 1;
1648   unsigned                      : 1;
1649   unsigned FVRST                : 1;
1650   unsigned FVREN                : 1;
1651   } __CVRCON2bits_t;
1652 
1653 extern __at(0x0FB4) volatile __CVRCON2bits_t CVRCON2bits;
1654 
1655 #define _FVRST                  0x40
1656 #define _FVREN                  0x80
1657 
1658 //==============================================================================
1659 
1660 
1661 //==============================================================================
1662 //        CVRCON Bits
1663 
1664 extern __at(0x0FB5) __sfr CVRCON;
1665 
1666 typedef union
1667   {
1668   struct
1669     {
1670     unsigned CVR0               : 1;
1671     unsigned CVR1               : 1;
1672     unsigned CVR2               : 1;
1673     unsigned CVR3               : 1;
1674     unsigned CVRSS              : 1;
1675     unsigned CVRR               : 1;
1676     unsigned CVROE              : 1;
1677     unsigned CVREN              : 1;
1678     };
1679 
1680   struct
1681     {
1682     unsigned CVR                : 4;
1683     unsigned                    : 4;
1684     };
1685   } __CVRCONbits_t;
1686 
1687 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits;
1688 
1689 #define _CVR0                   0x01
1690 #define _CVR1                   0x02
1691 #define _CVR2                   0x04
1692 #define _CVR3                   0x08
1693 #define _CVRSS                  0x10
1694 #define _CVRR                   0x20
1695 #define _CVROE                  0x40
1696 #define _CVREN                  0x80
1697 
1698 //==============================================================================
1699 
1700 
1701 //==============================================================================
1702 //        ECCP1AS Bits
1703 
1704 extern __at(0x0FB6) __sfr ECCP1AS;
1705 
1706 typedef union
1707   {
1708   struct
1709     {
1710     unsigned PSSBD0             : 1;
1711     unsigned PSSBD1             : 1;
1712     unsigned PSSAC0             : 1;
1713     unsigned PSSAC1             : 1;
1714     unsigned ECCPAS0            : 1;
1715     unsigned ECCPAS1            : 1;
1716     unsigned ECCPAS2            : 1;
1717     unsigned ECCPASE            : 1;
1718     };
1719 
1720   struct
1721     {
1722     unsigned PSSBD              : 2;
1723     unsigned                    : 6;
1724     };
1725 
1726   struct
1727     {
1728     unsigned                    : 2;
1729     unsigned PSSAC              : 2;
1730     unsigned                    : 4;
1731     };
1732 
1733   struct
1734     {
1735     unsigned                    : 4;
1736     unsigned ECCPAS             : 3;
1737     unsigned                    : 1;
1738     };
1739   } __ECCP1ASbits_t;
1740 
1741 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits;
1742 
1743 #define _PSSBD0                 0x01
1744 #define _PSSBD1                 0x02
1745 #define _PSSAC0                 0x04
1746 #define _PSSAC1                 0x08
1747 #define _ECCPAS0                0x10
1748 #define _ECCPAS1                0x20
1749 #define _ECCPAS2                0x40
1750 #define _ECCPASE                0x80
1751 
1752 //==============================================================================
1753 
1754 
1755 //==============================================================================
1756 //        PWM1CON Bits
1757 
1758 extern __at(0x0FB7) __sfr PWM1CON;
1759 
1760 typedef union
1761   {
1762   struct
1763     {
1764     unsigned PDC0               : 1;
1765     unsigned PDC1               : 1;
1766     unsigned PDC2               : 1;
1767     unsigned PDC3               : 1;
1768     unsigned PDC4               : 1;
1769     unsigned PDC5               : 1;
1770     unsigned PDC6               : 1;
1771     unsigned PRSEN              : 1;
1772     };
1773 
1774   struct
1775     {
1776     unsigned PDC                : 7;
1777     unsigned                    : 1;
1778     };
1779   } __PWM1CONbits_t;
1780 
1781 extern __at(0x0FB7) volatile __PWM1CONbits_t PWM1CONbits;
1782 
1783 #define _PDC0                   0x01
1784 #define _PDC1                   0x02
1785 #define _PDC2                   0x04
1786 #define _PDC3                   0x08
1787 #define _PDC4                   0x10
1788 #define _PDC5                   0x20
1789 #define _PDC6                   0x40
1790 #define _PRSEN                  0x80
1791 
1792 //==============================================================================
1793 
1794 
1795 //==============================================================================
1796 //        BAUDCON Bits
1797 
1798 extern __at(0x0FB8) __sfr BAUDCON;
1799 
1800 typedef union
1801   {
1802   struct
1803     {
1804     unsigned ABDEN              : 1;
1805     unsigned WUE                : 1;
1806     unsigned                    : 1;
1807     unsigned BRG16              : 1;
1808     unsigned CKTXP              : 1;
1809     unsigned DTRXP              : 1;
1810     unsigned RCIDL              : 1;
1811     unsigned ABDOVF             : 1;
1812     };
1813 
1814   struct
1815     {
1816     unsigned                    : 1;
1817     unsigned                    : 1;
1818     unsigned                    : 1;
1819     unsigned                    : 1;
1820     unsigned SCKP               : 1;
1821     unsigned                    : 1;
1822     unsigned                    : 1;
1823     unsigned                    : 1;
1824     };
1825   } __BAUDCONbits_t;
1826 
1827 extern __at(0x0FB8) volatile __BAUDCONbits_t BAUDCONbits;
1828 
1829 #define _ABDEN                  0x01
1830 #define _WUE                    0x02
1831 #define _BRG16                  0x08
1832 #define _CKTXP                  0x10
1833 #define _SCKP                   0x10
1834 #define _DTRXP                  0x20
1835 #define _RCIDL                  0x40
1836 #define _ABDOVF                 0x80
1837 
1838 //==============================================================================
1839 
1840 
1841 //==============================================================================
1842 //        BAUDCTL Bits
1843 
1844 extern __at(0x0FB8) __sfr BAUDCTL;
1845 
1846 typedef union
1847   {
1848   struct
1849     {
1850     unsigned ABDEN              : 1;
1851     unsigned WUE                : 1;
1852     unsigned                    : 1;
1853     unsigned BRG16              : 1;
1854     unsigned CKTXP              : 1;
1855     unsigned DTRXP              : 1;
1856     unsigned RCIDL              : 1;
1857     unsigned ABDOVF             : 1;
1858     };
1859 
1860   struct
1861     {
1862     unsigned                    : 1;
1863     unsigned                    : 1;
1864     unsigned                    : 1;
1865     unsigned                    : 1;
1866     unsigned SCKP               : 1;
1867     unsigned                    : 1;
1868     unsigned                    : 1;
1869     unsigned                    : 1;
1870     };
1871   } __BAUDCTLbits_t;
1872 
1873 extern __at(0x0FB8) volatile __BAUDCTLbits_t BAUDCTLbits;
1874 
1875 #define _BAUDCTL_ABDEN          0x01
1876 #define _BAUDCTL_WUE            0x02
1877 #define _BAUDCTL_BRG16          0x08
1878 #define _BAUDCTL_CKTXP          0x10
1879 #define _BAUDCTL_SCKP           0x10
1880 #define _BAUDCTL_DTRXP          0x20
1881 #define _BAUDCTL_RCIDL          0x40
1882 #define _BAUDCTL_ABDOVF         0x80
1883 
1884 //==============================================================================
1885 
1886 
1887 //==============================================================================
1888 //        PSTRCON Bits
1889 
1890 extern __at(0x0FB9) __sfr PSTRCON;
1891 
1892 typedef struct
1893   {
1894   unsigned STRA                 : 1;
1895   unsigned STRB                 : 1;
1896   unsigned STRC                 : 1;
1897   unsigned STRD                 : 1;
1898   unsigned STRSYNC              : 1;
1899   unsigned                      : 1;
1900   unsigned                      : 1;
1901   unsigned                      : 1;
1902   } __PSTRCONbits_t;
1903 
1904 extern __at(0x0FB9) volatile __PSTRCONbits_t PSTRCONbits;
1905 
1906 #define _STRA                   0x01
1907 #define _STRB                   0x02
1908 #define _STRC                   0x04
1909 #define _STRD                   0x08
1910 #define _STRSYNC                0x10
1911 
1912 //==============================================================================
1913 
1914 
1915 //==============================================================================
1916 //        CCP2CON Bits
1917 
1918 extern __at(0x0FBA) __sfr CCP2CON;
1919 
1920 typedef union
1921   {
1922   struct
1923     {
1924     unsigned CCP2M0             : 1;
1925     unsigned CCP2M1             : 1;
1926     unsigned CCP2M2             : 1;
1927     unsigned CCP2M3             : 1;
1928     unsigned DC2B0              : 1;
1929     unsigned DC2B1              : 1;
1930     unsigned                    : 1;
1931     unsigned                    : 1;
1932     };
1933 
1934   struct
1935     {
1936     unsigned CCP2M              : 4;
1937     unsigned                    : 4;
1938     };
1939 
1940   struct
1941     {
1942     unsigned                    : 4;
1943     unsigned DC2B               : 2;
1944     unsigned                    : 2;
1945     };
1946   } __CCP2CONbits_t;
1947 
1948 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits;
1949 
1950 #define _CCP2M0                 0x01
1951 #define _CCP2M1                 0x02
1952 #define _CCP2M2                 0x04
1953 #define _CCP2M3                 0x08
1954 #define _DC2B0                  0x10
1955 #define _DC2B1                  0x20
1956 
1957 //==============================================================================
1958 
1959 extern __at(0x0FBB) __sfr CCPR2;
1960 extern __at(0x0FBB) __sfr CCPR2L;
1961 extern __at(0x0FBC) __sfr CCPR2H;
1962 
1963 //==============================================================================
1964 //        CCP1CON Bits
1965 
1966 extern __at(0x0FBD) __sfr CCP1CON;
1967 
1968 typedef union
1969   {
1970   struct
1971     {
1972     unsigned CCP1M0             : 1;
1973     unsigned CCP1M1             : 1;
1974     unsigned CCP1M2             : 1;
1975     unsigned CCP1M3             : 1;
1976     unsigned DC1B0              : 1;
1977     unsigned DC1B1              : 1;
1978     unsigned P1M0               : 1;
1979     unsigned P1M1               : 1;
1980     };
1981 
1982   struct
1983     {
1984     unsigned CCP1M              : 4;
1985     unsigned                    : 4;
1986     };
1987 
1988   struct
1989     {
1990     unsigned                    : 4;
1991     unsigned DC1B               : 2;
1992     unsigned                    : 2;
1993     };
1994 
1995   struct
1996     {
1997     unsigned                    : 6;
1998     unsigned P1M                : 2;
1999     };
2000   } __CCP1CONbits_t;
2001 
2002 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits;
2003 
2004 #define _CCP1M0                 0x01
2005 #define _CCP1M1                 0x02
2006 #define _CCP1M2                 0x04
2007 #define _CCP1M3                 0x08
2008 #define _DC1B0                  0x10
2009 #define _DC1B1                  0x20
2010 #define _P1M0                   0x40
2011 #define _P1M1                   0x80
2012 
2013 //==============================================================================
2014 
2015 extern __at(0x0FBE) __sfr CCPR1;
2016 extern __at(0x0FBE) __sfr CCPR1L;
2017 extern __at(0x0FBF) __sfr CCPR1H;
2018 
2019 //==============================================================================
2020 //        ADCON2 Bits
2021 
2022 extern __at(0x0FC0) __sfr ADCON2;
2023 
2024 typedef union
2025   {
2026   struct
2027     {
2028     unsigned ADCS0              : 1;
2029     unsigned ADCS1              : 1;
2030     unsigned ADCS2              : 1;
2031     unsigned ACQT0              : 1;
2032     unsigned ACQT1              : 1;
2033     unsigned ACQT2              : 1;
2034     unsigned                    : 1;
2035     unsigned ADFM               : 1;
2036     };
2037 
2038   struct
2039     {
2040     unsigned ADCS               : 3;
2041     unsigned                    : 5;
2042     };
2043 
2044   struct
2045     {
2046     unsigned                    : 3;
2047     unsigned ACQT               : 3;
2048     unsigned                    : 2;
2049     };
2050   } __ADCON2bits_t;
2051 
2052 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits;
2053 
2054 #define _ADCS0                  0x01
2055 #define _ADCS1                  0x02
2056 #define _ADCS2                  0x04
2057 #define _ACQT0                  0x08
2058 #define _ACQT1                  0x10
2059 #define _ACQT2                  0x20
2060 #define _ADFM                   0x80
2061 
2062 //==============================================================================
2063 
2064 
2065 //==============================================================================
2066 //        ADCON1 Bits
2067 
2068 extern __at(0x0FC1) __sfr ADCON1;
2069 
2070 typedef union
2071   {
2072   struct
2073     {
2074     unsigned                    : 1;
2075     unsigned                    : 1;
2076     unsigned                    : 1;
2077     unsigned                    : 1;
2078     unsigned VCFG0              : 1;
2079     unsigned VCFG1              : 1;
2080     unsigned                    : 1;
2081     unsigned                    : 1;
2082     };
2083 
2084   struct
2085     {
2086     unsigned                    : 4;
2087     unsigned VCFG               : 2;
2088     unsigned                    : 2;
2089     };
2090   } __ADCON1bits_t;
2091 
2092 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;
2093 
2094 #define _VCFG0                  0x10
2095 #define _VCFG1                  0x20
2096 
2097 //==============================================================================
2098 
2099 
2100 //==============================================================================
2101 //        ADCON0 Bits
2102 
2103 extern __at(0x0FC2) __sfr ADCON0;
2104 
2105 typedef union
2106   {
2107   struct
2108     {
2109     unsigned ADON               : 1;
2110     unsigned GO_NOT_DONE        : 1;
2111     unsigned CHS0               : 1;
2112     unsigned CHS1               : 1;
2113     unsigned CHS2               : 1;
2114     unsigned CHS3               : 1;
2115     unsigned                    : 1;
2116     unsigned                    : 1;
2117     };
2118 
2119   struct
2120     {
2121     unsigned                    : 1;
2122     unsigned DONE               : 1;
2123     unsigned                    : 1;
2124     unsigned                    : 1;
2125     unsigned                    : 1;
2126     unsigned                    : 1;
2127     unsigned                    : 1;
2128     unsigned                    : 1;
2129     };
2130 
2131   struct
2132     {
2133     unsigned                    : 1;
2134     unsigned NOT_DONE           : 1;
2135     unsigned                    : 1;
2136     unsigned                    : 1;
2137     unsigned                    : 1;
2138     unsigned                    : 1;
2139     unsigned                    : 1;
2140     unsigned                    : 1;
2141     };
2142 
2143   struct
2144     {
2145     unsigned                    : 1;
2146     unsigned GO_DONE            : 1;
2147     unsigned                    : 1;
2148     unsigned                    : 1;
2149     unsigned                    : 1;
2150     unsigned                    : 1;
2151     unsigned                    : 1;
2152     unsigned                    : 1;
2153     };
2154 
2155   struct
2156     {
2157     unsigned                    : 1;
2158     unsigned GO                 : 1;
2159     unsigned                    : 1;
2160     unsigned                    : 1;
2161     unsigned                    : 1;
2162     unsigned                    : 1;
2163     unsigned                    : 1;
2164     unsigned                    : 1;
2165     };
2166 
2167   struct
2168     {
2169     unsigned                    : 2;
2170     unsigned CHS                : 4;
2171     unsigned                    : 2;
2172     };
2173   } __ADCON0bits_t;
2174 
2175 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;
2176 
2177 #define _ADON                   0x01
2178 #define _GO_NOT_DONE            0x02
2179 #define _DONE                   0x02
2180 #define _NOT_DONE               0x02
2181 #define _GO_DONE                0x02
2182 #define _GO                     0x02
2183 #define _CHS0                   0x04
2184 #define _CHS1                   0x08
2185 #define _CHS2                   0x10
2186 #define _CHS3                   0x20
2187 
2188 //==============================================================================
2189 
2190 extern __at(0x0FC3) __sfr ADRES;
2191 extern __at(0x0FC3) __sfr ADRESL;
2192 extern __at(0x0FC4) __sfr ADRESH;
2193 
2194 //==============================================================================
2195 //        SSPCON2 Bits
2196 
2197 extern __at(0x0FC5) __sfr SSPCON2;
2198 
2199 typedef struct
2200   {
2201   unsigned SEN                  : 1;
2202   unsigned RSEN                 : 1;
2203   unsigned PEN                  : 1;
2204   unsigned RCEN                 : 1;
2205   unsigned ACKEN                : 1;
2206   unsigned ACKDT                : 1;
2207   unsigned ACKSTAT              : 1;
2208   unsigned GCEN                 : 1;
2209   } __SSPCON2bits_t;
2210 
2211 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;
2212 
2213 #define _SEN                    0x01
2214 #define _RSEN                   0x02
2215 #define _PEN                    0x04
2216 #define _RCEN                   0x08
2217 #define _ACKEN                  0x10
2218 #define _ACKDT                  0x20
2219 #define _ACKSTAT                0x40
2220 #define _GCEN                   0x80
2221 
2222 //==============================================================================
2223 
2224 
2225 //==============================================================================
2226 //        SSPCON1 Bits
2227 
2228 extern __at(0x0FC6) __sfr SSPCON1;
2229 
2230 typedef union
2231   {
2232   struct
2233     {
2234     unsigned SSPM0              : 1;
2235     unsigned SSPM1              : 1;
2236     unsigned SSPM2              : 1;
2237     unsigned SSPM3              : 1;
2238     unsigned CKP                : 1;
2239     unsigned SSPEN              : 1;
2240     unsigned SSPOV              : 1;
2241     unsigned WCOL               : 1;
2242     };
2243 
2244   struct
2245     {
2246     unsigned SSPM               : 4;
2247     unsigned                    : 4;
2248     };
2249   } __SSPCON1bits_t;
2250 
2251 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;
2252 
2253 #define _SSPM0                  0x01
2254 #define _SSPM1                  0x02
2255 #define _SSPM2                  0x04
2256 #define _SSPM3                  0x08
2257 #define _CKP                    0x10
2258 #define _SSPEN                  0x20
2259 #define _SSPOV                  0x40
2260 #define _WCOL                   0x80
2261 
2262 //==============================================================================
2263 
2264 
2265 //==============================================================================
2266 //        SSPSTAT Bits
2267 
2268 extern __at(0x0FC7) __sfr SSPSTAT;
2269 
2270 typedef union
2271   {
2272   struct
2273     {
2274     unsigned BF                 : 1;
2275     unsigned UA                 : 1;
2276     unsigned R_NOT_W            : 1;
2277     unsigned S                  : 1;
2278     unsigned P                  : 1;
2279     unsigned D_NOT_A            : 1;
2280     unsigned CKE                : 1;
2281     unsigned SMP                : 1;
2282     };
2283 
2284   struct
2285     {
2286     unsigned                    : 1;
2287     unsigned                    : 1;
2288     unsigned R                  : 1;
2289     unsigned START              : 1;
2290     unsigned STOP               : 1;
2291     unsigned D                  : 1;
2292     unsigned                    : 1;
2293     unsigned                    : 1;
2294     };
2295 
2296   struct
2297     {
2298     unsigned                    : 1;
2299     unsigned                    : 1;
2300     unsigned NOT_W              : 1;
2301     unsigned                    : 1;
2302     unsigned                    : 1;
2303     unsigned NOT_A              : 1;
2304     unsigned                    : 1;
2305     unsigned                    : 1;
2306     };
2307 
2308   struct
2309     {
2310     unsigned                    : 1;
2311     unsigned                    : 1;
2312     unsigned R_W                : 1;
2313     unsigned                    : 1;
2314     unsigned                    : 1;
2315     unsigned D_A                : 1;
2316     unsigned                    : 1;
2317     unsigned                    : 1;
2318     };
2319 
2320   struct
2321     {
2322     unsigned                    : 1;
2323     unsigned                    : 1;
2324     unsigned NOT_WRITE          : 1;
2325     unsigned                    : 1;
2326     unsigned                    : 1;
2327     unsigned NOT_ADDRESS        : 1;
2328     unsigned                    : 1;
2329     unsigned                    : 1;
2330     };
2331   } __SSPSTATbits_t;
2332 
2333 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;
2334 
2335 #define _BF                     0x01
2336 #define _UA                     0x02
2337 #define _R_NOT_W                0x04
2338 #define _R                      0x04
2339 #define _NOT_W                  0x04
2340 #define _R_W                    0x04
2341 #define _NOT_WRITE              0x04
2342 #define _S                      0x08
2343 #define _START                  0x08
2344 #define _P                      0x10
2345 #define _STOP                   0x10
2346 #define _D_NOT_A                0x20
2347 #define _D                      0x20
2348 #define _NOT_A                  0x20
2349 #define _D_A                    0x20
2350 #define _NOT_ADDRESS            0x20
2351 #define _CKE                    0x40
2352 #define _SMP                    0x80
2353 
2354 //==============================================================================
2355 
2356 extern __at(0x0FC8) __sfr SSPADD;
2357 extern __at(0x0FC9) __sfr SSPBUF;
2358 
2359 //==============================================================================
2360 //        T2CON Bits
2361 
2362 extern __at(0x0FCA) __sfr T2CON;
2363 
2364 typedef union
2365   {
2366   struct
2367     {
2368     unsigned T2CKPS0            : 1;
2369     unsigned T2CKPS1            : 1;
2370     unsigned TMR2ON             : 1;
2371     unsigned T2OUTPS0           : 1;
2372     unsigned T2OUTPS1           : 1;
2373     unsigned T2OUTPS2           : 1;
2374     unsigned T2OUTPS3           : 1;
2375     unsigned                    : 1;
2376     };
2377 
2378   struct
2379     {
2380     unsigned T2CKPS             : 2;
2381     unsigned                    : 6;
2382     };
2383 
2384   struct
2385     {
2386     unsigned                    : 3;
2387     unsigned T2OUTPS            : 4;
2388     unsigned                    : 1;
2389     };
2390   } __T2CONbits_t;
2391 
2392 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits;
2393 
2394 #define _T2CKPS0                0x01
2395 #define _T2CKPS1                0x02
2396 #define _TMR2ON                 0x04
2397 #define _T2OUTPS0               0x08
2398 #define _T2OUTPS1               0x10
2399 #define _T2OUTPS2               0x20
2400 #define _T2OUTPS3               0x40
2401 
2402 //==============================================================================
2403 
2404 extern __at(0x0FCB) __sfr PR2;
2405 extern __at(0x0FCC) __sfr TMR2;
2406 
2407 //==============================================================================
2408 //        T1CON Bits
2409 
2410 extern __at(0x0FCD) __sfr T1CON;
2411 
2412 typedef union
2413   {
2414   struct
2415     {
2416     unsigned TMR1ON             : 1;
2417     unsigned TMR1CS             : 1;
2418     unsigned NOT_T1SYNC         : 1;
2419     unsigned T1OSCEN            : 1;
2420     unsigned T1CKPS0            : 1;
2421     unsigned T1CKPS1            : 1;
2422     unsigned T1RUN              : 1;
2423     unsigned RD16               : 1;
2424     };
2425 
2426   struct
2427     {
2428     unsigned                    : 1;
2429     unsigned                    : 1;
2430     unsigned T1SYNC             : 1;
2431     unsigned                    : 1;
2432     unsigned                    : 1;
2433     unsigned                    : 1;
2434     unsigned                    : 1;
2435     unsigned                    : 1;
2436     };
2437 
2438   struct
2439     {
2440     unsigned                    : 4;
2441     unsigned T1CKPS             : 2;
2442     unsigned                    : 2;
2443     };
2444   } __T1CONbits_t;
2445 
2446 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;
2447 
2448 #define _TMR1ON                 0x01
2449 #define _TMR1CS                 0x02
2450 #define _NOT_T1SYNC             0x04
2451 #define _T1SYNC                 0x04
2452 #define _T1OSCEN                0x08
2453 #define _T1CKPS0                0x10
2454 #define _T1CKPS1                0x20
2455 #define _T1RUN                  0x40
2456 #define _RD16                   0x80
2457 
2458 //==============================================================================
2459 
2460 extern __at(0x0FCE) __sfr TMR1;
2461 extern __at(0x0FCE) __sfr TMR1L;
2462 extern __at(0x0FCF) __sfr TMR1H;
2463 
2464 //==============================================================================
2465 //        RCON Bits
2466 
2467 extern __at(0x0FD0) __sfr RCON;
2468 
2469 typedef union
2470   {
2471   struct
2472     {
2473     unsigned NOT_BOR            : 1;
2474     unsigned NOT_POR            : 1;
2475     unsigned NOT_PD             : 1;
2476     unsigned NOT_TO             : 1;
2477     unsigned NOT_RI             : 1;
2478     unsigned                    : 1;
2479     unsigned SBOREN             : 1;
2480     unsigned IPEN               : 1;
2481     };
2482 
2483   struct
2484     {
2485     unsigned BOR                : 1;
2486     unsigned POR                : 1;
2487     unsigned PD                 : 1;
2488     unsigned TO                 : 1;
2489     unsigned RI                 : 1;
2490     unsigned                    : 1;
2491     unsigned                    : 1;
2492     unsigned                    : 1;
2493     };
2494   } __RCONbits_t;
2495 
2496 extern __at(0x0FD0) volatile __RCONbits_t RCONbits;
2497 
2498 #define _NOT_BOR                0x01
2499 #define _BOR                    0x01
2500 #define _NOT_POR                0x02
2501 #define _POR                    0x02
2502 #define _NOT_PD                 0x04
2503 #define _PD                     0x04
2504 #define _NOT_TO                 0x08
2505 #define _TO                     0x08
2506 #define _NOT_RI                 0x10
2507 #define _RI                     0x10
2508 #define _SBOREN                 0x40
2509 #define _IPEN                   0x80
2510 
2511 //==============================================================================
2512 
2513 
2514 //==============================================================================
2515 //        WDTCON Bits
2516 
2517 extern __at(0x0FD1) __sfr WDTCON;
2518 
2519 typedef union
2520   {
2521   struct
2522     {
2523     unsigned SWDTEN             : 1;
2524     unsigned                    : 1;
2525     unsigned                    : 1;
2526     unsigned                    : 1;
2527     unsigned                    : 1;
2528     unsigned                    : 1;
2529     unsigned                    : 1;
2530     unsigned                    : 1;
2531     };
2532 
2533   struct
2534     {
2535     unsigned SWDTE              : 1;
2536     unsigned                    : 1;
2537     unsigned                    : 1;
2538     unsigned                    : 1;
2539     unsigned                    : 1;
2540     unsigned                    : 1;
2541     unsigned                    : 1;
2542     unsigned                    : 1;
2543     };
2544   } __WDTCONbits_t;
2545 
2546 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits;
2547 
2548 #define _SWDTEN                 0x01
2549 #define _SWDTE                  0x01
2550 
2551 //==============================================================================
2552 
2553 
2554 //==============================================================================
2555 //        HLVDCON Bits
2556 
2557 extern __at(0x0FD2) __sfr HLVDCON;
2558 
2559 typedef union
2560   {
2561   struct
2562     {
2563     unsigned HLVDL0             : 1;
2564     unsigned HLVDL1             : 1;
2565     unsigned HLVDL2             : 1;
2566     unsigned HLVDL3             : 1;
2567     unsigned HLVDEN             : 1;
2568     unsigned IRVST              : 1;
2569     unsigned                    : 1;
2570     unsigned VDIRMAG            : 1;
2571     };
2572 
2573   struct
2574     {
2575     unsigned LVDL0              : 1;
2576     unsigned LVDL1              : 1;
2577     unsigned LVDL2              : 1;
2578     unsigned LVDL3              : 1;
2579     unsigned LVDEN              : 1;
2580     unsigned IVRST              : 1;
2581     unsigned                    : 1;
2582     unsigned                    : 1;
2583     };
2584 
2585   struct
2586     {
2587     unsigned LVV0               : 1;
2588     unsigned LVV1               : 1;
2589     unsigned LVV2               : 1;
2590     unsigned LVV3               : 1;
2591     unsigned                    : 1;
2592     unsigned BGST               : 1;
2593     unsigned                    : 1;
2594     unsigned                    : 1;
2595     };
2596 
2597   struct
2598     {
2599     unsigned LVDL               : 4;
2600     unsigned                    : 4;
2601     };
2602 
2603   struct
2604     {
2605     unsigned HLVDL              : 4;
2606     unsigned                    : 4;
2607     };
2608 
2609   struct
2610     {
2611     unsigned LVV                : 4;
2612     unsigned                    : 4;
2613     };
2614   } __HLVDCONbits_t;
2615 
2616 extern __at(0x0FD2) volatile __HLVDCONbits_t HLVDCONbits;
2617 
2618 #define _HLVDL0                 0x01
2619 #define _LVDL0                  0x01
2620 #define _LVV0                   0x01
2621 #define _HLVDL1                 0x02
2622 #define _LVDL1                  0x02
2623 #define _LVV1                   0x02
2624 #define _HLVDL2                 0x04
2625 #define _LVDL2                  0x04
2626 #define _LVV2                   0x04
2627 #define _HLVDL3                 0x08
2628 #define _LVDL3                  0x08
2629 #define _LVV3                   0x08
2630 #define _HLVDEN                 0x10
2631 #define _LVDEN                  0x10
2632 #define _IRVST                  0x20
2633 #define _IVRST                  0x20
2634 #define _BGST                   0x20
2635 #define _VDIRMAG                0x80
2636 
2637 //==============================================================================
2638 
2639 
2640 //==============================================================================
2641 //        LVDCON Bits
2642 
2643 extern __at(0x0FD2) __sfr LVDCON;
2644 
2645 typedef union
2646   {
2647   struct
2648     {
2649     unsigned HLVDL0             : 1;
2650     unsigned HLVDL1             : 1;
2651     unsigned HLVDL2             : 1;
2652     unsigned HLVDL3             : 1;
2653     unsigned HLVDEN             : 1;
2654     unsigned IRVST              : 1;
2655     unsigned                    : 1;
2656     unsigned VDIRMAG            : 1;
2657     };
2658 
2659   struct
2660     {
2661     unsigned LVDL0              : 1;
2662     unsigned LVDL1              : 1;
2663     unsigned LVDL2              : 1;
2664     unsigned LVDL3              : 1;
2665     unsigned LVDEN              : 1;
2666     unsigned IVRST              : 1;
2667     unsigned                    : 1;
2668     unsigned                    : 1;
2669     };
2670 
2671   struct
2672     {
2673     unsigned LVV0               : 1;
2674     unsigned LVV1               : 1;
2675     unsigned LVV2               : 1;
2676     unsigned LVV3               : 1;
2677     unsigned                    : 1;
2678     unsigned BGST               : 1;
2679     unsigned                    : 1;
2680     unsigned                    : 1;
2681     };
2682 
2683   struct
2684     {
2685     unsigned LVDL               : 4;
2686     unsigned                    : 4;
2687     };
2688 
2689   struct
2690     {
2691     unsigned HLVDL              : 4;
2692     unsigned                    : 4;
2693     };
2694 
2695   struct
2696     {
2697     unsigned LVV                : 4;
2698     unsigned                    : 4;
2699     };
2700   } __LVDCONbits_t;
2701 
2702 extern __at(0x0FD2) volatile __LVDCONbits_t LVDCONbits;
2703 
2704 #define _LVDCON_HLVDL0          0x01
2705 #define _LVDCON_LVDL0           0x01
2706 #define _LVDCON_LVV0            0x01
2707 #define _LVDCON_HLVDL1          0x02
2708 #define _LVDCON_LVDL1           0x02
2709 #define _LVDCON_LVV1            0x02
2710 #define _LVDCON_HLVDL2          0x04
2711 #define _LVDCON_LVDL2           0x04
2712 #define _LVDCON_LVV2            0x04
2713 #define _LVDCON_HLVDL3          0x08
2714 #define _LVDCON_LVDL3           0x08
2715 #define _LVDCON_LVV3            0x08
2716 #define _LVDCON_HLVDEN          0x10
2717 #define _LVDCON_LVDEN           0x10
2718 #define _LVDCON_IRVST           0x20
2719 #define _LVDCON_IVRST           0x20
2720 #define _LVDCON_BGST            0x20
2721 #define _LVDCON_VDIRMAG         0x80
2722 
2723 //==============================================================================
2724 
2725 
2726 //==============================================================================
2727 //        OSCCON Bits
2728 
2729 extern __at(0x0FD3) __sfr OSCCON;
2730 
2731 typedef union
2732   {
2733   struct
2734     {
2735     unsigned SCS0               : 1;
2736     unsigned SCS1               : 1;
2737     unsigned IOFS               : 1;
2738     unsigned OSTS               : 1;
2739     unsigned IRCF0              : 1;
2740     unsigned IRCF1              : 1;
2741     unsigned IRCF2              : 1;
2742     unsigned IDLEN              : 1;
2743     };
2744 
2745   struct
2746     {
2747     unsigned SCS                : 2;
2748     unsigned                    : 6;
2749     };
2750 
2751   struct
2752     {
2753     unsigned                    : 4;
2754     unsigned IRCF               : 3;
2755     unsigned                    : 1;
2756     };
2757   } __OSCCONbits_t;
2758 
2759 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;
2760 
2761 #define _SCS0                   0x01
2762 #define _SCS1                   0x02
2763 #define _IOFS                   0x04
2764 #define _OSTS                   0x08
2765 #define _IRCF0                  0x10
2766 #define _IRCF1                  0x20
2767 #define _IRCF2                  0x40
2768 #define _IDLEN                  0x80
2769 
2770 //==============================================================================
2771 
2772 
2773 //==============================================================================
2774 //        T0CON Bits
2775 
2776 extern __at(0x0FD5) __sfr T0CON;
2777 
2778 typedef union
2779   {
2780   struct
2781     {
2782     unsigned T0PS0              : 1;
2783     unsigned T0PS1              : 1;
2784     unsigned T0PS2              : 1;
2785     unsigned PSA                : 1;
2786     unsigned T0SE               : 1;
2787     unsigned T0CS               : 1;
2788     unsigned T08BIT             : 1;
2789     unsigned TMR0ON             : 1;
2790     };
2791 
2792   struct
2793     {
2794     unsigned T0PS               : 3;
2795     unsigned                    : 5;
2796     };
2797   } __T0CONbits_t;
2798 
2799 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;
2800 
2801 #define _T0PS0                  0x01
2802 #define _T0PS1                  0x02
2803 #define _T0PS2                  0x04
2804 #define _PSA                    0x08
2805 #define _T0SE                   0x10
2806 #define _T0CS                   0x20
2807 #define _T08BIT                 0x40
2808 #define _TMR0ON                 0x80
2809 
2810 //==============================================================================
2811 
2812 extern __at(0x0FD6) __sfr TMR0;
2813 extern __at(0x0FD6) __sfr TMR0L;
2814 extern __at(0x0FD7) __sfr TMR0H;
2815 
2816 //==============================================================================
2817 //        STATUS Bits
2818 
2819 extern __at(0x0FD8) __sfr STATUS;
2820 
2821 typedef struct
2822   {
2823   unsigned C                    : 1;
2824   unsigned DC                   : 1;
2825   unsigned Z                    : 1;
2826   unsigned OV                   : 1;
2827   unsigned N                    : 1;
2828   unsigned                      : 1;
2829   unsigned                      : 1;
2830   unsigned                      : 1;
2831   } __STATUSbits_t;
2832 
2833 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits;
2834 
2835 #define _C                      0x01
2836 #define _DC                     0x02
2837 #define _Z                      0x04
2838 #define _OV                     0x08
2839 #define _N                      0x10
2840 
2841 //==============================================================================
2842 
2843 extern __at(0x0FD9) __sfr FSR2L;
2844 extern __at(0x0FDA) __sfr FSR2H;
2845 extern __at(0x0FDB) __sfr PLUSW2;
2846 extern __at(0x0FDC) __sfr PREINC2;
2847 extern __at(0x0FDD) __sfr POSTDEC2;
2848 extern __at(0x0FDE) __sfr POSTINC2;
2849 extern __at(0x0FDF) __sfr INDF2;
2850 extern __at(0x0FE0) __sfr BSR;
2851 extern __at(0x0FE1) __sfr FSR1L;
2852 extern __at(0x0FE2) __sfr FSR1H;
2853 extern __at(0x0FE3) __sfr PLUSW1;
2854 extern __at(0x0FE4) __sfr PREINC1;
2855 extern __at(0x0FE5) __sfr POSTDEC1;
2856 extern __at(0x0FE6) __sfr POSTINC1;
2857 extern __at(0x0FE7) __sfr INDF1;
2858 extern __at(0x0FE8) __sfr WREG;
2859 extern __at(0x0FE9) __sfr FSR0L;
2860 extern __at(0x0FEA) __sfr FSR0H;
2861 extern __at(0x0FEB) __sfr PLUSW0;
2862 extern __at(0x0FEC) __sfr PREINC0;
2863 extern __at(0x0FED) __sfr POSTDEC0;
2864 extern __at(0x0FEE) __sfr POSTINC0;
2865 extern __at(0x0FEF) __sfr INDF0;
2866 
2867 //==============================================================================
2868 //        INTCON3 Bits
2869 
2870 extern __at(0x0FF0) __sfr INTCON3;
2871 
2872 typedef union
2873   {
2874   struct
2875     {
2876     unsigned INT1IF             : 1;
2877     unsigned INT2IF             : 1;
2878     unsigned                    : 1;
2879     unsigned INT1IE             : 1;
2880     unsigned INT2IE             : 1;
2881     unsigned                    : 1;
2882     unsigned INT1IP             : 1;
2883     unsigned INT2IP             : 1;
2884     };
2885 
2886   struct
2887     {
2888     unsigned INT1F              : 1;
2889     unsigned INT2F              : 1;
2890     unsigned                    : 1;
2891     unsigned INT1E              : 1;
2892     unsigned INT2E              : 1;
2893     unsigned                    : 1;
2894     unsigned INT1P              : 1;
2895     unsigned INT2P              : 1;
2896     };
2897   } __INTCON3bits_t;
2898 
2899 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;
2900 
2901 #define _INT1IF                 0x01
2902 #define _INT1F                  0x01
2903 #define _INT2IF                 0x02
2904 #define _INT2F                  0x02
2905 #define _INT1IE                 0x08
2906 #define _INT1E                  0x08
2907 #define _INT2IE                 0x10
2908 #define _INT2E                  0x10
2909 #define _INT1IP                 0x40
2910 #define _INT1P                  0x40
2911 #define _INT2IP                 0x80
2912 #define _INT2P                  0x80
2913 
2914 //==============================================================================
2915 
2916 
2917 //==============================================================================
2918 //        INTCON2 Bits
2919 
2920 extern __at(0x0FF1) __sfr INTCON2;
2921 
2922 typedef union
2923   {
2924   struct
2925     {
2926     unsigned RBIP               : 1;
2927     unsigned                    : 1;
2928     unsigned TMR0IP             : 1;
2929     unsigned                    : 1;
2930     unsigned INTEDG2            : 1;
2931     unsigned INTEDG1            : 1;
2932     unsigned INTEDG0            : 1;
2933     unsigned NOT_RBPU           : 1;
2934     };
2935 
2936   struct
2937     {
2938     unsigned                    : 1;
2939     unsigned                    : 1;
2940     unsigned                    : 1;
2941     unsigned                    : 1;
2942     unsigned                    : 1;
2943     unsigned                    : 1;
2944     unsigned                    : 1;
2945     unsigned RBPU               : 1;
2946     };
2947   } __INTCON2bits_t;
2948 
2949 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;
2950 
2951 #define _RBIP                   0x01
2952 #define _TMR0IP                 0x04
2953 #define _INTEDG2                0x10
2954 #define _INTEDG1                0x20
2955 #define _INTEDG0                0x40
2956 #define _NOT_RBPU               0x80
2957 #define _RBPU                   0x80
2958 
2959 //==============================================================================
2960 
2961 
2962 //==============================================================================
2963 //        INTCON Bits
2964 
2965 extern __at(0x0FF2) __sfr INTCON;
2966 
2967 typedef union
2968   {
2969   struct
2970     {
2971     unsigned RBIF               : 1;
2972     unsigned INT0IF             : 1;
2973     unsigned TMR0IF             : 1;
2974     unsigned RBIE               : 1;
2975     unsigned INT0IE             : 1;
2976     unsigned TMR0IE             : 1;
2977     unsigned PEIE_GIEL          : 1;
2978     unsigned GIE_GIEH           : 1;
2979     };
2980 
2981   struct
2982     {
2983     unsigned                    : 1;
2984     unsigned INT0F              : 1;
2985     unsigned T0IF               : 1;
2986     unsigned                    : 1;
2987     unsigned INT0E              : 1;
2988     unsigned T0IE               : 1;
2989     unsigned PEIE               : 1;
2990     unsigned GIE                : 1;
2991     };
2992 
2993   struct
2994     {
2995     unsigned                    : 1;
2996     unsigned                    : 1;
2997     unsigned                    : 1;
2998     unsigned                    : 1;
2999     unsigned                    : 1;
3000     unsigned                    : 1;
3001     unsigned GIEL               : 1;
3002     unsigned GIEH               : 1;
3003     };
3004   } __INTCONbits_t;
3005 
3006 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;
3007 
3008 #define _RBIF                   0x01
3009 #define _INT0IF                 0x02
3010 #define _INT0F                  0x02
3011 #define _TMR0IF                 0x04
3012 #define _T0IF                   0x04
3013 #define _RBIE                   0x08
3014 #define _INT0IE                 0x10
3015 #define _INT0E                  0x10
3016 #define _TMR0IE                 0x20
3017 #define _T0IE                   0x20
3018 #define _PEIE_GIEL              0x40
3019 #define _PEIE                   0x40
3020 #define _GIEL                   0x40
3021 #define _GIE_GIEH               0x80
3022 #define _GIE                    0x80
3023 #define _GIEH                   0x80
3024 
3025 //==============================================================================
3026 
3027 extern __at(0x0FF3) __sfr PROD;
3028 extern __at(0x0FF3) __sfr PRODL;
3029 extern __at(0x0FF4) __sfr PRODH;
3030 extern __at(0x0FF5) __sfr TABLAT;
3031 extern __at(0x0FF6) __sfr TBLPTR;
3032 extern __at(0x0FF6) __sfr TBLPTRL;
3033 extern __at(0x0FF7) __sfr TBLPTRH;
3034 extern __at(0x0FF8) __sfr TBLPTRU;
3035 extern __at(0x0FF9) __sfr PC;
3036 extern __at(0x0FF9) __sfr PCL;
3037 extern __at(0x0FFA) __sfr PCLATH;
3038 extern __at(0x0FFB) __sfr PCLATU;
3039 
3040 //==============================================================================
3041 //        STKPTR Bits
3042 
3043 extern __at(0x0FFC) __sfr STKPTR;
3044 
3045 typedef union
3046   {
3047   struct
3048     {
3049     unsigned SP0                : 1;
3050     unsigned SP1                : 1;
3051     unsigned SP2                : 1;
3052     unsigned SP3                : 1;
3053     unsigned SP4                : 1;
3054     unsigned                    : 1;
3055     unsigned STKUNF             : 1;
3056     unsigned STKFUL             : 1;
3057     };
3058 
3059   struct
3060     {
3061     unsigned                    : 1;
3062     unsigned                    : 1;
3063     unsigned                    : 1;
3064     unsigned                    : 1;
3065     unsigned                    : 1;
3066     unsigned                    : 1;
3067     unsigned                    : 1;
3068     unsigned STKOVF             : 1;
3069     };
3070 
3071   struct
3072     {
3073     unsigned SP                 : 5;
3074     unsigned                    : 3;
3075     };
3076   } __STKPTRbits_t;
3077 
3078 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;
3079 
3080 #define _SP0                    0x01
3081 #define _SP1                    0x02
3082 #define _SP2                    0x04
3083 #define _SP3                    0x08
3084 #define _SP4                    0x10
3085 #define _STKUNF                 0x40
3086 #define _STKFUL                 0x80
3087 #define _STKOVF                 0x80
3088 
3089 //==============================================================================
3090 
3091 extern __at(0x0FFD) __sfr TOS;
3092 extern __at(0x0FFD) __sfr TOSL;
3093 extern __at(0x0FFE) __sfr TOSH;
3094 extern __at(0x0FFF) __sfr TOSU;
3095 
3096 //==============================================================================
3097 //
3098 //        Configuration Bits
3099 //
3100 //==============================================================================
3101 
3102 #define __CONFIG1H              0x300001
3103 #define __CONFIG2L              0x300002
3104 #define __CONFIG2H              0x300003
3105 #define __CONFIG3H              0x300005
3106 #define __CONFIG4L              0x300006
3107 #define __CONFIG5L              0x300008
3108 #define __CONFIG5H              0x300009
3109 #define __CONFIG6L              0x30000A
3110 #define __CONFIG6H              0x30000B
3111 #define __CONFIG7L              0x30000C
3112 #define __CONFIG7H              0x30000D
3113 
3114 //----------------------------- CONFIG1H Options -------------------------------
3115 
3116 #define _FOSC_LP_1H             0xF0    // LP oscillator.
3117 #define _FOSC_XT_1H             0xF1    // XT oscillator.
3118 #define _FOSC_HS_1H             0xF2    // HS oscillator.
3119 #define _FOSC_RC_1H             0xF3    // External RC oscillator, CLKOUT function on RA6.
3120 #define _FOSC_EC_1H             0xF4    // EC oscillator, CLKOUT function on RA6.
3121 #define _FOSC_ECIO6_1H          0xF5    // EC oscillator, port function on RA6.
3122 #define _FOSC_HSPLL_1H          0xF6    // HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1).
3123 #define _FOSC_RCIO6_1H          0xF7    // External RC oscillator, port function on RA6.
3124 #define _FOSC_INTIO67_1H        0xF8    // Internal oscillator block, port function on RA6 and RA7.
3125 #define _FOSC_INTIO7_1H         0xF9    // Internal oscillator block, CLKOUT function on RA6, port function on RA7.
3126 #define _FCMEN_OFF_1H           0xBF    // Fail-Safe Clock Monitor disabled.
3127 #define _FCMEN_ON_1H            0xFF    // Fail-Safe Clock Monitor enabled.
3128 #define _IESO_OFF_1H            0x7F    // Oscillator Switchover mode disabled.
3129 #define _IESO_ON_1H             0xFF    // Oscillator Switchover mode enabled.
3130 
3131 //----------------------------- CONFIG2L Options -------------------------------
3132 
3133 #define _PWRT_ON_2L             0xFE    // PWRT enabled.
3134 #define _PWRT_OFF_2L            0xFF    // PWRT disabled.
3135 #define _BOREN_OFF_2L           0xF9    // Brown-out Reset disabled in hardware and software.
3136 #define _BOREN_ON_2L            0xFB    // Brown-out Reset enabled and controlled by software (SBOREN is enabled).
3137 #define _BOREN_NOSLP_2L         0xFD    // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled).
3138 #define _BOREN_SBORDIS_2L       0xFF    // Brown-out Reset enabled in hardware only (SBOREN is disabled).
3139 #define _BORV_30_2L             0xE7    // VBOR set to 3.0 V nominal.
3140 #define _BORV_27_2L             0xEF    // VBOR set to 2.7 V nominal.
3141 #define _BORV_22_2L             0xF7    // VBOR set to 2.2 V nominal.
3142 #define _BORV_18_2L             0xFF    // VBOR set to 1.8 V nominal.
3143 
3144 //----------------------------- CONFIG2H Options -------------------------------
3145 
3146 #define _WDTEN_OFF_2H           0xFE    // WDT is controlled by SWDTEN bit of the WDTCON register.
3147 #define _WDTEN_ON_2H            0xFF    // WDT is always enabled. SWDTEN bit has no effect.
3148 #define _WDTPS_1_2H             0xE1    // 1:1.
3149 #define _WDTPS_2_2H             0xE3    // 1:2.
3150 #define _WDTPS_4_2H             0xE5    // 1:4.
3151 #define _WDTPS_8_2H             0xE7    // 1:8.
3152 #define _WDTPS_16_2H            0xE9    // 1:16.
3153 #define _WDTPS_32_2H            0xEB    // 1:32.
3154 #define _WDTPS_64_2H            0xED    // 1:64.
3155 #define _WDTPS_128_2H           0xEF    // 1:128.
3156 #define _WDTPS_256_2H           0xF1    // 1:256.
3157 #define _WDTPS_512_2H           0xF3    // 1:512.
3158 #define _WDTPS_1024_2H          0xF5    // 1:1024.
3159 #define _WDTPS_2048_2H          0xF7    // 1:2048.
3160 #define _WDTPS_4096_2H          0xF9    // 1:4096.
3161 #define _WDTPS_8192_2H          0xFB    // 1:8192.
3162 #define _WDTPS_16384_2H         0xFD    // 1:16384.
3163 #define _WDTPS_32768_2H         0xFF    // 1:32768.
3164 
3165 //----------------------------- CONFIG3H Options -------------------------------
3166 
3167 #define _CCP2MX_PORTBE_3H       0xFE    // CCP2 input/output is multiplexed with RB3.
3168 #define _CCP2MX_PORTC_3H        0xFF    // CCP2 input/output is multiplexed with RC1.
3169 #define _PBADEN_OFF_3H          0xFD    // PORTB<4:0> pins are configured as digital I/O on Reset.
3170 #define _PBADEN_ON_3H           0xFF    // PORTB<4:0> pins are configured as analog input channels on Reset.
3171 #define _LPT1OSC_OFF_3H         0xFB    // Timer1 configured for higher power operation.
3172 #define _LPT1OSC_ON_3H          0xFF    // Timer1 configured for low-power operation.
3173 #define _HFOFST_OFF_3H          0xF7    // The system clock is held off until the HFINTOSC is stable.
3174 #define _HFOFST_ON_3H           0xFF    // HFINTOSC starts clocking the CPU without waiting for the oscillator to stablize.
3175 #define _MCLRE_OFF_3H           0x7F    // RE3 input pin enabled; MCLR disabled.
3176 #define _MCLRE_ON_3H            0xFF    // MCLR pin enabled; RE3 input pin disabled.
3177 
3178 //----------------------------- CONFIG4L Options -------------------------------
3179 
3180 #define _STVREN_OFF_4L          0xFE    // Stack full/underflow will not cause Reset.
3181 #define _STVREN_ON_4L           0xFF    // Stack full/underflow will cause Reset.
3182 #define _LVP_OFF_4L             0xFB    // Single-Supply ICSP disabled.
3183 #define _LVP_ON_4L              0xFF    // Single-Supply ICSP enabled.
3184 #define _XINST_OFF_4L           0xBF    // Instruction set extension and Indexed Addressing mode disabled (Legacy mode).
3185 #define _XINST_ON_4L            0xFF    // Instruction set extension and Indexed Addressing mode enabled.
3186 #define _DEBUG_ON_4L            0x7F    // Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug.
3187 #define _DEBUG_OFF_4L           0xFF    // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins.
3188 
3189 //----------------------------- CONFIG5L Options -------------------------------
3190 
3191 #define _CP0_ON_5L              0xFE    // Block 0 (000200-000FFFh) code-protected.
3192 #define _CP0_OFF_5L             0xFF    // Block 0 (000200-000FFFh) not code-protected.
3193 #define _CP1_ON_5L              0xFD    // Block 1 (001000-001FFFh) code-protected.
3194 #define _CP1_OFF_5L             0xFF    // Block 1 (001000-001FFFh) not code-protected.
3195 
3196 //----------------------------- CONFIG5H Options -------------------------------
3197 
3198 #define _CPB_ON_5H              0xBF    // Boot block (000000-0001FFh) code-protected.
3199 #define _CPB_OFF_5H             0xFF    // Boot block (000000-0001FFh) not code-protected.
3200 #define _CPD_ON_5H              0x7F    // Data EEPROM code-protected.
3201 #define _CPD_OFF_5H             0xFF    // Data EEPROM not code-protected.
3202 
3203 //----------------------------- CONFIG6L Options -------------------------------
3204 
3205 #define _WRT0_ON_6L             0xFE    // Block 0 (000200-000FFFh) write-protected.
3206 #define _WRT0_OFF_6L            0xFF    // Block 0 (000200-000FFFh) not write-protected.
3207 #define _WRT1_ON_6L             0xFD    // Block 1 (001000-001FFFh) write-protected.
3208 #define _WRT1_OFF_6L            0xFF    // Block 1 (001000-001FFFh) not write-protected.
3209 
3210 //----------------------------- CONFIG6H Options -------------------------------
3211 
3212 #define _WRTC_ON_6H             0xDF    // Configuration registers (300000-3000FFh) write-protected.
3213 #define _WRTC_OFF_6H            0xFF    // Configuration registers (300000-3000FFh) not write-protected.
3214 #define _WRTB_ON_6H             0xBF    // Boot Block (000000-0001FFh) write-protected.
3215 #define _WRTB_OFF_6H            0xFF    // Boot Block (000000-0001FFh) not write-protected.
3216 #define _WRTD_ON_6H             0x7F    // Data EEPROM write-protected.
3217 #define _WRTD_OFF_6H            0xFF    // Data EEPROM not write-protected.
3218 
3219 //----------------------------- CONFIG7L Options -------------------------------
3220 
3221 #define _EBTR0_ON_7L            0xFE    // Block 0 (000200-000FFFh) protected from table reads executed in other blocks.
3222 #define _EBTR0_OFF_7L           0xFF    // Block 0 (000200-000FFFh) not protected from table reads executed in other blocks.
3223 #define _EBTR1_ON_7L            0xFD    // Block 1 (001000-001FFFh) protected from table reads executed in other blocks.
3224 #define _EBTR1_OFF_7L           0xFF    // Block 1 (001000-001FFFh) not protected from table reads executed in other blocks.
3225 
3226 //----------------------------- CONFIG7H Options -------------------------------
3227 
3228 #define _EBTRB_ON_7H            0xBF    // Boot Block (000000-0001FFh) protected from table reads executed in other blocks.
3229 #define _EBTRB_OFF_7H           0xFF    // Boot Block (000000-0001FFh) not protected from table reads executed in other blocks.
3230 
3231 //==============================================================================
3232 
3233 #define __DEVID1                0x3FFFFE
3234 #define __DEVID2                0x3FFFFF
3235 
3236 #define __IDLOC0                0x200000
3237 #define __IDLOC1                0x200001
3238 #define __IDLOC2                0x200002
3239 #define __IDLOC3                0x200003
3240 #define __IDLOC4                0x200004
3241 #define __IDLOC5                0x200005
3242 #define __IDLOC6                0x200006
3243 #define __IDLOC7                0x200007
3244 
3245 #endif // #ifndef __PIC18F23K20_H__
3246