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