Imported Upstream version 2.9.0
[debian/cc1111] / device / include / pic16 / pic18f4331.h
1 /* 
2  * pic18f4331.h - device specific declarations
3  *
4  * This file is part of the GNU PIC library for SDCC,
5  * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
6  *
7  * It has been automatically generated by inc2h-pic16.pl,
8  * (c) 2007 by Raphael Neider <rneider AT web.de>
9  */
10
11 #ifndef __PIC18F4331_H__
12 #define __PIC18F4331_H__ 1
13
14
15
16 // Configuration Bits
17 #define __CONFIG1H              0x300001
18 #define __CONFIG2L              0x300002
19 #define __CONFIG2H              0x300003
20 #define __CONFIG3L              0x300004
21 #define __CONFIG3H              0x300005
22 #define __CONFIG4L              0x300006
23 #define __CONFIG5L              0x300008
24 #define __CONFIG5H              0x300009
25 #define __CONFIG6L              0x30000A
26 #define __CONFIG6H              0x30000B
27 #define __CONFIG7L              0x30000C
28 #define __CONFIG7H              0x30000D
29
30 // CONFIG1H Options
31 #define _OSC_LP_1H              0xF0     // LP
32 #define _OSC_XT_1H              0xF1     // XT
33 #define _OSC_HS_1H              0xF2     // HS
34 #define _OSC_RC2_1H             0xF3     // External RC, RA6 is CLKOUT
35 #define _OSC_EC_1H              0xF4     // EC, RA6 is CLKOUT
36 #define _OSC_ECIO_1H            0xF5     // EC, RA6 is I/O
37 #define _OSC_HSPLL_1H           0xF6     // HS-PLL Enabled
38 #define _OSC_RCIO_1H            0xF7     // External RC, RA6 is I/O
39 #define _OSC_IRCIO_1H           0xF8     // Internal RC, RA6 & RA7 are I/O
40 #define _OSC_IRC_1H             0xF9     // Internal RC, RA6 is CLKOUT, RA7 is I/O
41 #define _OSC_RC1_1H             0xFB     // External RC, RA6 is CLKOUT
42 #define _OSC_RC_1H              0xFF     // External RC, RA6 is CLKOUT
43 #define _FCMEN_OFF_1H           0xBF     // Disabled
44 #define _FCMEN_ON_1H            0xFF     // Enabled
45 #define _IESO_OFF_1H            0x7F     // Disabled
46 #define _IESO_ON_1H             0xFF     // Enabled
47
48 // CONFIG2L Options
49 #define _PWRTEN_ON_2L           0xFE     // Enabled
50 #define _PWRTEN_OFF_2L          0xFF     // Disabled
51 #define _BOREN_OFF_2L           0xFD     // Disabled
52 #define _BOREN_ON_2L            0xFF     // Enabled
53 #define _BORV_45_2L             0xF3     // 4.5V
54 #define _BORV_42_2L             0xF7     // 4.2V
55 #define _BORV_27_2L             0xFB     // 2.7V
56 #define _BORV_20_2L             0xFF     // 2.0V
57
58 // CONFIG2H Options
59 #define _WDTEN_OFF_2H           0xFE     // Disabled
60 #define _WDTEN_ON_2H            0xFF     // Enabled
61 #define _WINEN_ON_2H            0xDF     // Enabled
62 #define _WINEN_OFF_2H           0xFF     // Disabled
63 #define _WDPS_1_2H              0xE1     // 1:1
64 #define _WDPS_2_2H              0xE3     // 1:2
65 #define _WDPS_4_2H              0xE5     // 1:4
66 #define _WDPS_8_2H              0xE7     // 1:8
67 #define _WDPS_16_2H             0xE9     // 1:16
68 #define _WDPS_32_2H             0xEB     // 1:32
69 #define _WDPS_64_2H             0xED     // 1:64
70 #define _WDPS_128_2H            0xEF     // 1:128
71 #define _WDPS_256_2H            0xF1     // 1:256
72 #define _WDPS_512_2H            0xF3     // 1:512
73 #define _WDPS_1024_2H           0xF5     // 1:1024
74 #define _WDPS_2048_2H           0xF7     // 1:2048
75 #define _WDPS_4096_2H           0xF9     // 1:4096
76 #define _WDPS_8192_2H           0xFB     // 1:8192
77 #define _WDPS_16384_2H          0xFD     // 1:16384
78 #define _WDPS_32768_2H          0xFF     // 1:32768
79
80 // CONFIG3L Options
81 #define _T1OSCMX_OFF_3L         0xDF     // Active
82 #define _T1OSCMX_ON_3L          0xFF     // Inactive
83 #define _HPOL_LOW_3L            0xEF     // Active low
84 #define _HPOL_HIGH_3L           0xFF     // Active high
85 #define _LPOL_LOW_3L            0xF7     // Active low
86 #define _LPOL_HIGH_3L           0xFF     // Active high
87 #define _PWMPIN_ON_3L           0xFB     // Enabled
88 #define _PWMPIN_OFF_3L          0xFF     // Disabled
89
90 // CONFIG3H Options
91 #define _MCLRE_OFF_3H           0x7F     // Disabled
92 #define _MCLRE_ON_3H            0xFF     // Enabled
93 #define _EXCLKMX_RD0_3H         0xEF     // Multiplexed with RD0
94 #define _EXCLKMX_RC3_3H         0xFF     // Multiplexed with RC3
95 #define _PWM4MX_RD5_3H          0xF7     // Multiplexed with RD5
96 #define _PWM4MX_RB5_3H          0xFF     // Multiplexed with RB5
97 #define _SSPMX_RD1_3H           0xFB     // SDO output is multiplexed with RD1
98 #define _SSPMX_RC7_3H           0xFF     // SD0 output is multiplexed with RC7
99 #define _FLTAMX_RD4_3H          0xFE     // Multiplexed with RD4
100 #define _FLTAMX_RC1_3H          0xFF     // Multiplexed with RC1
101
102 // CONFIG4L Options
103 #define _STVREN_OFF_4L          0xFE     // Disabled
104 #define _STVREN_ON_4L           0xFF     // Enabled
105 #define _LVP_OFF_4L             0xFB     // Disabled
106 #define _LVP_ON_4L              0xFF     // Enabled
107 #define _DEBUG_ON_4L            0x7F     // Enabled
108 #define _DEBUG_OFF_4L           0xFF     // Disabled
109
110 // CONFIG5L Options
111 #define _CP0_ON_5L              0xFE     // Enabled
112 #define _CP0_OFF_5L             0xFF     // Disabled
113 #define _CP1_ON_5L              0xFD     // Enabled
114 #define _CP1_OFF_5L             0xFF     // Disabled
115 #define _CP2_ON_5L              0xFB     // Enabled
116 #define _CP2_OFF_5L             0xFF     // Disabled
117 #define _CP3_ON_5L              0xF7     // Enabled
118 #define _CP3_OFF_5L             0xFF     // Disabled
119
120 // CONFIG5H Options
121 #define _CPB_ON_5H              0xBF     // Enabled
122 #define _CPB_OFF_5H             0xFF     // Disabled
123 #define _CPD_ON_5H              0x7F     // Enabled
124 #define _CPD_OFF_5H             0xFF     // Disabled
125
126 // CONFIG6L Options
127 #define _WRT0_ON_6L             0xFE     // Enabled
128 #define _WRT0_OFF_6L            0xFF     // Disabled
129 #define _WRT1_ON_6L             0xFD     // Enabled
130 #define _WRT1_OFF_6L            0xFF     // Disabled
131 #define _WRT2_ON_6L             0xFB     // Enabled
132 #define _WRT2_OFF_6L            0xFF     // Disabled
133 #define _WRT3_ON_6L             0xF7     // Enabled
134 #define _WRT3_OFF_6L            0xFF     // Disabled
135
136 // CONFIG6H Options
137 #define _WRTB_ON_6H             0xBF     // Enabled
138 #define _WRTB_OFF_6H            0xFF     // Disabled
139 #define _WRTC_ON_6H             0xDF     // Enabled
140 #define _WRTC_OFF_6H            0xFF     // Disabled
141 #define _WRTD_ON_6H             0x7F     // Enabled
142 #define _WRTD_OFF_6H            0xFF     // Disabled
143
144 // CONFIG7L Options
145 #define _EBTR0_ON_7L            0xFE     // Enabled
146 #define _EBTR0_OFF_7L           0xFF     // Disabled
147 #define _EBTR1_ON_7L            0xFD     // Enabled
148 #define _EBTR1_OFF_7L           0xFF     // Disabled
149 #define _EBTR2_ON_7L            0xFB     // Enabled
150 #define _EBTR2_OFF_7L           0xFF     // Disabled
151 #define _EBTR3_ON_7L            0xF7     // Enabled
152 #define _EBTR3_OFF_7L           0xFF     // Disabled
153
154 // CONFIG7H Options
155 #define _EBTRB_ON_7H            0xBF     // Enabled
156 #define _EBTRB_OFF_7H           0xFF     // Disabled
157 #define _DEVID1                 0x3FFFFE
158 #define _DEVID2                 0x3FFFFF
159 #define _IDLOC0                 0x200000
160 #define _IDLOC1                 0x200001
161 #define _IDLOC2                 0x200002
162 #define _IDLOC3                 0x200003
163 #define _IDLOC4                 0x200004
164 #define _IDLOC5                 0x200005
165 #define _IDLOC6                 0x200006
166 #define _IDLOC7                 0x200007
167
168 extern __sfr __at (0xF60) DFLTCON;
169 typedef union {
170         struct {
171                 unsigned FLTCK0         : 1;
172                 unsigned FLTCK1         : 1;
173                 unsigned FLTCK2         : 1;
174                 unsigned FLT1EN         : 1;
175                 unsigned FLT2EN         : 1;
176                 unsigned FLT3EN         : 1;
177                 unsigned FLT4EN         : 1;
178                 unsigned                : 1;
179         };
180 } __DFLTCONbits_t;
181 extern volatile __DFLTCONbits_t __at (0xF60) DFLTCONbits;
182
183 extern __sfr __at (0xF61) CAP3CON;
184 typedef union {
185         struct {
186                 unsigned CAP3M0         : 1;
187                 unsigned CAP3M1         : 1;
188                 unsigned CAP3M2         : 1;
189                 unsigned CAP3M3         : 1;
190                 unsigned                : 1;
191                 unsigned CAP3TMR        : 1;
192                 unsigned CAP3REN        : 1;
193                 unsigned                : 1;
194         };
195 } __CAP3CONbits_t;
196 extern volatile __CAP3CONbits_t __at (0xF61) CAP3CONbits;
197
198 extern __sfr __at (0xF62) CAP2CON;
199 typedef union {
200         struct {
201                 unsigned CAP2M0         : 1;
202                 unsigned CAP2M1         : 1;
203                 unsigned CAP2M2         : 1;
204                 unsigned CAP2M3         : 1;
205                 unsigned                : 1;
206                 unsigned CAP2TMR        : 1;
207                 unsigned CAP2REN        : 1;
208                 unsigned                : 1;
209         };
210 } __CAP2CONbits_t;
211 extern volatile __CAP2CONbits_t __at (0xF62) CAP2CONbits;
212
213 extern __sfr __at (0xF63) CAP1CON;
214 typedef union {
215         struct {
216                 unsigned CAP1M0         : 1;
217                 unsigned CAP1M1         : 1;
218                 unsigned CAP1M2         : 1;
219                 unsigned CAP1M3         : 1;
220                 unsigned                : 1;
221                 unsigned CAP1TMR        : 1;
222                 unsigned CAP1REN        : 1;
223                 unsigned                : 1;
224         };
225 } __CAP1CONbits_t;
226 extern volatile __CAP1CONbits_t __at (0xF63) CAP1CONbits;
227
228 extern __sfr __at (0xF64) CAP3BUFL;
229
230 extern __sfr __at (0xF64) MAXCNTL;
231
232 extern __sfr __at (0xF65) CAP3BUFH;
233
234 extern __sfr __at (0xF65) MAXCNTH;
235
236 extern __sfr __at (0xF66) CAP2BUFL;
237
238 extern __sfr __at (0xF66) POSCNTL;
239
240 extern __sfr __at (0xF67) CAP2BUFH;
241
242 extern __sfr __at (0xF67) POSCNTH;
243
244 extern __sfr __at (0xF68) CAP1BUFL;
245
246 extern __sfr __at (0xF68) VELRL;
247
248 extern __sfr __at (0xF69) CAP1BUFH;
249
250 extern __sfr __at (0xF69) VELRH;
251
252 extern __sfr __at (0xF6A) OVDCONS;
253 typedef union {
254         struct {
255                 unsigned POUT0          : 1;
256                 unsigned POUT1          : 1;
257                 unsigned POUT2          : 1;
258                 unsigned POUT3          : 1;
259                 unsigned POUT4          : 1;
260                 unsigned POUT5          : 1;
261                 unsigned POUT6          : 1;
262                 unsigned POUT7          : 1;
263         };
264 } __OVDCONSbits_t;
265 extern volatile __OVDCONSbits_t __at (0xF6A) OVDCONSbits;
266
267 extern __sfr __at (0xF6B) OVDCOND;
268 typedef union {
269         struct {
270                 unsigned POVD0          : 1;
271                 unsigned POVD1          : 1;
272                 unsigned POVD2          : 1;
273                 unsigned POVD3          : 1;
274                 unsigned POVD4          : 1;
275                 unsigned POVD5          : 1;
276                 unsigned POVD6          : 1;
277                 unsigned POVD7          : 1;
278         };
279 } __OVDCONDbits_t;
280 extern volatile __OVDCONDbits_t __at (0xF6B) OVDCONDbits;
281
282 extern __sfr __at (0xF6C) FLTCONFIG;
283 typedef union {
284         struct {
285                 unsigned FLTAEN         : 1;
286                 unsigned FLTAMOD        : 1;
287                 unsigned FLTAS          : 1;
288                 unsigned FLTCON         : 1;
289                 unsigned FLTBEN         : 1;
290                 unsigned FLTBMOD        : 1;
291                 unsigned FLTBS          : 1;
292                 unsigned                : 1;
293         };
294 } __FLTCONFIGbits_t;
295 extern volatile __FLTCONFIGbits_t __at (0xF6C) FLTCONFIGbits;
296
297 extern __sfr __at (0xF6D) DTCON;
298 typedef union {
299         struct {
300                 unsigned DT0            : 1;
301                 unsigned DT1            : 1;
302                 unsigned DT2            : 1;
303                 unsigned DT3            : 1;
304                 unsigned DT4            : 1;
305                 unsigned DT5            : 1;
306                 unsigned DTPS0          : 1;
307                 unsigned DTPS1          : 1;
308         };
309         struct {
310                 unsigned DTA0           : 1;
311                 unsigned DTA1           : 1;
312                 unsigned DTA2           : 1;
313                 unsigned DTA3           : 1;
314                 unsigned DTA4           : 1;
315                 unsigned DTA5           : 1;
316                 unsigned DTAPS0         : 1;
317                 unsigned DTAPS1         : 1;
318         };
319 } __DTCONbits_t;
320 extern volatile __DTCONbits_t __at (0xF6D) DTCONbits;
321
322 extern __sfr __at (0xF6E) PWMCON1;
323 typedef union {
324         struct {
325                 unsigned OSYNC          : 1;
326                 unsigned UDIS           : 1;
327                 unsigned                : 1;
328                 unsigned SEVTDIR        : 1;
329                 unsigned SEVOPS0        : 1;
330                 unsigned SEVOPS1        : 1;
331                 unsigned SEVOPS2        : 1;
332                 unsigned SEVOPS3        : 1;
333         };
334 } __PWMCON1bits_t;
335 extern volatile __PWMCON1bits_t __at (0xF6E) PWMCON1bits;
336
337 extern __sfr __at (0xF6F) PWMCON0;
338 typedef union {
339         struct {
340                 unsigned PMOD0          : 1;
341                 unsigned PMOD1          : 1;
342                 unsigned PMOD2          : 1;
343                 unsigned PMOD3          : 1;
344                 unsigned PWMEN0         : 1;
345                 unsigned PWMEN1         : 1;
346                 unsigned PWMEN2         : 1;
347                 unsigned                : 1;
348         };
349 } __PWMCON0bits_t;
350 extern volatile __PWMCON0bits_t __at (0xF6F) PWMCON0bits;
351
352 extern __sfr __at (0xF70) SEVTCMPH;
353
354 extern __sfr __at (0xF71) SEVTCMPL;
355
356 extern __sfr __at (0xF72) PDC3H;
357
358 extern __sfr __at (0xF73) PDC3L;
359
360 extern __sfr __at (0xF74) PDC2H;
361
362 extern __sfr __at (0xF75) PDC2L;
363
364 extern __sfr __at (0xF76) PDC1H;
365
366 extern __sfr __at (0xF77) PDC1L;
367
368 extern __sfr __at (0xF78) PDC0H;
369
370 extern __sfr __at (0xF79) PDC0L;
371
372 extern __sfr __at (0xF7A) PTPERH;
373
374 extern __sfr __at (0xF7B) PTPERL;
375
376 extern __sfr __at (0xF7C) PTMRH;
377
378 extern __sfr __at (0xF7D) PTMRL;
379
380 extern __sfr __at (0xF7E) PTCON1;
381 typedef union {
382         struct {
383                 unsigned                : 1;
384                 unsigned                : 1;
385                 unsigned                : 1;
386                 unsigned                : 1;
387                 unsigned                : 1;
388                 unsigned                : 1;
389                 unsigned PTDIR          : 1;
390                 unsigned PTEN           : 1;
391         };
392 } __PTCON1bits_t;
393 extern volatile __PTCON1bits_t __at (0xF7E) PTCON1bits;
394
395 extern __sfr __at (0xF7F) PTCON0;
396 typedef union {
397         struct {
398                 unsigned PTMOD0         : 1;
399                 unsigned PTMOD1         : 1;
400                 unsigned PTCKPS0        : 1;
401                 unsigned PTCKPS1        : 1;
402                 unsigned PTOPS0         : 1;
403                 unsigned PTOPS1         : 1;
404                 unsigned PTOPS2         : 1;
405                 unsigned PTOPS3         : 1;
406         };
407 } __PTCON0bits_t;
408 extern volatile __PTCON0bits_t __at (0xF7F) PTCON0bits;
409
410 extern __sfr __at (0xF80) PORTA;
411 typedef union {
412         struct {
413                 unsigned RA0            : 1;
414                 unsigned RA1            : 1;
415                 unsigned RA2            : 1;
416                 unsigned RA3            : 1;
417                 unsigned RA4            : 1;
418                 unsigned RA5            : 1;
419                 unsigned RA6            : 1;
420                 unsigned RA7            : 1;
421         };
422         struct {
423                 unsigned AN0            : 1;
424                 unsigned AN1            : 1;
425                 unsigned AN2            : 1;
426                 unsigned AN3            : 1;
427                 unsigned AN4            : 1;
428                 unsigned AN5            : 1;
429                 unsigned OSC2           : 1;
430                 unsigned                : 1;
431         };
432         struct {
433                 unsigned                : 1;
434                 unsigned                : 1;
435                 unsigned VREFM          : 1;
436                 unsigned VREFP          : 1;
437                 unsigned                : 1;
438                 unsigned LVDIN          : 1;
439                 unsigned CLKO           : 1;
440                 unsigned                : 1;
441         };
442 } __PORTAbits_t;
443 extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
444
445 extern __sfr __at (0xF81) PORTB;
446 typedef union {
447         struct {
448                 unsigned RB0            : 1;
449                 unsigned RB1            : 1;
450                 unsigned RB2            : 1;
451                 unsigned RB3            : 1;
452                 unsigned RB4            : 1;
453                 unsigned RB5            : 1;
454                 unsigned RB6            : 1;
455                 unsigned RB7            : 1;
456         };
457 } __PORTBbits_t;
458 extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
459
460 extern __sfr __at (0xF82) PORTC;
461 typedef union {
462         struct {
463                 unsigned RC0            : 1;
464                 unsigned RC1            : 1;
465                 unsigned RC2            : 1;
466                 unsigned RC3            : 1;
467                 unsigned RC4            : 1;
468                 unsigned RC5            : 1;
469                 unsigned RC6            : 1;
470                 unsigned RC7            : 1;
471         };
472         struct {
473                 unsigned T1OSO          : 1;
474                 unsigned T1OSI          : 1;
475                 unsigned CCP1           : 1;
476                 unsigned INT0           : 1;
477                 unsigned INT1           : 1;
478                 unsigned INT2           : 1;
479                 unsigned TX             : 1;
480                 unsigned RX             : 1;
481         };
482         struct {
483                 unsigned T13CKI         : 1;
484                 unsigned CCP2           : 1;
485                 unsigned NOT_FLTB       : 1;
486                 unsigned T0CKI          : 1;
487                 unsigned SDA            : 1;
488                 unsigned SCK            : 1;
489                 unsigned CK             : 1;
490                 unsigned DT             : 1;
491         };
492         struct {
493                 unsigned                : 1;
494                 unsigned NOT_FLTA       : 1;
495                 unsigned FLTB           : 1;
496                 unsigned T5CKI          : 1;
497                 unsigned SDI            : 1;
498                 unsigned SCL            : 1;
499                 unsigned NOT_SS         : 1;
500                 unsigned SDO            : 1;
501         };
502         struct {
503                 unsigned                : 1;
504                 unsigned FLTA           : 1;
505                 unsigned                : 1;
506                 unsigned                : 1;
507                 unsigned                : 1;
508                 unsigned                : 1;
509                 unsigned SS             : 1;
510                 unsigned                : 1;
511         };
512 } __PORTCbits_t;
513 extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
514
515 extern __sfr __at (0xF83) PORTD;
516 typedef union {
517         struct {
518                 unsigned RD0            : 1;
519                 unsigned RD1            : 1;
520                 unsigned RD2            : 1;
521                 unsigned RD3            : 1;
522                 unsigned RD4            : 1;
523                 unsigned RD5            : 1;
524                 unsigned RD6            : 1;
525                 unsigned RD7            : 1;
526         };
527 } __PORTDbits_t;
528 extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
529
530 extern __sfr __at (0xF84) PORTE;
531 typedef union {
532         struct {
533                 unsigned RE0            : 1;
534                 unsigned RE1            : 1;
535                 unsigned RE2            : 1;
536                 unsigned RE3            : 1;
537                 unsigned RE4            : 1;
538                 unsigned RE5            : 1;
539                 unsigned RE6            : 1;
540                 unsigned RE7            : 1;
541         };
542         struct {
543                 unsigned                : 1;
544                 unsigned                : 1;
545                 unsigned                : 1;
546                 unsigned NOT_MCLR       : 1;
547                 unsigned                : 1;
548                 unsigned                : 1;
549                 unsigned                : 1;
550                 unsigned                : 1;
551         };
552         struct {
553                 unsigned                : 1;
554                 unsigned                : 1;
555                 unsigned                : 1;
556                 unsigned MCLR           : 1;
557                 unsigned                : 1;
558                 unsigned                : 1;
559                 unsigned                : 1;
560                 unsigned                : 1;
561         };
562 } __PORTEbits_t;
563 extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
564
565 extern __sfr __at (0xF87) TMR5L;
566
567 extern __sfr __at (0xF88) TMR5H;
568
569 extern __sfr __at (0xF89) LATA;
570 typedef union {
571         struct {
572                 unsigned LATA0          : 1;
573                 unsigned LATA1          : 1;
574                 unsigned LATA2          : 1;
575                 unsigned LATA3          : 1;
576                 unsigned LATA4          : 1;
577                 unsigned LATA5          : 1;
578                 unsigned LATA6          : 1;
579                 unsigned LATA7          : 1;
580         };
581 } __LATAbits_t;
582 extern volatile __LATAbits_t __at (0xF89) LATAbits;
583
584 extern __sfr __at (0xF8A) LATB;
585 typedef union {
586         struct {
587                 unsigned LATB0          : 1;
588                 unsigned LATB1          : 1;
589                 unsigned LATB2          : 1;
590                 unsigned LATB3          : 1;
591                 unsigned LATB4          : 1;
592                 unsigned LATB5          : 1;
593                 unsigned LATB6          : 1;
594                 unsigned LATB7          : 1;
595         };
596 } __LATBbits_t;
597 extern volatile __LATBbits_t __at (0xF8A) LATBbits;
598
599 extern __sfr __at (0xF8B) LATC;
600 typedef union {
601         struct {
602                 unsigned LATC0          : 1;
603                 unsigned LATC1          : 1;
604                 unsigned LATC2          : 1;
605                 unsigned LATC3          : 1;
606                 unsigned LATC4          : 1;
607                 unsigned LATC5          : 1;
608                 unsigned LATC6          : 1;
609                 unsigned LATC7          : 1;
610         };
611 } __LATCbits_t;
612 extern volatile __LATCbits_t __at (0xF8B) LATCbits;
613
614 extern __sfr __at (0xF8C) LATD;
615 typedef union {
616         struct {
617                 unsigned LATD0          : 1;
618                 unsigned LATD1          : 1;
619                 unsigned LATD2          : 1;
620                 unsigned LATD3          : 1;
621                 unsigned LATD4          : 1;
622                 unsigned LATD5          : 1;
623                 unsigned LATD6          : 1;
624                 unsigned LATD7          : 1;
625         };
626 } __LATDbits_t;
627 extern volatile __LATDbits_t __at (0xF8C) LATDbits;
628
629 extern __sfr __at (0xF8D) LATE;
630 typedef union {
631         struct {
632                 unsigned LATE0          : 1;
633                 unsigned LATE1          : 1;
634                 unsigned LATE2          : 1;
635                 unsigned LATE3          : 1;
636                 unsigned LATE4          : 1;
637                 unsigned LATE5          : 1;
638                 unsigned LATE6          : 1;
639                 unsigned LATE7          : 1;
640         };
641 } __LATEbits_t;
642 extern volatile __LATEbits_t __at (0xF8D) LATEbits;
643
644 extern __sfr __at (0xF90) PR5L;
645
646 extern __sfr __at (0xF91) PR5H;
647
648 extern __sfr __at (0xF92) DDRA;
649 typedef union {
650         struct {
651                 unsigned RA0            : 1;
652                 unsigned RA1            : 1;
653                 unsigned RA2            : 1;
654                 unsigned RA3            : 1;
655                 unsigned RA4            : 1;
656                 unsigned RA5            : 1;
657                 unsigned RA6            : 1;
658                 unsigned RA7            : 1;
659         };
660 } __DDRAbits_t;
661 extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
662
663 extern __sfr __at (0xF92) TRISA;
664 typedef union {
665         struct {
666                 unsigned TRISA0         : 1;
667                 unsigned TRISA1         : 1;
668                 unsigned TRISA2         : 1;
669                 unsigned TRISA3         : 1;
670                 unsigned TRISA4         : 1;
671                 unsigned TRISA5         : 1;
672                 unsigned TRISA6         : 1;
673                 unsigned TRISA7         : 1;
674         };
675 } __TRISAbits_t;
676 extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
677
678 extern __sfr __at (0xF93) DDRB;
679 typedef union {
680         struct {
681                 unsigned RB0            : 1;
682                 unsigned RB1            : 1;
683                 unsigned RB2            : 1;
684                 unsigned RB3            : 1;
685                 unsigned RB4            : 1;
686                 unsigned RB5            : 1;
687                 unsigned RB6            : 1;
688                 unsigned RB7            : 1;
689         };
690 } __DDRBbits_t;
691 extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
692
693 extern __sfr __at (0xF93) TRISB;
694 typedef union {
695         struct {
696                 unsigned TRISB0         : 1;
697                 unsigned TRISB1         : 1;
698                 unsigned TRISB2         : 1;
699                 unsigned TRISB3         : 1;
700                 unsigned TRISB4         : 1;
701                 unsigned TRISB5         : 1;
702                 unsigned TRISB6         : 1;
703                 unsigned TRISB7         : 1;
704         };
705 } __TRISBbits_t;
706 extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
707
708 extern __sfr __at (0xF94) DDRC;
709 typedef union {
710         struct {
711                 unsigned RC0            : 1;
712                 unsigned RC1            : 1;
713                 unsigned RC2            : 1;
714                 unsigned RC3            : 1;
715                 unsigned RC4            : 1;
716                 unsigned RC5            : 1;
717                 unsigned RC6            : 1;
718                 unsigned RC7            : 1;
719         };
720 } __DDRCbits_t;
721 extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
722
723 extern __sfr __at (0xF94) TRISC;
724 typedef union {
725         struct {
726                 unsigned TRISC0         : 1;
727                 unsigned TRISC1         : 1;
728                 unsigned TRISC2         : 1;
729                 unsigned TRISC3         : 1;
730                 unsigned TRISC4         : 1;
731                 unsigned TRISC5         : 1;
732                 unsigned TRISC6         : 1;
733                 unsigned TRISC7         : 1;
734         };
735 } __TRISCbits_t;
736 extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
737
738 extern __sfr __at (0xF95) DDRD;
739 typedef union {
740         struct {
741                 unsigned RD0            : 1;
742                 unsigned RD1            : 1;
743                 unsigned RD2            : 1;
744                 unsigned RD3            : 1;
745                 unsigned RD4            : 1;
746                 unsigned RD5            : 1;
747                 unsigned RD6            : 1;
748                 unsigned RD7            : 1;
749         };
750 } __DDRDbits_t;
751 extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
752
753 extern __sfr __at (0xF95) TRISD;
754 typedef union {
755         struct {
756                 unsigned TRISD0         : 1;
757                 unsigned TRISD1         : 1;
758                 unsigned TRISD2         : 1;
759                 unsigned TRISD3         : 1;
760                 unsigned TRISD4         : 1;
761                 unsigned TRISD5         : 1;
762                 unsigned TRISD6         : 1;
763                 unsigned TRISD7         : 1;
764         };
765 } __TRISDbits_t;
766 extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
767
768 extern __sfr __at (0xF96) DDRE;
769 typedef union {
770         struct {
771                 unsigned RE0            : 1;
772                 unsigned RE1            : 1;
773                 unsigned RE2            : 1;
774                 unsigned RE3            : 1;
775                 unsigned RE4            : 1;
776                 unsigned RE5            : 1;
777                 unsigned RE6            : 1;
778                 unsigned RE7            : 1;
779         };
780 } __DDREbits_t;
781 extern volatile __DDREbits_t __at (0xF96) DDREbits;
782
783 extern __sfr __at (0xF96) TRISE;
784 typedef union {
785         struct {
786                 unsigned TRISE0         : 1;
787                 unsigned TRISE1         : 1;
788                 unsigned TRISE2         : 1;
789                 unsigned TRISE3         : 1;
790                 unsigned TRISE4         : 1;
791                 unsigned TRISE5         : 1;
792                 unsigned TRISE6         : 1;
793                 unsigned TRISE7         : 1;
794         };
795 } __TRISEbits_t;
796 extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
797
798 extern __sfr __at (0xF99) ADCHS;
799 typedef union {
800         struct {
801                 unsigned GASEL0         : 1;
802                 unsigned GASEL1         : 1;
803                 unsigned GCSEL0         : 1;
804                 unsigned GCSEL1         : 1;
805                 unsigned GBSEL0         : 1;
806                 unsigned GBSEL1         : 1;
807                 unsigned GDSEL0         : 1;
808                 unsigned GDSEL1         : 1;
809         };
810         struct {
811                 unsigned SASEL0         : 1;
812                 unsigned SASEL1         : 1;
813                 unsigned SCSEL0         : 1;
814                 unsigned SCSEL1         : 1;
815                 unsigned SBSEL0         : 1;
816                 unsigned SBSEL1         : 1;
817                 unsigned SDSEL0         : 1;
818                 unsigned SDSEL1         : 1;
819         };
820 } __ADCHSbits_t;
821 extern volatile __ADCHSbits_t __at (0xF99) ADCHSbits;
822
823 extern __sfr __at (0xF9A) ADCON3;
824 typedef union {
825         struct {
826                 unsigned SSRC0          : 1;
827                 unsigned SSRC1          : 1;
828                 unsigned SSRC2          : 1;
829                 unsigned SSRC3          : 1;
830                 unsigned SSRC4          : 1;
831                 unsigned                : 1;
832                 unsigned ADRS0          : 1;
833                 unsigned ADRS1          : 1;
834         };
835 } __ADCON3bits_t;
836 extern volatile __ADCON3bits_t __at (0xF9A) ADCON3bits;
837
838 extern __sfr __at (0xF9B) OSCTUNE;
839 typedef union {
840         struct {
841                 unsigned TUN0           : 1;
842                 unsigned TUN1           : 1;
843                 unsigned TUN2           : 1;
844                 unsigned TUN3           : 1;
845                 unsigned TUN4           : 1;
846                 unsigned TUN5           : 1;
847                 unsigned                : 1;
848                 unsigned                : 1;
849         };
850 } __OSCTUNEbits_t;
851 extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
852
853 extern __sfr __at (0xF9D) PIE1;
854 typedef union {
855         struct {
856                 unsigned TMR1IE         : 1;
857                 unsigned TMR2IE         : 1;
858                 unsigned CCP1IE         : 1;
859                 unsigned SSPIE          : 1;
860                 unsigned TBIE           : 1;
861                 unsigned RCIE           : 1;
862                 unsigned ADIE           : 1;
863                 unsigned                : 1;
864         };
865         struct {
866                 unsigned                : 1;
867                 unsigned                : 1;
868                 unsigned                : 1;
869                 unsigned                : 1;
870                 unsigned TXIE           : 1;
871                 unsigned                : 1;
872                 unsigned                : 1;
873                 unsigned                : 1;
874         };
875 } __PIE1bits_t;
876 extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
877
878 extern __sfr __at (0xF9E) PIR1;
879 typedef union {
880         struct {
881                 unsigned TMR1IF         : 1;
882                 unsigned TMR2IF         : 1;
883                 unsigned CCP1IF         : 1;
884                 unsigned SSPIF          : 1;
885                 unsigned TBIF           : 1;
886                 unsigned RCIF           : 1;
887                 unsigned ADIF           : 1;
888                 unsigned                : 1;
889         };
890         struct {
891                 unsigned                : 1;
892                 unsigned                : 1;
893                 unsigned                : 1;
894                 unsigned                : 1;
895                 unsigned TXIF           : 1;
896                 unsigned                : 1;
897                 unsigned                : 1;
898                 unsigned                : 1;
899         };
900 } __PIR1bits_t;
901 extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
902
903 extern __sfr __at (0xF9F) IPR1;
904 typedef union {
905         struct {
906                 unsigned TMR1IP         : 1;
907                 unsigned TMR2IP         : 1;
908                 unsigned CCP1IP         : 1;
909                 unsigned SSPIP          : 1;
910                 unsigned TBIP           : 1;
911                 unsigned RCIP           : 1;
912                 unsigned ADIP           : 1;
913                 unsigned                : 1;
914         };
915         struct {
916                 unsigned                : 1;
917                 unsigned                : 1;
918                 unsigned                : 1;
919                 unsigned                : 1;
920                 unsigned TXIP           : 1;
921                 unsigned                : 1;
922                 unsigned                : 1;
923                 unsigned                : 1;
924         };
925 } __IPR1bits_t;
926 extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
927
928 extern __sfr __at (0xFA0) PIE2;
929 typedef union {
930         struct {
931                 unsigned CCP2IE         : 1;
932                 unsigned                : 1;
933                 unsigned LVDIE          : 1;
934                 unsigned                : 1;
935                 unsigned EEIE           : 1;
936                 unsigned                : 1;
937                 unsigned                : 1;
938                 unsigned OSFIE          : 1;
939         };
940 } __PIE2bits_t;
941 extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
942
943 extern __sfr __at (0xFA1) PIR2;
944 typedef union {
945         struct {
946                 unsigned CCP2IF         : 1;
947                 unsigned                : 1;
948                 unsigned LVDIF          : 1;
949                 unsigned                : 1;
950                 unsigned EEIF           : 1;
951                 unsigned                : 1;
952                 unsigned                : 1;
953                 unsigned OSFIF          : 1;
954         };
955 } __PIR2bits_t;
956 extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
957
958 extern __sfr __at (0xFA2) IPR2;
959 typedef union {
960         struct {
961                 unsigned CCP2IP         : 1;
962                 unsigned                : 1;
963                 unsigned LVDIP          : 1;
964                 unsigned                : 1;
965                 unsigned EEIP           : 1;
966                 unsigned                : 1;
967                 unsigned                : 1;
968                 unsigned OSFIP          : 1;
969         };
970 } __IPR2bits_t;
971 extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
972
973 extern __sfr __at (0xFA3) PIE3;
974 typedef union {
975         struct {
976                 unsigned TMR5IE         : 1;
977                 unsigned IC1IE          : 1;
978                 unsigned IC2QEIE        : 1;
979                 unsigned IC3DRIE        : 1;
980                 unsigned PTIE           : 1;
981                 unsigned                : 1;
982                 unsigned                : 1;
983                 unsigned                : 1;
984         };
985 } __PIE3bits_t;
986 extern volatile __PIE3bits_t __at (0xFA3) PIE3bits;
987
988 extern __sfr __at (0xFA4) PIR3;
989 typedef union {
990         struct {
991                 unsigned TMR5IF         : 1;
992                 unsigned IC1IF          : 1;
993                 unsigned IC2QEIF        : 1;
994                 unsigned IC3DRIF        : 1;
995                 unsigned PTIF           : 1;
996                 unsigned                : 1;
997                 unsigned                : 1;
998                 unsigned                : 1;
999         };
1000 } __PIR3bits_t;
1001 extern volatile __PIR3bits_t __at (0xFA4) PIR3bits;
1002
1003 extern __sfr __at (0xFA5) IPR3;
1004 typedef union {
1005         struct {
1006                 unsigned TMR5IP         : 1;
1007                 unsigned IC1IP          : 1;
1008                 unsigned IC2QEIP        : 1;
1009                 unsigned IC3DRIP        : 1;
1010                 unsigned PTIP           : 1;
1011                 unsigned                : 1;
1012                 unsigned                : 1;
1013                 unsigned                : 1;
1014         };
1015 } __IPR3bits_t;
1016 extern volatile __IPR3bits_t __at (0xFA5) IPR3bits;
1017
1018 extern __sfr __at (0xFA6) EECON1;
1019 typedef union {
1020         struct {
1021                 unsigned RD             : 1;
1022                 unsigned WR             : 1;
1023                 unsigned WREN           : 1;
1024                 unsigned WRERR          : 1;
1025                 unsigned FREE           : 1;
1026                 unsigned                : 1;
1027                 unsigned CFGS           : 1;
1028                 unsigned EEPGD          : 1;
1029         };
1030 } __EECON1bits_t;
1031 extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
1032
1033 extern __sfr __at (0xFA7) EECON2;
1034
1035 extern __sfr __at (0xFA8) EEDATA;
1036
1037 extern __sfr __at (0xFA9) EEADR;
1038
1039 extern __sfr __at (0xFAA) BAUDCON;
1040 typedef union {
1041         struct {
1042                 unsigned ABDEN          : 1;
1043                 unsigned WUE            : 1;
1044                 unsigned                : 1;
1045                 unsigned BRG16          : 1;
1046                 unsigned SCKP           : 1;
1047                 unsigned                : 1;
1048                 unsigned RCIDL          : 1;
1049                 unsigned                : 1;
1050         };
1051 } __BAUDCONbits_t;
1052 extern volatile __BAUDCONbits_t __at (0xFAA) BAUDCONbits;
1053
1054 extern __sfr __at (0xFAA) BAUDCTL;
1055 typedef union {
1056         struct {
1057                 unsigned ABDEN          : 1;
1058                 unsigned WUE            : 1;
1059                 unsigned                : 1;
1060                 unsigned BRG16          : 1;
1061                 unsigned SCKP           : 1;
1062                 unsigned                : 1;
1063                 unsigned RCIDL          : 1;
1064                 unsigned                : 1;
1065         };
1066 } __BAUDCTLbits_t;
1067 extern volatile __BAUDCTLbits_t __at (0xFAA) BAUDCTLbits;
1068
1069 extern __sfr __at (0xFAB) RCSTA;
1070 typedef union {
1071         struct {
1072                 unsigned RX9D           : 1;
1073                 unsigned OERR           : 1;
1074                 unsigned FERR           : 1;
1075                 unsigned ADEN           : 1;
1076                 unsigned CREN           : 1;
1077                 unsigned SREN           : 1;
1078                 unsigned RX9            : 1;
1079                 unsigned SPEN           : 1;
1080         };
1081 } __RCSTAbits_t;
1082 extern volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
1083
1084 extern __sfr __at (0xFAC) TXSTA;
1085 typedef union {
1086         struct {
1087                 unsigned TX9D           : 1;
1088                 unsigned TRMT           : 1;
1089                 unsigned BRGH           : 1;
1090                 unsigned SENDB          : 1;
1091                 unsigned SYNC           : 1;
1092                 unsigned TXEN           : 1;
1093                 unsigned TX9            : 1;
1094                 unsigned CSRC           : 1;
1095         };
1096 } __TXSTAbits_t;
1097 extern volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
1098
1099 extern __sfr __at (0xFAD) TXREG;
1100
1101 extern __sfr __at (0xFAE) RCREG;
1102
1103 extern __sfr __at (0xFAF) SPBRG;
1104
1105 extern __sfr __at (0xFB0) SPBRGH;
1106
1107 extern __sfr __at (0xFB6) QEICON;
1108 typedef union {
1109         struct {
1110                 unsigned PDEC0          : 1;
1111                 unsigned PDEC1          : 1;
1112                 unsigned QEIM0          : 1;
1113                 unsigned QEIM1          : 1;
1114                 unsigned QEIM2          : 1;
1115                 unsigned UP_DOWN        : 1;
1116                 unsigned ERROR          : 1;
1117                 unsigned VELM           : 1;
1118         };
1119         struct {
1120                 unsigned                : 1;
1121                 unsigned                : 1;
1122                 unsigned                : 1;
1123                 unsigned                : 1;
1124                 unsigned                : 1;
1125                 unsigned UP             : 1;
1126                 unsigned                : 1;
1127                 unsigned NOT_VELM       : 1;
1128         };
1129         struct {
1130                 unsigned                : 1;
1131                 unsigned                : 1;
1132                 unsigned                : 1;
1133                 unsigned                : 1;
1134                 unsigned                : 1;
1135                 unsigned DOWN           : 1;
1136                 unsigned                : 1;
1137                 unsigned                : 1;
1138         };
1139         struct {
1140                 unsigned                : 1;
1141                 unsigned                : 1;
1142                 unsigned                : 1;
1143                 unsigned                : 1;
1144                 unsigned                : 1;
1145                 unsigned NOT_DOWN       : 1;
1146                 unsigned                : 1;
1147                 unsigned                : 1;
1148         };
1149 } __QEICONbits_t;
1150 extern volatile __QEICONbits_t __at (0xFB6) QEICONbits;
1151
1152 extern __sfr __at (0xFB7) T5CON;
1153 typedef union {
1154         struct {
1155                 unsigned TMR5ON         : 1;
1156                 unsigned TMR5CS         : 1;
1157                 unsigned T5SYNC         : 1;
1158                 unsigned T5PS0          : 1;
1159                 unsigned T5PS1          : 1;
1160                 unsigned T5MOD          : 1;
1161                 unsigned RESEN          : 1;
1162                 unsigned T5SEN          : 1;
1163         };
1164         struct {
1165                 unsigned                : 1;
1166                 unsigned                : 1;
1167                 unsigned NOT_T5SYNC     : 1;
1168                 unsigned                : 1;
1169                 unsigned                : 1;
1170                 unsigned                : 1;
1171                 unsigned NOT_RESEN      : 1;
1172                 unsigned                : 1;
1173         };
1174 } __T5CONbits_t;
1175 extern volatile __T5CONbits_t __at (0xFB7) T5CONbits;
1176
1177 extern __sfr __at (0xFB8) ANSEL0;
1178 typedef union {
1179         struct {
1180                 unsigned ANS0           : 1;
1181                 unsigned ANS1           : 1;
1182                 unsigned ANS2           : 1;
1183                 unsigned ANS3           : 1;
1184                 unsigned ANS4           : 1;
1185                 unsigned ANS5           : 1;
1186                 unsigned ANS6           : 1;
1187                 unsigned ANS7           : 1;
1188         };
1189 } __ANSEL0bits_t;
1190 extern volatile __ANSEL0bits_t __at (0xFB8) ANSEL0bits;
1191
1192 extern __sfr __at (0xFB9) ANSEL1;
1193 typedef union {
1194         struct {
1195                 unsigned ANS8           : 1;
1196                 unsigned                : 1;
1197                 unsigned                : 1;
1198                 unsigned                : 1;
1199                 unsigned                : 1;
1200                 unsigned                : 1;
1201                 unsigned                : 1;
1202                 unsigned                : 1;
1203         };
1204 } __ANSEL1bits_t;
1205 extern volatile __ANSEL1bits_t __at (0xFB9) ANSEL1bits;
1206
1207 extern __sfr __at (0xFBA) CCP2CON;
1208 typedef union {
1209         struct {
1210                 unsigned CCP2M0         : 1;
1211                 unsigned CCP2M1         : 1;
1212                 unsigned CCP2M2         : 1;
1213                 unsigned CCP2M3         : 1;
1214                 unsigned CCP2Y          : 1;
1215                 unsigned CCP2X          : 1;
1216                 unsigned                : 1;
1217                 unsigned                : 1;
1218         };
1219         struct {
1220                 unsigned                : 1;
1221                 unsigned                : 1;
1222                 unsigned                : 1;
1223                 unsigned                : 1;
1224                 unsigned DC2B0          : 1;
1225                 unsigned DC2B1          : 1;
1226                 unsigned                : 1;
1227                 unsigned                : 1;
1228         };
1229 } __CCP2CONbits_t;
1230 extern volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
1231
1232 extern __sfr __at (0xFBB) CCPR2;
1233
1234 extern __sfr __at (0xFBB) CCPR2L;
1235
1236 extern __sfr __at (0xFBC) CCPR2H;
1237
1238 extern __sfr __at (0xFBD) CCP1CON;
1239 typedef union {
1240         struct {
1241                 unsigned CCP1M0         : 1;
1242                 unsigned CCP1M1         : 1;
1243                 unsigned CCP1M2         : 1;
1244                 unsigned CCP1M3         : 1;
1245                 unsigned CCP1Y          : 1;
1246                 unsigned CCP1X          : 1;
1247                 unsigned                : 1;
1248                 unsigned                : 1;
1249         };
1250         struct {
1251                 unsigned                : 1;
1252                 unsigned                : 1;
1253                 unsigned                : 1;
1254                 unsigned                : 1;
1255                 unsigned DC1B0          : 1;
1256                 unsigned DC1B1          : 1;
1257                 unsigned                : 1;
1258                 unsigned                : 1;
1259         };
1260 } __CCP1CONbits_t;
1261 extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
1262
1263 extern __sfr __at (0xFBE) CCPR1;
1264
1265 extern __sfr __at (0xFBE) CCPR1L;
1266
1267 extern __sfr __at (0xFBF) CCPR1H;
1268
1269 extern __sfr __at (0xFC0) ADCON2;
1270 typedef union {
1271         struct {
1272                 unsigned ADCS0          : 1;
1273                 unsigned ADCS1          : 1;
1274                 unsigned ADCS2          : 1;
1275                 unsigned ACQT0          : 1;
1276                 unsigned ACQT1          : 1;
1277                 unsigned ACQT2          : 1;
1278                 unsigned ACQT3          : 1;
1279                 unsigned ADFM           : 1;
1280         };
1281 } __ADCON2bits_t;
1282 extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;
1283
1284 extern __sfr __at (0xFC1) ADCON1;
1285 typedef union {
1286         struct {
1287                 unsigned ADPNT0         : 1;
1288                 unsigned ADPNT1         : 1;
1289                 unsigned BFOVFL         : 1;
1290                 unsigned BFEMT          : 1;
1291                 unsigned FIFOEN         : 1;
1292                 unsigned                : 1;
1293                 unsigned VCFG0          : 1;
1294                 unsigned VCFG1          : 1;
1295         };
1296         struct {
1297                 unsigned                : 1;
1298                 unsigned                : 1;
1299                 unsigned FFOVFL         : 1;
1300                 unsigned                : 1;
1301                 unsigned                : 1;
1302                 unsigned                : 1;
1303                 unsigned                : 1;
1304                 unsigned                : 1;
1305         };
1306 } __ADCON1bits_t;
1307 extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
1308
1309 extern __sfr __at (0xFC2) ADCON0;
1310 typedef union {
1311         struct {
1312                 unsigned ADON           : 1;
1313                 unsigned GO_DONE        : 1;
1314                 unsigned ACMOD0         : 1;
1315                 unsigned ACMOD1         : 1;
1316                 unsigned ACSCH          : 1;
1317                 unsigned ACONV          : 1;
1318                 unsigned                : 1;
1319                 unsigned                : 1;
1320         };
1321         struct {
1322                 unsigned                : 1;
1323                 unsigned DONE           : 1;
1324                 unsigned                : 1;
1325                 unsigned                : 1;
1326                 unsigned                : 1;
1327                 unsigned                : 1;
1328                 unsigned                : 1;
1329                 unsigned                : 1;
1330         };
1331         struct {
1332                 unsigned                : 1;
1333                 unsigned GO             : 1;
1334                 unsigned                : 1;
1335                 unsigned                : 1;
1336                 unsigned                : 1;
1337                 unsigned                : 1;
1338                 unsigned                : 1;
1339                 unsigned                : 1;
1340         };
1341         struct {
1342                 unsigned                : 1;
1343                 unsigned NOT_DONE       : 1;
1344                 unsigned                : 1;
1345                 unsigned                : 1;
1346                 unsigned                : 1;
1347                 unsigned                : 1;
1348                 unsigned                : 1;
1349                 unsigned                : 1;
1350         };
1351 } __ADCON0bits_t;
1352 extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
1353
1354 extern __sfr __at (0xFC3) ADRES;
1355
1356 extern __sfr __at (0xFC3) ADRESL;
1357
1358 extern __sfr __at (0xFC4) ADRESH;
1359
1360 extern __sfr __at (0xFC6) SSPCON;
1361 typedef union {
1362         struct {
1363                 unsigned SSPM0          : 1;
1364                 unsigned SSPM1          : 1;
1365                 unsigned SSPM2          : 1;
1366                 unsigned SSPM3          : 1;
1367                 unsigned CKP            : 1;
1368                 unsigned SSPEN          : 1;
1369                 unsigned SSPOV          : 1;
1370                 unsigned WCOL           : 1;
1371         };
1372 } __SSPCONbits_t;
1373 extern volatile __SSPCONbits_t __at (0xFC6) SSPCONbits;
1374
1375 extern __sfr __at (0xFC7) SSPSTAT;
1376 typedef union {
1377         struct {
1378                 unsigned BF             : 1;
1379                 unsigned UA             : 1;
1380                 unsigned R_W            : 1;
1381                 unsigned S              : 1;
1382                 unsigned P              : 1;
1383                 unsigned D_A            : 1;
1384                 unsigned CKE            : 1;
1385                 unsigned SMP            : 1;
1386         };
1387         struct {
1388                 unsigned                : 1;
1389                 unsigned                : 1;
1390                 unsigned NOT_W          : 1;
1391                 unsigned                : 1;
1392                 unsigned                : 1;
1393                 unsigned NOT_A          : 1;
1394                 unsigned                : 1;
1395                 unsigned                : 1;
1396         };
1397         struct {
1398                 unsigned                : 1;
1399                 unsigned                : 1;
1400                 unsigned NOT_WRITE      : 1;
1401                 unsigned                : 1;
1402                 unsigned                : 1;
1403                 unsigned NOT_ADDRESS    : 1;
1404                 unsigned                : 1;
1405                 unsigned                : 1;
1406         };
1407         struct {
1408                 unsigned                : 1;
1409                 unsigned                : 1;
1410                 unsigned READ_WRITE     : 1;
1411                 unsigned                : 1;
1412                 unsigned                : 1;
1413                 unsigned DATA_ADDRESS   : 1;
1414                 unsigned                : 1;
1415                 unsigned                : 1;
1416         };
1417         struct {
1418                 unsigned                : 1;
1419                 unsigned                : 1;
1420                 unsigned R              : 1;
1421                 unsigned                : 1;
1422                 unsigned                : 1;
1423                 unsigned D              : 1;
1424                 unsigned                : 1;
1425                 unsigned                : 1;
1426         };
1427 } __SSPSTATbits_t;
1428 extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
1429
1430 extern __sfr __at (0xFC8) SSPADD;
1431
1432 extern __sfr __at (0xFC9) SSPBUF;
1433
1434 extern __sfr __at (0xFCA) T2CON;
1435 typedef union {
1436         struct {
1437                 unsigned T2CKPS0        : 1;
1438                 unsigned T2CKPS1        : 1;
1439                 unsigned TMR2ON         : 1;
1440                 unsigned T2OUTPS0       : 1;
1441                 unsigned T2OUTPS1       : 1;
1442                 unsigned T2OUTPS2       : 1;
1443                 unsigned T2OUTPS3       : 1;
1444                 unsigned                : 1;
1445         };
1446 } __T2CONbits_t;
1447 extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
1448
1449 extern __sfr __at (0xFCB) PR2;
1450
1451 extern __sfr __at (0xFCC) TMR2;
1452
1453 extern __sfr __at (0xFCD) T1CON;
1454 typedef union {
1455         struct {
1456                 unsigned TMR1ON         : 1;
1457                 unsigned TMR1CS         : 1;
1458                 unsigned T1SYNC         : 1;
1459                 unsigned T1OSCEN        : 1;
1460                 unsigned T1CKPS0        : 1;
1461                 unsigned T1CKPS1        : 1;
1462                 unsigned T1RUN          : 1;
1463                 unsigned RD16           : 1;
1464         };
1465         struct {
1466                 unsigned                : 1;
1467                 unsigned                : 1;
1468                 unsigned T1INSYNC       : 1;
1469                 unsigned                : 1;
1470                 unsigned                : 1;
1471                 unsigned                : 1;
1472                 unsigned                : 1;
1473                 unsigned                : 1;
1474         };
1475         struct {
1476                 unsigned                : 1;
1477                 unsigned                : 1;
1478                 unsigned NOT_T1SYNC     : 1;
1479                 unsigned                : 1;
1480                 unsigned                : 1;
1481                 unsigned                : 1;
1482                 unsigned                : 1;
1483                 unsigned                : 1;
1484         };
1485 } __T1CONbits_t;
1486 extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
1487
1488 extern __sfr __at (0xFCE) TMR1L;
1489
1490 extern __sfr __at (0xFCF) TMR1H;
1491
1492 extern __sfr __at (0xFD0) RCON;
1493 typedef union {
1494         struct {
1495                 unsigned NOT_BOR        : 1;
1496                 unsigned NOT_POR        : 1;
1497                 unsigned NOT_PD         : 1;
1498                 unsigned NOT_TO         : 1;
1499                 unsigned NOT_RI         : 1;
1500                 unsigned                : 1;
1501                 unsigned                : 1;
1502                 unsigned NOT_IPEN       : 1;
1503         };
1504         struct {
1505                 unsigned BOR            : 1;
1506                 unsigned POR            : 1;
1507                 unsigned PD             : 1;
1508                 unsigned TO             : 1;
1509                 unsigned RI             : 1;
1510                 unsigned                : 1;
1511                 unsigned                : 1;
1512                 unsigned IPEN           : 1;
1513         };
1514 } __RCONbits_t;
1515 extern volatile __RCONbits_t __at (0xFD0) RCONbits;
1516
1517 extern __sfr __at (0xFD1) WDTCON;
1518 typedef union {
1519         struct {
1520                 unsigned SWDTEN         : 1;
1521                 unsigned WDT0           : 1;
1522                 unsigned WDT1           : 1;
1523                 unsigned WDT2           : 1;
1524                 unsigned WDT3           : 1;
1525                 unsigned WDT4           : 1;
1526                 unsigned WDT5           : 1;
1527                 unsigned WDT6           : 1;
1528         };
1529         struct {
1530                 unsigned                : 1;
1531                 unsigned                : 1;
1532                 unsigned                : 1;
1533                 unsigned                : 1;
1534                 unsigned                : 1;
1535                 unsigned                : 1;
1536                 unsigned                : 1;
1537                 unsigned WDTW           : 1;
1538         };
1539 } __WDTCONbits_t;
1540 extern volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;
1541
1542 extern __sfr __at (0xFD2) LVDCON;
1543 typedef union {
1544         struct {
1545                 unsigned LVDL0          : 1;
1546                 unsigned LVDL1          : 1;
1547                 unsigned LVDL2          : 1;
1548                 unsigned LVDL3          : 1;
1549                 unsigned LVDEN          : 1;
1550                 unsigned IRVST          : 1;
1551                 unsigned                : 1;
1552                 unsigned                : 1;
1553         };
1554         struct {
1555                 unsigned                : 1;
1556                 unsigned                : 1;
1557                 unsigned                : 1;
1558                 unsigned                : 1;
1559                 unsigned                : 1;
1560                 unsigned IVRST          : 1;
1561                 unsigned                : 1;
1562                 unsigned                : 1;
1563         };
1564 } __LVDCONbits_t;
1565 extern volatile __LVDCONbits_t __at (0xFD2) LVDCONbits;
1566
1567 extern __sfr __at (0xFD3) OSCCON;
1568 typedef union {
1569         struct {
1570                 unsigned SCS0           : 1;
1571                 unsigned SCS1           : 1;
1572                 unsigned FLTS           : 1;
1573                 unsigned OSTS           : 1;
1574                 unsigned IRCF0          : 1;
1575                 unsigned IRCF1          : 1;
1576                 unsigned IRCF2          : 1;
1577                 unsigned IDLEN          : 1;
1578         };
1579         struct {
1580                 unsigned                : 1;
1581                 unsigned                : 1;
1582                 unsigned IOFS           : 1;
1583                 unsigned                : 1;
1584                 unsigned                : 1;
1585                 unsigned                : 1;
1586                 unsigned                : 1;
1587                 unsigned                : 1;
1588         };
1589 } __OSCCONbits_t;
1590 extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
1591
1592 extern __sfr __at (0xFD5) T0CON;
1593 typedef union {
1594         struct {
1595                 unsigned T0PS0          : 1;
1596                 unsigned T0PS1          : 1;
1597                 unsigned T0PS2          : 1;
1598                 unsigned PSA            : 1;
1599                 unsigned T0SE           : 1;
1600                 unsigned T0CS           : 1;
1601                 unsigned T016BIT        : 1;
1602                 unsigned TMR0ON         : 1;
1603         };
1604         struct {
1605                 unsigned                : 1;
1606                 unsigned                : 1;
1607                 unsigned                : 1;
1608                 unsigned T0PS3          : 1;
1609                 unsigned                : 1;
1610                 unsigned                : 1;
1611                 unsigned                : 1;
1612                 unsigned                : 1;
1613         };
1614 } __T0CONbits_t;
1615 extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
1616
1617 extern __sfr __at (0xFD6) TMR0L;
1618
1619 extern __sfr __at (0xFD7) TMR0H;
1620
1621 extern __sfr __at (0xFD8) STATUS;
1622 typedef union {
1623         struct {
1624                 unsigned C              : 1;
1625                 unsigned DC             : 1;
1626                 unsigned Z              : 1;
1627                 unsigned OV             : 1;
1628                 unsigned N              : 1;
1629                 unsigned                : 1;
1630                 unsigned                : 1;
1631                 unsigned                : 1;
1632         };
1633 } __STATUSbits_t;
1634 extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
1635
1636 extern __sfr __at (0xFD9) FSR2L;
1637
1638 extern __sfr __at (0xFDA) FSR2H;
1639
1640 extern __sfr __at (0xFDB) PLUSW2;
1641
1642 extern __sfr __at (0xFDC) PREINC2;
1643
1644 extern __sfr __at (0xFDD) POSTDEC2;
1645
1646 extern __sfr __at (0xFDE) POSTINC2;
1647
1648 extern __sfr __at (0xFDF) INDF2;
1649
1650 extern __sfr __at (0xFE0) BSR;
1651
1652 extern __sfr __at (0xFE1) FSR1L;
1653
1654 extern __sfr __at (0xFE2) FSR1H;
1655
1656 extern __sfr __at (0xFE3) PLUSW1;
1657
1658 extern __sfr __at (0xFE4) PREINC1;
1659
1660 extern __sfr __at (0xFE5) POSTDEC1;
1661
1662 extern __sfr __at (0xFE6) POSTINC1;
1663
1664 extern __sfr __at (0xFE7) INDF1;
1665
1666 extern __sfr __at (0xFE8) WREG;
1667
1668 extern __sfr __at (0xFE9) FSR0L;
1669
1670 extern __sfr __at (0xFEA) FSR0H;
1671
1672 extern __sfr __at (0xFEB) PLUSW0;
1673
1674 extern __sfr __at (0xFEC) PREINC0;
1675
1676 extern __sfr __at (0xFED) POSTDEC0;
1677
1678 extern __sfr __at (0xFEE) POSTINC0;
1679
1680 extern __sfr __at (0xFEF) INDF0;
1681
1682 extern __sfr __at (0xFF0) INTCON3;
1683 typedef union {
1684         struct {
1685                 unsigned INT1IF         : 1;
1686                 unsigned INT2IF         : 1;
1687                 unsigned                : 1;
1688                 unsigned INT1IE         : 1;
1689                 unsigned INT2IE         : 1;
1690                 unsigned                : 1;
1691                 unsigned INT1IP         : 1;
1692                 unsigned INT2IP         : 1;
1693         };
1694         struct {
1695                 unsigned INT1F          : 1;
1696                 unsigned INT2F          : 1;
1697                 unsigned                : 1;
1698                 unsigned INT1E          : 1;
1699                 unsigned INT2E          : 1;
1700                 unsigned                : 1;
1701                 unsigned INT1P          : 1;
1702                 unsigned INT2P          : 1;
1703         };
1704 } __INTCON3bits_t;
1705 extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
1706
1707 extern __sfr __at (0xFF1) INTCON2;
1708 typedef union {
1709         struct {
1710                 unsigned RBIP           : 1;
1711                 unsigned                : 1;
1712                 unsigned TMR0IP         : 1;
1713                 unsigned                : 1;
1714                 unsigned INTEDG2        : 1;
1715                 unsigned INTEDG1        : 1;
1716                 unsigned INTEDG0        : 1;
1717                 unsigned NOT_RBPU       : 1;
1718         };
1719         struct {
1720                 unsigned                : 1;
1721                 unsigned                : 1;
1722                 unsigned T0IP           : 1;
1723                 unsigned                : 1;
1724                 unsigned                : 1;
1725                 unsigned                : 1;
1726                 unsigned                : 1;
1727                 unsigned RBPU           : 1;
1728         };
1729 } __INTCON2bits_t;
1730 extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
1731
1732 extern __sfr __at (0xFF2) INTCON;
1733 typedef union {
1734         struct {
1735                 unsigned RBIF           : 1;
1736                 unsigned INT0IF         : 1;
1737                 unsigned TMR0IF         : 1;
1738                 unsigned RBIE           : 1;
1739                 unsigned INT0IE         : 1;
1740                 unsigned TMR0IE         : 1;
1741                 unsigned PEIE           : 1;
1742                 unsigned GIE            : 1;
1743         };
1744         struct {
1745                 unsigned                : 1;
1746                 unsigned INT0F          : 1;
1747                 unsigned T0IF           : 1;
1748                 unsigned                : 1;
1749                 unsigned INT0E          : 1;
1750                 unsigned T0IE           : 1;
1751                 unsigned GIEL           : 1;
1752                 unsigned GIEH           : 1;
1753         };
1754 } __INTCONbits_t;
1755 extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
1756
1757 extern __sfr __at (0xFF3) PROD;
1758
1759 extern __sfr __at (0xFF3) PRODL;
1760
1761 extern __sfr __at (0xFF4) PRODH;
1762
1763 extern __sfr __at (0xFF5) TABLAT;
1764
1765 extern __sfr __at (0xFF6) TBLPTR;
1766
1767 extern __sfr __at (0xFF6) TBLPTRL;
1768
1769 extern __sfr __at (0xFF7) TBLPTRH;
1770
1771 extern __sfr __at (0xFF8) TBLPTRU;
1772
1773 extern __sfr __at (0xFF9) PC;
1774
1775 extern __sfr __at (0xFF9) PCL;
1776
1777 extern __sfr __at (0xFFA) PCLATH;
1778
1779 extern __sfr __at (0xFFB) PCLATU;
1780
1781 extern __sfr __at (0xFFC) STKPTR;
1782 typedef union {
1783         struct {
1784                 unsigned STKPTR0        : 1;
1785                 unsigned STKPTR1        : 1;
1786                 unsigned STKPTR2        : 1;
1787                 unsigned STKPTR3        : 1;
1788                 unsigned STKPTR4        : 1;
1789                 unsigned                : 1;
1790                 unsigned STKUNF         : 1;
1791                 unsigned STKOVF         : 1;
1792         };
1793         struct {
1794                 unsigned                : 1;
1795                 unsigned                : 1;
1796                 unsigned                : 1;
1797                 unsigned                : 1;
1798                 unsigned                : 1;
1799                 unsigned                : 1;
1800                 unsigned                : 1;
1801                 unsigned STKFUL         : 1;
1802         };
1803 } __STKPTRbits_t;
1804 extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
1805
1806 extern __sfr __at (0xFFD) TOS;
1807
1808 extern __sfr __at (0xFFD) TOSL;
1809
1810 extern __sfr __at (0xFFE) TOSH;
1811
1812 extern __sfr __at (0xFFF) TOSU;
1813
1814
1815 #endif
1816