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