/*
 * This declarations of the PIC18F97J94 MCU.
 *
 * This file is part of the GNU PIC library for SDCC, originally
 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
 *
 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:41 UTC.
 *
 * SDCC is licensed under the GNU Public license (GPL) v2. Note that
 * this license covers the code to the compiler and other executables,
 * but 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 __PIC18F97J94_H__
#define __PIC18F97J94_H__

//==============================================================================

//==============================================================================
//
//	Register Definitions
//
//==============================================================================


//==============================================================================
//        UEP0 Bits

extern __at(0x0DFF) __sfr UEP0;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP0bits_t;

extern __at(0x0DFF) volatile __UEP0bits_t UEP0bits;

#define _EPSTALL                0x01
#define _EPINEN                 0x02
#define _EPOUTEN                0x04
#define _EPCONDIS               0x08
#define _EPHSHK                 0x10

//==============================================================================


//==============================================================================
//        UEP1 Bits

extern __at(0x0E00) __sfr UEP1;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP1bits_t;

extern __at(0x0E00) volatile __UEP1bits_t UEP1bits;

#define _UEP1_EPSTALL           0x01
#define _UEP1_EPINEN            0x02
#define _UEP1_EPOUTEN           0x04
#define _UEP1_EPCONDIS          0x08
#define _UEP1_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP2 Bits

extern __at(0x0E01) __sfr UEP2;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP2bits_t;

extern __at(0x0E01) volatile __UEP2bits_t UEP2bits;

#define _UEP2_EPSTALL           0x01
#define _UEP2_EPINEN            0x02
#define _UEP2_EPOUTEN           0x04
#define _UEP2_EPCONDIS          0x08
#define _UEP2_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP3 Bits

extern __at(0x0E02) __sfr UEP3;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP3bits_t;

extern __at(0x0E02) volatile __UEP3bits_t UEP3bits;

#define _UEP3_EPSTALL           0x01
#define _UEP3_EPINEN            0x02
#define _UEP3_EPOUTEN           0x04
#define _UEP3_EPCONDIS          0x08
#define _UEP3_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP4 Bits

extern __at(0x0E03) __sfr UEP4;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP4bits_t;

extern __at(0x0E03) volatile __UEP4bits_t UEP4bits;

#define _UEP4_EPSTALL           0x01
#define _UEP4_EPINEN            0x02
#define _UEP4_EPOUTEN           0x04
#define _UEP4_EPCONDIS          0x08
#define _UEP4_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP5 Bits

extern __at(0x0E04) __sfr UEP5;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP5bits_t;

extern __at(0x0E04) volatile __UEP5bits_t UEP5bits;

#define _UEP5_EPSTALL           0x01
#define _UEP5_EPINEN            0x02
#define _UEP5_EPOUTEN           0x04
#define _UEP5_EPCONDIS          0x08
#define _UEP5_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP6 Bits

extern __at(0x0E05) __sfr UEP6;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP6bits_t;

extern __at(0x0E05) volatile __UEP6bits_t UEP6bits;

#define _UEP6_EPSTALL           0x01
#define _UEP6_EPINEN            0x02
#define _UEP6_EPOUTEN           0x04
#define _UEP6_EPCONDIS          0x08
#define _UEP6_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP7 Bits

extern __at(0x0E06) __sfr UEP7;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP7bits_t;

extern __at(0x0E06) volatile __UEP7bits_t UEP7bits;

#define _UEP7_EPSTALL           0x01
#define _UEP7_EPINEN            0x02
#define _UEP7_EPOUTEN           0x04
#define _UEP7_EPCONDIS          0x08
#define _UEP7_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP8 Bits

extern __at(0x0E07) __sfr UEP8;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP8bits_t;

extern __at(0x0E07) volatile __UEP8bits_t UEP8bits;

#define _UEP8_EPSTALL           0x01
#define _UEP8_EPINEN            0x02
#define _UEP8_EPOUTEN           0x04
#define _UEP8_EPCONDIS          0x08
#define _UEP8_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP9 Bits

extern __at(0x0E08) __sfr UEP9;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP9bits_t;

extern __at(0x0E08) volatile __UEP9bits_t UEP9bits;

#define _UEP9_EPSTALL           0x01
#define _UEP9_EPINEN            0x02
#define _UEP9_EPOUTEN           0x04
#define _UEP9_EPCONDIS          0x08
#define _UEP9_EPHSHK            0x10

//==============================================================================


//==============================================================================
//        UEP10 Bits

extern __at(0x0E09) __sfr UEP10;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP10bits_t;

extern __at(0x0E09) volatile __UEP10bits_t UEP10bits;

#define _UEP10_EPSTALL          0x01
#define _UEP10_EPINEN           0x02
#define _UEP10_EPOUTEN          0x04
#define _UEP10_EPCONDIS         0x08
#define _UEP10_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEP11 Bits

extern __at(0x0E0A) __sfr UEP11;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP11bits_t;

extern __at(0x0E0A) volatile __UEP11bits_t UEP11bits;

#define _UEP11_EPSTALL          0x01
#define _UEP11_EPINEN           0x02
#define _UEP11_EPOUTEN          0x04
#define _UEP11_EPCONDIS         0x08
#define _UEP11_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEP12 Bits

extern __at(0x0E0B) __sfr UEP12;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP12bits_t;

extern __at(0x0E0B) volatile __UEP12bits_t UEP12bits;

#define _UEP12_EPSTALL          0x01
#define _UEP12_EPINEN           0x02
#define _UEP12_EPOUTEN          0x04
#define _UEP12_EPCONDIS         0x08
#define _UEP12_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEP13 Bits

extern __at(0x0E0C) __sfr UEP13;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP13bits_t;

extern __at(0x0E0C) volatile __UEP13bits_t UEP13bits;

#define _UEP13_EPSTALL          0x01
#define _UEP13_EPINEN           0x02
#define _UEP13_EPOUTEN          0x04
#define _UEP13_EPCONDIS         0x08
#define _UEP13_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEP14 Bits

extern __at(0x0E0D) __sfr UEP14;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP14bits_t;

extern __at(0x0E0D) volatile __UEP14bits_t UEP14bits;

#define _UEP14_EPSTALL          0x01
#define _UEP14_EPINEN           0x02
#define _UEP14_EPOUTEN          0x04
#define _UEP14_EPCONDIS         0x08
#define _UEP14_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEP15 Bits

extern __at(0x0E0E) __sfr UEP15;

typedef struct
  {
  unsigned EPSTALL              : 1;
  unsigned EPINEN               : 1;
  unsigned EPOUTEN              : 1;
  unsigned EPCONDIS             : 1;
  unsigned EPHSHK               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UEP15bits_t;

extern __at(0x0E0E) volatile __UEP15bits_t UEP15bits;

#define _UEP15_EPSTALL          0x01
#define _UEP15_EPINEN           0x02
#define _UEP15_EPOUTEN          0x04
#define _UEP15_EPCONDIS         0x08
#define _UEP15_EPHSHK           0x10

//==============================================================================


//==============================================================================
//        UEIE Bits

extern __at(0x0E0F) __sfr UEIE;

typedef struct
  {
  unsigned PIDEE                : 1;
  unsigned CRC5EE               : 1;
  unsigned CRC16EE              : 1;
  unsigned DFN8EE               : 1;
  unsigned BTOEE                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned BTSEE                : 1;
  } __UEIEbits_t;

extern __at(0x0E0F) volatile __UEIEbits_t UEIEbits;

#define _PIDEE                  0x01
#define _CRC5EE                 0x02
#define _CRC16EE                0x04
#define _DFN8EE                 0x08
#define _BTOEE                  0x10
#define _BTSEE                  0x80

//==============================================================================


//==============================================================================
//        UIE Bits

extern __at(0x0E10) __sfr UIE;

typedef struct
  {
  unsigned URSTIE               : 1;
  unsigned UERRIE               : 1;
  unsigned ACTVIE               : 1;
  unsigned TRNIE                : 1;
  unsigned IDLEIE               : 1;
  unsigned STALLIE              : 1;
  unsigned SOFIE                : 1;
  unsigned                      : 1;
  } __UIEbits_t;

extern __at(0x0E10) volatile __UIEbits_t UIEbits;

#define _URSTIE                 0x01
#define _UERRIE                 0x02
#define _ACTVIE                 0x04
#define _TRNIE                  0x08
#define _IDLEIE                 0x10
#define _STALLIE                0x20
#define _SOFIE                  0x40

//==============================================================================


//==============================================================================
//        UCFG Bits

extern __at(0x0E11) __sfr UCFG;

typedef union
  {
  struct
    {
    unsigned PPB0               : 1;
    unsigned PPB1               : 1;
    unsigned FSEN               : 1;
    unsigned UTRDIS             : 1;
    unsigned UPUEN              : 1;
    unsigned                    : 1;
    unsigned UOEMON             : 1;
    unsigned UTEYE              : 1;
    };

  struct
    {
    unsigned PPB                : 2;
    unsigned                    : 6;
    };
  } __UCFGbits_t;

extern __at(0x0E11) volatile __UCFGbits_t UCFGbits;

#define _PPB0                   0x01
#define _PPB1                   0x02
#define _FSEN                   0x04
#define _UTRDIS                 0x08
#define _UPUEN                  0x10
#define _UOEMON                 0x40
#define _UTEYE                  0x80

//==============================================================================


//==============================================================================
//        RPOR0_1 Bits

extern __at(0x0E12) __sfr RPOR0_1;

typedef union
  {
  struct
    {
    unsigned RPO0R0             : 1;
    unsigned RPO0R1             : 1;
    unsigned RPO0R2             : 1;
    unsigned RPO0R3             : 1;
    unsigned RPO1R0             : 1;
    unsigned RPO1R1             : 1;
    unsigned RPO1R2             : 1;
    unsigned RPO1R3             : 1;
    };

  struct
    {
    unsigned RPO0R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO1R              : 4;
    };
  } __RPOR0_1bits_t;

extern __at(0x0E12) volatile __RPOR0_1bits_t RPOR0_1bits;

#define _RPO0R0                 0x01
#define _RPO0R1                 0x02
#define _RPO0R2                 0x04
#define _RPO0R3                 0x08
#define _RPO1R0                 0x10
#define _RPO1R1                 0x20
#define _RPO1R2                 0x40
#define _RPO1R3                 0x80

//==============================================================================


//==============================================================================
//        RPOR2_3 Bits

extern __at(0x0E13) __sfr RPOR2_3;

typedef union
  {
  struct
    {
    unsigned RPO2R0             : 1;
    unsigned RPO2R1             : 1;
    unsigned RPO2R2             : 1;
    unsigned RPO2R3             : 1;
    unsigned RPO3R0             : 1;
    unsigned RPO3R1             : 1;
    unsigned RPO3R2             : 1;
    unsigned RPO3R3             : 1;
    };

  struct
    {
    unsigned RPO2R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO3R              : 4;
    };
  } __RPOR2_3bits_t;

extern __at(0x0E13) volatile __RPOR2_3bits_t RPOR2_3bits;

#define _RPO2R0                 0x01
#define _RPO2R1                 0x02
#define _RPO2R2                 0x04
#define _RPO2R3                 0x08
#define _RPO3R0                 0x10
#define _RPO3R1                 0x20
#define _RPO3R2                 0x40
#define _RPO3R3                 0x80

//==============================================================================


//==============================================================================
//        RPOR4_5 Bits

extern __at(0x0E14) __sfr RPOR4_5;

typedef union
  {
  struct
    {
    unsigned RPO4R0             : 1;
    unsigned RPO4R1             : 1;
    unsigned RPO4R2             : 1;
    unsigned RPO4R3             : 1;
    unsigned RPO5R0             : 1;
    unsigned RPO5R1             : 1;
    unsigned RPO5R2             : 1;
    unsigned RPO5R3             : 1;
    };

  struct
    {
    unsigned RPO4R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO5R              : 4;
    };
  } __RPOR4_5bits_t;

extern __at(0x0E14) volatile __RPOR4_5bits_t RPOR4_5bits;

#define _RPO4R0                 0x01
#define _RPO4R1                 0x02
#define _RPO4R2                 0x04
#define _RPO4R3                 0x08
#define _RPO5R0                 0x10
#define _RPO5R1                 0x20
#define _RPO5R2                 0x40
#define _RPO5R3                 0x80

//==============================================================================


//==============================================================================
//        RPOR6_7 Bits

extern __at(0x0E15) __sfr RPOR6_7;

typedef union
  {
  struct
    {
    unsigned RPO6R0             : 1;
    unsigned RPO6R1             : 1;
    unsigned RPO6R2             : 1;
    unsigned RPO6R3             : 1;
    unsigned RPO7R0             : 1;
    unsigned RPO7R1             : 1;
    unsigned RPO7R2             : 1;
    unsigned RPO7R3             : 1;
    };

  struct
    {
    unsigned RPO6R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO7R              : 4;
    };
  } __RPOR6_7bits_t;

extern __at(0x0E15) volatile __RPOR6_7bits_t RPOR6_7bits;

#define _RPO6R0                 0x01
#define _RPO6R1                 0x02
#define _RPO6R2                 0x04
#define _RPO6R3                 0x08
#define _RPO7R0                 0x10
#define _RPO7R1                 0x20
#define _RPO7R2                 0x40
#define _RPO7R3                 0x80

//==============================================================================


//==============================================================================
//        RPOR8_9 Bits

extern __at(0x0E16) __sfr RPOR8_9;

typedef union
  {
  struct
    {
    unsigned RPO8R0             : 1;
    unsigned RPO8R1             : 1;
    unsigned RPO8R2             : 1;
    unsigned RPO8R3             : 1;
    unsigned RPO9R0             : 1;
    unsigned RPO9R1             : 1;
    unsigned RPO9R2             : 1;
    unsigned RPO9R3             : 1;
    };

  struct
    {
    unsigned RPO8R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO9R              : 4;
    };
  } __RPOR8_9bits_t;

extern __at(0x0E16) volatile __RPOR8_9bits_t RPOR8_9bits;

#define _RPO8R0                 0x01
#define _RPO8R1                 0x02
#define _RPO8R2                 0x04
#define _RPO8R3                 0x08
#define _RPO9R0                 0x10
#define _RPO9R1                 0x20
#define _RPO9R2                 0x40
#define _RPO9R3                 0x80

//==============================================================================


//==============================================================================
//        RPOR10_11 Bits

extern __at(0x0E17) __sfr RPOR10_11;

typedef union
  {
  struct
    {
    unsigned RPO10R0            : 1;
    unsigned RPO10R1            : 1;
    unsigned RPO10R2            : 1;
    unsigned RPO10R3            : 1;
    unsigned RPO11R0            : 1;
    unsigned RPO11R1            : 1;
    unsigned RPO11R2            : 1;
    unsigned RPO11R3            : 1;
    };

  struct
    {
    unsigned RPO10R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO11R             : 4;
    };
  } __RPOR10_11bits_t;

extern __at(0x0E17) volatile __RPOR10_11bits_t RPOR10_11bits;

#define _RPO10R0                0x01
#define _RPO10R1                0x02
#define _RPO10R2                0x04
#define _RPO10R3                0x08
#define _RPO11R0                0x10
#define _RPO11R1                0x20
#define _RPO11R2                0x40
#define _RPO11R3                0x80

//==============================================================================


//==============================================================================
//        RPOR12_13 Bits

extern __at(0x0E18) __sfr RPOR12_13;

typedef union
  {
  struct
    {
    unsigned RPO12R0            : 1;
    unsigned RPO12R1            : 1;
    unsigned RPO12R2            : 1;
    unsigned RPO12R3            : 1;
    unsigned RPO13R0            : 1;
    unsigned RPO13R1            : 1;
    unsigned RPO13R2            : 1;
    unsigned RPO13R3            : 1;
    };

  struct
    {
    unsigned RPO12R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO13R             : 4;
    };
  } __RPOR12_13bits_t;

extern __at(0x0E18) volatile __RPOR12_13bits_t RPOR12_13bits;

#define _RPO12R0                0x01
#define _RPO12R1                0x02
#define _RPO12R2                0x04
#define _RPO12R3                0x08
#define _RPO13R0                0x10
#define _RPO13R1                0x20
#define _RPO13R2                0x40
#define _RPO13R3                0x80

//==============================================================================


//==============================================================================
//        RPOR14_15 Bits

extern __at(0x0E19) __sfr RPOR14_15;

typedef union
  {
  struct
    {
    unsigned RPO14R0            : 1;
    unsigned RPO14R1            : 1;
    unsigned RPO14R2            : 1;
    unsigned RPO14R3            : 1;
    unsigned RPO15R0            : 1;
    unsigned RPO15R1            : 1;
    unsigned RPO15R2            : 1;
    unsigned RPO15R3            : 1;
    };

  struct
    {
    unsigned RPO14R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO15R             : 4;
    };
  } __RPOR14_15bits_t;

extern __at(0x0E19) volatile __RPOR14_15bits_t RPOR14_15bits;

#define _RPO14R0                0x01
#define _RPO14R1                0x02
#define _RPO14R2                0x04
#define _RPO14R3                0x08
#define _RPO15R0                0x10
#define _RPO15R1                0x20
#define _RPO15R2                0x40
#define _RPO15R3                0x80

//==============================================================================


//==============================================================================
//        RPOR16_17 Bits

extern __at(0x0E1A) __sfr RPOR16_17;

typedef union
  {
  struct
    {
    unsigned RPO16R0            : 1;
    unsigned RPO16R1            : 1;
    unsigned RPO16R2            : 1;
    unsigned RPO16R3            : 1;
    unsigned RPO17R0            : 1;
    unsigned RPO17R1            : 1;
    unsigned RPO17R2            : 1;
    unsigned RPO17R3            : 1;
    };

  struct
    {
    unsigned RPO16R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO17R             : 4;
    };
  } __RPOR16_17bits_t;

extern __at(0x0E1A) volatile __RPOR16_17bits_t RPOR16_17bits;

#define _RPO16R0                0x01
#define _RPO16R1                0x02
#define _RPO16R2                0x04
#define _RPO16R3                0x08
#define _RPO17R0                0x10
#define _RPO17R1                0x20
#define _RPO17R2                0x40
#define _RPO17R3                0x80

//==============================================================================


//==============================================================================
//        RPOR18_19 Bits

extern __at(0x0E1B) __sfr RPOR18_19;

typedef union
  {
  struct
    {
    unsigned RPO18R0            : 1;
    unsigned RPO18R1            : 1;
    unsigned RPO18R2            : 1;
    unsigned RPO18R3            : 1;
    unsigned RPO19R0            : 1;
    unsigned RPO19R1            : 1;
    unsigned RPO19R2            : 1;
    unsigned RPO19R3            : 1;
    };

  struct
    {
    unsigned RPO18R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO19R             : 4;
    };
  } __RPOR18_19bits_t;

extern __at(0x0E1B) volatile __RPOR18_19bits_t RPOR18_19bits;

#define _RPO18R0                0x01
#define _RPO18R1                0x02
#define _RPO18R2                0x04
#define _RPO18R3                0x08
#define _RPO19R0                0x10
#define _RPO19R1                0x20
#define _RPO19R2                0x40
#define _RPO19R3                0x80

//==============================================================================


//==============================================================================
//        RPOR20_21 Bits

extern __at(0x0E1C) __sfr RPOR20_21;

typedef union
  {
  struct
    {
    unsigned RPO20R0            : 1;
    unsigned RPO20R1            : 1;
    unsigned RPO20R2            : 1;
    unsigned RPO20R3            : 1;
    unsigned RPO21R0            : 1;
    unsigned RPO21R1            : 1;
    unsigned RPO21R2            : 1;
    unsigned RPO21R3            : 1;
    };

  struct
    {
    unsigned RPO20R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO21R             : 4;
    };
  } __RPOR20_21bits_t;

extern __at(0x0E1C) volatile __RPOR20_21bits_t RPOR20_21bits;

#define _RPO20R0                0x01
#define _RPO20R1                0x02
#define _RPO20R2                0x04
#define _RPO20R3                0x08
#define _RPO21R0                0x10
#define _RPO21R1                0x20
#define _RPO21R2                0x40
#define _RPO21R3                0x80

//==============================================================================


//==============================================================================
//        RPOR22_23 Bits

extern __at(0x0E1D) __sfr RPOR22_23;

typedef union
  {
  struct
    {
    unsigned RPO22R0            : 1;
    unsigned RPO22R1            : 1;
    unsigned RPO22R2            : 1;
    unsigned RPO22R3            : 1;
    unsigned RPO23R0            : 1;
    unsigned RPO23R1            : 1;
    unsigned RPO23R2            : 1;
    unsigned RPO23R3            : 1;
    };

  struct
    {
    unsigned RPO22R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO23R             : 4;
    };
  } __RPOR22_23bits_t;

extern __at(0x0E1D) volatile __RPOR22_23bits_t RPOR22_23bits;

#define _RPO22R0                0x01
#define _RPO22R1                0x02
#define _RPO22R2                0x04
#define _RPO22R3                0x08
#define _RPO23R0                0x10
#define _RPO23R1                0x20
#define _RPO23R2                0x40
#define _RPO23R3                0x80

//==============================================================================


//==============================================================================
//        RPOR24_25 Bits

extern __at(0x0E1E) __sfr RPOR24_25;

typedef union
  {
  struct
    {
    unsigned RPO24R0            : 1;
    unsigned RPO24R1            : 1;
    unsigned RPO24R2            : 1;
    unsigned RPO24R3            : 1;
    unsigned RPO25R0            : 1;
    unsigned RPO25R1            : 1;
    unsigned RPO25R2            : 1;
    unsigned RPO25R3            : 1;
    };

  struct
    {
    unsigned RPO24R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO25R             : 4;
    };
  } __RPOR24_25bits_t;

extern __at(0x0E1E) volatile __RPOR24_25bits_t RPOR24_25bits;

#define _RPO24R0                0x01
#define _RPO24R1                0x02
#define _RPO24R2                0x04
#define _RPO24R3                0x08
#define _RPO25R0                0x10
#define _RPO25R1                0x20
#define _RPO25R2                0x40
#define _RPO25R3                0x80

//==============================================================================


//==============================================================================
//        RPOR26_27 Bits

extern __at(0x0E1F) __sfr RPOR26_27;

typedef union
  {
  struct
    {
    unsigned RPO26R0            : 1;
    unsigned RPO26R1            : 1;
    unsigned RPO26R2            : 1;
    unsigned RPO26R3            : 1;
    unsigned RPO27R0            : 1;
    unsigned RPO27R1            : 1;
    unsigned RPO27R2            : 1;
    unsigned RPO27R3            : 1;
    };

  struct
    {
    unsigned RPO26R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO27R             : 4;
    };
  } __RPOR26_27bits_t;

extern __at(0x0E1F) volatile __RPOR26_27bits_t RPOR26_27bits;

#define _RPO26R0                0x01
#define _RPO26R1                0x02
#define _RPO26R2                0x04
#define _RPO26R3                0x08
#define _RPO27R0                0x10
#define _RPO27R1                0x20
#define _RPO27R2                0x40
#define _RPO27R3                0x80

//==============================================================================


//==============================================================================
//        RPOR28_29 Bits

extern __at(0x0E20) __sfr RPOR28_29;

typedef union
  {
  struct
    {
    unsigned RPO28R0            : 1;
    unsigned RPO28R1            : 1;
    unsigned RPO28R2            : 1;
    unsigned RPO28R3            : 1;
    unsigned RPO29R0            : 1;
    unsigned RPO29R1            : 1;
    unsigned RPO29R2            : 1;
    unsigned RPO29R3            : 1;
    };

  struct
    {
    unsigned RPO28R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO29R             : 4;
    };
  } __RPOR28_29bits_t;

extern __at(0x0E20) volatile __RPOR28_29bits_t RPOR28_29bits;

#define _RPO28R0                0x01
#define _RPO28R1                0x02
#define _RPO28R2                0x04
#define _RPO28R3                0x08
#define _RPO29R0                0x10
#define _RPO29R1                0x20
#define _RPO29R2                0x40
#define _RPO29R3                0x80

//==============================================================================


//==============================================================================
//        RPOR30_31 Bits

extern __at(0x0E21) __sfr RPOR30_31;

typedef union
  {
  struct
    {
    unsigned RPO30R0            : 1;
    unsigned RPO30R1            : 1;
    unsigned RPO30R2            : 1;
    unsigned RPO30R3            : 1;
    unsigned RPO31R0            : 1;
    unsigned RPO31R1            : 1;
    unsigned RPO31R2            : 1;
    unsigned RPO31R3            : 1;
    };

  struct
    {
    unsigned RPO30R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO31R             : 4;
    };
  } __RPOR30_31bits_t;

extern __at(0x0E21) volatile __RPOR30_31bits_t RPOR30_31bits;

#define _RPO30R0                0x01
#define _RPO30R1                0x02
#define _RPO30R2                0x04
#define _RPO30R3                0x08
#define _RPO31R0                0x10
#define _RPO31R1                0x20
#define _RPO31R2                0x40
#define _RPO31R3                0x80

//==============================================================================


//==============================================================================
//        RPOR32_33 Bits

extern __at(0x0E22) __sfr RPOR32_33;

typedef union
  {
  struct
    {
    unsigned RPO32R0            : 1;
    unsigned RPO32R1            : 1;
    unsigned RPO32R2            : 1;
    unsigned RPO32R3            : 1;
    unsigned RPO33R0            : 1;
    unsigned RPO33R1            : 1;
    unsigned RPO33R2            : 1;
    unsigned RPO33R3            : 1;
    };

  struct
    {
    unsigned RPO32R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO33R             : 4;
    };
  } __RPOR32_33bits_t;

extern __at(0x0E22) volatile __RPOR32_33bits_t RPOR32_33bits;

#define _RPO32R0                0x01
#define _RPO32R1                0x02
#define _RPO32R2                0x04
#define _RPO32R3                0x08
#define _RPO33R0                0x10
#define _RPO33R1                0x20
#define _RPO33R2                0x40
#define _RPO33R3                0x80

//==============================================================================


//==============================================================================
//        RPOR34_35 Bits

extern __at(0x0E23) __sfr RPOR34_35;

typedef union
  {
  struct
    {
    unsigned RPO34R0            : 1;
    unsigned RPO34R1            : 1;
    unsigned RPO34R2            : 1;
    unsigned RPO34R3            : 1;
    unsigned RPO35R0            : 1;
    unsigned RPO35R1            : 1;
    unsigned RPO35R2            : 1;
    unsigned RPO35R3            : 1;
    };

  struct
    {
    unsigned RPO34R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO35R             : 4;
    };
  } __RPOR34_35bits_t;

extern __at(0x0E23) volatile __RPOR34_35bits_t RPOR34_35bits;

#define _RPO34R0                0x01
#define _RPO34R1                0x02
#define _RPO34R2                0x04
#define _RPO34R3                0x08
#define _RPO35R0                0x10
#define _RPO35R1                0x20
#define _RPO35R2                0x40
#define _RPO35R3                0x80

//==============================================================================


//==============================================================================
//        RPOR36_37 Bits

extern __at(0x0E24) __sfr RPOR36_37;

typedef union
  {
  struct
    {
    unsigned RPO36R0            : 1;
    unsigned RPO36R1            : 1;
    unsigned RPO36R2            : 1;
    unsigned RPO36R3            : 1;
    unsigned RPO37R0            : 1;
    unsigned RPO37R1            : 1;
    unsigned RPO37R2            : 1;
    unsigned RPO37R3            : 1;
    };

  struct
    {
    unsigned RPO36R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO37R             : 4;
    };
  } __RPOR36_37bits_t;

extern __at(0x0E24) volatile __RPOR36_37bits_t RPOR36_37bits;

#define _RPO36R0                0x01
#define _RPO36R1                0x02
#define _RPO36R2                0x04
#define _RPO36R3                0x08
#define _RPO37R0                0x10
#define _RPO37R1                0x20
#define _RPO37R2                0x40
#define _RPO37R3                0x80

//==============================================================================


//==============================================================================
//        RPOR38_39 Bits

extern __at(0x0E25) __sfr RPOR38_39;

typedef union
  {
  struct
    {
    unsigned RPO38R0            : 1;
    unsigned RPO38R1            : 1;
    unsigned RPO38R2            : 1;
    unsigned RPO38R3            : 1;
    unsigned RPO39R0            : 1;
    unsigned RPO39R1            : 1;
    unsigned RPO39R2            : 1;
    unsigned RPO39R3            : 1;
    };

  struct
    {
    unsigned RPO38R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO39R             : 4;
    };
  } __RPOR38_39bits_t;

extern __at(0x0E25) volatile __RPOR38_39bits_t RPOR38_39bits;

#define _RPO38R0                0x01
#define _RPO38R1                0x02
#define _RPO38R2                0x04
#define _RPO38R3                0x08
#define _RPO39R0                0x10
#define _RPO39R1                0x20
#define _RPO39R2                0x40
#define _RPO39R3                0x80

//==============================================================================


//==============================================================================
//        RPOR40_41 Bits

extern __at(0x0E26) __sfr RPOR40_41;

typedef union
  {
  struct
    {
    unsigned RPO40R0            : 1;
    unsigned RPO40R1            : 1;
    unsigned RPO40R2            : 1;
    unsigned RPO40R3            : 1;
    unsigned RPO41R0            : 1;
    unsigned RPO41R1            : 1;
    unsigned RPO41R2            : 1;
    unsigned RPO41R3            : 1;
    };

  struct
    {
    unsigned RPO40R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO41R             : 4;
    };
  } __RPOR40_41bits_t;

extern __at(0x0E26) volatile __RPOR40_41bits_t RPOR40_41bits;

#define _RPO40R0                0x01
#define _RPO40R1                0x02
#define _RPO40R2                0x04
#define _RPO40R3                0x08
#define _RPO41R0                0x10
#define _RPO41R1                0x20
#define _RPO41R2                0x40
#define _RPO41R3                0x80

//==============================================================================


//==============================================================================
//        RPOR42_43 Bits

extern __at(0x0E27) __sfr RPOR42_43;

typedef union
  {
  struct
    {
    unsigned RPO42R0            : 1;
    unsigned RPO42R1            : 1;
    unsigned RPO42R2            : 1;
    unsigned RPO42R3            : 1;
    unsigned RPO43R0            : 1;
    unsigned RPO43R1            : 1;
    unsigned RPO43R2            : 1;
    unsigned RPO43R3            : 1;
    };

  struct
    {
    unsigned RPO42R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO43R             : 4;
    };
  } __RPOR42_43bits_t;

extern __at(0x0E27) volatile __RPOR42_43bits_t RPOR42_43bits;

#define _RPO42R0                0x01
#define _RPO42R1                0x02
#define _RPO42R2                0x04
#define _RPO42R3                0x08
#define _RPO43R0                0x10
#define _RPO43R1                0x20
#define _RPO43R2                0x40
#define _RPO43R3                0x80

//==============================================================================


//==============================================================================
//        RPOR44_45 Bits

extern __at(0x0E28) __sfr RPOR44_45;

typedef union
  {
  struct
    {
    unsigned RPO44R0            : 1;
    unsigned RPO44R1            : 1;
    unsigned RPO44R2            : 1;
    unsigned RPO44R3            : 1;
    unsigned RPO45R0            : 1;
    unsigned RPO45R1            : 1;
    unsigned RPO45R2            : 1;
    unsigned RPO45R3            : 1;
    };

  struct
    {
    unsigned RPO44R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RPO45R             : 4;
    };
  } __RPOR44_45bits_t;

extern __at(0x0E28) volatile __RPOR44_45bits_t RPOR44_45bits;

#define _RPO44R0                0x01
#define _RPO44R1                0x02
#define _RPO44R2                0x04
#define _RPO44R3                0x08
#define _RPO45R0                0x10
#define _RPO45R1                0x20
#define _RPO45R2                0x40
#define _RPO45R3                0x80

//==============================================================================


//==============================================================================
//        RPOR46 Bits

extern __at(0x0E29) __sfr RPOR46;

typedef union
  {
  struct
    {
    unsigned RPO46R0            : 1;
    unsigned RPO46R1            : 1;
    unsigned RPO46R2            : 1;
    unsigned RPO46R3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned RPO46R             : 4;
    unsigned                    : 4;
    };
  } __RPOR46bits_t;

extern __at(0x0E29) volatile __RPOR46bits_t RPOR46bits;

#define _RPO46R0                0x01
#define _RPO46R1                0x02
#define _RPO46R2                0x04
#define _RPO46R3                0x08

//==============================================================================


//==============================================================================
//        RPINR0_1 Bits

extern __at(0x0E2A) __sfr RPINR0_1;

typedef union
  {
  struct
    {
    unsigned U1RXR0             : 1;
    unsigned U1RXR1             : 1;
    unsigned U1RXR2             : 1;
    unsigned U1RXR3             : 1;
    unsigned U1TXR0             : 1;
    unsigned U1TXR1             : 1;
    unsigned U1TXR2             : 1;
    unsigned U1TXR3             : 1;
    };

  struct
    {
    unsigned U1RXR              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned U1TXR              : 4;
    };
  } __RPINR0_1bits_t;

extern __at(0x0E2A) volatile __RPINR0_1bits_t RPINR0_1bits;

#define _U1RXR0                 0x01
#define _U1RXR1                 0x02
#define _U1RXR2                 0x04
#define _U1RXR3                 0x08
#define _U1TXR0                 0x10
#define _U1TXR1                 0x20
#define _U1TXR2                 0x40
#define _U1TXR3                 0x80

//==============================================================================


//==============================================================================
//        RPINR2_3 Bits

extern __at(0x0E2B) __sfr RPINR2_3;

typedef union
  {
  struct
    {
    unsigned U2RXR0             : 1;
    unsigned U2RXR1             : 1;
    unsigned U2RXR2             : 1;
    unsigned U2RXR3             : 1;
    unsigned U2TXR0             : 1;
    unsigned U2TXR1             : 1;
    unsigned U2TXR2             : 1;
    unsigned U2TXR3             : 1;
    };

  struct
    {
    unsigned U2RXR              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned U2TXR              : 4;
    };
  } __RPINR2_3bits_t;

extern __at(0x0E2B) volatile __RPINR2_3bits_t RPINR2_3bits;

#define _U2RXR0                 0x01
#define _U2RXR1                 0x02
#define _U2RXR2                 0x04
#define _U2RXR3                 0x08
#define _U2TXR0                 0x10
#define _U2TXR1                 0x20
#define _U2TXR2                 0x40
#define _U2TXR3                 0x80

//==============================================================================


//==============================================================================
//        RPINR4_5 Bits

extern __at(0x0E2C) __sfr RPINR4_5;

typedef union
  {
  struct
    {
    unsigned U3RXR0             : 1;
    unsigned U3RXR1             : 1;
    unsigned U3RXR2             : 1;
    unsigned U3RXR3             : 1;
    unsigned U3TXR0             : 1;
    unsigned U3TXR1             : 1;
    unsigned U3TXR2             : 1;
    unsigned U3TXR3             : 1;
    };

  struct
    {
    unsigned U3RXR              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned U3TXR              : 4;
    };
  } __RPINR4_5bits_t;

extern __at(0x0E2C) volatile __RPINR4_5bits_t RPINR4_5bits;

#define _U3RXR0                 0x01
#define _U3RXR1                 0x02
#define _U3RXR2                 0x04
#define _U3RXR3                 0x08
#define _U3TXR0                 0x10
#define _U3TXR1                 0x20
#define _U3TXR2                 0x40
#define _U3TXR3                 0x80

//==============================================================================


//==============================================================================
//        RPINR6_7 Bits

extern __at(0x0E2D) __sfr RPINR6_7;

typedef union
  {
  struct
    {
    unsigned U4RXR0             : 1;
    unsigned U4RXR1             : 1;
    unsigned U4RXR2             : 1;
    unsigned U4RXR3             : 1;
    unsigned U4TXR0             : 1;
    unsigned U4TXR1             : 1;
    unsigned U4TXR2             : 1;
    unsigned U4TXR3             : 1;
    };

  struct
    {
    unsigned U4RXR              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned U4TXR              : 4;
    };
  } __RPINR6_7bits_t;

extern __at(0x0E2D) volatile __RPINR6_7bits_t RPINR6_7bits;

#define _U4RXR0                 0x01
#define _U4RXR1                 0x02
#define _U4RXR2                 0x04
#define _U4RXR3                 0x08
#define _U4TXR0                 0x10
#define _U4TXR1                 0x20
#define _U4TXR2                 0x40
#define _U4TXR3                 0x80

//==============================================================================


//==============================================================================
//        RPINR8_9 Bits

extern __at(0x0E2E) __sfr RPINR8_9;

typedef union
  {
  struct
    {
    unsigned SCK1R0             : 1;
    unsigned SCK1R1             : 1;
    unsigned SCK1R2             : 1;
    unsigned SCK1R3             : 1;
    unsigned SDI1R0             : 1;
    unsigned SDI1R1             : 1;
    unsigned SDI1R2             : 1;
    unsigned SDI1R3             : 1;
    };

  struct
    {
    unsigned SCK1R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned SDI1R              : 4;
    };
  } __RPINR8_9bits_t;

extern __at(0x0E2E) volatile __RPINR8_9bits_t RPINR8_9bits;

#define _SCK1R0                 0x01
#define _SCK1R1                 0x02
#define _SCK1R2                 0x04
#define _SCK1R3                 0x08
#define _SDI1R0                 0x10
#define _SDI1R1                 0x20
#define _SDI1R2                 0x40
#define _SDI1R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR10_11 Bits

extern __at(0x0E2F) __sfr RPINR10_11;

typedef union
  {
  struct
    {
    unsigned SS1R0              : 1;
    unsigned SS1R1              : 1;
    unsigned SS1R2              : 1;
    unsigned SS1R3              : 1;
    unsigned SCK2R0             : 1;
    unsigned SCK2R1             : 1;
    unsigned SCK2R2             : 1;
    unsigned SCK2R3             : 1;
    };

  struct
    {
    unsigned SS1R               : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned SCK2R              : 4;
    };
  } __RPINR10_11bits_t;

extern __at(0x0E2F) volatile __RPINR10_11bits_t RPINR10_11bits;

#define _SS1R0                  0x01
#define _SS1R1                  0x02
#define _SS1R2                  0x04
#define _SS1R3                  0x08
#define _SCK2R0                 0x10
#define _SCK2R1                 0x20
#define _SCK2R2                 0x40
#define _SCK2R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR12_13 Bits

extern __at(0x0E30) __sfr RPINR12_13;

typedef union
  {
  struct
    {
    unsigned SDI2R0             : 1;
    unsigned SDI2R1             : 1;
    unsigned SDI2R2             : 1;
    unsigned SDI2R3             : 1;
    unsigned SS2R0              : 1;
    unsigned SS2R1              : 1;
    unsigned SS2R2              : 1;
    unsigned SS2R3              : 1;
    };

  struct
    {
    unsigned SDI2R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned SS2R               : 4;
    };
  } __RPINR12_13bits_t;

extern __at(0x0E30) volatile __RPINR12_13bits_t RPINR12_13bits;

#define _SDI2R0                 0x01
#define _SDI2R1                 0x02
#define _SDI2R2                 0x04
#define _SDI2R3                 0x08
#define _SS2R0                  0x10
#define _SS2R1                  0x20
#define _SS2R2                  0x40
#define _SS2R3                  0x80

//==============================================================================


//==============================================================================
//        RPINR14_15 Bits

extern __at(0x0E31) __sfr RPINR14_15;

typedef union
  {
  struct
    {
    unsigned FLT0R0             : 1;
    unsigned FLT0R1             : 1;
    unsigned FLT0R2             : 1;
    unsigned FLT0R3             : 1;
    unsigned ECCP1R0            : 1;
    unsigned ECCP1R1            : 1;
    unsigned ECCP1R2            : 1;
    unsigned ECCP1R3            : 1;
    };

  struct
    {
    unsigned FLT0R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned ECCP1R             : 4;
    };
  } __RPINR14_15bits_t;

extern __at(0x0E31) volatile __RPINR14_15bits_t RPINR14_15bits;

#define _FLT0R0                 0x01
#define _FLT0R1                 0x02
#define _FLT0R2                 0x04
#define _FLT0R3                 0x08
#define _ECCP1R0                0x10
#define _ECCP1R1                0x20
#define _ECCP1R2                0x40
#define _ECCP1R3                0x80

//==============================================================================


//==============================================================================
//        RPINR16_17 Bits

extern __at(0x0E32) __sfr RPINR16_17;

typedef union
  {
  struct
    {
    unsigned ECCP2R0            : 1;
    unsigned ECCP2R1            : 1;
    unsigned ECCP2R2            : 1;
    unsigned ECCP2R3            : 1;
    unsigned ECCP3R0            : 1;
    unsigned ECCP3R1            : 1;
    unsigned ECCP3R2            : 1;
    unsigned ECCP3R3            : 1;
    };

  struct
    {
    unsigned ECCP2R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned ECCP3R             : 4;
    };
  } __RPINR16_17bits_t;

extern __at(0x0E32) volatile __RPINR16_17bits_t RPINR16_17bits;

#define _ECCP2R0                0x01
#define _ECCP2R1                0x02
#define _ECCP2R2                0x04
#define _ECCP2R3                0x08
#define _ECCP3R0                0x10
#define _ECCP3R1                0x20
#define _ECCP3R2                0x40
#define _ECCP3R3                0x80

//==============================================================================


//==============================================================================
//        RPINR18_19 Bits

extern __at(0x0E33) __sfr RPINR18_19;

typedef union
  {
  struct
    {
    unsigned IOC0R0             : 1;
    unsigned IOC0R1             : 1;
    unsigned IOC0R2             : 1;
    unsigned IOC0R3             : 1;
    unsigned IOC1R0             : 1;
    unsigned IOC1R1             : 1;
    unsigned IOC1R2             : 1;
    unsigned IOC1R3             : 1;
    };

  struct
    {
    unsigned IOC0R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned IOC1R              : 4;
    };
  } __RPINR18_19bits_t;

extern __at(0x0E33) volatile __RPINR18_19bits_t RPINR18_19bits;

#define _IOC0R0                 0x01
#define _IOC0R1                 0x02
#define _IOC0R2                 0x04
#define _IOC0R3                 0x08
#define _IOC1R0                 0x10
#define _IOC1R1                 0x20
#define _IOC1R2                 0x40
#define _IOC1R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR20_21 Bits

extern __at(0x0E34) __sfr RPINR20_21;

typedef union
  {
  struct
    {
    unsigned IOC2R0             : 1;
    unsigned IOC2R1             : 1;
    unsigned IOC2R2             : 1;
    unsigned IOC2R3             : 1;
    unsigned IOC3R0             : 1;
    unsigned IOC3R1             : 1;
    unsigned IOC3R2             : 1;
    unsigned IOC3R3             : 1;
    };

  struct
    {
    unsigned IOC2R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned IOC3R              : 4;
    };
  } __RPINR20_21bits_t;

extern __at(0x0E34) volatile __RPINR20_21bits_t RPINR20_21bits;

#define _IOC2R0                 0x01
#define _IOC2R1                 0x02
#define _IOC2R2                 0x04
#define _IOC2R3                 0x08
#define _IOC3R0                 0x10
#define _IOC3R1                 0x20
#define _IOC3R2                 0x40
#define _IOC3R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR22_23 Bits

extern __at(0x0E35) __sfr RPINR22_23;

typedef union
  {
  struct
    {
    unsigned IOC4R0             : 1;
    unsigned IOC4R1             : 1;
    unsigned IOC4R2             : 1;
    unsigned IOC4R3             : 1;
    unsigned IOC5R0             : 1;
    unsigned IOC5R1             : 1;
    unsigned IOC5R2             : 1;
    unsigned IOC5R3             : 1;
    };

  struct
    {
    unsigned IOC4R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned IOC5R              : 4;
    };
  } __RPINR22_23bits_t;

extern __at(0x0E35) volatile __RPINR22_23bits_t RPINR22_23bits;

#define _IOC4R0                 0x01
#define _IOC4R1                 0x02
#define _IOC4R2                 0x04
#define _IOC4R3                 0x08
#define _IOC5R0                 0x10
#define _IOC5R1                 0x20
#define _IOC5R2                 0x40
#define _IOC5R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR24_25 Bits

extern __at(0x0E36) __sfr RPINR24_25;

typedef union
  {
  struct
    {
    unsigned IOC6R0             : 1;
    unsigned IOC6R1             : 1;
    unsigned IOC6R2             : 1;
    unsigned IOC6R3             : 1;
    unsigned IOC7R0             : 1;
    unsigned IOC7R1             : 1;
    unsigned IOC7R2             : 1;
    unsigned IOC7R3             : 1;
    };

  struct
    {
    unsigned IOC6R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned IOC7R              : 4;
    };
  } __RPINR24_25bits_t;

extern __at(0x0E36) volatile __RPINR24_25bits_t RPINR24_25bits;

#define _IOC6R0                 0x01
#define _IOC6R1                 0x02
#define _IOC6R2                 0x04
#define _IOC6R3                 0x08
#define _IOC7R0                 0x10
#define _IOC7R1                 0x20
#define _IOC7R2                 0x40
#define _IOC7R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR26_27 Bits

extern __at(0x0E37) __sfr RPINR26_27;

typedef union
  {
  struct
    {
    unsigned INT1R0             : 1;
    unsigned INT1R1             : 1;
    unsigned INT1R2             : 1;
    unsigned INT1R3             : 1;
    unsigned INT2R0             : 1;
    unsigned INT2R1             : 1;
    unsigned INT2R2             : 1;
    unsigned INT2R3             : 1;
    };

  struct
    {
    unsigned INT1R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned INT2R              : 4;
    };
  } __RPINR26_27bits_t;

extern __at(0x0E37) volatile __RPINR26_27bits_t RPINR26_27bits;

#define _INT1R0                 0x01
#define _INT1R1                 0x02
#define _INT1R2                 0x04
#define _INT1R3                 0x08
#define _INT2R0                 0x10
#define _INT2R1                 0x20
#define _INT2R2                 0x40
#define _INT2R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR28_29 Bits

extern __at(0x0E38) __sfr RPINR28_29;

typedef union
  {
  struct
    {
    unsigned INT3R0             : 1;
    unsigned INT3R1             : 1;
    unsigned INT3R2             : 1;
    unsigned INT3R3             : 1;
    unsigned MDMINR0            : 1;
    unsigned MDMINR1            : 1;
    unsigned MDMINR2            : 1;
    unsigned MDMINR3            : 1;
    };

  struct
    {
    unsigned INT3R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned MDMINR             : 4;
    };
  } __RPINR28_29bits_t;

extern __at(0x0E38) volatile __RPINR28_29bits_t RPINR28_29bits;

#define _INT3R0                 0x01
#define _INT3R1                 0x02
#define _INT3R2                 0x04
#define _INT3R3                 0x08
#define _MDMINR0                0x10
#define _MDMINR1                0x20
#define _MDMINR2                0x40
#define _MDMINR3                0x80

//==============================================================================


//==============================================================================
//        RPINR30_31 Bits

extern __at(0x0E39) __sfr RPINR30_31;

typedef union
  {
  struct
    {
    unsigned MDCIN1R0           : 1;
    unsigned MDCIN1R1           : 1;
    unsigned MDCIN1R2           : 1;
    unsigned MDCIN1R3           : 1;
    unsigned MDCIN2R0           : 1;
    unsigned MDCIN2R1           : 1;
    unsigned MDCIN2R2           : 1;
    unsigned MDCIN2R3           : 1;
    };

  struct
    {
    unsigned MDCIN1R            : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned MDCIN2R            : 4;
    };
  } __RPINR30_31bits_t;

extern __at(0x0E39) volatile __RPINR30_31bits_t RPINR30_31bits;

#define _MDCIN1R0               0x01
#define _MDCIN1R1               0x02
#define _MDCIN1R2               0x04
#define _MDCIN1R3               0x08
#define _MDCIN2R0               0x10
#define _MDCIN2R1               0x20
#define _MDCIN2R2               0x40
#define _MDCIN2R3               0x80

//==============================================================================


//==============================================================================
//        RPINR32_33 Bits

extern __at(0x0E3A) __sfr RPINR32_33;

typedef union
  {
  struct
    {
    unsigned CCP4R0             : 1;
    unsigned CCP4R1             : 1;
    unsigned CCP4R2             : 1;
    unsigned CCP4R3             : 1;
    unsigned CCP5R0             : 1;
    unsigned CCP5R1             : 1;
    unsigned CCP5R2             : 1;
    unsigned CCP5R3             : 1;
    };

  struct
    {
    unsigned CCP4R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned CCP5R              : 4;
    };
  } __RPINR32_33bits_t;

extern __at(0x0E3A) volatile __RPINR32_33bits_t RPINR32_33bits;

#define _CCP4R0                 0x01
#define _CCP4R1                 0x02
#define _CCP4R2                 0x04
#define _CCP4R3                 0x08
#define _CCP5R0                 0x10
#define _CCP5R1                 0x20
#define _CCP5R2                 0x40
#define _CCP5R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR34_35 Bits

extern __at(0x0E3B) __sfr RPINR34_35;

typedef union
  {
  struct
    {
    unsigned CCP6R0             : 1;
    unsigned CCP6R1             : 1;
    unsigned CCP6R2             : 1;
    unsigned CCP6R3             : 1;
    unsigned CCP7R0             : 1;
    unsigned CCP7R1             : 1;
    unsigned CCP7R2             : 1;
    unsigned CCP7R3             : 1;
    };

  struct
    {
    unsigned CCP6R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned CCP7R              : 4;
    };
  } __RPINR34_35bits_t;

extern __at(0x0E3B) volatile __RPINR34_35bits_t RPINR34_35bits;

#define _CCP6R0                 0x01
#define _CCP6R1                 0x02
#define _CCP6R2                 0x04
#define _CCP6R3                 0x08
#define _CCP7R0                 0x10
#define _CCP7R1                 0x20
#define _CCP7R2                 0x40
#define _CCP7R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR36_37 Bits

extern __at(0x0E3C) __sfr RPINR36_37;

typedef union
  {
  struct
    {
    unsigned CCP8R0             : 1;
    unsigned CCP8R1             : 1;
    unsigned CCP8R2             : 1;
    unsigned CCP8R3             : 1;
    unsigned CCP9R0             : 1;
    unsigned CCP9R1             : 1;
    unsigned CCP9R2             : 1;
    unsigned CCP9R3             : 1;
    };

  struct
    {
    unsigned CCP8R              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned CCP9R              : 4;
    };
  } __RPINR36_37bits_t;

extern __at(0x0E3C) volatile __RPINR36_37bits_t RPINR36_37bits;

#define _CCP8R0                 0x01
#define _CCP8R1                 0x02
#define _CCP8R2                 0x04
#define _CCP8R3                 0x08
#define _CCP9R0                 0x10
#define _CCP9R1                 0x20
#define _CCP9R2                 0x40
#define _CCP9R3                 0x80

//==============================================================================


//==============================================================================
//        RPINR38_39 Bits

extern __at(0x0E3D) __sfr RPINR38_39;

typedef union
  {
  struct
    {
    unsigned CCP10R0            : 1;
    unsigned CCP10R1            : 1;
    unsigned CCP10R2            : 1;
    unsigned CCP10R3            : 1;
    unsigned T0CKIR0            : 1;
    unsigned T0CKIR1            : 1;
    unsigned T0CKIR2            : 1;
    unsigned T0CKIR3            : 1;
    };

  struct
    {
    unsigned CCP10R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T0CKIR             : 4;
    };
  } __RPINR38_39bits_t;

extern __at(0x0E3D) volatile __RPINR38_39bits_t RPINR38_39bits;

#define _CCP10R0                0x01
#define _CCP10R1                0x02
#define _CCP10R2                0x04
#define _CCP10R3                0x08
#define _T0CKIR0                0x10
#define _T0CKIR1                0x20
#define _T0CKIR2                0x40
#define _T0CKIR3                0x80

//==============================================================================


//==============================================================================
//        RPINR40_41 Bits

extern __at(0x0E3E) __sfr RPINR40_41;

typedef union
  {
  struct
    {
    unsigned T1GR0              : 1;
    unsigned T1GR1              : 1;
    unsigned T1GR2              : 1;
    unsigned T1GR3              : 1;
    unsigned T1CKIR0            : 1;
    unsigned T1CKIR1            : 1;
    unsigned T1CKIR2            : 1;
    unsigned T1CKIR3            : 1;
    };

  struct
    {
    unsigned T1GR               : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T1CKIR             : 4;
    };
  } __RPINR40_41bits_t;

extern __at(0x0E3E) volatile __RPINR40_41bits_t RPINR40_41bits;

#define _T1GR0                  0x01
#define _T1GR1                  0x02
#define _T1GR2                  0x04
#define _T1GR3                  0x08
#define _T1CKIR0                0x10
#define _T1CKIR1                0x20
#define _T1CKIR2                0x40
#define _T1CKIR3                0x80

//==============================================================================


//==============================================================================
//        RPINR42_43 Bits

extern __at(0x0E3F) __sfr RPINR42_43;

typedef union
  {
  struct
    {
    unsigned T3GR0              : 1;
    unsigned T3GR1              : 1;
    unsigned T3GR2              : 1;
    unsigned T3GR3              : 1;
    unsigned T3CKIR0            : 1;
    unsigned T3CKIR1            : 1;
    unsigned T3CKIR2            : 1;
    unsigned T3CKIR3            : 1;
    };

  struct
    {
    unsigned T3GR               : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T3CKIR             : 4;
    };
  } __RPINR42_43bits_t;

extern __at(0x0E3F) volatile __RPINR42_43bits_t RPINR42_43bits;

#define _T3GR0                  0x01
#define _T3GR1                  0x02
#define _T3GR2                  0x04
#define _T3GR3                  0x08
#define _T3CKIR0                0x10
#define _T3CKIR1                0x20
#define _T3CKIR2                0x40
#define _T3CKIR3                0x80

//==============================================================================


//==============================================================================
//        RPINR44_45 Bits

extern __at(0x0E40) __sfr RPINR44_45;

typedef union
  {
  struct
    {
    unsigned T5GR0              : 1;
    unsigned T5GR1              : 1;
    unsigned T5GR2              : 1;
    unsigned T5GR3              : 1;
    unsigned T5CKIR0            : 1;
    unsigned T5CKIR1            : 1;
    unsigned T5CKIR2            : 1;
    unsigned T5CKIR3            : 1;
    };

  struct
    {
    unsigned T5GR               : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T5CKIR             : 4;
    };
  } __RPINR44_45bits_t;

extern __at(0x0E40) volatile __RPINR44_45bits_t RPINR44_45bits;

#define _T5GR0                  0x01
#define _T5GR1                  0x02
#define _T5GR2                  0x04
#define _T5GR3                  0x08
#define _T5CKIR0                0x10
#define _T5CKIR1                0x20
#define _T5CKIR2                0x40
#define _T5CKIR3                0x80

//==============================================================================


//==============================================================================
//        RPINR46_47 Bits

extern __at(0x0E41) __sfr RPINR46_47;

typedef union
  {
  struct
    {
    unsigned PBIO0R0            : 1;
    unsigned PBIO0R1            : 1;
    unsigned PBIO0R2            : 1;
    unsigned PBIO0R3            : 1;
    unsigned PBIO1R0            : 1;
    unsigned PBIO1R1            : 1;
    unsigned PBIO1R2            : 1;
    unsigned PBIO1R3            : 1;
    };

  struct
    {
    unsigned PBIO0R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned PBIO1R             : 4;
    };
  } __RPINR46_47bits_t;

extern __at(0x0E41) volatile __RPINR46_47bits_t RPINR46_47bits;

#define _PBIO0R0                0x01
#define _PBIO0R1                0x02
#define _PBIO0R2                0x04
#define _PBIO0R3                0x08
#define _PBIO1R0                0x10
#define _PBIO1R1                0x20
#define _PBIO1R2                0x40
#define _PBIO1R3                0x80

//==============================================================================


//==============================================================================
//        RPINR48_49 Bits

extern __at(0x0E42) __sfr RPINR48_49;

typedef union
  {
  struct
    {
    unsigned PBIO2R0            : 1;
    unsigned PBIO2R1            : 1;
    unsigned PBIO2R2            : 1;
    unsigned PBIO2R3            : 1;
    unsigned PBIO3R0            : 1;
    unsigned PBIO3R1            : 1;
    unsigned PBIO3R2            : 1;
    unsigned PBIO3R3            : 1;
    };

  struct
    {
    unsigned PBIO2R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned PBIO3R             : 4;
    };
  } __RPINR48_49bits_t;

extern __at(0x0E42) volatile __RPINR48_49bits_t RPINR48_49bits;

#define _PBIO2R0                0x01
#define _PBIO2R1                0x02
#define _PBIO2R2                0x04
#define _PBIO2R3                0x08
#define _PBIO3R0                0x10
#define _PBIO3R1                0x20
#define _PBIO3R2                0x40
#define _PBIO3R3                0x80

//==============================================================================


//==============================================================================
//        RPINR50_51 Bits

extern __at(0x0E43) __sfr RPINR50_51;

typedef union
  {
  struct
    {
    unsigned PBIO4R0            : 1;
    unsigned PBIO4R1            : 1;
    unsigned PBIO4R2            : 1;
    unsigned PBIO4R3            : 1;
    unsigned PBIO5R0            : 1;
    unsigned PBIO5R1            : 1;
    unsigned PBIO5R2            : 1;
    unsigned PBIO5R3            : 1;
    };

  struct
    {
    unsigned PBIO4R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned PBIO5R             : 4;
    };
  } __RPINR50_51bits_t;

extern __at(0x0E43) volatile __RPINR50_51bits_t RPINR50_51bits;

#define _PBIO4R0                0x01
#define _PBIO4R1                0x02
#define _PBIO4R2                0x04
#define _PBIO4R3                0x08
#define _PBIO5R0                0x10
#define _PBIO5R1                0x20
#define _PBIO5R2                0x40
#define _PBIO5R3                0x80

//==============================================================================


//==============================================================================
//        RPINR52_53 Bits

extern __at(0x0E44) __sfr RPINR52_53;

typedef union
  {
  struct
    {
    unsigned PBIO6R0            : 1;
    unsigned PBIO6R1            : 1;
    unsigned PBIO6R2            : 1;
    unsigned PBIO6R3            : 1;
    unsigned PBIO7R0            : 1;
    unsigned PBIO7R1            : 1;
    unsigned PBIO7R2            : 1;
    unsigned PBIO7R3            : 1;
    };

  struct
    {
    unsigned PBIO6R             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned PBIO7R             : 4;
    };
  } __RPINR52_53bits_t;

extern __at(0x0E44) volatile __RPINR52_53bits_t RPINR52_53bits;

#define _PBIO6R0                0x01
#define _PBIO6R1                0x02
#define _PBIO6R2                0x04
#define _PBIO6R3                0x08
#define _PBIO7R0                0x10
#define _PBIO7R1                0x20
#define _PBIO7R2                0x40
#define _PBIO7R3                0x80

//==============================================================================


//==============================================================================
//        ANCON3 Bits

extern __at(0x0E45) __sfr ANCON3;

typedef struct
  {
  unsigned ANSEL16              : 1;
  unsigned ANSEL17              : 1;
  unsigned ANSEL18              : 1;
  unsigned ANSEL19              : 1;
  unsigned ANSEL20              : 1;
  unsigned ANSEL21              : 1;
  unsigned ANSEL22              : 1;
  unsigned ANSEL23              : 1;
  } __ANCON3bits_t;

extern __at(0x0E45) volatile __ANCON3bits_t ANCON3bits;

#define _ANSEL16                0x01
#define _ANSEL17                0x02
#define _ANSEL18                0x04
#define _ANSEL19                0x08
#define _ANSEL20                0x10
#define _ANSEL21                0x20
#define _ANSEL22                0x40
#define _ANSEL23                0x80

//==============================================================================


//==============================================================================
//        ANCON2 Bits

extern __at(0x0E46) __sfr ANCON2;

typedef struct
  {
  unsigned ANSEL8               : 1;
  unsigned ANSEL9               : 1;
  unsigned ANSEL10              : 1;
  unsigned ANSEL11              : 1;
  unsigned ANSEL12              : 1;
  unsigned ANSEL13              : 1;
  unsigned ANSEL14              : 1;
  unsigned ANSEL15              : 1;
  } __ANCON2bits_t;

extern __at(0x0E46) volatile __ANCON2bits_t ANCON2bits;

#define _ANSEL8                 0x01
#define _ANSEL9                 0x02
#define _ANSEL10                0x04
#define _ANSEL11                0x08
#define _ANSEL12                0x10
#define _ANSEL13                0x20
#define _ANSEL14                0x40
#define _ANSEL15                0x80

//==============================================================================


//==============================================================================
//        ANCON1 Bits

extern __at(0x0E47) __sfr ANCON1;

typedef struct
  {
  unsigned ANSEL0               : 1;
  unsigned ANSEL1               : 1;
  unsigned ANSEL2               : 1;
  unsigned ANSEL3               : 1;
  unsigned ANSEL4               : 1;
  unsigned ANSEL5               : 1;
  unsigned ANSEL6               : 1;
  unsigned ANSEL7               : 1;
  } __ANCON1bits_t;

extern __at(0x0E47) volatile __ANCON1bits_t ANCON1bits;

#define _ANSEL0                 0x01
#define _ANSEL1                 0x02
#define _ANSEL2                 0x04
#define _ANSEL3                 0x08
#define _ANSEL4                 0x10
#define _ANSEL5                 0x20
#define _ANSEL6                 0x40
#define _ANSEL7                 0x80

//==============================================================================

extern __at(0x0E48) __sfr ADCBUF1;
extern __at(0x0E48) __sfr ADCBUF1L;
extern __at(0x0E49) __sfr ADCBUF1H;
extern __at(0x0E4A) __sfr ADCBUF2;
extern __at(0x0E4A) __sfr ADCBUF2L;
extern __at(0x0E4B) __sfr ADCBUF2H;
extern __at(0x0E4C) __sfr ADCBUF3;
extern __at(0x0E4C) __sfr ADCBUF3L;
extern __at(0x0E4D) __sfr ADCBUF3H;
extern __at(0x0E4E) __sfr ADCBUF4;
extern __at(0x0E4E) __sfr ADCBUF4L;
extern __at(0x0E4F) __sfr ADCBUF4H;
extern __at(0x0E50) __sfr ADCBUF5;
extern __at(0x0E50) __sfr ADCBUF5L;
extern __at(0x0E51) __sfr ADCBUF5H;
extern __at(0x0E52) __sfr ADCBUF6;
extern __at(0x0E52) __sfr ADCBUF6L;
extern __at(0x0E53) __sfr ADCBUF6H;
extern __at(0x0E54) __sfr ADCBUF7;
extern __at(0x0E54) __sfr ADCBUF7L;
extern __at(0x0E55) __sfr ADCBUF7H;
extern __at(0x0E56) __sfr ADCBUF8;
extern __at(0x0E56) __sfr ADCBUF8L;
extern __at(0x0E57) __sfr ADCBUF8H;
extern __at(0x0E58) __sfr ADCBUF9;
extern __at(0x0E58) __sfr ADCBUF9L;
extern __at(0x0E59) __sfr ADCBUF9H;
extern __at(0x0E5A) __sfr ADCBUF10;
extern __at(0x0E5A) __sfr ADCBUF10L;
extern __at(0x0E5B) __sfr ADCBUF10H;
extern __at(0x0E5C) __sfr ADCBUF11;
extern __at(0x0E5C) __sfr ADCBUF11L;
extern __at(0x0E5D) __sfr ADCBUF11H;
extern __at(0x0E5E) __sfr ADCBUF12;
extern __at(0x0E5E) __sfr ADCBUF12L;
extern __at(0x0E5F) __sfr ADCBUF12H;
extern __at(0x0E60) __sfr ADCBUF13;
extern __at(0x0E60) __sfr ADCBUF13L;
extern __at(0x0E61) __sfr ADCBUF13H;
extern __at(0x0E62) __sfr ADCBUF14;
extern __at(0x0E62) __sfr ADCBUF14L;
extern __at(0x0E63) __sfr ADCBUF14H;
extern __at(0x0E64) __sfr ADCBUF15;
extern __at(0x0E64) __sfr ADCBUF15L;
extern __at(0x0E65) __sfr ADCBUF15H;
extern __at(0x0E66) __sfr ADCBUF16;
extern __at(0x0E66) __sfr ADCBUF16L;
extern __at(0x0E67) __sfr ADCBUF16H;
extern __at(0x0E68) __sfr ADCBUF17;
extern __at(0x0E68) __sfr ADCBUF17L;
extern __at(0x0E69) __sfr ADCBUF17H;
extern __at(0x0E6A) __sfr ADCBUF18;
extern __at(0x0E6A) __sfr ADCBUF18L;
extern __at(0x0E6B) __sfr ADCBUF18H;
extern __at(0x0E6C) __sfr ADCBUF19;
extern __at(0x0E6C) __sfr ADCBUF19L;
extern __at(0x0E6D) __sfr ADCBUF19H;
extern __at(0x0E6E) __sfr ADCBUF20;
extern __at(0x0E6E) __sfr ADCBUF20L;
extern __at(0x0E6F) __sfr ADCBUF20H;
extern __at(0x0E70) __sfr ADCBUF21;
extern __at(0x0E70) __sfr ADCBUF21L;
extern __at(0x0E71) __sfr ADCBUF21H;
extern __at(0x0E72) __sfr ADCBUF22;
extern __at(0x0E72) __sfr ADCBUF22L;
extern __at(0x0E73) __sfr ADCBUF22H;
extern __at(0x0E74) __sfr ADCBUF23;
extern __at(0x0E74) __sfr ADCBUF23L;
extern __at(0x0E75) __sfr ADCBUF23H;
extern __at(0x0E76) __sfr ADCBUF24;
extern __at(0x0E76) __sfr ADCBUF24L;
extern __at(0x0E77) __sfr ADCBUF24H;
extern __at(0x0E78) __sfr ADCBUF25;
extern __at(0x0E78) __sfr ADCBUF25L;
extern __at(0x0E79) __sfr ADCBUF25H;

//==============================================================================
//        ADCTMUEN0L Bits

extern __at(0x0E7A) __sfr ADCTMUEN0L;

typedef struct
  {
  unsigned CTMUEN0              : 1;
  unsigned CTMUEN1              : 1;
  unsigned CTMUEN2              : 1;
  unsigned CTMUEN3              : 1;
  unsigned CTMUEN4              : 1;
  unsigned CTMUEN5              : 1;
  unsigned CTMUEN6              : 1;
  unsigned CTMUEN7              : 1;
  } __ADCTMUEN0Lbits_t;

extern __at(0x0E7A) volatile __ADCTMUEN0Lbits_t ADCTMUEN0Lbits;

#define _CTMUEN0                0x01
#define _CTMUEN1                0x02
#define _CTMUEN2                0x04
#define _CTMUEN3                0x08
#define _CTMUEN4                0x10
#define _CTMUEN5                0x20
#define _CTMUEN6                0x40
#define _CTMUEN7                0x80

//==============================================================================


//==============================================================================
//        ADCTMUEN0H Bits

extern __at(0x0E7B) __sfr ADCTMUEN0H;

typedef struct
  {
  unsigned CTMUEN8              : 1;
  unsigned CTMUEN9              : 1;
  unsigned CTMUEN10             : 1;
  unsigned CTMUEN11             : 1;
  unsigned CTMUEN12             : 1;
  unsigned CTMUEN13             : 1;
  unsigned CTMUEN14             : 1;
  unsigned CTMUEN15             : 1;
  } __ADCTMUEN0Hbits_t;

extern __at(0x0E7B) volatile __ADCTMUEN0Hbits_t ADCTMUEN0Hbits;

#define _CTMUEN8                0x01
#define _CTMUEN9                0x02
#define _CTMUEN10               0x04
#define _CTMUEN11               0x08
#define _CTMUEN12               0x10
#define _CTMUEN13               0x20
#define _CTMUEN14               0x40
#define _CTMUEN15               0x80

//==============================================================================


//==============================================================================
//        ADCTMUEN1L Bits

extern __at(0x0E7C) __sfr ADCTMUEN1L;

typedef struct
  {
  unsigned CTUMEN16             : 1;
  unsigned CTUMEN17             : 1;
  unsigned CTUMEN18             : 1;
  unsigned CTUMEN19             : 1;
  unsigned CTMUEN20             : 1;
  unsigned CTMUEN21             : 1;
  unsigned CTMUEN22             : 1;
  unsigned CTMUEN23             : 1;
  } __ADCTMUEN1Lbits_t;

extern __at(0x0E7C) volatile __ADCTMUEN1Lbits_t ADCTMUEN1Lbits;

#define _CTUMEN16               0x01
#define _CTUMEN17               0x02
#define _CTUMEN18               0x04
#define _CTUMEN19               0x08
#define _CTMUEN20               0x10
#define _CTMUEN21               0x20
#define _CTMUEN22               0x40
#define _CTMUEN23               0x80

//==============================================================================


//==============================================================================
//        ADCTMUEN1H Bits

extern __at(0x0E7D) __sfr ADCTMUEN1H;

typedef struct
  {
  unsigned CTUMEN24             : 1;
  unsigned CTUMEN25             : 1;
  unsigned CTUMEN26             : 1;
  unsigned CTUMEN27             : 1;
  unsigned CTUMEN28             : 1;
  unsigned CTUMEN29             : 1;
  unsigned CTMUEN30             : 1;
  unsigned                      : 1;
  } __ADCTMUEN1Hbits_t;

extern __at(0x0E7D) volatile __ADCTMUEN1Hbits_t ADCTMUEN1Hbits;

#define _CTUMEN24               0x01
#define _CTUMEN25               0x02
#define _CTUMEN26               0x04
#define _CTUMEN27               0x08
#define _CTUMEN28               0x10
#define _CTUMEN29               0x20
#define _CTMUEN30               0x40

//==============================================================================


//==============================================================================
//        ADCHIT0L Bits

extern __at(0x0E7E) __sfr ADCHIT0L;

typedef struct
  {
  unsigned CHH0                 : 1;
  unsigned CHH1                 : 1;
  unsigned CHH2                 : 1;
  unsigned CHH3                 : 1;
  unsigned CHH4                 : 1;
  unsigned CHH5                 : 1;
  unsigned CHH6                 : 1;
  unsigned CHH7                 : 1;
  } __ADCHIT0Lbits_t;

extern __at(0x0E7E) volatile __ADCHIT0Lbits_t ADCHIT0Lbits;

#define _CHH0                   0x01
#define _CHH1                   0x02
#define _CHH2                   0x04
#define _CHH3                   0x08
#define _CHH4                   0x10
#define _CHH5                   0x20
#define _CHH6                   0x40
#define _CHH7                   0x80

//==============================================================================


//==============================================================================
//        ADCHIT0H Bits

extern __at(0x0E7F) __sfr ADCHIT0H;

typedef struct
  {
  unsigned CHH8                 : 1;
  unsigned CHH9                 : 1;
  unsigned CHH10                : 1;
  unsigned CHH11                : 1;
  unsigned CHH12                : 1;
  unsigned CHH13                : 1;
  unsigned CHH14                : 1;
  unsigned CHH15                : 1;
  } __ADCHIT0Hbits_t;

extern __at(0x0E7F) volatile __ADCHIT0Hbits_t ADCHIT0Hbits;

#define _CHH8                   0x01
#define _CHH9                   0x02
#define _CHH10                  0x04
#define _CHH11                  0x08
#define _CHH12                  0x10
#define _CHH13                  0x20
#define _CHH14                  0x40
#define _CHH15                  0x80

//==============================================================================


//==============================================================================
//        ADCHIT1L Bits

extern __at(0x0E80) __sfr ADCHIT1L;

typedef struct
  {
  unsigned CHH16                : 1;
  unsigned CHH17                : 1;
  unsigned CHH18                : 1;
  unsigned CHH19                : 1;
  unsigned CHH20                : 1;
  unsigned CHH21                : 1;
  unsigned CHH22                : 1;
  unsigned CHH23                : 1;
  } __ADCHIT1Lbits_t;

extern __at(0x0E80) volatile __ADCHIT1Lbits_t ADCHIT1Lbits;

#define _CHH16                  0x01
#define _CHH17                  0x02
#define _CHH18                  0x04
#define _CHH19                  0x08
#define _CHH20                  0x10
#define _CHH21                  0x20
#define _CHH22                  0x40
#define _CHH23                  0x80

//==============================================================================


//==============================================================================
//        ADCHIT1H Bits

extern __at(0x0E81) __sfr ADCHIT1H;

typedef struct
  {
  unsigned CHH24                : 1;
  unsigned CHH25                : 1;
  unsigned CHH26                : 1;
  unsigned CHH27                : 1;
  unsigned CHH28                : 1;
  unsigned CHH29                : 1;
  unsigned CHH30                : 1;
  unsigned                      : 1;
  } __ADCHIT1Hbits_t;

extern __at(0x0E81) volatile __ADCHIT1Hbits_t ADCHIT1Hbits;

#define _CHH24                  0x01
#define _CHH25                  0x02
#define _CHH26                  0x04
#define _CHH27                  0x08
#define _CHH28                  0x10
#define _CHH29                  0x20
#define _CHH30                  0x40

//==============================================================================


//==============================================================================
//        ADCSS0L Bits

extern __at(0x0E82) __sfr ADCSS0L;

typedef struct
  {
  unsigned CSS0                 : 1;
  unsigned CSS1                 : 1;
  unsigned CSS2                 : 1;
  unsigned CSS3                 : 1;
  unsigned CSS4                 : 1;
  unsigned CSS5                 : 1;
  unsigned CSS6                 : 1;
  unsigned CSS7                 : 1;
  } __ADCSS0Lbits_t;

extern __at(0x0E82) volatile __ADCSS0Lbits_t ADCSS0Lbits;

#define _CSS0                   0x01
#define _CSS1                   0x02
#define _CSS2                   0x04
#define _CSS3                   0x08
#define _CSS4                   0x10
#define _CSS5                   0x20
#define _CSS6                   0x40
#define _CSS7                   0x80

//==============================================================================


//==============================================================================
//        ADCSS0H Bits

extern __at(0x0E83) __sfr ADCSS0H;

typedef struct
  {
  unsigned CSS8                 : 1;
  unsigned CSS9                 : 1;
  unsigned CSS10                : 1;
  unsigned CSS11                : 1;
  unsigned CSS12                : 1;
  unsigned CSS13                : 1;
  unsigned CSS14                : 1;
  unsigned CSS15                : 1;
  } __ADCSS0Hbits_t;

extern __at(0x0E83) volatile __ADCSS0Hbits_t ADCSS0Hbits;

#define _CSS8                   0x01
#define _CSS9                   0x02
#define _CSS10                  0x04
#define _CSS11                  0x08
#define _CSS12                  0x10
#define _CSS13                  0x20
#define _CSS14                  0x40
#define _CSS15                  0x80

//==============================================================================


//==============================================================================
//        ADCSS1L Bits

extern __at(0x0E84) __sfr ADCSS1L;

typedef struct
  {
  unsigned CSS16                : 1;
  unsigned CSS17                : 1;
  unsigned CSS18                : 1;
  unsigned CSS19                : 1;
  unsigned CSS20                : 1;
  unsigned CSS21                : 1;
  unsigned CSS22                : 1;
  unsigned CSS23                : 1;
  } __ADCSS1Lbits_t;

extern __at(0x0E84) volatile __ADCSS1Lbits_t ADCSS1Lbits;

#define _CSS16                  0x01
#define _CSS17                  0x02
#define _CSS18                  0x04
#define _CSS19                  0x08
#define _CSS20                  0x10
#define _CSS21                  0x20
#define _CSS22                  0x40
#define _CSS23                  0x80

//==============================================================================


//==============================================================================
//        ADCSS1H Bits

extern __at(0x0E85) __sfr ADCSS1H;

typedef struct
  {
  unsigned CSS24                : 1;
  unsigned CSS25                : 1;
  unsigned CSS26                : 1;
  unsigned CSS27                : 1;
  unsigned CSS28                : 1;
  unsigned CSS29                : 1;
  unsigned CSS30                : 1;
  unsigned                      : 1;
  } __ADCSS1Hbits_t;

extern __at(0x0E85) volatile __ADCSS1Hbits_t ADCSS1Hbits;

#define _CSS24                  0x01
#define _CSS25                  0x02
#define _CSS26                  0x04
#define _CSS27                  0x08
#define _CSS28                  0x10
#define _CSS29                  0x20
#define _CSS30                  0x40

//==============================================================================


//==============================================================================
//        ADCHS0L Bits

extern __at(0x0E86) __sfr ADCHS0L;

typedef union
  {
  struct
    {
    unsigned CH0SA0             : 1;
    unsigned CH0SA1             : 1;
    unsigned CH0SA2             : 1;
    unsigned CH0SA3             : 1;
    unsigned CH0SA4             : 1;
    unsigned CH0NA0             : 1;
    unsigned CH0NA1             : 1;
    unsigned CH0NA2             : 1;
    };

  struct
    {
    unsigned CH0SA              : 5;
    unsigned                    : 3;
    };

  struct
    {
    unsigned                    : 5;
    unsigned CH0NA              : 3;
    };
  } __ADCHS0Lbits_t;

extern __at(0x0E86) volatile __ADCHS0Lbits_t ADCHS0Lbits;

#define _CH0SA0                 0x01
#define _CH0SA1                 0x02
#define _CH0SA2                 0x04
#define _CH0SA3                 0x08
#define _CH0SA4                 0x10
#define _CH0NA0                 0x20
#define _CH0NA1                 0x40
#define _CH0NA2                 0x80

//==============================================================================


//==============================================================================
//        ADCHS0H Bits

extern __at(0x0E87) __sfr ADCHS0H;

typedef union
  {
  struct
    {
    unsigned CH0SB0             : 1;
    unsigned CH0SB1             : 1;
    unsigned CH0SB2             : 1;
    unsigned CH0SB3             : 1;
    unsigned CH0SB4             : 1;
    unsigned CH0NB0             : 1;
    unsigned CH0NB1             : 1;
    unsigned CH0NB2             : 1;
    };

  struct
    {
    unsigned CH0SB              : 5;
    unsigned                    : 3;
    };

  struct
    {
    unsigned                    : 5;
    unsigned CH0NB              : 3;
    };
  } __ADCHS0Hbits_t;

extern __at(0x0E87) volatile __ADCHS0Hbits_t ADCHS0Hbits;

#define _CH0SB0                 0x01
#define _CH0SB1                 0x02
#define _CH0SB2                 0x04
#define _CH0SB3                 0x08
#define _CH0SB4                 0x10
#define _CH0NB0                 0x20
#define _CH0NB1                 0x40
#define _CH0NB2                 0x80

//==============================================================================


//==============================================================================
//        ADCON5L Bits

extern __at(0x0E88) __sfr ADCON5L;

typedef union
  {
  struct
    {
    unsigned CM0                : 1;
    unsigned CM1                : 1;
    unsigned WM0                : 1;
    unsigned WM1                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CM                 : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned WM                 : 2;
    unsigned                    : 4;
    };
  } __ADCON5Lbits_t;

extern __at(0x0E88) volatile __ADCON5Lbits_t ADCON5Lbits;

#define _CM0                    0x01
#define _CM1                    0x02
#define _WM0                    0x04
#define _WM1                    0x08

//==============================================================================


//==============================================================================
//        ADCON5H Bits

extern __at(0x0E89) __sfr ADCON5H;

typedef union
  {
  struct
    {
    unsigned ASINTMD0           : 1;
    unsigned ASINTMD1           : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CTMUREQ            : 1;
    unsigned LPENA              : 1;
    unsigned ASENA              : 1;
    };

  struct
    {
    unsigned ASINTMD            : 2;
    unsigned                    : 6;
    };
  } __ADCON5Hbits_t;

extern __at(0x0E89) volatile __ADCON5Hbits_t ADCON5Hbits;

#define _ASINTMD0               0x01
#define _ASINTMD1               0x02
#define _CTMUREQ                0x20
#define _LPENA                  0x40
#define _ASENA                  0x80

//==============================================================================


//==============================================================================
//        ADCON3L Bits

extern __at(0x0E8A) __sfr ADCON3L;

typedef struct
  {
  unsigned ADCS0                : 1;
  unsigned ADCS1                : 1;
  unsigned ADCS2                : 1;
  unsigned ADCS3                : 1;
  unsigned ADCS4                : 1;
  unsigned ADCS5                : 1;
  unsigned ADCS6                : 1;
  unsigned ADCS7                : 1;
  } __ADCON3Lbits_t;

extern __at(0x0E8A) volatile __ADCON3Lbits_t ADCON3Lbits;

#define _ADCS0                  0x01
#define _ADCS1                  0x02
#define _ADCS2                  0x04
#define _ADCS3                  0x08
#define _ADCS4                  0x10
#define _ADCS5                  0x20
#define _ADCS6                  0x40
#define _ADCS7                  0x80

//==============================================================================


//==============================================================================
//        ADCON3H Bits

extern __at(0x0E8B) __sfr ADCON3H;

typedef union
  {
  struct
    {
    unsigned SAMC0              : 1;
    unsigned SAMC1              : 1;
    unsigned SAMC2              : 1;
    unsigned SAMC3              : 1;
    unsigned SAMC4              : 1;
    unsigned PUMPEN             : 1;
    unsigned EXTSAM             : 1;
    unsigned ADRC               : 1;
    };

  struct
    {
    unsigned SAMC               : 5;
    unsigned                    : 3;
    };
  } __ADCON3Hbits_t;

extern __at(0x0E8B) volatile __ADCON3Hbits_t ADCON3Hbits;

#define _SAMC0                  0x01
#define _SAMC1                  0x02
#define _SAMC2                  0x04
#define _SAMC3                  0x08
#define _SAMC4                  0x10
#define _PUMPEN                 0x20
#define _EXTSAM                 0x40
#define _ADRC                   0x80

//==============================================================================


//==============================================================================
//        ADCON2L Bits

extern __at(0x0E8C) __sfr ADCON2L;

typedef union
  {
  struct
    {
    unsigned ALTS               : 1;
    unsigned BUFM               : 1;
    unsigned SMPI0              : 1;
    unsigned SMPI1              : 1;
    unsigned SMPI2              : 1;
    unsigned SMPI3              : 1;
    unsigned SMPI4              : 1;
    unsigned BUFS               : 1;
    };

  struct
    {
    unsigned                    : 2;
    unsigned SMPI               : 5;
    unsigned                    : 1;
    };
  } __ADCON2Lbits_t;

extern __at(0x0E8C) volatile __ADCON2Lbits_t ADCON2Lbits;

#define _ALTS                   0x01
#define _BUFM                   0x02
#define _SMPI0                  0x04
#define _SMPI1                  0x08
#define _SMPI2                  0x10
#define _SMPI3                  0x20
#define _SMPI4                  0x40
#define _BUFS                   0x80

//==============================================================================


//==============================================================================
//        ADCON2H Bits

extern __at(0x0E8D) __sfr ADCON2H;

typedef union
  {
  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CSCNA              : 1;
    unsigned BUFREGEN           : 1;
    unsigned OFFCAL             : 1;
    unsigned NVCFG0             : 1;
    unsigned PVCFG0             : 1;
    unsigned PVCFG1             : 1;
    };

  struct
    {
    unsigned                    : 6;
    unsigned PVCFG              : 2;
    };
  } __ADCON2Hbits_t;

extern __at(0x0E8D) volatile __ADCON2Hbits_t ADCON2Hbits;

#define _CSCNA                  0x04
#define _BUFREGEN               0x08
#define _OFFCAL                 0x10
#define _NVCFG0                 0x20
#define _PVCFG0                 0x40
#define _PVCFG1                 0x80

//==============================================================================


//==============================================================================
//        LCDDATA0 Bits

extern __at(0x0E8E) __sfr LCDDATA0;

typedef struct
  {
  unsigned S00C0                : 1;
  unsigned S01C0                : 1;
  unsigned S02C0                : 1;
  unsigned S03C0                : 1;
  unsigned S04C0                : 1;
  unsigned S05C0                : 1;
  unsigned S06C0                : 1;
  unsigned S07C0                : 1;
  } __LCDDATA0bits_t;

extern __at(0x0E8E) volatile __LCDDATA0bits_t LCDDATA0bits;

#define _S00C0                  0x01
#define _S01C0                  0x02
#define _S02C0                  0x04
#define _S03C0                  0x08
#define _S04C0                  0x10
#define _S05C0                  0x20
#define _S06C0                  0x40
#define _S07C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA1 Bits

extern __at(0x0E8F) __sfr LCDDATA1;

typedef struct
  {
  unsigned S08C0                : 1;
  unsigned S09C0                : 1;
  unsigned S10C0                : 1;
  unsigned S11C0                : 1;
  unsigned S12C0                : 1;
  unsigned S13C0                : 1;
  unsigned S14C0                : 1;
  unsigned S15C0                : 1;
  } __LCDDATA1bits_t;

extern __at(0x0E8F) volatile __LCDDATA1bits_t LCDDATA1bits;

#define _S08C0                  0x01
#define _S09C0                  0x02
#define _S10C0                  0x04
#define _S11C0                  0x08
#define _S12C0                  0x10
#define _S13C0                  0x20
#define _S14C0                  0x40
#define _S15C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA2 Bits

extern __at(0x0E90) __sfr LCDDATA2;

typedef struct
  {
  unsigned S16C0                : 1;
  unsigned S17C0                : 1;
  unsigned S18C0                : 1;
  unsigned S19C0                : 1;
  unsigned S20C0                : 1;
  unsigned S21C0                : 1;
  unsigned S22C0                : 1;
  unsigned S23C0                : 1;
  } __LCDDATA2bits_t;

extern __at(0x0E90) volatile __LCDDATA2bits_t LCDDATA2bits;

#define _S16C0                  0x01
#define _S17C0                  0x02
#define _S18C0                  0x04
#define _S19C0                  0x08
#define _S20C0                  0x10
#define _S21C0                  0x20
#define _S22C0                  0x40
#define _S23C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA3 Bits

extern __at(0x0E91) __sfr LCDDATA3;

typedef struct
  {
  unsigned S24C0                : 1;
  unsigned S25C0                : 1;
  unsigned S26C0                : 1;
  unsigned S27C0                : 1;
  unsigned S28C0                : 1;
  unsigned S29C0                : 1;
  unsigned S30C0                : 1;
  unsigned S31C0                : 1;
  } __LCDDATA3bits_t;

extern __at(0x0E91) volatile __LCDDATA3bits_t LCDDATA3bits;

#define _S24C0                  0x01
#define _S25C0                  0x02
#define _S26C0                  0x04
#define _S27C0                  0x08
#define _S28C0                  0x10
#define _S29C0                  0x20
#define _S30C0                  0x40
#define _S31C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA4 Bits

extern __at(0x0E92) __sfr LCDDATA4;

typedef struct
  {
  unsigned S32C0                : 1;
  unsigned S33C0                : 1;
  unsigned S34C0                : 1;
  unsigned S35C0                : 1;
  unsigned S36C0                : 1;
  unsigned S37C0                : 1;
  unsigned S38C0                : 1;
  unsigned S39C0                : 1;
  } __LCDDATA4bits_t;

extern __at(0x0E92) volatile __LCDDATA4bits_t LCDDATA4bits;

#define _S32C0                  0x01
#define _S33C0                  0x02
#define _S34C0                  0x04
#define _S35C0                  0x08
#define _S36C0                  0x10
#define _S37C0                  0x20
#define _S38C0                  0x40
#define _S39C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA5 Bits

extern __at(0x0E93) __sfr LCDDATA5;

typedef struct
  {
  unsigned S40C0                : 1;
  unsigned S41C0                : 1;
  unsigned S42C0                : 1;
  unsigned S43C0                : 1;
  unsigned S44C0                : 1;
  unsigned S45C0                : 1;
  unsigned S46C0                : 1;
  unsigned S47C0                : 1;
  } __LCDDATA5bits_t;

extern __at(0x0E93) volatile __LCDDATA5bits_t LCDDATA5bits;

#define _S40C0                  0x01
#define _S41C0                  0x02
#define _S42C0                  0x04
#define _S43C0                  0x08
#define _S44C0                  0x10
#define _S45C0                  0x20
#define _S46C0                  0x40
#define _S47C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA6 Bits

extern __at(0x0E94) __sfr LCDDATA6;

typedef struct
  {
  unsigned S48C0                : 1;
  unsigned S49C0                : 1;
  unsigned S50C0                : 1;
  unsigned S51C0                : 1;
  unsigned S52C0                : 1;
  unsigned S53C0                : 1;
  unsigned S54C0                : 1;
  unsigned S55C0                : 1;
  } __LCDDATA6bits_t;

extern __at(0x0E94) volatile __LCDDATA6bits_t LCDDATA6bits;

#define _S48C0                  0x01
#define _S49C0                  0x02
#define _S50C0                  0x04
#define _S51C0                  0x08
#define _S52C0                  0x10
#define _S53C0                  0x20
#define _S54C0                  0x40
#define _S55C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA7 Bits

extern __at(0x0E95) __sfr LCDDATA7;

typedef struct
  {
  unsigned S56C0                : 1;
  unsigned S57C0                : 1;
  unsigned S58C0                : 1;
  unsigned S59C0                : 1;
  unsigned S60C0                : 1;
  unsigned S61C0                : 1;
  unsigned S62C0                : 1;
  unsigned S63C0                : 1;
  } __LCDDATA7bits_t;

extern __at(0x0E95) volatile __LCDDATA7bits_t LCDDATA7bits;

#define _S56C0                  0x01
#define _S57C0                  0x02
#define _S58C0                  0x04
#define _S59C0                  0x08
#define _S60C0                  0x10
#define _S61C0                  0x20
#define _S62C0                  0x40
#define _S63C0                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA8 Bits

extern __at(0x0E96) __sfr LCDDATA8;

typedef struct
  {
  unsigned S00C1                : 1;
  unsigned S01C1                : 1;
  unsigned S02C1                : 1;
  unsigned S03C1                : 1;
  unsigned S04C1                : 1;
  unsigned S05C1                : 1;
  unsigned S06C1                : 1;
  unsigned S07C1                : 1;
  } __LCDDATA8bits_t;

extern __at(0x0E96) volatile __LCDDATA8bits_t LCDDATA8bits;

#define _S00C1                  0x01
#define _S01C1                  0x02
#define _S02C1                  0x04
#define _S03C1                  0x08
#define _S04C1                  0x10
#define _S05C1                  0x20
#define _S06C1                  0x40
#define _S07C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA9 Bits

extern __at(0x0E97) __sfr LCDDATA9;

typedef struct
  {
  unsigned S08C1                : 1;
  unsigned S09C1                : 1;
  unsigned S10C1                : 1;
  unsigned S11C1                : 1;
  unsigned S12C1                : 1;
  unsigned S13C1                : 1;
  unsigned S14C1                : 1;
  unsigned S15C1                : 1;
  } __LCDDATA9bits_t;

extern __at(0x0E97) volatile __LCDDATA9bits_t LCDDATA9bits;

#define _S08C1                  0x01
#define _S09C1                  0x02
#define _S10C1                  0x04
#define _S11C1                  0x08
#define _S12C1                  0x10
#define _S13C1                  0x20
#define _S14C1                  0x40
#define _S15C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA10 Bits

extern __at(0x0E98) __sfr LCDDATA10;

typedef struct
  {
  unsigned S16C1                : 1;
  unsigned S17C1                : 1;
  unsigned S18C1                : 1;
  unsigned S19C1                : 1;
  unsigned S20C1                : 1;
  unsigned S21C1                : 1;
  unsigned S22C1                : 1;
  unsigned S23C1                : 1;
  } __LCDDATA10bits_t;

extern __at(0x0E98) volatile __LCDDATA10bits_t LCDDATA10bits;

#define _S16C1                  0x01
#define _S17C1                  0x02
#define _S18C1                  0x04
#define _S19C1                  0x08
#define _S20C1                  0x10
#define _S21C1                  0x20
#define _S22C1                  0x40
#define _S23C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA11 Bits

extern __at(0x0E99) __sfr LCDDATA11;

typedef struct
  {
  unsigned S24C1                : 1;
  unsigned S25C1                : 1;
  unsigned S26C1                : 1;
  unsigned S27C1                : 1;
  unsigned S28C1                : 1;
  unsigned S29C1                : 1;
  unsigned S30C1                : 1;
  unsigned S31C1                : 1;
  } __LCDDATA11bits_t;

extern __at(0x0E99) volatile __LCDDATA11bits_t LCDDATA11bits;

#define _S24C1                  0x01
#define _S25C1                  0x02
#define _S26C1                  0x04
#define _S27C1                  0x08
#define _S28C1                  0x10
#define _S29C1                  0x20
#define _S30C1                  0x40
#define _S31C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA12 Bits

extern __at(0x0E9A) __sfr LCDDATA12;

typedef struct
  {
  unsigned S32C1                : 1;
  unsigned S33C1                : 1;
  unsigned S34C1                : 1;
  unsigned S35C1                : 1;
  unsigned S36C1                : 1;
  unsigned S37C1                : 1;
  unsigned S38C1                : 1;
  unsigned S39C1                : 1;
  } __LCDDATA12bits_t;

extern __at(0x0E9A) volatile __LCDDATA12bits_t LCDDATA12bits;

#define _S32C1                  0x01
#define _S33C1                  0x02
#define _S34C1                  0x04
#define _S35C1                  0x08
#define _S36C1                  0x10
#define _S37C1                  0x20
#define _S38C1                  0x40
#define _S39C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA13 Bits

extern __at(0x0E9B) __sfr LCDDATA13;

typedef struct
  {
  unsigned S40C1                : 1;
  unsigned S41C1                : 1;
  unsigned S42C1                : 1;
  unsigned S43C1                : 1;
  unsigned S44C1                : 1;
  unsigned S45C1                : 1;
  unsigned S46C1                : 1;
  unsigned S47C1                : 1;
  } __LCDDATA13bits_t;

extern __at(0x0E9B) volatile __LCDDATA13bits_t LCDDATA13bits;

#define _S40C1                  0x01
#define _S41C1                  0x02
#define _S42C1                  0x04
#define _S43C1                  0x08
#define _S44C1                  0x10
#define _S45C1                  0x20
#define _S46C1                  0x40
#define _S47C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA14 Bits

extern __at(0x0E9C) __sfr LCDDATA14;

typedef struct
  {
  unsigned S48C1                : 1;
  unsigned S49C1                : 1;
  unsigned S50C1                : 1;
  unsigned S51C1                : 1;
  unsigned S52C1                : 1;
  unsigned S53C1                : 1;
  unsigned S54C1                : 1;
  unsigned S55C1                : 1;
  } __LCDDATA14bits_t;

extern __at(0x0E9C) volatile __LCDDATA14bits_t LCDDATA14bits;

#define _S48C1                  0x01
#define _S49C1                  0x02
#define _S50C1                  0x04
#define _S51C1                  0x08
#define _S52C1                  0x10
#define _S53C1                  0x20
#define _S54C1                  0x40
#define _S55C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA15 Bits

extern __at(0x0E9D) __sfr LCDDATA15;

typedef struct
  {
  unsigned S56C1                : 1;
  unsigned S57C1                : 1;
  unsigned S58C1                : 1;
  unsigned S59C1                : 1;
  unsigned S60C1                : 1;
  unsigned S61C1                : 1;
  unsigned S62C1                : 1;
  unsigned S63C1                : 1;
  } __LCDDATA15bits_t;

extern __at(0x0E9D) volatile __LCDDATA15bits_t LCDDATA15bits;

#define _S56C1                  0x01
#define _S57C1                  0x02
#define _S58C1                  0x04
#define _S59C1                  0x08
#define _S60C1                  0x10
#define _S61C1                  0x20
#define _S62C1                  0x40
#define _S63C1                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA16 Bits

extern __at(0x0E9E) __sfr LCDDATA16;

typedef struct
  {
  unsigned S00C2                : 1;
  unsigned S01C2                : 1;
  unsigned S02C2                : 1;
  unsigned S03C2                : 1;
  unsigned S04C2                : 1;
  unsigned S05C2                : 1;
  unsigned S06C2                : 1;
  unsigned S07C2                : 1;
  } __LCDDATA16bits_t;

extern __at(0x0E9E) volatile __LCDDATA16bits_t LCDDATA16bits;

#define _S00C2                  0x01
#define _S01C2                  0x02
#define _S02C2                  0x04
#define _S03C2                  0x08
#define _S04C2                  0x10
#define _S05C2                  0x20
#define _S06C2                  0x40
#define _S07C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA17 Bits

extern __at(0x0E9F) __sfr LCDDATA17;

typedef struct
  {
  unsigned S08C2                : 1;
  unsigned S09C2                : 1;
  unsigned S10C2                : 1;
  unsigned S11C2                : 1;
  unsigned S12C2                : 1;
  unsigned S13C2                : 1;
  unsigned S14C2                : 1;
  unsigned S15C2                : 1;
  } __LCDDATA17bits_t;

extern __at(0x0E9F) volatile __LCDDATA17bits_t LCDDATA17bits;

#define _S08C2                  0x01
#define _S09C2                  0x02
#define _S10C2                  0x04
#define _S11C2                  0x08
#define _S12C2                  0x10
#define _S13C2                  0x20
#define _S14C2                  0x40
#define _S15C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA18 Bits

extern __at(0x0EA0) __sfr LCDDATA18;

typedef struct
  {
  unsigned S16C2                : 1;
  unsigned S17C2                : 1;
  unsigned S18C2                : 1;
  unsigned S19C2                : 1;
  unsigned S20C2                : 1;
  unsigned S21C2                : 1;
  unsigned S22C2                : 1;
  unsigned S23C2                : 1;
  } __LCDDATA18bits_t;

extern __at(0x0EA0) volatile __LCDDATA18bits_t LCDDATA18bits;

#define _S16C2                  0x01
#define _S17C2                  0x02
#define _S18C2                  0x04
#define _S19C2                  0x08
#define _S20C2                  0x10
#define _S21C2                  0x20
#define _S22C2                  0x40
#define _S23C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA19 Bits

extern __at(0x0EA1) __sfr LCDDATA19;

typedef struct
  {
  unsigned S24C2                : 1;
  unsigned S25C2                : 1;
  unsigned S26C2                : 1;
  unsigned S27C2                : 1;
  unsigned S28C2                : 1;
  unsigned S29C2                : 1;
  unsigned S30C2                : 1;
  unsigned S31C2                : 1;
  } __LCDDATA19bits_t;

extern __at(0x0EA1) volatile __LCDDATA19bits_t LCDDATA19bits;

#define _S24C2                  0x01
#define _S25C2                  0x02
#define _S26C2                  0x04
#define _S27C2                  0x08
#define _S28C2                  0x10
#define _S29C2                  0x20
#define _S30C2                  0x40
#define _S31C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA20 Bits

extern __at(0x0EA2) __sfr LCDDATA20;

typedef struct
  {
  unsigned S32C2                : 1;
  unsigned S33C2                : 1;
  unsigned S34C2                : 1;
  unsigned S35C2                : 1;
  unsigned S36C2                : 1;
  unsigned S37C2                : 1;
  unsigned S38C2                : 1;
  unsigned S39C2                : 1;
  } __LCDDATA20bits_t;

extern __at(0x0EA2) volatile __LCDDATA20bits_t LCDDATA20bits;

#define _S32C2                  0x01
#define _S33C2                  0x02
#define _S34C2                  0x04
#define _S35C2                  0x08
#define _S36C2                  0x10
#define _S37C2                  0x20
#define _S38C2                  0x40
#define _S39C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA21 Bits

extern __at(0x0EA3) __sfr LCDDATA21;

typedef struct
  {
  unsigned S40C2                : 1;
  unsigned S41C2                : 1;
  unsigned S42C2                : 1;
  unsigned S43C2                : 1;
  unsigned S44C2                : 1;
  unsigned S45C2                : 1;
  unsigned S46C2                : 1;
  unsigned S47C2                : 1;
  } __LCDDATA21bits_t;

extern __at(0x0EA3) volatile __LCDDATA21bits_t LCDDATA21bits;

#define _S40C2                  0x01
#define _S41C2                  0x02
#define _S42C2                  0x04
#define _S43C2                  0x08
#define _S44C2                  0x10
#define _S45C2                  0x20
#define _S46C2                  0x40
#define _S47C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA22 Bits

extern __at(0x0EA4) __sfr LCDDATA22;

typedef struct
  {
  unsigned S48C2                : 1;
  unsigned S49C2                : 1;
  unsigned S50C2                : 1;
  unsigned S51C2                : 1;
  unsigned S52C2                : 1;
  unsigned S53C2                : 1;
  unsigned S54C2                : 1;
  unsigned S55C2                : 1;
  } __LCDDATA22bits_t;

extern __at(0x0EA4) volatile __LCDDATA22bits_t LCDDATA22bits;

#define _S48C2                  0x01
#define _S49C2                  0x02
#define _S50C2                  0x04
#define _S51C2                  0x08
#define _S52C2                  0x10
#define _S53C2                  0x20
#define _S54C2                  0x40
#define _S55C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA23 Bits

extern __at(0x0EA5) __sfr LCDDATA23;

typedef struct
  {
  unsigned S56C2                : 1;
  unsigned S57C2                : 1;
  unsigned S58C2                : 1;
  unsigned S59C2                : 1;
  unsigned S60C2                : 1;
  unsigned S61C2                : 1;
  unsigned S62C2                : 1;
  unsigned S63C2                : 1;
  } __LCDDATA23bits_t;

extern __at(0x0EA5) volatile __LCDDATA23bits_t LCDDATA23bits;

#define _S56C2                  0x01
#define _S57C2                  0x02
#define _S58C2                  0x04
#define _S59C2                  0x08
#define _S60C2                  0x10
#define _S61C2                  0x20
#define _S62C2                  0x40
#define _S63C2                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA24 Bits

extern __at(0x0EA6) __sfr LCDDATA24;

typedef struct
  {
  unsigned S00C3                : 1;
  unsigned S01C3                : 1;
  unsigned S02C3                : 1;
  unsigned S03C3                : 1;
  unsigned S04C3                : 1;
  unsigned S05C3                : 1;
  unsigned S06C3                : 1;
  unsigned S07C3                : 1;
  } __LCDDATA24bits_t;

extern __at(0x0EA6) volatile __LCDDATA24bits_t LCDDATA24bits;

#define _S00C3                  0x01
#define _S01C3                  0x02
#define _S02C3                  0x04
#define _S03C3                  0x08
#define _S04C3                  0x10
#define _S05C3                  0x20
#define _S06C3                  0x40
#define _S07C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA25 Bits

extern __at(0x0EA7) __sfr LCDDATA25;

typedef struct
  {
  unsigned S08C3                : 1;
  unsigned S09C3                : 1;
  unsigned S10C3                : 1;
  unsigned S11C3                : 1;
  unsigned S12C3                : 1;
  unsigned S13C3                : 1;
  unsigned S14C3                : 1;
  unsigned S15C3                : 1;
  } __LCDDATA25bits_t;

extern __at(0x0EA7) volatile __LCDDATA25bits_t LCDDATA25bits;

#define _S08C3                  0x01
#define _S09C3                  0x02
#define _S10C3                  0x04
#define _S11C3                  0x08
#define _S12C3                  0x10
#define _S13C3                  0x20
#define _S14C3                  0x40
#define _S15C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA26 Bits

extern __at(0x0EA8) __sfr LCDDATA26;

typedef struct
  {
  unsigned S16C3                : 1;
  unsigned S17C3                : 1;
  unsigned S18C3                : 1;
  unsigned S19C3                : 1;
  unsigned S20C3                : 1;
  unsigned S21C3                : 1;
  unsigned S22C3                : 1;
  unsigned S23C3                : 1;
  } __LCDDATA26bits_t;

extern __at(0x0EA8) volatile __LCDDATA26bits_t LCDDATA26bits;

#define _S16C3                  0x01
#define _S17C3                  0x02
#define _S18C3                  0x04
#define _S19C3                  0x08
#define _S20C3                  0x10
#define _S21C3                  0x20
#define _S22C3                  0x40
#define _S23C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA27 Bits

extern __at(0x0EA9) __sfr LCDDATA27;

typedef struct
  {
  unsigned S24C3                : 1;
  unsigned S25C3                : 1;
  unsigned S26C3                : 1;
  unsigned S27C3                : 1;
  unsigned S28C3                : 1;
  unsigned S29C3                : 1;
  unsigned S30C3                : 1;
  unsigned S31C3                : 1;
  } __LCDDATA27bits_t;

extern __at(0x0EA9) volatile __LCDDATA27bits_t LCDDATA27bits;

#define _S24C3                  0x01
#define _S25C3                  0x02
#define _S26C3                  0x04
#define _S27C3                  0x08
#define _S28C3                  0x10
#define _S29C3                  0x20
#define _S30C3                  0x40
#define _S31C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA28 Bits

extern __at(0x0EAA) __sfr LCDDATA28;

typedef struct
  {
  unsigned S32C3                : 1;
  unsigned S33C3                : 1;
  unsigned S34C3                : 1;
  unsigned S35C3                : 1;
  unsigned S36C3                : 1;
  unsigned S37C3                : 1;
  unsigned S38C3                : 1;
  unsigned S39C3                : 1;
  } __LCDDATA28bits_t;

extern __at(0x0EAA) volatile __LCDDATA28bits_t LCDDATA28bits;

#define _S32C3                  0x01
#define _S33C3                  0x02
#define _S34C3                  0x04
#define _S35C3                  0x08
#define _S36C3                  0x10
#define _S37C3                  0x20
#define _S38C3                  0x40
#define _S39C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA29 Bits

extern __at(0x0EAB) __sfr LCDDATA29;

typedef struct
  {
  unsigned S40C3                : 1;
  unsigned S41C3                : 1;
  unsigned S42C3                : 1;
  unsigned S43C3                : 1;
  unsigned S44C3                : 1;
  unsigned S45C3                : 1;
  unsigned S46C3                : 1;
  unsigned S47C3                : 1;
  } __LCDDATA29bits_t;

extern __at(0x0EAB) volatile __LCDDATA29bits_t LCDDATA29bits;

#define _S40C3                  0x01
#define _S41C3                  0x02
#define _S42C3                  0x04
#define _S43C3                  0x08
#define _S44C3                  0x10
#define _S45C3                  0x20
#define _S46C3                  0x40
#define _S47C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA30 Bits

extern __at(0x0EAC) __sfr LCDDATA30;

typedef struct
  {
  unsigned S48C3                : 1;
  unsigned S49C3                : 1;
  unsigned S50C3                : 1;
  unsigned S51C3                : 1;
  unsigned S52C3                : 1;
  unsigned S53C3                : 1;
  unsigned S54C3                : 1;
  unsigned S55C3                : 1;
  } __LCDDATA30bits_t;

extern __at(0x0EAC) volatile __LCDDATA30bits_t LCDDATA30bits;

#define _S48C3                  0x01
#define _S49C3                  0x02
#define _S50C3                  0x04
#define _S51C3                  0x08
#define _S52C3                  0x10
#define _S53C3                  0x20
#define _S54C3                  0x40
#define _S55C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA31 Bits

extern __at(0x0EAD) __sfr LCDDATA31;

typedef struct
  {
  unsigned S56C3                : 1;
  unsigned S57C3                : 1;
  unsigned S58C3                : 1;
  unsigned S59C3                : 1;
  unsigned S60C3                : 1;
  unsigned S61C3                : 1;
  unsigned S62C3                : 1;
  unsigned S63C3                : 1;
  } __LCDDATA31bits_t;

extern __at(0x0EAD) volatile __LCDDATA31bits_t LCDDATA31bits;

#define _S56C3                  0x01
#define _S57C3                  0x02
#define _S58C3                  0x04
#define _S59C3                  0x08
#define _S60C3                  0x10
#define _S61C3                  0x20
#define _S62C3                  0x40
#define _S63C3                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA32 Bits

extern __at(0x0EAE) __sfr LCDDATA32;

typedef struct
  {
  unsigned S00C4                : 1;
  unsigned S01C4                : 1;
  unsigned S02C4                : 1;
  unsigned S03C4                : 1;
  unsigned S04C4                : 1;
  unsigned S05C4                : 1;
  unsigned S06C4                : 1;
  unsigned S07C4                : 1;
  } __LCDDATA32bits_t;

extern __at(0x0EAE) volatile __LCDDATA32bits_t LCDDATA32bits;

#define _S00C4                  0x01
#define _S01C4                  0x02
#define _S02C4                  0x04
#define _S03C4                  0x08
#define _S04C4                  0x10
#define _S05C4                  0x20
#define _S06C4                  0x40
#define _S07C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA33 Bits

extern __at(0x0EAF) __sfr LCDDATA33;

typedef struct
  {
  unsigned S08C4                : 1;
  unsigned S09C4                : 1;
  unsigned S10C4                : 1;
  unsigned S11C4                : 1;
  unsigned S12C4                : 1;
  unsigned S13C4                : 1;
  unsigned S14C4                : 1;
  unsigned S15C4                : 1;
  } __LCDDATA33bits_t;

extern __at(0x0EAF) volatile __LCDDATA33bits_t LCDDATA33bits;

#define _S08C4                  0x01
#define _S09C4                  0x02
#define _S10C4                  0x04
#define _S11C4                  0x08
#define _S12C4                  0x10
#define _S13C4                  0x20
#define _S14C4                  0x40
#define _S15C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA34 Bits

extern __at(0x0EB0) __sfr LCDDATA34;

typedef struct
  {
  unsigned S16C4                : 1;
  unsigned S17C4                : 1;
  unsigned S18C4                : 1;
  unsigned S19C4                : 1;
  unsigned S20C4                : 1;
  unsigned S21C4                : 1;
  unsigned S22C4                : 1;
  unsigned S23C4                : 1;
  } __LCDDATA34bits_t;

extern __at(0x0EB0) volatile __LCDDATA34bits_t LCDDATA34bits;

#define _S16C4                  0x01
#define _S17C4                  0x02
#define _S18C4                  0x04
#define _S19C4                  0x08
#define _S20C4                  0x10
#define _S21C4                  0x20
#define _S22C4                  0x40
#define _S23C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA35 Bits

extern __at(0x0EB1) __sfr LCDDATA35;

typedef struct
  {
  unsigned S24C4                : 1;
  unsigned S25C4                : 1;
  unsigned S26C4                : 1;
  unsigned S27C4                : 1;
  unsigned S28C4                : 1;
  unsigned S29C4                : 1;
  unsigned S30C4                : 1;
  unsigned S31C4                : 1;
  } __LCDDATA35bits_t;

extern __at(0x0EB1) volatile __LCDDATA35bits_t LCDDATA35bits;

#define _S24C4                  0x01
#define _S25C4                  0x02
#define _S26C4                  0x04
#define _S27C4                  0x08
#define _S28C4                  0x10
#define _S29C4                  0x20
#define _S30C4                  0x40
#define _S31C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA36 Bits

extern __at(0x0EB2) __sfr LCDDATA36;

typedef struct
  {
  unsigned S32C4                : 1;
  unsigned S33C4                : 1;
  unsigned S34C4                : 1;
  unsigned S35C4                : 1;
  unsigned S36C4                : 1;
  unsigned S37C4                : 1;
  unsigned S38C4                : 1;
  unsigned S39C4                : 1;
  } __LCDDATA36bits_t;

extern __at(0x0EB2) volatile __LCDDATA36bits_t LCDDATA36bits;

#define _S32C4                  0x01
#define _S33C4                  0x02
#define _S34C4                  0x04
#define _S35C4                  0x08
#define _S36C4                  0x10
#define _S37C4                  0x20
#define _S38C4                  0x40
#define _S39C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA37 Bits

extern __at(0x0EB3) __sfr LCDDATA37;

typedef struct
  {
  unsigned S40C4                : 1;
  unsigned S41C4                : 1;
  unsigned S42C4                : 1;
  unsigned S43C4                : 1;
  unsigned S44C4                : 1;
  unsigned S45C4                : 1;
  unsigned S46C4                : 1;
  unsigned S47C4                : 1;
  } __LCDDATA37bits_t;

extern __at(0x0EB3) volatile __LCDDATA37bits_t LCDDATA37bits;

#define _S40C4                  0x01
#define _S41C4                  0x02
#define _S42C4                  0x04
#define _S43C4                  0x08
#define _S44C4                  0x10
#define _S45C4                  0x20
#define _S46C4                  0x40
#define _S47C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA38 Bits

extern __at(0x0EB4) __sfr LCDDATA38;

typedef struct
  {
  unsigned S48C4                : 1;
  unsigned S49C4                : 1;
  unsigned S50C4                : 1;
  unsigned S51C4                : 1;
  unsigned S52C4                : 1;
  unsigned S53C4                : 1;
  unsigned S54C4                : 1;
  unsigned S55C4                : 1;
  } __LCDDATA38bits_t;

extern __at(0x0EB4) volatile __LCDDATA38bits_t LCDDATA38bits;

#define _S48C4                  0x01
#define _S49C4                  0x02
#define _S50C4                  0x04
#define _S51C4                  0x08
#define _S52C4                  0x10
#define _S53C4                  0x20
#define _S54C4                  0x40
#define _S55C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA39 Bits

extern __at(0x0EB5) __sfr LCDDATA39;

typedef struct
  {
  unsigned S56C4                : 1;
  unsigned S57C4                : 1;
  unsigned S58C4                : 1;
  unsigned S59C4                : 1;
  unsigned S60C4                : 1;
  unsigned S61C4                : 1;
  unsigned S62C4                : 1;
  unsigned S63C4                : 1;
  } __LCDDATA39bits_t;

extern __at(0x0EB5) volatile __LCDDATA39bits_t LCDDATA39bits;

#define _S56C4                  0x01
#define _S57C4                  0x02
#define _S58C4                  0x04
#define _S59C4                  0x08
#define _S60C4                  0x10
#define _S61C4                  0x20
#define _S62C4                  0x40
#define _S63C4                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA40 Bits

extern __at(0x0EB6) __sfr LCDDATA40;

typedef struct
  {
  unsigned S00C5                : 1;
  unsigned S01C5                : 1;
  unsigned S02C5                : 1;
  unsigned S03C5                : 1;
  unsigned S04C5                : 1;
  unsigned S05C5                : 1;
  unsigned S06C5                : 1;
  unsigned S07C5                : 1;
  } __LCDDATA40bits_t;

extern __at(0x0EB6) volatile __LCDDATA40bits_t LCDDATA40bits;

#define _S00C5                  0x01
#define _S01C5                  0x02
#define _S02C5                  0x04
#define _S03C5                  0x08
#define _S04C5                  0x10
#define _S05C5                  0x20
#define _S06C5                  0x40
#define _S07C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA41 Bits

extern __at(0x0EB7) __sfr LCDDATA41;

typedef struct
  {
  unsigned S08C5                : 1;
  unsigned S09C5                : 1;
  unsigned S10C5                : 1;
  unsigned S11C5                : 1;
  unsigned S12C5                : 1;
  unsigned S13C5                : 1;
  unsigned S14C5                : 1;
  unsigned S15C5                : 1;
  } __LCDDATA41bits_t;

extern __at(0x0EB7) volatile __LCDDATA41bits_t LCDDATA41bits;

#define _S08C5                  0x01
#define _S09C5                  0x02
#define _S10C5                  0x04
#define _S11C5                  0x08
#define _S12C5                  0x10
#define _S13C5                  0x20
#define _S14C5                  0x40
#define _S15C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA42 Bits

extern __at(0x0EB8) __sfr LCDDATA42;

typedef struct
  {
  unsigned S16C5                : 1;
  unsigned S17C5                : 1;
  unsigned S18C5                : 1;
  unsigned S19C5                : 1;
  unsigned S20C5                : 1;
  unsigned S21C5                : 1;
  unsigned S22C5                : 1;
  unsigned S23C5                : 1;
  } __LCDDATA42bits_t;

extern __at(0x0EB8) volatile __LCDDATA42bits_t LCDDATA42bits;

#define _S16C5                  0x01
#define _S17C5                  0x02
#define _S18C5                  0x04
#define _S19C5                  0x08
#define _S20C5                  0x10
#define _S21C5                  0x20
#define _S22C5                  0x40
#define _S23C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA43 Bits

extern __at(0x0EB9) __sfr LCDDATA43;

typedef struct
  {
  unsigned S24C5                : 1;
  unsigned S25C5                : 1;
  unsigned S26C5                : 1;
  unsigned S27C5                : 1;
  unsigned S28C5                : 1;
  unsigned S29C5                : 1;
  unsigned S30C5                : 1;
  unsigned S31C5                : 1;
  } __LCDDATA43bits_t;

extern __at(0x0EB9) volatile __LCDDATA43bits_t LCDDATA43bits;

#define _S24C5                  0x01
#define _S25C5                  0x02
#define _S26C5                  0x04
#define _S27C5                  0x08
#define _S28C5                  0x10
#define _S29C5                  0x20
#define _S30C5                  0x40
#define _S31C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA44 Bits

extern __at(0x0EBA) __sfr LCDDATA44;

typedef struct
  {
  unsigned S32C5                : 1;
  unsigned S33C5                : 1;
  unsigned S34C5                : 1;
  unsigned S35C5                : 1;
  unsigned S36C5                : 1;
  unsigned S37C5                : 1;
  unsigned S38C5                : 1;
  unsigned S39C5                : 1;
  } __LCDDATA44bits_t;

extern __at(0x0EBA) volatile __LCDDATA44bits_t LCDDATA44bits;

#define _S32C5                  0x01
#define _S33C5                  0x02
#define _S34C5                  0x04
#define _S35C5                  0x08
#define _S36C5                  0x10
#define _S37C5                  0x20
#define _S38C5                  0x40
#define _S39C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA45 Bits

extern __at(0x0EBB) __sfr LCDDATA45;

typedef struct
  {
  unsigned S40C5                : 1;
  unsigned S41C5                : 1;
  unsigned S42C5                : 1;
  unsigned S43C5                : 1;
  unsigned S44C5                : 1;
  unsigned S45C5                : 1;
  unsigned S46C5                : 1;
  unsigned S47C5                : 1;
  } __LCDDATA45bits_t;

extern __at(0x0EBB) volatile __LCDDATA45bits_t LCDDATA45bits;

#define _S40C5                  0x01
#define _S41C5                  0x02
#define _S42C5                  0x04
#define _S43C5                  0x08
#define _S44C5                  0x10
#define _S45C5                  0x20
#define _S46C5                  0x40
#define _S47C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA46 Bits

extern __at(0x0EBC) __sfr LCDDATA46;

typedef struct
  {
  unsigned S48C5                : 1;
  unsigned S49C5                : 1;
  unsigned S50C5                : 1;
  unsigned S51C5                : 1;
  unsigned S52C5                : 1;
  unsigned S53C5                : 1;
  unsigned S54C5                : 1;
  unsigned S55C5                : 1;
  } __LCDDATA46bits_t;

extern __at(0x0EBC) volatile __LCDDATA46bits_t LCDDATA46bits;

#define _S48C5                  0x01
#define _S49C5                  0x02
#define _S50C5                  0x04
#define _S51C5                  0x08
#define _S52C5                  0x10
#define _S53C5                  0x20
#define _S54C5                  0x40
#define _S55C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA47 Bits

extern __at(0x0EBD) __sfr LCDDATA47;

typedef struct
  {
  unsigned S56C5                : 1;
  unsigned S57C5                : 1;
  unsigned S58C5                : 1;
  unsigned S59C5                : 1;
  unsigned S60C5                : 1;
  unsigned S61C5                : 1;
  unsigned S62C5                : 1;
  unsigned S63C5                : 1;
  } __LCDDATA47bits_t;

extern __at(0x0EBD) volatile __LCDDATA47bits_t LCDDATA47bits;

#define _S56C5                  0x01
#define _S57C5                  0x02
#define _S58C5                  0x04
#define _S59C5                  0x08
#define _S60C5                  0x10
#define _S61C5                  0x20
#define _S62C5                  0x40
#define _S63C5                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA48 Bits

extern __at(0x0EBE) __sfr LCDDATA48;

typedef struct
  {
  unsigned S00C6                : 1;
  unsigned S01C6                : 1;
  unsigned S02C6                : 1;
  unsigned S03C6                : 1;
  unsigned S04C6                : 1;
  unsigned S05C6                : 1;
  unsigned S06C6                : 1;
  unsigned S07C6                : 1;
  } __LCDDATA48bits_t;

extern __at(0x0EBE) volatile __LCDDATA48bits_t LCDDATA48bits;

#define _S00C6                  0x01
#define _S01C6                  0x02
#define _S02C6                  0x04
#define _S03C6                  0x08
#define _S04C6                  0x10
#define _S05C6                  0x20
#define _S06C6                  0x40
#define _S07C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA49 Bits

extern __at(0x0EBF) __sfr LCDDATA49;

typedef struct
  {
  unsigned S08C6                : 1;
  unsigned S09C6                : 1;
  unsigned S10C6                : 1;
  unsigned S11C6                : 1;
  unsigned S12C6                : 1;
  unsigned S13C6                : 1;
  unsigned S14C6                : 1;
  unsigned S15C6                : 1;
  } __LCDDATA49bits_t;

extern __at(0x0EBF) volatile __LCDDATA49bits_t LCDDATA49bits;

#define _S08C6                  0x01
#define _S09C6                  0x02
#define _S10C6                  0x04
#define _S11C6                  0x08
#define _S12C6                  0x10
#define _S13C6                  0x20
#define _S14C6                  0x40
#define _S15C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA50 Bits

extern __at(0x0EC0) __sfr LCDDATA50;

typedef struct
  {
  unsigned S16C6                : 1;
  unsigned S17C6                : 1;
  unsigned S18C6                : 1;
  unsigned S19C6                : 1;
  unsigned S20C6                : 1;
  unsigned S21C6                : 1;
  unsigned S22C6                : 1;
  unsigned S23C6                : 1;
  } __LCDDATA50bits_t;

extern __at(0x0EC0) volatile __LCDDATA50bits_t LCDDATA50bits;

#define _S16C6                  0x01
#define _S17C6                  0x02
#define _S18C6                  0x04
#define _S19C6                  0x08
#define _S20C6                  0x10
#define _S21C6                  0x20
#define _S22C6                  0x40
#define _S23C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA51 Bits

extern __at(0x0EC1) __sfr LCDDATA51;

typedef struct
  {
  unsigned S24C6                : 1;
  unsigned S25C6                : 1;
  unsigned S26C6                : 1;
  unsigned S27C6                : 1;
  unsigned S28C6                : 1;
  unsigned S29C6                : 1;
  unsigned S30C6                : 1;
  unsigned S31C6                : 1;
  } __LCDDATA51bits_t;

extern __at(0x0EC1) volatile __LCDDATA51bits_t LCDDATA51bits;

#define _S24C6                  0x01
#define _S25C6                  0x02
#define _S26C6                  0x04
#define _S27C6                  0x08
#define _S28C6                  0x10
#define _S29C6                  0x20
#define _S30C6                  0x40
#define _S31C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA52 Bits

extern __at(0x0EC2) __sfr LCDDATA52;

typedef struct
  {
  unsigned S32C6                : 1;
  unsigned S33C6                : 1;
  unsigned S34C6                : 1;
  unsigned S35C6                : 1;
  unsigned S36C6                : 1;
  unsigned S37C6                : 1;
  unsigned S38C6                : 1;
  unsigned S39C6                : 1;
  } __LCDDATA52bits_t;

extern __at(0x0EC2) volatile __LCDDATA52bits_t LCDDATA52bits;

#define _S32C6                  0x01
#define _S33C6                  0x02
#define _S34C6                  0x04
#define _S35C6                  0x08
#define _S36C6                  0x10
#define _S37C6                  0x20
#define _S38C6                  0x40
#define _S39C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA53 Bits

extern __at(0x0EC3) __sfr LCDDATA53;

typedef struct
  {
  unsigned S40C6                : 1;
  unsigned S41C6                : 1;
  unsigned S42C6                : 1;
  unsigned S43C6                : 1;
  unsigned S44C6                : 1;
  unsigned S45C6                : 1;
  unsigned S46C6                : 1;
  unsigned S47C6                : 1;
  } __LCDDATA53bits_t;

extern __at(0x0EC3) volatile __LCDDATA53bits_t LCDDATA53bits;

#define _S40C6                  0x01
#define _S41C6                  0x02
#define _S42C6                  0x04
#define _S43C6                  0x08
#define _S44C6                  0x10
#define _S45C6                  0x20
#define _S46C6                  0x40
#define _S47C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA54 Bits

extern __at(0x0EC4) __sfr LCDDATA54;

typedef struct
  {
  unsigned S48C6                : 1;
  unsigned S49C6                : 1;
  unsigned S50C6                : 1;
  unsigned S51C6                : 1;
  unsigned S52C6                : 1;
  unsigned S53C6                : 1;
  unsigned S54C6                : 1;
  unsigned S55C6                : 1;
  } __LCDDATA54bits_t;

extern __at(0x0EC4) volatile __LCDDATA54bits_t LCDDATA54bits;

#define _S48C6                  0x01
#define _S49C6                  0x02
#define _S50C6                  0x04
#define _S51C6                  0x08
#define _S52C6                  0x10
#define _S53C6                  0x20
#define _S54C6                  0x40
#define _S55C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA55 Bits

extern __at(0x0EC5) __sfr LCDDATA55;

typedef struct
  {
  unsigned S56C6                : 1;
  unsigned S57C6                : 1;
  unsigned S58C6                : 1;
  unsigned S59C6                : 1;
  unsigned S60C6                : 1;
  unsigned S61C6                : 1;
  unsigned S62C6                : 1;
  unsigned S63C6                : 1;
  } __LCDDATA55bits_t;

extern __at(0x0EC5) volatile __LCDDATA55bits_t LCDDATA55bits;

#define _S56C6                  0x01
#define _S57C6                  0x02
#define _S58C6                  0x04
#define _S59C6                  0x08
#define _S60C6                  0x10
#define _S61C6                  0x20
#define _S62C6                  0x40
#define _S63C6                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA56 Bits

extern __at(0x0EC6) __sfr LCDDATA56;

typedef struct
  {
  unsigned S00C7                : 1;
  unsigned S01C7                : 1;
  unsigned S02C7                : 1;
  unsigned S03C7                : 1;
  unsigned S04C7                : 1;
  unsigned S05C7                : 1;
  unsigned S06C7                : 1;
  unsigned S07C7                : 1;
  } __LCDDATA56bits_t;

extern __at(0x0EC6) volatile __LCDDATA56bits_t LCDDATA56bits;

#define _S00C7                  0x01
#define _S01C7                  0x02
#define _S02C7                  0x04
#define _S03C7                  0x08
#define _S04C7                  0x10
#define _S05C7                  0x20
#define _S06C7                  0x40
#define _S07C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA57 Bits

extern __at(0x0EC7) __sfr LCDDATA57;

typedef struct
  {
  unsigned S08C7                : 1;
  unsigned S09C7                : 1;
  unsigned S10C7                : 1;
  unsigned S11C7                : 1;
  unsigned S12C7                : 1;
  unsigned S13C7                : 1;
  unsigned S14C7                : 1;
  unsigned S15C7                : 1;
  } __LCDDATA57bits_t;

extern __at(0x0EC7) volatile __LCDDATA57bits_t LCDDATA57bits;

#define _S08C7                  0x01
#define _S09C7                  0x02
#define _S10C7                  0x04
#define _S11C7                  0x08
#define _S12C7                  0x10
#define _S13C7                  0x20
#define _S14C7                  0x40
#define _S15C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA58 Bits

extern __at(0x0EC8) __sfr LCDDATA58;

typedef struct
  {
  unsigned S16C7                : 1;
  unsigned S17C7                : 1;
  unsigned S18C7                : 1;
  unsigned S19C7                : 1;
  unsigned S20C7                : 1;
  unsigned S21C7                : 1;
  unsigned S22C7                : 1;
  unsigned S23C7                : 1;
  } __LCDDATA58bits_t;

extern __at(0x0EC8) volatile __LCDDATA58bits_t LCDDATA58bits;

#define _S16C7                  0x01
#define _S17C7                  0x02
#define _S18C7                  0x04
#define _S19C7                  0x08
#define _S20C7                  0x10
#define _S21C7                  0x20
#define _S22C7                  0x40
#define _S23C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA59 Bits

extern __at(0x0EC9) __sfr LCDDATA59;

typedef struct
  {
  unsigned S24C7                : 1;
  unsigned S25C7                : 1;
  unsigned S26C7                : 1;
  unsigned S27C7                : 1;
  unsigned S28C7                : 1;
  unsigned S29C7                : 1;
  unsigned S30C7                : 1;
  unsigned S31C7                : 1;
  } __LCDDATA59bits_t;

extern __at(0x0EC9) volatile __LCDDATA59bits_t LCDDATA59bits;

#define _S24C7                  0x01
#define _S25C7                  0x02
#define _S26C7                  0x04
#define _S27C7                  0x08
#define _S28C7                  0x10
#define _S29C7                  0x20
#define _S30C7                  0x40
#define _S31C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA60 Bits

extern __at(0x0ECA) __sfr LCDDATA60;

typedef struct
  {
  unsigned S32C7                : 1;
  unsigned S33C7                : 1;
  unsigned S34C7                : 1;
  unsigned S35C7                : 1;
  unsigned S36C7                : 1;
  unsigned S37C7                : 1;
  unsigned S38C7                : 1;
  unsigned S39C7                : 1;
  } __LCDDATA60bits_t;

extern __at(0x0ECA) volatile __LCDDATA60bits_t LCDDATA60bits;

#define _S32C7                  0x01
#define _S33C7                  0x02
#define _S34C7                  0x04
#define _S35C7                  0x08
#define _S36C7                  0x10
#define _S37C7                  0x20
#define _S38C7                  0x40
#define _S39C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA61 Bits

extern __at(0x0ECB) __sfr LCDDATA61;

typedef struct
  {
  unsigned S40C7                : 1;
  unsigned S41C7                : 1;
  unsigned S42C7                : 1;
  unsigned S43C7                : 1;
  unsigned S44C7                : 1;
  unsigned S45C7                : 1;
  unsigned S46C7                : 1;
  unsigned S47C7                : 1;
  } __LCDDATA61bits_t;

extern __at(0x0ECB) volatile __LCDDATA61bits_t LCDDATA61bits;

#define _S40C7                  0x01
#define _S41C7                  0x02
#define _S42C7                  0x04
#define _S43C7                  0x08
#define _S44C7                  0x10
#define _S45C7                  0x20
#define _S46C7                  0x40
#define _S47C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA62 Bits

extern __at(0x0ECC) __sfr LCDDATA62;

typedef struct
  {
  unsigned S48C7                : 1;
  unsigned S49C7                : 1;
  unsigned S50C7                : 1;
  unsigned S51C7                : 1;
  unsigned S52C7                : 1;
  unsigned S53C7                : 1;
  unsigned S54C7                : 1;
  unsigned S55C7                : 1;
  } __LCDDATA62bits_t;

extern __at(0x0ECC) volatile __LCDDATA62bits_t LCDDATA62bits;

#define _S48C7                  0x01
#define _S49C7                  0x02
#define _S50C7                  0x04
#define _S51C7                  0x08
#define _S52C7                  0x10
#define _S53C7                  0x20
#define _S54C7                  0x40
#define _S55C7                  0x80

//==============================================================================


//==============================================================================
//        LCDDATA63 Bits

extern __at(0x0ECD) __sfr LCDDATA63;

typedef struct
  {
  unsigned S56C7                : 1;
  unsigned S57C7                : 1;
  unsigned S58C7                : 1;
  unsigned S59C7                : 1;
  unsigned S60C7                : 1;
  unsigned S61C7                : 1;
  unsigned S62C7                : 1;
  unsigned S63C7                : 1;
  } __LCDDATA63bits_t;

extern __at(0x0ECD) volatile __LCDDATA63bits_t LCDDATA63bits;

#define _S56C7                  0x01
#define _S57C7                  0x02
#define _S58C7                  0x04
#define _S59C7                  0x08
#define _S60C7                  0x10
#define _S61C7                  0x20
#define _S62C7                  0x40
#define _S63C7                  0x80

//==============================================================================


//==============================================================================
//        LCDSE0 Bits

extern __at(0x0ECE) __sfr LCDSE0;

typedef struct
  {
  unsigned SE00                 : 1;
  unsigned SE01                 : 1;
  unsigned SE02                 : 1;
  unsigned SE03                 : 1;
  unsigned SE04                 : 1;
  unsigned SE05                 : 1;
  unsigned SE06                 : 1;
  unsigned SE07                 : 1;
  } __LCDSE0bits_t;

extern __at(0x0ECE) volatile __LCDSE0bits_t LCDSE0bits;

#define _SE00                   0x01
#define _SE01                   0x02
#define _SE02                   0x04
#define _SE03                   0x08
#define _SE04                   0x10
#define _SE05                   0x20
#define _SE06                   0x40
#define _SE07                   0x80

//==============================================================================


//==============================================================================
//        LCDSE1 Bits

extern __at(0x0ECF) __sfr LCDSE1;

typedef struct
  {
  unsigned SE08                 : 1;
  unsigned SE09                 : 1;
  unsigned SE10                 : 1;
  unsigned SE11                 : 1;
  unsigned SE12                 : 1;
  unsigned SE13                 : 1;
  unsigned SE14                 : 1;
  unsigned SE15                 : 1;
  } __LCDSE1bits_t;

extern __at(0x0ECF) volatile __LCDSE1bits_t LCDSE1bits;

#define _SE08                   0x01
#define _SE09                   0x02
#define _SE10                   0x04
#define _SE11                   0x08
#define _SE12                   0x10
#define _SE13                   0x20
#define _SE14                   0x40
#define _SE15                   0x80

//==============================================================================


//==============================================================================
//        LCDSE2 Bits

extern __at(0x0ED0) __sfr LCDSE2;

typedef struct
  {
  unsigned SE16                 : 1;
  unsigned SE17                 : 1;
  unsigned SE18                 : 1;
  unsigned SE19                 : 1;
  unsigned SE20                 : 1;
  unsigned SE21                 : 1;
  unsigned SE22                 : 1;
  unsigned SE23                 : 1;
  } __LCDSE2bits_t;

extern __at(0x0ED0) volatile __LCDSE2bits_t LCDSE2bits;

#define _SE16                   0x01
#define _SE17                   0x02
#define _SE18                   0x04
#define _SE19                   0x08
#define _SE20                   0x10
#define _SE21                   0x20
#define _SE22                   0x40
#define _SE23                   0x80

//==============================================================================


//==============================================================================
//        LCDSE3 Bits

extern __at(0x0ED1) __sfr LCDSE3;

typedef struct
  {
  unsigned SE24                 : 1;
  unsigned SE25                 : 1;
  unsigned SE26                 : 1;
  unsigned SE27                 : 1;
  unsigned SE28                 : 1;
  unsigned SE29                 : 1;
  unsigned SE30                 : 1;
  unsigned SE31                 : 1;
  } __LCDSE3bits_t;

extern __at(0x0ED1) volatile __LCDSE3bits_t LCDSE3bits;

#define _SE24                   0x01
#define _SE25                   0x02
#define _SE26                   0x04
#define _SE27                   0x08
#define _SE28                   0x10
#define _SE29                   0x20
#define _SE30                   0x40
#define _SE31                   0x80

//==============================================================================


//==============================================================================
//        LCDSE4 Bits

extern __at(0x0ED2) __sfr LCDSE4;

typedef struct
  {
  unsigned SE32                 : 1;
  unsigned SE33                 : 1;
  unsigned SE34                 : 1;
  unsigned SE35                 : 1;
  unsigned SE36                 : 1;
  unsigned SE37                 : 1;
  unsigned SE38                 : 1;
  unsigned SE39                 : 1;
  } __LCDSE4bits_t;

extern __at(0x0ED2) volatile __LCDSE4bits_t LCDSE4bits;

#define _SE32                   0x01
#define _SE33                   0x02
#define _SE34                   0x04
#define _SE35                   0x08
#define _SE36                   0x10
#define _SE37                   0x20
#define _SE38                   0x40
#define _SE39                   0x80

//==============================================================================


//==============================================================================
//        LCDSE5 Bits

extern __at(0x0ED3) __sfr LCDSE5;

typedef struct
  {
  unsigned SE40                 : 1;
  unsigned SE41                 : 1;
  unsigned SE42                 : 1;
  unsigned SE43                 : 1;
  unsigned SE44                 : 1;
  unsigned SE45                 : 1;
  unsigned SE46                 : 1;
  unsigned SE47                 : 1;
  } __LCDSE5bits_t;

extern __at(0x0ED3) volatile __LCDSE5bits_t LCDSE5bits;

#define _SE40                   0x01
#define _SE41                   0x02
#define _SE42                   0x04
#define _SE43                   0x08
#define _SE44                   0x10
#define _SE45                   0x20
#define _SE46                   0x40
#define _SE47                   0x80

//==============================================================================


//==============================================================================
//        LCDSE6 Bits

extern __at(0x0ED4) __sfr LCDSE6;

typedef struct
  {
  unsigned SE48                 : 1;
  unsigned SE49                 : 1;
  unsigned SE50                 : 1;
  unsigned SE51                 : 1;
  unsigned SE52                 : 1;
  unsigned SE53                 : 1;
  unsigned SE54                 : 1;
  unsigned SE55                 : 1;
  } __LCDSE6bits_t;

extern __at(0x0ED4) volatile __LCDSE6bits_t LCDSE6bits;

#define _SE48                   0x01
#define _SE49                   0x02
#define _SE50                   0x04
#define _SE51                   0x08
#define _SE52                   0x10
#define _SE53                   0x20
#define _SE54                   0x40
#define _SE55                   0x80

//==============================================================================


//==============================================================================
//        LCDSE7 Bits

extern __at(0x0ED5) __sfr LCDSE7;

typedef struct
  {
  unsigned SE56                 : 1;
  unsigned SE57                 : 1;
  unsigned SE58                 : 1;
  unsigned SE59                 : 1;
  unsigned SE60                 : 1;
  unsigned SE61                 : 1;
  unsigned SE62                 : 1;
  unsigned SE63                 : 1;
  } __LCDSE7bits_t;

extern __at(0x0ED5) volatile __LCDSE7bits_t LCDSE7bits;

#define _SE56                   0x01
#define _SE57                   0x02
#define _SE58                   0x04
#define _SE59                   0x08
#define _SE60                   0x10
#define _SE61                   0x20
#define _SE62                   0x40
#define _SE63                   0x80

//==============================================================================


//==============================================================================
//        LCDRL Bits

extern __at(0x0ED6) __sfr LCDRL;

typedef union
  {
  struct
    {
    unsigned LRLAT0             : 1;
    unsigned LRLAT1             : 1;
    unsigned LRLAT2             : 1;
    unsigned                    : 1;
    unsigned LRLBP0             : 1;
    unsigned LRLBP1             : 1;
    unsigned LRLAP0             : 1;
    unsigned LRLAP1             : 1;
    };

  struct
    {
    unsigned LRLAT              : 3;
    unsigned                    : 5;
    };

  struct
    {
    unsigned                    : 4;
    unsigned LRLBP              : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned LRLAP              : 2;
    };
  } __LCDRLbits_t;

extern __at(0x0ED6) volatile __LCDRLbits_t LCDRLbits;

#define _LRLAT0                 0x01
#define _LRLAT1                 0x02
#define _LRLAT2                 0x04
#define _LRLBP0                 0x10
#define _LRLBP1                 0x20
#define _LRLAP0                 0x40
#define _LRLAP1                 0x80

//==============================================================================


//==============================================================================
//        LCDREF Bits

extern __at(0x0ED7) __sfr LCDREF;

typedef union
  {
  struct
    {
    unsigned VLCD1PE            : 1;
    unsigned VLCD2PE            : 1;
    unsigned VLCD3PE            : 1;
    unsigned LCDCST0            : 1;
    unsigned LCDCST1            : 1;
    unsigned LCDCST2            : 1;
    unsigned                    : 1;
    unsigned LCDIRE             : 1;
    };

  struct
    {
    unsigned                    : 3;
    unsigned LCDCST             : 3;
    unsigned                    : 2;
    };
  } __LCDREFbits_t;

extern __at(0x0ED7) volatile __LCDREFbits_t LCDREFbits;

#define _VLCD1PE                0x01
#define _VLCD2PE                0x02
#define _VLCD3PE                0x04
#define _LCDCST0                0x08
#define _LCDCST1                0x10
#define _LCDCST2                0x20
#define _LCDIRE                 0x80

//==============================================================================


//==============================================================================
//        LCDREG Bits

extern __at(0x0ED8) __sfr LCDREG;

typedef union
  {
  struct
    {
    unsigned CLKSEL0            : 1;
    unsigned CLKSEL1            : 1;
    unsigned MODE13             : 1;
    unsigned BIAS0              : 1;
    unsigned BIAS1              : 1;
    unsigned BIAS2              : 1;
    unsigned                    : 1;
    unsigned CPEN               : 1;
    };

  struct
    {
    unsigned CLKSEL             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned BIAS               : 3;
    unsigned                    : 2;
    };
  } __LCDREGbits_t;

extern __at(0x0ED8) volatile __LCDREGbits_t LCDREGbits;

#define _CLKSEL0                0x01
#define _CLKSEL1                0x02
#define _MODE13                 0x04
#define _BIAS0                  0x08
#define _BIAS1                  0x10
#define _BIAS2                  0x20
#define _CPEN                   0x80

//==============================================================================


//==============================================================================
//        LCDCON Bits

extern __at(0x0ED9) __sfr LCDCON;

typedef union
  {
  struct
    {
    unsigned LMUX0              : 1;
    unsigned LMUX1              : 1;
    unsigned LMUX2              : 1;
    unsigned CS0                : 1;
    unsigned CS1                : 1;
    unsigned WERR               : 1;
    unsigned SLPEN              : 1;
    unsigned LCDEN              : 1;
    };

  struct
    {
    unsigned LMUX               : 3;
    unsigned                    : 5;
    };

  struct
    {
    unsigned                    : 3;
    unsigned CS                 : 2;
    unsigned                    : 3;
    };
  } __LCDCONbits_t;

extern __at(0x0ED9) volatile __LCDCONbits_t LCDCONbits;

#define _LMUX0                  0x01
#define _LMUX1                  0x02
#define _LMUX2                  0x04
#define _CS0                    0x08
#define _CS1                    0x10
#define _WERR                   0x20
#define _SLPEN                  0x40
#define _LCDEN                  0x80

//==============================================================================


//==============================================================================
//        LCDPS Bits

extern __at(0x0EDA) __sfr LCDPS;

typedef union
  {
  struct
    {
    unsigned LP0                : 1;
    unsigned LP1                : 1;
    unsigned LP2                : 1;
    unsigned LP3                : 1;
    unsigned WA                 : 1;
    unsigned LCDA               : 1;
    unsigned BIASMD             : 1;
    unsigned WFT                : 1;
    };

  struct
    {
    unsigned LP                 : 4;
    unsigned                    : 4;
    };
  } __LCDPSbits_t;

extern __at(0x0EDA) volatile __LCDPSbits_t LCDPSbits;

#define _LP0                    0x01
#define _LP1                    0x02
#define _LP2                    0x04
#define _LP3                    0x08
#define _WA                     0x10
#define _LCDA                   0x20
#define _BIASMD                 0x40
#define _WFT                    0x80

//==============================================================================


//==============================================================================
//        REFO2CON3 Bits

extern __at(0x0EDB) __sfr REFO2CON3;

typedef struct
  {
  unsigned RODIV8               : 1;
  unsigned RODIV9               : 1;
  unsigned RODIV10              : 1;
  unsigned RODIV11              : 1;
  unsigned RODIV12              : 1;
  unsigned RODIV13              : 1;
  unsigned RODIV14              : 1;
  unsigned                      : 1;
  } __REFO2CON3bits_t;

extern __at(0x0EDB) volatile __REFO2CON3bits_t REFO2CON3bits;

#define _REFO2CON3_RODIV8       0x01
#define _REFO2CON3_RODIV9       0x02
#define _REFO2CON3_RODIV10      0x04
#define _REFO2CON3_RODIV11      0x08
#define _REFO2CON3_RODIV12      0x10
#define _REFO2CON3_RODIV13      0x20
#define _REFO2CON3_RODIV14      0x40

//==============================================================================


//==============================================================================
//        REFO2CON2 Bits

extern __at(0x0EDC) __sfr REFO2CON2;

typedef struct
  {
  unsigned RODIV0               : 1;
  unsigned RODIV1               : 1;
  unsigned RODIV2               : 1;
  unsigned RODIV3               : 1;
  unsigned RODIV4               : 1;
  unsigned RODIV5               : 1;
  unsigned RODIV6               : 1;
  unsigned RODIV7               : 1;
  } __REFO2CON2bits_t;

extern __at(0x0EDC) volatile __REFO2CON2bits_t REFO2CON2bits;

#define _REFO2CON2_RODIV0       0x01
#define _REFO2CON2_RODIV1       0x02
#define _REFO2CON2_RODIV2       0x04
#define _REFO2CON2_RODIV3       0x08
#define _REFO2CON2_RODIV4       0x10
#define _REFO2CON2_RODIV5       0x20
#define _REFO2CON2_RODIV6       0x40
#define _REFO2CON2_RODIV7       0x80

//==============================================================================


//==============================================================================
//        REFO2CON1 Bits

extern __at(0x0EDD) __sfr REFO2CON1;

typedef union
  {
  struct
    {
    unsigned ROSEL0             : 1;
    unsigned ROSEL1             : 1;
    unsigned ROSEL2             : 1;
    unsigned ROSEL3             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned ROSEL              : 4;
    unsigned                    : 4;
    };
  } __REFO2CON1bits_t;

extern __at(0x0EDD) volatile __REFO2CON1bits_t REFO2CON1bits;

#define _REFO2CON1_ROSEL0       0x01
#define _REFO2CON1_ROSEL1       0x02
#define _REFO2CON1_ROSEL2       0x04
#define _REFO2CON1_ROSEL3       0x08

//==============================================================================


//==============================================================================
//        REFO2CON Bits

extern __at(0x0EDE) __sfr REFO2CON;

typedef struct
  {
  unsigned ACTIVE               : 1;
  unsigned DIVSWEN              : 1;
  unsigned                      : 1;
  unsigned ROSSLP               : 1;
  unsigned ROOE                 : 1;
  unsigned ROSIDL               : 1;
  unsigned                      : 1;
  unsigned ROON                 : 1;
  } __REFO2CONbits_t;

extern __at(0x0EDE) volatile __REFO2CONbits_t REFO2CONbits;

#define _REFO2CON_ACTIVE        0x01
#define _REFO2CON_DIVSWEN       0x02
#define _REFO2CON_ROSSLP        0x08
#define _REFO2CON_ROOE          0x10
#define _REFO2CON_ROSIDL        0x20
#define _REFO2CON_ROON          0x80

//==============================================================================


//==============================================================================
//        REFO1CON3 Bits

extern __at(0x0EDF) __sfr REFO1CON3;

typedef struct
  {
  unsigned RODIV8               : 1;
  unsigned RODIV9               : 1;
  unsigned RODIV10              : 1;
  unsigned RODIV11              : 1;
  unsigned RODIV12              : 1;
  unsigned RODIV13              : 1;
  unsigned RODIV14              : 1;
  unsigned                      : 1;
  } __REFO1CON3bits_t;

extern __at(0x0EDF) volatile __REFO1CON3bits_t REFO1CON3bits;

#define _RODIV8                 0x01
#define _RODIV9                 0x02
#define _RODIV10                0x04
#define _RODIV11                0x08
#define _RODIV12                0x10
#define _RODIV13                0x20
#define _RODIV14                0x40

//==============================================================================


//==============================================================================
//        REFO1CON2 Bits

extern __at(0x0EE0) __sfr REFO1CON2;

typedef struct
  {
  unsigned RODIV0               : 1;
  unsigned RODIV1               : 1;
  unsigned RODIV2               : 1;
  unsigned RODIV3               : 1;
  unsigned RODIV4               : 1;
  unsigned RODIV5               : 1;
  unsigned RODIV6               : 1;
  unsigned RODIV7               : 1;
  } __REFO1CON2bits_t;

extern __at(0x0EE0) volatile __REFO1CON2bits_t REFO1CON2bits;

#define _RODIV0                 0x01
#define _RODIV1                 0x02
#define _RODIV2                 0x04
#define _RODIV3                 0x08
#define _RODIV4                 0x10
#define _RODIV5                 0x20
#define _RODIV6                 0x40
#define _RODIV7                 0x80

//==============================================================================


//==============================================================================
//        REFO1CON1 Bits

extern __at(0x0EE1) __sfr REFO1CON1;

typedef union
  {
  struct
    {
    unsigned ROSEL0             : 1;
    unsigned ROSEL1             : 1;
    unsigned ROSEL2             : 1;
    unsigned ROSEL3             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned ROSEL              : 4;
    unsigned                    : 4;
    };
  } __REFO1CON1bits_t;

extern __at(0x0EE1) volatile __REFO1CON1bits_t REFO1CON1bits;

#define _ROSEL0                 0x01
#define _ROSEL1                 0x02
#define _ROSEL2                 0x04
#define _ROSEL3                 0x08

//==============================================================================


//==============================================================================
//        REFO1CON Bits

extern __at(0x0EE2) __sfr REFO1CON;

typedef struct
  {
  unsigned ACTIVE               : 1;
  unsigned DIVSWEN              : 1;
  unsigned                      : 1;
  unsigned ROSSLP               : 1;
  unsigned ROOE                 : 1;
  unsigned ROSIDL               : 1;
  unsigned                      : 1;
  unsigned ROON                 : 1;
  } __REFO1CONbits_t;

extern __at(0x0EE2) volatile __REFO1CONbits_t REFO1CONbits;

#define _ACTIVE                 0x01
#define _DIVSWEN                0x02
#define _ROSSLP                 0x08
#define _ROOE                   0x10
#define _ROSIDL                 0x20
#define _ROON                   0x80

//==============================================================================


//==============================================================================
//        MEMCON Bits

extern __at(0x0EE3) __sfr MEMCON;

typedef union
  {
  struct
    {
    unsigned WM0                : 1;
    unsigned WM1                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned WAIT0              : 1;
    unsigned WAIT1              : 1;
    unsigned                    : 1;
    unsigned EBDIS              : 1;
    };

  struct
    {
    unsigned WM                 : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 4;
    unsigned WAIT               : 2;
    unsigned                    : 2;
    };
  } __MEMCONbits_t;

extern __at(0x0EE3) volatile __MEMCONbits_t MEMCONbits;

#define _MEMCON_WM0             0x01
#define _MEMCON_WM1             0x02
#define _MEMCON_WAIT0           0x10
#define _MEMCON_WAIT1           0x20
#define _MEMCON_EBDIS           0x80

//==============================================================================


//==============================================================================
//        PORTL Bits

extern __at(0x0EE4) __sfr PORTL;

typedef struct
  {
  unsigned RL0                  : 1;
  unsigned RL1                  : 1;
  unsigned RL2                  : 1;
  unsigned RL3                  : 1;
  unsigned RL4                  : 1;
  unsigned RL5                  : 1;
  unsigned RL6                  : 1;
  unsigned RL7                  : 1;
  } __PORTLbits_t;

extern __at(0x0EE4) volatile __PORTLbits_t PORTLbits;

#define _RL0                    0x01
#define _RL1                    0x02
#define _RL2                    0x04
#define _RL3                    0x08
#define _RL4                    0x10
#define _RL5                    0x20
#define _RL6                    0x40
#define _RL7                    0x80

//==============================================================================


//==============================================================================
//        LATL Bits

extern __at(0x0EE5) __sfr LATL;

typedef struct
  {
  unsigned LATL0                : 1;
  unsigned LATL1                : 1;
  unsigned LATL2                : 1;
  unsigned LATL3                : 1;
  unsigned LATL4                : 1;
  unsigned LATL5                : 1;
  unsigned LATL6                : 1;
  unsigned LATL7                : 1;
  } __LATLbits_t;

extern __at(0x0EE5) volatile __LATLbits_t LATLbits;

#define _LATL0                  0x01
#define _LATL1                  0x02
#define _LATL2                  0x04
#define _LATL3                  0x08
#define _LATL4                  0x10
#define _LATL5                  0x20
#define _LATL6                  0x40
#define _LATL7                  0x80

//==============================================================================


//==============================================================================
//        TRISL Bits

extern __at(0x0EE6) __sfr TRISL;

typedef struct
  {
  unsigned TRISL0               : 1;
  unsigned TRISL1               : 1;
  unsigned TRISL2               : 1;
  unsigned TRISL3               : 1;
  unsigned TRISL4               : 1;
  unsigned TRISL5               : 1;
  unsigned TRISL6               : 1;
  unsigned TRISL7               : 1;
  } __TRISLbits_t;

extern __at(0x0EE6) volatile __TRISLbits_t TRISLbits;

#define _TRISL0                 0x01
#define _TRISL1                 0x02
#define _TRISL2                 0x04
#define _TRISL3                 0x08
#define _TRISL4                 0x10
#define _TRISL5                 0x20
#define _TRISL6                 0x40
#define _TRISL7                 0x80

//==============================================================================


//==============================================================================
//        PORTK Bits

extern __at(0x0EE7) __sfr PORTK;

typedef struct
  {
  unsigned RK0                  : 1;
  unsigned RK1                  : 1;
  unsigned RK2                  : 1;
  unsigned RK3                  : 1;
  unsigned RK4                  : 1;
  unsigned RK5                  : 1;
  unsigned RK6                  : 1;
  unsigned RK7                  : 1;
  } __PORTKbits_t;

extern __at(0x0EE7) volatile __PORTKbits_t PORTKbits;

#define _RK0                    0x01
#define _RK1                    0x02
#define _RK2                    0x04
#define _RK3                    0x08
#define _RK4                    0x10
#define _RK5                    0x20
#define _RK6                    0x40
#define _RK7                    0x80

//==============================================================================


//==============================================================================
//        LATK Bits

extern __at(0x0EE8) __sfr LATK;

typedef struct
  {
  unsigned LATK0                : 1;
  unsigned LATK1                : 1;
  unsigned LATK2                : 1;
  unsigned LATK3                : 1;
  unsigned LATK4                : 1;
  unsigned LATK5                : 1;
  unsigned LATK6                : 1;
  unsigned LATK7                : 1;
  } __LATKbits_t;

extern __at(0x0EE8) volatile __LATKbits_t LATKbits;

#define _LATK0                  0x01
#define _LATK1                  0x02
#define _LATK2                  0x04
#define _LATK3                  0x08
#define _LATK4                  0x10
#define _LATK5                  0x20
#define _LATK6                  0x40
#define _LATK7                  0x80

//==============================================================================


//==============================================================================
//        TRISK Bits

extern __at(0x0EE9) __sfr TRISK;

typedef struct
  {
  unsigned TRISK0               : 1;
  unsigned TRISK1               : 1;
  unsigned TRISK2               : 1;
  unsigned TRISK3               : 1;
  unsigned TRISK4               : 1;
  unsigned TRISK5               : 1;
  unsigned TRISK6               : 1;
  unsigned TRISK7               : 1;
  } __TRISKbits_t;

extern __at(0x0EE9) volatile __TRISKbits_t TRISKbits;

#define _TRISK0                 0x01
#define _TRISK1                 0x02
#define _TRISK2                 0x04
#define _TRISK3                 0x08
#define _TRISK4                 0x10
#define _TRISK5                 0x20
#define _TRISK6                 0x40
#define _TRISK7                 0x80

//==============================================================================


//==============================================================================
//        ODCON2 Bits

extern __at(0x0EEA) __sfr ODCON2;

typedef struct
  {
  unsigned ECCP3OD              : 1;
  unsigned CCP4OD               : 1;
  unsigned CCP5OD               : 1;
  unsigned CCP6OD               : 1;
  unsigned CCP7OD               : 1;
  unsigned CCP8OD               : 1;
  unsigned CCP9OD               : 1;
  unsigned CCP10OD              : 1;
  } __ODCON2bits_t;

extern __at(0x0EEA) volatile __ODCON2bits_t ODCON2bits;

#define _ECCP3OD                0x01
#define _CCP4OD                 0x02
#define _CCP5OD                 0x04
#define _CCP6OD                 0x08
#define _CCP7OD                 0x10
#define _CCP8OD                 0x20
#define _CCP9OD                 0x40
#define _CCP10OD                0x80

//==============================================================================


//==============================================================================
//        ODCON1 Bits

extern __at(0x0EEB) __sfr ODCON1;

typedef struct
  {
  unsigned SSP1OD               : 1;
  unsigned SSP2OD               : 1;
  unsigned USART1OD             : 1;
  unsigned USART2OD             : 1;
  unsigned USART3OD             : 1;
  unsigned USART4OD             : 1;
  unsigned ECCP1OD              : 1;
  unsigned ECCP2OD              : 1;
  } __ODCON1bits_t;

extern __at(0x0EEB) volatile __ODCON1bits_t ODCON1bits;

#define _SSP1OD                 0x01
#define _SSP2OD                 0x02
#define _USART1OD               0x04
#define _USART2OD               0x08
#define _USART3OD               0x10
#define _USART4OD               0x20
#define _ECCP1OD                0x40
#define _ECCP2OD                0x80

//==============================================================================


//==============================================================================
//        MDCARL Bits

extern __at(0x0EEC) __sfr MDCARL;

typedef union
  {
  struct
    {
    unsigned MDCL0              : 1;
    unsigned MDCL1              : 1;
    unsigned MDCL2              : 1;
    unsigned MDCL3              : 1;
    unsigned                    : 1;
    unsigned MDCLSYNC           : 1;
    unsigned MDCLPOL            : 1;
    unsigned MDCLODIS           : 1;
    };

  struct
    {
    unsigned MDCL               : 4;
    unsigned                    : 4;
    };
  } __MDCARLbits_t;

extern __at(0x0EEC) volatile __MDCARLbits_t MDCARLbits;

#define _MDCL0                  0x01
#define _MDCL1                  0x02
#define _MDCL2                  0x04
#define _MDCL3                  0x08
#define _MDCLSYNC               0x20
#define _MDCLPOL                0x40
#define _MDCLODIS               0x80

//==============================================================================


//==============================================================================
//        MDCARH Bits

extern __at(0x0EED) __sfr MDCARH;

typedef union
  {
  struct
    {
    unsigned MDCH0              : 1;
    unsigned MDCH1              : 1;
    unsigned MDCH2              : 1;
    unsigned MDCH3              : 1;
    unsigned                    : 1;
    unsigned MDCHSYNC           : 1;
    unsigned MDCHPOL            : 1;
    unsigned MDCHODIS           : 1;
    };

  struct
    {
    unsigned MDCH               : 4;
    unsigned                    : 4;
    };
  } __MDCARHbits_t;

extern __at(0x0EED) volatile __MDCARHbits_t MDCARHbits;

#define _MDCH0                  0x01
#define _MDCH1                  0x02
#define _MDCH2                  0x04
#define _MDCH3                  0x08
#define _MDCHSYNC               0x20
#define _MDCHPOL                0x40
#define _MDCHODIS               0x80

//==============================================================================


//==============================================================================
//        MDSRC Bits

extern __at(0x0EEE) __sfr MDSRC;

typedef union
  {
  struct
    {
    unsigned MDSRC0             : 1;
    unsigned MDSRC1             : 1;
    unsigned MDSRC2             : 1;
    unsigned MDSRC3             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned MDSODIS            : 1;
    };

  struct
    {
    unsigned MDSRC              : 4;
    unsigned                    : 4;
    };
  } __MDSRCbits_t;

extern __at(0x0EEE) volatile __MDSRCbits_t MDSRCbits;

#define _MDSRC0                 0x01
#define _MDSRC1                 0x02
#define _MDSRC2                 0x04
#define _MDSRC3                 0x08
#define _MDSODIS                0x80

//==============================================================================


//==============================================================================
//        MDCON Bits

extern __at(0x0EEF) __sfr MDCON;

typedef struct
  {
  unsigned MDBIT                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned MDO                  : 1;
  unsigned MDOPOL               : 1;
  unsigned MDSLR                : 1;
  unsigned MDOE                 : 1;
  unsigned MDEN                 : 1;
  } __MDCONbits_t;

extern __at(0x0EEF) volatile __MDCONbits_t MDCONbits;

#define _MDBIT                  0x01
#define _MDO                    0x08
#define _MDOPOL                 0x10
#define _MDSLR                  0x20
#define _MDOE                   0x40
#define _MDEN                   0x80

//==============================================================================


//==============================================================================
//        PMD4 Bits

extern __at(0x0EF0) __sfr PMD4;

typedef struct
  {
  unsigned EMBMD                : 1;
  unsigned                      : 1;
  unsigned LVDMD                : 1;
  unsigned IOCMD                : 1;
  unsigned USBMD                : 1;
  unsigned CMP3MD               : 1;
  unsigned CMP2MD               : 1;
  unsigned CMP1MD               : 1;
  } __PMD4bits_t;

extern __at(0x0EF0) volatile __PMD4bits_t PMD4bits;

#define _EMBMD                  0x01
#define _LVDMD                  0x04
#define _IOCMD                  0x08
#define _USBMD                  0x10
#define _CMP3MD                 0x20
#define _CMP2MD                 0x40
#define _CMP1MD                 0x80

//==============================================================================


//==============================================================================
//        PMD3 Bits

extern __at(0x0EF1) __sfr PMD3;

typedef union
  {
  struct
    {
    unsigned REFO2MD            : 1;
    unsigned REFO1MD            : 1;
    unsigned PSPMD              : 1;
    unsigned LCDMD              : 1;
    unsigned RTCCMD             : 1;
    unsigned ADCMD              : 1;
    unsigned CTMUMD             : 1;
    unsigned MODMD              : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXMMD              : 1;
    };
  } __PMD3bits_t;

extern __at(0x0EF1) volatile __PMD3bits_t PMD3bits;

#define _REFO2MD                0x01
#define _REFO1MD                0x02
#define _PSPMD                  0x04
#define _LCDMD                  0x08
#define _RTCCMD                 0x10
#define _ADCMD                  0x20
#define _CTMUMD                 0x40
#define _MODMD                  0x80
#define _TXMMD                  0x80

//==============================================================================


//==============================================================================
//        PMD2 Bits

extern __at(0x0EF2) __sfr PMD2;

typedef struct
  {
  unsigned TMR0MD               : 1;
  unsigned TMR1MD               : 1;
  unsigned TMR2MD               : 1;
  unsigned TMR3MD               : 1;
  unsigned TMR4MD               : 1;
  unsigned TMR5MD               : 1;
  unsigned TMR6MD               : 1;
  unsigned TMR8MD               : 1;
  } __PMD2bits_t;

extern __at(0x0EF2) volatile __PMD2bits_t PMD2bits;

#define _TMR0MD                 0x01
#define _TMR1MD                 0x02
#define _TMR2MD                 0x04
#define _TMR3MD                 0x08
#define _TMR4MD                 0x10
#define _TMR5MD                 0x20
#define _TMR6MD                 0x40
#define _TMR8MD                 0x80

//==============================================================================


//==============================================================================
//        PMD1 Bits

extern __at(0x0EF3) __sfr PMD1;

typedef struct
  {
  unsigned SSP1MD               : 1;
  unsigned SSP2MD               : 1;
  unsigned UART1MD              : 1;
  unsigned UART2MD              : 1;
  unsigned UART3MD              : 1;
  unsigned UART4MD              : 1;
  unsigned ECCP1MD              : 1;
  unsigned ECCP2MD              : 1;
  } __PMD1bits_t;

extern __at(0x0EF3) volatile __PMD1bits_t PMD1bits;

#define _SSP1MD                 0x01
#define _SSP2MD                 0x02
#define _UART1MD                0x04
#define _UART2MD                0x08
#define _UART3MD                0x10
#define _UART4MD                0x20
#define _ECCP1MD                0x40
#define _ECCP2MD                0x80

//==============================================================================


//==============================================================================
//        PMD0 Bits

extern __at(0x0EF4) __sfr PMD0;

typedef struct
  {
  unsigned ECCP3MD              : 1;
  unsigned CCP4MD               : 1;
  unsigned CCP5MD               : 1;
  unsigned CCP6MD               : 1;
  unsigned CCP7MD               : 1;
  unsigned CCP8MD               : 1;
  unsigned CCP9MD               : 1;
  unsigned CCP10MD              : 1;
  } __PMD0bits_t;

extern __at(0x0EF4) volatile __PMD0bits_t PMD0bits;

#define _ECCP3MD                0x01
#define _CCP4MD                 0x02
#define _CCP5MD                 0x04
#define _CCP6MD                 0x08
#define _CCP7MD                 0x10
#define _CCP8MD                 0x20
#define _CCP9MD                 0x40
#define _CCP10MD                0x80

//==============================================================================


//==============================================================================
//        CTMUCON4 Bits

extern __at(0x0EF5) __sfr CTMUCON4;

typedef union
  {
  struct
    {
    unsigned EDG1STAT           : 1;
    unsigned EDG2STAT           : 1;
    unsigned EDG1SEL0           : 1;
    unsigned EDG1SEL1           : 1;
    unsigned EDG1SEL2           : 1;
    unsigned EDG1SEL3           : 1;
    unsigned EDG1POL            : 1;
    unsigned EDG1EN             : 1;
    };

  struct
    {
    unsigned                    : 2;
    unsigned EDG1SEL            : 4;
    unsigned                    : 2;
    };
  } __CTMUCON4bits_t;

extern __at(0x0EF5) volatile __CTMUCON4bits_t CTMUCON4bits;

#define _EDG1STAT               0x01
#define _EDG2STAT               0x02
#define _EDG1SEL0               0x04
#define _EDG1SEL1               0x08
#define _EDG1SEL2               0x10
#define _EDG1SEL3               0x20
#define _EDG1POL                0x40
#define _EDG1EN                 0x80

//==============================================================================


//==============================================================================
//        CTMUCON3 Bits

extern __at(0x0EF6) __sfr CTMUCON3;

typedef union
  {
  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned EDG2SEL0           : 1;
    unsigned EDG2SEL1           : 1;
    unsigned EDG2SEL2           : 1;
    unsigned EDG2SEL3           : 1;
    unsigned EDG2POL            : 1;
    unsigned EDG2EN             : 1;
    };

  struct
    {
    unsigned                    : 2;
    unsigned EDG2SEL            : 4;
    unsigned                    : 2;
    };
  } __CTMUCON3bits_t;

extern __at(0x0EF6) volatile __CTMUCON3bits_t CTMUCON3bits;

#define _EDG2SEL0               0x04
#define _EDG2SEL1               0x08
#define _EDG2SEL2               0x10
#define _EDG2SEL3               0x20
#define _EDG2POL                0x40
#define _EDG2EN                 0x80

//==============================================================================


//==============================================================================
//        CTMUCON2 Bits

extern __at(0x0EF7) __sfr CTMUCON2;

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;
    };

  struct
    {
    unsigned IRNG               : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned ITRIM              : 6;
    };
  } __CTMUCON2bits_t;

extern __at(0x0EF7) volatile __CTMUCON2bits_t CTMUCON2bits;

#define _IRNG0                  0x01
#define _IRNG1                  0x02
#define _ITRIM0                 0x04
#define _ITRIM1                 0x08
#define _ITRIM2                 0x10
#define _ITRIM3                 0x20
#define _ITRIM4                 0x40
#define _ITRIM5                 0x80

//==============================================================================


//==============================================================================
//        CTMUCON1 Bits

extern __at(0x0EF8) __sfr CTMUCON1;

typedef struct
  {
  unsigned CTTRIG               : 1;
  unsigned IDISSEN              : 1;
  unsigned EDGSEQEN             : 1;
  unsigned EDGEN                : 1;
  unsigned TGEN                 : 1;
  unsigned CTMUSIDL             : 1;
  unsigned                      : 1;
  unsigned CTMUEN               : 1;
  } __CTMUCON1bits_t;

extern __at(0x0EF8) volatile __CTMUCON1bits_t CTMUCON1bits;

#define _CTTRIG                 0x01
#define _IDISSEN                0x02
#define _EDGSEQEN               0x04
#define _EDGEN                  0x08
#define _TGEN                   0x10
#define _CTMUSIDL               0x20
#define _CTMUEN                 0x80

//==============================================================================

extern __at(0x0EF9) __sfr TXREG4;
extern __at(0x0EFA) __sfr RCREG4;

//==============================================================================
//        SPBRG4 Bits

extern __at(0x0EFB) __sfr SPBRG4;

typedef struct
  {
  unsigned BRG0                 : 1;
  unsigned BRG1                 : 1;
  unsigned BRG2                 : 1;
  unsigned BRG3                 : 1;
  unsigned BRG4                 : 1;
  unsigned BRG5                 : 1;
  unsigned BRG6                 : 1;
  unsigned BRG7                 : 1;
  } __SPBRG4bits_t;

extern __at(0x0EFB) volatile __SPBRG4bits_t SPBRG4bits;

#define _SPBRG4_BRG0            0x01
#define _SPBRG4_BRG1            0x02
#define _SPBRG4_BRG2            0x04
#define _SPBRG4_BRG3            0x08
#define _SPBRG4_BRG4            0x10
#define _SPBRG4_BRG5            0x20
#define _SPBRG4_BRG6            0x40
#define _SPBRG4_BRG7            0x80

//==============================================================================


//==============================================================================
//        SPBRGH4 Bits

extern __at(0x0EFC) __sfr SPBRGH4;

typedef struct
  {
  unsigned BRG8                 : 1;
  unsigned BRG9                 : 1;
  unsigned BRG10                : 1;
  unsigned BRG11                : 1;
  unsigned BRG12                : 1;
  unsigned BRG13                : 1;
  unsigned BRG14                : 1;
  unsigned BRG15                : 1;
  } __SPBRGH4bits_t;

extern __at(0x0EFC) volatile __SPBRGH4bits_t SPBRGH4bits;

#define _SPBRGH4_BRG8           0x01
#define _SPBRGH4_BRG9           0x02
#define _SPBRGH4_BRG10          0x04
#define _SPBRGH4_BRG11          0x08
#define _SPBRGH4_BRG12          0x10
#define _SPBRGH4_BRG13          0x20
#define _SPBRGH4_BRG14          0x40
#define _SPBRGH4_BRG15          0x80

//==============================================================================


//==============================================================================
//        BAUDCON4 Bits

extern __at(0x0EFD) __sfr BAUDCON4;

typedef struct
  {
  unsigned ABDEN                : 1;
  unsigned WUE                  : 1;
  unsigned IREN                 : 1;
  unsigned BRG16                : 1;
  unsigned TXCKP                : 1;
  unsigned RXDTP                : 1;
  unsigned RCIDL                : 1;
  unsigned ABDOVF               : 1;
  } __BAUDCON4bits_t;

extern __at(0x0EFD) volatile __BAUDCON4bits_t BAUDCON4bits;

#define _BAUDCON4_ABDEN         0x01
#define _BAUDCON4_WUE           0x02
#define _BAUDCON4_IREN          0x04
#define _BAUDCON4_BRG16         0x08
#define _BAUDCON4_TXCKP         0x10
#define _BAUDCON4_RXDTP         0x20
#define _BAUDCON4_RCIDL         0x40
#define _BAUDCON4_ABDOVF        0x80

//==============================================================================


//==============================================================================
//        TXSTA4 Bits

extern __at(0x0EFE) __sfr TXSTA4;

typedef 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;
  } __TXSTA4bits_t;

extern __at(0x0EFE) volatile __TXSTA4bits_t TXSTA4bits;

#define _TXSTA4_TX9D            0x01
#define _TXSTA4_TRMT            0x02
#define _TXSTA4_BRGH            0x04
#define _TXSTA4_SENDB           0x08
#define _TXSTA4_SYNC            0x10
#define _TXSTA4_TXEN            0x20
#define _TXSTA4_TX9             0x40
#define _TXSTA4_CSRC            0x80

//==============================================================================


//==============================================================================
//        RCSTA4 Bits

extern __at(0x0EFF) __sfr RCSTA4;

typedef 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;
  } __RCSTA4bits_t;

extern __at(0x0EFF) volatile __RCSTA4bits_t RCSTA4bits;

#define _RCSTA4_RX9D            0x01
#define _RCSTA4_OERR            0x02
#define _RCSTA4_FERR            0x04
#define _RCSTA4_ADDEN           0x08
#define _RCSTA4_CREN            0x10
#define _RCSTA4_SREN            0x20
#define _RCSTA4_RX9             0x40
#define _RCSTA4_SPEN            0x80

//==============================================================================


//==============================================================================
//        DMACON2 Bits

extern __at(0x0F00) __sfr DMACON2;

typedef union
  {
  struct
    {
    unsigned INTLVL0            : 1;
    unsigned INTLVL1            : 1;
    unsigned INTLVL2            : 1;
    unsigned INTLVL3            : 1;
    unsigned DLYCYC0            : 1;
    unsigned DLYCYC1            : 1;
    unsigned DLYCYC2            : 1;
    unsigned DLYCYC3            : 1;
    };

  struct
    {
    unsigned INTLVL             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DLYCYC             : 4;
    };
  } __DMACON2bits_t;

extern __at(0x0F00) volatile __DMACON2bits_t DMACON2bits;

#define _INTLVL0                0x01
#define _INTLVL1                0x02
#define _INTLVL2                0x04
#define _INTLVL3                0x08
#define _DLYCYC0                0x10
#define _DLYCYC1                0x20
#define _DLYCYC2                0x40
#define _DLYCYC3                0x80

//==============================================================================


//==============================================================================
//        ANCFG Bits

extern __at(0x0F01) __sfr ANCFG;

typedef struct
  {
  unsigned VBGEN                : 1;
  unsigned VBG2EN               : 1;
  unsigned VBG6EN               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __ANCFGbits_t;

extern __at(0x0F01) volatile __ANCFGbits_t ANCFGbits;

#define _VBGEN                  0x01
#define _VBG2EN                 0x02
#define _VBG6EN                 0x04

//==============================================================================

extern __at(0x0F02) __sfr SSP2ADD;
extern __at(0x0F03) __sfr SSP2BUF;

//==============================================================================
//        T4CON Bits

extern __at(0x0F04) __sfr 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;
    };

  struct
    {
    unsigned T4CKPS             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned T4OUTPS            : 4;
    unsigned                    : 1;
    };
  } __T4CONbits_t;

extern __at(0x0F04) volatile __T4CONbits_t T4CONbits;

#define _T4CKPS0                0x01
#define _T4CKPS1                0x02
#define _TMR4ON                 0x04
#define _T4OUTPS0               0x08
#define _T4OUTPS1               0x10
#define _T4OUTPS2               0x20
#define _T4OUTPS3               0x40

//==============================================================================

extern __at(0x0F05) __sfr PR4;
extern __at(0x0F06) __sfr TMR4;

//==============================================================================
//        CCP7CON Bits

extern __at(0x0F07) __sfr CCP7CON;

typedef union
  {
  struct
    {
    unsigned CCP7M0             : 1;
    unsigned CCP7M1             : 1;
    unsigned CCP7M2             : 1;
    unsigned CCP7M3             : 1;
    unsigned DC7B0              : 1;
    unsigned DC7B1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP7Y              : 1;
    unsigned CCP7X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP7M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC7B               : 2;
    unsigned                    : 2;
    };
  } __CCP7CONbits_t;

extern __at(0x0F07) volatile __CCP7CONbits_t CCP7CONbits;

#define _CCP7M0                 0x01
#define _CCP7M1                 0x02
#define _CCP7M2                 0x04
#define _CCP7M3                 0x08
#define _DC7B0                  0x10
#define _CCP7Y                  0x10
#define _DC7B1                  0x20
#define _CCP7X                  0x20

//==============================================================================

extern __at(0x0F08) __sfr CCPR7;
extern __at(0x0F08) __sfr CCPR7L;
extern __at(0x0F09) __sfr CCPR7H;

//==============================================================================
//        CCP6CON Bits

extern __at(0x0F0A) __sfr CCP6CON;

typedef union
  {
  struct
    {
    unsigned CCP6M0             : 1;
    unsigned CCP6M1             : 1;
    unsigned CCP6M2             : 1;
    unsigned CCP6M3             : 1;
    unsigned DC6B0              : 1;
    unsigned DC6B1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP6Y              : 1;
    unsigned CCP6X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP6M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC6B               : 2;
    unsigned                    : 2;
    };
  } __CCP6CONbits_t;

extern __at(0x0F0A) volatile __CCP6CONbits_t CCP6CONbits;

#define _CCP6M0                 0x01
#define _CCP6M1                 0x02
#define _CCP6M2                 0x04
#define _CCP6M3                 0x08
#define _DC6B0                  0x10
#define _CCP6Y                  0x10
#define _DC6B1                  0x20
#define _CCP6X                  0x20

//==============================================================================

extern __at(0x0F0B) __sfr CCPR6;
extern __at(0x0F0B) __sfr CCPR6L;
extern __at(0x0F0C) __sfr CCPR6H;

//==============================================================================
//        CCP5CON Bits

extern __at(0x0F0D) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP5Y              : 1;
    unsigned CCP5X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP5M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC5B               : 2;
    unsigned                    : 2;
    };
  } __CCP5CONbits_t;

extern __at(0x0F0D) volatile __CCP5CONbits_t CCP5CONbits;

#define _CCP5M0                 0x01
#define _CCP5M1                 0x02
#define _CCP5M2                 0x04
#define _CCP5M3                 0x08
#define _DC5B0                  0x10
#define _CCP5Y                  0x10
#define _DC5B1                  0x20
#define _CCP5X                  0x20

//==============================================================================

extern __at(0x0F0E) __sfr CCPR5;
extern __at(0x0F0E) __sfr CCPR5L;
extern __at(0x0F0F) __sfr CCPR5H;

//==============================================================================
//        CCP4CON Bits

extern __at(0x0F10) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP4Y              : 1;
    unsigned CCP4X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP4M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC4B               : 2;
    unsigned                    : 2;
    };
  } __CCP4CONbits_t;

extern __at(0x0F10) volatile __CCP4CONbits_t CCP4CONbits;

#define _CCP4M0                 0x01
#define _CCP4M1                 0x02
#define _CCP4M2                 0x04
#define _CCP4M3                 0x08
#define _DC4B0                  0x10
#define _CCP4Y                  0x10
#define _DC4B1                  0x20
#define _CCP4X                  0x20

//==============================================================================

extern __at(0x0F11) __sfr CCPR4;
extern __at(0x0F11) __sfr CCPR4L;
extern __at(0x0F12) __sfr CCPR4H;

//==============================================================================
//        T5GCON Bits

extern __at(0x0F13) __sfr T5GCON;

typedef union
  {
  struct
    {
    unsigned T5GSS0             : 1;
    unsigned T5GSS1             : 1;
    unsigned T5GVAL             : 1;
    unsigned T5GGO_NOT_T5DONE   : 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 NOT_T5DONE         : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned T5GSS              : 2;
    unsigned                    : 6;
    };
  } __T5GCONbits_t;

extern __at(0x0F13) volatile __T5GCONbits_t T5GCONbits;

#define _T5GSS0                 0x01
#define _T5GSS1                 0x02
#define _T5GVAL                 0x04
#define _T5GGO_NOT_T5DONE       0x08
#define _T5GGO                  0x08
#define _NOT_T5DONE             0x08
#define _T5GSPM                 0x10
#define _T5GTM                  0x20
#define _T5GPOL                 0x40
#define _TMR5GE                 0x80

//==============================================================================


//==============================================================================
//        T5CON Bits

extern __at(0x0F14) __sfr T5CON;

typedef union
  {
  struct
    {
    unsigned TMR5ON             : 1;
    unsigned RD16               : 1;
    unsigned NOT_T5SYNC         : 1;
    unsigned SOSCEN             : 1;
    unsigned T5CKPS0            : 1;
    unsigned T5CKPS1            : 1;
    unsigned TMR5CS0            : 1;
    unsigned TMR5CS1            : 1;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T5CKPS             : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned TMR5CS             : 2;
    };
  } __T5CONbits_t;

extern __at(0x0F14) volatile __T5CONbits_t T5CONbits;

#define _T5CON_TMR5ON           0x01
#define _T5CON_RD16             0x02
#define _T5CON_NOT_T5SYNC       0x04
#define _T5CON_SOSCEN           0x08
#define _T5CON_T5CKPS0          0x10
#define _T5CON_T5CKPS1          0x20
#define _T5CON_TMR5CS0          0x40
#define _T5CON_TMR5CS1          0x80

//==============================================================================

extern __at(0x0F15) __sfr TMR5;
extern __at(0x0F15) __sfr TMR5L;
extern __at(0x0F16) __sfr TMR5H;

//==============================================================================
//        SSP2MSK Bits

extern __at(0x0F17) __sfr SSP2MSK;

typedef 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 __at(0x0F17) volatile __SSP2MSKbits_t SSP2MSKbits;

#define _SSP2MSK_MSK0           0x01
#define _SSP2MSK_MSK1           0x02
#define _SSP2MSK_MSK2           0x04
#define _SSP2MSK_MSK3           0x08
#define _SSP2MSK_MSK4           0x10
#define _SSP2MSK_MSK5           0x20
#define _SSP2MSK_MSK6           0x40
#define _SSP2MSK_MSK7           0x80

//==============================================================================


//==============================================================================
//        SSP2CON2 Bits

extern __at(0x0F18) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ADMSK1             : 1;
    unsigned ADMSK2             : 1;
    unsigned ADMSK3             : 1;
    unsigned ADMSK4             : 1;
    unsigned ADMSK5             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __SSP2CON2bits_t;

extern __at(0x0F18) volatile __SSP2CON2bits_t SSP2CON2bits;

#define _SSP2CON2_SEN           0x01
#define _SSP2CON2_RSEN          0x02
#define _SSP2CON2_ADMSK1        0x02
#define _SSP2CON2_PEN           0x04
#define _SSP2CON2_ADMSK2        0x04
#define _SSP2CON2_RCEN          0x08
#define _SSP2CON2_ADMSK3        0x08
#define _SSP2CON2_ACKEN         0x10
#define _SSP2CON2_ADMSK4        0x10
#define _SSP2CON2_ACKDT         0x20
#define _SSP2CON2_ADMSK5        0x20
#define _SSP2CON2_ACKSTAT       0x40
#define _SSP2CON2_GCEN          0x80

//==============================================================================


//==============================================================================
//        SSP2CON1 Bits

extern __at(0x0F19) __sfr 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;
    };

  struct
    {
    unsigned SSPM               : 4;
    unsigned                    : 4;
    };
  } __SSP2CON1bits_t;

extern __at(0x0F19) volatile __SSP2CON1bits_t SSP2CON1bits;

#define _SSP2CON1_SSPM0         0x01
#define _SSP2CON1_SSPM1         0x02
#define _SSP2CON1_SSPM2         0x04
#define _SSP2CON1_SSPM3         0x08
#define _SSP2CON1_CKP           0x10
#define _SSP2CON1_SSPEN         0x20
#define _SSP2CON1_SSPOV         0x40
#define _SSP2CON1_WCOL          0x80

//==============================================================================


//==============================================================================
//        SSP2STAT Bits

extern __at(0x0F1A) __sfr 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_W                : 1;
    unsigned I2C_START          : 1;
    unsigned I2C_STOP           : 1;
    unsigned D_A                : 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 NOT_WRITE          : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_ADDRESS        : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned READ_WRITE         : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned DATA_ADDRESS       : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned I2C_READ           : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned I2C_DAT            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __SSP2STATbits_t;

extern __at(0x0F1A) volatile __SSP2STATbits_t SSP2STATbits;

#define _SSP2STAT_BF            0x01
#define _SSP2STAT_UA            0x02
#define _SSP2STAT_R_NOT_W       0x04
#define _SSP2STAT_R_W           0x04
#define _SSP2STAT_NOT_W         0x04
#define _SSP2STAT_NOT_WRITE     0x04
#define _SSP2STAT_READ_WRITE    0x04
#define _SSP2STAT_I2C_READ      0x04
#define _SSP2STAT_S             0x08
#define _SSP2STAT_I2C_START     0x08
#define _SSP2STAT_P             0x10
#define _SSP2STAT_I2C_STOP      0x10
#define _SSP2STAT_D_NOT_A       0x20
#define _SSP2STAT_D_A           0x20
#define _SSP2STAT_NOT_A         0x20
#define _SSP2STAT_NOT_ADDRESS   0x20
#define _SSP2STAT_DATA_ADDRESS  0x20
#define _SSP2STAT_I2C_DAT       0x20
#define _SSP2STAT_CKE           0x40
#define _SSP2STAT_SMP           0x80

//==============================================================================


//==============================================================================
//        PSTR3CON Bits

extern __at(0x0F1B) __sfr PSTR3CON;

typedef union
  {
  struct
    {
    unsigned STRA               : 1;
    unsigned STRB               : 1;
    unsigned STRC               : 1;
    unsigned STRD               : 1;
    unsigned STRSYNC            : 1;
    unsigned                    : 1;
    unsigned CMPL0              : 1;
    unsigned CMPL1              : 1;
    };

  struct
    {
    unsigned                    : 6;
    unsigned CMPL               : 2;
    };
  } __PSTR3CONbits_t;

extern __at(0x0F1B) volatile __PSTR3CONbits_t PSTR3CONbits;

#define _PSTR3CON_STRA          0x01
#define _PSTR3CON_STRB          0x02
#define _PSTR3CON_STRC          0x04
#define _PSTR3CON_STRD          0x08
#define _PSTR3CON_STRSYNC       0x10
#define _PSTR3CON_CMPL0         0x40
#define _PSTR3CON_CMPL1         0x80

//==============================================================================


//==============================================================================
//        PSTR2CON Bits

extern __at(0x0F1C) __sfr PSTR2CON;

typedef union
  {
  struct
    {
    unsigned STRA               : 1;
    unsigned STRB               : 1;
    unsigned STRC               : 1;
    unsigned STRD               : 1;
    unsigned STRSYNC            : 1;
    unsigned                    : 1;
    unsigned CMPL0              : 1;
    unsigned CMPL1              : 1;
    };

  struct
    {
    unsigned                    : 6;
    unsigned CMPL               : 2;
    };
  } __PSTR2CONbits_t;

extern __at(0x0F1C) volatile __PSTR2CONbits_t PSTR2CONbits;

#define _PSTR2CON_STRA          0x01
#define _PSTR2CON_STRB          0x02
#define _PSTR2CON_STRC          0x04
#define _PSTR2CON_STRD          0x08
#define _PSTR2CON_STRSYNC       0x10
#define _PSTR2CON_CMPL0         0x40
#define _PSTR2CON_CMPL1         0x80

//==============================================================================

extern __at(0x0F1D) __sfr TXREG2;
extern __at(0x0F1E) __sfr RCREG2;

//==============================================================================
//        SPBRG2 Bits

extern __at(0x0F1F) __sfr SPBRG2;

typedef struct
  {
  unsigned BRG0                 : 1;
  unsigned BRG1                 : 1;
  unsigned BRG2                 : 1;
  unsigned BRG3                 : 1;
  unsigned BRG4                 : 1;
  unsigned BRG5                 : 1;
  unsigned BRG6                 : 1;
  unsigned BRG7                 : 1;
  } __SPBRG2bits_t;

extern __at(0x0F1F) volatile __SPBRG2bits_t SPBRG2bits;

#define _SPBRG2_BRG0            0x01
#define _SPBRG2_BRG1            0x02
#define _SPBRG2_BRG2            0x04
#define _SPBRG2_BRG3            0x08
#define _SPBRG2_BRG4            0x10
#define _SPBRG2_BRG5            0x20
#define _SPBRG2_BRG6            0x40
#define _SPBRG2_BRG7            0x80

//==============================================================================


//==============================================================================
//        SPBRGH2 Bits

extern __at(0x0F20) __sfr SPBRGH2;

typedef struct
  {
  unsigned BRG8                 : 1;
  unsigned BRG9                 : 1;
  unsigned BRG10                : 1;
  unsigned BRG11                : 1;
  unsigned BRG12                : 1;
  unsigned BRG13                : 1;
  unsigned BRG14                : 1;
  unsigned BRG15                : 1;
  } __SPBRGH2bits_t;

extern __at(0x0F20) volatile __SPBRGH2bits_t SPBRGH2bits;

#define _SPBRGH2_BRG8           0x01
#define _SPBRGH2_BRG9           0x02
#define _SPBRGH2_BRG10          0x04
#define _SPBRGH2_BRG11          0x08
#define _SPBRGH2_BRG12          0x10
#define _SPBRGH2_BRG13          0x20
#define _SPBRGH2_BRG14          0x40
#define _SPBRGH2_BRG15          0x80

//==============================================================================

extern __at(0x0F21) __sfr DSGPR3;
extern __at(0x0F22) __sfr DSGPR2;
extern __at(0x0F23) __sfr DSGPR1;
extern __at(0x0F24) __sfr DSGPR0;

//==============================================================================
//        DSWAKEH Bits

extern __at(0x0F25) __sfr DSWAKEH;

typedef struct
  {
  unsigned DSINT0               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __DSWAKEHbits_t;

extern __at(0x0F25) volatile __DSWAKEHbits_t DSWAKEHbits;

#define _DSINT0                 0x01

//==============================================================================


//==============================================================================
//        DSWAKEL Bits

extern __at(0x0F26) __sfr DSWAKEL;

typedef struct
  {
  unsigned DSPOR                : 1;
  unsigned DSICD                : 1;
  unsigned DSMCLR               : 1;
  unsigned DSRTC                : 1;
  unsigned DSWDT                : 1;
  unsigned DSULP                : 1;
  unsigned BOR                  : 1;
  unsigned DSFLT                : 1;
  } __DSWAKELbits_t;

extern __at(0x0F26) volatile __DSWAKELbits_t DSWAKELbits;

#define _DSPOR                  0x01
#define _DSICD                  0x02
#define _DSMCLR                 0x04
#define _DSRTC                  0x08
#define _DSWDT                  0x10
#define _DSULP                  0x20
#define _BOR                    0x40
#define _DSFLT                  0x80

//==============================================================================


//==============================================================================
//        DSCONH Bits

extern __at(0x0F27) __sfr DSCONH;

typedef struct
  {
  unsigned RTCWDIS              : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned DSEN                 : 1;
  } __DSCONHbits_t;

extern __at(0x0F27) volatile __DSCONHbits_t DSCONHbits;

#define _RTCWDIS                0x01
#define _DSEN                   0x80

//==============================================================================


//==============================================================================
//        DSCONL Bits

extern __at(0x0F28) __sfr DSCONL;

typedef struct
  {
  unsigned RELEASE              : 1;
  unsigned DSBOR                : 1;
  unsigned ULPWDIS              : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __DSCONLbits_t;

extern __at(0x0F28) volatile __DSCONLbits_t DSCONLbits;

#define _RELEASE                0x01
#define _DSBOR                  0x02
#define _ULPWDIS                0x04

//==============================================================================

extern __at(0x0F29) __sfr TXREG3;
extern __at(0x0F2A) __sfr RCREG3;

//==============================================================================
//        SPBRG3 Bits

extern __at(0x0F2B) __sfr SPBRG3;

typedef struct
  {
  unsigned BRG0                 : 1;
  unsigned BRG1                 : 1;
  unsigned BRG2                 : 1;
  unsigned BRG3                 : 1;
  unsigned BRG4                 : 1;
  unsigned BRG5                 : 1;
  unsigned BRG6                 : 1;
  unsigned BRG7                 : 1;
  } __SPBRG3bits_t;

extern __at(0x0F2B) volatile __SPBRG3bits_t SPBRG3bits;

#define _SPBRG3_BRG0            0x01
#define _SPBRG3_BRG1            0x02
#define _SPBRG3_BRG2            0x04
#define _SPBRG3_BRG3            0x08
#define _SPBRG3_BRG4            0x10
#define _SPBRG3_BRG5            0x20
#define _SPBRG3_BRG6            0x40
#define _SPBRG3_BRG7            0x80

//==============================================================================


//==============================================================================
//        SPBRGH3 Bits

extern __at(0x0F2C) __sfr SPBRGH3;

typedef struct
  {
  unsigned BRG8                 : 1;
  unsigned BRG9                 : 1;
  unsigned BRG10                : 1;
  unsigned BRG11                : 1;
  unsigned BRG12                : 1;
  unsigned BRG13                : 1;
  unsigned BRG14                : 1;
  unsigned BRG15                : 1;
  } __SPBRGH3bits_t;

extern __at(0x0F2C) volatile __SPBRGH3bits_t SPBRGH3bits;

#define _SPBRGH3_BRG8           0x01
#define _SPBRGH3_BRG9           0x02
#define _SPBRGH3_BRG10          0x04
#define _SPBRGH3_BRG11          0x08
#define _SPBRGH3_BRG12          0x10
#define _SPBRGH3_BRG13          0x20
#define _SPBRGH3_BRG14          0x40
#define _SPBRGH3_BRG15          0x80

//==============================================================================


//==============================================================================
//        BAUDCON3 Bits

extern __at(0x0F2D) __sfr BAUDCON3;

typedef struct
  {
  unsigned ABDEN                : 1;
  unsigned WUE                  : 1;
  unsigned IREN                 : 1;
  unsigned BRG16                : 1;
  unsigned TXCKP                : 1;
  unsigned RXDTP                : 1;
  unsigned RCIDL                : 1;
  unsigned ABDOVF               : 1;
  } __BAUDCON3bits_t;

extern __at(0x0F2D) volatile __BAUDCON3bits_t BAUDCON3bits;

#define _BAUDCON3_ABDEN         0x01
#define _BAUDCON3_WUE           0x02
#define _BAUDCON3_IREN          0x04
#define _BAUDCON3_BRG16         0x08
#define _BAUDCON3_TXCKP         0x10
#define _BAUDCON3_RXDTP         0x20
#define _BAUDCON3_RCIDL         0x40
#define _BAUDCON3_ABDOVF        0x80

//==============================================================================


//==============================================================================
//        TXSTA3 Bits

extern __at(0x0F2E) __sfr TXSTA3;

typedef 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;
  } __TXSTA3bits_t;

extern __at(0x0F2E) volatile __TXSTA3bits_t TXSTA3bits;

#define _TXSTA3_TX9D            0x01
#define _TXSTA3_TRMT            0x02
#define _TXSTA3_BRGH            0x04
#define _TXSTA3_SENDB           0x08
#define _TXSTA3_SYNC            0x10
#define _TXSTA3_TXEN            0x20
#define _TXSTA3_TX9             0x40
#define _TXSTA3_CSRC            0x80

//==============================================================================


//==============================================================================
//        RCSTA3 Bits

extern __at(0x0F2F) __sfr RCSTA3;

typedef 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;
  } __RCSTA3bits_t;

extern __at(0x0F2F) volatile __RCSTA3bits_t RCSTA3bits;

#define _RCSTA3_RX9D            0x01
#define _RCSTA3_OERR            0x02
#define _RCSTA3_FERR            0x04
#define _RCSTA3_ADDEN           0x08
#define _RCSTA3_CREN            0x10
#define _RCSTA3_SREN            0x20
#define _RCSTA3_RX9             0x40
#define _RCSTA3_SPEN            0x80

//==============================================================================


//==============================================================================
//        SPBRGH Bits

extern __at(0x0F30) __sfr SPBRGH;

typedef struct
  {
  unsigned BRG8                 : 1;
  unsigned BRG9                 : 1;
  unsigned BRG10                : 1;
  unsigned BRG11                : 1;
  unsigned BRG12                : 1;
  unsigned BRG13                : 1;
  unsigned BRG14                : 1;
  unsigned BRG15                : 1;
  } __SPBRGHbits_t;

extern __at(0x0F30) volatile __SPBRGHbits_t SPBRGHbits;

#define _BRG8                   0x01
#define _BRG9                   0x02
#define _BRG10                  0x04
#define _BRG11                  0x08
#define _BRG12                  0x10
#define _BRG13                  0x20
#define _BRG14                  0x40
#define _BRG15                  0x80

//==============================================================================


//==============================================================================
//        SPBRGH1 Bits

extern __at(0x0F30) __sfr SPBRGH1;

typedef struct
  {
  unsigned BRG8                 : 1;
  unsigned BRG9                 : 1;
  unsigned BRG10                : 1;
  unsigned BRG11                : 1;
  unsigned BRG12                : 1;
  unsigned BRG13                : 1;
  unsigned BRG14                : 1;
  unsigned BRG15                : 1;
  } __SPBRGH1bits_t;

extern __at(0x0F30) volatile __SPBRGH1bits_t SPBRGH1bits;

#define _SPBRGH1_BRG8           0x01
#define _SPBRGH1_BRG9           0x02
#define _SPBRGH1_BRG10          0x04
#define _SPBRGH1_BRG11          0x08
#define _SPBRGH1_BRG12          0x10
#define _SPBRGH1_BRG13          0x20
#define _SPBRGH1_BRG14          0x40
#define _SPBRGH1_BRG15          0x80

//==============================================================================


//==============================================================================
//        BAUDCON2 Bits

extern __at(0x0F31) __sfr BAUDCON2;

typedef struct
  {
  unsigned ABDEN                : 1;
  unsigned WUE                  : 1;
  unsigned IREN                 : 1;
  unsigned BRG16                : 1;
  unsigned TXCKP                : 1;
  unsigned RXDTP                : 1;
  unsigned RCIDL                : 1;
  unsigned ABDOVF               : 1;
  } __BAUDCON2bits_t;

extern __at(0x0F31) volatile __BAUDCON2bits_t BAUDCON2bits;

#define _BAUDCON2_ABDEN         0x01
#define _BAUDCON2_WUE           0x02
#define _BAUDCON2_IREN          0x04
#define _BAUDCON2_BRG16         0x08
#define _BAUDCON2_TXCKP         0x10
#define _BAUDCON2_RXDTP         0x20
#define _BAUDCON2_RCIDL         0x40
#define _BAUDCON2_ABDOVF        0x80

//==============================================================================


//==============================================================================
//        TXSTA2 Bits

extern __at(0x0F32) __sfr TXSTA2;

typedef 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;
  } __TXSTA2bits_t;

extern __at(0x0F32) volatile __TXSTA2bits_t TXSTA2bits;

#define _TXSTA2_TX9D            0x01
#define _TXSTA2_TRMT            0x02
#define _TXSTA2_BRGH            0x04
#define _TXSTA2_SENDB           0x08
#define _TXSTA2_SYNC            0x10
#define _TXSTA2_TXEN            0x20
#define _TXSTA2_TX9             0x40
#define _TXSTA2_CSRC            0x80

//==============================================================================


//==============================================================================
//        RCSTA2 Bits

extern __at(0x0F33) __sfr RCSTA2;

typedef 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;
  } __RCSTA2bits_t;

extern __at(0x0F33) volatile __RCSTA2bits_t RCSTA2bits;

#define _RCSTA2_RX9D            0x01
#define _RCSTA2_OERR            0x02
#define _RCSTA2_FERR            0x04
#define _RCSTA2_ADDEN           0x08
#define _RCSTA2_CREN            0x10
#define _RCSTA2_SREN            0x20
#define _RCSTA2_RX9             0x40
#define _RCSTA2_SPEN            0x80

//==============================================================================


//==============================================================================
//        CCPTMRS2 Bits

extern __at(0x0F34) __sfr CCPTMRS2;

typedef union
  {
  struct
    {
    unsigned C8TSEL0            : 1;
    unsigned C8TSEL1            : 1;
    unsigned C9TSEL             : 1;
    unsigned                    : 1;
    unsigned C10TSEL            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned C9TSEL0            : 1;
    unsigned                    : 1;
    unsigned C10TSEL0           : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned C8TSEL             : 2;
    unsigned                    : 6;
    };
  } __CCPTMRS2bits_t;

extern __at(0x0F34) volatile __CCPTMRS2bits_t CCPTMRS2bits;

#define _C8TSEL0                0x01
#define _C8TSEL1                0x02
#define _C9TSEL                 0x04
#define _C9TSEL0                0x04
#define _C10TSEL                0x10
#define _C10TSEL0               0x10

//==============================================================================


//==============================================================================
//        CCPTMRS1 Bits

extern __at(0x0F35) __sfr CCPTMRS1;

typedef union
  {
  struct
    {
    unsigned C4TSEL0            : 1;
    unsigned C4TSEL1            : 1;
    unsigned C5TSEL             : 1;
    unsigned                    : 1;
    unsigned C6TSEL             : 1;
    unsigned                    : 1;
    unsigned C7TSEL0            : 1;
    unsigned C7TSEL1            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned C5TSEL0            : 1;
    unsigned                    : 1;
    unsigned C6TSEL0            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned C4TSEL             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 6;
    unsigned C7TSEL             : 2;
    };
  } __CCPTMRS1bits_t;

extern __at(0x0F35) volatile __CCPTMRS1bits_t CCPTMRS1bits;

#define _C4TSEL0                0x01
#define _C4TSEL1                0x02
#define _C5TSEL                 0x04
#define _C5TSEL0                0x04
#define _C6TSEL                 0x10
#define _C6TSEL0                0x10
#define _C7TSEL0                0x40
#define _C7TSEL1                0x80

//==============================================================================


//==============================================================================
//        CCPTMRS0 Bits

extern __at(0x0F36) __sfr CCPTMRS0;

typedef union
  {
  struct
    {
    unsigned C1TSEL0            : 1;
    unsigned C1TSEL1            : 1;
    unsigned C1TSEL2            : 1;
    unsigned C2TSEL0            : 1;
    unsigned C2TSEL1            : 1;
    unsigned C2TSEL2            : 1;
    unsigned C3TSEL0            : 1;
    unsigned C3TSEL1            : 1;
    };

  struct
    {
    unsigned C1TSEL             : 3;
    unsigned                    : 5;
    };

  struct
    {
    unsigned                    : 3;
    unsigned C2TSEL             : 3;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned C3TSEL             : 2;
    };
  } __CCPTMRS0bits_t;

extern __at(0x0F36) volatile __CCPTMRS0bits_t CCPTMRS0bits;

#define _C1TSEL0                0x01
#define _C1TSEL1                0x02
#define _C1TSEL2                0x04
#define _C2TSEL0                0x08
#define _C2TSEL1                0x10
#define _C2TSEL2                0x20
#define _C3TSEL0                0x40
#define _C3TSEL1                0x80

//==============================================================================


//==============================================================================
//        CM3CON Bits

extern __at(0x0F37) __sfr CM3CON;

typedef union
  {
  struct
    {
    unsigned CCH0               : 1;
    unsigned CCH1               : 1;
    unsigned CREF               : 1;
    unsigned EVPOL0             : 1;
    unsigned EVPOL1             : 1;
    unsigned CPOL               : 1;
    unsigned COE                : 1;
    unsigned CON                : 1;
    };

  struct
    {
    unsigned CCH                : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned EVPOL              : 2;
    unsigned                    : 3;
    };
  } __CM3CONbits_t;

extern __at(0x0F37) volatile __CM3CONbits_t CM3CONbits;

#define _CM3CON_CCH0            0x01
#define _CM3CON_CCH1            0x02
#define _CM3CON_CREF            0x04
#define _CM3CON_EVPOL0          0x08
#define _CM3CON_EVPOL1          0x10
#define _CM3CON_CPOL            0x20
#define _CM3CON_COE             0x40
#define _CM3CON_CON             0x80

//==============================================================================


//==============================================================================
//        CM2CON Bits

extern __at(0x0F38) __sfr CM2CON;

typedef union
  {
  struct
    {
    unsigned CCH0               : 1;
    unsigned CCH1               : 1;
    unsigned CREF               : 1;
    unsigned EVPOL0             : 1;
    unsigned EVPOL1             : 1;
    unsigned CPOL               : 1;
    unsigned COE                : 1;
    unsigned CON                : 1;
    };

  struct
    {
    unsigned CCH                : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned EVPOL              : 2;
    unsigned                    : 3;
    };
  } __CM2CONbits_t;

extern __at(0x0F38) volatile __CM2CONbits_t CM2CONbits;

#define _CM2CON_CCH0            0x01
#define _CM2CON_CCH1            0x02
#define _CM2CON_CREF            0x04
#define _CM2CON_EVPOL0          0x08
#define _CM2CON_EVPOL1          0x10
#define _CM2CON_CPOL            0x20
#define _CM2CON_COE             0x40
#define _CM2CON_CON             0x80

//==============================================================================


//==============================================================================
//        SSP2CON3 Bits

extern __at(0x0F39) __sfr SSP2CON3;

typedef 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 __at(0x0F39) volatile __SSP2CON3bits_t SSP2CON3bits;

#define _SSP2CON3_DHEN          0x01
#define _SSP2CON3_AHEN          0x02
#define _SSP2CON3_SBCDE         0x04
#define _SSP2CON3_SDAHT         0x08
#define _SSP2CON3_BOEN          0x10
#define _SSP2CON3_SCIE          0x20
#define _SSP2CON3_PCIE          0x40
#define _SSP2CON3_ACKTIM        0x80

//==============================================================================


//==============================================================================
//        T8CON Bits

extern __at(0x0F3A) __sfr T8CON;

typedef union
  {
  struct
    {
    unsigned T8CKPS0            : 1;
    unsigned T8CKPS1            : 1;
    unsigned TMR8ON             : 1;
    unsigned T8OUTPS0           : 1;
    unsigned T8OUTPS1           : 1;
    unsigned T8OUTPS2           : 1;
    unsigned T8OUTPS3           : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned T8CKPS             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned T8OUTPS            : 4;
    unsigned                    : 1;
    };
  } __T8CONbits_t;

extern __at(0x0F3A) volatile __T8CONbits_t T8CONbits;

#define _T8CKPS0                0x01
#define _T8CKPS1                0x02
#define _TMR8ON                 0x04
#define _T8OUTPS0               0x08
#define _T8OUTPS1               0x10
#define _T8OUTPS2               0x20
#define _T8OUTPS3               0x40

//==============================================================================

extern __at(0x0F3B) __sfr PR8;
extern __at(0x0F3C) __sfr TMR8;

//==============================================================================
//        T6CON Bits

extern __at(0x0F3D) __sfr 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;
    };

  struct
    {
    unsigned T6CKPS             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned T6OUTPS            : 4;
    unsigned                    : 1;
    };
  } __T6CONbits_t;

extern __at(0x0F3D) volatile __T6CONbits_t T6CONbits;

#define _T6CKPS0                0x01
#define _T6CKPS1                0x02
#define _TMR6ON                 0x04
#define _T6OUTPS0               0x08
#define _T6OUTPS1               0x10
#define _T6OUTPS2               0x20
#define _T6OUTPS3               0x40

//==============================================================================

extern __at(0x0F3E) __sfr PR6;
extern __at(0x0F3F) __sfr TMR6;

//==============================================================================
//        CCP10CON Bits

extern __at(0x0F40) __sfr CCP10CON;

typedef union
  {
  struct
    {
    unsigned CCP10M0            : 1;
    unsigned CCP10M1            : 1;
    unsigned CCP10M2            : 1;
    unsigned CCP10M3            : 1;
    unsigned DC10B0             : 1;
    unsigned DC10B1             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP10Y             : 1;
    unsigned CCP10X             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP10M             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC10B              : 2;
    unsigned                    : 2;
    };
  } __CCP10CONbits_t;

extern __at(0x0F40) volatile __CCP10CONbits_t CCP10CONbits;

#define _CCP10M0                0x01
#define _CCP10M1                0x02
#define _CCP10M2                0x04
#define _CCP10M3                0x08
#define _DC10B0                 0x10
#define _CCP10Y                 0x10
#define _DC10B1                 0x20
#define _CCP10X                 0x20

//==============================================================================

extern __at(0x0F41) __sfr CCPR10;
extern __at(0x0F41) __sfr CCPR10L;
extern __at(0x0F42) __sfr CCPR10H;

//==============================================================================
//        CCP9CON Bits

extern __at(0x0F43) __sfr CCP9CON;

typedef union
  {
  struct
    {
    unsigned CCP9M0             : 1;
    unsigned CCP9M1             : 1;
    unsigned CCP9M2             : 1;
    unsigned CCP9M3             : 1;
    unsigned DC9B0              : 1;
    unsigned DC9B1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP9Y              : 1;
    unsigned CCP9X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP9M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC9B               : 2;
    unsigned                    : 2;
    };
  } __CCP9CONbits_t;

extern __at(0x0F43) volatile __CCP9CONbits_t CCP9CONbits;

#define _CCP9M0                 0x01
#define _CCP9M1                 0x02
#define _CCP9M2                 0x04
#define _CCP9M3                 0x08
#define _DC9B0                  0x10
#define _CCP9Y                  0x10
#define _DC9B1                  0x20
#define _CCP9X                  0x20

//==============================================================================

extern __at(0x0F44) __sfr CCPR9;
extern __at(0x0F44) __sfr CCPR9L;
extern __at(0x0F45) __sfr CCPR9H;

//==============================================================================
//        CCP8CON Bits

extern __at(0x0F46) __sfr CCP8CON;

typedef union
  {
  struct
    {
    unsigned CCP8M0             : 1;
    unsigned CCP8M1             : 1;
    unsigned CCP8M2             : 1;
    unsigned CCP8M3             : 1;
    unsigned DC8B0              : 1;
    unsigned DC8B1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP8Y              : 1;
    unsigned CCP8X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP8M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC8B               : 2;
    unsigned                    : 2;
    };
  } __CCP8CONbits_t;

extern __at(0x0F46) volatile __CCP8CONbits_t CCP8CONbits;

#define _CCP8M0                 0x01
#define _CCP8M1                 0x02
#define _CCP8M2                 0x04
#define _CCP8M3                 0x08
#define _DC8B0                  0x10
#define _CCP8Y                  0x10
#define _DC8B1                  0x20
#define _CCP8X                  0x20

//==============================================================================

extern __at(0x0F47) __sfr CCPR8;
extern __at(0x0F47) __sfr CCPR8L;
extern __at(0x0F48) __sfr CCPR8H;

//==============================================================================
//        CCP3CON Bits

extern __at(0x0F49) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP3Y              : 1;
    unsigned CCP3X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP3M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC3B               : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned P3M                : 2;
    };
  } __CCP3CONbits_t;

extern __at(0x0F49) volatile __CCP3CONbits_t CCP3CONbits;

#define _CCP3M0                 0x01
#define _CCP3M1                 0x02
#define _CCP3M2                 0x04
#define _CCP3M3                 0x08
#define _DC3B0                  0x10
#define _CCP3Y                  0x10
#define _DC3B1                  0x20
#define _CCP3X                  0x20
#define _P3M0                   0x40
#define _P3M1                   0x80

//==============================================================================

extern __at(0x0F4A) __sfr CCPR3;
extern __at(0x0F4A) __sfr CCPR3L;
extern __at(0x0F4B) __sfr CCPR3H;

//==============================================================================
//        ECCP3DEL Bits

extern __at(0x0F4C) __sfr ECCP3DEL;

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;
    };

  struct
    {
    unsigned P3DC               : 7;
    unsigned                    : 1;
    };
  } __ECCP3DELbits_t;

extern __at(0x0F4C) volatile __ECCP3DELbits_t ECCP3DELbits;

#define _P3DC0                  0x01
#define _P3DC1                  0x02
#define _P3DC2                  0x04
#define _P3DC3                  0x08
#define _P3DC4                  0x10
#define _P3DC5                  0x20
#define _P3DC6                  0x40
#define _P3RSEN                 0x80

//==============================================================================


//==============================================================================
//        ECCP3AS Bits

extern __at(0x0F4D) __sfr ECCP3AS;

typedef union
  {
  struct
    {
    unsigned PSS3BD0            : 1;
    unsigned PSS3BD1            : 1;
    unsigned PSS3AC0            : 1;
    unsigned PSS3AC1            : 1;
    unsigned ECCP3AS0           : 1;
    unsigned ECCP3AS1           : 1;
    unsigned ECCP3AS2           : 1;
    unsigned ECCP3ASE           : 1;
    };

  struct
    {
    unsigned PSS3BD             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned PSS3AC             : 2;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned ECCP3AS            : 3;
    unsigned                    : 1;
    };
  } __ECCP3ASbits_t;

extern __at(0x0F4D) volatile __ECCP3ASbits_t ECCP3ASbits;

#define _PSS3BD0                0x01
#define _PSS3BD1                0x02
#define _PSS3AC0                0x04
#define _PSS3AC1                0x08
#define _ECCP3AS0               0x10
#define _ECCP3AS1               0x20
#define _ECCP3AS2               0x40
#define _ECCP3ASE               0x80

//==============================================================================


//==============================================================================
//        CCP2CON Bits

extern __at(0x0F4E) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP2Y              : 1;
    unsigned CCP2X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP2M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC2B               : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned P2M                : 2;
    };
  } __CCP2CONbits_t;

extern __at(0x0F4E) volatile __CCP2CONbits_t CCP2CONbits;

#define _CCP2M0                 0x01
#define _CCP2M1                 0x02
#define _CCP2M2                 0x04
#define _CCP2M3                 0x08
#define _DC2B0                  0x10
#define _CCP2Y                  0x10
#define _DC2B1                  0x20
#define _CCP2X                  0x20
#define _P2M0                   0x40
#define _P2M1                   0x80

//==============================================================================

extern __at(0x0F4F) __sfr CCPR2;
extern __at(0x0F4F) __sfr CCPR2L;
extern __at(0x0F50) __sfr CCPR2H;

//==============================================================================
//        ECCP2DEL Bits

extern __at(0x0F51) __sfr ECCP2DEL;

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;
    };

  struct
    {
    unsigned P2DC               : 7;
    unsigned                    : 1;
    };
  } __ECCP2DELbits_t;

extern __at(0x0F51) volatile __ECCP2DELbits_t ECCP2DELbits;

#define _P2DC0                  0x01
#define _P2DC1                  0x02
#define _P2DC2                  0x04
#define _P2DC3                  0x08
#define _P2DC4                  0x10
#define _P2DC5                  0x20
#define _P2DC6                  0x40
#define _P2RSEN                 0x80

//==============================================================================


//==============================================================================
//        ECCP2AS Bits

extern __at(0x0F52) __sfr ECCP2AS;

typedef union
  {
  struct
    {
    unsigned PSS2BD0            : 1;
    unsigned PSS2BD1            : 1;
    unsigned PSS2AC0            : 1;
    unsigned PSS2AC1            : 1;
    unsigned ECCP2AS0           : 1;
    unsigned ECCP2AS1           : 1;
    unsigned ECCP2AS2           : 1;
    unsigned ECCP2ASE           : 1;
    };

  struct
    {
    unsigned PSS2BD             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned PSS2AC             : 2;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned ECCP2AS            : 3;
    unsigned                    : 1;
    };
  } __ECCP2ASbits_t;

extern __at(0x0F52) volatile __ECCP2ASbits_t ECCP2ASbits;

#define _PSS2BD0                0x01
#define _PSS2BD1                0x02
#define _PSS2AC0                0x04
#define _PSS2AC1                0x08
#define _ECCP2AS0               0x10
#define _ECCP2AS1               0x20
#define _ECCP2AS2               0x40
#define _ECCP2ASE               0x80

//==============================================================================


//==============================================================================
//        CM1CON Bits

extern __at(0x0F53) __sfr CM1CON;

typedef union
  {
  struct
    {
    unsigned CCH0               : 1;
    unsigned CCH1               : 1;
    unsigned CREF               : 1;
    unsigned EVPOL0             : 1;
    unsigned EVPOL1             : 1;
    unsigned CPOL               : 1;
    unsigned COE                : 1;
    unsigned CON                : 1;
    };

  struct
    {
    unsigned CCH                : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned EVPOL              : 2;
    unsigned                    : 3;
    };
  } __CM1CONbits_t;

extern __at(0x0F53) volatile __CM1CONbits_t CM1CONbits;

#define _CCH0                   0x01
#define _CCH1                   0x02
#define _CREF                   0x04
#define _EVPOL0                 0x08
#define _EVPOL1                 0x10
#define _CPOL                   0x20
#define _COE                    0x40
#define _CON                    0x80

//==============================================================================


//==============================================================================
//        PADCFG1 Bits

extern __at(0x0F54) __sfr PADCFG1;

typedef struct
  {
  unsigned RLPU                 : 1;
  unsigned RKPU                 : 1;
  unsigned RJPU                 : 1;
  unsigned RHPU                 : 1;
  unsigned RGPU                 : 1;
  unsigned RFPU                 : 1;
  unsigned REPU                 : 1;
  unsigned RDPU                 : 1;
  } __PADCFG1bits_t;

extern __at(0x0F54) volatile __PADCFG1bits_t PADCFG1bits;

#define _RLPU                   0x01
#define _RKPU                   0x02
#define _RJPU                   0x04
#define _RHPU                   0x08
#define _RGPU                   0x10
#define _RFPU                   0x20
#define _REPU                   0x40
#define _RDPU                   0x80

//==============================================================================


//==============================================================================
//        IOCN Bits

extern __at(0x0F55) __sfr IOCN;

typedef struct
  {
  unsigned IOCN0                : 1;
  unsigned IOCN1                : 1;
  unsigned IOCN2                : 1;
  unsigned IOCN3                : 1;
  unsigned IOCN4                : 1;
  unsigned IOCN5                : 1;
  unsigned IOCN6                : 1;
  unsigned IOCN7                : 1;
  } __IOCNbits_t;

extern __at(0x0F55) volatile __IOCNbits_t IOCNbits;

#define _IOCN0                  0x01
#define _IOCN1                  0x02
#define _IOCN2                  0x04
#define _IOCN3                  0x08
#define _IOCN4                  0x10
#define _IOCN5                  0x20
#define _IOCN6                  0x40
#define _IOCN7                  0x80

//==============================================================================


//==============================================================================
//        IOCP Bits

extern __at(0x0F56) __sfr IOCP;

typedef struct
  {
  unsigned IOCP0                : 1;
  unsigned IOCP1                : 1;
  unsigned IOCP2                : 1;
  unsigned IOCP3                : 1;
  unsigned IOCP4                : 1;
  unsigned IOCP5                : 1;
  unsigned IOCP6                : 1;
  unsigned IOCP7                : 1;
  } __IOCPbits_t;

extern __at(0x0F56) volatile __IOCPbits_t IOCPbits;

#define _IOCP0                  0x01
#define _IOCP1                  0x02
#define _IOCP2                  0x04
#define _IOCP3                  0x08
#define _IOCP4                  0x10
#define _IOCP5                  0x20
#define _IOCP6                  0x40
#define _IOCP7                  0x80

//==============================================================================


//==============================================================================
//        RTCCON2 Bits

extern __at(0x0F57) __sfr RTCCON2;

typedef union
  {
  struct
    {
    unsigned RTCSECSEL0         : 1;
    unsigned RTCSECSEL1         : 1;
    unsigned RTCCLKSEL0         : 1;
    unsigned RTCCLKSEL1         : 1;
    unsigned PWCSPRE            : 1;
    unsigned PWCCPRE            : 1;
    unsigned PWCPOL             : 1;
    unsigned PWCEN              : 1;
    };

  struct
    {
    unsigned RTCSECSEL          : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned RTCCLKSEL          : 2;
    unsigned                    : 4;
    };
  } __RTCCON2bits_t;

extern __at(0x0F57) volatile __RTCCON2bits_t RTCCON2bits;

#define _RTCSECSEL0             0x01
#define _RTCSECSEL1             0x02
#define _RTCCLKSEL0             0x04
#define _RTCCLKSEL1             0x08
#define _PWCSPRE                0x10
#define _PWCCPRE                0x20
#define _PWCPOL                 0x40
#define _PWCEN                  0x80

//==============================================================================

extern __at(0x0F58) __sfr ALRMVALL;
extern __at(0x0F59) __sfr ALRMVALH;

//==============================================================================
//        ALRMRPT Bits

extern __at(0x0F5A) __sfr ALRMRPT;

typedef struct
  {
  unsigned ARPT0                : 1;
  unsigned ARPT1                : 1;
  unsigned ARPT2                : 1;
  unsigned ARPT3                : 1;
  unsigned ARPT4                : 1;
  unsigned ARPT5                : 1;
  unsigned ARPT6                : 1;
  unsigned ARPT7                : 1;
  } __ALRMRPTbits_t;

extern __at(0x0F5A) volatile __ALRMRPTbits_t ALRMRPTbits;

#define _ARPT0                  0x01
#define _ARPT1                  0x02
#define _ARPT2                  0x04
#define _ARPT3                  0x08
#define _ARPT4                  0x10
#define _ARPT5                  0x20
#define _ARPT6                  0x40
#define _ARPT7                  0x80

//==============================================================================


//==============================================================================
//        ALRMCFG Bits

extern __at(0x0F5B) __sfr ALRMCFG;

typedef union
  {
  struct
    {
    unsigned ALRMPTR0           : 1;
    unsigned ALRMPTR1           : 1;
    unsigned AMASK0             : 1;
    unsigned AMASK1             : 1;
    unsigned AMASK2             : 1;
    unsigned AMASK3             : 1;
    unsigned CHIME              : 1;
    unsigned ALRMEN             : 1;
    };

  struct
    {
    unsigned ALRMPTR            : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned AMASK              : 4;
    unsigned                    : 2;
    };
  } __ALRMCFGbits_t;

extern __at(0x0F5B) volatile __ALRMCFGbits_t ALRMCFGbits;

#define _ALRMPTR0               0x01
#define _ALRMPTR1               0x02
#define _AMASK0                 0x04
#define _AMASK1                 0x08
#define _AMASK2                 0x10
#define _AMASK3                 0x20
#define _CHIME                  0x40
#define _ALRMEN                 0x80

//==============================================================================

extern __at(0x0F5C) __sfr RTCVALL;
extern __at(0x0F5D) __sfr RTCVALH;

//==============================================================================
//        RTCCAL Bits

extern __at(0x0F5E) __sfr RTCCAL;

typedef struct
  {
  unsigned CAL0                 : 1;
  unsigned CAL1                 : 1;
  unsigned CAL2                 : 1;
  unsigned CAL3                 : 1;
  unsigned CAL4                 : 1;
  unsigned CAL5                 : 1;
  unsigned CAL6                 : 1;
  unsigned CAL7                 : 1;
  } __RTCCALbits_t;

extern __at(0x0F5E) volatile __RTCCALbits_t RTCCALbits;

#define _CAL0                   0x01
#define _CAL1                   0x02
#define _CAL2                   0x04
#define _CAL3                   0x08
#define _CAL4                   0x10
#define _CAL5                   0x20
#define _CAL6                   0x40
#define _CAL7                   0x80

//==============================================================================


//==============================================================================
//        RTCCON1 Bits

extern __at(0x0F5F) __sfr RTCCON1;

typedef union
  {
  struct
    {
    unsigned RTCPTR0            : 1;
    unsigned RTCPTR1            : 1;
    unsigned RTCOE              : 1;
    unsigned HALFSEC            : 1;
    unsigned RTCSYNC            : 1;
    unsigned RTCWREN            : 1;
    unsigned                    : 1;
    unsigned RTCEN              : 1;
    };

  struct
    {
    unsigned RTCPTR             : 2;
    unsigned                    : 6;
    };
  } __RTCCON1bits_t;

extern __at(0x0F5F) volatile __RTCCON1bits_t RTCCON1bits;

#define _RTCPTR0                0x01
#define _RTCPTR1                0x02
#define _RTCOE                  0x04
#define _HALFSEC                0x08
#define _RTCSYNC                0x10
#define _RTCWREN                0x20
#define _RTCEN                  0x80

//==============================================================================


//==============================================================================
//        DMACON1 Bits

extern __at(0x0F60) __sfr DMACON1;

typedef union
  {
  struct
    {
    unsigned DMAEN              : 1;
    unsigned DLYINTEN           : 1;
    unsigned DUPLEX0            : 1;
    unsigned DUPLEX1            : 1;
    unsigned RXINC              : 1;
    unsigned TXINC              : 1;
    unsigned SSCON0             : 1;
    unsigned SSCON1             : 1;
    };

  struct
    {
    unsigned                    : 2;
    unsigned DUPLEX             : 2;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 6;
    unsigned SSCON              : 2;
    };
  } __DMACON1bits_t;

extern __at(0x0F60) volatile __DMACON1bits_t DMACON1bits;

#define _DMAEN                  0x01
#define _DLYINTEN               0x02
#define _DUPLEX0                0x04
#define _DUPLEX1                0x08
#define _RXINC                  0x10
#define _TXINC                  0x20
#define _SSCON0                 0x40
#define _SSCON1                 0x80

//==============================================================================


//==============================================================================
//        PIE6 Bits

extern __at(0x0F61) __sfr PIE6;

typedef struct
  {
  unsigned CMP1IE               : 1;
  unsigned CMP2IE               : 1;
  unsigned CMP3IE               : 1;
  unsigned                      : 1;
  unsigned TX3IE                : 1;
  unsigned RC3IE                : 1;
  unsigned TX4IE                : 1;
  unsigned RC4IE                : 1;
  } __PIE6bits_t;

extern __at(0x0F61) volatile __PIE6bits_t PIE6bits;

#define _CMP1IE                 0x01
#define _CMP2IE                 0x02
#define _CMP3IE                 0x04
#define _TX3IE                  0x10
#define _RC3IE                  0x20
#define _TX4IE                  0x40
#define _RC4IE                  0x80

//==============================================================================


//==============================================================================
//        WPUB Bits

extern __at(0x0F62) __sfr WPUB;

typedef 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 __at(0x0F62) volatile __WPUBbits_t WPUBbits;

#define _WPUB0                  0x01
#define _WPUB1                  0x02
#define _WPUB2                  0x04
#define _WPUB3                  0x08
#define _WPUB4                  0x10
#define _WPUB5                  0x20
#define _WPUB6                  0x40
#define _WPUB7                  0x80

//==============================================================================


//==============================================================================
//        ACTCON Bits

extern __at(0x0F63) __sfr ACTCON;

typedef struct
  {
  unsigned ACTORSPOL            : 1;
  unsigned ACTORS               : 1;
  unsigned ACTLOCKPOL           : 1;
  unsigned ACTLOCK              : 1;
  unsigned ACTSRC               : 1;
  unsigned ACTSIDL              : 1;
  unsigned                      : 1;
  unsigned ACTEN                : 1;
  } __ACTCONbits_t;

extern __at(0x0F63) volatile __ACTCONbits_t ACTCONbits;

#define _ACTORSPOL              0x01
#define _ACTORS                 0x02
#define _ACTLOCKPOL             0x04
#define _ACTLOCK                0x08
#define _ACTSRC                 0x10
#define _ACTSIDL                0x20
#define _ACTEN                  0x80

//==============================================================================


//==============================================================================
//        OSCCON4 Bits

extern __at(0x0F64) __sfr OSCCON4;

typedef union
  {
  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned PLLEN              : 1;
    unsigned CPDIV0             : 1;
    unsigned CPDIV1             : 1;
    };

  struct
    {
    unsigned                    : 6;
    unsigned CPDIV              : 2;
    };
  } __OSCCON4bits_t;

extern __at(0x0F64) volatile __OSCCON4bits_t OSCCON4bits;

#define _PLLEN                  0x20
#define _CPDIV0                 0x40
#define _CPDIV1                 0x80

//==============================================================================


//==============================================================================
//        OSCCON3 Bits

extern __at(0x0F65) __sfr OSCCON3;

typedef union
  {
  struct
    {
    unsigned IRCF0              : 1;
    unsigned IRCF1              : 1;
    unsigned IRCF2              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned IRCF               : 3;
    unsigned                    : 5;
    };
  } __OSCCON3bits_t;

extern __at(0x0F65) volatile __OSCCON3bits_t OSCCON3bits;

#define _IRCF0                  0x01
#define _IRCF1                  0x02
#define _IRCF2                  0x04

//==============================================================================


//==============================================================================
//        OSCCON2 Bits

extern __at(0x0F66) __sfr OSCCON2;

typedef struct
  {
  unsigned                      : 1;
  unsigned SOSCGO               : 1;
  unsigned POSCEN               : 1;
  unsigned CF                   : 1;
  unsigned                      : 1;
  unsigned LOCK                 : 1;
  unsigned IOLOCK               : 1;
  unsigned CLKLOCK              : 1;
  } __OSCCON2bits_t;

extern __at(0x0F66) volatile __OSCCON2bits_t OSCCON2bits;

#define _SOSCGO                 0x02
#define _POSCEN                 0x04
#define _CF                     0x08
#define _LOCK                   0x20
#define _IOLOCK                 0x40
#define _CLKLOCK                0x80

//==============================================================================


//==============================================================================
//        BAUDCON Bits

extern __at(0x0F67) __sfr BAUDCON;

typedef union
  {
  struct
    {
    unsigned ABDEN              : 1;
    unsigned WUE                : 1;
    unsigned IREN               : 1;
    unsigned BRG16              : 1;
    unsigned TXCKP              : 1;
    unsigned RXDTP              : 1;
    unsigned RCIDL              : 1;
    unsigned ABDOVF             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CKTXP              : 1;
    unsigned DTRXP              : 1;
    unsigned RCMT               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned SCKP               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __BAUDCONbits_t;

extern __at(0x0F67) volatile __BAUDCONbits_t BAUDCONbits;

#define _ABDEN                  0x01
#define _WUE                    0x02
#define _IREN                   0x04
#define _BRG16                  0x08
#define _TXCKP                  0x10
#define _CKTXP                  0x10
#define _SCKP                   0x10
#define _RXDTP                  0x20
#define _DTRXP                  0x20
#define _RCIDL                  0x40
#define _RCMT                   0x40
#define _ABDOVF                 0x80

//==============================================================================


//==============================================================================
//        BAUDCON1 Bits

extern __at(0x0F67) __sfr BAUDCON1;

typedef union
  {
  struct
    {
    unsigned ABDEN              : 1;
    unsigned WUE                : 1;
    unsigned IREN               : 1;
    unsigned BRG16              : 1;
    unsigned TXCKP              : 1;
    unsigned RXDTP              : 1;
    unsigned RCIDL              : 1;
    unsigned ABDOVF             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CKTXP              : 1;
    unsigned DTRXP              : 1;
    unsigned RCMT               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned SCKP               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __BAUDCON1bits_t;

extern __at(0x0F67) volatile __BAUDCON1bits_t BAUDCON1bits;

#define _BAUDCON1_ABDEN         0x01
#define _BAUDCON1_WUE           0x02
#define _BAUDCON1_IREN          0x04
#define _BAUDCON1_BRG16         0x08
#define _BAUDCON1_TXCKP         0x10
#define _BAUDCON1_CKTXP         0x10
#define _BAUDCON1_SCKP          0x10
#define _BAUDCON1_RXDTP         0x20
#define _BAUDCON1_DTRXP         0x20
#define _BAUDCON1_RCIDL         0x40
#define _BAUDCON1_RCMT          0x40
#define _BAUDCON1_ABDOVF        0x80

//==============================================================================


//==============================================================================
//        SSP1MSK Bits

extern __at(0x0F68) __sfr SSP1MSK;

typedef 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 __at(0x0F68) volatile __SSP1MSKbits_t SSP1MSKbits;

#define _MSK0                   0x01
#define _MSK1                   0x02
#define _MSK2                   0x04
#define _MSK3                   0x08
#define _MSK4                   0x10
#define _MSK5                   0x20
#define _MSK6                   0x40
#define _MSK7                   0x80

//==============================================================================


//==============================================================================
//        SSP1CON3 Bits

extern __at(0x0F69) __sfr SSP1CON3;

typedef 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 __at(0x0F69) volatile __SSP1CON3bits_t SSP1CON3bits;

#define _DHEN                   0x01
#define _AHEN                   0x02
#define _SBCDE                  0x04
#define _SDAHT                  0x08
#define _BOEN                   0x10
#define _SCIE                   0x20
#define _PCIE                   0x40
#define _ACKTIM                 0x80

//==============================================================================


//==============================================================================
//        TXBUF Bits

extern __at(0x0F6A) __sfr TXBUF;

typedef struct
  {
  unsigned TXBUF0               : 1;
  unsigned TXBUF1               : 1;
  unsigned TXBUF2               : 1;
  unsigned TXBUF3               : 1;
  unsigned TXBUF4               : 1;
  unsigned TXBUF5               : 1;
  unsigned TXBUF6               : 1;
  unsigned TXBUF7               : 1;
  } __TXBUFbits_t;

extern __at(0x0F6A) volatile __TXBUFbits_t TXBUFbits;

#define _TXBUF0                 0x01
#define _TXBUF1                 0x02
#define _TXBUF2                 0x04
#define _TXBUF3                 0x08
#define _TXBUF4                 0x10
#define _TXBUF5                 0x20
#define _TXBUF6                 0x40
#define _TXBUF7                 0x80

//==============================================================================


//==============================================================================
//        DMABCH Bits

extern __at(0x0F6B) __sfr DMABCH;

typedef struct
  {
  unsigned BC8                  : 1;
  unsigned BC9                  : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __DMABCHbits_t;

extern __at(0x0F6B) volatile __DMABCHbits_t DMABCHbits;

#define _BC8                    0x01
#define _BC9                    0x02

//==============================================================================


//==============================================================================
//        DMABCL Bits

extern __at(0x0F6C) __sfr DMABCL;

typedef struct
  {
  unsigned BC0                  : 1;
  unsigned BC1                  : 1;
  unsigned BC2                  : 1;
  unsigned BC3                  : 1;
  unsigned BC4                  : 1;
  unsigned BC5                  : 1;
  unsigned BC6                  : 1;
  unsigned BC7                  : 1;
  } __DMABCLbits_t;

extern __at(0x0F6C) volatile __DMABCLbits_t DMABCLbits;

#define _BC0                    0x01
#define _BC1                    0x02
#define _BC2                    0x04
#define _BC3                    0x08
#define _BC4                    0x10
#define _BC5                    0x20
#define _BC6                    0x40
#define _BC7                    0x80

//==============================================================================


//==============================================================================
//        RXADDRH Bits

extern __at(0x0F6D) __sfr RXADDRH;

typedef struct
  {
  unsigned RXADDR8              : 1;
  unsigned RXADDR9              : 1;
  unsigned RXADDR10             : 1;
  unsigned RXADDR11             : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __RXADDRHbits_t;

extern __at(0x0F6D) volatile __RXADDRHbits_t RXADDRHbits;

#define _RXADDR8                0x01
#define _RXADDR9                0x02
#define _RXADDR10               0x04
#define _RXADDR11               0x08

//==============================================================================


//==============================================================================
//        RXADDRL Bits

extern __at(0x0F6E) __sfr RXADDRL;

typedef struct
  {
  unsigned RXADDR0              : 1;
  unsigned RXADDR1              : 1;
  unsigned RXADDR2              : 1;
  unsigned RXADDR3              : 1;
  unsigned RXADDR4              : 1;
  unsigned RXADDR5              : 1;
  unsigned RXADDR6              : 1;
  unsigned RXADDR7              : 1;
  } __RXADDRLbits_t;

extern __at(0x0F6E) volatile __RXADDRLbits_t RXADDRLbits;

#define _RXADDR0                0x01
#define _RXADDR1                0x02
#define _RXADDR2                0x04
#define _RXADDR3                0x08
#define _RXADDR4                0x10
#define _RXADDR5                0x20
#define _RXADDR6                0x40
#define _RXADDR7                0x80

//==============================================================================


//==============================================================================
//        TXADDRH Bits

extern __at(0x0F6F) __sfr TXADDRH;

typedef struct
  {
  unsigned TXADDR8              : 1;
  unsigned TXADDR9              : 1;
  unsigned TXADDR10             : 1;
  unsigned TXADDR11             : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __TXADDRHbits_t;

extern __at(0x0F6F) volatile __TXADDRHbits_t TXADDRHbits;

#define _TXADDR8                0x01
#define _TXADDR9                0x02
#define _TXADDR10               0x04
#define _TXADDR11               0x08

//==============================================================================


//==============================================================================
//        TXADDRL Bits

extern __at(0x0F70) __sfr TXADDRL;

typedef struct
  {
  unsigned TXADDR0              : 1;
  unsigned TXADDR1              : 1;
  unsigned TXADDR2              : 1;
  unsigned TXADDR3              : 1;
  unsigned TXADDR4              : 1;
  unsigned TXADDR5              : 1;
  unsigned TXADDR6              : 1;
  unsigned TXADDR7              : 1;
  } __TXADDRLbits_t;

extern __at(0x0F70) volatile __TXADDRLbits_t TXADDRLbits;

#define _TXADDR0                0x01
#define _TXADDR1                0x02
#define _TXADDR2                0x04
#define _TXADDR3                0x08
#define _TXADDR4                0x10
#define _TXADDR5                0x20
#define _TXADDR6                0x40
#define _TXADDR7                0x80

//==============================================================================


//==============================================================================
//        PORTVP Bits

extern __at(0x0F71) __sfr PORTVP;

typedef struct
  {
  unsigned RVP0                 : 1;
  unsigned RVP1                 : 1;
  unsigned RVP2                 : 1;
  unsigned RVP3                 : 1;
  unsigned RVP4                 : 1;
  unsigned RVP5                 : 1;
  unsigned RVP6                 : 1;
  unsigned RVP7                 : 1;
  } __PORTVPbits_t;

extern __at(0x0F71) volatile __PORTVPbits_t PORTVPbits;

#define _RVP0                   0x01
#define _RVP1                   0x02
#define _RVP2                   0x04
#define _RVP3                   0x08
#define _RVP4                   0x10
#define _RVP5                   0x20
#define _RVP6                   0x40
#define _RVP7                   0x80

//==============================================================================


//==============================================================================
//        LATVP Bits

extern __at(0x0F72) __sfr LATVP;

typedef struct
  {
  unsigned LATVP0               : 1;
  unsigned LATVP1               : 1;
  unsigned LATVP2               : 1;
  unsigned LATVP3               : 1;
  unsigned LATVP4               : 1;
  unsigned LATVP5               : 1;
  unsigned LATVP6               : 1;
  unsigned LATVP7               : 1;
  } __LATVPbits_t;

extern __at(0x0F72) volatile __LATVPbits_t LATVPbits;

#define _LATVP0                 0x01
#define _LATVP1                 0x02
#define _LATVP2                 0x04
#define _LATVP3                 0x08
#define _LATVP4                 0x10
#define _LATVP5                 0x20
#define _LATVP6                 0x40
#define _LATVP7                 0x80

//==============================================================================


//==============================================================================
//        TRISVP Bits

extern __at(0x0F73) __sfr TRISVP;

typedef struct
  {
  unsigned TRISVP0              : 1;
  unsigned TRISVP1              : 1;
  unsigned TRISVP2              : 1;
  unsigned TRISVP3              : 1;
  unsigned TRISVP4              : 1;
  unsigned TRISVP5              : 1;
  unsigned TRISVP6              : 1;
  unsigned TRISVP7              : 1;
  } __TRISVPbits_t;

extern __at(0x0F73) volatile __TRISVPbits_t TRISVPbits;

#define _TRISVP0                0x01
#define _TRISVP1                0x02
#define _TRISVP2                0x04
#define _TRISVP3                0x08
#define _TRISVP4                0x10
#define _TRISVP5                0x20
#define _TRISVP6                0x40
#define _TRISVP7                0x80

//==============================================================================


//==============================================================================
//        UADDR Bits

extern __at(0x0F74) __sfr UADDR;

typedef union
  {
  struct
    {
    unsigned ADDR0              : 1;
    unsigned ADDR1              : 1;
    unsigned ADDR2              : 1;
    unsigned ADDR3              : 1;
    unsigned ADDR4              : 1;
    unsigned ADDR5              : 1;
    unsigned ADDR6              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned ADDR               : 7;
    unsigned                    : 1;
    };
  } __UADDRbits_t;

extern __at(0x0F74) volatile __UADDRbits_t UADDRbits;

#define _ADDR0                  0x01
#define _ADDR1                  0x02
#define _ADDR2                  0x04
#define _ADDR3                  0x08
#define _ADDR4                  0x10
#define _ADDR5                  0x20
#define _ADDR6                  0x40

//==============================================================================


//==============================================================================
//        UCON Bits

extern __at(0x0F75) __sfr UCON;

typedef struct
  {
  unsigned                      : 1;
  unsigned SUSPND               : 1;
  unsigned RESUME               : 1;
  unsigned USBEN                : 1;
  unsigned PKTDIS               : 1;
  unsigned SE0                  : 1;
  unsigned PPBRST               : 1;
  unsigned                      : 1;
  } __UCONbits_t;

extern __at(0x0F75) volatile __UCONbits_t UCONbits;

#define _SUSPND                 0x02
#define _RESUME                 0x04
#define _USBEN                  0x08
#define _PKTDIS                 0x10
#define _SE0                    0x20
#define _PPBRST                 0x40

//==============================================================================


//==============================================================================
//        USTAT Bits

extern __at(0x0F76) __sfr USTAT;

typedef union
  {
  struct
    {
    unsigned                    : 1;
    unsigned PPBI               : 1;
    unsigned DIR                : 1;
    unsigned ENDP0              : 1;
    unsigned ENDP1              : 1;
    unsigned ENDP2              : 1;
    unsigned ENDP3              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 3;
    unsigned ENDP               : 4;
    unsigned                    : 1;
    };
  } __USTATbits_t;

extern __at(0x0F76) volatile __USTATbits_t USTATbits;

#define _PPBI                   0x02
#define _DIR                    0x04
#define _ENDP0                  0x08
#define _ENDP1                  0x10
#define _ENDP2                  0x20
#define _ENDP3                  0x40

//==============================================================================


//==============================================================================
//        UEIR Bits

extern __at(0x0F77) __sfr UEIR;

typedef struct
  {
  unsigned PIDEF                : 1;
  unsigned CRC5EF               : 1;
  unsigned CRC16EF              : 1;
  unsigned DFN8EF               : 1;
  unsigned BTOEF                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned BTSEF                : 1;
  } __UEIRbits_t;

extern __at(0x0F77) volatile __UEIRbits_t UEIRbits;

#define _PIDEF                  0x01
#define _CRC5EF                 0x02
#define _CRC16EF                0x04
#define _DFN8EF                 0x08
#define _BTOEF                  0x10
#define _BTSEF                  0x80

//==============================================================================


//==============================================================================
//        UIR Bits

extern __at(0x0F78) __sfr UIR;

typedef struct
  {
  unsigned URSTIF               : 1;
  unsigned UERRIF               : 1;
  unsigned ACTVIF               : 1;
  unsigned TRNIF                : 1;
  unsigned IDLEIF               : 1;
  unsigned STALLIF              : 1;
  unsigned SOFIF                : 1;
  unsigned                      : 1;
  } __UIRbits_t;

extern __at(0x0F78) volatile __UIRbits_t UIRbits;

#define _URSTIF                 0x01
#define _UERRIF                 0x02
#define _ACTVIF                 0x04
#define _TRNIF                  0x08
#define _IDLEIF                 0x10
#define _STALLIF                0x20
#define _SOFIF                  0x40

//==============================================================================

extern __at(0x0F79) __sfr UFRM;

//==============================================================================
//        UFRMH Bits

extern __at(0x0F79) __sfr UFRMH;

typedef struct
  {
  unsigned FRM8                 : 1;
  unsigned FRM9                 : 1;
  unsigned FRM10                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __UFRMHbits_t;

extern __at(0x0F79) volatile __UFRMHbits_t UFRMHbits;

#define _FRM8                   0x01
#define _FRM9                   0x02
#define _FRM10                  0x04

//==============================================================================


//==============================================================================
//        UFRML Bits

extern __at(0x0F7A) __sfr UFRML;

typedef struct
  {
  unsigned FRM0                 : 1;
  unsigned FRM1                 : 1;
  unsigned FRM2                 : 1;
  unsigned FRM3                 : 1;
  unsigned FRM4                 : 1;
  unsigned FRM5                 : 1;
  unsigned FRM6                 : 1;
  unsigned FRM7                 : 1;
  } __UFRMLbits_t;

extern __at(0x0F7A) volatile __UFRMLbits_t UFRMLbits;

#define _FRM0                   0x01
#define _FRM1                   0x02
#define _FRM2                   0x04
#define _FRM3                   0x08
#define _FRM4                   0x10
#define _FRM5                   0x20
#define _FRM6                   0x40
#define _FRM7                   0x80

//==============================================================================


//==============================================================================
//        RCON4 Bits

extern __at(0x0F7B) __sfr RCON4;

typedef struct
  {
  unsigned PMSLP                : 1;
  unsigned                      : 1;
  unsigned DPSLP                : 1;
  unsigned                      : 1;
  unsigned SRETEN               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __RCON4bits_t;

extern __at(0x0F7B) volatile __RCON4bits_t RCON4bits;

#define _PMSLP                  0x01
#define _DPSLP                  0x04
#define _SRETEN                 0x10

//==============================================================================


//==============================================================================
//        RCON3 Bits

extern __at(0x0F7C) __sfr RCON3;

typedef struct
  {
  unsigned VBAT                 : 1;
  unsigned VBPOR                : 1;
  unsigned VDDPOR               : 1;
  unsigned VDDBOR               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned STKERR               : 1;
  } __RCON3bits_t;

extern __at(0x0F7C) volatile __RCON3bits_t RCON3bits;

#define _VBAT                   0x01
#define _VBPOR                  0x02
#define _VDDPOR                 0x04
#define _VDDBOR                 0x08
#define _STKERR                 0x80

//==============================================================================


//==============================================================================
//        RCON2 Bits

extern __at(0x0F7D) __sfr RCON2;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned SWDTEN               : 1;
  unsigned                      : 1;
  unsigned EXTR                 : 1;
  } __RCON2bits_t;

extern __at(0x0F7D) volatile __RCON2bits_t RCON2bits;

#define _SWDTEN                 0x20
#define _EXTR                   0x80

//==============================================================================

extern __at(0x0F7E) __sfr EECON2;

//==============================================================================
//        EECON1 Bits

extern __at(0x0F7F) __sfr EECON1;

typedef struct
  {
  unsigned                      : 1;
  unsigned WR                   : 1;
  unsigned WREN                 : 1;
  unsigned WRERR                : 1;
  unsigned FREE                 : 1;
  unsigned WWPROG               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __EECON1bits_t;

extern __at(0x0F7F) volatile __EECON1bits_t EECON1bits;

#define _WR                     0x02
#define _WREN                   0x04
#define _WRERR                  0x08
#define _FREE                   0x10
#define _WWPROG                 0x20

//==============================================================================


//==============================================================================
//        PORTA Bits

extern __at(0x0F80) __sfr PORTA;

typedef 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;
  } __PORTAbits_t;

extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;

#define _RA0                    0x01
#define _RA1                    0x02
#define _RA2                    0x04
#define _RA3                    0x08
#define _RA4                    0x10
#define _RA5                    0x20
#define _RA6                    0x40
#define _RA7                    0x80

//==============================================================================


//==============================================================================
//        PORTB Bits

extern __at(0x0F81) __sfr PORTB;

typedef 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;
  } __PORTBbits_t;

extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;

#define _RB0                    0x01
#define _RB1                    0x02
#define _RB2                    0x04
#define _RB3                    0x08
#define _RB4                    0x10
#define _RB5                    0x20
#define _RB6                    0x40
#define _RB7                    0x80

//==============================================================================


//==============================================================================
//        PORTC Bits

extern __at(0x0F82) __sfr PORTC;

typedef 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;
  } __PORTCbits_t;

extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;

#define _RC0                    0x01
#define _RC1                    0x02
#define _RC2                    0x04
#define _RC3                    0x08
#define _RC4                    0x10
#define _RC5                    0x20
#define _RC6                    0x40
#define _RC7                    0x80

//==============================================================================


//==============================================================================
//        PORTD Bits

extern __at(0x0F83) __sfr PORTD;

typedef 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;
  } __PORTDbits_t;

extern __at(0x0F83) volatile __PORTDbits_t PORTDbits;

#define _RD0                    0x01
#define _RD1                    0x02
#define _RD2                    0x04
#define _RD3                    0x08
#define _RD4                    0x10
#define _RD5                    0x20
#define _RD6                    0x40
#define _RD7                    0x80

//==============================================================================


//==============================================================================
//        PORTE Bits

extern __at(0x0F84) __sfr PORTE;

typedef struct
  {
  unsigned RE0                  : 1;
  unsigned RE1                  : 1;
  unsigned RE2                  : 1;
  unsigned RE3                  : 1;
  unsigned RE4                  : 1;
  unsigned RE5                  : 1;
  unsigned RE6                  : 1;
  unsigned RE7                  : 1;
  } __PORTEbits_t;

extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;

#define _RE0                    0x01
#define _RE1                    0x02
#define _RE2                    0x04
#define _RE3                    0x08
#define _RE4                    0x10
#define _RE5                    0x20
#define _RE6                    0x40
#define _RE7                    0x80

//==============================================================================


//==============================================================================
//        PORTF Bits

extern __at(0x0F85) __sfr PORTF;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned RF2                  : 1;
  unsigned RF3                  : 1;
  unsigned RF4                  : 1;
  unsigned RF5                  : 1;
  unsigned RF6                  : 1;
  unsigned RF7                  : 1;
  } __PORTFbits_t;

extern __at(0x0F85) volatile __PORTFbits_t PORTFbits;

#define _RF2                    0x04
#define _RF3                    0x08
#define _RF4                    0x10
#define _RF5                    0x20
#define _RF6                    0x40
#define _RF7                    0x80

//==============================================================================


//==============================================================================
//        PORTG Bits

extern __at(0x0F86) __sfr PORTG;

typedef struct
  {
  unsigned RG0                  : 1;
  unsigned RG1                  : 1;
  unsigned RG2                  : 1;
  unsigned RG3                  : 1;
  unsigned RG4                  : 1;
  unsigned                      : 1;
  unsigned RG6                  : 1;
  unsigned RG7                  : 1;
  } __PORTGbits_t;

extern __at(0x0F86) volatile __PORTGbits_t PORTGbits;

#define _RG0                    0x01
#define _RG1                    0x02
#define _RG2                    0x04
#define _RG3                    0x08
#define _RG4                    0x10
#define _RG6                    0x40
#define _RG7                    0x80

//==============================================================================


//==============================================================================
//        PORTH Bits

extern __at(0x0F87) __sfr PORTH;

typedef struct
  {
  unsigned RH0                  : 1;
  unsigned RH1                  : 1;
  unsigned RH2                  : 1;
  unsigned RH3                  : 1;
  unsigned RH4                  : 1;
  unsigned RH5                  : 1;
  unsigned RH6                  : 1;
  unsigned RH7                  : 1;
  } __PORTHbits_t;

extern __at(0x0F87) volatile __PORTHbits_t PORTHbits;

#define _RH0                    0x01
#define _RH1                    0x02
#define _RH2                    0x04
#define _RH3                    0x08
#define _RH4                    0x10
#define _RH5                    0x20
#define _RH6                    0x40
#define _RH7                    0x80

//==============================================================================


//==============================================================================
//        PORTJ Bits

extern __at(0x0F88) __sfr PORTJ;

typedef struct
  {
  unsigned RJ0                  : 1;
  unsigned RJ1                  : 1;
  unsigned RJ2                  : 1;
  unsigned RJ3                  : 1;
  unsigned RJ4                  : 1;
  unsigned RJ5                  : 1;
  unsigned RJ6                  : 1;
  unsigned RJ7                  : 1;
  } __PORTJbits_t;

extern __at(0x0F88) volatile __PORTJbits_t PORTJbits;

#define _RJ0                    0x01
#define _RJ1                    0x02
#define _RJ2                    0x04
#define _RJ3                    0x08
#define _RJ4                    0x10
#define _RJ5                    0x20
#define _RJ6                    0x40
#define _RJ7                    0x80

//==============================================================================


//==============================================================================
//        LATA Bits

extern __at(0x0F89) __sfr LATA;

typedef 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 __at(0x0F89) volatile __LATAbits_t LATAbits;

#define _LATA0                  0x01
#define _LATA1                  0x02
#define _LATA2                  0x04
#define _LATA3                  0x08
#define _LATA4                  0x10
#define _LATA5                  0x20
#define _LATA6                  0x40
#define _LATA7                  0x80

//==============================================================================


//==============================================================================
//        LATB Bits

extern __at(0x0F8A) __sfr LATB;

typedef 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 __at(0x0F8A) volatile __LATBbits_t LATBbits;

#define _LATB0                  0x01
#define _LATB1                  0x02
#define _LATB2                  0x04
#define _LATB3                  0x08
#define _LATB4                  0x10
#define _LATB5                  0x20
#define _LATB6                  0x40
#define _LATB7                  0x80

//==============================================================================


//==============================================================================
//        LATC Bits

extern __at(0x0F8B) __sfr LATC;

typedef 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 __at(0x0F8B) volatile __LATCbits_t LATCbits;

#define _LATC0                  0x01
#define _LATC1                  0x02
#define _LATC2                  0x04
#define _LATC3                  0x08
#define _LATC4                  0x10
#define _LATC5                  0x20
#define _LATC6                  0x40
#define _LATC7                  0x80

//==============================================================================


//==============================================================================
//        LATD Bits

extern __at(0x0F8C) __sfr LATD;

typedef 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 __at(0x0F8C) volatile __LATDbits_t LATDbits;

#define _LATD0                  0x01
#define _LATD1                  0x02
#define _LATD2                  0x04
#define _LATD3                  0x08
#define _LATD4                  0x10
#define _LATD5                  0x20
#define _LATD6                  0x40
#define _LATD7                  0x80

//==============================================================================


//==============================================================================
//        LATE Bits

extern __at(0x0F8D) __sfr LATE;

typedef struct
  {
  unsigned LATE0                : 1;
  unsigned LATE1                : 1;
  unsigned LATE2                : 1;
  unsigned LATE3                : 1;
  unsigned LATE4                : 1;
  unsigned LATE5                : 1;
  unsigned LATE6                : 1;
  unsigned LATE7                : 1;
  } __LATEbits_t;

extern __at(0x0F8D) volatile __LATEbits_t LATEbits;

#define _LATE0                  0x01
#define _LATE1                  0x02
#define _LATE2                  0x04
#define _LATE3                  0x08
#define _LATE4                  0x10
#define _LATE5                  0x20
#define _LATE6                  0x40
#define _LATE7                  0x80

//==============================================================================


//==============================================================================
//        LATF Bits

extern __at(0x0F8E) __sfr LATF;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned LATF2                : 1;
  unsigned LATF3                : 1;
  unsigned LATF4                : 1;
  unsigned LATF5                : 1;
  unsigned LATF6                : 1;
  unsigned LATF7                : 1;
  } __LATFbits_t;

extern __at(0x0F8E) volatile __LATFbits_t LATFbits;

#define _LATF2                  0x04
#define _LATF3                  0x08
#define _LATF4                  0x10
#define _LATF5                  0x20
#define _LATF6                  0x40
#define _LATF7                  0x80

//==============================================================================


//==============================================================================
//        LATG Bits

extern __at(0x0F8F) __sfr LATG;

typedef struct
  {
  unsigned LATG0                : 1;
  unsigned LATG1                : 1;
  unsigned LATG2                : 1;
  unsigned LATG3                : 1;
  unsigned LATG4                : 1;
  unsigned                      : 1;
  unsigned LATG6                : 1;
  unsigned LATG7                : 1;
  } __LATGbits_t;

extern __at(0x0F8F) volatile __LATGbits_t LATGbits;

#define _LATG0                  0x01
#define _LATG1                  0x02
#define _LATG2                  0x04
#define _LATG3                  0x08
#define _LATG4                  0x10
#define _LATG6                  0x40
#define _LATG7                  0x80

//==============================================================================


//==============================================================================
//        LATH Bits

extern __at(0x0F90) __sfr LATH;

typedef struct
  {
  unsigned LATH0                : 1;
  unsigned LATH1                : 1;
  unsigned LATH2                : 1;
  unsigned LATH3                : 1;
  unsigned LATH4                : 1;
  unsigned LATH5                : 1;
  unsigned LATH6                : 1;
  unsigned LATH7                : 1;
  } __LATHbits_t;

extern __at(0x0F90) volatile __LATHbits_t LATHbits;

#define _LATH0                  0x01
#define _LATH1                  0x02
#define _LATH2                  0x04
#define _LATH3                  0x08
#define _LATH4                  0x10
#define _LATH5                  0x20
#define _LATH6                  0x40
#define _LATH7                  0x80

//==============================================================================


//==============================================================================
//        LATJ Bits

extern __at(0x0F91) __sfr LATJ;

typedef struct
  {
  unsigned LATJ0                : 1;
  unsigned LATJ1                : 1;
  unsigned LATJ2                : 1;
  unsigned LATJ3                : 1;
  unsigned LATJ4                : 1;
  unsigned LATJ5                : 1;
  unsigned LATJ6                : 1;
  unsigned LATJ7                : 1;
  } __LATJbits_t;

extern __at(0x0F91) volatile __LATJbits_t LATJbits;

#define _LATJ0                  0x01
#define _LATJ1                  0x02
#define _LATJ2                  0x04
#define _LATJ3                  0x08
#define _LATJ4                  0x10
#define _LATJ5                  0x20
#define _LATJ6                  0x40
#define _LATJ7                  0x80

//==============================================================================


//==============================================================================
//        TRISA Bits

extern __at(0x0F92) __sfr TRISA;

typedef 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;
  } __TRISAbits_t;

extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;

#define _TRISA0                 0x01
#define _TRISA1                 0x02
#define _TRISA2                 0x04
#define _TRISA3                 0x08
#define _TRISA4                 0x10
#define _TRISA5                 0x20
#define _TRISA6                 0x40
#define _TRISA7                 0x80

//==============================================================================


//==============================================================================
//        TRISB Bits

extern __at(0x0F93) __sfr TRISB;

typedef 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;
  } __TRISBbits_t;

extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;

#define _TRISB0                 0x01
#define _TRISB1                 0x02
#define _TRISB2                 0x04
#define _TRISB3                 0x08
#define _TRISB4                 0x10
#define _TRISB5                 0x20
#define _TRISB6                 0x40
#define _TRISB7                 0x80

//==============================================================================


//==============================================================================
//        TRISC Bits

extern __at(0x0F94) __sfr TRISC;

typedef 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;
  } __TRISCbits_t;

extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;

#define _TRISC0                 0x01
#define _TRISC1                 0x02
#define _TRISC2                 0x04
#define _TRISC3                 0x08
#define _TRISC4                 0x10
#define _TRISC5                 0x20
#define _TRISC6                 0x40
#define _TRISC7                 0x80

//==============================================================================


//==============================================================================
//        TRISD Bits

extern __at(0x0F95) __sfr TRISD;

typedef 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;
  } __TRISDbits_t;

extern __at(0x0F95) volatile __TRISDbits_t TRISDbits;

#define _TRISD0                 0x01
#define _TRISD1                 0x02
#define _TRISD2                 0x04
#define _TRISD3                 0x08
#define _TRISD4                 0x10
#define _TRISD5                 0x20
#define _TRISD6                 0x40
#define _TRISD7                 0x80

//==============================================================================


//==============================================================================
//        TRISE Bits

extern __at(0x0F96) __sfr TRISE;

typedef struct
  {
  unsigned TRISE0               : 1;
  unsigned TRISE1               : 1;
  unsigned TRISE2               : 1;
  unsigned TRISE3               : 1;
  unsigned TRISE4               : 1;
  unsigned TRISE5               : 1;
  unsigned TRISE6               : 1;
  unsigned TRISE7               : 1;
  } __TRISEbits_t;

extern __at(0x0F96) volatile __TRISEbits_t TRISEbits;

#define _TRISE0                 0x01
#define _TRISE1                 0x02
#define _TRISE2                 0x04
#define _TRISE3                 0x08
#define _TRISE4                 0x10
#define _TRISE5                 0x20
#define _TRISE6                 0x40
#define _TRISE7                 0x80

//==============================================================================


//==============================================================================
//        TRISF Bits

extern __at(0x0F97) __sfr TRISF;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned TRISF2               : 1;
  unsigned TRISF3               : 1;
  unsigned TRISF4               : 1;
  unsigned TRISF5               : 1;
  unsigned TRISF6               : 1;
  unsigned TRISF7               : 1;
  } __TRISFbits_t;

extern __at(0x0F97) volatile __TRISFbits_t TRISFbits;

#define _TRISF2                 0x04
#define _TRISF3                 0x08
#define _TRISF4                 0x10
#define _TRISF5                 0x20
#define _TRISF6                 0x40
#define _TRISF7                 0x80

//==============================================================================


//==============================================================================
//        TRISG Bits

extern __at(0x0F98) __sfr TRISG;

typedef struct
  {
  unsigned TRISG0               : 1;
  unsigned TRISG1               : 1;
  unsigned TRISG2               : 1;
  unsigned TRISG3               : 1;
  unsigned TRISG4               : 1;
  unsigned                      : 1;
  unsigned TRISG6               : 1;
  unsigned TRISG7               : 1;
  } __TRISGbits_t;

extern __at(0x0F98) volatile __TRISGbits_t TRISGbits;

#define _TRISG0                 0x01
#define _TRISG1                 0x02
#define _TRISG2                 0x04
#define _TRISG3                 0x08
#define _TRISG4                 0x10
#define _TRISG6                 0x40
#define _TRISG7                 0x80

//==============================================================================


//==============================================================================
//        TRISH Bits

extern __at(0x0F99) __sfr TRISH;

typedef struct
  {
  unsigned TRISH0               : 1;
  unsigned TRISH1               : 1;
  unsigned TRISH2               : 1;
  unsigned TRISH3               : 1;
  unsigned TRISH4               : 1;
  unsigned TRISH5               : 1;
  unsigned TRISH6               : 1;
  unsigned TRISH7               : 1;
  } __TRISHbits_t;

extern __at(0x0F99) volatile __TRISHbits_t TRISHbits;

#define _TRISH0                 0x01
#define _TRISH1                 0x02
#define _TRISH2                 0x04
#define _TRISH3                 0x08
#define _TRISH4                 0x10
#define _TRISH5                 0x20
#define _TRISH6                 0x40
#define _TRISH7                 0x80

//==============================================================================


//==============================================================================
//        TRISJ Bits

extern __at(0x0F9A) __sfr TRISJ;

typedef struct
  {
  unsigned TRISJ0               : 1;
  unsigned TRISJ1               : 1;
  unsigned TRISJ2               : 1;
  unsigned TRISJ3               : 1;
  unsigned TRISJ4               : 1;
  unsigned TRISJ5               : 1;
  unsigned TRISJ6               : 1;
  unsigned TRISJ7               : 1;
  } __TRISJbits_t;

extern __at(0x0F9A) volatile __TRISJbits_t TRISJbits;

#define _TRISJ0                 0x01
#define _TRISJ1                 0x02
#define _TRISJ2                 0x04
#define _TRISJ3                 0x08
#define _TRISJ4                 0x10
#define _TRISJ5                 0x20
#define _TRISJ6                 0x40
#define _TRISJ7                 0x80

//==============================================================================


//==============================================================================
//        OSCTUNE Bits

extern __at(0x0F9B) __sfr OSCTUNE;

typedef union
  {
  struct
    {
    unsigned TUN0               : 1;
    unsigned TUN1               : 1;
    unsigned TUN2               : 1;
    unsigned TUN3               : 1;
    unsigned TUN4               : 1;
    unsigned TUN5               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned TUN                : 6;
    unsigned                    : 2;
    };
  } __OSCTUNEbits_t;

extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;

#define _TUN0                   0x01
#define _TUN1                   0x02
#define _TUN2                   0x04
#define _TUN3                   0x08
#define _TUN4                   0x10
#define _TUN5                   0x20

//==============================================================================


//==============================================================================
//        PSTR1CON Bits

extern __at(0x0F9C) __sfr PSTR1CON;

typedef union
  {
  struct
    {
    unsigned STRA               : 1;
    unsigned STRB               : 1;
    unsigned STRC               : 1;
    unsigned STRD               : 1;
    unsigned STRSYNC            : 1;
    unsigned                    : 1;
    unsigned CMPL0              : 1;
    unsigned CMPL1              : 1;
    };

  struct
    {
    unsigned                    : 6;
    unsigned CMPL               : 2;
    };
  } __PSTR1CONbits_t;

extern __at(0x0F9C) volatile __PSTR1CONbits_t PSTR1CONbits;

#define _STRA                   0x01
#define _STRB                   0x02
#define _STRC                   0x04
#define _STRD                   0x08
#define _STRSYNC                0x10
#define _CMPL0                  0x40
#define _CMPL1                  0x80

//==============================================================================


//==============================================================================
//        PIE1 Bits

extern __at(0x0F9D) __sfr PIE1;

typedef struct
  {
  unsigned TMR1IE               : 1;
  unsigned TMR2IE               : 1;
  unsigned TMR1GIE              : 1;
  unsigned SSP1IE               : 1;
  unsigned TX1IE                : 1;
  unsigned RC1IE                : 1;
  unsigned ADIE                 : 1;
  unsigned PSPIE                : 1;
  } __PIE1bits_t;

extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;

#define _TMR1IE                 0x01
#define _TMR2IE                 0x02
#define _TMR1GIE                0x04
#define _SSP1IE                 0x08
#define _TX1IE                  0x10
#define _RC1IE                  0x20
#define _ADIE                   0x40
#define _PSPIE                  0x80

//==============================================================================


//==============================================================================
//        PIR1 Bits

extern __at(0x0F9E) __sfr PIR1;

typedef struct
  {
  unsigned TMR1IF               : 1;
  unsigned TMR2IF               : 1;
  unsigned TMR1GIF              : 1;
  unsigned SSP1IF               : 1;
  unsigned TX1IF                : 1;
  unsigned RC1IF                : 1;
  unsigned ADIF                 : 1;
  unsigned PSPIF                : 1;
  } __PIR1bits_t;

extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;

#define _TMR1IF                 0x01
#define _TMR2IF                 0x02
#define _TMR1GIF                0x04
#define _SSP1IF                 0x08
#define _TX1IF                  0x10
#define _RC1IF                  0x20
#define _ADIF                   0x40
#define _PSPIF                  0x80

//==============================================================================


//==============================================================================
//        IPR1 Bits

extern __at(0x0F9F) __sfr IPR1;

typedef struct
  {
  unsigned TMR1IP               : 1;
  unsigned TMR2IP               : 1;
  unsigned TMR1GIP              : 1;
  unsigned SSP1IP               : 1;
  unsigned TX1IP                : 1;
  unsigned RC1IP                : 1;
  unsigned ADIP                 : 1;
  unsigned PSPIP                : 1;
  } __IPR1bits_t;

extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;

#define _TMR1IP                 0x01
#define _TMR2IP                 0x02
#define _TMR1GIP                0x04
#define _SSP1IP                 0x08
#define _TX1IP                  0x10
#define _RC1IP                  0x20
#define _ADIP                   0x40
#define _PSPIP                  0x80

//==============================================================================


//==============================================================================
//        PIE2 Bits

extern __at(0x0FA0) __sfr PIE2;

typedef struct
  {
  unsigned TMR3GIE              : 1;
  unsigned TMR3IE               : 1;
  unsigned HLVDIE               : 1;
  unsigned BCL1IE               : 1;
  unsigned USBIE                : 1;
  unsigned BCL2IE               : 1;
  unsigned SSP2IE               : 1;
  unsigned OSCFIE               : 1;
  } __PIE2bits_t;

extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;

#define _TMR3GIE                0x01
#define _TMR3IE                 0x02
#define _HLVDIE                 0x04
#define _BCL1IE                 0x08
#define _USBIE                  0x10
#define _BCL2IE                 0x20
#define _SSP2IE                 0x40
#define _OSCFIE                 0x80

//==============================================================================


//==============================================================================
//        PIR2 Bits

extern __at(0x0FA1) __sfr PIR2;

typedef union
  {
  struct
    {
    unsigned TMR3GIF            : 1;
    unsigned TMR3IF             : 1;
    unsigned HLVDIF             : 1;
    unsigned BCL1IF             : 1;
    unsigned USBIF              : 1;
    unsigned BCL2IF             : 1;
    unsigned SSP2IF             : 1;
    unsigned OSCFIF             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned LVDIF              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIR2bits_t;

extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;

#define _TMR3GIF                0x01
#define _TMR3IF                 0x02
#define _HLVDIF                 0x04
#define _LVDIF                  0x04
#define _BCL1IF                 0x08
#define _USBIF                  0x10
#define _BCL2IF                 0x20
#define _SSP2IF                 0x40
#define _OSCFIF                 0x80

//==============================================================================


//==============================================================================
//        IPR2 Bits

extern __at(0x0FA2) __sfr IPR2;

typedef struct
  {
  unsigned TMR3GIP              : 1;
  unsigned TMR3IP               : 1;
  unsigned HLVDIP               : 1;
  unsigned BCL1IP               : 1;
  unsigned USBIP                : 1;
  unsigned BCL2IP               : 1;
  unsigned SSP2IP               : 1;
  unsigned OSCFIP               : 1;
  } __IPR2bits_t;

extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;

#define _TMR3GIP                0x01
#define _TMR3IP                 0x02
#define _HLVDIP                 0x04
#define _BCL1IP                 0x08
#define _USBIP                  0x10
#define _BCL2IP                 0x20
#define _SSP2IP                 0x40
#define _OSCFIP                 0x80

//==============================================================================


//==============================================================================
//        PIE3 Bits

extern __at(0x0FA3) __sfr PIE3;

typedef struct
  {
  unsigned RTCCIE               : 1;
  unsigned CCP1IE               : 1;
  unsigned CCP2IE               : 1;
  unsigned CTMUIE               : 1;
  unsigned TX2IE                : 1;
  unsigned RC2IE                : 1;
  unsigned LCDIE                : 1;
  unsigned TMR5GIE              : 1;
  } __PIE3bits_t;

extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;

#define _RTCCIE                 0x01
#define _CCP1IE                 0x02
#define _CCP2IE                 0x04
#define _CTMUIE                 0x08
#define _TX2IE                  0x10
#define _RC2IE                  0x20
#define _LCDIE                  0x40
#define _TMR5GIE                0x80

//==============================================================================


//==============================================================================
//        PIR3 Bits

extern __at(0x0FA4) __sfr PIR3;

typedef struct
  {
  unsigned RTCCIF               : 1;
  unsigned CCP1IF               : 1;
  unsigned CCP2IF               : 1;
  unsigned CTMUIF               : 1;
  unsigned TX2IF                : 1;
  unsigned RC2IF                : 1;
  unsigned LCDIF                : 1;
  unsigned TMR5GIF              : 1;
  } __PIR3bits_t;

extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;

#define _RTCCIF                 0x01
#define _CCP1IF                 0x02
#define _CCP2IF                 0x04
#define _CTMUIF                 0x08
#define _TX2IF                  0x10
#define _RC2IF                  0x20
#define _LCDIF                  0x40
#define _TMR5GIF                0x80

//==============================================================================


//==============================================================================
//        IPR3 Bits

extern __at(0x0FA5) __sfr IPR3;

typedef struct
  {
  unsigned RTCCIP               : 1;
  unsigned CCP1IP               : 1;
  unsigned CCP2IP               : 1;
  unsigned CTMUIP               : 1;
  unsigned TX2IP                : 1;
  unsigned RC2IP                : 1;
  unsigned LCDIP                : 1;
  unsigned TMR5GIP              : 1;
  } __IPR3bits_t;

extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;

#define _RTCCIP                 0x01
#define _CCP1IP                 0x02
#define _CCP2IP                 0x04
#define _CTMUIP                 0x08
#define _TX2IP                  0x10
#define _RC2IP                  0x20
#define _LCDIP                  0x40
#define _TMR5GIP                0x80

//==============================================================================


//==============================================================================
//        PIR6 Bits

extern __at(0x0FA6) __sfr PIR6;

typedef struct
  {
  unsigned CMP1IF               : 1;
  unsigned CMP2IF               : 1;
  unsigned CMP3IF               : 1;
  unsigned                      : 1;
  unsigned TX3IF                : 1;
  unsigned RC3IF                : 1;
  unsigned TX4IF                : 1;
  unsigned RC4IF                : 1;
  } __PIR6bits_t;

extern __at(0x0FA6) volatile __PIR6bits_t PIR6bits;

#define _CMP1IF                 0x01
#define _CMP2IF                 0x02
#define _CMP3IF                 0x04
#define _TX3IF                  0x10
#define _RC3IF                  0x20
#define _TX4IF                  0x40
#define _RC4IF                  0x80

//==============================================================================


//==============================================================================
//        PSPCON Bits

extern __at(0x0FA7) __sfr PSPCON;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned PSPMODE              : 1;
  unsigned IBOV                 : 1;
  unsigned OBF                  : 1;
  unsigned IBF                  : 1;
  } __PSPCONbits_t;

extern __at(0x0FA7) volatile __PSPCONbits_t PSPCONbits;

#define _PSPMODE                0x10
#define _IBOV                   0x20
#define _OBF                    0x40
#define _IBF                    0x80

//==============================================================================


//==============================================================================
//        HLVDCON Bits

extern __at(0x0FA8) __sfr 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 HLVDL              : 4;
    unsigned                    : 4;
    };
  } __HLVDCONbits_t;

extern __at(0x0FA8) volatile __HLVDCONbits_t HLVDCONbits;

#define _HLVDL0                 0x01
#define _HLVDL1                 0x02
#define _HLVDL2                 0x04
#define _HLVDL3                 0x08
#define _HLVDEN                 0x10
#define _IRVST                  0x20
#define _BGVST                  0x40
#define _VDIRMAG                0x80

//==============================================================================


//==============================================================================
//        IPR6 Bits

extern __at(0x0FA9) __sfr IPR6;

typedef struct
  {
  unsigned CMP1IP               : 1;
  unsigned CMP2IP               : 1;
  unsigned CMP3IP               : 1;
  unsigned                      : 1;
  unsigned TX3IP                : 1;
  unsigned RC3IP                : 1;
  unsigned TX4IP                : 1;
  unsigned RC4IP                : 1;
  } __IPR6bits_t;

extern __at(0x0FA9) volatile __IPR6bits_t IPR6bits;

#define _CMP1IP                 0x01
#define _CMP2IP                 0x02
#define _CMP3IP                 0x04
#define _TX3IP                  0x10
#define _RC3IP                  0x20
#define _TX4IP                  0x40
#define _RC4IP                  0x80

//==============================================================================


//==============================================================================
//        T1GCON Bits

extern __at(0x0FAA) __sfr T1GCON;

typedef union
  {
  struct
    {
    unsigned T1GSS0             : 1;
    unsigned T1GSS1             : 1;
    unsigned T1GVAL             : 1;
    unsigned T1GGO_NOT_T1DONE   : 1;
    unsigned T1GSPM             : 1;
    unsigned T1GTM              : 1;
    unsigned T1GPOL             : 1;
    unsigned TMR1GE             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned T1GGO              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_T1DONE         : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned T1GSS              : 2;
    unsigned                    : 6;
    };
  } __T1GCONbits_t;

extern __at(0x0FAA) volatile __T1GCONbits_t T1GCONbits;

#define _T1GSS0                 0x01
#define _T1GSS1                 0x02
#define _T1GVAL                 0x04
#define _T1GGO_NOT_T1DONE       0x08
#define _T1GGO                  0x08
#define _NOT_T1DONE             0x08
#define _T1GSPM                 0x10
#define _T1GTM                  0x20
#define _T1GPOL                 0x40
#define _TMR1GE                 0x80

//==============================================================================


//==============================================================================
//        RCSTA Bits

extern __at(0x0FAB) __sfr 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                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned ADEN               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __RCSTAbits_t;

extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;

#define _RX9D                   0x01
#define _OERR                   0x02
#define _FERR                   0x04
#define _ADDEN                  0x08
#define _ADEN                   0x08
#define _CREN                   0x10
#define _SREN                   0x20
#define _RX9                    0x40
#define _SPEN                   0x80

//==============================================================================


//==============================================================================
//        RCSTA1 Bits

extern __at(0x0FAB) __sfr 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                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned ADEN               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __RCSTA1bits_t;

extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits;

#define _RCSTA1_RX9D            0x01
#define _RCSTA1_OERR            0x02
#define _RCSTA1_FERR            0x04
#define _RCSTA1_ADDEN           0x08
#define _RCSTA1_ADEN            0x08
#define _RCSTA1_CREN            0x10
#define _RCSTA1_SREN            0x20
#define _RCSTA1_RX9             0x40
#define _RCSTA1_SPEN            0x80

//==============================================================================


//==============================================================================
//        TXSTA Bits

extern __at(0x0FAC) __sfr TXSTA;

typedef 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;
  } __TXSTAbits_t;

extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;

#define _TX9D                   0x01
#define _TRMT                   0x02
#define _BRGH                   0x04
#define _SENDB                  0x08
#define _SYNC                   0x10
#define _TXEN                   0x20
#define _TX9                    0x40
#define _CSRC                   0x80

//==============================================================================


//==============================================================================
//        TXSTA1 Bits

extern __at(0x0FAC) __sfr TXSTA1;

typedef 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;
  } __TXSTA1bits_t;

extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits;

#define _TXSTA1_TX9D            0x01
#define _TXSTA1_TRMT            0x02
#define _TXSTA1_BRGH            0x04
#define _TXSTA1_SENDB           0x08
#define _TXSTA1_SYNC            0x10
#define _TXSTA1_TXEN            0x20
#define _TXSTA1_TX9             0x40
#define _TXSTA1_CSRC            0x80

//==============================================================================

extern __at(0x0FAD) __sfr TXREG;
extern __at(0x0FAD) __sfr TXREG1;
extern __at(0x0FAE) __sfr RCREG;
extern __at(0x0FAE) __sfr RCREG1;

//==============================================================================
//        SPBRG Bits

extern __at(0x0FAF) __sfr SPBRG;

typedef struct
  {
  unsigned BRG0                 : 1;
  unsigned BRG1                 : 1;
  unsigned BRG2                 : 1;
  unsigned BRG3                 : 1;
  unsigned BRG4                 : 1;
  unsigned BRG5                 : 1;
  unsigned BRG6                 : 1;
  unsigned BRG7                 : 1;
  } __SPBRGbits_t;

extern __at(0x0FAF) volatile __SPBRGbits_t SPBRGbits;

#define _BRG0                   0x01
#define _BRG1                   0x02
#define _BRG2                   0x04
#define _BRG3                   0x08
#define _BRG4                   0x10
#define _BRG5                   0x20
#define _BRG6                   0x40
#define _BRG7                   0x80

//==============================================================================


//==============================================================================
//        SPBRG1 Bits

extern __at(0x0FAF) __sfr SPBRG1;

typedef struct
  {
  unsigned BRG0                 : 1;
  unsigned BRG1                 : 1;
  unsigned BRG2                 : 1;
  unsigned BRG3                 : 1;
  unsigned BRG4                 : 1;
  unsigned BRG5                 : 1;
  unsigned BRG6                 : 1;
  unsigned BRG7                 : 1;
  } __SPBRG1bits_t;

extern __at(0x0FAF) volatile __SPBRG1bits_t SPBRG1bits;

#define _SPBRG1_BRG0            0x01
#define _SPBRG1_BRG1            0x02
#define _SPBRG1_BRG2            0x04
#define _SPBRG1_BRG3            0x08
#define _SPBRG1_BRG4            0x10
#define _SPBRG1_BRG5            0x20
#define _SPBRG1_BRG6            0x40
#define _SPBRG1_BRG7            0x80

//==============================================================================


//==============================================================================
//        T3GCON Bits

extern __at(0x0FB0) __sfr T3GCON;

typedef union
  {
  struct
    {
    unsigned T3GSS0             : 1;
    unsigned T3GSS1             : 1;
    unsigned T3GVAL             : 1;
    unsigned T3GGO_NOT_T3DONE   : 1;
    unsigned T3GSPM             : 1;
    unsigned T3GTM              : 1;
    unsigned T3GPOL             : 1;
    unsigned TMR3GE             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned T3GGO              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_T3DONE         : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned T3GSS              : 2;
    unsigned                    : 6;
    };
  } __T3GCONbits_t;

extern __at(0x0FB0) volatile __T3GCONbits_t T3GCONbits;

#define _T3GSS0                 0x01
#define _T3GSS1                 0x02
#define _T3GVAL                 0x04
#define _T3GGO_NOT_T3DONE       0x08
#define _T3GGO                  0x08
#define _NOT_T3DONE             0x08
#define _T3GSPM                 0x10
#define _T3GTM                  0x20
#define _T3GPOL                 0x40
#define _TMR3GE                 0x80

//==============================================================================


//==============================================================================
//        T3CON Bits

extern __at(0x0FB1) __sfr T3CON;

typedef union
  {
  struct
    {
    unsigned TMR3ON             : 1;
    unsigned RD16               : 1;
    unsigned NOT_T3SYNC         : 1;
    unsigned SOSCEN             : 1;
    unsigned T3CKPS0            : 1;
    unsigned T3CKPS1            : 1;
    unsigned TMR3CS0            : 1;
    unsigned TMR3CS1            : 1;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T3CKPS             : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned TMR3CS             : 2;
    };
  } __T3CONbits_t;

extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits;

#define _T3CON_TMR3ON           0x01
#define _T3CON_RD16             0x02
#define _T3CON_NOT_T3SYNC       0x04
#define _T3CON_SOSCEN           0x08
#define _T3CON_T3CKPS0          0x10
#define _T3CON_T3CKPS1          0x20
#define _T3CON_TMR3CS0          0x40
#define _T3CON_TMR3CS1          0x80

//==============================================================================

extern __at(0x0FB2) __sfr TMR3;
extern __at(0x0FB2) __sfr TMR3L;
extern __at(0x0FB3) __sfr TMR3H;

//==============================================================================
//        PIE4 Bits

extern __at(0x0FB4) __sfr PIE4;

typedef struct
  {
  unsigned ECCP3IE              : 1;
  unsigned CCP4IE               : 1;
  unsigned CCP5IE               : 1;
  unsigned CCP6IE               : 1;
  unsigned CCP7IE               : 1;
  unsigned CCP8IE               : 1;
  unsigned CCP9IE               : 1;
  unsigned CCP10IE              : 1;
  } __PIE4bits_t;

extern __at(0x0FB4) volatile __PIE4bits_t PIE4bits;

#define _ECCP3IE                0x01
#define _CCP4IE                 0x02
#define _CCP5IE                 0x04
#define _CCP6IE                 0x08
#define _CCP7IE                 0x10
#define _CCP8IE                 0x20
#define _CCP9IE                 0x40
#define _CCP10IE                0x80

//==============================================================================


//==============================================================================
//        PIR4 Bits

extern __at(0x0FB5) __sfr PIR4;

typedef struct
  {
  unsigned ECCP3IF              : 1;
  unsigned CCP4IF               : 1;
  unsigned CCP5IF               : 1;
  unsigned CCP6IF               : 1;
  unsigned CCP7IF               : 1;
  unsigned CCP8IF               : 1;
  unsigned CCP9IF               : 1;
  unsigned CCP10IF              : 1;
  } __PIR4bits_t;

extern __at(0x0FB5) volatile __PIR4bits_t PIR4bits;

#define _ECCP3IF                0x01
#define _CCP4IF                 0x02
#define _CCP5IF                 0x04
#define _CCP6IF                 0x08
#define _CCP7IF                 0x10
#define _CCP8IF                 0x20
#define _CCP9IF                 0x40
#define _CCP10IF                0x80

//==============================================================================


//==============================================================================
//        IPR4 Bits

extern __at(0x0FB6) __sfr IPR4;

typedef struct
  {
  unsigned ECCP3IP              : 1;
  unsigned CCP4IP               : 1;
  unsigned CCP5IP               : 1;
  unsigned CCP6IP               : 1;
  unsigned CCP7IP               : 1;
  unsigned CCP8IP               : 1;
  unsigned CCP9IP               : 1;
  unsigned CCP10IP              : 1;
  } __IPR4bits_t;

extern __at(0x0FB6) volatile __IPR4bits_t IPR4bits;

#define _ECCP3IP                0x01
#define _CCP4IP                 0x02
#define _CCP5IP                 0x04
#define _CCP6IP                 0x08
#define _CCP7IP                 0x10
#define _CCP8IP                 0x20
#define _CCP9IP                 0x40
#define _CCP10IP                0x80

//==============================================================================


//==============================================================================
//        PIE5 Bits

extern __at(0x0FB7) __sfr PIE5;

typedef struct
  {
  unsigned TMR4IE               : 1;
  unsigned TMR5IE               : 1;
  unsigned TMR6IE               : 1;
  unsigned                      : 1;
  unsigned TMR8IE               : 1;
  unsigned ACTLOCKIE            : 1;
  unsigned ACTORSIE             : 1;
  unsigned                      : 1;
  } __PIE5bits_t;

extern __at(0x0FB7) volatile __PIE5bits_t PIE5bits;

#define _TMR4IE                 0x01
#define _TMR5IE                 0x02
#define _TMR6IE                 0x04
#define _TMR8IE                 0x10
#define _ACTLOCKIE              0x20
#define _ACTORSIE               0x40

//==============================================================================


//==============================================================================
//        PIR5 Bits

extern __at(0x0FB8) __sfr PIR5;

typedef struct
  {
  unsigned TMR4IF               : 1;
  unsigned TMR5IF               : 1;
  unsigned TMR6IF               : 1;
  unsigned                      : 1;
  unsigned TMR8IF               : 1;
  unsigned ACTLOCKIF            : 1;
  unsigned ACTORSIF             : 1;
  unsigned                      : 1;
  } __PIR5bits_t;

extern __at(0x0FB8) volatile __PIR5bits_t PIR5bits;

#define _TMR4IF                 0x01
#define _TMR5IF                 0x02
#define _TMR6IF                 0x04
#define _TMR8IF                 0x10
#define _ACTLOCKIF              0x20
#define _ACTORSIF               0x40

//==============================================================================


//==============================================================================
//        CCP1CON Bits

extern __at(0x0FB9) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CCP1Y              : 1;
    unsigned CCP1X              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CCP1M              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned DC1B               : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned P1M                : 2;
    };
  } __CCP1CONbits_t;

extern __at(0x0FB9) volatile __CCP1CONbits_t CCP1CONbits;

#define _CCP1M0                 0x01
#define _CCP1M1                 0x02
#define _CCP1M2                 0x04
#define _CCP1M3                 0x08
#define _DC1B0                  0x10
#define _CCP1Y                  0x10
#define _DC1B1                  0x20
#define _CCP1X                  0x20
#define _P1M0                   0x40
#define _P1M1                   0x80

//==============================================================================

extern __at(0x0FBA) __sfr CCPR1;
extern __at(0x0FBA) __sfr CCPR1L;
extern __at(0x0FBB) __sfr CCPR1H;

//==============================================================================
//        ECCP1DEL Bits

extern __at(0x0FBC) __sfr ECCP1DEL;

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 P1DC               : 7;
    unsigned                    : 1;
    };
  } __ECCP1DELbits_t;

extern __at(0x0FBC) volatile __ECCP1DELbits_t ECCP1DELbits;

#define _P1DC0                  0x01
#define _P1DC1                  0x02
#define _P1DC2                  0x04
#define _P1DC3                  0x08
#define _P1DC4                  0x10
#define _P1DC5                  0x20
#define _P1DC6                  0x40
#define _P1RSEN                 0x80

//==============================================================================


//==============================================================================
//        ECCP1AS Bits

extern __at(0x0FBD) __sfr ECCP1AS;

typedef union
  {
  struct
    {
    unsigned PSS1BD0            : 1;
    unsigned PSS1BD1            : 1;
    unsigned PSS1AC0            : 1;
    unsigned PSS1AC1            : 1;
    unsigned ECCP1AS0           : 1;
    unsigned ECCP1AS1           : 1;
    unsigned ECCP1AS2           : 1;
    unsigned ECCP1ASE           : 1;
    };

  struct
    {
    unsigned PSS1BD             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 2;
    unsigned PSS1AC             : 2;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned ECCP1AS            : 3;
    unsigned                    : 1;
    };
  } __ECCP1ASbits_t;

extern __at(0x0FBD) volatile __ECCP1ASbits_t ECCP1ASbits;

#define _PSS1BD0                0x01
#define _PSS1BD1                0x02
#define _PSS1AC0                0x04
#define _PSS1AC1                0x08
#define _ECCP1AS0               0x10
#define _ECCP1AS1               0x20
#define _ECCP1AS2               0x40
#define _ECCP1ASE               0x80

//==============================================================================


//==============================================================================
//        CVRCONL Bits

extern __at(0x0FBE) __sfr CVRCONL;

typedef union
  {
  struct
    {
    unsigned CVRNSS             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned CVRPSS0            : 1;
    unsigned CVRPSS1            : 1;
    unsigned CVROE              : 1;
    unsigned CVREN              : 1;
    };

  struct
    {
    unsigned                    : 4;
    unsigned CVRPSS             : 2;
    unsigned                    : 2;
    };
  } __CVRCONLbits_t;

extern __at(0x0FBE) volatile __CVRCONLbits_t CVRCONLbits;

#define _CVRNSS                 0x01
#define _CVRPSS0                0x10
#define _CVRPSS1                0x20
#define _CVROE                  0x40
#define _CVREN                  0x80

//==============================================================================


//==============================================================================
//        CVRCONH Bits

extern __at(0x0FBF) __sfr CVRCONH;

typedef union
  {
  struct
    {
    unsigned CVR0               : 1;
    unsigned CVR1               : 1;
    unsigned CVR2               : 1;
    unsigned CVR3               : 1;
    unsigned CVR4               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned CVR                : 5;
    unsigned                    : 3;
    };
  } __CVRCONHbits_t;

extern __at(0x0FBF) volatile __CVRCONHbits_t CVRCONHbits;

#define _CVR0                   0x01
#define _CVR1                   0x02
#define _CVR2                   0x04
#define _CVR3                   0x08
#define _CVR4                   0x10

//==============================================================================


//==============================================================================
//        ADCON1L Bits

extern __at(0x0FC0) __sfr ADCON1L;

typedef union
  {
  struct
    {
    unsigned DONE               : 1;
    unsigned SAMP               : 1;
    unsigned ASAM               : 1;
    unsigned                    : 1;
    unsigned SSRC0              : 1;
    unsigned SSRC1              : 1;
    unsigned SSRC2              : 1;
    unsigned SSRC3              : 1;
    };

  struct
    {
    unsigned                    : 4;
    unsigned SSRC               : 4;
    };
  } __ADCON1Lbits_t;

extern __at(0x0FC0) volatile __ADCON1Lbits_t ADCON1Lbits;

#define _DONE                   0x01
#define _SAMP                   0x02
#define _ASAM                   0x04
#define _SSRC0                  0x10
#define _SSRC1                  0x20
#define _SSRC2                  0x40
#define _SSRC3                  0x80

//==============================================================================


//==============================================================================
//        ADCON1H Bits

extern __at(0x0FC1) __sfr ADCON1H;

typedef union
  {
  struct
    {
    unsigned FORM0              : 1;
    unsigned FORM1              : 1;
    unsigned MODE12             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned ADON               : 1;
    };

  struct
    {
    unsigned FORM               : 2;
    unsigned                    : 6;
    };
  } __ADCON1Hbits_t;

extern __at(0x0FC1) volatile __ADCON1Hbits_t ADCON1Hbits;

#define _FORM0                  0x01
#define _FORM1                  0x02
#define _MODE12                 0x04
#define _ADON                   0x80

//==============================================================================

extern __at(0x0FC2) __sfr ADCBUF0;
extern __at(0x0FC2) __sfr ADCBUF0L;
extern __at(0x0FC3) __sfr ADCBUF0H;

//==============================================================================
//        CMSTAT Bits

extern __at(0x0FC4) __sfr CMSTAT;

typedef struct
  {
  unsigned C1OUT                : 1;
  unsigned C2OUT                : 1;
  unsigned C3OUT                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __CMSTATbits_t;

extern __at(0x0FC4) volatile __CMSTATbits_t CMSTATbits;

#define _C1OUT                  0x01
#define _C2OUT                  0x02
#define _C3OUT                  0x04

//==============================================================================


//==============================================================================
//        SSP1CON2 Bits

extern __at(0x0FC5) __sfr 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;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ADMSK1             : 1;
    unsigned ADMSK2             : 1;
    unsigned ADMSK3             : 1;
    unsigned ADMSK4             : 1;
    unsigned ADMSK5             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __SSP1CON2bits_t;

extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits;

#define _SEN                    0x01
#define _RSEN                   0x02
#define _ADMSK1                 0x02
#define _PEN                    0x04
#define _ADMSK2                 0x04
#define _RCEN                   0x08
#define _ADMSK3                 0x08
#define _ACKEN                  0x10
#define _ADMSK4                 0x10
#define _ACKDT                  0x20
#define _ADMSK5                 0x20
#define _ACKSTAT                0x40
#define _GCEN                   0x80

//==============================================================================


//==============================================================================
//        SSP1CON1 Bits

extern __at(0x0FC6) __sfr 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;
    };

  struct
    {
    unsigned SSPM               : 4;
    unsigned                    : 4;
    };
  } __SSP1CON1bits_t;

extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits;

#define _SSPM0                  0x01
#define _SSPM1                  0x02
#define _SSPM2                  0x04
#define _SSPM3                  0x08
#define _CKP                    0x10
#define _SSPEN                  0x20
#define _SSPOV                  0x40
#define _WCOL                   0x80

//==============================================================================


//==============================================================================
//        SSP1STAT Bits

extern __at(0x0FC7) __sfr 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_W                : 1;
    unsigned I2C_START          : 1;
    unsigned I2C_STOP           : 1;
    unsigned D_A                : 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 NOT_WRITE          : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_ADDRESS        : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned READ_WRITE         : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned DATA_ADDRESS       : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned I2C_READ           : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned I2C_DAT            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __SSP1STATbits_t;

extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits;

#define _BF                     0x01
#define _UA                     0x02
#define _R_NOT_W                0x04
#define _R_W                    0x04
#define _NOT_W                  0x04
#define _NOT_WRITE              0x04
#define _READ_WRITE             0x04
#define _I2C_READ               0x04
#define _S                      0x08
#define _I2C_START              0x08
#define _P                      0x10
#define _I2C_STOP               0x10
#define _D_NOT_A                0x20
#define _D_A                    0x20
#define _NOT_A                  0x20
#define _NOT_ADDRESS            0x20
#define _DATA_ADDRESS           0x20
#define _I2C_DAT                0x20
#define _CKE                    0x40
#define _SMP                    0x80

//==============================================================================

extern __at(0x0FC8) __sfr SSP1ADD;
extern __at(0x0FC9) __sfr SSP1BUF;

//==============================================================================
//        T2CON Bits

extern __at(0x0FCA) __sfr 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;
    };

  struct
    {
    unsigned T2CKPS             : 2;
    unsigned                    : 6;
    };

  struct
    {
    unsigned                    : 3;
    unsigned T2OUTPS            : 4;
    unsigned                    : 1;
    };
  } __T2CONbits_t;

extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits;

#define _T2CKPS0                0x01
#define _T2CKPS1                0x02
#define _TMR2ON                 0x04
#define _T2OUTPS0               0x08
#define _T2OUTPS1               0x10
#define _T2OUTPS2               0x20
#define _T2OUTPS3               0x40

//==============================================================================

extern __at(0x0FCB) __sfr PR2;
extern __at(0x0FCC) __sfr TMR2;

//==============================================================================
//        T1CON Bits

extern __at(0x0FCD) __sfr T1CON;

typedef union
  {
  struct
    {
    unsigned TMR1ON             : 1;
    unsigned RD16               : 1;
    unsigned NOT_T1SYNC         : 1;
    unsigned SOSCEN             : 1;
    unsigned T1CKPS0            : 1;
    unsigned T1CKPS1            : 1;
    unsigned TMR1CS0            : 1;
    unsigned TMR1CS1            : 1;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T1CKPS             : 2;
    unsigned                    : 2;
    };

  struct
    {
    unsigned                    : 6;
    unsigned TMR1CS             : 2;
    };
  } __T1CONbits_t;

extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;

#define _TMR1ON                 0x01
#define _RD16                   0x02
#define _NOT_T1SYNC             0x04
#define _SOSCEN                 0x08
#define _T1CKPS0                0x10
#define _T1CKPS1                0x20
#define _TMR1CS0                0x40
#define _TMR1CS1                0x80

//==============================================================================

extern __at(0x0FCE) __sfr TMR1;
extern __at(0x0FCE) __sfr TMR1L;
extern __at(0x0FCF) __sfr TMR1H;

//==============================================================================
//        RCON Bits

extern __at(0x0FD0) __sfr 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 NOT_CM             : 1;
    unsigned                    : 1;
    unsigned IPEN               : 1;
    };

  struct
    {
    unsigned BOR                : 1;
    unsigned POR                : 1;
    unsigned PD                 : 1;
    unsigned TO                 : 1;
    unsigned RI                 : 1;
    unsigned CM                 : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __RCONbits_t;

extern __at(0x0FD0) volatile __RCONbits_t RCONbits;

#define _RCON_NOT_BOR           0x01
#define _RCON_BOR               0x01
#define _RCON_NOT_POR           0x02
#define _RCON_POR               0x02
#define _RCON_NOT_PD            0x04
#define _RCON_PD                0x04
#define _RCON_NOT_TO            0x08
#define _RCON_TO                0x08
#define _RCON_NOT_RI            0x10
#define _RCON_RI                0x10
#define _RCON_NOT_CM            0x20
#define _RCON_CM                0x20
#define _RCON_IPEN              0x80

//==============================================================================


//==============================================================================
//        IOCF Bits

extern __at(0x0FD1) __sfr IOCF;

typedef struct
  {
  unsigned IOCF0                : 1;
  unsigned IOCF1                : 1;
  unsigned IOCF2                : 1;
  unsigned IOCF3                : 1;
  unsigned IOCF4                : 1;
  unsigned IOCF5                : 1;
  unsigned IOCF6                : 1;
  unsigned IOCF7                : 1;
  } __IOCFbits_t;

extern __at(0x0FD1) volatile __IOCFbits_t IOCFbits;

#define _IOCF0                  0x01
#define _IOCF1                  0x02
#define _IOCF2                  0x04
#define _IOCF3                  0x08
#define _IOCF4                  0x10
#define _IOCF5                  0x20
#define _IOCF6                  0x40
#define _IOCF7                  0x80

//==============================================================================


//==============================================================================
//        IPR5 Bits

extern __at(0x0FD2) __sfr IPR5;

typedef struct
  {
  unsigned TMR4IP               : 1;
  unsigned TMR5IP               : 1;
  unsigned TMR6IP               : 1;
  unsigned                      : 1;
  unsigned TMR8IP               : 1;
  unsigned ACTLOCKIP            : 1;
  unsigned ACTORSIP             : 1;
  unsigned                      : 1;
  } __IPR5bits_t;

extern __at(0x0FD2) volatile __IPR5bits_t IPR5bits;

#define _TMR4IP                 0x01
#define _TMR5IP                 0x02
#define _TMR6IP                 0x04
#define _TMR8IP                 0x10
#define _ACTLOCKIP              0x20
#define _ACTORSIP               0x40

//==============================================================================


//==============================================================================
//        OSCCON Bits

extern __at(0x0FD3) __sfr OSCCON;

typedef union
  {
  struct
    {
    unsigned NOSC0              : 1;
    unsigned NOSC1              : 1;
    unsigned NOSC2              : 1;
    unsigned                    : 1;
    unsigned COSC0              : 1;
    unsigned COSC1              : 1;
    unsigned COSC2              : 1;
    unsigned IDLEN              : 1;
    };

  struct
    {
    unsigned NOSC               : 3;
    unsigned                    : 5;
    };

  struct
    {
    unsigned                    : 4;
    unsigned COSC               : 3;
    unsigned                    : 1;
    };
  } __OSCCONbits_t;

extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;

#define _NOSC0                  0x01
#define _NOSC1                  0x02
#define _NOSC2                  0x04
#define _COSC0                  0x10
#define _COSC1                  0x20
#define _COSC2                  0x40
#define _IDLEN                  0x80

//==============================================================================


//==============================================================================
//        T0CON Bits

extern __at(0x0FD5) __sfr T0CON;

typedef union
  {
  struct
    {
    unsigned T0PS0              : 1;
    unsigned T0PS1              : 1;
    unsigned T0PS2              : 1;
    unsigned PSA                : 1;
    unsigned T0CS0              : 1;
    unsigned T0CS1              : 1;
    unsigned T08BIT             : 1;
    unsigned TMR0ON             : 1;
    };

  struct
    {
    unsigned T0PS               : 3;
    unsigned                    : 5;
    };

  struct
    {
    unsigned                    : 4;
    unsigned T0CS               : 2;
    unsigned                    : 2;
    };
  } __T0CONbits_t;

extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;

#define _T0PS0                  0x01
#define _T0PS1                  0x02
#define _T0PS2                  0x04
#define _PSA                    0x08
#define _T0CS0                  0x10
#define _T0CS1                  0x20
#define _T08BIT                 0x40
#define _TMR0ON                 0x80

//==============================================================================

extern __at(0x0FD6) __sfr TMR0;
extern __at(0x0FD6) __sfr TMR0L;
extern __at(0x0FD7) __sfr TMR0H;

//==============================================================================
//        STATUS Bits

extern __at(0x0FD8) __sfr STATUS;

typedef 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 __at(0x0FD8) volatile __STATUSbits_t STATUSbits;

#define _C                      0x01
#define _DC                     0x02
#define _Z                      0x04
#define _OV                     0x08
#define _N                      0x10

//==============================================================================

extern __at(0x0FD9) __sfr FSR2L;
extern __at(0x0FDA) __sfr FSR2H;
extern __at(0x0FDB) __sfr PLUSW2;
extern __at(0x0FDC) __sfr PREINC2;
extern __at(0x0FDD) __sfr POSTDEC2;
extern __at(0x0FDE) __sfr POSTINC2;
extern __at(0x0FDF) __sfr INDF2;
extern __at(0x0FE0) __sfr BSR;
extern __at(0x0FE1) __sfr FSR1L;
extern __at(0x0FE2) __sfr FSR1H;
extern __at(0x0FE3) __sfr PLUSW1;
extern __at(0x0FE4) __sfr PREINC1;
extern __at(0x0FE5) __sfr POSTDEC1;
extern __at(0x0FE6) __sfr POSTINC1;
extern __at(0x0FE7) __sfr INDF1;
extern __at(0x0FE8) __sfr WREG;
extern __at(0x0FE9) __sfr FSR0L;
extern __at(0x0FEA) __sfr FSR0H;
extern __at(0x0FEB) __sfr PLUSW0;
extern __at(0x0FEC) __sfr PREINC0;
extern __at(0x0FED) __sfr POSTDEC0;
extern __at(0x0FEE) __sfr POSTINC0;
extern __at(0x0FEF) __sfr INDF0;

//==============================================================================
//        INTCON3 Bits

extern __at(0x0FF0) __sfr INTCON3;

typedef union
  {
  struct
    {
    unsigned INT1IF             : 1;
    unsigned INT2IF             : 1;
    unsigned INT3IF             : 1;
    unsigned INT1IE             : 1;
    unsigned INT2IE             : 1;
    unsigned INT3IE             : 1;
    unsigned INT1IP             : 1;
    unsigned INT2IP             : 1;
    };

  struct
    {
    unsigned INT1F              : 1;
    unsigned INT2F              : 1;
    unsigned INT3F              : 1;
    unsigned INT1E              : 1;
    unsigned INT2E              : 1;
    unsigned INT3E              : 1;
    unsigned INT1P              : 1;
    unsigned INT2P              : 1;
    };
  } __INTCON3bits_t;

extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;

#define _INT1IF                 0x01
#define _INT1F                  0x01
#define _INT2IF                 0x02
#define _INT2F                  0x02
#define _INT3IF                 0x04
#define _INT3F                  0x04
#define _INT1IE                 0x08
#define _INT1E                  0x08
#define _INT2IE                 0x10
#define _INT2E                  0x10
#define _INT3IE                 0x20
#define _INT3E                  0x20
#define _INT1IP                 0x40
#define _INT1P                  0x40
#define _INT2IP                 0x80
#define _INT2P                  0x80

//==============================================================================


//==============================================================================
//        INTCON2 Bits

extern __at(0x0FF1) __sfr INTCON2;

typedef union
  {
  struct
    {
    unsigned IOCIP              : 1;
    unsigned INT3IP             : 1;
    unsigned TMR0IP             : 1;
    unsigned INTEDG3            : 1;
    unsigned INTEDG2            : 1;
    unsigned INTEDG1            : 1;
    unsigned INTEDG0            : 1;
    unsigned NOT_RBPU           : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned INT3P              : 1;
    unsigned T0IP               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RBPU               : 1;
    };
  } __INTCON2bits_t;

extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;

#define _IOCIP                  0x01
#define _INT3IP                 0x02
#define _INT3P                  0x02
#define _TMR0IP                 0x04
#define _T0IP                   0x04
#define _INTEDG3                0x08
#define _INTEDG2                0x10
#define _INTEDG1                0x20
#define _INTEDG0                0x40
#define _NOT_RBPU               0x80
#define _RBPU                   0x80

//==============================================================================


//==============================================================================
//        INTCON Bits

extern __at(0x0FF2) __sfr INTCON;

typedef union
  {
  struct
    {
    unsigned IOCIF              : 1;
    unsigned INT0IF             : 1;
    unsigned TMR0IF             : 1;
    unsigned IOCIE              : 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 __at(0x0FF2) volatile __INTCONbits_t INTCONbits;

#define _IOCIF                  0x01
#define _INT0IF                 0x02
#define _INT0F                  0x02
#define _TMR0IF                 0x04
#define _T0IF                   0x04
#define _IOCIE                  0x08
#define _INT0IE                 0x10
#define _INT0E                  0x10
#define _TMR0IE                 0x20
#define _T0IE                   0x20
#define _PEIE_GIEL              0x40
#define _PEIE                   0x40
#define _GIEL                   0x40
#define _GIE_GIEH               0x80
#define _GIE                    0x80
#define _GIEH                   0x80

//==============================================================================

extern __at(0x0FF3) __sfr PROD;
extern __at(0x0FF3) __sfr PRODL;
extern __at(0x0FF4) __sfr PRODH;
extern __at(0x0FF5) __sfr TABLAT;
extern __at(0x0FF6) __sfr TBLPTR;
extern __at(0x0FF6) __sfr TBLPTRL;
extern __at(0x0FF7) __sfr TBLPTRH;
extern __at(0x0FF8) __sfr TBLPTRU;
extern __at(0x0FF9) __sfr PC;
extern __at(0x0FF9) __sfr PCL;
extern __at(0x0FFA) __sfr PCLATH;
extern __at(0x0FFB) __sfr PCLATU;

//==============================================================================
//        STKPTR Bits

extern __at(0x0FFC) __sfr STKPTR;

typedef union
  {
  struct
    {
    unsigned SP0                : 1;
    unsigned SP1                : 1;
    unsigned SP2                : 1;
    unsigned SP3                : 1;
    unsigned SP4                : 1;
    unsigned                    : 1;
    unsigned STKUNF             : 1;
    unsigned STKFUL             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned STKOVF             : 1;
    };

  struct
    {
    unsigned SP                 : 5;
    unsigned                    : 3;
    };
  } __STKPTRbits_t;

extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;

#define _SP0                    0x01
#define _SP1                    0x02
#define _SP2                    0x04
#define _SP3                    0x08
#define _SP4                    0x10
#define _STKUNF                 0x40
#define _STKFUL                 0x80
#define _STKOVF                 0x80

//==============================================================================

extern __at(0x0FFD) __sfr TOS;
extern __at(0x0FFD) __sfr TOSL;
extern __at(0x0FFE) __sfr TOSH;
extern __at(0x0FFF) __sfr TOSU;

//==============================================================================
//
//        Configuration Addresses
//
//==============================================================================

#define __CONFIG1L              0x01FFF0
#define __CONFIG1H              0x01FFF1
#define __CONFIG2L              0x01FFF2
#define __CONFIG2H              0x01FFF3
#define __CONFIG3L              0x01FFF4
#define __CONFIG3H              0x01FFF5
#define __CONFIG4L              0x01FFF6
#define __CONFIG4H              0x01FFF7
#define __CONFIG5L              0x01FFF8
#define __CONFIG5H              0x01FFF9
#define __CONFIG6L              0x01FFFA
#define __CONFIG6H              0x01FFFB
#define __CONFIG7L              0x01FFFC
#define __CONFIG7H              0x01FFFD
#define __CONFIG8L              0x01FFFE
#define __CONFIG8H              0x01FFFF

//==============================================================================

#endif // #ifndef __PIC18F97J94_H__
