* device/lib/pic16/libdev/pic18f*.c,
[fw/sdcc] / device / include / pic16 / pic18f6680.h
1
2 /*
3  * pic18f6680.h - PIC18F6680 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 __PIC18F6680_H__
16 #define __PIC18F6680_H__
17
18 extern __sfr __at (0xf00) RXF0SIDH;
19 extern __sfr __at (0xf01) RXF0SIDL;
20 typedef union {
21         struct {
22                 unsigned EID16:1;
23                 unsigned EID17:1;
24                 unsigned :1;
25                 unsigned EXIDE:1;
26                 unsigned :1;
27                 unsigned SID0:1;
28                 unsigned SID1:1;
29                 unsigned SID2:1;
30         };
31 } __RXF0SIDLbits_t;
32
33 extern volatile __RXF0SIDLbits_t __at (0xf01) RXF0SIDLbits;
34
35 extern __sfr __at (0xf02) RXF0EIDH;
36 extern __sfr __at (0xf03) RXF0EIDL;
37 extern __sfr __at (0xf04) RXF1SIDH;
38 extern __sfr __at (0xf05) RXF1SIDL;
39 typedef union {
40         struct {
41                 unsigned EID16:1;
42                 unsigned EID17:1;
43                 unsigned :1;
44                 unsigned EXIDE:1;
45                 unsigned :1;
46                 unsigned SID0:1;
47                 unsigned SID1:1;
48                 unsigned SID2:1;
49         };
50 } __RXF1SIDLbits_t;
51
52 extern volatile __RXF1SIDLbits_t __at (0xf05) RXF1SIDLbits;
53
54 extern __sfr __at (0xf06) RXF1EIDH;
55 extern __sfr __at (0xf07) RXF1EIDL;
56 extern __sfr __at (0xf08) RXF2SIDH;
57 extern __sfr __at (0xf09) RXF2SIDL;
58 extern __sfr __at (0xf0a) RXF2EIDH;
59 extern __sfr __at (0xf0b) RXF2EIDL;
60 typedef union {
61         struct {
62                 unsigned EID16:1;
63                 unsigned EID17:1;
64                 unsigned :1;
65                 unsigned EXIDE:1;
66                 unsigned :1;
67                 unsigned SID0:1;
68                 unsigned SID1:1;
69                 unsigned SID2:1;
70         };
71 } __RXF2EIDLbits_t;
72
73 extern volatile __RXF2EIDLbits_t __at (0xf0b) RXF2EIDLbits;
74
75 extern __sfr __at (0xf0c) RXF3SIDH;
76 extern __sfr __at (0xf0d) RXF3SIDL;
77 typedef union {
78         struct {
79                 unsigned EID16:1;
80                 unsigned EID17:1;
81                 unsigned :1;
82                 unsigned EXIDE:1;
83                 unsigned :1;
84                 unsigned SID0:1;
85                 unsigned SID1:1;
86                 unsigned SID2:1;
87         };
88 } __RXF3SIDLbits_t;
89
90 extern volatile __RXF3SIDLbits_t __at (0xf0d) RXF3SIDLbits;
91
92 extern __sfr __at (0xf0e) RXF3EIDH;
93 extern __sfr __at (0xf0f) RXF3EIDL;
94 extern __sfr __at (0xf10) RXF4SIDH;
95 extern __sfr __at (0xf11) RXF4SIDL;
96 typedef union {
97         struct {
98                 unsigned EID16:1;
99                 unsigned EID17:1;
100                 unsigned :1;
101                 unsigned EXIDE:1;
102                 unsigned :1;
103                 unsigned SID0:1;
104                 unsigned SID1:1;
105                 unsigned SID2:1;
106         };
107 } __RXF4SIDLbits_t;
108
109 extern volatile __RXF4SIDLbits_t __at (0xf11) RXF4SIDLbits;
110
111 extern __sfr __at (0xf12) RXF4EIDH;
112 extern __sfr __at (0xf13) RXF4EIDL;
113 extern __sfr __at (0xf14) RXF5SIDH;
114 extern __sfr __at (0xf15) RXF5SIDL;
115 typedef union {
116         struct {
117                 unsigned EID16:1;
118                 unsigned EID17:1;
119                 unsigned :1;
120                 unsigned EXIDE:1;
121                 unsigned :1;
122                 unsigned SID0:1;
123                 unsigned SID1:1;
124                 unsigned SID2:1;
125         };
126 } __RXF5SIDLbits_t;
127
128 extern volatile __RXF5SIDLbits_t __at (0xf15) RXF5SIDLbits;
129
130 extern __sfr __at (0xf16) RXF5EIDH;
131 extern __sfr __at (0xf17) RXF5EIDL;
132 extern __sfr __at (0xf18) RXM0SIDH;
133 extern __sfr __at (0xf19) RXM0SIDL;
134 typedef union {
135         struct {
136                 unsigned EID16:1;
137                 unsigned EID17:1;
138                 unsigned :1;
139                 unsigned :1;
140                 unsigned :1;
141                 unsigned SID0:1;
142                 unsigned SID1:1;
143                 unsigned SID2:1;
144         };
145 } __RXM0SIDLbits_t;
146
147 extern volatile __RXM0SIDLbits_t __at (0xf19) RXM0SIDLbits;
148
149 extern __sfr __at (0xf1a) RXM0EIDH;
150 extern __sfr __at (0xf1b) RXM0EIDL;
151 extern __sfr __at (0xf1c) RXM1SIDH;
152 extern __sfr __at (0xf1d) RXM1SIDL;
153 typedef union {
154         struct {
155                 unsigned EID16:1;
156                 unsigned EID17:1;
157                 unsigned :1;
158                 unsigned :1;
159                 unsigned :1;
160                 unsigned SID0:1;
161                 unsigned SID1:1;
162                 unsigned SID2:1;
163         };
164 } __RXM1SIDLbits_t;
165
166 extern volatile __RXM1SIDLbits_t __at (0xf1d) RXM1SIDLbits;
167
168 extern __sfr __at (0xf1e) RXM1EIDH;
169 extern __sfr __at (0xf1f) RXM1EIDL;
170 extern __sfr __at (0xf20) TXB2CON;
171 typedef union {
172         struct {
173                 unsigned TXPRI0:1;
174                 unsigned TXPRI1:1;
175                 unsigned :1;
176                 unsigned TXREQ:1;
177                 unsigned TXERR:1;
178                 unsigned TXLARB:1;
179                 unsigned TXABT:1;
180                 unsigned :1;
181         };
182 } __TXB2CONbits_t;
183
184 extern volatile __TXB2CONbits_t __at (0xf20) TXB2CONbits;
185
186 extern __sfr __at (0xf21) TXB2SIDH;
187 extern __sfr __at (0xf22) TXB2SIDL;
188 typedef union {
189         struct {
190                 unsigned EID16:1;
191                 unsigned EID17:1;
192                 unsigned :1;
193                 unsigned EXID:1;
194                 unsigned SRR:1;
195                 unsigned SID0:1;
196                 unsigned SID1:1;
197                 unsigned SID2:1;
198         };
199 } __TXB2SIDLbits_t;
200
201 extern volatile __TXB2SIDLbits_t __at (0xf22) TXB2SIDLbits;
202
203 extern __sfr __at (0xf23) TXB2EIDH;
204 extern __sfr __at (0xf24) TXB2EIDL;
205 extern __sfr __at (0xf25) TXB2DLC;
206 typedef union {
207         struct {
208                 unsigned DLC0:1;
209                 unsigned DLC1:1;
210                 unsigned DLC2:1;
211                 unsigned DLC3:1;
212                 unsigned :1;
213                 unsigned :1;
214                 unsigned RTR:1;
215                 unsigned :1;
216         };
217 } __TXB2DLCbits_t;
218
219 extern volatile __TXB2DLCbits_t __at (0xf25) TXB2DLCbits;
220
221 extern __sfr __at (0xf26) TXB2D0;
222 extern __sfr __at (0xf27) TXB2D1;
223 extern __sfr __at (0xf28) TXB2D2;
224 extern __sfr __at (0xf29) TXB2D3;
225 extern __sfr __at (0xf2a) TXB2D4;
226 extern __sfr __at (0xf2b) TXB2D5;
227 extern __sfr __at (0xf2c) TXB2D6;
228 extern __sfr __at (0xf2d) TXB2D7;
229 extern __sfr __at (0xf2e) CANSTATRO3;
230 extern __sfr __at (0xf30) TXB1CON;
231 typedef union {
232         struct {
233                 unsigned TXPRI0:1;
234                 unsigned TXPRI1:1;
235                 unsigned :1;
236                 unsigned TXREQ:1;
237                 unsigned TXERR:1;
238                 unsigned TXLARB:1;
239                 unsigned TXABT:1;
240                 unsigned :1;
241         };
242 } __TXB1CONbits_t;
243
244 extern volatile __TXB1CONbits_t __at (0xf30) TXB1CONbits;
245
246 extern __sfr __at (0xf31) TXB1SIDH;
247 extern __sfr __at (0xf32) TXB1SIDL;
248 typedef union {
249         struct {
250                 unsigned EID16:1;
251                 unsigned EID17:1;
252                 unsigned :1;
253                 unsigned EXID:1;
254                 unsigned SRR:1;
255                 unsigned SID0:1;
256                 unsigned SID1:1;
257                 unsigned SID2:1;
258         };
259 } __TXB1SIDLbits_t;
260
261 extern volatile __TXB1SIDLbits_t __at (0xf32) TXB1SIDLbits;
262
263 extern __sfr __at (0xf33) TXB1EIDH;
264 extern __sfr __at (0xf34) TXB1EIDL;
265 extern __sfr __at (0xf35) TXB1DLC;
266 typedef union {
267         struct {
268                 unsigned DLC0:1;
269                 unsigned DLC1:1;
270                 unsigned DLC2:1;
271                 unsigned DLC3:1;
272                 unsigned :1;
273                 unsigned :1;
274                 unsigned RTR:1;
275                 unsigned :1;
276         };
277 } __TXB1DLCbits_t;
278
279 extern volatile __TXB1DLCbits_t __at (0xf35) TXB1DLCbits;
280
281 extern __sfr __at (0xf36) TXB1D0;
282 extern __sfr __at (0xf37) TXB1D1;
283 extern __sfr __at (0xf38) TXB1D2;
284 extern __sfr __at (0xf39) TXB1D3;
285 extern __sfr __at (0xf3a) TXB1D4;
286 extern __sfr __at (0xf3b) TXB1D5;
287 extern __sfr __at (0xf3c) TXB1D6;
288 extern __sfr __at (0xf3d) TXB1D7;
289 extern __sfr __at (0xf3e) CANSTATRO2;
290 extern __sfr __at (0xf40) TXB0CON;
291 typedef union {
292         struct {
293                 unsigned TXPRI0:1;
294                 unsigned TXPRI1:1;
295                 unsigned :1;
296                 unsigned TXREQ:1;
297                 unsigned TXERR:1;
298                 unsigned TXLARB:1;
299                 unsigned TXABT:1;
300                 unsigned :1;
301         };
302 } __TXB0CONbits_t;
303
304 extern volatile __TXB0CONbits_t __at (0xf40) TXB0CONbits;
305
306 extern __sfr __at (0xf41) TXB0SIDH;
307 extern __sfr __at (0xf42) TXB0SIDL;
308 extern __sfr __at (0xf43) TXB0EIDH;
309 extern __sfr __at (0xf44) TXB0EIDL;
310 extern __sfr __at (0xf45) TXB0DLC;
311 typedef union {
312         struct {
313                 unsigned DLC0:1;
314                 unsigned DLC1:1;
315                 unsigned DLC2:1;
316                 unsigned DLC3:1;
317                 unsigned :1;
318                 unsigned :1;
319                 unsigned RTR:1;
320                 unsigned :1;
321         };
322 } __TXB0DLCbits_t;
323
324 extern volatile __TXB0DLCbits_t __at (0xf45) TXB0DLCbits;
325
326 extern __sfr __at (0xf46) TXB0D0;
327 extern __sfr __at (0xf47) TXB0D1;
328 extern __sfr __at (0xf48) TXB0D2;
329 extern __sfr __at (0xf49) TXB0D3;
330 extern __sfr __at (0xf4a) TXB0D4;
331 extern __sfr __at (0xf4b) TXB0D5;
332 extern __sfr __at (0xf4c) TXB0D6;
333 extern __sfr __at (0xf4d) TXB0D7;
334 extern __sfr __at (0xf4e) CANSTATRO1;
335 extern __sfr __at (0xf50) RXB1CON;
336 typedef union {
337         struct {
338                 unsigned :1;
339                 unsigned FILHIT1:1;
340                 unsigned FILHIT2:1;
341                 unsigned RXRTRRO:1;
342                 unsigned :1;
343                 unsigned RXM0:1;
344                 unsigned RXM1:1;
345                 unsigned RXFUL:1;
346         };
347 } __RXB1CONbits_t;
348
349 extern volatile __RXB1CONbits_t __at (0xf50) RXB1CONbits;
350
351 extern __sfr __at (0xf51) RXB1SIDH;
352 extern __sfr __at (0xf52) RXB1SIDL;
353 typedef union {
354         struct {
355                 unsigned EID16:1;
356                 unsigned EID17:1;
357                 unsigned :1;
358                 unsigned EXID:1;
359                 unsigned SRR:1;
360                 unsigned SID0:1;
361                 unsigned SID1:1;
362                 unsigned SID2:1;
363         };
364 } __RXB1SIDLbits_t;
365
366 extern volatile __RXB1SIDLbits_t __at (0xf52) RXB1SIDLbits;
367
368 extern __sfr __at (0xf53) RXB1EIDH;
369 extern __sfr __at (0xf54) RXB1EIDL;
370 extern __sfr __at (0xf55) RXB1DLC;
371 typedef union {
372         struct {
373                 unsigned DLC0:1;
374                 unsigned DLC1:1;
375                 unsigned DLC2:1;
376                 unsigned DLC3:1;
377                 unsigned RESB0:1;
378                 unsigned RESB1:1;
379                 unsigned RTR:1;
380                 unsigned :1;
381         };
382 } __RXB1DLCbits_t;
383
384 extern volatile __RXB1DLCbits_t __at (0xf55) RXB1DLCbits;
385
386 extern __sfr __at (0xf56) RXB1D0;
387 extern __sfr __at (0xf57) RXB1D1;
388 extern __sfr __at (0xf58) RXB1D2;
389 extern __sfr __at (0xf59) RXB1D3;
390 extern __sfr __at (0xf5a) RXB1D4;
391 extern __sfr __at (0xf5b) RXB1D5;
392 extern __sfr __at (0xf5c) RXB1D6;
393 extern __sfr __at (0xf5d) RXB1D7;
394 extern __sfr __at (0xf5e) CANSTATRO0;
395 extern __sfr __at (0xf60) RXB0CON;
396 typedef union {
397         struct {
398                 unsigned FILHIT0:1;
399                 unsigned JTOFF:1;
400                 unsigned RX0DBEN:1;
401                 unsigned RXRTRRO:1;
402                 unsigned :1;
403                 unsigned RXM0:1;
404                 unsigned RXM1:1;
405                 unsigned RXFUL:1;
406         };
407 } __RXB0CONbits_t;
408
409 extern volatile __RXB0CONbits_t __at (0xf60) RXB0CONbits;
410
411 extern __sfr __at (0xf61) RXB0SIDH;
412 extern __sfr __at (0xf62) RXB0SIDL;
413 typedef union {
414         struct {
415                 unsigned EID16:1;
416                 unsigned EID17:1;
417                 unsigned :1;
418                 unsigned EXID:1;
419                 unsigned SRR:1;
420                 unsigned SID0:1;
421                 unsigned SID1:1;
422                 unsigned SID2:1;
423         };
424 } __RXB0SIDLbits_t;
425
426 extern volatile __RXB0SIDLbits_t __at (0xf62) RXB0SIDLbits;
427
428 extern __sfr __at (0xf63) RXB0EIDH;
429 extern __sfr __at (0xf64) RXB0EIDL;
430 extern __sfr __at (0xf65) RXB0DLC;
431 extern __sfr __at (0xf66) RXB0D0;
432 extern __sfr __at (0xf67) RXB0D1;
433 extern __sfr __at (0xf68) RXB0D2;
434 extern __sfr __at (0xf69) RXB0D3;
435 extern __sfr __at (0xf6a) RXB0D4;
436 extern __sfr __at (0xf6b) RXB0D5;
437 extern __sfr __at (0xf6c) RXB0D6;
438 extern __sfr __at (0xf6d) RXB0D7;
439 extern __sfr __at (0xf6e) CANSTAT;
440 typedef union {
441         struct {
442                 unsigned :1;
443                 unsigned ICODE0:1;
444                 unsigned ICODE1:1;
445                 unsigned ICODE2:1;
446                 unsigned :1;
447                 unsigned OPMODE0:1;
448                 unsigned OPMODE1:1;
449                 unsigned OPMODE2:1;
450         };
451 } __CANSTATbits_t;
452
453 extern volatile __CANSTATbits_t __at (0xf6e) CANSTATbits;
454
455 extern __sfr __at (0xf6f) CANCON;
456 typedef union {
457         struct {
458                 unsigned :1;
459                 unsigned WIN0:1;
460                 unsigned WIN1:1;
461                 unsigned WIN2:1;
462                 unsigned ABAT:1;
463                 unsigned REQOP0:1;
464                 unsigned REQOP1:1;
465                 unsigned REQOP2:1;
466         };
467 } __CANCONbits_t;
468
469 extern volatile __CANCONbits_t __at (0xf6f) CANCONbits;
470
471 extern __sfr __at (0xf70) BRGCON1;
472 typedef union {
473         struct {
474                 unsigned BRP0:1;
475                 unsigned BRP1:1;
476                 unsigned BRP2:1;
477                 unsigned BRP3:1;
478                 unsigned BRP4:1;
479                 unsigned BRP5:1;
480                 unsigned SJW0:1;
481                 unsigned SJW1:1;
482         };
483 } __BRGCON1bits_t;
484
485 extern volatile __BRGCON1bits_t __at (0xf70) BRGCON1bits;
486
487 extern __sfr __at (0xf71) BRGCON2;
488 typedef union {
489         struct {
490                 unsigned PRSEG0:1;
491                 unsigned PRSEG1:1;
492                 unsigned PRSEG2:1;
493                 unsigned SEG1PH0:1;
494                 unsigned SEG1PH1:1;
495                 unsigned SEG1PH2:1;
496                 unsigned SAM:1;
497                 unsigned SEG2PHTS:1;
498         };
499 } __BRGCON2bits_t;
500
501 extern volatile __BRGCON2bits_t __at (0xf71) BRGCON2bits;
502
503 extern __sfr __at (0xf72) BRGCON3;
504 typedef union {
505         struct {
506                 unsigned SEG2PH0:1;
507                 unsigned SEG2PH1:1;
508                 unsigned SEG2PH2:1;
509                 unsigned :1;
510                 unsigned :1;
511                 unsigned :1;
512                 unsigned WAKFIL:1;
513                 unsigned :1;
514         };
515 } __BRGCON3bits_t;
516
517 extern volatile __BRGCON3bits_t __at (0xf72) BRGCON3bits;
518
519 extern __sfr __at (0xf73) CIOCON;
520 typedef union {
521         struct {
522                 unsigned :1;
523                 unsigned :1;
524                 unsigned :1;
525                 unsigned :1;
526                 unsigned CANCAP:1;
527                 unsigned ENDRHI:1;
528                 unsigned TX1EN:1;
529                 unsigned TX1SRC:1;
530         };
531 } __CIOCONbits_t;
532
533 extern volatile __CIOCONbits_t __at (0xf73) CIOCONbits;
534
535 extern __sfr __at (0xf74) COMSTAT;
536 typedef union {
537         struct {
538                 unsigned EWARN:1;
539                 unsigned RXWARN:1;
540                 unsigned TXWARN:1;
541                 unsigned RXBP:1;
542                 unsigned TXBP:1;
543                 unsigned TXBO:1;
544                 unsigned RX1OVFL:1;
545                 unsigned RX0OVFL:1;
546         };
547 } __COMSTATbits_t;
548
549 extern volatile __COMSTATbits_t __at (0xf74) COMSTATbits;
550
551 extern __sfr __at (0xf75) RXERRCNT;
552 typedef union {
553         struct {
554                 unsigned REC0:1;
555                 unsigned REC1:1;
556                 unsigned REC2:1;
557                 unsigned REC3:1;
558                 unsigned REC4:1;
559                 unsigned REC5:1;
560                 unsigned REC6:1;
561                 unsigned REC7:1;
562         };
563 } __RXERRCNTbits_t;
564
565 extern volatile __RXERRCNTbits_t __at (0xf75) RXERRCNTbits;
566
567 extern __sfr __at (0xf76) TXERRCNT;
568 typedef union {
569         struct {
570                 unsigned TEC0:1;
571                 unsigned TEC1:1;
572                 unsigned TEC2:1;
573                 unsigned TEC3:1;
574                 unsigned TEC4:1;
575                 unsigned TEC5:1;
576                 unsigned TEC6:1;
577                 unsigned TEC7:1;
578         };
579 } __TXERRCNTbits_t;
580
581 extern volatile __TXERRCNTbits_t __at (0xf76) TXERRCNTbits;
582
583 extern __sfr __at (0xf80) PORTA;
584 typedef union {
585         struct {
586                 unsigned RA0:1;
587                 unsigned RA1:1;
588                 unsigned RA2:1;
589                 unsigned RA3:1;
590                 unsigned RA4:1;
591                 unsigned RA5:1;
592                 unsigned RA6:1;
593                 unsigned :1;
594         };
595
596         struct {
597                 unsigned AN0:1;
598                 unsigned AN1:1;
599                 unsigned AN2:1;
600                 unsigned AN3:1;
601                 unsigned :1;
602                 unsigned AN4:1;
603                 unsigned OSC2:1;
604                 unsigned :1;
605         };
606
607         struct {
608                 unsigned :1;
609                 unsigned :1;
610                 unsigned VREFM:1;
611                 unsigned VREFP:1;
612                 unsigned T0CKI:1;
613                 unsigned SS:1;
614                 unsigned CLK0:1;
615                 unsigned :1;
616         };
617
618         struct {
619                 unsigned :1;
620                 unsigned :1;
621                 unsigned :1;
622                 unsigned :1;
623                 unsigned :1;
624                 unsigned LVDIN:1;
625                 unsigned :1;
626                 unsigned :1;
627         };
628 } __PORTAbits_t;
629
630 extern volatile __PORTAbits_t __at (0xf80) PORTAbits;
631
632 extern __sfr __at (0xf81) PORTB;
633 typedef union {
634         struct {
635                 unsigned RB0:1;
636                 unsigned RB1:1;
637                 unsigned RB2:1;
638                 unsigned RB3:1;
639                 unsigned RB4:1;
640                 unsigned RB5:1;
641                 unsigned RB6:1;
642                 unsigned RB7:1;
643         };
644
645         struct {
646                 unsigned INT0:1;
647                 unsigned INT1:1;
648                 unsigned INT2:1;
649                 unsigned INT3:1;
650                 unsigned :1;
651                 unsigned :1;
652                 unsigned :1;
653                 unsigned :1;
654         };
655 } __PORTBbits_t;
656
657 extern volatile __PORTBbits_t __at (0xf81) PORTBbits;
658
659 extern __sfr __at (0xf82) PORTC;
660 typedef union {
661         struct {
662                 unsigned RC0:1;
663                 unsigned RC1:1;
664                 unsigned RC2:1;
665                 unsigned RC3:1;
666                 unsigned RC4:1;
667                 unsigned RC5:1;
668                 unsigned RC6:1;
669                 unsigned RC7:1;
670         };
671
672         struct {
673                 unsigned T1OSO:1;
674                 unsigned T1OSI:1;
675                 unsigned :1;
676                 unsigned SCK:1;
677                 unsigned SDI:1;
678                 unsigned SDO:1;
679                 unsigned TX:1;
680                 unsigned RX:1;
681         };
682
683         struct {
684                 unsigned T1CKI:1;
685                 unsigned CCP2:1;
686                 unsigned CCP1:1;
687                 unsigned SCL:1;
688                 unsigned SDA:1;
689                 unsigned :1;
690                 unsigned CK:1;
691                 unsigned DT:1;
692         };
693 } __PORTCbits_t;
694
695 extern volatile __PORTCbits_t __at (0xf82) PORTCbits;
696
697 extern __sfr __at (0xf83) PORTD;
698 typedef union {
699         struct {
700                 unsigned RD0:1;
701                 unsigned RD1:1;
702                 unsigned RD2:1;
703                 unsigned RD3:1;
704                 unsigned RD4:1;
705                 unsigned RD5:1;
706                 unsigned RD6:1;
707                 unsigned RD7:1;
708         };
709
710         struct {
711                 unsigned AD0:1;
712                 unsigned AD1:1;
713                 unsigned AD2:1;
714                 unsigned AD3:1;
715                 unsigned AD4:1;
716                 unsigned AD5:1;
717                 unsigned AD6:1;
718                 unsigned AD7:1;
719         };
720 } __PORTDbits_t;
721
722 extern volatile __PORTDbits_t __at (0xf83) PORTDbits;
723
724 extern __sfr __at (0xf84) PORTE;
725 typedef union {
726         struct {
727                 unsigned RE0:1;
728                 unsigned RE1:1;
729                 unsigned RE2:1;
730                 unsigned RE3:1;
731                 unsigned RE4:1;
732                 unsigned RE5:1;
733                 unsigned RE6:1;
734                 unsigned RE7:1;
735         };
736
737         struct {
738                 unsigned ALE:1;
739                 unsigned OE:1;
740                 unsigned WRL:1;
741                 unsigned WRH:1;
742                 unsigned :1;
743                 unsigned :1;
744                 unsigned :1;
745                 unsigned CCP2:1;
746         };
747
748         struct {
749                 unsigned AN5:1;
750                 unsigned :1;
751                 unsigned :1;
752                 unsigned :1;
753                 unsigned :1;
754                 unsigned :1;
755                 unsigned :1;
756                 unsigned :1;
757         };
758 } __PORTEbits_t;
759
760 extern volatile __PORTEbits_t __at (0xf84) PORTEbits;
761
762 extern __sfr __at (0xf85) PORTF;
763 typedef union {
764         struct {
765                 unsigned RF0:1;
766                 unsigned RF1:1;
767                 unsigned RF2:1;
768                 unsigned RF3:1;
769                 unsigned RF4:1;
770                 unsigned RF5:1;
771                 unsigned RF6:1;
772                 unsigned RF7:1;
773         };
774 } __PORTFbits_t;
775
776 extern volatile __PORTFbits_t __at (0xf85) PORTFbits;
777
778 extern __sfr __at (0xf86) PORTG;
779 typedef union {
780         struct {
781                 unsigned RG0:1;
782                 unsigned RG1:1;
783                 unsigned RG2:1;
784                 unsigned RG3:1;
785                 unsigned RG4:1;
786                 unsigned :1;
787                 unsigned :1;
788                 unsigned :1;
789         };
790 } __PORTGbits_t;
791
792 extern volatile __PORTGbits_t __at (0xf86) PORTGbits;
793
794 extern __sfr __at (0xf89) LATA;
795 typedef union {
796         struct {
797                 unsigned LATA0:1;
798                 unsigned LATA1:1;
799                 unsigned LATA2:1;
800                 unsigned LATA3:1;
801                 unsigned LATA4:1;
802                 unsigned LATA5:1;
803                 unsigned LATA6:1;
804                 unsigned :1;
805         };
806 } __LATAbits_t;
807
808 extern volatile __LATAbits_t __at (0xf89) LATAbits;
809
810 extern __sfr __at (0xf8a) LATB;
811 typedef union {
812         struct {
813                 unsigned LATB0:1;
814                 unsigned LATB1:1;
815                 unsigned LATB2:1;
816                 unsigned LATB3:1;
817                 unsigned LATB4:1;
818                 unsigned LATB5:1;
819                 unsigned LATB6:1;
820                 unsigned LATB7:1;
821         };
822 } __LATBbits_t;
823
824 extern volatile __LATBbits_t __at (0xf8a) LATBbits;
825
826 extern __sfr __at (0xf8b) LATC;
827 typedef union {
828         struct {
829                 unsigned LATC0:1;
830                 unsigned LATC1:1;
831                 unsigned LATC2:1;
832                 unsigned LATC3:1;
833                 unsigned LATC4:1;
834                 unsigned LATC5:1;
835                 unsigned LATC6:1;
836                 unsigned LATC7:1;
837         };
838 } __LATCbits_t;
839
840 extern volatile __LATCbits_t __at (0xf8b) LATCbits;
841
842 extern __sfr __at (0xf8c) LATD;
843 typedef union {
844         struct {
845                 unsigned LATD0:1;
846                 unsigned LATD1:1;
847                 unsigned LATD2:1;
848                 unsigned LATD3:1;
849                 unsigned LATD4:1;
850                 unsigned LATD5:1;
851                 unsigned LATD6:1;
852                 unsigned LATD7:1;
853         };
854 } __LATDbits_t;
855
856 extern volatile __LATDbits_t __at (0xf8c) LATDbits;
857
858 extern __sfr __at (0xf8d) LATE;
859 typedef union {
860         struct {
861                 unsigned LATE0:1;
862                 unsigned LATE1:1;
863                 unsigned LATE2:1;
864                 unsigned LATE3:1;
865                 unsigned LATE4:1;
866                 unsigned LATE5:1;
867                 unsigned LATE6:1;
868                 unsigned LATE7:1;
869         };
870 } __LATEbits_t;
871
872 extern volatile __LATEbits_t __at (0xf8d) LATEbits;
873
874 extern __sfr __at (0xf8e) LATF;
875 typedef union {
876         struct {
877                 unsigned LATF0:1;
878                 unsigned LATF1:1;
879                 unsigned LATF2:1;
880                 unsigned LATF3:1;
881                 unsigned LATF4:1;
882                 unsigned LATF5:1;
883                 unsigned LATF6:1;
884                 unsigned LATF7:1;
885         };
886 } __LATFbits_t;
887
888 extern volatile __LATFbits_t __at (0xf8e) LATFbits;
889
890 extern __sfr __at (0xf8f) LATG;
891 typedef union {
892         struct {
893                 unsigned LATG0:1;
894                 unsigned LATG1:1;
895                 unsigned LATG2:1;
896                 unsigned LATG3:1;
897                 unsigned LATG4:1;
898                 unsigned :1;
899                 unsigned :1;
900                 unsigned :1;
901         };
902 } __LATGbits_t;
903
904 extern volatile __LATGbits_t __at (0xf8f) LATGbits;
905
906 extern __sfr __at (0xf92) TRISA;
907 typedef union {
908         struct {
909                 unsigned TRISA0:1;
910                 unsigned TRISA1:1;
911                 unsigned TRISA2:1;
912                 unsigned TRISA3:1;
913                 unsigned TRISA4:1;
914                 unsigned TRISA5:1;
915                 unsigned TRISA6:1;
916                 unsigned :1;
917         };
918 } __TRISAbits_t;
919
920 extern volatile __TRISAbits_t __at (0xf92) TRISAbits;
921
922 extern __sfr __at (0xf93) TRISB;
923 typedef union {
924         struct {
925                 unsigned TRISB0:1;
926                 unsigned TRISB1:1;
927                 unsigned TRISB2:1;
928                 unsigned TRISB3:1;
929                 unsigned TRISB4:1;
930                 unsigned TRISB5:1;
931                 unsigned TRISB6:1;
932                 unsigned TRISB7:1;
933         };
934 } __TRISBbits_t;
935
936 extern volatile __TRISBbits_t __at (0xf93) TRISBbits;
937
938 extern __sfr __at (0xf94) TRISC;
939 typedef union {
940         struct {
941                 unsigned TRISC0:1;
942                 unsigned TRISC1:1;
943                 unsigned TRISC2:1;
944                 unsigned TRISC3:1;
945                 unsigned TRISC4:1;
946                 unsigned TRISC5:1;
947                 unsigned TRISC6:1;
948                 unsigned TRISC7:1;
949         };
950 } __TRISCbits_t;
951
952 extern volatile __TRISCbits_t __at (0xf94) TRISCbits;
953
954 extern __sfr __at (0xf95) TRISD;
955 typedef union {
956         struct {
957                 unsigned TRISD0:1;
958                 unsigned TRISD1:1;
959                 unsigned TRISD2:1;
960                 unsigned TRISD3:1;
961                 unsigned TRISD4:1;
962                 unsigned TRISD5:1;
963                 unsigned TRISD6:1;
964                 unsigned TRISD7:1;
965         };
966 } __TRISDbits_t;
967
968 extern volatile __TRISDbits_t __at (0xf95) TRISDbits;
969
970 extern __sfr __at (0xf96) TRISE;
971 typedef union {
972         struct {
973                 unsigned TRISE0:1;
974                 unsigned TRISE1:1;
975                 unsigned TRISE2:1;
976                 unsigned TRISE3:1;
977                 unsigned TRISE4:1;
978                 unsigned TRISE5:1;
979                 unsigned TRISE6:1;
980                 unsigned TRISE7:1;
981         };
982 } __TRISEbits_t;
983
984 extern volatile __TRISEbits_t __at (0xf96) TRISEbits;
985
986 extern __sfr __at (0xf97) TRISF;
987 typedef union {
988         struct {
989                 unsigned TRISF0:1;
990                 unsigned TRISF1:1;
991                 unsigned TRISF2:1;
992                 unsigned TRISF3:1;
993                 unsigned TRISF4:1;
994                 unsigned TRISF5:1;
995                 unsigned TRISF6:1;
996                 unsigned TRISF7:1;
997         };
998 } __TRISFbits_t;
999
1000 extern volatile __TRISFbits_t __at (0xf97) TRISFbits;
1001
1002 extern __sfr __at (0xf98) TRISG;
1003 typedef union {
1004         struct {
1005                 unsigned TRISG0:1;
1006                 unsigned TRISG1:1;
1007                 unsigned TRISG2:1;
1008                 unsigned TRISG3:1;
1009                 unsigned TRISG4:1;
1010                 unsigned :1;
1011                 unsigned :1;
1012                 unsigned :1;
1013         };
1014 } __TRISGbits_t;
1015
1016 extern volatile __TRISGbits_t __at (0xf98) TRISGbits;
1017
1018 extern __sfr __at (0xf9d) PIE1;
1019 typedef union {
1020         struct {
1021                 unsigned TMR1IE:1;
1022                 unsigned TMR2IE:1;
1023                 unsigned CCP1IE:1;
1024                 unsigned SSPIE:1;
1025                 unsigned TXIE:1;
1026                 unsigned RCIE:1;
1027                 unsigned ADIE:1;
1028                 unsigned PSPIE:1;
1029         };
1030 } __PIE1bits_t;
1031
1032 extern volatile __PIE1bits_t __at (0xf9d) PIE1bits;
1033
1034 extern __sfr __at (0xf9e) PIR1;
1035 typedef union {
1036         struct {
1037                 unsigned TMR1IF:1;
1038                 unsigned TMR2IF:1;
1039                 unsigned CCP1IF:1;
1040                 unsigned SSPIF:1;
1041                 unsigned TXIF:1;
1042                 unsigned RCIF:1;
1043                 unsigned ADIF:1;
1044                 unsigned PSPIF:1;
1045         };
1046 } __PIR1bits_t;
1047
1048 extern volatile __PIR1bits_t __at (0xf9e) PIR1bits;
1049
1050 extern __sfr __at (0xf9f) IPR1;
1051 typedef union {
1052         struct {
1053                 unsigned TMR1IP:1;
1054                 unsigned TMR2IP:1;
1055                 unsigned CCP1IP:1;
1056                 unsigned SSPIP:1;
1057                 unsigned TXIP:1;
1058                 unsigned RCIP:1;
1059                 unsigned ADIP:1;
1060                 unsigned PSPIP:1;
1061         };
1062 } __IPR1bits_t;
1063
1064 extern volatile __IPR1bits_t __at (0xf9f) IPR1bits;
1065
1066 extern __sfr __at (0xfa0) PIE2;
1067 typedef union {
1068         struct {
1069                 unsigned CCP2IE:1;
1070                 unsigned TMR3IE:1;
1071                 unsigned LVDIE:1;
1072                 unsigned BCLIE:1;
1073                 unsigned EEIE:1;
1074                 unsigned :1;
1075                 unsigned CMIE:1;
1076                 unsigned :1;
1077         };
1078 } __PIE2bits_t;
1079
1080 extern volatile __PIE2bits_t __at (0xfa0) PIE2bits;
1081
1082 extern __sfr __at (0xfa1) PIR2;
1083 typedef union {
1084         struct {
1085                 unsigned CCP2IF:1;
1086                 unsigned TMR3IF:1;
1087                 unsigned LVDIF:1;
1088                 unsigned BCLIF:1;
1089                 unsigned EEIF:1;
1090                 unsigned :1;
1091                 unsigned CMIF:1;
1092                 unsigned :1;
1093         };
1094 } __PIR2bits_t;
1095
1096 extern volatile __PIR2bits_t __at (0xfa1) PIR2bits;
1097
1098 extern __sfr __at (0xfa2) IPR2;
1099 typedef union {
1100         struct {
1101                 unsigned CCP2IP:1;
1102                 unsigned TMR3IP:1;
1103                 unsigned LVDIP:1;
1104                 unsigned BCLIP:1;
1105                 unsigned EEIP:1;
1106                 unsigned :1;
1107                 unsigned CMIP:1;
1108                 unsigned :1;
1109         };
1110 } __IPR2bits_t;
1111
1112 extern volatile __IPR2bits_t __at (0xfa2) IPR2bits;
1113
1114 extern __sfr __at (0xfa3) PIE3;
1115 typedef union {
1116         struct {
1117                 unsigned RX0IE:1;
1118                 unsigned RX1IE:1;
1119                 unsigned TX0IE:1;
1120                 unsigned TX1IE:1;
1121                 unsigned TX2IE:1;
1122                 unsigned ERRIE:1;
1123                 unsigned WAKIE:1;
1124                 unsigned IVRE:1;
1125         };
1126 } __PIE3bits_t;
1127
1128 extern volatile __PIE3bits_t __at (0xfa3) PIE3bits;
1129
1130 extern __sfr __at (0xfa4) PIR3;
1131 typedef union {
1132         struct {
1133                 unsigned RX0IF:1;
1134                 unsigned RX1IF:1;
1135                 unsigned TX0IF:1;
1136                 unsigned TX1IF:1;
1137                 unsigned TX2IF:1;
1138                 unsigned ERRIF:1;
1139                 unsigned WAKIF:1;
1140                 unsigned IVRF:1;
1141         };
1142 } __PIR3bits_t;
1143
1144 extern volatile __PIR3bits_t __at (0xfa4) PIR3bits;
1145
1146 extern __sfr __at (0xfa5) IPR3;
1147 typedef union {
1148         struct {
1149                 unsigned RX0IP:1;
1150                 unsigned RX1IP:1;
1151                 unsigned TX0IP:1;
1152                 unsigned TX1IP:1;
1153                 unsigned TX2IP:1;
1154                 unsigned ERRIP:1;
1155                 unsigned WAKIP:1;
1156                 unsigned IVRP:1;
1157         };
1158 } __IPR3bits_t;
1159
1160 extern volatile __IPR3bits_t __at (0xfa5) IPR3bits;
1161
1162 extern __sfr __at (0xfa6) EECON1;
1163 typedef union {
1164         struct {
1165                 unsigned RD:1;
1166                 unsigned WR:1;
1167                 unsigned WREN:1;
1168                 unsigned WRERR:1;
1169                 unsigned FREE:1;
1170                 unsigned :1;
1171                 unsigned CFGS:1;
1172                 unsigned EEPGD:1;
1173         };
1174 } __EECON1bits_t;
1175
1176 extern volatile __EECON1bits_t __at (0xfa6) EECON1bits;
1177
1178 extern __sfr __at (0xfa7) EECON2;
1179 extern __sfr __at (0xfa8) EEDATA;
1180 extern __sfr __at (0xfa9) EEADR;
1181 extern __sfr __at (0xfaa) EEADRH;
1182 extern __sfr __at (0xfab) RCSTA;
1183 typedef union {
1184         struct {
1185                 unsigned RX9D:1;
1186                 unsigned OERR:1;
1187                 unsigned FERR:1;
1188                 unsigned ADDEN:1;
1189                 unsigned CREN:1;
1190                 unsigned SREN:1;
1191                 unsigned RX9:1;
1192                 unsigned SPEN:1;
1193         };
1194 } __RCSTAbits_t;
1195
1196 extern volatile __RCSTAbits_t __at (0xfab) RCSTAbits;
1197
1198 extern __sfr __at (0xfac) TXSTA;
1199 typedef union {
1200         struct {
1201                 unsigned TX9D:1;
1202                 unsigned TRMT:1;
1203                 unsigned BRGH:1;
1204                 unsigned :1;
1205                 unsigned SYNC:1;
1206                 unsigned TXEN:1;
1207                 unsigned TX9:1;
1208                 unsigned CSRC:1;
1209         };
1210 } __TXSTAbits_t;
1211
1212 extern volatile __TXSTAbits_t __at (0xfac) TXSTAbits;
1213
1214 extern __sfr __at (0xfad) TXREG;
1215 extern __sfr __at (0xfae) RCREG;
1216 extern __sfr __at (0xfaf) SPBRG;
1217 extern __sfr __at (0xfb0) PSPCON;
1218 typedef union {
1219         struct {
1220                 unsigned :1;
1221                 unsigned :1;
1222                 unsigned :1;
1223                 unsigned :1;
1224                 unsigned PSPMODE:1;
1225                 unsigned IBOV:1;
1226                 unsigned OBF:1;
1227                 unsigned IBF:1;
1228         };
1229 } __PSPCONbits_t;
1230
1231 extern volatile __PSPCONbits_t __at (0xfb0) PSPCONbits;
1232
1233 extern __sfr __at (0xfb1) T3CON;
1234 typedef union {
1235         struct {
1236                 unsigned TMR3ON:1;
1237                 unsigned TMR3CS:1;
1238                 unsigned T3SYNC:1;
1239                 unsigned T3CCP1:1;
1240                 unsigned T3CKPS0:1;
1241                 unsigned T3CKPS1:1;
1242                 unsigned T3CCP2:1;
1243                 unsigned RD16:1;
1244         };
1245 } __T3CONbits_t;
1246
1247 extern volatile __T3CONbits_t __at (0xfb1) T3CONbits;
1248
1249 extern __sfr __at (0xfb2) TMR3L;
1250 extern __sfr __at (0xfb3) TMR3H;
1251 extern __sfr __at (0xfb4) CMCON;
1252 typedef union {
1253         struct {
1254                 unsigned CM0:1;
1255                 unsigned CM1:1;
1256                 unsigned CM2:1;
1257                 unsigned CIS:1;
1258                 unsigned C1INV:1;
1259                 unsigned C2INV:1;
1260                 unsigned C1OUT:1;
1261                 unsigned C2OUT:1;
1262         };
1263 } __CMCONbits_t;
1264
1265 extern volatile __CMCONbits_t __at (0xfb4) CMCONbits;
1266
1267 extern __sfr __at (0xfb5) CVRCON;
1268 typedef union {
1269         struct {
1270                 unsigned CVR0:1;
1271                 unsigned CVR1:1;
1272                 unsigned CVR2:1;
1273                 unsigned CVR3:1;
1274                 unsigned CVREF:1;
1275                 unsigned CVRR:1;
1276                 unsigned CVROE:1;
1277                 unsigned CVREN:1;
1278         };
1279 } __CVRCONbits_t;
1280
1281 extern volatile __CVRCONbits_t __at (0xfb5) CVRCONbits;
1282
1283 extern __sfr __at (0xfb6) ECCPAS;
1284 typedef union {
1285         struct {
1286                 unsigned PSSBD0:1;
1287                 unsigned PSSBD1:1;
1288                 unsigned PSSAC0:1;
1289                 unsigned PSSAC1:1;
1290                 unsigned ECCPAS0:1;
1291                 unsigned ECCPAS1:1;
1292                 unsigned ECCPAS2:1;
1293                 unsigned ECCPASE:1;
1294         };
1295 } __ECCPASbits_t;
1296
1297 extern volatile __ECCPASbits_t __at (0xfb6) ECCPASbits;
1298
1299 extern __sfr __at (0xfb7) ECCP1DEL;
1300 typedef union {
1301         struct {
1302                 unsigned EPDC0:1;
1303                 unsigned EPDC1:1;
1304                 unsigned EPDC2:1;
1305                 unsigned EPDC3:1;
1306                 unsigned EPDC4:1;
1307                 unsigned EPDC5:1;
1308                 unsigned EPDC6:1;
1309                 unsigned EPDC7:1;
1310         };
1311 } __ECCP1DELbits_t;
1312
1313 extern volatile __ECCP1DELbits_t __at (0xfb7) ECCP1DELbits;
1314
1315 extern __sfr __at (0xfba) ECCP1CON;
1316 typedef union {
1317         struct {
1318                 unsigned ECCP1M0:1;
1319                 unsigned ECCP1M1:1;
1320                 unsigned ECCP1M2:1;
1321                 unsigned ECCP1M3:1;
1322                 unsigned EDC1B0:1;
1323                 unsigned EDC1B1:1;
1324                 unsigned EPWM1M0:1;
1325                 unsigned EPWM1M1:1;
1326         };
1327 } __ECCP1CONbits_t;
1328
1329 extern volatile __ECCP1CONbits_t __at (0xfba) ECCP1CONbits;
1330
1331 extern __sfr __at (0xfba) CCP2CON;
1332 typedef union {
1333         struct {
1334                 unsigned CCP2M0:1;
1335                 unsigned CCP2M1:1;
1336                 unsigned CCP2M2:1;
1337                 unsigned CCP2M3:1;
1338                 unsigned DCCP2Y:1;
1339                 unsigned DCCP2X:1;
1340                 unsigned :1;
1341                 unsigned :1;
1342         };
1343 } __CCP2CONbits_t;
1344
1345 extern volatile __CCP2CONbits_t __at (0xfba) CCP2CONbits;
1346
1347 extern __sfr __at (0xfbb) ECCPR1L;
1348 extern __sfr __at (0xfbb) CCPR2L;
1349 extern __sfr __at (0xfbc) ECCPR1H;
1350 extern __sfr __at (0xfbc) CCPR2H;
1351 extern __sfr __at (0xfc0) ADCON2;
1352 typedef union {
1353         struct {
1354                 unsigned ADCS0:1;
1355                 unsigned ADCS1:1;
1356                 unsigned ADCS2:1;
1357                 unsigned :1;
1358                 unsigned :1;
1359                 unsigned :1;
1360                 unsigned :1;
1361                 unsigned ADFM:1;
1362         };
1363 } __ADCON2bits_t;
1364
1365 extern volatile __ADCON2bits_t __at (0xfc0) ADCON2bits;
1366
1367 extern __sfr __at (0xfc1) ADCON1;
1368 typedef union {
1369         struct {
1370                 unsigned PCFG0:1;
1371                 unsigned PCFG1:1;
1372                 unsigned PCFG2:1;
1373                 unsigned PCFG3:1;
1374                 unsigned VCFG0:1;
1375                 unsigned VCFG1:1;
1376                 unsigned :1;
1377                 unsigned :1;
1378         };
1379 } __ADCON1bits_t;
1380
1381 extern volatile __ADCON1bits_t __at (0xfc1) ADCON1bits;
1382
1383 extern __sfr __at (0xfc2) ADCON0;
1384 typedef union {
1385         struct {
1386                 unsigned ADON:1;
1387                 unsigned GO:1;
1388                 unsigned CHS0:1;
1389                 unsigned CHS1:1;
1390                 unsigned CHS2:1;
1391                 unsigned CHS3:1;
1392                 unsigned :1;
1393                 unsigned :1;
1394         };
1395 } __ADCON0bits_t;
1396
1397 extern volatile __ADCON0bits_t __at (0xfc2) ADCON0bits;
1398
1399 extern __sfr __at (0xfc3) ADRESL;
1400 extern __sfr __at (0xfc4) ADRESH;
1401 extern __sfr __at (0xfc5) SSPCON2;
1402 typedef union {
1403         struct {
1404                 unsigned SEN:1;
1405                 unsigned RSEN:1;
1406                 unsigned PEN:1;
1407                 unsigned RCEN:1;
1408                 unsigned ACKEN:1;
1409                 unsigned ACKDT:1;
1410                 unsigned ACKSTAT:1;
1411                 unsigned GCEN:1;
1412         };
1413 } __SSPCON2bits_t;
1414
1415 extern volatile __SSPCON2bits_t __at (0xfc5) SSPCON2bits;
1416
1417 extern __sfr __at (0xfc6) SSPCON1;
1418 typedef union {
1419         struct {
1420                 unsigned SSPM0:1;
1421                 unsigned SSPM1:1;
1422                 unsigned SSPM2:1;
1423                 unsigned SSPM3:1;
1424                 unsigned CKP:1;
1425                 unsigned SSPEN:1;
1426                 unsigned SSPOV:1;
1427                 unsigned WCOL:1;
1428         };
1429 } __SSPCON1bits_t;
1430
1431 extern volatile __SSPCON1bits_t __at (0xfc6) SSPCON1bits;
1432
1433 extern __sfr __at (0xfc7) SSPSTAT;
1434 typedef union {
1435         struct {
1436                 unsigned BF:1;
1437                 unsigned UA:1;
1438                 unsigned R_W:1;
1439                 unsigned S:1;
1440                 unsigned P:1;
1441                 unsigned D_A:1;
1442                 unsigned CKE:1;
1443                 unsigned SMP:1;
1444         };
1445 } __SSPSTATbits_t;
1446
1447 extern volatile __SSPSTATbits_t __at (0xfc7) SSPSTATbits;
1448
1449 extern __sfr __at (0xfc8) SSPADD;
1450 extern __sfr __at (0xfc9) SSPBUF;
1451 extern __sfr __at (0xfca) T2CON;
1452 typedef union {
1453         struct {
1454                 unsigned T2CKPS0:1;
1455                 unsigned T2CKPS1:1;
1456                 unsigned TMR2ON:1;
1457                 unsigned TOUTPS0:1;
1458                 unsigned TOUTPS1:1;
1459                 unsigned TOUTPS2:1;
1460                 unsigned TOUTPS3:1;
1461                 unsigned :1;
1462         };
1463 } __T2CONbits_t;
1464
1465 extern volatile __T2CONbits_t __at (0xfca) T2CONbits;
1466
1467 extern __sfr __at (0xfcb) PR2;
1468 extern __sfr __at (0xfcc) TMR2;
1469 extern __sfr __at (0xfcd) T1CON;
1470 typedef union {
1471         struct {
1472                 unsigned TMR1ON:1;
1473                 unsigned TMR1CS:1;
1474                 unsigned NOT_T1SYNC:1;
1475                 unsigned T1OSCEN:1;
1476                 unsigned T1CKPS0:1;
1477                 unsigned T1CKPS1:1;
1478                 unsigned :1;
1479                 unsigned RD16:1;
1480         };
1481 } __T1CONbits_t;
1482
1483 extern volatile __T1CONbits_t __at (0xfcd) T1CONbits;
1484
1485 extern __sfr __at (0xfce) TMR1L;
1486 extern __sfr __at (0xfcf) TMR1H;
1487 extern __sfr __at (0xfd0) RCON;
1488 typedef union {
1489         struct {
1490                 unsigned BOR:1;
1491                 unsigned POR:1;
1492                 unsigned PD:1;
1493                 unsigned TO:1;
1494                 unsigned RI:1;
1495                 unsigned :1;
1496                 unsigned :1;
1497                 unsigned IPEN:1;
1498         };
1499 } __RCONbits_t;
1500
1501 extern volatile __RCONbits_t __at (0xfd0) RCONbits;
1502
1503 extern __sfr __at (0xfd1) WDTCON;
1504 typedef union {
1505         struct {
1506                 unsigned SWDTEN:1;
1507                 unsigned :1;
1508                 unsigned :1;
1509                 unsigned :1;
1510                 unsigned :1;
1511                 unsigned :1;
1512                 unsigned :1;
1513                 unsigned :1;
1514         };
1515
1516         struct {
1517                 unsigned SWDTE:1;
1518                 unsigned :1;
1519                 unsigned :1;
1520                 unsigned :1;
1521                 unsigned :1;
1522                 unsigned :1;
1523                 unsigned :1;
1524                 unsigned :1;
1525         };
1526 } __WDTCONbits_t;
1527
1528 extern volatile __WDTCONbits_t __at (0xfd1) WDTCONbits;
1529
1530 extern __sfr __at (0xfd2) LVDCON;
1531 typedef union {
1532         struct {
1533                 unsigned LVDL0:1;
1534                 unsigned LVDL1:1;
1535                 unsigned LVDL2:1;
1536                 unsigned LVDL3:1;
1537                 unsigned LVDEN:1;
1538                 unsigned VRST:1;
1539                 unsigned :1;
1540                 unsigned :1;
1541         };
1542
1543         struct {
1544                 unsigned LVV0:1;
1545                 unsigned LVV1:1;
1546                 unsigned LVV2:1;
1547                 unsigned LVV3:1;
1548                 unsigned :1;
1549                 unsigned BGST:1;
1550                 unsigned :1;
1551                 unsigned :1;
1552         };
1553 } __LVDCONbits_t;
1554
1555 extern volatile __LVDCONbits_t __at (0xfd2) LVDCONbits;
1556
1557 extern __sfr __at (0xfd3) OSCCON;
1558 typedef union {
1559         struct {
1560                 unsigned SCS:1;
1561                 unsigned :1;
1562                 unsigned :1;
1563                 unsigned :1;
1564                 unsigned :1;
1565                 unsigned :1;
1566                 unsigned :1;
1567                 unsigned :1;
1568         };
1569 } __OSCCONbits_t;
1570
1571 extern volatile __OSCCONbits_t __at (0xfd3) OSCCONbits;
1572
1573 extern __sfr __at (0xfd5) T0CON;
1574 extern __sfr __at (0xfd6) TMR0L;
1575 extern __sfr __at (0xfd7) TMR0H;
1576 extern __sfr __at (0xfd8) STATUS;
1577 typedef union {
1578         struct {
1579                 unsigned C:1;
1580                 unsigned DC:1;
1581                 unsigned Z:1;
1582                 unsigned OV:1;
1583                 unsigned N:1;
1584                 unsigned :1;
1585                 unsigned :1;
1586                 unsigned :1;
1587         };
1588 } __STATUSbits_t;
1589
1590 extern volatile __STATUSbits_t __at (0xfd8) STATUSbits;
1591
1592 extern __sfr __at (0xfd9) FSR2L;
1593 extern __sfr __at (0xfda) FSR2H;
1594 extern __sfr __at (0xfdb) PLUSW2;
1595 extern __sfr __at (0xfdc) PREINC2;
1596 extern __sfr __at (0xfdd) POSTDEC2;
1597 extern __sfr __at (0xfde) POSTINC2;
1598 extern __sfr __at (0xfdf) INDF2;
1599 extern __sfr __at (0xfe0) BSR;
1600 extern __sfr __at (0xfe1) FSR1L;
1601 extern __sfr __at (0xfe2) FSR1H;
1602 extern __sfr __at (0xfe3) PLUSW1;
1603 extern __sfr __at (0xfe4) PREINC1;
1604 extern __sfr __at (0xfe5) POSTDEC1;
1605 extern __sfr __at (0xfe6) POSTINC1;
1606 extern __sfr __at (0xfe7) INDF1;
1607 extern __sfr __at (0xfe8) WREG;
1608 extern __sfr __at (0xfe9) FSR0L;
1609 extern __sfr __at (0xfea) FSR0H;
1610 extern __sfr __at (0xfeb) PLUSW0;
1611 extern __sfr __at (0xfec) PREINC0;
1612 extern __sfr __at (0xfed) POSTDEC0;
1613 extern __sfr __at (0xfee) POSTINC0;
1614 extern __sfr __at (0xfef) INDF0;
1615 extern __sfr __at (0xff0) INTCON3;
1616 typedef union {
1617         struct {
1618                 unsigned INT1F:1;
1619                 unsigned INT2F:1;
1620                 unsigned INT3F:1;
1621                 unsigned INT1E:1;
1622                 unsigned INT2E:1;
1623                 unsigned INT3E:1;
1624                 unsigned INT1P:1;
1625                 unsigned INT2P:1;
1626         };
1627
1628         struct {
1629                 unsigned INT1IF:1;
1630                 unsigned INT2IF:1;
1631                 unsigned INT3IF:1;
1632                 unsigned INT1IE:1;
1633                 unsigned INT2IE:1;
1634                 unsigned INT3IE:1;
1635                 unsigned INT1IP:1;
1636                 unsigned INT2IP:1;
1637         };
1638 } __INTCON3bits_t;
1639
1640 extern volatile __INTCON3bits_t __at (0xff0) INTCON3bits;
1641
1642 extern __sfr __at (0xff1) INTCON2;
1643 typedef union {
1644         struct {
1645                 unsigned RBIP:1;
1646                 unsigned INT3P:1;
1647                 unsigned T0IP:1;
1648                 unsigned INTEDG3:1;
1649                 unsigned INTEDG2:1;
1650                 unsigned INTEDG1:1;
1651                 unsigned INTEDG0:1;
1652                 unsigned RBPU:1;
1653         };
1654 } __INTCON2bits_t;
1655
1656 extern volatile __INTCON2bits_t __at (0xff1) INTCON2bits;
1657
1658 extern __sfr __at (0xff2) INTCON;
1659 typedef union {
1660         struct {
1661                 unsigned RBIF:1;
1662                 unsigned INT0F:1;
1663                 unsigned T0IF:1;
1664                 unsigned RBIE:1;
1665                 unsigned INT0E:1;
1666                 unsigned T0IE:1;
1667                 unsigned PEIE:1;
1668                 unsigned GIE:1;
1669         };
1670 } __INTCONbits_t;
1671
1672 extern volatile __INTCONbits_t __at (0xff2) INTCONbits;
1673
1674 extern __sfr __at (0xff3) PRODL;
1675 extern __sfr __at (0xff4) PRODH;
1676 extern __sfr __at (0xff5) TABLAT;
1677 extern __sfr __at (0xff6) TBLPTRL;
1678 extern __sfr __at (0xff7) TBLPTRH;
1679 extern __sfr __at (0xff8) TBLPTRU;
1680 extern __sfr __at (0xff9) PCL;
1681 extern __sfr __at (0xffa) PCLATH;
1682 extern __sfr __at (0xffb) PCLATU;
1683 extern __sfr __at (0xffc) STKPTR;
1684 typedef union {
1685         struct {
1686                 unsigned STKPTR0:1;
1687                 unsigned STKPTR1:1;
1688                 unsigned STKPTR2:1;
1689                 unsigned STKPTR3:1;
1690                 unsigned STKPTR4:1;
1691                 unsigned :1;
1692                 unsigned STKUNF:1;
1693                 unsigned STKFUL:1;
1694         };
1695 } __STKPTRbits_t;
1696
1697 extern volatile __STKPTRbits_t __at (0xffc) STKPTRbits;
1698
1699 extern __sfr __at (0xffd) TOSL;
1700 extern __sfr __at (0xffe) TOSH;
1701 extern __sfr __at (0xfff) TOSU;
1702
1703
1704 /* Configuration registers locations */
1705 #define __CONFIG1H      0x300001
1706 #define __CONFIG2L      0x300002
1707 #define __CONFIG2H      0x300003
1708 #define __CONFIG3H      0x300005
1709 #define __CONFIG4L      0x300006
1710 #define __CONFIG5L      0x300008
1711 #define __CONFIG5H      0x300009
1712 #define __CONFIG6L      0x30000A
1713 #define __CONFIG6H      0x30000B
1714 #define __CONFIG7L      0x30000C
1715 #define __CONFIG7H      0x30000D
1716
1717
1718
1719 /* Oscillator 1H options */
1720 #define _OSC_RC_CLKOUT_1H       0xFF    /* RC-CLKOUT on RA6 */
1721 #define _OSC_HS_SOFTWARE_1H     0xFE    /* HS-Software enabled PLL */
1722 #define _OSC_EC_CLKOUT_Software_nabld_PLL_1H    0xFD    /* EC-CLKOUT on RA6,Software_enabled_PLL */
1723 #define _OSC_EC_CLKOUT_PLL_enabld_frq_4xFosc1_1H        0xFC    /* EC-CLKOUT on RA6,PLL_enabled_freq_4xFosc1 */
1724 #define _OSC_EXT_Port_on_RA6_1H 0xF7    /* EXT RC-Port_on_RA6 */
1725 #define _OSC_HS_PLL_1H  0xF6    /* HS-PLL enabled freq=4xFosc1 */
1726 #define _OSC_EC_PORT_1H 0xF5    /* EC-Port on RA6 */
1727 #define _OSC_EC_CLKOUT__1H      0xF4    /* EC-CLKOUT on RA6 */
1728 #define _OSC_EXT_CLKOUT_on_RA6_1H       0xF3    /* EXT RC-CLKOUT_on_RA6 */
1729 #define _OSC_HS_1H      0xF2    /* HS */
1730 #define _OSC_XT_1H      0xF1    /* XT */
1731 #define _OSC_LP_1H      0xF0    /* LP */
1732
1733 /* Low Power System Clock Timer1 Enable 1H options */
1734 #define _OSCSEN_ON_1H   0xDF    /* Enabled */
1735 #define _OSCSEN_OFF_1H  0xFF    /* Disabled */
1736
1737 /* Power Up Timer 2L options */
1738 #define _PUT_OFF_2L     0xFF    /* Disabled */
1739 #define _PUT_ON_2L      0xFE    /* Enabled */
1740
1741 /* Brown Out Detect 2L options */
1742 #define _BODEN_ON_2L    0xFF    /* Enabled */
1743 #define _BODEN_OFF_2L   0xFD    /* Disabled */
1744
1745 /* Brown Out Voltage 2L options */
1746 #define _BODENV_2_0V_2L 0xFF    /* 2.0V */
1747 #define _BODENV_2_7V_2L 0xFB    /* 2.7V */
1748 #define _BODENV_4_2V_2L 0xF7    /* 4.2V */
1749 #define _BODENV_4_5V_2L 0xF3    /* 4.5V */
1750
1751 /* Watchdog Timer 2H options */
1752 #define _WDT_ON_2H      0xFF    /* Enabled */
1753 #define _WDT_DISABLED_CONTROLLED_2H     0xFE    /* Disabled-Controlled by SWDTEN bit */
1754
1755 /* Watchdog Postscaler 2H options */
1756 #define _WDTPS_1_32768_2H       0xFF    /* 1:32768 */
1757 #define _WDTPS_1_16384_2H       0xFD    /* 1:16384 */
1758 #define _WDTPS_1_8192_2H        0xFB    /* 1:8192 */
1759 #define _WDTPS_1_4096_2H        0xF9    /* 1:4096 */
1760 #define _WDTPS_1_2048_2H        0xF7    /* 1:2048 */
1761 #define _WDTPS_1_1024_2H        0xF5    /* 1:1024 */
1762 #define _WDTPS_1_512_2H 0xF3    /* 1:512 */
1763 #define _WDTPS_1_256_2H 0xF1    /* 1:256 */
1764 #define _WDTPS_1_128_2H 0xEF    /* 1:128 */
1765 #define _WDTPS_1_64_2H  0xED    /* 1:64 */
1766 #define _WDTPS_1_32_2H  0xEB    /* 1:32 */
1767 #define _WDTPS_1_16_2H  0xE9    /* 1:16 */
1768 #define _WDTPS_1_8_2H   0xE7    /* 1:8 */
1769 #define _WDTPS_1_4_2H   0xE5    /* 1:4 */
1770 #define _WDTPS_1_2_2H   0xE3    /* 1:2 */
1771 #define _WDTPS_1_1_2H   0xE1    /* 1:1 */
1772
1773 /* CCP2 Mux 3H options */
1774 #define _CCP2MUX_RC1_3H 0xFF    /* RC1 */
1775 #define _CCP2MUX_RB3_3H 0xFE    /* RB3 */
1776
1777 /* ECCP Mux 3H options */
1778 #define _ECCPMX_ECCP1_E6E3_3H   0xFF    /* ECCP1 and ECCP6 are muxed onto RE6 through RE3 */
1779 #define _ECCPMX_ECCP1_H7H4_3H   0xFD    /* ECCP1 and ECCP6 are muxed onto RH7 through RH4 */
1780
1781 /* MCLR enable 3H options */
1782 #define _MCLRE_MCLR_Enabled_RE3_Disabled_3H     0xFF    /* MCLR Enabled_RE3_Disabled */
1783 #define _MCLRE_MCLR_Disabled_RE3_Enabled_3H     0x7F    /* MCLR Disabled__RE3_Enabled */
1784
1785 /* Stack Overflow Reset 4L options */
1786 #define _STVR_ON_4L     0xFF    /* Enabled */
1787 #define _STVR_OFF_4L    0xFE    /* Disabled */
1788
1789 /* Low Voltage Program 4L options */
1790 #define _LVP_ON_4L      0xFF    /* Enabled */
1791 #define _LVP_OFF_4L     0xFB    /* Disabled */
1792
1793 /* Background Debug 4L options */
1794 #define _BACKBUG_OFF_4L 0xFF    /* Disabled */
1795 #define _BACKBUG_ON_4L  0x7F    /* Enabled */
1796
1797 /* Code Protect 000800-0003FFF 5L options */
1798 #define _CP_0_OFF_5L    0xFF    /* Disabled */
1799 #define _CP_0_ON_5L     0xFE    /* Enabled */
1800
1801 /* Code Protect 0004000-007FFF 5L options */
1802 #define _CP_1_OFF_5L    0xFF    /* Disabled */
1803 #define _CP_1_ON_5L     0xFD    /* Enabled */
1804
1805 /* Code Protect 008000-00BFFF 5L options */
1806 #define _CP_2_OFF_5L    0xFF    /* Disabled */
1807 #define _CP_2_ON_5L     0xFB    /* Enabled */
1808
1809 /* Code Protect 00C000F-00FFFF 5L options */
1810 #define _CP_3_OFF_5L    0xFF    /* Disabled */
1811 #define _CP_3_ON_5L     0xF7    /* Enabled */
1812
1813 /* Data EE Read Protect 5H options */
1814 #define _CPD_OFF_5H     0xFF    /* Disabled */
1815 #define _CPD_ON_5H      0x7F    /* Enabled */
1816
1817 /* Code Protect Boot 5H options */
1818 #define _CPB_OFF_5H     0xFF    /* Disabled */
1819 #define _CPB_ON_5H      0xBF    /* Enabled */
1820
1821 /* Table Write Protect 00800-003FFF 6L options */
1822 #define _WRT_0_OFF_6L   0xFF    /* Disabled */
1823 #define _WRT_0_ON_6L    0xFE    /* Enabled */
1824
1825 /* Table Write Protect 004000-007FFF 6L options */
1826 #define _WRT_1_OFF_6L   0xFF    /* Disabled */
1827 #define _WRT_1_ON_6L    0xFD    /* Enabled */
1828
1829 /* Table Write Protect 08000-0BFFF 6L options */
1830 #define _WRT_2_OFF_6L   0xFF    /* Disabled */
1831 #define _WRT_2_ON_6L    0xFB    /* Enabled */
1832
1833 /* Table Write Protect 0C000-0FFFF 6L options */
1834 #define _WRT_3_OFF_6L   0xFF    /* Disabled */
1835 #define _WRT_3_ON_6L    0xF7    /* Enabled */
1836
1837 /* Data EE Write Protect 6H options */
1838 #define _WRTD_OFF_6H    0xFF    /* Disabled */
1839 #define _WRTD_ON_6H     0x7F    /* Enabled */
1840
1841 /* Table Write Protect Boot 6H options */
1842 #define _WRTB_OFF_6H    0xFF    /* Disabled */
1843 #define _WRTB_ON_6H     0xBF    /* Enabled */
1844
1845 /* Config. Write Protect 6H options */
1846 #define _WRTC_OFF_6H    0xFF    /* Disabled */
1847 #define _WRTC_ON_6H     0xDF    /* Enabled */
1848
1849 /* Table Read Protect 00800-003FFF 7L options */
1850 #define _EBTR_0_OFF_7L  0xFF    /* Disabled */
1851 #define _EBTR_0_ON_7L   0xFE    /* Enabled */
1852
1853 /* Table Read Protect 004000-07FFF 7L options */
1854 #define _EBTR_1_OFF_7L  0xFF    /* Disabled */
1855 #define _EBTR_1_ON_7L   0xFD    /* Enabled */
1856
1857 /* Table Read Protect 08000-0BFFF 7L options */
1858 #define _EBTR_2_OFF_7L  0xFF    /* Disabled */
1859 #define _EBTR_2_ON_7L   0xFB    /* Enabled */
1860
1861 /* Table Read Protect 0C000-0FFFF 7L options */
1862 #define _EBTR_3_OFF_7L  0xFF    /* Disabled */
1863 #define _EBTR_3_ON_7L   0xF7    /* Enabled */
1864
1865 /* Table Read Protect Boot 7H options */
1866 #define _EBTRB_OFF_7H   0xFF    /* Disabled */
1867 #define _EBTRB_ON_7H    0xBF    /* Enabled */
1868
1869
1870 /* Device ID locations */
1871 #define __IDLOC0        0x200000
1872 #define __IDLOC1        0x200001
1873 #define __IDLOC2        0x200002
1874 #define __IDLOC3        0x200003
1875 #define __IDLOC4        0x200004
1876 #define __IDLOC5        0x200005
1877 #define __IDLOC6        0x200006
1878 #define __IDLOC7        0x200007
1879
1880
1881 #endif