/*
 * pic18f43k22.h - device specific declarations
 *
 * This file is part of the GNU PIC library for SDCC,
 * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
 *
 * It has been automatically generated by inc2h-pic16.pl,
 * (c) 2007 by Raphael Neider <rneider AT web.de>
 *
 * SDCC is licensed under the GNU Public license (GPL) v2. Note that
 * this license covers the code to the compiler and other executables,
 * tbut explicitly does not cover any code or objects generated by sdcc.
 *
 * For pic device libraries and header files which are derived from
 * Microchip header (.inc) and linker script (.lkr) files Microchip
 * requires that "The header files should state that they are only to be
 * used with authentic Microchip devices" which makes them incompatible
 * with the GPL. Pic device libraries and header files are located at
 * non-free/lib and non-free/include directories respectively.
 * Sdcc should be run with the --use-non-free command line option in
 * order to include non-free header files and libraries.
 *
 * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
 */

#ifndef __PIC18F43K22_H__
#define __PIC18F43K22_H__ 1



// Configuration Bits
#define __CONFIG1H              0x300001
#define __CONFIG2L              0x300002
#define __CONFIG2H              0x300003
#define __CONFIG3H              0x300005
#define __CONFIG4L              0x300006
#define __CONFIG5L              0x300008
#define __CONFIG5H              0x300009
#define __CONFIG6L              0x30000A
#define __CONFIG6H              0x30000B
#define __CONFIG7L              0x30000C
#define __CONFIG7H              0x30000D

// CONFIG1H Options
#define _FOSC_LP_1H             0xF0     // LP oscillator
#define _FOSC_XT_1H             0xF1     // XT oscillator
#define _FOSC_HSHP_1H           0xF2     // HS oscillator (high power > 16 MHz)
#define _FOSC_HSMP_1H           0xF3     // HS oscillator (medium power 4-16 MHz)
#define _FOSC_ECHP_1H           0xF4     // EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz)
#define _FOSC_ECHPIO6_1H        0xF5     // EC oscillator (high power, >16 MHz)
#define _FOSC_RC_1H             0xF6     // External RC oscillator, CLKOUT function on OSC2
#define _FOSC_RCIO6_1H          0xF7     // External RC oscillator
#define _FOSC_INTIO67_1H        0xF8     // Internal oscillator block
#define _FOSC_INTIO7_1H         0xF9     // Internal oscillator block, CLKOUT function on OSC2
#define _FOSC_ECMP_1H           0xFA     // EC oscillator, CLKOUT function on OSC2 (medium power, 500 kHz-16 MHz)
#define _FOSC_ECMPIO6_1H        0xFB     // EC oscillator (medium power, 500 kHz-16 MHz)
#define _FOSC_ECLP_1H           0xFC     // EC oscillator, CLKOUT function on OSC2 (low power, <500 kHz)
#define _FOSC_ECLPIO6_1H        0xFD     // EC oscillator (low power, <500 kHz)
#define _PLLCFG_OFF_1H          0xEF     // Oscillator used directly
#define _PLLCFG_ON_1H           0xFF     // Oscillator multiplied by 4
#define _PRICLKEN_OFF_1H        0xDF     // Primary clock can be disabled by software
#define _PRICLKEN_ON_1H         0xFF     // Primary clock is always enabled
#define _FCMEN_OFF_1H           0xBF     // Fail-Safe Clock Monitor disabled
#define _FCMEN_ON_1H            0xFF     // Fail-Safe Clock Monitor enabled
#define _IESO_OFF_1H            0x7F     // Oscillator Switchover mode disabled
#define _IESO_ON_1H             0xFF     // Oscillator Switchover mode enabled

// CONFIG2L Options
#define _PWRTEN_ON_2L           0xFE     // Power up timer enabled
#define _PWRTEN_OFF_2L          0xFF     // Power up timer disabled
#define _BOREN_OFF_2L           0xF9     // Brown-out Reset disabled in hardware and software
#define _BOREN_ON_2L            0xFB     // Brown-out Reset enabled and controlled by software (SBOREN is enabled)
#define _BOREN_NOSLP_2L         0xFD     // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
#define _BOREN_SBORDIS_2L       0xFF     // Brown-out Reset enabled in hardware only (SBOREN is disabled)
#define _BORV_285_2L            0xE7     // VBOR set to 2.85 V nominal
#define _BORV_250_2L            0xEF     // VBOR set to 2.50 V nominal
#define _BORV_220_2L            0xF7     // VBOR set to 2.20 V nominal
#define _BORV_190_2L            0xFF     // VBOR set to 1.90 V nominal

// CONFIG2H Options
#define _WDTEN_OFF_2H           0xFC     // Watch dog timer is always disabled. SWDTEN has no effect.
#define _WDTEN_NOSLP_2H         0xFD     // WDT is disabled in sleep, otherwise enabled. SWDTEN bit has no effect
#define _WDTEN_SWON_2H          0xFE     // WDT is controlled by SWDTEN bit of the WDTCON register
#define _WDTEN_ON_2H            0xFF     // WDT is always enabled. SWDTEN bit has no effect
#define _WDTPS_1_2H             0xC3     // 1:1
#define _WDTPS_2_2H             0xC7     // 1:2
#define _WDTPS_4_2H             0xCB     // 1:4
#define _WDTPS_8_2H             0xCF     // 1:8
#define _WDTPS_16_2H            0xD3     // 1:16
#define _WDTPS_32_2H            0xD7     // 1:32
#define _WDTPS_64_2H            0xDB     // 1:64
#define _WDTPS_128_2H           0xDF     // 1:128
#define _WDTPS_256_2H           0xE3     // 1:256
#define _WDTPS_512_2H           0xE7     // 1:512
#define _WDTPS_1024_2H          0xEB     // 1:1024
#define _WDTPS_2048_2H          0xEF     // 1:2048
#define _WDTPS_4096_2H          0xF3     // 1:4096
#define _WDTPS_8192_2H          0xF7     // 1:8192
#define _WDTPS_16384_2H         0xFB     // 1:16384
#define _WDTPS_32768_2H         0xFF     // 1:32768

// CONFIG3H Options
#define _CCP2MX_PORTB3_3H       0xFE     // CCP2 input/output is multiplexed with RB3
#define _CCP2MX_PORTC1_3H       0xFF     // CCP2 input/output is multiplexed with RC1
#define _PBADEN_OFF_3H          0xFD     // PORTB<5:0> pins are configured as digital I/O on Reset
#define _PBADEN_ON_3H           0xFF     // PORTB<5:0> pins are configured as analog input channels on Reset
#define _CCP3MX_PORTE0_3H       0xFB     // P3A/CCP3 input/output is mulitplexed with RE0
#define _CCP3MX_PORTB5_3H       0xFF     // P3A/CCP3 input/output is multiplexed with RB5
#define _HFOFST_OFF_3H          0xF7     // HFINTOSC output and ready status are delayed by the oscillator stable status
#define _HFOFST_ON_3H           0xFF     // HFINTOSC output and ready status are not delayed by the oscillator stable status
#define _T3CMX_PORTB5_3H        0xEF     // T3CKI is on RB5
#define _T3CMX_PORTC0_3H        0xFF     // T3CKI is on RC0
#define _P2BMX_PORTC0_3H        0xDF     // P2B is on RC0
#define _P2BMX_PORTD2_3H        0xFF     // P2B is on RD2
#define _MCLRE_INTMCLR_3H       0x7F     // RE3 input pin enabled; MCLR disabled
#define _MCLRE_EXTMCLR_3H       0xFF     // MCLR pin enabled, RE3 input pin disabled

// CONFIG4L Options
#define _STVREN_OFF_4L          0xFE     // Stack full/underflow will not cause Reset
#define _STVREN_ON_4L           0xFF     // Stack full/underflow will cause Reset
#define _LVP_OFF_4L             0xFB     // Single-Supply ICSP disabled
#define _LVP_ON_4L              0xFF     // Single-Supply ICSP enabled if MCLRE is also 1
#define _XINST_OFF_4L           0xBF     // Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#define _XINST_ON_4L            0xFF     // Instruction set extension and Indexed Addressing mode enabled
#define _DEBUG_ON_4L            0x7F     // Enabled
#define _DEBUG_OFF_4L           0xFF     // Disabled

// CONFIG5L Options
#define _CP0_ON_5L              0xFE     // Block 0 (000200-000FFFh) code-protected
#define _CP0_OFF_5L             0xFF     // Block 0 (000200-000FFFh) not code-protected
#define _CP1_ON_5L              0xFD     // Block 1 (001000-001FFFh) code-protected
#define _CP1_OFF_5L             0xFF     // Block 1 (001000-001FFFh) not code-protected

// CONFIG5H Options
#define _CPB_ON_5H              0xBF     // Boot block (000000-0001FFh) code-protected
#define _CPB_OFF_5H             0xFF     // Boot block (000000-0001FFh) not code-protected
#define _CPD_ON_5H              0x7F     // Data EEPROM code-protected
#define _CPD_OFF_5H             0xFF     // Data EEPROM not code-protected

// CONFIG6L Options
#define _WRT0_ON_6L             0xFE     // Block 0 (000200-000FFFh) write-protected
#define _WRT0_OFF_6L            0xFF     // Block 0 (000200-000FFFh) not write-protected
#define _WRT1_ON_6L             0xFD     // Block 1 (001000-001FFFh) write-protected
#define _WRT1_OFF_6L            0xFF     // Block 1 (001000-001FFFh) not write-protected

// CONFIG6H Options
#define _WRTC_ON_6H             0xDF     // Configuration registers (300000-3000FFh) write-protected
#define _WRTC_OFF_6H            0xFF     // Configuration registers (300000-3000FFh) not write-protected
#define _WRTB_ON_6H             0xBF     // Boot Block (000000-0001FFh) write-protected
#define _WRTB_OFF_6H            0xFF     // Boot Block (000000-0001FFh) not write-protected
#define _WRTD_ON_6H             0x7F     // Data EEPROM write-protected
#define _WRTD_OFF_6H            0xFF     // Data EEPROM not write-protected

// CONFIG7L Options
#define _EBTR0_ON_7L            0xFE     // Block 0 (000200-000FFFh) protected from table reads executed in other blocks
#define _EBTR0_OFF_7L           0xFF     // Block 0 (000200-000FFFh) not protected from table reads executed in other blocks
#define _EBTR1_ON_7L            0xFD     // Block 1 (001000-001FFFh) protected from table reads executed in other blocks
#define _EBTR1_OFF_7L           0xFF     // Block 1 (001000-001FFFh) not protected from table reads executed in other blocks

// CONFIG7H Options
#define _EBTRB_ON_7H            0xBF     // Boot Block (000000-0001FFh) protected from table reads executed in other blocks
#define _EBTRB_OFF_7H           0xFF     // Boot Block (000000-0001FFh) not protected from table reads executed in other blocks
#define _DEVID1                 0x3FFFFE
#define _DEVID2                 0x3FFFFF
#define _IDLOC0                 0x200000
#define _IDLOC1                 0x200001
#define _IDLOC2                 0x200002
#define _IDLOC3                 0x200003
#define _IDLOC4                 0x200004
#define _IDLOC5                 0x200005
#define _IDLOC6                 0x200006
#define _IDLOC7                 0x200007

