* support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
[fw/sdcc] / device / include / pic / pic16f913.h
index f2637bfe44a9f5bddf9ea587a39da92e10635141..5d4e9231a3d95d0b606493080992b78efc89902f 100644 (file)
@@ -4,7 +4,7 @@
 //
 // This header file was automatically generated by:
 //
-//     inc2h.pl V1.6
+//     inc2h.pl V4783
 //
 //     Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved
 //
 // Memory organization.
 //
 
-#pragma memmap INDF_ADDR INDF_ADDR SFR 0x000   // INDF
-#pragma memmap TMR0_ADDR TMR0_ADDR SFR 0x000   // TMR0
-#pragma memmap PCL_ADDR PCL_ADDR SFR 0x000     // PCL
-#pragma memmap STATUS_ADDR STATUS_ADDR SFR 0x000       // STATUS
-#pragma memmap FSR_ADDR FSR_ADDR SFR 0x000     // FSR
-#pragma memmap PORTA_ADDR PORTA_ADDR SFR 0x000 // PORTA
-#pragma memmap PORTB_ADDR PORTB_ADDR SFR 0x000 // PORTB
-#pragma memmap PORTC_ADDR PORTC_ADDR SFR 0x000 // PORTC
-#pragma memmap PORTE_ADDR PORTE_ADDR SFR 0x000 // PORTE
-#pragma memmap PCLATH_ADDR PCLATH_ADDR SFR 0x000       // PCLATH
-#pragma memmap INTCON_ADDR INTCON_ADDR SFR 0x000       // INTCON
-#pragma memmap PIR1_ADDR PIR1_ADDR SFR 0x000   // PIR1
-#pragma memmap PIR2_ADDR PIR2_ADDR SFR 0x000   // PIR2
-#pragma memmap TMR1L_ADDR TMR1L_ADDR SFR 0x000 // TMR1L
-#pragma memmap TMR1H_ADDR TMR1H_ADDR SFR 0x000 // TMR1H
-#pragma memmap T1CON_ADDR T1CON_ADDR SFR 0x000 // T1CON
-#pragma memmap TMR2_ADDR TMR2_ADDR SFR 0x000   // TMR2
-#pragma memmap T2CON_ADDR T2CON_ADDR SFR 0x000 // T2CON
-#pragma memmap SSPBUF_ADDR SSPBUF_ADDR SFR 0x000       // SSPBUF
-#pragma memmap SSPCON_ADDR SSPCON_ADDR SFR 0x000       // SSPCON
-#pragma memmap CCPR1L_ADDR CCPR1L_ADDR SFR 0x000       // CCPR1L
-#pragma memmap CCPR1H_ADDR CCPR1H_ADDR SFR 0x000       // CCPR1H
-#pragma memmap CCP1CON_ADDR CCP1CON_ADDR SFR 0x000     // CCP1CON
-#pragma memmap RCSTA_ADDR RCSTA_ADDR SFR 0x000 // RCSTA
-#pragma memmap TXREG_ADDR TXREG_ADDR SFR 0x000 // TXREG
-#pragma memmap RCREG_ADDR RCREG_ADDR SFR 0x000 // RCREG
-#pragma memmap ADRESH_ADDR ADRESH_ADDR SFR 0x000       // ADRESH
-#pragma memmap ADCON0_ADDR ADCON0_ADDR SFR 0x000       // ADCON0
-#pragma memmap OPTION_REG_ADDR OPTION_REG_ADDR SFR 0x000       // OPTION_REG
-#pragma memmap TRISA_ADDR TRISA_ADDR SFR 0x000 // TRISA
-#pragma memmap TRISB_ADDR TRISB_ADDR SFR 0x000 // TRISB
-#pragma memmap TRISC_ADDR TRISC_ADDR SFR 0x000 // TRISC
-#pragma memmap TRISE_ADDR TRISE_ADDR SFR 0x000 // TRISE
-#pragma memmap PIE1_ADDR PIE1_ADDR SFR 0x000   // PIE1
-#pragma memmap PIE2_ADDR PIE2_ADDR SFR 0x000   // PIE2
-#pragma memmap PCON_ADDR PCON_ADDR SFR 0x000   // PCON
-#pragma memmap OSCCON_ADDR OSCCON_ADDR SFR 0x000       // OSCCON
-#pragma memmap OSCTUNE_ADDR OSCTUNE_ADDR SFR 0x000     // OSCTUNE
-#pragma memmap ANSEL_ADDR ANSEL_ADDR SFR 0x000 // ANSEL
-#pragma memmap PR2_ADDR PR2_ADDR SFR 0x000     // PR2
-#pragma memmap SSPADD_ADDR SSPADD_ADDR SFR 0x000       // SSPADD
-#pragma memmap SSPSTAT_ADDR SSPSTAT_ADDR SFR 0x000     // SSPSTAT
-#pragma memmap WPUB_ADDR WPUB_ADDR SFR 0x000   // WPUB
-#pragma memmap WPU_ADDR WPU_ADDR SFR 0x000     // WPU
-#pragma memmap IOCB_ADDR IOCB_ADDR SFR 0x000   // IOCB
-#pragma memmap IOC_ADDR IOC_ADDR SFR 0x000     // IOC
-#pragma memmap CMCON1_ADDR CMCON1_ADDR SFR 0x000       // CMCON1
-#pragma memmap TXSTA_ADDR TXSTA_ADDR SFR 0x000 // TXSTA
-#pragma memmap SPBRG_ADDR SPBRG_ADDR SFR 0x000 // SPBRG
-#pragma memmap CMCON0_ADDR CMCON0_ADDR SFR 0x000       // CMCON0
-#pragma memmap VRCON_ADDR VRCON_ADDR SFR 0x000 // VRCON
-#pragma memmap ADRESL_ADDR ADRESL_ADDR SFR 0x000       // ADRESL
-#pragma memmap ADCON1_ADDR ADCON1_ADDR SFR 0x000       // ADCON1
-#pragma memmap WDTCON_ADDR WDTCON_ADDR SFR 0x000       // WDTCON
-#pragma memmap LCDCON_ADDR LCDCON_ADDR SFR 0x000       // LCDCON
-#pragma memmap LCDPS_ADDR LCDPS_ADDR SFR 0x000 // LCDPS
-#pragma memmap LVDCON_ADDR LVDCON_ADDR SFR 0x000       // LVDCON
-#pragma memmap EEDATL_ADDR EEDATL_ADDR SFR 0x000       // EEDATL
-#pragma memmap EEADRL_ADDR EEADRL_ADDR SFR 0x000       // EEADRL
-#pragma memmap EEDATH_ADDR EEDATH_ADDR SFR 0x000       // EEDATH
-#pragma memmap EEADRH_ADDR EEADRH_ADDR SFR 0x000       // EEADRH
-#pragma memmap LCDDATA0_ADDR LCDDATA0_ADDR SFR 0x000   // LCDDATA0
-#pragma memmap LCDDATA1_ADDR LCDDATA1_ADDR SFR 0x000   // LCDDATA1
-#pragma memmap LCDDATA3_ADDR LCDDATA3_ADDR SFR 0x000   // LCDDATA3
-#pragma memmap LCDDATA4_ADDR LCDDATA4_ADDR SFR 0x000   // LCDDATA4
-#pragma memmap LCDDATA6_ADDR LCDDATA6_ADDR SFR 0x000   // LCDDATA6
-#pragma memmap LCDDATA7_ADDR LCDDATA7_ADDR SFR 0x000   // LCDDATA7
-#pragma memmap LCDDATA9_ADDR LCDDATA9_ADDR SFR 0x000   // LCDDATA9
-#pragma memmap LCDDATA10_ADDR LCDDATA10_ADDR SFR 0x000 // LCDDATA10
-#pragma memmap LCDSE0_ADDR LCDSE0_ADDR SFR 0x000       // LCDSE0
-#pragma memmap LCDSE1_ADDR LCDSE1_ADDR SFR 0x000       // LCDSE1
-#pragma memmap EECON1_ADDR EECON1_ADDR SFR 0x000       // EECON1
-#pragma memmap EECON2_ADDR EECON2_ADDR SFR 0x000       // EECON2
 
 
 //         LIST
