* device/include/pic16/usart.h: added compatibility defines for
[fw/sdcc] / device / include / pic16 / pic18f6520.h
1
2 /*
3  * pic18f6520.h - PIC18F6520 Device Library Header
4  *
5  * This file is part of the GNU PIC Library.
6  *
7  * January, 2004
8  * The GNU PIC Library is maintained by,
9  *      Vangelis Rokas <vrokas@otenet.gr>
10  *
11  * $Id$
12  *
13  */
14
15 #ifndef __PIC18F6520_H__
16 #define __PIC18F6520_H__
17
18 extern __sfr __at 0xf6b RCSTA2;
19 typedef union {
20         struct {
21                 unsigned RX9D:1;
22                 unsigned OERR:1;
23                 unsigned FERR:1;
24                 unsigned ADDEN:1;
25                 unsigned CREN:1;
26                 unsigned SREN:1;
27                 unsigned RX9:1;
28                 unsigned SPEN:1;
29         };
30 } __RCSTA2bits_t;
31
32 extern volatile __RCSTA2bits_t __at 0xf6b RCSTA2bits;
33
34 extern __sfr __at 0xf6c TXSTA2;
35 typedef union {
36         struct {
37                 unsigned TX9D:1;
38                 unsigned TRMT:1;
39                 unsigned BRGH:1;
40                 unsigned :1;
41                 unsigned SYNC:1;
42                 unsigned TXEN:1;
43                 unsigned TX9:1;
44                 unsigned CSRC:1;
45         };
46 } __TXSTA2bits_t;
47
48 extern volatile __TXSTA2bits_t __at 0xf6c TXSTA2bits;
49
50 extern __sfr __at 0xf6d TXREG2;
51 extern __sfr __at 0xf6e RCREG2;
52 extern __sfr __at 0xf6f SPBRG2;
53 extern __sfr __at 0xf70 CCP5CON;
54 typedef union {
55         struct {
56                 unsigned CCP5M0:1;
57                 unsigned CCP5M1:1;
58                 unsigned CCP5M2:1;
59                 unsigned CCP5M3:1;
60                 unsigned DCCP5Y:1;
61                 unsigned DCCP5X:1;
62                 unsigned :1;
63                 unsigned :1;
64         };
65 } __CCP5CONbits_t;
66
67 extern volatile __CCP5CONbits_t __at 0xf70 CCP5CONbits;
68
69 extern __sfr __at 0xf71 CCPR5L;
70 extern __sfr __at 0xf72 CCPR5H;
71 extern __sfr __at 0xf73 CCP4CON;
72 typedef union {
73         struct {
74                 unsigned CCP4M0:1;
75                 unsigned CCP4M1:1;
76                 unsigned CCP4M2:1;
77                 unsigned CCP4M3:1;
78                 unsigned DCCP4Y:1;
79                 unsigned DCCP4X:1;
80                 unsigned :1;
81                 unsigned :1;
82         };
83 } __CCP4CONbits_t;
84
85 extern volatile __CCP4CONbits_t __at 0xf73 CCP4CONbits;
86
87 extern __sfr __at 0xf74 CCPR4L;
88 extern __sfr __at 0xf75 CCPR4H;
89 extern __sfr __at 0xf76 T4CON;
90 typedef union {
91         struct {
92                 unsigned T2CKPS0:1;
93                 unsigned T2CKPS1:1;
94                 unsigned TMR2ON:1;
95                 unsigned TOUTPS0:1;
96                 unsigned TOUTPS1:1;
97                 unsigned TOUTPS2:1;
98                 unsigned TOUTPS3:1;
99                 unsigned :1;
100         };
101 } __T4CONbits_t;
102
103 extern volatile __T4CONbits_t __at 0xf76 T4CONbits;
104
105 extern __sfr __at 0xf77 PR4;
106 extern __sfr __at 0xf78 TMR4;
107 extern __sfr __at 0xf80 PORTA;
108 typedef union {
109         struct {
110                 unsigned RA0:1;
111                 unsigned RA1:1;
112                 unsigned RA2:1;
113                 unsigned RA3:1;
114                 unsigned RA4:1;
115                 unsigned RA5:1;
116                 unsigned RA6:1;
117                 unsigned :1;
118         };
119
120         struct {
121                 unsigned AN0:1;
122                 unsigned AN1:1;
123                 unsigned AN2:1;
124                 unsigned AN3:1;
125                 unsigned :1;
126                 unsigned AN4:1;
127                 unsigned OSC2:1;
128                 unsigned :1;
129         };
130
131         struct {
132                 unsigned :1;
133                 unsigned :1;
134                 unsigned VREFM:1;
135                 unsigned VREFP:1;
136                 unsigned T0CKI:1;
137                 unsigned SS:1;
138                 unsigned CLK0:1;
139                 unsigned :1;
140         };
141
142         struct {
143                 unsigned :1;
144                 unsigned :1;
145                 unsigned :1;
146                 unsigned :1;
147                 unsigned :1;
148                 unsigned LVDIN:1;
149                 unsigned :1;
150                 unsigned :1;
151         };
152 } __PORTAbits_t;
153
154 extern volatile __PORTAbits_t __at 0xf80 PORTAbits;
155
156 extern __sfr __at 0xf81 PORTB;
157 typedef union {
158         struct {
159                 unsigned RB0:1;
160                 unsigned RB1:1;
161                 unsigned RB2:1;
162                 unsigned RB3:1;
163                 unsigned RB4:1;
164                 unsigned RB5:1;
165                 unsigned RB6:1;
166                 unsigned RB7:1;
167         };
168
169         struct {
170                 unsigned INT0:1;
171                 unsigned INT1:1;
172                 unsigned INT2:1;
173                 unsigned INT3:1;
174                 unsigned :1;
175                 unsigned :1;
176                 unsigned :1;
177                 unsigned :1;
178         };
179 } __PORTBbits_t;
180
181 extern volatile __PORTBbits_t __at 0xf81 PORTBbits;
182
183 extern __sfr __at 0xf82 PORTC;
184 typedef union {
185         struct {
186                 unsigned RC0:1;
187                 unsigned RC1:1;
188                 unsigned RC2:1;
189                 unsigned RC3:1;
190                 unsigned RC4:1;
191                 unsigned RC5:1;
192                 unsigned RC6:1;
193                 unsigned RC7:1;
194         };
195
196         struct {
197                 unsigned T1OSO:1;
198                 unsigned T1OSI:1;
199                 unsigned :1;
200                 unsigned SCK:1;
201                 unsigned SDI:1;
202                 unsigned SDO:1;
203                 unsigned TX:1;
204                 unsigned RX:1;
205         };
206
207         struct {
208                 unsigned T1CKI:1;
209                 unsigned CCP2:1;
210                 unsigned CCP1:1;
211                 unsigned SCL:1;
212                 unsigned SDA:1;
213                 unsigned :1;
214                 unsigned CK:1;
215                 unsigned DT:1;
216         };
217 } __PORTCbits_t;
218
219 extern volatile __PORTCbits_t __at 0xf82 PORTCbits;
220
221 extern __sfr __at 0xf83 PORTD;
222 typedef union {
223         struct {
224                 unsigned RD0:1;
225                 unsigned RD1:1;
226                 unsigned RD2:1;
227                 unsigned RD3:1;
228                 unsigned RD4:1;
229                 unsigned RD5:1;
230                 unsigned RD6:1;
231                 unsigned RD7:1;
232         };
233
234         struct {
235                 unsigned AD0:1;
236                 unsigned AD1:1;
237                 unsigned AD2:1;
238                 unsigned AD3:1;
239                 unsigned AD4:1;
240                 unsigned AD5:1;
241                 unsigned AD6:1;
242                 unsigned AD7:1;
243         };
244 } __PORTDbits_t;
245
246 extern volatile __PORTDbits_t __at 0xf83 PORTDbits;
247
248 extern __sfr __at 0xf84 PORTE;
249 typedef union {
250         struct {
251                 unsigned RE0:1;
252                 unsigned RE1:1;
253                 unsigned RE2:1;
254                 unsigned RE3:1;
255                 unsigned RE4:1;
256                 unsigned RE5:1;
257                 unsigned RE6:1;
258                 unsigned RE7:1;
259         };
260
261         struct {
262                 unsigned ALE:1;
263                 unsigned OE:1;
264                 unsigned WRL:1;
265                 unsigned WRH:1;
266                 unsigned :1;
267                 unsigned :1;
268                 unsigned :1;
269                 unsigned CCP2:1;
270         };
271
272         struct {
273                 unsigned AN5:1;
274                 unsigned :1;
275                 unsigned :1;
276                 unsigned :1;
277                 unsigned :1;
278                 unsigned :1;
279                 unsigned :1;
280                 unsigned :1;
281         };
282 } __PORTEbits_t;
283
284 extern volatile __PORTEbits_t __at 0xf84 PORTEbits;
285
286 extern __sfr __at 0xf85 PORTF;
287 typedef union {
288         struct {
289                 unsigned RF0:1;
290                 unsigned RF1:1;
291                 unsigned RF2:1;
292                 unsigned RF3:1;
293                 unsigned RF4:1;
294                 unsigned RF5:1;
295                 unsigned RF6:1;
296                 unsigned RF7:1;
297         };
298 } __PORTFbits_t;
299
300 extern volatile __PORTFbits_t __at 0xf85 PORTFbits;
301
302 extern __sfr __at 0xf86 PORTG;
303 typedef union {
304         struct {
305                 unsigned RG0:1;
306                 unsigned RG1:1;
307                 unsigned RG2:1;
308                 unsigned RG3:1;
309                 unsigned RG4:1;
310                 unsigned :1;
311                 unsigned :1;
312                 unsigned :1;
313         };
314 } __PORTGbits_t;
315
316 extern volatile __PORTGbits_t __at 0xf86 PORTGbits;
317
318 extern __sfr __at 0xf89 LATA;
319 typedef union {
320         struct {
321                 unsigned LATA0:1;
322                 unsigned LATA1:1;
323                 unsigned LATA2:1;
324                 unsigned LATA3:1;
325                 unsigned LATA4:1;
326                 unsigned LATA5:1;
327                 unsigned LATA6:1;
328                 unsigned :1;
329         };
330 } __LATAbits_t;
331
332 extern volatile __LATAbits_t __at 0xf89 LATAbits;
333
334 extern __sfr __at 0xf8a LATB;
335 typedef union {
336         struct {
337                 unsigned LATB0:1;
338                 unsigned LATB1:1;
339                 unsigned LATB2:1;
340                 unsigned LATB3:1;
341                 unsigned LATB4:1;
342                 unsigned LATB5:1;
343                 unsigned LATB6:1;
344                 unsigned LATB7:1;
345         };
346 } __LATBbits_t;
347
348 extern volatile __LATBbits_t __at 0xf8a LATBbits;
349
350 extern __sfr __at 0xf8b LATC;
351 typedef union {
352         struct {
353                 unsigned LATC0:1;
354                 unsigned LATC1:1;
355                 unsigned LATC2:1;
356                 unsigned LATC3:1;
357                 unsigned LATC4:1;
358                 unsigned LATC5:1;
359                 unsigned LATC6:1;
360                 unsigned LATC7:1;
361         };
362 } __LATCbits_t;
363
364 extern volatile __LATCbits_t __at 0xf8b LATCbits;
365
366 extern __sfr __at 0xf8c LATD;
367 typedef union {
368         struct {
369                 unsigned LATD0:1;
370                 unsigned LATD1:1;
371                 unsigned LATD2:1;
372                 unsigned LATD3:1;
373                 unsigned LATD4:1;
374                 unsigned LATD5:1;
375                 unsigned LATD6:1;
376                 unsigned LATD7:1;
377         };
378 } __LATDbits_t;
379
380 extern volatile __LATDbits_t __at 0xf8c LATDbits;
381
382 extern __sfr __at 0xf8d LATE;
383 typedef union {
384         struct {
385                 unsigned LATE0:1;
386                 unsigned LATE1:1;
387                 unsigned LATE2:1;
388                 unsigned LATE3:1;
389                 unsigned LATE4:1;
390                 unsigned LATE5:1;
391                 unsigned LATE6:1;
392                 unsigned LATE7:1;
393         };
394 } __LATEbits_t;
395
396 extern volatile __LATEbits_t __at 0xf8d LATEbits;
397
398 extern __sfr __at 0xf8e LATF;
399 typedef union {
400         struct {
401                 unsigned LATF0:1;
402                 unsigned LATF1:1;
403                 unsigned LATF2:1;
404                 unsigned LATF3:1;
405                 unsigned LATF4:1;
406                 unsigned LATF5:1;
407                 unsigned LATF6:1;
408                 unsigned LATF7:1;
409         };
410 } __LATFbits_t;
411
412 extern volatile __LATFbits_t __at 0xf8e LATFbits;
413
414 extern __sfr __at 0xf8f LATG;
415 typedef union {
416         struct {
417                 unsigned LATG0:1;
418                 unsigned LATG1:1;
419                 unsigned LATG2:1;
420                 unsigned LATG3:1;
421                 unsigned LATG4:1;
422                 unsigned :1;
423                 unsigned :1;
424                 unsigned :1;
425         };
426 } __LATGbits_t;
427
428 extern volatile __LATGbits_t __at 0xf8f LATGbits;
429
430 extern __sfr __at 0xf92 TRISA;
431 typedef union {
432         struct {
433                 unsigned TRISA0:1;
434                 unsigned TRISA1:1;
435                 unsigned TRISA2:1;
436                 unsigned TRISA3:1;
437                 unsigned TRISA4:1;
438                 unsigned TRISA5:1;
439                 unsigned TRISA6:1;
440                 unsigned :1;
441         };
442 } __TRISAbits_t;
443
444 extern volatile __TRISAbits_t __at 0xf92 TRISAbits;
445
446 extern __sfr __at 0xf93 TRISB;
447 typedef union {
448         struct {
449                 unsigned TRISB0:1;
450                 unsigned TRISB1:1;
451                 unsigned TRISB2:1;
452                 unsigned TRISB3:1;
453                 unsigned TRISB4:1;
454                 unsigned TRISB5:1;
455                 unsigned TRISB6:1;
456                 unsigned TRISB7:1;
457         };
458 } __TRISBbits_t;
459
460 extern volatile __TRISBbits_t __at 0xf93 TRISBbits;
461
462 extern __sfr __at 0xf94 TRISC;
463 typedef union {
464         struct {
465                 unsigned TRISC0:1;
466                 unsigned TRISC1:1;
467                 unsigned TRISC2:1;
468                 unsigned TRISC3:1;
469                 unsigned TRISC4:1;
470                 unsigned TRISC5:1;
471                 unsigned TRISC6:1;
472                 unsigned TRISC7:1;
473         };
474 } __TRISCbits_t;
475
476 extern volatile __TRISCbits_t __at 0xf94 TRISCbits;
477
478 extern __sfr __at 0xf95 TRISD;
479 typedef union {
480         struct {
481                 unsigned TRISD0:1;
482                 unsigned TRISD1:1;
483                 unsigned TRISD2:1;
484                 unsigned TRISD3:1;
485                 unsigned TRISD4:1;
486                 unsigned TRISD5:1;
487                 unsigned TRISD6:1;
488                 unsigned TRISD7:1;
489         };
490 } __TRISDbits_t;
491
492 extern volatile __TRISDbits_t __at 0xf95 TRISDbits;
493
494 extern __sfr __at 0xf96 TRISE;
495 typedef union {
496         struct {
497                 unsigned TRISE0:1;
498                 unsigned TRISE1:1;
499                 unsigned TRISE2:1;
500                 unsigned TRISE3:1;
501                 unsigned TRISE4:1;
502                 unsigned TRISE5:1;
503                 unsigned TRISE6:1;
504                 unsigned TRISE7:1;
505         };
506 } __TRISEbits_t;
507
508 extern volatile __TRISEbits_t __at 0xf96 TRISEbits;
509
510 extern __sfr __at 0xf97 TRISF;
511 typedef union {
512         struct {
513                 unsigned TRISF0:1;
514                 unsigned TRISF1:1;
515                 unsigned TRISF2:1;
516                 unsigned TRISF3:1;
517                 unsigned TRISF4:1;
518                 unsigned TRISF5:1;
519                 unsigned TRISF6:1;
520                 unsigned TRISF7:1;
521         };
522 } __TRISFbits_t;
523
524 extern volatile __TRISFbits_t __at 0xf97 TRISFbits;
525
526 extern __sfr __at 0xf98 TRISG;
527 typedef union {
528         struct {
529                 unsigned TRISG0:1;
530                 unsigned TRISG1:1;
531                 unsigned TRISG2:1;
532                 unsigned TRISG3:1;
533                 unsigned TRISG4:1;
534                 unsigned :1;
535                 unsigned :1;
536                 unsigned :1;
537         };
538 } __TRISGbits_t;
539
540 extern volatile __TRISGbits_t __at 0xf98 TRISGbits;
541
542 extern __sfr __at 0xf9c MEMCON;
543 typedef union {
544         struct {
545                 unsigned WM0:1;
546                 unsigned WM1:1;
547                 unsigned :1;
548                 unsigned :1;
549                 unsigned WAIT0:1;
550                 unsigned WAIT1:1;
551                 unsigned :1;
552                 unsigned EBDIS:1;
553         };
554 } __MEMCONbits_t;
555
556 extern volatile __MEMCONbits_t __at 0xf9c MEMCONbits;
557
558 extern __sfr __at 0xf9d PIE1;
559 typedef union {
560         struct {
561                 unsigned TMR1IE:1;
562                 unsigned TMR2IE:1;
563                 unsigned CCP1IE:1;
564                 unsigned SSPIE:1;
565                 unsigned TXIE:1;
566                 unsigned RCIE:1;
567                 unsigned ADIE:1;
568                 unsigned PSPIE:1;
569         };
570 } __PIE1bits_t;
571
572 extern volatile __PIE1bits_t __at 0xf9d PIE1bits;
573
574 extern __sfr __at 0xf9e PIR1;
575 typedef union {
576         struct {
577                 unsigned TMR1IF:1;
578                 unsigned TMR2IF:1;
579                 unsigned CCP1IF:1;
580                 unsigned SSPIF:1;
581                 unsigned TXIF:1;
582                 unsigned RCIF:1;
583                 unsigned ADIF:1;
584                 unsigned PSPIF:1;
585         };
586 } __PIR1bits_t;
587
588 extern volatile __PIR1bits_t __at 0xf9e PIR1bits;
589
590 extern __sfr __at 0xf9f IPR1;
591 typedef union {
592         struct {
593                 unsigned TMR1IP:1;
594                 unsigned TMR2IP:1;
595                 unsigned CCP1IP:1;
596                 unsigned SSPIP:1;
597                 unsigned TXIP:1;
598                 unsigned RCIP:1;
599                 unsigned ADIP:1;
600                 unsigned PSPIP:1;
601         };
602 } __IPR1bits_t;
603
604 extern volatile __IPR1bits_t __at 0xf9f IPR1bits;
605
606 extern __sfr __at 0xfa0 PIE2;
607 typedef union {
608         struct {
609                 unsigned CCP2IE:1;
610                 unsigned TMR3IE:1;
611                 unsigned LVDIE:1;
612                 unsigned BCLIE:1;
613                 unsigned EEIE:1;
614                 unsigned :1;
615                 unsigned CMIE:1;
616                 unsigned :1;
617         };
618 } __PIE2bits_t;
619
620 extern volatile __PIE2bits_t __at 0xfa0 PIE2bits;
621
622 extern __sfr __at 0xfa1 PIR2;
623 typedef union {
624         struct {
625                 unsigned CCP2IF:1;
626                 unsigned TMR3IF:1;
627                 unsigned LVDIF:1;
628                 unsigned BCLIF:1;
629                 unsigned EEIF:1;
630                 unsigned :1;
631                 unsigned CMIF:1;
632                 unsigned :1;
633         };
634 } __PIR2bits_t;
635
636 extern volatile __PIR2bits_t __at 0xfa1 PIR2bits;
637
638 extern __sfr __at 0xfa2 IPR2;
639 typedef union {
640         struct {
641                 unsigned CCP2IP:1;
642                 unsigned TMR3IP:1;
643                 unsigned LVDIP:1;
644                 unsigned BCLIP:1;
645                 unsigned EEIP:1;
646                 unsigned :1;
647                 unsigned CMIP:1;
648                 unsigned :1;
649         };
650 } __IPR2bits_t;
651
652 extern volatile __IPR2bits_t __at 0xfa2 IPR2bits;
653
654 extern __sfr __at 0xfa3 PIE3;
655 typedef union {
656         struct {
657                 unsigned CCP3IE:1;
658                 unsigned CCP4IE:1;
659                 unsigned CCP5IE:1;
660                 unsigned TMR4IE:1;
661                 unsigned TX2IE:1;
662                 unsigned RC2IE:1;
663                 unsigned :1;
664                 unsigned :1;
665         };
666 } __PIE3bits_t;
667
668 extern volatile __PIE3bits_t __at 0xfa3 PIE3bits;
669
670 extern __sfr __at 0xfa4 PIR3;
671 typedef union {
672         struct {
673                 unsigned CCP3IF:1;
674                 unsigned CCP4IF:1;
675                 unsigned CCP5IF:1;
676                 unsigned TMR4IF:1;
677                 unsigned TX2IF:1;
678                 unsigned RC2IF:1;
679                 unsigned :1;
680                 unsigned :1;
681         };
682 } __PIR3bits_t;
683
684 extern volatile __PIR3bits_t __at 0xfa4 PIR3bits;
685
686 extern __sfr __at 0xfa5 IPR3;
687 typedef union {
688         struct {
689                 unsigned CCP3IP:1;
690                 unsigned CCP4IP:1;
691                 unsigned CCP5IP:1;
692                 unsigned TMR4IP:1;
693                 unsigned TX2IP:1;
694                 unsigned RC2IP:1;
695                 unsigned :1;
696                 unsigned :1;
697         };
698 } __IPR3bits_t;
699
700 extern volatile __IPR3bits_t __at 0xfa5 IPR3bits;
701
702 extern __sfr __at 0xfa6 EECON1;
703 typedef union {
704         struct {
705                 unsigned RD:1;
706                 unsigned WR:1;
707                 unsigned WREN:1;
708                 unsigned WRERR:1;
709                 unsigned FREE:1;
710                 unsigned :1;
711                 unsigned CFGS:1;
712                 unsigned EEPGD:1;
713         };
714 } __EECON1bits_t;
715
716 extern volatile __EECON1bits_t __at 0xfa6 EECON1bits;
717
718 extern __sfr __at 0xfa7 EECON2;
719 extern __sfr __at 0xfa8 EEDATA;
720 extern __sfr __at 0xfa9 EEADR;
721 extern __sfr __at 0xfaa EEADRH;
722 extern __sfr __at 0xfab RCSTA1;
723 typedef union {
724         struct {
725                 unsigned RX9D:1;
726                 unsigned OERR:1;
727                 unsigned FERR:1;
728                 unsigned ADDEN:1;
729                 unsigned CREN:1;
730                 unsigned SREN:1;
731                 unsigned RX9:1;
732                 unsigned SPEN:1;
733         };
734 } __RCSTA1bits_t;
735
736 extern volatile __RCSTA1bits_t __at 0xfab RCSTA1bits;
737
738 extern __sfr __at 0xfac TXSTA1;
739 typedef union {
740         struct {
741                 unsigned TX9D:1;
742                 unsigned TRMT:1;
743                 unsigned BRGH:1;
744                 unsigned :1;
745                 unsigned SYNC:1;
746                 unsigned TXEN:1;
747                 unsigned TX9:1;
748                 unsigned CSRC:1;
749         };
750 } __TXSTA1bits_t;
751
752 extern volatile __TXSTA1bits_t __at 0xfac TXSTA1bits;
753
754 extern __sfr __at 0xfad TXREG1;
755 extern __sfr __at 0xfae RCREG1;
756 extern __sfr __at 0xfaf SPBRG1;
757 extern __sfr __at 0xfb0 PSPCON;
758 typedef union {
759         struct {
760                 unsigned :1;
761                 unsigned :1;
762                 unsigned :1;
763                 unsigned :1;
764                 unsigned PSPMODE:1;
765                 unsigned IBOV:1;
766                 unsigned OBF:1;
767                 unsigned IBF:1;
768         };
769 } __PSPCONbits_t;
770
771 extern volatile __PSPCONbits_t __at 0xfb0 PSPCONbits;
772
773 extern __sfr __at 0xfb1 T3CON;
774 typedef union {
775         struct {
776                 unsigned TMR3ON:1;
777                 unsigned TMR3CS:1;
778                 unsigned T3SYNC:1;
779                 unsigned T3CCP1:1;
780                 unsigned T3CKPS0:1;
781                 unsigned T3CKPS1:1;
782                 unsigned T3CCP2:1;
783                 unsigned RD16:1;
784         };
785 } __T3CONbits_t;
786
787 extern volatile __T3CONbits_t __at 0xfb1 T3CONbits;
788
789 extern __sfr __at 0xfb2 TMR3L;
790 extern __sfr __at 0xfb3 TMR3H;
791 extern __sfr __at 0xfb4 CMCON;
792 typedef union {
793         struct {
794                 unsigned CM0:1;
795                 unsigned CM1:1;
796                 unsigned CM2:1;
797                 unsigned CIS:1;
798                 unsigned C1INV:1;
799                 unsigned C2INV:1;
800                 unsigned C1OUT:1;
801                 unsigned C2OUT:1;
802         };
803 } __CMCONbits_t;
804
805 extern volatile __CMCONbits_t __at 0xfb4 CMCONbits;
806
807 extern __sfr __at 0xfb5 CVRCON;
808 typedef union {
809         struct {
810                 unsigned CVR0:1;
811                 unsigned CVR1:1;
812                 unsigned CVR2:1;
813                 unsigned CVR3:1;
814                 unsigned CVREF:1;
815                 unsigned CVRR:1;
816                 unsigned CVROE:1;
817                 unsigned CVREN:1;
818         };
819 } __CVRCONbits_t;
820
821 extern volatile __CVRCONbits_t __at 0xfb5 CVRCONbits;
822
823 extern __sfr __at 0xfb7 CCP3CON;
824 typedef union {
825         struct {
826                 unsigned CCP3M0:1;
827                 unsigned CCP3M1:1;
828                 unsigned CCP3M2:1;
829                 unsigned CCP3M3:1;
830                 unsigned DCCP3Y:1;
831                 unsigned DCCP3X:1;
832                 unsigned :1;
833                 unsigned :1;
834         };
835 } __CCP3CONbits_t;
836
837 extern volatile __CCP3CONbits_t __at 0xfb7 CCP3CONbits;
838
839 extern __sfr __at 0xfb8 CCPR3L;
840 extern __sfr __at 0xfb9 CCPR3H;
841 extern __sfr __at 0xfba CCP2CON;
842 typedef union {
843         struct {
844                 unsigned CCP2M0:1;
845                 unsigned CCP2M1:1;
846                 unsigned CCP2M2:1;
847                 unsigned CCP2M3:1;
848                 unsigned DCCP2Y:1;
849                 unsigned DCCP2X:1;
850                 unsigned :1;
851                 unsigned :1;
852         };
853 } __CCP2CONbits_t;
854
855 extern volatile __CCP2CONbits_t __at 0xfba CCP2CONbits;
856
857 extern __sfr __at 0xfbb CCPR2L;
858 extern __sfr __at 0xfbc CCPR2H;
859 extern __sfr __at 0xfbd CCP1CON;
860 typedef union {
861         struct {
862                 unsigned CCP1M0:1;
863                 unsigned CCP1M1:1;
864                 unsigned CCP1M2:1;
865                 unsigned CCP1M3:1;
866                 unsigned DCCP1Y:1;
867                 unsigned DCCP1X:1;
868                 unsigned :1;
869                 unsigned :1;
870         };
871 } __CCP1CONbits_t;
872
873 extern volatile __CCP1CONbits_t __at 0xfbd CCP1CONbits;
874
875 extern __sfr __at 0xfbe CCPR1L;
876 extern __sfr __at 0xfbf CCPR1H;
877 extern __sfr __at 0xfc0 ADCON2;
878 typedef union {
879         struct {
880                 unsigned ADCS0:1;
881                 unsigned ADCS1:1;
882                 unsigned ADCS2:1;
883                 unsigned :1;
884                 unsigned :1;
885                 unsigned :1;
886                 unsigned :1;
887                 unsigned ADFM:1;
888         };
889 } __ADCON2bits_t;
890
891 extern volatile __ADCON2bits_t __at 0xfc0 ADCON2bits;
892
893 extern __sfr __at 0xfc1 ADCON1;
894 typedef union {
895         struct {
896                 unsigned PCFG0:1;
897                 unsigned PCFG1:1;
898                 unsigned PCFG2:1;
899                 unsigned PCFG3:1;
900                 unsigned VCFG0:1;
901                 unsigned VCFG1:1;
902                 unsigned :1;
903                 unsigned :1;
904         };
905 } __ADCON1bits_t;
906
907 extern volatile __ADCON1bits_t __at 0xfc1 ADCON1bits;
908
909 extern __sfr __at 0xfc2 ADCON0;
910 typedef union {
911         struct {
912                 unsigned ADON:1;
913                 unsigned GO:1;
914                 unsigned CHS0:1;
915                 unsigned CHS1:1;
916                 unsigned CHS2:1;
917                 unsigned CHS3:1;
918                 unsigned :1;
919                 unsigned :1;
920         };
921 } __ADCON0bits_t;
922
923 extern volatile __ADCON0bits_t __at 0xfc2 ADCON0bits;
924
925 extern __sfr __at 0xfc3 ADRESL;
926 extern __sfr __at 0xfc4 ADRESH;
927 extern __sfr __at 0xfc5 SSPCON2;
928 typedef union {
929         struct {
930                 unsigned SEN:1;
931                 unsigned RSEN:1;
932                 unsigned PEN:1;
933                 unsigned RCEN:1;
934                 unsigned ACKEN:1;
935                 unsigned ACKDT:1;
936                 unsigned ACKSTAT:1;
937                 unsigned GCEN:1;
938         };
939 } __SSPCON2bits_t;
940
941 extern volatile __SSPCON2bits_t __at 0xfc5 SSPCON2bits;
942
943 extern __sfr __at 0xfc6 SSPCON1;
944 typedef union {
945         struct {
946                 unsigned SSPM0:1;
947                 unsigned SSPM1:1;
948                 unsigned SSPM2:1;
949                 unsigned SSPM3:1;
950                 unsigned CKP:1;
951                 unsigned SSPEN:1;
952                 unsigned SSPOV:1;
953                 unsigned WCOL:1;
954         };
955 } __SSPCON1bits_t;
956
957 extern volatile __SSPCON1bits_t __at 0xfc6 SSPCON1bits;
958
959 extern __sfr __at 0xfc7 SSPSTAT;
960 typedef union {
961         struct {
962                 unsigned BF:1;
963                 unsigned UA:1;
964                 unsigned R_W:1;
965                 unsigned S:1;
966                 unsigned P:1;
967                 unsigned D_A:1;
968                 unsigned CKE:1;
969                 unsigned SMP:1;
970         };
971 } __SSPSTATbits_t;
972
973 extern volatile __SSPSTATbits_t __at 0xfc7 SSPSTATbits;
974
975 extern __sfr __at 0xfc8 SSPADD;
976 extern __sfr __at 0xfc9 SSPBUF;
977 extern __sfr __at 0xfca T2CON;
978 typedef union {
979         struct {
980                 unsigned T2CKPS0:1;
981                 unsigned T2CKPS1:1;
982                 unsigned TMR2ON:1;
983                 unsigned TOUTPS0:1;
984                 unsigned TOUTPS1:1;
985                 unsigned TOUTPS2:1;
986                 unsigned TOUTPS3:1;
987                 unsigned :1;
988         };
989 } __T2CONbits_t;
990
991 extern volatile __T2CONbits_t __at 0xfca T2CONbits;
992
993 extern __sfr __at 0xfcb PR2;
994 extern __sfr __at 0xfcc TMR2;
995 extern __sfr __at 0xfcd T1CON;
996 typedef union {
997         struct {
998                 unsigned TMR1ON:1;
999                 unsigned TMR1CS:1;
1000                 unsigned NOT_T1SYNC:1;
1001                 unsigned T1OSCEN:1;
1002                 unsigned T1CKPS0:1;
1003                 unsigned T1CKPS1:1;
1004                 unsigned :1;
1005                 unsigned RD16:1;
1006         };
1007 } __T1CONbits_t;
1008
1009 extern volatile __T1CONbits_t __at 0xfcd T1CONbits;
1010
1011 extern __sfr __at 0xfce TMR1L;
1012 extern __sfr __at 0xfcf TMR1H;
1013 extern __sfr __at 0xfd0 RCON;
1014 typedef union {
1015         struct {
1016                 unsigned BOR:1;
1017                 unsigned POR:1;
1018                 unsigned PD:1;
1019                 unsigned TO:1;
1020                 unsigned RI:1;
1021                 unsigned :1;
1022                 unsigned :1;
1023                 unsigned IPEN:1;
1024         };
1025 } __RCONbits_t;
1026
1027 extern volatile __RCONbits_t __at 0xfd0 RCONbits;
1028
1029 extern __sfr __at 0xfd1 WDTCON;
1030 typedef union {
1031         struct {
1032                 unsigned SWDTEN:1;
1033                 unsigned :1;
1034                 unsigned :1;
1035                 unsigned :1;
1036                 unsigned :1;
1037                 unsigned :1;
1038                 unsigned :1;
1039                 unsigned :1;
1040         };
1041
1042         struct {
1043                 unsigned SWDTE:1;
1044                 unsigned :1;
1045                 unsigned :1;
1046                 unsigned :1;
1047                 unsigned :1;
1048                 unsigned :1;
1049                 unsigned :1;
1050                 unsigned :1;
1051         };
1052 } __WDTCONbits_t;
1053
1054 extern volatile __WDTCONbits_t __at 0xfd1 WDTCONbits;
1055
1056 extern __sfr __at 0xfd2 LVDCON;
1057 typedef union {
1058         struct {
1059                 unsigned LVDL0:1;
1060                 unsigned LVDL1:1;
1061                 unsigned LVDL2:1;
1062                 unsigned LVDL3:1;
1063                 unsigned LVDEN:1;
1064                 unsigned VRST:1;
1065                 unsigned :1;
1066                 unsigned :1;
1067         };
1068
1069         struct {
1070                 unsigned LVV0:1;
1071                 unsigned LVV1:1;
1072                 unsigned LVV2:1;
1073                 unsigned LVV3:1;
1074                 unsigned :1;
1075                 unsigned BGST:1;
1076                 unsigned :1;
1077                 unsigned :1;
1078         };
1079 } __LVDCONbits_t;
1080
1081 extern volatile __LVDCONbits_t __at 0xfd2 LVDCONbits;
1082
1083 extern __sfr __at 0xfd3 OSCCON;
1084 typedef union {
1085         struct {
1086                 unsigned SCS:1;
1087                 unsigned :1;
1088                 unsigned :1;
1089                 unsigned :1;
1090                 unsigned :1;
1091                 unsigned :1;
1092                 unsigned :1;
1093                 unsigned :1;
1094         };
1095 } __OSCCONbits_t;
1096
1097 extern volatile __OSCCONbits_t __at 0xfd3 OSCCONbits;
1098
1099 extern __sfr __at 0xfd5 T0CON;
1100 extern __sfr __at 0xfd6 TMR0L;
1101 extern __sfr __at 0xfd7 TMR0H;
1102 extern __sfr __at 0xfd8 STATUS;
1103 typedef union {
1104         struct {
1105                 unsigned C:1;
1106                 unsigned DC:1;
1107                 unsigned Z:1;
1108                 unsigned OV:1;
1109                 unsigned N:1;
1110                 unsigned :1;
1111                 unsigned :1;
1112                 unsigned :1;
1113         };
1114 } __STATUSbits_t;
1115
1116 extern volatile __STATUSbits_t __at 0xfd8 STATUSbits;
1117
1118 extern __sfr __at 0xfd9 FSR2L;
1119 extern __sfr __at 0xfda FSR2H;
1120 extern __sfr __at 0xfdb PLUSW2;
1121 extern __sfr __at 0xfdc PREINC2;
1122 extern __sfr __at 0xfdd POSTDEC2;
1123 extern __sfr __at 0xfde POSTINC2;
1124 extern __sfr __at 0xfdf INDF2;
1125 extern __sfr __at 0xfe0 BSR;
1126 extern __sfr __at 0xfe1 FSR1L;
1127 extern __sfr __at 0xfe2 FSR1H;
1128 extern __sfr __at 0xfe3 PLUSW1;
1129 extern __sfr __at 0xfe4 PREINC1;
1130 extern __sfr __at 0xfe5 POSTDEC1;
1131 extern __sfr __at 0xfe6 POSTINC1;
1132 extern __sfr __at 0xfe7 INDF1;
1133 extern __sfr __at 0xfe8 WREG;
1134 extern __sfr __at 0xfe9 FSR0L;
1135 extern __sfr __at 0xfea FSR0H;
1136 extern __sfr __at 0xfeb PLUSW0;
1137 extern __sfr __at 0xfec PREINC0;
1138 extern __sfr __at 0xfed POSTDEC0;
1139 extern __sfr __at 0xfee POSTINC0;
1140 extern __sfr __at 0xfef INDF0;
1141 extern __sfr __at 0xff0 INTCON3;
1142 typedef union {
1143         struct {
1144                 unsigned INT1F:1;
1145                 unsigned INT2F:1;
1146                 unsigned INT3F:1;
1147                 unsigned INT1E:1;
1148                 unsigned INT2E:1;
1149                 unsigned INT3E:1;
1150                 unsigned INT1P:1;
1151                 unsigned INT2P:1;
1152         };
1153
1154         struct {
1155                 unsigned INT1IF:1;
1156                 unsigned INT2IF:1;
1157                 unsigned INT3IF:1;
1158                 unsigned INT1IE:1;
1159                 unsigned INT2IE:1;
1160                 unsigned INT3IE:1;
1161                 unsigned INT1IP:1;
1162                 unsigned INT2IP:1;
1163         };
1164 } __INTCON3bits_t;
1165
1166 extern volatile __INTCON3bits_t __at 0xff0 INTCON3bits;
1167
1168 extern __sfr __at 0xff1 INTCON2;
1169 typedef union {
1170         struct {
1171                 unsigned RBIP:1;
1172                 unsigned INT3P:1;
1173                 unsigned T0IP:1;
1174                 unsigned INTEDG3:1;
1175                 unsigned INTEDG2:1;
1176                 unsigned INTEDG1:1;
1177                 unsigned INTEDG0:1;
1178                 unsigned RBPU:1;
1179         };
1180 } __INTCON2bits_t;
1181
1182 extern volatile __INTCON2bits_t __at 0xff1 INTCON2bits;
1183
1184 extern __sfr __at 0xff2 INTCON;
1185 typedef union {
1186         struct {
1187                 unsigned RBIF:1;
1188                 unsigned INT0F:1;
1189                 unsigned T0IF:1;
1190                 unsigned RBIE:1;
1191                 unsigned INT0E:1;
1192                 unsigned T0IE:1;
1193                 unsigned PEIE:1;
1194                 unsigned GIE:1;
1195         };
1196 } __INTCONbits_t;
1197
1198 extern volatile __INTCONbits_t __at 0xff2 INTCONbits;
1199
1200 extern __sfr __at 0xff3 PRODL;
1201 extern __sfr __at 0xff4 PRODH;
1202 extern __sfr __at 0xff5 TABLAT;
1203 extern __sfr __at 0xff6 TBLPTRL;
1204 extern __sfr __at 0xff7 TBLPTRH;
1205 extern __sfr __at 0xff8 TBLPTRU;
1206 extern __sfr __at 0xff9 PCL;
1207 extern __sfr __at 0xffa PCLATH;
1208 extern __sfr __at 0xffb PCLATU;
1209 extern __sfr __at 0xffc STKPTR;
1210 typedef union {
1211         struct {
1212                 unsigned STKPTR0:1;
1213                 unsigned STKPTR1:1;
1214                 unsigned STKPTR2:1;
1215                 unsigned STKPTR3:1;
1216                 unsigned STKPTR4:1;
1217                 unsigned :1;
1218                 unsigned STKUNF:1;
1219                 unsigned STKFUL:1;
1220         };
1221 } __STKPTRbits_t;
1222
1223 extern volatile __STKPTRbits_t __at 0xffc STKPTRbits;
1224
1225 extern __sfr __at 0xffd TOSL;
1226 extern __sfr __at 0xffe TOSH;
1227 extern __sfr __at 0xfff TOSU;
1228
1229
1230 /* Configuration registers locations */
1231 #define __CONFIG1H      0x300001
1232 #define __CONFIG2L      0x300002
1233 #define __CONFIG2H      0x300003
1234 #define __CONFIG3L      0x300004
1235 #define __CONFIG3H      0x300005
1236 #define __CONFIG5L      0x300008
1237 #define __CONFIG5H      0x300009
1238 #define __CONFIG6L      0x30000A
1239 #define __CONFIG6H      0x30000B
1240 #define __CONFIG7L      0x30000C
1241 #define __CONFIG7H      0x30000D
1242
1243
1244
1245 /* Oscillator 1H options */
1246 #define _OSC_RC_OSC2_1H 0xFF    /* RC-OSC2 as RA6 */
1247 #define _OSC_HS_PLL_1H  0xFE    /* HS-PLL Enabled */
1248 #define _OSC_EC_OSC2_RA6_1H     0xFD    /* EC-OSC2 as RA6 */
1249 #define _OSC_EC_OSC2_Clock_Out_1H       0xFC    /* EC-OSC2 as Clock_Out */
1250 #define _OSC_RC_1H      0xFB    /* RC */
1251 #define _OSC_HS_1H      0xFA    /* HS */
1252 #define _OSC_XT_1H      0xF9    /* XT */
1253 #define _OSC_LP_1H      0xF8    /* LP */
1254
1255 /* Osc. Switch Enable 1H options */
1256 #define _OSCS_OFF_1H    0xFF    /* Disabled */
1257 #define _OSCS_ON_1H     0xDF    /* Enabled */
1258
1259 /* Power Up Timer 2L options */
1260 #define _PUT_OFF_2L     0xFF    /* Disabled */
1261 #define _PUT_ON_2L      0xFE    /* Enabled */
1262
1263 /* Brown Out Detect 2L options */
1264 #define _BODEN_ON_2L    0xFF    /* Enabled */
1265 #define _BODEN_OFF_2L   0xFD    /* Disabled */
1266
1267 /* Brown Out Voltage 2L options */
1268 #define _BODENV_2_5V_2L 0xFF    /* 2.5V */
1269 #define _BODENV_2_7V_2L 0xFB    /* 2.7V */
1270 #define _BODENV_4_2V_2L 0xF7    /* 4.2V */
1271 #define _BODENV_4_5V_2L 0xF3    /* 4.5V */
1272
1273 /* Watchdog Timer 2H options */
1274 #define _WDT_ON_2H      0xFF    /* Enabled */
1275 #define _WDT_OFF_2H     0xFE    /* Disabled */
1276
1277 /* Watchdog Postscaler 2H options */
1278 #define _WDTPS_1_128_2H 0xFF    /* 1:128 */
1279 #define _WDTPS_1_64_2H  0xFD    /* 1:64 */
1280 #define _WDTPS_1_32_2H  0xFB    /* 1:32 */
1281 #define _WDTPS_1_16_2H  0xF9    /* 1:16 */
1282 #define _WDTPS_1_8_2H   0xF7    /* 1:8 */
1283 #define _WDTPS_1_4_2H   0xF5    /* 1:4 */
1284 #define _WDTPS_1_2_2H   0xF3    /* 1:2 */
1285 #define _WDTPS_1_1_2H   0xF1    /* 1:1 */
1286
1287 /* External Bus Wait 3L options */
1288 #define _WAIT_OFF_3L    0xFF    /* Disabled */
1289 #define _WAIT_ON_3L     0x7F    /* Enabled */
1290
1291 /* CCP2 Mux 3H options */
1292 #define _CCP2MUX_RC1_3H 0xFF    /* RC1 */
1293 #define _CCP2MUX_RE7_MICROCONTROLLER__RB3_3H    0xFE    /* RE7(Microcontroller)/RB3 */
1294
1295 /* Timer1 OSC 3H options */
1296 #define _T1OSCMX_LOW_3H 0xFD    /* Low Power */
1297
1298 /* Low Voltage Program 3H options */
1299 #define _LVP_ON_3H      0xFF    /* Enabled */
1300 #define _LVP_OFF_3H     0xFB    /* Disabled */
1301
1302 /* Background Debug 3H options */
1303 #define _BACKBUG_OFF_3H 0xFF    /* Disabled */
1304 #define _BACKBUG_ON_3H  0x7F    /* Enabled */
1305
1306 /* Stack Overflow Reset 3H options */
1307 #define _STVR_ON_3H     0xFF    /* Enabled */
1308 #define _STVR_OFF_3H    0xFE    /* Disabled */
1309
1310 /* Code Protect 00800-01FFF 5L options */
1311 #define _CP_0_OFF_5L    0xFF    /* Disabled */
1312 #define _CP_0_ON_5L     0xFE    /* Enabled */
1313
1314 /* Code Protect 02000-03FFF 5L options */
1315 #define _CP_1_OFF_5L    0xFF    /* Disabled */
1316 #define _CP_1_ON_5L     0xFD    /* Enabled */
1317
1318 /* Code Protect 04000-05FFF 5L options */
1319 #define _CP_2_OFF_5L    0xFF    /* Disabled */
1320 #define _CP_2_ON_5L     0xFB    /* Enabled */
1321
1322 /* Code Protect 06000-07FFF 5L options */
1323 #define _CP_3_OFF_5L    0xFF    /* Disabled */
1324 #define _CP_3_ON_5L     0xF7    /* Enabled */
1325
1326 /* Data EE Read Protect 5H options */
1327 #define _CPD_OFF_5H     0xFF    /* Disabled */
1328 #define _CPD_ON_5H      0x7F    /* Enabled */
1329
1330 /* Code Protect Boot 5H options */
1331 #define _CPB_OFF_5H     0xFF    /* Disabled */
1332 #define _CPB_ON_5H      0xBF    /* Enabled */
1333
1334 /* Table Write Protect 00800-01FFF 6L options */
1335 #define _WRT_0_OFF_6L   0xFF    /* Disabled */
1336 #define _WRT_0_ON_6L    0xFE    /* Enabled */
1337
1338 /* Table Write Protect 02000-03FFF 6L options */
1339 #define _WRT_1_OFF_6L   0xFF    /* Disabled */
1340 #define _WRT_1_ON_6L    0xFD    /* Enabled */
1341
1342 /* Table Write Protect 04000-05FFF 6L options */
1343 #define _WRT_2_OFF_6L   0xFF    /* Disabled */
1344 #define _WRT_2_ON_6L    0xFB    /* Enabled */
1345
1346 /* Table Write Protect 06000-07FFF 6L options */
1347 #define _WRT_3_OFF_6L   0xFF    /* Disabled */
1348 #define _WRT_3_ON_6L    0xF7    /* Enabled */
1349
1350 /* Data EE Write Protect 6H options */
1351 #define _WRTD_OFF_6H    0xFF    /* Disabled */
1352 #define _WRTD_ON_6H     0x7F    /* Enabled */
1353
1354 /* Table Write Protect Boot 6H options */
1355 #define _WRTB_OFF_6H    0xFF    /* Disabled */
1356 #define _WRTB_ON_6H     0xBF    /* Enabled */
1357
1358 /* Config. Write Protect 6H options */
1359 #define _WRTC_OFF_6H    0xFF    /* Disabled */
1360 #define _WRTC_ON_6H     0xDF    /* Enabled */
1361
1362 /* Table Read Protect 00800-01FFF 7L options */
1363 #define _EBTR_0_OFF_7L  0xFF    /* Disabled */
1364 #define _EBTR_0_ON_7L   0xFE    /* Enabled */
1365
1366 /* Table Read Protect 02000-03FFF 7L options */
1367 #define _EBTR_1_OFF_7L  0xFF    /* Disabled */
1368 #define _EBTR_1_ON_7L   0xFD    /* Enabled */
1369
1370 /* Table Read Protect 04000-05FFF 7L options */
1371 #define _EBTR_2_OFF_7L  0xFF    /* Disabled */
1372 #define _EBTR_2_ON_7L   0xFB    /* Enabled */
1373
1374 /* Table Read Protect 06000-07FFF 7L options */
1375 #define _EBTR_3_OFF_7L  0xFF    /* Disabled */
1376 #define _EBTR_3_ON_7L   0xF7    /* Enabled */
1377
1378 /* Table Read Protect Boot 7H options */
1379 #define _EBTRB_OFF_7H   0xFF    /* Disabled */
1380 #define _EBTRB_ON_7H    0xBF    /* Enabled */
1381
1382
1383 /* Device ID locations */
1384 #define __IDLOC0        0x200000
1385 #define __IDLOC1        0x200001
1386 #define __IDLOC2        0x200002
1387 #define __IDLOC3        0x200003
1388 #define __IDLOC4        0x200004
1389 #define __IDLOC5        0x200005
1390 #define __IDLOC6        0x200006
1391 #define __IDLOC7        0x200007
1392
1393
1394 /* added for USART compatibility with smaller devices */
1395 #define __MULTIPLE_USARTS 1
1396
1397 #endif