+// ----- CRCON bits --------------------
+typedef union {
+ struct {
+ unsigned char CRREG0:1;
+ unsigned char CRREG1:1;
+ unsigned char :1;
+ unsigned char :1;
+ unsigned char :1;
+ unsigned char :1;
+ unsigned char ENC_DEC:1;
+ unsigned char GO:1;
+ };
+} __CRCON_bits_t;
+extern volatile __CRCON_bits_t __at(CRCON_ADDR) CRCON_bits;
+
+#define CRREG0 CRCON_bits.CRREG0
+#define CRREG1 CRCON_bits.CRREG1
+#define ENC_DEC CRCON_bits.ENC_DEC
+#define GO CRCON_bits.GO
+
+// ----- EECON1 bits --------------------
+typedef union {
+ struct {
+ unsigned char RD:1;
+ unsigned char WR:1;
+ unsigned char WREN:1;
+ unsigned char WRERR:1;
+ unsigned char :1;
+ unsigned char :1;
+ unsigned char :1;
+ unsigned char :1;
+ };
+} __EECON1_bits_t;
+extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits;
+
+#define RD EECON1_bits.RD
+#define WR EECON1_bits.WR
+#define WREN EECON1_bits.WREN
+#define WRERR EECON1_bits.WRERR
+
+// ----- GPIO bits --------------------
+typedef union {
+ struct {
+ unsigned char GP0:1;
+ unsigned char GP1:1;
+ unsigned char GP2:1;
+ unsigned char GP3:1;
+ unsigned char GP4:1;
+ unsigned char GP5:1;
+ unsigned char :1;
+ unsigned char :1;
+ };
+} __GPIO_bits_t;
+extern volatile __GPIO_bits_t __at(GPIO_ADDR) GPIO_bits;
+
+#define GP0 GPIO_bits.GP0
+#define GP1 GPIO_bits.GP1
+#define GP2 GPIO_bits.GP2
+#define GP3 GPIO_bits.GP3
+#define GP4 GPIO_bits.GP4
+#define GP5 GPIO_bits.GP5
+