-// P16F913.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
+// P16F913.INC  Standard Header File, Version 1.04    Microchip Technology, Inc.
 //         NOLIST
 
 // This header file defines configurations, registers, and other useful bits of
 //1.00   06/11/04 Initial Release 
 //1.01 06/18/04 Corrected typo in 'bad ram' section
 //1.02 08/16/04 Added EECON2
+//1.03 05/20/05 Removed EECON2 from badram
+//1.04   10/05/05 Correct names of bits in ANSEL, Add EEADRH and EEADRL bit 
+//                     definitions
 
 
 //==========================================================================
 
 //----- Register Files------------------------------------------------------
 
-extern __data __at (INDF_ADDR) volatile char      INDF;
+extern __sfr  __at (INDF_ADDR)                    INDF;
 extern __sfr  __at (TMR0_ADDR)                    TMR0;
-extern __data __at (PCL_ADDR) volatile char       PCL;
+extern __sfr  __at (PCL_ADDR)                     PCL;
 extern __sfr  __at (STATUS_ADDR)                  STATUS;
 extern __sfr  __at (FSR_ADDR)                     FSR;
 extern __sfr  __at (PORTA_ADDR)                   PORTA;
@@ -336,7 +266,7 @@ extern __sfr  __at (EECON2_ADDR)                  EECON2;
 //----- ADCON0 Bits --------------------------------------------------------
 
 
-//----- OPTION Bits -----------------------------------------------------
+//----- OPTION_REG Bits -----------------------------------------------------
 
 
 //----- PIE1 Bits ----------------------------------------------------------
@@ -454,6 +384,12 @@ extern __sfr  __at (EECON2_ADDR)                  EECON2;
 //----- EECON1 Bits --------------------------------------------------------
 
 
+//----- EEADRH Bits --------------------------------------------------------
+
+
+//----- EEADRL Bits --------------------------------------------------------
+
+
 
 //==========================================================================
 //
@@ -465,7 +401,7 @@ extern __sfr  __at (EECON2_ADDR)                  EECON2;
 //         __BADRAM H'08', H'1B'-H'1D'
 //         __BADRAM H'88', H'9A'-H'9B'
 //         __BADRAM H'112', H'115', H'118', H'11B',H'11E'-H'11F'
-//         __BADRAM H'185', H'187'-H'189', H'18D'-H'1EF'
+//         __BADRAM H'185', H'187'-H'189', H'18E'-H'1EF'
 
 //==========================================================================
 //
@@ -537,6 +473,7 @@ typedef union {
 } __ADCON0_bits_t;
 extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits;
 
+#ifndef NO_BIT_DEFINES
 #define ADON                 ADCON0_bits.ADON
 #define NOT_DONE             ADCON0_bits.NOT_DONE
 #define GO_DONE              ADCON0_bits.GO_DONE
@@ -546,6 +483,7 @@ extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits;
 #define VCFG0                ADCON0_bits.VCFG0
 #define VCFG1                ADCON0_bits.VCFG1
 #define ADFM                 ADCON0_bits.ADFM
