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