Imported Upstream version 2.9.0
[debian/cc1111] / device / include / pic / pic16f916.h
1 //
2 // Register Declarations for Microchip 16F916 Processor
3 //
4 //
5 // This header file was automatically generated by:
6 //
7 //      inc2h.pl V4783
8 //
9 //      Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved
10 //
11 //      SDCC is licensed under the GNU Public license (GPL) v2.  Note that
12 //      this license covers the code to the compiler and other executables,
13 //      but explicitly does not cover any code or objects generated by sdcc.
14 //      We have not yet decided on a license for the run time libraries, but
15 //      it will not put any requirements on code linked against it. See:
16 // 
17 //      http://www.gnu.org/copyleft/gpl/html
18 //
19 //      See http://sdcc.sourceforge.net/ for the latest information on sdcc.
20 //
21 // 
22 #ifndef P16F916_H
23 #define P16F916_H
24
25 //
26 // Register addresses.
27 //
28 #define INDF_ADDR       0x0000
29 #define TMR0_ADDR       0x0001
30 #define PCL_ADDR        0x0002
31 #define STATUS_ADDR     0x0003
32 #define FSR_ADDR        0x0004
33 #define PORTA_ADDR      0x0005
34 #define PORTB_ADDR      0x0006
35 #define PORTC_ADDR      0x0007
36 #define PORTE_ADDR      0x0009
37 #define PCLATH_ADDR     0x000A
38 #define INTCON_ADDR     0x000B
39 #define PIR1_ADDR       0x000C
40 #define PIR2_ADDR       0x000D
41 #define TMR1L_ADDR      0x000E
42 #define TMR1H_ADDR      0x000F
43 #define T1CON_ADDR      0x0010
44 #define TMR2_ADDR       0x0011
45 #define T2CON_ADDR      0x0012
46 #define SSPBUF_ADDR     0x0013
47 #define SSPCON_ADDR     0x0014
48 #define CCPR1L_ADDR     0x0015
49 #define CCPR1H_ADDR     0x0016
50 #define CCP1CON_ADDR    0x0017
51 #define RCSTA_ADDR      0x0018
52 #define TXREG_ADDR      0x0019
53 #define RCREG_ADDR      0x001A
54 #define ADRESH_ADDR     0x001E
55 #define ADCON0_ADDR     0x001F
56 #define OPTION_REG_ADDR 0x0081
57 #define TRISA_ADDR      0x0085
58 #define TRISB_ADDR      0x0086
59 #define TRISC_ADDR      0x0087
60 #define TRISE_ADDR      0x0089
61 #define PIE1_ADDR       0x008C
62 #define PIE2_ADDR       0x008D
63 #define PCON_ADDR       0x008E
64 #define OSCCON_ADDR     0x008F
65 #define OSCTUNE_ADDR    0x0090
66 #define ANSEL_ADDR      0x0091
67 #define PR2_ADDR        0x0092
68 #define SSPADD_ADDR     0x0093
69 #define SSPSTAT_ADDR    0x0094
70 #define WPUB_ADDR       0x0095
71 #define WPU_ADDR        0x0095
72 #define IOCB_ADDR       0x0096
73 #define IOC_ADDR        0x0096
74 #define CMCON1_ADDR     0x0097
75 #define TXSTA_ADDR      0x0098
76 #define SPBRG_ADDR      0x0099
77 #define CMCON0_ADDR     0x009C
78 #define VRCON_ADDR      0x009D
79 #define ADRESL_ADDR     0x009E
80 #define ADCON1_ADDR     0x009F
81 #define WDTCON_ADDR     0x0105
82 #define LCDCON_ADDR     0x0107
83 #define LCDPS_ADDR      0x0108
84 #define LVDCON_ADDR     0x0109
85 #define EEDATL_ADDR     0x010C
86 #define EEADRL_ADDR     0x010D
87 #define EEDATH_ADDR     0x010E
88 #define EEADRH_ADDR     0x010F
89 #define LCDDATA0_ADDR   0x0110
90 #define LCDDATA1_ADDR   0x0111
91 #define LCDDATA3_ADDR   0x0113
92 #define LCDDATA4_ADDR   0x0114
93 #define LCDDATA6_ADDR   0x0116
94 #define LCDDATA7_ADDR   0x0117
95 #define LCDDATA9_ADDR   0x0119
96 #define LCDDATA10_ADDR  0x011A
97 #define LCDSE0_ADDR     0x011C
98 #define LCDSE1_ADDR     0x011D
99 #define EECON1_ADDR     0x018C
100 #define EECON2_ADDR     0x018D
101
102 //
103 // Memory organization.
104 //
105
106
107
108 //         LIST
109 // P16F916.INC  Standard Header File, Version 1.04    Microchip Technology, Inc.
110 //         NOLIST
111
112 // This header file defines configurations, registers, and other useful bits of
113 // information for the PIC16F916 microcontroller.
114 // These names are taken to match the data sheets as closely as possible.  
115
116 // Note that the processor must be selected before this file is 
117 // included.  The processor may be selected the following ways:
118
119 //       1. Command line switch:
120 //               C:\ MPASM MYFILE.ASM /PIC16F916
121 //       2. LIST directive in the source file
122 //               LIST   P=PIC16F916
123 //       3. Processor Type entry in the MPASM full-screen interface
124
125 //==========================================================================
126 //
127 //       Revision History
128 //
129 //==========================================================================
130
131 //Rev:   Date:    Reason:
132 //1.00   06/11/04 Initial Release 
133 //1.01  06/18/04 Corrected typo in 'bad ram' section
134 //1.02  08/16/04 Added EECON2
135 //1.03  05/20/05 Removed EECON2 from badram
136 //1.04   10/05/05 Correct names of bits in ANSEL, Add EEADRH and EEADRL bit 
137 //                      definitions
138
139
140 //==========================================================================
141 //
142 //       Verify Processor
143 //
144 //==========================================================================
145
146 //        IFNDEF __16F916
147 //            MESSG "Processor-header file mismatch.  Verify selected processor."
148 //         ENDIF
149
150 //==========================================================================
151 //
152 //       Register Definitions
153 //
154 //==========================================================================
155
156 #define W                    0x0000
157 #define F                    0x0001
158
159 //----- Register Files------------------------------------------------------
160
161 extern __sfr  __at (INDF_ADDR)                    INDF;
162 extern __sfr  __at (TMR0_ADDR)                    TMR0;
163 extern __sfr  __at (PCL_ADDR)                     PCL;
164 extern __sfr  __at (STATUS_ADDR)                  STATUS;
165 extern __sfr  __at (FSR_ADDR)                     FSR;
166 extern __sfr  __at (PORTA_ADDR)                   PORTA;
167 extern __sfr  __at (PORTB_ADDR)                   PORTB;
168 extern __sfr  __at (PORTC_ADDR)                   PORTC;
169 extern __sfr  __at (PORTE_ADDR)                   PORTE;
170 extern __sfr  __at (PCLATH_ADDR)                  PCLATH;
171 extern __sfr  __at (INTCON_ADDR)                  INTCON;
172 extern __sfr  __at (PIR1_ADDR)                    PIR1;
173 extern __sfr  __at (PIR2_ADDR)                    PIR2;
174 extern __sfr  __at (TMR1L_ADDR)                   TMR1L;
175 extern __sfr  __at (TMR1H_ADDR)                   TMR1H;
176 extern __sfr  __at (T1CON_ADDR)                   T1CON;
177 extern __sfr  __at (TMR2_ADDR)                    TMR2;
178 extern __sfr  __at (T2CON_ADDR)                   T2CON;
179 extern __sfr  __at (SSPBUF_ADDR)                  SSPBUF;
180 extern __sfr  __at (SSPCON_ADDR)                  SSPCON;
181 extern __sfr  __at (CCPR1L_ADDR)                  CCPR1L;
182 extern __sfr  __at (CCPR1H_ADDR)                  CCPR1H;
183 extern __sfr  __at (CCP1CON_ADDR)                 CCP1CON;
184 extern __sfr  __at (RCSTA_ADDR)                   RCSTA;
185 extern __sfr  __at (TXREG_ADDR)                   TXREG;
186 extern __sfr  __at (RCREG_ADDR)                   RCREG;
187 extern __sfr  __at (ADRESH_ADDR)                  ADRESH;
188 extern __sfr  __at (ADCON0_ADDR)                  ADCON0;
189
190 extern __sfr  __at (OPTION_REG_ADDR)              OPTION_REG;
191 extern __sfr  __at (TRISA_ADDR)                   TRISA;
192 extern __sfr  __at (TRISB_ADDR)                   TRISB;
193 extern __sfr  __at (TRISC_ADDR)                   TRISC;
194 extern __sfr  __at (TRISE_ADDR)                   TRISE;
195 extern __sfr  __at (PIE1_ADDR)                    PIE1;
196 extern __sfr  __at (PIE2_ADDR)                    PIE2;
197 extern __sfr  __at (PCON_ADDR)                    PCON;
198 extern __sfr  __at (OSCCON_ADDR)                  OSCCON;
199 extern __sfr  __at (OSCTUNE_ADDR)                 OSCTUNE;
200 extern __sfr  __at (ANSEL_ADDR)                   ANSEL;
201 extern __sfr  __at (PR2_ADDR)                     PR2;
202 extern __sfr  __at (SSPADD_ADDR)                  SSPADD;
203 extern __sfr  __at (SSPSTAT_ADDR)                 SSPSTAT;
204 extern __sfr  __at (WPUB_ADDR)                    WPUB;
205 extern __sfr  __at (WPU_ADDR)                     WPU;
206 extern __sfr  __at (IOCB_ADDR)                    IOCB;
207 extern __sfr  __at (IOC_ADDR)                     IOC;
208 extern __sfr  __at (CMCON1_ADDR)                  CMCON1;
209 extern __sfr  __at (TXSTA_ADDR)                   TXSTA;
210 extern __sfr  __at (SPBRG_ADDR)                   SPBRG;
211 extern __sfr  __at (CMCON0_ADDR)                  CMCON0;
212 extern __sfr  __at (VRCON_ADDR)                   VRCON;
213 extern __sfr  __at (ADRESL_ADDR)                  ADRESL;
214 extern __sfr  __at (ADCON1_ADDR)                  ADCON1;
215
216 extern __sfr  __at (WDTCON_ADDR)                  WDTCON;
217 extern __sfr  __at (LCDCON_ADDR)                  LCDCON;
218 extern __sfr  __at (LCDPS_ADDR)                   LCDPS;
219 extern __sfr  __at (LVDCON_ADDR)                  LVDCON;
220 extern __sfr  __at (EEDATL_ADDR)                  EEDATL;
221 extern __sfr  __at (EEADRL_ADDR)                  EEADRL;
222 extern __sfr  __at (EEDATH_ADDR)                  EEDATH;
223 extern __sfr  __at (EEADRH_ADDR)                  EEADRH;
224 extern __sfr  __at (LCDDATA0_ADDR)                LCDDATA0;
225 extern __sfr  __at (LCDDATA1_ADDR)                LCDDATA1;
226 extern __sfr  __at (LCDDATA3_ADDR)                LCDDATA3;
227 extern __sfr  __at (LCDDATA4_ADDR)                LCDDATA4;
228 extern __sfr  __at (LCDDATA6_ADDR)                LCDDATA6;
229 extern __sfr  __at (LCDDATA7_ADDR)                LCDDATA7;
230 extern __sfr  __at (LCDDATA9_ADDR)                LCDDATA9;
231 extern __sfr  __at (LCDDATA10_ADDR)               LCDDATA10;
232 extern __sfr  __at (LCDSE0_ADDR)                  LCDSE0;
233 extern __sfr  __at (LCDSE1_ADDR)                  LCDSE1;
234
235 extern __sfr  __at (EECON1_ADDR)                  EECON1;
236 extern __sfr  __at (EECON2_ADDR)                  EECON2;
237
238
239 //----- STATUS Bits --------------------------------------------------------
240
241
242 //----- INTCON Bits --------------------------------------------------------
243
244
245 //----- PIR1 Bits ----------------------------------------------------------
246
247
248 //----- PIR2 Bits ----------------------------------------------------------
249
250
251 //----- T1CON Bits ---------------------------------------------------------
252
253
254 //----- T2CON Bits ---------------------------------------------------------
255
256
257 //----- SSPCON Bits --------------------------------------------------------
258
259
260 //----- CCP1CON Bits -------------------------------------------------------
261
262
263 //----- RCSTA Bits ---------------------------------------------------------
264
265
266
267 //----- ADCON0 Bits --------------------------------------------------------
268
269
270 //----- OPTION_REG Bits -----------------------------------------------------
271
272
273 //----- PIE1 Bits ----------------------------------------------------------
274
275
276 //----- PIE2 Bits ----------------------------------------------------------
277
278
279 //----- PCON Bits ----------------------------------------------------------
280
281
282 //----- OSCCON Bits -------------------------------------------------------
283
284
285 //----- OSCTUNE Bits -------------------------------------------------------
286
287
288
289 //----- ANSEL Bits ---------------------------------------------------------
290
291
292
293 //----- SSPSTAT Bits -------------------------------------------------------
294
295
296
297 //----- WPUB Bits -------------------------------------------------------
298
299
300 //----- WPU Bits -------------------------------------------------------
301
302
303
304 //----- IOCB Bits -------------------------------------------------------
305
306
307
308 //----- IOC Bits -------------------------------------------------------
309
310
311
312 //----- CMCON1 Bits --------------------------------------------------------
313
314
315 //----- TXSTA Bits ---------------------------------------------------------
316
317
318
319 //----- CMCON0 Bits ---------------------------------------------------------
320
321
322 //----- VRCON Bits --------------------------------------------------------
323
324
325 //----- ADCON1 Bits --------------------------------------------------------
326
327
328 //----- WDTCON Bits --------------------------------------------------------
329
330
331 //----- LCDCON Bits --------------------------------------------------------
332
333
334 //----- LCDPS Bits ---------------------------------------------------------
335
336
337 //----- LVDCON Bits --------------------------------------------------------
338
339
340 //----- LCDDATA0 Bits -------------------------------------------------------
341
342
343
344 //----- LCDDATA1 Bits -------------------------------------------------------
345
346
347
348
349 //----- LCDDATA3 Bits -------------------------------------------------------
350
351
352
353 //----- LCDDATA4 Bits -------------------------------------------------------
354
355
356
357
358 //----- LCDDATA6 Bits -------------------------------------------------------
359
360
361
362 //----- LCDDATA7 Bits -------------------------------------------------------
363
364
365
366
367 //----- LCDDATA9 Bits -------------------------------------------------------
368
369
370
371 //----- LCDDATA10 Bits -------------------------------------------------------
372
373
374
375
376 //----- LCDSE0 Bits --------------------------------------------------------
377
378
379
380 //----- LCDSE1 Bits --------------------------------------------------------
381
382
383
384
385 //----- EECON1 Bits --------------------------------------------------------
386
387
388 //----- EEADRH Bits --------------------------------------------------------
389
390
391 //----- EEADRL Bits --------------------------------------------------------
392
393
394
395 //==========================================================================
396 //
397 //       RAM Definition
398 //
399 //==========================================================================
400
401 //         __MAXRAM H'1FF'
402 //         __BADRAM H'08', H'1B'-H'1D'
403 //         __BADRAM H'88', H'9A'-H'9B'
404 //         __BADRAM H'112', H'115', H'118', H'11B',H'11E'-H'11F'
405 //         __BADRAM H'185', H'187'-H'189', H'18E'-H'18F'
406
407 //==========================================================================
408 //
409 //       Configuration Bits
410 //
411 //==========================================================================
412
413 #define _CONFIG              0x2007
414
415 //Configuration Byte 1 Options
416 #define _DEBUG_ON            0x2FFF
417 #define _DEBUG_OFF           0x3FFF
418 #define _FCMEN_ON            0x3FFF
419 #define _FCMEN_OFF           0x37FF
420 #define _IESO_ON             0x3FFF
421 #define _IESO_OFF            0x3BFF
422 #define _BOD_ON              0x3FFF
423 #define _BOD_NSLEEP          0x3EFF
424 #define _BOD_SBODEN          0x3DFF
425 #define _BOD_OFF             0x3CFF
426 #define _CPD_ON              0x3F7F
427 #define _CPD_OFF             0x3FFF
428 #define _CP_ON               0x3FBF
429 #define _CP_OFF              0x3FFF
430 #define _MCLRE_ON            0x3FFF
431 #define _MCLRE_OFF           0x3FDF
432 #define _PWRTE_ON            0x3FEF
433 #define _PWRTE_OFF           0x3FFF
434 #define _WDT_ON              0x3FFF
435 #define _WDT_OFF             0x3FF7
436 #define _LP_OSC              0x3FF8
437 #define _XT_OSC              0x3FF9
438 #define _HS_OSC              0x3FFA
439 #define _EC_OSC              0x3FFB
440 #define _INTRC_OSC_NOCLKOUT  0x3FFC
441 #define _INTRC_OSC_CLKOUT    0x3FFD
442 #define _EXTRC_OSC_NOCLKOUT  0x3FFE
443 #define _EXTRC_OSC_CLKOUT    0x3FFF
444 #define _INTOSCIO            0x3FFC
445 #define _INTOSC              0x3FFD
446 #define _EXTRCIO             0x3FFE
447 #define _EXTRC               0x3FFF
448
449
450 //         LIST
451
452 // ----- ADCON0 bits --------------------
453 typedef union {
454   struct {
455     unsigned char ADON:1;
456     unsigned char NOT_DONE:1;
457     unsigned char CHS0:1;
458     unsigned char CHS1:1;
459     unsigned char CHS2:1;
460     unsigned char VCFG0:1;
461     unsigned char VCFG1:1;
462     unsigned char ADFM:1;
463   };
464   struct {
465     unsigned char :1;
466     unsigned char GO_DONE:1;
467     unsigned char :1;
468     unsigned char :1;
469     unsigned char :1;
470     unsigned char :1;
471     unsigned char :1;
472     unsigned char :1;
473   };
474 } __ADCON0_bits_t;
475 extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits;
476
477 #ifndef NO_BIT_DEFINES
478 #define ADON                 ADCON0_bits.ADON
479 #define NOT_DONE             ADCON0_bits.NOT_DONE
480 #define GO_DONE              ADCON0_bits.GO_DONE
481 #define CHS0                 ADCON0_bits.CHS0
482 #define CHS1                 ADCON0_bits.CHS1
483 #define CHS2                 ADCON0_bits.CHS2
484 #define VCFG0                ADCON0_bits.VCFG0
485 #define VCFG1                ADCON0_bits.VCFG1
486 #define ADFM                 ADCON0_bits.ADFM
487 #endif /* NO_BIT_DEFINES */
488
489 // ----- ADCON1 bits --------------------
490 typedef union {
491   struct {
492     unsigned char :1;
493     unsigned char :1;
494     unsigned char :1;
495     unsigned char :1;
496     unsigned char ADCS0:1;
497     unsigned char ADCS1:1;
498     unsigned char ADCS2:1;
499     unsigned char :1;
500   };
501 } __ADCON1_bits_t;
502 extern volatile __ADCON1_bits_t __at(ADCON1_ADDR) ADCON1_bits;
503
504 #ifndef NO_BIT_DEFINES
505 #define ADCS0                ADCON1_bits.ADCS0
506 #define ADCS1                ADCON1_bits.ADCS1
507 #define ADCS2                ADCON1_bits.ADCS2
508 #endif /* NO_BIT_DEFINES */
509
510 // ----- ANSEL bits --------------------
511 typedef union {
512   struct {
513     unsigned char ANS0:1;
514     unsigned char ANS1:1;
515     unsigned char ANS2:1;
516     unsigned char ANS3:1;
517     unsigned char ANS4:1;
518     unsigned char :1;
519     unsigned char :1;
520     unsigned char :1;
521   };
522   struct {
523     unsigned char AN0:1;
524     unsigned char AN1:1;
525     unsigned char AN2:1;
526     unsigned char AN3:1;
527     unsigned char AN4:1;
528     unsigned char :1;
529     unsigned char :1;
530     unsigned char :1;
531   };
532 } __ANSEL_bits_t;
533 extern volatile __ANSEL_bits_t __at(ANSEL_ADDR) ANSEL_bits;
534
535 #ifndef NO_BIT_DEFINES
536 #define ANS0                 ANSEL_bits.ANS0
537 #define AN0                  ANSEL_bits.AN0
538 #define ANS1                 ANSEL_bits.ANS1
539 #define AN1                  ANSEL_bits.AN1
540 #define ANS2                 ANSEL_bits.ANS2
541 #define AN2                  ANSEL_bits.AN2
542 #define ANS3                 ANSEL_bits.ANS3
543 #define AN3                  ANSEL_bits.AN3
544 #define ANS4                 ANSEL_bits.ANS4
545 #define AN4                  ANSEL_bits.AN4
546 #endif /* NO_BIT_DEFINES */
547
548 // ----- CCP1CON bits --------------------
549 typedef union {
550   struct {
551     unsigned char CCP1M0:1;
552     unsigned char CCP1M1:1;
553     unsigned char CCP1M2:1;
554     unsigned char CCP1M3:1;
555     unsigned char CCP1Y:1;
556     unsigned char CCP1X:1;
557     unsigned char :1;
558     unsigned char :1;
559   };
560 } __CCP1CON_bits_t;
561 extern volatile __CCP1CON_bits_t __at(CCP1CON_ADDR) CCP1CON_bits;
562
563 #ifndef NO_BIT_DEFINES
564 #define CCP1M0               CCP1CON_bits.CCP1M0
565 #define CCP1M1               CCP1CON_bits.CCP1M1
566 #define CCP1M2               CCP1CON_bits.CCP1M2
567 #define CCP1M3               CCP1CON_bits.CCP1M3
568 #define CCP1Y                CCP1CON_bits.CCP1Y
569 #define CCP1X                CCP1CON_bits.CCP1X
570 #endif /* NO_BIT_DEFINES */
571
572 // ----- CMCON0 bits --------------------
573 typedef union {
574   struct {
575     unsigned char CM0:1;
576     unsigned char CM1:1;
577     unsigned char CM2:1;
578     unsigned char CIS:1;
579     unsigned char C1INV:1;
580     unsigned char C2INV:1;
581     unsigned char C1OUT:1;
582     unsigned char C2OUT:1;
583   };
584 } __CMCON0_bits_t;
585 extern volatile __CMCON0_bits_t __at(CMCON0_ADDR) CMCON0_bits;
586
587 #ifndef NO_BIT_DEFINES
588 #define CM0                  CMCON0_bits.CM0
589 #define CM1                  CMCON0_bits.CM1
590 #define CM2                  CMCON0_bits.CM2
591 #define CIS                  CMCON0_bits.CIS
592 #define C1INV                CMCON0_bits.C1INV
593 #define C2INV                CMCON0_bits.C2INV
594 #define C1OUT                CMCON0_bits.C1OUT
595 #define C2OUT                CMCON0_bits.C2OUT
596 #endif /* NO_BIT_DEFINES */
597
598 // ----- CMCON1 bits --------------------
599 typedef union {
600   struct {
601     unsigned char C2SYNC:1;
602     unsigned char T1GSS:1;
603     unsigned char :1;
604     unsigned char :1;
605     unsigned char :1;
606     unsigned char :1;
607     unsigned char :1;
608     unsigned char :1;
609   };
610 } __CMCON1_bits_t;
611 extern volatile __CMCON1_bits_t __at(CMCON1_ADDR) CMCON1_bits;
612
613 #ifndef NO_BIT_DEFINES
614 #define C2SYNC               CMCON1_bits.C2SYNC
615 #define T1GSS                CMCON1_bits.T1GSS
616 #endif /* NO_BIT_DEFINES */
617
618 // ----- EEADRH bits --------------------
619 typedef union {
620   struct {
621     unsigned char EEADRH0:1;
622     unsigned char EEADRH1:1;
623     unsigned char EEADRH2:1;
624     unsigned char EEADRH3:1;
625     unsigned char EEADRH4:1;
626     unsigned char :1;
627     unsigned char :1;
628     unsigned char :1;
629   };
630 } __EEADRH_bits_t;
631 extern volatile __EEADRH_bits_t __at(EEADRH_ADDR) EEADRH_bits;
632
633 #ifndef NO_BIT_DEFINES
634 #define EEADRH0              EEADRH_bits.EEADRH0
635 #define EEADRH1              EEADRH_bits.EEADRH1
636 #define EEADRH2              EEADRH_bits.EEADRH2
637 #define EEADRH3              EEADRH_bits.EEADRH3
638 #define EEADRH4              EEADRH_bits.EEADRH4
639 #endif /* NO_BIT_DEFINES */
640
641 // ----- EEADRL bits --------------------
642 typedef union {
643   struct {
644     unsigned char EEADRL0:1;
645     unsigned char EEADRL1:1;
646     unsigned char EEADRL2:1;
647     unsigned char EEADRL3:1;
648     unsigned char EEADRL4:1;
649     unsigned char EEADRL5:1;
650     unsigned char EEADRL6:1;
651     unsigned char EEADRL7:1;
652   };
653 } __EEADRL_bits_t;
654 extern volatile __EEADRL_bits_t __at(EEADRL_ADDR) EEADRL_bits;
655
656 #ifndef NO_BIT_DEFINES
657 #define EEADRL0              EEADRL_bits.EEADRL0
658 #define EEADRL1              EEADRL_bits.EEADRL1
659 #define EEADRL2              EEADRL_bits.EEADRL2
660 #define EEADRL3              EEADRL_bits.EEADRL3
661 #define EEADRL4              EEADRL_bits.EEADRL4
662 #define EEADRL5              EEADRL_bits.EEADRL5
663 #define EEADRL6              EEADRL_bits.EEADRL6
664 #define EEADRL7              EEADRL_bits.EEADRL7
665 #endif /* NO_BIT_DEFINES */
666
667 // ----- EECON1 bits --------------------
668 typedef union {
669   struct {
670     unsigned char RD:1;
671     unsigned char WR:1;
672     unsigned char WREN:1;
673     unsigned char WRERR:1;
674     unsigned char :1;
675     unsigned char :1;
676     unsigned char :1;
677     unsigned char EEPGD:1;
678   };
679   struct {
680     unsigned char EERD:1;
681     unsigned char EEWR:1;
682     unsigned char :1;
683     unsigned char :1;
684     unsigned char :1;
685     unsigned char :1;
686     unsigned char :1;
687     unsigned char :1;
688   };
689 } __EECON1_bits_t;
690 extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits;
691
692 #ifndef NO_BIT_DEFINES
693 #define RD                   EECON1_bits.RD
694 #define EERD                 EECON1_bits.EERD
695 #define WR                   EECON1_bits.WR
696 #define EEWR                 EECON1_bits.EEWR
697 #define WREN                 EECON1_bits.WREN
698 #define WRERR                EECON1_bits.WRERR
699 #define EEPGD                EECON1_bits.EEPGD
700 #endif /* NO_BIT_DEFINES */
701
702 // ----- INTCON bits --------------------
703 typedef union {
704   struct {
705     unsigned char RBIF:1;
706     unsigned char INTF:1;
707     unsigned char T0IF:1;
708     unsigned char RBIE:1;
709     unsigned char INTE:1;
710     unsigned char T0IE:1;
711     unsigned char PEIE:1;
712     unsigned char GIE:1;
713   };
714   struct {
715     unsigned char :1;
716     unsigned char :1;
717     unsigned char TMR0IF:1;
718     unsigned char :1;
719     unsigned char :1;
720     unsigned char TMR0IE:1;
721     unsigned char :1;
722     unsigned char :1;
723   };
724 } __INTCON_bits_t;
725 extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits;
726
727 #ifndef NO_BIT_DEFINES
728 #define RBIF                 INTCON_bits.RBIF
729 #define INTF                 INTCON_bits.INTF
730 #define T0IF                 INTCON_bits.T0IF
731 #define TMR0IF               INTCON_bits.TMR0IF
732 #define RBIE                 INTCON_bits.RBIE
733 #define INTE                 INTCON_bits.INTE
734 #define T0IE                 INTCON_bits.T0IE
735 #define TMR0IE               INTCON_bits.TMR0IE
736 #define PEIE                 INTCON_bits.PEIE
737 #define GIE                  INTCON_bits.GIE
738 #endif /* NO_BIT_DEFINES */
739
740 // ----- IOC bits --------------------
741 typedef union {
742   struct {
743     unsigned char :1;
744     unsigned char :1;
745     unsigned char :1;
746     unsigned char :1;
747     unsigned char IOC4:1;
748     unsigned char IOC5:1;
749     unsigned char IOC6:1;
750     unsigned char IOC7:1;
751   };
752 } __IOC_bits_t;
753 extern volatile __IOC_bits_t __at(IOC_ADDR) IOC_bits;
754
755 #ifndef NO_BIT_DEFINES
756 #define IOC4                 IOC_bits.IOC4
757 #define IOC5                 IOC_bits.IOC5
758 #define IOC6                 IOC_bits.IOC6
759 #define IOC7                 IOC_bits.IOC7
760 #endif /* NO_BIT_DEFINES */
761
762 // ----- IOCB bits --------------------
763 typedef union {
764   struct {
765     unsigned char :1;
766     unsigned char :1;
767     unsigned char :1;
768     unsigned char :1;
769     unsigned char IOCB4:1;
770     unsigned char IOCB5:1;
771     unsigned char IOCB6:1;
772     unsigned char IOCB7:1;
773   };
774 } __IOCB_bits_t;
775 extern volatile __IOCB_bits_t __at(IOCB_ADDR) IOCB_bits;
776
777 #ifndef NO_BIT_DEFINES
778 #define IOCB4                IOCB_bits.IOCB4
779 #define IOCB5                IOCB_bits.IOCB5
780 #define IOCB6                IOCB_bits.IOCB6
781 #define IOCB7                IOCB_bits.IOCB7
782 #endif /* NO_BIT_DEFINES */
783
784 // ----- LCDCON bits --------------------
785 typedef union {
786   struct {
787     unsigned char LMUX0:1;
788     unsigned char LMUX1:1;
789     unsigned char CS0:1;
790     unsigned char CS1:1;
791     unsigned char VLCDEN:1;
792     unsigned char WERR:1;
793     unsigned char SLPEN:1;
794     unsigned char LCDEN:1;
795   };
796 } __LCDCON_bits_t;
797 extern volatile __LCDCON_bits_t __at(LCDCON_ADDR) LCDCON_bits;
798
799 #ifndef NO_BIT_DEFINES
800 #define LMUX0                LCDCON_bits.LMUX0
801 #define LMUX1                LCDCON_bits.LMUX1
802 #define CS0                  LCDCON_bits.CS0
803 #define CS1                  LCDCON_bits.CS1
804 #define VLCDEN               LCDCON_bits.VLCDEN
805 #define WERR                 LCDCON_bits.WERR
806 #define SLPEN                LCDCON_bits.SLPEN
807 #define LCDEN                LCDCON_bits.LCDEN
808 #endif /* NO_BIT_DEFINES */
809
810 // ----- LCDDATA0 bits --------------------
811 typedef union {
812   struct {
813     unsigned char SEG0COM0:1;
814     unsigned char SEG1COM0:1;
815     unsigned char SEG2COM0:1;
816     unsigned char SEG3COM0:1;
817     unsigned char SEG4COM0:1;
818     unsigned char SEG5COM0:1;
819     unsigned char SEG6COM0:1;
820     unsigned char SEG7COM0:1;
821   };
822   struct {
823     unsigned char S0C0:1;
824     unsigned char S1C0:1;
825     unsigned char S2C0:1;
826     unsigned char S3C0:1;
827     unsigned char S4C0:1;
828     unsigned char S5C0:1;
829     unsigned char S6C0:1;
830     unsigned char S7C0:1;
831   };
832 } __LCDDATA0_bits_t;
833 extern volatile __LCDDATA0_bits_t __at(LCDDATA0_ADDR) LCDDATA0_bits;
834
835 #ifndef NO_BIT_DEFINES
836 #define SEG0COM0             LCDDATA0_bits.SEG0COM0
837 #define S0C0                 LCDDATA0_bits.S0C0
838 #define SEG1COM0             LCDDATA0_bits.SEG1COM0
839 #define S1C0                 LCDDATA0_bits.S1C0
840 #define SEG2COM0             LCDDATA0_bits.SEG2COM0
841 #define S2C0                 LCDDATA0_bits.S2C0
842 #define SEG3COM0             LCDDATA0_bits.SEG3COM0
843 #define S3C0                 LCDDATA0_bits.S3C0
844 #define SEG4COM0             LCDDATA0_bits.SEG4COM0
845 #define S4C0                 LCDDATA0_bits.S4C0
846 #define SEG5COM0             LCDDATA0_bits.SEG5COM0
847 #define S5C0                 LCDDATA0_bits.S5C0
848 #define SEG6COM0             LCDDATA0_bits.SEG6COM0
849 #define S6C0                 LCDDATA0_bits.S6C0
850 #define SEG7COM0             LCDDATA0_bits.SEG7COM0
851 #define S7C0                 LCDDATA0_bits.S7C0
852 #endif /* NO_BIT_DEFINES */
853
854 // ----- LCDDATA1 bits --------------------
855 typedef union {
856   struct {
857     unsigned char SEG8COM0:1;
858     unsigned char SEG9COM0:1;
859     unsigned char SEG10COM0:1;
860     unsigned char SEG11COM0:1;
861     unsigned char SEG12COM0:1;
862     unsigned char SEG13COM0:1;
863     unsigned char SEG14COM0:1;
864     unsigned char SEG15COM0:1;
865   };
866   struct {
867     unsigned char S8C0:1;
868     unsigned char S9C0:1;
869     unsigned char S10C0:1;
870     unsigned char S11C0:1;
871     unsigned char S12C0:1;
872     unsigned char S13C0:1;
873     unsigned char S14C0:1;
874     unsigned char S15C0:1;
875   };
876 } __LCDDATA1_bits_t;
877 extern volatile __LCDDATA1_bits_t __at(LCDDATA1_ADDR) LCDDATA1_bits;
878
879 #ifndef NO_BIT_DEFINES
880 #define SEG8COM0             LCDDATA1_bits.SEG8COM0
881 #define S8C0                 LCDDATA1_bits.S8C0
882 #define SEG9COM0             LCDDATA1_bits.SEG9COM0
883 #define S9C0                 LCDDATA1_bits.S9C0
884 #define SEG10COM0            LCDDATA1_bits.SEG10COM0
885 #define S10C0                LCDDATA1_bits.S10C0
886 #define SEG11COM0            LCDDATA1_bits.SEG11COM0
887 #define S11C0                LCDDATA1_bits.S11C0
888 #define SEG12COM0            LCDDATA1_bits.SEG12COM0
889 #define S12C0                LCDDATA1_bits.S12C0
890 #define SEG13COM0            LCDDATA1_bits.SEG13COM0
891 #define S13C0                LCDDATA1_bits.S13C0
892 #define SEG14COM0            LCDDATA1_bits.SEG14COM0
893 #define S14C0                LCDDATA1_bits.S14C0
894 #define SEG15COM0            LCDDATA1_bits.SEG15COM0
895 #define S15C0                LCDDATA1_bits.S15C0
896 #endif /* NO_BIT_DEFINES */
897
898 // ----- LCDDATA10 bits --------------------
899 typedef union {
900   struct {
901     unsigned char SEG8COM3:1;
902     unsigned char SEG9COM3:1;
903     unsigned char SEG10COM3:1;
904     unsigned char SEG11COM3:1;
905     unsigned char SEG12COM3:1;
906     unsigned char SEG13COM3:1;
907     unsigned char SEG14COM3:1;
908     unsigned char SEG15COM3:1;
909   };
910   struct {
911     unsigned char S8C3:1;
912     unsigned char S9C3:1;
913     unsigned char S10C3:1;
914     unsigned char S11C3:1;
915     unsigned char S12C3:1;
916     unsigned char S13C3:1;
917     unsigned char S14C3:1;
918     unsigned char S15C3:1;
919   };
920 } __LCDDATA10_bits_t;
921 extern volatile __LCDDATA10_bits_t __at(LCDDATA10_ADDR) LCDDATA10_bits;
922
923 #ifndef NO_BIT_DEFINES
924 #define SEG8COM3             LCDDATA10_bits.SEG8COM3
925 #define S8C3                 LCDDATA10_bits.S8C3
926 #define SEG9COM3             LCDDATA10_bits.SEG9COM3
927 #define S9C3                 LCDDATA10_bits.S9C3
928 #define SEG10COM3            LCDDATA10_bits.SEG10COM3
929 #define S10C3                LCDDATA10_bits.S10C3
930 #define SEG11COM3            LCDDATA10_bits.SEG11COM3
931 #define S11C3                LCDDATA10_bits.S11C3
932 #define SEG12COM3            LCDDATA10_bits.SEG12COM3
933 #define S12C3                LCDDATA10_bits.S12C3
934 #define SEG13COM3            LCDDATA10_bits.SEG13COM3
935 #define S13C3                LCDDATA10_bits.S13C3
936 #define SEG14COM3            LCDDATA10_bits.SEG14COM3
937 #define S14C3                LCDDATA10_bits.S14C3
938 #define SEG15COM3            LCDDATA10_bits.SEG15COM3
939 #define S15C3                LCDDATA10_bits.S15C3
940 #endif /* NO_BIT_DEFINES */
941
942 // ----- LCDDATA3 bits --------------------
943 typedef union {
944   struct {
945     unsigned char SEG0COM1:1;
946     unsigned char SEG1COM1:1;
947     unsigned char SEG2COM1:1;
948     unsigned char SEG3COM1:1;
949     unsigned char SEG4COM1:1;
950     unsigned char SEG5COM1:1;
951     unsigned char SEG6COM1:1;
952     unsigned char SEG7COM1:1;
953   };
954   struct {
955     unsigned char S0C1:1;
956     unsigned char S1C1:1;
957     unsigned char S2C1:1;
958     unsigned char S3C1:1;
959     unsigned char S4C1:1;
960     unsigned char S5C1:1;
961     unsigned char S6C1:1;
962     unsigned char S7C1:1;
963   };
964 } __LCDDATA3_bits_t;
965 extern volatile __LCDDATA3_bits_t __at(LCDDATA3_ADDR) LCDDATA3_bits;
966
967 #ifndef NO_BIT_DEFINES
968 #define SEG0COM1             LCDDATA3_bits.SEG0COM1
969 #define S0C1                 LCDDATA3_bits.S0C1
970 #define SEG1COM1             LCDDATA3_bits.SEG1COM1
971 #define S1C1                 LCDDATA3_bits.S1C1
972 #define SEG2COM1             LCDDATA3_bits.SEG2COM1
973 #define S2C1                 LCDDATA3_bits.S2C1
974 #define SEG3COM1             LCDDATA3_bits.SEG3COM1
975 #define S3C1                 LCDDATA3_bits.S3C1
976 #define SEG4COM1             LCDDATA3_bits.SEG4COM1
977 #define S4C1                 LCDDATA3_bits.S4C1
978 #define SEG5COM1             LCDDATA3_bits.SEG5COM1
979 #define S5C1                 LCDDATA3_bits.S5C1
980 #define SEG6COM1             LCDDATA3_bits.SEG6COM1
981 #define S6C1                 LCDDATA3_bits.S6C1
982 #define SEG7COM1             LCDDATA3_bits.SEG7COM1
983 #define S7C1                 LCDDATA3_bits.S7C1
984 #endif /* NO_BIT_DEFINES */
985
986 // ----- LCDDATA4 bits --------------------
987 typedef union {
988   struct {
989     unsigned char SEG8COM1:1;
990     unsigned char SEG9COM1:1;
991     unsigned char SEG10COM1:1;
992     unsigned char SEG11COM1:1;
993     unsigned char SEG12COM1:1;
994     unsigned char SEG13COM1:1;
995     unsigned char SEG14COM1:1;
996     unsigned char SEG15COM1:1;
997   };
998   struct {
999     unsigned char S8C1:1;
1000     unsigned char S9C1:1;
1001     unsigned char S10C1:1;
1002     unsigned char S11C1:1;
1003     unsigned char S12C1:1;
1004     unsigned char S13C1:1;
1005     unsigned char S14C1:1;
1006     unsigned char S15C1:1;
1007   };
1008 } __LCDDATA4_bits_t;
1009 extern volatile __LCDDATA4_bits_t __at(LCDDATA4_ADDR) LCDDATA4_bits;
1010
1011 #ifndef NO_BIT_DEFINES
1012 #define SEG8COM1             LCDDATA4_bits.SEG8COM1
1013 #define S8C1                 LCDDATA4_bits.S8C1
1014 #define SEG9COM1             LCDDATA4_bits.SEG9COM1
1015 #define S9C1                 LCDDATA4_bits.S9C1
1016 #define SEG10COM1            LCDDATA4_bits.SEG10COM1
1017 #define S10C1                LCDDATA4_bits.S10C1
1018 #define SEG11COM1            LCDDATA4_bits.SEG11COM1
1019 #define S11C1                LCDDATA4_bits.S11C1
1020 #define SEG12COM1            LCDDATA4_bits.SEG12COM1
1021 #define S12C1                LCDDATA4_bits.S12C1
1022 #define SEG13COM1            LCDDATA4_bits.SEG13COM1
1023 #define S13C1                LCDDATA4_bits.S13C1
1024 #define SEG14COM1            LCDDATA4_bits.SEG14COM1
1025 #define S14C1                LCDDATA4_bits.S14C1
1026 #define SEG15COM1            LCDDATA4_bits.SEG15COM1
1027 #define S15C1                LCDDATA4_bits.S15C1
1028 #endif /* NO_BIT_DEFINES */
1029
1030 // ----- LCDDATA6 bits --------------------
1031 typedef union {
1032   struct {
1033     unsigned char SEG0COM2:1;
1034     unsigned char SEG1COM2:1;
1035     unsigned char SEG2COM2:1;
1036     unsigned char SEG3COM2:1;
1037     unsigned char SEG4COM2:1;
1038     unsigned char SEG5COM2:1;
1039     unsigned char SEG6COM2:1;
1040     unsigned char SEG7COM2:1;
1041   };
1042   struct {
1043     unsigned char S0C2:1;
1044     unsigned char S1C2:1;
1045     unsigned char S2C2:1;
1046     unsigned char S3C2:1;
1047     unsigned char S4C2:1;
1048     unsigned char S5C2:1;
1049     unsigned char S6C2:1;
1050     unsigned char S7C2:1;
1051   };
1052 } __LCDDATA6_bits_t;
1053 extern volatile __LCDDATA6_bits_t __at(LCDDATA6_ADDR) LCDDATA6_bits;
1054
1055 #ifndef NO_BIT_DEFINES
1056 #define SEG0COM2             LCDDATA6_bits.SEG0COM2
1057 #define S0C2                 LCDDATA6_bits.S0C2
1058 #define SEG1COM2             LCDDATA6_bits.SEG1COM2
1059 #define S1C2                 LCDDATA6_bits.S1C2
1060 #define SEG2COM2             LCDDATA6_bits.SEG2COM2
1061 #define S2C2                 LCDDATA6_bits.S2C2
1062 #define SEG3COM2             LCDDATA6_bits.SEG3COM2
1063 #define S3C2                 LCDDATA6_bits.S3C2
1064 #define SEG4COM2             LCDDATA6_bits.SEG4COM2
1065 #define S4C2                 LCDDATA6_bits.S4C2
1066 #define SEG5COM2             LCDDATA6_bits.SEG5COM2
1067 #define S5C2                 LCDDATA6_bits.S5C2
1068 #define SEG6COM2             LCDDATA6_bits.SEG6COM2
1069 #define S6C2                 LCDDATA6_bits.S6C2
1070 #define SEG7COM2             LCDDATA6_bits.SEG7COM2
1071 #define S7C2                 LCDDATA6_bits.S7C2
1072 #endif /* NO_BIT_DEFINES */
1073
1074 // ----- LCDDATA7 bits --------------------
1075 typedef union {
1076   struct {
1077     unsigned char SEG8COM2:1;
1078     unsigned char SEG9COM2:1;
1079     unsigned char SEG10COM2:1;
1080     unsigned char SEG11COM2:1;
1081     unsigned char SEG12COM2:1;
1082     unsigned char SEG13COM2:1;
1083     unsigned char SEG14COM2:1;
1084     unsigned char SEG15COM2:1;
1085   };
1086   struct {
1087     unsigned char S8C2:1;
1088     unsigned char S9C2:1;
1089     unsigned char S10C2:1;
1090     unsigned char S11C2:1;
1091     unsigned char S12C2:1;
1092     unsigned char S13C2:1;
1093     unsigned char S14C2:1;
1094     unsigned char S15C2:1;
1095   };
1096 } __LCDDATA7_bits_t;
1097 extern volatile __LCDDATA7_bits_t __at(LCDDATA7_ADDR) LCDDATA7_bits;
1098
1099 #ifndef NO_BIT_DEFINES
1100 #define SEG8COM2             LCDDATA7_bits.SEG8COM2
1101 #define S8C2                 LCDDATA7_bits.S8C2
1102 #define SEG9COM2             LCDDATA7_bits.SEG9COM2
1103 #define S9C2                 LCDDATA7_bits.S9C2
1104 #define SEG10COM2            LCDDATA7_bits.SEG10COM2
1105 #define S10C2                LCDDATA7_bits.S10C2
1106 #define SEG11COM2            LCDDATA7_bits.SEG11COM2
1107 #define S11C2                LCDDATA7_bits.S11C2
1108 #define SEG12COM2            LCDDATA7_bits.SEG12COM2
1109 #define S12C2                LCDDATA7_bits.S12C2
1110 #define SEG13COM2            LCDDATA7_bits.SEG13COM2
1111 #define S13C2                LCDDATA7_bits.S13C2
1112 #define SEG14COM2            LCDDATA7_bits.SEG14COM2
1113 #define S14C2                LCDDATA7_bits.S14C2
1114 #define SEG15COM2            LCDDATA7_bits.SEG15COM2
1115 #define S15C2                LCDDATA7_bits.S15C2
1116 #endif /* NO_BIT_DEFINES */
1117
1118 // ----- LCDDATA9 bits --------------------
1119 typedef union {
1120   struct {
1121     unsigned char SEG0COM3:1;
1122     unsigned char SEG1COM3:1;
1123     unsigned char SEG2COM3:1;
1124     unsigned char SEG3COM3:1;
1125     unsigned char SEG4COM3:1;
1126     unsigned char SEG5COM3:1;
1127     unsigned char SEG6COM3:1;
1128     unsigned char SEG7COM3:1;
1129   };
1130   struct {
1131     unsigned char S0C3:1;
1132     unsigned char S1C3:1;
1133     unsigned char S2C3:1;
1134     unsigned char S3C3:1;
1135     unsigned char S4C3:1;
1136     unsigned char S5C3:1;
1137     unsigned char S6C3:1;
1138     unsigned char S7C3:1;
1139   };
1140 } __LCDDATA9_bits_t;
1141 extern volatile __LCDDATA9_bits_t __at(LCDDATA9_ADDR) LCDDATA9_bits;
1142
1143 #ifndef NO_BIT_DEFINES
1144 #define SEG0COM3             LCDDATA9_bits.SEG0COM3
1145 #define S0C3                 LCDDATA9_bits.S0C3
1146 #define SEG1COM3             LCDDATA9_bits.SEG1COM3
1147 #define S1C3                 LCDDATA9_bits.S1C3
1148 #define SEG2COM3             LCDDATA9_bits.SEG2COM3
1149 #define S2C3                 LCDDATA9_bits.S2C3
1150 #define SEG3COM3             LCDDATA9_bits.SEG3COM3
1151 #define S3C3                 LCDDATA9_bits.S3C3
1152 #define SEG4COM3             LCDDATA9_bits.SEG4COM3
1153 #define S4C3                 LCDDATA9_bits.S4C3
1154 #define SEG5COM3             LCDDATA9_bits.SEG5COM3
1155 #define S5C3                 LCDDATA9_bits.S5C3
1156 #define SEG6COM3             LCDDATA9_bits.SEG6COM3
1157 #define S6C3                 LCDDATA9_bits.S6C3
1158 #define SEG7COM3             LCDDATA9_bits.SEG7COM3
1159 #define S7C3                 LCDDATA9_bits.S7C3
1160 #endif /* NO_BIT_DEFINES */
1161
1162 // ----- LCDPS bits --------------------
1163 typedef union {
1164   struct {
1165     unsigned char LP0:1;
1166     unsigned char LP1:1;
1167     unsigned char LP2:1;
1168     unsigned char LP3:1;
1169     unsigned char WA:1;
1170     unsigned char LCDA:1;
1171     unsigned char BIASMD:1;
1172     unsigned char WFT:1;
1173   };
1174 } __LCDPS_bits_t;
1175 extern volatile __LCDPS_bits_t __at(LCDPS_ADDR) LCDPS_bits;
1176
1177 #ifndef NO_BIT_DEFINES
1178 #define LP0                  LCDPS_bits.LP0
1179 #define LP1                  LCDPS_bits.LP1
1180 #define LP2                  LCDPS_bits.LP2
1181 #define LP3                  LCDPS_bits.LP3
1182 #define WA                   LCDPS_bits.WA
1183 #define LCDA                 LCDPS_bits.LCDA
1184 #define BIASMD               LCDPS_bits.BIASMD
1185 #define WFT                  LCDPS_bits.WFT
1186 #endif /* NO_BIT_DEFINES */
1187
1188 // ----- LCDSE0 bits --------------------
1189 typedef union {
1190   struct {
1191     unsigned char SE0:1;
1192     unsigned char SE1:1;
1193     unsigned char SE2:1;
1194     unsigned char SE3:1;
1195     unsigned char SE4:1;
1196     unsigned char SE5:1;
1197     unsigned char SE6:1;
1198     unsigned char SE7:1;
1199   };
1200   struct {
1201     unsigned char SEGEN0:1;
1202     unsigned char SEGEN1:1;
1203     unsigned char SEGEN2:1;
1204     unsigned char SEGEN3:1;
1205     unsigned char SEGEN4:1;
1206     unsigned char SEGEN5:1;
1207     unsigned char SEGEN6:1;
1208     unsigned char SEGEN7:1;
1209   };
1210 } __LCDSE0_bits_t;
1211 extern volatile __LCDSE0_bits_t __at(LCDSE0_ADDR) LCDSE0_bits;
1212
1213 #ifndef NO_BIT_DEFINES
1214 #define SE0                  LCDSE0_bits.SE0
1215 #define SEGEN0               LCDSE0_bits.SEGEN0
1216 #define SE1                  LCDSE0_bits.SE1
1217 #define SEGEN1               LCDSE0_bits.SEGEN1
1218 #define SE2                  LCDSE0_bits.SE2
1219 #define SEGEN2               LCDSE0_bits.SEGEN2
1220 #define SE3                  LCDSE0_bits.SE3
1221 #define SEGEN3               LCDSE0_bits.SEGEN3
1222 #define SE4                  LCDSE0_bits.SE4
1223 #define SEGEN4               LCDSE0_bits.SEGEN4
1224 #define SE5                  LCDSE0_bits.SE5
1225 #define SEGEN5               LCDSE0_bits.SEGEN5
1226 #define SE6                  LCDSE0_bits.SE6
1227 #define SEGEN6               LCDSE0_bits.SEGEN6
1228 #define SE7                  LCDSE0_bits.SE7
1229 #define SEGEN7               LCDSE0_bits.SEGEN7
1230 #endif /* NO_BIT_DEFINES */
1231
1232 // ----- LCDSE1 bits --------------------
1233 typedef union {
1234   struct {
1235     unsigned char SE8:1;
1236     unsigned char SE9:1;
1237     unsigned char SE10:1;
1238     unsigned char SE11:1;
1239     unsigned char SE12:1;
1240     unsigned char SE13:1;
1241     unsigned char SE14:1;
1242     unsigned char SE15:1;
1243   };
1244   struct {
1245     unsigned char SEGEN8:1;
1246     unsigned char SEGEN9:1;
1247     unsigned char SEGEN10:1;
1248     unsigned char SEGEN11:1;
1249     unsigned char SEGEN12:1;
1250     unsigned char SEGEN13:1;
1251     unsigned char SEGEN14:1;
1252     unsigned char SEGEN15:1;
1253   };
1254 } __LCDSE1_bits_t;
1255 extern volatile __LCDSE1_bits_t __at(LCDSE1_ADDR) LCDSE1_bits;
1256
1257 #ifndef NO_BIT_DEFINES
1258 #define SE8                  LCDSE1_bits.SE8
1259 #define SEGEN8               LCDSE1_bits.SEGEN8
1260 #define SE9                  LCDSE1_bits.SE9
1261 #define SEGEN9               LCDSE1_bits.SEGEN9
1262 #define SE10                 LCDSE1_bits.SE10
1263 #define SEGEN10              LCDSE1_bits.SEGEN10
1264 #define SE11                 LCDSE1_bits.SE11
1265 #define SEGEN11              LCDSE1_bits.SEGEN11
1266 #define SE12                 LCDSE1_bits.SE12
1267 #define SEGEN12              LCDSE1_bits.SEGEN12
1268 #define SE13                 LCDSE1_bits.SE13
1269 #define SEGEN13              LCDSE1_bits.SEGEN13
1270 #define SE14                 LCDSE1_bits.SE14
1271 #define SEGEN14              LCDSE1_bits.SEGEN14
1272 #define SE15                 LCDSE1_bits.SE15
1273 #define SEGEN15              LCDSE1_bits.SEGEN15
1274 #endif /* NO_BIT_DEFINES */
1275
1276 // ----- LVDCON bits --------------------
1277 typedef union {
1278   struct {
1279     unsigned char LVDL0:1;
1280     unsigned char LVDL1:1;
1281     unsigned char LVDL2:1;
1282     unsigned char :1;
1283     unsigned char LVDEN:1;
1284     unsigned char IRVST:1;
1285     unsigned char :1;
1286     unsigned char :1;
1287   };
1288 } __LVDCON_bits_t;
1289 extern volatile __LVDCON_bits_t __at(LVDCON_ADDR) LVDCON_bits;
1290
1291 #ifndef NO_BIT_DEFINES
1292 #define LVDL0                LVDCON_bits.LVDL0
1293 #define LVDL1                LVDCON_bits.LVDL1
1294 #define LVDL2                LVDCON_bits.LVDL2
1295 #define LVDEN                LVDCON_bits.LVDEN
1296 #define IRVST                LVDCON_bits.IRVST
1297 #endif /* NO_BIT_DEFINES */
1298
1299 // ----- OPTION_REG bits --------------------
1300 typedef union {
1301   struct {
1302     unsigned char PS0:1;
1303     unsigned char PS1:1;
1304     unsigned char PS2:1;
1305     unsigned char PSA:1;
1306     unsigned char T0SE:1;
1307     unsigned char T0CS:1;
1308     unsigned char INTEDG:1;
1309     unsigned char NOT_RBPU:1;
1310   };
1311 } __OPTION_REG_bits_t;
1312 extern volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits;
1313
1314 #ifndef NO_BIT_DEFINES
1315 #define PS0                  OPTION_REG_bits.PS0
1316 #define PS1                  OPTION_REG_bits.PS1
1317 #define PS2                  OPTION_REG_bits.PS2
1318 #define PSA                  OPTION_REG_bits.PSA
1319 #define T0SE                 OPTION_REG_bits.T0SE
1320 #define T0CS                 OPTION_REG_bits.T0CS
1321 #define INTEDG               OPTION_REG_bits.INTEDG
1322 #define NOT_RBPU             OPTION_REG_bits.NOT_RBPU
1323 #endif /* NO_BIT_DEFINES */
1324
1325 // ----- OSCCON bits --------------------
1326 typedef union {
1327   struct {
1328     unsigned char SCS:1;
1329     unsigned char LTS:1;
1330     unsigned char HTS:1;
1331     unsigned char OSTS:1;
1332     unsigned char IRCF0:1;
1333     unsigned char IRCF1:1;
1334     unsigned char IRCF2:1;
1335     unsigned char :1;
1336   };
1337 } __OSCCON_bits_t;
1338 extern volatile __OSCCON_bits_t __at(OSCCON_ADDR) OSCCON_bits;
1339
1340 #ifndef NO_BIT_DEFINES
1341 #define SCS                  OSCCON_bits.SCS
1342 #define LTS                  OSCCON_bits.LTS
1343 #define HTS                  OSCCON_bits.HTS
1344 #define OSTS                 OSCCON_bits.OSTS
1345 #define IRCF0                OSCCON_bits.IRCF0
1346 #define IRCF1                OSCCON_bits.IRCF1
1347 #define IRCF2                OSCCON_bits.IRCF2
1348 #endif /* NO_BIT_DEFINES */
1349
1350 // ----- OSCTUNE bits --------------------
1351 typedef union {
1352   struct {
1353     unsigned char TUN0:1;
1354     unsigned char TUN1:1;
1355     unsigned char TUN2:1;
1356     unsigned char TUN3:1;
1357     unsigned char TUN4:1;
1358     unsigned char :1;
1359     unsigned char :1;
1360     unsigned char :1;
1361   };
1362 } __OSCTUNE_bits_t;
1363 extern volatile __OSCTUNE_bits_t __at(OSCTUNE_ADDR) OSCTUNE_bits;
1364
1365 #ifndef NO_BIT_DEFINES
1366 #define TUN0                 OSCTUNE_bits.TUN0
1367 #define TUN1                 OSCTUNE_bits.TUN1
1368 #define TUN2                 OSCTUNE_bits.TUN2
1369 #define TUN3                 OSCTUNE_bits.TUN3
1370 #define TUN4                 OSCTUNE_bits.TUN4
1371 #endif /* NO_BIT_DEFINES */
1372
1373 // ----- PCON bits --------------------
1374 typedef union {
1375   struct {
1376     unsigned char NOT_BO:1;
1377     unsigned char NOT_POR:1;
1378     unsigned char :1;
1379     unsigned char :1;
1380     unsigned char SBOREN:1;
1381     unsigned char :1;
1382     unsigned char :1;
1383     unsigned char :1;
1384   };
1385   struct {
1386     unsigned char NOT_BOR:1;
1387     unsigned char :1;
1388     unsigned char :1;
1389     unsigned char :1;
1390     unsigned char :1;
1391     unsigned char :1;
1392     unsigned char :1;
1393     unsigned char :1;
1394   };
1395 } __PCON_bits_t;
1396 extern volatile __PCON_bits_t __at(PCON_ADDR) PCON_bits;
1397
1398 #ifndef NO_BIT_DEFINES
1399 #define NOT_BO               PCON_bits.NOT_BO
1400 #define NOT_BOR              PCON_bits.NOT_BOR
1401 #define NOT_POR              PCON_bits.NOT_POR
1402 #define SBOREN               PCON_bits.SBOREN
1403 #endif /* NO_BIT_DEFINES */
1404
1405 // ----- PIE1 bits --------------------
1406 typedef union {
1407   struct {
1408     unsigned char TMR1IE:1;
1409     unsigned char TMR2IE:1;
1410     unsigned char CCP1IE:1;
1411     unsigned char SSPIE:1;
1412     unsigned char TXIE:1;
1413     unsigned char RCIE:1;
1414     unsigned char ADIE:1;
1415     unsigned char EEIE:1;
1416   };
1417 } __PIE1_bits_t;
1418 extern volatile __PIE1_bits_t __at(PIE1_ADDR) PIE1_bits;
1419
1420 #ifndef NO_BIT_DEFINES
1421 #define TMR1IE               PIE1_bits.TMR1IE
1422 #define TMR2IE               PIE1_bits.TMR2IE
1423 #define CCP1IE               PIE1_bits.CCP1IE
1424 #define SSPIE                PIE1_bits.SSPIE
1425 #define TXIE                 PIE1_bits.TXIE
1426 #define RCIE                 PIE1_bits.RCIE
1427 #define ADIE                 PIE1_bits.ADIE
1428 #define EEIE                 PIE1_bits.EEIE
1429 #endif /* NO_BIT_DEFINES */
1430
1431 // ----- PIE2 bits --------------------
1432 typedef union {
1433   struct {
1434     unsigned char :1;
1435     unsigned char :1;
1436     unsigned char LVDIE:1;
1437     unsigned char :1;
1438     unsigned char LCDIE:1;
1439     unsigned char C1IE:1;
1440     unsigned char C2IE:1;
1441     unsigned char OSFIE:1;
1442   };
1443 } __PIE2_bits_t;
1444 extern volatile __PIE2_bits_t __at(PIE2_ADDR) PIE2_bits;
1445
1446 #ifndef NO_BIT_DEFINES
1447 #define LVDIE                PIE2_bits.LVDIE
1448 #define LCDIE                PIE2_bits.LCDIE
1449 #define C1IE                 PIE2_bits.C1IE
1450 #define C2IE                 PIE2_bits.C2IE
1451 #define OSFIE                PIE2_bits.OSFIE
1452 #endif /* NO_BIT_DEFINES */
1453
1454 // ----- PIR1 bits --------------------
1455 typedef union {
1456   struct {
1457     unsigned char TMR1IF:1;
1458     unsigned char TMR2IF:1;
1459     unsigned char CCP1IF:1;
1460     unsigned char SSPIF:1;
1461     unsigned char TXIF:1;
1462     unsigned char RCIF:1;
1463     unsigned char ADIF:1;
1464     unsigned char EEIF:1;
1465   };
1466 } __PIR1_bits_t;
1467 extern volatile __PIR1_bits_t __at(PIR1_ADDR) PIR1_bits;
1468
1469 #ifndef NO_BIT_DEFINES
1470 #define TMR1IF               PIR1_bits.TMR1IF
1471 #define TMR2IF               PIR1_bits.TMR2IF
1472 #define CCP1IF               PIR1_bits.CCP1IF
1473 #define SSPIF                PIR1_bits.SSPIF
1474 #define TXIF                 PIR1_bits.TXIF
1475 #define RCIF                 PIR1_bits.RCIF
1476 #define ADIF                 PIR1_bits.ADIF
1477 #define EEIF                 PIR1_bits.EEIF
1478 #endif /* NO_BIT_DEFINES */
1479
1480 // ----- PIR2 bits --------------------
1481 typedef union {
1482   struct {
1483     unsigned char :1;
1484     unsigned char :1;
1485     unsigned char LVDIF:1;
1486     unsigned char :1;
1487     unsigned char LCDIF:1;
1488     unsigned char C1IF:1;
1489     unsigned char C2IF:1;
1490     unsigned char OSFIF:1;
1491   };
1492 } __PIR2_bits_t;
1493 extern volatile __PIR2_bits_t __at(PIR2_ADDR) PIR2_bits;
1494
1495 #ifndef NO_BIT_DEFINES
1496 #define LVDIF                PIR2_bits.LVDIF
1497 #define LCDIF                PIR2_bits.LCDIF
1498 #define C1IF                 PIR2_bits.C1IF
1499 #define C2IF                 PIR2_bits.C2IF
1500 #define OSFIF                PIR2_bits.OSFIF
1501 #endif /* NO_BIT_DEFINES */
1502
1503 // ----- PORTA bits --------------------
1504 typedef union {
1505   struct {
1506     unsigned char RA0:1;
1507     unsigned char RA1:1;
1508     unsigned char RA2:1;
1509     unsigned char RA3:1;
1510     unsigned char RA4:1;
1511     unsigned char RA5:1;
1512     unsigned char :1;
1513     unsigned char :1;
1514   };
1515 } __PORTA_bits_t;
1516 extern volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits;
1517
1518 #ifndef NO_BIT_DEFINES
1519 #define RA0                  PORTA_bits.RA0
1520 #define RA1                  PORTA_bits.RA1
1521 #define RA2                  PORTA_bits.RA2
1522 #define RA3                  PORTA_bits.RA3
1523 #define RA4                  PORTA_bits.RA4
1524 #define RA5                  PORTA_bits.RA5
1525 #endif /* NO_BIT_DEFINES */
1526
1527 // ----- PORTB bits --------------------
1528 typedef union {
1529   struct {
1530     unsigned char RB0:1;
1531     unsigned char RB1:1;
1532     unsigned char RB2:1;
1533     unsigned char RB3:1;
1534     unsigned char RB4:1;
1535     unsigned char RB5:1;
1536     unsigned char RB6:1;
1537     unsigned char RB7:1;
1538   };
1539 } __PORTB_bits_t;
1540 extern volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits;
1541
1542 #ifndef NO_BIT_DEFINES
1543 #define RB0                  PORTB_bits.RB0
1544 #define RB1                  PORTB_bits.RB1
1545 #define RB2                  PORTB_bits.RB2
1546 #define RB3                  PORTB_bits.RB3
1547 #define RB4                  PORTB_bits.RB4
1548 #define RB5                  PORTB_bits.RB5
1549 #define RB6                  PORTB_bits.RB6
1550 #define RB7                  PORTB_bits.RB7
1551 #endif /* NO_BIT_DEFINES */
1552
1553 // ----- PORTC bits --------------------
1554 typedef union {
1555   struct {
1556     unsigned char RC0:1;
1557     unsigned char RC1:1;
1558     unsigned char RC2:1;
1559     unsigned char RC3:1;
1560     unsigned char RC4:1;
1561     unsigned char RC5:1;
1562     unsigned char RC6:1;
1563     unsigned char RC7:1;
1564   };
1565 } __PORTC_bits_t;
1566 extern volatile __PORTC_bits_t __at(PORTC_ADDR) PORTC_bits;
1567
1568 #ifndef NO_BIT_DEFINES
1569 #define RC0                  PORTC_bits.RC0
1570 #define RC1                  PORTC_bits.RC1
1571 #define RC2                  PORTC_bits.RC2
1572 #define RC3                  PORTC_bits.RC3
1573 #define RC4                  PORTC_bits.RC4
1574 #define RC5                  PORTC_bits.RC5
1575 #define RC6                  PORTC_bits.RC6
1576 #define RC7                  PORTC_bits.RC7
1577 #endif /* NO_BIT_DEFINES */
1578
1579 // ----- PORTE bits --------------------
1580 typedef union {
1581   struct {
1582     unsigned char RE0:1;
1583     unsigned char RE1:1;
1584     unsigned char RE2:1;
1585     unsigned char :1;
1586     unsigned char :1;
1587     unsigned char :1;
1588     unsigned char :1;
1589     unsigned char :1;
1590   };
1591 } __PORTE_bits_t;
1592 extern volatile __PORTE_bits_t __at(PORTE_ADDR) PORTE_bits;
1593
1594 #ifndef NO_BIT_DEFINES
1595 #define RE0                  PORTE_bits.RE0
1596 #define RE1                  PORTE_bits.RE1
1597 #define RE2                  PORTE_bits.RE2
1598 #endif /* NO_BIT_DEFINES */
1599
1600 // ----- RCSTA bits --------------------
1601 typedef union {
1602   struct {
1603     unsigned char RX9D:1;
1604     unsigned char OERR:1;
1605     unsigned char FERR:1;
1606     unsigned char ADDEN:1;
1607     unsigned char CREN:1;
1608     unsigned char SREN:1;
1609     unsigned char RX9:1;
1610     unsigned char SPEN:1;
1611   };
1612   struct {
1613     unsigned char RCD8:1;
1614     unsigned char :1;
1615     unsigned char :1;
1616     unsigned char :1;
1617     unsigned char :1;
1618     unsigned char :1;
1619     unsigned char RC9:1;
1620     unsigned char :1;
1621   };
1622   struct {
1623     unsigned char :1;
1624     unsigned char :1;
1625     unsigned char :1;
1626     unsigned char :1;
1627     unsigned char :1;
1628     unsigned char :1;
1629     unsigned char NOT_RC8:1;
1630     unsigned char :1;
1631   };
1632   struct {
1633     unsigned char :1;
1634     unsigned char :1;
1635     unsigned char :1;
1636     unsigned char :1;
1637     unsigned char :1;
1638     unsigned char :1;
1639     unsigned char RC8_9:1;
1640     unsigned char :1;
1641   };
1642 } __RCSTA_bits_t;
1643 extern volatile __RCSTA_bits_t __at(RCSTA_ADDR) RCSTA_bits;
1644
1645 #ifndef NO_BIT_DEFINES
1646 #define RX9D                 RCSTA_bits.RX9D
1647 #define RCD8                 RCSTA_bits.RCD8
1648 #define OERR                 RCSTA_bits.OERR
1649 #define FERR                 RCSTA_bits.FERR
1650 #define ADDEN                RCSTA_bits.ADDEN
1651 #define CREN                 RCSTA_bits.CREN
1652 #define SREN                 RCSTA_bits.SREN
1653 #define RX9                  RCSTA_bits.RX9
1654 #define RC9                  RCSTA_bits.RC9
1655 #define NOT_RC8              RCSTA_bits.NOT_RC8
1656 #define RC8_9                RCSTA_bits.RC8_9
1657 #define SPEN                 RCSTA_bits.SPEN
1658 #endif /* NO_BIT_DEFINES */
1659
1660 // ----- SSPCON bits --------------------
1661 typedef union {
1662   struct {
1663     unsigned char SSPM0:1;
1664     unsigned char SSPM1:1;
1665     unsigned char SSPM2:1;
1666     unsigned char SSPM3:1;
1667     unsigned char CKP:1;
1668     unsigned char SSPEN:1;
1669     unsigned char SSPOV:1;
1670     unsigned char WCOL:1;
1671   };
1672 } __SSPCON_bits_t;
1673 extern volatile __SSPCON_bits_t __at(SSPCON_ADDR) SSPCON_bits;
1674
1675 #ifndef NO_BIT_DEFINES
1676 #define SSPM0                SSPCON_bits.SSPM0
1677 #define SSPM1                SSPCON_bits.SSPM1
1678 #define SSPM2                SSPCON_bits.SSPM2
1679 #define SSPM3                SSPCON_bits.SSPM3
1680 #define CKP                  SSPCON_bits.CKP
1681 #define SSPEN                SSPCON_bits.SSPEN
1682 #define SSPOV                SSPCON_bits.SSPOV
1683 #define WCOL                 SSPCON_bits.WCOL
1684 #endif /* NO_BIT_DEFINES */
1685
1686 // ----- SSPSTAT bits --------------------
1687 typedef union {
1688   struct {
1689     unsigned char BF:1;
1690     unsigned char UA:1;
1691     unsigned char R:1;
1692     unsigned char S:1;
1693     unsigned char P:1;
1694     unsigned char D:1;
1695     unsigned char CKE:1;
1696     unsigned char SMP:1;
1697   };
1698   struct {
1699     unsigned char :1;
1700     unsigned char :1;
1701     unsigned char I2C_READ:1;
1702     unsigned char I2C_START:1;
1703     unsigned char I2C_STOP:1;
1704     unsigned char I2C_DATA:1;
1705     unsigned char :1;
1706     unsigned char :1;
1707   };
1708   struct {
1709     unsigned char :1;
1710     unsigned char :1;
1711     unsigned char NOT_W:1;
1712     unsigned char :1;
1713     unsigned char :1;
1714     unsigned char NOT_A:1;
1715     unsigned char :1;
1716     unsigned char :1;
1717   };
1718   struct {
1719     unsigned char :1;
1720     unsigned char :1;
1721     unsigned char NOT_WRITE:1;
1722     unsigned char :1;
1723     unsigned char :1;
1724     unsigned char NOT_ADDRESS:1;
1725     unsigned char :1;
1726     unsigned char :1;
1727   };
1728   struct {
1729     unsigned char :1;
1730     unsigned char :1;
1731     unsigned char R_W:1;
1732     unsigned char :1;
1733     unsigned char :1;
1734     unsigned char D_A:1;
1735     unsigned char :1;
1736     unsigned char :1;
1737   };
1738   struct {
1739     unsigned char :1;
1740     unsigned char :1;
1741     unsigned char READ_WRITE:1;
1742     unsigned char :1;
1743     unsigned char :1;
1744     unsigned char DATA_ADDRESS:1;
1745     unsigned char :1;
1746     unsigned char :1;
1747   };
1748 } __SSPSTAT_bits_t;
1749 extern volatile __SSPSTAT_bits_t __at(SSPSTAT_ADDR) SSPSTAT_bits;
1750
1751 #ifndef NO_BIT_DEFINES
1752 #define BF                   SSPSTAT_bits.BF
1753 #define UA                   SSPSTAT_bits.UA
1754 #define R                    SSPSTAT_bits.R
1755 #define I2C_READ             SSPSTAT_bits.I2C_READ
1756 #define NOT_W                SSPSTAT_bits.NOT_W
1757 #define NOT_WRITE            SSPSTAT_bits.NOT_WRITE
1758 #define R_W                  SSPSTAT_bits.R_W
1759 #define READ_WRITE           SSPSTAT_bits.READ_WRITE
1760 #define S                    SSPSTAT_bits.S
1761 #define I2C_START            SSPSTAT_bits.I2C_START
1762 #define P                    SSPSTAT_bits.P
1763 #define I2C_STOP             SSPSTAT_bits.I2C_STOP
1764 #define D                    SSPSTAT_bits.D
1765 #define I2C_DATA             SSPSTAT_bits.I2C_DATA
1766 #define NOT_A                SSPSTAT_bits.NOT_A
1767 #define NOT_ADDRESS          SSPSTAT_bits.NOT_ADDRESS
1768 #define D_A                  SSPSTAT_bits.D_A
1769 #define DATA_ADDRESS         SSPSTAT_bits.DATA_ADDRESS
1770 #define CKE                  SSPSTAT_bits.CKE
1771 #define SMP                  SSPSTAT_bits.SMP
1772 #endif /* NO_BIT_DEFINES */
1773
1774 // ----- STATUS bits --------------------
1775 typedef union {
1776   struct {
1777     unsigned char C:1;
1778     unsigned char DC:1;
1779     unsigned char Z:1;
1780     unsigned char NOT_PD:1;
1781     unsigned char NOT_TO:1;
1782     unsigned char RP0:1;
1783     unsigned char RP1:1;
1784     unsigned char IRP:1;
1785   };
1786 } __STATUS_bits_t;
1787 extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits;
1788
1789 #ifndef NO_BIT_DEFINES
1790 #define C                    STATUS_bits.C
1791 #define DC                   STATUS_bits.DC
1792 #define Z                    STATUS_bits.Z
1793 #define NOT_PD               STATUS_bits.NOT_PD
1794 #define NOT_TO               STATUS_bits.NOT_TO
1795 #define RP0                  STATUS_bits.RP0
1796 #define RP1                  STATUS_bits.RP1
1797 #define IRP                  STATUS_bits.IRP
1798 #endif /* NO_BIT_DEFINES */
1799
1800 // ----- T1CON bits --------------------
1801 typedef union {
1802   struct {
1803     unsigned char TMR1ON:1;
1804     unsigned char TMR1CS:1;
1805     unsigned char NOT_T1SYNC:1;
1806     unsigned char T1OSCEN:1;
1807     unsigned char T1CKPS0:1;
1808     unsigned char T1CKPS1:1;
1809     unsigned char T1GE:1;
1810     unsigned char T1GINV:1;
1811   };
1812   struct {
1813     unsigned char :1;
1814     unsigned char :1;
1815     unsigned char T1INSYNC:1;
1816     unsigned char :1;
1817     unsigned char :1;
1818     unsigned char :1;
1819     unsigned char :1;
1820     unsigned char :1;
1821   };
1822   struct {
1823     unsigned char :1;
1824     unsigned char :1;
1825     unsigned char T1SYNC:1;
1826     unsigned char :1;
1827     unsigned char :1;
1828     unsigned char :1;
1829     unsigned char :1;
1830     unsigned char :1;
1831   };
1832 } __T1CON_bits_t;
1833 extern volatile __T1CON_bits_t __at(T1CON_ADDR) T1CON_bits;
1834
1835 #ifndef NO_BIT_DEFINES
1836 #define TMR1ON               T1CON_bits.TMR1ON
1837 #define TMR1CS               T1CON_bits.TMR1CS
1838 #define NOT_T1SYNC           T1CON_bits.NOT_T1SYNC
1839 #define T1INSYNC             T1CON_bits.T1INSYNC
1840 #define T1SYNC               T1CON_bits.T1SYNC
1841 #define T1OSCEN              T1CON_bits.T1OSCEN
1842 #define T1CKPS0              T1CON_bits.T1CKPS0
1843 #define T1CKPS1              T1CON_bits.T1CKPS1
1844 #define T1GE                 T1CON_bits.T1GE
1845 #define T1GINV               T1CON_bits.T1GINV
1846 #endif /* NO_BIT_DEFINES */
1847
1848 // ----- T2CON bits --------------------
1849 typedef union {
1850   struct {
1851     unsigned char T2CKPS0:1;
1852     unsigned char T2CKPS1:1;
1853     unsigned char TMR2ON:1;
1854     unsigned char TOUTPS0:1;
1855     unsigned char TOUTPS1:1;
1856     unsigned char TOUTPS2:1;
1857     unsigned char TOUTPS3:1;
1858     unsigned char :1;
1859   };
1860 } __T2CON_bits_t;
1861 extern volatile __T2CON_bits_t __at(T2CON_ADDR) T2CON_bits;
1862
1863 #ifndef NO_BIT_DEFINES
1864 #define T2CKPS0              T2CON_bits.T2CKPS0
1865 #define T2CKPS1              T2CON_bits.T2CKPS1
1866 #define TMR2ON               T2CON_bits.TMR2ON
1867 #define TOUTPS0              T2CON_bits.TOUTPS0
1868 #define TOUTPS1              T2CON_bits.TOUTPS1
1869 #define TOUTPS2              T2CON_bits.TOUTPS2
1870 #define TOUTPS3              T2CON_bits.TOUTPS3
1871 #endif /* NO_BIT_DEFINES */
1872
1873 // ----- TRISA bits --------------------
1874 typedef union {
1875   struct {
1876     unsigned char TRISA0:1;
1877     unsigned char TRISA1:1;
1878     unsigned char TRISA2:1;
1879     unsigned char TRISA3:1;
1880     unsigned char TRISA4:1;
1881     unsigned char TRISA5:1;
1882     unsigned char :1;
1883     unsigned char :1;
1884   };
1885 } __TRISA_bits_t;
1886 extern volatile __TRISA_bits_t __at(TRISA_ADDR) TRISA_bits;
1887
1888 #ifndef NO_BIT_DEFINES
1889 #define TRISA0               TRISA_bits.TRISA0
1890 #define TRISA1               TRISA_bits.TRISA1
1891 #define TRISA2               TRISA_bits.TRISA2
1892 #define TRISA3               TRISA_bits.TRISA3
1893 #define TRISA4               TRISA_bits.TRISA4
1894 #define TRISA5               TRISA_bits.TRISA5
1895 #endif /* NO_BIT_DEFINES */
1896
1897 // ----- TRISB bits --------------------
1898 typedef union {
1899   struct {
1900     unsigned char TRISB0:1;
1901     unsigned char TRISB1:1;
1902     unsigned char TRISB2:1;
1903     unsigned char TRISB3:1;
1904     unsigned char TRISB4:1;
1905     unsigned char TRISB5:1;
1906     unsigned char TRISB6:1;
1907     unsigned char TRISB7:1;
1908   };
1909 } __TRISB_bits_t;
1910 extern volatile __TRISB_bits_t __at(TRISB_ADDR) TRISB_bits;
1911
1912 #ifndef NO_BIT_DEFINES
1913 #define TRISB0               TRISB_bits.TRISB0
1914 #define TRISB1               TRISB_bits.TRISB1
1915 #define TRISB2               TRISB_bits.TRISB2
1916 #define TRISB3               TRISB_bits.TRISB3
1917 #define TRISB4               TRISB_bits.TRISB4
1918 #define TRISB5               TRISB_bits.TRISB5
1919 #define TRISB6               TRISB_bits.TRISB6
1920 #define TRISB7               TRISB_bits.TRISB7
1921 #endif /* NO_BIT_DEFINES */
1922
1923 // ----- TRISC bits --------------------
1924 typedef union {
1925   struct {
1926     unsigned char TRISC0:1;
1927     unsigned char TRISC1:1;
1928     unsigned char TRISC2:1;
1929     unsigned char TRISC3:1;
1930     unsigned char TRISC4:1;
1931     unsigned char TRISC5:1;
1932     unsigned char TRISC6:1;
1933     unsigned char TRISC7:1;
1934   };
1935 } __TRISC_bits_t;
1936 extern volatile __TRISC_bits_t __at(TRISC_ADDR) TRISC_bits;
1937
1938 #ifndef NO_BIT_DEFINES
1939 #define TRISC0               TRISC_bits.TRISC0
1940 #define TRISC1               TRISC_bits.TRISC1
1941 #define TRISC2               TRISC_bits.TRISC2
1942 #define TRISC3               TRISC_bits.TRISC3
1943 #define TRISC4               TRISC_bits.TRISC4
1944 #define TRISC5               TRISC_bits.TRISC5
1945 #define TRISC6               TRISC_bits.TRISC6
1946 #define TRISC7               TRISC_bits.TRISC7
1947 #endif /* NO_BIT_DEFINES */
1948
1949 // ----- TRISE bits --------------------
1950 typedef union {
1951   struct {
1952     unsigned char TRISE0:1;
1953     unsigned char TRISE1:1;
1954     unsigned char TRISE2:1;
1955     unsigned char :1;
1956     unsigned char :1;
1957     unsigned char :1;
1958     unsigned char :1;
1959     unsigned char :1;
1960   };
1961 } __TRISE_bits_t;
1962 extern volatile __TRISE_bits_t __at(TRISE_ADDR) TRISE_bits;
1963
1964 #ifndef NO_BIT_DEFINES
1965 #define TRISE0               TRISE_bits.TRISE0
1966 #define TRISE1               TRISE_bits.TRISE1
1967 #define TRISE2               TRISE_bits.TRISE2
1968 #endif /* NO_BIT_DEFINES */
1969
1970 // ----- TXSTA bits --------------------
1971 typedef union {
1972   struct {
1973     unsigned char TX9D:1;
1974     unsigned char TRMT:1;
1975     unsigned char BRGH:1;
1976     unsigned char :1;
1977     unsigned char SYNC:1;
1978     unsigned char TXEN:1;
1979     unsigned char TX9:1;
1980     unsigned char CSRC:1;
1981   };
1982   struct {
1983     unsigned char TXD8:1;
1984     unsigned char :1;
1985     unsigned char :1;
1986     unsigned char :1;
1987     unsigned char :1;
1988     unsigned char :1;
1989     unsigned char NOT_TX8:1;
1990     unsigned char :1;
1991   };
1992   struct {
1993     unsigned char :1;
1994     unsigned char :1;
1995     unsigned char :1;
1996     unsigned char :1;
1997     unsigned char :1;
1998     unsigned char :1;
1999     unsigned char TX8_9:1;
2000     unsigned char :1;
2001   };
2002 } __TXSTA_bits_t;
2003 extern volatile __TXSTA_bits_t __at(TXSTA_ADDR) TXSTA_bits;
2004
2005 #ifndef NO_BIT_DEFINES
2006 #define TX9D                 TXSTA_bits.TX9D
2007 #define TXD8                 TXSTA_bits.TXD8
2008 #define TRMT                 TXSTA_bits.TRMT
2009 #define BRGH                 TXSTA_bits.BRGH
2010 #define SYNC                 TXSTA_bits.SYNC
2011 #define TXEN                 TXSTA_bits.TXEN
2012 #define TX9                  TXSTA_bits.TX9
2013 #define NOT_TX8              TXSTA_bits.NOT_TX8
2014 #define TX8_9                TXSTA_bits.TX8_9
2015 #define CSRC                 TXSTA_bits.CSRC
2016 #endif /* NO_BIT_DEFINES */
2017
2018 // ----- VRCON bits --------------------
2019 typedef union {
2020   struct {
2021     unsigned char VR0:1;
2022     unsigned char VR1:1;
2023     unsigned char VR2:1;
2024     unsigned char VR3:1;
2025     unsigned char :1;
2026     unsigned char VRR:1;
2027     unsigned char :1;
2028     unsigned char VREN:1;
2029   };
2030 } __VRCON_bits_t;
2031 extern volatile __VRCON_bits_t __at(VRCON_ADDR) VRCON_bits;
2032
2033 #ifndef NO_BIT_DEFINES
2034 #define VR0                  VRCON_bits.VR0
2035 #define VR1                  VRCON_bits.VR1
2036 #define VR2                  VRCON_bits.VR2
2037 #define VR3                  VRCON_bits.VR3
2038 #define VRR                  VRCON_bits.VRR
2039 #define VREN                 VRCON_bits.VREN
2040 #endif /* NO_BIT_DEFINES */
2041
2042 // ----- WDTCON bits --------------------
2043 typedef union {
2044   struct {
2045     unsigned char SWDTEN:1;
2046     unsigned char WDTPS0:1;
2047     unsigned char WDTPS1:1;
2048     unsigned char WDTPS2:1;
2049     unsigned char WDTPS3:1;
2050     unsigned char :1;
2051     unsigned char :1;
2052     unsigned char :1;
2053   };
2054   struct {
2055     unsigned char SWDTE:1;
2056     unsigned char :1;
2057     unsigned char :1;
2058     unsigned char :1;
2059     unsigned char :1;
2060     unsigned char :1;
2061     unsigned char :1;
2062     unsigned char :1;
2063   };
2064 } __WDTCON_bits_t;
2065 extern volatile __WDTCON_bits_t __at(WDTCON_ADDR) WDTCON_bits;
2066
2067 #ifndef NO_BIT_DEFINES
2068 #define SWDTEN               WDTCON_bits.SWDTEN
2069 #define SWDTE                WDTCON_bits.SWDTE
2070 #define WDTPS0               WDTCON_bits.WDTPS0
2071 #define WDTPS1               WDTCON_bits.WDTPS1
2072 #define WDTPS2               WDTCON_bits.WDTPS2
2073 #define WDTPS3               WDTCON_bits.WDTPS3
2074 #endif /* NO_BIT_DEFINES */
2075
2076 // ----- WPU bits --------------------
2077 typedef union {
2078   struct {
2079     unsigned char WPU0:1;
2080     unsigned char WPU1:1;
2081     unsigned char WPU2:1;
2082     unsigned char WPU3:1;
2083     unsigned char WPU4:1;
2084     unsigned char WPU5:1;
2085     unsigned char WPU6:1;
2086     unsigned char WPU7:1;
2087   };
2088 } __WPU_bits_t;
2089 extern volatile __WPU_bits_t __at(WPU_ADDR) WPU_bits;
2090
2091 #ifndef NO_BIT_DEFINES
2092 #define WPU0                 WPU_bits.WPU0
2093 #define WPU1                 WPU_bits.WPU1
2094 #define WPU2                 WPU_bits.WPU2
2095 #define WPU3                 WPU_bits.WPU3
2096 #define WPU4                 WPU_bits.WPU4
2097 #define WPU5                 WPU_bits.WPU5
2098 #define WPU6                 WPU_bits.WPU6
2099 #define WPU7                 WPU_bits.WPU7
2100 #endif /* NO_BIT_DEFINES */
2101
2102 // ----- WPUB bits --------------------
2103 typedef union {
2104   struct {
2105     unsigned char WPUB0:1;
2106     unsigned char WPUB1:1;
2107     unsigned char WPUB2:1;
2108     unsigned char WPUB3:1;
2109     unsigned char WPUB4:1;
2110     unsigned char WPUB5:1;
2111     unsigned char WPUB6:1;
2112     unsigned char WPUB7:1;
2113   };
2114 } __WPUB_bits_t;
2115 extern volatile __WPUB_bits_t __at(WPUB_ADDR) WPUB_bits;
2116
2117 #ifndef NO_BIT_DEFINES
2118 #define WPUB0                WPUB_bits.WPUB0
2119 #define WPUB1                WPUB_bits.WPUB1
2120 #define WPUB2                WPUB_bits.WPUB2
2121 #define WPUB3                WPUB_bits.WPUB3
2122 #define WPUB4                WPUB_bits.WPUB4
2123 #define WPUB5                WPUB_bits.WPUB5
2124 #define WPUB6                WPUB_bits.WPUB6
2125 #define WPUB7                WPUB_bits.WPUB7
2126 #endif /* NO_BIT_DEFINES */
2127
2128 #endif