extern __sfr __at (0xF38) ANSELA;
typedef union {
        struct {
                unsigned ANSA0          : 1;
                unsigned ANSA1          : 1;
                unsigned ANSA2          : 1;
                unsigned ANSA3          : 1;
                unsigned                : 1;
                unsigned ANSA5          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ANSELAbits_t;
extern volatile __ANSELAbits_t __at (0xF38) ANSELAbits;

extern __sfr __at (0xF39) ANSELB;
typedef union {
        struct {
                unsigned ANSB0          : 1;
                unsigned ANSB1          : 1;
                unsigned ANSB2          : 1;
                unsigned ANSB3          : 1;
                unsigned ANSB4          : 1;
                unsigned ANSB5          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ANSELBbits_t;
extern volatile __ANSELBbits_t __at (0xF39) ANSELBbits;

extern __sfr __at (0xF3A) ANSELC;
typedef union {
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned ANSC2          : 1;
                unsigned ANSC3          : 1;
                unsigned ANSC4          : 1;
                unsigned ANSC5          : 1;
                unsigned ANSC6          : 1;
                unsigned ANSC7          : 1;
        };
} __ANSELCbits_t;
extern volatile __ANSELCbits_t __at (0xF3A) ANSELCbits;

extern __sfr __at (0xF3B) ANSELD;
typedef union {
        struct {
                unsigned ANSD0          : 1;
                unsigned ANSD1          : 1;
                unsigned ANSD2          : 1;
                unsigned ANSD3          : 1;
                unsigned ANSD4          : 1;
                unsigned ANSD5          : 1;
                unsigned ANSD6          : 1;
                unsigned ANSD7          : 1;
        };
} __ANSELDbits_t;
extern volatile __ANSELDbits_t __at (0xF3B) ANSELDbits;

extern __sfr __at (0xF3C) ANSELE;
typedef union {
        struct {
                unsigned ANSE0          : 1;
                unsigned ANSE1          : 1;
                unsigned ANSE2          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ANSELEbits_t;
extern volatile __ANSELEbits_t __at (0xF3C) ANSELEbits;

extern __sfr __at (0xF3D) PMD2;
typedef union {
        struct {
                unsigned ADCMD          : 1;
                unsigned CMP1MD         : 1;
                unsigned CMP2MD         : 1;
                unsigned CTMUMD         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PMD2bits_t;
extern volatile __PMD2bits_t __at (0xF3D) PMD2bits;

extern __sfr __at (0xF3E) PMD1;
typedef union {
        struct {
                unsigned CCP1MD         : 1;
                unsigned CCP2MD         : 1;
                unsigned CCP3MD         : 1;
                unsigned CCP4MD         : 1;
                unsigned CCP5MD         : 1;
                unsigned                : 1;
                unsigned MSSP1MD        : 1;
                unsigned MSSP2MD        : 1;
        };
} __PMD1bits_t;
extern volatile __PMD1bits_t __at (0xF3E) PMD1bits;

extern __sfr __at (0xF3F) PMD0;
typedef union {
        struct {
                unsigned TMR1MD         : 1;
                unsigned TMR2MD         : 1;
                unsigned TMR3MD         : 1;
                unsigned TMR4MD         : 1;
                unsigned TMR5MD         : 1;
                unsigned TMR6MD         : 1;
                unsigned UART1MD        : 1;
                unsigned UART2MD        : 1;
        };
} __PMD0bits_t;
extern volatile __PMD0bits_t __at (0xF3F) PMD0bits;

extern __sfr __at (0xF40) DACCON1;
typedef union {
        struct {
                unsigned DACR0          : 1;
                unsigned DACR1          : 1;
                unsigned DACR2          : 1;
                unsigned DACR3          : 1;
                unsigned DACR4          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __DACCON1bits_t;
extern volatile __DACCON1bits_t __at (0xF40) DACCON1bits;

extern __sfr __at (0xF40) VREFCON2;
typedef union {
        struct {
                unsigned DACR0          : 1;
                unsigned DACR1          : 1;
                unsigned DACR2          : 1;
                unsigned DACR3          : 1;
                unsigned DACR4          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __VREFCON2bits_t;
extern volatile __VREFCON2bits_t __at (0xF40) VREFCON2bits;

extern __sfr __at (0xF41) DACCON0;
typedef union {
        struct {
                unsigned DACNSS         : 1;
                unsigned                : 1;
                unsigned DACPSS0        : 1;
                unsigned DACPSS1        : 1;
                unsigned                : 1;
                unsigned DACOE          : 1;
                unsigned DACLPS         : 1;
                unsigned DACEN          : 1;
        };
} __DACCON0bits_t;
extern volatile __DACCON0bits_t __at (0xF41) DACCON0bits;

extern __sfr __at (0xF41) VREFCON1;
typedef union {
        struct {
                unsigned DACNSS         : 1;
                unsigned                : 1;
                unsigned DACPSS0        : 1;
                unsigned DACPSS1        : 1;
                unsigned                : 1;
                unsigned DACOE          : 1;
                unsigned DACLPS         : 1;
                unsigned DACEN          : 1;
        };
} __VREFCON1bits_t;
extern volatile __VREFCON1bits_t __at (0xF41) VREFCON1bits;

extern __sfr __at (0xF42) FVRCON;
typedef union {
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned FVRS0          : 1;
                unsigned FVRS1          : 1;
                unsigned FVRST          : 1;
                unsigned FVREN          : 1;
        };
} __FVRCONbits_t;
extern volatile __FVRCONbits_t __at (0xF42) FVRCONbits;

extern __sfr __at (0xF42) VREFCON0;
typedef union {
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned FVRS0          : 1;
                unsigned FVRS1          : 1;
                unsigned FVRST          : 1;
                unsigned FVREN          : 1;
        };
} __VREFCON0bits_t;
extern volatile __VREFCON0bits_t __at (0xF42) VREFCON0bits;

extern __sfr __at (0xF43) CTMUICON;
typedef union {
        struct {
                unsigned IRNG0          : 1;
                unsigned IRNG1          : 1;
                unsigned ITRIM0         : 1;
                unsigned ITRIM1         : 1;
                unsigned ITRIM2         : 1;
                unsigned ITRIM3         : 1;
                unsigned ITRIM4         : 1;
                unsigned ITRIM5         : 1;
        };
} __CTMUICONbits_t;
extern volatile __CTMUICONbits_t __at (0xF43) CTMUICONbits;

extern __sfr __at (0xF43) CTMUICONH;
typedef union {
        struct {
                unsigned IRNG0          : 1;
                unsigned IRNG1          : 1;
                unsigned ITRIM0         : 1;
                unsigned ITRIM1         : 1;
                unsigned ITRIM2         : 1;
                unsigned ITRIM3         : 1;
                unsigned ITRIM4         : 1;
                unsigned ITRIM5         : 1;
        };
} __CTMUICONHbits_t;
extern volatile __CTMUICONHbits_t __at (0xF43) CTMUICONHbits;

extern __sfr __at (0xF44) CTMUCON1;
typedef union {
        struct {
                unsigned EDG1STAT       : 1;
                unsigned EDG2STAT       : 1;
                unsigned EDG1SEL0       : 1;
                unsigned EDG1SEL1       : 1;
                unsigned EDG1POL        : 1;
                unsigned EDG2SEL0       : 1;
                unsigned EDG2SEL1       : 1;
                unsigned EDG2POL        : 1;
        };
} __CTMUCON1bits_t;
extern volatile __CTMUCON1bits_t __at (0xF44) CTMUCON1bits;

extern __sfr __at (0xF44) CTMUCONL;
typedef union {
        struct {
                unsigned EDG1STAT       : 1;
                unsigned EDG2STAT       : 1;
                unsigned EDG1SEL0       : 1;
                unsigned EDG1SEL1       : 1;
                unsigned EDG1POL        : 1;
                unsigned EDG2SEL0       : 1;
                unsigned EDG2SEL1       : 1;
                unsigned EDG2POL        : 1;
        };
} __CTMUCONLbits_t;
extern volatile __CTMUCONLbits_t __at (0xF44) CTMUCONLbits;

extern __sfr __at (0xF45) CTMUCON0;
typedef union {
        struct {
                unsigned CTTRIG         : 1;
                unsigned IDISSEN        : 1;
                unsigned EDGSEQEN       : 1;
                unsigned EDGEN          : 1;
                unsigned TGEN           : 1;
                unsigned CTMUSIDL       : 1;
                unsigned                : 1;
                unsigned CTMUEN         : 1;
        };
} __CTMUCON0bits_t;
extern volatile __CTMUCON0bits_t __at (0xF45) CTMUCON0bits;

extern __sfr __at (0xF45) CTMUCONH;
typedef union {
        struct {
                unsigned CTTRIG         : 1;
                unsigned IDISSEN        : 1;
                unsigned EDGSEQEN       : 1;
                unsigned EDGEN          : 1;
                unsigned TGEN           : 1;
                unsigned CTMUSIDL       : 1;
                unsigned                : 1;
                unsigned CTMUEN         : 1;
        };
} __CTMUCONHbits_t;
extern volatile __CTMUCONHbits_t __at (0xF45) CTMUCONHbits;

extern __sfr __at (0xF46) SRCON1;
typedef union {
        struct {
                unsigned SRRC1E         : 1;
                unsigned SRRC2E         : 1;
                unsigned SRRCKE         : 1;
                unsigned SRRPE          : 1;
                unsigned SRSC1E         : 1;
                unsigned SRSC2E         : 1;
                unsigned SRSCKE         : 1;
                unsigned SRSPE          : 1;
        };
} __SRCON1bits_t;
extern volatile __SRCON1bits_t __at (0xF46) SRCON1bits;

extern __sfr __at (0xF47) SRCON0;
typedef union {
        struct {
                unsigned SRPR           : 1;
                unsigned SRPS           : 1;
                unsigned SRNQEN         : 1;
                unsigned SRQEN          : 1;
                unsigned SRCLK0         : 1;
                unsigned SRCLK1         : 1;
                unsigned SRCLK2         : 1;
                unsigned SRLEN          : 1;
        };
} __SRCON0bits_t;
extern volatile __SRCON0bits_t __at (0xF47) SRCON0bits;

extern __sfr __at (0xF48) CCPTMRS1;
typedef union {
        struct {
                unsigned C4TSEL0        : 1;
                unsigned C4TSEL1        : 1;
                unsigned C5TSEL0        : 1;
                unsigned C5TSEL1        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __CCPTMRS1bits_t;
extern volatile __CCPTMRS1bits_t __at (0xF48) CCPTMRS1bits;

extern __sfr __at (0xF49) CCPTMRS0;
typedef union {
        struct {
                unsigned C1TSEL0        : 1;
                unsigned C1TSEL1        : 1;
                unsigned                : 1;
                unsigned C2TSEL0        : 1;
                unsigned C2TSEL1        : 1;
                unsigned                : 1;
                unsigned C3TSEL0        : 1;
                unsigned C3TSEL1        : 1;
        };
} __CCPTMRS0bits_t;
extern volatile __CCPTMRS0bits_t __at (0xF49) CCPTMRS0bits;

extern __sfr __at (0xF4A) T6CON;
typedef union {
        struct {
                unsigned T6CKPS0        : 1;
                unsigned T6CKPS1        : 1;
                unsigned TMR6ON         : 1;
                unsigned T6OUTPS0       : 1;
                unsigned T6OUTPS1       : 1;
                unsigned T6OUTPS2       : 1;
                unsigned T6OUTPS3       : 1;
                unsigned                : 1;
        };
} __T6CONbits_t;
extern volatile __T6CONbits_t __at (0xF4A) T6CONbits;

extern __sfr __at (0xF4B) PR6;

extern __sfr __at (0xF4C) TMR6;

extern __sfr __at (0xF4D) T5GCON;
typedef union {
        struct {
                unsigned T5GSS0         : 1;
                unsigned T5GSS1         : 1;
                unsigned T5GVAL         : 1;
                unsigned T5GGO_NOT_DONE : 1;
                unsigned T5GSPM         : 1;
                unsigned T5GTM          : 1;
                unsigned T5GPOL         : 1;
                unsigned TMR5GE         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T5GGO          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T5G_DONE       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T5GCONbits_t;
extern volatile __T5GCONbits_t __at (0xF4D) T5GCONbits;

extern __sfr __at (0xF4E) T5CON;
typedef union {
        struct {
                unsigned TMR5ON         : 1;
                unsigned T5RD16         : 1;
                unsigned NOT_T5SYNC     : 1;
                unsigned T5SOSCEN       : 1;
                unsigned T5CKPS0        : 1;
                unsigned T5CKPS1        : 1;
                unsigned TMR5CS0        : 1;
                unsigned TMR5CS1        : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned T5SYNC         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T5CONbits_t;
extern volatile __T5CONbits_t __at (0xF4E) T5CONbits;

extern __sfr __at (0xF4F) TMR5L;

extern __sfr __at (0xF50) TMR5H;

extern __sfr __at (0xF51) T4CON;
typedef union {
        struct {
                unsigned T4CKPS0        : 1;
                unsigned T4CKPS1        : 1;
                unsigned TMR4ON         : 1;
                unsigned T4OUTPS0       : 1;
                unsigned T4OUTPS1       : 1;
                unsigned T4OUTPS2       : 1;
                unsigned T4OUTPS3       : 1;
                unsigned                : 1;
        };
} __T4CONbits_t;
extern volatile __T4CONbits_t __at (0xF51) T4CONbits;

extern __sfr __at (0xF52) PR4;

extern __sfr __at (0xF53) TMR4;

extern __sfr __at (0xF54) CCP5CON;
typedef union {
        struct {
                unsigned CCP5M0         : 1;
                unsigned CCP5M1         : 1;
                unsigned CCP5M2         : 1;
                unsigned CCP5M3         : 1;
                unsigned DC5B0          : 1;
                unsigned DC5B1          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __CCP5CONbits_t;
extern volatile __CCP5CONbits_t __at (0xF54) CCP5CONbits;

extern __sfr __at (0xF55) CCPR5;

extern __sfr __at (0xF55) CCPR5L;

extern __sfr __at (0xF56) CCPR5H;

extern __sfr __at (0xF57) CCP4CON;
typedef union {
        struct {
                unsigned CCP4M0         : 1;
                unsigned CCP4M1         : 1;
                unsigned CCP4M2         : 1;
                unsigned CCP4M3         : 1;
                unsigned DC4B0          : 1;
                unsigned DC4B1          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __CCP4CONbits_t;
extern volatile __CCP4CONbits_t __at (0xF57) CCP4CONbits;

extern __sfr __at (0xF58) CCPR4;

extern __sfr __at (0xF58) CCPR4L;

extern __sfr __at (0xF59) CCPR4H;

extern __sfr __at (0xF5A) PSTR3CON;
typedef union {
        struct {
                unsigned STR3A          : 1;
                unsigned STR3B          : 1;
                unsigned STR3C          : 1;
                unsigned STR3D          : 1;
                unsigned STR3SYNC       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PSTR3CONbits_t;
extern volatile __PSTR3CONbits_t __at (0xF5A) PSTR3CONbits;

extern __sfr __at (0xF5B) CCP3AS;
typedef union {
        struct {
                unsigned P3SSBD0        : 1;
                unsigned P3SSBD1        : 1;
                unsigned P3SSAC0        : 1;
                unsigned P3SSAC1        : 1;
                unsigned CCP3AS0        : 1;
                unsigned CCP3AS1        : 1;
                unsigned CCP3AS2        : 1;
                unsigned CCP3ASE        : 1;
        };
        struct {
                unsigned PSS3BD0        : 1;
                unsigned PSS3BD1        : 1;
                unsigned PSS3AC0        : 1;
                unsigned PSS3AC1        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __CCP3ASbits_t;
extern volatile __CCP3ASbits_t __at (0xF5B) CCP3ASbits;

extern __sfr __at (0xF5B) ECCP3AS;
typedef union {
        struct {
                unsigned P3SSBD0        : 1;
                unsigned P3SSBD1        : 1;
                unsigned P3SSAC0        : 1;
                unsigned P3SSAC1        : 1;
                unsigned CCP3AS0        : 1;
                unsigned CCP3AS1        : 1;
                unsigned CCP3AS2        : 1;
                unsigned CCP3ASE        : 1;
        };
        struct {
                unsigned PSS3BD0        : 1;
                unsigned PSS3BD1        : 1;
                unsigned PSS3AC0        : 1;
                unsigned PSS3AC1        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ECCP3ASbits_t;
extern volatile __ECCP3ASbits_t __at (0xF5B) ECCP3ASbits;

extern __sfr __at (0xF5C) PWM3CON;
typedef union {
        struct {
                unsigned P3DC0          : 1;
                unsigned P3DC1          : 1;
                unsigned P3DC2          : 1;
                unsigned P3DC3          : 1;
                unsigned P3DC4          : 1;
                unsigned P3DC5          : 1;
                unsigned P3DC6          : 1;
                unsigned P3RSEN         : 1;
        };
} __PWM3CONbits_t;
extern volatile __PWM3CONbits_t __at (0xF5C) PWM3CONbits;

extern __sfr __at (0xF5D) CCP3CON;
typedef union {
        struct {
                unsigned CCP3M0         : 1;
                unsigned CCP3M1         : 1;
                unsigned CCP3M2         : 1;
                unsigned CCP3M3         : 1;
                unsigned DC3B0          : 1;
                unsigned DC3B1          : 1;
                unsigned P3M0           : 1;
                unsigned P3M1           : 1;
        };
} __CCP3CONbits_t;
extern volatile __CCP3CONbits_t __at (0xF5D) CCP3CONbits;

extern __sfr __at (0xF5E) CCPR3;

extern __sfr __at (0xF5E) CCPR3L;

extern __sfr __at (0xF5F) CCPR3H;

extern __sfr __at (0xF60) SLRCON;
typedef union {
        struct {
                unsigned SLRA           : 1;
                unsigned SLRB           : 1;
                unsigned SLRC           : 1;
                unsigned SLRD           : 1;
                unsigned SLRE           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __SLRCONbits_t;
extern volatile __SLRCONbits_t __at (0xF60) SLRCONbits;

extern __sfr __at (0xF61) WPUB;
typedef union {
        struct {
                unsigned WPUB0          : 1;
                unsigned WPUB1          : 1;
                unsigned WPUB2          : 1;
                unsigned WPUB3          : 1;
                unsigned WPUB4          : 1;
                unsigned WPUB5          : 1;
                unsigned WPUB6          : 1;
                unsigned WPUB7          : 1;
        };
} __WPUBbits_t;
extern volatile __WPUBbits_t __at (0xF61) WPUBbits;

extern __sfr __at (0xF62) IOCB;
typedef union {
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned IOCB4          : 1;
                unsigned IOCB5          : 1;
                unsigned IOCB6          : 1;
                unsigned IOCB7          : 1;
        };
} __IOCBbits_t;
extern volatile __IOCBbits_t __at (0xF62) IOCBbits;

extern __sfr __at (0xF63) PSTR2CON;
typedef union {
        struct {
                unsigned STR2A          : 1;
                unsigned STR2B          : 1;
                unsigned STR2C          : 1;
                unsigned STR2D          : 1;
                unsigned STR2SYNC       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PSTR2CONbits_t;
extern volatile __PSTR2CONbits_t __at (0xF63) PSTR2CONbits;

extern __sfr __at (0xF64) CCP2AS;
typedef union {
        struct {
                unsigned P2SSBD0        : 1;
                unsigned P2SSBD1        : 1;
                unsigned P2SSAC0        : 1;
                unsigned P2SSAC1        : 1;
                unsigned CCP2AS0        : 1;
                unsigned CCP2AS1        : 1;
                unsigned CCP2AS2        : 1;
                unsigned CCP2ASE        : 1;
        };
        struct {
                unsigned PSS2BD0        : 1;
                unsigned PSS2BD1        : 1;
                unsigned PSS2AC0        : 1;
                unsigned PSS2AC1        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __CCP2ASbits_t;
extern volatile __CCP2ASbits_t __at (0xF64) CCP2ASbits;

extern __sfr __at (0xF64) ECCP2AS;
typedef union {
        struct {
                unsigned P2SSBD0        : 1;
                unsigned P2SSBD1        : 1;
                unsigned P2SSAC0        : 1;
                unsigned P2SSAC1        : 1;
                unsigned CCP2AS0        : 1;
                unsigned CCP2AS1        : 1;
                unsigned CCP2AS2        : 1;
                unsigned CCP2ASE        : 1;
        };
        struct {
                unsigned PSS2BD0        : 1;
                unsigned PSS2BD1        : 1;
                unsigned PSS2AC0        : 1;
                unsigned PSS2AC1        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ECCP2ASbits_t;
extern volatile __ECCP2ASbits_t __at (0xF64) ECCP2ASbits;

extern __sfr __at (0xF65) PWM2CON;
typedef union {
        struct {
                unsigned P2DC0          : 1;
                unsigned P2DC1          : 1;
                unsigned P2DC2          : 1;
                unsigned P2DC3          : 1;
                unsigned P2DC4          : 1;
                unsigned P2DC5          : 1;
                unsigned P2DC6          : 1;
                unsigned P2RSEN         : 1;
        };
} __PWM2CONbits_t;
extern volatile __PWM2CONbits_t __at (0xF65) PWM2CONbits;

extern __sfr __at (0xF66) CCP2CON;
typedef union {
        struct {
                unsigned CCP2M0         : 1;
                unsigned CCP2M1         : 1;
                unsigned CCP2M2         : 1;
                unsigned CCP2M3         : 1;
                unsigned DC2B0          : 1;
                unsigned DC2B1          : 1;
                unsigned P2M0           : 1;
                unsigned P2M1           : 1;
        };
} __CCP2CONbits_t;
extern volatile __CCP2CONbits_t __at (0xF66) CCP2CONbits;

extern __sfr __at (0xF67) CCPR2;

extern __sfr __at (0xF67) CCPR2L;

extern __sfr __at (0xF68) CCPR2H;

extern __sfr __at (0xF69) SSP2CON3;
typedef union {
        struct {
                unsigned DHEN           : 1;
                unsigned AHEN           : 1;
                unsigned SBCDE          : 1;
                unsigned SDAHT          : 1;
                unsigned BOEN           : 1;
                unsigned SCIE           : 1;
                unsigned PCIE           : 1;
                unsigned ACKTIM         : 1;
        };
} __SSP2CON3bits_t;
extern volatile __SSP2CON3bits_t __at (0xF69) SSP2CON3bits;

extern __sfr __at (0xF6A) SSP2MSK;
typedef union {
        struct {
                unsigned MSK0           : 1;
                unsigned MSK1           : 1;
                unsigned MSK2           : 1;
                unsigned MSK3           : 1;
                unsigned MSK4           : 1;
                unsigned MSK5           : 1;
                unsigned MSK6           : 1;
                unsigned MSK7           : 1;
        };
} __SSP2MSKbits_t;
extern volatile __SSP2MSKbits_t __at (0xF6A) SSP2MSKbits;

extern __sfr __at (0xF6B) SSP2CON2;
typedef union {
        struct {
                unsigned SEN            : 1;
                unsigned RSEN           : 1;
                unsigned PEN            : 1;
                unsigned RCEN           : 1;
                unsigned ACKEN          : 1;
                unsigned ACKDT          : 1;
                unsigned ACKSTAT        : 1;
                unsigned GCEN           : 1;
        };
} __SSP2CON2bits_t;
extern volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits;

extern __sfr __at (0xF6C) SSP2CON1;
typedef union {
        struct {
                unsigned SSPM0          : 1;
                unsigned SSPM1          : 1;
                unsigned SSPM2          : 1;
                unsigned SSPM3          : 1;
                unsigned CKP            : 1;
                unsigned SSPEN          : 1;
                unsigned SSPOV          : 1;
                unsigned WCOL           : 1;
        };
} __SSP2CON1bits_t;
extern volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits;

extern __sfr __at (0xF6D) SSP2STAT;
typedef union {
        struct {
                unsigned BF             : 1;
                unsigned UA             : 1;
                unsigned R_NOT_W        : 1;
                unsigned S              : 1;
                unsigned P              : 1;
                unsigned D_NOT_A        : 1;
                unsigned CKE            : 1;
                unsigned SMP            : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R              : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D              : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_W          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_A          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R_W            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D_A            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_WRITE      : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_ADDRESS    : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __SSP2STATbits_t;
extern volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits;

extern __sfr __at (0xF6E) SSP2ADD;

extern __sfr __at (0xF6F) SSP2BUF;

extern __sfr __at (0xF70) BAUD2CON;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUD2CONbits_t;
extern volatile __BAUD2CONbits_t __at (0xF70) BAUD2CONbits;

extern __sfr __at (0xF70) BAUDCON2;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUDCON2bits_t;
extern volatile __BAUDCON2bits_t __at (0xF70) BAUDCON2bits;

extern __sfr __at (0xF71) RC2STA;
typedef union {
        struct {
                unsigned RX9D           : 1;
                unsigned OERR           : 1;
                unsigned FERR           : 1;
                unsigned ADDEN          : 1;
                unsigned CREN           : 1;
                unsigned SREN           : 1;
                unsigned RX9            : 1;
                unsigned SPEN           : 1;
        };
        struct {
                unsigned RX9D2          : 1;
                unsigned OERR2          : 1;
                unsigned FERR2          : 1;
                unsigned ADEN           : 1;
                unsigned CREN2          : 1;
                unsigned SREN2          : 1;
                unsigned RX92           : 1;
                unsigned SPEN2          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned ADDEN2         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RC2STAbits_t;
extern volatile __RC2STAbits_t __at (0xF71) RC2STAbits;

extern __sfr __at (0xF71) RCSTA2;
typedef union {
        struct {
                unsigned RX9D           : 1;
                unsigned OERR           : 1;
                unsigned FERR           : 1;
                unsigned ADDEN          : 1;
                unsigned CREN           : 1;
                unsigned SREN           : 1;
                unsigned RX9            : 1;
                unsigned SPEN           : 1;
        };
        struct {
                unsigned RX9D2          : 1;
                unsigned OERR2          : 1;
                unsigned FERR2          : 1;
                unsigned ADEN           : 1;
                unsigned CREN2          : 1;
                unsigned SREN2          : 1;
                unsigned RX92           : 1;
                unsigned SPEN2          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned ADDEN2         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RCSTA2bits_t;
extern volatile __RCSTA2bits_t __at (0xF71) RCSTA2bits;

extern __sfr __at (0xF72) TX2STA;
typedef union {
        struct {
                unsigned TX9D           : 1;
                unsigned TRMT           : 1;
                unsigned BRGH           : 1;
                unsigned SENDB          : 1;
                unsigned SYNC           : 1;
                unsigned TXEN           : 1;
                unsigned TX9            : 1;
                unsigned CSRC           : 1;
        };
        struct {
                unsigned TX9D2          : 1;
                unsigned TRMT2          : 1;
                unsigned BRGH2          : 1;
                unsigned SENDB2         : 1;
                unsigned SYNC2          : 1;
                unsigned TXEN2          : 1;
                unsigned TX92           : 1;
                unsigned CSRC2          : 1;
        };
} __TX2STAbits_t;
extern volatile __TX2STAbits_t __at (0xF72) TX2STAbits;

extern __sfr __at (0xF72) TXSTA2;
typedef union {
        struct {
                unsigned TX9D           : 1;
                unsigned TRMT           : 1;
                unsigned BRGH           : 1;
                unsigned SENDB          : 1;
                unsigned SYNC           : 1;
                unsigned TXEN           : 1;
                unsigned TX9            : 1;
                unsigned CSRC           : 1;
        };
        struct {
                unsigned TX9D2          : 1;
                unsigned TRMT2          : 1;
                unsigned BRGH2          : 1;
                unsigned SENDB2         : 1;
                unsigned SYNC2          : 1;
                unsigned TXEN2          : 1;
                unsigned TX92           : 1;
                unsigned CSRC2          : 1;
        };
} __TXSTA2bits_t;
extern volatile __TXSTA2bits_t __at (0xF72) TXSTA2bits;

extern __sfr __at (0xF73) TX2REG;

extern __sfr __at (0xF73) TXREG2;

extern __sfr __at (0xF74) RC2REG;

extern __sfr __at (0xF74) RCREG2;

extern __sfr __at (0xF75) SP2BRG;

extern __sfr __at (0xF75) SPBRG2;

extern __sfr __at (0xF76) SP2BRGH;

extern __sfr __at (0xF76) SPBRGH2;

extern __sfr __at (0xF77) CM12CON;
typedef union {
        struct {
                unsigned C2SYNC         : 1;
                unsigned C1SYNC         : 1;
                unsigned C2HYS          : 1;
                unsigned C1HYS          : 1;
                unsigned C2RSEL         : 1;
                unsigned C1RSEL         : 1;
                unsigned MC2OUT         : 1;
                unsigned MC1OUT         : 1;
        };
} __CM12CONbits_t;
extern volatile __CM12CONbits_t __at (0xF77) CM12CONbits;

extern __sfr __at (0xF77) CM2CON1;
typedef union {
        struct {
                unsigned C2SYNC         : 1;
                unsigned C1SYNC         : 1;
                unsigned C2HYS          : 1;
                unsigned C1HYS          : 1;
                unsigned C2RSEL         : 1;
                unsigned C1RSEL         : 1;
                unsigned MC2OUT         : 1;
                unsigned MC1OUT         : 1;
        };
} __CM2CON1bits_t;
extern volatile __CM2CON1bits_t __at (0xF77) CM2CON1bits;

extern __sfr __at (0xF78) CM2CON;
typedef union {
        struct {
                unsigned C2CH0          : 1;
                unsigned C2CH1          : 1;
                unsigned C2R            : 1;
                unsigned C2SP           : 1;
                unsigned C2POL          : 1;
                unsigned C2OE           : 1;
                unsigned C2OUT_CM2CON   : 1;
                unsigned C2ON           : 1;
        };
} __CM2CONbits_t;
extern volatile __CM2CONbits_t __at (0xF78) CM2CONbits;

extern __sfr __at (0xF78) CM2CON0;
typedef union {
        struct {
                unsigned C2CH0          : 1;
                unsigned C2CH1          : 1;
                unsigned C2R            : 1;
                unsigned C2SP           : 1;
                unsigned C2POL          : 1;
                unsigned C2OE           : 1;
                unsigned C2OUT_CM2CON0  : 1;
                unsigned C2ON           : 1;
        };
} __CM2CON0bits_t;
extern volatile __CM2CON0bits_t __at (0xF78) CM2CON0bits;

extern __sfr __at (0xF79) CM1CON;
typedef union {
        struct {
                unsigned C1CH0          : 1;
                unsigned C1CH1          : 1;
                unsigned C1R            : 1;
                unsigned C1SP           : 1;
                unsigned C1POL          : 1;
                unsigned C1OE           : 1;
                unsigned C1OUT_CM1CON   : 1;
                unsigned C1ON           : 1;
        };
} __CM1CONbits_t;
extern volatile __CM1CONbits_t __at (0xF79) CM1CONbits;

extern __sfr __at (0xF79) CM1CON0;
typedef union {
        struct {
                unsigned C1CH0          : 1;
                unsigned C1CH1          : 1;
                unsigned C1R            : 1;
                unsigned C1SP           : 1;
                unsigned C1POL          : 1;
                unsigned C1OE           : 1;
                unsigned C1OUT_CM1CON0  : 1;
                unsigned C1ON           : 1;
        };
} __CM1CON0bits_t;
extern volatile __CM1CON0bits_t __at (0xF79) CM1CON0bits;

extern __sfr __at (0xF7A) PIE4;
typedef union {
        struct {
                unsigned CCP3IE         : 1;
                unsigned CCP4IE         : 1;
                unsigned CCP5IE         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIE4bits_t;
extern volatile __PIE4bits_t __at (0xF7A) PIE4bits;

extern __sfr __at (0xF7B) PIR4;
typedef union {
        struct {
                unsigned CCP3IF         : 1;
                unsigned CCP4IF         : 1;
                unsigned CCP5IF         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIR4bits_t;
extern volatile __PIR4bits_t __at (0xF7B) PIR4bits;

extern __sfr __at (0xF7C) IPR4;
typedef union {
        struct {
                unsigned CCP3IP         : 1;
                unsigned CCP4IP         : 1;
                unsigned CCP5IP         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __IPR4bits_t;
extern volatile __IPR4bits_t __at (0xF7C) IPR4bits;

extern __sfr __at (0xF7D) PIE5;
typedef union {
        struct {
                unsigned TMR4IE         : 1;
                unsigned TMR5IE         : 1;
                unsigned TMR6IE         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIE5bits_t;
extern volatile __PIE5bits_t __at (0xF7D) PIE5bits;

extern __sfr __at (0xF7E) PIR5;
typedef union {
        struct {
                unsigned TMR4IF         : 1;
                unsigned TMR5IF         : 1;
                unsigned TMR6IF         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIR5bits_t;
extern volatile __PIR5bits_t __at (0xF7E) PIR5bits;

extern __sfr __at (0xF7F) IPR5;
typedef union {
        struct {
                unsigned TMR4IP         : 1;
                unsigned TMR5IP         : 1;
                unsigned TMR6IP         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __IPR5bits_t;
extern volatile __IPR5bits_t __at (0xF7F) IPR5bits;

extern __sfr __at (0xF80) PORTA;
typedef union {
        struct {
                unsigned RA0            : 1;
                unsigned RA1            : 1;
                unsigned RA2            : 1;
                unsigned RA3            : 1;
                unsigned RA4            : 1;
                unsigned RA5            : 1;
                unsigned RA6            : 1;
                unsigned RA7            : 1;
        };
        struct {
                unsigned AN0            : 1;
                unsigned AN1            : 1;
                unsigned AN2            : 1;
                unsigned AN3            : 1;
                unsigned C1OUT_PORTA    : 1;
                unsigned AN4            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned C12IN0M        : 1;
                unsigned C12IN1M        : 1;
                unsigned C2INP          : 1;
                unsigned C1INP          : 1;
                unsigned T0CKI          : 1;
                unsigned C2OUT_PORTA    : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned C12IN0N        : 1;
                unsigned C12IN1N        : 1;
                unsigned VREFM          : 1;
                unsigned VREFP          : 1;
                unsigned SRQ            : 1;
                unsigned SS             : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned VREFN          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_SS         : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned CVREF          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned LVDIN          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned DACOUT         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned HLVDIN         : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SS1            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_SS1        : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SRNQ           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PORTAbits_t;
extern volatile __PORTAbits_t __at (0xF80) PORTAbits;

extern __sfr __at (0xF81) PORTB;
typedef union {
        struct {
                unsigned RB0            : 1;
                unsigned RB1            : 1;
                unsigned RB2            : 1;
                unsigned RB3            : 1;
                unsigned RB4            : 1;
                unsigned RB5            : 1;
                unsigned RB6            : 1;
                unsigned RB7            : 1;
        };
        struct {
                unsigned INT0           : 1;
                unsigned INT1           : 1;
                unsigned INT2           : 1;
                unsigned CCP2_PORTB     : 1;
                unsigned KBI0           : 1;
                unsigned KBI1           : 1;
                unsigned KBI2           : 1;
                unsigned KBI3           : 1;
        };
        struct {
                unsigned AN12           : 1;
                unsigned AN10           : 1;
                unsigned AN8            : 1;
                unsigned AN9            : 1;
                unsigned AN11           : 1;
                unsigned AN13           : 1;
                unsigned PGC            : 1;
                unsigned PGD            : 1;
        };
        struct {
                unsigned FLT0           : 1;
                unsigned C12IN3M        : 1;
                unsigned CTED1          : 1;
                unsigned C12IN2M        : 1;
                unsigned T5G            : 1;
                unsigned T1G            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned SRI            : 1;
                unsigned C12IN3N        : 1;
                unsigned                : 1;
                unsigned C12IN2N        : 1;
                unsigned                : 1;
                unsigned CCP3_PORTB     : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned CTED2          : 1;
                unsigned                : 1;
                unsigned T3CKI_PORTB    : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned P2A_PORTB      : 1;
                unsigned                : 1;
                unsigned P3A_PORTB      : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PORTBbits_t;
extern volatile __PORTBbits_t __at (0xF81) PORTBbits;

extern __sfr __at (0xF82) PORTC;
typedef union {
        struct {
                unsigned RC0            : 1;
                unsigned RC1            : 1;
                unsigned RC2            : 1;
                unsigned RC3            : 1;
                unsigned RC4            : 1;
                unsigned RC5            : 1;
                unsigned RC6            : 1;
                unsigned RC7            : 1;
        };
        struct {
                unsigned T1OSO          : 1;
                unsigned T1OSI          : 1;
                unsigned T5CKI          : 1;
                unsigned SCK            : 1;
                unsigned SDI            : 1;
                unsigned SDO            : 1;
                unsigned TX             : 1;
                unsigned RX             : 1;
        };
        struct {
                unsigned P2B_PORTC      : 1;
                unsigned P2A_PORTC      : 1;
                unsigned P1A            : 1;
                unsigned SCL            : 1;
                unsigned SDA            : 1;
                unsigned SDO1           : 1;
                unsigned CK             : 1;
                unsigned DT             : 1;
        };
        struct {
                unsigned T1CKI          : 1;
                unsigned CCP2_PORTC     : 1;
                unsigned CCP1           : 1;
                unsigned SCK1           : 1;
                unsigned SDI1           : 1;
                unsigned AN17           : 1;
                unsigned TX1            : 1;
                unsigned RX1            : 1;
        };
        struct {
                unsigned T3CKI_PORTC    : 1;
                unsigned                : 1;
                unsigned CTPLS          : 1;
                unsigned SCL1           : 1;
                unsigned SDA1           : 1;
                unsigned                : 1;
                unsigned CK1            : 1;
                unsigned DT1            : 1;
        };
        struct {
                unsigned T3G            : 1;
                unsigned                : 1;
                unsigned AN14           : 1;
                unsigned AN15           : 1;
                unsigned AN16           : 1;
                unsigned                : 1;
                unsigned AN18           : 1;
                unsigned AN19           : 1;
        };
} __PORTCbits_t;
extern volatile __PORTCbits_t __at (0xF82) PORTCbits;

extern __sfr __at (0xF83) PORTD;
typedef union {
        struct {
                unsigned RD0            : 1;
                unsigned RD1            : 1;
                unsigned RD2            : 1;
                unsigned RD3            : 1;
                unsigned RD4            : 1;
                unsigned RD5            : 1;
                unsigned RD6            : 1;
                unsigned RD7            : 1;
        };
        struct {
                unsigned SCK2           : 1;
                unsigned CCP4           : 1;
                unsigned P2B_PORTD      : 1;
                unsigned P2C            : 1;
                unsigned P2D            : 1;
                unsigned P1B            : 1;
                unsigned P1C            : 1;
                unsigned P1D            : 1;
        };
        struct {
                unsigned SCL2           : 1;
                unsigned SDI2           : 1;
                unsigned AN22           : 1;
                unsigned NOT_SS2        : 1;
                unsigned SDO2           : 1;
                unsigned AN25           : 1;
                unsigned TX2            : 1;
                unsigned RX2            : 1;
        };
        struct {
                unsigned AN20           : 1;
                unsigned SDA2           : 1;
                unsigned                : 1;
                unsigned SS2            : 1;
                unsigned AN24           : 1;
                unsigned                : 1;
                unsigned CK2            : 1;
                unsigned DT2            : 1;
        };
        struct {
                unsigned                : 1;
                unsigned AN21           : 1;
                unsigned                : 1;
                unsigned AN23           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned AN26           : 1;
                unsigned AN27           : 1;
        };
} __PORTDbits_t;
extern volatile __PORTDbits_t __at (0xF83) PORTDbits;

extern __sfr __at (0xF84) PORTE;
typedef union {
        struct {
                unsigned RE0            : 1;
                unsigned RE1            : 1;
                unsigned RE2            : 1;
                unsigned RE3            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned AN5            : 1;
                unsigned AN6            : 1;
                unsigned AN7            : 1;
                unsigned MCLR           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned P3A_PORTE      : 1;
                unsigned P3B            : 1;
                unsigned CCP5           : 1;
                unsigned NOT_MCLR       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned CCP3_PORTE     : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned VPP            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PORTEbits_t;
extern volatile __PORTEbits_t __at (0xF84) PORTEbits;

extern __sfr __at (0xF89) LATA;
typedef union {
        struct {
                unsigned LATA0          : 1;
                unsigned LATA1          : 1;
                unsigned LATA2          : 1;
                unsigned LATA3          : 1;
                unsigned LATA4          : 1;
                unsigned LATA5          : 1;
                unsigned LATA6          : 1;
                unsigned LATA7          : 1;
        };
} __LATAbits_t;
extern volatile __LATAbits_t __at (0xF89) LATAbits;

extern __sfr __at (0xF8A) LATB;
typedef union {
        struct {
                unsigned LATB0          : 1;
                unsigned LATB1          : 1;
                unsigned LATB2          : 1;
                unsigned LATB3          : 1;
                unsigned LATB4          : 1;
                unsigned LATB5          : 1;
                unsigned LATB6          : 1;
                unsigned LATB7          : 1;
        };
} __LATBbits_t;
extern volatile __LATBbits_t __at (0xF8A) LATBbits;

extern __sfr __at (0xF8B) LATC;
typedef union {
        struct {
                unsigned LATC0          : 1;
                unsigned LATC1          : 1;
                unsigned LATC2          : 1;
                unsigned LATC3          : 1;
                unsigned LATC4          : 1;
                unsigned LATC5          : 1;
                unsigned LATC6          : 1;
                unsigned LATC7          : 1;
        };
} __LATCbits_t;
extern volatile __LATCbits_t __at (0xF8B) LATCbits;

extern __sfr __at (0xF8C) LATD;
typedef union {
        struct {
                unsigned LATD0          : 1;
                unsigned LATD1          : 1;
                unsigned LATD2          : 1;
                unsigned LATD3          : 1;
                unsigned LATD4          : 1;
                unsigned LATD5          : 1;
                unsigned LATD6          : 1;
                unsigned LATD7          : 1;
        };
} __LATDbits_t;
extern volatile __LATDbits_t __at (0xF8C) LATDbits;

extern __sfr __at (0xF8D) LATE;
typedef union {
        struct {
                unsigned LATE0          : 1;
                unsigned LATE1          : 1;
                unsigned LATE2          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __LATEbits_t;
extern volatile __LATEbits_t __at (0xF8D) LATEbits;

extern __sfr __at (0xF92) DDRA;
typedef union {
        struct {
                unsigned TRISA0         : 1;
                unsigned TRISA1         : 1;
                unsigned TRISA2         : 1;
                unsigned TRISA3         : 1;
                unsigned TRISA4         : 1;
                unsigned TRISA5         : 1;
                unsigned TRISA6         : 1;
                unsigned TRISA7         : 1;
        };
        struct {
                unsigned RA0            : 1;
                unsigned RA1            : 1;
                unsigned RA2            : 1;
                unsigned RA3            : 1;
                unsigned RA4            : 1;
                unsigned RA5            : 1;
                unsigned RA6            : 1;
                unsigned RA7            : 1;
        };
} __DDRAbits_t;
extern volatile __DDRAbits_t __at (0xF92) DDRAbits;

extern __sfr __at (0xF92) TRISA;
typedef union {
        struct {
                unsigned TRISA0         : 1;
                unsigned TRISA1         : 1;
                unsigned TRISA2         : 1;
                unsigned TRISA3         : 1;
                unsigned TRISA4         : 1;
                unsigned TRISA5         : 1;
                unsigned TRISA6         : 1;
                unsigned TRISA7         : 1;
        };
        struct {
                unsigned RA0            : 1;
                unsigned RA1            : 1;
                unsigned RA2            : 1;
                unsigned RA3            : 1;
                unsigned RA4            : 1;
                unsigned RA5            : 1;
                unsigned RA6            : 1;
                unsigned RA7            : 1;
        };
} __TRISAbits_t;
extern volatile __TRISAbits_t __at (0xF92) TRISAbits;

extern __sfr __at (0xF93) DDRB;
typedef union {
        struct {
                unsigned TRISB0         : 1;
                unsigned TRISB1         : 1;
                unsigned TRISB2         : 1;
                unsigned TRISB3         : 1;
                unsigned TRISB4         : 1;
                unsigned TRISB5         : 1;
                unsigned TRISB6         : 1;
                unsigned TRISB7         : 1;
        };
        struct {
                unsigned RB0            : 1;
                unsigned RB1            : 1;
                unsigned RB2            : 1;
                unsigned RB3            : 1;
                unsigned RB4            : 1;
                unsigned RB5            : 1;
                unsigned RB6            : 1;
                unsigned RB7            : 1;
        };
} __DDRBbits_t;
extern volatile __DDRBbits_t __at (0xF93) DDRBbits;

extern __sfr __at (0xF93) TRISB;
typedef union {
        struct {
                unsigned TRISB0         : 1;
                unsigned TRISB1         : 1;
                unsigned TRISB2         : 1;
                unsigned TRISB3         : 1;
                unsigned TRISB4         : 1;
                unsigned TRISB5         : 1;
                unsigned TRISB6         : 1;
                unsigned TRISB7         : 1;
        };
        struct {
                unsigned RB0            : 1;
                unsigned RB1            : 1;
                unsigned RB2            : 1;
                unsigned RB3            : 1;
                unsigned RB4            : 1;
                unsigned RB5            : 1;
                unsigned RB6            : 1;
                unsigned RB7            : 1;
        };
} __TRISBbits_t;
extern volatile __TRISBbits_t __at (0xF93) TRISBbits;

extern __sfr __at (0xF94) DDRC;
typedef union {
        struct {
                unsigned TRISC0         : 1;
                unsigned TRISC1         : 1;
                unsigned TRISC2         : 1;
                unsigned TRISC3         : 1;
                unsigned TRISC4         : 1;
                unsigned TRISC5         : 1;
                unsigned TRISC6         : 1;
                unsigned TRISC7         : 1;
        };
        struct {
                unsigned RC0            : 1;
                unsigned RC1            : 1;
                unsigned RC2            : 1;
                unsigned RC3            : 1;
                unsigned RC4            : 1;
                unsigned RC5            : 1;
                unsigned RC6            : 1;
                unsigned RC7            : 1;
        };
} __DDRCbits_t;
extern volatile __DDRCbits_t __at (0xF94) DDRCbits;

extern __sfr __at (0xF94) TRISC;
typedef union {
        struct {
                unsigned TRISC0         : 1;
                unsigned TRISC1         : 1;
                unsigned TRISC2         : 1;
                unsigned TRISC3         : 1;
                unsigned TRISC4         : 1;
                unsigned TRISC5         : 1;
                unsigned TRISC6         : 1;
                unsigned TRISC7         : 1;
        };
        struct {
                unsigned RC0            : 1;
                unsigned RC1            : 1;
                unsigned RC2            : 1;
                unsigned RC3            : 1;
                unsigned RC4            : 1;
                unsigned RC5            : 1;
                unsigned RC6            : 1;
                unsigned RC7            : 1;
        };
} __TRISCbits_t;
extern volatile __TRISCbits_t __at (0xF94) TRISCbits;

extern __sfr __at (0xF95) DDRD;
typedef union {
        struct {
                unsigned TRISD0         : 1;
                unsigned TRISD1         : 1;
                unsigned TRISD2         : 1;
                unsigned TRISD3         : 1;
                unsigned TRISD4         : 1;
                unsigned TRISD5         : 1;
                unsigned TRISD6         : 1;
                unsigned TRISD7         : 1;
        };
        struct {
                unsigned RD0            : 1;
                unsigned RD1            : 1;
                unsigned RD2            : 1;
                unsigned RD3            : 1;
                unsigned RD4            : 1;
                unsigned RD5            : 1;
                unsigned RD6            : 1;
                unsigned RD7            : 1;
        };
} __DDRDbits_t;
extern volatile __DDRDbits_t __at (0xF95) DDRDbits;

extern __sfr __at (0xF95) TRISD;
typedef union {
        struct {
                unsigned TRISD0         : 1;
                unsigned TRISD1         : 1;
                unsigned TRISD2         : 1;
                unsigned TRISD3         : 1;
                unsigned TRISD4         : 1;
                unsigned TRISD5         : 1;
                unsigned TRISD6         : 1;
                unsigned TRISD7         : 1;
        };
        struct {
                unsigned RD0            : 1;
                unsigned RD1            : 1;
                unsigned RD2            : 1;
                unsigned RD3            : 1;
                unsigned RD4            : 1;
                unsigned RD5            : 1;
                unsigned RD6            : 1;
                unsigned RD7            : 1;
        };
} __TRISDbits_t;
extern volatile __TRISDbits_t __at (0xF95) TRISDbits;

extern __sfr __at (0xF96) DDRE;
typedef union {
        struct {
                unsigned TRISE0         : 1;
                unsigned TRISE1         : 1;
                unsigned TRISE2         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned WPUE3          : 1;
        };
        struct {
                unsigned RE0            : 1;
                unsigned RE1            : 1;
                unsigned RE2            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __DDREbits_t;
extern volatile __DDREbits_t __at (0xF96) DDREbits;

extern __sfr __at (0xF96) TRISE;
typedef union {
        struct {
                unsigned TRISE0         : 1;
                unsigned TRISE1         : 1;
                unsigned TRISE2         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned WPUE3          : 1;
        };
        struct {
                unsigned RE0            : 1;
                unsigned RE1            : 1;
                unsigned RE2            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __TRISEbits_t;
extern volatile __TRISEbits_t __at (0xF96) TRISEbits;

extern __sfr __at (0xF9B) OSCTUNE;
typedef union {
        struct {
                unsigned TUN0           : 1;
                unsigned TUN1           : 1;
                unsigned TUN2           : 1;
                unsigned TUN3           : 1;
                unsigned TUN4           : 1;
                unsigned TUN5           : 1;
                unsigned PLLEN          : 1;
                unsigned INTSRC         : 1;
        };
} __OSCTUNEbits_t;
extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;

extern __sfr __at (0xF9C) HLVDCON;
typedef union {
        struct {
                unsigned HLVDL0         : 1;
                unsigned HLVDL1         : 1;
                unsigned HLVDL2         : 1;
                unsigned HLVDL3         : 1;
                unsigned HLVDEN         : 1;
                unsigned IRVST          : 1;
                unsigned BGVST          : 1;
                unsigned VDIRMAG        : 1;
        };
        struct {
                unsigned LVDL0          : 1;
                unsigned LVDL1          : 1;
                unsigned LVDL2          : 1;
                unsigned LVDL3          : 1;
                unsigned LVDEN          : 1;
                unsigned IVRST          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned LVV0           : 1;
                unsigned LVV1           : 1;
                unsigned LVV2           : 1;
                unsigned LVV3           : 1;
                unsigned                : 1;
                unsigned BGST           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __HLVDCONbits_t;
extern volatile __HLVDCONbits_t __at (0xF9C) HLVDCONbits;

extern __sfr __at (0xF9C) LVDCON;
typedef union {
        struct {
                unsigned HLVDL0         : 1;
                unsigned HLVDL1         : 1;
                unsigned HLVDL2         : 1;
                unsigned HLVDL3         : 1;
                unsigned HLVDEN         : 1;
                unsigned IRVST          : 1;
                unsigned BGVST          : 1;
                unsigned VDIRMAG        : 1;
        };
        struct {
                unsigned LVDL0          : 1;
                unsigned LVDL1          : 1;
                unsigned LVDL2          : 1;
                unsigned LVDL3          : 1;
                unsigned LVDEN          : 1;
                unsigned IVRST          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned LVV0           : 1;
                unsigned LVV1           : 1;
                unsigned LVV2           : 1;
                unsigned LVV3           : 1;
                unsigned                : 1;
                unsigned BGST           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __LVDCONbits_t;
extern volatile __LVDCONbits_t __at (0xF9C) LVDCONbits;

extern __sfr __at (0xF9D) PIE1;
typedef union {
        struct {
                unsigned TMR1IE         : 1;
                unsigned TMR2IE         : 1;
                unsigned CCP1IE         : 1;
                unsigned SSP1IE         : 1;
                unsigned TX1IE          : 1;
                unsigned RC1IE          : 1;
                unsigned ADIE           : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SSPIE          : 1;
                unsigned TXIE           : 1;
                unsigned RCIE           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIE1bits_t;
extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;

extern __sfr __at (0xF9E) PIR1;
typedef union {
        struct {
                unsigned TMR1IF         : 1;
                unsigned TMR2IF         : 1;
                unsigned CCP1IF         : 1;
                unsigned SSP1IF         : 1;
                unsigned TX1IF          : 1;
                unsigned RC1IF          : 1;
                unsigned ADIF           : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SSPIF          : 1;
                unsigned TXIF           : 1;
                unsigned RCIF           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIR1bits_t;
extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;

extern __sfr __at (0xF9F) IPR1;
typedef union {
        struct {
                unsigned TMR1IP         : 1;
                unsigned TMR2IP         : 1;
                unsigned CCP1IP         : 1;
                unsigned SSP1IP         : 1;
                unsigned TX1IP          : 1;
                unsigned RC1IP          : 1;
                unsigned ADIP           : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SSPIP          : 1;
                unsigned TXIP           : 1;
                unsigned RCIP           : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __IPR1bits_t;
extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;

extern __sfr __at (0xFA0) PIE2;
typedef union {
        struct {
                unsigned CCP2IE         : 1;
                unsigned TMR3IE         : 1;
                unsigned HLVDIE         : 1;
                unsigned BCL1IE         : 1;
                unsigned EEIE           : 1;
                unsigned C2IE           : 1;
                unsigned C1IE           : 1;
                unsigned OSCFIE         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned LVDIE          : 1;
                unsigned BCLIE          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIE2bits_t;
extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;

extern __sfr __at (0xFA1) PIR2;
typedef union {
        struct {
                unsigned CCP2IF         : 1;
                unsigned TMR3IF         : 1;
                unsigned HLVDIF         : 1;
                unsigned BCL1IF         : 1;
                unsigned EEIF           : 1;
                unsigned C2IF           : 1;
                unsigned C1IF           : 1;
                unsigned OSCFIF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned LVDIF          : 1;
                unsigned BCLIF          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PIR2bits_t;
extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;

extern __sfr __at (0xFA2) IPR2;
typedef union {
        struct {
                unsigned CCP2IP         : 1;
                unsigned TMR3IP         : 1;
                unsigned HLVDIP         : 1;
                unsigned BCL1IP         : 1;
                unsigned EEIP           : 1;
                unsigned C2IP           : 1;
                unsigned C1IP           : 1;
                unsigned OSCFIP         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned LVDIP          : 1;
                unsigned BCLIP          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __IPR2bits_t;
extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;

extern __sfr __at (0xFA3) PIE3;
typedef union {
        struct {
                unsigned TMR1GIE        : 1;
                unsigned TMR3GIE        : 1;
                unsigned TMR5GIE        : 1;
                unsigned CTMUIE         : 1;
                unsigned TX2IE          : 1;
                unsigned RC2IE          : 1;
                unsigned BCL2IE         : 1;
                unsigned SSP2IE         : 1;
        };
} __PIE3bits_t;
extern volatile __PIE3bits_t __at (0xFA3) PIE3bits;

extern __sfr __at (0xFA4) PIR3;
typedef union {
        struct {
                unsigned TMR1GIF        : 1;
                unsigned TMR3GIF        : 1;
                unsigned TMR5GIF        : 1;
                unsigned CTMUIF         : 1;
                unsigned TX2IF          : 1;
                unsigned RC2IF          : 1;
                unsigned BCL2IF         : 1;
                unsigned SSP2IF         : 1;
        };
} __PIR3bits_t;
extern volatile __PIR3bits_t __at (0xFA4) PIR3bits;

extern __sfr __at (0xFA5) IPR3;
typedef union {
        struct {
                unsigned TMR1GIP        : 1;
                unsigned TMR3GIP        : 1;
                unsigned TMR5GIP        : 1;
                unsigned CTMUIP         : 1;
                unsigned TX2IP          : 1;
                unsigned RC2IP          : 1;
                unsigned BCL2IP         : 1;
                unsigned SSP2IP         : 1;
        };
} __IPR3bits_t;
extern volatile __IPR3bits_t __at (0xFA5) IPR3bits;

extern __sfr __at (0xFA6) EECON1;
typedef union {
        struct {
                unsigned RD             : 1;
                unsigned WR             : 1;
                unsigned WREN           : 1;
                unsigned WRERR          : 1;
                unsigned FREE           : 1;
                unsigned                : 1;
                unsigned CFGS           : 1;
                unsigned EEPGD          : 1;
        };
} __EECON1bits_t;
extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;

extern __sfr __at (0xFA7) EECON2;

extern __sfr __at (0xFA8) EEDATA;

extern __sfr __at (0xFA9) EEADR;
typedef union {
        struct {
                unsigned EEADR0         : 1;
                unsigned EEADR1         : 1;
                unsigned EEADR2         : 1;
                unsigned EEADR3         : 1;
                unsigned EEADR4         : 1;
                unsigned EEADR5         : 1;
                unsigned EEADR6         : 1;
                unsigned EEADR7         : 1;
        };
} __EEADRbits_t;
extern volatile __EEADRbits_t __at (0xFA9) EEADRbits;

extern __sfr __at (0xFAB) RC1STA;
typedef union {
        struct {
                unsigned RX9D           : 1;
                unsigned OERR           : 1;
                unsigned FERR           : 1;
                unsigned ADDEN          : 1;
                unsigned CREN           : 1;
                unsigned SREN           : 1;
                unsigned RX9            : 1;
                unsigned SPEN           : 1;
        };
        struct {
                unsigned RX9D1          : 1;
                unsigned OERR1          : 1;
                unsigned FERR1          : 1;
                unsigned ADEN           : 1;
                unsigned CREN1          : 1;
                unsigned SREN1          : 1;
                unsigned RX91           : 1;
                unsigned SPEN1          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned ADDEN1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RC1STAbits_t;
extern volatile __RC1STAbits_t __at (0xFAB) RC1STAbits;

extern __sfr __at (0xFAB) RCSTA;
typedef union {
        struct {
                unsigned RX9D           : 1;
                unsigned OERR           : 1;
                unsigned FERR           : 1;
                unsigned ADDEN          : 1;
                unsigned CREN           : 1;
                unsigned SREN           : 1;
                unsigned RX9            : 1;
                unsigned SPEN           : 1;
        };
        struct {
                unsigned RX9D1          : 1;
                unsigned OERR1          : 1;
                unsigned FERR1          : 1;
                unsigned ADEN           : 1;
                unsigned CREN1          : 1;
                unsigned SREN1          : 1;
                unsigned RX91           : 1;
                unsigned SPEN1          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned ADDEN1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RCSTAbits_t;
extern volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;

extern __sfr __at (0xFAB) RCSTA1;
typedef union {
        struct {
                unsigned RX9D           : 1;
                unsigned OERR           : 1;
                unsigned FERR           : 1;
                unsigned ADDEN          : 1;
                unsigned CREN           : 1;
                unsigned SREN           : 1;
                unsigned RX9            : 1;
                unsigned SPEN           : 1;
        };
        struct {
                unsigned RX9D1          : 1;
                unsigned OERR1          : 1;
                unsigned FERR1          : 1;
                unsigned ADEN           : 1;
                unsigned CREN1          : 1;
                unsigned SREN1          : 1;
                unsigned RX91           : 1;
                unsigned SPEN1          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned ADDEN1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RCSTA1bits_t;
extern volatile __RCSTA1bits_t __at (0xFAB) RCSTA1bits;

extern __sfr __at (0xFAC) TX1STA;
typedef union {
        struct {
                unsigned TX9D           : 1;
                unsigned TRMT           : 1;
                unsigned BRGH           : 1;
                unsigned SENDB          : 1;
                unsigned SYNC           : 1;
                unsigned TXEN           : 1;
                unsigned TX9            : 1;
                unsigned CSRC           : 1;
        };
        struct {
                unsigned TX9D1          : 1;
                unsigned TRMT1          : 1;
                unsigned BRGH1          : 1;
                unsigned SENDB1         : 1;
                unsigned SYNC1          : 1;
                unsigned TXEN1          : 1;
                unsigned TX91           : 1;
                unsigned CSRC1          : 1;
        };
} __TX1STAbits_t;
extern volatile __TX1STAbits_t __at (0xFAC) TX1STAbits;

extern __sfr __at (0xFAC) TXSTA;
typedef union {
        struct {
                unsigned TX9D           : 1;
                unsigned TRMT           : 1;
                unsigned BRGH           : 1;
                unsigned SENDB          : 1;
                unsigned SYNC           : 1;
                unsigned TXEN           : 1;
                unsigned TX9            : 1;
                unsigned CSRC           : 1;
        };
        struct {
                unsigned TX9D1          : 1;
                unsigned TRMT1          : 1;
                unsigned BRGH1          : 1;
                unsigned SENDB1         : 1;
                unsigned SYNC1          : 1;
                unsigned TXEN1          : 1;
                unsigned TX91           : 1;
                unsigned CSRC1          : 1;
        };
} __TXSTAbits_t;
extern volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;

extern __sfr __at (0xFAC) TXSTA1;
typedef union {
        struct {
                unsigned TX9D           : 1;
                unsigned TRMT           : 1;
                unsigned BRGH           : 1;
                unsigned SENDB          : 1;
                unsigned SYNC           : 1;
                unsigned TXEN           : 1;
                unsigned TX9            : 1;
                unsigned CSRC           : 1;
        };
        struct {
                unsigned TX9D1          : 1;
                unsigned TRMT1          : 1;
                unsigned BRGH1          : 1;
                unsigned SENDB1         : 1;
                unsigned SYNC1          : 1;
                unsigned TXEN1          : 1;
                unsigned TX91           : 1;
                unsigned CSRC1          : 1;
        };
} __TXSTA1bits_t;
extern volatile __TXSTA1bits_t __at (0xFAC) TXSTA1bits;

extern __sfr __at (0xFAD) TX1REG;

extern __sfr __at (0xFAD) TXREG;

extern __sfr __at (0xFAD) TXREG1;

extern __sfr __at (0xFAE) RC1REG;

extern __sfr __at (0xFAE) RCREG;

extern __sfr __at (0xFAE) RCREG1;

extern __sfr __at (0xFAF) SP1BRG;

extern __sfr __at (0xFAF) SPBRG;

extern __sfr __at (0xFAF) SPBRG1;

extern __sfr __at (0xFB0) SP1BRGH;

extern __sfr __at (0xFB0) SPBRGH;

extern __sfr __at (0xFB0) SPBRGH1;

extern __sfr __at (0xFB1) T3CON;
typedef union {
        struct {
                unsigned TMR3ON         : 1;
                unsigned T3RD16         : 1;
                unsigned NOT_T3SYNC     : 1;
                unsigned T3SOSCEN       : 1;
                unsigned T3CKPS0        : 1;
                unsigned T3CKPS1        : 1;
                unsigned TMR3CS0        : 1;
                unsigned TMR3CS1        : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T3OSCEN        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T3CONbits_t;
extern volatile __T3CONbits_t __at (0xFB1) T3CONbits;

extern __sfr __at (0xFB2) TMR3L;

extern __sfr __at (0xFB3) TMR3H;

extern __sfr __at (0xFB4) T3GCON;
typedef union {
        struct {
                unsigned T3GSS0         : 1;
                unsigned T3GSS1         : 1;
                unsigned T3GVAL         : 1;
                unsigned T3GGO_NOT_DONE : 1;
                unsigned T3GSPM         : 1;
                unsigned T3GTM          : 1;
                unsigned T3GPOL         : 1;
                unsigned TMR3GE         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T3G_DONE       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T3GGO          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T3GCONbits_t;
extern volatile __T3GCONbits_t __at (0xFB4) T3GCONbits;

extern __sfr __at (0xFB6) ECCP1AS;
typedef union {
        struct {
                unsigned P1SSBD0        : 1;
                unsigned P1SSBD1        : 1;
                unsigned P1SSAC0        : 1;
                unsigned P1SSAC1        : 1;
                unsigned CCP1AS0        : 1;
                unsigned CCP1AS1        : 1;
                unsigned CCP1AS2        : 1;
                unsigned CCP1ASE        : 1;
        };
        struct {
                unsigned PSS1BD0        : 1;
                unsigned PSS1BD1        : 1;
                unsigned PSS1AC0        : 1;
                unsigned PSS1AC1        : 1;
                unsigned ECCPAS0        : 1;
                unsigned ECCPAS1        : 1;
                unsigned ECCPAS2        : 1;
                unsigned ECCPASE        : 1;
        };
        struct {
                unsigned PSSBD0         : 1;
                unsigned PSSBD1         : 1;
                unsigned PSSAC0         : 1;
                unsigned PSSAC1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ECCP1ASbits_t;
extern volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;

extern __sfr __at (0xFB6) ECCPAS;
typedef union {
        struct {
                unsigned P1SSBD0        : 1;
                unsigned P1SSBD1        : 1;
                unsigned P1SSAC0        : 1;
                unsigned P1SSAC1        : 1;
                unsigned CCP1AS0        : 1;
                unsigned CCP1AS1        : 1;
                unsigned CCP1AS2        : 1;
                unsigned CCP1ASE        : 1;
        };
        struct {
                unsigned PSS1BD0        : 1;
                unsigned PSS1BD1        : 1;
                unsigned PSS1AC0        : 1;
                unsigned PSS1AC1        : 1;
                unsigned ECCPAS0        : 1;
                unsigned ECCPAS1        : 1;
                unsigned ECCPAS2        : 1;
                unsigned ECCPASE        : 1;
        };
        struct {
                unsigned PSSBD0         : 1;
                unsigned PSSBD1         : 1;
                unsigned PSSAC0         : 1;
                unsigned PSSAC1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ECCPASbits_t;
extern volatile __ECCPASbits_t __at (0xFB6) ECCPASbits;

extern __sfr __at (0xFB7) PWM1CON;
typedef union {
        struct {
                unsigned P1DC0          : 1;
                unsigned P1DC1          : 1;
                unsigned P1DC2          : 1;
                unsigned P1DC3          : 1;
                unsigned P1DC4          : 1;
                unsigned P1DC5          : 1;
                unsigned P1DC6          : 1;
                unsigned P1RSEN         : 1;
        };
        struct {
                unsigned PDC0           : 1;
                unsigned PDC1           : 1;
                unsigned PDC2           : 1;
                unsigned PDC3           : 1;
                unsigned PDC4           : 1;
                unsigned PDC5           : 1;
                unsigned PDC6           : 1;
                unsigned PRSEN          : 1;
        };
} __PWM1CONbits_t;
extern volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits;

extern __sfr __at (0xFB7) PWMCON;
typedef union {
        struct {
                unsigned P1DC0          : 1;
                unsigned P1DC1          : 1;
                unsigned P1DC2          : 1;
                unsigned P1DC3          : 1;
                unsigned P1DC4          : 1;
                unsigned P1DC5          : 1;
                unsigned P1DC6          : 1;
                unsigned P1RSEN         : 1;
        };
        struct {
                unsigned PDC0           : 1;
                unsigned PDC1           : 1;
                unsigned PDC2           : 1;
                unsigned PDC3           : 1;
                unsigned PDC4           : 1;
                unsigned PDC5           : 1;
                unsigned PDC6           : 1;
                unsigned PRSEN          : 1;
        };
} __PWMCONbits_t;
extern volatile __PWMCONbits_t __at (0xFB7) PWMCONbits;

extern __sfr __at (0xFB8) BAUD1CON;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUD1CONbits_t;
extern volatile __BAUD1CONbits_t __at (0xFB8) BAUD1CONbits;

extern __sfr __at (0xFB8) BAUDCON;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUDCONbits_t;
extern volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits;

extern __sfr __at (0xFB8) BAUDCON1;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUDCON1bits_t;
extern volatile __BAUDCON1bits_t __at (0xFB8) BAUDCON1bits;

extern __sfr __at (0xFB8) BAUDCTL;
typedef union {
        struct {
                unsigned ABDEN          : 1;
                unsigned WUE            : 1;
                unsigned                : 1;
                unsigned BRG16          : 1;
                unsigned CKTXP          : 1;
                unsigned DTRXP          : 1;
                unsigned RCIDL          : 1;
                unsigned ABDOVF         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned SCKP           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __BAUDCTLbits_t;
extern volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits;

extern __sfr __at (0xFB9) PSTR1CON;
typedef union {
        struct {
                unsigned STR1A          : 1;
                unsigned STR1B          : 1;
                unsigned STR1C          : 1;
                unsigned STR1D          : 1;
                unsigned STR1SYNC       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PSTR1CONbits_t;
extern volatile __PSTR1CONbits_t __at (0xFB9) PSTR1CONbits;

extern __sfr __at (0xFB9) PSTRCON;
typedef union {
        struct {
                unsigned STR1A          : 1;
                unsigned STR1B          : 1;
                unsigned STR1C          : 1;
                unsigned STR1D          : 1;
                unsigned STR1SYNC       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __PSTRCONbits_t;
extern volatile __PSTRCONbits_t __at (0xFB9) PSTRCONbits;

extern __sfr __at (0xFBA) T2CON;
typedef union {
        struct {
                unsigned T2CKPS0        : 1;
                unsigned T2CKPS1        : 1;
                unsigned TMR2ON         : 1;
                unsigned T2OUTPS0       : 1;
                unsigned T2OUTPS1       : 1;
                unsigned T2OUTPS2       : 1;
                unsigned T2OUTPS3       : 1;
                unsigned                : 1;
        };
} __T2CONbits_t;
extern volatile __T2CONbits_t __at (0xFBA) T2CONbits;

extern __sfr __at (0xFBB) PR2;

extern __sfr __at (0xFBC) TMR2;

extern __sfr __at (0xFBD) CCP1CON;
typedef union {
        struct {
                unsigned CCP1M0         : 1;
                unsigned CCP1M1         : 1;
                unsigned CCP1M2         : 1;
                unsigned CCP1M3         : 1;
                unsigned DC1B0          : 1;
                unsigned DC1B1          : 1;
                unsigned P1M0           : 1;
                unsigned P1M1           : 1;
        };
} __CCP1CONbits_t;
extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;

extern __sfr __at (0xFBE) CCPR1;

extern __sfr __at (0xFBE) CCPR1L;

extern __sfr __at (0xFBF) CCPR1H;

extern __sfr __at (0xFC0) ADCON2;
typedef union {
        struct {
                unsigned ADCS0          : 1;
                unsigned ADCS1          : 1;
                unsigned ADCS2          : 1;
                unsigned ACQT0          : 1;
                unsigned ACQT1          : 1;
                unsigned ACQT2          : 1;
                unsigned                : 1;
                unsigned ADFM           : 1;
        };
} __ADCON2bits_t;
extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;

extern __sfr __at (0xFC1) ADCON1;
typedef union {
        struct {
                unsigned NVCFG0         : 1;
                unsigned NVCFG1         : 1;
                unsigned PVCFG0         : 1;
                unsigned PVCFG1         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned TRIGSEL        : 1;
        };
} __ADCON1bits_t;
extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;

extern __sfr __at (0xFC2) ADCON0;
typedef union {
        struct {
                unsigned ADON           : 1;
                unsigned GO_NOT_DONE    : 1;
                unsigned CHS0           : 1;
                unsigned CHS1           : 1;
                unsigned CHS2           : 1;
                unsigned CHS3           : 1;
                unsigned CHS4           : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned GO             : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned DONE           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned NOT_DONE       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned GO_DONE        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __ADCON0bits_t;
extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;

extern __sfr __at (0xFC3) ADRES;

extern __sfr __at (0xFC3) ADRESL;

extern __sfr __at (0xFC4) ADRESH;

extern __sfr __at (0xFC5) SSP1CON2;
typedef union {
        struct {
                unsigned SEN            : 1;
                unsigned RSEN           : 1;
                unsigned PEN            : 1;
                unsigned RCEN           : 1;
                unsigned ACKEN          : 1;
                unsigned ACKDT          : 1;
                unsigned ACKSTAT        : 1;
                unsigned GCEN           : 1;
        };
} __SSP1CON2bits_t;
extern volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits;

extern __sfr __at (0xFC5) SSPCON2;
typedef union {
        struct {
                unsigned SEN            : 1;
                unsigned RSEN           : 1;
                unsigned PEN            : 1;
                unsigned RCEN           : 1;
                unsigned ACKEN          : 1;
                unsigned ACKDT          : 1;
                unsigned ACKSTAT        : 1;
                unsigned GCEN           : 1;
        };
} __SSPCON2bits_t;
extern volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;

extern __sfr __at (0xFC6) SSP1CON1;
typedef union {
        struct {
                unsigned SSPM0          : 1;
                unsigned SSPM1          : 1;
                unsigned SSPM2          : 1;
                unsigned SSPM3          : 1;
                unsigned CKP            : 1;
                unsigned SSPEN          : 1;
                unsigned SSPOV          : 1;
                unsigned WCOL           : 1;
        };
} __SSP1CON1bits_t;
extern volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits;

extern __sfr __at (0xFC6) SSPCON1;
typedef union {
        struct {
                unsigned SSPM0          : 1;
                unsigned SSPM1          : 1;
                unsigned SSPM2          : 1;
                unsigned SSPM3          : 1;
                unsigned CKP            : 1;
                unsigned SSPEN          : 1;
                unsigned SSPOV          : 1;
                unsigned WCOL           : 1;
        };
} __SSPCON1bits_t;
extern volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;

extern __sfr __at (0xFC7) SSP1STAT;
typedef union {
        struct {
                unsigned BF             : 1;
                unsigned UA             : 1;
                unsigned R_NOT_W        : 1;
                unsigned S              : 1;
                unsigned P              : 1;
                unsigned D_NOT_A        : 1;
                unsigned CKE            : 1;
                unsigned SMP            : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R              : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D              : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_W          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_A          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R_W            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D_A            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_WRITE      : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_ADDRESS    : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __SSP1STATbits_t;
extern volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits;

extern __sfr __at (0xFC7) SSPSTAT;
typedef union {
        struct {
                unsigned BF             : 1;
                unsigned UA             : 1;
                unsigned R_NOT_W        : 1;
                unsigned S              : 1;
                unsigned P              : 1;
                unsigned D_NOT_A        : 1;
                unsigned CKE            : 1;
                unsigned SMP            : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R              : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D              : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_W          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_A          : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned R_W            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned D_A            : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_WRITE      : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned NOT_ADDRESS    : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __SSPSTATbits_t;
extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;

extern __sfr __at (0xFC8) SSP1ADD;

extern __sfr __at (0xFC8) SSPADD;

extern __sfr __at (0xFC9) SSP1BUF;

extern __sfr __at (0xFC9) SSPBUF;

extern __sfr __at (0xFCA) SSP1MSK;
typedef union {
        struct {
                unsigned MSK0           : 1;
                unsigned MSK1           : 1;
                unsigned MSK2           : 1;
                unsigned MSK3           : 1;
                unsigned MSK4           : 1;
                unsigned MSK5           : 1;
                unsigned MSK6           : 1;
                unsigned MSK7           : 1;
        };
} __SSP1MSKbits_t;
extern volatile __SSP1MSKbits_t __at (0xFCA) SSP1MSKbits;

extern __sfr __at (0xFCA) SSPMSK;
typedef union {
        struct {
                unsigned MSK0           : 1;
                unsigned MSK1           : 1;
                unsigned MSK2           : 1;
                unsigned MSK3           : 1;
                unsigned MSK4           : 1;
                unsigned MSK5           : 1;
                unsigned MSK6           : 1;
                unsigned MSK7           : 1;
        };
} __SSPMSKbits_t;
extern volatile __SSPMSKbits_t __at (0xFCA) SSPMSKbits;

extern __sfr __at (0xFCB) SSP1CON3;
typedef union {
        struct {
                unsigned DHEN           : 1;
                unsigned AHEN           : 1;
                unsigned SBCDE          : 1;
                unsigned SDAHT          : 1;
                unsigned BOEN           : 1;
                unsigned SCIE           : 1;
                unsigned PCIE           : 1;
                unsigned ACKTIM         : 1;
        };
} __SSP1CON3bits_t;
extern volatile __SSP1CON3bits_t __at (0xFCB) SSP1CON3bits;

extern __sfr __at (0xFCB) SSPCON3;
typedef union {
        struct {
                unsigned DHEN           : 1;
                unsigned AHEN           : 1;
                unsigned SBCDE          : 1;
                unsigned SDAHT          : 1;
                unsigned BOEN           : 1;
                unsigned SCIE           : 1;
                unsigned PCIE           : 1;
                unsigned ACKTIM         : 1;
        };
} __SSPCON3bits_t;
extern volatile __SSPCON3bits_t __at (0xFCB) SSPCON3bits;

extern __sfr __at (0xFCC) T1GCON;
typedef union {
        struct {
                unsigned T1GSS0         : 1;
                unsigned T1GSS1         : 1;
                unsigned T1GVAL         : 1;
                unsigned T1GGO_NOT_DONE : 1;
                unsigned T1GSPM         : 1;
                unsigned T1GTM          : 1;
                unsigned T1GPOL         : 1;
                unsigned TMR1GE         : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T1G_DONE       : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned T1GGO          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T1GCONbits_t;
extern volatile __T1GCONbits_t __at (0xFCC) T1GCONbits;

extern __sfr __at (0xFCD) T1CON;
typedef union {
        struct {
                unsigned TMR1ON         : 1;
                unsigned T1RD16         : 1;
                unsigned NOT_T1SYNC     : 1;
                unsigned T1SOSCEN       : 1;
                unsigned T1CKPS0        : 1;
                unsigned T1CKPS1        : 1;
                unsigned TMR1CS0        : 1;
                unsigned TMR1CS1        : 1;
        };
        struct {
                unsigned                : 1;
                unsigned RD16           : 1;
                unsigned T1SYNC         : 1;
                unsigned T1OSCEN        : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __T1CONbits_t;
extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;

extern __sfr __at (0xFCE) TMR1L;

extern __sfr __at (0xFCF) TMR1H;

extern __sfr __at (0xFD0) RCON;
typedef union {
        struct {
                unsigned NOT_BOR        : 1;
                unsigned NOT_POR        : 1;
                unsigned NOT_PD         : 1;
                unsigned NOT_TO         : 1;
                unsigned NOT_RI         : 1;
                unsigned                : 1;
                unsigned SBOREN         : 1;
                unsigned IPEN           : 1;
        };
        struct {
                unsigned BOR            : 1;
                unsigned POR            : 1;
                unsigned PD             : 1;
                unsigned TO             : 1;
                unsigned RI             : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __RCONbits_t;
extern volatile __RCONbits_t __at (0xFD0) RCONbits;

extern __sfr __at (0xFD1) WDTCON;
typedef union {
        struct {
                unsigned SWDTEN         : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
        struct {
                unsigned SWDTE          : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __WDTCONbits_t;
extern volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;

extern __sfr __at (0xFD2) OSCCON2;
typedef union {
        struct {
                unsigned LFIOFS         : 1;
                unsigned MFIOFS         : 1;
                unsigned PRISD          : 1;
                unsigned SOSCGO         : 1;
                unsigned MFIOSEL        : 1;
                unsigned                : 1;
                unsigned SOSCRUN        : 1;
                unsigned PLLRDY         : 1;
        };
} __OSCCON2bits_t;
extern volatile __OSCCON2bits_t __at (0xFD2) OSCCON2bits;

extern __sfr __at (0xFD3) OSCCON;
typedef union {
        struct {
                unsigned SCS0           : 1;
                unsigned SCS1           : 1;
                unsigned HFIOFS         : 1;
                unsigned OSTS           : 1;
                unsigned IRCF0          : 1;
                unsigned IRCF1          : 1;
                unsigned IRCF2          : 1;
                unsigned IDLEN          : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned IOFS           : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __OSCCONbits_t;
extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;

extern __sfr __at (0xFD5) T0CON;
typedef union {
        struct {
                unsigned T0PS0          : 1;
                unsigned T0PS1          : 1;
                unsigned T0PS2          : 1;
                unsigned PSA            : 1;
                unsigned T0SE           : 1;
                unsigned T0CS           : 1;
                unsigned T08BIT         : 1;
                unsigned TMR0ON         : 1;
        };
} __T0CONbits_t;
extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;

extern __sfr __at (0xFD6) TMR0L;

extern __sfr __at (0xFD7) TMR0H;

extern __sfr __at (0xFD8) STATUS;
typedef union {
        struct {
                unsigned C              : 1;
                unsigned DC             : 1;
                unsigned Z              : 1;
                unsigned OV             : 1;
                unsigned N              : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
        };
} __STATUSbits_t;
extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;

extern __sfr __at (0xFD9) FSR2L;

extern __sfr __at (0xFDA) FSR2H;

extern __sfr __at (0xFDB) PLUSW2;

extern __sfr __at (0xFDC) PREINC2;

extern __sfr __at (0xFDD) POSTDEC2;

extern __sfr __at (0xFDE) POSTINC2;

extern __sfr __at (0xFDF) INDF2;

extern __sfr __at (0xFE0) BSR;

extern __sfr __at (0xFE1) FSR1L;

extern __sfr __at (0xFE2) FSR1H;

extern __sfr __at (0xFE3) PLUSW1;

extern __sfr __at (0xFE4) PREINC1;

extern __sfr __at (0xFE5) POSTDEC1;

extern __sfr __at (0xFE6) POSTINC1;

extern __sfr __at (0xFE7) INDF1;

extern __sfr __at (0xFE8) WREG;

extern __sfr __at (0xFE9) FSR0L;

extern __sfr __at (0xFEA) FSR0H;

extern __sfr __at (0xFEB) PLUSW0;

extern __sfr __at (0xFEC) PREINC0;

extern __sfr __at (0xFED) POSTDEC0;

extern __sfr __at (0xFEE) POSTINC0;

extern __sfr __at (0xFEF) INDF0;

extern __sfr __at (0xFF0) INTCON3;
typedef union {
        struct {
                unsigned INT1IF         : 1;
                unsigned INT2IF         : 1;
                unsigned                : 1;
                unsigned INT1IE         : 1;
                unsigned INT2IE         : 1;
                unsigned                : 1;
                unsigned INT1IP         : 1;
                unsigned INT2IP         : 1;
        };
        struct {
                unsigned INT1F          : 1;
                unsigned INT2F          : 1;
                unsigned                : 1;
                unsigned INT1E          : 1;
                unsigned INT2E          : 1;
                unsigned                : 1;
                unsigned INT1P          : 1;
                unsigned INT2P          : 1;
        };
} __INTCON3bits_t;
extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;

extern __sfr __at (0xFF1) INTCON2;
typedef union {
        struct {
                unsigned RBIP           : 1;
                unsigned                : 1;
                unsigned TMR0IP         : 1;
                unsigned                : 1;
                unsigned INTEDG2        : 1;
                unsigned INTEDG1        : 1;
                unsigned INTEDG0        : 1;
                unsigned NOT_RBPU       : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned RBPU           : 1;
        };
} __INTCON2bits_t;
extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;

extern __sfr __at (0xFF2) INTCON;
typedef union {
        struct {
                unsigned RBIF           : 1;
                unsigned INT0IF         : 1;
                unsigned TMR0IF         : 1;
                unsigned RBIE           : 1;
                unsigned INT0IE         : 1;
                unsigned TMR0IE         : 1;
                unsigned PEIE_GIEL      : 1;
                unsigned GIE_GIEH       : 1;
        };
        struct {
                unsigned                : 1;
                unsigned INT0F          : 1;
                unsigned T0IF           : 1;
                unsigned                : 1;
                unsigned INT0E          : 1;
                unsigned T0IE           : 1;
                unsigned PEIE           : 1;
                unsigned GIE            : 1;
        };
        struct {
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned GIEL           : 1;
                unsigned GIEH           : 1;
        };
} __INTCONbits_t;
extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;

extern __sfr __at (0xFF3) PROD;

extern __sfr __at (0xFF3) PRODL;

extern __sfr __at (0xFF4) PRODH;

extern __sfr __at (0xFF5) TABLAT;

extern __sfr __at (0xFF6) TBLPTR;

extern __sfr __at (0xFF6) TBLPTRL;

extern __sfr __at (0xFF7) TBLPTRH;

extern __sfr __at (0xFF8) TBLPTRU;

extern __sfr __at (0xFF9) PC;

extern __sfr __at (0xFF9) PCL;

extern __sfr __at (0xFFA) PCLATH;

extern __sfr __at (0xFFB) PCLATU;

extern __sfr __at (0xFFC) STKPTR;
typedef union {
        struct {
                unsigned STKPTR0        : 1;
                unsigned STKPTR1        : 1;
                unsigned STKPTR2        : 1;
                unsigned STKPTR3        : 1;
                unsigned STKPTR4        : 1;
                unsigned                : 1;
                unsigned STKUNF         : 1;
                unsigned STKFUL         : 1;
        };
        struct {
                unsigned SP0            : 1;
                unsigned SP1            : 1;
                unsigned SP2            : 1;
                unsigned SP3            : 1;
                unsigned SP4            : 1;
                unsigned                : 1;
                unsigned                : 1;
                unsigned STKOVF         : 1;
        };
} __STKPTRbits_t;
extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;

extern __sfr __at (0xFFD) TOS;

extern __sfr __at (0xFFD) TOSL;

extern __sfr __at (0xFFE) TOSH;

extern __sfr __at (0xFFF) TOSU;


#endif

