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