1 /*
2  * This declarations of the PIC16C770 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:03 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 __PIC16C770_H__
26 #define __PIC16C770_H__
27 
28 //==============================================================================
29 //
30 //	Register Addresses
31 //
32 //==============================================================================
33 
34 #ifndef NO_ADDR_DEFINES
35 
36 #define INDF_ADDR               0x0000
37 #define TMR0_ADDR               0x0001
38 #define PCL_ADDR                0x0002
39 #define STATUS_ADDR             0x0003
40 #define FSR_ADDR                0x0004
41 #define PORTA_ADDR              0x0005
42 #define PORTB_ADDR              0x0006
43 #define PCLATH_ADDR             0x000A
44 #define INTCON_ADDR             0x000B
45 #define PIR1_ADDR               0x000C
46 #define PIR2_ADDR               0x000D
47 #define TMR1_ADDR               0x000E
48 #define TMR1L_ADDR              0x000E
49 #define TMR1H_ADDR              0x000F
50 #define T1CON_ADDR              0x0010
51 #define TMR2_ADDR               0x0011
52 #define T2CON_ADDR              0x0012
53 #define SSPBUF_ADDR             0x0013
54 #define SSPCON_ADDR             0x0014
55 #define CCPR1_ADDR              0x0015
56 #define CCPR1L_ADDR             0x0015
57 #define CCPR1H_ADDR             0x0016
58 #define CCP1CON_ADDR            0x0017
59 #define ADRESH_ADDR             0x001E
60 #define ADCON0_ADDR             0x001F
61 #define OPTION_REG_ADDR         0x0081
62 #define TRISA_ADDR              0x0085
63 #define TRISB_ADDR              0x0086
64 #define PIE1_ADDR               0x008C
65 #define PIE2_ADDR               0x008D
66 #define PCON_ADDR               0x008E
67 #define SSPCON2_ADDR            0x0091
68 #define PR2_ADDR                0x0092
69 #define SSPADD_ADDR             0x0093
70 #define SSPSTAT_ADDR            0x0094
71 #define WPUB_ADDR               0x0095
72 #define IOCB_ADDR               0x0096
73 #define P1DEL_ADDR              0x0097
74 #define REFCON_ADDR             0x009B
75 #define LVDCON_ADDR             0x009C
76 #define ANSEL_ADDR              0x009D
77 #define ADRESL_ADDR             0x009E
78 #define ADCON1_ADDR             0x009F
79 #define PMDATL_ADDR             0x010C
80 #define PMADRL_ADDR             0x010D
81 #define PMDATH_ADDR             0x010E
82 #define PMADRH_ADDR             0x010F
83 #define PMCON1_ADDR             0x018C
84 
85 #endif // #ifndef NO_ADDR_DEFINES
86 
87 //==============================================================================
88 //
89 //	Register Definitions
90 //
91 //==============================================================================
92 
93 extern __at(0x0000) __sfr INDF;
94 extern __at(0x0001) __sfr TMR0;
95 extern __at(0x0002) __sfr PCL;
96 
97 //==============================================================================
98 //        STATUS Bits
99 
100 extern __at(0x0003) __sfr STATUS;
101 
102 typedef union
103   {
104   struct
105     {
106     unsigned C                  : 1;
107     unsigned DC                 : 1;
108     unsigned Z                  : 1;
109     unsigned NOT_PD             : 1;
110     unsigned NOT_TO             : 1;
111     unsigned RP0                : 1;
112     unsigned RP1                : 1;
113     unsigned IRP                : 1;
114     };
115 
116   struct
117     {
118     unsigned                    : 5;
119     unsigned RP                 : 2;
120     unsigned                    : 1;
121     };
122   } __STATUSbits_t;
123 
124 extern __at(0x0003) volatile __STATUSbits_t STATUSbits;
125 
126 #define _C                      0x01
127 #define _DC                     0x02
128 #define _Z                      0x04
129 #define _NOT_PD                 0x08
130 #define _NOT_TO                 0x10
131 #define _RP0                    0x20
132 #define _RP1                    0x40
133 #define _IRP                    0x80
134 
135 //==============================================================================
136 
137 extern __at(0x0004) __sfr FSR;
138 
139 //==============================================================================
140 //        PORTA Bits
141 
142 extern __at(0x0005) __sfr PORTA;
143 
144 typedef struct
145   {
146   unsigned RA0                  : 1;
147   unsigned RA1                  : 1;
148   unsigned RA2                  : 1;
149   unsigned RA3                  : 1;
150   unsigned RA4                  : 1;
151   unsigned RA5                  : 1;
152   unsigned RA6                  : 1;
153   unsigned RA7                  : 1;
154   } __PORTAbits_t;
155 
156 extern __at(0x0005) volatile __PORTAbits_t PORTAbits;
157 
158 #define _RA0                    0x01
159 #define _RA1                    0x02
160 #define _RA2                    0x04
161 #define _RA3                    0x08
162 #define _RA4                    0x10
163 #define _RA5                    0x20
164 #define _RA6                    0x40
165 #define _RA7                    0x80
166 
167 //==============================================================================
168 
169 
170 //==============================================================================
171 //        PORTB Bits
172 
173 extern __at(0x0006) __sfr PORTB;
174 
175 typedef struct
176   {
177   unsigned RB0                  : 1;
178   unsigned RB1                  : 1;
179   unsigned RB2                  : 1;
180   unsigned RB3                  : 1;
181   unsigned RB4                  : 1;
182   unsigned RB5                  : 1;
183   unsigned RB6                  : 1;
184   unsigned RB7                  : 1;
185   } __PORTBbits_t;
186 
187 extern __at(0x0006) volatile __PORTBbits_t PORTBbits;
188 
189 #define _RB0                    0x01
190 #define _RB1                    0x02
191 #define _RB2                    0x04
192 #define _RB3                    0x08
193 #define _RB4                    0x10
194 #define _RB5                    0x20
195 #define _RB6                    0x40
196 #define _RB7                    0x80
197 
198 //==============================================================================
199 
200 extern __at(0x000A) __sfr PCLATH;
201 
202 //==============================================================================
203 //        INTCON Bits
204 
205 extern __at(0x000B) __sfr INTCON;
206 
207 typedef union
208   {
209   struct
210     {
211     unsigned RBIF               : 1;
212     unsigned INTF               : 1;
213     unsigned T0IF               : 1;
214     unsigned RBIE               : 1;
215     unsigned INTE               : 1;
216     unsigned T0IE               : 1;
217     unsigned PEIE               : 1;
218     unsigned GIE                : 1;
219     };
220 
221   struct
222     {
223     unsigned                    : 1;
224     unsigned                    : 1;
225     unsigned TMR0IF             : 1;
226     unsigned                    : 1;
227     unsigned                    : 1;
228     unsigned TMR0IE             : 1;
229     unsigned                    : 1;
230     unsigned                    : 1;
231     };
232   } __INTCONbits_t;
233 
234 extern __at(0x000B) volatile __INTCONbits_t INTCONbits;
235 
236 #define _RBIF                   0x01
237 #define _INTF                   0x02
238 #define _T0IF                   0x04
239 #define _TMR0IF                 0x04
240 #define _RBIE                   0x08
241 #define _INTE                   0x10
242 #define _T0IE                   0x20
243 #define _TMR0IE                 0x20
244 #define _PEIE                   0x40
245 #define _GIE                    0x80
246 
247 //==============================================================================
248 
249 
250 //==============================================================================
251 //        PIR1 Bits
252 
253 extern __at(0x000C) __sfr PIR1;
254 
255 typedef struct
256   {
257   unsigned TMR1IF               : 1;
258   unsigned TMR2IF               : 1;
259   unsigned CCP1IF               : 1;
260   unsigned SSPIF                : 1;
261   unsigned                      : 1;
262   unsigned                      : 1;
263   unsigned ADIF                 : 1;
264   unsigned                      : 1;
265   } __PIR1bits_t;
266 
267 extern __at(0x000C) volatile __PIR1bits_t PIR1bits;
268 
269 #define _TMR1IF                 0x01
270 #define _TMR2IF                 0x02
271 #define _CCP1IF                 0x04
272 #define _SSPIF                  0x08
273 #define _ADIF                   0x40
274 
275 //==============================================================================
276 
277 
278 //==============================================================================
279 //        PIR2 Bits
280 
281 extern __at(0x000D) __sfr PIR2;
282 
283 typedef struct
284   {
285   unsigned                      : 1;
286   unsigned                      : 1;
287   unsigned                      : 1;
288   unsigned BCLIF                : 1;
289   unsigned                      : 1;
290   unsigned                      : 1;
291   unsigned                      : 1;
292   unsigned LVDIF                : 1;
293   } __PIR2bits_t;
294 
295 extern __at(0x000D) volatile __PIR2bits_t PIR2bits;
296 
297 #define _BCLIF                  0x08
298 #define _LVDIF                  0x80
299 
300 //==============================================================================
301 
302 extern __at(0x000E) __sfr TMR1;
303 extern __at(0x000E) __sfr TMR1L;
304 extern __at(0x000F) __sfr TMR1H;
305 
306 //==============================================================================
307 //        T1CON Bits
308 
309 extern __at(0x0010) __sfr T1CON;
310 
311 typedef union
312   {
313   struct
314     {
315     unsigned TMR1ON             : 1;
316     unsigned TMR1CS             : 1;
317     unsigned NOT_T1SYNC         : 1;
318     unsigned T1OSCEN            : 1;
319     unsigned T1CKPS0            : 1;
320     unsigned T1CKPS1            : 1;
321     unsigned                    : 1;
322     unsigned                    : 1;
323     };
324 
325   struct
326     {
327     unsigned                    : 1;
328     unsigned                    : 1;
329     unsigned T1INSYNC           : 1;
330     unsigned                    : 1;
331     unsigned                    : 1;
332     unsigned                    : 1;
333     unsigned                    : 1;
334     unsigned                    : 1;
335     };
336 
337   struct
338     {
339     unsigned                    : 4;
340     unsigned T1CKPS             : 2;
341     unsigned                    : 2;
342     };
343   } __T1CONbits_t;
344 
345 extern __at(0x0010) volatile __T1CONbits_t T1CONbits;
346 
347 #define _TMR1ON                 0x01
348 #define _TMR1CS                 0x02
349 #define _NOT_T1SYNC             0x04
350 #define _T1INSYNC               0x04
351 #define _T1OSCEN                0x08
352 #define _T1CKPS0                0x10
353 #define _T1CKPS1                0x20
354 
355 //==============================================================================
356 
357 extern __at(0x0011) __sfr TMR2;
358 
359 //==============================================================================
360 //        T2CON Bits
361 
362 extern __at(0x0012) __sfr T2CON;
363 
364 typedef union
365   {
366   struct
367     {
368     unsigned T2CKPS0            : 1;
369     unsigned T2CKPS1            : 1;
370     unsigned TMR2ON             : 1;
371     unsigned TOUTPS0            : 1;
372     unsigned TOUTPS1            : 1;
373     unsigned TOUTPS2            : 1;
374     unsigned TOUTPS3            : 1;
375     unsigned                    : 1;
376     };
377 
378   struct
379     {
380     unsigned T2CKPS             : 2;
381     unsigned                    : 6;
382     };
383 
384   struct
385     {
386     unsigned                    : 3;
387     unsigned TOUTPS             : 4;
388     unsigned                    : 1;
389     };
390   } __T2CONbits_t;
391 
392 extern __at(0x0012) volatile __T2CONbits_t T2CONbits;
393 
394 #define _T2CKPS0                0x01
395 #define _T2CKPS1                0x02
396 #define _TMR2ON                 0x04
397 #define _TOUTPS0                0x08
398 #define _TOUTPS1                0x10
399 #define _TOUTPS2                0x20
400 #define _TOUTPS3                0x40
401 
402 //==============================================================================
403 
404 extern __at(0x0013) __sfr SSPBUF;
405 
406 //==============================================================================
407 //        SSPCON Bits
408 
409 extern __at(0x0014) __sfr SSPCON;
410 
411 typedef union
412   {
413   struct
414     {
415     unsigned SSPM0              : 1;
416     unsigned SSPM1              : 1;
417     unsigned SSPM2              : 1;
418     unsigned SSPM3              : 1;
419     unsigned CKP                : 1;
420     unsigned SSPEN              : 1;
421     unsigned SSPOV              : 1;
422     unsigned WCOL               : 1;
423     };
424 
425   struct
426     {
427     unsigned SSPM               : 4;
428     unsigned                    : 4;
429     };
430   } __SSPCONbits_t;
431 
432 extern __at(0x0014) volatile __SSPCONbits_t SSPCONbits;
433 
434 #define _SSPM0                  0x01
435 #define _SSPM1                  0x02
436 #define _SSPM2                  0x04
437 #define _SSPM3                  0x08
438 #define _CKP                    0x10
439 #define _SSPEN                  0x20
440 #define _SSPOV                  0x40
441 #define _WCOL                   0x80
442 
443 //==============================================================================
444 
445 extern __at(0x0015) __sfr CCPR1;
446 extern __at(0x0015) __sfr CCPR1L;
447 extern __at(0x0016) __sfr CCPR1H;
448 
449 //==============================================================================
450 //        CCP1CON Bits
451 
452 extern __at(0x0017) __sfr CCP1CON;
453 
454 typedef union
455   {
456   struct
457     {
458     unsigned CCP1M0             : 1;
459     unsigned CCP1M1             : 1;
460     unsigned CCP1M2             : 1;
461     unsigned CCP1M3             : 1;
462     unsigned DC1B0              : 1;
463     unsigned DC1B1              : 1;
464     unsigned PWM1M0             : 1;
465     unsigned PWM1M1             : 1;
466     };
467 
468   struct
469     {
470     unsigned CCP1M              : 4;
471     unsigned                    : 4;
472     };
473 
474   struct
475     {
476     unsigned                    : 4;
477     unsigned DC1B               : 2;
478     unsigned                    : 2;
479     };
480 
481   struct
482     {
483     unsigned                    : 6;
484     unsigned PWM1M              : 2;
485     };
486   } __CCP1CONbits_t;
487 
488 extern __at(0x0017) volatile __CCP1CONbits_t CCP1CONbits;
489 
490 #define _CCP1M0                 0x01
491 #define _CCP1M1                 0x02
492 #define _CCP1M2                 0x04
493 #define _CCP1M3                 0x08
494 #define _DC1B0                  0x10
495 #define _DC1B1                  0x20
496 #define _PWM1M0                 0x40
497 #define _PWM1M1                 0x80
498 
499 //==============================================================================
500 
501 extern __at(0x001E) __sfr ADRESH;
502 
503 //==============================================================================
504 //        ADCON0 Bits
505 
506 extern __at(0x001F) __sfr ADCON0;
507 
508 typedef union
509   {
510   struct
511     {
512     unsigned ADON               : 1;
513     unsigned CHS3               : 1;
514     unsigned GO_NOT_DONE        : 1;
515     unsigned CHS0               : 1;
516     unsigned CHS1               : 1;
517     unsigned CHS2               : 1;
518     unsigned ADCS0              : 1;
519     unsigned ADCS1              : 1;
520     };
521 
522   struct
523     {
524     unsigned                    : 1;
525     unsigned                    : 1;
526     unsigned GO                 : 1;
527     unsigned                    : 1;
528     unsigned                    : 1;
529     unsigned                    : 1;
530     unsigned                    : 1;
531     unsigned                    : 1;
532     };
533 
534   struct
535     {
536     unsigned                    : 1;
537     unsigned                    : 1;
538     unsigned NOT_DONE           : 1;
539     unsigned                    : 1;
540     unsigned                    : 1;
541     unsigned                    : 1;
542     unsigned                    : 1;
543     unsigned                    : 1;
544     };
545 
546   struct
547     {
548     unsigned                    : 1;
549     unsigned                    : 1;
550     unsigned GO_DONE            : 1;
551     unsigned                    : 1;
552     unsigned                    : 1;
553     unsigned                    : 1;
554     unsigned                    : 1;
555     unsigned                    : 1;
556     };
557 
558   struct
559     {
560     unsigned                    : 6;
561     unsigned ADCS               : 2;
562     };
563   } __ADCON0bits_t;
564 
565 extern __at(0x001F) volatile __ADCON0bits_t ADCON0bits;
566 
567 #define _ADON                   0x01
568 #define _CHS3                   0x02
569 #define _GO_NOT_DONE            0x04
570 #define _GO                     0x04
571 #define _NOT_DONE               0x04
572 #define _GO_DONE                0x04
573 #define _CHS0                   0x08
574 #define _CHS1                   0x10
575 #define _CHS2                   0x20
576 #define _ADCS0                  0x40
577 #define _ADCS1                  0x80
578 
579 //==============================================================================
580 
581 
582 //==============================================================================
583 //        OPTION_REG Bits
584 
585 extern __at(0x0081) __sfr OPTION_REG;
586 
587 typedef union
588   {
589   struct
590     {
591     unsigned PS0                : 1;
592     unsigned PS1                : 1;
593     unsigned PS2                : 1;
594     unsigned PSA                : 1;
595     unsigned T0SE               : 1;
596     unsigned T0CS               : 1;
597     unsigned INTEDG             : 1;
598     unsigned NOT_RBPU           : 1;
599     };
600 
601   struct
602     {
603     unsigned PS                 : 3;
604     unsigned                    : 5;
605     };
606   } __OPTION_REGbits_t;
607 
608 extern __at(0x0081) volatile __OPTION_REGbits_t OPTION_REGbits;
609 
610 #define _PS0                    0x01
611 #define _PS1                    0x02
612 #define _PS2                    0x04
613 #define _PSA                    0x08
614 #define _T0SE                   0x10
615 #define _T0CS                   0x20
616 #define _INTEDG                 0x40
617 #define _NOT_RBPU               0x80
618 
619 //==============================================================================
620 
621 
622 //==============================================================================
623 //        TRISA Bits
624 
625 extern __at(0x0085) __sfr TRISA;
626 
627 typedef struct
628   {
629   unsigned TRISA0               : 1;
630   unsigned TRISA1               : 1;
631   unsigned TRISA2               : 1;
632   unsigned TRISA3               : 1;
633   unsigned TRISA4               : 1;
634   unsigned TRISA5               : 1;
635   unsigned TRISA6               : 1;
636   unsigned TRISA7               : 1;
637   } __TRISAbits_t;
638 
639 extern __at(0x0085) volatile __TRISAbits_t TRISAbits;
640 
641 #define _TRISA0                 0x01
642 #define _TRISA1                 0x02
643 #define _TRISA2                 0x04
644 #define _TRISA3                 0x08
645 #define _TRISA4                 0x10
646 #define _TRISA5                 0x20
647 #define _TRISA6                 0x40
648 #define _TRISA7                 0x80
649 
650 //==============================================================================
651 
652 
653 //==============================================================================
654 //        TRISB Bits
655 
656 extern __at(0x0086) __sfr TRISB;
657 
658 typedef struct
659   {
660   unsigned TRISB0               : 1;
661   unsigned TRISB1               : 1;
662   unsigned TRISB2               : 1;
663   unsigned TRISB3               : 1;
664   unsigned TRISB4               : 1;
665   unsigned TRISB5               : 1;
666   unsigned TRISB6               : 1;
667   unsigned TRISB7               : 1;
668   } __TRISBbits_t;
669 
670 extern __at(0x0086) volatile __TRISBbits_t TRISBbits;
671 
672 #define _TRISB0                 0x01
673 #define _TRISB1                 0x02
674 #define _TRISB2                 0x04
675 #define _TRISB3                 0x08
676 #define _TRISB4                 0x10
677 #define _TRISB5                 0x20
678 #define _TRISB6                 0x40
679 #define _TRISB7                 0x80
680 
681 //==============================================================================
682 
683 
684 //==============================================================================
685 //        PIE1 Bits
686 
687 extern __at(0x008C) __sfr PIE1;
688 
689 typedef struct
690   {
691   unsigned TMR1IE               : 1;
692   unsigned TMR2IE               : 1;
693   unsigned CCP1IE               : 1;
694   unsigned SSPIE                : 1;
695   unsigned                      : 1;
696   unsigned                      : 1;
697   unsigned ADIE                 : 1;
698   unsigned                      : 1;
699   } __PIE1bits_t;
700 
701 extern __at(0x008C) volatile __PIE1bits_t PIE1bits;
702 
703 #define _TMR1IE                 0x01
704 #define _TMR2IE                 0x02
705 #define _CCP1IE                 0x04
706 #define _SSPIE                  0x08
707 #define _ADIE                   0x40
708 
709 //==============================================================================
710 
711 
712 //==============================================================================
713 //        PIE2 Bits
714 
715 extern __at(0x008D) __sfr PIE2;
716 
717 typedef struct
718   {
719   unsigned                      : 1;
720   unsigned                      : 1;
721   unsigned                      : 1;
722   unsigned BCLIE                : 1;
723   unsigned                      : 1;
724   unsigned                      : 1;
725   unsigned                      : 1;
726   unsigned LVDIE                : 1;
727   } __PIE2bits_t;
728 
729 extern __at(0x008D) volatile __PIE2bits_t PIE2bits;
730 
731 #define _BCLIE                  0x08
732 #define _LVDIE                  0x80
733 
734 //==============================================================================
735 
736 
737 //==============================================================================
738 //        PCON Bits
739 
740 extern __at(0x008E) __sfr PCON;
741 
742 typedef union
743   {
744   struct
745     {
746     unsigned NOT_BOR            : 1;
747     unsigned NOT_POR            : 1;
748     unsigned                    : 1;
749     unsigned OSCF               : 1;
750     unsigned                    : 1;
751     unsigned                    : 1;
752     unsigned                    : 1;
753     unsigned                    : 1;
754     };
755 
756   struct
757     {
758     unsigned NOT_BO             : 1;
759     unsigned                    : 1;
760     unsigned                    : 1;
761     unsigned                    : 1;
762     unsigned                    : 1;
763     unsigned                    : 1;
764     unsigned                    : 1;
765     unsigned                    : 1;
766     };
767   } __PCONbits_t;
768 
769 extern __at(0x008E) volatile __PCONbits_t PCONbits;
770 
771 #define _NOT_BOR                0x01
772 #define _NOT_BO                 0x01
773 #define _NOT_POR                0x02
774 #define _OSCF                   0x08
775 
776 //==============================================================================
777 
778 
779 //==============================================================================
780 //        SSPCON2 Bits
781 
782 extern __at(0x0091) __sfr SSPCON2;
783 
784 typedef struct
785   {
786   unsigned SEN                  : 1;
787   unsigned RSEN                 : 1;
788   unsigned PEN                  : 1;
789   unsigned RCEN                 : 1;
790   unsigned ACKEN                : 1;
791   unsigned ACKDT                : 1;
792   unsigned ACKSTAT              : 1;
793   unsigned GCEN                 : 1;
794   } __SSPCON2bits_t;
795 
796 extern __at(0x0091) volatile __SSPCON2bits_t SSPCON2bits;
797 
798 #define _SEN                    0x01
799 #define _RSEN                   0x02
800 #define _PEN                    0x04
801 #define _RCEN                   0x08
802 #define _ACKEN                  0x10
803 #define _ACKDT                  0x20
804 #define _ACKSTAT                0x40
805 #define _GCEN                   0x80
806 
807 //==============================================================================
808 
809 extern __at(0x0092) __sfr PR2;
810 extern __at(0x0093) __sfr SSPADD;
811 
812 //==============================================================================
813 //        SSPSTAT Bits
814 
815 extern __at(0x0094) __sfr SSPSTAT;
816 
817 typedef union
818   {
819   struct
820     {
821     unsigned BF                 : 1;
822     unsigned UA                 : 1;
823     unsigned R_NOT_W            : 1;
824     unsigned S                  : 1;
825     unsigned P                  : 1;
826     unsigned D_NOT_A            : 1;
827     unsigned CKE                : 1;
828     unsigned SMP                : 1;
829     };
830 
831   struct
832     {
833     unsigned                    : 1;
834     unsigned                    : 1;
835     unsigned R                  : 1;
836     unsigned I2C_START          : 1;
837     unsigned I2C_STOP           : 1;
838     unsigned D                  : 1;
839     unsigned                    : 1;
840     unsigned                    : 1;
841     };
842 
843   struct
844     {
845     unsigned                    : 1;
846     unsigned                    : 1;
847     unsigned I2C_READ           : 1;
848     unsigned                    : 1;
849     unsigned                    : 1;
850     unsigned I2C_DATA           : 1;
851     unsigned                    : 1;
852     unsigned                    : 1;
853     };
854 
855   struct
856     {
857     unsigned                    : 1;
858     unsigned                    : 1;
859     unsigned R_W                : 1;
860     unsigned                    : 1;
861     unsigned                    : 1;
862     unsigned D_A                : 1;
863     unsigned                    : 1;
864     unsigned                    : 1;
865     };
866 
867   struct
868     {
869     unsigned                    : 1;
870     unsigned                    : 1;
871     unsigned READ_WRITE         : 1;
872     unsigned                    : 1;
873     unsigned                    : 1;
874     unsigned DATA_ADDRESS       : 1;
875     unsigned                    : 1;
876     unsigned                    : 1;
877     };
878 
879   struct
880     {
881     unsigned                    : 1;
882     unsigned                    : 1;
883     unsigned NOT_W              : 1;
884     unsigned                    : 1;
885     unsigned                    : 1;
886     unsigned NOT_A              : 1;
887     unsigned                    : 1;
888     unsigned                    : 1;
889     };
890 
891   struct
892     {
893     unsigned                    : 1;
894     unsigned                    : 1;
895     unsigned NOT_WRITE          : 1;
896     unsigned                    : 1;
897     unsigned                    : 1;
898     unsigned NOT_ADDRESS        : 1;
899     unsigned                    : 1;
900     unsigned                    : 1;
901     };
902   } __SSPSTATbits_t;
903 
904 extern __at(0x0094) volatile __SSPSTATbits_t SSPSTATbits;
905 
906 #define _BF                     0x01
907 #define _UA                     0x02
908 #define _R_NOT_W                0x04
909 #define _R                      0x04
910 #define _I2C_READ               0x04
911 #define _R_W                    0x04
912 #define _READ_WRITE             0x04
913 #define _NOT_W                  0x04
914 #define _NOT_WRITE              0x04
915 #define _S                      0x08
916 #define _I2C_START              0x08
917 #define _P                      0x10
918 #define _I2C_STOP               0x10
919 #define _D_NOT_A                0x20
920 #define _D                      0x20
921 #define _I2C_DATA               0x20
922 #define _D_A                    0x20
923 #define _DATA_ADDRESS           0x20
924 #define _NOT_A                  0x20
925 #define _NOT_ADDRESS            0x20
926 #define _CKE                    0x40
927 #define _SMP                    0x80
928 
929 //==============================================================================
930 
931 
932 //==============================================================================
933 //        WPUB Bits
934 
935 extern __at(0x0095) __sfr WPUB;
936 
937 typedef struct
938   {
939   unsigned WPUB0                : 1;
940   unsigned WPUB1                : 1;
941   unsigned WPUB2                : 1;
942   unsigned WPUB3                : 1;
943   unsigned WPUB4                : 1;
944   unsigned WPUB5                : 1;
945   unsigned WPUB6                : 1;
946   unsigned WPUB7                : 1;
947   } __WPUBbits_t;
948 
949 extern __at(0x0095) volatile __WPUBbits_t WPUBbits;
950 
951 #define _WPUB0                  0x01
952 #define _WPUB1                  0x02
953 #define _WPUB2                  0x04
954 #define _WPUB3                  0x08
955 #define _WPUB4                  0x10
956 #define _WPUB5                  0x20
957 #define _WPUB6                  0x40
958 #define _WPUB7                  0x80
959 
960 //==============================================================================
961 
962 
963 //==============================================================================
964 //        IOCB Bits
965 
966 extern __at(0x0096) __sfr IOCB;
967 
968 typedef struct
969   {
970   unsigned IOCB0                : 1;
971   unsigned IOCB1                : 1;
972   unsigned IOCB2                : 1;
973   unsigned IOCB3                : 1;
974   unsigned IOCB4                : 1;
975   unsigned IOCB5                : 1;
976   unsigned IOCB6                : 1;
977   unsigned IOCB7                : 1;
978   } __IOCBbits_t;
979 
980 extern __at(0x0096) volatile __IOCBbits_t IOCBbits;
981 
982 #define _IOCB0                  0x01
983 #define _IOCB1                  0x02
984 #define _IOCB2                  0x04
985 #define _IOCB3                  0x08
986 #define _IOCB4                  0x10
987 #define _IOCB5                  0x20
988 #define _IOCB6                  0x40
989 #define _IOCB7                  0x80
990 
991 //==============================================================================
992 
993 extern __at(0x0097) __sfr P1DEL;
994 
995 //==============================================================================
996 //        REFCON Bits
997 
998 extern __at(0x009B) __sfr REFCON;
999 
1000 typedef struct
1001   {
1002   unsigned                      : 1;
1003   unsigned                      : 1;
1004   unsigned                      : 1;
1005   unsigned                      : 1;
1006   unsigned VRLOEN               : 1;
1007   unsigned VRHOEN               : 1;
1008   unsigned VRLEN                : 1;
1009   unsigned VRHEN                : 1;
1010   } __REFCONbits_t;
1011 
1012 extern __at(0x009B) volatile __REFCONbits_t REFCONbits;
1013 
1014 #define _VRLOEN                 0x10
1015 #define _VRHOEN                 0x20
1016 #define _VRLEN                  0x40
1017 #define _VRHEN                  0x80
1018 
1019 //==============================================================================
1020 
1021 
1022 //==============================================================================
1023 //        LVDCON Bits
1024 
1025 extern __at(0x009C) __sfr LVDCON;
1026 
1027 typedef union
1028   {
1029   struct
1030     {
1031     unsigned LV0                : 1;
1032     unsigned LV1                : 1;
1033     unsigned LV2                : 1;
1034     unsigned LV3                : 1;
1035     unsigned LVDEN              : 1;
1036     unsigned BGST               : 1;
1037     unsigned                    : 1;
1038     unsigned                    : 1;
1039     };
1040 
1041   struct
1042     {
1043     unsigned LV                 : 4;
1044     unsigned                    : 4;
1045     };
1046   } __LVDCONbits_t;
1047 
1048 extern __at(0x009C) volatile __LVDCONbits_t LVDCONbits;
1049 
1050 #define _LV0                    0x01
1051 #define _LV1                    0x02
1052 #define _LV2                    0x04
1053 #define _LV3                    0x08
1054 #define _LVDEN                  0x10
1055 #define _BGST                   0x20
1056 
1057 //==============================================================================
1058 
1059 
1060 //==============================================================================
1061 //        ANSEL Bits
1062 
1063 extern __at(0x009D) __sfr ANSEL;
1064 
1065 typedef union
1066   {
1067   struct
1068     {
1069     unsigned ANS0               : 1;
1070     unsigned ANS1               : 1;
1071     unsigned ANS2               : 1;
1072     unsigned ANS3               : 1;
1073     unsigned ANS4               : 1;
1074     unsigned ANS5               : 1;
1075     unsigned                    : 1;
1076     unsigned                    : 1;
1077     };
1078 
1079   struct
1080     {
1081     unsigned ANS                : 6;
1082     unsigned                    : 2;
1083     };
1084   } __ANSELbits_t;
1085 
1086 extern __at(0x009D) volatile __ANSELbits_t ANSELbits;
1087 
1088 #define _ANS0                   0x01
1089 #define _ANS1                   0x02
1090 #define _ANS2                   0x04
1091 #define _ANS3                   0x08
1092 #define _ANS4                   0x10
1093 #define _ANS5                   0x20
1094 
1095 //==============================================================================
1096 
1097 extern __at(0x009E) __sfr ADRESL;
1098 
1099 //==============================================================================
1100 //        ADCON1 Bits
1101 
1102 extern __at(0x009F) __sfr ADCON1;
1103 
1104 typedef union
1105   {
1106   struct
1107     {
1108     unsigned                    : 1;
1109     unsigned                    : 1;
1110     unsigned                    : 1;
1111     unsigned                    : 1;
1112     unsigned VCFG0              : 1;
1113     unsigned VCFG1              : 1;
1114     unsigned VCFG2              : 1;
1115     unsigned ADFM               : 1;
1116     };
1117 
1118   struct
1119     {
1120     unsigned                    : 4;
1121     unsigned VCFG               : 3;
1122     unsigned                    : 1;
1123     };
1124   } __ADCON1bits_t;
1125 
1126 extern __at(0x009F) volatile __ADCON1bits_t ADCON1bits;
1127 
1128 #define _VCFG0                  0x10
1129 #define _VCFG1                  0x20
1130 #define _VCFG2                  0x40
1131 #define _ADFM                   0x80
1132 
1133 //==============================================================================
1134 
1135 extern __at(0x010C) __sfr PMDATL;
1136 extern __at(0x010D) __sfr PMADRL;
1137 extern __at(0x010E) __sfr PMDATH;
1138 extern __at(0x010F) __sfr PMADRH;
1139 
1140 //==============================================================================
1141 //        PMCON1 Bits
1142 
1143 extern __at(0x018C) __sfr PMCON1;
1144 
1145 typedef struct
1146   {
1147   unsigned RD                   : 1;
1148   unsigned                      : 1;
1149   unsigned                      : 1;
1150   unsigned                      : 1;
1151   unsigned                      : 1;
1152   unsigned                      : 1;
1153   unsigned                      : 1;
1154   unsigned                      : 1;
1155   } __PMCON1bits_t;
1156 
1157 extern __at(0x018C) volatile __PMCON1bits_t PMCON1bits;
1158 
1159 #define _RD                     0x01
1160 
1161 //==============================================================================
1162 
1163 
1164 //==============================================================================
1165 //
1166 //        Configuration Bits
1167 //
1168 //==============================================================================
1169 
1170 #define _CONFIG1                0x2007
1171 
1172 //----------------------------- CONFIG1 Options -------------------------------
1173 
1174 #define _FOSC_LP                0x3FF8  // LP oscillator.
1175 #define _LP_OSC                 0x3FF8  // LP oscillator.
1176 #define _FOSC_XT                0x3FF9  // XT oscillator.
1177 #define _XT_OSC                 0x3FF9  // XT oscillator.
1178 #define _FOSC_HS                0x3FFA  // HS oscillator.
1179 #define _HS_OSC                 0x3FFA  // HS oscillator.
1180 #define _FOSC_EXTCLK            0x3FFB  // EC I/O.
1181 #define _EXTCLK_OSC             0x3FFB  // EC I/O.
1182 #define _FOSC_INTRCIO           0x3FFC  // INTRC, OSC2 is I/O.
1183 #define _INTRC_OSC_NOCLKOUT     0x3FFC  // INTRC, OSC2 is I/O.
1184 #define _FOSC_INTRCCLK          0x3FFD  // INTRC, clockout on OSC2.
1185 #define _INTRC_OSC_CLKOUT       0x3FFD  // INTRC, clockout on OSC2.
1186 #define _FOSC_ER_NOCLKOUT       0x3FFE  // ER I/O.
1187 #define _ER_OSC_NOCLKOUT        0x3FFE  // ER I/O.
1188 #define _FOSC_ER_CLKOUT         0x3FFF  // ER CLKOUT.
1189 #define _ER_OSC_CLKOUT          0x3FFF  // ER CLKOUT.
1190 #define _WDTE_OFF               0x3FF7  // WDT disabled.
1191 #define _WDT_OFF                0x3FF7  // WDT disabled.
1192 #define _WDTE_ON                0x3FFF  // WDT enabled.
1193 #define _WDT_ON                 0x3FFF  // WDT enabled.
1194 #define _PWRTE_ON               0x3FEF  // PWRT enabled.
1195 #define _PWRTE_OFF              0x3FFF  // PWRT disabled.
1196 #define _MCLRE_OFF              0x3FDF  // Internal.
1197 #define _MCLRE_ON               0x3FFF  // External.
1198 #define _BOREN_OFF              0x3FBF  // BOR disabled.
1199 #define _BODEN_OFF              0x3FBF  // BOR disabled.
1200 #define _BOREN_ON               0x3FFF  // BOR enabled.
1201 #define _BODEN_ON               0x3FFF  // BOR enabled.
1202 #define _CP_ALL                 0x0CFF  // All memory is code protected.
1203 #define _CP_OFF                 0x3FFF  // Code protection off.
1204 #define _BODENV_45              0x33FF  // VBOR set to 4.5V.
1205 #define _VBOR_45                0x33FF  // VBOR set to 4.5V.
1206 #define _BODENV_42              0x37FF  // VBOR set to 4.2V.
1207 #define _VBOR_42                0x37FF  // VBOR set to 4.2V.
1208 #define _BODENV_27              0x3BFF  // VBOR set to 2.7V.
1209 #define _VBOR_27                0x3BFF  // VBOR set to 2.7V.
1210 #define _BODENV_25              0x3FFF  // VBOR set to 2.5V.
1211 #define _VBOR_25                0x3FFF  // VBOR set to 2.5V.
1212 
1213 //==============================================================================
1214 
1215 #define _IDLOC0                 0x2000
1216 #define _IDLOC1                 0x2001
1217 #define _IDLOC2                 0x2002
1218 #define _IDLOC3                 0x2003
1219 
1220 //==============================================================================
1221 
1222 #ifndef NO_BIT_DEFINES
1223 
1224 #define ADON                    ADCON0bits.ADON                 // bit 0
1225 #define CHS3                    ADCON0bits.CHS3                 // bit 1
1226 #define GO_NOT_DONE             ADCON0bits.GO_NOT_DONE          // bit 2, shadows bit in ADCON0bits
1227 #define GO                      ADCON0bits.GO                   // bit 2, shadows bit in ADCON0bits
1228 #define NOT_DONE                ADCON0bits.NOT_DONE             // bit 2, shadows bit in ADCON0bits
1229 #define GO_DONE                 ADCON0bits.GO_DONE              // bit 2, shadows bit in ADCON0bits
1230 #define CHS0                    ADCON0bits.CHS0                 // bit 3
1231 #define CHS1                    ADCON0bits.CHS1                 // bit 4
1232 #define CHS2                    ADCON0bits.CHS2                 // bit 5
1233 #define ADCS0                   ADCON0bits.ADCS0                // bit 6
1234 #define ADCS1                   ADCON0bits.ADCS1                // bit 7
1235 
1236 #define VCFG0                   ADCON1bits.VCFG0                // bit 4
1237 #define VCFG1                   ADCON1bits.VCFG1                // bit 5
1238 #define VCFG2                   ADCON1bits.VCFG2                // bit 6
1239 #define ADFM                    ADCON1bits.ADFM                 // bit 7
1240 
1241 #define ANS0                    ANSELbits.ANS0                  // bit 0
1242 #define ANS1                    ANSELbits.ANS1                  // bit 1
1243 #define ANS2                    ANSELbits.ANS2                  // bit 2
1244 #define ANS3                    ANSELbits.ANS3                  // bit 3
1245 #define ANS4                    ANSELbits.ANS4                  // bit 4
1246 #define ANS5                    ANSELbits.ANS5                  // bit 5
1247 
1248 #define CCP1M0                  CCP1CONbits.CCP1M0              // bit 0
1249 #define CCP1M1                  CCP1CONbits.CCP1M1              // bit 1
1250 #define CCP1M2                  CCP1CONbits.CCP1M2              // bit 2
1251 #define CCP1M3                  CCP1CONbits.CCP1M3              // bit 3
1252 #define DC1B0                   CCP1CONbits.DC1B0               // bit 4
1253 #define DC1B1                   CCP1CONbits.DC1B1               // bit 5
1254 #define PWM1M0                  CCP1CONbits.PWM1M0              // bit 6
1255 #define PWM1M1                  CCP1CONbits.PWM1M1              // bit 7
1256 
1257 #define RBIF                    INTCONbits.RBIF                 // bit 0
1258 #define INTF                    INTCONbits.INTF                 // bit 1
1259 #define T0IF                    INTCONbits.T0IF                 // bit 2, shadows bit in INTCONbits
1260 #define TMR0IF                  INTCONbits.TMR0IF               // bit 2, shadows bit in INTCONbits
1261 #define RBIE                    INTCONbits.RBIE                 // bit 3
1262 #define INTE                    INTCONbits.INTE                 // bit 4
1263 #define T0IE                    INTCONbits.T0IE                 // bit 5, shadows bit in INTCONbits
1264 #define TMR0IE                  INTCONbits.TMR0IE               // bit 5, shadows bit in INTCONbits
1265 #define PEIE                    INTCONbits.PEIE                 // bit 6
1266 #define GIE                     INTCONbits.GIE                  // bit 7
1267 
1268 #define IOCB0                   IOCBbits.IOCB0                  // bit 0
1269 #define IOCB1                   IOCBbits.IOCB1                  // bit 1
1270 #define IOCB2                   IOCBbits.IOCB2                  // bit 2
1271 #define IOCB3                   IOCBbits.IOCB3                  // bit 3
1272 #define IOCB4                   IOCBbits.IOCB4                  // bit 4
1273 #define IOCB5                   IOCBbits.IOCB5                  // bit 5
1274 #define IOCB6                   IOCBbits.IOCB6                  // bit 6
1275 #define IOCB7                   IOCBbits.IOCB7                  // bit 7
1276 
1277 #define LV0                     LVDCONbits.LV0                  // bit 0
1278 #define LV1                     LVDCONbits.LV1                  // bit 1
1279 #define LV2                     LVDCONbits.LV2                  // bit 2
1280 #define LV3                     LVDCONbits.LV3                  // bit 3
1281 #define LVDEN                   LVDCONbits.LVDEN                // bit 4
1282 #define BGST                    LVDCONbits.BGST                 // bit 5
1283 
1284 #define PS0                     OPTION_REGbits.PS0              // bit 0
1285 #define PS1                     OPTION_REGbits.PS1              // bit 1
1286 #define PS2                     OPTION_REGbits.PS2              // bit 2
1287 #define PSA                     OPTION_REGbits.PSA              // bit 3
1288 #define T0SE                    OPTION_REGbits.T0SE             // bit 4
1289 #define T0CS                    OPTION_REGbits.T0CS             // bit 5
1290 #define INTEDG                  OPTION_REGbits.INTEDG           // bit 6
1291 #define NOT_RBPU                OPTION_REGbits.NOT_RBPU         // bit 7
1292 
1293 #define NOT_BOR                 PCONbits.NOT_BOR                // bit 0, shadows bit in PCONbits
1294 #define NOT_BO                  PCONbits.NOT_BO                 // bit 0, shadows bit in PCONbits
1295 #define NOT_POR                 PCONbits.NOT_POR                // bit 1
1296 #define OSCF                    PCONbits.OSCF                   // bit 3
1297 
1298 #define TMR1IE                  PIE1bits.TMR1IE                 // bit 0
1299 #define TMR2IE                  PIE1bits.TMR2IE                 // bit 1
1300 #define CCP1IE                  PIE1bits.CCP1IE                 // bit 2
1301 #define SSPIE                   PIE1bits.SSPIE                  // bit 3
1302 #define ADIE                    PIE1bits.ADIE                   // bit 6
1303 
1304 #define BCLIE                   PIE2bits.BCLIE                  // bit 3
1305 #define LVDIE                   PIE2bits.LVDIE                  // bit 7
1306 
1307 #define TMR1IF                  PIR1bits.TMR1IF                 // bit 0
1308 #define TMR2IF                  PIR1bits.TMR2IF                 // bit 1
1309 #define CCP1IF                  PIR1bits.CCP1IF                 // bit 2
1310 #define SSPIF                   PIR1bits.SSPIF                  // bit 3
1311 #define ADIF                    PIR1bits.ADIF                   // bit 6
1312 
1313 #define BCLIF                   PIR2bits.BCLIF                  // bit 3
1314 #define LVDIF                   PIR2bits.LVDIF                  // bit 7
1315 
1316 #define RD                      PMCON1bits.RD                   // bit 0
1317 
1318 #define RA0                     PORTAbits.RA0                   // bit 0
1319 #define RA1                     PORTAbits.RA1                   // bit 1
1320 #define RA2                     PORTAbits.RA2                   // bit 2
1321 #define RA3                     PORTAbits.RA3                   // bit 3
1322 #define RA4                     PORTAbits.RA4                   // bit 4
1323 #define RA5                     PORTAbits.RA5                   // bit 5
1324 #define RA6                     PORTAbits.RA6                   // bit 6
1325 #define RA7                     PORTAbits.RA7                   // bit 7
1326 
1327 #define RB0                     PORTBbits.RB0                   // bit 0
1328 #define RB1                     PORTBbits.RB1                   // bit 1
1329 #define RB2                     PORTBbits.RB2                   // bit 2
1330 #define RB3                     PORTBbits.RB3                   // bit 3
1331 #define RB4                     PORTBbits.RB4                   // bit 4
1332 #define RB5                     PORTBbits.RB5                   // bit 5
1333 #define RB6                     PORTBbits.RB6                   // bit 6
1334 #define RB7                     PORTBbits.RB7                   // bit 7
1335 
1336 #define VRLOEN                  REFCONbits.VRLOEN               // bit 4
1337 #define VRHOEN                  REFCONbits.VRHOEN               // bit 5
1338 #define VRLEN                   REFCONbits.VRLEN                // bit 6
1339 #define VRHEN                   REFCONbits.VRHEN                // bit 7
1340 
1341 #define SSPM0                   SSPCONbits.SSPM0                // bit 0
1342 #define SSPM1                   SSPCONbits.SSPM1                // bit 1
1343 #define SSPM2                   SSPCONbits.SSPM2                // bit 2
1344 #define SSPM3                   SSPCONbits.SSPM3                // bit 3
1345 #define CKP                     SSPCONbits.CKP                  // bit 4
1346 #define SSPEN                   SSPCONbits.SSPEN                // bit 5
1347 #define SSPOV                   SSPCONbits.SSPOV                // bit 6
1348 #define WCOL                    SSPCONbits.WCOL                 // bit 7
1349 
1350 #define SEN                     SSPCON2bits.SEN                 // bit 0
1351 #define RSEN                    SSPCON2bits.RSEN                // bit 1
1352 #define PEN                     SSPCON2bits.PEN                 // bit 2
1353 #define RCEN                    SSPCON2bits.RCEN                // bit 3
1354 #define ACKEN                   SSPCON2bits.ACKEN               // bit 4
1355 #define ACKDT                   SSPCON2bits.ACKDT               // bit 5
1356 #define ACKSTAT                 SSPCON2bits.ACKSTAT             // bit 6
1357 #define GCEN                    SSPCON2bits.GCEN                // bit 7
1358 
1359 #define BF                      SSPSTATbits.BF                  // bit 0
1360 #define UA                      SSPSTATbits.UA                  // bit 1
1361 #define R_NOT_W                 SSPSTATbits.R_NOT_W             // bit 2, shadows bit in SSPSTATbits
1362 #define R                       SSPSTATbits.R                   // bit 2, shadows bit in SSPSTATbits
1363 #define I2C_READ                SSPSTATbits.I2C_READ            // bit 2, shadows bit in SSPSTATbits
1364 #define R_W                     SSPSTATbits.R_W                 // bit 2, shadows bit in SSPSTATbits
1365 #define READ_WRITE              SSPSTATbits.READ_WRITE          // bit 2, shadows bit in SSPSTATbits
1366 #define NOT_W                   SSPSTATbits.NOT_W               // bit 2, shadows bit in SSPSTATbits
1367 #define NOT_WRITE               SSPSTATbits.NOT_WRITE           // bit 2, shadows bit in SSPSTATbits
1368 #define S                       SSPSTATbits.S                   // bit 3, shadows bit in SSPSTATbits
1369 #define I2C_START               SSPSTATbits.I2C_START           // bit 3, shadows bit in SSPSTATbits
1370 #define P                       SSPSTATbits.P                   // bit 4, shadows bit in SSPSTATbits
1371 #define I2C_STOP                SSPSTATbits.I2C_STOP            // bit 4, shadows bit in SSPSTATbits
1372 #define D_NOT_A                 SSPSTATbits.D_NOT_A             // bit 5, shadows bit in SSPSTATbits
1373 #define D                       SSPSTATbits.D                   // bit 5, shadows bit in SSPSTATbits
1374 #define I2C_DATA                SSPSTATbits.I2C_DATA            // bit 5, shadows bit in SSPSTATbits
1375 #define D_A                     SSPSTATbits.D_A                 // bit 5, shadows bit in SSPSTATbits
1376 #define DATA_ADDRESS            SSPSTATbits.DATA_ADDRESS        // bit 5, shadows bit in SSPSTATbits
1377 #define NOT_A                   SSPSTATbits.NOT_A               // bit 5, shadows bit in SSPSTATbits
1378 #define NOT_ADDRESS             SSPSTATbits.NOT_ADDRESS         // bit 5, shadows bit in SSPSTATbits
1379 #define CKE                     SSPSTATbits.CKE                 // bit 6
1380 #define SMP                     SSPSTATbits.SMP                 // bit 7
1381 
1382 #define C                       STATUSbits.C                    // bit 0
1383 #define DC                      STATUSbits.DC                   // bit 1
1384 #define Z                       STATUSbits.Z                    // bit 2
1385 #define NOT_PD                  STATUSbits.NOT_PD               // bit 3
1386 #define NOT_TO                  STATUSbits.NOT_TO               // bit 4
1387 #define RP0                     STATUSbits.RP0                  // bit 5
1388 #define RP1                     STATUSbits.RP1                  // bit 6
1389 #define IRP                     STATUSbits.IRP                  // bit 7
1390 
1391 #define TMR1ON                  T1CONbits.TMR1ON                // bit 0
1392 #define TMR1CS                  T1CONbits.TMR1CS                // bit 1
1393 #define NOT_T1SYNC              T1CONbits.NOT_T1SYNC            // bit 2, shadows bit in T1CONbits
1394 #define T1INSYNC                T1CONbits.T1INSYNC              // bit 2, shadows bit in T1CONbits
1395 #define T1OSCEN                 T1CONbits.T1OSCEN               // bit 3
1396 #define T1CKPS0                 T1CONbits.T1CKPS0               // bit 4
1397 #define T1CKPS1                 T1CONbits.T1CKPS1               // bit 5
1398 
1399 #define T2CKPS0                 T2CONbits.T2CKPS0               // bit 0
1400 #define T2CKPS1                 T2CONbits.T2CKPS1               // bit 1
1401 #define TMR2ON                  T2CONbits.TMR2ON                // bit 2
1402 #define TOUTPS0                 T2CONbits.TOUTPS0               // bit 3
1403 #define TOUTPS1                 T2CONbits.TOUTPS1               // bit 4
1404 #define TOUTPS2                 T2CONbits.TOUTPS2               // bit 5
1405 #define TOUTPS3                 T2CONbits.TOUTPS3               // bit 6
1406 
1407 #define TRISA0                  TRISAbits.TRISA0                // bit 0
1408 #define TRISA1                  TRISAbits.TRISA1                // bit 1
1409 #define TRISA2                  TRISAbits.TRISA2                // bit 2
1410 #define TRISA3                  TRISAbits.TRISA3                // bit 3
1411 #define TRISA4                  TRISAbits.TRISA4                // bit 4
1412 #define TRISA5                  TRISAbits.TRISA5                // bit 5
1413 #define TRISA6                  TRISAbits.TRISA6                // bit 6
1414 #define TRISA7                  TRISAbits.TRISA7                // bit 7
1415 
1416 #define TRISB0                  TRISBbits.TRISB0                // bit 0
1417 #define TRISB1                  TRISBbits.TRISB1                // bit 1
1418 #define TRISB2                  TRISBbits.TRISB2                // bit 2
1419 #define TRISB3                  TRISBbits.TRISB3                // bit 3
1420 #define TRISB4                  TRISBbits.TRISB4                // bit 4
1421 #define TRISB5                  TRISBbits.TRISB5                // bit 5
1422 #define TRISB6                  TRISBbits.TRISB6                // bit 6
1423 #define TRISB7                  TRISBbits.TRISB7                // bit 7
1424 
1425 #define WPUB0                   WPUBbits.WPUB0                  // bit 0
1426 #define WPUB1                   WPUBbits.WPUB1                  // bit 1
1427 #define WPUB2                   WPUBbits.WPUB2                  // bit 2
1428 #define WPUB3                   WPUBbits.WPUB3                  // bit 3
1429 #define WPUB4                   WPUBbits.WPUB4                  // bit 4
1430 #define WPUB5                   WPUBbits.WPUB5                  // bit 5
1431 #define WPUB6                   WPUBbits.WPUB6                  // bit 6
1432 #define WPUB7                   WPUBbits.WPUB7                  // bit 7
1433 
1434 #endif // #ifndef NO_BIT_DEFINES
1435 
1436 #endif // #ifndef __PIC16C770_H__
1437