Imported Upstream version 2.9.0
[debian/cc1111] / device / include / pic16 / pic18f4610.h
1 /*
2  * pic18f4610.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 __PIC18F4610_H__
12 #define __PIC18F4610_H__ 1
13
14
15
16 // Configuration Bits
17 #define __CONFIG1H              0x300001
18 #define __CONFIG2L              0x300002
19 #define __CONFIG2H              0x300003
20 #define __CONFIG3H              0x300005
21 #define __CONFIG4L              0x300006
22 #define __CONFIG5L              0x300008
23 #define __CONFIG5H              0x300009
24 #define __CONFIG6L              0x30000A
25 #define __CONFIG6H              0x30000B
26 #define __CONFIG7L              0x30000C
27 #define __CONFIG7H              0x30000D
28
29 // CONFIG1H Options
30 #define _OSC_LP_1H              0xF0     // LP oscillator
31 #define _OSC_XT_1H              0xF1     // XT oscillator
32 #define _OSC_HS_1H              0xF2     // HS oscillator
33 #define _OSC_RC_1H              0xF3     // External RC oscillator, CLKO function on RA6
34 #define _OSC_EC_1H              0xF4     // EC oscillator, CLKO function on RA6
35 #define _OSC_ECIO6_1H           0xF5     // EC oscillator, port function on RA6
36 #define _OSC_HSPLL_1H           0xF6     // HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)
37 #define _OSC_RCIO6_1H           0xF7     // External RC oscillator, port function on RA6
38 #define _OSC_INTIO67_1H         0xF8     // Internal oscillator block, port function on RA6 and RA7
39 #define _OSC_INTIO7_1H          0xF9     // Internal oscillator block, CLKO function on RA6, port function on RA7
40 #define _FCMEN_OFF_1H           0xBF     // Fail-Safe Clock Monitor disabled
41 #define _FCMEN_ON_1H            0xFF     // Fail-Safe Clock Monitor enabled
42 #define _IESO_OFF_1H            0x7F     // Oscillator Switchover mode disabled
43 #define _IESO_ON_1H             0xFF     // Oscillator Switchover mode enabled
44
45 // CONFIG2L Options
46 #define _PWRT_ON_2L             0xFE     // PWRT enabled
47 #define _PWRT_OFF_2L            0xFF     // PWRT disabled
48 #define _BOREN_OFF_2L           0xF9     // Brown-out Reset disabled in hardware and software
49 #define _BOREN_ON_2L            0xFB     // Brown-out Reset enabled and controlled by software (SBOREN is enabled)
50 #define _BOREN_NOSLP_2L         0xFD     // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
51 #define _BOREN_SBORDIS_2L       0xFF     // Brown-out Reset enabled in hardware only (SBOREN is disabled)
52 #define _BORV_0_2L              0xE7     // Maximum setting
53 #define _BORV_1_2L              0xEF     // 
54 #define _BORV_2_2L              0xF7     // 
55 #define _BORV_3_2L              0xFF     // Minimum setting
56
57 // CONFIG2H Options
58 #define _WDT_OFF_2H             0xFE     // WDT disabled (control is placed on the SWDTEN bit)
59 #define _WDT_ON_2H              0xFF     // WDT enabled
60 #define _WDTPS_1_2H             0xE1     // 1:1
61 #define _WDTPS_2_2H             0xE3     // 1:2
62 #define _WDTPS_4_2H             0xE5     // 1:4
63 #define _WDTPS_8_2H             0xE7     // 1:8
64 #define _WDTPS_16_2H            0xE9     // 1:16
65 #define _WDTPS_32_2H            0xEB     // 1:32
66 #define _WDTPS_64_2H            0xED     // 1:64
67 #define _WDTPS_128_2H           0xEF     // 1:128
68 #define _WDTPS_256_2H           0xF1     // 1:256
69 #define _WDTPS_512_2H           0xF3     // 1:512
70 #define _WDTPS_1024_2H          0xF5     // 1:1024
71 #define _WDTPS_2048_2H          0xF7     // 1:2048
72 #define _WDTPS_4096_2H          0xF9     // 1:4096
73 #define _WDTPS_8192_2H          0xFB     // 1:8192
74 #define _WDTPS_16384_2H         0xFD     // 1:16384
75 #define _WDTPS_32768_2H         0xFF     // 1:32768
76
77 // CONFIG3H Options
78 #define _MCLRE_OFF_3H           0x7F     // MCLR pin enabled; RE3 input pin disabled
79 #define _MCLRE_ON_3H            0xFF     // RE3 input pin enabled; MCLR disabled
80 #define _LPT1OSC_OFF_3H         0xFB     // Timer1 configured for higher power operation
81 #define _LPT1OSC_ON_3H          0xFF     // Timer1 configured for low-power operation
82 #define _PBADEN_OFF_3H          0xFD     // PORTB<4:0> pins are configured as digital I/O on Reset
83 #define _PBADEN_ON_3H           0xFF     // PORTB<4:0> pins are configured as analog input channels on Reset
84 #define _CCP2MX_PORTBE_3H       0xFE     // CCP2 input/output is multiplexed with RB3
85 #define _CCP2MX_PORTC_3H        0xFF     // CCP2 input/output is multiplexed with RC1
86
87 // CONFIG4L Options
88 #define _STVREN_OFF_4L          0xFE     // Stack full/underflow will not cause Reset
89 #define _STVREN_ON_4L           0xFF     // Stack full/underflow will cause Reset
90 #define _LVP_OFF_4L             0xFB     // Single-Supply ICSP disabled
91 #define _LVP_ON_4L              0xFF     // Single-Supply ICSP enabled
92 #define _XINST_OFF_4L           0xBF     // Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
93 #define _XINST_ON_4L            0xFF     // Instruction set extension and Indexed Addressing mode enabled
94 #define _DEBUG_ON_4L            0x7F     // Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug
95 #define _DEBUG_OFF_4L           0xFF     // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
96
97 // CONFIG5L Options
98 #define _CP0_ON_5L              0xFE     // Block 0 code-protected
99 #define _CP0_OFF_5L             0xFF     // Block 0 not code-protected
100 #define _CP1_ON_5L              0xFD     // Block 1 code-protected
101 #define _CP1_OFF_5L             0xFF     // Block 1 not code-protected
102 #define _CP2_ON_5L              0xFB     // Block 2 code-protected
103 #define _CP2_OFF_5L             0xFF     // Block 2 not code-protected
104 #define _CP3_ON_5L              0xF7     // Block 3 code-protected
105 #define _CP3_OFF_5L             0xFF     // Block 3 not code-protected
106
107 // CONFIG5H Options
108 #define _CPB_ON_5H              0xBF     // Boot block code-protected
109 #define _CPB_OFF_5H             0xFF     // Boot block not code-protected
110
111 // CONFIG6L Options
112 #define _WRT0_ON_6L             0xFE     // Block 0 write-protected
113 #define _WRT0_OFF_6L            0xFF     // Block 0 not write-protected
114 #define _WRT1_ON_6L             0xFD     // Block 1 write-protected
115 #define _WRT1_OFF_6L            0xFF     // Block 1 not write-protected
116 #define _WRT2_ON_6L             0xFB     // Block 2 write-protected
117 #define _WRT2_OFF_6L            0xFF     // Block 2 not write-protected
118 #define _WRT3_ON_6L             0xF7     // Block 3 write-protected
119 #define _WRT3_OFF_6L            0xFF     // Block 3 not write-protected
120
121 // CONFIG6H Options
122 #define _WRTB_ON_6H             0xBF     // Boot block write-protected
123 #define _WRTB_OFF_6H            0xFF     // Boot block not write-protected
124 #define _WRTC_ON_6H             0xDF     // Configuration registers (300000-3000FFh) write-protected
125 #define _WRTC_OFF_6H            0xFF     // Configuration registers (300000-3000FFh) not write-protected
126
127 // CONFIG7L Options
128 #define _EBTR0_ON_7L            0xFE     // Block 0 protected from table reads executed in other blocks
129 #define _EBTR0_OFF_7L           0xFF     // Block 0 not protected from table reads executed in other blocks
130 #define _EBTR1_ON_7L            0xFD     // Block 1 protected from table reads executed in other blocks
131 #define _EBTR1_OFF_7L           0xFF     // Block 1 not protected from table reads executed in other blocks
132 #define _EBTR2_ON_7L            0xFB     // Block 2 protected from table reads executed in other blocks
133 #define _EBTR2_OFF_7L           0xFF     // Block 2 not protected from table reads executed in other blocks
134 #define _EBTR3_ON_7L            0xF7     // Block 3 protected from table reads executed in other blocks
135 #define _EBTR3_OFF_7L           0xFF     // Block 3 not protected from table reads executed in other blocks
136
137 // CONFIG7H Options
138 #define _EBTRB_ON_7H            0xBF     // Boot block protected from table reads executed in other blocks
139 #define _EBTRB_OFF_7H           0xFF     // Boot block not protected from table reads executed in other blocks
140 #define _DEVID1                 0x3FFFFE
141 #define _DEVID2                 0x3FFFFF
142 #define _IDLOC0                 0x200000
143 #define _IDLOC1                 0x200001
144 #define _IDLOC2                 0x200002
145 #define _IDLOC3                 0x200003
146 #define _IDLOC4                 0x200004
147 #define _IDLOC5                 0x200005
148 #define _IDLOC6                 0x200006
149 #define _IDLOC7                 0x200007
150
151 extern __sfr __at (0xF80) PORTA;
152 typedef union {
153         struct {
154                 unsigned RA0            : 1;
155                 unsigned RA1            : 1;
156                 unsigned RA2            : 1;
157                 unsigned RA3            : 1;
158                 unsigned RA4            : 1;
159                 unsigned RA5            : 1;
160                 unsigned RA6            : 1;
161                 unsigned RA7            : 1;
162         };
163         struct {
164                 unsigned AN0            : 1;
165                 unsigned AN1            : 1;
166                 unsigned AN2            : 1;
167                 unsigned AN3            : 1;
168                 unsigned T0CKI          : 1;
169                 unsigned AN4            : 1;
170                 unsigned OSC2           : 1;
171                 unsigned OSC1           : 1;
172         };
173         struct {
174                 unsigned                : 1;
175                 unsigned                : 1;
176                 unsigned VREFN          : 1;
177                 unsigned VREFP          : 1;
178                 unsigned                : 1;
179                 unsigned SS             : 1;
180                 unsigned CLKO           : 1;
181                 unsigned CLKI           : 1;
182         };
183         struct {
184                 unsigned                : 1;
185                 unsigned                : 1;
186                 unsigned CVREF          : 1;
187                 unsigned                : 1;
188                 unsigned                : 1;
189                 unsigned NOT_SS         : 1;
190                 unsigned                : 1;
191                 unsigned                : 1;
192         };
193         struct {
194                 unsigned                : 1;
195                 unsigned                : 1;
196                 unsigned                : 1;
197                 unsigned                : 1;
198                 unsigned                : 1;
199                 unsigned LVDIN          : 1;
200                 unsigned                : 1;
201                 unsigned                : 1;
202         };
203         struct {
204                 unsigned                : 1;
205                 unsigned                : 1;
206                 unsigned                : 1;
207                 unsigned                : 1;
208                 unsigned                : 1;
209                 unsigned HLVDIN         : 1;
210                 unsigned                : 1;
211                 unsigned                : 1;
212         };
213 } __PORTAbits_t;
214 extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
215
216 extern __sfr __at (0xF81) PORTB;
217 typedef union {
218         struct {
219                 unsigned RB0            : 1;
220                 unsigned RB1            : 1;
221                 unsigned RB2            : 1;
222                 unsigned RB3            : 1;
223                 unsigned RB4            : 1;
224                 unsigned RB5            : 1;
225                 unsigned RB6            : 1;
226                 unsigned RB7            : 1;
227         };
228         struct {
229                 unsigned INT0           : 1;
230                 unsigned INT1           : 1;
231                 unsigned INT2           : 1;
232                 unsigned CCP2_PORTB     : 1;
233                 unsigned KBI0           : 1;
234                 unsigned KBI1           : 1;
235                 unsigned KBI2           : 1;
236                 unsigned KBI3           : 1;
237         };
238         struct {
239                 unsigned AN12           : 1;
240                 unsigned AN10           : 1;
241                 unsigned AN8            : 1;
242                 unsigned AN9            : 1;
243                 unsigned AN11           : 1;
244                 unsigned PGM            : 1;
245                 unsigned PGC            : 1;
246                 unsigned PGD            : 1;
247         };
248         struct {
249                 unsigned                : 1;
250                 unsigned                : 1;
251                 unsigned                : 1;
252                 unsigned                : 1;
253                 unsigned                : 1;
254                 unsigned DAD5           : 1;
255                 unsigned DAD6           : 1;
256                 unsigned DAD7           : 1;
257         };
258 } __PORTBbits_t;
259 extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
260
261 extern __sfr __at (0xF82) PORTC;
262 typedef union {
263         struct {
264                 unsigned RC0            : 1;
265                 unsigned RC1            : 1;
266                 unsigned RC2            : 1;
267                 unsigned RC3            : 1;
268                 unsigned RC4            : 1;
269                 unsigned RC5            : 1;
270                 unsigned RC6            : 1;
271                 unsigned RC7            : 1;
272         };
273         struct {
274                 unsigned T1OSO          : 1;
275                 unsigned T1OSI          : 1;
276                 unsigned CCP1           : 1;
277                 unsigned SCK            : 1;
278                 unsigned SDI            : 1;
279                 unsigned SDO            : 1;
280                 unsigned TX             : 1;
281                 unsigned RX             : 1;
282         };
283         struct {
284                 unsigned T13CKI         : 1;
285                 unsigned CCP2_PORTC     : 1;
286                 unsigned                : 1;
287                 unsigned SCL            : 1;
288                 unsigned SDA            : 1;
289                 unsigned                : 1;
290                 unsigned CK             : 1;
291                 unsigned DT             : 1;
292         };
293         struct {
294                 unsigned T1CKI          : 1;
295                 unsigned                : 1;
296                 unsigned                : 1;
297                 unsigned                : 1;
298                 unsigned                : 1;
299                 unsigned                : 1;
300                 unsigned                : 1;
301                 unsigned                : 1;
302         };
303 } __PORTCbits_t;
304 extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
305
306 extern __sfr __at (0xF83) PORTD;
307 typedef union {
308         struct {
309                 unsigned RD0            : 1;
310                 unsigned RD1            : 1;
311                 unsigned RD2            : 1;
312                 unsigned RD3            : 1;
313                 unsigned RD4            : 1;
314                 unsigned RD5            : 1;
315                 unsigned RD6            : 1;
316                 unsigned RD7            : 1;
317         };
318         struct {
319                 unsigned PSP0           : 1;
320                 unsigned PSP1           : 1;
321                 unsigned PSP2           : 1;
322                 unsigned PSP3           : 1;
323                 unsigned PSP4           : 1;
324                 unsigned PSP5           : 1;
325                 unsigned PSP6           : 1;
326                 unsigned PSP7           : 1;
327         };
328         struct {
329                 unsigned                : 1;
330                 unsigned                : 1;
331                 unsigned                : 1;
332                 unsigned                : 1;
333                 unsigned                : 1;
334                 unsigned P1B            : 1;
335                 unsigned P1C            : 1;
336                 unsigned P1D            : 1;
337         };
338 } __PORTDbits_t;
339 extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
340
341 extern __sfr __at (0xF84) PORTE;
342 typedef union {
343         struct {
344                 unsigned RE0            : 1;
345                 unsigned RE1            : 1;
346                 unsigned RE2            : 1;
347                 unsigned RE3            : 1;
348                 unsigned                : 1;
349                 unsigned                : 1;
350                 unsigned                : 1;
351                 unsigned                : 1;
352         };
353         struct {
354                 unsigned RD             : 1;
355                 unsigned WR             : 1;
356                 unsigned CS             : 1;
357                 unsigned MCLR           : 1;
358                 unsigned                : 1;
359                 unsigned                : 1;
360                 unsigned                : 1;
361                 unsigned                : 1;
362         };
363         struct {
364                 unsigned NOT_RD         : 1;
365                 unsigned NOT_WR         : 1;
366                 unsigned NOT_CS         : 1;
367                 unsigned NOT_MCLR       : 1;
368                 unsigned                : 1;
369                 unsigned                : 1;
370                 unsigned                : 1;
371                 unsigned                : 1;
372         };
373         struct {
374                 unsigned AN5            : 1;
375                 unsigned AN6            : 1;
376                 unsigned AN7            : 1;
377                 unsigned VPP            : 1;
378                 unsigned                : 1;
379                 unsigned                : 1;
380                 unsigned                : 1;
381                 unsigned                : 1;
382         };
383 } __PORTEbits_t;
384 extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
385
386 extern __sfr __at (0xF89) LATA;
387 typedef union {
388         struct {
389                 unsigned LATA0          : 1;
390                 unsigned LATA1          : 1;
391                 unsigned LATA2          : 1;
392                 unsigned LATA3          : 1;
393                 unsigned LATA4          : 1;
394                 unsigned LATA5          : 1;
395                 unsigned LATA6          : 1;
396                 unsigned LATA7          : 1;
397         };
398 } __LATAbits_t;
399 extern volatile __LATAbits_t __at (0xF89) LATAbits;
400
401 extern __sfr __at (0xF8A) LATB;
402 typedef union {
403         struct {
404                 unsigned LATB0          : 1;
405                 unsigned LATB1          : 1;
406                 unsigned LATB2          : 1;
407                 unsigned LATB3          : 1;
408                 unsigned LATB4          : 1;
409                 unsigned LATB5          : 1;
410                 unsigned LATB6          : 1;
411                 unsigned LATB7          : 1;
412         };
413 } __LATBbits_t;
414 extern volatile __LATBbits_t __at (0xF8A) LATBbits;
415
416 extern __sfr __at (0xF8B) LATC;
417 typedef union {
418         struct {
419                 unsigned LATC0          : 1;
420                 unsigned LATC1          : 1;
421                 unsigned LATC2          : 1;
422                 unsigned LATC3          : 1;
423                 unsigned LATC4          : 1;
424                 unsigned LATC5          : 1;
425                 unsigned LATC6          : 1;
426                 unsigned LATC7          : 1;
427         };
428 } __LATCbits_t;
429 extern volatile __LATCbits_t __at (0xF8B) LATCbits;
430
431 extern __sfr __at (0xF8C) LATD;
432 typedef union {
433         struct {
434                 unsigned LATD0          : 1;
435                 unsigned LATD1          : 1;
436                 unsigned LATD2          : 1;
437                 unsigned LATD3          : 1;
438                 unsigned LATD4          : 1;
439                 unsigned LATD5          : 1;
440                 unsigned LATD6          : 1;
441                 unsigned LATD7          : 1;
442         };
443 } __LATDbits_t;
444 extern volatile __LATDbits_t __at (0xF8C) LATDbits;
445
446 extern __sfr __at (0xF8D) LATE;
447 typedef union {
448         struct {
449                 unsigned LATE0          : 1;
450                 unsigned LATE1          : 1;
451                 unsigned LATE2          : 1;
452                 unsigned                : 1;
453                 unsigned                : 1;
454                 unsigned                : 1;
455                 unsigned                : 1;
456                 unsigned                : 1;
457         };
458 } __LATEbits_t;
459 extern volatile __LATEbits_t __at (0xF8D) LATEbits;
460
461 extern __sfr __at (0xF92) DDRA;
462 typedef union {
463         struct {
464                 unsigned RA0            : 1;
465                 unsigned RA1            : 1;
466                 unsigned RA2            : 1;
467                 unsigned RA3            : 1;
468                 unsigned RA4            : 1;
469                 unsigned RA5            : 1;
470                 unsigned RA6            : 1;
471                 unsigned RA7            : 1;
472         };
473 } __DDRAbits_t;
474 extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
475
476 extern __sfr __at (0xF92) TRISA;
477 typedef union {
478         struct {
479                 unsigned TRISA0         : 1;
480                 unsigned TRISA1         : 1;
481                 unsigned TRISA2         : 1;
482                 unsigned TRISA3         : 1;
483                 unsigned TRISA4         : 1;
484                 unsigned TRISA5         : 1;
485                 unsigned TRISA6         : 1;
486                 unsigned TRISA7         : 1;
487         };
488 } __TRISAbits_t;
489 extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
490
491 extern __sfr __at (0xF93) DDRB;
492 typedef union {
493         struct {
494                 unsigned RB0            : 1;
495                 unsigned RB1            : 1;
496                 unsigned RB2            : 1;
497                 unsigned RB3            : 1;
498                 unsigned RB4            : 1;
499                 unsigned RB5            : 1;
500                 unsigned RB6            : 1;
501                 unsigned RB7            : 1;
502         };
503 } __DDRBbits_t;
504 extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
505
506 extern __sfr __at (0xF93) TRISB;
507 typedef union {
508         struct {
509                 unsigned TRISB0         : 1;
510                 unsigned TRISB1         : 1;
511                 unsigned TRISB2         : 1;
512                 unsigned TRISB3         : 1;
513                 unsigned TRISB4         : 1;
514                 unsigned TRISB5         : 1;
515                 unsigned TRISB6         : 1;
516                 unsigned TRISB7         : 1;
517         };
518 } __TRISBbits_t;
519 extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
520
521 extern __sfr __at (0xF94) DDRC;
522 typedef union {
523         struct {
524                 unsigned RC0            : 1;
525                 unsigned RC1            : 1;
526                 unsigned RC2            : 1;
527                 unsigned RC3            : 1;
528                 unsigned RC4            : 1;
529                 unsigned RC5            : 1;
530                 unsigned RC6            : 1;
531                 unsigned RC7            : 1;
532         };
533 } __DDRCbits_t;
534 extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
535
536 extern __sfr __at (0xF94) TRISC;
537 typedef union {
538         struct {
539                 unsigned TRISC0         : 1;
540                 unsigned TRISC1         : 1;
541                 unsigned TRISC2         : 1;
542                 unsigned TRISC3         : 1;
543                 unsigned TRISC4         : 1;
544                 unsigned TRISC5         : 1;
545                 unsigned TRISC6         : 1;
546                 unsigned TRISC7         : 1;
547         };
548 } __TRISCbits_t;
549 extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
550
551 extern __sfr __at (0xF95) DDRD;
552 typedef union {
553         struct {
554                 unsigned RD0            : 1;
555                 unsigned RD1            : 1;
556                 unsigned RD2            : 1;
557                 unsigned RD3            : 1;
558                 unsigned RD4            : 1;
559                 unsigned RD5            : 1;
560                 unsigned RD6            : 1;
561                 unsigned RD7            : 1;
562         };
563 } __DDRDbits_t;
564 extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
565
566 extern __sfr __at (0xF95) TRISD;
567 typedef union {
568         struct {
569                 unsigned TRISD0         : 1;
570                 unsigned TRISD1         : 1;
571                 unsigned TRISD2         : 1;
572                 unsigned TRISD3         : 1;
573                 unsigned TRISD4         : 1;
574                 unsigned TRISD5         : 1;
575                 unsigned TRISD6         : 1;
576                 unsigned TRISD7         : 1;
577         };
578 } __TRISDbits_t;
579 extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
580
581 extern __sfr __at (0xF96) DDRE;
582 typedef union {
583         struct {
584                 unsigned RE0            : 1;
585                 unsigned RE1            : 1;
586                 unsigned RE2            : 1;
587                 unsigned RE3            : 1;
588                 unsigned                : 1;
589                 unsigned                : 1;
590                 unsigned                : 1;
591                 unsigned                : 1;
592         };
593 } __DDREbits_t;
594 extern volatile __DDREbits_t __at (0xF96) DDREbits;
595
596 extern __sfr __at (0xF96) TRISE;
597 typedef union {
598         struct {
599                 unsigned TRISE0         : 1;
600                 unsigned TRISE1         : 1;
601                 unsigned TRISE2         : 1;
602                 unsigned                : 1;
603                 unsigned TRISE4         : 1;
604                 unsigned TRISE5         : 1;
605                 unsigned TRISE6         : 1;
606                 unsigned TRISE7         : 1;
607         };
608         struct {
609                 unsigned                : 1;
610                 unsigned                : 1;
611                 unsigned                : 1;
612                 unsigned                : 1;
613                 unsigned PSPMODE        : 1;
614                 unsigned IBOV           : 1;
615                 unsigned OBF            : 1;
616                 unsigned IBF            : 1;
617         };
618 } __TRISEbits_t;
619 extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
620
621 extern __sfr __at (0xF9B) OSCTUNE;
622 typedef union {
623         struct {
624                 unsigned TUN0           : 1;
625                 unsigned TUN1           : 1;
626                 unsigned TUN2           : 1;
627                 unsigned TUN3           : 1;
628                 unsigned TUN4           : 1;
629                 unsigned                : 1;
630                 unsigned PLLEN          : 1;
631                 unsigned INTSRC         : 1;
632         };
633 } __OSCTUNEbits_t;
634 extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
635
636 extern __sfr __at (0xF9D) PIE1;
637 typedef union {
638         struct {
639                 unsigned TMR1IE         : 1;
640                 unsigned TMR2IE         : 1;
641                 unsigned CCP1IE         : 1;
642                 unsigned SSPIE          : 1;
643                 unsigned TXIE           : 1;
644                 unsigned RCIE           : 1;
645                 unsigned ADIE           : 1;
646                 unsigned PSPIE          : 1;
647         };
648 } __PIE1bits_t;
649 extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
650
651 extern __sfr __at (0xF9E) PIR1;
652 typedef union {
653         struct {
654                 unsigned TMR1IF         : 1;
655                 unsigned TMR2IF         : 1;
656                 unsigned CCP1IF         : 1;
657                 unsigned SSPIF          : 1;
658                 unsigned TXIF           : 1;
659                 unsigned RCIF           : 1;
660                 unsigned ADIF           : 1;
661                 unsigned PSPIF          : 1;
662         };
663 } __PIR1bits_t;
664 extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
665
666 extern __sfr __at (0xF9F) IPR1;
667 typedef union {
668         struct {
669                 unsigned TMR1IP         : 1;
670                 unsigned TMR2IP         : 1;
671                 unsigned CCP1IP         : 1;
672                 unsigned SSPIP          : 1;
673                 unsigned TXIP           : 1;
674                 unsigned RCIP           : 1;
675                 unsigned ADIP           : 1;
676                 unsigned PSPIP          : 1;
677         };
678 } __IPR1bits_t;
679 extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
680
681 extern __sfr __at (0xFA0) PIE2;
682 typedef union {
683         struct {
684                 unsigned CCP2IE         : 1;
685                 unsigned TMR3IE         : 1;
686                 unsigned LVDIE          : 1;
687                 unsigned BCLIE          : 1;
688                 unsigned                : 1;
689                 unsigned                : 1;
690                 unsigned CMIE           : 1;
691                 unsigned OSCFIE         : 1;
692         };
693         struct {
694                 unsigned                : 1;
695                 unsigned                : 1;
696                 unsigned HLVDIE         : 1;
697                 unsigned                : 1;
698                 unsigned                : 1;
699                 unsigned                : 1;
700                 unsigned                : 1;
701                 unsigned                : 1;
702         };
703 } __PIE2bits_t;
704 extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
705
706 extern __sfr __at (0xFA1) PIR2;
707 typedef union {
708         struct {
709                 unsigned CCP2IF         : 1;
710                 unsigned TMR3IF         : 1;
711                 unsigned LVDIF          : 1;
712                 unsigned BCLIF          : 1;
713                 unsigned                : 1;
714                 unsigned                : 1;
715                 unsigned CMIF           : 1;
716                 unsigned OSCFIF         : 1;
717         };
718         struct {
719                 unsigned                : 1;
720                 unsigned                : 1;
721                 unsigned HLVDIF         : 1;
722                 unsigned                : 1;
723                 unsigned                : 1;
724                 unsigned                : 1;
725                 unsigned                : 1;
726                 unsigned                : 1;
727         };
728 } __PIR2bits_t;
729 extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
730
731 extern __sfr __at (0xFA2) IPR2;
732 typedef union {
733         struct {
734                 unsigned CCP2IP         : 1;
735                 unsigned TMR3IP         : 1;
736                 unsigned LVDIP          : 1;
737                 unsigned BCLIP          : 1;
738                 unsigned                : 1;
739                 unsigned                : 1;
740                 unsigned CMIP           : 1;
741                 unsigned OSCFIP         : 1;
742         };
743         struct {
744                 unsigned                : 1;
745                 unsigned                : 1;
746                 unsigned HLVDIP         : 1;
747                 unsigned                : 1;
748                 unsigned                : 1;
749                 unsigned                : 1;
750                 unsigned                : 1;
751                 unsigned                : 1;
752         };
753 } __IPR2bits_t;
754 extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
755
756 extern __sfr __at (0xFAB) RCSTA;
757 typedef union {
758         struct {
759                 unsigned RX9D           : 1;
760                 unsigned OERR           : 1;
761                 unsigned FERR           : 1;
762                 unsigned ADEN           : 1;
763                 unsigned CREN           : 1;
764                 unsigned SREN           : 1;
765                 unsigned RX9            : 1;
766                 unsigned SPEN           : 1;
767         };
768         struct {
769                 unsigned                : 1;
770                 unsigned                : 1;
771                 unsigned                : 1;
772                 unsigned ADDEN          : 1;
773                 unsigned                : 1;
774                 unsigned                : 1;
775                 unsigned                : 1;
776                 unsigned                : 1;
777         };
778 } __RCSTAbits_t;
779 extern volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
780
781 extern __sfr __at (0xFAC) TXSTA;
782 typedef union {
783         struct {
784                 unsigned TX9D           : 1;
785                 unsigned TRMT           : 1;
786                 unsigned BRGH           : 1;
787                 unsigned SENDB          : 1;
788                 unsigned SYNC           : 1;
789                 unsigned TXEN           : 1;
790                 unsigned TX9            : 1;
791                 unsigned CSRC           : 1;
792         };
793 } __TXSTAbits_t;
794 extern volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
795
796 extern __sfr __at (0xFAD) TXREG;
797
798 extern __sfr __at (0xFAE) RCREG;
799
800 extern __sfr __at (0xFAF) SPBRG;
801
802 extern __sfr __at (0xFB0) SPBRGH;
803
804 extern __sfr __at (0xFB1) T3CON;
805 typedef union {
806         struct {
807                 unsigned TMR3ON         : 1;
808                 unsigned TMR3CS         : 1;
809                 unsigned T3SYNC         : 1;
810                 unsigned T3CCP1         : 1;
811                 unsigned T3CKPS0        : 1;
812                 unsigned T3CKPS1        : 1;
813                 unsigned T3CCP2         : 1;
814                 unsigned RD16           : 1;
815         };
816         struct {
817                 unsigned                : 1;
818                 unsigned                : 1;
819                 unsigned NOT_T3SYNC     : 1;
820                 unsigned                : 1;
821                 unsigned                : 1;
822                 unsigned                : 1;
823                 unsigned                : 1;
824                 unsigned                : 1;
825         };
826 } __T3CONbits_t;
827 extern volatile __T3CONbits_t __at (0xFB1) T3CONbits;
828
829 extern __sfr __at (0xFB2) TMR3L;
830
831 extern __sfr __at (0xFB3) TMR3H;
832
833 extern __sfr __at (0xFB4) CMCON;
834 typedef union {
835         struct {
836                 unsigned CM0            : 1;
837                 unsigned CM1            : 1;
838                 unsigned CM2            : 1;
839                 unsigned CIS            : 1;
840                 unsigned C1INV          : 1;
841                 unsigned C2INV          : 1;
842                 unsigned C1OUT          : 1;
843                 unsigned C2OUT          : 1;
844         };
845 } __CMCONbits_t;
846 extern volatile __CMCONbits_t __at (0xFB4) CMCONbits;
847
848 extern __sfr __at (0xFB5) CVRCON;
849 typedef union {
850         struct {
851                 unsigned CVR0           : 1;
852                 unsigned CVR1           : 1;
853                 unsigned CVR2           : 1;
854                 unsigned CVR3           : 1;
855                 unsigned CVRSS          : 1;
856                 unsigned CVRR           : 1;
857                 unsigned CVROE          : 1;
858                 unsigned CVREN          : 1;
859         };
860 } __CVRCONbits_t;
861 extern volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
862
863 extern __sfr __at (0xFB6) ECCP1AS;
864 typedef union {
865         struct {
866                 unsigned PSSBD0         : 1;
867                 unsigned PSSBD1         : 1;
868                 unsigned PSSAC0         : 1;
869                 unsigned PSSAC1         : 1;
870                 unsigned ECCPAS0        : 1;
871                 unsigned ECCPAS1        : 1;
872                 unsigned ECCPAS2        : 1;
873                 unsigned ECCPASE        : 1;
874         };
875 } __ECCP1ASbits_t;
876 extern volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
877
878 extern __sfr __at (0xFB6) ECCPAS;
879 typedef union {
880         struct {
881                 unsigned PSSBD0         : 1;
882                 unsigned PSSBD1         : 1;
883                 unsigned PSSAC0         : 1;
884                 unsigned PSSAC1         : 1;
885                 unsigned ECCPAS0        : 1;
886                 unsigned ECCPAS1        : 1;
887                 unsigned ECCPAS2        : 1;
888                 unsigned ECCPASE        : 1;
889         };
890 } __ECCPASbits_t;
891 extern volatile __ECCPASbits_t __at (0xFB6) ECCPASbits;
892
893 extern __sfr __at (0xFB7) PWM1CON;
894 typedef union {
895         struct {
896                 unsigned PDC0           : 1;
897                 unsigned PDC1           : 1;
898                 unsigned PDC2           : 1;
899                 unsigned PDC3           : 1;
900                 unsigned PDC4           : 1;
901                 unsigned PDC5           : 1;
902                 unsigned PDC6           : 1;
903                 unsigned PRSEN          : 1;
904         };
905 } __PWM1CONbits_t;
906 extern volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits;
907
908 extern __sfr __at (0xFB8) BAUDCON;
909 typedef union {
910         struct {
911                 unsigned ABDEN          : 1;
912                 unsigned WUE            : 1;
913                 unsigned                : 1;
914                 unsigned BRG16          : 1;
915                 unsigned SCKP           : 1;
916                 unsigned                : 1;
917                 unsigned RCIDL          : 1;
918                 unsigned ABDOVF         : 1;
919         };
920         struct {
921                 unsigned                : 1;
922                 unsigned                : 1;
923                 unsigned                : 1;
924                 unsigned                : 1;
925                 unsigned                : 1;
926                 unsigned                : 1;
927                 unsigned RCMT           : 1;
928                 unsigned                : 1;
929         };
930 } __BAUDCONbits_t;
931 extern volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits;
932
933 extern __sfr __at (0xFB8) BAUDCTL;
934 typedef union {
935         struct {
936                 unsigned ABDEN          : 1;
937                 unsigned WUE            : 1;
938                 unsigned                : 1;
939                 unsigned BRG16          : 1;
940                 unsigned SCKP           : 1;
941                 unsigned                : 1;
942                 unsigned RCIDL          : 1;
943                 unsigned ABDOVF         : 1;
944         };
945         struct {
946                 unsigned                : 1;
947                 unsigned                : 1;
948                 unsigned                : 1;
949                 unsigned                : 1;
950                 unsigned                : 1;
951                 unsigned                : 1;
952                 unsigned RCMT           : 1;
953                 unsigned                : 1;
954         };
955 } __BAUDCTLbits_t;
956 extern volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits;
957
958 extern __sfr __at (0xFBA) CCP2CON;
959 typedef union {
960         struct {
961                 unsigned CCP2M0         : 1;
962                 unsigned CCP2M1         : 1;
963                 unsigned CCP2M2         : 1;
964                 unsigned CCP2M3         : 1;
965                 unsigned CCP2Y          : 1;
966                 unsigned CCP2X          : 1;
967                 unsigned                : 1;
968                 unsigned                : 1;
969         };
970         struct {
971                 unsigned                : 1;
972                 unsigned                : 1;
973                 unsigned                : 1;
974                 unsigned                : 1;
975                 unsigned DC2B0          : 1;
976                 unsigned DC2B1          : 1;
977                 unsigned                : 1;
978                 unsigned                : 1;
979         };
980 } __CCP2CONbits_t;
981 extern volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
982
983 extern __sfr __at (0xFBB) CCPR2;
984
985 extern __sfr __at (0xFBB) CCPR2L;
986
987 extern __sfr __at (0xFBC) CCPR2H;
988
989 extern __sfr __at (0xFBD) CCP1CON;
990 typedef union {
991         struct {
992                 unsigned CCP1M0         : 1;
993                 unsigned CCP1M1         : 1;
994                 unsigned CCP1M2         : 1;
995                 unsigned CCP1M3         : 1;
996                 unsigned CCP1Y          : 1;
997                 unsigned CCP1X          : 1;
998                 unsigned P1M0           : 1;
999                 unsigned P1M1           : 1;
1000         };
1001         struct {
1002                 unsigned                : 1;
1003                 unsigned                : 1;
1004                 unsigned                : 1;
1005                 unsigned                : 1;
1006                 unsigned DC1B0          : 1;
1007                 unsigned DC1B1          : 1;
1008                 unsigned                : 1;
1009                 unsigned                : 1;
1010         };
1011 } __CCP1CONbits_t;
1012 extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
1013
1014 extern __sfr __at (0xFBE) CCPR1;
1015
1016 extern __sfr __at (0xFBE) CCPR1L;
1017
1018 extern __sfr __at (0xFBF) CCPR1H;
1019
1020 extern __sfr __at (0xFC0) ADCON2;
1021 typedef union {
1022         struct {
1023                 unsigned ADCS0          : 1;
1024                 unsigned ADCS1          : 1;
1025                 unsigned ADCS2          : 1;
1026                 unsigned ACQT0          : 1;
1027                 unsigned ACQT1          : 1;
1028                 unsigned ACQT2          : 1;
1029                 unsigned                : 1;
1030                 unsigned ADFM           : 1;
1031         };
1032 } __ADCON2bits_t;
1033 extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;
1034
1035 extern __sfr __at (0xFC1) ADCON1;
1036 typedef union {
1037         struct {
1038                 unsigned PCFG0          : 1;
1039                 unsigned PCFG1          : 1;
1040                 unsigned PCFG2          : 1;
1041                 unsigned PCFG3          : 1;
1042                 unsigned VCFG0          : 1;
1043                 unsigned VCFG1          : 1;
1044                 unsigned                : 1;
1045                 unsigned                : 1;
1046         };
1047 } __ADCON1bits_t;
1048 extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
1049
1050 extern __sfr __at (0xFC2) ADCON0;
1051 typedef union {
1052         struct {
1053                 unsigned ADON           : 1;
1054                 unsigned GO             : 1;
1055                 unsigned CHS0           : 1;
1056                 unsigned CHS1           : 1;
1057                 unsigned CHS2           : 1;
1058                 unsigned CHS3           : 1;
1059                 unsigned                : 1;
1060                 unsigned                : 1;
1061         };
1062         struct {
1063                 unsigned                : 1;
1064                 unsigned DONE           : 1;
1065                 unsigned                : 1;
1066                 unsigned                : 1;
1067                 unsigned                : 1;
1068                 unsigned                : 1;
1069                 unsigned                : 1;
1070                 unsigned                : 1;
1071         };
1072         struct {
1073                 unsigned                : 1;
1074                 unsigned NOT_DONE       : 1;
1075                 unsigned                : 1;
1076                 unsigned                : 1;
1077                 unsigned                : 1;
1078                 unsigned                : 1;
1079                 unsigned                : 1;
1080                 unsigned                : 1;
1081         };
1082         struct {
1083                 unsigned                : 1;
1084                 unsigned GO_DONE        : 1;
1085                 unsigned                : 1;
1086                 unsigned                : 1;
1087                 unsigned                : 1;
1088                 unsigned                : 1;
1089                 unsigned                : 1;
1090                 unsigned                : 1;
1091         };
1092 } __ADCON0bits_t;
1093 extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
1094
1095 extern __sfr __at (0xFC3) ADRES;
1096
1097 extern __sfr __at (0xFC3) ADRESL;
1098
1099 extern __sfr __at (0xFC4) ADRESH;
1100
1101 extern __sfr __at (0xFC5) SSPCON2;
1102 typedef union {
1103         struct {
1104                 unsigned SEN            : 1;
1105                 unsigned RSEN           : 1;
1106                 unsigned PEN            : 1;
1107                 unsigned RCEN           : 1;
1108                 unsigned ACKEN          : 1;
1109                 unsigned ACKDT          : 1;
1110                 unsigned ACKSTAT        : 1;
1111                 unsigned GCEN           : 1;
1112         };
1113 } __SSPCON2bits_t;
1114 extern volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
1115
1116 extern __sfr __at (0xFC6) SSPCON1;
1117 typedef union {
1118         struct {
1119                 unsigned SSPM0          : 1;
1120                 unsigned SSPM1          : 1;
1121                 unsigned SSPM2          : 1;
1122                 unsigned SSPM3          : 1;
1123                 unsigned CKP            : 1;
1124                 unsigned SSPEN          : 1;
1125                 unsigned SSPOV          : 1;
1126                 unsigned WCOL           : 1;
1127         };
1128 } __SSPCON1bits_t;
1129 extern volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
1130
1131 extern __sfr __at (0xFC7) SSPSTAT;
1132 typedef union {
1133         struct {
1134                 unsigned BF             : 1;
1135                 unsigned UA             : 1;
1136                 unsigned R              : 1;
1137                 unsigned S              : 1;
1138                 unsigned P              : 1;
1139                 unsigned D              : 1;
1140                 unsigned CKE            : 1;
1141                 unsigned SMP            : 1;
1142         };
1143         struct {
1144                 unsigned                : 1;
1145                 unsigned                : 1;
1146                 unsigned NOT_W          : 1;
1147                 unsigned                : 1;
1148                 unsigned                : 1;
1149                 unsigned NOT_A          : 1;
1150                 unsigned                : 1;
1151                 unsigned                : 1;
1152         };
1153         struct {
1154                 unsigned                : 1;
1155                 unsigned                : 1;
1156                 unsigned R_W            : 1;
1157                 unsigned                : 1;
1158                 unsigned                : 1;
1159                 unsigned D_A            : 1;
1160                 unsigned                : 1;
1161                 unsigned                : 1;
1162         };
1163         struct {
1164                 unsigned                : 1;
1165                 unsigned                : 1;
1166                 unsigned NOT_WRITE      : 1;
1167                 unsigned                : 1;
1168                 unsigned                : 1;
1169                 unsigned NOT_ADDRESS    : 1;
1170                 unsigned                : 1;
1171                 unsigned                : 1;
1172         };
1173 } __SSPSTATbits_t;
1174 extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
1175
1176 extern __sfr __at (0xFC8) SSPADD;
1177
1178 extern __sfr __at (0xFC9) SSPBUF;
1179
1180 extern __sfr __at (0xFCA) T2CON;
1181 typedef union {
1182         struct {
1183                 unsigned T2CKPS0        : 1;
1184                 unsigned T2CKPS1        : 1;
1185                 unsigned TMR2ON         : 1;
1186                 unsigned T2OUTPS0       : 1;
1187                 unsigned T2OUTPS1       : 1;
1188                 unsigned T2OUTPS2       : 1;
1189                 unsigned T2OUTPS3       : 1;
1190                 unsigned                : 1;
1191         };
1192         struct {
1193                 unsigned                : 1;
1194                 unsigned                : 1;
1195                 unsigned                : 1;
1196                 unsigned TOUTPS0        : 1;
1197                 unsigned TOUTPS1        : 1;
1198                 unsigned TOUTPS2        : 1;
1199                 unsigned TOUTPS3        : 1;
1200                 unsigned                : 1;
1201         };
1202 } __T2CONbits_t;
1203 extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
1204
1205 extern __sfr __at (0xFCB) PR2;
1206
1207 extern __sfr __at (0xFCC) TMR2;
1208
1209 extern __sfr __at (0xFCD) T1CON;
1210 typedef union {
1211         struct {
1212                 unsigned TMR1ON         : 1;
1213                 unsigned TMR1CS         : 1;
1214                 unsigned T1SYNC         : 1;
1215                 unsigned T1OSCEN        : 1;
1216                 unsigned T1CKPS0        : 1;
1217                 unsigned T1CKPS1        : 1;
1218                 unsigned T1RUN          : 1;
1219                 unsigned RD16           : 1;
1220         };
1221         struct {
1222                 unsigned                : 1;
1223                 unsigned                : 1;
1224                 unsigned NOT_T1SYNC     : 1;
1225                 unsigned                : 1;
1226                 unsigned                : 1;
1227                 unsigned                : 1;
1228                 unsigned                : 1;
1229                 unsigned                : 1;
1230         };
1231 } __T1CONbits_t;
1232 extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
1233
1234 extern __sfr __at (0xFCE) TMR1L;
1235
1236 extern __sfr __at (0xFCF) TMR1H;
1237
1238 extern __sfr __at (0xFD0) RCON;
1239 typedef union {
1240         struct {
1241                 unsigned BOR            : 1;
1242                 unsigned POR            : 1;
1243                 unsigned PD             : 1;
1244                 unsigned TO             : 1;
1245                 unsigned RI             : 1;
1246                 unsigned                : 1;
1247                 unsigned SBOREN         : 1;
1248                 unsigned IPEN           : 1;
1249         };
1250         struct {
1251                 unsigned NOT_BOR        : 1;
1252                 unsigned NOT_POR        : 1;
1253                 unsigned NOT_PD         : 1;
1254                 unsigned NOT_TO         : 1;
1255                 unsigned NOT_RI         : 1;
1256                 unsigned                : 1;
1257                 unsigned                : 1;
1258                 unsigned                : 1;
1259         };
1260 } __RCONbits_t;
1261 extern volatile __RCONbits_t __at (0xFD0) RCONbits;
1262
1263 extern __sfr __at (0xFD1) WDTCON;
1264 typedef union {
1265         struct {
1266                 unsigned SWDTEN         : 1;
1267                 unsigned                : 1;
1268                 unsigned                : 1;
1269                 unsigned                : 1;
1270                 unsigned                : 1;
1271                 unsigned                : 1;
1272                 unsigned                : 1;
1273                 unsigned                : 1;
1274         };
1275         struct {
1276                 unsigned SWDTE          : 1;
1277                 unsigned                : 1;
1278                 unsigned                : 1;
1279                 unsigned                : 1;
1280                 unsigned                : 1;
1281                 unsigned                : 1;
1282                 unsigned                : 1;
1283                 unsigned                : 1;
1284         };
1285 } __WDTCONbits_t;
1286 extern volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;
1287
1288 extern __sfr __at (0xFD2) HLVDCON;
1289 typedef union {
1290         struct {
1291                 unsigned LVDL0          : 1;
1292                 unsigned LVDL1          : 1;
1293                 unsigned LVDL2          : 1;
1294                 unsigned LVDL3          : 1;
1295                 unsigned LVDEN          : 1;
1296                 unsigned IRVST          : 1;
1297                 unsigned                : 1;
1298                 unsigned VDIRMAG        : 1;
1299         };
1300         struct {
1301                 unsigned LVV0           : 1;
1302                 unsigned LVV1           : 1;
1303                 unsigned LVV2           : 1;
1304                 unsigned LVV3           : 1;
1305                 unsigned HLVDEN         : 1;
1306                 unsigned BGST           : 1;
1307                 unsigned                : 1;
1308                 unsigned                : 1;
1309         };
1310         struct {
1311                 unsigned HLVDL0         : 1;
1312                 unsigned HLVDL1         : 1;
1313                 unsigned HLVDL2         : 1;
1314                 unsigned HLVDL3         : 1;
1315                 unsigned                : 1;
1316                 unsigned IVRST          : 1;
1317                 unsigned                : 1;
1318                 unsigned                : 1;
1319         };
1320 } __HLVDCONbits_t;
1321 extern volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits;
1322
1323 extern __sfr __at (0xFD2) LVDCON;
1324 typedef union {
1325         struct {
1326                 unsigned LVDL0          : 1;
1327                 unsigned LVDL1          : 1;
1328                 unsigned LVDL2          : 1;
1329                 unsigned LVDL3          : 1;
1330                 unsigned LVDEN          : 1;
1331                 unsigned IRVST          : 1;
1332                 unsigned                : 1;
1333                 unsigned VDIRMAG        : 1;
1334         };
1335         struct {
1336                 unsigned LVV0           : 1;
1337                 unsigned LVV1           : 1;
1338                 unsigned LVV2           : 1;
1339                 unsigned LVV3           : 1;
1340                 unsigned HLVDEN         : 1;
1341                 unsigned BGST           : 1;
1342                 unsigned                : 1;
1343                 unsigned                : 1;
1344         };
1345         struct {
1346                 unsigned HLVDL0         : 1;
1347                 unsigned HLVDL1         : 1;
1348                 unsigned HLVDL2         : 1;
1349                 unsigned HLVDL3         : 1;
1350                 unsigned                : 1;
1351                 unsigned IVRST          : 1;
1352                 unsigned                : 1;
1353                 unsigned                : 1;
1354         };
1355 } __LVDCONbits_t;
1356 extern volatile __LVDCONbits_t __at (0xFD2) LVDCONbits;
1357
1358 extern __sfr __at (0xFD3) OSCCON;
1359 typedef union {
1360         struct {
1361                 unsigned SCS0           : 1;
1362                 unsigned SCS1           : 1;
1363                 unsigned FLTS           : 1;
1364                 unsigned OSTS           : 1;
1365                 unsigned IRCF0          : 1;
1366                 unsigned IRCF1          : 1;
1367                 unsigned IRCF2          : 1;
1368                 unsigned IDLEN          : 1;
1369         };
1370         struct {
1371                 unsigned                : 1;
1372                 unsigned                : 1;
1373                 unsigned IOFS           : 1;
1374                 unsigned                : 1;
1375                 unsigned                : 1;
1376                 unsigned                : 1;
1377                 unsigned                : 1;
1378                 unsigned                : 1;
1379         };
1380 } __OSCCONbits_t;
1381 extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
1382
1383 extern __sfr __at (0xFD5) T0CON;
1384 typedef union {
1385         struct {
1386                 unsigned T0PS0          : 1;
1387                 unsigned T0PS1          : 1;
1388                 unsigned T0PS2          : 1;
1389                 unsigned T0PS3          : 1;
1390                 unsigned T0SE           : 1;
1391                 unsigned T0CS           : 1;
1392                 unsigned T016BIT        : 1;
1393                 unsigned TMR0ON         : 1;
1394         };
1395         struct {
1396                 unsigned                : 1;
1397                 unsigned                : 1;
1398                 unsigned                : 1;
1399                 unsigned PSA            : 1;
1400                 unsigned                : 1;
1401                 unsigned                : 1;
1402                 unsigned T08BIT         : 1;
1403                 unsigned                : 1;
1404         };
1405 } __T0CONbits_t;
1406 extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
1407
1408 extern __sfr __at (0xFD6) TMR0L;
1409
1410 extern __sfr __at (0xFD7) TMR0H;
1411
1412 extern __sfr __at (0xFD8) STATUS;
1413 typedef union {
1414         struct {
1415                 unsigned C              : 1;
1416                 unsigned DC             : 1;
1417                 unsigned Z              : 1;
1418                 unsigned OV             : 1;
1419                 unsigned N              : 1;
1420                 unsigned                : 1;
1421                 unsigned                : 1;
1422                 unsigned                : 1;
1423         };
1424 } __STATUSbits_t;
1425 extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
1426
1427 extern __sfr __at (0xFD9) FSR2L;
1428
1429 extern __sfr __at (0xFDA) FSR2H;
1430
1431 extern __sfr __at (0xFDB) PLUSW2;
1432
1433 extern __sfr __at (0xFDC) PREINC2;
1434
1435 extern __sfr __at (0xFDD) POSTDEC2;
1436
1437 extern __sfr __at (0xFDE) POSTINC2;
1438
1439 extern __sfr __at (0xFDF) INDF2;
1440
1441 extern __sfr __at (0xFE0) BSR;
1442
1443 extern __sfr __at (0xFE1) FSR1L;
1444
1445 extern __sfr __at (0xFE2) FSR1H;
1446
1447 extern __sfr __at (0xFE3) PLUSW1;
1448
1449 extern __sfr __at (0xFE4) PREINC1;
1450
1451 extern __sfr __at (0xFE5) POSTDEC1;
1452
1453 extern __sfr __at (0xFE6) POSTINC1;
1454
1455 extern __sfr __at (0xFE7) INDF1;
1456
1457 extern __sfr __at (0xFE8) WREG;
1458
1459 extern __sfr __at (0xFE9) FSR0L;
1460
1461 extern __sfr __at (0xFEA) FSR0H;
1462
1463 extern __sfr __at (0xFEB) PLUSW0;
1464
1465 extern __sfr __at (0xFEC) PREINC0;
1466
1467 extern __sfr __at (0xFED) POSTDEC0;
1468
1469 extern __sfr __at (0xFEE) POSTINC0;
1470
1471 extern __sfr __at (0xFEF) INDF0;
1472
1473 extern __sfr __at (0xFF0) INTCON3;
1474 typedef union {
1475         struct {
1476                 unsigned INT1F          : 1;
1477                 unsigned INT2F          : 1;
1478                 unsigned                : 1;
1479                 unsigned INT1E          : 1;
1480                 unsigned INT2E          : 1;
1481                 unsigned                : 1;
1482                 unsigned INT1P          : 1;
1483                 unsigned INT2P          : 1;
1484         };
1485         struct {
1486                 unsigned INT1IF         : 1;
1487                 unsigned INT2IF         : 1;
1488                 unsigned                : 1;
1489                 unsigned INT1IE         : 1;
1490                 unsigned INT2IE         : 1;
1491                 unsigned                : 1;
1492                 unsigned INT1IP         : 1;
1493                 unsigned INT2IP         : 1;
1494         };
1495 } __INTCON3bits_t;
1496 extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
1497
1498 extern __sfr __at (0xFF1) INTCON2;
1499 typedef union {
1500         struct {
1501                 unsigned RBIP           : 1;
1502                 unsigned                : 1;
1503                 unsigned TMR0IP         : 1;
1504                 unsigned                : 1;
1505                 unsigned INTEDG2        : 1;
1506                 unsigned INTEDG1        : 1;
1507                 unsigned INTEDG0        : 1;
1508                 unsigned RBPU           : 1;
1509         };
1510         struct {
1511                 unsigned                : 1;
1512                 unsigned                : 1;
1513                 unsigned                : 1;
1514                 unsigned                : 1;
1515                 unsigned                : 1;
1516                 unsigned                : 1;
1517                 unsigned                : 1;
1518                 unsigned NOT_RBPU       : 1;
1519         };
1520 } __INTCON2bits_t;
1521 extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
1522
1523 extern __sfr __at (0xFF2) INTCON;
1524 typedef union {
1525         struct {
1526                 unsigned RBIF           : 1;
1527                 unsigned INT0F          : 1;
1528                 unsigned TMR0IF         : 1;
1529                 unsigned RBIE           : 1;
1530                 unsigned INT0E          : 1;
1531                 unsigned TMR0IE         : 1;
1532                 unsigned PEIE           : 1;
1533                 unsigned GIE            : 1;
1534         };
1535         struct {
1536                 unsigned                : 1;
1537                 unsigned INT0IF         : 1;
1538                 unsigned T0IF           : 1;
1539                 unsigned                : 1;
1540                 unsigned INT0IE         : 1;
1541                 unsigned T0IE           : 1;
1542                 unsigned GIEL           : 1;
1543                 unsigned GIEH           : 1;
1544         };
1545 } __INTCONbits_t;
1546 extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
1547
1548 extern __sfr __at (0xFF3) PROD;
1549
1550 extern __sfr __at (0xFF3) PRODL;
1551
1552 extern __sfr __at (0xFF4) PRODH;
1553
1554 extern __sfr __at (0xFF5) TABLAT;
1555
1556 extern __sfr __at (0xFF6) TBLPTR;
1557
1558 extern __sfr __at (0xFF6) TBLPTRL;
1559
1560 extern __sfr __at (0xFF7) TBLPTRH;
1561
1562 extern __sfr __at (0xFF8) TBLPTRU;
1563
1564 extern __sfr __at (0xFF9) PC;
1565
1566 extern __sfr __at (0xFF9) PCL;
1567
1568 extern __sfr __at (0xFFA) PCLATH;
1569
1570 extern __sfr __at (0xFFB) PCLATU;
1571
1572 extern __sfr __at (0xFFC) STKPTR;
1573 typedef union {
1574         struct {
1575                 unsigned SP0            : 1;
1576                 unsigned SP1            : 1;
1577                 unsigned SP2            : 1;
1578                 unsigned SP3            : 1;
1579                 unsigned SP4            : 1;
1580                 unsigned                : 1;
1581                 unsigned STKUNF         : 1;
1582                 unsigned STKFUL         : 1;
1583         };
1584         struct {
1585                 unsigned                : 1;
1586                 unsigned                : 1;
1587                 unsigned                : 1;
1588                 unsigned                : 1;
1589                 unsigned                : 1;
1590                 unsigned                : 1;
1591                 unsigned                : 1;
1592                 unsigned STKOVF         : 1;
1593         };
1594 } __STKPTRbits_t;
1595 extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
1596
1597 extern __sfr __at (0xFFD) TOS;
1598
1599 extern __sfr __at (0xFFD) TOSL;
1600
1601 extern __sfr __at (0xFFE) TOSH;
1602
1603 extern __sfr __at (0xFFF) TOSU;
1604
1605
1606 #endif
1607