1 /*
2  * This declarations of the PIC16F1519 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:07 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 __PIC16F1519_H__
26 #define __PIC16F1519_H__
27 
28 //==============================================================================
29 //
30 //	Register Addresses
31 //
32 //==============================================================================
33 
34 #ifndef NO_ADDR_DEFINES
35 
36 #define INDF0_ADDR              0x0000
37 #define INDF1_ADDR              0x0001
38 #define PCL_ADDR                0x0002
39 #define STATUS_ADDR             0x0003
40 #define FSR0_ADDR               0x0004
41 #define FSR0L_ADDR              0x0004
42 #define FSR0H_ADDR              0x0005
43 #define FSR1_ADDR               0x0006
44 #define FSR1L_ADDR              0x0006
45 #define FSR1H_ADDR              0x0007
46 #define BSR_ADDR                0x0008
47 #define WREG_ADDR               0x0009
48 #define PCLATH_ADDR             0x000A
49 #define INTCON_ADDR             0x000B
50 #define PORTA_ADDR              0x000C
51 #define PORTB_ADDR              0x000D
52 #define PORTC_ADDR              0x000E
53 #define PORTD_ADDR              0x000F
54 #define PORTE_ADDR              0x0010
55 #define PIR1_ADDR               0x0011
56 #define PIR2_ADDR               0x0012
57 #define TMR0_ADDR               0x0015
58 #define TMR1_ADDR               0x0016
59 #define TMR1L_ADDR              0x0016
60 #define TMR1H_ADDR              0x0017
61 #define T1CON_ADDR              0x0018
62 #define T1GCON_ADDR             0x0019
63 #define TMR2_ADDR               0x001A
64 #define PR2_ADDR                0x001B
65 #define T2CON_ADDR              0x001C
66 #define TRISA_ADDR              0x008C
67 #define TRISB_ADDR              0x008D
68 #define TRISC_ADDR              0x008E
69 #define TRISD_ADDR              0x008F
70 #define TRISE_ADDR              0x0090
71 #define PIE1_ADDR               0x0091
72 #define PIE2_ADDR               0x0092
73 #define OPTION_REG_ADDR         0x0095
74 #define PCON_ADDR               0x0096
75 #define WDTCON_ADDR             0x0097
76 #define OSCCON_ADDR             0x0099
77 #define OSCSTAT_ADDR            0x009A
78 #define ADRES_ADDR              0x009B
79 #define ADRESL_ADDR             0x009B
80 #define ADRESH_ADDR             0x009C
81 #define ADCON0_ADDR             0x009D
82 #define ADCON1_ADDR             0x009E
83 #define LATA_ADDR               0x010C
84 #define LATB_ADDR               0x010D
85 #define LATC_ADDR               0x010E
86 #define LATD_ADDR               0x010F
87 #define LATE_ADDR               0x0110
88 #define BORCON_ADDR             0x0116
89 #define FVRCON_ADDR             0x0117
90 #define APFCON_ADDR             0x011D
91 #define ANSELA_ADDR             0x018C
92 #define ANSELB_ADDR             0x018D
93 #define ANSELC_ADDR             0x018E
94 #define ANSELD_ADDR             0x018F
95 #define ANSELE_ADDR             0x0190
96 #define PMADR_ADDR              0x0191
97 #define PMADRL_ADDR             0x0191
98 #define PMADRH_ADDR             0x0192
99 #define PMDAT_ADDR              0x0193
100 #define PMDATL_ADDR             0x0193
101 #define PMDATH_ADDR             0x0194
102 #define PMCON1_ADDR             0x0195
103 #define PMCON2_ADDR             0x0196
104 #define VREGCON_ADDR            0x0197
105 #define RCREG_ADDR              0x0199
106 #define TXREG_ADDR              0x019A
107 #define SP1BRG_ADDR             0x019B
108 #define SP1BRGL_ADDR            0x019B
109 #define SPBRG_ADDR              0x019B
110 #define SPBRGL_ADDR             0x019B
111 #define SP1BRGH_ADDR            0x019C
112 #define SPBRGH_ADDR             0x019C
113 #define RCSTA_ADDR              0x019D
114 #define TXSTA_ADDR              0x019E
115 #define BAUDCON_ADDR            0x019F
116 #define WPUB_ADDR               0x020D
117 #define WPUE_ADDR               0x0210
118 #define SSP1BUF_ADDR            0x0211
119 #define SSPBUF_ADDR             0x0211
120 #define SSP1ADD_ADDR            0x0212
121 #define SSPADD_ADDR             0x0212
122 #define SSP1MSK_ADDR            0x0213
123 #define SSPMSK_ADDR             0x0213
124 #define SSP1STAT_ADDR           0x0214
125 #define SSPSTAT_ADDR            0x0214
126 #define SSP1CON1_ADDR           0x0215
127 #define SSPCON_ADDR             0x0215
128 #define SSPCON1_ADDR            0x0215
129 #define SSP1CON2_ADDR           0x0216
130 #define SSPCON2_ADDR            0x0216
131 #define SSP1CON3_ADDR           0x0217
132 #define SSPCON3_ADDR            0x0217
133 #define CCPR1_ADDR              0x0291
134 #define CCPR1L_ADDR             0x0291
135 #define CCPR1H_ADDR             0x0292
136 #define CCP1CON_ADDR            0x0293
137 #define CCPR2_ADDR              0x0298
138 #define CCPR2L_ADDR             0x0298
139 #define CCPR2H_ADDR             0x0299
140 #define CCP2CON_ADDR            0x029A
141 #define IOCBP_ADDR              0x0394
142 #define IOCBN_ADDR              0x0395
143 #define IOCBF_ADDR              0x0396
144 #define STATUS_SHAD_ADDR        0x0FE4
145 #define WREG_SHAD_ADDR          0x0FE5
146 #define BSR_SHAD_ADDR           0x0FE6
147 #define PCLATH_SHAD_ADDR        0x0FE7
148 #define FSR0L_SHAD_ADDR         0x0FE8
149 #define FSR0H_SHAD_ADDR         0x0FE9
150 #define FSR1L_SHAD_ADDR         0x0FEA
151 #define FSR1H_SHAD_ADDR         0x0FEB
152 #define STKPTR_ADDR             0x0FED
153 #define TOSL_ADDR               0x0FEE
154 #define TOSH_ADDR               0x0FEF
155 
156 #endif // #ifndef NO_ADDR_DEFINES
157 
158 //==============================================================================
159 //
160 //	Register Definitions
161 //
162 //==============================================================================
163 
164 extern __at(0x0000) __sfr INDF0;
165 extern __at(0x0001) __sfr INDF1;
166 extern __at(0x0002) __sfr PCL;
167 
168 //==============================================================================
169 //        STATUS Bits
170 
171 extern __at(0x0003) __sfr STATUS;
172 
173 typedef struct
174   {
175   unsigned C                    : 1;
176   unsigned DC                   : 1;
177   unsigned Z                    : 1;
178   unsigned NOT_PD               : 1;
179   unsigned NOT_TO               : 1;
180   unsigned                      : 1;
181   unsigned                      : 1;
182   unsigned                      : 1;
183   } __STATUSbits_t;
184 
185 extern __at(0x0003) volatile __STATUSbits_t STATUSbits;
186 
187 #define _C                      0x01
188 #define _DC                     0x02
189 #define _Z                      0x04
190 #define _NOT_PD                 0x08
191 #define _NOT_TO                 0x10
192 
193 //==============================================================================
194 
195 extern __at(0x0004) __sfr FSR0;
196 extern __at(0x0004) __sfr FSR0L;
197 extern __at(0x0005) __sfr FSR0H;
198 extern __at(0x0006) __sfr FSR1;
199 extern __at(0x0006) __sfr FSR1L;
200 extern __at(0x0007) __sfr FSR1H;
201 
202 //==============================================================================
203 //        BSR Bits
204 
205 extern __at(0x0008) __sfr BSR;
206 
207 typedef union
208   {
209   struct
210     {
211     unsigned BSR0               : 1;
212     unsigned BSR1               : 1;
213     unsigned BSR2               : 1;
214     unsigned BSR3               : 1;
215     unsigned BSR4               : 1;
216     unsigned                    : 1;
217     unsigned                    : 1;
218     unsigned                    : 1;
219     };
220 
221   struct
222     {
223     unsigned BSR                : 5;
224     unsigned                    : 3;
225     };
226   } __BSRbits_t;
227 
228 extern __at(0x0008) volatile __BSRbits_t BSRbits;
229 
230 #define _BSR0                   0x01
231 #define _BSR1                   0x02
232 #define _BSR2                   0x04
233 #define _BSR3                   0x08
234 #define _BSR4                   0x10
235 
236 //==============================================================================
237 
238 extern __at(0x0009) __sfr WREG;
239 extern __at(0x000A) __sfr PCLATH;
240 
241 //==============================================================================
242 //        INTCON Bits
243 
244 extern __at(0x000B) __sfr INTCON;
245 
246 typedef union
247   {
248   struct
249     {
250     unsigned IOCIF              : 1;
251     unsigned INTF               : 1;
252     unsigned TMR0IF             : 1;
253     unsigned IOCIE              : 1;
254     unsigned INTE               : 1;
255     unsigned TMR0IE             : 1;
256     unsigned PEIE               : 1;
257     unsigned GIE                : 1;
258     };
259 
260   struct
261     {
262     unsigned                    : 1;
263     unsigned                    : 1;
264     unsigned T0IF               : 1;
265     unsigned                    : 1;
266     unsigned                    : 1;
267     unsigned T0IE               : 1;
268     unsigned                    : 1;
269     unsigned                    : 1;
270     };
271   } __INTCONbits_t;
272 
273 extern __at(0x000B) volatile __INTCONbits_t INTCONbits;
274 
275 #define _IOCIF                  0x01
276 #define _INTF                   0x02
277 #define _TMR0IF                 0x04
278 #define _T0IF                   0x04
279 #define _IOCIE                  0x08
280 #define _INTE                   0x10
281 #define _TMR0IE                 0x20
282 #define _T0IE                   0x20
283 #define _PEIE                   0x40
284 #define _GIE                    0x80
285 
286 //==============================================================================
287 
288 
289 //==============================================================================
290 //        PORTA Bits
291 
292 extern __at(0x000C) __sfr PORTA;
293 
294 typedef struct
295   {
296   unsigned RA0                  : 1;
297   unsigned RA1                  : 1;
298   unsigned RA2                  : 1;
299   unsigned RA3                  : 1;
300   unsigned RA4                  : 1;
301   unsigned RA5                  : 1;
302   unsigned RA6                  : 1;
303   unsigned RA7                  : 1;
304   } __PORTAbits_t;
305 
306 extern __at(0x000C) volatile __PORTAbits_t PORTAbits;
307 
308 #define _RA0                    0x01
309 #define _RA1                    0x02
310 #define _RA2                    0x04
311 #define _RA3                    0x08
312 #define _RA4                    0x10
313 #define _RA5                    0x20
314 #define _RA6                    0x40
315 #define _RA7                    0x80
316 
317 //==============================================================================
318 
319 
320 //==============================================================================
321 //        PORTB Bits
322 
323 extern __at(0x000D) __sfr PORTB;
324 
325 typedef struct
326   {
327   unsigned RB0                  : 1;
328   unsigned RB1                  : 1;
329   unsigned RB2                  : 1;
330   unsigned RB3                  : 1;
331   unsigned RB4                  : 1;
332   unsigned RB5                  : 1;
333   unsigned RB6                  : 1;
334   unsigned RB7                  : 1;
335   } __PORTBbits_t;
336 
337 extern __at(0x000D) volatile __PORTBbits_t PORTBbits;
338 
339 #define _RB0                    0x01
340 #define _RB1                    0x02
341 #define _RB2                    0x04
342 #define _RB3                    0x08
343 #define _RB4                    0x10
344 #define _RB5                    0x20
345 #define _RB6                    0x40
346 #define _RB7                    0x80
347 
348 //==============================================================================
349 
350 
351 //==============================================================================
352 //        PORTC Bits
353 
354 extern __at(0x000E) __sfr PORTC;
355 
356 typedef struct
357   {
358   unsigned RC0                  : 1;
359   unsigned RC1                  : 1;
360   unsigned RC2                  : 1;
361   unsigned RC3                  : 1;
362   unsigned RC4                  : 1;
363   unsigned RC5                  : 1;
364   unsigned RC6                  : 1;
365   unsigned RC7                  : 1;
366   } __PORTCbits_t;
367 
368 extern __at(0x000E) volatile __PORTCbits_t PORTCbits;
369 
370 #define _RC0                    0x01
371 #define _RC1                    0x02
372 #define _RC2                    0x04
373 #define _RC3                    0x08
374 #define _RC4                    0x10
375 #define _RC5                    0x20
376 #define _RC6                    0x40
377 #define _RC7                    0x80
378 
379 //==============================================================================
380 
381 
382 //==============================================================================
383 //        PORTD Bits
384 
385 extern __at(0x000F) __sfr PORTD;
386 
387 typedef struct
388   {
389   unsigned RD0                  : 1;
390   unsigned RD1                  : 1;
391   unsigned RD2                  : 1;
392   unsigned RD3                  : 1;
393   unsigned RD4                  : 1;
394   unsigned RD5                  : 1;
395   unsigned RD6                  : 1;
396   unsigned RD7                  : 1;
397   } __PORTDbits_t;
398 
399 extern __at(0x000F) volatile __PORTDbits_t PORTDbits;
400 
401 #define _RD0                    0x01
402 #define _RD1                    0x02
403 #define _RD2                    0x04
404 #define _RD3                    0x08
405 #define _RD4                    0x10
406 #define _RD5                    0x20
407 #define _RD6                    0x40
408 #define _RD7                    0x80
409 
410 //==============================================================================
411 
412 
413 //==============================================================================
414 //        PORTE Bits
415 
416 extern __at(0x0010) __sfr PORTE;
417 
418 typedef union
419   {
420   struct
421     {
422     unsigned RE0                : 1;
423     unsigned RE1                : 1;
424     unsigned RE2                : 1;
425     unsigned RE3                : 1;
426     unsigned                    : 1;
427     unsigned                    : 1;
428     unsigned                    : 1;
429     unsigned                    : 1;
430     };
431 
432   struct
433     {
434     unsigned RE                 : 4;
435     unsigned                    : 4;
436     };
437   } __PORTEbits_t;
438 
439 extern __at(0x0010) volatile __PORTEbits_t PORTEbits;
440 
441 #define _RE0                    0x01
442 #define _RE1                    0x02
443 #define _RE2                    0x04
444 #define _RE3                    0x08
445 
446 //==============================================================================
447 
448 
449 //==============================================================================
450 //        PIR1 Bits
451 
452 extern __at(0x0011) __sfr PIR1;
453 
454 typedef struct
455   {
456   unsigned TMR1IF               : 1;
457   unsigned TMR2IF               : 1;
458   unsigned CCP1IF               : 1;
459   unsigned SSPIF                : 1;
460   unsigned TXIF                 : 1;
461   unsigned RCIF                 : 1;
462   unsigned ADIF                 : 1;
463   unsigned TMR1GIF              : 1;
464   } __PIR1bits_t;
465 
466 extern __at(0x0011) volatile __PIR1bits_t PIR1bits;
467 
468 #define _TMR1IF                 0x01
469 #define _TMR2IF                 0x02
470 #define _CCP1IF                 0x04
471 #define _SSPIF                  0x08
472 #define _TXIF                   0x10
473 #define _RCIF                   0x20
474 #define _ADIF                   0x40
475 #define _TMR1GIF                0x80
476 
477 //==============================================================================
478 
479 
480 //==============================================================================
481 //        PIR2 Bits
482 
483 extern __at(0x0012) __sfr PIR2;
484 
485 typedef struct
486   {
487   unsigned CCP2IF               : 1;
488   unsigned                      : 1;
489   unsigned                      : 1;
490   unsigned BCLIF                : 1;
491   unsigned                      : 1;
492   unsigned                      : 1;
493   unsigned                      : 1;
494   unsigned OSFIF                : 1;
495   } __PIR2bits_t;
496 
497 extern __at(0x0012) volatile __PIR2bits_t PIR2bits;
498 
499 #define _CCP2IF                 0x01
500 #define _BCLIF                  0x08
501 #define _OSFIF                  0x80
502 
503 //==============================================================================
504 
505 extern __at(0x0015) __sfr TMR0;
506 extern __at(0x0016) __sfr TMR1;
507 extern __at(0x0016) __sfr TMR1L;
508 extern __at(0x0017) __sfr TMR1H;
509 
510 //==============================================================================
511 //        T1CON Bits
512 
513 extern __at(0x0018) __sfr T1CON;
514 
515 typedef union
516   {
517   struct
518     {
519     unsigned TMR1ON             : 1;
520     unsigned                    : 1;
521     unsigned NOT_T1SYNC         : 1;
522     unsigned T1OSCEN            : 1;
523     unsigned T1CKPS0            : 1;
524     unsigned T1CKPS1            : 1;
525     unsigned TMR1CS0            : 1;
526     unsigned TMR1CS1            : 1;
527     };
528 
529   struct
530     {
531     unsigned                    : 4;
532     unsigned T1CKPS             : 2;
533     unsigned                    : 2;
534     };
535 
536   struct
537     {
538     unsigned                    : 6;
539     unsigned TMR1CS             : 2;
540     };
541   } __T1CONbits_t;
542 
543 extern __at(0x0018) volatile __T1CONbits_t T1CONbits;
544 
545 #define _TMR1ON                 0x01
546 #define _NOT_T1SYNC             0x04
547 #define _T1OSCEN                0x08
548 #define _T1CKPS0                0x10
549 #define _T1CKPS1                0x20
550 #define _TMR1CS0                0x40
551 #define _TMR1CS1                0x80
552 
553 //==============================================================================
554 
555 
556 //==============================================================================
557 //        T1GCON Bits
558 
559 extern __at(0x0019) __sfr T1GCON;
560 
561 typedef union
562   {
563   struct
564     {
565     unsigned T1GSS0             : 1;
566     unsigned T1GSS1             : 1;
567     unsigned T1GVAL             : 1;
568     unsigned T1GGO_NOT_DONE     : 1;
569     unsigned T1GSPM             : 1;
570     unsigned T1GTM              : 1;
571     unsigned T1GPOL             : 1;
572     unsigned TMR1GE             : 1;
573     };
574 
575   struct
576     {
577     unsigned T1GSS              : 2;
578     unsigned                    : 6;
579     };
580   } __T1GCONbits_t;
581 
582 extern __at(0x0019) volatile __T1GCONbits_t T1GCONbits;
583 
584 #define _T1GSS0                 0x01
585 #define _T1GSS1                 0x02
586 #define _T1GVAL                 0x04
587 #define _T1GGO_NOT_DONE         0x08
588 #define _T1GSPM                 0x10
589 #define _T1GTM                  0x20
590 #define _T1GPOL                 0x40
591 #define _TMR1GE                 0x80
592 
593 //==============================================================================
594 
595 extern __at(0x001A) __sfr TMR2;
596 extern __at(0x001B) __sfr PR2;
597 
598 //==============================================================================
599 //        T2CON Bits
600 
601 extern __at(0x001C) __sfr T2CON;
602 
603 typedef union
604   {
605   struct
606     {
607     unsigned T2CKPS0            : 1;
608     unsigned T2CKPS1            : 1;
609     unsigned TMR2ON             : 1;
610     unsigned T2OUTPS0           : 1;
611     unsigned T2OUTPS1           : 1;
612     unsigned T2OUTPS2           : 1;
613     unsigned T2OUTPS3           : 1;
614     unsigned                    : 1;
615     };
616 
617   struct
618     {
619     unsigned T2CKPS             : 2;
620     unsigned                    : 6;
621     };
622 
623   struct
624     {
625     unsigned                    : 3;
626     unsigned T2OUTPS            : 4;
627     unsigned                    : 1;
628     };
629   } __T2CONbits_t;
630 
631 extern __at(0x001C) volatile __T2CONbits_t T2CONbits;
632 
633 #define _T2CKPS0                0x01
634 #define _T2CKPS1                0x02
635 #define _TMR2ON                 0x04
636 #define _T2OUTPS0               0x08
637 #define _T2OUTPS1               0x10
638 #define _T2OUTPS2               0x20
639 #define _T2OUTPS3               0x40
640 
641 //==============================================================================
642 
643 
644 //==============================================================================
645 //        TRISA Bits
646 
647 extern __at(0x008C) __sfr TRISA;
648 
649 typedef struct
650   {
651   unsigned TRISA0               : 1;
652   unsigned TRISA1               : 1;
653   unsigned TRISA2               : 1;
654   unsigned TRISA3               : 1;
655   unsigned TRISA4               : 1;
656   unsigned TRISA5               : 1;
657   unsigned TRISA6               : 1;
658   unsigned TRISA7               : 1;
659   } __TRISAbits_t;
660 
661 extern __at(0x008C) volatile __TRISAbits_t TRISAbits;
662 
663 #define _TRISA0                 0x01
664 #define _TRISA1                 0x02
665 #define _TRISA2                 0x04
666 #define _TRISA3                 0x08
667 #define _TRISA4                 0x10
668 #define _TRISA5                 0x20
669 #define _TRISA6                 0x40
670 #define _TRISA7                 0x80
671 
672 //==============================================================================
673 
674 
675 //==============================================================================
676 //        TRISB Bits
677 
678 extern __at(0x008D) __sfr TRISB;
679 
680 typedef struct
681   {
682   unsigned TRISB0               : 1;
683   unsigned TRISB1               : 1;
684   unsigned TRISB2               : 1;
685   unsigned TRISB3               : 1;
686   unsigned TRISB4               : 1;
687   unsigned TRISB5               : 1;
688   unsigned TRISB6               : 1;
689   unsigned TRISB7               : 1;
690   } __TRISBbits_t;
691 
692 extern __at(0x008D) volatile __TRISBbits_t TRISBbits;
693 
694 #define _TRISB0                 0x01
695 #define _TRISB1                 0x02
696 #define _TRISB2                 0x04
697 #define _TRISB3                 0x08
698 #define _TRISB4                 0x10
699 #define _TRISB5                 0x20
700 #define _TRISB6                 0x40
701 #define _TRISB7                 0x80
702 
703 //==============================================================================
704 
705 
706 //==============================================================================
707 //        TRISC Bits
708 
709 extern __at(0x008E) __sfr TRISC;
710 
711 typedef struct
712   {
713   unsigned TRISC0               : 1;
714   unsigned TRISC1               : 1;
715   unsigned TRISC2               : 1;
716   unsigned TRISC3               : 1;
717   unsigned TRISC4               : 1;
718   unsigned TRISC5               : 1;
719   unsigned TRISC6               : 1;
720   unsigned TRISC7               : 1;
721   } __TRISCbits_t;
722 
723 extern __at(0x008E) volatile __TRISCbits_t TRISCbits;
724 
725 #define _TRISC0                 0x01
726 #define _TRISC1                 0x02
727 #define _TRISC2                 0x04
728 #define _TRISC3                 0x08
729 #define _TRISC4                 0x10
730 #define _TRISC5                 0x20
731 #define _TRISC6                 0x40
732 #define _TRISC7                 0x80
733 
734 //==============================================================================
735 
736 
737 //==============================================================================
738 //        TRISD Bits
739 
740 extern __at(0x008F) __sfr TRISD;
741 
742 typedef struct
743   {
744   unsigned TRISD0               : 1;
745   unsigned TRISD1               : 1;
746   unsigned TRISD2               : 1;
747   unsigned TRISD3               : 1;
748   unsigned TRISD4               : 1;
749   unsigned TRISD5               : 1;
750   unsigned TRISD6               : 1;
751   unsigned TRISD7               : 1;
752   } __TRISDbits_t;
753 
754 extern __at(0x008F) volatile __TRISDbits_t TRISDbits;
755 
756 #define _TRISD0                 0x01
757 #define _TRISD1                 0x02
758 #define _TRISD2                 0x04
759 #define _TRISD3                 0x08
760 #define _TRISD4                 0x10
761 #define _TRISD5                 0x20
762 #define _TRISD6                 0x40
763 #define _TRISD7                 0x80
764 
765 //==============================================================================
766 
767 
768 //==============================================================================
769 //        TRISE Bits
770 
771 extern __at(0x0090) __sfr TRISE;
772 
773 typedef union
774   {
775   struct
776     {
777     unsigned TRISE0             : 1;
778     unsigned TRISE1             : 1;
779     unsigned TRISE2             : 1;
780     unsigned                    : 1;
781     unsigned                    : 1;
782     unsigned                    : 1;
783     unsigned                    : 1;
784     unsigned                    : 1;
785     };
786 
787   struct
788     {
789     unsigned TRISE              : 3;
790     unsigned                    : 5;
791     };
792   } __TRISEbits_t;
793 
794 extern __at(0x0090) volatile __TRISEbits_t TRISEbits;
795 
796 #define _TRISE0                 0x01
797 #define _TRISE1                 0x02
798 #define _TRISE2                 0x04
799 
800 //==============================================================================
801 
802 
803 //==============================================================================
804 //        PIE1 Bits
805 
806 extern __at(0x0091) __sfr PIE1;
807 
808 typedef struct
809   {
810   unsigned TMR1IE               : 1;
811   unsigned TMR2IE               : 1;
812   unsigned CCP1IE               : 1;
813   unsigned SSPIE                : 1;
814   unsigned TXIE                 : 1;
815   unsigned RCIE                 : 1;
816   unsigned ADIE                 : 1;
817   unsigned TMR1GIE              : 1;
818   } __PIE1bits_t;
819 
820 extern __at(0x0091) volatile __PIE1bits_t PIE1bits;
821 
822 #define _TMR1IE                 0x01
823 #define _TMR2IE                 0x02
824 #define _CCP1IE                 0x04
825 #define _SSPIE                  0x08
826 #define _TXIE                   0x10
827 #define _RCIE                   0x20
828 #define _ADIE                   0x40
829 #define _TMR1GIE                0x80
830 
831 //==============================================================================
832 
833 
834 //==============================================================================
835 //        PIE2 Bits
836 
837 extern __at(0x0092) __sfr PIE2;
838 
839 typedef struct
840   {
841   unsigned CCP2IE               : 1;
842   unsigned                      : 1;
843   unsigned                      : 1;
844   unsigned BCLIE                : 1;
845   unsigned                      : 1;
846   unsigned                      : 1;
847   unsigned                      : 1;
848   unsigned OSFIE                : 1;
849   } __PIE2bits_t;
850 
851 extern __at(0x0092) volatile __PIE2bits_t PIE2bits;
852 
853 #define _CCP2IE                 0x01
854 #define _BCLIE                  0x08
855 #define _OSFIE                  0x80
856 
857 //==============================================================================
858 
859 
860 //==============================================================================
861 //        OPTION_REG Bits
862 
863 extern __at(0x0095) __sfr OPTION_REG;
864 
865 typedef union
866   {
867   struct
868     {
869     unsigned PS0                : 1;
870     unsigned PS1                : 1;
871     unsigned PS2                : 1;
872     unsigned PSA                : 1;
873     unsigned TMR0SE             : 1;
874     unsigned TMR0CS             : 1;
875     unsigned INTEDG             : 1;
876     unsigned NOT_WPUEN          : 1;
877     };
878 
879   struct
880     {
881     unsigned                    : 1;
882     unsigned                    : 1;
883     unsigned                    : 1;
884     unsigned                    : 1;
885     unsigned T0SE               : 1;
886     unsigned T0CS               : 1;
887     unsigned                    : 1;
888     unsigned                    : 1;
889     };
890 
891   struct
892     {
893     unsigned PS                 : 3;
894     unsigned                    : 5;
895     };
896   } __OPTION_REGbits_t;
897 
898 extern __at(0x0095) volatile __OPTION_REGbits_t OPTION_REGbits;
899 
900 #define _PS0                    0x01
901 #define _PS1                    0x02
902 #define _PS2                    0x04
903 #define _PSA                    0x08
904 #define _TMR0SE                 0x10
905 #define _T0SE                   0x10
906 #define _TMR0CS                 0x20
907 #define _T0CS                   0x20
908 #define _INTEDG                 0x40
909 #define _NOT_WPUEN              0x80
910 
911 //==============================================================================
912 
913 
914 //==============================================================================
915 //        PCON Bits
916 
917 extern __at(0x0096) __sfr PCON;
918 
919 typedef struct
920   {
921   unsigned NOT_BOR              : 1;
922   unsigned NOT_POR              : 1;
923   unsigned NOT_RI               : 1;
924   unsigned NOT_RMCLR            : 1;
925   unsigned NOT_RWDT             : 1;
926   unsigned                      : 1;
927   unsigned STKUNF               : 1;
928   unsigned STKOVF               : 1;
929   } __PCONbits_t;
930 
931 extern __at(0x0096) volatile __PCONbits_t PCONbits;
932 
933 #define _NOT_BOR                0x01
934 #define _NOT_POR                0x02
935 #define _NOT_RI                 0x04
936 #define _NOT_RMCLR              0x08
937 #define _NOT_RWDT               0x10
938 #define _STKUNF                 0x40
939 #define _STKOVF                 0x80
940 
941 //==============================================================================
942 
943 
944 //==============================================================================
945 //        WDTCON Bits
946 
947 extern __at(0x0097) __sfr WDTCON;
948 
949 typedef union
950   {
951   struct
952     {
953     unsigned SWDTEN             : 1;
954     unsigned WDTPS0             : 1;
955     unsigned WDTPS1             : 1;
956     unsigned WDTPS2             : 1;
957     unsigned WDTPS3             : 1;
958     unsigned WDTPS4             : 1;
959     unsigned                    : 1;
960     unsigned                    : 1;
961     };
962 
963   struct
964     {
965     unsigned                    : 1;
966     unsigned WDTPS              : 5;
967     unsigned                    : 2;
968     };
969   } __WDTCONbits_t;
970 
971 extern __at(0x0097) volatile __WDTCONbits_t WDTCONbits;
972 
973 #define _SWDTEN                 0x01
974 #define _WDTPS0                 0x02
975 #define _WDTPS1                 0x04
976 #define _WDTPS2                 0x08
977 #define _WDTPS3                 0x10
978 #define _WDTPS4                 0x20
979 
980 //==============================================================================
981 
982 
983 //==============================================================================
984 //        OSCCON Bits
985 
986 extern __at(0x0099) __sfr OSCCON;
987 
988 typedef union
989   {
990   struct
991     {
992     unsigned SCS0               : 1;
993     unsigned SCS1               : 1;
994     unsigned                    : 1;
995     unsigned IRCF0              : 1;
996     unsigned IRCF1              : 1;
997     unsigned IRCF2              : 1;
998     unsigned IRCF3              : 1;
999     unsigned                    : 1;
1000     };
1001 
1002   struct
1003     {
1004     unsigned SCS                : 2;
1005     unsigned                    : 6;
1006     };
1007 
1008   struct
1009     {
1010     unsigned                    : 3;
1011     unsigned IRCF               : 4;
1012     unsigned                    : 1;
1013     };
1014   } __OSCCONbits_t;
1015 
1016 extern __at(0x0099) volatile __OSCCONbits_t OSCCONbits;
1017 
1018 #define _SCS0                   0x01
1019 #define _SCS1                   0x02
1020 #define _IRCF0                  0x08
1021 #define _IRCF1                  0x10
1022 #define _IRCF2                  0x20
1023 #define _IRCF3                  0x40
1024 
1025 //==============================================================================
1026 
1027 
1028 //==============================================================================
1029 //        OSCSTAT Bits
1030 
1031 extern __at(0x009A) __sfr OSCSTAT;
1032 
1033 typedef union
1034   {
1035   struct
1036     {
1037     unsigned HFIOFS             : 1;
1038     unsigned LFIOFR             : 1;
1039     unsigned                    : 1;
1040     unsigned                    : 1;
1041     unsigned HFIOFR             : 1;
1042     unsigned OSTS               : 1;
1043     unsigned                    : 1;
1044     unsigned SOSCR              : 1;
1045     };
1046 
1047   struct
1048     {
1049     unsigned                    : 1;
1050     unsigned                    : 1;
1051     unsigned                    : 1;
1052     unsigned                    : 1;
1053     unsigned                    : 1;
1054     unsigned                    : 1;
1055     unsigned                    : 1;
1056     unsigned T1OSCR             : 1;
1057     };
1058   } __OSCSTATbits_t;
1059 
1060 extern __at(0x009A) volatile __OSCSTATbits_t OSCSTATbits;
1061 
1062 #define _HFIOFS                 0x01
1063 #define _LFIOFR                 0x02
1064 #define _HFIOFR                 0x10
1065 #define _OSTS                   0x20
1066 #define _SOSCR                  0x80
1067 #define _T1OSCR                 0x80
1068 
1069 //==============================================================================
1070 
1071 extern __at(0x009B) __sfr ADRES;
1072 extern __at(0x009B) __sfr ADRESL;
1073 extern __at(0x009C) __sfr ADRESH;
1074 
1075 //==============================================================================
1076 //        ADCON0 Bits
1077 
1078 extern __at(0x009D) __sfr ADCON0;
1079 
1080 typedef union
1081   {
1082   struct
1083     {
1084     unsigned ADON               : 1;
1085     unsigned GO_NOT_DONE        : 1;
1086     unsigned CHS0               : 1;
1087     unsigned CHS1               : 1;
1088     unsigned CHS2               : 1;
1089     unsigned CHS3               : 1;
1090     unsigned CHS4               : 1;
1091     unsigned                    : 1;
1092     };
1093 
1094   struct
1095     {
1096     unsigned                    : 1;
1097     unsigned ADGO               : 1;
1098     unsigned                    : 1;
1099     unsigned                    : 1;
1100     unsigned                    : 1;
1101     unsigned                    : 1;
1102     unsigned                    : 1;
1103     unsigned                    : 1;
1104     };
1105 
1106   struct
1107     {
1108     unsigned                    : 1;
1109     unsigned GO                 : 1;
1110     unsigned                    : 1;
1111     unsigned                    : 1;
1112     unsigned                    : 1;
1113     unsigned                    : 1;
1114     unsigned                    : 1;
1115     unsigned                    : 1;
1116     };
1117 
1118   struct
1119     {
1120     unsigned                    : 2;
1121     unsigned CHS                : 5;
1122     unsigned                    : 1;
1123     };
1124   } __ADCON0bits_t;
1125 
1126 extern __at(0x009D) volatile __ADCON0bits_t ADCON0bits;
1127 
1128 #define _ADON                   0x01
1129 #define _GO_NOT_DONE            0x02
1130 #define _ADGO                   0x02
1131 #define _GO                     0x02
1132 #define _CHS0                   0x04
1133 #define _CHS1                   0x08
1134 #define _CHS2                   0x10
1135 #define _CHS3                   0x20
1136 #define _CHS4                   0x40
1137 
1138 //==============================================================================
1139 
1140 
1141 //==============================================================================
1142 //        ADCON1 Bits
1143 
1144 extern __at(0x009E) __sfr ADCON1;
1145 
1146 typedef union
1147   {
1148   struct
1149     {
1150     unsigned ADPREF0            : 1;
1151     unsigned ADPREF1            : 1;
1152     unsigned                    : 1;
1153     unsigned                    : 1;
1154     unsigned ADCS0              : 1;
1155     unsigned ADCS1              : 1;
1156     unsigned ADCS2              : 1;
1157     unsigned ADFM               : 1;
1158     };
1159 
1160   struct
1161     {
1162     unsigned ADPREF             : 2;
1163     unsigned                    : 6;
1164     };
1165 
1166   struct
1167     {
1168     unsigned                    : 4;
1169     unsigned ADCS               : 3;
1170     unsigned                    : 1;
1171     };
1172   } __ADCON1bits_t;
1173 
1174 extern __at(0x009E) volatile __ADCON1bits_t ADCON1bits;
1175 
1176 #define _ADPREF0                0x01
1177 #define _ADPREF1                0x02
1178 #define _ADCS0                  0x10
1179 #define _ADCS1                  0x20
1180 #define _ADCS2                  0x40
1181 #define _ADFM                   0x80
1182 
1183 //==============================================================================
1184 
1185 
1186 //==============================================================================
1187 //        LATA Bits
1188 
1189 extern __at(0x010C) __sfr LATA;
1190 
1191 typedef struct
1192   {
1193   unsigned LATA0                : 1;
1194   unsigned LATA1                : 1;
1195   unsigned LATA2                : 1;
1196   unsigned LATA3                : 1;
1197   unsigned LATA4                : 1;
1198   unsigned LATA5                : 1;
1199   unsigned LATA6                : 1;
1200   unsigned LATA7                : 1;
1201   } __LATAbits_t;
1202 
1203 extern __at(0x010C) volatile __LATAbits_t LATAbits;
1204 
1205 #define _LATA0                  0x01
1206 #define _LATA1                  0x02
1207 #define _LATA2                  0x04
1208 #define _LATA3                  0x08
1209 #define _LATA4                  0x10
1210 #define _LATA5                  0x20
1211 #define _LATA6                  0x40
1212 #define _LATA7                  0x80
1213 
1214 //==============================================================================
1215 
1216 
1217 //==============================================================================
1218 //        LATB Bits
1219 
1220 extern __at(0x010D) __sfr LATB;
1221 
1222 typedef struct
1223   {
1224   unsigned LATB0                : 1;
1225   unsigned LATB1                : 1;
1226   unsigned LATB2                : 1;
1227   unsigned LATB3                : 1;
1228   unsigned LATB4                : 1;
1229   unsigned LATB5                : 1;
1230   unsigned LATB6                : 1;
1231   unsigned LATB7                : 1;
1232   } __LATBbits_t;
1233 
1234 extern __at(0x010D) volatile __LATBbits_t LATBbits;
1235 
1236 #define _LATB0                  0x01
1237 #define _LATB1                  0x02
1238 #define _LATB2                  0x04
1239 #define _LATB3                  0x08
1240 #define _LATB4                  0x10
1241 #define _LATB5                  0x20
1242 #define _LATB6                  0x40
1243 #define _LATB7                  0x80
1244 
1245 //==============================================================================
1246 
1247 
1248 //==============================================================================
1249 //        LATC Bits
1250 
1251 extern __at(0x010E) __sfr LATC;
1252 
1253 typedef struct
1254   {
1255   unsigned LATC0                : 1;
1256   unsigned LATC1                : 1;
1257   unsigned LATC2                : 1;
1258   unsigned LATC3                : 1;
1259   unsigned LATC4                : 1;
1260   unsigned LATC5                : 1;
1261   unsigned LATC6                : 1;
1262   unsigned LATC7                : 1;
1263   } __LATCbits_t;
1264 
1265 extern __at(0x010E) volatile __LATCbits_t LATCbits;
1266 
1267 #define _LATC0                  0x01
1268 #define _LATC1                  0x02
1269 #define _LATC2                  0x04
1270 #define _LATC3                  0x08
1271 #define _LATC4                  0x10
1272 #define _LATC5                  0x20
1273 #define _LATC6                  0x40
1274 #define _LATC7                  0x80
1275 
1276 //==============================================================================
1277 
1278 
1279 //==============================================================================
1280 //        LATD Bits
1281 
1282 extern __at(0x010F) __sfr LATD;
1283 
1284 typedef struct
1285   {
1286   unsigned LATD0                : 1;
1287   unsigned LATD1                : 1;
1288   unsigned LATD2                : 1;
1289   unsigned LATD3                : 1;
1290   unsigned LATD4                : 1;
1291   unsigned LATD5                : 1;
1292   unsigned LATD6                : 1;
1293   unsigned LATD7                : 1;
1294   } __LATDbits_t;
1295 
1296 extern __at(0x010F) volatile __LATDbits_t LATDbits;
1297 
1298 #define _LATD0                  0x01
1299 #define _LATD1                  0x02
1300 #define _LATD2                  0x04
1301 #define _LATD3                  0x08
1302 #define _LATD4                  0x10
1303 #define _LATD5                  0x20
1304 #define _LATD6                  0x40
1305 #define _LATD7                  0x80
1306 
1307 //==============================================================================
1308 
1309 
1310 //==============================================================================
1311 //        LATE Bits
1312 
1313 extern __at(0x0110) __sfr LATE;
1314 
1315 typedef union
1316   {
1317   struct
1318     {
1319     unsigned LATE0              : 1;
1320     unsigned LATE1              : 1;
1321     unsigned LATE2              : 1;
1322     unsigned                    : 1;
1323     unsigned                    : 1;
1324     unsigned                    : 1;
1325     unsigned                    : 1;
1326     unsigned                    : 1;
1327     };
1328 
1329   struct
1330     {
1331     unsigned LATE               : 3;
1332     unsigned                    : 5;
1333     };
1334   } __LATEbits_t;
1335 
1336 extern __at(0x0110) volatile __LATEbits_t LATEbits;
1337 
1338 #define _LATE0                  0x01
1339 #define _LATE1                  0x02
1340 #define _LATE2                  0x04
1341 
1342 //==============================================================================
1343 
1344 
1345 //==============================================================================
1346 //        BORCON Bits
1347 
1348 extern __at(0x0116) __sfr BORCON;
1349 
1350 typedef struct
1351   {
1352   unsigned BORRDY               : 1;
1353   unsigned                      : 1;
1354   unsigned                      : 1;
1355   unsigned                      : 1;
1356   unsigned                      : 1;
1357   unsigned                      : 1;
1358   unsigned BORFS                : 1;
1359   unsigned SBOREN               : 1;
1360   } __BORCONbits_t;
1361 
1362 extern __at(0x0116) volatile __BORCONbits_t BORCONbits;
1363 
1364 #define _BORRDY                 0x01
1365 #define _BORFS                  0x40
1366 #define _SBOREN                 0x80
1367 
1368 //==============================================================================
1369 
1370 
1371 //==============================================================================
1372 //        FVRCON Bits
1373 
1374 extern __at(0x0117) __sfr FVRCON;
1375 
1376 typedef union
1377   {
1378   struct
1379     {
1380     unsigned ADFVR0             : 1;
1381     unsigned ADFVR1             : 1;
1382     unsigned                    : 1;
1383     unsigned                    : 1;
1384     unsigned TSRNG              : 1;
1385     unsigned TSEN               : 1;
1386     unsigned FVRRDY             : 1;
1387     unsigned FVREN              : 1;
1388     };
1389 
1390   struct
1391     {
1392     unsigned ADFVR              : 2;
1393     unsigned                    : 6;
1394     };
1395   } __FVRCONbits_t;
1396 
1397 extern __at(0x0117) volatile __FVRCONbits_t FVRCONbits;
1398 
1399 #define _ADFVR0                 0x01
1400 #define _ADFVR1                 0x02
1401 #define _TSRNG                  0x10
1402 #define _TSEN                   0x20
1403 #define _FVRRDY                 0x40
1404 #define _FVREN                  0x80
1405 
1406 //==============================================================================
1407 
1408 
1409 //==============================================================================
1410 //        APFCON Bits
1411 
1412 extern __at(0x011D) __sfr APFCON;
1413 
1414 typedef struct
1415   {
1416   unsigned CCP2SEL              : 1;
1417   unsigned SSSEL                : 1;
1418   unsigned                      : 1;
1419   unsigned                      : 1;
1420   unsigned                      : 1;
1421   unsigned                      : 1;
1422   unsigned                      : 1;
1423   unsigned                      : 1;
1424   } __APFCONbits_t;
1425 
1426 extern __at(0x011D) volatile __APFCONbits_t APFCONbits;
1427 
1428 #define _CCP2SEL                0x01
1429 #define _SSSEL                  0x02
1430 
1431 //==============================================================================
1432 
1433 
1434 //==============================================================================
1435 //        ANSELA Bits
1436 
1437 extern __at(0x018C) __sfr ANSELA;
1438 
1439 typedef struct
1440   {
1441   unsigned ANSA0                : 1;
1442   unsigned ANSA1                : 1;
1443   unsigned ANSA2                : 1;
1444   unsigned ANSA3                : 1;
1445   unsigned                      : 1;
1446   unsigned ANSA5                : 1;
1447   unsigned                      : 1;
1448   unsigned                      : 1;
1449   } __ANSELAbits_t;
1450 
1451 extern __at(0x018C) volatile __ANSELAbits_t ANSELAbits;
1452 
1453 #define _ANSA0                  0x01
1454 #define _ANSA1                  0x02
1455 #define _ANSA2                  0x04
1456 #define _ANSA3                  0x08
1457 #define _ANSA5                  0x20
1458 
1459 //==============================================================================
1460 
1461 
1462 //==============================================================================
1463 //        ANSELB Bits
1464 
1465 extern __at(0x018D) __sfr ANSELB;
1466 
1467 typedef union
1468   {
1469   struct
1470     {
1471     unsigned ANSB0              : 1;
1472     unsigned ANSB1              : 1;
1473     unsigned ANSB2              : 1;
1474     unsigned ANSB3              : 1;
1475     unsigned ANSB4              : 1;
1476     unsigned ANSB5              : 1;
1477     unsigned                    : 1;
1478     unsigned                    : 1;
1479     };
1480 
1481   struct
1482     {
1483     unsigned ANSB               : 6;
1484     unsigned                    : 2;
1485     };
1486   } __ANSELBbits_t;
1487 
1488 extern __at(0x018D) volatile __ANSELBbits_t ANSELBbits;
1489 
1490 #define _ANSB0                  0x01
1491 #define _ANSB1                  0x02
1492 #define _ANSB2                  0x04
1493 #define _ANSB3                  0x08
1494 #define _ANSB4                  0x10
1495 #define _ANSB5                  0x20
1496 
1497 //==============================================================================
1498 
1499 
1500 //==============================================================================
1501 //        ANSELC Bits
1502 
1503 extern __at(0x018E) __sfr ANSELC;
1504 
1505 typedef struct
1506   {
1507   unsigned                      : 1;
1508   unsigned                      : 1;
1509   unsigned ANSC2                : 1;
1510   unsigned ANSC3                : 1;
1511   unsigned ANSC4                : 1;
1512   unsigned ANSC5                : 1;
1513   unsigned ANSC6                : 1;
1514   unsigned ANSC7                : 1;
1515   } __ANSELCbits_t;
1516 
1517 extern __at(0x018E) volatile __ANSELCbits_t ANSELCbits;
1518 
1519 #define _ANSC2                  0x04
1520 #define _ANSC3                  0x08
1521 #define _ANSC4                  0x10
1522 #define _ANSC5                  0x20
1523 #define _ANSC6                  0x40
1524 #define _ANSC7                  0x80
1525 
1526 //==============================================================================
1527 
1528 
1529 //==============================================================================
1530 //        ANSELD Bits
1531 
1532 extern __at(0x018F) __sfr ANSELD;
1533 
1534 typedef struct
1535   {
1536   unsigned ANSD0                : 1;
1537   unsigned ANSD1                : 1;
1538   unsigned ANSD2                : 1;
1539   unsigned ANSD3                : 1;
1540   unsigned ANSD4                : 1;
1541   unsigned ANSD5                : 1;
1542   unsigned ANSD6                : 1;
1543   unsigned ANSD7                : 1;
1544   } __ANSELDbits_t;
1545 
1546 extern __at(0x018F) volatile __ANSELDbits_t ANSELDbits;
1547 
1548 #define _ANSD0                  0x01
1549 #define _ANSD1                  0x02
1550 #define _ANSD2                  0x04
1551 #define _ANSD3                  0x08
1552 #define _ANSD4                  0x10
1553 #define _ANSD5                  0x20
1554 #define _ANSD6                  0x40
1555 #define _ANSD7                  0x80
1556 
1557 //==============================================================================
1558 
1559 
1560 //==============================================================================
1561 //        ANSELE Bits
1562 
1563 extern __at(0x0190) __sfr ANSELE;
1564 
1565 typedef union
1566   {
1567   struct
1568     {
1569     unsigned ANSE0              : 1;
1570     unsigned ANSE1              : 1;
1571     unsigned ANSE2              : 1;
1572     unsigned                    : 1;
1573     unsigned                    : 1;
1574     unsigned                    : 1;
1575     unsigned                    : 1;
1576     unsigned                    : 1;
1577     };
1578 
1579   struct
1580     {
1581     unsigned ANSE               : 3;
1582     unsigned                    : 5;
1583     };
1584   } __ANSELEbits_t;
1585 
1586 extern __at(0x0190) volatile __ANSELEbits_t ANSELEbits;
1587 
1588 #define _ANSE0                  0x01
1589 #define _ANSE1                  0x02
1590 #define _ANSE2                  0x04
1591 
1592 //==============================================================================
1593 
1594 extern __at(0x0191) __sfr PMADR;
1595 extern __at(0x0191) __sfr PMADRL;
1596 extern __at(0x0192) __sfr PMADRH;
1597 extern __at(0x0193) __sfr PMDAT;
1598 extern __at(0x0193) __sfr PMDATL;
1599 extern __at(0x0194) __sfr PMDATH;
1600 
1601 //==============================================================================
1602 //        PMCON1 Bits
1603 
1604 extern __at(0x0195) __sfr PMCON1;
1605 
1606 typedef struct
1607   {
1608   unsigned RD                   : 1;
1609   unsigned WR                   : 1;
1610   unsigned WREN                 : 1;
1611   unsigned WRERR                : 1;
1612   unsigned FREE                 : 1;
1613   unsigned LWLO                 : 1;
1614   unsigned CFGS                 : 1;
1615   unsigned                      : 1;
1616   } __PMCON1bits_t;
1617 
1618 extern __at(0x0195) volatile __PMCON1bits_t PMCON1bits;
1619 
1620 #define _RD                     0x01
1621 #define _WR                     0x02
1622 #define _WREN                   0x04
1623 #define _WRERR                  0x08
1624 #define _FREE                   0x10
1625 #define _LWLO                   0x20
1626 #define _CFGS                   0x40
1627 
1628 //==============================================================================
1629 
1630 extern __at(0x0196) __sfr PMCON2;
1631 
1632 //==============================================================================
1633 //        VREGCON Bits
1634 
1635 extern __at(0x0197) __sfr VREGCON;
1636 
1637 typedef struct
1638   {
1639   unsigned reserved             : 1;
1640   unsigned VREGPM               : 1;
1641   unsigned                      : 1;
1642   unsigned                      : 1;
1643   unsigned                      : 1;
1644   unsigned                      : 1;
1645   unsigned                      : 1;
1646   unsigned                      : 1;
1647   } __VREGCONbits_t;
1648 
1649 extern __at(0x0197) volatile __VREGCONbits_t VREGCONbits;
1650 
1651 #define _reserved               0x01
1652 #define _VREGPM                 0x02
1653 
1654 //==============================================================================
1655 
1656 extern __at(0x0199) __sfr RCREG;
1657 extern __at(0x019A) __sfr TXREG;
1658 extern __at(0x019B) __sfr SP1BRG;
1659 extern __at(0x019B) __sfr SP1BRGL;
1660 extern __at(0x019B) __sfr SPBRG;
1661 extern __at(0x019B) __sfr SPBRGL;
1662 extern __at(0x019C) __sfr SP1BRGH;
1663 extern __at(0x019C) __sfr SPBRGH;
1664 
1665 //==============================================================================
1666 //        RCSTA Bits
1667 
1668 extern __at(0x019D) __sfr RCSTA;
1669 
1670 typedef struct
1671   {
1672   unsigned RX9D                 : 1;
1673   unsigned OERR                 : 1;
1674   unsigned FERR                 : 1;
1675   unsigned ADDEN                : 1;
1676   unsigned CREN                 : 1;
1677   unsigned SREN                 : 1;
1678   unsigned RX9                  : 1;
1679   unsigned SPEN                 : 1;
1680   } __RCSTAbits_t;
1681 
1682 extern __at(0x019D) volatile __RCSTAbits_t RCSTAbits;
1683 
1684 #define _RX9D                   0x01
1685 #define _OERR                   0x02
1686 #define _FERR                   0x04
1687 #define _ADDEN                  0x08
1688 #define _CREN                   0x10
1689 #define _SREN                   0x20
1690 #define _RX9                    0x40
1691 #define _SPEN                   0x80
1692 
1693 //==============================================================================
1694 
1695 
1696 //==============================================================================
1697 //        TXSTA Bits
1698 
1699 extern __at(0x019E) __sfr TXSTA;
1700 
1701 typedef struct
1702   {
1703   unsigned TX9D                 : 1;
1704   unsigned TRMT                 : 1;
1705   unsigned BRGH                 : 1;
1706   unsigned SENDB                : 1;
1707   unsigned SYNC                 : 1;
1708   unsigned TXEN                 : 1;
1709   unsigned TX9                  : 1;
1710   unsigned CSRC                 : 1;
1711   } __TXSTAbits_t;
1712 
1713 extern __at(0x019E) volatile __TXSTAbits_t TXSTAbits;
1714 
1715 #define _TX9D                   0x01
1716 #define _TRMT                   0x02
1717 #define _BRGH                   0x04
1718 #define _SENDB                  0x08
1719 #define _SYNC                   0x10
1720 #define _TXEN                   0x20
1721 #define _TX9                    0x40
1722 #define _CSRC                   0x80
1723 
1724 //==============================================================================
1725 
1726 
1727 //==============================================================================
1728 //        BAUDCON Bits
1729 
1730 extern __at(0x019F) __sfr BAUDCON;
1731 
1732 typedef struct
1733   {
1734   unsigned ABDEN                : 1;
1735   unsigned WUE                  : 1;
1736   unsigned                      : 1;
1737   unsigned BRG16                : 1;
1738   unsigned SCKP                 : 1;
1739   unsigned                      : 1;
1740   unsigned RCIDL                : 1;
1741   unsigned ABDOVF               : 1;
1742   } __BAUDCONbits_t;
1743 
1744 extern __at(0x019F) volatile __BAUDCONbits_t BAUDCONbits;
1745 
1746 #define _ABDEN                  0x01
1747 #define _WUE                    0x02
1748 #define _BRG16                  0x08
1749 #define _SCKP                   0x10
1750 #define _RCIDL                  0x40
1751 #define _ABDOVF                 0x80
1752 
1753 //==============================================================================
1754 
1755 
1756 //==============================================================================
1757 //        WPUB Bits
1758 
1759 extern __at(0x020D) __sfr WPUB;
1760 
1761 typedef struct
1762   {
1763   unsigned WPUB0                : 1;
1764   unsigned WPUB1                : 1;
1765   unsigned WPUB2                : 1;
1766   unsigned WPUB3                : 1;
1767   unsigned WPUB4                : 1;
1768   unsigned WPUB5                : 1;
1769   unsigned WPUB6                : 1;
1770   unsigned WPUB7                : 1;
1771   } __WPUBbits_t;
1772 
1773 extern __at(0x020D) volatile __WPUBbits_t WPUBbits;
1774 
1775 #define _WPUB0                  0x01
1776 #define _WPUB1                  0x02
1777 #define _WPUB2                  0x04
1778 #define _WPUB3                  0x08
1779 #define _WPUB4                  0x10
1780 #define _WPUB5                  0x20
1781 #define _WPUB6                  0x40
1782 #define _WPUB7                  0x80
1783 
1784 //==============================================================================
1785 
1786 
1787 //==============================================================================
1788 //        WPUE Bits
1789 
1790 extern __at(0x0210) __sfr WPUE;
1791 
1792 typedef struct
1793   {
1794   unsigned                      : 1;
1795   unsigned                      : 1;
1796   unsigned                      : 1;
1797   unsigned WPUE3                : 1;
1798   unsigned                      : 1;
1799   unsigned                      : 1;
1800   unsigned                      : 1;
1801   unsigned                      : 1;
1802   } __WPUEbits_t;
1803 
1804 extern __at(0x0210) volatile __WPUEbits_t WPUEbits;
1805 
1806 #define _WPUE3                  0x08
1807 
1808 //==============================================================================
1809 
1810 extern __at(0x0211) __sfr SSP1BUF;
1811 extern __at(0x0211) __sfr SSPBUF;
1812 extern __at(0x0212) __sfr SSP1ADD;
1813 extern __at(0x0212) __sfr SSPADD;
1814 extern __at(0x0213) __sfr SSP1MSK;
1815 extern __at(0x0213) __sfr SSPMSK;
1816 
1817 //==============================================================================
1818 //        SSP1STAT Bits
1819 
1820 extern __at(0x0214) __sfr SSP1STAT;
1821 
1822 typedef struct
1823   {
1824   unsigned BF                   : 1;
1825   unsigned UA                   : 1;
1826   unsigned R_NOT_W              : 1;
1827   unsigned S                    : 1;
1828   unsigned P                    : 1;
1829   unsigned D_NOT_A              : 1;
1830   unsigned CKE                  : 1;
1831   unsigned SMP                  : 1;
1832   } __SSP1STATbits_t;
1833 
1834 extern __at(0x0214) volatile __SSP1STATbits_t SSP1STATbits;
1835 
1836 #define _BF                     0x01
1837 #define _UA                     0x02
1838 #define _R_NOT_W                0x04
1839 #define _S                      0x08
1840 #define _P                      0x10
1841 #define _D_NOT_A                0x20
1842 #define _CKE                    0x40
1843 #define _SMP                    0x80
1844 
1845 //==============================================================================
1846 
1847 
1848 //==============================================================================
1849 //        SSPSTAT Bits
1850 
1851 extern __at(0x0214) __sfr SSPSTAT;
1852 
1853 typedef struct
1854   {
1855   unsigned BF                   : 1;
1856   unsigned UA                   : 1;
1857   unsigned R_NOT_W              : 1;
1858   unsigned S                    : 1;
1859   unsigned P                    : 1;
1860   unsigned D_NOT_A              : 1;
1861   unsigned CKE                  : 1;
1862   unsigned SMP                  : 1;
1863   } __SSPSTATbits_t;
1864 
1865 extern __at(0x0214) volatile __SSPSTATbits_t SSPSTATbits;
1866 
1867 #define _SSPSTAT_BF             0x01
1868 #define _SSPSTAT_UA             0x02
1869 #define _SSPSTAT_R_NOT_W        0x04
1870 #define _SSPSTAT_S              0x08
1871 #define _SSPSTAT_P              0x10
1872 #define _SSPSTAT_D_NOT_A        0x20
1873 #define _SSPSTAT_CKE            0x40
1874 #define _SSPSTAT_SMP            0x80
1875 
1876 //==============================================================================
1877 
1878 
1879 //==============================================================================
1880 //        SSP1CON1 Bits
1881 
1882 extern __at(0x0215) __sfr SSP1CON1;
1883 
1884 typedef union
1885   {
1886   struct
1887     {
1888     unsigned SSPM0              : 1;
1889     unsigned SSPM1              : 1;
1890     unsigned SSPM2              : 1;
1891     unsigned SSPM3              : 1;
1892     unsigned CKP                : 1;
1893     unsigned SSPEN              : 1;
1894     unsigned SSPOV              : 1;
1895     unsigned WCOL               : 1;
1896     };
1897 
1898   struct
1899     {
1900     unsigned SSPM               : 4;
1901     unsigned                    : 4;
1902     };
1903   } __SSP1CON1bits_t;
1904 
1905 extern __at(0x0215) volatile __SSP1CON1bits_t SSP1CON1bits;
1906 
1907 #define _SSPM0                  0x01
1908 #define _SSPM1                  0x02
1909 #define _SSPM2                  0x04
1910 #define _SSPM3                  0x08
1911 #define _CKP                    0x10
1912 #define _SSPEN                  0x20
1913 #define _SSPOV                  0x40
1914 #define _WCOL                   0x80
1915 
1916 //==============================================================================
1917 
1918 
1919 //==============================================================================
1920 //        SSPCON Bits
1921 
1922 extern __at(0x0215) __sfr SSPCON;
1923 
1924 typedef union
1925   {
1926   struct
1927     {
1928     unsigned SSPM0              : 1;
1929     unsigned SSPM1              : 1;
1930     unsigned SSPM2              : 1;
1931     unsigned SSPM3              : 1;
1932     unsigned CKP                : 1;
1933     unsigned SSPEN              : 1;
1934     unsigned SSPOV              : 1;
1935     unsigned WCOL               : 1;
1936     };
1937 
1938   struct
1939     {
1940     unsigned SSPM               : 4;
1941     unsigned                    : 4;
1942     };
1943   } __SSPCONbits_t;
1944 
1945 extern __at(0x0215) volatile __SSPCONbits_t SSPCONbits;
1946 
1947 #define _SSPCON_SSPM0           0x01
1948 #define _SSPCON_SSPM1           0x02
1949 #define _SSPCON_SSPM2           0x04
1950 #define _SSPCON_SSPM3           0x08
1951 #define _SSPCON_CKP             0x10
1952 #define _SSPCON_SSPEN           0x20
1953 #define _SSPCON_SSPOV           0x40
1954 #define _SSPCON_WCOL            0x80
1955 
1956 //==============================================================================
1957 
1958 
1959 //==============================================================================
1960 //        SSPCON1 Bits
1961 
1962 extern __at(0x0215) __sfr SSPCON1;
1963 
1964 typedef union
1965   {
1966   struct
1967     {
1968     unsigned SSPM0              : 1;
1969     unsigned SSPM1              : 1;
1970     unsigned SSPM2              : 1;
1971     unsigned SSPM3              : 1;
1972     unsigned CKP                : 1;
1973     unsigned SSPEN              : 1;
1974     unsigned SSPOV              : 1;
1975     unsigned WCOL               : 1;
1976     };
1977 
1978   struct
1979     {
1980     unsigned SSPM               : 4;
1981     unsigned                    : 4;
1982     };
1983   } __SSPCON1bits_t;
1984 
1985 extern __at(0x0215) volatile __SSPCON1bits_t SSPCON1bits;
1986 
1987 #define _SSPCON1_SSPM0          0x01
1988 #define _SSPCON1_SSPM1          0x02
1989 #define _SSPCON1_SSPM2          0x04
1990 #define _SSPCON1_SSPM3          0x08
1991 #define _SSPCON1_CKP            0x10
1992 #define _SSPCON1_SSPEN          0x20
1993 #define _SSPCON1_SSPOV          0x40
1994 #define _SSPCON1_WCOL           0x80
1995 
1996 //==============================================================================
1997 
1998 
1999 //==============================================================================
2000 //        SSP1CON2 Bits
2001 
2002 extern __at(0x0216) __sfr SSP1CON2;
2003 
2004 typedef struct
2005   {
2006   unsigned SEN                  : 1;
2007   unsigned RSEN                 : 1;
2008   unsigned PEN                  : 1;
2009   unsigned RCEN                 : 1;
2010   unsigned ACKEN                : 1;
2011   unsigned ACKDT                : 1;
2012   unsigned ACKSTAT              : 1;
2013   unsigned GCEN                 : 1;
2014   } __SSP1CON2bits_t;
2015 
2016 extern __at(0x0216) volatile __SSP1CON2bits_t SSP1CON2bits;
2017 
2018 #define _SEN                    0x01
2019 #define _RSEN                   0x02
2020 #define _PEN                    0x04
2021 #define _RCEN                   0x08
2022 #define _ACKEN                  0x10
2023 #define _ACKDT                  0x20
2024 #define _ACKSTAT                0x40
2025 #define _GCEN                   0x80
2026 
2027 //==============================================================================
2028 
2029 
2030 //==============================================================================
2031 //        SSPCON2 Bits
2032 
2033 extern __at(0x0216) __sfr SSPCON2;
2034 
2035 typedef struct
2036   {
2037   unsigned SEN                  : 1;
2038   unsigned RSEN                 : 1;
2039   unsigned PEN                  : 1;
2040   unsigned RCEN                 : 1;
2041   unsigned ACKEN                : 1;
2042   unsigned ACKDT                : 1;
2043   unsigned ACKSTAT              : 1;
2044   unsigned GCEN                 : 1;
2045   } __SSPCON2bits_t;
2046 
2047 extern __at(0x0216) volatile __SSPCON2bits_t SSPCON2bits;
2048 
2049 #define _SSPCON2_SEN            0x01
2050 #define _SSPCON2_RSEN           0x02
2051 #define _SSPCON2_PEN            0x04
2052 #define _SSPCON2_RCEN           0x08
2053 #define _SSPCON2_ACKEN          0x10
2054 #define _SSPCON2_ACKDT          0x20
2055 #define _SSPCON2_ACKSTAT        0x40
2056 #define _SSPCON2_GCEN           0x80
2057 
2058 //==============================================================================
2059 
2060 
2061 //==============================================================================
2062 //        SSP1CON3 Bits
2063 
2064 extern __at(0x0217) __sfr SSP1CON3;
2065 
2066 typedef struct
2067   {
2068   unsigned DHEN                 : 1;
2069   unsigned AHEN                 : 1;
2070   unsigned SBCDE                : 1;
2071   unsigned SDAHT                : 1;
2072   unsigned BOEN                 : 1;
2073   unsigned SCIE                 : 1;
2074   unsigned PCIE                 : 1;
2075   unsigned ACKTIM               : 1;
2076   } __SSP1CON3bits_t;
2077 
2078 extern __at(0x0217) volatile __SSP1CON3bits_t SSP1CON3bits;
2079 
2080 #define _DHEN                   0x01
2081 #define _AHEN                   0x02
2082 #define _SBCDE                  0x04
2083 #define _SDAHT                  0x08
2084 #define _BOEN                   0x10
2085 #define _SCIE                   0x20
2086 #define _PCIE                   0x40
2087 #define _ACKTIM                 0x80
2088 
2089 //==============================================================================
2090 
2091 
2092 //==============================================================================
2093 //        SSPCON3 Bits
2094 
2095 extern __at(0x0217) __sfr SSPCON3;
2096 
2097 typedef struct
2098   {
2099   unsigned DHEN                 : 1;
2100   unsigned AHEN                 : 1;
2101   unsigned SBCDE                : 1;
2102   unsigned SDAHT                : 1;
2103   unsigned BOEN                 : 1;
2104   unsigned SCIE                 : 1;
2105   unsigned PCIE                 : 1;
2106   unsigned ACKTIM               : 1;
2107   } __SSPCON3bits_t;
2108 
2109 extern __at(0x0217) volatile __SSPCON3bits_t SSPCON3bits;
2110 
2111 #define _SSPCON3_DHEN           0x01
2112 #define _SSPCON3_AHEN           0x02
2113 #define _SSPCON3_SBCDE          0x04
2114 #define _SSPCON3_SDAHT          0x08
2115 #define _SSPCON3_BOEN           0x10
2116 #define _SSPCON3_SCIE           0x20
2117 #define _SSPCON3_PCIE           0x40
2118 #define _SSPCON3_ACKTIM         0x80
2119 
2120 //==============================================================================
2121 
2122 extern __at(0x0291) __sfr CCPR1;
2123 extern __at(0x0291) __sfr CCPR1L;
2124 extern __at(0x0292) __sfr CCPR1H;
2125 
2126 //==============================================================================
2127 //        CCP1CON Bits
2128 
2129 extern __at(0x0293) __sfr CCP1CON;
2130 
2131 typedef union
2132   {
2133   struct
2134     {
2135     unsigned CCP1M0             : 1;
2136     unsigned CCP1M1             : 1;
2137     unsigned CCP1M2             : 1;
2138     unsigned CCP1M3             : 1;
2139     unsigned DC1B0              : 1;
2140     unsigned DC1B1              : 1;
2141     unsigned                    : 1;
2142     unsigned                    : 1;
2143     };
2144 
2145   struct
2146     {
2147     unsigned CCP1M              : 4;
2148     unsigned                    : 4;
2149     };
2150 
2151   struct
2152     {
2153     unsigned                    : 4;
2154     unsigned DC1B               : 2;
2155     unsigned                    : 2;
2156     };
2157   } __CCP1CONbits_t;
2158 
2159 extern __at(0x0293) volatile __CCP1CONbits_t CCP1CONbits;
2160 
2161 #define _CCP1M0                 0x01
2162 #define _CCP1M1                 0x02
2163 #define _CCP1M2                 0x04
2164 #define _CCP1M3                 0x08
2165 #define _DC1B0                  0x10
2166 #define _DC1B1                  0x20
2167 
2168 //==============================================================================
2169 
2170 extern __at(0x0298) __sfr CCPR2;
2171 extern __at(0x0298) __sfr CCPR2L;
2172 extern __at(0x0299) __sfr CCPR2H;
2173 
2174 //==============================================================================
2175 //        CCP2CON Bits
2176 
2177 extern __at(0x029A) __sfr CCP2CON;
2178 
2179 typedef union
2180   {
2181   struct
2182     {
2183     unsigned CCP2M0             : 1;
2184     unsigned CCP2M1             : 1;
2185     unsigned CCP2M2             : 1;
2186     unsigned CCP2M3             : 1;
2187     unsigned DC2B0              : 1;
2188     unsigned DC2B1              : 1;
2189     unsigned                    : 1;
2190     unsigned                    : 1;
2191     };
2192 
2193   struct
2194     {
2195     unsigned CCP2M              : 4;
2196     unsigned                    : 4;
2197     };
2198 
2199   struct
2200     {
2201     unsigned                    : 4;
2202     unsigned DC2B               : 2;
2203     unsigned                    : 2;
2204     };
2205   } __CCP2CONbits_t;
2206 
2207 extern __at(0x029A) volatile __CCP2CONbits_t CCP2CONbits;
2208 
2209 #define _CCP2M0                 0x01
2210 #define _CCP2M1                 0x02
2211 #define _CCP2M2                 0x04
2212 #define _CCP2M3                 0x08
2213 #define _DC2B0                  0x10
2214 #define _DC2B1                  0x20
2215 
2216 //==============================================================================
2217 
2218 
2219 //==============================================================================
2220 //        IOCBP Bits
2221 
2222 extern __at(0x0394) __sfr IOCBP;
2223 
2224 typedef struct
2225   {
2226   unsigned IOCBP0               : 1;
2227   unsigned IOCBP1               : 1;
2228   unsigned IOCBP2               : 1;
2229   unsigned IOCBP3               : 1;
2230   unsigned IOCBP4               : 1;
2231   unsigned IOCBP5               : 1;
2232   unsigned IOCBP6               : 1;
2233   unsigned IOCBP7               : 1;
2234   } __IOCBPbits_t;
2235 
2236 extern __at(0x0394) volatile __IOCBPbits_t IOCBPbits;
2237 
2238 #define _IOCBP0                 0x01
2239 #define _IOCBP1                 0x02
2240 #define _IOCBP2                 0x04
2241 #define _IOCBP3                 0x08
2242 #define _IOCBP4                 0x10
2243 #define _IOCBP5                 0x20
2244 #define _IOCBP6                 0x40
2245 #define _IOCBP7                 0x80
2246 
2247 //==============================================================================
2248 
2249 
2250 //==============================================================================
2251 //        IOCBN Bits
2252 
2253 extern __at(0x0395) __sfr IOCBN;
2254 
2255 typedef struct
2256   {
2257   unsigned IOCBN0               : 1;
2258   unsigned IOCBN1               : 1;
2259   unsigned IOCBN2               : 1;
2260   unsigned IOCBN3               : 1;
2261   unsigned IOCBN4               : 1;
2262   unsigned IOCBN5               : 1;
2263   unsigned IOCBN6               : 1;
2264   unsigned IOCBN7               : 1;
2265   } __IOCBNbits_t;
2266 
2267 extern __at(0x0395) volatile __IOCBNbits_t IOCBNbits;
2268 
2269 #define _IOCBN0                 0x01
2270 #define _IOCBN1                 0x02
2271 #define _IOCBN2                 0x04
2272 #define _IOCBN3                 0x08
2273 #define _IOCBN4                 0x10
2274 #define _IOCBN5                 0x20
2275 #define _IOCBN6                 0x40
2276 #define _IOCBN7                 0x80
2277 
2278 //==============================================================================
2279 
2280 
2281 //==============================================================================
2282 //        IOCBF Bits
2283 
2284 extern __at(0x0396) __sfr IOCBF;
2285 
2286 typedef struct
2287   {
2288   unsigned IOCBF0               : 1;
2289   unsigned IOCBF1               : 1;
2290   unsigned IOCBF2               : 1;
2291   unsigned IOCBF3               : 1;
2292   unsigned IOCBF4               : 1;
2293   unsigned IOCBF5               : 1;
2294   unsigned IOCBF6               : 1;
2295   unsigned IOCBF7               : 1;
2296   } __IOCBFbits_t;
2297 
2298 extern __at(0x0396) volatile __IOCBFbits_t IOCBFbits;
2299 
2300 #define _IOCBF0                 0x01
2301 #define _IOCBF1                 0x02
2302 #define _IOCBF2                 0x04
2303 #define _IOCBF3                 0x08
2304 #define _IOCBF4                 0x10
2305 #define _IOCBF5                 0x20
2306 #define _IOCBF6                 0x40
2307 #define _IOCBF7                 0x80
2308 
2309 //==============================================================================
2310 
2311 
2312 //==============================================================================
2313 //        STATUS_SHAD Bits
2314 
2315 extern __at(0x0FE4) __sfr STATUS_SHAD;
2316 
2317 typedef struct
2318   {
2319   unsigned C_SHAD               : 1;
2320   unsigned DC_SHAD              : 1;
2321   unsigned Z_SHAD               : 1;
2322   unsigned                      : 1;
2323   unsigned                      : 1;
2324   unsigned                      : 1;
2325   unsigned                      : 1;
2326   unsigned                      : 1;
2327   } __STATUS_SHADbits_t;
2328 
2329 extern __at(0x0FE4) volatile __STATUS_SHADbits_t STATUS_SHADbits;
2330 
2331 #define _C_SHAD                 0x01
2332 #define _DC_SHAD                0x02
2333 #define _Z_SHAD                 0x04
2334 
2335 //==============================================================================
2336 
2337 extern __at(0x0FE5) __sfr WREG_SHAD;
2338 extern __at(0x0FE6) __sfr BSR_SHAD;
2339 extern __at(0x0FE7) __sfr PCLATH_SHAD;
2340 extern __at(0x0FE8) __sfr FSR0L_SHAD;
2341 extern __at(0x0FE9) __sfr FSR0H_SHAD;
2342 extern __at(0x0FEA) __sfr FSR1L_SHAD;
2343 extern __at(0x0FEB) __sfr FSR1H_SHAD;
2344 extern __at(0x0FED) __sfr STKPTR;
2345 extern __at(0x0FEE) __sfr TOSL;
2346 extern __at(0x0FEF) __sfr TOSH;
2347 
2348 //==============================================================================
2349 //
2350 //        Configuration Bits
2351 //
2352 //==============================================================================
2353 
2354 #define _CONFIG1                0x8007
2355 #define _CONFIG2                0x8008
2356 
2357 //----------------------------- CONFIG1 Options -------------------------------
2358 
2359 #define _FOSC_LP                0x3FF8  // LP Oscillator, Low-power crystal connected between OSC1 and OSC2 pins.
2360 #define _FOSC_XT                0x3FF9  // XT Oscillator, Crystal/resonator connected between OSC1 and OSC2 pins.
2361 #define _FOSC_HS                0x3FFA  // HS Oscillator, High-speed crystal/resonator connected between OSC1 and OSC2 pins.
2362 #define _FOSC_EXTRC             0x3FFB  // EXTRC oscillator: External RC circuit connected to CLKIN pin.
2363 #define _FOSC_INTOSC            0x3FFC  // INTOSC oscillator: I/O function on CLKIN pin.
2364 #define _FOSC_ECL               0x3FFD  // ECL, External Clock, Low Power Mode (0-0.5 MHz): device clock supplied to CLKIN pin.
2365 #define _FOSC_ECM               0x3FFE  // ECM, External Clock, Medium Power Mode (0.5-4 MHz): device clock supplied to CLKIN pin.
2366 #define _FOSC_ECH               0x3FFF  // ECH, External Clock, High Power Mode (4-20 MHz): device clock supplied to CLKIN pin.
2367 #define _WDTE_OFF               0x3FE7  // WDT disabled.
2368 #define _WDTE_SWDTEN            0x3FEF  // WDT controlled by the SWDTEN bit in the WDTCON register.
2369 #define _WDTE_NSLEEP            0x3FF7  // WDT enabled while running and disabled in Sleep.
2370 #define _WDTE_ON                0x3FFF  // WDT enabled.
2371 #define _PWRTE_ON               0x3FDF  // PWRT enabled.
2372 #define _PWRTE_OFF              0x3FFF  // PWRT disabled.
2373 #define _MCLRE_OFF              0x3FBF  // MCLR/VPP pin function is digital input.
2374 #define _MCLRE_ON               0x3FFF  // MCLR/VPP pin function is MCLR.
2375 #define _CP_ON                  0x3F7F  // Program memory code protection is enabled.
2376 #define _CP_OFF                 0x3FFF  // Program memory code protection is disabled.
2377 #define _BOREN_OFF              0x39FF  // Brown-out Reset disabled.
2378 #define _BOREN_SBODEN           0x3BFF  // Brown-out Reset controlled by the SBOREN bit in the BORCON register.
2379 #define _BOREN_NSLEEP           0x3DFF  // Brown-out Reset enabled while running and disabled in Sleep.
2380 #define _BOREN_ON               0x3FFF  // Brown-out Reset enabled.
2381 #define _CLKOUTEN_ON            0x37FF  // CLKOUT function is enabled on the CLKOUT pin.
2382 #define _CLKOUTEN_OFF           0x3FFF  // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin.
2383 #define _IESO_OFF               0x2FFF  // Internal/External Switchover mode is disabled.
2384 #define _IESO_ON                0x3FFF  // Internal/External Switchover mode is enabled.
2385 #define _FCMEN_OFF              0x1FFF  // Fail-Safe Clock Monitor is disabled.
2386 #define _FCMEN_ON               0x3FFF  // Fail-Safe Clock Monitor is enabled.
2387 
2388 //----------------------------- CONFIG2 Options -------------------------------
2389 
2390 #define _WRT_ALL                0x3FFC  // 000h to 3FFFh write protected, no addresses may be modified by EECON control.
2391 #define _WRT_HALF               0x3FFD  // 000h to 1FFFh write protected, 2000h to 3FFFh may be modified by EECON control.
2392 #define _WRT_BOOT               0x3FFE  // 000h to 1FFh write protected, 200h to 3FFFh may be modified by EECON control.
2393 #define _WRT_OFF                0x3FFF  // Write protection off.
2394 #define _VCAPEN_ON              0x3FEF  // VCAP pin function enabled.
2395 #define _VCAPEN_OFF             0x3FFF  // VCAP pin function disabled.
2396 #define _STVREN_OFF             0x3DFF  // Stack Overflow or Underflow will not cause a Reset.
2397 #define _STVREN_ON              0x3FFF  // Stack Overflow or Underflow will cause a Reset.
2398 #define _BORV_HI                0x3BFF  // Brown-out Reset Voltage (Vbor), high trip point selected.
2399 #define _BORV_LO                0x3FFF  // Brown-out Reset Voltage (Vbor), low trip point selected.
2400 #define _LPBOR_ON               0x37FF  // Low-Power BOR is enabled.
2401 #define _LPBOR_OFF              0x3FFF  // Low-Power BOR is disabled.
2402 #define _DEBUG_ON               0x2FFF  // In-Circuit Debugger enabled, ICSPCLK and ICSPDAT are dedicated to the debugger.
2403 #define _DEBUG_OFF              0x3FFF  // In-Circuit Debugger disabled, ICSPCLK and ICSPDAT are general purpose I/O pins.
2404 #define _LVP_OFF                0x1FFF  // High-voltage on MCLR/VPP must be used for programming.
2405 #define _LVP_ON                 0x3FFF  // Low-voltage programming enabled.
2406 
2407 //==============================================================================
2408 
2409 #define _DEVID1                 0x8006
2410 
2411 #define _IDLOC0                 0x8000
2412 #define _IDLOC1                 0x8001
2413 #define _IDLOC2                 0x8002
2414 #define _IDLOC3                 0x8003
2415 
2416 //==============================================================================
2417 
2418 #ifndef NO_BIT_DEFINES
2419 
2420 #define ADON                    ADCON0bits.ADON                 // bit 0
2421 #define GO_NOT_DONE             ADCON0bits.GO_NOT_DONE          // bit 1, shadows bit in ADCON0bits
2422 #define ADGO                    ADCON0bits.ADGO                 // bit 1, shadows bit in ADCON0bits
2423 #define GO                      ADCON0bits.GO                   // bit 1, shadows bit in ADCON0bits
2424 #define CHS0                    ADCON0bits.CHS0                 // bit 2
2425 #define CHS1                    ADCON0bits.CHS1                 // bit 3
2426 #define CHS2                    ADCON0bits.CHS2                 // bit 4
2427 #define CHS3                    ADCON0bits.CHS3                 // bit 5
2428 #define CHS4                    ADCON0bits.CHS4                 // bit 6
2429 
2430 #define ADPREF0                 ADCON1bits.ADPREF0              // bit 0
2431 #define ADPREF1                 ADCON1bits.ADPREF1              // bit 1
2432 #define ADCS0                   ADCON1bits.ADCS0                // bit 4
2433 #define ADCS1                   ADCON1bits.ADCS1                // bit 5
2434 #define ADCS2                   ADCON1bits.ADCS2                // bit 6
2435 #define ADFM                    ADCON1bits.ADFM                 // bit 7
2436 
2437 #define ANSA0                   ANSELAbits.ANSA0                // bit 0
2438 #define ANSA1                   ANSELAbits.ANSA1                // bit 1
2439 #define ANSA2                   ANSELAbits.ANSA2                // bit 2
2440 #define ANSA3                   ANSELAbits.ANSA3                // bit 3
2441 #define ANSA5                   ANSELAbits.ANSA5                // bit 5
2442 
2443 #define ANSB0                   ANSELBbits.ANSB0                // bit 0
2444 #define ANSB1                   ANSELBbits.ANSB1                // bit 1
2445 #define ANSB2                   ANSELBbits.ANSB2                // bit 2
2446 #define ANSB3                   ANSELBbits.ANSB3                // bit 3
2447 #define ANSB4                   ANSELBbits.ANSB4                // bit 4
2448 #define ANSB5                   ANSELBbits.ANSB5                // bit 5
2449 
2450 #define ANSC2                   ANSELCbits.ANSC2                // bit 2
2451 #define ANSC3                   ANSELCbits.ANSC3                // bit 3
2452 #define ANSC4                   ANSELCbits.ANSC4                // bit 4
2453 #define ANSC5                   ANSELCbits.ANSC5                // bit 5
2454 #define ANSC6                   ANSELCbits.ANSC6                // bit 6
2455 #define ANSC7                   ANSELCbits.ANSC7                // bit 7
2456 
2457 #define ANSD0                   ANSELDbits.ANSD0                // bit 0
2458 #define ANSD1                   ANSELDbits.ANSD1                // bit 1
2459 #define ANSD2                   ANSELDbits.ANSD2                // bit 2
2460 #define ANSD3                   ANSELDbits.ANSD3                // bit 3
2461 #define ANSD4                   ANSELDbits.ANSD4                // bit 4
2462 #define ANSD5                   ANSELDbits.ANSD5                // bit 5
2463 #define ANSD6                   ANSELDbits.ANSD6                // bit 6
2464 #define ANSD7                   ANSELDbits.ANSD7                // bit 7
2465 
2466 #define ANSE0                   ANSELEbits.ANSE0                // bit 0
2467 #define ANSE1                   ANSELEbits.ANSE1                // bit 1
2468 #define ANSE2                   ANSELEbits.ANSE2                // bit 2
2469 
2470 #define CCP2SEL                 APFCONbits.CCP2SEL              // bit 0
2471 #define SSSEL                   APFCONbits.SSSEL                // bit 1
2472 
2473 #define ABDEN                   BAUDCONbits.ABDEN               // bit 0
2474 #define WUE                     BAUDCONbits.WUE                 // bit 1
2475 #define BRG16                   BAUDCONbits.BRG16               // bit 3
2476 #define SCKP                    BAUDCONbits.SCKP                // bit 4
2477 #define RCIDL                   BAUDCONbits.RCIDL               // bit 6
2478 #define ABDOVF                  BAUDCONbits.ABDOVF              // bit 7
2479 
2480 #define BORRDY                  BORCONbits.BORRDY               // bit 0
2481 #define BORFS                   BORCONbits.BORFS                // bit 6
2482 #define SBOREN                  BORCONbits.SBOREN               // bit 7
2483 
2484 #define BSR0                    BSRbits.BSR0                    // bit 0
2485 #define BSR1                    BSRbits.BSR1                    // bit 1
2486 #define BSR2                    BSRbits.BSR2                    // bit 2
2487 #define BSR3                    BSRbits.BSR3                    // bit 3
2488 #define BSR4                    BSRbits.BSR4                    // bit 4
2489 
2490 #define CCP1M0                  CCP1CONbits.CCP1M0              // bit 0
2491 #define CCP1M1                  CCP1CONbits.CCP1M1              // bit 1
2492 #define CCP1M2                  CCP1CONbits.CCP1M2              // bit 2
2493 #define CCP1M3                  CCP1CONbits.CCP1M3              // bit 3
2494 #define DC1B0                   CCP1CONbits.DC1B0               // bit 4
2495 #define DC1B1                   CCP1CONbits.DC1B1               // bit 5
2496 
2497 #define CCP2M0                  CCP2CONbits.CCP2M0              // bit 0
2498 #define CCP2M1                  CCP2CONbits.CCP2M1              // bit 1
2499 #define CCP2M2                  CCP2CONbits.CCP2M2              // bit 2
2500 #define CCP2M3                  CCP2CONbits.CCP2M3              // bit 3
2501 #define DC2B0                   CCP2CONbits.DC2B0               // bit 4
2502 #define DC2B1                   CCP2CONbits.DC2B1               // bit 5
2503 
2504 #define ADFVR0                  FVRCONbits.ADFVR0               // bit 0
2505 #define ADFVR1                  FVRCONbits.ADFVR1               // bit 1
2506 #define TSRNG                   FVRCONbits.TSRNG                // bit 4
2507 #define TSEN                    FVRCONbits.TSEN                 // bit 5
2508 #define FVRRDY                  FVRCONbits.FVRRDY               // bit 6
2509 #define FVREN                   FVRCONbits.FVREN                // bit 7
2510 
2511 #define IOCIF                   INTCONbits.IOCIF                // bit 0
2512 #define INTF                    INTCONbits.INTF                 // bit 1
2513 #define TMR0IF                  INTCONbits.TMR0IF               // bit 2, shadows bit in INTCONbits
2514 #define T0IF                    INTCONbits.T0IF                 // bit 2, shadows bit in INTCONbits
2515 #define IOCIE                   INTCONbits.IOCIE                // bit 3
2516 #define INTE                    INTCONbits.INTE                 // bit 4
2517 #define TMR0IE                  INTCONbits.TMR0IE               // bit 5, shadows bit in INTCONbits
2518 #define T0IE                    INTCONbits.T0IE                 // bit 5, shadows bit in INTCONbits
2519 #define PEIE                    INTCONbits.PEIE                 // bit 6
2520 #define GIE                     INTCONbits.GIE                  // bit 7
2521 
2522 #define IOCBF0                  IOCBFbits.IOCBF0                // bit 0
2523 #define IOCBF1                  IOCBFbits.IOCBF1                // bit 1
2524 #define IOCBF2                  IOCBFbits.IOCBF2                // bit 2
2525 #define IOCBF3                  IOCBFbits.IOCBF3                // bit 3
2526 #define IOCBF4                  IOCBFbits.IOCBF4                // bit 4
2527 #define IOCBF5                  IOCBFbits.IOCBF5                // bit 5
2528 #define IOCBF6                  IOCBFbits.IOCBF6                // bit 6
2529 #define IOCBF7                  IOCBFbits.IOCBF7                // bit 7
2530 
2531 #define IOCBN0                  IOCBNbits.IOCBN0                // bit 0
2532 #define IOCBN1                  IOCBNbits.IOCBN1                // bit 1
2533 #define IOCBN2                  IOCBNbits.IOCBN2                // bit 2
2534 #define IOCBN3                  IOCBNbits.IOCBN3                // bit 3
2535 #define IOCBN4                  IOCBNbits.IOCBN4                // bit 4
2536 #define IOCBN5                  IOCBNbits.IOCBN5                // bit 5
2537 #define IOCBN6                  IOCBNbits.IOCBN6                // bit 6
2538 #define IOCBN7                  IOCBNbits.IOCBN7                // bit 7
2539 
2540 #define IOCBP0                  IOCBPbits.IOCBP0                // bit 0
2541 #define IOCBP1                  IOCBPbits.IOCBP1                // bit 1
2542 #define IOCBP2                  IOCBPbits.IOCBP2                // bit 2
2543 #define IOCBP3                  IOCBPbits.IOCBP3                // bit 3
2544 #define IOCBP4                  IOCBPbits.IOCBP4                // bit 4
2545 #define IOCBP5                  IOCBPbits.IOCBP5                // bit 5
2546 #define IOCBP6                  IOCBPbits.IOCBP6                // bit 6
2547 #define IOCBP7                  IOCBPbits.IOCBP7                // bit 7
2548 
2549 #define LATA0                   LATAbits.LATA0                  // bit 0
2550 #define LATA1                   LATAbits.LATA1                  // bit 1
2551 #define LATA2                   LATAbits.LATA2                  // bit 2
2552 #define LATA3                   LATAbits.LATA3                  // bit 3
2553 #define LATA4                   LATAbits.LATA4                  // bit 4
2554 #define LATA5                   LATAbits.LATA5                  // bit 5
2555 #define LATA6                   LATAbits.LATA6                  // bit 6
2556 #define LATA7                   LATAbits.LATA7                  // bit 7
2557 
2558 #define LATB0                   LATBbits.LATB0                  // bit 0
2559 #define LATB1                   LATBbits.LATB1                  // bit 1
2560 #define LATB2                   LATBbits.LATB2                  // bit 2
2561 #define LATB3                   LATBbits.LATB3                  // bit 3
2562 #define LATB4                   LATBbits.LATB4                  // bit 4
2563 #define LATB5                   LATBbits.LATB5                  // bit 5
2564 #define LATB6                   LATBbits.LATB6                  // bit 6
2565 #define LATB7                   LATBbits.LATB7                  // bit 7
2566 
2567 #define LATC0                   LATCbits.LATC0                  // bit 0
2568 #define LATC1                   LATCbits.LATC1                  // bit 1
2569 #define LATC2                   LATCbits.LATC2                  // bit 2
2570 #define LATC3                   LATCbits.LATC3                  // bit 3
2571 #define LATC4                   LATCbits.LATC4                  // bit 4
2572 #define LATC5                   LATCbits.LATC5                  // bit 5
2573 #define LATC6                   LATCbits.LATC6                  // bit 6
2574 #define LATC7                   LATCbits.LATC7                  // bit 7
2575 
2576 #define LATD0                   LATDbits.LATD0                  // bit 0
2577 #define LATD1                   LATDbits.LATD1                  // bit 1
2578 #define LATD2                   LATDbits.LATD2                  // bit 2
2579 #define LATD3                   LATDbits.LATD3                  // bit 3
2580 #define LATD4                   LATDbits.LATD4                  // bit 4
2581 #define LATD5                   LATDbits.LATD5                  // bit 5
2582 #define LATD6                   LATDbits.LATD6                  // bit 6
2583 #define LATD7                   LATDbits.LATD7                  // bit 7
2584 
2585 #define LATE0                   LATEbits.LATE0                  // bit 0
2586 #define LATE1                   LATEbits.LATE1                  // bit 1
2587 #define LATE2                   LATEbits.LATE2                  // bit 2
2588 
2589 #define PS0                     OPTION_REGbits.PS0              // bit 0
2590 #define PS1                     OPTION_REGbits.PS1              // bit 1
2591 #define PS2                     OPTION_REGbits.PS2              // bit 2
2592 #define PSA                     OPTION_REGbits.PSA              // bit 3
2593 #define TMR0SE                  OPTION_REGbits.TMR0SE           // bit 4, shadows bit in OPTION_REGbits
2594 #define T0SE                    OPTION_REGbits.T0SE             // bit 4, shadows bit in OPTION_REGbits
2595 #define TMR0CS                  OPTION_REGbits.TMR0CS           // bit 5, shadows bit in OPTION_REGbits
2596 #define T0CS                    OPTION_REGbits.T0CS             // bit 5, shadows bit in OPTION_REGbits
2597 #define INTEDG                  OPTION_REGbits.INTEDG           // bit 6
2598 #define NOT_WPUEN               OPTION_REGbits.NOT_WPUEN        // bit 7
2599 
2600 #define SCS0                    OSCCONbits.SCS0                 // bit 0
2601 #define SCS1                    OSCCONbits.SCS1                 // bit 1
2602 #define IRCF0                   OSCCONbits.IRCF0                // bit 3
2603 #define IRCF1                   OSCCONbits.IRCF1                // bit 4
2604 #define IRCF2                   OSCCONbits.IRCF2                // bit 5
2605 #define IRCF3                   OSCCONbits.IRCF3                // bit 6
2606 
2607 #define HFIOFS                  OSCSTATbits.HFIOFS              // bit 0
2608 #define LFIOFR                  OSCSTATbits.LFIOFR              // bit 1
2609 #define HFIOFR                  OSCSTATbits.HFIOFR              // bit 4
2610 #define OSTS                    OSCSTATbits.OSTS                // bit 5
2611 #define SOSCR                   OSCSTATbits.SOSCR               // bit 7, shadows bit in OSCSTATbits
2612 #define T1OSCR                  OSCSTATbits.T1OSCR              // bit 7, shadows bit in OSCSTATbits
2613 
2614 #define NOT_BOR                 PCONbits.NOT_BOR                // bit 0
2615 #define NOT_POR                 PCONbits.NOT_POR                // bit 1
2616 #define NOT_RI                  PCONbits.NOT_RI                 // bit 2
2617 #define NOT_RMCLR               PCONbits.NOT_RMCLR              // bit 3
2618 #define NOT_RWDT                PCONbits.NOT_RWDT               // bit 4
2619 #define STKUNF                  PCONbits.STKUNF                 // bit 6
2620 #define STKOVF                  PCONbits.STKOVF                 // bit 7
2621 
2622 #define TMR1IE                  PIE1bits.TMR1IE                 // bit 0
2623 #define TMR2IE                  PIE1bits.TMR2IE                 // bit 1
2624 #define CCP1IE                  PIE1bits.CCP1IE                 // bit 2
2625 #define SSPIE                   PIE1bits.SSPIE                  // bit 3
2626 #define TXIE                    PIE1bits.TXIE                   // bit 4
2627 #define RCIE                    PIE1bits.RCIE                   // bit 5
2628 #define ADIE                    PIE1bits.ADIE                   // bit 6
2629 #define TMR1GIE                 PIE1bits.TMR1GIE                // bit 7
2630 
2631 #define CCP2IE                  PIE2bits.CCP2IE                 // bit 0
2632 #define BCLIE                   PIE2bits.BCLIE                  // bit 3
2633 #define OSFIE                   PIE2bits.OSFIE                  // bit 7
2634 
2635 #define TMR1IF                  PIR1bits.TMR1IF                 // bit 0
2636 #define TMR2IF                  PIR1bits.TMR2IF                 // bit 1
2637 #define CCP1IF                  PIR1bits.CCP1IF                 // bit 2
2638 #define SSPIF                   PIR1bits.SSPIF                  // bit 3
2639 #define TXIF                    PIR1bits.TXIF                   // bit 4
2640 #define RCIF                    PIR1bits.RCIF                   // bit 5
2641 #define ADIF                    PIR1bits.ADIF                   // bit 6
2642 #define TMR1GIF                 PIR1bits.TMR1GIF                // bit 7
2643 
2644 #define CCP2IF                  PIR2bits.CCP2IF                 // bit 0
2645 #define BCLIF                   PIR2bits.BCLIF                  // bit 3
2646 #define OSFIF                   PIR2bits.OSFIF                  // bit 7
2647 
2648 #define RD                      PMCON1bits.RD                   // bit 0
2649 #define WR                      PMCON1bits.WR                   // bit 1
2650 #define WREN                    PMCON1bits.WREN                 // bit 2
2651 #define WRERR                   PMCON1bits.WRERR                // bit 3
2652 #define FREE                    PMCON1bits.FREE                 // bit 4
2653 #define LWLO                    PMCON1bits.LWLO                 // bit 5
2654 #define CFGS                    PMCON1bits.CFGS                 // bit 6
2655 
2656 #define RA0                     PORTAbits.RA0                   // bit 0
2657 #define RA1                     PORTAbits.RA1                   // bit 1
2658 #define RA2                     PORTAbits.RA2                   // bit 2
2659 #define RA3                     PORTAbits.RA3                   // bit 3
2660 #define RA4                     PORTAbits.RA4                   // bit 4
2661 #define RA5                     PORTAbits.RA5                   // bit 5
2662 #define RA6                     PORTAbits.RA6                   // bit 6
2663 #define RA7                     PORTAbits.RA7                   // bit 7
2664 
2665 #define RB0                     PORTBbits.RB0                   // bit 0
2666 #define RB1                     PORTBbits.RB1                   // bit 1
2667 #define RB2                     PORTBbits.RB2                   // bit 2
2668 #define RB3                     PORTBbits.RB3                   // bit 3
2669 #define RB4                     PORTBbits.RB4                   // bit 4
2670 #define RB5                     PORTBbits.RB5                   // bit 5
2671 #define RB6                     PORTBbits.RB6                   // bit 6
2672 #define RB7                     PORTBbits.RB7                   // bit 7
2673 
2674 #define RC0                     PORTCbits.RC0                   // bit 0
2675 #define RC1                     PORTCbits.RC1                   // bit 1
2676 #define RC2                     PORTCbits.RC2                   // bit 2
2677 #define RC3                     PORTCbits.RC3                   // bit 3
2678 #define RC4                     PORTCbits.RC4                   // bit 4
2679 #define RC5                     PORTCbits.RC5                   // bit 5
2680 #define RC6                     PORTCbits.RC6                   // bit 6
2681 #define RC7                     PORTCbits.RC7                   // bit 7
2682 
2683 #define RD0                     PORTDbits.RD0                   // bit 0
2684 #define RD1                     PORTDbits.RD1                   // bit 1
2685 #define RD2                     PORTDbits.RD2                   // bit 2
2686 #define RD3                     PORTDbits.RD3                   // bit 3
2687 #define RD4                     PORTDbits.RD4                   // bit 4
2688 #define RD5                     PORTDbits.RD5                   // bit 5
2689 #define RD6                     PORTDbits.RD6                   // bit 6
2690 #define RD7                     PORTDbits.RD7                   // bit 7
2691 
2692 #define RE0                     PORTEbits.RE0                   // bit 0
2693 #define RE1                     PORTEbits.RE1                   // bit 1
2694 #define RE2                     PORTEbits.RE2                   // bit 2
2695 #define RE3                     PORTEbits.RE3                   // bit 3
2696 
2697 #define RX9D                    RCSTAbits.RX9D                  // bit 0
2698 #define OERR                    RCSTAbits.OERR                  // bit 1
2699 #define FERR                    RCSTAbits.FERR                  // bit 2
2700 #define ADDEN                   RCSTAbits.ADDEN                 // bit 3
2701 #define CREN                    RCSTAbits.CREN                  // bit 4
2702 #define SREN                    RCSTAbits.SREN                  // bit 5
2703 #define RX9                     RCSTAbits.RX9                   // bit 6
2704 #define SPEN                    RCSTAbits.SPEN                  // bit 7
2705 
2706 #define SSPM0                   SSP1CON1bits.SSPM0              // bit 0
2707 #define SSPM1                   SSP1CON1bits.SSPM1              // bit 1
2708 #define SSPM2                   SSP1CON1bits.SSPM2              // bit 2
2709 #define SSPM3                   SSP1CON1bits.SSPM3              // bit 3
2710 #define CKP                     SSP1CON1bits.CKP                // bit 4
2711 #define SSPEN                   SSP1CON1bits.SSPEN              // bit 5
2712 #define SSPOV                   SSP1CON1bits.SSPOV              // bit 6
2713 #define WCOL                    SSP1CON1bits.WCOL               // bit 7
2714 
2715 #define SEN                     SSP1CON2bits.SEN                // bit 0
2716 #define RSEN                    SSP1CON2bits.RSEN               // bit 1
2717 #define PEN                     SSP1CON2bits.PEN                // bit 2
2718 #define RCEN                    SSP1CON2bits.RCEN               // bit 3
2719 #define ACKEN                   SSP1CON2bits.ACKEN              // bit 4
2720 #define ACKDT                   SSP1CON2bits.ACKDT              // bit 5
2721 #define ACKSTAT                 SSP1CON2bits.ACKSTAT            // bit 6
2722 #define GCEN                    SSP1CON2bits.GCEN               // bit 7
2723 
2724 #define DHEN                    SSP1CON3bits.DHEN               // bit 0
2725 #define AHEN                    SSP1CON3bits.AHEN               // bit 1
2726 #define SBCDE                   SSP1CON3bits.SBCDE              // bit 2
2727 #define SDAHT                   SSP1CON3bits.SDAHT              // bit 3
2728 #define BOEN                    SSP1CON3bits.BOEN               // bit 4
2729 #define SCIE                    SSP1CON3bits.SCIE               // bit 5
2730 #define PCIE                    SSP1CON3bits.PCIE               // bit 6
2731 #define ACKTIM                  SSP1CON3bits.ACKTIM             // bit 7
2732 
2733 #define BF                      SSP1STATbits.BF                 // bit 0
2734 #define UA                      SSP1STATbits.UA                 // bit 1
2735 #define R_NOT_W                 SSP1STATbits.R_NOT_W            // bit 2
2736 #define S                       SSP1STATbits.S                  // bit 3
2737 #define P                       SSP1STATbits.P                  // bit 4
2738 #define D_NOT_A                 SSP1STATbits.D_NOT_A            // bit 5
2739 #define CKE                     SSP1STATbits.CKE                // bit 6
2740 #define SMP                     SSP1STATbits.SMP                // bit 7
2741 
2742 #define C                       STATUSbits.C                    // bit 0
2743 #define DC                      STATUSbits.DC                   // bit 1
2744 #define Z                       STATUSbits.Z                    // bit 2
2745 #define NOT_PD                  STATUSbits.NOT_PD               // bit 3
2746 #define NOT_TO                  STATUSbits.NOT_TO               // bit 4
2747 
2748 #define C_SHAD                  STATUS_SHADbits.C_SHAD          // bit 0
2749 #define DC_SHAD                 STATUS_SHADbits.DC_SHAD         // bit 1
2750 #define Z_SHAD                  STATUS_SHADbits.Z_SHAD          // bit 2
2751 
2752 #define TMR1ON                  T1CONbits.TMR1ON                // bit 0
2753 #define NOT_T1SYNC              T1CONbits.NOT_T1SYNC            // bit 2
2754 #define T1OSCEN                 T1CONbits.T1OSCEN               // bit 3
2755 #define T1CKPS0                 T1CONbits.T1CKPS0               // bit 4
2756 #define T1CKPS1                 T1CONbits.T1CKPS1               // bit 5
2757 #define TMR1CS0                 T1CONbits.TMR1CS0               // bit 6
2758 #define TMR1CS1                 T1CONbits.TMR1CS1               // bit 7
2759 
2760 #define T1GSS0                  T1GCONbits.T1GSS0               // bit 0
2761 #define T1GSS1                  T1GCONbits.T1GSS1               // bit 1
2762 #define T1GVAL                  T1GCONbits.T1GVAL               // bit 2
2763 #define T1GGO_NOT_DONE          T1GCONbits.T1GGO_NOT_DONE       // bit 3
2764 #define T1GSPM                  T1GCONbits.T1GSPM               // bit 4
2765 #define T1GTM                   T1GCONbits.T1GTM                // bit 5
2766 #define T1GPOL                  T1GCONbits.T1GPOL               // bit 6
2767 #define TMR1GE                  T1GCONbits.TMR1GE               // bit 7
2768 
2769 #define T2CKPS0                 T2CONbits.T2CKPS0               // bit 0
2770 #define T2CKPS1                 T2CONbits.T2CKPS1               // bit 1
2771 #define TMR2ON                  T2CONbits.TMR2ON                // bit 2
2772 #define T2OUTPS0                T2CONbits.T2OUTPS0              // bit 3
2773 #define T2OUTPS1                T2CONbits.T2OUTPS1              // bit 4
2774 #define T2OUTPS2                T2CONbits.T2OUTPS2              // bit 5
2775 #define T2OUTPS3                T2CONbits.T2OUTPS3              // bit 6
2776 
2777 #define TRISA0                  TRISAbits.TRISA0                // bit 0
2778 #define TRISA1                  TRISAbits.TRISA1                // bit 1
2779 #define TRISA2                  TRISAbits.TRISA2                // bit 2
2780 #define TRISA3                  TRISAbits.TRISA3                // bit 3
2781 #define TRISA4                  TRISAbits.TRISA4                // bit 4
2782 #define TRISA5                  TRISAbits.TRISA5                // bit 5
2783 #define TRISA6                  TRISAbits.TRISA6                // bit 6
2784 #define TRISA7                  TRISAbits.TRISA7                // bit 7
2785 
2786 #define TRISB0                  TRISBbits.TRISB0                // bit 0
2787 #define TRISB1                  TRISBbits.TRISB1                // bit 1
2788 #define TRISB2                  TRISBbits.TRISB2                // bit 2
2789 #define TRISB3                  TRISBbits.TRISB3                // bit 3
2790 #define TRISB4                  TRISBbits.TRISB4                // bit 4
2791 #define TRISB5                  TRISBbits.TRISB5                // bit 5
2792 #define TRISB6                  TRISBbits.TRISB6                // bit 6
2793 #define TRISB7                  TRISBbits.TRISB7                // bit 7
2794 
2795 #define TRISC0                  TRISCbits.TRISC0                // bit 0
2796 #define TRISC1                  TRISCbits.TRISC1                // bit 1
2797 #define TRISC2                  TRISCbits.TRISC2                // bit 2
2798 #define TRISC3                  TRISCbits.TRISC3                // bit 3
2799 #define TRISC4                  TRISCbits.TRISC4                // bit 4
2800 #define TRISC5                  TRISCbits.TRISC5                // bit 5
2801 #define TRISC6                  TRISCbits.TRISC6                // bit 6
2802 #define TRISC7                  TRISCbits.TRISC7                // bit 7
2803 
2804 #define TRISD0                  TRISDbits.TRISD0                // bit 0
2805 #define TRISD1                  TRISDbits.TRISD1                // bit 1
2806 #define TRISD2                  TRISDbits.TRISD2                // bit 2
2807 #define TRISD3                  TRISDbits.TRISD3                // bit 3
2808 #define TRISD4                  TRISDbits.TRISD4                // bit 4
2809 #define TRISD5                  TRISDbits.TRISD5                // bit 5
2810 #define TRISD6                  TRISDbits.TRISD6                // bit 6
2811 #define TRISD7                  TRISDbits.TRISD7                // bit 7
2812 
2813 #define TRISE0                  TRISEbits.TRISE0                // bit 0
2814 #define TRISE1                  TRISEbits.TRISE1                // bit 1
2815 #define TRISE2                  TRISEbits.TRISE2                // bit 2
2816 
2817 #define TX9D                    TXSTAbits.TX9D                  // bit 0
2818 #define TRMT                    TXSTAbits.TRMT                  // bit 1
2819 #define BRGH                    TXSTAbits.BRGH                  // bit 2
2820 #define SENDB                   TXSTAbits.SENDB                 // bit 3
2821 #define SYNC                    TXSTAbits.SYNC                  // bit 4
2822 #define TXEN                    TXSTAbits.TXEN                  // bit 5
2823 #define TX9                     TXSTAbits.TX9                   // bit 6
2824 #define CSRC                    TXSTAbits.CSRC                  // bit 7
2825 
2826 #define reserved                VREGCONbits.reserved            // bit 0
2827 #define VREGPM                  VREGCONbits.VREGPM              // bit 1
2828 
2829 #define SWDTEN                  WDTCONbits.SWDTEN               // bit 0
2830 #define WDTPS0                  WDTCONbits.WDTPS0               // bit 1
2831 #define WDTPS1                  WDTCONbits.WDTPS1               // bit 2
2832 #define WDTPS2                  WDTCONbits.WDTPS2               // bit 3
2833 #define WDTPS3                  WDTCONbits.WDTPS3               // bit 4
2834 #define WDTPS4                  WDTCONbits.WDTPS4               // bit 5
2835 
2836 #define WPUB0                   WPUBbits.WPUB0                  // bit 0
2837 #define WPUB1                   WPUBbits.WPUB1                  // bit 1
2838 #define WPUB2                   WPUBbits.WPUB2                  // bit 2
2839 #define WPUB3                   WPUBbits.WPUB3                  // bit 3
2840 #define WPUB4                   WPUBbits.WPUB4                  // bit 4
2841 #define WPUB5                   WPUBbits.WPUB5                  // bit 5
2842 #define WPUB6                   WPUBbits.WPUB6                  // bit 6
2843 #define WPUB7                   WPUBbits.WPUB7                  // bit 7
2844 
2845 #define WPUE3                   WPUEbits.WPUE3                  // bit 3
2846 
2847 #endif // #ifndef NO_BIT_DEFINES
2848 
2849 #endif // #ifndef __PIC16F1519_H__
2850