/*
 * This declarations of the PIC18LF25K80 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:54 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 __PIC18LF25K80_H__
#define __PIC18LF25K80_H__

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

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


//==============================================================================
//        RXERRCNT Bits

extern __at(0x0E41) __sfr RXERRCNT;

typedef struct
  {
  unsigned REC0                 : 1;
  unsigned REC1                 : 1;
  unsigned REC2                 : 1;
  unsigned REC3                 : 1;
  unsigned REC4                 : 1;
  unsigned REC5                 : 1;
  unsigned REC6                 : 1;
  unsigned REC7                 : 1;
  } __RXERRCNTbits_t;

extern __at(0x0E41) volatile __RXERRCNTbits_t RXERRCNTbits;

#define _REC0                   0x01
#define _REC1                   0x02
#define _REC2                   0x04
#define _REC3                   0x08
#define _REC4                   0x10
#define _REC5                   0x20
#define _REC6                   0x40
#define _REC7                   0x80

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


//==============================================================================
//        TXERRCNT Bits

extern __at(0x0E42) __sfr TXERRCNT;

typedef struct
  {
  unsigned TEC0                 : 1;
  unsigned TEC1                 : 1;
  unsigned TEC2                 : 1;
  unsigned TEC3                 : 1;
  unsigned TEC4                 : 1;
  unsigned TEC5                 : 1;
  unsigned TEC6                 : 1;
  unsigned TEC7                 : 1;
  } __TXERRCNTbits_t;

extern __at(0x0E42) volatile __TXERRCNTbits_t TXERRCNTbits;

#define _TEC0                   0x01
#define _TEC1                   0x02
#define _TEC2                   0x04
#define _TEC3                   0x08
#define _TEC4                   0x10
#define _TEC5                   0x20
#define _TEC6                   0x40
#define _TEC7                   0x80

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


//==============================================================================
//        BRGCON1 Bits

extern __at(0x0E43) __sfr BRGCON1;

typedef union
  {
  struct
    {
    unsigned BRP0               : 1;
    unsigned BRP1               : 1;
    unsigned BRP2               : 1;
    unsigned BRP3               : 1;
    unsigned BRP4               : 1;
    unsigned BRP5               : 1;
    unsigned SJW0               : 1;
    unsigned SJW1               : 1;
    };

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

  struct
    {
    unsigned                    : 6;
    unsigned SJW                : 2;
    };
  } __BRGCON1bits_t;

extern __at(0x0E43) volatile __BRGCON1bits_t BRGCON1bits;

#define _BRP0                   0x01
#define _BRP1                   0x02
#define _BRP2                   0x04
#define _BRP3                   0x08
#define _BRP4                   0x10
#define _BRP5                   0x20
#define _SJW0                   0x40
#define _SJW1                   0x80

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


//==============================================================================
//        BRGCON2 Bits

extern __at(0x0E44) __sfr BRGCON2;

typedef union
  {
  struct
    {
    unsigned PRSEG0             : 1;
    unsigned PRSEG1             : 1;
    unsigned PRSEG2             : 1;
    unsigned SEG1PH0            : 1;
    unsigned SEG1PH1            : 1;
    unsigned SEG1PH2            : 1;
    unsigned SAM                : 1;
    unsigned SEG2PHTS           : 1;
    };

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

  struct
    {
    unsigned                    : 3;
    unsigned SEG1PH             : 3;
    unsigned                    : 2;
    };
  } __BRGCON2bits_t;

extern __at(0x0E44) volatile __BRGCON2bits_t BRGCON2bits;

#define _PRSEG0                 0x01
#define _PRSEG1                 0x02
#define _PRSEG2                 0x04
#define _SEG1PH0                0x08
#define _SEG1PH1                0x10
#define _SEG1PH2                0x20
#define _SAM                    0x40
#define _SEG2PHTS               0x80

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


//==============================================================================
//        BRGCON3 Bits

extern __at(0x0E45) __sfr BRGCON3;

typedef union
  {
  struct
    {
    unsigned SEG2PH0            : 1;
    unsigned SEG2PH1            : 1;
    unsigned SEG2PH2            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned WAKFIL             : 1;
    unsigned WAKDIS             : 1;
    };

  struct
    {
    unsigned SEG2PH             : 3;
    unsigned                    : 5;
    };
  } __BRGCON3bits_t;

extern __at(0x0E45) volatile __BRGCON3bits_t BRGCON3bits;

#define _SEG2PH0                0x01
#define _SEG2PH1                0x02
#define _SEG2PH2                0x04
#define _WAKFIL                 0x40
#define _WAKDIS                 0x80

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


//==============================================================================
//        RXFCON0 Bits

extern __at(0x0E46) __sfr RXFCON0;

typedef struct
  {
  unsigned RXF0EN               : 1;
  unsigned RXF1EN               : 1;
  unsigned RXF2EN               : 1;
  unsigned RXF3EN               : 1;
  unsigned RXF4EN               : 1;
  unsigned RXF5EN               : 1;
  unsigned RXF6EN               : 1;
  unsigned RXF7EN               : 1;
  } __RXFCON0bits_t;

extern __at(0x0E46) volatile __RXFCON0bits_t RXFCON0bits;

#define _RXF0EN                 0x01
#define _RXF1EN                 0x02
#define _RXF2EN                 0x04
#define _RXF3EN                 0x08
#define _RXF4EN                 0x10
#define _RXF5EN                 0x20
#define _RXF6EN                 0x40
#define _RXF7EN                 0x80

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


//==============================================================================
//        RXFCON1 Bits

extern __at(0x0E47) __sfr RXFCON1;

typedef struct
  {
  unsigned RXF8EN               : 1;
  unsigned RXF9EN               : 1;
  unsigned RXF10EN              : 1;
  unsigned RXF11EN              : 1;
  unsigned RXF12EN              : 1;
  unsigned RXF13EN              : 1;
  unsigned RXF14EN              : 1;
  unsigned RXF15EN              : 1;
  } __RXFCON1bits_t;

extern __at(0x0E47) volatile __RXFCON1bits_t RXFCON1bits;

#define _RXF8EN                 0x01
#define _RXF9EN                 0x02
#define _RXF10EN                0x04
#define _RXF11EN                0x08
#define _RXF12EN                0x10
#define _RXF13EN                0x20
#define _RXF14EN                0x40
#define _RXF15EN                0x80

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


//==============================================================================
//        RXF6SIDH Bits

extern __at(0x0E48) __sfr RXF6SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF6SIDHbits_t;

extern __at(0x0E48) volatile __RXF6SIDHbits_t RXF6SIDHbits;

#define _RXF6SIDH_SID3          0x01
#define _RXF6SIDH_SID4          0x02
#define _RXF6SIDH_SID5          0x04
#define _RXF6SIDH_SID6          0x08
#define _RXF6SIDH_SID7          0x10
#define _RXF6SIDH_SID8          0x20
#define _RXF6SIDH_SID9          0x40
#define _RXF6SIDH_SID10         0x80

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


//==============================================================================
//        RXF6SIDL Bits

extern __at(0x0E49) __sfr RXF6SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF6SIDLbits_t;

extern __at(0x0E49) volatile __RXF6SIDLbits_t RXF6SIDLbits;

#define _RXF6SIDL_EID16         0x01
#define _RXF6SIDL_EID17         0x02
#define _RXF6SIDL_EXIDEN        0x08
#define _RXF6SIDL_SID0          0x20
#define _RXF6SIDL_SID1          0x40
#define _RXF6SIDL_SID2          0x80

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


//==============================================================================
//        RXF6EIDH Bits

extern __at(0x0E4A) __sfr RXF6EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF6EIDHbits_t;

extern __at(0x0E4A) volatile __RXF6EIDHbits_t RXF6EIDHbits;

#define _RXF6EIDH_EID8          0x01
#define _RXF6EIDH_EID9          0x02
#define _RXF6EIDH_EID10         0x04
#define _RXF6EIDH_EID11         0x08
#define _RXF6EIDH_EID12         0x10
#define _RXF6EIDH_EID13         0x20
#define _RXF6EIDH_EID14         0x40
#define _RXF6EIDH_EID15         0x80

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


//==============================================================================
//        RXF6EIDL Bits

extern __at(0x0E4B) __sfr RXF6EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF6EIDLbits_t;

extern __at(0x0E4B) volatile __RXF6EIDLbits_t RXF6EIDLbits;

#define _RXF6EIDL_EID0          0x01
#define _RXF6EIDL_EID1          0x02
#define _RXF6EIDL_EID2          0x04
#define _RXF6EIDL_EID3          0x08
#define _RXF6EIDL_EID4          0x10
#define _RXF6EIDL_EID5          0x20
#define _RXF6EIDL_EID6          0x40
#define _RXF6EIDL_EID7          0x80

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


//==============================================================================
//        RXF7SIDH Bits

extern __at(0x0E4C) __sfr RXF7SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF7SIDHbits_t;

extern __at(0x0E4C) volatile __RXF7SIDHbits_t RXF7SIDHbits;

#define _RXF7SIDH_SID3          0x01
#define _RXF7SIDH_SID4          0x02
#define _RXF7SIDH_SID5          0x04
#define _RXF7SIDH_SID6          0x08
#define _RXF7SIDH_SID7          0x10
#define _RXF7SIDH_SID8          0x20
#define _RXF7SIDH_SID9          0x40
#define _RXF7SIDH_SID10         0x80

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


//==============================================================================
//        RXF7SIDL Bits

extern __at(0x0E4D) __sfr RXF7SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF7SIDLbits_t;

extern __at(0x0E4D) volatile __RXF7SIDLbits_t RXF7SIDLbits;

#define _RXF7SIDL_EID16         0x01
#define _RXF7SIDL_EID17         0x02
#define _RXF7SIDL_EXIDEN        0x08
#define _RXF7SIDL_SID0          0x20
#define _RXF7SIDL_SID1          0x40
#define _RXF7SIDL_SID2          0x80

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


//==============================================================================
//        RXF7EIDH Bits

extern __at(0x0E4E) __sfr RXF7EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF7EIDHbits_t;

extern __at(0x0E4E) volatile __RXF7EIDHbits_t RXF7EIDHbits;

#define _RXF7EIDH_EID8          0x01
#define _RXF7EIDH_EID9          0x02
#define _RXF7EIDH_EID10         0x04
#define _RXF7EIDH_EID11         0x08
#define _RXF7EIDH_EID12         0x10
#define _RXF7EIDH_EID13         0x20
#define _RXF7EIDH_EID14         0x40
#define _RXF7EIDH_EID15         0x80

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


//==============================================================================
//        RXF7EIDL Bits

extern __at(0x0E4F) __sfr RXF7EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF7EIDLbits_t;

extern __at(0x0E4F) volatile __RXF7EIDLbits_t RXF7EIDLbits;

#define _RXF7EIDL_EID0          0x01
#define _RXF7EIDL_EID1          0x02
#define _RXF7EIDL_EID2          0x04
#define _RXF7EIDL_EID3          0x08
#define _RXF7EIDL_EID4          0x10
#define _RXF7EIDL_EID5          0x20
#define _RXF7EIDL_EID6          0x40
#define _RXF7EIDL_EID7          0x80

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


//==============================================================================
//        RXF8SIDH Bits

extern __at(0x0E50) __sfr RXF8SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF8SIDHbits_t;

extern __at(0x0E50) volatile __RXF8SIDHbits_t RXF8SIDHbits;

#define _RXF8SIDH_SID3          0x01
#define _RXF8SIDH_SID4          0x02
#define _RXF8SIDH_SID5          0x04
#define _RXF8SIDH_SID6          0x08
#define _RXF8SIDH_SID7          0x10
#define _RXF8SIDH_SID8          0x20
#define _RXF8SIDH_SID9          0x40
#define _RXF8SIDH_SID10         0x80

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


//==============================================================================
//        RXF8SIDL Bits

extern __at(0x0E51) __sfr RXF8SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF8SIDLbits_t;

extern __at(0x0E51) volatile __RXF8SIDLbits_t RXF8SIDLbits;

#define _RXF8SIDL_EID16         0x01
#define _RXF8SIDL_EID17         0x02
#define _RXF8SIDL_EXIDEN        0x08
#define _RXF8SIDL_SID0          0x20
#define _RXF8SIDL_SID1          0x40
#define _RXF8SIDL_SID2          0x80

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


//==============================================================================
//        RXF8EIDH Bits

extern __at(0x0E52) __sfr RXF8EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF8EIDHbits_t;

extern __at(0x0E52) volatile __RXF8EIDHbits_t RXF8EIDHbits;

#define _RXF8EIDH_EID8          0x01
#define _RXF8EIDH_EID9          0x02
#define _RXF8EIDH_EID10         0x04
#define _RXF8EIDH_EID11         0x08
#define _RXF8EIDH_EID12         0x10
#define _RXF8EIDH_EID13         0x20
#define _RXF8EIDH_EID14         0x40
#define _RXF8EIDH_EID15         0x80

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


//==============================================================================
//        RXF8EIDL Bits

extern __at(0x0E53) __sfr RXF8EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF8EIDLbits_t;

extern __at(0x0E53) volatile __RXF8EIDLbits_t RXF8EIDLbits;

#define _RXF8EIDL_EID0          0x01
#define _RXF8EIDL_EID1          0x02
#define _RXF8EIDL_EID2          0x04
#define _RXF8EIDL_EID3          0x08
#define _RXF8EIDL_EID4          0x10
#define _RXF8EIDL_EID5          0x20
#define _RXF8EIDL_EID6          0x40
#define _RXF8EIDL_EID7          0x80

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


//==============================================================================
//        RXF9SIDH Bits

extern __at(0x0E54) __sfr RXF9SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF9SIDHbits_t;

extern __at(0x0E54) volatile __RXF9SIDHbits_t RXF9SIDHbits;

#define _RXF9SIDH_SID3          0x01
#define _RXF9SIDH_SID4          0x02
#define _RXF9SIDH_SID5          0x04
#define _RXF9SIDH_SID6          0x08
#define _RXF9SIDH_SID7          0x10
#define _RXF9SIDH_SID8          0x20
#define _RXF9SIDH_SID9          0x40
#define _RXF9SIDH_SID10         0x80

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


//==============================================================================
//        RXF9SIDL Bits

extern __at(0x0E55) __sfr RXF9SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF9SIDLbits_t;

extern __at(0x0E55) volatile __RXF9SIDLbits_t RXF9SIDLbits;

#define _RXF9SIDL_EID16         0x01
#define _RXF9SIDL_EID17         0x02
#define _RXF9SIDL_EXIDEN        0x08
#define _RXF9SIDL_SID0          0x20
#define _RXF9SIDL_SID1          0x40
#define _RXF9SIDL_SID2          0x80

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


//==============================================================================
//        RXF9EIDH Bits

extern __at(0x0E56) __sfr RXF9EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF9EIDHbits_t;

extern __at(0x0E56) volatile __RXF9EIDHbits_t RXF9EIDHbits;

#define _RXF9EIDH_EID8          0x01
#define _RXF9EIDH_EID9          0x02
#define _RXF9EIDH_EID10         0x04
#define _RXF9EIDH_EID11         0x08
#define _RXF9EIDH_EID12         0x10
#define _RXF9EIDH_EID13         0x20
#define _RXF9EIDH_EID14         0x40
#define _RXF9EIDH_EID15         0x80

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


//==============================================================================
//        RXF9EIDL Bits

extern __at(0x0E57) __sfr RXF9EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF9EIDLbits_t;

extern __at(0x0E57) volatile __RXF9EIDLbits_t RXF9EIDLbits;

#define _RXF9EIDL_EID0          0x01
#define _RXF9EIDL_EID1          0x02
#define _RXF9EIDL_EID2          0x04
#define _RXF9EIDL_EID3          0x08
#define _RXF9EIDL_EID4          0x10
#define _RXF9EIDL_EID5          0x20
#define _RXF9EIDL_EID6          0x40
#define _RXF9EIDL_EID7          0x80

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


//==============================================================================
//        RXF10SIDH Bits

extern __at(0x0E58) __sfr RXF10SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF10SIDHbits_t;

extern __at(0x0E58) volatile __RXF10SIDHbits_t RXF10SIDHbits;

#define _RXF10SIDH_SID3         0x01
#define _RXF10SIDH_SID4         0x02
#define _RXF10SIDH_SID5         0x04
#define _RXF10SIDH_SID6         0x08
#define _RXF10SIDH_SID7         0x10
#define _RXF10SIDH_SID8         0x20
#define _RXF10SIDH_SID9         0x40
#define _RXF10SIDH_SID10        0x80

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


//==============================================================================
//        RXF10SIDL Bits

extern __at(0x0E59) __sfr RXF10SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF10SIDLbits_t;

extern __at(0x0E59) volatile __RXF10SIDLbits_t RXF10SIDLbits;

#define _RXF10SIDL_EID16        0x01
#define _RXF10SIDL_EID17        0x02
#define _RXF10SIDL_EXIDEN       0x08
#define _RXF10SIDL_SID0         0x20
#define _RXF10SIDL_SID1         0x40
#define _RXF10SIDL_SID2         0x80

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


//==============================================================================
//        RXF10EIDH Bits

extern __at(0x0E5A) __sfr RXF10EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF10EIDHbits_t;

extern __at(0x0E5A) volatile __RXF10EIDHbits_t RXF10EIDHbits;

#define _RXF10EIDH_EID8         0x01
#define _RXF10EIDH_EID9         0x02
#define _RXF10EIDH_EID10        0x04
#define _RXF10EIDH_EID11        0x08
#define _RXF10EIDH_EID12        0x10
#define _RXF10EIDH_EID13        0x20
#define _RXF10EIDH_EID14        0x40
#define _RXF10EIDH_EID15        0x80

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


//==============================================================================
//        RXF10EIDL Bits

extern __at(0x0E5B) __sfr RXF10EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF10EIDLbits_t;

extern __at(0x0E5B) volatile __RXF10EIDLbits_t RXF10EIDLbits;

#define _RXF10EIDL_EID0         0x01
#define _RXF10EIDL_EID1         0x02
#define _RXF10EIDL_EID2         0x04
#define _RXF10EIDL_EID3         0x08
#define _RXF10EIDL_EID4         0x10
#define _RXF10EIDL_EID5         0x20
#define _RXF10EIDL_EID6         0x40
#define _RXF10EIDL_EID7         0x80

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


//==============================================================================
//        RXF11SIDH Bits

extern __at(0x0E5C) __sfr RXF11SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF11SIDHbits_t;

extern __at(0x0E5C) volatile __RXF11SIDHbits_t RXF11SIDHbits;

#define _RXF11SIDH_SID3         0x01
#define _RXF11SIDH_SID4         0x02
#define _RXF11SIDH_SID5         0x04
#define _RXF11SIDH_SID6         0x08
#define _RXF11SIDH_SID7         0x10
#define _RXF11SIDH_SID8         0x20
#define _RXF11SIDH_SID9         0x40
#define _RXF11SIDH_SID10        0x80

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


//==============================================================================
//        RXF11SIDL Bits

extern __at(0x0E5D) __sfr RXF11SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF11SIDLbits_t;

extern __at(0x0E5D) volatile __RXF11SIDLbits_t RXF11SIDLbits;

#define _RXF11SIDL_EID16        0x01
#define _RXF11SIDL_EID17        0x02
#define _RXF11SIDL_EXIDEN       0x08
#define _RXF11SIDL_SID0         0x20
#define _RXF11SIDL_SID1         0x40
#define _RXF11SIDL_SID2         0x80

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


//==============================================================================
//        RXF11EIDH Bits

extern __at(0x0E5E) __sfr RXF11EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF11EIDHbits_t;

extern __at(0x0E5E) volatile __RXF11EIDHbits_t RXF11EIDHbits;

#define _RXF11EIDH_EID8         0x01
#define _RXF11EIDH_EID9         0x02
#define _RXF11EIDH_EID10        0x04
#define _RXF11EIDH_EID11        0x08
#define _RXF11EIDH_EID12        0x10
#define _RXF11EIDH_EID13        0x20
#define _RXF11EIDH_EID14        0x40
#define _RXF11EIDH_EID15        0x80

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


//==============================================================================
//        RXF11EIDL Bits

extern __at(0x0E5F) __sfr RXF11EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF11EIDLbits_t;

extern __at(0x0E5F) volatile __RXF11EIDLbits_t RXF11EIDLbits;

#define _RXF11EIDL_EID0         0x01
#define _RXF11EIDL_EID1         0x02
#define _RXF11EIDL_EID2         0x04
#define _RXF11EIDL_EID3         0x08
#define _RXF11EIDL_EID4         0x10
#define _RXF11EIDL_EID5         0x20
#define _RXF11EIDL_EID6         0x40
#define _RXF11EIDL_EID7         0x80

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


//==============================================================================
//        RXF12SIDH Bits

extern __at(0x0E60) __sfr RXF12SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF12SIDHbits_t;

extern __at(0x0E60) volatile __RXF12SIDHbits_t RXF12SIDHbits;

#define _RXF12SIDH_SID3         0x01
#define _RXF12SIDH_SID4         0x02
#define _RXF12SIDH_SID5         0x04
#define _RXF12SIDH_SID6         0x08
#define _RXF12SIDH_SID7         0x10
#define _RXF12SIDH_SID8         0x20
#define _RXF12SIDH_SID9         0x40
#define _RXF12SIDH_SID10        0x80

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


//==============================================================================
//        RXF12SIDL Bits

extern __at(0x0E61) __sfr RXF12SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF12SIDLbits_t;

extern __at(0x0E61) volatile __RXF12SIDLbits_t RXF12SIDLbits;

#define _RXF12SIDL_EID16        0x01
#define _RXF12SIDL_EID17        0x02
#define _RXF12SIDL_EXIDEN       0x08
#define _RXF12SIDL_SID0         0x20
#define _RXF12SIDL_SID1         0x40
#define _RXF12SIDL_SID2         0x80

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


//==============================================================================
//        RXF12EIDH Bits

extern __at(0x0E62) __sfr RXF12EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF12EIDHbits_t;

extern __at(0x0E62) volatile __RXF12EIDHbits_t RXF12EIDHbits;

#define _RXF12EIDH_EID8         0x01
#define _RXF12EIDH_EID9         0x02
#define _RXF12EIDH_EID10        0x04
#define _RXF12EIDH_EID11        0x08
#define _RXF12EIDH_EID12        0x10
#define _RXF12EIDH_EID13        0x20
#define _RXF12EIDH_EID14        0x40
#define _RXF12EIDH_EID15        0x80

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


//==============================================================================
//        RXF12EIDL Bits

extern __at(0x0E63) __sfr RXF12EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF12EIDLbits_t;

extern __at(0x0E63) volatile __RXF12EIDLbits_t RXF12EIDLbits;

#define _RXF12EIDL_EID0         0x01
#define _RXF12EIDL_EID1         0x02
#define _RXF12EIDL_EID2         0x04
#define _RXF12EIDL_EID3         0x08
#define _RXF12EIDL_EID4         0x10
#define _RXF12EIDL_EID5         0x20
#define _RXF12EIDL_EID6         0x40
#define _RXF12EIDL_EID7         0x80

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


//==============================================================================
//        RXF13SIDH Bits

extern __at(0x0E64) __sfr RXF13SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF13SIDHbits_t;

extern __at(0x0E64) volatile __RXF13SIDHbits_t RXF13SIDHbits;

#define _RXF13SIDH_SID3         0x01
#define _RXF13SIDH_SID4         0x02
#define _RXF13SIDH_SID5         0x04
#define _RXF13SIDH_SID6         0x08
#define _RXF13SIDH_SID7         0x10
#define _RXF13SIDH_SID8         0x20
#define _RXF13SIDH_SID9         0x40
#define _RXF13SIDH_SID10        0x80

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


//==============================================================================
//        RXF13SIDL Bits

extern __at(0x0E65) __sfr RXF13SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF13SIDLbits_t;

extern __at(0x0E65) volatile __RXF13SIDLbits_t RXF13SIDLbits;

#define _RXF13SIDL_EID16        0x01
#define _RXF13SIDL_EID17        0x02
#define _RXF13SIDL_EXIDEN       0x08
#define _RXF13SIDL_SID0         0x20
#define _RXF13SIDL_SID1         0x40
#define _RXF13SIDL_SID2         0x80

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


//==============================================================================
//        RXF13EIDH Bits

extern __at(0x0E66) __sfr RXF13EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF13EIDHbits_t;

extern __at(0x0E66) volatile __RXF13EIDHbits_t RXF13EIDHbits;

#define _RXF13EIDH_EID8         0x01
#define _RXF13EIDH_EID9         0x02
#define _RXF13EIDH_EID10        0x04
#define _RXF13EIDH_EID11        0x08
#define _RXF13EIDH_EID12        0x10
#define _RXF13EIDH_EID13        0x20
#define _RXF13EIDH_EID14        0x40
#define _RXF13EIDH_EID15        0x80

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


//==============================================================================
//        RXF13EIDL Bits

extern __at(0x0E67) __sfr RXF13EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF13EIDLbits_t;

extern __at(0x0E67) volatile __RXF13EIDLbits_t RXF13EIDLbits;

#define _RXF13EIDL_EID0         0x01
#define _RXF13EIDL_EID1         0x02
#define _RXF13EIDL_EID2         0x04
#define _RXF13EIDL_EID3         0x08
#define _RXF13EIDL_EID4         0x10
#define _RXF13EIDL_EID5         0x20
#define _RXF13EIDL_EID6         0x40
#define _RXF13EIDL_EID7         0x80

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


//==============================================================================
//        RXF14SIDH Bits

extern __at(0x0E68) __sfr RXF14SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF14SIDHbits_t;

extern __at(0x0E68) volatile __RXF14SIDHbits_t RXF14SIDHbits;

#define _RXF14SIDH_SID3         0x01
#define _RXF14SIDH_SID4         0x02
#define _RXF14SIDH_SID5         0x04
#define _RXF14SIDH_SID6         0x08
#define _RXF14SIDH_SID7         0x10
#define _RXF14SIDH_SID8         0x20
#define _RXF14SIDH_SID9         0x40
#define _RXF14SIDH_SID10        0x80

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


//==============================================================================
//        RXF14SIDL Bits

extern __at(0x0E69) __sfr RXF14SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF14SIDLbits_t;

extern __at(0x0E69) volatile __RXF14SIDLbits_t RXF14SIDLbits;

#define _RXF14SIDL_EID16        0x01
#define _RXF14SIDL_EID17        0x02
#define _RXF14SIDL_EXIDEN       0x08
#define _RXF14SIDL_SID0         0x20
#define _RXF14SIDL_SID1         0x40
#define _RXF14SIDL_SID2         0x80

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


//==============================================================================
//        RXF14EIDH Bits

extern __at(0x0E6A) __sfr RXF14EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF14EIDHbits_t;

extern __at(0x0E6A) volatile __RXF14EIDHbits_t RXF14EIDHbits;

#define _RXF14EIDH_EID8         0x01
#define _RXF14EIDH_EID9         0x02
#define _RXF14EIDH_EID10        0x04
#define _RXF14EIDH_EID11        0x08
#define _RXF14EIDH_EID12        0x10
#define _RXF14EIDH_EID13        0x20
#define _RXF14EIDH_EID14        0x40
#define _RXF14EIDH_EID15        0x80

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


//==============================================================================
//        RXF14EIDL Bits

extern __at(0x0E6B) __sfr RXF14EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF14EIDLbits_t;

extern __at(0x0E6B) volatile __RXF14EIDLbits_t RXF14EIDLbits;

#define _RXF14EIDL_EID0         0x01
#define _RXF14EIDL_EID1         0x02
#define _RXF14EIDL_EID2         0x04
#define _RXF14EIDL_EID3         0x08
#define _RXF14EIDL_EID4         0x10
#define _RXF14EIDL_EID5         0x20
#define _RXF14EIDL_EID6         0x40
#define _RXF14EIDL_EID7         0x80

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


//==============================================================================
//        RXF15SIDH Bits

extern __at(0x0E6C) __sfr RXF15SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF15SIDHbits_t;

extern __at(0x0E6C) volatile __RXF15SIDHbits_t RXF15SIDHbits;

#define _RXF15SIDH_SID3         0x01
#define _RXF15SIDH_SID4         0x02
#define _RXF15SIDH_SID5         0x04
#define _RXF15SIDH_SID6         0x08
#define _RXF15SIDH_SID7         0x10
#define _RXF15SIDH_SID8         0x20
#define _RXF15SIDH_SID9         0x40
#define _RXF15SIDH_SID10        0x80

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


//==============================================================================
//        RXF15SIDL Bits

extern __at(0x0E6D) __sfr RXF15SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF15SIDLbits_t;

extern __at(0x0E6D) volatile __RXF15SIDLbits_t RXF15SIDLbits;

#define _RXF15SIDL_EID16        0x01
#define _RXF15SIDL_EID17        0x02
#define _RXF15SIDL_EXIDEN       0x08
#define _RXF15SIDL_SID0         0x20
#define _RXF15SIDL_SID1         0x40
#define _RXF15SIDL_SID2         0x80

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


//==============================================================================
//        RXF15EIDH Bits

extern __at(0x0E6E) __sfr RXF15EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF15EIDHbits_t;

extern __at(0x0E6E) volatile __RXF15EIDHbits_t RXF15EIDHbits;

#define _RXF15EIDH_EID8         0x01
#define _RXF15EIDH_EID9         0x02
#define _RXF15EIDH_EID10        0x04
#define _RXF15EIDH_EID11        0x08
#define _RXF15EIDH_EID12        0x10
#define _RXF15EIDH_EID13        0x20
#define _RXF15EIDH_EID14        0x40
#define _RXF15EIDH_EID15        0x80

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


//==============================================================================
//        RXF15EIDL Bits

extern __at(0x0E6F) __sfr RXF15EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF15EIDLbits_t;

extern __at(0x0E6F) volatile __RXF15EIDLbits_t RXF15EIDLbits;

#define _RXF15EIDL_EID0         0x01
#define _RXF15EIDL_EID1         0x02
#define _RXF15EIDL_EID2         0x04
#define _RXF15EIDL_EID3         0x08
#define _RXF15EIDL_EID4         0x10
#define _RXF15EIDL_EID5         0x20
#define _RXF15EIDL_EID6         0x40
#define _RXF15EIDL_EID7         0x80

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


//==============================================================================
//        SDFLC Bits

extern __at(0x0E70) __sfr SDFLC;

typedef union
  {
  struct
    {
    unsigned FLC0               : 1;
    unsigned FLC1               : 1;
    unsigned FLC2               : 1;
    unsigned FLC3               : 1;
    unsigned FLC4               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FLC                : 5;
    unsigned                    : 3;
    };
  } __SDFLCbits_t;

extern __at(0x0E70) volatile __SDFLCbits_t SDFLCbits;

#define _FLC0                   0x01
#define _FLC1                   0x02
#define _FLC2                   0x04
#define _FLC3                   0x08
#define _FLC4                   0x10

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


//==============================================================================
//        RXFBCON0 Bits

extern __at(0x0E71) __sfr RXFBCON0;

typedef union
  {
  struct
    {
    unsigned F0BP_0             : 1;
    unsigned F0BP_1             : 1;
    unsigned F0BP_2             : 1;
    unsigned F0BP_3             : 1;
    unsigned F1BP_0             : 1;
    unsigned F1BP_1             : 1;
    unsigned F1BP_2             : 1;
    unsigned F1BP_3             : 1;
    };

  struct
    {
    unsigned F0BP_              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F1BP_              : 4;
    };
  } __RXFBCON0bits_t;

extern __at(0x0E71) volatile __RXFBCON0bits_t RXFBCON0bits;

#define _F0BP_0                 0x01
#define _F0BP_1                 0x02
#define _F0BP_2                 0x04
#define _F0BP_3                 0x08
#define _F1BP_0                 0x10
#define _F1BP_1                 0x20
#define _F1BP_2                 0x40
#define _F1BP_3                 0x80

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


//==============================================================================
//        RXFBCON1 Bits

extern __at(0x0E72) __sfr RXFBCON1;

typedef union
  {
  struct
    {
    unsigned F2BP_0             : 1;
    unsigned F2BP_1             : 1;
    unsigned F2BP_2             : 1;
    unsigned F2BP_3             : 1;
    unsigned F3BP_0             : 1;
    unsigned F3BP_1             : 1;
    unsigned F3BP_2             : 1;
    unsigned F3BP_3             : 1;
    };

  struct
    {
    unsigned F2BP_              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F3BP_              : 4;
    };
  } __RXFBCON1bits_t;

extern __at(0x0E72) volatile __RXFBCON1bits_t RXFBCON1bits;

#define _F2BP_0                 0x01
#define _F2BP_1                 0x02
#define _F2BP_2                 0x04
#define _F2BP_3                 0x08
#define _F3BP_0                 0x10
#define _F3BP_1                 0x20
#define _F3BP_2                 0x40
#define _F3BP_3                 0x80

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


//==============================================================================
//        RXFBCON2 Bits

extern __at(0x0E73) __sfr RXFBCON2;

typedef union
  {
  struct
    {
    unsigned F4BP_0             : 1;
    unsigned F4BP_1             : 1;
    unsigned F4BP_2             : 1;
    unsigned F4BP_3             : 1;
    unsigned F5BP_0             : 1;
    unsigned F5BP_1             : 1;
    unsigned F5BP_2             : 1;
    unsigned F5BP_3             : 1;
    };

  struct
    {
    unsigned F4BP_              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F5BP_              : 4;
    };
  } __RXFBCON2bits_t;

extern __at(0x0E73) volatile __RXFBCON2bits_t RXFBCON2bits;

#define _F4BP_0                 0x01
#define _F4BP_1                 0x02
#define _F4BP_2                 0x04
#define _F4BP_3                 0x08
#define _F5BP_0                 0x10
#define _F5BP_1                 0x20
#define _F5BP_2                 0x40
#define _F5BP_3                 0x80

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


//==============================================================================
//        RXFBCON3 Bits

extern __at(0x0E74) __sfr RXFBCON3;

typedef union
  {
  struct
    {
    unsigned F6BP_0             : 1;
    unsigned F6BP_1             : 1;
    unsigned F6BP_2             : 1;
    unsigned F6BP_3             : 1;
    unsigned F7BP_0             : 1;
    unsigned F7BP_1             : 1;
    unsigned F7BP_2             : 1;
    unsigned F7BP_3             : 1;
    };

  struct
    {
    unsigned F6BP_              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F7BP_              : 4;
    };
  } __RXFBCON3bits_t;

extern __at(0x0E74) volatile __RXFBCON3bits_t RXFBCON3bits;

#define _F6BP_0                 0x01
#define _F6BP_1                 0x02
#define _F6BP_2                 0x04
#define _F6BP_3                 0x08
#define _F7BP_0                 0x10
#define _F7BP_1                 0x20
#define _F7BP_2                 0x40
#define _F7BP_3                 0x80

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


//==============================================================================
//        RXFBCON4 Bits

extern __at(0x0E75) __sfr RXFBCON4;

typedef union
  {
  struct
    {
    unsigned F8BP_0             : 1;
    unsigned F8BP_1             : 1;
    unsigned F8BP_2             : 1;
    unsigned F8BP_3             : 1;
    unsigned F9BP_0             : 1;
    unsigned F9BP_1             : 1;
    unsigned F9BP_2             : 1;
    unsigned F9BP_3             : 1;
    };

  struct
    {
    unsigned F8BP_              : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F9BP_              : 4;
    };
  } __RXFBCON4bits_t;

extern __at(0x0E75) volatile __RXFBCON4bits_t RXFBCON4bits;

#define _F8BP_0                 0x01
#define _F8BP_1                 0x02
#define _F8BP_2                 0x04
#define _F8BP_3                 0x08
#define _F9BP_0                 0x10
#define _F9BP_1                 0x20
#define _F9BP_2                 0x40
#define _F9BP_3                 0x80

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


//==============================================================================
//        RXFBCON5 Bits

extern __at(0x0E76) __sfr RXFBCON5;

typedef union
  {
  struct
    {
    unsigned F10BP_0            : 1;
    unsigned F10BP_1            : 1;
    unsigned F10BP_2            : 1;
    unsigned F10BP_3            : 1;
    unsigned F11BP_0            : 1;
    unsigned F11BP_1            : 1;
    unsigned F11BP_2            : 1;
    unsigned F11BP_3            : 1;
    };

  struct
    {
    unsigned F10BP_             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F11BP_             : 4;
    };
  } __RXFBCON5bits_t;

extern __at(0x0E76) volatile __RXFBCON5bits_t RXFBCON5bits;

#define _F10BP_0                0x01
#define _F10BP_1                0x02
#define _F10BP_2                0x04
#define _F10BP_3                0x08
#define _F11BP_0                0x10
#define _F11BP_1                0x20
#define _F11BP_2                0x40
#define _F11BP_3                0x80

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


//==============================================================================
//        RXFBCON6 Bits

extern __at(0x0E77) __sfr RXFBCON6;

typedef union
  {
  struct
    {
    unsigned F12BP_0            : 1;
    unsigned F12BP_1            : 1;
    unsigned F12BP_2            : 1;
    unsigned F12BP_3            : 1;
    unsigned F13BP_0            : 1;
    unsigned F13BP_1            : 1;
    unsigned F13BP_2            : 1;
    unsigned F13BP_3            : 1;
    };

  struct
    {
    unsigned F12BP_             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F13BP_             : 4;
    };
  } __RXFBCON6bits_t;

extern __at(0x0E77) volatile __RXFBCON6bits_t RXFBCON6bits;

#define _F12BP_0                0x01
#define _F12BP_1                0x02
#define _F12BP_2                0x04
#define _F12BP_3                0x08
#define _F13BP_0                0x10
#define _F13BP_1                0x20
#define _F13BP_2                0x40
#define _F13BP_3                0x80

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


//==============================================================================
//        RXFBCON7 Bits

extern __at(0x0E78) __sfr RXFBCON7;

typedef union
  {
  struct
    {
    unsigned F14BP_0            : 1;
    unsigned F14BP_1            : 1;
    unsigned F14BP_2            : 1;
    unsigned F14BP_3            : 1;
    unsigned F15BP_0            : 1;
    unsigned F15BP_1            : 1;
    unsigned F15BP_2            : 1;
    unsigned F15BP_3            : 1;
    };

  struct
    {
    unsigned F14BP_             : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned F15BP_             : 4;
    };
  } __RXFBCON7bits_t;

extern __at(0x0E78) volatile __RXFBCON7bits_t RXFBCON7bits;

#define _F14BP_0                0x01
#define _F14BP_1                0x02
#define _F14BP_2                0x04
#define _F14BP_3                0x08
#define _F15BP_0                0x10
#define _F15BP_1                0x20
#define _F15BP_2                0x40
#define _F15BP_3                0x80

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


//==============================================================================
//        MSEL0 Bits

extern __at(0x0E79) __sfr MSEL0;

typedef union
  {
  struct
    {
    unsigned FIL0_0             : 1;
    unsigned FIL0_1             : 1;
    unsigned FIL1_0             : 1;
    unsigned FIL1_1             : 1;
    unsigned FIL2_0             : 1;
    unsigned FIL2_1             : 1;
    unsigned FIL3_0             : 1;
    unsigned FIL3_1             : 1;
    };

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

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

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

  struct
    {
    unsigned                    : 6;
    unsigned FIL3_              : 2;
    };
  } __MSEL0bits_t;

extern __at(0x0E79) volatile __MSEL0bits_t MSEL0bits;

#define _FIL0_0                 0x01
#define _FIL0_1                 0x02
#define _FIL1_0                 0x04
#define _FIL1_1                 0x08
#define _FIL2_0                 0x10
#define _FIL2_1                 0x20
#define _FIL3_0                 0x40
#define _FIL3_1                 0x80

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


//==============================================================================
//        MSEL1 Bits

extern __at(0x0E7A) __sfr MSEL1;

typedef union
  {
  struct
    {
    unsigned FIL4_0             : 1;
    unsigned FIL4_1             : 1;
    unsigned FIL5_0             : 1;
    unsigned FIL5_1             : 1;
    unsigned FIL6_0             : 1;
    unsigned FIL6_1             : 1;
    unsigned FIL7_0             : 1;
    unsigned FIL7_1             : 1;
    };

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

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

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

  struct
    {
    unsigned                    : 6;
    unsigned FIL7_              : 2;
    };
  } __MSEL1bits_t;

extern __at(0x0E7A) volatile __MSEL1bits_t MSEL1bits;

#define _FIL4_0                 0x01
#define _FIL4_1                 0x02
#define _FIL5_0                 0x04
#define _FIL5_1                 0x08
#define _FIL6_0                 0x10
#define _FIL6_1                 0x20
#define _FIL7_0                 0x40
#define _FIL7_1                 0x80

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


//==============================================================================
//        MSEL2 Bits

extern __at(0x0E7B) __sfr MSEL2;

typedef union
  {
  struct
    {
    unsigned FIL8_0             : 1;
    unsigned FIL8_1             : 1;
    unsigned FIL9_0             : 1;
    unsigned FIL9_1             : 1;
    unsigned FIL10_0            : 1;
    unsigned FIL10_1            : 1;
    unsigned FIL11_0            : 1;
    unsigned FIL11_1            : 1;
    };

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

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

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

  struct
    {
    unsigned                    : 6;
    unsigned FIL11_             : 2;
    };
  } __MSEL2bits_t;

extern __at(0x0E7B) volatile __MSEL2bits_t MSEL2bits;

#define _FIL8_0                 0x01
#define _FIL8_1                 0x02
#define _FIL9_0                 0x04
#define _FIL9_1                 0x08
#define _FIL10_0                0x10
#define _FIL10_1                0x20
#define _FIL11_0                0x40
#define _FIL11_1                0x80

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


//==============================================================================
//        MSEL3 Bits

extern __at(0x0E7C) __sfr MSEL3;

typedef union
  {
  struct
    {
    unsigned FIL12_0            : 1;
    unsigned FIL12_1            : 1;
    unsigned FIL13_0            : 1;
    unsigned FIL13_1            : 1;
    unsigned FIL14_0            : 1;
    unsigned FIL14_1            : 1;
    unsigned FIL15_0            : 1;
    unsigned FIL15_1            : 1;
    };

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

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

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

  struct
    {
    unsigned                    : 6;
    unsigned FIL15_             : 2;
    };
  } __MSEL3bits_t;

extern __at(0x0E7C) volatile __MSEL3bits_t MSEL3bits;

#define _FIL12_0                0x01
#define _FIL12_1                0x02
#define _FIL13_0                0x04
#define _FIL13_1                0x08
#define _FIL14_0                0x10
#define _FIL14_1                0x20
#define _FIL15_0                0x40
#define _FIL15_1                0x80

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


//==============================================================================
//        BSEL0 Bits

extern __at(0x0E7D) __sfr BSEL0;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned B0TXEN               : 1;
  unsigned B1TXEN               : 1;
  unsigned B2TXEN               : 1;
  unsigned B3TXEN               : 1;
  unsigned B4TXEN               : 1;
  unsigned B5TXEN               : 1;
  } __BSEL0bits_t;

extern __at(0x0E7D) volatile __BSEL0bits_t BSEL0bits;

#define _B0TXEN                 0x04
#define _B1TXEN                 0x08
#define _B2TXEN                 0x10
#define _B3TXEN                 0x20
#define _B4TXEN                 0x40
#define _B5TXEN                 0x80

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


//==============================================================================
//        BIE0 Bits

extern __at(0x0E7E) __sfr BIE0;

typedef struct
  {
  unsigned RXB0IE               : 1;
  unsigned RXB1IE               : 1;
  unsigned B0IE                 : 1;
  unsigned B1IE                 : 1;
  unsigned B2IE                 : 1;
  unsigned B3IE                 : 1;
  unsigned B4IE                 : 1;
  unsigned B5IE                 : 1;
  } __BIE0bits_t;

extern __at(0x0E7E) volatile __BIE0bits_t BIE0bits;

#define _RXB0IE                 0x01
#define _RXB1IE                 0x02
#define _B0IE                   0x04
#define _B1IE                   0x08
#define _B2IE                   0x10
#define _B3IE                   0x20
#define _B4IE                   0x40
#define _B5IE                   0x80

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


//==============================================================================
//        TXBIE Bits

extern __at(0x0E7F) __sfr TXBIE;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned TXB0IE               : 1;
  unsigned TXB1IE               : 1;
  unsigned TXB2IE               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __TXBIEbits_t;

extern __at(0x0E7F) volatile __TXBIEbits_t TXBIEbits;

#define _TXBIE_TXB0IE           0x04
#define _TXBIE_TXB1IE           0x08
#define _TXBIE_TXB2IE           0x10

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


//==============================================================================
//        B0CON Bits

extern __at(0x0E80) __sfr B0CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned FILHIT             : 5;
    unsigned                    : 3;
    };
  } __B0CONbits_t;

extern __at(0x0E80) volatile __B0CONbits_t B0CONbits;

#define _FILHIT0_TXPRI0         0x01
#define _FILHIT0                0x01
#define _TXPRI0                 0x01
#define _FILHIT1_TXPRI1         0x02
#define _FILHIT1                0x02
#define _TXPRI1                 0x02
#define _FILHIT2_RTREN          0x04
#define _FILHIT2                0x04
#define _RTREN                  0x04
#define _FILHIT3_TXREQ          0x08
#define _FILHIT3                0x08
#define _TXREQ                  0x08
#define _FILHIT4_TXERR          0x10
#define _FILHIT4                0x10
#define _TXERR                  0x10
#define _RXRTRRO_TXLARB         0x20
#define _RXRTRRO                0x20
#define _TXLARB                 0x20
#define _RXM1_TXABT             0x40
#define _RXM1                   0x40
#define _TXABT                  0x40
#define _RXFUL_TXBIF            0x80
#define _RXFUL                  0x80
#define _TXBIF                  0x80

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


//==============================================================================
//        B0SIDH Bits

extern __at(0x0E81) __sfr B0SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B0SIDHbits_t;

extern __at(0x0E81) volatile __B0SIDHbits_t B0SIDHbits;

#define _SID3                   0x01
#define _SID4                   0x02
#define _SID5                   0x04
#define _SID6                   0x08
#define _SID7                   0x10
#define _SID8                   0x20
#define _SID9                   0x40
#define _SID10                  0x80

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


//==============================================================================
//        B0SIDL Bits

extern __at(0x0E82) __sfr B0SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B0SIDLbits_t;

extern __at(0x0E82) volatile __B0SIDLbits_t B0SIDLbits;

#define _EID16                  0x01
#define _EID17                  0x02
#define _EXIDE                  0x08
#define _SRR                    0x10
#define _SID0                   0x20
#define _SID1                   0x40
#define _SID2                   0x80

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


//==============================================================================
//        B0EIDH Bits

extern __at(0x0E83) __sfr B0EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B0EIDHbits_t;

extern __at(0x0E83) volatile __B0EIDHbits_t B0EIDHbits;

#define _EID8                   0x01
#define _EID9                   0x02
#define _EID10                  0x04
#define _EID11                  0x08
#define _EID12                  0x10
#define _EID13                  0x20
#define _EID14                  0x40
#define _EID15                  0x80

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


//==============================================================================
//        B0EIDL Bits

extern __at(0x0E84) __sfr B0EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B0EIDLbits_t;

extern __at(0x0E84) volatile __B0EIDLbits_t B0EIDLbits;

#define _EID0                   0x01
#define _EID1                   0x02
#define _EID2                   0x04
#define _EID3                   0x08
#define _EID4                   0x10
#define _EID5                   0x20
#define _EID6                   0x40
#define _EID7                   0x80

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


//==============================================================================
//        B0DLC Bits

extern __at(0x0E85) __sfr B0DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B0DLCbits_t;

extern __at(0x0E85) volatile __B0DLCbits_t B0DLCbits;

#define _DLC0                   0x01
#define _DLC1                   0x02
#define _DLC2                   0x04
#define _DLC3                   0x08
#define _RB0                    0x10
#define _RB1                    0x20
#define _RXRTR_TXRTR            0x40
#define _RXRTR                  0x40
#define _TXRTR                  0x40

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


//==============================================================================
//        B0D0 Bits

extern __at(0x0E86) __sfr B0D0;

typedef struct
  {
  unsigned B0D00                : 1;
  unsigned B0D01                : 1;
  unsigned B0D02                : 1;
  unsigned B0D03                : 1;
  unsigned B0D04                : 1;
  unsigned B0D05                : 1;
  unsigned B0D06                : 1;
  unsigned B0D07                : 1;
  } __B0D0bits_t;

extern __at(0x0E86) volatile __B0D0bits_t B0D0bits;

#define _B0D00                  0x01
#define _B0D01                  0x02
#define _B0D02                  0x04
#define _B0D03                  0x08
#define _B0D04                  0x10
#define _B0D05                  0x20
#define _B0D06                  0x40
#define _B0D07                  0x80

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


//==============================================================================
//        B0D1 Bits

extern __at(0x0E87) __sfr B0D1;

typedef struct
  {
  unsigned B0D10                : 1;
  unsigned B0D11                : 1;
  unsigned B0D12                : 1;
  unsigned B0D13                : 1;
  unsigned B0D14                : 1;
  unsigned B0D15                : 1;
  unsigned B0D16                : 1;
  unsigned B0D17                : 1;
  } __B0D1bits_t;

extern __at(0x0E87) volatile __B0D1bits_t B0D1bits;

#define _B0D10                  0x01
#define _B0D11                  0x02
#define _B0D12                  0x04
#define _B0D13                  0x08
#define _B0D14                  0x10
#define _B0D15                  0x20
#define _B0D16                  0x40
#define _B0D17                  0x80

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


//==============================================================================
//        B0D2 Bits

extern __at(0x0E88) __sfr B0D2;

typedef struct
  {
  unsigned B0D20                : 1;
  unsigned B0D21                : 1;
  unsigned B0D22                : 1;
  unsigned B0D23                : 1;
  unsigned B0D24                : 1;
  unsigned B0D25                : 1;
  unsigned B0D26                : 1;
  unsigned B0D27                : 1;
  } __B0D2bits_t;

extern __at(0x0E88) volatile __B0D2bits_t B0D2bits;

#define _B0D20                  0x01
#define _B0D21                  0x02
#define _B0D22                  0x04
#define _B0D23                  0x08
#define _B0D24                  0x10
#define _B0D25                  0x20
#define _B0D26                  0x40
#define _B0D27                  0x80

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


//==============================================================================
//        B0D3 Bits

extern __at(0x0E89) __sfr B0D3;

typedef struct
  {
  unsigned B0D30                : 1;
  unsigned B0D31                : 1;
  unsigned B0D32                : 1;
  unsigned B0D33                : 1;
  unsigned B0D34                : 1;
  unsigned B0D35                : 1;
  unsigned B0D36                : 1;
  unsigned B0D37                : 1;
  } __B0D3bits_t;

extern __at(0x0E89) volatile __B0D3bits_t B0D3bits;

#define _B0D30                  0x01
#define _B0D31                  0x02
#define _B0D32                  0x04
#define _B0D33                  0x08
#define _B0D34                  0x10
#define _B0D35                  0x20
#define _B0D36                  0x40
#define _B0D37                  0x80

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


//==============================================================================
//        B0D4 Bits

extern __at(0x0E8A) __sfr B0D4;

typedef struct
  {
  unsigned B0D40                : 1;
  unsigned B0D41                : 1;
  unsigned B0D42                : 1;
  unsigned B0D43                : 1;
  unsigned B0D44                : 1;
  unsigned B0D45                : 1;
  unsigned B0D46                : 1;
  unsigned B0D47                : 1;
  } __B0D4bits_t;

extern __at(0x0E8A) volatile __B0D4bits_t B0D4bits;

#define _B0D40                  0x01
#define _B0D41                  0x02
#define _B0D42                  0x04
#define _B0D43                  0x08
#define _B0D44                  0x10
#define _B0D45                  0x20
#define _B0D46                  0x40
#define _B0D47                  0x80

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


//==============================================================================
//        B0D5 Bits

extern __at(0x0E8B) __sfr B0D5;

typedef struct
  {
  unsigned B0D50                : 1;
  unsigned B0D51                : 1;
  unsigned B0D52                : 1;
  unsigned B0D53                : 1;
  unsigned B0D54                : 1;
  unsigned B0D55                : 1;
  unsigned B0D56                : 1;
  unsigned B0D57                : 1;
  } __B0D5bits_t;

extern __at(0x0E8B) volatile __B0D5bits_t B0D5bits;

#define _B0D50                  0x01
#define _B0D51                  0x02
#define _B0D52                  0x04
#define _B0D53                  0x08
#define _B0D54                  0x10
#define _B0D55                  0x20
#define _B0D56                  0x40
#define _B0D57                  0x80

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


//==============================================================================
//        B0D6 Bits

extern __at(0x0E8C) __sfr B0D6;

typedef struct
  {
  unsigned B0D60                : 1;
  unsigned B0D61                : 1;
  unsigned B0D62                : 1;
  unsigned B0D63                : 1;
  unsigned B0D64                : 1;
  unsigned B0D65                : 1;
  unsigned B0D66                : 1;
  unsigned B0D67                : 1;
  } __B0D6bits_t;

extern __at(0x0E8C) volatile __B0D6bits_t B0D6bits;

#define _B0D60                  0x01
#define _B0D61                  0x02
#define _B0D62                  0x04
#define _B0D63                  0x08
#define _B0D64                  0x10
#define _B0D65                  0x20
#define _B0D66                  0x40
#define _B0D67                  0x80

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


//==============================================================================
//        B0D7 Bits

extern __at(0x0E8D) __sfr B0D7;

typedef struct
  {
  unsigned B0D70                : 1;
  unsigned B0D71                : 1;
  unsigned B0D72                : 1;
  unsigned B0D73                : 1;
  unsigned B0D74                : 1;
  unsigned B0D75                : 1;
  unsigned B0D76                : 1;
  unsigned B0D77                : 1;
  } __B0D7bits_t;

extern __at(0x0E8D) volatile __B0D7bits_t B0D7bits;

#define _B0D70                  0x01
#define _B0D71                  0x02
#define _B0D72                  0x04
#define _B0D73                  0x08
#define _B0D74                  0x10
#define _B0D75                  0x20
#define _B0D76                  0x40
#define _B0D77                  0x80

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


//==============================================================================
//        CANSTAT_RO9 Bits

extern __at(0x0E8E) __sfr CANSTAT_RO9;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO9bits_t;

extern __at(0x0E8E) volatile __CANSTAT_RO9bits_t CANSTAT_RO9bits;

#define _CANSTAT_RO9_EICODE0    0x01
#define _CANSTAT_RO9_EICODE1_ICODE0 0x02
#define _CANSTAT_RO9_EICODE1    0x02
#define _CANSTAT_RO9_ICODE0     0x02
#define _CANSTAT_RO9_EICODE2_ICODE1 0x04
#define _CANSTAT_RO9_EICODE2    0x04
#define _CANSTAT_RO9_ICODE1     0x04
#define _CANSTAT_RO9_EICODE3_ICODE2 0x08
#define _CANSTAT_RO9_EICODE3    0x08
#define _CANSTAT_RO9_ICODE2     0x08
#define _CANSTAT_RO9_EICODE4    0x10
#define _CANSTAT_RO9_OPMODE0    0x20
#define _CANSTAT_RO9_OPMODE1    0x40
#define _CANSTAT_RO9_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO9 Bits

extern __at(0x0E8F) __sfr CANCON_RO9;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO9bits_t;

extern __at(0x0E8F) volatile __CANCON_RO9bits_t CANCON_RO9bits;

#define _CANCON_RO9_FP0         0x01
#define _CANCON_RO9_WIN0_FP1    0x02
#define _CANCON_RO9_WIN0        0x02
#define _CANCON_RO9_FP1         0x02
#define _CANCON_RO9_WIN1_FP2    0x04
#define _CANCON_RO9_WIN1        0x04
#define _CANCON_RO9_FP2         0x04
#define _CANCON_RO9_WIN2_FP3    0x08
#define _CANCON_RO9_WIN2        0x08
#define _CANCON_RO9_FP3         0x08
#define _CANCON_RO9_ABAT        0x10

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


//==============================================================================
//        B1CON Bits

extern __at(0x0E90) __sfr B1CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __B1CONbits_t;

extern __at(0x0E90) volatile __B1CONbits_t B1CONbits;

#define _B1CON_FILHIT0_TXPRI0   0x01
#define _B1CON_FILHIT0          0x01
#define _B1CON_TXPRI0           0x01
#define _B1CON_FILHIT1_TXPRI1   0x02
#define _B1CON_FILHIT1          0x02
#define _B1CON_TXPRI1           0x02
#define _B1CON_FILHIT2_RTREN    0x04
#define _B1CON_FILHIT2          0x04
#define _B1CON_RTREN            0x04
#define _B1CON_FILHIT3_TXREQ    0x08
#define _B1CON_FILHIT3          0x08
#define _B1CON_TXREQ            0x08
#define _B1CON_FILHIT4_TXERR    0x10
#define _B1CON_FILHIT4          0x10
#define _B1CON_TXERR            0x10
#define _B1CON_RXRTRRO_TXLARB   0x20
#define _B1CON_RXRTRRO          0x20
#define _B1CON_TXLARB           0x20
#define _B1CON_RXM1_TXABT       0x40
#define _B1CON_RXM1             0x40
#define _B1CON_TXABT            0x40
#define _B1CON_RXFUL_TXBIF      0x80
#define _B1CON_RXFUL            0x80
#define _B1CON_TXBIF            0x80

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


//==============================================================================
//        B1SIDH Bits

extern __at(0x0E91) __sfr B1SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B1SIDHbits_t;

extern __at(0x0E91) volatile __B1SIDHbits_t B1SIDHbits;

#define _B1SIDH_SID3            0x01
#define _B1SIDH_SID4            0x02
#define _B1SIDH_SID5            0x04
#define _B1SIDH_SID6            0x08
#define _B1SIDH_SID7            0x10
#define _B1SIDH_SID8            0x20
#define _B1SIDH_SID9            0x40
#define _B1SIDH_SID10           0x80

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


//==============================================================================
//        B1SIDL Bits

extern __at(0x0E92) __sfr B1SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B1SIDLbits_t;

extern __at(0x0E92) volatile __B1SIDLbits_t B1SIDLbits;

#define _B1SIDL_EID16           0x01
#define _B1SIDL_EID17           0x02
#define _B1SIDL_EXIDE           0x08
#define _B1SIDL_SRR             0x10
#define _B1SIDL_SID0            0x20
#define _B1SIDL_SID1            0x40
#define _B1SIDL_SID2            0x80

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


//==============================================================================
//        B1EIDH Bits

extern __at(0x0E93) __sfr B1EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B1EIDHbits_t;

extern __at(0x0E93) volatile __B1EIDHbits_t B1EIDHbits;

#define _B1EIDH_EID8            0x01
#define _B1EIDH_EID9            0x02
#define _B1EIDH_EID10           0x04
#define _B1EIDH_EID11           0x08
#define _B1EIDH_EID12           0x10
#define _B1EIDH_EID13           0x20
#define _B1EIDH_EID14           0x40
#define _B1EIDH_EID15           0x80

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


//==============================================================================
//        B1EIDL Bits

extern __at(0x0E94) __sfr B1EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B1EIDLbits_t;

extern __at(0x0E94) volatile __B1EIDLbits_t B1EIDLbits;

#define _B1EIDL_EID0            0x01
#define _B1EIDL_EID1            0x02
#define _B1EIDL_EID2            0x04
#define _B1EIDL_EID3            0x08
#define _B1EIDL_EID4            0x10
#define _B1EIDL_EID5            0x20
#define _B1EIDL_EID6            0x40
#define _B1EIDL_EID7            0x80

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


//==============================================================================
//        B1DLC Bits

extern __at(0x0E95) __sfr B1DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B1DLCbits_t;

extern __at(0x0E95) volatile __B1DLCbits_t B1DLCbits;

#define _B1DLC_DLC0             0x01
#define _B1DLC_DLC1             0x02
#define _B1DLC_DLC2             0x04
#define _B1DLC_DLC3             0x08
#define _B1DLC_RB0              0x10
#define _B1DLC_RB1              0x20
#define _B1DLC_RXRTR_TXRTR      0x40
#define _B1DLC_RXRTR            0x40
#define _B1DLC_TXRTR            0x40

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


//==============================================================================
//        B1D0 Bits

extern __at(0x0E96) __sfr B1D0;

typedef struct
  {
  unsigned B1D00                : 1;
  unsigned B1D01                : 1;
  unsigned B1D02                : 1;
  unsigned B1D03                : 1;
  unsigned B1D04                : 1;
  unsigned B1D05                : 1;
  unsigned B1D06                : 1;
  unsigned B1D07                : 1;
  } __B1D0bits_t;

extern __at(0x0E96) volatile __B1D0bits_t B1D0bits;

#define _B1D00                  0x01
#define _B1D01                  0x02
#define _B1D02                  0x04
#define _B1D03                  0x08
#define _B1D04                  0x10
#define _B1D05                  0x20
#define _B1D06                  0x40
#define _B1D07                  0x80

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


//==============================================================================
//        B1D1 Bits

extern __at(0x0E97) __sfr B1D1;

typedef struct
  {
  unsigned B1D10                : 1;
  unsigned B1D11                : 1;
  unsigned B1D12                : 1;
  unsigned B1D13                : 1;
  unsigned B1D14                : 1;
  unsigned B1D15                : 1;
  unsigned B1D16                : 1;
  unsigned B1D17                : 1;
  } __B1D1bits_t;

extern __at(0x0E97) volatile __B1D1bits_t B1D1bits;

#define _B1D10                  0x01
#define _B1D11                  0x02
#define _B1D12                  0x04
#define _B1D13                  0x08
#define _B1D14                  0x10
#define _B1D15                  0x20
#define _B1D16                  0x40
#define _B1D17                  0x80

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


//==============================================================================
//        B1D2 Bits

extern __at(0x0E98) __sfr B1D2;

typedef struct
  {
  unsigned B1D20                : 1;
  unsigned B1D21                : 1;
  unsigned B1D22                : 1;
  unsigned B1D23                : 1;
  unsigned B1D24                : 1;
  unsigned B1D25                : 1;
  unsigned B1D26                : 1;
  unsigned B1D27                : 1;
  } __B1D2bits_t;

extern __at(0x0E98) volatile __B1D2bits_t B1D2bits;

#define _B1D20                  0x01
#define _B1D21                  0x02
#define _B1D22                  0x04
#define _B1D23                  0x08
#define _B1D24                  0x10
#define _B1D25                  0x20
#define _B1D26                  0x40
#define _B1D27                  0x80

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


//==============================================================================
//        B1D3 Bits

extern __at(0x0E99) __sfr B1D3;

typedef struct
  {
  unsigned B1D30                : 1;
  unsigned B1D31                : 1;
  unsigned B1D32                : 1;
  unsigned B1D33                : 1;
  unsigned B1D34                : 1;
  unsigned B1D35                : 1;
  unsigned B1D36                : 1;
  unsigned B1D37                : 1;
  } __B1D3bits_t;

extern __at(0x0E99) volatile __B1D3bits_t B1D3bits;

#define _B1D30                  0x01
#define _B1D31                  0x02
#define _B1D32                  0x04
#define _B1D33                  0x08
#define _B1D34                  0x10
#define _B1D35                  0x20
#define _B1D36                  0x40
#define _B1D37                  0x80

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


//==============================================================================
//        B1D4 Bits

extern __at(0x0E9A) __sfr B1D4;

typedef struct
  {
  unsigned B1D40                : 1;
  unsigned B1D41                : 1;
  unsigned B1D42                : 1;
  unsigned B1D43                : 1;
  unsigned B1D44                : 1;
  unsigned B1D45                : 1;
  unsigned B1D46                : 1;
  unsigned B1D47                : 1;
  } __B1D4bits_t;

extern __at(0x0E9A) volatile __B1D4bits_t B1D4bits;

#define _B1D40                  0x01
#define _B1D41                  0x02
#define _B1D42                  0x04
#define _B1D43                  0x08
#define _B1D44                  0x10
#define _B1D45                  0x20
#define _B1D46                  0x40
#define _B1D47                  0x80

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


//==============================================================================
//        B1D5 Bits

extern __at(0x0E9B) __sfr B1D5;

typedef struct
  {
  unsigned B1D50                : 1;
  unsigned B1D51                : 1;
  unsigned B1D52                : 1;
  unsigned B1D53                : 1;
  unsigned B1D54                : 1;
  unsigned B1D55                : 1;
  unsigned B1D56                : 1;
  unsigned B1D57                : 1;
  } __B1D5bits_t;

extern __at(0x0E9B) volatile __B1D5bits_t B1D5bits;

#define _B1D50                  0x01
#define _B1D51                  0x02
#define _B1D52                  0x04
#define _B1D53                  0x08
#define _B1D54                  0x10
#define _B1D55                  0x20
#define _B1D56                  0x40
#define _B1D57                  0x80

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


//==============================================================================
//        B1D6 Bits

extern __at(0x0E9C) __sfr B1D6;

typedef struct
  {
  unsigned B1D60                : 1;
  unsigned B1D61                : 1;
  unsigned B1D62                : 1;
  unsigned B1D63                : 1;
  unsigned B1D64                : 1;
  unsigned B1D65                : 1;
  unsigned B1D66                : 1;
  unsigned B1D67                : 1;
  } __B1D6bits_t;

extern __at(0x0E9C) volatile __B1D6bits_t B1D6bits;

#define _B1D60                  0x01
#define _B1D61                  0x02
#define _B1D62                  0x04
#define _B1D63                  0x08
#define _B1D64                  0x10
#define _B1D65                  0x20
#define _B1D66                  0x40
#define _B1D67                  0x80

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


//==============================================================================
//        B1D7 Bits

extern __at(0x0E9D) __sfr B1D7;

typedef struct
  {
  unsigned B1D70                : 1;
  unsigned B1D71                : 1;
  unsigned B1D72                : 1;
  unsigned B1D73                : 1;
  unsigned B1D74                : 1;
  unsigned B1D75                : 1;
  unsigned B1D76                : 1;
  unsigned B1D77                : 1;
  } __B1D7bits_t;

extern __at(0x0E9D) volatile __B1D7bits_t B1D7bits;

#define _B1D70                  0x01
#define _B1D71                  0x02
#define _B1D72                  0x04
#define _B1D73                  0x08
#define _B1D74                  0x10
#define _B1D75                  0x20
#define _B1D76                  0x40
#define _B1D77                  0x80

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


//==============================================================================
//        CANSTAT_RO8 Bits

extern __at(0x0E9E) __sfr CANSTAT_RO8;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO8bits_t;

extern __at(0x0E9E) volatile __CANSTAT_RO8bits_t CANSTAT_RO8bits;

#define _CANSTAT_RO8_EICODE0    0x01
#define _CANSTAT_RO8_EICODE1_ICODE0 0x02
#define _CANSTAT_RO8_EICODE1    0x02
#define _CANSTAT_RO8_ICODE0     0x02
#define _CANSTAT_RO8_EICODE2_ICODE1 0x04
#define _CANSTAT_RO8_EICODE2    0x04
#define _CANSTAT_RO8_ICODE1     0x04
#define _CANSTAT_RO8_EICODE3_ICODE2 0x08
#define _CANSTAT_RO8_EICODE3    0x08
#define _CANSTAT_RO8_ICODE2     0x08
#define _CANSTAT_RO8_EICODE4    0x10
#define _CANSTAT_RO8_OPMODE0    0x20
#define _CANSTAT_RO8_OPMODE1    0x40
#define _CANSTAT_RO8_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO8 Bits

extern __at(0x0E9F) __sfr CANCON_RO8;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO8bits_t;

extern __at(0x0E9F) volatile __CANCON_RO8bits_t CANCON_RO8bits;

#define _CANCON_RO8_FP0         0x01
#define _CANCON_RO8_WIN0_FP1    0x02
#define _CANCON_RO8_WIN0        0x02
#define _CANCON_RO8_FP1         0x02
#define _CANCON_RO8_WIN1_FP2    0x04
#define _CANCON_RO8_WIN1        0x04
#define _CANCON_RO8_FP2         0x04
#define _CANCON_RO8_WIN2_FP3    0x08
#define _CANCON_RO8_WIN2        0x08
#define _CANCON_RO8_FP3         0x08
#define _CANCON_RO8_ABAT        0x10

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


//==============================================================================
//        B2CON Bits

extern __at(0x0EA0) __sfr B2CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __B2CONbits_t;

extern __at(0x0EA0) volatile __B2CONbits_t B2CONbits;

#define _B2CON_FILHIT0_TXPRI0   0x01
#define _B2CON_FILHIT0          0x01
#define _B2CON_TXPRI0           0x01
#define _B2CON_FILHIT1_TXPRI1   0x02
#define _B2CON_FILHIT1          0x02
#define _B2CON_TXPRI1           0x02
#define _B2CON_FILHIT2_RTREN    0x04
#define _B2CON_FILHIT2          0x04
#define _B2CON_RTREN            0x04
#define _B2CON_FILHIT3_TXREQ    0x08
#define _B2CON_FILHIT3          0x08
#define _B2CON_TXREQ            0x08
#define _B2CON_FILHIT4_TXERR    0x10
#define _B2CON_FILHIT4          0x10
#define _B2CON_TXERR            0x10
#define _B2CON_RXRTRRO_TXLARB   0x20
#define _B2CON_RXRTRRO          0x20
#define _B2CON_TXLARB           0x20
#define _B2CON_RXM1_TXABT       0x40
#define _B2CON_RXM1             0x40
#define _B2CON_TXABT            0x40
#define _B2CON_RXFUL_TXBIF      0x80
#define _B2CON_RXFUL            0x80
#define _B2CON_TXBIF            0x80

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


//==============================================================================
//        B2SIDH Bits

extern __at(0x0EA1) __sfr B2SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B2SIDHbits_t;

extern __at(0x0EA1) volatile __B2SIDHbits_t B2SIDHbits;

#define _B2SIDH_SID3            0x01
#define _B2SIDH_SID4            0x02
#define _B2SIDH_SID5            0x04
#define _B2SIDH_SID6            0x08
#define _B2SIDH_SID7            0x10
#define _B2SIDH_SID8            0x20
#define _B2SIDH_SID9            0x40
#define _B2SIDH_SID10           0x80

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


//==============================================================================
//        B2SIDL Bits

extern __at(0x0EA2) __sfr B2SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B2SIDLbits_t;

extern __at(0x0EA2) volatile __B2SIDLbits_t B2SIDLbits;

#define _B2SIDL_EID16           0x01
#define _B2SIDL_EID17           0x02
#define _B2SIDL_EXIDE           0x08
#define _B2SIDL_SRR             0x10
#define _B2SIDL_SID0            0x20
#define _B2SIDL_SID1            0x40
#define _B2SIDL_SID2            0x80

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


//==============================================================================
//        B2EIDH Bits

extern __at(0x0EA3) __sfr B2EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B2EIDHbits_t;

extern __at(0x0EA3) volatile __B2EIDHbits_t B2EIDHbits;

#define _B2EIDH_EID8            0x01
#define _B2EIDH_EID9            0x02
#define _B2EIDH_EID10           0x04
#define _B2EIDH_EID11           0x08
#define _B2EIDH_EID12           0x10
#define _B2EIDH_EID13           0x20
#define _B2EIDH_EID14           0x40
#define _B2EIDH_EID15           0x80

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


//==============================================================================
//        B2EIDL Bits

extern __at(0x0EA4) __sfr B2EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B2EIDLbits_t;

extern __at(0x0EA4) volatile __B2EIDLbits_t B2EIDLbits;

#define _B2EIDL_EID0            0x01
#define _B2EIDL_EID1            0x02
#define _B2EIDL_EID2            0x04
#define _B2EIDL_EID3            0x08
#define _B2EIDL_EID4            0x10
#define _B2EIDL_EID5            0x20
#define _B2EIDL_EID6            0x40
#define _B2EIDL_EID7            0x80

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


//==============================================================================
//        B2DLC Bits

extern __at(0x0EA5) __sfr B2DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B2DLCbits_t;

extern __at(0x0EA5) volatile __B2DLCbits_t B2DLCbits;

#define _B2DLC_DLC0             0x01
#define _B2DLC_DLC1             0x02
#define _B2DLC_DLC2             0x04
#define _B2DLC_DLC3             0x08
#define _B2DLC_RB0              0x10
#define _B2DLC_RB1              0x20
#define _B2DLC_RXRTR_TXRTR      0x40
#define _B2DLC_RXRTR            0x40
#define _B2DLC_TXRTR            0x40

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


//==============================================================================
//        B2D0 Bits

extern __at(0x0EA6) __sfr B2D0;

typedef struct
  {
  unsigned B2D00                : 1;
  unsigned B2D01                : 1;
  unsigned B2D02                : 1;
  unsigned B2D03                : 1;
  unsigned B2D04                : 1;
  unsigned B2D05                : 1;
  unsigned B2D06                : 1;
  unsigned B2D07                : 1;
  } __B2D0bits_t;

extern __at(0x0EA6) volatile __B2D0bits_t B2D0bits;

#define _B2D00                  0x01
#define _B2D01                  0x02
#define _B2D02                  0x04
#define _B2D03                  0x08
#define _B2D04                  0x10
#define _B2D05                  0x20
#define _B2D06                  0x40
#define _B2D07                  0x80

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


//==============================================================================
//        B2D1 Bits

extern __at(0x0EA7) __sfr B2D1;

typedef struct
  {
  unsigned B2D10                : 1;
  unsigned B2D11                : 1;
  unsigned B2D12                : 1;
  unsigned B2D13                : 1;
  unsigned B2D14                : 1;
  unsigned B2D15                : 1;
  unsigned B2D16                : 1;
  unsigned B2D17                : 1;
  } __B2D1bits_t;

extern __at(0x0EA7) volatile __B2D1bits_t B2D1bits;

#define _B2D10                  0x01
#define _B2D11                  0x02
#define _B2D12                  0x04
#define _B2D13                  0x08
#define _B2D14                  0x10
#define _B2D15                  0x20
#define _B2D16                  0x40
#define _B2D17                  0x80

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


//==============================================================================
//        B2D2 Bits

extern __at(0x0EA8) __sfr B2D2;

typedef struct
  {
  unsigned B2D20                : 1;
  unsigned B2D21                : 1;
  unsigned B2D22                : 1;
  unsigned B2D23                : 1;
  unsigned B2D24                : 1;
  unsigned B2D25                : 1;
  unsigned B2D26                : 1;
  unsigned B2D27                : 1;
  } __B2D2bits_t;

extern __at(0x0EA8) volatile __B2D2bits_t B2D2bits;

#define _B2D20                  0x01
#define _B2D21                  0x02
#define _B2D22                  0x04
#define _B2D23                  0x08
#define _B2D24                  0x10
#define _B2D25                  0x20
#define _B2D26                  0x40
#define _B2D27                  0x80

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


//==============================================================================
//        B2D3 Bits

extern __at(0x0EA9) __sfr B2D3;

typedef struct
  {
  unsigned B2D30                : 1;
  unsigned B2D31                : 1;
  unsigned B2D32                : 1;
  unsigned B2D33                : 1;
  unsigned B2D34                : 1;
  unsigned B2D35                : 1;
  unsigned B2D36                : 1;
  unsigned B2D37                : 1;
  } __B2D3bits_t;

extern __at(0x0EA9) volatile __B2D3bits_t B2D3bits;

#define _B2D30                  0x01
#define _B2D31                  0x02
#define _B2D32                  0x04
#define _B2D33                  0x08
#define _B2D34                  0x10
#define _B2D35                  0x20
#define _B2D36                  0x40
#define _B2D37                  0x80

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


//==============================================================================
//        B2D4 Bits

extern __at(0x0EAA) __sfr B2D4;

typedef struct
  {
  unsigned B2D40                : 1;
  unsigned B2D41                : 1;
  unsigned B2D42                : 1;
  unsigned B2D43                : 1;
  unsigned B2D44                : 1;
  unsigned B2D45                : 1;
  unsigned B2D46                : 1;
  unsigned B2D47                : 1;
  } __B2D4bits_t;

extern __at(0x0EAA) volatile __B2D4bits_t B2D4bits;

#define _B2D40                  0x01
#define _B2D41                  0x02
#define _B2D42                  0x04
#define _B2D43                  0x08
#define _B2D44                  0x10
#define _B2D45                  0x20
#define _B2D46                  0x40
#define _B2D47                  0x80

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


//==============================================================================
//        B2D5 Bits

extern __at(0x0EAB) __sfr B2D5;

typedef struct
  {
  unsigned B2D50                : 1;
  unsigned B2D51                : 1;
  unsigned B2D52                : 1;
  unsigned B2D53                : 1;
  unsigned B2D54                : 1;
  unsigned B2D55                : 1;
  unsigned B2D56                : 1;
  unsigned B2D57                : 1;
  } __B2D5bits_t;

extern __at(0x0EAB) volatile __B2D5bits_t B2D5bits;

#define _B2D50                  0x01
#define _B2D51                  0x02
#define _B2D52                  0x04
#define _B2D53                  0x08
#define _B2D54                  0x10
#define _B2D55                  0x20
#define _B2D56                  0x40
#define _B2D57                  0x80

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


//==============================================================================
//        B2D6 Bits

extern __at(0x0EAC) __sfr B2D6;

typedef struct
  {
  unsigned B2D60                : 1;
  unsigned B2D61                : 1;
  unsigned B2D62                : 1;
  unsigned B2D63                : 1;
  unsigned B2D64                : 1;
  unsigned B2D65                : 1;
  unsigned B2D66                : 1;
  unsigned B2D67                : 1;
  } __B2D6bits_t;

extern __at(0x0EAC) volatile __B2D6bits_t B2D6bits;

#define _B2D60                  0x01
#define _B2D61                  0x02
#define _B2D62                  0x04
#define _B2D63                  0x08
#define _B2D64                  0x10
#define _B2D65                  0x20
#define _B2D66                  0x40
#define _B2D67                  0x80

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


//==============================================================================
//        B2D7 Bits

extern __at(0x0EAD) __sfr B2D7;

typedef struct
  {
  unsigned B2D70                : 1;
  unsigned B2D71                : 1;
  unsigned B2D72                : 1;
  unsigned B2D73                : 1;
  unsigned B2D74                : 1;
  unsigned B2D75                : 1;
  unsigned B2D76                : 1;
  unsigned B2D77                : 1;
  } __B2D7bits_t;

extern __at(0x0EAD) volatile __B2D7bits_t B2D7bits;

#define _B2D70                  0x01
#define _B2D71                  0x02
#define _B2D72                  0x04
#define _B2D73                  0x08
#define _B2D74                  0x10
#define _B2D75                  0x20
#define _B2D76                  0x40
#define _B2D77                  0x80

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


//==============================================================================
//        CANSTAT_RO7 Bits

extern __at(0x0EAE) __sfr CANSTAT_RO7;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO7bits_t;

extern __at(0x0EAE) volatile __CANSTAT_RO7bits_t CANSTAT_RO7bits;

#define _CANSTAT_RO7_EICODE0    0x01
#define _CANSTAT_RO7_EICODE1_ICODE0 0x02
#define _CANSTAT_RO7_EICODE1    0x02
#define _CANSTAT_RO7_ICODE0     0x02
#define _CANSTAT_RO7_EICODE2_ICODE1 0x04
#define _CANSTAT_RO7_EICODE2    0x04
#define _CANSTAT_RO7_ICODE1     0x04
#define _CANSTAT_RO7_EICODE3_ICODE2 0x08
#define _CANSTAT_RO7_EICODE3    0x08
#define _CANSTAT_RO7_ICODE2     0x08
#define _CANSTAT_RO7_EICODE4    0x10
#define _CANSTAT_RO7_OPMODE0    0x20
#define _CANSTAT_RO7_OPMODE1    0x40
#define _CANSTAT_RO7_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO7 Bits

extern __at(0x0EAF) __sfr CANCON_RO7;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO7bits_t;

extern __at(0x0EAF) volatile __CANCON_RO7bits_t CANCON_RO7bits;

#define _CANCON_RO7_FP0         0x01
#define _CANCON_RO7_WIN0_FP1    0x02
#define _CANCON_RO7_WIN0        0x02
#define _CANCON_RO7_FP1         0x02
#define _CANCON_RO7_WIN1_FP2    0x04
#define _CANCON_RO7_WIN1        0x04
#define _CANCON_RO7_FP2         0x04
#define _CANCON_RO7_WIN2_FP3    0x08
#define _CANCON_RO7_WIN2        0x08
#define _CANCON_RO7_FP3         0x08
#define _CANCON_RO7_ABAT        0x10

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


//==============================================================================
//        B3CON Bits

extern __at(0x0EB0) __sfr B3CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned FILHIT             : 5;
    unsigned                    : 3;
    };
  } __B3CONbits_t;

extern __at(0x0EB0) volatile __B3CONbits_t B3CONbits;

#define _B3CON_FILHIT0_TXPRI0   0x01
#define _B3CON_FILHIT0          0x01
#define _B3CON_TXPRI0           0x01
#define _B3CON_FILHIT1_TXPRI1   0x02
#define _B3CON_FILHIT1          0x02
#define _B3CON_TXPRI1           0x02
#define _B3CON_FILHIT2_RTREN    0x04
#define _B3CON_FILHIT2          0x04
#define _B3CON_RTREN            0x04
#define _B3CON_FILHIT3_TXREQ    0x08
#define _B3CON_FILHIT3          0x08
#define _B3CON_TXREQ            0x08
#define _B3CON_FILHIT4_TXERR    0x10
#define _B3CON_FILHIT4          0x10
#define _B3CON_TXERR            0x10
#define _B3CON_RXRTRRO_TXLARB   0x20
#define _B3CON_RXRTRRO          0x20
#define _B3CON_TXLARB           0x20
#define _B3CON_RXM1_TXABT       0x40
#define _B3CON_RXM1             0x40
#define _B3CON_TXABT            0x40
#define _B3CON_RXFUL_TXBIF      0x80
#define _B3CON_RXFUL            0x80
#define _B3CON_TXBIF            0x80

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


//==============================================================================
//        B3SIDH Bits

extern __at(0x0EB1) __sfr B3SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B3SIDHbits_t;

extern __at(0x0EB1) volatile __B3SIDHbits_t B3SIDHbits;

#define _B3SIDH_SID3            0x01
#define _B3SIDH_SID4            0x02
#define _B3SIDH_SID5            0x04
#define _B3SIDH_SID6            0x08
#define _B3SIDH_SID7            0x10
#define _B3SIDH_SID8            0x20
#define _B3SIDH_SID9            0x40
#define _B3SIDH_SID10           0x80

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


//==============================================================================
//        B3SIDL Bits

extern __at(0x0EB2) __sfr B3SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B3SIDLbits_t;

extern __at(0x0EB2) volatile __B3SIDLbits_t B3SIDLbits;

#define _B3SIDL_EID16           0x01
#define _B3SIDL_EID17           0x02
#define _B3SIDL_EXIDE           0x08
#define _B3SIDL_SRR             0x10
#define _B3SIDL_SID0            0x20
#define _B3SIDL_SID1            0x40
#define _B3SIDL_SID2            0x80

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


//==============================================================================
//        B3EIDH Bits

extern __at(0x0EB3) __sfr B3EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B3EIDHbits_t;

extern __at(0x0EB3) volatile __B3EIDHbits_t B3EIDHbits;

#define _B3EIDH_EID8            0x01
#define _B3EIDH_EID9            0x02
#define _B3EIDH_EID10           0x04
#define _B3EIDH_EID11           0x08
#define _B3EIDH_EID12           0x10
#define _B3EIDH_EID13           0x20
#define _B3EIDH_EID14           0x40
#define _B3EIDH_EID15           0x80

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


//==============================================================================
//        B3EIDL Bits

extern __at(0x0EB4) __sfr B3EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B3EIDLbits_t;

extern __at(0x0EB4) volatile __B3EIDLbits_t B3EIDLbits;

#define _B3EIDL_EID0            0x01
#define _B3EIDL_EID1            0x02
#define _B3EIDL_EID2            0x04
#define _B3EIDL_EID3            0x08
#define _B3EIDL_EID4            0x10
#define _B3EIDL_EID5            0x20
#define _B3EIDL_EID6            0x40
#define _B3EIDL_EID7            0x80

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


//==============================================================================
//        B3DLC Bits

extern __at(0x0EB5) __sfr B3DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B3DLCbits_t;

extern __at(0x0EB5) volatile __B3DLCbits_t B3DLCbits;

#define _B3DLC_DLC0             0x01
#define _B3DLC_DLC1             0x02
#define _B3DLC_DLC2             0x04
#define _B3DLC_DLC3             0x08
#define _B3DLC_RB0              0x10
#define _B3DLC_RB1              0x20
#define _B3DLC_RXRTR_TXRTR      0x40
#define _B3DLC_RXRTR            0x40
#define _B3DLC_TXRTR            0x40

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


//==============================================================================
//        B3D0 Bits

extern __at(0x0EB6) __sfr B3D0;

typedef struct
  {
  unsigned B3D00                : 1;
  unsigned B3D01                : 1;
  unsigned B3D02                : 1;
  unsigned B3D03                : 1;
  unsigned B3D04                : 1;
  unsigned B3D05                : 1;
  unsigned B3D06                : 1;
  unsigned B3D07                : 1;
  } __B3D0bits_t;

extern __at(0x0EB6) volatile __B3D0bits_t B3D0bits;

#define _B3D00                  0x01
#define _B3D01                  0x02
#define _B3D02                  0x04
#define _B3D03                  0x08
#define _B3D04                  0x10
#define _B3D05                  0x20
#define _B3D06                  0x40
#define _B3D07                  0x80

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


//==============================================================================
//        B3D1 Bits

extern __at(0x0EB7) __sfr B3D1;

typedef struct
  {
  unsigned B3D10                : 1;
  unsigned B3D11                : 1;
  unsigned B3D12                : 1;
  unsigned B3D13                : 1;
  unsigned B3D14                : 1;
  unsigned B3D15                : 1;
  unsigned B3D16                : 1;
  unsigned B3D17                : 1;
  } __B3D1bits_t;

extern __at(0x0EB7) volatile __B3D1bits_t B3D1bits;

#define _B3D10                  0x01
#define _B3D11                  0x02
#define _B3D12                  0x04
#define _B3D13                  0x08
#define _B3D14                  0x10
#define _B3D15                  0x20
#define _B3D16                  0x40
#define _B3D17                  0x80

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


//==============================================================================
//        B3D2 Bits

extern __at(0x0EB8) __sfr B3D2;

typedef struct
  {
  unsigned B3D20                : 1;
  unsigned B3D21                : 1;
  unsigned B3D22                : 1;
  unsigned B3D23                : 1;
  unsigned B3D24                : 1;
  unsigned B3D25                : 1;
  unsigned B3D26                : 1;
  unsigned B3D27                : 1;
  } __B3D2bits_t;

extern __at(0x0EB8) volatile __B3D2bits_t B3D2bits;

#define _B3D20                  0x01
#define _B3D21                  0x02
#define _B3D22                  0x04
#define _B3D23                  0x08
#define _B3D24                  0x10
#define _B3D25                  0x20
#define _B3D26                  0x40
#define _B3D27                  0x80

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


//==============================================================================
//        B3D3 Bits

extern __at(0x0EB9) __sfr B3D3;

typedef struct
  {
  unsigned B3D30                : 1;
  unsigned B3D31                : 1;
  unsigned B3D32                : 1;
  unsigned B3D33                : 1;
  unsigned B3D34                : 1;
  unsigned B3D35                : 1;
  unsigned B3D36                : 1;
  unsigned B3D37                : 1;
  } __B3D3bits_t;

extern __at(0x0EB9) volatile __B3D3bits_t B3D3bits;

#define _B3D30                  0x01
#define _B3D31                  0x02
#define _B3D32                  0x04
#define _B3D33                  0x08
#define _B3D34                  0x10
#define _B3D35                  0x20
#define _B3D36                  0x40
#define _B3D37                  0x80

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


//==============================================================================
//        B3D4 Bits

extern __at(0x0EBA) __sfr B3D4;

typedef struct
  {
  unsigned B3D40                : 1;
  unsigned B3D41                : 1;
  unsigned B3D42                : 1;
  unsigned B3D43                : 1;
  unsigned B3D44                : 1;
  unsigned B3D45                : 1;
  unsigned B3D46                : 1;
  unsigned B3D47                : 1;
  } __B3D4bits_t;

extern __at(0x0EBA) volatile __B3D4bits_t B3D4bits;

#define _B3D40                  0x01
#define _B3D41                  0x02
#define _B3D42                  0x04
#define _B3D43                  0x08
#define _B3D44                  0x10
#define _B3D45                  0x20
#define _B3D46                  0x40
#define _B3D47                  0x80

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


//==============================================================================
//        B3D5 Bits

extern __at(0x0EBB) __sfr B3D5;

typedef struct
  {
  unsigned B3D50                : 1;
  unsigned B3D51                : 1;
  unsigned B3D52                : 1;
  unsigned B3D53                : 1;
  unsigned B3D54                : 1;
  unsigned B3D55                : 1;
  unsigned B3D56                : 1;
  unsigned B3D57                : 1;
  } __B3D5bits_t;

extern __at(0x0EBB) volatile __B3D5bits_t B3D5bits;

#define _B3D50                  0x01
#define _B3D51                  0x02
#define _B3D52                  0x04
#define _B3D53                  0x08
#define _B3D54                  0x10
#define _B3D55                  0x20
#define _B3D56                  0x40
#define _B3D57                  0x80

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


//==============================================================================
//        B3D6 Bits

extern __at(0x0EBC) __sfr B3D6;

typedef struct
  {
  unsigned B3D60                : 1;
  unsigned B3D61                : 1;
  unsigned B3D62                : 1;
  unsigned B3D63                : 1;
  unsigned B3D64                : 1;
  unsigned B3D65                : 1;
  unsigned B3D66                : 1;
  unsigned B3D67                : 1;
  } __B3D6bits_t;

extern __at(0x0EBC) volatile __B3D6bits_t B3D6bits;

#define _B3D60                  0x01
#define _B3D61                  0x02
#define _B3D62                  0x04
#define _B3D63                  0x08
#define _B3D64                  0x10
#define _B3D65                  0x20
#define _B3D66                  0x40
#define _B3D67                  0x80

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


//==============================================================================
//        B3D7 Bits

extern __at(0x0EBD) __sfr B3D7;

typedef struct
  {
  unsigned B3D70                : 1;
  unsigned B3D71                : 1;
  unsigned B3D72                : 1;
  unsigned B3D73                : 1;
  unsigned B3D74                : 1;
  unsigned B3D75                : 1;
  unsigned B3D76                : 1;
  unsigned B3D77                : 1;
  } __B3D7bits_t;

extern __at(0x0EBD) volatile __B3D7bits_t B3D7bits;

#define _B3D70                  0x01
#define _B3D71                  0x02
#define _B3D72                  0x04
#define _B3D73                  0x08
#define _B3D74                  0x10
#define _B3D75                  0x20
#define _B3D76                  0x40
#define _B3D77                  0x80

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


//==============================================================================
//        CANSTAT_RO6 Bits

extern __at(0x0EBE) __sfr CANSTAT_RO6;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO6bits_t;

extern __at(0x0EBE) volatile __CANSTAT_RO6bits_t CANSTAT_RO6bits;

#define _CANSTAT_RO6_EICODE0    0x01
#define _CANSTAT_RO6_EICODE1_ICODE0 0x02
#define _CANSTAT_RO6_EICODE1    0x02
#define _CANSTAT_RO6_ICODE0     0x02
#define _CANSTAT_RO6_EICODE2_ICODE1 0x04
#define _CANSTAT_RO6_EICODE2    0x04
#define _CANSTAT_RO6_ICODE1     0x04
#define _CANSTAT_RO6_EICODE3_ICODE2 0x08
#define _CANSTAT_RO6_EICODE3    0x08
#define _CANSTAT_RO6_ICODE2     0x08
#define _CANSTAT_RO6_EICODE4    0x10
#define _CANSTAT_RO6_OPMODE0    0x20
#define _CANSTAT_RO6_OPMODE1    0x40
#define _CANSTAT_RO6_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO6 Bits

extern __at(0x0EBF) __sfr CANCON_RO6;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO6bits_t;

extern __at(0x0EBF) volatile __CANCON_RO6bits_t CANCON_RO6bits;

#define _CANCON_RO6_FP0         0x01
#define _CANCON_RO6_WIN0_FP1    0x02
#define _CANCON_RO6_WIN0        0x02
#define _CANCON_RO6_FP1         0x02
#define _CANCON_RO6_WIN1_FP2    0x04
#define _CANCON_RO6_WIN1        0x04
#define _CANCON_RO6_FP2         0x04
#define _CANCON_RO6_WIN2_FP3    0x08
#define _CANCON_RO6_WIN2        0x08
#define _CANCON_RO6_FP3         0x08
#define _CANCON_RO6_ABAT        0x10

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


//==============================================================================
//        B4CON Bits

extern __at(0x0EC0) __sfr B4CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __B4CONbits_t;

extern __at(0x0EC0) volatile __B4CONbits_t B4CONbits;

#define _B4CON_FILHIT0_TXPRI0   0x01
#define _B4CON_FILHIT0          0x01
#define _B4CON_TXPRI0           0x01
#define _B4CON_FILHIT1_TXPRI1   0x02
#define _B4CON_FILHIT1          0x02
#define _B4CON_TXPRI1           0x02
#define _B4CON_FILHIT2_RTREN    0x04
#define _B4CON_FILHIT2          0x04
#define _B4CON_RTREN            0x04
#define _B4CON_FILHIT3_TXREQ    0x08
#define _B4CON_FILHIT3          0x08
#define _B4CON_TXREQ            0x08
#define _B4CON_FILHIT4_TXERR    0x10
#define _B4CON_FILHIT4          0x10
#define _B4CON_TXERR            0x10
#define _B4CON_RXRTRRO_TXLARB   0x20
#define _B4CON_RXRTRRO          0x20
#define _B4CON_TXLARB           0x20
#define _B4CON_RXM1_TXABT       0x40
#define _B4CON_RXM1             0x40
#define _B4CON_TXABT            0x40
#define _B4CON_RXFUL_TXBIF      0x80
#define _B4CON_RXFUL            0x80
#define _B4CON_TXBIF            0x80

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


//==============================================================================
//        B4SIDH Bits

extern __at(0x0EC1) __sfr B4SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B4SIDHbits_t;

extern __at(0x0EC1) volatile __B4SIDHbits_t B4SIDHbits;

#define _B4SIDH_SID3            0x01
#define _B4SIDH_SID4            0x02
#define _B4SIDH_SID5            0x04
#define _B4SIDH_SID6            0x08
#define _B4SIDH_SID7            0x10
#define _B4SIDH_SID8            0x20
#define _B4SIDH_SID9            0x40
#define _B4SIDH_SID10           0x80

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


//==============================================================================
//        B4SIDL Bits

extern __at(0x0EC2) __sfr B4SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B4SIDLbits_t;

extern __at(0x0EC2) volatile __B4SIDLbits_t B4SIDLbits;

#define _B4SIDL_EID16           0x01
#define _B4SIDL_EID17           0x02
#define _B4SIDL_EXIDE           0x08
#define _B4SIDL_SRR             0x10
#define _B4SIDL_SID0            0x20
#define _B4SIDL_SID1            0x40
#define _B4SIDL_SID2            0x80

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


//==============================================================================
//        B4EIDH Bits

extern __at(0x0EC3) __sfr B4EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B4EIDHbits_t;

extern __at(0x0EC3) volatile __B4EIDHbits_t B4EIDHbits;

#define _B4EIDH_EID8            0x01
#define _B4EIDH_EID9            0x02
#define _B4EIDH_EID10           0x04
#define _B4EIDH_EID11           0x08
#define _B4EIDH_EID12           0x10
#define _B4EIDH_EID13           0x20
#define _B4EIDH_EID14           0x40
#define _B4EIDH_EID15           0x80

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


//==============================================================================
//        B4EIDL Bits

extern __at(0x0EC4) __sfr B4EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B4EIDLbits_t;

extern __at(0x0EC4) volatile __B4EIDLbits_t B4EIDLbits;

#define _B4EIDL_EID0            0x01
#define _B4EIDL_EID1            0x02
#define _B4EIDL_EID2            0x04
#define _B4EIDL_EID3            0x08
#define _B4EIDL_EID4            0x10
#define _B4EIDL_EID5            0x20
#define _B4EIDL_EID6            0x40
#define _B4EIDL_EID7            0x80

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


//==============================================================================
//        B4DLC Bits

extern __at(0x0EC5) __sfr B4DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B4DLCbits_t;

extern __at(0x0EC5) volatile __B4DLCbits_t B4DLCbits;

#define _B4DLC_DLC0             0x01
#define _B4DLC_DLC1             0x02
#define _B4DLC_DLC2             0x04
#define _B4DLC_DLC3             0x08
#define _B4DLC_RB0              0x10
#define _B4DLC_RB1              0x20
#define _B4DLC_RXRTR_TXRTR      0x40
#define _B4DLC_RXRTR            0x40
#define _B4DLC_TXRTR            0x40

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


//==============================================================================
//        B4D0 Bits

extern __at(0x0EC6) __sfr B4D0;

typedef struct
  {
  unsigned B4D00                : 1;
  unsigned B4D01                : 1;
  unsigned B4D02                : 1;
  unsigned B4D03                : 1;
  unsigned B4D04                : 1;
  unsigned B4D05                : 1;
  unsigned B4D06                : 1;
  unsigned B4D07                : 1;
  } __B4D0bits_t;

extern __at(0x0EC6) volatile __B4D0bits_t B4D0bits;

#define _B4D00                  0x01
#define _B4D01                  0x02
#define _B4D02                  0x04
#define _B4D03                  0x08
#define _B4D04                  0x10
#define _B4D05                  0x20
#define _B4D06                  0x40
#define _B4D07                  0x80

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


//==============================================================================
//        B4D1 Bits

extern __at(0x0EC7) __sfr B4D1;

typedef struct
  {
  unsigned B4D10                : 1;
  unsigned B4D11                : 1;
  unsigned B4D12                : 1;
  unsigned B4D13                : 1;
  unsigned B4D14                : 1;
  unsigned B4D15                : 1;
  unsigned B4D16                : 1;
  unsigned B4D17                : 1;
  } __B4D1bits_t;

extern __at(0x0EC7) volatile __B4D1bits_t B4D1bits;

#define _B4D10                  0x01
#define _B4D11                  0x02
#define _B4D12                  0x04
#define _B4D13                  0x08
#define _B4D14                  0x10
#define _B4D15                  0x20
#define _B4D16                  0x40
#define _B4D17                  0x80

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


//==============================================================================
//        B4D2 Bits

extern __at(0x0EC8) __sfr B4D2;

typedef struct
  {
  unsigned B4D20                : 1;
  unsigned B4D21                : 1;
  unsigned B4D22                : 1;
  unsigned B4D23                : 1;
  unsigned B4D24                : 1;
  unsigned B4D25                : 1;
  unsigned B4D26                : 1;
  unsigned B4D27                : 1;
  } __B4D2bits_t;

extern __at(0x0EC8) volatile __B4D2bits_t B4D2bits;

#define _B4D20                  0x01
#define _B4D21                  0x02
#define _B4D22                  0x04
#define _B4D23                  0x08
#define _B4D24                  0x10
#define _B4D25                  0x20
#define _B4D26                  0x40
#define _B4D27                  0x80

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


//==============================================================================
//        B4D3 Bits

extern __at(0x0EC9) __sfr B4D3;

typedef struct
  {
  unsigned B4D30                : 1;
  unsigned B4D31                : 1;
  unsigned B4D32                : 1;
  unsigned B4D33                : 1;
  unsigned B4D34                : 1;
  unsigned B4D35                : 1;
  unsigned B4D36                : 1;
  unsigned B4D37                : 1;
  } __B4D3bits_t;

extern __at(0x0EC9) volatile __B4D3bits_t B4D3bits;

#define _B4D30                  0x01
#define _B4D31                  0x02
#define _B4D32                  0x04
#define _B4D33                  0x08
#define _B4D34                  0x10
#define _B4D35                  0x20
#define _B4D36                  0x40
#define _B4D37                  0x80

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


//==============================================================================
//        B4D4 Bits

extern __at(0x0ECA) __sfr B4D4;

typedef struct
  {
  unsigned B4D40                : 1;
  unsigned B4D41                : 1;
  unsigned B4D42                : 1;
  unsigned B4D43                : 1;
  unsigned B4D44                : 1;
  unsigned B4D45                : 1;
  unsigned B4D46                : 1;
  unsigned B4D47                : 1;
  } __B4D4bits_t;

extern __at(0x0ECA) volatile __B4D4bits_t B4D4bits;

#define _B4D40                  0x01
#define _B4D41                  0x02
#define _B4D42                  0x04
#define _B4D43                  0x08
#define _B4D44                  0x10
#define _B4D45                  0x20
#define _B4D46                  0x40
#define _B4D47                  0x80

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


//==============================================================================
//        B4D5 Bits

extern __at(0x0ECB) __sfr B4D5;

typedef struct
  {
  unsigned B4D50                : 1;
  unsigned B4D51                : 1;
  unsigned B4D52                : 1;
  unsigned B4D53                : 1;
  unsigned B4D54                : 1;
  unsigned B4D55                : 1;
  unsigned B4D56                : 1;
  unsigned B4D57                : 1;
  } __B4D5bits_t;

extern __at(0x0ECB) volatile __B4D5bits_t B4D5bits;

#define _B4D50                  0x01
#define _B4D51                  0x02
#define _B4D52                  0x04
#define _B4D53                  0x08
#define _B4D54                  0x10
#define _B4D55                  0x20
#define _B4D56                  0x40
#define _B4D57                  0x80

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


//==============================================================================
//        B4D6 Bits

extern __at(0x0ECC) __sfr B4D6;

typedef struct
  {
  unsigned B4D60                : 1;
  unsigned B4D61                : 1;
  unsigned B4D62                : 1;
  unsigned B4D63                : 1;
  unsigned B4D64                : 1;
  unsigned B4D65                : 1;
  unsigned B4D66                : 1;
  unsigned B4D67                : 1;
  } __B4D6bits_t;

extern __at(0x0ECC) volatile __B4D6bits_t B4D6bits;

#define _B4D60                  0x01
#define _B4D61                  0x02
#define _B4D62                  0x04
#define _B4D63                  0x08
#define _B4D64                  0x10
#define _B4D65                  0x20
#define _B4D66                  0x40
#define _B4D67                  0x80

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


//==============================================================================
//        B4D7 Bits

extern __at(0x0ECD) __sfr B4D7;

typedef struct
  {
  unsigned B4D70                : 1;
  unsigned B4D71                : 1;
  unsigned B4D72                : 1;
  unsigned B4D73                : 1;
  unsigned B4D74                : 1;
  unsigned B4D75                : 1;
  unsigned B4D76                : 1;
  unsigned B4D77                : 1;
  } __B4D7bits_t;

extern __at(0x0ECD) volatile __B4D7bits_t B4D7bits;

#define _B4D70                  0x01
#define _B4D71                  0x02
#define _B4D72                  0x04
#define _B4D73                  0x08
#define _B4D74                  0x10
#define _B4D75                  0x20
#define _B4D76                  0x40
#define _B4D77                  0x80

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


//==============================================================================
//        CANSTAT_RO5 Bits

extern __at(0x0ECE) __sfr CANSTAT_RO5;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO5bits_t;

extern __at(0x0ECE) volatile __CANSTAT_RO5bits_t CANSTAT_RO5bits;

#define _CANSTAT_RO5_EICODE0    0x01
#define _CANSTAT_RO5_EICODE1_ICODE0 0x02
#define _CANSTAT_RO5_EICODE1    0x02
#define _CANSTAT_RO5_ICODE0     0x02
#define _CANSTAT_RO5_EICODE2_ICODE1 0x04
#define _CANSTAT_RO5_EICODE2    0x04
#define _CANSTAT_RO5_ICODE1     0x04
#define _CANSTAT_RO5_EICODE3_ICODE2 0x08
#define _CANSTAT_RO5_EICODE3    0x08
#define _CANSTAT_RO5_ICODE2     0x08
#define _CANSTAT_RO5_EICODE4    0x10
#define _CANSTAT_RO5_OPMODE0    0x20
#define _CANSTAT_RO5_OPMODE1    0x40
#define _CANSTAT_RO5_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO5 Bits

extern __at(0x0ECF) __sfr CANCON_RO5;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO5bits_t;

extern __at(0x0ECF) volatile __CANCON_RO5bits_t CANCON_RO5bits;

#define _CANCON_RO5_FP0         0x01
#define _CANCON_RO5_WIN0_FP1    0x02
#define _CANCON_RO5_WIN0        0x02
#define _CANCON_RO5_FP1         0x02
#define _CANCON_RO5_WIN1_FP2    0x04
#define _CANCON_RO5_WIN1        0x04
#define _CANCON_RO5_FP2         0x04
#define _CANCON_RO5_WIN2_FP3    0x08
#define _CANCON_RO5_WIN2        0x08
#define _CANCON_RO5_FP3         0x08
#define _CANCON_RO5_ABAT        0x10

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


//==============================================================================
//        B5CON Bits

extern __at(0x0ED0) __sfr B5CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0_TXPRI0     : 1;
    unsigned FILHIT1_TXPRI1     : 1;
    unsigned FILHIT2_RTREN      : 1;
    unsigned FILHIT3_TXREQ      : 1;
    unsigned FILHIT4_TXERR      : 1;
    unsigned RXRTRRO_TXLARB     : 1;
    unsigned RXM1_TXABT         : 1;
    unsigned RXFUL_TXBIF        : 1;
    };

  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned FILHIT4            : 1;
    unsigned RXRTRRO            : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned RTREN              : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

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

  struct
    {
    unsigned FILHIT             : 5;
    unsigned                    : 3;
    };
  } __B5CONbits_t;

extern __at(0x0ED0) volatile __B5CONbits_t B5CONbits;

#define _B5CON_FILHIT0_TXPRI0   0x01
#define _B5CON_FILHIT0          0x01
#define _B5CON_TXPRI0           0x01
#define _B5CON_FILHIT1_TXPRI1   0x02
#define _B5CON_FILHIT1          0x02
#define _B5CON_TXPRI1           0x02
#define _B5CON_FILHIT2_RTREN    0x04
#define _B5CON_FILHIT2          0x04
#define _B5CON_RTREN            0x04
#define _B5CON_FILHIT3_TXREQ    0x08
#define _B5CON_FILHIT3          0x08
#define _B5CON_TXREQ            0x08
#define _B5CON_FILHIT4_TXERR    0x10
#define _B5CON_FILHIT4          0x10
#define _B5CON_TXERR            0x10
#define _B5CON_RXRTRRO_TXLARB   0x20
#define _B5CON_RXRTRRO          0x20
#define _B5CON_TXLARB           0x20
#define _B5CON_RXM1_TXABT       0x40
#define _B5CON_RXM1             0x40
#define _B5CON_TXABT            0x40
#define _B5CON_RXFUL_TXBIF      0x80
#define _B5CON_RXFUL            0x80
#define _B5CON_TXBIF            0x80

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


//==============================================================================
//        B5SIDH Bits

extern __at(0x0ED1) __sfr B5SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __B5SIDHbits_t;

extern __at(0x0ED1) volatile __B5SIDHbits_t B5SIDHbits;

#define _B5SIDH_SID3            0x01
#define _B5SIDH_SID4            0x02
#define _B5SIDH_SID5            0x04
#define _B5SIDH_SID6            0x08
#define _B5SIDH_SID7            0x10
#define _B5SIDH_SID8            0x20
#define _B5SIDH_SID9            0x40
#define _B5SIDH_SID10           0x80

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


//==============================================================================
//        B5SIDL Bits

extern __at(0x0ED2) __sfr B5SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __B5SIDLbits_t;

extern __at(0x0ED2) volatile __B5SIDLbits_t B5SIDLbits;

#define _B5SIDL_EID16           0x01
#define _B5SIDL_EID17           0x02
#define _B5SIDL_EXIDE           0x08
#define _B5SIDL_SRR             0x10
#define _B5SIDL_SID0            0x20
#define _B5SIDL_SID1            0x40
#define _B5SIDL_SID2            0x80

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


//==============================================================================
//        B5EIDH Bits

extern __at(0x0ED3) __sfr B5EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __B5EIDHbits_t;

extern __at(0x0ED3) volatile __B5EIDHbits_t B5EIDHbits;

#define _B5EIDH_EID8            0x01
#define _B5EIDH_EID9            0x02
#define _B5EIDH_EID10           0x04
#define _B5EIDH_EID11           0x08
#define _B5EIDH_EID12           0x10
#define _B5EIDH_EID13           0x20
#define _B5EIDH_EID14           0x40
#define _B5EIDH_EID15           0x80

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


//==============================================================================
//        B5EIDL Bits

extern __at(0x0ED4) __sfr B5EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __B5EIDLbits_t;

extern __at(0x0ED4) volatile __B5EIDLbits_t B5EIDLbits;

#define _B5EIDL_EID0            0x01
#define _B5EIDL_EID1            0x02
#define _B5EIDL_EID2            0x04
#define _B5EIDL_EID3            0x08
#define _B5EIDL_EID4            0x10
#define _B5EIDL_EID5            0x20
#define _B5EIDL_EID6            0x40
#define _B5EIDL_EID7            0x80

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


//==============================================================================
//        B5DLC Bits

extern __at(0x0ED5) __sfr B5DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR_TXRTR        : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __B5DLCbits_t;

extern __at(0x0ED5) volatile __B5DLCbits_t B5DLCbits;

#define _B5DLC_DLC0             0x01
#define _B5DLC_DLC1             0x02
#define _B5DLC_DLC2             0x04
#define _B5DLC_DLC3             0x08
#define _B5DLC_RB0              0x10
#define _B5DLC_RB1              0x20
#define _B5DLC_RXRTR_TXRTR      0x40
#define _B5DLC_RXRTR            0x40
#define _B5DLC_TXRTR            0x40

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


//==============================================================================
//        B5D0 Bits

extern __at(0x0ED6) __sfr B5D0;

typedef struct
  {
  unsigned B5D00                : 1;
  unsigned B5D01                : 1;
  unsigned B5D02                : 1;
  unsigned B5D03                : 1;
  unsigned B5D04                : 1;
  unsigned B5D05                : 1;
  unsigned B5D06                : 1;
  unsigned B5D07                : 1;
  } __B5D0bits_t;

extern __at(0x0ED6) volatile __B5D0bits_t B5D0bits;

#define _B5D00                  0x01
#define _B5D01                  0x02
#define _B5D02                  0x04
#define _B5D03                  0x08
#define _B5D04                  0x10
#define _B5D05                  0x20
#define _B5D06                  0x40
#define _B5D07                  0x80

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


//==============================================================================
//        B5D1 Bits

extern __at(0x0ED7) __sfr B5D1;

typedef struct
  {
  unsigned B5D10                : 1;
  unsigned B5D11                : 1;
  unsigned B5D12                : 1;
  unsigned B5D13                : 1;
  unsigned B5D14                : 1;
  unsigned B5D15                : 1;
  unsigned B5D16                : 1;
  unsigned B5D17                : 1;
  } __B5D1bits_t;

extern __at(0x0ED7) volatile __B5D1bits_t B5D1bits;

#define _B5D10                  0x01
#define _B5D11                  0x02
#define _B5D12                  0x04
#define _B5D13                  0x08
#define _B5D14                  0x10
#define _B5D15                  0x20
#define _B5D16                  0x40
#define _B5D17                  0x80

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


//==============================================================================
//        B5D2 Bits

extern __at(0x0ED8) __sfr B5D2;

typedef struct
  {
  unsigned B5D20                : 1;
  unsigned B5D21                : 1;
  unsigned B5D22                : 1;
  unsigned B5D23                : 1;
  unsigned B5D24                : 1;
  unsigned B5D25                : 1;
  unsigned B5D26                : 1;
  unsigned B5D27                : 1;
  } __B5D2bits_t;

extern __at(0x0ED8) volatile __B5D2bits_t B5D2bits;

#define _B5D20                  0x01
#define _B5D21                  0x02
#define _B5D22                  0x04
#define _B5D23                  0x08
#define _B5D24                  0x10
#define _B5D25                  0x20
#define _B5D26                  0x40
#define _B5D27                  0x80

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


//==============================================================================
//        B5D3 Bits

extern __at(0x0ED9) __sfr B5D3;

typedef struct
  {
  unsigned B5D30                : 1;
  unsigned B5D31                : 1;
  unsigned B5D32                : 1;
  unsigned B5D33                : 1;
  unsigned B5D34                : 1;
  unsigned B5D35                : 1;
  unsigned B5D36                : 1;
  unsigned B5D37                : 1;
  } __B5D3bits_t;

extern __at(0x0ED9) volatile __B5D3bits_t B5D3bits;

#define _B5D30                  0x01
#define _B5D31                  0x02
#define _B5D32                  0x04
#define _B5D33                  0x08
#define _B5D34                  0x10
#define _B5D35                  0x20
#define _B5D36                  0x40
#define _B5D37                  0x80

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


//==============================================================================
//        B5D4 Bits

extern __at(0x0EDA) __sfr B5D4;

typedef struct
  {
  unsigned B5D40                : 1;
  unsigned B5D41                : 1;
  unsigned B5D42                : 1;
  unsigned B5D43                : 1;
  unsigned B5D44                : 1;
  unsigned B5D45                : 1;
  unsigned B5D46                : 1;
  unsigned B5D47                : 1;
  } __B5D4bits_t;

extern __at(0x0EDA) volatile __B5D4bits_t B5D4bits;

#define _B5D40                  0x01
#define _B5D41                  0x02
#define _B5D42                  0x04
#define _B5D43                  0x08
#define _B5D44                  0x10
#define _B5D45                  0x20
#define _B5D46                  0x40
#define _B5D47                  0x80

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


//==============================================================================
//        B5D5 Bits

extern __at(0x0EDB) __sfr B5D5;

typedef struct
  {
  unsigned B5D50                : 1;
  unsigned B5D51                : 1;
  unsigned B5D52                : 1;
  unsigned B5D53                : 1;
  unsigned B5D54                : 1;
  unsigned B5D55                : 1;
  unsigned B5D56                : 1;
  unsigned B5D57                : 1;
  } __B5D5bits_t;

extern __at(0x0EDB) volatile __B5D5bits_t B5D5bits;

#define _B5D50                  0x01
#define _B5D51                  0x02
#define _B5D52                  0x04
#define _B5D53                  0x08
#define _B5D54                  0x10
#define _B5D55                  0x20
#define _B5D56                  0x40
#define _B5D57                  0x80

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


//==============================================================================
//        B5D6 Bits

extern __at(0x0EDC) __sfr B5D6;

typedef struct
  {
  unsigned B5D60                : 1;
  unsigned B5D61                : 1;
  unsigned B5D62                : 1;
  unsigned B5D63                : 1;
  unsigned B5D64                : 1;
  unsigned B5D65                : 1;
  unsigned B5D66                : 1;
  unsigned B5D67                : 1;
  } __B5D6bits_t;

extern __at(0x0EDC) volatile __B5D6bits_t B5D6bits;

#define _B5D60                  0x01
#define _B5D61                  0x02
#define _B5D62                  0x04
#define _B5D63                  0x08
#define _B5D64                  0x10
#define _B5D65                  0x20
#define _B5D66                  0x40
#define _B5D67                  0x80

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


//==============================================================================
//        B5D7 Bits

extern __at(0x0EDD) __sfr B5D7;

typedef struct
  {
  unsigned B5D70                : 1;
  unsigned B5D71                : 1;
  unsigned B5D72                : 1;
  unsigned B5D73                : 1;
  unsigned B5D74                : 1;
  unsigned B5D75                : 1;
  unsigned B5D76                : 1;
  unsigned B5D77                : 1;
  } __B5D7bits_t;

extern __at(0x0EDD) volatile __B5D7bits_t B5D7bits;

#define _B5D70                  0x01
#define _B5D71                  0x02
#define _B5D72                  0x04
#define _B5D73                  0x08
#define _B5D74                  0x10
#define _B5D75                  0x20
#define _B5D76                  0x40
#define _B5D77                  0x80

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


//==============================================================================
//        CANSTAT_RO4 Bits

extern __at(0x0EDE) __sfr CANSTAT_RO4;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO4bits_t;

extern __at(0x0EDE) volatile __CANSTAT_RO4bits_t CANSTAT_RO4bits;

#define _CANSTAT_RO4_EICODE0    0x01
#define _CANSTAT_RO4_EICODE1_ICODE0 0x02
#define _CANSTAT_RO4_EICODE1    0x02
#define _CANSTAT_RO4_ICODE0     0x02
#define _CANSTAT_RO4_EICODE2_ICODE1 0x04
#define _CANSTAT_RO4_EICODE2    0x04
#define _CANSTAT_RO4_ICODE1     0x04
#define _CANSTAT_RO4_EICODE3_ICODE2 0x08
#define _CANSTAT_RO4_EICODE3    0x08
#define _CANSTAT_RO4_ICODE2     0x08
#define _CANSTAT_RO4_EICODE4    0x10
#define _CANSTAT_RO4_OPMODE0    0x20
#define _CANSTAT_RO4_OPMODE1    0x40
#define _CANSTAT_RO4_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO4 Bits

extern __at(0x0EDF) __sfr CANCON_RO4;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO4bits_t;

extern __at(0x0EDF) volatile __CANCON_RO4bits_t CANCON_RO4bits;

#define _CANCON_RO4_FP0         0x01
#define _CANCON_RO4_WIN0_FP1    0x02
#define _CANCON_RO4_WIN0        0x02
#define _CANCON_RO4_FP1         0x02
#define _CANCON_RO4_WIN1_FP2    0x04
#define _CANCON_RO4_WIN1        0x04
#define _CANCON_RO4_FP2         0x04
#define _CANCON_RO4_WIN2_FP3    0x08
#define _CANCON_RO4_WIN2        0x08
#define _CANCON_RO4_FP3         0x08
#define _CANCON_RO4_ABAT        0x10

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


//==============================================================================
//        RXF0SIDH Bits

extern __at(0x0EE0) __sfr RXF0SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF0SIDHbits_t;

extern __at(0x0EE0) volatile __RXF0SIDHbits_t RXF0SIDHbits;

#define _RXF0SIDH_SID3          0x01
#define _RXF0SIDH_SID4          0x02
#define _RXF0SIDH_SID5          0x04
#define _RXF0SIDH_SID6          0x08
#define _RXF0SIDH_SID7          0x10
#define _RXF0SIDH_SID8          0x20
#define _RXF0SIDH_SID9          0x40
#define _RXF0SIDH_SID10         0x80

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


//==============================================================================
//        RXF0SIDL Bits

extern __at(0x0EE1) __sfr RXF0SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF0SIDLbits_t;

extern __at(0x0EE1) volatile __RXF0SIDLbits_t RXF0SIDLbits;

#define _RXF0SIDL_EID16         0x01
#define _RXF0SIDL_EID17         0x02
#define _RXF0SIDL_EXIDEN        0x08
#define _RXF0SIDL_SID0          0x20
#define _RXF0SIDL_SID1          0x40
#define _RXF0SIDL_SID2          0x80

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


//==============================================================================
//        RXF0EIDH Bits

extern __at(0x0EE2) __sfr RXF0EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF0EIDHbits_t;

extern __at(0x0EE2) volatile __RXF0EIDHbits_t RXF0EIDHbits;

#define _RXF0EIDH_EID8          0x01
#define _RXF0EIDH_EID9          0x02
#define _RXF0EIDH_EID10         0x04
#define _RXF0EIDH_EID11         0x08
#define _RXF0EIDH_EID12         0x10
#define _RXF0EIDH_EID13         0x20
#define _RXF0EIDH_EID14         0x40
#define _RXF0EIDH_EID15         0x80

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


//==============================================================================
//        RXF0EIDL Bits

extern __at(0x0EE3) __sfr RXF0EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF0EIDLbits_t;

extern __at(0x0EE3) volatile __RXF0EIDLbits_t RXF0EIDLbits;

#define _RXF0EIDL_EID0          0x01
#define _RXF0EIDL_EID1          0x02
#define _RXF0EIDL_EID2          0x04
#define _RXF0EIDL_EID3          0x08
#define _RXF0EIDL_EID4          0x10
#define _RXF0EIDL_EID5          0x20
#define _RXF0EIDL_EID6          0x40
#define _RXF0EIDL_EID7          0x80

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


//==============================================================================
//        RXF1SIDH Bits

extern __at(0x0EE4) __sfr RXF1SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF1SIDHbits_t;

extern __at(0x0EE4) volatile __RXF1SIDHbits_t RXF1SIDHbits;

#define _RXF1SIDH_SID3          0x01
#define _RXF1SIDH_SID4          0x02
#define _RXF1SIDH_SID5          0x04
#define _RXF1SIDH_SID6          0x08
#define _RXF1SIDH_SID7          0x10
#define _RXF1SIDH_SID8          0x20
#define _RXF1SIDH_SID9          0x40
#define _RXF1SIDH_SID10         0x80

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


//==============================================================================
//        RXF1SIDL Bits

extern __at(0x0EE5) __sfr RXF1SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF1SIDLbits_t;

extern __at(0x0EE5) volatile __RXF1SIDLbits_t RXF1SIDLbits;

#define _RXF1SIDL_EID16         0x01
#define _RXF1SIDL_EID17         0x02
#define _RXF1SIDL_EXIDEN        0x08
#define _RXF1SIDL_SID0          0x20
#define _RXF1SIDL_SID1          0x40
#define _RXF1SIDL_SID2          0x80

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


//==============================================================================
//        RXF1EIDH Bits

extern __at(0x0EE6) __sfr RXF1EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF1EIDHbits_t;

extern __at(0x0EE6) volatile __RXF1EIDHbits_t RXF1EIDHbits;

#define _RXF1EIDH_EID8          0x01
#define _RXF1EIDH_EID9          0x02
#define _RXF1EIDH_EID10         0x04
#define _RXF1EIDH_EID11         0x08
#define _RXF1EIDH_EID12         0x10
#define _RXF1EIDH_EID13         0x20
#define _RXF1EIDH_EID14         0x40
#define _RXF1EIDH_EID15         0x80

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


//==============================================================================
//        RXF1EIDL Bits

extern __at(0x0EE7) __sfr RXF1EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF1EIDLbits_t;

extern __at(0x0EE7) volatile __RXF1EIDLbits_t RXF1EIDLbits;

#define _RXF1EIDL_EID0          0x01
#define _RXF1EIDL_EID1          0x02
#define _RXF1EIDL_EID2          0x04
#define _RXF1EIDL_EID3          0x08
#define _RXF1EIDL_EID4          0x10
#define _RXF1EIDL_EID5          0x20
#define _RXF1EIDL_EID6          0x40
#define _RXF1EIDL_EID7          0x80

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


//==============================================================================
//        RXF2SIDH Bits

extern __at(0x0EE8) __sfr RXF2SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF2SIDHbits_t;

extern __at(0x0EE8) volatile __RXF2SIDHbits_t RXF2SIDHbits;

#define _RXF2SIDH_SID3          0x01
#define _RXF2SIDH_SID4          0x02
#define _RXF2SIDH_SID5          0x04
#define _RXF2SIDH_SID6          0x08
#define _RXF2SIDH_SID7          0x10
#define _RXF2SIDH_SID8          0x20
#define _RXF2SIDH_SID9          0x40
#define _RXF2SIDH_SID10         0x80

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


//==============================================================================
//        RXF2SIDL Bits

extern __at(0x0EE9) __sfr RXF2SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF2SIDLbits_t;

extern __at(0x0EE9) volatile __RXF2SIDLbits_t RXF2SIDLbits;

#define _RXF2SIDL_EID16         0x01
#define _RXF2SIDL_EID17         0x02
#define _RXF2SIDL_EXIDEN        0x08
#define _RXF2SIDL_SID0          0x20
#define _RXF2SIDL_SID1          0x40
#define _RXF2SIDL_SID2          0x80

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


//==============================================================================
//        RXF2EIDH Bits

extern __at(0x0EEA) __sfr RXF2EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF2EIDHbits_t;

extern __at(0x0EEA) volatile __RXF2EIDHbits_t RXF2EIDHbits;

#define _RXF2EIDH_EID8          0x01
#define _RXF2EIDH_EID9          0x02
#define _RXF2EIDH_EID10         0x04
#define _RXF2EIDH_EID11         0x08
#define _RXF2EIDH_EID12         0x10
#define _RXF2EIDH_EID13         0x20
#define _RXF2EIDH_EID14         0x40
#define _RXF2EIDH_EID15         0x80

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


//==============================================================================
//        RXF2EIDL Bits

extern __at(0x0EEB) __sfr RXF2EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF2EIDLbits_t;

extern __at(0x0EEB) volatile __RXF2EIDLbits_t RXF2EIDLbits;

#define _RXF2EIDL_EID0          0x01
#define _RXF2EIDL_EID1          0x02
#define _RXF2EIDL_EID2          0x04
#define _RXF2EIDL_EID3          0x08
#define _RXF2EIDL_EID4          0x10
#define _RXF2EIDL_EID5          0x20
#define _RXF2EIDL_EID6          0x40
#define _RXF2EIDL_EID7          0x80

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


//==============================================================================
//        RXF3SIDH Bits

extern __at(0x0EEC) __sfr RXF3SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF3SIDHbits_t;

extern __at(0x0EEC) volatile __RXF3SIDHbits_t RXF3SIDHbits;

#define _RXF3SIDH_SID3          0x01
#define _RXF3SIDH_SID4          0x02
#define _RXF3SIDH_SID5          0x04
#define _RXF3SIDH_SID6          0x08
#define _RXF3SIDH_SID7          0x10
#define _RXF3SIDH_SID8          0x20
#define _RXF3SIDH_SID9          0x40
#define _RXF3SIDH_SID10         0x80

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


//==============================================================================
//        RXF3SIDL Bits

extern __at(0x0EED) __sfr RXF3SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF3SIDLbits_t;

extern __at(0x0EED) volatile __RXF3SIDLbits_t RXF3SIDLbits;

#define _RXF3SIDL_EID16         0x01
#define _RXF3SIDL_EID17         0x02
#define _RXF3SIDL_EXIDEN        0x08
#define _RXF3SIDL_SID0          0x20
#define _RXF3SIDL_SID1          0x40
#define _RXF3SIDL_SID2          0x80

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


//==============================================================================
//        RXF3EIDH Bits

extern __at(0x0EEE) __sfr RXF3EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF3EIDHbits_t;

extern __at(0x0EEE) volatile __RXF3EIDHbits_t RXF3EIDHbits;

#define _RXF3EIDH_EID8          0x01
#define _RXF3EIDH_EID9          0x02
#define _RXF3EIDH_EID10         0x04
#define _RXF3EIDH_EID11         0x08
#define _RXF3EIDH_EID12         0x10
#define _RXF3EIDH_EID13         0x20
#define _RXF3EIDH_EID14         0x40
#define _RXF3EIDH_EID15         0x80

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


//==============================================================================
//        RXF3EIDL Bits

extern __at(0x0EEF) __sfr RXF3EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF3EIDLbits_t;

extern __at(0x0EEF) volatile __RXF3EIDLbits_t RXF3EIDLbits;

#define _RXF3EIDL_EID0          0x01
#define _RXF3EIDL_EID1          0x02
#define _RXF3EIDL_EID2          0x04
#define _RXF3EIDL_EID3          0x08
#define _RXF3EIDL_EID4          0x10
#define _RXF3EIDL_EID5          0x20
#define _RXF3EIDL_EID6          0x40
#define _RXF3EIDL_EID7          0x80

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


//==============================================================================
//        RXF4SIDH Bits

extern __at(0x0EF0) __sfr RXF4SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF4SIDHbits_t;

extern __at(0x0EF0) volatile __RXF4SIDHbits_t RXF4SIDHbits;

#define _RXF4SIDH_SID3          0x01
#define _RXF4SIDH_SID4          0x02
#define _RXF4SIDH_SID5          0x04
#define _RXF4SIDH_SID6          0x08
#define _RXF4SIDH_SID7          0x10
#define _RXF4SIDH_SID8          0x20
#define _RXF4SIDH_SID9          0x40
#define _RXF4SIDH_SID10         0x80

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


//==============================================================================
//        RXF4SIDL Bits

extern __at(0x0EF1) __sfr RXF4SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF4SIDLbits_t;

extern __at(0x0EF1) volatile __RXF4SIDLbits_t RXF4SIDLbits;

#define _RXF4SIDL_EID16         0x01
#define _RXF4SIDL_EID17         0x02
#define _RXF4SIDL_EXIDEN        0x08
#define _RXF4SIDL_SID0          0x20
#define _RXF4SIDL_SID1          0x40
#define _RXF4SIDL_SID2          0x80

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


//==============================================================================
//        RXF4EIDH Bits

extern __at(0x0EF2) __sfr RXF4EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF4EIDHbits_t;

extern __at(0x0EF2) volatile __RXF4EIDHbits_t RXF4EIDHbits;

#define _RXF4EIDH_EID8          0x01
#define _RXF4EIDH_EID9          0x02
#define _RXF4EIDH_EID10         0x04
#define _RXF4EIDH_EID11         0x08
#define _RXF4EIDH_EID12         0x10
#define _RXF4EIDH_EID13         0x20
#define _RXF4EIDH_EID14         0x40
#define _RXF4EIDH_EID15         0x80

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


//==============================================================================
//        RXF4EIDL Bits

extern __at(0x0EF3) __sfr RXF4EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF4EIDLbits_t;

extern __at(0x0EF3) volatile __RXF4EIDLbits_t RXF4EIDLbits;

#define _RXF4EIDL_EID0          0x01
#define _RXF4EIDL_EID1          0x02
#define _RXF4EIDL_EID2          0x04
#define _RXF4EIDL_EID3          0x08
#define _RXF4EIDL_EID4          0x10
#define _RXF4EIDL_EID5          0x20
#define _RXF4EIDL_EID6          0x40
#define _RXF4EIDL_EID7          0x80

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


//==============================================================================
//        RXF5SIDH Bits

extern __at(0x0EF4) __sfr RXF5SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXF5SIDHbits_t;

extern __at(0x0EF4) volatile __RXF5SIDHbits_t RXF5SIDHbits;

#define _RXF5SIDH_SID3          0x01
#define _RXF5SIDH_SID4          0x02
#define _RXF5SIDH_SID5          0x04
#define _RXF5SIDH_SID6          0x08
#define _RXF5SIDH_SID7          0x10
#define _RXF5SIDH_SID8          0x20
#define _RXF5SIDH_SID9          0x40
#define _RXF5SIDH_SID10         0x80

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


//==============================================================================
//        RXF5SIDL Bits

extern __at(0x0EF5) __sfr RXF5SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXF5SIDLbits_t;

extern __at(0x0EF5) volatile __RXF5SIDLbits_t RXF5SIDLbits;

#define _RXF5SIDL_EID16         0x01
#define _RXF5SIDL_EID17         0x02
#define _RXF5SIDL_EXIDEN        0x08
#define _RXF5SIDL_SID0          0x20
#define _RXF5SIDL_SID1          0x40
#define _RXF5SIDL_SID2          0x80

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


//==============================================================================
//        RXF5EIDH Bits

extern __at(0x0EF6) __sfr RXF5EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXF5EIDHbits_t;

extern __at(0x0EF6) volatile __RXF5EIDHbits_t RXF5EIDHbits;

#define _RXF5EIDH_EID8          0x01
#define _RXF5EIDH_EID9          0x02
#define _RXF5EIDH_EID10         0x04
#define _RXF5EIDH_EID11         0x08
#define _RXF5EIDH_EID12         0x10
#define _RXF5EIDH_EID13         0x20
#define _RXF5EIDH_EID14         0x40
#define _RXF5EIDH_EID15         0x80

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


//==============================================================================
//        RXF5EIDL Bits

extern __at(0x0EF7) __sfr RXF5EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXF5EIDLbits_t;

extern __at(0x0EF7) volatile __RXF5EIDLbits_t RXF5EIDLbits;

#define _RXF5EIDL_EID0          0x01
#define _RXF5EIDL_EID1          0x02
#define _RXF5EIDL_EID2          0x04
#define _RXF5EIDL_EID3          0x08
#define _RXF5EIDL_EID4          0x10
#define _RXF5EIDL_EID5          0x20
#define _RXF5EIDL_EID6          0x40
#define _RXF5EIDL_EID7          0x80

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


//==============================================================================
//        RXM0SIDH Bits

extern __at(0x0EF8) __sfr RXM0SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXM0SIDHbits_t;

extern __at(0x0EF8) volatile __RXM0SIDHbits_t RXM0SIDHbits;

#define _RXM0SIDH_SID3          0x01
#define _RXM0SIDH_SID4          0x02
#define _RXM0SIDH_SID5          0x04
#define _RXM0SIDH_SID6          0x08
#define _RXM0SIDH_SID7          0x10
#define _RXM0SIDH_SID8          0x20
#define _RXM0SIDH_SID9          0x40
#define _RXM0SIDH_SID10         0x80

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


//==============================================================================
//        RXM0SIDL Bits

extern __at(0x0EF9) __sfr RXM0SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXM0SIDLbits_t;

extern __at(0x0EF9) volatile __RXM0SIDLbits_t RXM0SIDLbits;

#define _RXM0SIDL_EID16         0x01
#define _RXM0SIDL_EID17         0x02
#define _RXM0SIDL_EXIDEN        0x08
#define _RXM0SIDL_SID0          0x20
#define _RXM0SIDL_SID1          0x40
#define _RXM0SIDL_SID2          0x80

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


//==============================================================================
//        RXM0EIDH Bits

extern __at(0x0EFA) __sfr RXM0EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXM0EIDHbits_t;

extern __at(0x0EFA) volatile __RXM0EIDHbits_t RXM0EIDHbits;

#define _RXM0EIDH_EID8          0x01
#define _RXM0EIDH_EID9          0x02
#define _RXM0EIDH_EID10         0x04
#define _RXM0EIDH_EID11         0x08
#define _RXM0EIDH_EID12         0x10
#define _RXM0EIDH_EID13         0x20
#define _RXM0EIDH_EID14         0x40
#define _RXM0EIDH_EID15         0x80

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


//==============================================================================
//        RXM0EIDL Bits

extern __at(0x0EFB) __sfr RXM0EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXM0EIDLbits_t;

extern __at(0x0EFB) volatile __RXM0EIDLbits_t RXM0EIDLbits;

#define _RXM0EIDL_EID0          0x01
#define _RXM0EIDL_EID1          0x02
#define _RXM0EIDL_EID2          0x04
#define _RXM0EIDL_EID3          0x08
#define _RXM0EIDL_EID4          0x10
#define _RXM0EIDL_EID5          0x20
#define _RXM0EIDL_EID6          0x40
#define _RXM0EIDL_EID7          0x80

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


//==============================================================================
//        RXM1SIDH Bits

extern __at(0x0EFC) __sfr RXM1SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXM1SIDHbits_t;

extern __at(0x0EFC) volatile __RXM1SIDHbits_t RXM1SIDHbits;

#define _RXM1SIDH_SID3          0x01
#define _RXM1SIDH_SID4          0x02
#define _RXM1SIDH_SID5          0x04
#define _RXM1SIDH_SID6          0x08
#define _RXM1SIDH_SID7          0x10
#define _RXM1SIDH_SID8          0x20
#define _RXM1SIDH_SID9          0x40
#define _RXM1SIDH_SID10         0x80

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


//==============================================================================
//        RXM1SIDL Bits

extern __at(0x0EFD) __sfr RXM1SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDEN             : 1;
    unsigned                    : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXM1SIDLbits_t;

extern __at(0x0EFD) volatile __RXM1SIDLbits_t RXM1SIDLbits;

#define _RXM1SIDL_EID16         0x01
#define _RXM1SIDL_EID17         0x02
#define _RXM1SIDL_EXIDEN        0x08
#define _RXM1SIDL_SID0          0x20
#define _RXM1SIDL_SID1          0x40
#define _RXM1SIDL_SID2          0x80

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


//==============================================================================
//        RXM1EIDH Bits

extern __at(0x0EFE) __sfr RXM1EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXM1EIDHbits_t;

extern __at(0x0EFE) volatile __RXM1EIDHbits_t RXM1EIDHbits;

#define _RXM1EIDH_EID8          0x01
#define _RXM1EIDH_EID9          0x02
#define _RXM1EIDH_EID10         0x04
#define _RXM1EIDH_EID11         0x08
#define _RXM1EIDH_EID12         0x10
#define _RXM1EIDH_EID13         0x20
#define _RXM1EIDH_EID14         0x40
#define _RXM1EIDH_EID15         0x80

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


//==============================================================================
//        RXM1EIDL Bits

extern __at(0x0EFF) __sfr RXM1EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXM1EIDLbits_t;

extern __at(0x0EFF) volatile __RXM1EIDLbits_t RXM1EIDLbits;

#define _RXM1EIDL_EID0          0x01
#define _RXM1EIDL_EID1          0x02
#define _RXM1EIDL_EID2          0x04
#define _RXM1EIDL_EID3          0x08
#define _RXM1EIDL_EID4          0x10
#define _RXM1EIDL_EID5          0x20
#define _RXM1EIDL_EID6          0x40
#define _RXM1EIDL_EID7          0x80

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


//==============================================================================
//        TXB2CON Bits

extern __at(0x0F00) __sfr TXB2CON;

typedef union
  {
  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned                    : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __TXB2CONbits_t;

extern __at(0x0F00) volatile __TXB2CONbits_t TXB2CONbits;

#define _TXB2CON_TXPRI0         0x01
#define _TXB2CON_TXPRI1         0x02
#define _TXB2CON_TXREQ          0x08
#define _TXB2CON_TXERR          0x10
#define _TXB2CON_TXLARB         0x20
#define _TXB2CON_TXABT          0x40
#define _TXB2CON_TXBIF          0x80

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


//==============================================================================
//        TXB2SIDH Bits

extern __at(0x0F01) __sfr TXB2SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __TXB2SIDHbits_t;

extern __at(0x0F01) volatile __TXB2SIDHbits_t TXB2SIDHbits;

#define _TXB2SIDH_SID3          0x01
#define _TXB2SIDH_SID4          0x02
#define _TXB2SIDH_SID5          0x04
#define _TXB2SIDH_SID6          0x08
#define _TXB2SIDH_SID7          0x10
#define _TXB2SIDH_SID8          0x20
#define _TXB2SIDH_SID9          0x40
#define _TXB2SIDH_SID10         0x80

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


//==============================================================================
//        TXB2SIDL Bits

extern __at(0x0F02) __sfr TXB2SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __TXB2SIDLbits_t;

extern __at(0x0F02) volatile __TXB2SIDLbits_t TXB2SIDLbits;

#define _TXB2SIDL_EID16         0x01
#define _TXB2SIDL_EID17         0x02
#define _TXB2SIDL_EXIDE         0x08
#define _TXB2SIDL_SRR           0x10
#define _TXB2SIDL_SID0          0x20
#define _TXB2SIDL_SID1          0x40
#define _TXB2SIDL_SID2          0x80

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


//==============================================================================
//        TXB2EIDH Bits

extern __at(0x0F03) __sfr TXB2EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __TXB2EIDHbits_t;

extern __at(0x0F03) volatile __TXB2EIDHbits_t TXB2EIDHbits;

#define _TXB2EIDH_EID8          0x01
#define _TXB2EIDH_EID9          0x02
#define _TXB2EIDH_EID10         0x04
#define _TXB2EIDH_EID11         0x08
#define _TXB2EIDH_EID12         0x10
#define _TXB2EIDH_EID13         0x20
#define _TXB2EIDH_EID14         0x40
#define _TXB2EIDH_EID15         0x80

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


//==============================================================================
//        TXB2EIDL Bits

extern __at(0x0F04) __sfr TXB2EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __TXB2EIDLbits_t;

extern __at(0x0F04) volatile __TXB2EIDLbits_t TXB2EIDLbits;

#define _TXB2EIDL_EID0          0x01
#define _TXB2EIDL_EID1          0x02
#define _TXB2EIDL_EID2          0x04
#define _TXB2EIDL_EID3          0x08
#define _TXB2EIDL_EID4          0x10
#define _TXB2EIDL_EID5          0x20
#define _TXB2EIDL_EID6          0x40
#define _TXB2EIDL_EID7          0x80

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


//==============================================================================
//        TXB2DLC Bits

extern __at(0x0F05) __sfr TXB2DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };
  } __TXB2DLCbits_t;

extern __at(0x0F05) volatile __TXB2DLCbits_t TXB2DLCbits;

#define _TXB2DLC_DLC0           0x01
#define _TXB2DLC_DLC1           0x02
#define _TXB2DLC_DLC2           0x04
#define _TXB2DLC_DLC3           0x08
#define _TXB2DLC_TXRTR          0x40

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


//==============================================================================
//        TXB2D0 Bits

extern __at(0x0F06) __sfr TXB2D0;

typedef struct
  {
  unsigned TXB2D00              : 1;
  unsigned TXB2D01              : 1;
  unsigned TXB2D02              : 1;
  unsigned TXB2D03              : 1;
  unsigned TXB2D04              : 1;
  unsigned TXB2D05              : 1;
  unsigned TXB2D06              : 1;
  unsigned TXB2D07              : 1;
  } __TXB2D0bits_t;

extern __at(0x0F06) volatile __TXB2D0bits_t TXB2D0bits;

#define _TXB2D00                0x01
#define _TXB2D01                0x02
#define _TXB2D02                0x04
#define _TXB2D03                0x08
#define _TXB2D04                0x10
#define _TXB2D05                0x20
#define _TXB2D06                0x40
#define _TXB2D07                0x80

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


//==============================================================================
//        TXB2D1 Bits

extern __at(0x0F07) __sfr TXB2D1;

typedef struct
  {
  unsigned TXB2D10              : 1;
  unsigned TXB2D11              : 1;
  unsigned TXB2D12              : 1;
  unsigned TXB2D13              : 1;
  unsigned TXB2D14              : 1;
  unsigned TXB2D15              : 1;
  unsigned TXB2D16              : 1;
  unsigned TXB2D17              : 1;
  } __TXB2D1bits_t;

extern __at(0x0F07) volatile __TXB2D1bits_t TXB2D1bits;

#define _TXB2D10                0x01
#define _TXB2D11                0x02
#define _TXB2D12                0x04
#define _TXB2D13                0x08
#define _TXB2D14                0x10
#define _TXB2D15                0x20
#define _TXB2D16                0x40
#define _TXB2D17                0x80

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


//==============================================================================
//        TXB2D2 Bits

extern __at(0x0F08) __sfr TXB2D2;

typedef struct
  {
  unsigned TXB2D20              : 1;
  unsigned TXB2D21              : 1;
  unsigned TXB2D22              : 1;
  unsigned TXB2D23              : 1;
  unsigned TXB2D24              : 1;
  unsigned TXB2D25              : 1;
  unsigned TXB2D26              : 1;
  unsigned TXB2D27              : 1;
  } __TXB2D2bits_t;

extern __at(0x0F08) volatile __TXB2D2bits_t TXB2D2bits;

#define _TXB2D20                0x01
#define _TXB2D21                0x02
#define _TXB2D22                0x04
#define _TXB2D23                0x08
#define _TXB2D24                0x10
#define _TXB2D25                0x20
#define _TXB2D26                0x40
#define _TXB2D27                0x80

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


//==============================================================================
//        TXB2D3 Bits

extern __at(0x0F09) __sfr TXB2D3;

typedef struct
  {
  unsigned TXB2D30              : 1;
  unsigned TXB2D31              : 1;
  unsigned TXB2D32              : 1;
  unsigned TXB2D33              : 1;
  unsigned TXB2D34              : 1;
  unsigned TXB2D35              : 1;
  unsigned TXB2D36              : 1;
  unsigned TXB2D37              : 1;
  } __TXB2D3bits_t;

extern __at(0x0F09) volatile __TXB2D3bits_t TXB2D3bits;

#define _TXB2D30                0x01
#define _TXB2D31                0x02
#define _TXB2D32                0x04
#define _TXB2D33                0x08
#define _TXB2D34                0x10
#define _TXB2D35                0x20
#define _TXB2D36                0x40
#define _TXB2D37                0x80

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


//==============================================================================
//        TXB2D4 Bits

extern __at(0x0F0A) __sfr TXB2D4;

typedef struct
  {
  unsigned TXB2D40              : 1;
  unsigned TXB2D41              : 1;
  unsigned TXB2D42              : 1;
  unsigned TXB2D43              : 1;
  unsigned TXB2D44              : 1;
  unsigned TXB2D45              : 1;
  unsigned TXB2D46              : 1;
  unsigned TXB2D47              : 1;
  } __TXB2D4bits_t;

extern __at(0x0F0A) volatile __TXB2D4bits_t TXB2D4bits;

#define _TXB2D40                0x01
#define _TXB2D41                0x02
#define _TXB2D42                0x04
#define _TXB2D43                0x08
#define _TXB2D44                0x10
#define _TXB2D45                0x20
#define _TXB2D46                0x40
#define _TXB2D47                0x80

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


//==============================================================================
//        TXB2D5 Bits

extern __at(0x0F0B) __sfr TXB2D5;

typedef struct
  {
  unsigned TXB2D50              : 1;
  unsigned TXB2D51              : 1;
  unsigned TXB2D52              : 1;
  unsigned TXB2D53              : 1;
  unsigned TXB2D54              : 1;
  unsigned TXB2D55              : 1;
  unsigned TXB2D56              : 1;
  unsigned TXB2D57              : 1;
  } __TXB2D5bits_t;

extern __at(0x0F0B) volatile __TXB2D5bits_t TXB2D5bits;

#define _TXB2D50                0x01
#define _TXB2D51                0x02
#define _TXB2D52                0x04
#define _TXB2D53                0x08
#define _TXB2D54                0x10
#define _TXB2D55                0x20
#define _TXB2D56                0x40
#define _TXB2D57                0x80

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


//==============================================================================
//        TXB2D6 Bits

extern __at(0x0F0C) __sfr TXB2D6;

typedef struct
  {
  unsigned TXB2D60              : 1;
  unsigned TXB2D61              : 1;
  unsigned TXB2D62              : 1;
  unsigned TXB2D63              : 1;
  unsigned TXB2D64              : 1;
  unsigned TXB2D65              : 1;
  unsigned TXB2D66              : 1;
  unsigned TXB2D67              : 1;
  } __TXB2D6bits_t;

extern __at(0x0F0C) volatile __TXB2D6bits_t TXB2D6bits;

#define _TXB2D60                0x01
#define _TXB2D61                0x02
#define _TXB2D62                0x04
#define _TXB2D63                0x08
#define _TXB2D64                0x10
#define _TXB2D65                0x20
#define _TXB2D66                0x40
#define _TXB2D67                0x80

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


//==============================================================================
//        TXB2D7 Bits

extern __at(0x0F0D) __sfr TXB2D7;

typedef struct
  {
  unsigned TXB2D70              : 1;
  unsigned TXB2D71              : 1;
  unsigned TXB2D72              : 1;
  unsigned TXB2D73              : 1;
  unsigned TXB2D74              : 1;
  unsigned TXB2D75              : 1;
  unsigned TXB2D76              : 1;
  unsigned TXB2D77              : 1;
  } __TXB2D7bits_t;

extern __at(0x0F0D) volatile __TXB2D7bits_t TXB2D7bits;

#define _TXB2D70                0x01
#define _TXB2D71                0x02
#define _TXB2D72                0x04
#define _TXB2D73                0x08
#define _TXB2D74                0x10
#define _TXB2D75                0x20
#define _TXB2D76                0x40
#define _TXB2D77                0x80

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


//==============================================================================
//        CANSTAT_RO3 Bits

extern __at(0x0F0E) __sfr CANSTAT_RO3;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO3bits_t;

extern __at(0x0F0E) volatile __CANSTAT_RO3bits_t CANSTAT_RO3bits;

#define _CANSTAT_RO3_EICODE0    0x01
#define _CANSTAT_RO3_EICODE1_ICODE0 0x02
#define _CANSTAT_RO3_EICODE1    0x02
#define _CANSTAT_RO3_ICODE0     0x02
#define _CANSTAT_RO3_EICODE2_ICODE1 0x04
#define _CANSTAT_RO3_EICODE2    0x04
#define _CANSTAT_RO3_ICODE1     0x04
#define _CANSTAT_RO3_EICODE3_ICODE2 0x08
#define _CANSTAT_RO3_EICODE3    0x08
#define _CANSTAT_RO3_ICODE2     0x08
#define _CANSTAT_RO3_EICODE4    0x10
#define _CANSTAT_RO3_OPMODE0    0x20
#define _CANSTAT_RO3_OPMODE1    0x40
#define _CANSTAT_RO3_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO3 Bits

extern __at(0x0F0F) __sfr CANCON_RO3;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO3bits_t;

extern __at(0x0F0F) volatile __CANCON_RO3bits_t CANCON_RO3bits;

#define _CANCON_RO3_FP0         0x01
#define _CANCON_RO3_WIN0_FP1    0x02
#define _CANCON_RO3_WIN0        0x02
#define _CANCON_RO3_FP1         0x02
#define _CANCON_RO3_WIN1_FP2    0x04
#define _CANCON_RO3_WIN1        0x04
#define _CANCON_RO3_FP2         0x04
#define _CANCON_RO3_WIN2_FP3    0x08
#define _CANCON_RO3_WIN2        0x08
#define _CANCON_RO3_FP3         0x08
#define _CANCON_RO3_ABAT        0x10

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


//==============================================================================
//        TXB1CON Bits

extern __at(0x0F10) __sfr TXB1CON;

typedef union
  {
  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned                    : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __TXB1CONbits_t;

extern __at(0x0F10) volatile __TXB1CONbits_t TXB1CONbits;

#define _TXB1CON_TXPRI0         0x01
#define _TXB1CON_TXPRI1         0x02
#define _TXB1CON_TXREQ          0x08
#define _TXB1CON_TXERR          0x10
#define _TXB1CON_TXLARB         0x20
#define _TXB1CON_TXABT          0x40
#define _TXB1CON_TXBIF          0x80

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


//==============================================================================
//        TXB1SIDH Bits

extern __at(0x0F11) __sfr TXB1SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __TXB1SIDHbits_t;

extern __at(0x0F11) volatile __TXB1SIDHbits_t TXB1SIDHbits;

#define _TXB1SIDH_SID3          0x01
#define _TXB1SIDH_SID4          0x02
#define _TXB1SIDH_SID5          0x04
#define _TXB1SIDH_SID6          0x08
#define _TXB1SIDH_SID7          0x10
#define _TXB1SIDH_SID8          0x20
#define _TXB1SIDH_SID9          0x40
#define _TXB1SIDH_SID10         0x80

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


//==============================================================================
//        TXB1SIDL Bits

extern __at(0x0F12) __sfr TXB1SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __TXB1SIDLbits_t;

extern __at(0x0F12) volatile __TXB1SIDLbits_t TXB1SIDLbits;

#define _TXB1SIDL_EID16         0x01
#define _TXB1SIDL_EID17         0x02
#define _TXB1SIDL_EXIDE         0x08
#define _TXB1SIDL_SRR           0x10
#define _TXB1SIDL_SID0          0x20
#define _TXB1SIDL_SID1          0x40
#define _TXB1SIDL_SID2          0x80

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


//==============================================================================
//        TXB1EIDH Bits

extern __at(0x0F13) __sfr TXB1EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __TXB1EIDHbits_t;

extern __at(0x0F13) volatile __TXB1EIDHbits_t TXB1EIDHbits;

#define _TXB1EIDH_EID8          0x01
#define _TXB1EIDH_EID9          0x02
#define _TXB1EIDH_EID10         0x04
#define _TXB1EIDH_EID11         0x08
#define _TXB1EIDH_EID12         0x10
#define _TXB1EIDH_EID13         0x20
#define _TXB1EIDH_EID14         0x40
#define _TXB1EIDH_EID15         0x80

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


//==============================================================================
//        TXB1EIDL Bits

extern __at(0x0F14) __sfr TXB1EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __TXB1EIDLbits_t;

extern __at(0x0F14) volatile __TXB1EIDLbits_t TXB1EIDLbits;

#define _TXB1EIDL_EID0          0x01
#define _TXB1EIDL_EID1          0x02
#define _TXB1EIDL_EID2          0x04
#define _TXB1EIDL_EID3          0x08
#define _TXB1EIDL_EID4          0x10
#define _TXB1EIDL_EID5          0x20
#define _TXB1EIDL_EID6          0x40
#define _TXB1EIDL_EID7          0x80

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


//==============================================================================
//        TXB1DLC Bits

extern __at(0x0F15) __sfr TXB1DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };
  } __TXB1DLCbits_t;

extern __at(0x0F15) volatile __TXB1DLCbits_t TXB1DLCbits;

#define _TXB1DLC_DLC0           0x01
#define _TXB1DLC_DLC1           0x02
#define _TXB1DLC_DLC2           0x04
#define _TXB1DLC_DLC3           0x08
#define _TXB1DLC_TXRTR          0x40

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


//==============================================================================
//        TXB1D0 Bits

extern __at(0x0F16) __sfr TXB1D0;

typedef struct
  {
  unsigned TXB1D00              : 1;
  unsigned TXB1D01              : 1;
  unsigned TXB1D02              : 1;
  unsigned TXB1D03              : 1;
  unsigned TXB1D04              : 1;
  unsigned TXB1D05              : 1;
  unsigned TXB1D06              : 1;
  unsigned TXB1D07              : 1;
  } __TXB1D0bits_t;

extern __at(0x0F16) volatile __TXB1D0bits_t TXB1D0bits;

#define _TXB1D00                0x01
#define _TXB1D01                0x02
#define _TXB1D02                0x04
#define _TXB1D03                0x08
#define _TXB1D04                0x10
#define _TXB1D05                0x20
#define _TXB1D06                0x40
#define _TXB1D07                0x80

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


//==============================================================================
//        TXB1D1 Bits

extern __at(0x0F17) __sfr TXB1D1;

typedef struct
  {
  unsigned TXB1D10              : 1;
  unsigned TXB1D11              : 1;
  unsigned TXB1D12              : 1;
  unsigned TXB1D13              : 1;
  unsigned TXB1D14              : 1;
  unsigned TXB1D15              : 1;
  unsigned TXB1D16              : 1;
  unsigned TXB1D17              : 1;
  } __TXB1D1bits_t;

extern __at(0x0F17) volatile __TXB1D1bits_t TXB1D1bits;

#define _TXB1D10                0x01
#define _TXB1D11                0x02
#define _TXB1D12                0x04
#define _TXB1D13                0x08
#define _TXB1D14                0x10
#define _TXB1D15                0x20
#define _TXB1D16                0x40
#define _TXB1D17                0x80

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


//==============================================================================
//        TXB1D2 Bits

extern __at(0x0F18) __sfr TXB1D2;

typedef struct
  {
  unsigned TXB1D20              : 1;
  unsigned TXB1D21              : 1;
  unsigned TXB1D22              : 1;
  unsigned TXB1D23              : 1;
  unsigned TXB1D24              : 1;
  unsigned TXB1D25              : 1;
  unsigned TXB1D26              : 1;
  unsigned TXB1D27              : 1;
  } __TXB1D2bits_t;

extern __at(0x0F18) volatile __TXB1D2bits_t TXB1D2bits;

#define _TXB1D20                0x01
#define _TXB1D21                0x02
#define _TXB1D22                0x04
#define _TXB1D23                0x08
#define _TXB1D24                0x10
#define _TXB1D25                0x20
#define _TXB1D26                0x40
#define _TXB1D27                0x80

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


//==============================================================================
//        TXB1D3 Bits

extern __at(0x0F19) __sfr TXB1D3;

typedef struct
  {
  unsigned TXB1D30              : 1;
  unsigned TXB1D31              : 1;
  unsigned TXB1D32              : 1;
  unsigned TXB1D33              : 1;
  unsigned TXB1D34              : 1;
  unsigned TXB1D35              : 1;
  unsigned TXB1D36              : 1;
  unsigned TXB1D37              : 1;
  } __TXB1D3bits_t;

extern __at(0x0F19) volatile __TXB1D3bits_t TXB1D3bits;

#define _TXB1D30                0x01
#define _TXB1D31                0x02
#define _TXB1D32                0x04
#define _TXB1D33                0x08
#define _TXB1D34                0x10
#define _TXB1D35                0x20
#define _TXB1D36                0x40
#define _TXB1D37                0x80

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


//==============================================================================
//        TXB1D4 Bits

extern __at(0x0F1A) __sfr TXB1D4;

typedef struct
  {
  unsigned TXB1D40              : 1;
  unsigned TXB1D41              : 1;
  unsigned TXB1D42              : 1;
  unsigned TXB1D43              : 1;
  unsigned TXB1D44              : 1;
  unsigned TXB1D45              : 1;
  unsigned TXB1D46              : 1;
  unsigned TXB1D47              : 1;
  } __TXB1D4bits_t;

extern __at(0x0F1A) volatile __TXB1D4bits_t TXB1D4bits;

#define _TXB1D40                0x01
#define _TXB1D41                0x02
#define _TXB1D42                0x04
#define _TXB1D43                0x08
#define _TXB1D44                0x10
#define _TXB1D45                0x20
#define _TXB1D46                0x40
#define _TXB1D47                0x80

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


//==============================================================================
//        TXB1D5 Bits

extern __at(0x0F1B) __sfr TXB1D5;

typedef struct
  {
  unsigned TXB1D50              : 1;
  unsigned TXB1D51              : 1;
  unsigned TXB1D52              : 1;
  unsigned TXB1D53              : 1;
  unsigned TXB1D54              : 1;
  unsigned TXB1D55              : 1;
  unsigned TXB1D56              : 1;
  unsigned TXB1D57              : 1;
  } __TXB1D5bits_t;

extern __at(0x0F1B) volatile __TXB1D5bits_t TXB1D5bits;

#define _TXB1D50                0x01
#define _TXB1D51                0x02
#define _TXB1D52                0x04
#define _TXB1D53                0x08
#define _TXB1D54                0x10
#define _TXB1D55                0x20
#define _TXB1D56                0x40
#define _TXB1D57                0x80

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


//==============================================================================
//        TXB1D6 Bits

extern __at(0x0F1C) __sfr TXB1D6;

typedef struct
  {
  unsigned TXB1D60              : 1;
  unsigned TXB1D61              : 1;
  unsigned TXB1D62              : 1;
  unsigned TXB1D63              : 1;
  unsigned TXB1D64              : 1;
  unsigned TXB1D65              : 1;
  unsigned TXB1D66              : 1;
  unsigned TXB1D67              : 1;
  } __TXB1D6bits_t;

extern __at(0x0F1C) volatile __TXB1D6bits_t TXB1D6bits;

#define _TXB1D60                0x01
#define _TXB1D61                0x02
#define _TXB1D62                0x04
#define _TXB1D63                0x08
#define _TXB1D64                0x10
#define _TXB1D65                0x20
#define _TXB1D66                0x40
#define _TXB1D67                0x80

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


//==============================================================================
//        TXB1D7 Bits

extern __at(0x0F1D) __sfr TXB1D7;

typedef struct
  {
  unsigned TXB1D70              : 1;
  unsigned TXB1D71              : 1;
  unsigned TXB1D72              : 1;
  unsigned TXB1D73              : 1;
  unsigned TXB1D74              : 1;
  unsigned TXB1D75              : 1;
  unsigned TXB1D76              : 1;
  unsigned TXB1D77              : 1;
  } __TXB1D7bits_t;

extern __at(0x0F1D) volatile __TXB1D7bits_t TXB1D7bits;

#define _TXB1D70                0x01
#define _TXB1D71                0x02
#define _TXB1D72                0x04
#define _TXB1D73                0x08
#define _TXB1D74                0x10
#define _TXB1D75                0x20
#define _TXB1D76                0x40
#define _TXB1D77                0x80

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


//==============================================================================
//        CANSTAT_RO2 Bits

extern __at(0x0F1E) __sfr CANSTAT_RO2;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE20            : 1;
    unsigned ICODE21            : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO2bits_t;

extern __at(0x0F1E) volatile __CANSTAT_RO2bits_t CANSTAT_RO2bits;

#define _CANSTAT_RO2_EICODE0    0x01
#define _CANSTAT_RO2_EICODE1_ICODE0 0x02
#define _CANSTAT_RO2_EICODE1    0x02
#define _CANSTAT_RO2_ICODE20    0x02
#define _CANSTAT_RO2_EICODE2_ICODE1 0x04
#define _CANSTAT_RO2_EICODE2    0x04
#define _CANSTAT_RO2_ICODE21    0x04
#define _CANSTAT_RO2_EICODE3_ICODE2 0x08
#define _CANSTAT_RO2_EICODE3    0x08
#define _CANSTAT_RO2_ICODE2     0x08
#define _CANSTAT_RO2_EICODE4    0x10
#define _CANSTAT_RO2_OPMODE0    0x20
#define _CANSTAT_RO2_OPMODE1    0x40
#define _CANSTAT_RO2_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO2 Bits

extern __at(0x0F1F) __sfr CANCON_RO2;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO2bits_t;

extern __at(0x0F1F) volatile __CANCON_RO2bits_t CANCON_RO2bits;

#define _CANCON_RO2_FP0         0x01
#define _CANCON_RO2_WIN0_FP1    0x02
#define _CANCON_RO2_WIN0        0x02
#define _CANCON_RO2_FP1         0x02
#define _CANCON_RO2_WIN1_FP2    0x04
#define _CANCON_RO2_WIN1        0x04
#define _CANCON_RO2_FP2         0x04
#define _CANCON_RO2_WIN2_FP3    0x08
#define _CANCON_RO2_WIN2        0x08
#define _CANCON_RO2_FP3         0x08
#define _CANCON_RO2_ABAT        0x10

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


//==============================================================================
//        TXB0CON Bits

extern __at(0x0F20) __sfr TXB0CON;

typedef union
  {
  struct
    {
    unsigned TXPRI0             : 1;
    unsigned TXPRI1             : 1;
    unsigned                    : 1;
    unsigned TXREQ              : 1;
    unsigned TXERR              : 1;
    unsigned TXLARB             : 1;
    unsigned TXABT              : 1;
    unsigned TXBIF              : 1;
    };

  struct
    {
    unsigned TXPRI              : 2;
    unsigned                    : 6;
    };
  } __TXB0CONbits_t;

extern __at(0x0F20) volatile __TXB0CONbits_t TXB0CONbits;

#define _TXB0CON_TXPRI0         0x01
#define _TXB0CON_TXPRI1         0x02
#define _TXB0CON_TXREQ          0x08
#define _TXB0CON_TXERR          0x10
#define _TXB0CON_TXLARB         0x20
#define _TXB0CON_TXABT          0x40
#define _TXB0CON_TXBIF          0x80

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


//==============================================================================
//        TXB0SIDH Bits

extern __at(0x0F21) __sfr TXB0SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __TXB0SIDHbits_t;

extern __at(0x0F21) volatile __TXB0SIDHbits_t TXB0SIDHbits;

#define _TXB0SIDH_SID3          0x01
#define _TXB0SIDH_SID4          0x02
#define _TXB0SIDH_SID5          0x04
#define _TXB0SIDH_SID6          0x08
#define _TXB0SIDH_SID7          0x10
#define _TXB0SIDH_SID8          0x20
#define _TXB0SIDH_SID9          0x40
#define _TXB0SIDH_SID10         0x80

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


//==============================================================================
//        TXB0SIDL Bits

extern __at(0x0F22) __sfr TXB0SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXIDE              : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __TXB0SIDLbits_t;

extern __at(0x0F22) volatile __TXB0SIDLbits_t TXB0SIDLbits;

#define _TXB0SIDL_EID16         0x01
#define _TXB0SIDL_EID17         0x02
#define _TXB0SIDL_EXIDE         0x08
#define _TXB0SIDL_SRR           0x10
#define _TXB0SIDL_SID0          0x20
#define _TXB0SIDL_SID1          0x40
#define _TXB0SIDL_SID2          0x80

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


//==============================================================================
//        TXB0EIDH Bits

extern __at(0x0F23) __sfr TXB0EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __TXB0EIDHbits_t;

extern __at(0x0F23) volatile __TXB0EIDHbits_t TXB0EIDHbits;

#define _TXB0EIDH_EID8          0x01
#define _TXB0EIDH_EID9          0x02
#define _TXB0EIDH_EID10         0x04
#define _TXB0EIDH_EID11         0x08
#define _TXB0EIDH_EID12         0x10
#define _TXB0EIDH_EID13         0x20
#define _TXB0EIDH_EID14         0x40
#define _TXB0EIDH_EID15         0x80

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


//==============================================================================
//        TXB0EIDL Bits

extern __at(0x0F24) __sfr TXB0EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __TXB0EIDLbits_t;

extern __at(0x0F24) volatile __TXB0EIDLbits_t TXB0EIDLbits;

#define _TXB0EIDL_EID0          0x01
#define _TXB0EIDL_EID1          0x02
#define _TXB0EIDL_EID2          0x04
#define _TXB0EIDL_EID3          0x08
#define _TXB0EIDL_EID4          0x10
#define _TXB0EIDL_EID5          0x20
#define _TXB0EIDL_EID6          0x40
#define _TXB0EIDL_EID7          0x80

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


//==============================================================================
//        TXB0DLC Bits

extern __at(0x0F25) __sfr TXB0DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };
  } __TXB0DLCbits_t;

extern __at(0x0F25) volatile __TXB0DLCbits_t TXB0DLCbits;

#define _TXB0DLC_DLC0           0x01
#define _TXB0DLC_DLC1           0x02
#define _TXB0DLC_DLC2           0x04
#define _TXB0DLC_DLC3           0x08
#define _TXB0DLC_TXRTR          0x40

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


//==============================================================================
//        TXB0D0 Bits

extern __at(0x0F26) __sfr TXB0D0;

typedef struct
  {
  unsigned TXB0D00              : 1;
  unsigned TXB0D01              : 1;
  unsigned TXB0D02              : 1;
  unsigned TXB0D03              : 1;
  unsigned TXB0D04              : 1;
  unsigned TXB0D05              : 1;
  unsigned TXB0D06              : 1;
  unsigned TXB0D07              : 1;
  } __TXB0D0bits_t;

extern __at(0x0F26) volatile __TXB0D0bits_t TXB0D0bits;

#define _TXB0D00                0x01
#define _TXB0D01                0x02
#define _TXB0D02                0x04
#define _TXB0D03                0x08
#define _TXB0D04                0x10
#define _TXB0D05                0x20
#define _TXB0D06                0x40
#define _TXB0D07                0x80

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


//==============================================================================
//        TXB0D1 Bits

extern __at(0x0F27) __sfr TXB0D1;

typedef struct
  {
  unsigned TXB0D10              : 1;
  unsigned TXB0D11              : 1;
  unsigned TXB0D12              : 1;
  unsigned TXB0D13              : 1;
  unsigned TXB0D14              : 1;
  unsigned TXB0D15              : 1;
  unsigned TXB0D16              : 1;
  unsigned TXB0D17              : 1;
  } __TXB0D1bits_t;

extern __at(0x0F27) volatile __TXB0D1bits_t TXB0D1bits;

#define _TXB0D10                0x01
#define _TXB0D11                0x02
#define _TXB0D12                0x04
#define _TXB0D13                0x08
#define _TXB0D14                0x10
#define _TXB0D15                0x20
#define _TXB0D16                0x40
#define _TXB0D17                0x80

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


//==============================================================================
//        TXB0D2 Bits

extern __at(0x0F28) __sfr TXB0D2;

typedef struct
  {
  unsigned TXB0D20              : 1;
  unsigned TXB0D21              : 1;
  unsigned TXB0D22              : 1;
  unsigned TXB0D23              : 1;
  unsigned TXB0D24              : 1;
  unsigned TXB0D25              : 1;
  unsigned TXB0D26              : 1;
  unsigned TXB0D27              : 1;
  } __TXB0D2bits_t;

extern __at(0x0F28) volatile __TXB0D2bits_t TXB0D2bits;

#define _TXB0D20                0x01
#define _TXB0D21                0x02
#define _TXB0D22                0x04
#define _TXB0D23                0x08
#define _TXB0D24                0x10
#define _TXB0D25                0x20
#define _TXB0D26                0x40
#define _TXB0D27                0x80

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


//==============================================================================
//        TXB0D3 Bits

extern __at(0x0F29) __sfr TXB0D3;

typedef struct
  {
  unsigned TXB0D30              : 1;
  unsigned TXB0D31              : 1;
  unsigned TXB0D32              : 1;
  unsigned TXB0D33              : 1;
  unsigned TXB0D34              : 1;
  unsigned TXB0D35              : 1;
  unsigned TXB0D36              : 1;
  unsigned TXB0D37              : 1;
  } __TXB0D3bits_t;

extern __at(0x0F29) volatile __TXB0D3bits_t TXB0D3bits;

#define _TXB0D30                0x01
#define _TXB0D31                0x02
#define _TXB0D32                0x04
#define _TXB0D33                0x08
#define _TXB0D34                0x10
#define _TXB0D35                0x20
#define _TXB0D36                0x40
#define _TXB0D37                0x80

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


//==============================================================================
//        TXB0D4 Bits

extern __at(0x0F2A) __sfr TXB0D4;

typedef struct
  {
  unsigned TXB0D40              : 1;
  unsigned TXB0D41              : 1;
  unsigned TXB0D42              : 1;
  unsigned TXB0D43              : 1;
  unsigned TXB0D44              : 1;
  unsigned TXB0D45              : 1;
  unsigned TXB0D46              : 1;
  unsigned TXB0D47              : 1;
  } __TXB0D4bits_t;

extern __at(0x0F2A) volatile __TXB0D4bits_t TXB0D4bits;

#define _TXB0D40                0x01
#define _TXB0D41                0x02
#define _TXB0D42                0x04
#define _TXB0D43                0x08
#define _TXB0D44                0x10
#define _TXB0D45                0x20
#define _TXB0D46                0x40
#define _TXB0D47                0x80

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


//==============================================================================
//        TXB0D5 Bits

extern __at(0x0F2B) __sfr TXB0D5;

typedef struct
  {
  unsigned TXB0D50              : 1;
  unsigned TXB0D51              : 1;
  unsigned TXB0D52              : 1;
  unsigned TXB0D53              : 1;
  unsigned TXB0D54              : 1;
  unsigned TXB0D55              : 1;
  unsigned TXB0D56              : 1;
  unsigned TXB0D57              : 1;
  } __TXB0D5bits_t;

extern __at(0x0F2B) volatile __TXB0D5bits_t TXB0D5bits;

#define _TXB0D50                0x01
#define _TXB0D51                0x02
#define _TXB0D52                0x04
#define _TXB0D53                0x08
#define _TXB0D54                0x10
#define _TXB0D55                0x20
#define _TXB0D56                0x40
#define _TXB0D57                0x80

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


//==============================================================================
//        TXB0D6 Bits

extern __at(0x0F2C) __sfr TXB0D6;

typedef struct
  {
  unsigned TXB0D60              : 1;
  unsigned TXB0D61              : 1;
  unsigned TXB0D62              : 1;
  unsigned TXB0D63              : 1;
  unsigned TXB0D64              : 1;
  unsigned TXB0D65              : 1;
  unsigned TXB0D66              : 1;
  unsigned TXB0D67              : 1;
  } __TXB0D6bits_t;

extern __at(0x0F2C) volatile __TXB0D6bits_t TXB0D6bits;

#define _TXB0D60                0x01
#define _TXB0D61                0x02
#define _TXB0D62                0x04
#define _TXB0D63                0x08
#define _TXB0D64                0x10
#define _TXB0D65                0x20
#define _TXB0D66                0x40
#define _TXB0D67                0x80

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


//==============================================================================
//        TXB0D7 Bits

extern __at(0x0F2D) __sfr TXB0D7;

typedef struct
  {
  unsigned TXB0D70              : 1;
  unsigned TXB0D71              : 1;
  unsigned TXB0D72              : 1;
  unsigned TXB0D73              : 1;
  unsigned TXB0D74              : 1;
  unsigned TXB0D75              : 1;
  unsigned TXB0D76              : 1;
  unsigned TXB0D77              : 1;
  } __TXB0D7bits_t;

extern __at(0x0F2D) volatile __TXB0D7bits_t TXB0D7bits;

#define _TXB0D70                0x01
#define _TXB0D71                0x02
#define _TXB0D72                0x04
#define _TXB0D73                0x08
#define _TXB0D74                0x10
#define _TXB0D75                0x20
#define _TXB0D76                0x40
#define _TXB0D77                0x80

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


//==============================================================================
//        CANSTAT_RO1 Bits

extern __at(0x0F2E) __sfr CANSTAT_RO1;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO1bits_t;

extern __at(0x0F2E) volatile __CANSTAT_RO1bits_t CANSTAT_RO1bits;

#define _CANSTAT_RO1_EICODE0    0x01
#define _CANSTAT_RO1_EICODE1_ICODE0 0x02
#define _CANSTAT_RO1_EICODE1    0x02
#define _CANSTAT_RO1_ICODE0     0x02
#define _CANSTAT_RO1_EICODE2_ICODE1 0x04
#define _CANSTAT_RO1_EICODE2    0x04
#define _CANSTAT_RO1_ICODE1     0x04
#define _CANSTAT_RO1_EICODE3_ICODE2 0x08
#define _CANSTAT_RO1_EICODE3    0x08
#define _CANSTAT_RO1_ICODE2     0x08
#define _CANSTAT_RO1_EICODE4    0x10
#define _CANSTAT_RO1_OPMODE0    0x20
#define _CANSTAT_RO1_OPMODE1    0x40
#define _CANSTAT_RO1_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO1 Bits

extern __at(0x0F2F) __sfr CANCON_RO1;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO1bits_t;

extern __at(0x0F2F) volatile __CANCON_RO1bits_t CANCON_RO1bits;

#define _CANCON_RO1_FP0         0x01
#define _CANCON_RO1_WIN0_FP1    0x02
#define _CANCON_RO1_WIN0        0x02
#define _CANCON_RO1_FP1         0x02
#define _CANCON_RO1_WIN1_FP2    0x04
#define _CANCON_RO1_WIN1        0x04
#define _CANCON_RO1_FP2         0x04
#define _CANCON_RO1_WIN2_FP3    0x08
#define _CANCON_RO1_WIN2        0x08
#define _CANCON_RO1_FP3         0x08
#define _CANCON_RO1_ABAT        0x10

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


//==============================================================================
//        RXB1CON Bits

extern __at(0x0F30) __sfr RXB1CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0            : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned RXRTRRO_FILHIT3    : 1;
    unsigned FILHIT4            : 1;
    unsigned RXM0_RTRRO         : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RXRTRRO            : 1;
    unsigned                    : 1;
    unsigned RXM0               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned FILHIT3            : 1;
    unsigned                    : 1;
    unsigned RTRRO              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 5;
    unsigned RXM                : 2;
    unsigned                    : 1;
    };
  } __RXB1CONbits_t;

extern __at(0x0F30) volatile __RXB1CONbits_t RXB1CONbits;

#define _RXB1CON_FILHIT0        0x01
#define _RXB1CON_FILHIT1        0x02
#define _RXB1CON_FILHIT2        0x04
#define _RXB1CON_RXRTRRO_FILHIT3 0x08
#define _RXB1CON_RXRTRRO        0x08
#define _RXB1CON_FILHIT3        0x08
#define _RXB1CON_FILHIT4        0x10
#define _RXB1CON_RXM0_RTRRO     0x20
#define _RXB1CON_RXM0           0x20
#define _RXB1CON_RTRRO          0x20
#define _RXB1CON_RXM1           0x40
#define _RXB1CON_RXFUL          0x80

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


//==============================================================================
//        RXB1SIDH Bits

extern __at(0x0F31) __sfr RXB1SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXB1SIDHbits_t;

extern __at(0x0F31) volatile __RXB1SIDHbits_t RXB1SIDHbits;

#define _RXB1SIDH_SID3          0x01
#define _RXB1SIDH_SID4          0x02
#define _RXB1SIDH_SID5          0x04
#define _RXB1SIDH_SID6          0x08
#define _RXB1SIDH_SID7          0x10
#define _RXB1SIDH_SID8          0x20
#define _RXB1SIDH_SID9          0x40
#define _RXB1SIDH_SID10         0x80

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


//==============================================================================
//        RXB1SIDL Bits

extern __at(0x0F32) __sfr RXB1SIDL;

typedef union
  {
  struct
    {
    unsigned EDI16              : 1;
    unsigned EDI17              : 1;
    unsigned                    : 1;
    unsigned EXID               : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXB1SIDLbits_t;

extern __at(0x0F32) volatile __RXB1SIDLbits_t RXB1SIDLbits;

#define _RXB1SIDL_EDI16         0x01
#define _RXB1SIDL_EDI17         0x02
#define _RXB1SIDL_EXID          0x08
#define _RXB1SIDL_SRR           0x10
#define _RXB1SIDL_SID0          0x20
#define _RXB1SIDL_SID1          0x40
#define _RXB1SIDL_SID2          0x80

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


//==============================================================================
//        RXB1EIDH Bits

extern __at(0x0F33) __sfr RXB1EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXB1EIDHbits_t;

extern __at(0x0F33) volatile __RXB1EIDHbits_t RXB1EIDHbits;

#define _RXB1EIDH_EID8          0x01
#define _RXB1EIDH_EID9          0x02
#define _RXB1EIDH_EID10         0x04
#define _RXB1EIDH_EID11         0x08
#define _RXB1EIDH_EID12         0x10
#define _RXB1EIDH_EID13         0x20
#define _RXB1EIDH_EID14         0x40
#define _RXB1EIDH_EID15         0x80

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


//==============================================================================
//        RXB1EIDL Bits

extern __at(0x0F34) __sfr RXB1EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXB1EIDLbits_t;

extern __at(0x0F34) volatile __RXB1EIDLbits_t RXB1EIDLbits;

#define _RXB1EIDL_EID0          0x01
#define _RXB1EIDL_EID1          0x02
#define _RXB1EIDL_EID2          0x04
#define _RXB1EIDL_EID3          0x08
#define _RXB1EIDL_EID4          0x10
#define _RXB1EIDL_EID5          0x20
#define _RXB1EIDL_EID6          0x40
#define _RXB1EIDL_EID7          0x80

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


//==============================================================================
//        RXB1DLC Bits

extern __at(0x0F35) __sfr RXB1DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __RXB1DLCbits_t;

extern __at(0x0F35) volatile __RXB1DLCbits_t RXB1DLCbits;

#define _RXB1DLC_DLC0           0x01
#define _RXB1DLC_DLC1           0x02
#define _RXB1DLC_DLC2           0x04
#define _RXB1DLC_DLC3           0x08
#define _RXB1DLC_RB0            0x10
#define _RXB1DLC_RB1            0x20
#define _RXB1DLC_RXRTR          0x40

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


//==============================================================================
//        RXB1D0 Bits

extern __at(0x0F36) __sfr RXB1D0;

typedef struct
  {
  unsigned RXB1D00              : 1;
  unsigned RXB1D01              : 1;
  unsigned RXB1D02              : 1;
  unsigned RXB1D03              : 1;
  unsigned RXB1D04              : 1;
  unsigned RXB1D05              : 1;
  unsigned RXB1D06              : 1;
  unsigned RXB1D07              : 1;
  } __RXB1D0bits_t;

extern __at(0x0F36) volatile __RXB1D0bits_t RXB1D0bits;

#define _RXB1D00                0x01
#define _RXB1D01                0x02
#define _RXB1D02                0x04
#define _RXB1D03                0x08
#define _RXB1D04                0x10
#define _RXB1D05                0x20
#define _RXB1D06                0x40
#define _RXB1D07                0x80

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


//==============================================================================
//        RXB1D1 Bits

extern __at(0x0F37) __sfr RXB1D1;

typedef struct
  {
  unsigned RXB1D10              : 1;
  unsigned RXB1D11              : 1;
  unsigned RXB1D12              : 1;
  unsigned RXB1D13              : 1;
  unsigned RXB1D14              : 1;
  unsigned RXB1D15              : 1;
  unsigned RXB1D16              : 1;
  unsigned RXB1D17              : 1;
  } __RXB1D1bits_t;

extern __at(0x0F37) volatile __RXB1D1bits_t RXB1D1bits;

#define _RXB1D10                0x01
#define _RXB1D11                0x02
#define _RXB1D12                0x04
#define _RXB1D13                0x08
#define _RXB1D14                0x10
#define _RXB1D15                0x20
#define _RXB1D16                0x40
#define _RXB1D17                0x80

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


//==============================================================================
//        RXB1D2 Bits

extern __at(0x0F38) __sfr RXB1D2;

typedef struct
  {
  unsigned RXB1D20              : 1;
  unsigned RXB1D21              : 1;
  unsigned RXB1D22              : 1;
  unsigned RXB1D23              : 1;
  unsigned RXB1D24              : 1;
  unsigned RXB1D25              : 1;
  unsigned RXB1D26              : 1;
  unsigned RXB1D27              : 1;
  } __RXB1D2bits_t;

extern __at(0x0F38) volatile __RXB1D2bits_t RXB1D2bits;

#define _RXB1D20                0x01
#define _RXB1D21                0x02
#define _RXB1D22                0x04
#define _RXB1D23                0x08
#define _RXB1D24                0x10
#define _RXB1D25                0x20
#define _RXB1D26                0x40
#define _RXB1D27                0x80

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


//==============================================================================
//        RXB1D3 Bits

extern __at(0x0F39) __sfr RXB1D3;

typedef struct
  {
  unsigned RXB1D30              : 1;
  unsigned RXB1D31              : 1;
  unsigned RXB1D32              : 1;
  unsigned RXB1D33              : 1;
  unsigned RXB1D34              : 1;
  unsigned RXB1D35              : 1;
  unsigned RXB1D36              : 1;
  unsigned RXB1D37              : 1;
  } __RXB1D3bits_t;

extern __at(0x0F39) volatile __RXB1D3bits_t RXB1D3bits;

#define _RXB1D30                0x01
#define _RXB1D31                0x02
#define _RXB1D32                0x04
#define _RXB1D33                0x08
#define _RXB1D34                0x10
#define _RXB1D35                0x20
#define _RXB1D36                0x40
#define _RXB1D37                0x80

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


//==============================================================================
//        RXB1D4 Bits

extern __at(0x0F3A) __sfr RXB1D4;

typedef struct
  {
  unsigned RXB1D40              : 1;
  unsigned RXB1D41              : 1;
  unsigned RXB1D42              : 1;
  unsigned RXB1D43              : 1;
  unsigned RXB1D44              : 1;
  unsigned RXB1D45              : 1;
  unsigned RXB1D46              : 1;
  unsigned RXB1D47              : 1;
  } __RXB1D4bits_t;

extern __at(0x0F3A) volatile __RXB1D4bits_t RXB1D4bits;

#define _RXB1D40                0x01
#define _RXB1D41                0x02
#define _RXB1D42                0x04
#define _RXB1D43                0x08
#define _RXB1D44                0x10
#define _RXB1D45                0x20
#define _RXB1D46                0x40
#define _RXB1D47                0x80

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


//==============================================================================
//        RXB1D5 Bits

extern __at(0x0F3B) __sfr RXB1D5;

typedef struct
  {
  unsigned RXB1D50              : 1;
  unsigned RXB1D51              : 1;
  unsigned RXB1D52              : 1;
  unsigned RXB1D53              : 1;
  unsigned RXB1D54              : 1;
  unsigned RXB1D55              : 1;
  unsigned RXB1D56              : 1;
  unsigned RXB1D57              : 1;
  } __RXB1D5bits_t;

extern __at(0x0F3B) volatile __RXB1D5bits_t RXB1D5bits;

#define _RXB1D50                0x01
#define _RXB1D51                0x02
#define _RXB1D52                0x04
#define _RXB1D53                0x08
#define _RXB1D54                0x10
#define _RXB1D55                0x20
#define _RXB1D56                0x40
#define _RXB1D57                0x80

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


//==============================================================================
//        RXB1D6 Bits

extern __at(0x0F3C) __sfr RXB1D6;

typedef struct
  {
  unsigned RXB1D60              : 1;
  unsigned RXB1D61              : 1;
  unsigned RXB1D62              : 1;
  unsigned RXB1D63              : 1;
  unsigned RXB1D64              : 1;
  unsigned RXB1D65              : 1;
  unsigned RXB1D66              : 1;
  unsigned RXB1D67              : 1;
  } __RXB1D6bits_t;

extern __at(0x0F3C) volatile __RXB1D6bits_t RXB1D6bits;

#define _RXB1D60                0x01
#define _RXB1D61                0x02
#define _RXB1D62                0x04
#define _RXB1D63                0x08
#define _RXB1D64                0x10
#define _RXB1D65                0x20
#define _RXB1D66                0x40
#define _RXB1D67                0x80

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


//==============================================================================
//        RXB1D7 Bits

extern __at(0x0F3D) __sfr RXB1D7;

typedef struct
  {
  unsigned RXB1D70              : 1;
  unsigned RXB1D71              : 1;
  unsigned RXB1D72              : 1;
  unsigned RXB1D73              : 1;
  unsigned RXB1D74              : 1;
  unsigned RXB1D75              : 1;
  unsigned RXB1D76              : 1;
  unsigned RXB1D77              : 1;
  } __RXB1D7bits_t;

extern __at(0x0F3D) volatile __RXB1D7bits_t RXB1D7bits;

#define _RXB1D70                0x01
#define _RXB1D71                0x02
#define _RXB1D72                0x04
#define _RXB1D73                0x08
#define _RXB1D74                0x10
#define _RXB1D75                0x20
#define _RXB1D76                0x40
#define _RXB1D77                0x80

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


//==============================================================================
//        CANSTAT_RO0 Bits

extern __at(0x0F3E) __sfr CANSTAT_RO0;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTAT_RO0bits_t;

extern __at(0x0F3E) volatile __CANSTAT_RO0bits_t CANSTAT_RO0bits;

#define _CANSTAT_RO0_EICODE0    0x01
#define _CANSTAT_RO0_EICODE1_ICODE0 0x02
#define _CANSTAT_RO0_EICODE1    0x02
#define _CANSTAT_RO0_ICODE0     0x02
#define _CANSTAT_RO0_EICODE2_ICODE1 0x04
#define _CANSTAT_RO0_EICODE2    0x04
#define _CANSTAT_RO0_ICODE1     0x04
#define _CANSTAT_RO0_EICODE3_ICODE2 0x08
#define _CANSTAT_RO0_EICODE3    0x08
#define _CANSTAT_RO0_ICODE2     0x08
#define _CANSTAT_RO0_EICODE4    0x10
#define _CANSTAT_RO0_OPMODE0    0x20
#define _CANSTAT_RO0_OPMODE1    0x40
#define _CANSTAT_RO0_OPMODE2    0x80

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


//==============================================================================
//        CANCON_RO0 Bits

extern __at(0x0F3F) __sfr CANCON_RO0;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCON_RO0bits_t;

extern __at(0x0F3F) volatile __CANCON_RO0bits_t CANCON_RO0bits;

#define _CANCON_RO0_FP0         0x01
#define _CANCON_RO0_WIN0_FP1    0x02
#define _CANCON_RO0_WIN0        0x02
#define _CANCON_RO0_FP1         0x02
#define _CANCON_RO0_WIN1_FP2    0x04
#define _CANCON_RO0_WIN1        0x04
#define _CANCON_RO0_FP2         0x04
#define _CANCON_RO0_WIN2_FP3    0x08
#define _CANCON_RO0_WIN2        0x08
#define _CANCON_RO0_FP3         0x08
#define _CANCON_RO0_ABAT        0x10

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


//==============================================================================
//        CCP5CON Bits

extern __at(0x0F47) __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(0x0F47) 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(0x0F48) __sfr CCPR5;
extern __at(0x0F48) __sfr CCPR5L;
extern __at(0x0F49) __sfr CCPR5H;

//==============================================================================
//        CCP4CON Bits

extern __at(0x0F4A) __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(0x0F4A) 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(0x0F4B) __sfr CCPR4;
extern __at(0x0F4B) __sfr CCPR4L;
extern __at(0x0F4C) __sfr CCPR4H;

//==============================================================================
//        CCP3CON Bits

extern __at(0x0F4D) __sfr CCP3CON;

typedef union
  {
  struct
    {
    unsigned CCP3M0             : 1;
    unsigned CCP3M1             : 1;
    unsigned CCP3M2             : 1;
    unsigned CCP3M3             : 1;
    unsigned DC3B0              : 1;
    unsigned DC3B1              : 1;
    unsigned                    : 1;
    unsigned                    : 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;
    };
  } __CCP3CONbits_t;

extern __at(0x0F4D) 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

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

extern __at(0x0F4E) __sfr CCPR3;
extern __at(0x0F4E) __sfr CCPR3L;
extern __at(0x0F4F) __sfr CCPR3H;

//==============================================================================
//        CCP2CON Bits

extern __at(0x0F50) __sfr CCP2CON;

typedef union
  {
  struct
    {
    unsigned CCP2M0             : 1;
    unsigned CCP2M1             : 1;
    unsigned CCP2M2             : 1;
    unsigned CCP2M3             : 1;
    unsigned DC2B0              : 1;
    unsigned DC2B1              : 1;
    unsigned                    : 1;
    unsigned                    : 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;
    };
  } __CCP2CONbits_t;

extern __at(0x0F50) 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

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


//==============================================================================
//        ECCP2CON Bits

extern __at(0x0F50) __sfr ECCP2CON;

typedef union
  {
  struct
    {
    unsigned CCP2M0             : 1;
    unsigned CCP2M1             : 1;
    unsigned CCP2M2             : 1;
    unsigned CCP2M3             : 1;
    unsigned DC2B0              : 1;
    unsigned DC2B1              : 1;
    unsigned                    : 1;
    unsigned                    : 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;
    };
  } __ECCP2CONbits_t;

extern __at(0x0F50) volatile __ECCP2CONbits_t ECCP2CONbits;

#define _ECCP2CON_CCP2M0        0x01
#define _ECCP2CON_CCP2M1        0x02
#define _ECCP2CON_CCP2M2        0x04
#define _ECCP2CON_CCP2M3        0x08
#define _ECCP2CON_DC2B0         0x10
#define _ECCP2CON_CCP2Y         0x10
#define _ECCP2CON_DC2B1         0x20
#define _ECCP2CON_CCP2X         0x20

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

extern __at(0x0F51) __sfr CCPR2;
extern __at(0x0F51) __sfr CCPR2L;
extern __at(0x0F52) __sfr CCPR2H;

//==============================================================================
//        CTMUICON Bits

extern __at(0x0F53) __sfr CTMUICON;

typedef union
  {
  struct
    {
    unsigned IRNG0              : 1;
    unsigned IRNG1              : 1;
    unsigned ITRIM0             : 1;
    unsigned ITRIM1             : 1;
    unsigned ITRIM2             : 1;
    unsigned ITRIM3             : 1;
    unsigned ITRIM4             : 1;
    unsigned ITRIM5             : 1;
    };

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

  struct
    {
    unsigned                    : 2;
    unsigned ITRIM              : 6;
    };
  } __CTMUICONbits_t;

extern __at(0x0F53) volatile __CTMUICONbits_t CTMUICONbits;

#define _IRNG0                  0x01
#define _IRNG1                  0x02
#define _ITRIM0                 0x04
#define _ITRIM1                 0x08
#define _ITRIM2                 0x10
#define _ITRIM3                 0x20
#define _ITRIM4                 0x40
#define _ITRIM5                 0x80

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


//==============================================================================
//        CTMUCONL Bits

extern __at(0x0F54) __sfr CTMUCONL;

typedef union
  {
  struct
    {
    unsigned EDG1STAT           : 1;
    unsigned EDG2STAT           : 1;
    unsigned EDG1SEL0           : 1;
    unsigned EDG1SEL1           : 1;
    unsigned EDG1POL            : 1;
    unsigned EDG2SEL0           : 1;
    unsigned EDG2SEL1           : 1;
    unsigned EDG2POL            : 1;
    };

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

  struct
    {
    unsigned                    : 5;
    unsigned EDG2SEL            : 2;
    unsigned                    : 1;
    };
  } __CTMUCONLbits_t;

extern __at(0x0F54) volatile __CTMUCONLbits_t CTMUCONLbits;

#define _EDG1STAT               0x01
#define _EDG2STAT               0x02
#define _EDG1SEL0               0x04
#define _EDG1SEL1               0x08
#define _EDG1POL                0x10
#define _EDG2SEL0               0x20
#define _EDG2SEL1               0x40
#define _EDG2POL                0x80

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


//==============================================================================
//        CTMUCONH Bits

extern __at(0x0F55) __sfr CTMUCONH;

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;
  } __CTMUCONHbits_t;

extern __at(0x0F55) volatile __CTMUCONHbits_t CTMUCONHbits;

#define _CTTRIG                 0x01
#define _IDISSEN                0x02
#define _EDGSEQEN               0x04
#define _EDGEN                  0x08
#define _TGEN                   0x10
#define _CTMUSIDL               0x20
#define _CTMUEN                 0x80

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


//==============================================================================
//        PADCFG1 Bits

extern __at(0x0F56) __sfr PADCFG1;

typedef struct
  {
  unsigned CTMUDS               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __PADCFG1bits_t;

extern __at(0x0F56) volatile __PADCFG1bits_t PADCFG1bits;

#define _CTMUDS                 0x01

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


//==============================================================================
//        PMD2 Bits

extern __at(0x0F57) __sfr PMD2;

typedef struct
  {
  unsigned CMP1MD               : 1;
  unsigned CMP2MD               : 1;
  unsigned ECANMD               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __PMD2bits_t;

extern __at(0x0F57) volatile __PMD2bits_t PMD2bits;

#define _CMP1MD                 0x01
#define _CMP2MD                 0x02
#define _ECANMD                 0x04

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


//==============================================================================
//        PMD1 Bits

extern __at(0x0F58) __sfr PMD1;

typedef struct
  {
  unsigned TMR0MD               : 1;
  unsigned TMR1MD               : 1;
  unsigned TMR2MD               : 1;
  unsigned TMR3MD               : 1;
  unsigned TMR4MD               : 1;
  unsigned ADCMD                : 1;
  unsigned CTMUMD               : 1;
  unsigned PSPMD                : 1;
  } __PMD1bits_t;

extern __at(0x0F58) volatile __PMD1bits_t PMD1bits;

#define _TMR0MD                 0x01
#define _TMR1MD                 0x02
#define _TMR2MD                 0x04
#define _TMR3MD                 0x08
#define _TMR4MD                 0x10
#define _ADCMD                  0x20
#define _CTMUMD                 0x40
#define _PSPMD                  0x80

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


//==============================================================================
//        PMD0 Bits

extern __at(0x0F59) __sfr PMD0;

typedef struct
  {
  unsigned SSPMD                : 1;
  unsigned UART1MD              : 1;
  unsigned UART2MD              : 1;
  unsigned CCP1MD               : 1;
  unsigned CCP2MD               : 1;
  unsigned CCP3MD               : 1;
  unsigned CCP4MD               : 1;
  unsigned CCP5MD               : 1;
  } __PMD0bits_t;

extern __at(0x0F59) volatile __PMD0bits_t PMD0bits;

#define _SSPMD                  0x01
#define _UART1MD                0x02
#define _UART2MD                0x04
#define _CCP1MD                 0x08
#define _CCP2MD                 0x10
#define _CCP3MD                 0x20
#define _CCP4MD                 0x40
#define _CCP5MD                 0x80

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


//==============================================================================
//        IOCB Bits

extern __at(0x0F5A) __sfr IOCB;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned IOCB4                : 1;
  unsigned IOCB5                : 1;
  unsigned IOCB6                : 1;
  unsigned IOCB7                : 1;
  } __IOCBbits_t;

extern __at(0x0F5A) volatile __IOCBbits_t IOCBbits;

#define _IOCB4                  0x10
#define _IOCB5                  0x20
#define _IOCB6                  0x40
#define _IOCB7                  0x80

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


//==============================================================================
//        WPUB Bits

extern __at(0x0F5B) __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(0x0F5B) 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

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


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

extern __at(0x0F5C) __sfr ANCON1;

typedef struct
  {
  unsigned ANSEL8               : 1;
  unsigned ANSEL9               : 1;
  unsigned ANSEL10              : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __ANCON1bits_t;

extern __at(0x0F5C) volatile __ANCON1bits_t ANCON1bits;

#define _ANSEL8                 0x01
#define _ANSEL9                 0x02
#define _ANSEL10                0x04

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


//==============================================================================
//        ANCON0 Bits

extern __at(0x0F5D) __sfr ANCON0;

typedef union
  {
  struct
    {
    unsigned ANSEL0             : 1;
    unsigned ANSEL1             : 1;
    unsigned ANSEL2             : 1;
    unsigned ANSEL3             : 1;
    unsigned ANSEL4             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned ANSEL              : 5;
    unsigned                    : 3;
    };
  } __ANCON0bits_t;

extern __at(0x0F5D) volatile __ANCON0bits_t ANCON0bits;

#define _ANSEL0                 0x01
#define _ANSEL1                 0x02
#define _ANSEL2                 0x04
#define _ANSEL3                 0x08
#define _ANSEL4                 0x10

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


//==============================================================================
//        CM2CON Bits

extern __at(0x0F5E) __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(0x0F5E) 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

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


//==============================================================================
//        CM2CON1 Bits

extern __at(0x0F5E) __sfr CM2CON1;

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;
    };
  } __CM2CON1bits_t;

extern __at(0x0F5E) volatile __CM2CON1bits_t CM2CON1bits;

#define _CM2CON1_CCH0           0x01
#define _CM2CON1_CCH1           0x02
#define _CM2CON1_CREF           0x04
#define _CM2CON1_EVPOL0         0x08
#define _CM2CON1_EVPOL1         0x10
#define _CM2CON1_CPOL           0x20
#define _CM2CON1_COE            0x40
#define _CM2CON1_CON            0x80

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


//==============================================================================
//        CM1CON Bits

extern __at(0x0F5F) __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(0x0F5F) 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

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


//==============================================================================
//        CM1CON1 Bits

extern __at(0x0F5F) __sfr CM1CON1;

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;
    };
  } __CM1CON1bits_t;

extern __at(0x0F5F) volatile __CM1CON1bits_t CM1CON1bits;

#define _CM1CON1_CCH0           0x01
#define _CM1CON1_CCH1           0x02
#define _CM1CON1_CREF           0x04
#define _CM1CON1_EVPOL0         0x08
#define _CM1CON1_EVPOL1         0x10
#define _CM1CON1_CPOL           0x20
#define _CM1CON1_COE            0x40
#define _CM1CON1_CON            0x80

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


//==============================================================================
//        RXB0CON Bits

extern __at(0x0F60) __sfr RXB0CON;

typedef union
  {
  struct
    {
    unsigned FILHIT0            : 1;
    unsigned JTOFF_FILHIT1      : 1;
    unsigned RB0DBEN_FILHIT2    : 1;
    unsigned RXRTRRO_FILHIT3    : 1;
    unsigned FILHIT4            : 1;
    unsigned RXM0_RTRRO         : 1;
    unsigned RXM1               : 1;
    unsigned RXFUL              : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned JTOFF              : 1;
    unsigned RB0DBEN            : 1;
    unsigned RXRTRRO            : 1;
    unsigned                    : 1;
    unsigned RTRRO              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FILHIT1            : 1;
    unsigned FILHIT2            : 1;
    unsigned FILHIT3            : 1;
    unsigned                    : 1;
    unsigned RXM0               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 5;
    unsigned RXM                : 2;
    unsigned                    : 1;
    };
  } __RXB0CONbits_t;

extern __at(0x0F60) volatile __RXB0CONbits_t RXB0CONbits;

#define _RXB0CON_FILHIT0        0x01
#define _RXB0CON_JTOFF_FILHIT1  0x02
#define _RXB0CON_JTOFF          0x02
#define _RXB0CON_FILHIT1        0x02
#define _RXB0CON_RB0DBEN_FILHIT2 0x04
#define _RXB0CON_RB0DBEN        0x04
#define _RXB0CON_FILHIT2        0x04
#define _RXB0CON_RXRTRRO_FILHIT3 0x08
#define _RXB0CON_RXRTRRO        0x08
#define _RXB0CON_FILHIT3        0x08
#define _RXB0CON_FILHIT4        0x10
#define _RXB0CON_RXM0_RTRRO     0x20
#define _RXB0CON_RTRRO          0x20
#define _RXB0CON_RXM0           0x20
#define _RXB0CON_RXM1           0x40
#define _RXB0CON_RXFUL          0x80

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


//==============================================================================
//        RXB0SIDH Bits

extern __at(0x0F61) __sfr RXB0SIDH;

typedef struct
  {
  unsigned SID3                 : 1;
  unsigned SID4                 : 1;
  unsigned SID5                 : 1;
  unsigned SID6                 : 1;
  unsigned SID7                 : 1;
  unsigned SID8                 : 1;
  unsigned SID9                 : 1;
  unsigned SID10                : 1;
  } __RXB0SIDHbits_t;

extern __at(0x0F61) volatile __RXB0SIDHbits_t RXB0SIDHbits;

#define _RXB0SIDH_SID3          0x01
#define _RXB0SIDH_SID4          0x02
#define _RXB0SIDH_SID5          0x04
#define _RXB0SIDH_SID6          0x08
#define _RXB0SIDH_SID7          0x10
#define _RXB0SIDH_SID8          0x20
#define _RXB0SIDH_SID9          0x40
#define _RXB0SIDH_SID10         0x80

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


//==============================================================================
//        RXB0SIDL Bits

extern __at(0x0F62) __sfr RXB0SIDL;

typedef union
  {
  struct
    {
    unsigned EID16              : 1;
    unsigned EID17              : 1;
    unsigned                    : 1;
    unsigned EXID               : 1;
    unsigned SRR                : 1;
    unsigned SID0               : 1;
    unsigned SID1               : 1;
    unsigned SID2               : 1;
    };

  struct
    {
    unsigned                    : 5;
    unsigned SID                : 3;
    };
  } __RXB0SIDLbits_t;

extern __at(0x0F62) volatile __RXB0SIDLbits_t RXB0SIDLbits;

#define _RXB0SIDL_EID16         0x01
#define _RXB0SIDL_EID17         0x02
#define _RXB0SIDL_EXID          0x08
#define _RXB0SIDL_SRR           0x10
#define _RXB0SIDL_SID0          0x20
#define _RXB0SIDL_SID1          0x40
#define _RXB0SIDL_SID2          0x80

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


//==============================================================================
//        RXB0EIDH Bits

extern __at(0x0F63) __sfr RXB0EIDH;

typedef struct
  {
  unsigned EID8                 : 1;
  unsigned EID9                 : 1;
  unsigned EID10                : 1;
  unsigned EID11                : 1;
  unsigned EID12                : 1;
  unsigned EID13                : 1;
  unsigned EID14                : 1;
  unsigned EID15                : 1;
  } __RXB0EIDHbits_t;

extern __at(0x0F63) volatile __RXB0EIDHbits_t RXB0EIDHbits;

#define _RXB0EIDH_EID8          0x01
#define _RXB0EIDH_EID9          0x02
#define _RXB0EIDH_EID10         0x04
#define _RXB0EIDH_EID11         0x08
#define _RXB0EIDH_EID12         0x10
#define _RXB0EIDH_EID13         0x20
#define _RXB0EIDH_EID14         0x40
#define _RXB0EIDH_EID15         0x80

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


//==============================================================================
//        RXB0EIDL Bits

extern __at(0x0F64) __sfr RXB0EIDL;

typedef struct
  {
  unsigned EID0                 : 1;
  unsigned EID1                 : 1;
  unsigned EID2                 : 1;
  unsigned EID3                 : 1;
  unsigned EID4                 : 1;
  unsigned EID5                 : 1;
  unsigned EID6                 : 1;
  unsigned EID7                 : 1;
  } __RXB0EIDLbits_t;

extern __at(0x0F64) volatile __RXB0EIDLbits_t RXB0EIDLbits;

#define _RXB0EIDL_EID0          0x01
#define _RXB0EIDL_EID1          0x02
#define _RXB0EIDL_EID2          0x04
#define _RXB0EIDL_EID3          0x08
#define _RXB0EIDL_EID4          0x10
#define _RXB0EIDL_EID5          0x20
#define _RXB0EIDL_EID6          0x40
#define _RXB0EIDL_EID7          0x80

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


//==============================================================================
//        RXB0DLC Bits

extern __at(0x0F65) __sfr RXB0DLC;

typedef union
  {
  struct
    {
    unsigned DLC0               : 1;
    unsigned DLC1               : 1;
    unsigned DLC2               : 1;
    unsigned DLC3               : 1;
    unsigned RB0                : 1;
    unsigned RB1                : 1;
    unsigned RXRTR              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned DLC                : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 4;
    unsigned RB                 : 2;
    unsigned                    : 2;
    };
  } __RXB0DLCbits_t;

extern __at(0x0F65) volatile __RXB0DLCbits_t RXB0DLCbits;

#define _RXB0DLC_DLC0           0x01
#define _RXB0DLC_DLC1           0x02
#define _RXB0DLC_DLC2           0x04
#define _RXB0DLC_DLC3           0x08
#define _RXB0DLC_RB0            0x10
#define _RXB0DLC_RB1            0x20
#define _RXB0DLC_RXRTR          0x40

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


//==============================================================================
//        RXB0D0 Bits

extern __at(0x0F66) __sfr RXB0D0;

typedef struct
  {
  unsigned RXB0D00              : 1;
  unsigned RXB0D01              : 1;
  unsigned RXB0D02              : 1;
  unsigned RXB0D03              : 1;
  unsigned RXB0D04              : 1;
  unsigned RXB0D05              : 1;
  unsigned RXB0D06              : 1;
  unsigned RXB0D07              : 1;
  } __RXB0D0bits_t;

extern __at(0x0F66) volatile __RXB0D0bits_t RXB0D0bits;

#define _RXB0D00                0x01
#define _RXB0D01                0x02
#define _RXB0D02                0x04
#define _RXB0D03                0x08
#define _RXB0D04                0x10
#define _RXB0D05                0x20
#define _RXB0D06                0x40
#define _RXB0D07                0x80

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


//==============================================================================
//        RXB0D1 Bits

extern __at(0x0F67) __sfr RXB0D1;

typedef struct
  {
  unsigned RXB0D10              : 1;
  unsigned RXB0D11              : 1;
  unsigned RXB0D12              : 1;
  unsigned RXB0D13              : 1;
  unsigned RXB0D14              : 1;
  unsigned RXB0D15              : 1;
  unsigned RXB0D16              : 1;
  unsigned RXB0D17              : 1;
  } __RXB0D1bits_t;

extern __at(0x0F67) volatile __RXB0D1bits_t RXB0D1bits;

#define _RXB0D10                0x01
#define _RXB0D11                0x02
#define _RXB0D12                0x04
#define _RXB0D13                0x08
#define _RXB0D14                0x10
#define _RXB0D15                0x20
#define _RXB0D16                0x40
#define _RXB0D17                0x80

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


//==============================================================================
//        RXB0D2 Bits

extern __at(0x0F68) __sfr RXB0D2;

typedef struct
  {
  unsigned RXB0D20              : 1;
  unsigned RXB0D21              : 1;
  unsigned RXB0D22              : 1;
  unsigned RXB0D23              : 1;
  unsigned RXB0D24              : 1;
  unsigned RXB0D25              : 1;
  unsigned RXB0D26              : 1;
  unsigned RXB0D27              : 1;
  } __RXB0D2bits_t;

extern __at(0x0F68) volatile __RXB0D2bits_t RXB0D2bits;

#define _RXB0D20                0x01
#define _RXB0D21                0x02
#define _RXB0D22                0x04
#define _RXB0D23                0x08
#define _RXB0D24                0x10
#define _RXB0D25                0x20
#define _RXB0D26                0x40
#define _RXB0D27                0x80

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


//==============================================================================
//        RXB0D3 Bits

extern __at(0x0F69) __sfr RXB0D3;

typedef struct
  {
  unsigned RXB0D30              : 1;
  unsigned RXB0D31              : 1;
  unsigned RXB0D32              : 1;
  unsigned RXB0D33              : 1;
  unsigned RXB0D34              : 1;
  unsigned RXB0D35              : 1;
  unsigned RXB0D36              : 1;
  unsigned RXB0D37              : 1;
  } __RXB0D3bits_t;

extern __at(0x0F69) volatile __RXB0D3bits_t RXB0D3bits;

#define _RXB0D30                0x01
#define _RXB0D31                0x02
#define _RXB0D32                0x04
#define _RXB0D33                0x08
#define _RXB0D34                0x10
#define _RXB0D35                0x20
#define _RXB0D36                0x40
#define _RXB0D37                0x80

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


//==============================================================================
//        RXB0D4 Bits

extern __at(0x0F6A) __sfr RXB0D4;

typedef struct
  {
  unsigned RXB0D40              : 1;
  unsigned RXB0D41              : 1;
  unsigned RXB0D42              : 1;
  unsigned RXB0D43              : 1;
  unsigned RXB0D44              : 1;
  unsigned RXB0D45              : 1;
  unsigned RXB0D46              : 1;
  unsigned RXB0D47              : 1;
  } __RXB0D4bits_t;

extern __at(0x0F6A) volatile __RXB0D4bits_t RXB0D4bits;

#define _RXB0D40                0x01
#define _RXB0D41                0x02
#define _RXB0D42                0x04
#define _RXB0D43                0x08
#define _RXB0D44                0x10
#define _RXB0D45                0x20
#define _RXB0D46                0x40
#define _RXB0D47                0x80

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


//==============================================================================
//        RXB0D5 Bits

extern __at(0x0F6B) __sfr RXB0D5;

typedef struct
  {
  unsigned RXB0D50              : 1;
  unsigned RXB0D51              : 1;
  unsigned RXB0D52              : 1;
  unsigned RXB0D53              : 1;
  unsigned RXB0D54              : 1;
  unsigned RXB0D55              : 1;
  unsigned RXB0D56              : 1;
  unsigned RXB0D57              : 1;
  } __RXB0D5bits_t;

extern __at(0x0F6B) volatile __RXB0D5bits_t RXB0D5bits;

#define _RXB0D50                0x01
#define _RXB0D51                0x02
#define _RXB0D52                0x04
#define _RXB0D53                0x08
#define _RXB0D54                0x10
#define _RXB0D55                0x20
#define _RXB0D56                0x40
#define _RXB0D57                0x80

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


//==============================================================================
//        RXB0D6 Bits

extern __at(0x0F6C) __sfr RXB0D6;

typedef struct
  {
  unsigned RXB0D60              : 1;
  unsigned RXB0D61              : 1;
  unsigned RXB0D62              : 1;
  unsigned RXB0D63              : 1;
  unsigned RXB0D64              : 1;
  unsigned RXB0D65              : 1;
  unsigned RXB0D66              : 1;
  unsigned RXB0D67              : 1;
  } __RXB0D6bits_t;

extern __at(0x0F6C) volatile __RXB0D6bits_t RXB0D6bits;

#define _RXB0D60                0x01
#define _RXB0D61                0x02
#define _RXB0D62                0x04
#define _RXB0D63                0x08
#define _RXB0D64                0x10
#define _RXB0D65                0x20
#define _RXB0D66                0x40
#define _RXB0D67                0x80

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


//==============================================================================
//        RXB0D7 Bits

extern __at(0x0F6D) __sfr RXB0D7;

typedef struct
  {
  unsigned RXB0D70              : 1;
  unsigned RXB0D71              : 1;
  unsigned RXB0D72              : 1;
  unsigned RXB0D73              : 1;
  unsigned RXB0D74              : 1;
  unsigned RXB0D75              : 1;
  unsigned RXB0D76              : 1;
  unsigned RXB0D77              : 1;
  } __RXB0D7bits_t;

extern __at(0x0F6D) volatile __RXB0D7bits_t RXB0D7bits;

#define _RXB0D70                0x01
#define _RXB0D71                0x02
#define _RXB0D72                0x04
#define _RXB0D73                0x08
#define _RXB0D74                0x10
#define _RXB0D75                0x20
#define _RXB0D76                0x40
#define _RXB0D77                0x80

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


//==============================================================================
//        CANSTAT Bits

extern __at(0x0F6E) __sfr CANSTAT;

typedef union
  {
  struct
    {
    unsigned EICODE0            : 1;
    unsigned EICODE1_ICODE0     : 1;
    unsigned EICODE2_ICODE1     : 1;
    unsigned EICODE3_ICODE2     : 1;
    unsigned EICODE4            : 1;
    unsigned OPMODE0            : 1;
    unsigned OPMODE1            : 1;
    unsigned OPMODE2            : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned EICODE1            : 1;
    unsigned EICODE2            : 1;
    unsigned EICODE3            : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ICODE0             : 1;
    unsigned ICODE1             : 1;
    unsigned ICODE2             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

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

  struct
    {
    unsigned                    : 1;
    unsigned ICODE              : 3;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 5;
    unsigned OPMODE             : 3;
    };
  } __CANSTATbits_t;

extern __at(0x0F6E) volatile __CANSTATbits_t CANSTATbits;

#define _EICODE0                0x01
#define _EICODE1_ICODE0         0x02
#define _EICODE1                0x02
#define _ICODE0                 0x02
#define _EICODE2_ICODE1         0x04
#define _EICODE2                0x04
#define _ICODE1                 0x04
#define _EICODE3_ICODE2         0x08
#define _EICODE3                0x08
#define _ICODE2                 0x08
#define _EICODE4                0x10
#define _OPMODE0                0x20
#define _OPMODE1                0x40
#define _OPMODE2                0x80

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


//==============================================================================
//        CANCON Bits

extern __at(0x0F6F) __sfr CANCON;

typedef union
  {
  struct
    {
    unsigned FP0                : 1;
    unsigned WIN0_FP1           : 1;
    unsigned WIN1_FP2           : 1;
    unsigned WIN2_FP3           : 1;
    unsigned ABAT               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN0               : 1;
    unsigned WIN1               : 1;
    unsigned WIN2               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned FP1                : 1;
    unsigned FP2                : 1;
    unsigned FP3                : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned FP                 : 4;
    unsigned                    : 4;
    };

  struct
    {
    unsigned                    : 1;
    unsigned WIN                : 3;
    unsigned                    : 4;
    };
  } __CANCONbits_t;

extern __at(0x0F6F) volatile __CANCONbits_t CANCONbits;

#define _FP0                    0x01
#define _WIN0_FP1               0x02
#define _WIN0                   0x02
#define _FP1                    0x02
#define _WIN1_FP2               0x04
#define _WIN1                   0x04
#define _FP2                    0x04
#define _WIN2_FP3               0x08
#define _WIN2                   0x08
#define _FP3                    0x08
#define _ABAT                   0x10

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


//==============================================================================
//        CIOCON Bits

extern __at(0x0F70) __sfr CIOCON;

typedef struct
  {
  unsigned CLKSEL               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned CANCAP               : 1;
  unsigned ENDRHI               : 1;
  unsigned TX2EN                : 1;
  unsigned TX2SRC               : 1;
  } __CIOCONbits_t;

extern __at(0x0F70) volatile __CIOCONbits_t CIOCONbits;

#define _CLKSEL                 0x01
#define _CANCAP                 0x10
#define _ENDRHI                 0x20
#define _TX2EN                  0x40
#define _TX2SRC                 0x80

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


//==============================================================================
//        COMSTAT Bits

extern __at(0x0F71) __sfr COMSTAT;

typedef union
  {
  struct
    {
    unsigned EWARN              : 1;
    unsigned RXWARN             : 1;
    unsigned TXWARN             : 1;
    unsigned RXBP               : 1;
    unsigned TXBP               : 1;
    unsigned TXBO               : 1;
    unsigned RXB1OVFL           : 1;
    unsigned RXB0OVFL           : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_FIFOEMPTY      : 1;
    };
  } __COMSTATbits_t;

extern __at(0x0F71) volatile __COMSTATbits_t COMSTATbits;

#define _EWARN                  0x01
#define _RXWARN                 0x02
#define _TXWARN                 0x04
#define _RXBP                   0x08
#define _TXBP                   0x10
#define _TXBO                   0x20
#define _RXB1OVFL               0x40
#define _RXB0OVFL               0x80
#define _NOT_FIFOEMPTY          0x80

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


//==============================================================================
//        ECANCON Bits

extern __at(0x0F72) __sfr ECANCON;

typedef union
  {
  struct
    {
    unsigned EWIN0              : 1;
    unsigned EWIN1              : 1;
    unsigned EWIN2              : 1;
    unsigned EWIN3              : 1;
    unsigned EWIN4              : 1;
    unsigned FIFOWM             : 1;
    unsigned MDSEL0             : 1;
    unsigned MDSEL1             : 1;
    };

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

  struct
    {
    unsigned                    : 6;
    unsigned MDSEL              : 2;
    };
  } __ECANCONbits_t;

extern __at(0x0F72) volatile __ECANCONbits_t ECANCONbits;

#define _EWIN0                  0x01
#define _EWIN1                  0x02
#define _EWIN2                  0x04
#define _EWIN3                  0x08
#define _EWIN4                  0x10
#define _FIFOWM                 0x20
#define _MDSEL0                 0x40
#define _MDSEL1                 0x80

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

extern __at(0x0F73) __sfr EEDATA;
extern __at(0x0F74) __sfr EEADR;
extern __at(0x0F75) __sfr EEADRH;

//==============================================================================
//        PIE5 Bits

extern __at(0x0F76) __sfr PIE5;

typedef union
  {
  struct
    {
    unsigned RXB0IE             : 1;
    unsigned RXB1IE             : 1;
    unsigned TXB0IE             : 1;
    unsigned TXB1IE             : 1;
    unsigned TXB2IE             : 1;
    unsigned ERRIE              : 1;
    unsigned WAKIE              : 1;
    unsigned IRXIE              : 1;
    };

  struct
    {
    unsigned FIFOWMIE           : 1;
    unsigned RXBnIE             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXBnIE             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIE5bits_t;

extern __at(0x0F76) volatile __PIE5bits_t PIE5bits;

#define _PIE5_RXB0IE            0x01
#define _PIE5_FIFOWMIE          0x01
#define _PIE5_RXB1IE            0x02
#define _PIE5_RXBnIE            0x02
#define _PIE5_TXB0IE            0x04
#define _PIE5_TXB1IE            0x08
#define _PIE5_TXB2IE            0x10
#define _PIE5_TXBnIE            0x10
#define _PIE5_ERRIE             0x20
#define _PIE5_WAKIE             0x40
#define _PIE5_IRXIE             0x80

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


//==============================================================================
//        PIR5 Bits

extern __at(0x0F77) __sfr PIR5;

typedef union
  {
  struct
    {
    unsigned RXB0IF             : 1;
    unsigned RXB1IF             : 1;
    unsigned TXB0IF             : 1;
    unsigned TXB1IF             : 1;
    unsigned TXB2IF             : 1;
    unsigned ERRIF              : 1;
    unsigned WAKIF              : 1;
    unsigned IRXIF              : 1;
    };

  struct
    {
    unsigned FIFOWMIF           : 1;
    unsigned RXBnIF             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXBnIF             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIR5bits_t;

extern __at(0x0F77) volatile __PIR5bits_t PIR5bits;

#define _RXB0IF                 0x01
#define _FIFOWMIF               0x01
#define _RXB1IF                 0x02
#define _RXBnIF                 0x02
#define _TXB0IF                 0x04
#define _TXB1IF                 0x08
#define _TXB2IF                 0x10
#define _TXBnIF                 0x10
#define _ERRIF                  0x20
#define _WAKIF                  0x40
#define _IRXIF                  0x80

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


//==============================================================================
//        IPR5 Bits

extern __at(0x0F78) __sfr IPR5;

typedef union
  {
  struct
    {
    unsigned RXB0IP             : 1;
    unsigned RXB1IP             : 1;
    unsigned TXB0IP             : 1;
    unsigned TXB1IP             : 1;
    unsigned TXB2IP             : 1;
    unsigned ERRIP              : 1;
    unsigned WAKIP              : 1;
    unsigned IRXIP              : 1;
    };

  struct
    {
    unsigned FIFOWMIP           : 1;
    unsigned RXBnIP             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXBnIP             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __IPR5bits_t;

extern __at(0x0F78) volatile __IPR5bits_t IPR5bits;

#define _RXB0IP                 0x01
#define _FIFOWMIP               0x01
#define _RXB1IP                 0x02
#define _RXBnIP                 0x02
#define _TXB0IP                 0x04
#define _TXB1IP                 0x08
#define _TXB2IP                 0x10
#define _TXBnIP                 0x10
#define _ERRIP                  0x20
#define _WAKIP                  0x40
#define _IRXIP                  0x80

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

extern __at(0x0F79) __sfr TXREG2;
extern __at(0x0F7A) __sfr RCREG2;
extern __at(0x0F7B) __sfr SPBRG2;
extern __at(0x0F7C) __sfr SPBRGH2;
extern __at(0x0F7D) __sfr SPBRGH1;
extern __at(0x0F7E) __sfr EECON2;

//==============================================================================
//        EECON1 Bits

extern __at(0x0F7F) __sfr EECON1;

typedef struct
  {
  unsigned RD                   : 1;
  unsigned WR                   : 1;
  unsigned WREN                 : 1;
  unsigned WRERR                : 1;
  unsigned FREE                 : 1;
  unsigned                      : 1;
  unsigned CFGS                 : 1;
  unsigned EEPGD                : 1;
  } __EECON1bits_t;

extern __at(0x0F7F) volatile __EECON1bits_t EECON1bits;

#define _RD                     0x01
#define _WR                     0x02
#define _WREN                   0x04
#define _WRERR                  0x08
#define _FREE                   0x10
#define _CFGS                   0x40
#define _EEPGD                  0x80

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


//==============================================================================
//        PORTA Bits

extern __at(0x0F80) __sfr PORTA;

typedef struct
  {
  unsigned RA0                  : 1;
  unsigned RA1                  : 1;
  unsigned RA2                  : 1;
  unsigned RA3                  : 1;
  unsigned                      : 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 _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 _PORTB_RB0              0x01
#define _PORTB_RB1              0x02
#define _PORTB_RB2              0x04
#define _PORTB_RB3              0x08
#define _PORTB_RB4              0x10
#define _PORTB_RB5              0x20
#define _PORTB_RB6              0x40
#define _PORTB_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

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


//==============================================================================
//        PORTE Bits

extern __at(0x0F84) __sfr PORTE;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned RE3                  : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __PORTEbits_t;

extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;

#define _RE3                    0x08

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

extern __at(0x0F87) __sfr TMR4;

//==============================================================================
//        T4CON Bits

extern __at(0x0F88) __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(0x0F88) 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

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


//==============================================================================
//        LATA Bits

extern __at(0x0F89) __sfr LATA;

typedef struct
  {
  unsigned LATA0                : 1;
  unsigned LATA1                : 1;
  unsigned LATA2                : 1;
  unsigned LATA3                : 1;
  unsigned                      : 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 _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

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


//==============================================================================
//        SLRCON Bits

extern __at(0x0F90) __sfr SLRCON;

typedef struct
  {
  unsigned SLRA                 : 1;
  unsigned SLRB                 : 1;
  unsigned SLRC                 : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __SLRCONbits_t;

extern __at(0x0F90) volatile __SLRCONbits_t SLRCONbits;

#define _SLRA                   0x01
#define _SLRB                   0x02
#define _SLRC                   0x04

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


//==============================================================================
//        ODCON Bits

extern __at(0x0F91) __sfr ODCON;

typedef struct
  {
  unsigned U1OD                 : 1;
  unsigned U2OD                 : 1;
  unsigned CCP1OD               : 1;
  unsigned CCP2OD               : 1;
  unsigned CCP3OD               : 1;
  unsigned CCP4OD               : 1;
  unsigned CCP5OD               : 1;
  unsigned SSPOD                : 1;
  } __ODCONbits_t;

extern __at(0x0F91) volatile __ODCONbits_t ODCONbits;

#define _U1OD                   0x01
#define _U2OD                   0x02
#define _CCP1OD                 0x04
#define _CCP2OD                 0x08
#define _CCP3OD                 0x10
#define _CCP4OD                 0x20
#define _CCP5OD                 0x40
#define _SSPOD                  0x80

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


//==============================================================================
//        TRISA Bits

extern __at(0x0F92) __sfr TRISA;

typedef struct
  {
  unsigned TRISA0               : 1;
  unsigned TRISA1               : 1;
  unsigned TRISA2               : 1;
  unsigned TRISA3               : 1;
  unsigned                      : 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 _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

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


//==============================================================================
//        CCPTMRS Bits

extern __at(0x0F99) __sfr CCPTMRS;

typedef struct
  {
  unsigned C1TSEL               : 1;
  unsigned C2TSEL               : 1;
  unsigned C3TSEL               : 1;
  unsigned C4TSEL               : 1;
  unsigned C5TSEL               : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __CCPTMRSbits_t;

extern __at(0x0F99) volatile __CCPTMRSbits_t CCPTMRSbits;

#define _C1TSEL                 0x01
#define _C2TSEL                 0x02
#define _C3TSEL                 0x04
#define _C4TSEL                 0x08
#define _C5TSEL                 0x10

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


//==============================================================================
//        REFOCON Bits

extern __at(0x0F9A) __sfr REFOCON;

typedef union
  {
  struct
    {
    unsigned RODIV0             : 1;
    unsigned RODIV1             : 1;
    unsigned RODIV2             : 1;
    unsigned RODIV3             : 1;
    unsigned ROSEL              : 1;
    unsigned ROSSLP             : 1;
    unsigned                    : 1;
    unsigned ROON               : 1;
    };

  struct
    {
    unsigned RODIV              : 4;
    unsigned                    : 4;
    };
  } __REFOCONbits_t;

extern __at(0x0F9A) volatile __REFOCONbits_t REFOCONbits;

#define _RODIV0                 0x01
#define _RODIV1                 0x02
#define _RODIV2                 0x04
#define _RODIV3                 0x08
#define _ROSEL                  0x10
#define _ROSSLP                 0x20
#define _ROON                   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 PLLEN              : 1;
    unsigned INTSRC             : 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
#define _PLLEN                  0x40
#define _INTSRC                 0x80

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


//==============================================================================
//        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 union
  {
  struct
    {
    unsigned TMR1IE             : 1;
    unsigned TMR2IE             : 1;
    unsigned TMR1GIE            : 1;
    unsigned SSPIE              : 1;
    unsigned TX1IE              : 1;
    unsigned RC1IE              : 1;
    unsigned ADIE               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXIE               : 1;
    unsigned RCIE               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIE1bits_t;

extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;

#define _TMR1IE                 0x01
#define _TMR2IE                 0x02
#define _TMR1GIE                0x04
#define _SSPIE                  0x08
#define _TX1IE                  0x10
#define _TXIE                   0x10
#define _RC1IE                  0x20
#define _RCIE                   0x20
#define _ADIE                   0x40

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


//==============================================================================
//        PIR1 Bits

extern __at(0x0F9E) __sfr PIR1;

typedef union
  {
  struct
    {
    unsigned TMR1IF             : 1;
    unsigned TMR2IF             : 1;
    unsigned TMR1GIF            : 1;
    unsigned SSPIF              : 1;
    unsigned TX1IF              : 1;
    unsigned RC1IF              : 1;
    unsigned ADIF               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXIF               : 1;
    unsigned RCIF               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIR1bits_t;

extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;

#define _TMR1IF                 0x01
#define _TMR2IF                 0x02
#define _TMR1GIF                0x04
#define _SSPIF                  0x08
#define _TX1IF                  0x10
#define _TXIF                   0x10
#define _RC1IF                  0x20
#define _RCIF                   0x20
#define _ADIF                   0x40

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


//==============================================================================
//        IPR1 Bits

extern __at(0x0F9F) __sfr IPR1;

typedef union
  {
  struct
    {
    unsigned TMR1IP             : 1;
    unsigned TMR2IP             : 1;
    unsigned TMR1GIP            : 1;
    unsigned SSPIP              : 1;
    unsigned TX1IP              : 1;
    unsigned RC1IP              : 1;
    unsigned ADIP               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TXIP               : 1;
    unsigned RCIP               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __IPR1bits_t;

extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;

#define _TMR1IP                 0x01
#define _TMR2IP                 0x02
#define _TMR1GIP                0x04
#define _SSPIP                  0x08
#define _TX1IP                  0x10
#define _TXIP                   0x10
#define _RC1IP                  0x20
#define _RCIP                   0x20
#define _ADIP                   0x40

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


//==============================================================================
//        PIE2 Bits

extern __at(0x0FA0) __sfr PIE2;

typedef union
  {
  struct
    {
    unsigned TMR3GIE            : 1;
    unsigned TMR3IE             : 1;
    unsigned HLVDIE             : 1;
    unsigned BCLIE              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned OSCFIE             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned LVDIE              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __PIE2bits_t;

extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;

#define _TMR3GIE                0x01
#define _TMR3IE                 0x02
#define _HLVDIE                 0x04
#define _LVDIE                  0x04
#define _BCLIE                  0x08
#define _OSCFIE                 0x80

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


//==============================================================================
//        PIR2 Bits

extern __at(0x0FA1) __sfr PIR2;

typedef union
  {
  struct
    {
    unsigned TMR3GIF            : 1;
    unsigned TMR3IF             : 1;
    unsigned HLVDIF             : 1;
    unsigned BCLIF              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 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 _BCLIF                  0x08
#define _OSCFIF                 0x80

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


//==============================================================================
//        IPR2 Bits

extern __at(0x0FA2) __sfr IPR2;

typedef union
  {
  struct
    {
    unsigned TMR3GIP            : 1;
    unsigned TMR3IP             : 1;
    unsigned HLVDIP             : 1;
    unsigned BCLIP              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned OSCFIP             : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned LVDIP              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __IPR2bits_t;

extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;

#define _TMR3GIP                0x01
#define _TMR3IP                 0x02
#define _HLVDIP                 0x04
#define _LVDIP                  0x04
#define _BCLIP                  0x08
#define _OSCFIP                 0x80

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


//==============================================================================
//        PIE3 Bits

extern __at(0x0FA3) __sfr PIE3;

typedef struct
  {
  unsigned                      : 1;
  unsigned CCP1IE               : 1;
  unsigned CCP2IE               : 1;
  unsigned CTMUIE               : 1;
  unsigned TX2IE                : 1;
  unsigned RC2IE                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __PIE3bits_t;

extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;

#define _CCP1IE                 0x02
#define _CCP2IE                 0x04
#define _CTMUIE                 0x08
#define _TX2IE                  0x10
#define _RC2IE                  0x20

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


//==============================================================================
//        PIR3 Bits

extern __at(0x0FA4) __sfr PIR3;

typedef struct
  {
  unsigned                      : 1;
  unsigned CCP1IF               : 1;
  unsigned CCP2IF               : 1;
  unsigned CTMUIF               : 1;
  unsigned TX2IF                : 1;
  unsigned RC2IF                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __PIR3bits_t;

extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;

#define _CCP1IF                 0x02
#define _CCP2IF                 0x04
#define _CTMUIF                 0x08
#define _TX2IF                  0x10
#define _RC2IF                  0x20

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


//==============================================================================
//        IPR3 Bits

extern __at(0x0FA5) __sfr IPR3;

typedef struct
  {
  unsigned                      : 1;
  unsigned CCP1IP               : 1;
  unsigned CCP2IP               : 1;
  unsigned CTMUIP               : 1;
  unsigned TX2IP                : 1;
  unsigned RC2IP                : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  } __IPR3bits_t;

extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;

#define _CCP1IP                 0x02
#define _CCP2IP                 0x04
#define _CTMUIP                 0x08
#define _TX2IP                  0x10
#define _RC2IP                  0x20

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


//==============================================================================
//        RCSTA2 Bits

extern __at(0x0FA6) __sfr RCSTA2;

typedef union
  {
  struct
    {
    unsigned RX9D               : 1;
    unsigned OERR               : 1;
    unsigned FERR               : 1;
    unsigned ADDEN              : 1;
    unsigned CREN               : 1;
    unsigned SREN               : 1;
    unsigned RX9                : 1;
    unsigned SPEN               : 1;
    };

  struct
    {
    unsigned RX9D2              : 1;
    unsigned OERR2              : 1;
    unsigned FERR2              : 1;
    unsigned ADDEN2             : 1;
    unsigned CREN2              : 1;
    unsigned SREN2              : 1;
    unsigned RX92               : 1;
    unsigned SPEN2              : 1;
    };
  } __RCSTA2bits_t;

extern __at(0x0FA6) volatile __RCSTA2bits_t RCSTA2bits;

#define _RCSTA2_RX9D            0x01
#define _RCSTA2_RX9D2           0x01
#define _RCSTA2_OERR            0x02
#define _RCSTA2_OERR2           0x02
#define _RCSTA2_FERR            0x04
#define _RCSTA2_FERR2           0x04
#define _RCSTA2_ADDEN           0x08
#define _RCSTA2_ADDEN2          0x08
#define _RCSTA2_CREN            0x10
#define _RCSTA2_CREN2           0x10
#define _RCSTA2_SREN            0x20
#define _RCSTA2_SREN2           0x20
#define _RCSTA2_RX9             0x40
#define _RCSTA2_RX92            0x40
#define _RCSTA2_SPEN            0x80
#define _RCSTA2_SPEN2           0x80

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


//==============================================================================
//        BAUDCON1 Bits

extern __at(0x0FA7) __sfr BAUDCON1;

typedef union
  {
  struct
    {
    unsigned ABDEN              : 1;
    unsigned WUE                : 1;
    unsigned                    : 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                    : 1;
    unsigned                    : 1;
    unsigned RCMT               : 1;
    unsigned                    : 1;
    };
  } __BAUDCON1bits_t;

extern __at(0x0FA7) volatile __BAUDCON1bits_t BAUDCON1bits;

#define _ABDEN                  0x01
#define _WUE                    0x02
#define _BRG16                  0x08
#define _TXCKP                  0x10
#define _RXDTP                  0x20
#define _RCIDL                  0x40
#define _RCMT                   0x40
#define _ABDOVF                 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

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

extern __at(0x0FA9) __sfr PR4;

//==============================================================================
//        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 RCD8               : 1;
    unsigned OERR1              : 1;
    unsigned FERR1              : 1;
    unsigned ADEN               : 1;
    unsigned CREN1              : 1;
    unsigned SREN1              : 1;
    unsigned RC9                : 1;
    unsigned SPEN1              : 1;
    };

  struct
    {
    unsigned RX9D1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned ADDEN1             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_RC8            : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RC8_9              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RX91               : 1;
    unsigned                    : 1;
    };
  } __RCSTAbits_t;

extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;

#define _RX9D                   0x01
#define _RCD8                   0x01
#define _RX9D1                  0x01
#define _OERR                   0x02
#define _OERR1                  0x02
#define _FERR                   0x04
#define _FERR1                  0x04
#define _ADDEN                  0x08
#define _ADEN                   0x08
#define _ADDEN1                 0x08
#define _CREN                   0x10
#define _CREN1                  0x10
#define _SREN                   0x20
#define _SREN1                  0x20
#define _RX9                    0x40
#define _RC9                    0x40
#define _NOT_RC8                0x40
#define _RC8_9                  0x40
#define _RX91                   0x40
#define _SPEN                   0x80
#define _SPEN1                  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 RCD8               : 1;
    unsigned OERR1              : 1;
    unsigned FERR1              : 1;
    unsigned ADEN               : 1;
    unsigned CREN1              : 1;
    unsigned SREN1              : 1;
    unsigned RC9                : 1;
    unsigned SPEN1              : 1;
    };

  struct
    {
    unsigned RX9D1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned ADDEN1             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_RC8            : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RC8_9              : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned RX91               : 1;
    unsigned                    : 1;
    };
  } __RCSTA1bits_t;

extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits;

#define _RCSTA1_RX9D            0x01
#define _RCSTA1_RCD8            0x01
#define _RCSTA1_RX9D1           0x01
#define _RCSTA1_OERR            0x02
#define _RCSTA1_OERR1           0x02
#define _RCSTA1_FERR            0x04
#define _RCSTA1_FERR1           0x04
#define _RCSTA1_ADDEN           0x08
#define _RCSTA1_ADEN            0x08
#define _RCSTA1_ADDEN1          0x08
#define _RCSTA1_CREN            0x10
#define _RCSTA1_CREN1           0x10
#define _RCSTA1_SREN            0x20
#define _RCSTA1_SREN1           0x20
#define _RCSTA1_RX9             0x40
#define _RCSTA1_RC9             0x40
#define _RCSTA1_NOT_RC8         0x40
#define _RCSTA1_RC8_9           0x40
#define _RCSTA1_RX91            0x40
#define _RCSTA1_SPEN            0x80
#define _RCSTA1_SPEN1           0x80

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


//==============================================================================
//        TXSTA Bits

extern __at(0x0FAC) __sfr TXSTA;

typedef union
  {
  struct
    {
    unsigned TX9D               : 1;
    unsigned TRMT               : 1;
    unsigned BRGH               : 1;
    unsigned SENDB              : 1;
    unsigned SYNC               : 1;
    unsigned TXEN               : 1;
    unsigned TX9                : 1;
    unsigned CSRC               : 1;
    };

  struct
    {
    unsigned TXD8               : 1;
    unsigned TRMT1              : 1;
    unsigned BRGH1              : 1;
    unsigned SENDB1             : 1;
    unsigned SYNC1              : 1;
    unsigned TXEN1              : 1;
    unsigned TX8_9              : 1;
    unsigned CSRC1              : 1;
    };

  struct
    {
    unsigned TX9D1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_TX8            : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TX91               : 1;
    unsigned                    : 1;
    };
  } __TXSTAbits_t;

extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;

#define _TX9D                   0x01
#define _TXD8                   0x01
#define _TX9D1                  0x01
#define _TRMT                   0x02
#define _TRMT1                  0x02
#define _BRGH                   0x04
#define _BRGH1                  0x04
#define _SENDB                  0x08
#define _SENDB1                 0x08
#define _SYNC                   0x10
#define _SYNC1                  0x10
#define _TXEN                   0x20
#define _TXEN1                  0x20
#define _TX9                    0x40
#define _TX8_9                  0x40
#define _NOT_TX8                0x40
#define _TX91                   0x40
#define _CSRC                   0x80
#define _CSRC1                  0x80

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


//==============================================================================
//        TXSTA1 Bits

extern __at(0x0FAC) __sfr TXSTA1;

typedef union
  {
  struct
    {
    unsigned TX9D               : 1;
    unsigned TRMT               : 1;
    unsigned BRGH               : 1;
    unsigned SENDB              : 1;
    unsigned SYNC               : 1;
    unsigned TXEN               : 1;
    unsigned TX9                : 1;
    unsigned CSRC               : 1;
    };

  struct
    {
    unsigned TXD8               : 1;
    unsigned TRMT1              : 1;
    unsigned BRGH1              : 1;
    unsigned SENDB1             : 1;
    unsigned SYNC1              : 1;
    unsigned TXEN1              : 1;
    unsigned TX8_9              : 1;
    unsigned CSRC1              : 1;
    };

  struct
    {
    unsigned TX9D1              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned NOT_TX8            : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned TX91               : 1;
    unsigned                    : 1;
    };
  } __TXSTA1bits_t;

extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits;

#define _TXSTA1_TX9D            0x01
#define _TXSTA1_TXD8            0x01
#define _TXSTA1_TX9D1           0x01
#define _TXSTA1_TRMT            0x02
#define _TXSTA1_TRMT1           0x02
#define _TXSTA1_BRGH            0x04
#define _TXSTA1_BRGH1           0x04
#define _TXSTA1_SENDB           0x08
#define _TXSTA1_SENDB1          0x08
#define _TXSTA1_SYNC            0x10
#define _TXSTA1_SYNC1           0x10
#define _TXSTA1_TXEN            0x20
#define _TXSTA1_TXEN1           0x20
#define _TXSTA1_TX9             0x40
#define _TXSTA1_TX8_9           0x40
#define _TXSTA1_NOT_TX8         0x40
#define _TXSTA1_TX91            0x40
#define _TXSTA1_CSRC            0x80
#define _TXSTA1_CSRC1           0x80

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

extern __at(0x0FAD) __sfr TXREG;
extern __at(0x0FAD) __sfr TXREG1;
extern __at(0x0FAE) __sfr RCREG;
extern __at(0x0FAE) __sfr RCREG1;
extern __at(0x0FAF) __sfr SPBRG;
extern __at(0x0FAF) __sfr SPBRG1;

//==============================================================================
//        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;

//==============================================================================
//        CMSTAT Bits

extern __at(0x0FB4) __sfr CMSTAT;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned CMP1OUT              : 1;
  unsigned CMP2OUT              : 1;
  } __CMSTATbits_t;

extern __at(0x0FB4) volatile __CMSTATbits_t CMSTATbits;

#define _CMP1OUT                0x40
#define _CMP2OUT                0x80

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


//==============================================================================
//        CMSTATUS Bits

extern __at(0x0FB4) __sfr CMSTATUS;

typedef struct
  {
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned                      : 1;
  unsigned CMP1OUT              : 1;
  unsigned CMP2OUT              : 1;
  } __CMSTATUSbits_t;

extern __at(0x0FB4) volatile __CMSTATUSbits_t CMSTATUSbits;

#define _CMSTATUS_CMP1OUT       0x40
#define _CMSTATUS_CMP2OUT       0x80

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


//==============================================================================
//        CVRCON Bits

extern __at(0x0FB5) __sfr CVRCON;

typedef union
  {
  struct
    {
    unsigned CVR0               : 1;
    unsigned CVR1               : 1;
    unsigned CVR2               : 1;
    unsigned CVR3               : 1;
    unsigned CVR4               : 1;
    unsigned CVRSS              : 1;
    unsigned CVROE              : 1;
    unsigned CVREN              : 1;
    };

  struct
    {
    unsigned CVR                : 5;
    unsigned                    : 3;
    };
  } __CVRCONbits_t;

extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits;

#define _CVR0                   0x01
#define _CVR1                   0x02
#define _CVR2                   0x04
#define _CVR3                   0x08
#define _CVR4                   0x10
#define _CVRSS                  0x20
#define _CVROE                  0x40
#define _CVREN                  0x80

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


//==============================================================================
//        PIE4 Bits

extern __at(0x0FB6) __sfr PIE4;

typedef struct
  {
  unsigned CCP3IE               : 1;
  unsigned CCP4IE               : 1;
  unsigned CCP5IE               : 1;
  unsigned                      : 1;
  unsigned CMP1IE               : 1;
  unsigned CMP2IE               : 1;
  unsigned EEIE                 : 1;
  unsigned TMR4IE               : 1;
  } __PIE4bits_t;

extern __at(0x0FB6) volatile __PIE4bits_t PIE4bits;

#define _CCP3IE                 0x01
#define _CCP4IE                 0x02
#define _CCP5IE                 0x04
#define _CMP1IE                 0x10
#define _CMP2IE                 0x20
#define _EEIE                   0x40
#define _TMR4IE                 0x80

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


//==============================================================================
//        PIR4 Bits

extern __at(0x0FB7) __sfr PIR4;

typedef struct
  {
  unsigned CCP3IF               : 1;
  unsigned CCP4IF               : 1;
  unsigned CCP5IF               : 1;
  unsigned                      : 1;
  unsigned CMP1IF               : 1;
  unsigned CMP2IF               : 1;
  unsigned EEIF                 : 1;
  unsigned TMR4IF               : 1;
  } __PIR4bits_t;

extern __at(0x0FB7) volatile __PIR4bits_t PIR4bits;

#define _CCP3IF                 0x01
#define _CCP4IF                 0x02
#define _CCP5IF                 0x04
#define _CMP1IF                 0x10
#define _CMP2IF                 0x20
#define _EEIF                   0x40
#define _TMR4IF                 0x80

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


//==============================================================================
//        IPR4 Bits

extern __at(0x0FB8) __sfr IPR4;

typedef struct
  {
  unsigned CCP3IP               : 1;
  unsigned CCP4IP               : 1;
  unsigned CCP5IP               : 1;
  unsigned                      : 1;
  unsigned CMP1IP               : 1;
  unsigned CMP2IP               : 1;
  unsigned EEIP                 : 1;
  unsigned TMR4IP               : 1;
  } __IPR4bits_t;

extern __at(0x0FB8) volatile __IPR4bits_t IPR4bits;

#define _CCP3IP                 0x01
#define _CCP4IP                 0x02
#define _CCP5IP                 0x04
#define _CMP1IP                 0x10
#define _CMP2IP                 0x20
#define _EEIP                   0x40
#define _TMR4IP                 0x80

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


//==============================================================================
//        BAUDCON2 Bits

extern __at(0x0FB9) __sfr BAUDCON2;

typedef union
  {
  struct
    {
    unsigned ABDEN              : 1;
    unsigned WUE                : 1;
    unsigned                    : 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                    : 1;
    unsigned                    : 1;
    unsigned RCMT               : 1;
    unsigned                    : 1;
    };
  } __BAUDCON2bits_t;

extern __at(0x0FB9) volatile __BAUDCON2bits_t BAUDCON2bits;

#define _BAUDCON2_ABDEN         0x01
#define _BAUDCON2_WUE           0x02
#define _BAUDCON2_BRG16         0x08
#define _BAUDCON2_TXCKP         0x10
#define _BAUDCON2_RXDTP         0x20
#define _BAUDCON2_RCIDL         0x40
#define _BAUDCON2_RCMT          0x40
#define _BAUDCON2_ABDOVF        0x80

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


//==============================================================================
//        TXSTA2 Bits

extern __at(0x0FBA) __sfr TXSTA2;

typedef union
  {
  struct
    {
    unsigned TX9D               : 1;
    unsigned TRMT               : 1;
    unsigned BRGH               : 1;
    unsigned SENDB              : 1;
    unsigned SYNC               : 1;
    unsigned TXEN               : 1;
    unsigned TX9                : 1;
    unsigned CSRC               : 1;
    };

  struct
    {
    unsigned TX9D2              : 1;
    unsigned TRMT2              : 1;
    unsigned BRGH2              : 1;
    unsigned SENDB2             : 1;
    unsigned SYNC2              : 1;
    unsigned TXEN2              : 1;
    unsigned TX92               : 1;
    unsigned CSRC2              : 1;
    };
  } __TXSTA2bits_t;

extern __at(0x0FBA) volatile __TXSTA2bits_t TXSTA2bits;

#define _TXSTA2_TX9D            0x01
#define _TXSTA2_TX9D2           0x01
#define _TXSTA2_TRMT            0x02
#define _TXSTA2_TRMT2           0x02
#define _TXSTA2_BRGH            0x04
#define _TXSTA2_BRGH2           0x04
#define _TXSTA2_SENDB           0x08
#define _TXSTA2_SENDB2          0x08
#define _TXSTA2_SYNC            0x10
#define _TXSTA2_SYNC2           0x10
#define _TXSTA2_TXEN            0x20
#define _TXSTA2_TXEN2           0x20
#define _TXSTA2_TX9             0x40
#define _TXSTA2_TX92            0x40
#define _TXSTA2_CSRC            0x80
#define _TXSTA2_CSRC2           0x80

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


//==============================================================================
//        CCP1CON Bits

extern __at(0x0FBB) __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(0x0FBB) 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

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


//==============================================================================
//        ECCP1CON Bits

extern __at(0x0FBB) __sfr ECCP1CON;

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;
    };
  } __ECCP1CONbits_t;

extern __at(0x0FBB) volatile __ECCP1CONbits_t ECCP1CONbits;

#define _ECCP1CON_CCP1M0        0x01
#define _ECCP1CON_CCP1M1        0x02
#define _ECCP1CON_CCP1M2        0x04
#define _ECCP1CON_CCP1M3        0x08
#define _ECCP1CON_DC1B0         0x10
#define _ECCP1CON_CCP1Y         0x10
#define _ECCP1CON_DC1B1         0x20
#define _ECCP1CON_CCP1X         0x20
#define _ECCP1CON_P1M0          0x40
#define _ECCP1CON_P1M1          0x80

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

extern __at(0x0FBC) __sfr CCPR1;
extern __at(0x0FBC) __sfr CCPR1L;
extern __at(0x0FBD) __sfr CCPR1H;

//==============================================================================
//        ECCP1DEL Bits

extern __at(0x0FBE) __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(0x0FBE) 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

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


//==============================================================================
//        PWM1CON Bits

extern __at(0x0FBE) __sfr PWM1CON;

typedef union
  {
  struct
    {
    unsigned P1DC0              : 1;
    unsigned P1DC1              : 1;
    unsigned P1DC2              : 1;
    unsigned P1DC3              : 1;
    unsigned P1DC4              : 1;
    unsigned P1DC5              : 1;
    unsigned P1DC6              : 1;
    unsigned P1RSEN             : 1;
    };

  struct
    {
    unsigned P1DC               : 7;
    unsigned                    : 1;
    };
  } __PWM1CONbits_t;

extern __at(0x0FBE) volatile __PWM1CONbits_t PWM1CONbits;

#define _PWM1CON_P1DC0          0x01
#define _PWM1CON_P1DC1          0x02
#define _PWM1CON_P1DC2          0x04
#define _PWM1CON_P1DC3          0x08
#define _PWM1CON_P1DC4          0x10
#define _PWM1CON_P1DC5          0x20
#define _PWM1CON_P1DC6          0x40
#define _PWM1CON_P1RSEN         0x80

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


//==============================================================================
//        ECCP1AS Bits

extern __at(0x0FBF) __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(0x0FBF) 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

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


//==============================================================================
//        ADCON2 Bits

extern __at(0x0FC0) __sfr ADCON2;

typedef union
  {
  struct
    {
    unsigned ADCS0              : 1;
    unsigned ADCS1              : 1;
    unsigned ADCS2              : 1;
    unsigned ACQT0              : 1;
    unsigned ACQT1              : 1;
    unsigned ACQT2              : 1;
    unsigned                    : 1;
    unsigned ADFM               : 1;
    };

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

  struct
    {
    unsigned                    : 3;
    unsigned ACQT               : 3;
    unsigned                    : 2;
    };
  } __ADCON2bits_t;

extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits;

#define _ADCS0                  0x01
#define _ADCS1                  0x02
#define _ADCS2                  0x04
#define _ACQT0                  0x08
#define _ACQT1                  0x10
#define _ACQT2                  0x20
#define _ADFM                   0x80

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


//==============================================================================
//        ADCON1 Bits

extern __at(0x0FC1) __sfr ADCON1;

typedef union
  {
  struct
    {
    unsigned CHSN0              : 1;
    unsigned CHSN1              : 1;
    unsigned CHSN2              : 1;
    unsigned VNCFG              : 1;
    unsigned VCFG0              : 1;
    unsigned VCFG1              : 1;
    unsigned TRIGSEL0           : 1;
    unsigned TRIGSEL1           : 1;
    };

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

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

  struct
    {
    unsigned                    : 6;
    unsigned TRIGSEL            : 2;
    };
  } __ADCON1bits_t;

extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;

#define _CHSN0                  0x01
#define _CHSN1                  0x02
#define _CHSN2                  0x04
#define _VNCFG                  0x08
#define _VCFG0                  0x10
#define _VCFG1                  0x20
#define _TRIGSEL0               0x40
#define _TRIGSEL1               0x80

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


//==============================================================================
//        ADCON0 Bits

extern __at(0x0FC2) __sfr ADCON0;

typedef union
  {
  struct
    {
    unsigned ADON               : 1;
    unsigned GO_NOT_DONE        : 1;
    unsigned CHS0               : 1;
    unsigned CHS1               : 1;
    unsigned CHS2               : 1;
    unsigned CHS3               : 1;
    unsigned CHS4               : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned DONE               : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned GO                 : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned NOT_DONE           : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned                    : 2;
    unsigned CHS                : 5;
    unsigned                    : 1;
    };
  } __ADCON0bits_t;

extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;

#define _ADON                   0x01
#define _GO_NOT_DONE            0x02
#define _DONE                   0x02
#define _GO                     0x02
#define _NOT_DONE               0x02
#define _CHS0                   0x04
#define _CHS1                   0x08
#define _CHS2                   0x10
#define _CHS3                   0x20
#define _CHS4                   0x40

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

extern __at(0x0FC3) __sfr ADRES;
extern __at(0x0FC3) __sfr ADRESL;
extern __at(0x0FC4) __sfr ADRESH;

//==============================================================================
//        SSPCON2 Bits

extern __at(0x0FC5) __sfr SSPCON2;

typedef union
  {
  struct
    {
    unsigned SEN                : 1;
    unsigned RSEN               : 1;
    unsigned PEN                : 1;
    unsigned RCEN               : 1;
    unsigned ACKEN              : 1;
    unsigned ACKDT              : 1;
    unsigned ACKSTAT            : 1;
    unsigned GCEN               : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned ADMSK1             : 1;
    unsigned ADMSK2             : 1;
    unsigned ADMSK3             : 1;
    unsigned ADMSK4             : 1;
    unsigned ADMSK5             : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __SSPCON2bits_t;

extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;

#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

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


//==============================================================================
//        SSPCON1 Bits

extern __at(0x0FC6) __sfr SSPCON1;

typedef union
  {
  struct
    {
    unsigned SSPM0              : 1;
    unsigned SSPM1              : 1;
    unsigned SSPM2              : 1;
    unsigned SSPM3              : 1;
    unsigned CKP                : 1;
    unsigned SSPEN              : 1;
    unsigned SSPOV              : 1;
    unsigned WCOL               : 1;
    };

  struct
    {
    unsigned SSPM               : 4;
    unsigned                    : 4;
    };
  } __SSPCON1bits_t;

extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;

#define _SSPM0                  0x01
#define _SSPM1                  0x02
#define _SSPM2                  0x04
#define _SSPM3                  0x08
#define _CKP                    0x10
#define _SSPEN                  0x20
#define _SSPOV                  0x40
#define _WCOL                   0x80

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


//==============================================================================
//        SSPSTAT Bits

extern __at(0x0FC7) __sfr SSPSTAT;

typedef union
  {
  struct
    {
    unsigned BF                 : 1;
    unsigned UA                 : 1;
    unsigned R_NOT_W            : 1;
    unsigned S                  : 1;
    unsigned P                  : 1;
    unsigned D_NOT_A            : 1;
    unsigned CKE                : 1;
    unsigned SMP                : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned R_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;
    };
  } __SSPSTATbits_t;

extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;

#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

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


//==============================================================================
//        SSPADD Bits

extern __at(0x0FC8) __sfr SSPADD;

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;
  } __SSPADDbits_t;

extern __at(0x0FC8) volatile __SSPADDbits_t SSPADDbits;

#define _MSK0                   0x01
#define _MSK1                   0x02
#define _MSK2                   0x04
#define _MSK3                   0x08
#define _MSK4                   0x10
#define _MSK5                   0x20
#define _MSK6                   0x40
#define _MSK7                   0x80

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

extern __at(0x0FC9) __sfr SSPBUF;

//==============================================================================
//        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 SBOREN             : 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 _NOT_BOR                0x01
#define _BOR                    0x01
#define _NOT_POR                0x02
#define _POR                    0x02
#define _NOT_PD                 0x04
#define _PD                     0x04
#define _NOT_TO                 0x08
#define _TO                     0x08
#define _NOT_RI                 0x10
#define _RI                     0x10
#define _NOT_CM                 0x20
#define _CM                     0x20
#define _SBOREN                 0x40
#define _IPEN                   0x80

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


//==============================================================================
//        WDTCON Bits

extern __at(0x0FD1) __sfr WDTCON;

typedef union
  {
  struct
    {
    unsigned SWDTEN             : 1;
    unsigned ULPSINK            : 1;
    unsigned ULPEN              : 1;
    unsigned                    : 1;
    unsigned SRETEN             : 1;
    unsigned ULPLVL             : 1;
    unsigned                    : 1;
    unsigned REGSLP             : 1;
    };

  struct
    {
    unsigned SWDTE              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };
  } __WDTCONbits_t;

extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits;

#define _SWDTEN                 0x01
#define _SWDTE                  0x01
#define _ULPSINK                0x02
#define _ULPEN                  0x04
#define _SRETEN                 0x10
#define _ULPLVL                 0x20
#define _REGSLP                 0x80

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


//==============================================================================
//        OSCCON2 Bits

extern __at(0x0FD2) __sfr OSCCON2;

typedef union
  {
  struct
    {
    unsigned MFIOSEL            : 1;
    unsigned MFIOFS             : 1;
    unsigned LVDL2              : 1;
    unsigned SOSCGO             : 1;
    unsigned SOSCDRV            : 1;
    unsigned                    : 1;
    unsigned SOSCRUN            : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned LVDL0              : 1;
    unsigned LVDL1              : 1;
    unsigned                    : 1;
    unsigned LVDL3              : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    };

  struct
    {
    unsigned LVDL               : 4;
    unsigned                    : 4;
    };
  } __OSCCON2bits_t;

extern __at(0x0FD2) volatile __OSCCON2bits_t OSCCON2bits;

#define _MFIOSEL                0x01
#define _LVDL0                  0x01
#define _MFIOFS                 0x02
#define _LVDL1                  0x02
#define _LVDL2                  0x04
#define _SOSCGO                 0x08
#define _LVDL3                  0x08
#define _SOSCDRV                0x10
#define _SOSCRUN                0x40

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


//==============================================================================
//        OSCCON Bits

extern __at(0x0FD3) __sfr OSCCON;

typedef union
  {
  struct
    {
    unsigned SCS0               : 1;
    unsigned SCS1               : 1;
    unsigned HFIOFS             : 1;
    unsigned OSTS               : 1;
    unsigned IRCF0              : 1;
    unsigned IRCF1              : 1;
    unsigned IRCF2              : 1;
    unsigned IDLEN              : 1;
    };

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

  struct
    {
    unsigned                    : 4;
    unsigned IRCF               : 3;
    unsigned                    : 1;
    };
  } __OSCCONbits_t;

extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;

#define _SCS0                   0x01
#define _SCS1                   0x02
#define _HFIOFS                 0x04
#define _OSTS                   0x08
#define _IRCF0                  0x10
#define _IRCF1                  0x20
#define _IRCF2                  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 T0SE               : 1;
    unsigned T0CS               : 1;
    unsigned T08BIT             : 1;
    unsigned TMR0ON             : 1;
    };

  struct
    {
    unsigned T0PS               : 3;
    unsigned                    : 5;
    };
  } __T0CONbits_t;

extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;

#define _T0PS0                  0x01
#define _T0PS1                  0x02
#define _T0PS2                  0x04
#define _PSA                    0x08
#define _T0SE                   0x10
#define _T0CS                   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 RBIP               : 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 _RBIP                   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 RBIF               : 1;
    unsigned INT0IF             : 1;
    unsigned TMR0IF             : 1;
    unsigned RBIE               : 1;
    unsigned INT0IE             : 1;
    unsigned TMR0IE             : 1;
    unsigned PEIE_GIEL          : 1;
    unsigned GIE_GIEH           : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned INT0F              : 1;
    unsigned T0IF               : 1;
    unsigned                    : 1;
    unsigned INT0E              : 1;
    unsigned T0IE               : 1;
    unsigned PEIE               : 1;
    unsigned GIE                : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned GIEL               : 1;
    unsigned GIEH               : 1;
    };
  } __INTCONbits_t;

extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;

#define _RBIF                   0x01
#define _INT0IF                 0x02
#define _INT0F                  0x02
#define _TMR0IF                 0x04
#define _T0IF                   0x04
#define _RBIE                   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

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


//==============================================================================
//        INTCON1 Bits

extern __at(0x0FF2) __sfr INTCON1;

typedef union
  {
  struct
    {
    unsigned RBIF               : 1;
    unsigned INT0IF             : 1;
    unsigned TMR0IF             : 1;
    unsigned RBIE               : 1;
    unsigned INT0IE             : 1;
    unsigned TMR0IE             : 1;
    unsigned PEIE_GIEL          : 1;
    unsigned GIE_GIEH           : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned INT0F              : 1;
    unsigned T0IF               : 1;
    unsigned                    : 1;
    unsigned INT0E              : 1;
    unsigned T0IE               : 1;
    unsigned PEIE               : 1;
    unsigned GIE                : 1;
    };

  struct
    {
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned                    : 1;
    unsigned GIEL               : 1;
    unsigned GIEH               : 1;
    };
  } __INTCON1bits_t;

extern __at(0x0FF2) volatile __INTCON1bits_t INTCON1bits;

#define _INTCON1_RBIF           0x01
#define _INTCON1_INT0IF         0x02
#define _INTCON1_INT0F          0x02
#define _INTCON1_TMR0IF         0x04
#define _INTCON1_T0IF           0x04
#define _INTCON1_RBIE           0x08
#define _INTCON1_INT0IE         0x10
#define _INTCON1_INT0E          0x10
#define _INTCON1_TMR0IE         0x20
#define _INTCON1_T0IE           0x20
#define _INTCON1_PEIE_GIEL      0x40
#define _INTCON1_PEIE           0x40
#define _INTCON1_GIEL           0x40
#define _INTCON1_GIE_GIEH       0x80
#define _INTCON1_GIE            0x80
#define _INTCON1_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 Bits
//
//==============================================================================

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

//----------------------------- CONFIG1L Options -------------------------------

#define _RETEN_ON_1L            0xFE    // Ultra low-power regulator is Enabled (Controlled by SRETEN bit).
#define _RETEN_OFF_1L           0xFF    // Ultra low-power regulator is Disabled (Controlled by REGSLP bit).
#define _INTOSCSEL_LOW_1L       0xFB    // LF-INTOSC in Low-power mode during Sleep.
#define _INTOSCSEL_HIGH_1L      0xFF    // LF-INTOSC in High-power mode during Sleep.
#define _SOSCSEL_LOW_1L         0xEF    // Low Power SOSC circuit selected.
#define _SOSCSEL_DIG_1L         0xF7    // Digital (SCLKI) mode.
#define _SOSCSEL_HIGH_1L        0xFF    // High Power SOSC circuit selected.
#define _XINST_OFF_1L           0xBF    // Disabled.
#define _XINST_ON_1L            0xFF    // Enabled.

//----------------------------- CONFIG1H Options -------------------------------

#define _FOSC_LP_1H             0xF0    // LP oscillator.
#define _FOSC_XT_1H             0xF1    // XT oscillator.
#define _FOSC_HS2_1H            0xF2    // HS oscillator (High power, 16 MHz - 25 MHz).
#define _FOSC_HS1_1H            0xF3    // HS oscillator (Medium power, 4 MHz - 16 MHz).
#define _FOSC_EC3IO_1H          0xF4    // EC oscillator, CLKOUT function on OSC2 (High power, 16 MHz - 64 MHz).
#define _FOSC_EC3_1H            0xF5    // EC oscillator (High power, 16 MHz - 64 MHz).
#define _FOSC_RC_1H             0xF6    // External RC oscillator, CLKOUT function on OSC2.
#define _FOSC_RCIO_1H           0xF7    // External RC oscillator.
#define _FOSC_INTIO2_1H         0xF8    // Internal RC oscillator.
#define _FOSC_INTIO1_1H         0xF9    // Internal RC oscillator, CLKOUT function on OSC2.
#define _FOSC_EC2IO_1H          0xFA    // EC oscillator, CLKOUT function on OSC2 (Medium power, 160 kHz - 16 MHz).
#define _FOSC_EC2_1H            0xFB    // EC oscillator (Medium power, 160 kHz - 16 MHz).
#define _FOSC_EC1IO_1H          0xFC    // EC oscillator, CLKOUT function on OSC2 (Low power, DC - 160 kHz).
#define _FOSC_EC1_1H            0xFD    // EC oscillator (Low power, DC - 160 kHz).
#define _PLLCFG_OFF_1H          0xEF    // Disabled.
#define _PLLCFG_ON_1H           0xFF    // Enabled.
#define _FCMEN_OFF_1H           0xBF    // Disabled.
#define _FCMEN_ON_1H            0xFF    // Enabled.
#define _IESO_OFF_1H            0x7F    // Disabled.
#define _IESO_ON_1H             0xFF    // Enabled.

//----------------------------- CONFIG2L Options -------------------------------

#define _PWRTEN_ON_2L           0xFE    // Enabled.
#define _PWRTEN_OFF_2L          0xFF    // Disabled.
#define _BOREN_OFF_2L           0xF9    // Disabled in hardware, SBOREN disabled.
#define _BOREN_ON_2L            0xFB    // Controlled with SBOREN bit.
#define _BOREN_NOSLP_2L         0xFD    // Enabled while active, disabled in SLEEP, SBOREN disabled.
#define _BOREN_SBORDIS_2L       0xFF    // Enabled in hardware, SBOREN disabled.
#define _BORV_0_2L              0xE7    // 3.0V.
#define _BORV_1_2L              0xEF    // 2.7V.
#define _BORV_2_2L              0xF7    // 2.0V.
#define _BORV_3_2L              0xFF    // 1.8V.
#define _BORPWR_LOW_2L          0x9F    // BORMV set to low power level.
#define _BORPWR_MEDIUM_2L       0xBF    // BORMV set to medium power level.
#define _BORPWR_HIGH_2L         0xDF    // BORMV set to high power level.
#define _BORPWR_ZPBORMV_2L      0xFF    // ZPBORMV instead of BORMV is selected.

//----------------------------- CONFIG2H Options -------------------------------

#define _WDTEN_OFF_2H           0xFC    // WDT disabled in hardware; SWDTEN bit disabled.
#define _WDTEN_NOSLP_2H         0xFD    // WDT enabled only while device is active and disabled in Sleep mode; SWDTEN bit disabled.
#define _WDTEN_ON_2H            0xFE    // WDT controlled by SWDTEN bit setting.
#define _WDTEN_SWDTDIS_2H       0xFF    // WDT enabled in hardware; SWDTEN bit disabled.
#define _WDTPS_1_2H             0x83    // 1:1.
#define _WDTPS_2_2H             0x87    // 1:2.
#define _WDTPS_4_2H             0x8B    // 1:4.
#define _WDTPS_8_2H             0x8F    // 1:8.
#define _WDTPS_16_2H            0x93    // 1:16.
#define _WDTPS_32_2H            0x97    // 1:32.
#define _WDTPS_64_2H            0x9B    // 1:64.
#define _WDTPS_128_2H           0x9F    // 1:128.
#define _WDTPS_256_2H           0xA3    // 1:256.
#define _WDTPS_512_2H           0xA7    // 1:512.
#define _WDTPS_1024_2H          0xAB    // 1:1024.
#define _WDTPS_2048_2H          0xAF    // 1:2048.
#define _WDTPS_4096_2H          0xB3    // 1:4096.
#define _WDTPS_8192_2H          0xB7    // 1:8192.
#define _WDTPS_16384_2H         0xBB    // 1:16384.
#define _WDTPS_32768_2H         0xBF    // 1:32768.
#define _WDTPS_65536_2H         0xC3    // 1:65536.
#define _WDTPS_131072_2H        0xC7    // 1:131072.
#define _WDTPS_262144_2H        0xCB    // 1:262144.
#define _WDTPS_524288_2H        0xCF    // 1:524288.
#define _WDTPS_1048576_2H       0xFF    // 1:1048576.

//----------------------------- CONFIG3H Options -------------------------------

#define _CANMX_PORTC_3H         0xFE    // ECAN TX and RX pins are located on RC6 and RC7, respectively.
#define _CANMX_PORTB_3H         0xFF    // ECAN TX and RX pins are located on RB2 and RB3, respectively.
#define _MSSPMSK_MSK5_3H        0xF7    // 5 bit address masking mode.
#define _MSSPMSK_MSK7_3H        0xFF    // 7 Bit address masking mode.
#define _MCLRE_OFF_3H           0x7F    // MCLR Disabled, RG5 Enabled.
#define _MCLRE_ON_3H            0xFF    // MCLR Enabled, RE3 Disabled.

//----------------------------- CONFIG4L Options -------------------------------

#define _STVREN_OFF_4L          0xFE    // Disabled.
#define _STVREN_ON_4L           0xFF    // Enabled.
#define _BBSIZ_BB1K_4L          0xEF    // 1K word Boot Block size.
#define _BBSIZ_BB2K_4L          0xFF    // 2K word Boot Block size.

//----------------------------- CONFIG5L Options -------------------------------

#define _CP0_ON_5L              0xFE    // Enabled.
#define _CP0_OFF_5L             0xFF    // Disabled.
#define _CP1_ON_5L              0xFD    // Enabled.
#define _CP1_OFF_5L             0xFF    // Disabled.
#define _CP2_ON_5L              0xFB    // Enabled.
#define _CP2_OFF_5L             0xFF    // Disabled.
#define _CP3_ON_5L              0xF7    // Enabled.
#define _CP3_OFF_5L             0xFF    // Disabled.

//----------------------------- CONFIG5H Options -------------------------------

#define _CPB_ON_5H              0xBF    // Enabled.
#define _CPB_OFF_5H             0xFF    // Disabled.
#define _CPD_ON_5H              0x7F    // Enabled.
#define _CPD_OFF_5H             0xFF    // Disabled.

//----------------------------- CONFIG6L Options -------------------------------

#define _WRT0_ON_6L             0xFE    // Enabled.
#define _WRT0_OFF_6L            0xFF    // Disabled.
#define _WRT1_ON_6L             0xFD    // Enabled.
#define _WRT1_OFF_6L            0xFF    // Disabled.
#define _WRT2_ON_6L             0xFB    // Enabled.
#define _WRT2_OFF_6L            0xFF    // Disabled.
#define _WRT3_ON_6L             0xF7    // Enabled.
#define _WRT3_OFF_6L            0xFF    // Disabled.

//----------------------------- CONFIG6H Options -------------------------------

#define _WRTC_ON_6H             0xDF    // Enabled.
#define _WRTC_OFF_6H            0xFF    // Disabled.
#define _WRTB_ON_6H             0xBF    // Enabled.
#define _WRTB_OFF_6H            0xFF    // Disabled.
#define _WRTD_ON_6H             0x7F    // Enabled.
#define _WRTD_OFF_6H            0xFF    // Disabled.

//----------------------------- CONFIG7L Options -------------------------------

#define _EBTR0_ON_7L            0xFE    // Enabled.
#define _EBTR0_OFF_7L           0xFF    // Disabled.
#define _EBTR1_ON_7L            0xFD    // Enabled.
#define _EBTR1_OFF_7L           0xFF    // Disabled.
#define _EBTR2_ON_7L            0xFB    // Enabled.
#define _EBTR2_OFF_7L           0xFF    // Disabled.
#define _EBTR3_ON_7L            0xF7    // Enabled.
#define _EBTR3_OFF_7L           0xFF    // Disabled.

//----------------------------- CONFIG7H Options -------------------------------

#define _EBTRB_ON_7H            0xBF    // Enabled.
#define _EBTRB_OFF_7H           0xFF    // Disabled.

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

#define __DEVID1                0x3FFFFE
#define __DEVID2                0x3FFFFF

#define __IDLOC0                0x200000
#define __IDLOC1                0x200001
#define __IDLOC2                0x200002
#define __IDLOC3                0x200003
#define __IDLOC4                0x200004
#define __IDLOC5                0x200005
#define __IDLOC6                0x200006
#define __IDLOC7                0x200007

#endif // #ifndef __PIC18LF25K80_H__