+#endif /* NO_BIT_DEFINES */
 
 // ----- ADCON1 bits --------------------
 typedef union {
@@ -562,12 +500,24 @@ typedef union {
 } __ADCON1_bits_t;
 extern volatile __ADCON1_bits_t __at(ADCON1_ADDR) ADCON1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define ADCS0                ADCON1_bits.ADCS0
 #define ADCS1                ADCON1_bits.ADCS1
 #define ADCS2                ADCON1_bits.ADCS2
+#endif /* NO_BIT_DEFINES */
 
 // ----- ANSEL bits --------------------
 typedef union {
+  struct {
+    unsigned char ANS0:1;
+    unsigned char ANS1:1;
+    unsigned char ANS2:1;
+    unsigned char ANS3:1;
+    unsigned char ANS4:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+  };
   struct {
     unsigned char AN0:1;
     unsigned char AN1:1;
@@ -581,11 +531,18 @@ typedef union {
 } __ANSEL_bits_t;
 extern volatile __ANSEL_bits_t __at(ANSEL_ADDR) ANSEL_bits;
 
+#ifndef NO_BIT_DEFINES
+#define ANS0                 ANSEL_bits.ANS0
 #define AN0                  ANSEL_bits.AN0
+#define ANS1                 ANSEL_bits.ANS1
 #define AN1                  ANSEL_bits.AN1
+#define ANS2                 ANSEL_bits.ANS2
 #define AN2                  ANSEL_bits.AN2
+#define ANS3                 ANSEL_bits.ANS3
 #define AN3                  ANSEL_bits.AN3
+#define ANS4                 ANSEL_bits.ANS4
 #define AN4                  ANSEL_bits.AN4
+#endif /* NO_BIT_DEFINES */
 
 // ----- CCP1CON bits --------------------
 typedef union {
@@ -602,12 +559,14 @@ typedef union {
 } __CCP1CON_bits_t;
 extern volatile __CCP1CON_bits_t __at(CCP1CON_ADDR) CCP1CON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define CCP1M0               CCP1CON_bits.CCP1M0
 #define CCP1M1               CCP1CON_bits.CCP1M1
 #define CCP1M2               CCP1CON_bits.CCP1M2
 #define CCP1M3               CCP1CON_bits.CCP1M3
 #define CCP1Y                CCP1CON_bits.CCP1Y
 #define CCP1X                CCP1CON_bits.CCP1X
+#endif /* NO_BIT_DEFINES */
 
 // ----- CMCON0 bits --------------------
 typedef union {
@@ -624,6 +583,7 @@ typedef union {
 } __CMCON0_bits_t;
 extern volatile __CMCON0_bits_t __at(CMCON0_ADDR) CMCON0_bits;
 
+#ifndef NO_BIT_DEFINES
 #define CM0                  CMCON0_bits.CM0
 #define CM1                  CMCON0_bits.CM1
 #define CM2                  CMCON0_bits.CM2
@@ -632,6 +592,7 @@ extern volatile __CMCON0_bits_t __at(CMCON0_ADDR) CMCON0_bits;
 #define C2INV                CMCON0_bits.C2INV
 #define C1OUT                CMCON0_bits.C1OUT
 #define C2OUT                CMCON0_bits.C2OUT
+#endif /* NO_BIT_DEFINES */
 
 // ----- CMCON1 bits --------------------
 typedef union {
@@ -648,8 +609,59 @@ typedef union {
 } __CMCON1_bits_t;
 extern volatile __CMCON1_bits_t __at(CMCON1_ADDR) CMCON1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define C2SYNC               CMCON1_bits.C2SYNC
 #define T1GSS                CMCON1_bits.T1GSS
+#endif /* NO_BIT_DEFINES */
+
+// ----- EEADRH bits --------------------
+typedef union {
+  struct {
+    unsigned char EEADRH0:1;
+    unsigned char EEADRH1:1;
+    unsigned char EEADRH2:1;
+    unsigned char EEADRH3:1;
+    unsigned char EEADRH4:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __EEADRH_bits_t;
+extern volatile __EEADRH_bits_t __at(EEADRH_ADDR) EEADRH_bits;
+
+#ifndef NO_BIT_DEFINES
+#define EEADRH0              EEADRH_bits.EEADRH0
+#define EEADRH1              EEADRH_bits.EEADRH1
+#define EEADRH2              EEADRH_bits.EEADRH2
+#define EEADRH3              EEADRH_bits.EEADRH3
+#define EEADRH4              EEADRH_bits.EEADRH4
+#endif /* NO_BIT_DEFINES */
+
+// ----- EEADRL bits --------------------
+typedef union {
+  struct {
+    unsigned char EEADRL0:1;
+    unsigned char EEADRL1:1;
+    unsigned char EEADRL2:1;
+    unsigned char EEADRL3:1;
+    unsigned char EEADRL4:1;
+    unsigned char EEADRL5:1;
+    unsigned char EEADRL6:1;
+    unsigned char EEADRL7:1;
+  };
+} __EEADRL_bits_t;
+extern volatile __EEADRL_bits_t __at(EEADRL_ADDR) EEADRL_bits;
+
+#ifndef NO_BIT_DEFINES
+#define EEADRL0              EEADRL_bits.EEADRL0
+#define EEADRL1              EEADRL_bits.EEADRL1
+#define EEADRL2              EEADRL_bits.EEADRL2
+#define EEADRL3              EEADRL_bits.EEADRL3
+#define EEADRL4              EEADRL_bits.EEADRL4
+#define EEADRL5              EEADRL_bits.EEADRL5
+#define EEADRL6              EEADRL_bits.EEADRL6
+#define EEADRL7              EEADRL_bits.EEADRL7
+#endif /* NO_BIT_DEFINES */
 
 // ----- EECON1 bits --------------------
 typedef union {
@@ -676,6 +688,7 @@ typedef union {
 } __EECON1_bits_t;
 extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define RD                   EECON1_bits.RD
 #define EERD                 EECON1_bits.EERD
 #define WR                   EECON1_bits.WR
@@ -683,6 +696,7 @@ extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits;
 #define WREN                 EECON1_bits.WREN
 #define WRERR                EECON1_bits.WRERR
 #define EEPGD                EECON1_bits.EEPGD
+#endif /* NO_BIT_DEFINES */
 
 // ----- INTCON bits --------------------
 typedef union {
@@ -709,6 +723,7 @@ typedef union {
 } __INTCON_bits_t;
 extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define RBIF                 INTCON_bits.RBIF
 #define INTF                 INTCON_bits.INTF
 #define T0IF                 INTCON_bits.T0IF
@@ -719,6 +734,7 @@ extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits;
 #define TMR0IE               INTCON_bits.TMR0IE
 #define PEIE                 INTCON_bits.PEIE
 #define GIE                  INTCON_bits.GIE
+#endif /* NO_BIT_DEFINES */
 
 // ----- IOC bits --------------------
 typedef union {
@@ -735,10 +751,12 @@ typedef union {
 } __IOC_bits_t;
 extern volatile __IOC_bits_t __at(IOC_ADDR) IOC_bits;
 
+#ifndef NO_BIT_DEFINES
 #define IOC4                 IOC_bits.IOC4
 #define IOC5                 IOC_bits.IOC5
 #define IOC6                 IOC_bits.IOC6
 #define IOC7                 IOC_bits.IOC7
+#endif /* NO_BIT_DEFINES */
 
 // ----- IOCB bits --------------------
 typedef union {
@@ -755,10 +773,12 @@ typedef union {
 } __IOCB_bits_t;
 extern volatile __IOCB_bits_t __at(IOCB_ADDR) IOCB_bits;
 
+#ifndef NO_BIT_DEFINES
 #define IOCB4                IOCB_bits.IOCB4
 #define IOCB5                IOCB_bits.IOCB5
 #define IOCB6                IOCB_bits.IOCB6
 #define IOCB7                IOCB_bits.IOCB7
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDCON bits --------------------
 typedef union {
@@ -775,6 +795,7 @@ typedef union {
 } __LCDCON_bits_t;
 extern volatile __LCDCON_bits_t __at(LCDCON_ADDR) LCDCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define LMUX0                LCDCON_bits.LMUX0
 #define LMUX1                LCDCON_bits.LMUX1
 #define CS0                  LCDCON_bits.CS0
@@ -783,6 +804,7 @@ extern volatile __LCDCON_bits_t __at(LCDCON_ADDR) LCDCON_bits;
 #define WERR                 LCDCON_bits.WERR
 #define SLPEN                LCDCON_bits.SLPEN
 #define LCDEN                LCDCON_bits.LCDEN
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA0 bits --------------------
 typedef union {
@@ -809,6 +831,7 @@ typedef union {
 } __LCDDATA0_bits_t;
 extern volatile __LCDDATA0_bits_t __at(LCDDATA0_ADDR) LCDDATA0_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG0COM0             LCDDATA0_bits.SEG0COM0
 #define S0C0                 LCDDATA0_bits.S0C0
 #define SEG1COM0             LCDDATA0_bits.SEG1COM0
@@ -825,6 +848,7 @@ extern volatile __LCDDATA0_bits_t __at(LCDDATA0_ADDR) LCDDATA0_bits;
 #define S6C0                 LCDDATA0_bits.S6C0
 #define SEG7COM0             LCDDATA0_bits.SEG7COM0
 #define S7C0                 LCDDATA0_bits.S7C0
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA1 bits --------------------
 typedef union {
@@ -851,6 +875,7 @@ typedef union {
 } __LCDDATA1_bits_t;
 extern volatile __LCDDATA1_bits_t __at(LCDDATA1_ADDR) LCDDATA1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG8COM0             LCDDATA1_bits.SEG8COM0
 #define S8C0                 LCDDATA1_bits.S8C0
 #define SEG9COM0             LCDDATA1_bits.SEG9COM0
@@ -867,6 +892,7 @@ extern volatile __LCDDATA1_bits_t __at(LCDDATA1_ADDR) LCDDATA1_bits;
 #define S14C0                LCDDATA1_bits.S14C0
 #define SEG15COM0            LCDDATA1_bits.SEG15COM0
 #define S15C0                LCDDATA1_bits.S15C0
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA10 bits --------------------
 typedef union {
@@ -893,6 +919,7 @@ typedef union {
 } __LCDDATA10_bits_t;
 extern volatile __LCDDATA10_bits_t __at(LCDDATA10_ADDR) LCDDATA10_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG8COM3             LCDDATA10_bits.SEG8COM3
 #define S8C3                 LCDDATA10_bits.S8C3
 #define SEG9COM3             LCDDATA10_bits.SEG9COM3
@@ -909,6 +936,7 @@ extern volatile __LCDDATA10_bits_t __at(LCDDATA10_ADDR) LCDDATA10_bits;
 #define S14C3                LCDDATA10_bits.S14C3
 #define SEG15COM3            LCDDATA10_bits.SEG15COM3
 #define S15C3                LCDDATA10_bits.S15C3
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA3 bits --------------------
 typedef union {
@@ -935,6 +963,7 @@ typedef union {
 } __LCDDATA3_bits_t;
 extern volatile __LCDDATA3_bits_t __at(LCDDATA3_ADDR) LCDDATA3_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG0COM1             LCDDATA3_bits.SEG0COM1
 #define S0C1                 LCDDATA3_bits.S0C1
 #define SEG1COM1             LCDDATA3_bits.SEG1COM1
@@ -951,6 +980,7 @@ extern volatile __LCDDATA3_bits_t __at(LCDDATA3_ADDR) LCDDATA3_bits;
 #define S6C1                 LCDDATA3_bits.S6C1
 #define SEG7COM1             LCDDATA3_bits.SEG7COM1
 #define S7C1                 LCDDATA3_bits.S7C1
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA4 bits --------------------
 typedef union {
@@ -977,6 +1007,7 @@ typedef union {
 } __LCDDATA4_bits_t;
 extern volatile __LCDDATA4_bits_t __at(LCDDATA4_ADDR) LCDDATA4_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG8COM1             LCDDATA4_bits.SEG8COM1
 #define S8C1                 LCDDATA4_bits.S8C1
 #define SEG9COM1             LCDDATA4_bits.SEG9COM1
@@ -993,6 +1024,7 @@ extern volatile __LCDDATA4_bits_t __at(LCDDATA4_ADDR) LCDDATA4_bits;
 #define S14C1                LCDDATA4_bits.S14C1
 #define SEG15COM1            LCDDATA4_bits.SEG15COM1
 #define S15C1                LCDDATA4_bits.S15C1
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA6 bits --------------------
 typedef union {
@@ -1019,6 +1051,7 @@ typedef union {
 } __LCDDATA6_bits_t;
 extern volatile __LCDDATA6_bits_t __at(LCDDATA6_ADDR) LCDDATA6_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG0COM2             LCDDATA6_bits.SEG0COM2
 #define S0C2                 LCDDATA6_bits.S0C2
 #define SEG1COM2             LCDDATA6_bits.SEG1COM2
@@ -1035,6 +1068,7 @@ extern volatile __LCDDATA6_bits_t __at(LCDDATA6_ADDR) LCDDATA6_bits;
 #define S6C2                 LCDDATA6_bits.S6C2
 #define SEG7COM2             LCDDATA6_bits.SEG7COM2
 #define S7C2                 LCDDATA6_bits.S7C2
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA7 bits --------------------
 typedef union {
@@ -1061,6 +1095,7 @@ typedef union {
 } __LCDDATA7_bits_t;
 extern volatile __LCDDATA7_bits_t __at(LCDDATA7_ADDR) LCDDATA7_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG8COM2             LCDDATA7_bits.SEG8COM2
 #define S8C2                 LCDDATA7_bits.S8C2
 #define SEG9COM2             LCDDATA7_bits.SEG9COM2
@@ -1077,6 +1112,7 @@ extern volatile __LCDDATA7_bits_t __at(LCDDATA7_ADDR) LCDDATA7_bits;
 #define S14C2                LCDDATA7_bits.S14C2
 #define SEG15COM2            LCDDATA7_bits.SEG15COM2
 #define S15C2                LCDDATA7_bits.S15C2
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDDATA9 bits --------------------
 typedef union {
@@ -1103,6 +1139,7 @@ typedef union {
 } __LCDDATA9_bits_t;
 extern volatile __LCDDATA9_bits_t __at(LCDDATA9_ADDR) LCDDATA9_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SEG0COM3             LCDDATA9_bits.SEG0COM3
 #define S0C3                 LCDDATA9_bits.S0C3
 #define SEG1COM3             LCDDATA9_bits.SEG1COM3
@@ -1119,6 +1156,7 @@ extern volatile __LCDDATA9_bits_t __at(LCDDATA9_ADDR) LCDDATA9_bits;
 #define S6C3                 LCDDATA9_bits.S6C3
 #define SEG7COM3             LCDDATA9_bits.SEG7COM3
 #define S7C3                 LCDDATA9_bits.S7C3
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDPS bits --------------------
 typedef union {
@@ -1135,6 +1173,7 @@ typedef union {
 } __LCDPS_bits_t;
 extern volatile __LCDPS_bits_t __at(LCDPS_ADDR) LCDPS_bits;
 
+#ifndef NO_BIT_DEFINES
 #define LP0                  LCDPS_bits.LP0
 #define LP1                  LCDPS_bits.LP1
 #define LP2                  LCDPS_bits.LP2
@@ -1143,6 +1182,7 @@ extern volatile __LCDPS_bits_t __at(LCDPS_ADDR) LCDPS_bits;
 #define LCDA                 LCDPS_bits.LCDA
 #define BIASMD               LCDPS_bits.BIASMD
 #define WFT                  LCDPS_bits.WFT
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDSE0 bits --------------------
 typedef union {
@@ -1169,6 +1209,7 @@ typedef union {
 } __LCDSE0_bits_t;
 extern volatile __LCDSE0_bits_t __at(LCDSE0_ADDR) LCDSE0_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SE0                  LCDSE0_bits.SE0
 #define SEGEN0               LCDSE0_bits.SEGEN0
 #define SE1                  LCDSE0_bits.SE1
@@ -1185,6 +1226,7 @@ extern volatile __LCDSE0_bits_t __at(LCDSE0_ADDR) LCDSE0_bits;
 #define SEGEN6               LCDSE0_bits.SEGEN6
 #define SE7                  LCDSE0_bits.SE7
 #define SEGEN7               LCDSE0_bits.SEGEN7
+#endif /* NO_BIT_DEFINES */
 
 // ----- LCDSE1 bits --------------------
 typedef union {
@@ -1211,6 +1253,7 @@ typedef union {
 } __LCDSE1_bits_t;
 extern volatile __LCDSE1_bits_t __at(LCDSE1_ADDR) LCDSE1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SE8                  LCDSE1_bits.SE8
 #define SEGEN8               LCDSE1_bits.SEGEN8
 #define SE9                  LCDSE1_bits.SE9
@@ -1227,6 +1270,7 @@ extern volatile __LCDSE1_bits_t __at(LCDSE1_ADDR) LCDSE1_bits;
 #define SEGEN14              LCDSE1_bits.SEGEN14
 #define SE15                 LCDSE1_bits.SE15
 #define SEGEN15              LCDSE1_bits.SEGEN15
+#endif /* NO_BIT_DEFINES */
 
 // ----- LVDCON bits --------------------
 typedef union {
@@ -1243,11 +1287,13 @@ typedef union {
 } __LVDCON_bits_t;
 extern volatile __LVDCON_bits_t __at(LVDCON_ADDR) LVDCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define LVDL0                LVDCON_bits.LVDL0
 #define LVDL1                LVDCON_bits.LVDL1
 #define LVDL2                LVDCON_bits.LVDL2
 #define LVDEN                LVDCON_bits.LVDEN
 #define IRVST                LVDCON_bits.IRVST
+#endif /* NO_BIT_DEFINES */
 
 // ----- OPTION_REG bits --------------------
 typedef union {
@@ -1264,6 +1310,7 @@ typedef union {
 } __OPTION_REG_bits_t;
 extern volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits;
 
+#ifndef NO_BIT_DEFINES
 #define PS0                  OPTION_REG_bits.PS0
 #define PS1                  OPTION_REG_bits.PS1
 #define PS2                  OPTION_REG_bits.PS2
@@ -1272,6 +1319,7 @@ extern volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits;
 #define T0CS                 OPTION_REG_bits.T0CS
 #define INTEDG               OPTION_REG_bits.INTEDG
 #define NOT_RBPU             OPTION_REG_bits.NOT_RBPU
+#endif /* NO_BIT_DEFINES */
 
 // ----- OSCCON bits --------------------
 typedef union {
@@ -1288,6 +1336,7 @@ typedef union {
 } __OSCCON_bits_t;
 extern volatile __OSCCON_bits_t __at(OSCCON_ADDR) OSCCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SCS                  OSCCON_bits.SCS
 #define LTS                  OSCCON_bits.LTS
 #define HTS                  OSCCON_bits.HTS
@@ -1295,6 +1344,7 @@ extern volatile __OSCCON_bits_t __at(OSCCON_ADDR) OSCCON_bits;
 #define IRCF0                OSCCON_bits.IRCF0
 #define IRCF1                OSCCON_bits.IRCF1
 #define IRCF2                OSCCON_bits.IRCF2
+#endif /* NO_BIT_DEFINES */
 
 // ----- OSCTUNE bits --------------------
 typedef union {
@@ -1311,11 +1361,13 @@ typedef union {
 } __OSCTUNE_bits_t;
 extern volatile __OSCTUNE_bits_t __at(OSCTUNE_ADDR) OSCTUNE_bits;
 
+#ifndef NO_BIT_DEFINES
 #define TUN0                 OSCTUNE_bits.TUN0
 #define TUN1                 OSCTUNE_bits.TUN1
 #define TUN2                 OSCTUNE_bits.TUN2
 #define TUN3                 OSCTUNE_bits.TUN3
 #define TUN4                 OSCTUNE_bits.TUN4
+#endif /* NO_BIT_DEFINES */
 
 // ----- PCON bits --------------------
 typedef union {
@@ -1342,10 +1394,12 @@ typedef union {
 } __PCON_bits_t;
 extern volatile __PCON_bits_t __at(PCON_ADDR) PCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define NOT_BO               PCON_bits.NOT_BO
 #define NOT_BOR              PCON_bits.NOT_BOR
 #define NOT_POR              PCON_bits.NOT_POR
 #define SBOREN               PCON_bits.SBOREN
+#endif /* NO_BIT_DEFINES */
 
 // ----- PIE1 bits --------------------
 typedef union {
@@ -1362,6 +1416,7 @@ typedef union {
 } __PIE1_bits_t;
 extern volatile __PIE1_bits_t __at(PIE1_ADDR) PIE1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define TMR1IE               PIE1_bits.TMR1IE
 #define TMR2IE               PIE1_bits.TMR2IE
 #define CCP1IE               PIE1_bits.CCP1IE
@@ -1370,6 +1425,7 @@ extern volatile __PIE1_bits_t __at(PIE1_ADDR) PIE1_bits;
 #define RCIE                 PIE1_bits.RCIE
 #define ADIE                 PIE1_bits.ADIE
 #define EEIE                 PIE1_bits.EEIE
+#endif /* NO_BIT_DEFINES */
 
 // ----- PIE2 bits --------------------
 typedef union {
@@ -1386,11 +1442,13 @@ typedef union {
 } __PIE2_bits_t;
 extern volatile __PIE2_bits_t __at(PIE2_ADDR) PIE2_bits;
 
+#ifndef NO_BIT_DEFINES
 #define LVDIE                PIE2_bits.LVDIE
 #define LCDIE                PIE2_bits.LCDIE
 #define C1IE                 PIE2_bits.C1IE
 #define C2IE                 PIE2_bits.C2IE
 #define OSFIE                PIE2_bits.OSFIE
+#endif /* NO_BIT_DEFINES */
 
 // ----- PIR1 bits --------------------
 typedef union {
@@ -1407,6 +1465,7 @@ typedef union {
 } __PIR1_bits_t;
 extern volatile __PIR1_bits_t __at(PIR1_ADDR) PIR1_bits;
 
+#ifndef NO_BIT_DEFINES
 #define TMR1IF               PIR1_bits.TMR1IF
 #define TMR2IF               PIR1_bits.TMR2IF
 #define CCP1IF               PIR1_bits.CCP1IF
@@ -1415,6 +1474,7 @@ extern volatile __PIR1_bits_t __at(PIR1_ADDR) PIR1_bits;
 #define RCIF                 PIR1_bits.RCIF
 #define ADIF                 PIR1_bits.ADIF
 #define EEIF                 PIR1_bits.EEIF
+#endif /* NO_BIT_DEFINES */
 
 // ----- PIR2 bits --------------------
 typedef union {
@@ -1431,11 +1491,110 @@ typedef union {
 } __PIR2_bits_t;
 extern volatile __PIR2_bits_t __at(PIR2_ADDR) PIR2_bits;
 
+#ifndef NO_BIT_DEFINES
 #define LVDIF                PIR2_bits.LVDIF
 #define LCDIF                PIR2_bits.LCDIF
 #define C1IF                 PIR2_bits.C1IF
 #define C2IF                 PIR2_bits.C2IF
 #define OSFIF                PIR2_bits.OSFIF
+#endif /* NO_BIT_DEFINES */
+
+// ----- PORTA bits --------------------
+typedef union {
+  struct {
+    unsigned char RA0:1;
+    unsigned char RA1:1;
+    unsigned char RA2:1;
+    unsigned char RA3:1;
+    unsigned char RA4:1;
+    unsigned char RA5:1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __PORTA_bits_t;
+extern volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits;
+
+#ifndef NO_BIT_DEFINES
+#define RA0                  PORTA_bits.RA0
+#define RA1                  PORTA_bits.RA1
+#define RA2                  PORTA_bits.RA2
+#define RA3                  PORTA_bits.RA3
+#define RA4                  PORTA_bits.RA4
+#define RA5                  PORTA_bits.RA5
+#endif /* NO_BIT_DEFINES */
+
+// ----- PORTB bits --------------------
+typedef union {
+  struct {
+    unsigned char RB0:1;
+    unsigned char RB1:1;
+    unsigned char RB2:1;
+    unsigned char RB3:1;
+    unsigned char RB4:1;
+    unsigned char RB5:1;
+    unsigned char RB6:1;
+    unsigned char RB7:1;
+  };
+} __PORTB_bits_t;
+extern volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits;
+
+#ifndef NO_BIT_DEFINES
+#define RB0                  PORTB_bits.RB0
+#define RB1                  PORTB_bits.RB1
+#define RB2                  PORTB_bits.RB2
+#define RB3                  PORTB_bits.RB3
+#define RB4                  PORTB_bits.RB4
+#define RB5                  PORTB_bits.RB5
+#define RB6                  PORTB_bits.RB6
+#define RB7                  PORTB_bits.RB7
+#endif /* NO_BIT_DEFINES */
+
+// ----- PORTC bits --------------------
+typedef union {
+  struct {
+    unsigned char RC0:1;
+    unsigned char RC1:1;
+    unsigned char RC2:1;
+    unsigned char RC3:1;
+    unsigned char RC4:1;
+    unsigned char RC5:1;
+    unsigned char RC6:1;
+    unsigned char RC7:1;
+  };
+} __PORTC_bits_t;
+extern volatile __PORTC_bits_t __at(PORTC_ADDR) PORTC_bits;
+
+#ifndef NO_BIT_DEFINES
+#define RC0                  PORTC_bits.RC0
+#define RC1                  PORTC_bits.RC1
+#define RC2                  PORTC_bits.RC2
+#define RC3                  PORTC_bits.RC3
+#define RC4                  PORTC_bits.RC4
+#define RC5                  PORTC_bits.RC5
+#define RC6                  PORTC_bits.RC6
+#define RC7                  PORTC_bits.RC7
+#endif /* NO_BIT_DEFINES */
+
+// ----- PORTE bits --------------------
+typedef union {
+  struct {
+    unsigned char RE0:1;
+    unsigned char RE1:1;
+    unsigned char RE2:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __PORTE_bits_t;
+extern volatile __PORTE_bits_t __at(PORTE_ADDR) PORTE_bits;
+
+#ifndef NO_BIT_DEFINES
+#define RE0                  PORTE_bits.RE0
+#define RE1                  PORTE_bits.RE1
+#define RE2                  PORTE_bits.RE2
+#endif /* NO_BIT_DEFINES */
 
 // ----- RCSTA bits --------------------
 typedef union {
@@ -1482,6 +1641,7 @@ typedef union {
 } __RCSTA_bits_t;
 extern volatile __RCSTA_bits_t __at(RCSTA_ADDR) RCSTA_bits;
 
+#ifndef NO_BIT_DEFINES
 #define RX9D                 RCSTA_bits.RX9D
 #define RCD8                 RCSTA_bits.RCD8
 #define OERR                 RCSTA_bits.OERR
@@ -1494,6 +1654,7 @@ extern volatile __RCSTA_bits_t __at(RCSTA_ADDR) RCSTA_bits;
 #define NOT_RC8              RCSTA_bits.NOT_RC8
 #define RC8_9                RCSTA_bits.RC8_9
 #define SPEN                 RCSTA_bits.SPEN
+#endif /* NO_BIT_DEFINES */
 
 // ----- SSPCON bits --------------------
 typedef union {
@@ -1510,6 +1671,7 @@ typedef union {
 } __SSPCON_bits_t;
 extern volatile __SSPCON_bits_t __at(SSPCON_ADDR) SSPCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SSPM0                SSPCON_bits.SSPM0
 #define SSPM1                SSPCON_bits.SSPM1
 #define SSPM2                SSPCON_bits.SSPM2
@@ -1518,6 +1680,7 @@ extern volatile __SSPCON_bits_t __at(SSPCON_ADDR) SSPCON_bits;
 #define SSPEN                SSPCON_bits.SSPEN
 #define SSPOV                SSPCON_bits.SSPOV
 #define WCOL                 SSPCON_bits.WCOL
+#endif /* NO_BIT_DEFINES */
 
 // ----- SSPSTAT bits --------------------
 typedef union {
@@ -1584,6 +1747,7 @@ typedef union {
 } __SSPSTAT_bits_t;
 extern volatile __SSPSTAT_bits_t __at(SSPSTAT_ADDR) SSPSTAT_bits;
 
+#ifndef NO_BIT_DEFINES
 #define BF                   SSPSTAT_bits.BF
 #define UA                   SSPSTAT_bits.UA
 #define R                    SSPSTAT_bits.R
@@ -1604,6 +1768,7 @@ extern volatile __SSPSTAT_bits_t __at(SSPSTAT_ADDR) SSPSTAT_bits;
 #define DATA_ADDRESS         SSPSTAT_bits.DATA_ADDRESS
 #define CKE                  SSPSTAT_bits.CKE
 #define SMP                  SSPSTAT_bits.SMP
+#endif /* NO_BIT_DEFINES */
 
 // ----- STATUS bits --------------------
 typedef union {
@@ -1620,6 +1785,7 @@ typedef union {
 } __STATUS_bits_t;
 extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits;
 
+#ifndef NO_BIT_DEFINES
 #define C                    STATUS_bits.C
 #define DC                   STATUS_bits.DC
 #define Z                    STATUS_bits.Z
@@ -1628,6 +1794,7 @@ extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits;
 #define RP0                  STATUS_bits.RP0
 #define RP1                  STATUS_bits.RP1
 #define IRP                  STATUS_bits.IRP
+#endif /* NO_BIT_DEFINES */
 
 // ----- T1CON bits --------------------
 typedef union {
@@ -1664,6 +1831,7 @@ typedef union {
 } __T1CON_bits_t;
 extern volatile __T1CON_bits_t __at(T1CON_ADDR) T1CON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define TMR1ON               T1CON_bits.TMR1ON
 #define TMR1CS               T1CON_bits.TMR1CS
 #define NOT_T1SYNC           T1CON_bits.NOT_T1SYNC
@@ -1674,6 +1842,7 @@ extern volatile __T1CON_bits_t __at(T1CON_ADDR) T1CON_bits;
 #define T1CKPS1              T1CON_bits.T1CKPS1
 #define T1GE                 T1CON_bits.T1GE
 #define T1GINV               T1CON_bits.T1GINV
+#endif /* NO_BIT_DEFINES */
 
 // ----- T2CON bits --------------------
 typedef union {
@@ -1690,6 +1859,7 @@ typedef union {
 } __T2CON_bits_t;
 extern volatile __T2CON_bits_t __at(T2CON_ADDR) T2CON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define T2CKPS0              T2CON_bits.T2CKPS0
 #define T2CKPS1              T2CON_bits.T2CKPS1
 #define TMR2ON               T2CON_bits.TMR2ON
@@ -1697,6 +1867,104 @@ extern volatile __T2CON_bits_t __at(T2CON_ADDR) T2CON_bits;
 #define TOUTPS1              T2CON_bits.TOUTPS1
 #define TOUTPS2              T2CON_bits.TOUTPS2
 #define TOUTPS3              T2CON_bits.TOUTPS3
+#endif /* NO_BIT_DEFINES */
+
+// ----- TRISA bits --------------------
+typedef union {
+  struct {
+    unsigned char TRISA0:1;
+    unsigned char TRISA1:1;
+    unsigned char TRISA2:1;
+    unsigned char TRISA3:1;
+    unsigned char TRISA4:1;
+    unsigned char TRISA5:1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __TRISA_bits_t;
+extern volatile __TRISA_bits_t __at(TRISA_ADDR) TRISA_bits;
+
+#ifndef NO_BIT_DEFINES
+#define TRISA0               TRISA_bits.TRISA0
+#define TRISA1               TRISA_bits.TRISA1
+#define TRISA2               TRISA_bits.TRISA2
+#define TRISA3               TRISA_bits.TRISA3
+#define TRISA4               TRISA_bits.TRISA4
+#define TRISA5               TRISA_bits.TRISA5
+#endif /* NO_BIT_DEFINES */
+
+// ----- TRISB bits --------------------
+typedef union {
+  struct {
+    unsigned char TRISB0:1;
+    unsigned char TRISB1:1;
+    unsigned char TRISB2:1;
+    unsigned char TRISB3:1;
+    unsigned char TRISB4:1;
+    unsigned char TRISB5:1;
+    unsigned char TRISB6:1;
+    unsigned char TRISB7:1;
+  };
+} __TRISB_bits_t;
+extern volatile __TRISB_bits_t __at(TRISB_ADDR) TRISB_bits;
+
+#ifndef NO_BIT_DEFINES
+#define TRISB0               TRISB_bits.TRISB0
+#define TRISB1               TRISB_bits.TRISB1
+#define TRISB2               TRISB_bits.TRISB2
+#define TRISB3               TRISB_bits.TRISB3
+#define TRISB4               TRISB_bits.TRISB4
+#define TRISB5               TRISB_bits.TRISB5
+#define TRISB6               TRISB_bits.TRISB6
+#define TRISB7               TRISB_bits.TRISB7
+#endif /* NO_BIT_DEFINES */
+
+// ----- TRISC bits --------------------
+typedef union {
+  struct {
+    unsigned char TRISC0:1;
+    unsigned char TRISC1:1;
+    unsigned char TRISC2:1;
+    unsigned char TRISC3:1;
+    unsigned char TRISC4:1;
+    unsigned char TRISC5:1;
+    unsigned char TRISC6:1;
+    unsigned char TRISC7:1;
+  };
+} __TRISC_bits_t;
+extern volatile __TRISC_bits_t __at(TRISC_ADDR) TRISC_bits;
+
+#ifndef NO_BIT_DEFINES
+#define TRISC0               TRISC_bits.TRISC0
+#define TRISC1               TRISC_bits.TRISC1
+#define TRISC2               TRISC_bits.TRISC2
+#define TRISC3               TRISC_bits.TRISC3
+#define TRISC4               TRISC_bits.TRISC4
+#define TRISC5               TRISC_bits.TRISC5
+#define TRISC6               TRISC_bits.TRISC6
+#define TRISC7               TRISC_bits.TRISC7
+#endif /* NO_BIT_DEFINES */
+
+// ----- TRISE bits --------------------
+typedef union {
+  struct {
+    unsigned char TRISE0:1;
+    unsigned char TRISE1:1;
+    unsigned char TRISE2:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __TRISE_bits_t;
+extern volatile __TRISE_bits_t __at(TRISE_ADDR) TRISE_bits;
+
+#ifndef NO_BIT_DEFINES
+#define TRISE0               TRISE_bits.TRISE0
+#define TRISE1               TRISE_bits.TRISE1
+#define TRISE2               TRISE_bits.TRISE2
+#endif /* NO_BIT_DEFINES */
 
 // ----- TXSTA bits --------------------
 typedef union {
@@ -1733,6 +2001,7 @@ typedef union {
 } __TXSTA_bits_t;
 extern volatile __TXSTA_bits_t __at(TXSTA_ADDR) TXSTA_bits;
 
+#ifndef NO_BIT_DEFINES
 #define TX9D                 TXSTA_bits.TX9D
 #define TXD8                 TXSTA_bits.TXD8
 #define TRMT                 TXSTA_bits.TRMT
@@ -1743,6 +2012,7 @@ extern volatile __TXSTA_bits_t __at(TXSTA_ADDR) TXSTA_bits;
 #define NOT_TX8              TXSTA_bits.NOT_TX8
 #define TX8_9                TXSTA_bits.TX8_9
 #define CSRC                 TXSTA_bits.CSRC
+#endif /* NO_BIT_DEFINES */
 
 // ----- VRCON bits --------------------
 typedef union {
@@ -1759,12 +2029,14 @@ typedef union {
 } __VRCON_bits_t;
 extern volatile __VRCON_bits_t __at(VRCON_ADDR) VRCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define VR0                  VRCON_bits.VR0
 #define VR1                  VRCON_bits.VR1
 #define VR2                  VRCON_bits.VR2
 #define VR3                  VRCON_bits.VR3
 #define VRR                  VRCON_bits.VRR
 #define VREN                 VRCON_bits.VREN
+#endif /* NO_BIT_DEFINES */
 
 // ----- WDTCON bits --------------------
 typedef union {
@@ -1791,12 +2063,14 @@ typedef union {
 } __WDTCON_bits_t;
 extern volatile __WDTCON_bits_t __at(WDTCON_ADDR) WDTCON_bits;
 
+#ifndef NO_BIT_DEFINES
 #define SWDTEN               WDTCON_bits.SWDTEN
 #define SWDTE                WDTCON_bits.SWDTE
 #define WDTPS0               WDTCON_bits.WDTPS0
 #define WDTPS1               WDTCON_bits.WDTPS1
 #define WDTPS2               WDTCON_bits.WDTPS2
 #define WDTPS3               WDTCON_bits.WDTPS3
+#endif /* NO_BIT_DEFINES */
 
 // ----- WPU bits --------------------
 typedef union {
@@ -1813,6 +2087,7 @@ typedef union {
 } __WPU_bits_t;
 extern volatile __WPU_bits_t __at(WPU_ADDR) WPU_bits;
 
+#ifndef NO_BIT_DEFINES
 #define WPU0                 WPU_bits.WPU0
 #define WPU1                 WPU_bits.WPU1
 #define WPU2                 WPU_bits.WPU2
@@ -1821,6 +2096,7 @@ extern volatile __WPU_bits_t __at(WPU_ADDR) WPU_bits;
 #define WPU5                 WPU_bits.WPU5
 #define WPU6                 WPU_bits.WPU6
 #define WPU7                 WPU_bits.WPU7
+#endif /* NO_BIT_DEFINES */
 
 // ----- WPUB bits --------------------
 typedef union {
@@ -1837,6 +2113,7 @@ typedef union {
 } __WPUB_bits_t;
 extern volatile __WPUB_bits_t __at(WPUB_ADDR) WPUB_bits;
 
+#ifndef NO_BIT_DEFINES
 #define WPUB0                WPUB_bits.WPUB0
 #define WPUB1                WPUB_bits.WPUB1
 #define WPUB2                WPUB_bits.WPUB2
@@ -1845,5 +2122,6 @@ extern volatile __WPUB_bits_t __at(WPUB_ADDR) WPUB_bits;
 #define WPUB5                WPUB_bits.WPUB5
 #define WPUB6                WPUB_bits.WPUB6
 #define WPUB7                WPUB_bits.WPUB7
+#endif /* NO_BIT_DEFINES */
 
 #endif