Imported Upstream version 2.9.0
[debian/cc1111] / device / include / pic16 / pic18f4450.h
1 /*
2  * pic18f4450.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 __PIC18F4450_H__
12 #define __PIC18F4450_H__ 1
13
14
15
16 // Configuration Bits
17 #define __CONFIG1L              0x300000
18 #define __CONFIG1H              0x300001
19 #define __CONFIG2L              0x300002
20 #define __CONFIG2H              0x300003
21 #define __CONFIG3H              0x300005
22 #define __CONFIG4L              0x300006
23 #define __CONFIG5L              0x300008
24 #define __CONFIG5H              0x300009
25 #define __CONFIG6L              0x30000A
26 #define __CONFIG6H              0x30000B
27 #define __CONFIG7L              0x30000C
28 #define __CONFIG7H              0x30000D
29
30 // CONFIG1L Options
31 #define _PLLDIV_1_1L            0xF8     // No divide (4 MHz input)
32 #define _PLLDIV_2_1L            0xF9     // Divide by 2 (8 MHz input)
33 #define _PLLDIV_3_1L            0xFA     // Divide by 3 (12 MHz input)
34 #define _PLLDIV_4_1L            0xFB     // Divide by 4 (16 MHz input)
35 #define _PLLDIV_5_1L            0xFC     // Divide by 5 (20 MHz input)
36 #define _PLLDIV_6_1L            0xFD     // Divide by 6 (24 MHz input)
37 #define _PLLDIV_10_1L           0xFE     // Divide by 10 (40 MHz input)
38 #define _PLLDIV_12_1L           0xFF     // Divide by 12 (48 MHz input)
39 #define _CPUDIV_OSC1_PLL2_1L    0xE7     // [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
40 #define _CPUDIV_OSC2_PLL3_1L    0xEF     // [OSC1/OSC2 Src: /2][96 MHz PLL Src: /3]
41 #define _CPUDIV_OSC3_PLL4_1L    0xF7     // [OSC1/OSC2 Src: /3][96 MHz PLL Src: /4]
42 #define _CPUDIV_OSC4_PLL6_1L    0xFF     // [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
43 #define _USBDIV_1_1L            0xDF     // Clock source from OSC1/OSC2
44 #define _USBDIV_2_1L            0xFF     // Clock source from 96 MHz PLL/2
45
46 // CONFIG1H Options
47 #define _FOSC_XT_XT_1H          0xF0     // XT oscillator, XT used by USB
48 #define _FOSC_XTPLL_XT_1H       0xF2     // XT oscillator, PLL enabled, XT used by USB
49 #define _FOSC_ECIO_EC_1H        0xF4     // External clock, port function on RA6, EC used by USB
50 #define _FOSC_EC_EC_1H          0xF5     // External clock, CLKOUT on RA6, EC used by USB
51 #define _FOSC_ECPLLIO_EC_1H     0xF6     // External clock, PLL enabled, port function on RA6, EC used by USB
52 #define _FOSC_ECPLL_EC_1H       0xF7     // External clock, PLL enabled, CLKOUT on RA6, EC used by USB
53 #define _FOSC_INTOSCIO_EC_1H    0xF8     // Internal oscillator, port function on RA6, EC used by USB
54 #define _FOSC_INTOSC_EC_1H      0xF9     // Internal oscillator, CLKOUT on RA6, EC used by USB
55 #define _FOSC_INTOSC_XT_1H      0xFA     // Internal oscillator, XT used by USB
56 #define _FOSC_INTOSC_HS_1H      0xFB     // Internal oscillator, HS used by USB
57 #define _FOSC_HS_1H             0xFC     // HS oscillator, HS used by USB
58 #define _FOSC_HSPLL_HS_1H       0xFE     // HS oscillator, PLL enabled, HS used by USB
59 #define _FCMEM_OFF_1H           0xBF     // Disabled
60 #define _FCMEM_ON_1H            0xFF     // Enabled
61 #define _IESO_OFF_1H            0x7F     // Disabled
62 #define _IESO_ON_1H             0xFF     // Enabled
63
64 // CONFIG2L Options
65 #define _PWRT_ON_2L             0xFE     // Enabled
66 #define _PWRT_OFF_2L            0xFF     // Disabled
67 #define _BOR_OFF_2L             0xF9     // Disabled
68 #define _BOR_SOFT_2L            0xFB     // Controlled by SBOREN
69 #define _BOR_ON_ACTIVE_2L       0xFD     // Enabled when the device is not in Sleep, SBOREN bit is disabled
70 #define _BOR_ON_2L              0xFF     // Enabled, SBOREN bit is disabled
71 #define _BORV_46_2L             0xE7     // 4.6V
72 #define _BORV_43_2L             0xEF     // 4.3V
73 #define _BORV_28_2L             0xF7     // 2.8V
74 #define _BORV_21_2L             0xFF     // 2.1V
75 #define _VREGEN_OFF_2L          0xDF     // Disabled
76 #define _VREGEN_ON_2L           0xFF     // Enabled
77
78 // CONFIG2H Options
79 #define _WDT_OFF_2H             0xFE     // HW Disabled - SW Controlled
80 #define _WDT_ON_2H              0xFF     // HW Enabled - SW Disabled
81 #define _WDTPS_1_2H             0xE1     // 1:1
82 #define _WDTPS_2_2H             0xE3     // 1:2
83 #define _WDTPS_4_2H             0xE5     // 1:4
84 #define _WDTPS_8_2H             0xE7     // 1:8
85 #define _WDTPS_16_2H            0xE9     // 1:16
86 #define _WDTPS_32_2H            0xEB     // 1:32
87 #define _WDTPS_64_2H            0xED     // 1:64
88 #define _WDTPS_128_2H           0xEF     // 1:128
89 #define _WDTPS_256_2H           0xF1     // 1:256
90 #define _WDTPS_512_2H           0xF3     // 1:512
91 #define _WDTPS_1024_2H          0xF5     // 1:1024
92 #define _WDTPS_2048_2H          0xF7     // 1:2048
93 #define _WDTPS_4096_2H          0xF9     // 1:4096
94 #define _WDTPS_8192_2H          0xFB     // 1:8192
95 #define _WDTPS_16384_2H         0xFD     // 1:16384
96 #define _WDTPS_32768_2H         0xFF     // 1:32768
97
98 // CONFIG3H Options
99 #define _MCLRE_OFF_3H           0x7F     // Disabled
100 #define _MCLRE_ON_3H            0xFF     // Enabled
101 #define _LPT1OSC_OFF_3H         0xFB     // Timer1 oscillator configured for high power
102 #define _LPT1OSC_ON_3H          0xFF     // Timer1 oscillator configured for low power
103 #define _PBADEN_OFF_3H          0xFD     // PORTB<4:0> pins are configured as digital I/O on Reset
104 #define _PBADEN_ON_3H           0xFF     // PORTB<4:0> pins are configured as analog input on Reset
105
106 // CONFIG4L Options
107 #define _STVREN_OFF_4L          0xFE     // Disabled
108 #define _STVREN_ON_4L           0xFF     // Enabled
109 #define _LVP_OFF_4L             0xFB     // Disabled
110 #define _LVP_ON_4L              0xFF     // Enabled
111 #define _BBSIZ_BB2K_4L          0xF7     // 2KW Boot Block Size
112 #define _BBSIZ_BB1K_4L          0xFF     // 1KW Boot Block Size
113 #define _ICPRT_OFF_4L           0xDF     // Disabled
114 #define _ICPRT_ON_4L            0xFF     // Enabled
115 #define _XINST_OFF_4L           0xBF     // Disabled
116 #define _XINST_ON_4L            0xFF     // Enabled
117 #define _DEBUG_ON_4L            0x7F     // Enabled
118 #define _DEBUG_OFF_4L           0xFF     // Disabled
119
120 // CONFIG5L Options
121 #define _CP0_ON_5L              0xFE     // Enabled
122 #define _CP0_OFF_5L             0xFF     // Disabled
123 #define _CP1_ON_5L              0xFD     // Enabled
124 #define _CP1_OFF_5L             0xFF     // Disabled
125
126 // CONFIG5H Options
127 #define _CPB_ON_5H              0xBF     // Enabled
128 #define _CPB_OFF_5H             0xFF     // Disabled
129
130 // CONFIG6L Options
131 #define _WRT0_ON_6L             0xFE     // Enabled
132 #define _WRT0_OFF_6L            0xFF     // Disabled
133 #define _WRT1_ON_6L             0xFD     // Enabled
134 #define _WRT1_OFF_6L            0xFF     // Disabled
135
136 // CONFIG6H Options
137 #define _WRTB_ON_6H             0xBF     // Enabled
138 #define _WRTB_OFF_6H            0xFF     // Disabled
139 #define _WRTC_ON_6H             0xDF     // Enabled
140 #define _WRTC_OFF_6H            0xFF     // Disabled
141
142 // CONFIG7L Options
143 #define _EBTR0_ON_7L            0xFE     // Enabled
144 #define _EBTR0_OFF_7L           0xFF     // Disabled
145 #define _EBTR1_ON_7L            0xFD     // Enabled
146 #define _EBTR1_OFF_7L           0xFF     // Disabled
147
148 // CONFIG7H Options
149 #define _EBTRB_ON_7H            0xBF     // Enabled
150 #define _EBTRB_OFF_7H           0xFF     // Disabled
151 #define _DEVID1                 0x3FFFFE
152 #define _DEVID2                 0x3FFFFF
153 #define _IDLOC0                 0x200000
154 #define _IDLOC1                 0x200001
155 #define _IDLOC2                 0x200002
156 #define _IDLOC3                 0x200003
157 #define _IDLOC4                 0x200004
158 #define _IDLOC5                 0x200005
159 #define _IDLOC6                 0x200006
160 #define _IDLOC7                 0x200007
161
162 extern __sfr __at (0xF66) UFRM;
163
164 extern __sfr __at (0xF66) UFRML;
165
166 extern __sfr __at (0xF67) UFRMH;
167
168 extern __sfr __at (0xF68) UIR;
169 typedef union {
170         struct {
171                 unsigned URSTIF         : 1;
172                 unsigned UERRIF         : 1;
173                 unsigned ACTVIF         : 1;
174                 unsigned TRNIF          : 1;
175                 unsigned IDLEIF         : 1;
176                 unsigned STALLIF        : 1;
177                 unsigned SOFIF          : 1;
178                 unsigned                : 1;
179         };
180 } __UIRbits_t;
181 extern volatile __UIRbits_t __at (0xF68) UIRbits;
182
183 extern __sfr __at (0xF69) UIE;
184 typedef union {
185         struct {
186                 unsigned URSTIE         : 1;
187                 unsigned UERRIE         : 1;
188                 unsigned ACTVIE         : 1;
189                 unsigned TRNIE          : 1;
190                 unsigned IDLEIE         : 1;
191                 unsigned STALLIE        : 1;
192                 unsigned SOFIE          : 1;
193                 unsigned                : 1;
194         };
195 } __UIEbits_t;
196 extern volatile __UIEbits_t __at (0xF69) UIEbits;
197
198 extern __sfr __at (0xF6A) UEIR;
199 typedef union {
200         struct {
201                 unsigned PIDEF          : 1;
202                 unsigned CRC5EF         : 1;
203                 unsigned CRC16EF        : 1;
204                 unsigned DFN8EF         : 1;
205                 unsigned BTOEF          : 1;
206                 unsigned                : 1;
207                 unsigned                : 1;
208                 unsigned BTSEF          : 1;
209         };
210 } __UEIRbits_t;
211 extern volatile __UEIRbits_t __at (0xF6A) UEIRbits;
212
213 extern __sfr __at (0xF6B) UEIE;
214 typedef union {
215         struct {
216                 unsigned PIDEE          : 1;
217                 unsigned CRC5EE         : 1;
218                 unsigned CRC16EE        : 1;
219                 unsigned DFN8EE         : 1;
220                 unsigned BTOEE          : 1;
221                 unsigned                : 1;
222                 unsigned                : 1;
223                 unsigned BTSEE          : 1;
224         };
225 } __UEIEbits_t;
226 extern volatile __UEIEbits_t __at (0xF6B) UEIEbits;
227
228 extern __sfr __at (0xF6C) USTAT;
229 typedef union {
230         struct {
231                 unsigned                : 1;
232                 unsigned PPBI           : 1;
233                 unsigned DIR            : 1;
234                 unsigned ENDP0          : 1;
235                 unsigned ENDP1          : 1;
236                 unsigned ENDP2          : 1;
237                 unsigned ENDP3          : 1;
238                 unsigned                : 1;
239         };
240 } __USTATbits_t;
241 extern volatile __USTATbits_t __at (0xF6C) USTATbits;
242
243 extern __sfr __at (0xF6D) UCON;
244 typedef union {
245         struct {
246                 unsigned                : 1;
247                 unsigned SUSPND         : 1;
248                 unsigned RESUME         : 1;
249                 unsigned USBEN          : 1;
250                 unsigned PKTDIS         : 1;
251                 unsigned SE0            : 1;
252                 unsigned PPBRST         : 1;
253                 unsigned                : 1;
254         };
255 } __UCONbits_t;
256 extern volatile __UCONbits_t __at (0xF6D) UCONbits;
257
258 extern __sfr __at (0xF6E) UADDR;
259 typedef union {
260         struct {
261                 unsigned ADDR0          : 1;
262                 unsigned ADDR1          : 1;
263                 unsigned ADDR2          : 1;
264                 unsigned ADDR3          : 1;
265                 unsigned ADDR4          : 1;
266                 unsigned ADDR5          : 1;
267                 unsigned ADDR6          : 1;
268                 unsigned                : 1;
269         };
270 } __UADDRbits_t;
271 extern volatile __UADDRbits_t __at (0xF6E) UADDRbits;
272
273 extern __sfr __at (0xF6F) UCFG;
274 typedef union {
275         struct {
276                 unsigned PPB0           : 1;
277                 unsigned PPB1           : 1;
278                 unsigned FSEN           : 1;
279                 unsigned UTRDIS         : 1;
280                 unsigned UPUEN          : 1;
281                 unsigned                : 1;
282                 unsigned UOEMON         : 1;
283                 unsigned UTEYE          : 1;
284         };
285 } __UCFGbits_t;
286 extern volatile __UCFGbits_t __at (0xF6F) UCFGbits;
287
288 extern __sfr __at (0xF70) UEP0;
289 typedef union {
290         struct {
291                 unsigned EPSTALL        : 1;
292                 unsigned EPINEN         : 1;
293                 unsigned EPOUTEN        : 1;
294                 unsigned EPCONDIS       : 1;
295                 unsigned EPHSHK         : 1;
296                 unsigned                : 1;
297                 unsigned                : 1;
298                 unsigned                : 1;
299         };
300 } __UEP0bits_t;
301 extern volatile __UEP0bits_t __at (0xF70) UEP0bits;
302
303 extern __sfr __at (0xF71) UEP1;
304 typedef union {
305         struct {
306                 unsigned EPSTALL        : 1;
307                 unsigned EPINEN         : 1;
308                 unsigned EPOUTEN        : 1;
309                 unsigned EPCONDIS       : 1;
310                 unsigned EPHSHK         : 1;
311                 unsigned                : 1;
312                 unsigned                : 1;
313                 unsigned                : 1;
314         };
315 } __UEP1bits_t;
316 extern volatile __UEP1bits_t __at (0xF71) UEP1bits;
317
318 extern __sfr __at (0xF72) UEP2;
319 typedef union {
320         struct {
321                 unsigned EPSTALL        : 1;
322                 unsigned EPINEN         : 1;
323                 unsigned EPOUTEN        : 1;
324                 unsigned EPCONDIS       : 1;
325                 unsigned EPHSHK         : 1;
326                 unsigned                : 1;
327                 unsigned                : 1;
328                 unsigned                : 1;
329         };
330 } __UEP2bits_t;
331 extern volatile __UEP2bits_t __at (0xF72) UEP2bits;
332
333 extern __sfr __at (0xF73) UEP3;
334 typedef union {
335         struct {
336                 unsigned EPSTALL        : 1;
337                 unsigned EPINEN         : 1;
338                 unsigned EPOUTEN        : 1;
339                 unsigned EPCONDIS       : 1;
340                 unsigned EPHSHK         : 1;
341                 unsigned                : 1;
342                 unsigned                : 1;
343                 unsigned                : 1;
344         };
345 } __UEP3bits_t;
346 extern volatile __UEP3bits_t __at (0xF73) UEP3bits;
347
348 extern __sfr __at (0xF74) UEP4;
349 typedef union {
350         struct {
351                 unsigned EPSTALL        : 1;
352                 unsigned EPINEN         : 1;
353                 unsigned EPOUTEN        : 1;
354                 unsigned EPCONDIS       : 1;
355                 unsigned EPHSHK         : 1;
356                 unsigned                : 1;
357                 unsigned                : 1;
358                 unsigned                : 1;
359         };
360 } __UEP4bits_t;
361 extern volatile __UEP4bits_t __at (0xF74) UEP4bits;
362
363 extern __sfr __at (0xF75) UEP5;
364 typedef union {
365         struct {
366                 unsigned EPSTALL        : 1;
367                 unsigned EPINEN         : 1;
368                 unsigned EPOUTEN        : 1;
369                 unsigned EPCONDIS       : 1;
370                 unsigned EPHSHK         : 1;
371                 unsigned                : 1;
372                 unsigned                : 1;
373                 unsigned                : 1;
374         };
375 } __UEP5bits_t;
376 extern volatile __UEP5bits_t __at (0xF75) UEP5bits;
377
378 extern __sfr __at (0xF76) UEP6;
379 typedef union {
380         struct {
381                 unsigned EPSTALL        : 1;
382                 unsigned EPINEN         : 1;
383                 unsigned EPOUTEN        : 1;
384                 unsigned EPCONDIS       : 1;
385                 unsigned EPHSHK         : 1;
386                 unsigned                : 1;
387                 unsigned                : 1;
388                 unsigned                : 1;
389         };
390 } __UEP6bits_t;
391 extern volatile __UEP6bits_t __at (0xF76) UEP6bits;
392
393 extern __sfr __at (0xF77) UEP7;
394 typedef union {
395         struct {
396                 unsigned EPSTALL        : 1;
397                 unsigned EPINEN         : 1;
398                 unsigned EPOUTEN        : 1;
399                 unsigned EPCONDIS       : 1;
400                 unsigned EPHSHK         : 1;
401                 unsigned                : 1;
402                 unsigned                : 1;
403                 unsigned                : 1;
404         };
405 } __UEP7bits_t;
406 extern volatile __UEP7bits_t __at (0xF77) UEP7bits;
407
408 extern __sfr __at (0xF78) UEP8;
409 typedef union {
410         struct {
411                 unsigned EPSTALL        : 1;
412                 unsigned EPINEN         : 1;
413                 unsigned EPOUTEN        : 1;
414                 unsigned EPCONDIS       : 1;
415                 unsigned EPHSHK         : 1;
416                 unsigned                : 1;
417                 unsigned                : 1;
418                 unsigned                : 1;
419         };
420 } __UEP8bits_t;
421 extern volatile __UEP8bits_t __at (0xF78) UEP8bits;
422
423 extern __sfr __at (0xF79) UEP9;
424 typedef union {
425         struct {
426                 unsigned EPSTALL        : 1;
427                 unsigned EPINEN         : 1;
428                 unsigned EPOUTEN        : 1;
429                 unsigned EPCONDIS       : 1;
430                 unsigned EPHSHK         : 1;
431                 unsigned                : 1;
432                 unsigned                : 1;
433                 unsigned                : 1;
434         };
435 } __UEP9bits_t;
436 extern volatile __UEP9bits_t __at (0xF79) UEP9bits;
437
438 extern __sfr __at (0xF7A) UEP10;
439 typedef union {
440         struct {
441                 unsigned EPSTALL        : 1;
442                 unsigned EPINEN         : 1;
443                 unsigned EPOUTEN        : 1;
444                 unsigned EPCONDIS       : 1;
445                 unsigned EPHSHK         : 1;
446                 unsigned                : 1;
447                 unsigned                : 1;
448                 unsigned                : 1;
449         };
450 } __UEP10bits_t;
451 extern volatile __UEP10bits_t __at (0xF7A) UEP10bits;
452
453 extern __sfr __at (0xF7B) UEP11;
454 typedef union {
455         struct {
456                 unsigned EPSTALL        : 1;
457                 unsigned EPINEN         : 1;
458                 unsigned EPOUTEN        : 1;
459                 unsigned EPCONDIS       : 1;
460                 unsigned EPHSHK         : 1;
461                 unsigned                : 1;
462                 unsigned                : 1;
463                 unsigned                : 1;
464         };
465 } __UEP11bits_t;
466 extern volatile __UEP11bits_t __at (0xF7B) UEP11bits;
467
468 extern __sfr __at (0xF7C) UEP12;
469 typedef union {
470         struct {
471                 unsigned EPSTALL        : 1;
472                 unsigned EPINEN         : 1;
473                 unsigned EPOUTEN        : 1;
474                 unsigned EPCONDIS       : 1;
475                 unsigned EPHSHK         : 1;
476                 unsigned                : 1;
477                 unsigned                : 1;
478                 unsigned                : 1;
479         };
480 } __UEP12bits_t;
481 extern volatile __UEP12bits_t __at (0xF7C) UEP12bits;
482
483 extern __sfr __at (0xF7D) UEP13;
484 typedef union {
485         struct {
486                 unsigned EPSTALL        : 1;
487                 unsigned EPINEN         : 1;
488                 unsigned EPOUTEN        : 1;
489                 unsigned EPCONDIS       : 1;
490                 unsigned EPHSHK         : 1;
491                 unsigned                : 1;
492                 unsigned                : 1;
493                 unsigned                : 1;
494         };
495 } __UEP13bits_t;
496 extern volatile __UEP13bits_t __at (0xF7D) UEP13bits;
497
498 extern __sfr __at (0xF7E) UEP14;
499 typedef union {
500         struct {
501                 unsigned EPSTALL        : 1;
502                 unsigned EPINEN         : 1;
503                 unsigned EPOUTEN        : 1;
504                 unsigned EPCONDIS       : 1;
505                 unsigned EPHSHK         : 1;
506                 unsigned                : 1;
507                 unsigned                : 1;
508                 unsigned                : 1;
509         };
510 } __UEP14bits_t;
511 extern volatile __UEP14bits_t __at (0xF7E) UEP14bits;
512
513 extern __sfr __at (0xF7F) UEP15;
514 typedef union {
515         struct {
516                 unsigned EPSTALL        : 1;
517                 unsigned EPINEN         : 1;
518                 unsigned EPOUTEN        : 1;
519                 unsigned EPCONDIS       : 1;
520                 unsigned EPHSHK         : 1;
521                 unsigned                : 1;
522                 unsigned                : 1;
523                 unsigned                : 1;
524         };
525 } __UEP15bits_t;
526 extern volatile __UEP15bits_t __at (0xF7F) UEP15bits;
527
528 extern __sfr __at (0xF80) PORTA;
529 typedef union {
530         struct {
531                 unsigned RA0            : 1;
532                 unsigned RA1            : 1;
533                 unsigned RA2            : 1;
534                 unsigned RA3            : 1;
535                 unsigned RA4            : 1;
536                 unsigned RA5            : 1;
537                 unsigned RA6            : 1;
538                 unsigned                : 1;
539         };
540         struct {
541                 unsigned AN0            : 1;
542                 unsigned AN1            : 1;
543                 unsigned AN2            : 1;
544                 unsigned AN3            : 1;
545                 unsigned T0CKI          : 1;
546                 unsigned AN4            : 1;
547                 unsigned OSC2           : 1;
548                 unsigned                : 1;
549         };
550         struct {
551                 unsigned                : 1;
552                 unsigned                : 1;
553                 unsigned VREFM          : 1;
554                 unsigned VREFP          : 1;
555                 unsigned RCV            : 1;
556                 unsigned LVDIN          : 1;
557                 unsigned                : 1;
558                 unsigned                : 1;
559         };
560         struct {
561                 unsigned                : 1;
562                 unsigned                : 1;
563                 unsigned                : 1;
564                 unsigned                : 1;
565                 unsigned                : 1;
566                 unsigned HLVDIN         : 1;
567                 unsigned                : 1;
568                 unsigned                : 1;
569         };
570 } __PORTAbits_t;
571 extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
572
573 extern __sfr __at (0xF81) PORTB;
574 typedef union {
575         struct {
576                 unsigned RB0            : 1;
577                 unsigned RB1            : 1;
578                 unsigned RB2            : 1;
579                 unsigned RB3            : 1;
580                 unsigned RB4            : 1;
581                 unsigned RB5            : 1;
582                 unsigned RB6            : 1;
583                 unsigned RB7            : 1;
584         };
585         struct {
586                 unsigned INT0           : 1;
587                 unsigned INT1           : 1;
588                 unsigned INT2           : 1;
589                 unsigned AN9            : 1;
590                 unsigned AN11           : 1;
591                 unsigned PGM            : 1;
592                 unsigned PGC            : 1;
593                 unsigned PGD            : 1;
594         };
595         struct {
596                 unsigned AN12           : 1;
597                 unsigned AN10           : 1;
598                 unsigned AN8            : 1;
599                 unsigned VPO            : 1;
600                 unsigned KBI0           : 1;
601                 unsigned KBI1           : 1;
602                 unsigned KBI2           : 1;
603                 unsigned KBI3           : 1;
604         };
605         struct {
606                 unsigned                : 1;
607                 unsigned                : 1;
608                 unsigned VMO            : 1;
609                 unsigned                : 1;
610                 unsigned                : 1;
611                 unsigned                : 1;
612                 unsigned                : 1;
613                 unsigned                : 1;
614         };
615 } __PORTBbits_t;
616 extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
617
618 extern __sfr __at (0xF82) PORTC;
619 typedef union {
620         struct {
621                 unsigned RC0            : 1;
622                 unsigned RC1            : 1;
623                 unsigned RC2            : 1;
624                 unsigned                : 1;
625                 unsigned RC4            : 1;
626                 unsigned RC5            : 1;
627                 unsigned RC6            : 1;
628                 unsigned RC7            : 1;
629         };
630         struct {
631                 unsigned T1OSO          : 1;
632                 unsigned T1OSI          : 1;
633                 unsigned CCP1           : 1;
634                 unsigned                : 1;
635                 unsigned                : 1;
636                 unsigned                : 1;
637                 unsigned TX             : 1;
638                 unsigned RX             : 1;
639         };
640         struct {
641                 unsigned T1CKI          : 1;
642                 unsigned NOT_UOE        : 1;
643                 unsigned P1A            : 1;
644                 unsigned                : 1;
645                 unsigned                : 1;
646                 unsigned                : 1;
647                 unsigned CK             : 1;
648                 unsigned DT             : 1;
649         };
650         struct {
651                 unsigned                : 1;
652                 unsigned UOE            : 1;
653                 unsigned                : 1;
654                 unsigned                : 1;
655                 unsigned                : 1;
656                 unsigned                : 1;
657                 unsigned                : 1;
658                 unsigned                : 1;
659         };
660 } __PORTCbits_t;
661 extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
662
663 extern __sfr __at (0xF83) PORTD;
664 typedef union {
665         struct {
666                 unsigned RD0            : 1;
667                 unsigned RD1            : 1;
668                 unsigned RD2            : 1;
669                 unsigned RD3            : 1;
670                 unsigned RD4            : 1;
671                 unsigned RD5            : 1;
672                 unsigned RD6            : 1;
673                 unsigned RD7            : 1;
674         };
675 } __PORTDbits_t;
676 extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
677
678 extern __sfr __at (0xF84) PORTE;
679 typedef union {
680         struct {
681                 unsigned RE0            : 1;
682                 unsigned RE1            : 1;
683                 unsigned RE2            : 1;
684                 unsigned RE3            : 1;
685                 unsigned                : 1;
686                 unsigned                : 1;
687                 unsigned                : 1;
688                 unsigned                : 1;
689         };
690         struct {
691                 unsigned AN5            : 1;
692                 unsigned AN6            : 1;
693                 unsigned AN7            : 1;
694                 unsigned                : 1;
695                 unsigned                : 1;
696                 unsigned                : 1;
697                 unsigned                : 1;
698                 unsigned                : 1;
699         };
700 } __PORTEbits_t;
701 extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
702
703 extern __sfr __at (0xF89) LATA;
704 typedef union {
705         struct {
706                 unsigned LATA0          : 1;
707                 unsigned LATA1          : 1;
708                 unsigned LATA2          : 1;
709                 unsigned LATA3          : 1;
710                 unsigned LATA4          : 1;
711                 unsigned LATA5          : 1;
712                 unsigned LATA6          : 1;
713                 unsigned                : 1;
714         };
715 } __LATAbits_t;
716 extern volatile __LATAbits_t __at (0xF89) LATAbits;
717
718 extern __sfr __at (0xF8A) LATB;
719 typedef union {
720         struct {
721                 unsigned LATB0          : 1;
722                 unsigned LATB1          : 1;
723                 unsigned LATB2          : 1;
724                 unsigned LATB3          : 1;
725                 unsigned LATB4          : 1;
726                 unsigned LATB5          : 1;
727                 unsigned LATB6          : 1;
728                 unsigned LATB7          : 1;
729         };
730 } __LATBbits_t;
731 extern volatile __LATBbits_t __at (0xF8A) LATBbits;
732
733 extern __sfr __at (0xF8B) LATC;
734 typedef union {
735         struct {
736                 unsigned LATC0          : 1;
737                 unsigned LATC1          : 1;
738                 unsigned LATC2          : 1;
739                 unsigned                : 1;
740                 unsigned                : 1;
741                 unsigned                : 1;
742                 unsigned LATC6          : 1;
743                 unsigned LATC7          : 1;
744         };
745 } __LATCbits_t;
746 extern volatile __LATCbits_t __at (0xF8B) LATCbits;
747
748 extern __sfr __at (0xF8C) LATD;
749 typedef union {
750         struct {
751                 unsigned LATD0          : 1;
752                 unsigned LATD1          : 1;
753                 unsigned LATD2          : 1;
754                 unsigned LATD3          : 1;
755                 unsigned LATD4          : 1;
756                 unsigned LATD5          : 1;
757                 unsigned LATD6          : 1;
758                 unsigned LATD7          : 1;
759         };
760 } __LATDbits_t;
761 extern volatile __LATDbits_t __at (0xF8C) LATDbits;
762
763 extern __sfr __at (0xF8D) LATE;
764 typedef union {
765         struct {
766                 unsigned LATE0          : 1;
767                 unsigned LATE1          : 1;
768                 unsigned LATE2          : 1;
769                 unsigned                : 1;
770                 unsigned                : 1;
771                 unsigned                : 1;
772                 unsigned                : 1;
773                 unsigned                : 1;
774         };
775 } __LATEbits_t;
776 extern volatile __LATEbits_t __at (0xF8D) LATEbits;
777
778 extern __sfr __at (0xF92) DDRA;
779 typedef union {
780         struct {
781                 unsigned RA0            : 1;
782                 unsigned RA1            : 1;
783                 unsigned RA2            : 1;
784                 unsigned RA3            : 1;
785                 unsigned RA4            : 1;
786                 unsigned RA5            : 1;
787                 unsigned RA6            : 1;
788                 unsigned                : 1;
789         };
790 } __DDRAbits_t;
791 extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
792
793 extern __sfr __at (0xF92) TRISA;
794 typedef union {
795         struct {
796                 unsigned TRISA0         : 1;
797                 unsigned TRISA1         : 1;
798                 unsigned TRISA2         : 1;
799                 unsigned TRISA3         : 1;
800                 unsigned TRISA4         : 1;
801                 unsigned TRISA5         : 1;
802                 unsigned TRISA6         : 1;
803                 unsigned                : 1;
804         };
805 } __TRISAbits_t;
806 extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
807
808 extern __sfr __at (0xF93) DDRB;
809 typedef union {
810         struct {
811                 unsigned RB0            : 1;
812                 unsigned RB1            : 1;
813                 unsigned RB2            : 1;
814                 unsigned RB3            : 1;
815                 unsigned RB4            : 1;
816                 unsigned RB5            : 1;
817                 unsigned RB6            : 1;
818                 unsigned RB7            : 1;
819         };
820 } __DDRBbits_t;
821 extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
822
823 extern __sfr __at (0xF93) TRISB;
824 typedef union {
825         struct {
826                 unsigned TRISB0         : 1;
827                 unsigned TRISB1         : 1;
828                 unsigned TRISB2         : 1;
829                 unsigned TRISB3         : 1;
830                 unsigned TRISB4         : 1;
831                 unsigned TRISB5         : 1;
832                 unsigned TRISB6         : 1;
833                 unsigned TRISB7         : 1;
834         };
835 } __TRISBbits_t;
836 extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
837
838 extern __sfr __at (0xF94) DDRC;
839 typedef union {
840         struct {
841                 unsigned RC0            : 1;
842                 unsigned RC1            : 1;
843                 unsigned RC2            : 1;
844                 unsigned                : 1;
845                 unsigned                : 1;
846                 unsigned                : 1;
847                 unsigned RC6            : 1;
848                 unsigned RC7            : 1;
849         };
850 } __DDRCbits_t;
851 extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
852
853 extern __sfr __at (0xF94) TRISC;
854 typedef union {
855         struct {
856                 unsigned TRISC0         : 1;
857                 unsigned TRISC1         : 1;
858                 unsigned TRISC2         : 1;
859                 unsigned                : 1;
860                 unsigned                : 1;
861                 unsigned                : 1;
862                 unsigned TRISC6         : 1;
863                 unsigned TRISC7         : 1;
864         };
865 } __TRISCbits_t;
866 extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
867
868 extern __sfr __at (0xF95) DDRD;
869 typedef union {
870         struct {
871                 unsigned RD0            : 1;
872                 unsigned RD1            : 1;
873                 unsigned RD2            : 1;
874                 unsigned RD3            : 1;
875                 unsigned RD4            : 1;
876                 unsigned RD5            : 1;
877                 unsigned RD6            : 1;
878                 unsigned RD7            : 1;
879         };
880 } __DDRDbits_t;
881 extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
882
883 extern __sfr __at (0xF95) TRISD;
884 typedef union {
885         struct {
886                 unsigned TRISD0         : 1;
887                 unsigned TRISD1         : 1;
888                 unsigned TRISD2         : 1;
889                 unsigned TRISD3         : 1;
890                 unsigned TRISD4         : 1;
891                 unsigned TRISD5         : 1;
892                 unsigned TRISD6         : 1;
893                 unsigned TRISD7         : 1;
894         };
895 } __TRISDbits_t;
896 extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
897
898 extern __sfr __at (0xF96) DDRE;
899 typedef union {
900         struct {
901                 unsigned RE0            : 1;
902                 unsigned RE1            : 1;
903                 unsigned RE2            : 1;
904                 unsigned                : 1;
905                 unsigned                : 1;
906                 unsigned                : 1;
907                 unsigned                : 1;
908                 unsigned                : 1;
909         };
910 } __DDREbits_t;
911 extern volatile __DDREbits_t __at (0xF96) DDREbits;
912
913 extern __sfr __at (0xF96) TRISE;
914 typedef union {
915         struct {
916                 unsigned TRISE0         : 1;
917                 unsigned TRISE1         : 1;
918                 unsigned TRISE2         : 1;
919                 unsigned                : 1;
920                 unsigned                : 1;
921                 unsigned                : 1;
922                 unsigned                : 1;
923                 unsigned                : 1;
924         };
925 } __TRISEbits_t;
926 extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
927
928 extern __sfr __at (0xF9D) PIE1;
929 typedef union {
930         struct {
931                 unsigned TMR1IE         : 1;
932                 unsigned TMR2IE         : 1;
933                 unsigned CCP1IE         : 1;
934                 unsigned                : 1;
935                 unsigned TXIE           : 1;
936                 unsigned RCIE           : 1;
937                 unsigned ADIE           : 1;
938                 unsigned                : 1;
939         };
940 } __PIE1bits_t;
941 extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
942
943 extern __sfr __at (0xF9E) PIR1;
944 typedef union {
945         struct {
946                 unsigned TMR1IF         : 1;
947                 unsigned TMR2IF         : 1;
948                 unsigned CCP1IF         : 1;
949                 unsigned                : 1;
950                 unsigned TXIF           : 1;
951                 unsigned RCIF           : 1;
952                 unsigned ADIF           : 1;
953                 unsigned                : 1;
954         };
955 } __PIR1bits_t;
956 extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
957
958 extern __sfr __at (0xF9F) IPR1;
959 typedef union {
960         struct {
961                 unsigned TMR1IP         : 1;
962                 unsigned TMR2IP         : 1;
963                 unsigned CCP1IP         : 1;
964                 unsigned                : 1;
965                 unsigned TXIP           : 1;
966                 unsigned RCIP           : 1;
967                 unsigned ADIP           : 1;
968                 unsigned                : 1;
969         };
970 } __IPR1bits_t;
971 extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
972
973 extern __sfr __at (0xFA0) PIE2;
974 typedef union {
975         struct {
976                 unsigned                : 1;
977                 unsigned                : 1;
978                 unsigned LVDIE          : 1;
979                 unsigned                : 1;
980                 unsigned                : 1;
981                 unsigned USBIE          : 1;
982                 unsigned                : 1;
983                 unsigned OSCFIE         : 1;
984         };
985         struct {
986                 unsigned                : 1;
987                 unsigned                : 1;
988                 unsigned HLVDIE         : 1;
989                 unsigned                : 1;
990                 unsigned                : 1;
991                 unsigned                : 1;
992                 unsigned                : 1;
993                 unsigned                : 1;
994         };
995 } __PIE2bits_t;
996 extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
997
998 extern __sfr __at (0xFA1) PIR2;
999 typedef union {
1000         struct {
1001                 unsigned                : 1;
1002                 unsigned                : 1;
1003                 unsigned LVDIF          : 1;
1004                 unsigned                : 1;
1005                 unsigned                : 1;
1006                 unsigned USBIF          : 1;
1007                 unsigned                : 1;
1008                 unsigned OSCFIF         : 1;
1009         };
1010         struct {
1011                 unsigned                : 1;
1012                 unsigned                : 1;
1013                 unsigned HLVDIF         : 1;
1014                 unsigned                : 1;
1015                 unsigned                : 1;
1016                 unsigned                : 1;
1017                 unsigned                : 1;
1018                 unsigned                : 1;
1019         };
1020 } __PIR2bits_t;
1021 extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
1022
1023 extern __sfr __at (0xFA2) IPR2;
1024 typedef union {
1025         struct {
1026                 unsigned                : 1;
1027                 unsigned                : 1;
1028                 unsigned LVDIP          : 1;
1029                 unsigned                : 1;
1030                 unsigned                : 1;
1031                 unsigned USBIP          : 1;
1032                 unsigned                : 1;
1033                 unsigned OSCFIP         : 1;
1034         };
1035         struct {
1036                 unsigned                : 1;
1037                 unsigned                : 1;
1038                 unsigned HLVDIP         : 1;
1039                 unsigned                : 1;
1040                 unsigned                : 1;
1041                 unsigned                : 1;
1042                 unsigned                : 1;
1043                 unsigned                : 1;
1044         };
1045 } __IPR2bits_t;
1046 extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
1047
1048 extern __sfr __at (0xFA6) EECON1;
1049 typedef union {
1050         struct {
1051                 unsigned                : 1;
1052                 unsigned WR             : 1;
1053                 unsigned WREN           : 1;
1054                 unsigned WRERR          : 1;
1055                 unsigned FREE           : 1;
1056                 unsigned                : 1;
1057                 unsigned CFGS           : 1;
1058                 unsigned                : 1;
1059         };
1060 } __EECON1bits_t;
1061 extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
1062
1063 extern __sfr __at (0xFA7) EECON2;
1064
1065 extern __sfr __at (0xFAB) RCSTA;
1066 typedef union {
1067         struct {
1068                 unsigned RX9D           : 1;
1069                 unsigned OERR           : 1;
1070                 unsigned FERR           : 1;
1071                 unsigned ADDEN          : 1;
1072                 unsigned CREN           : 1;
1073                 unsigned SREN           : 1;
1074                 unsigned RX9            : 1;
1075                 unsigned SPEN           : 1;
1076         };
1077         struct {
1078                 unsigned                : 1;
1079                 unsigned                : 1;
1080                 unsigned                : 1;
1081                 unsigned ADEN           : 1;
1082                 unsigned                : 1;
1083                 unsigned                : 1;
1084                 unsigned                : 1;
1085                 unsigned                : 1;
1086         };
1087 } __RCSTAbits_t;
1088 extern volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
1089
1090 extern __sfr __at (0xFAC) TXSTA;
1091 typedef union {
1092         struct {
1093                 unsigned TX9D           : 1;
1094                 unsigned TRMT           : 1;
1095                 unsigned BRGH           : 1;
1096                 unsigned SENDB          : 1;
1097                 unsigned SYNC           : 1;
1098                 unsigned TXEN           : 1;
1099                 unsigned TX9            : 1;
1100                 unsigned CSRC           : 1;
1101         };
1102 } __TXSTAbits_t;
1103 extern volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
1104
1105 extern __sfr __at (0xFAD) TXREG;
1106
1107 extern __sfr __at (0xFAE) RCREG;
1108
1109 extern __sfr __at (0xFAF) SPBRG;
1110
1111 extern __sfr __at (0xFB0) SPBRGH;
1112
1113 extern __sfr __at (0xFB8) BAUDCON;
1114 typedef union {
1115         struct {
1116                 unsigned ABDEN          : 1;
1117                 unsigned WUE            : 1;
1118                 unsigned                : 1;
1119                 unsigned BRG16          : 1;
1120                 unsigned SCKP           : 1;
1121                 unsigned                : 1;
1122                 unsigned RCIDL          : 1;
1123                 unsigned ABDOVF         : 1;
1124         };
1125         struct {
1126                 unsigned                : 1;
1127                 unsigned                : 1;
1128                 unsigned                : 1;
1129                 unsigned                : 1;
1130                 unsigned                : 1;
1131                 unsigned                : 1;
1132                 unsigned RCMT           : 1;
1133                 unsigned                : 1;
1134         };
1135 } __BAUDCONbits_t;
1136 extern volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits;
1137
1138 extern __sfr __at (0xFBD) CCP1CON;
1139 typedef union {
1140         struct {
1141                 unsigned CCP1M0         : 1;
1142                 unsigned CCP1M1         : 1;
1143                 unsigned CCP1M2         : 1;
1144                 unsigned CCP1M3         : 1;
1145                 unsigned DC1B0          : 1;
1146                 unsigned DC1B1          : 1;
1147                 unsigned                : 1;
1148                 unsigned                : 1;
1149         };
1150 } __CCP1CONbits_t;
1151 extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
1152
1153 extern __sfr __at (0xFBE) CCPR1;
1154
1155 extern __sfr __at (0xFBE) CCPR1L;
1156
1157 extern __sfr __at (0xFBF) CCPR1H;
1158
1159 extern __sfr __at (0xFC0) ADCON2;
1160 typedef union {
1161         struct {
1162                 unsigned ADCS0          : 1;
1163                 unsigned ADCS1          : 1;
1164                 unsigned ADCS2          : 1;
1165                 unsigned ACQT0          : 1;
1166                 unsigned ACQT1          : 1;
1167                 unsigned ACQT2          : 1;
1168                 unsigned                : 1;
1169                 unsigned ADFM           : 1;
1170         };
1171 } __ADCON2bits_t;
1172 extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;
1173
1174 extern __sfr __at (0xFC1) ADCON1;
1175 typedef union {
1176         struct {
1177                 unsigned PCFG0          : 1;
1178                 unsigned PCFG1          : 1;
1179                 unsigned PCFG2          : 1;
1180                 unsigned PCFG3          : 1;
1181                 unsigned VCFG0          : 1;
1182                 unsigned VCFG1          : 1;
1183                 unsigned                : 1;
1184                 unsigned                : 1;
1185         };
1186 } __ADCON1bits_t;
1187 extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
1188
1189 extern __sfr __at (0xFC2) ADCON0;
1190 typedef union {
1191         struct {
1192                 unsigned ADON           : 1;
1193                 unsigned GO_DONE        : 1;
1194                 unsigned CHS0           : 1;
1195                 unsigned CHS1           : 1;
1196                 unsigned CHS2           : 1;
1197                 unsigned CHS3           : 1;
1198                 unsigned                : 1;
1199                 unsigned                : 1;
1200         };
1201         struct {
1202                 unsigned                : 1;
1203                 unsigned DONE           : 1;
1204                 unsigned                : 1;
1205                 unsigned                : 1;
1206                 unsigned                : 1;
1207                 unsigned                : 1;
1208                 unsigned                : 1;
1209                 unsigned                : 1;
1210         };
1211         struct {
1212                 unsigned                : 1;
1213                 unsigned GO             : 1;
1214                 unsigned                : 1;
1215                 unsigned                : 1;
1216                 unsigned                : 1;
1217                 unsigned                : 1;
1218                 unsigned                : 1;
1219                 unsigned                : 1;
1220         };
1221         struct {
1222                 unsigned                : 1;
1223                 unsigned NOT_DONE       : 1;
1224                 unsigned                : 1;
1225                 unsigned                : 1;
1226                 unsigned                : 1;
1227                 unsigned                : 1;
1228                 unsigned                : 1;
1229                 unsigned                : 1;
1230         };
1231 } __ADCON0bits_t;
1232 extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
1233
1234 extern __sfr __at (0xFC3) ADRES;
1235
1236 extern __sfr __at (0xFC3) ADRESL;
1237
1238 extern __sfr __at (0xFC4) ADRESH;
1239
1240 extern __sfr __at (0xFCA) T2CON;
1241 typedef union {
1242         struct {
1243                 unsigned T2CKPS0        : 1;
1244                 unsigned T2CKPS1        : 1;
1245                 unsigned TMR2ON         : 1;
1246                 unsigned T2OUTPS0       : 1;
1247                 unsigned T2OUTPS1       : 1;
1248                 unsigned T2OUTPS2       : 1;
1249                 unsigned T2OUTPS3       : 1;
1250                 unsigned                : 1;
1251         };
1252 } __T2CONbits_t;
1253 extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
1254
1255 extern __sfr __at (0xFCB) PR2;
1256
1257 extern __sfr __at (0xFCC) TMR2;
1258
1259 extern __sfr __at (0xFCD) T1CON;
1260 typedef union {
1261         struct {
1262                 unsigned TMR1ON         : 1;
1263                 unsigned TMR1CS         : 1;
1264                 unsigned T1SYNC         : 1;
1265                 unsigned T1OSCEN        : 1;
1266                 unsigned T1CKPS0        : 1;
1267                 unsigned T1CKPS1        : 1;
1268                 unsigned T1RUN          : 1;
1269                 unsigned RD16           : 1;
1270         };
1271         struct {
1272                 unsigned                : 1;
1273                 unsigned                : 1;
1274                 unsigned NOT_T1SYNC     : 1;
1275                 unsigned                : 1;
1276                 unsigned                : 1;
1277                 unsigned                : 1;
1278                 unsigned                : 1;
1279                 unsigned                : 1;
1280         };
1281 } __T1CONbits_t;
1282 extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
1283
1284 extern __sfr __at (0xFCE) TMR1L;
1285
1286 extern __sfr __at (0xFCF) TMR1H;
1287
1288 extern __sfr __at (0xFD0) RCON;
1289 typedef union {
1290         struct {
1291                 unsigned NOT_BOR        : 1;
1292                 unsigned NOT_POR        : 1;
1293                 unsigned NOT_PD         : 1;
1294                 unsigned NOT_TO         : 1;
1295                 unsigned NOT_RI         : 1;
1296                 unsigned                : 1;
1297                 unsigned SBOREN         : 1;
1298                 unsigned NOT_IPEN       : 1;
1299         };
1300         struct {
1301                 unsigned BOR            : 1;
1302                 unsigned POR            : 1;
1303                 unsigned PD             : 1;
1304                 unsigned TO             : 1;
1305                 unsigned RI             : 1;
1306                 unsigned                : 1;
1307                 unsigned                : 1;
1308                 unsigned IPEN           : 1;
1309         };
1310 } __RCONbits_t;
1311 extern volatile __RCONbits_t __at (0xFD0) RCONbits;
1312
1313 extern __sfr __at (0xFD1) WDTCON;
1314 typedef union {
1315         struct {
1316                 unsigned SWDTEN         : 1;
1317                 unsigned                : 1;
1318                 unsigned                : 1;
1319                 unsigned                : 1;
1320                 unsigned                : 1;
1321                 unsigned                : 1;
1322                 unsigned                : 1;
1323                 unsigned                : 1;
1324         };
1325         struct {
1326                 unsigned SWDTE          : 1;
1327                 unsigned                : 1;
1328                 unsigned                : 1;
1329                 unsigned                : 1;
1330                 unsigned                : 1;
1331                 unsigned                : 1;
1332                 unsigned                : 1;
1333                 unsigned                : 1;
1334         };
1335 } __WDTCONbits_t;
1336 extern volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;
1337
1338 extern __sfr __at (0xFD2) HLVDCON;
1339 typedef union {
1340         struct {
1341                 unsigned LVDL0          : 1;
1342                 unsigned LVDL1          : 1;
1343                 unsigned LVDL2          : 1;
1344                 unsigned LVDL3          : 1;
1345                 unsigned LVDEN          : 1;
1346                 unsigned IRVST          : 1;
1347                 unsigned                : 1;
1348                 unsigned VDIRMAG        : 1;
1349         };
1350         struct {
1351                 unsigned LVV0           : 1;
1352                 unsigned LVV1           : 1;
1353                 unsigned LVV2           : 1;
1354                 unsigned LVV3           : 1;
1355                 unsigned HLVDEN         : 1;
1356                 unsigned BGST           : 1;
1357                 unsigned                : 1;
1358                 unsigned                : 1;
1359         };
1360         struct {
1361                 unsigned HLVDL0         : 1;
1362                 unsigned HLVDL1         : 1;
1363                 unsigned HLVDL2         : 1;
1364                 unsigned HLVDL3         : 1;
1365                 unsigned                : 1;
1366                 unsigned IVRST          : 1;
1367                 unsigned                : 1;
1368                 unsigned                : 1;
1369         };
1370 } __HLVDCONbits_t;
1371 extern volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits;
1372
1373 extern __sfr __at (0xFD2) LVDCON;
1374 typedef union {
1375         struct {
1376                 unsigned LVDL0          : 1;
1377                 unsigned LVDL1          : 1;
1378                 unsigned LVDL2          : 1;
1379                 unsigned LVDL3          : 1;
1380                 unsigned LVDEN          : 1;
1381                 unsigned IRVST          : 1;
1382                 unsigned                : 1;
1383                 unsigned VDIRMAG        : 1;
1384         };
1385         struct {
1386                 unsigned LVV0           : 1;
1387                 unsigned LVV1           : 1;
1388                 unsigned LVV2           : 1;
1389                 unsigned LVV3           : 1;
1390                 unsigned HLVDEN         : 1;
1391                 unsigned BGST           : 1;
1392                 unsigned                : 1;
1393                 unsigned                : 1;
1394         };
1395         struct {
1396                 unsigned HLVDL0         : 1;
1397                 unsigned HLVDL1         : 1;
1398                 unsigned HLVDL2         : 1;
1399                 unsigned HLVDL3         : 1;
1400                 unsigned                : 1;
1401                 unsigned IVRST          : 1;
1402                 unsigned                : 1;
1403                 unsigned                : 1;
1404         };
1405 } __LVDCONbits_t;
1406 extern volatile __LVDCONbits_t __at (0xFD2) LVDCONbits;
1407
1408 extern __sfr __at (0xFD3) OSCCON;
1409 typedef union {
1410         struct {
1411                 unsigned SCS0           : 1;
1412                 unsigned SCS1           : 1;
1413                 unsigned                : 1;
1414                 unsigned OSTS           : 1;
1415                 unsigned                : 1;
1416                 unsigned                : 1;
1417                 unsigned                : 1;
1418                 unsigned IDLEN          : 1;
1419         };
1420 } __OSCCONbits_t;
1421 extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
1422
1423 extern __sfr __at (0xFD5) T0CON;
1424 typedef union {
1425         struct {
1426                 unsigned T0PS0          : 1;
1427                 unsigned T0PS1          : 1;
1428                 unsigned T0PS2          : 1;
1429                 unsigned PSA            : 1;
1430                 unsigned T0SE           : 1;
1431                 unsigned T0CS           : 1;
1432                 unsigned T08BIT         : 1;
1433                 unsigned TMR0ON         : 1;
1434         };
1435 } __T0CONbits_t;
1436 extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
1437
1438 extern __sfr __at (0xFD6) TMR0L;
1439
1440 extern __sfr __at (0xFD7) TMR0H;
1441
1442 extern __sfr __at (0xFD8) STATUS;
1443 typedef union {
1444         struct {
1445                 unsigned C              : 1;
1446                 unsigned DC             : 1;
1447                 unsigned Z              : 1;
1448                 unsigned OV             : 1;
1449                 unsigned N              : 1;
1450                 unsigned                : 1;
1451                 unsigned                : 1;
1452                 unsigned                : 1;
1453         };
1454 } __STATUSbits_t;
1455 extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
1456
1457 extern __sfr __at (0xFD9) FSR2L;
1458
1459 extern __sfr __at (0xFDA) FSR2H;
1460
1461 extern __sfr __at (0xFDB) PLUSW2;
1462
1463 extern __sfr __at (0xFDC) PREINC2;
1464
1465 extern __sfr __at (0xFDD) POSTDEC2;
1466
1467 extern __sfr __at (0xFDE) POSTINC2;
1468
1469 extern __sfr __at (0xFDF) INDF2;
1470
1471 extern __sfr __at (0xFE0) BSR;
1472
1473 extern __sfr __at (0xFE1) FSR1L;
1474
1475 extern __sfr __at (0xFE2) FSR1H;
1476
1477 extern __sfr __at (0xFE3) PLUSW1;
1478
1479 extern __sfr __at (0xFE4) PREINC1;
1480
1481 extern __sfr __at (0xFE5) POSTDEC1;
1482
1483 extern __sfr __at (0xFE6) POSTINC1;
1484
1485 extern __sfr __at (0xFE7) INDF1;
1486
1487 extern __sfr __at (0xFE8) WREG;
1488
1489 extern __sfr __at (0xFE9) FSR0L;
1490
1491 extern __sfr __at (0xFEA) FSR0H;
1492
1493 extern __sfr __at (0xFEB) PLUSW0;
1494
1495 extern __sfr __at (0xFEC) PREINC0;
1496
1497 extern __sfr __at (0xFED) POSTDEC0;
1498
1499 extern __sfr __at (0xFEE) POSTINC0;
1500
1501 extern __sfr __at (0xFEF) INDF0;
1502
1503 extern __sfr __at (0xFF0) INTCON3;
1504 typedef union {
1505         struct {
1506                 unsigned INT1IF         : 1;
1507                 unsigned INT2IF         : 1;
1508                 unsigned                : 1;
1509                 unsigned INT1IE         : 1;
1510                 unsigned INT2IE         : 1;
1511                 unsigned                : 1;
1512                 unsigned INT1IP         : 1;
1513                 unsigned INT2IP         : 1;
1514         };
1515         struct {
1516                 unsigned INT1F          : 1;
1517                 unsigned INT2F          : 1;
1518                 unsigned                : 1;
1519                 unsigned INT1E          : 1;
1520                 unsigned INT2E          : 1;
1521                 unsigned                : 1;
1522                 unsigned INT1P          : 1;
1523                 unsigned INT2P          : 1;
1524         };
1525 } __INTCON3bits_t;
1526 extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
1527
1528 extern __sfr __at (0xFF1) INTCON2;
1529 typedef union {
1530         struct {
1531                 unsigned RBIP           : 1;
1532                 unsigned                : 1;
1533                 unsigned TMR0IP         : 1;
1534                 unsigned                : 1;
1535                 unsigned INTEDG2        : 1;
1536                 unsigned INTEDG1        : 1;
1537                 unsigned INTEDG0        : 1;
1538                 unsigned NOT_RBPU       : 1;
1539         };
1540         struct {
1541                 unsigned                : 1;
1542                 unsigned                : 1;
1543                 unsigned T0IP           : 1;
1544                 unsigned                : 1;
1545                 unsigned                : 1;
1546                 unsigned                : 1;
1547                 unsigned                : 1;
1548                 unsigned RBPU           : 1;
1549         };
1550 } __INTCON2bits_t;
1551 extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
1552
1553 extern __sfr __at (0xFF2) INTCON;
1554 typedef union {
1555         struct {
1556                 unsigned RBIF           : 1;
1557                 unsigned INT0IF         : 1;
1558                 unsigned TMR0IF         : 1;
1559                 unsigned RBIE           : 1;
1560                 unsigned INT0IE         : 1;
1561                 unsigned TMR0IE         : 1;
1562                 unsigned PEIE           : 1;
1563                 unsigned GIE            : 1;
1564         };
1565         struct {
1566                 unsigned                : 1;
1567                 unsigned INT0F          : 1;
1568                 unsigned T0IF           : 1;
1569                 unsigned                : 1;
1570                 unsigned INT0E          : 1;
1571                 unsigned T0IE           : 1;
1572                 unsigned GIEL           : 1;
1573                 unsigned GIEH           : 1;
1574         };
1575 } __INTCONbits_t;
1576 extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
1577
1578 extern __sfr __at (0xFF3) PROD;
1579
1580 extern __sfr __at (0xFF3) PRODL;
1581
1582 extern __sfr __at (0xFF4) PRODH;
1583
1584 extern __sfr __at (0xFF5) TABLAT;
1585
1586 extern __sfr __at (0xFF6) TBLPTR;
1587
1588 extern __sfr __at (0xFF6) TBLPTRL;
1589
1590 extern __sfr __at (0xFF7) TBLPTRH;
1591
1592 extern __sfr __at (0xFF8) TBLPTRU;
1593
1594 extern __sfr __at (0xFF9) PC;
1595
1596 extern __sfr __at (0xFF9) PCL;
1597
1598 extern __sfr __at (0xFFA) PCLATH;
1599
1600 extern __sfr __at (0xFFB) PCLATU;
1601
1602 extern __sfr __at (0xFFC) STKPTR;
1603 typedef union {
1604         struct {
1605                 unsigned STKPTR0        : 1;
1606                 unsigned STKPTR1        : 1;
1607                 unsigned STKPTR2        : 1;
1608                 unsigned STKPTR3        : 1;
1609                 unsigned STKPTR4        : 1;
1610                 unsigned                : 1;
1611                 unsigned STKUNF         : 1;
1612                 unsigned STKFUL         : 1;
1613         };
1614         struct {
1615                 unsigned                : 1;
1616                 unsigned                : 1;
1617                 unsigned                : 1;
1618                 unsigned                : 1;
1619                 unsigned                : 1;
1620                 unsigned                : 1;
1621                 unsigned                : 1;
1622                 unsigned STKOVF         : 1;
1623         };
1624 } __STKPTRbits_t;
1625 extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
1626
1627 extern __sfr __at (0xFFD) TOS;
1628
1629 extern __sfr __at (0xFFD) TOSL;
1630
1631 extern __sfr __at (0xFFE) TOSH;
1632
1633 extern __sfr __at (0xFFF) TOSU;
1634
1635
1636 #endif
1637